summaryrefslogtreecommitdiff
path: root/asm/code_80718D8.s
diff options
context:
space:
mode:
authorCheng Hann Gan <chenghanngan.us@gmail.com>2021-10-28 12:01:07 -0400
committerGitHub <noreply@github.com>2021-10-28 09:01:07 -0700
commitdd128d78c6da20395edcbe8dab8a224aa6679146 (patch)
treedeec8715283a26754ec64e7dabdeca25faf7e361 /asm/code_80718D8.s
parentc98fb2c11272680a20b9cfb9efe2ce482d3779dd (diff)
Decomped more dungeon AI (#67)
* Decomped IsMovingClient() * Fixed typos in boss dialogue * Fixed spelling of Pelipper * Decomped CannotUseItems * Decomped ShouldAvoidEnemies() * Decomped HasAbility() * Decomped HasTactic() * Decomped CannotMove * Decomped CannotAct() and IsCharging()
Diffstat (limited to 'asm/code_80718D8.s')
-rw-r--r--asm/code_80718D8.s8181
1 files changed, 8181 insertions, 0 deletions
diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s
new file mode 100644
index 0000000..e93f114
--- /dev/null
+++ b/asm/code_80718D8.s
@@ -0,0 +1,8181 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start HasIQSkill
+HasIQSkill:
+ push {lr}
+ lsls r2, r1, 24
+ lsrs r2, 24
+ ldr r0, [r0, 0x70]
+ adds r0, 0x90
+ movs r1, 0x1
+ lsls r1, r2
+ bl sub_808ECD0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end HasIQSkill
+
+ thumb_func_start sub_80718F4
+sub_80718F4:
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, [r0, 0x70]
+ adds r0, 0x90
+ movs r3, 0x1
+ adds r1, r3, 0
+ lsls r1, r4
+ lsls r3, r2
+ orrs r1, r3
+ bl sub_808ECD0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80718F4
+
+ thumb_func_start sub_807191C
+sub_807191C:
+ push {r4-r6,lr}
+ ldr r5, [r0, 0x70]
+ ldrb r1, [r5, 0x6]
+ cmp r1, 0
+ beq _08071978
+ adds r4, r5, 0
+ adds r4, 0x90
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_808EC30
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl sub_808EC30
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_808EC30
+ adds r0, r5, 0
+ adds r0, 0xF7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08071954
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl sub_808EC30
+_08071954:
+ ldrb r0, [r5, 0x9]
+ ldr r1, _08071974
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ blt _08071968
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl sub_808EC30
+_08071968:
+ adds r1, r5, 0
+ adds r1, 0x94
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080719BE
+ .align 2, 0
+_08071974: .4byte gUnknown_80F59C4
+_08071978:
+ adds r0, r5, 0
+ adds r0, 0x90
+ strb r1, [r0]
+ adds r2, r5, 0
+ adds r2, 0x91
+ strb r1, [r2]
+ adds r2, 0x1
+ strb r1, [r2]
+ movs r4, 0x1
+ adds r6, r0, 0
+_0807198C:
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_808EB7C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080719B8
+ movs r1, 0x1
+ lsls r1, r4
+ adds r0, r5, 0
+ adds r0, 0x8C
+ bl sub_808ECD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080719B8
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_808EC30
+_080719B8:
+ adds r4, 0x1
+ cmp r4, 0x17
+ ble _0807198C
+_080719BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807191C
+
+ thumb_func_start sub_80719C4
+sub_80719C4:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x70]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _080719D6
+ b _08071A0A
+_080719D2:
+ movs r0, 0x1
+ b _08071A0C
+_080719D6:
+ movs r6, 0
+_080719D8:
+ ldr r0, _08071A14
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08071A18
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071A04
+ cmp r5, r4
+ beq _08071A04
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ bne _080719D2
+_08071A04:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080719D8
+_08071A0A:
+ movs r0, 0
+_08071A0C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071A14: .4byte gDungeonGlobalData
+_08071A18: .4byte 0x0001357c
+ thumb_func_end sub_80719C4
+
+ thumb_func_start sub_8071A1C
+sub_8071A1C:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldrh r1, [r2, 0x2]
+ movs r0, 0xA2
+ lsls r0, 1
+ cmp r1, r0
+ beq _08071A38
+ adds r0, r2, 0
+ bl sub_8092B00
+ lsls r0, 24
+ lsrs r0, 24
+ b _08071A3E
+_08071A38:
+ ldr r0, [r3, 0x70]
+ adds r0, 0x3E
+ ldrb r0, [r0]
+_08071A3E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071A1C
+
+ thumb_func_start sub_8071A44
+sub_8071A44:
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xA2
+ lsls r0, 1
+ cmp r1, r0
+ beq _08071A60
+ adds r0, r4, 0
+ bl sub_8092BC0
+ ldrb r1, [r4, 0x5]
+ adds r0, r1
+ b _08071A6A
+_08071A60:
+ ldr r0, [r2, 0x70]
+ movs r1, 0x3C
+ ldrsh r0, [r0, r1]
+ ldrb r4, [r4, 0x5]
+ adds r0, r4
+_08071A6A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071A44
+
+ thumb_func_start sub_8071A70
+sub_8071A70:
+ push {lr}
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ bl IsToolboxEnabled
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071A84
+ movs r0, 0x1
+ b _08071A86
+_08071A84:
+ movs r0, 0
+_08071A86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071A70
+
+ thumb_func_start sub_8071A8C
+sub_8071A8C:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071AC2
+ ldr r1, [r4, 0x70]
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08071AC2
+ adds r0, r1, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08071AB4
+ cmp r0, 0x47
+ bne _08071AB8
+_08071AB4:
+ movs r0, 0x1
+ b _08071ABA
+_08071AB8:
+ movs r0, 0
+_08071ABA:
+ cmp r0, 0
+ bne _08071AC2
+ movs r0, 0x1
+ b _08071AC4
+_08071AC2:
+ movs r0, 0
+_08071AC4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071A8C
+
+ thumb_func_start sub_8071ACC
+sub_8071ACC:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r1, 0xA7
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08071AF6
+ movs r0, 0xA8
+ lsls r0, 1
+ adds r2, r3, r0
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ b _08071B02
+_08071AF6:
+ movs r0, 0xA8
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ bics r0, r4
+ strh r0, [r1]
+_08071B02:
+ cmp r5, 0
+ beq _08071B16
+ movs r1, 0xA7
+ lsls r1, 1
+ adds r2, r3, r1
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ b _08071B22
+_08071B16:
+ movs r0, 0xA7
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ bics r0, r4
+ strh r0, [r1]
+_08071B22:
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ bne _08071B40
+ subs r1, 0x2
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08071B40
+ movs r0, 0x1
+ b _08071B42
+_08071B40:
+ movs r0, 0
+_08071B42:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071ACC
+
+ thumb_func_start sub_8071B48
+sub_8071B48:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08071B94
+ ldr r6, [r0]
+ ldr r1, _08071B98
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _08071B66
+ b _08071D3E
+_08071B66:
+ subs r1, 0x20
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0x15
+ bne _08071B7C
+ ldr r2, _08071B9C
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08071B7C
+ b _08071D3E
+_08071B7C:
+ ldr r0, _08071BA0
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ adds r2, r0, 0x1
+ strh r2, [r1]
+ ldr r1, _08071BA4
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08071BAC
+ ldr r0, _08071BA8
+ b _08071BAE
+ .align 2, 0
+_08071B94: .4byte gDungeonGlobalData
+_08071B98: .4byte 0x00000664
+_08071B9C: .4byte 0x000037fd
+_08071BA0: .4byte 0x00000662
+_08071BA4: .4byte 0x0000066e
+_08071BA8: .4byte gUnknown_80F4DAA
+_08071BAC:
+ ldr r0, _08071C60
+_08071BAE:
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bge _08071BBC
+ b _08071D3E
+_08071BBC:
+ ldr r1, _08071C64
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0xE1
+ lsls r0, 2
+ cmp r1, r0
+ ble _08071BF6
+ ldr r1, _08071C68
+ adds r0, r6, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071BF6
+ ldrh r0, [r4, 0x26]
+ ldr r2, _08071C6C
+ adds r1, r6, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _08071BF6
+ ldr r0, _08071C70
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ mov r8, r4
+_08071BF6:
+ ldr r1, _08071C64
+ adds r0, r6, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08071C68
+ adds r0, r6, r2
+ str r1, [r0]
+ movs r7, 0
+ movs r5, 0
+_08071C08:
+ lsls r0, r5, 2
+ ldr r2, _08071C74
+ adds r1, r6, r2
+ adds r1, r0
+ ldr r4, [r1]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071C3A
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08071C3A
+ adds r7, 0x1
+_08071C3A:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08071C08
+ ldr r1, _08071C78
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08071C92
+ ldr r0, _08071C7C
+ ldr r0, [r0]
+ ldr r2, _08071C80
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08071C88
+ ldr r0, _08071C84
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ b _08071C8E
+ .align 2, 0
+_08071C60: .4byte gUnknown_80F4DAC
+_08071C64: .4byte 0x00000662
+_08071C68: .4byte 0x00017b34
+_08071C6C: .4byte 0x00017b40
+_08071C70: .4byte gAvailablePokemonNames
+_08071C74: .4byte 0x0001358c
+_08071C78: .4byte 0x0000066e
+_08071C7C: .4byte gDungeonGlobalData
+_08071C80: .4byte 0x00003a0c
+_08071C84: .4byte gUnknown_80F4DA6
+_08071C88:
+ ldr r0, _08071CB8
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+_08071C8E:
+ cmp r7, r0
+ bge _08071D3E
+_08071C92:
+ mov r0, r8
+ cmp r0, 0
+ beq _08071CA8
+ ldr r0, _08071CBC
+ ldr r1, [r0]
+ movs r0, 0
+ bl sub_805239C
+ mov r0, r8
+ bl sub_8042920
+_08071CA8:
+ ldr r1, _08071CC0
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08071CC4
+ movs r5, 0xBE
+ lsls r5, 1
+ b _08071CCE
+ .align 2, 0
+_08071CB8: .4byte gUnknown_80F4DA8
+_08071CBC: .4byte gUnknown_80FED68
+_08071CC0: .4byte 0x0000066e
+_08071CC4:
+ movs r0, 0
+ bl sub_803D970
+ lsls r0, 16
+ asrs r5, r0, 16
+_08071CCE:
+ adds r0, r5, 0
+ bl sub_803DA20
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08071CDC
+ movs r4, 0x1
+_08071CDC:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806AA0C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071D3E
+ add r0, sp, 0xC
+ bl sub_8083660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071D3E
+ mov r0, sp
+ movs r1, 0
+ strh r5, [r0]
+ strh r4, [r0, 0x8]
+ strb r1, [r0, 0x2]
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ ldr r0, _08071D24
+ ldr r0, [r0]
+ ldr r2, _08071D28
+ adds r0, r2
+ ldrb r0, [r0]
+ bl sub_8090168
+ lsls r0, 16
+ asrs r0, 16
+ cmp r4, r0
+ bge _08071D2C
+ movs r0, 0x1
+ b _08071D2E
+ .align 2, 0
+_08071D24: .4byte gDungeonGlobalData
+_08071D28: .4byte 0x00000644
+_08071D2C:
+ movs r0, 0
+_08071D2E:
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ mov r0, sp
+ movs r1, 0
+ bl sub_806B7F8
+_08071D3E:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071B48
+
+ thumb_func_start sub_8071D4C
+sub_8071D4C:
+ push {lr}
+ ldr r3, [r1, 0x70]
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0x64
+ beq _08071D94
+ adds r0, r3, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08071D64
+ cmp r0, 0x47
+ bne _08071D68
+_08071D64:
+ movs r0, 0x1
+ b _08071D6A
+_08071D68:
+ movs r0, 0
+_08071D6A:
+ cmp r0, 0
+ bne _08071D94
+ ldr r1, [r3, 0x18]
+ adds r2, r1, r2
+ ldr r0, _08071D98
+ cmp r2, r0
+ ble _08071D7A
+ ldr r2, _08071D9C
+_08071D7A:
+ subs r2, r1
+ cmp r2, 0
+ beq _08071D94
+ movs r0, 0xFE
+ lsls r0, 1
+ adds r1, r3, r0
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ ldr r0, _08071DA0
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xD]
+_08071D94:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071D98: .4byte 0x0098967e
+_08071D9C: .4byte 0x0098967f
+_08071DA0: .4byte gDungeonGlobalData
+ thumb_func_end sub_8071D4C
+
+ thumb_func_start sub_8071DA4
+sub_8071DA4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xD4
+ str r0, [sp, 0xB4]
+ ldr r2, _08071E44
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xD]
+ cmp r0, 0
+ bne _08071DBE
+ b _08071FE2
+_08071DBE:
+ movs r0, 0
+ strb r0, [r1, 0xD]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _08071DCC
+ b _08071FE2
+_08071DCC:
+ ldr r0, [sp, 0xB4]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08071DE2
+ mov r0, sp
+ bl sub_80457DC
+ mov r0, sp
+ str r0, [sp, 0xB4]
+_08071DE2:
+ movs r4, 0
+_08071DE4:
+ movs r5, 0
+ ldr r0, _08071E44
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _08071E48
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp, 0xB8]
+ movs r1, 0
+ movs r2, 0
+ str r1, [sp, 0xBC]
+ str r2, [sp, 0xC0]
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0xC4]
+ str r1, [sp, 0xC8]
+ adds r1, r4, 0x1
+ str r1, [sp, 0xCC]
+ mov r2, r8
+ cmp r2, 0
+ bne _08071E16
+ b _08071FDA
+_08071E16:
+ mov r0, r8
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08071E24
+ b _08071FDA
+_08071E24:
+ mov r0, r8
+ ldr r6, [r0, 0x70]
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08071E32
+ b _08071FDA
+_08071E32:
+ adds r1, r6, 0
+ adds r1, 0xF9
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08071E4C
+ add r2, sp, 0xB8
+ ldrb r2, [r2]
+ strb r2, [r1]
+ b _08071FCA
+ .align 2, 0
+_08071E44: .4byte gDungeonGlobalData
+_08071E48: .4byte 0x000135cc
+_08071E4C:
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r0, [r0]
+ mov r10, r0
+ cmp r0, 0
+ beq _08071EB6
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ beq _08071E68
+ ldrb r1, [r6, 0x9]
+ add r0, sp, 0x74
+ bl sub_808EB48
+_08071E68:
+ movs r0, 0x10
+ ldrsh r2, [r6, r0]
+ str r2, [sp, 0xB8]
+ ldrb r1, [r6, 0x14]
+ str r1, [sp, 0xBC]
+ ldrb r2, [r6, 0x15]
+ str r2, [sp, 0xC0]
+ ldrb r0, [r6, 0x16]
+ str r0, [sp, 0xC4]
+ ldrb r1, [r6, 0x17]
+ str r1, [sp, 0xC8]
+ ldrb r0, [r6, 0x9]
+ cmp r0, 0x64
+ beq _08071EB6
+ ldr r0, [r6, 0x18]
+ add r0, r10
+ str r0, [r6, 0x18]
+ mov r2, r10
+ ldr r0, _08071EE8
+ str r2, [r0]
+ ldr r0, _08071EEC
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_80708B4
+ ldr r0, _08071EF0
+ ldr r2, [r0]
+ ldr r0, [sp, 0xB4]
+ mov r1, r8
+ bl sub_80522F4
+ ldr r0, [sp, 0xB4]
+ mov r1, r8
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80723D0
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08071EB6:
+ ldr r1, _08071EF4
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ adds r4, 0x1
+ str r4, [sp, 0xCC]
+ cmp r0, 0
+ beq _08071F3A
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ add r1, sp, 0x8C
+ movs r2, 0
+ movs r3, 0
+ bl sub_808E400
+ adds r7, r0, 0
+ add r0, sp, 0x8C
+ mov r9, r0
+ cmp r7, 0
+ beq _08071F38
+ adds r0, r7, 0
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ movs r1, 0
+ b _08071F02
+ .align 2, 0
+_08071EE8: .4byte gUnknown_202DE30
+_08071EEC: .4byte gAvailablePokemonNames
+_08071EF0: .4byte gUnknown_80F9E64
+_08071EF4: .4byte 0x00000149
+_08071EF8:
+ adds r4, 0x1
+ cmp r4, r7
+ blt _08071F00
+ movs r4, 0
+_08071F00:
+ adds r1, 0x1
+_08071F02:
+ cmp r1, r7
+ bge _08071F38
+ lsls r0, r4, 1
+ mov r2, r9
+ adds r5, r2, r0
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ str r1, [sp, 0xD0]
+ bl sub_803D930
+ lsls r0, 24
+ ldr r1, [sp, 0xD0]
+ cmp r0, 0
+ beq _08071EF8
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ bl sub_80687D0
+ ldr r1, [sp, 0xD0]
+ cmp r0, 0
+ beq _08071EF8
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ ldr r0, [sp, 0xB4]
+ mov r1, r8
+ bl sub_8072B78
+_08071F38:
+ movs r5, 0
+_08071F3A:
+ cmp r5, 0
+ beq _08071F7A
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _08071F7A
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ ldr r2, [sp, 0xB8]
+ subs r0, r2
+ ldr r1, _08071FF4
+ str r0, [r1]
+ ldrb r0, [r6, 0x14]
+ ldr r2, [sp, 0xBC]
+ subs r0, r2
+ str r0, [r1, 0x4]
+ ldrb r0, [r6, 0x16]
+ ldr r1, [sp, 0xC4]
+ subs r0, r1
+ ldr r2, _08071FF4
+ str r0, [r2, 0x8]
+ ldrb r0, [r6, 0x15]
+ ldr r1, [sp, 0xC0]
+ subs r0, r1
+ str r0, [r2, 0xC]
+ ldrb r0, [r6, 0x17]
+ ldr r2, [sp, 0xC8]
+ subs r0, r2
+ ldr r1, _08071FF4
+ str r0, [r1, 0x10]
+ mov r0, r8
+ bl sub_807218C
+_08071F7A:
+ mov r2, r10
+ cmp r2, 0
+ beq _08071FCA
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ beq _08071FCA
+ ldrb r1, [r6, 0x9]
+ add r0, sp, 0x80
+ bl sub_808EB48
+ movs r4, 0
+ add r7, sp, 0x74
+ add r5, sp, 0x80
+_08071F94:
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08071FC4
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08071FC4
+ ldr r0, _08071FF8
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r0, _08071FFC
+ bl CopyTacticsNameToBuffer
+ ldr r0, _08072000
+ ldr r2, [r0]
+ ldr r0, [sp, 0xB4]
+ mov r1, r8
+ bl sub_80522F4
+_08071FC4:
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _08071F94
+_08071FCA:
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r6, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _08072004
+ adds r0, r6, r2
+ strb r1, [r0]
+_08071FDA:
+ ldr r4, [sp, 0xCC]
+ cmp r4, 0x13
+ bgt _08071FE2
+ b _08071DE4
+_08071FE2:
+ add sp, 0xD4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071FF4: .4byte gUnknown_202DE30
+_08071FF8: .4byte gAvailablePokemonNames
+_08071FFC: .4byte gUnknown_202DE58
+_08072000: .4byte gUnknown_80FF730
+_08072004: .4byte 0x00000149
+ thumb_func_end sub_8071DA4
+
+ thumb_func_start sub_8072008
+sub_8072008:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ mov r9, r0
+ mov r8, r1
+ adds r4, r2, 0
+ ldr r0, [sp, 0x58]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ mov r0, r8
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072036
+ b _08072162
+_08072036:
+ movs r0, 0
+ str r0, [sp, 0x28]
+ mov r1, r8
+ ldr r5, [r1, 0x70]
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _0807204C
+ add r0, sp, 0xC
+ ldrb r1, [r5, 0x9]
+ bl sub_808EB48
+_0807204C:
+ movs r0, 0x10
+ ldrsh r2, [r5, r0]
+ str r2, [sp, 0x2C]
+ ldrb r6, [r5, 0x14]
+ ldrb r7, [r5, 0x15]
+ ldrb r1, [r5, 0x16]
+ str r1, [sp, 0x30]
+ ldrb r2, [r5, 0x17]
+ str r2, [sp, 0x34]
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _0807206C
+ cmp r0, 0x47
+ bne _08072070
+_0807206C:
+ movs r0, 0x1
+ b _08072072
+_08072070:
+ movs r0, 0
+_08072072:
+ cmp r0, 0
+ bne _080720E6
+ ldrb r0, [r5, 0x9]
+ adds r2, r0, r4
+ cmp r2, 0x63
+ ble _08072080
+ movs r2, 0x64
+_08072080:
+ cmp r2, r0
+ beq _080720E6
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ mov r0, sp
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ str r0, [r5, 0x18]
+ mov r0, r9
+ mov r1, r8
+ mov r2, r10
+ ldr r3, [sp, 0x24]
+ bl sub_80723D0
+ ldr r1, [sp, 0x28]
+ orrs r1, r0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ str r0, [sp, 0x28]
+ cmp r0, 0
+ beq _080720E6
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ bne _080720E6
+ ldr r1, _08072174
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ ldr r2, [sp, 0x2C]
+ subs r0, r2
+ str r0, [r1]
+ ldrb r0, [r5, 0x14]
+ subs r0, r6
+ str r0, [r1, 0x4]
+ ldrb r0, [r5, 0x16]
+ ldr r2, [sp, 0x30]
+ subs r0, r2
+ str r0, [r1, 0x8]
+ ldrb r0, [r5, 0x15]
+ subs r0, r7
+ str r0, [r1, 0xC]
+ ldrb r0, [r5, 0x17]
+ ldr r2, [sp, 0x34]
+ subs r0, r2
+ str r0, [r1, 0x10]
+ mov r0, r10
+ cmp r0, 0
+ beq _080720E6
+ mov r0, r8
+ bl sub_807218C
+_080720E6:
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _08072130
+ add r4, sp, 0x18
+ ldrb r1, [r5, 0x9]
+ adds r0, r4, 0
+ bl sub_808EB48
+ movs r6, 0
+ add r7, sp, 0xC
+_080720FA:
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807212A
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807212A
+ ldr r0, _08072178
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ lsls r1, r6, 24
+ lsrs r1, 24
+ ldr r0, _0807217C
+ bl CopyTacticsNameToBuffer
+ ldr r0, _08072180
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+_0807212A:
+ adds r6, 0x1
+ cmp r6, 0xB
+ ble _080720FA
+_08072130:
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r5, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _08072184
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r0, [sp, 0x28]
+ cmp r0, 0
+ bne _08072162
+ mov r1, r10
+ cmp r1, 0
+ beq _08072162
+ ldr r0, _08072178
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08072188
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+_08072162:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08072174: .4byte gUnknown_202DE30
+_08072178: .4byte gAvailablePokemonNames
+_0807217C: .4byte gUnknown_202DE58
+_08072180: .4byte gUnknown_80FF730
+_08072184: .4byte 0x00000149
+_08072188: .4byte gUnknown_80F9B74
+ thumb_func_end sub_8072008
+
+ thumb_func_start sub_807218C
+sub_807218C:
+ push {r4-r6,lr}
+ sub sp, 0x190
+ adds r4, r0, 0
+ movs r6, 0
+ ldr r5, [r4, 0x70]
+ movs r1, 0
+ bl sub_806A2BC
+ ldr r0, _080721C8
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80708B4
+ adds r0, r4, 0
+ bl sub_8070BC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072200
+ movs r3, 0
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ bne _080721CC
+ movs r1, 0xD2
+ lsls r1, 1
+ b _080721EC
+ .align 2, 0
+_080721C8: .4byte gAvailablePokemonNames
+_080721CC:
+ cmp r0, 0x47
+ bne _080721D8
+ ldr r1, _080721D4
+ b _080721EC
+ .align 2, 0
+_080721D4: .4byte 0x000001a5
+_080721D8:
+ cmp r0, 0x41
+ bne _080721EC
+ ldr r0, _080721F8
+ ldr r0, [r0]
+ ldr r2, _080721FC
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080721EC
+ movs r3, 0x1
+_080721EC:
+ mov r0, sp
+ movs r2, 0x3
+ bl sub_806A3D4
+ b _0807220A
+ .align 2, 0
+_080721F8: .4byte gDungeonGlobalData
+_080721FC: .4byte 0x0000065c
+_08072200:
+ ldr r0, _08072308
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcpy
+_0807220A:
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ ldr r4, _0807230C
+ ldr r0, [r4]
+ cmp r0, 0
+ ble _0807222E
+ ldr r0, _08072310
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcat
+ adds r6, 0x1
+_0807222E:
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ ble _0807225A
+ ldr r0, _08072314
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807224E
+ ldr r0, _08072318
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ mov r0, sp
+ bl strcat
+_0807224E:
+ ldr r0, _0807231C
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcat
+ adds r6, 0x1
+_0807225A:
+ ldr r0, _0807230C
+ ldr r0, [r0, 0x8]
+ cmp r0, 0
+ ble _08072288
+ ldr r0, _08072314
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807227C
+ ldr r0, _08072318
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ mov r0, sp
+ bl strcat
+_0807227C:
+ ldr r0, _08072320
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcat
+ adds r6, 0x1
+_08072288:
+ ldr r0, _0807230C
+ ldr r0, [r0, 0xC]
+ cmp r0, 0
+ ble _080722B6
+ ldr r0, _08072314
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080722AA
+ ldr r0, _08072318
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ mov r0, sp
+ bl strcat
+_080722AA:
+ ldr r0, _08072324
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcat
+ adds r6, 0x1
+_080722B6:
+ ldr r0, _0807230C
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ ble _080722E2
+ ldr r0, _08072314
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080722D8
+ ldr r0, _08072318
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ mov r0, sp
+ bl strcat
+_080722D8:
+ ldr r0, _08072328
+ ldr r1, [r0]
+ mov r0, sp
+ bl strcat
+_080722E2:
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080722F4
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl PrintFieldMessage
+_080722F4:
+ bl sub_8083600
+ movs r1, 0
+ bl sub_806A2BC
+ add sp, 0x190
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08072308: .4byte gUnknown_80FCF18
+_0807230C: .4byte gUnknown_202DE30
+_08072310: .4byte gUnknown_80F9ACC
+_08072314: .4byte gUnknown_8107010
+_08072318: .4byte gUnknown_8107018
+_0807231C: .4byte gUnknown_80F9AEC
+_08072320: .4byte gUnknown_80F9B10
+_08072324: .4byte gUnknown_80F9B34
+_08072328: .4byte gUnknown_80F9B58
+ thumb_func_end sub_807218C
+
+ thumb_func_start LevelDownTarget
+LevelDownTarget:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ mov r8, r0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080723B6
+ movs r6, 0
+ ldr r4, [r5, 0x70]
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08072358
+ cmp r0, 0x47
+ bne _0807235C
+_08072358:
+ movs r0, 0x1
+ b _0807235E
+_0807235C:
+ movs r0, 0
+_0807235E:
+ cmp r0, 0
+ bne _0807238C
+ ldrb r0, [r4, 0x9]
+ subs r2, r0, r7
+ cmp r2, 0
+ bgt _0807236C
+ movs r2, 0x1
+_0807236C:
+ cmp r2, r0
+ beq _0807238C
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ mov r0, sp
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ str r0, [r4, 0x18]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80725A4
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0807238C:
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _080723C4
+ adds r0, r4, r2
+ strb r1, [r0]
+ cmp r6, 0
+ bne _080723B6
+ ldr r0, _080723C8
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _080723CC
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80522F4
+_080723B6:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080723C4: .4byte 0x00000149
+_080723C8: .4byte gAvailablePokemonNames
+_080723CC: .4byte gUnknown_80F9B94
+ thumb_func_end LevelDownTarget
+
+ thumb_func_start sub_80723D0
+sub_80723D0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0xC]
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ movs r0, 0
+ str r0, [sp, 0x18]
+ mov r0, r10
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072422
+ mov r1, r10
+ ldr r5, [r1, 0x70]
+ movs r0, 0x2
+ ldrsh r3, [r5, r0]
+ str r3, [sp, 0x1C]
+ ldr r1, [r5, 0x18]
+ str r1, [sp, 0x20]
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08072418
+ cmp r0, 0x47
+ bne _0807241C
+_08072418:
+ movs r0, 0x1
+ b _0807241E
+_0807241C:
+ movs r0, 0
+_0807241E:
+ cmp r0, 0
+ beq _08072426
+_08072422:
+ movs r0, 0
+ b _08072576
+_08072426:
+ ldrb r0, [r5, 0x9]
+ adds r0, 0x1
+ mov r8, r0
+ mov r9, sp
+ b _0807255A
+_08072430:
+ mov r3, r8
+ strb r3, [r5, 0x9]
+ ldr r0, [sp, 0x20]
+ str r0, [r5, 0x18]
+ ldr r1, [sp, 0x10]
+ cmp r1, 0
+ beq _080724A4
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ bne _08072480
+ mov r0, r10
+ movs r1, 0
+ bl sub_806A2BC
+ ldr r3, [sp, 0x18]
+ cmp r3, 0
+ bne _08072456
+ bl sub_8083D58
+_08072456:
+ ldr r0, _08072474
+ mov r1, r8
+ str r1, [r0]
+ ldr r0, _08072478
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80708B4
+ ldr r0, _0807247C
+ ldr r1, [r0]
+ mov r0, r10
+ bl sub_80528F4
+ b _080724A4
+ .align 2, 0
+_08072474: .4byte gUnknown_202DE30
+_08072478: .4byte gAvailablePokemonNames
+_0807247C: .4byte gUnknown_80F9E80
+_08072480:
+ ldr r3, [sp, 0x18]
+ cmp r3, 0
+ bne _0807248A
+ bl sub_8083D58
+_0807248A:
+ ldr r0, _08072588
+ mov r1, r8
+ str r1, [r0]
+ ldr r0, _0807258C
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80708B4
+ ldr r0, _08072590
+ ldr r1, [r0]
+ mov r0, r10
+ bl sub_805239C
+_080724A4:
+ movs r3, 0x1
+ str r3, [sp, 0x18]
+ mov r1, r9
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x10]
+ adds r0, r3
+ movs r2, 0
+ strh r0, [r5, 0x10]
+ ldrh r1, [r1, 0x4]
+ ldrh r3, [r5, 0xE]
+ adds r1, r3
+ strh r1, [r5, 0xE]
+ lsls r0, 16
+ ldr r1, _08072594
+ cmp r0, r1
+ ble _080724C8
+ ldr r0, _08072598
+ strh r0, [r5, 0x10]
+_080724C8:
+ movs r0, 0xE
+ ldrsh r1, [r5, r0]
+ ldrh r2, [r5, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ blt _080724D8
+ strh r2, [r5, 0xE]
+_080724D8:
+ ldr r7, _0807259C
+ ldrb r4, [r5, 0x14]
+ str r4, [r7]
+ ldrb r1, [r5, 0x15]
+ str r1, [r7, 0x4]
+ ldr r6, _080725A0
+ ldrb r2, [r5, 0x16]
+ str r2, [r6]
+ ldrb r0, [r5, 0x17]
+ mov r12, r0
+ mov r3, r9
+ ldrb r0, [r3, 0x6]
+ adds r4, r0
+ str r4, [r7]
+ ldrb r0, [r3, 0x7]
+ adds r1, r0
+ str r1, [r7, 0x4]
+ ldrb r0, [r3, 0x8]
+ adds r2, r0
+ str r2, [r6]
+ ldrb r0, [r3, 0x9]
+ mov r1, r12
+ adds r3, r1, r0
+ str r3, [r6, 0x4]
+ cmp r4, 0xFE
+ ble _08072510
+ movs r3, 0xFF
+ str r3, [r7]
+_08072510:
+ ldr r0, [r7, 0x4]
+ cmp r0, 0xFE
+ ble _0807251A
+ movs r0, 0xFF
+ str r0, [r7, 0x4]
+_0807251A:
+ ldr r0, [r6]
+ cmp r0, 0xFE
+ ble _08072524
+ movs r1, 0xFF
+ str r1, [r6]
+_08072524:
+ ldr r0, [r6, 0x4]
+ cmp r0, 0xFE
+ ble _0807252E
+ movs r3, 0xFF
+ str r3, [r6, 0x4]
+_0807252E:
+ mov r0, r10
+ bl sub_807191C
+ mov r0, r10
+ bl sub_8079764
+ ldr r0, [r7]
+ strb r0, [r5, 0x14]
+ ldr r0, [r7, 0x4]
+ strb r0, [r5, 0x15]
+ ldr r0, [r6]
+ strb r0, [r5, 0x16]
+ ldr r0, [r6, 0x4]
+ strb r0, [r5, 0x17]
+ ldr r0, [sp, 0xC]
+ mov r1, r10
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl sub_8072778
+ movs r0, 0x1
+ add r8, r0
+_0807255A:
+ mov r1, r8
+ cmp r1, 0x64
+ bgt _08072574
+ mov r0, sp
+ ldr r1, [sp, 0x1C]
+ mov r2, r8
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ ldr r3, [sp, 0x20]
+ cmp r0, r3
+ bgt _08072574
+ b _08072430
+_08072574:
+ ldr r0, [sp, 0x18]
+_08072576:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08072588: .4byte gUnknown_202DE30
+_0807258C: .4byte gAvailablePokemonNames
+_08072590: .4byte gUnknown_80F9E80
+_08072594: .4byte 0x03e60000
+_08072598: .4byte 0x000003e7
+_0807259C: .4byte gUnknown_202F31C
+_080725A0: .4byte gUnknown_202F324
+ thumb_func_end sub_80723D0
+
+ thumb_func_start sub_80725A4
+sub_80725A4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ adds r0, r1, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080725C2
+ b _0807272E
+_080725C2:
+ ldr r0, [sp, 0x10]
+ ldr r5, [r0, 0x70]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ str r1, [sp, 0x18]
+ ldr r3, [r5, 0x18]
+ str r3, [sp, 0x1C]
+ ldrb r0, [r5, 0x9]
+ str r0, [sp, 0x20]
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _080725E2
+ cmp r0, 0x47
+ bne _080725E6
+_080725E2:
+ movs r0, 0x1
+ b _080725E8
+_080725E6:
+ movs r0, 0
+_080725E8:
+ cmp r0, 0
+ beq _080725EE
+ b _0807272E
+_080725EE:
+ movs r1, 0x1
+ mov r8, r1
+ b _080725F8
+_080725F4:
+ movs r2, 0x1
+ add r8, r2
+_080725F8:
+ ldrb r3, [r5, 0x9]
+ cmp r8, r3
+ bge _08072610
+ mov r0, sp
+ ldr r1, [sp, 0x18]
+ mov r2, r8
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ ldr r1, [sp, 0x1C]
+ cmp r0, r1
+ blt _080725F4
+_08072610:
+ mov r2, r8
+ subs r2, 0x1
+ str r2, [sp, 0x14]
+ ldrb r3, [r5, 0x9]
+ mov r8, r3
+ cmp r8, r2
+ ble _08072710
+ mov r9, sp
+ movs r0, 0x1
+ mov r10, r0
+_08072624:
+ mov r4, r8
+ adds r4, 0x1
+ mov r1, r8
+ cmp r1, 0x63
+ bgt _08072640
+ mov r0, sp
+ ldr r1, [sp, 0x18]
+ adds r2, r4, 0
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ subs r0, 0x1
+ str r0, [r5, 0x18]
+ b _08072644
+_08072640:
+ ldr r2, [sp, 0x1C]
+ str r2, [r5, 0x18]
+_08072644:
+ ldr r3, [sp, 0x20]
+ cmp r3, r8
+ ble _08072704
+ mov r0, sp
+ ldr r1, [sp, 0x18]
+ adds r2, r4, 0
+ bl GetPokemonLevelData
+ mov r0, r8
+ strb r0, [r5, 0x9]
+ ldrh r0, [r5, 0x10]
+ mov r2, r9
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ ldrh r0, [r5, 0xE]
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _08072676
+ mov r3, r10
+ strh r3, [r5, 0xE]
+_08072676:
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bgt _08072682
+ mov r2, r10
+ strh r2, [r5, 0x10]
+_08072682:
+ movs r3, 0xE
+ ldrsh r1, [r5, r3]
+ ldrh r2, [r5, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ blt _08072692
+ strh r2, [r5, 0xE]
+_08072692:
+ ldr r7, _08072734
+ ldrb r4, [r5, 0x14]
+ str r4, [r7]
+ ldrb r1, [r5, 0x15]
+ str r1, [r7, 0x4]
+ ldr r6, _08072738
+ ldrb r2, [r5, 0x16]
+ str r2, [r6]
+ ldrb r0, [r5, 0x17]
+ mov r12, r0
+ mov r3, r9
+ ldrb r0, [r3, 0x6]
+ subs r4, r0
+ str r4, [r7]
+ ldrb r0, [r3, 0x7]
+ subs r1, r0
+ str r1, [r7, 0x4]
+ ldrb r0, [r3, 0x8]
+ subs r2, r0
+ str r2, [r6]
+ ldrb r0, [r3, 0x9]
+ mov r1, r12
+ subs r3, r1, r0
+ str r3, [r6, 0x4]
+ cmp r4, 0x1
+ bgt _080726CA
+ mov r2, r10
+ str r2, [r7]
+_080726CA:
+ ldr r0, [r7, 0x4]
+ cmp r0, 0x1
+ bgt _080726D4
+ mov r3, r10
+ str r3, [r7, 0x4]
+_080726D4:
+ ldr r0, [r6]
+ cmp r0, 0x1
+ bgt _080726DE
+ mov r0, r10
+ str r0, [r6]
+_080726DE:
+ ldr r0, [r6, 0x4]
+ cmp r0, 0x1
+ bgt _080726E8
+ mov r1, r10
+ str r1, [r6, 0x4]
+_080726E8:
+ ldr r0, [sp, 0x10]
+ bl sub_807191C
+ ldr r0, [sp, 0x10]
+ bl sub_8079764
+ ldr r0, [r7]
+ strb r0, [r5, 0x14]
+ ldr r0, [r7, 0x4]
+ strb r0, [r5, 0x15]
+ ldr r0, [r6]
+ strb r0, [r5, 0x16]
+ ldr r0, [r6, 0x4]
+ strb r0, [r5, 0x17]
+_08072704:
+ movs r2, 0x1
+ negs r2, r2
+ add r8, r2
+ ldr r3, [sp, 0x14]
+ cmp r8, r3
+ bgt _08072624
+_08072710:
+ ldr r0, _0807273C
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_80708B4
+ ldrb r1, [r5, 0x9]
+ ldr r0, [sp, 0x20]
+ cmp r1, r0
+ bne _08072744
+ ldr r0, _08072740
+ ldr r2, [r0]
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ bl sub_80522F4
+_0807272E:
+ movs r0, 0
+ b _08072760
+ .align 2, 0
+_08072734: .4byte gUnknown_202F31C
+_08072738: .4byte gUnknown_202F324
+_0807273C: .4byte gAvailablePokemonNames
+_08072740: .4byte gUnknown_80F9EEC
+_08072744:
+ ldr r0, _08072770
+ str r1, [r0]
+ movs r1, 0xD3
+ lsls r1, 1
+ ldr r0, [sp, 0x10]
+ bl sub_80421C0
+ ldr r0, _08072774
+ ldr r2, [r0]
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ bl sub_80522F4
+ movs r0, 0x1
+_08072760:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08072770: .4byte gUnknown_202DE30
+_08072774: .4byte gUnknown_80F9EC8
+ thumb_func_end sub_80725A4
+
+ thumb_func_start sub_8072778
+sub_8072778:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xD0
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC4]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC8]
+ ldr r0, [r1, 0x70]
+ mov r8, r0
+ movs r1, 0
+ str r1, [sp, 0xCC]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _080727A8
+ movs r2, 0
+ str r2, [sp, 0xC8]
+ movs r4, 0
+ str r4, [sp, 0xC4]
+_080727A8:
+ mov r0, r8
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ ldrb r2, [r0, 0x9]
+ movs r4, 0xC
+ ldrsh r3, [r0, r4]
+ mov r0, sp
+ bl sub_808E0AC
+ adds r7, r0, 0
+ add r4, sp, 0x20
+ movs r1, 0x8C
+ lsls r1, 1
+ add r1, r8
+ adds r0, r4, 0
+ bl sub_8093FC8
+ mov r10, r4
+ cmp r7, 0
+ beq _08072810
+ adds r0, r7, 0
+ bl DungeonRandomCapped
+ movs r2, 0
+ lsls r0, 1
+ mov r1, sp
+ adds r6, r1, r0
+ mov r5, sp
+ adds r5, 0x21
+ mov r3, r10
+_080727E4:
+ lsls r0, r2, 3
+ add r0, sp
+ adds r0, 0x20
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08072806
+ ldrh r1, [r6]
+ adds r0, r3, 0
+ bl sub_8092A88
+ ldrb r1, [r5]
+ movs r0, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ b _08072810
+_08072806:
+ adds r5, 0x8
+ adds r3, 0x8
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080727E4
+_08072810:
+ movs r5, 0
+ movs r4, 0x1
+_08072814:
+ movs r7, 0
+ movs r2, 0
+_08072818:
+ lsls r0, r2, 3
+ add r0, sp
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0807282A
+ adds r7, 0x1
+_0807282A:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08072818
+ cmp r7, 0x4
+ bgt _080728D4
+ movs r3, 0
+ movs r5, 0
+ cmp r3, r7
+ bge _0807287C
+ movs r4, 0x8C
+ lsls r4, 1
+ add r4, r8
+ mov r6, r10
+_08072844:
+ lsls r0, r5, 3
+ movs r2, 0x8C
+ lsls r2, 1
+ add r2, r8
+ adds r2, r0
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08072872
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ add r0, sp, 0x60
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_80928C0
+ movs r3, 0x1
+_08072872:
+ adds r4, 0x8
+ adds r6, 0x8
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08072844
+_0807287C:
+ cmp r5, 0x3
+ bgt _08072894
+ movs r2, 0x8C
+ lsls r2, 1
+ movs r1, 0
+_08072886:
+ lsls r0, r5, 3
+ add r0, r8
+ adds r0, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08072886
+_08072894:
+ cmp r3, 0
+ beq _08072928
+ ldr r2, [sp, 0xC4]
+ cmp r2, 0
+ beq _08072928
+ ldr r0, _080728C8
+ mov r1, r8
+ movs r2, 0
+ bl sub_80708B4
+ ldr r0, _080728CC
+ add r1, sp, 0x60
+ bl strcpy
+ mov r0, r9
+ movs r1, 0x9C
+ lsls r1, 1
+ bl sub_80421C0
+ ldr r0, _080728D0
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80528F4
+ b _08072928
+ .align 2, 0
+_080728C8: .4byte gAvailablePokemonNames
+_080728CC: .4byte gUnknown_202DE58
+_080728D0: .4byte gUnknown_80F9F04
+_080728D4:
+ mov r1, r8
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08072918
+ ldr r2, [sp, 0xC8]
+ cmp r2, 0
+ beq _08072918
+ ldr r0, [sp, 0xCC]
+ cmp r0, 0
+ bne _08072902
+ ldr r1, [sp, 0xC4]
+ cmp r1, 0
+ beq _08072902
+ movs r0, 0xA
+ movs r1, 0x6
+ bl sub_803E708
+ ldr r0, _08072914
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08072902:
+ movs r2, 0x1
+ str r2, [sp, 0xCC]
+ mov r0, r9
+ mov r1, r10
+ movs r3, 0
+ bl sub_8063E70
+ b _08072920
+ .align 2, 0
+_08072914: .4byte gUnknown_80F9FA4
+_08072918:
+ mov r0, r9
+ mov r1, r10
+ bl sub_8072B24
+_08072920:
+ adds r5, 0x1
+ cmp r5, 0x1D
+ bgt _08072928
+ b _08072814
+_08072928:
+ add sp, 0xD0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8072778
+
+ thumb_func_start sub_8072938
+sub_8072938:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xA4
+ mov r9, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, [r0, 0x70]
+ mov r8, r0
+ movs r1, 0
+ mov r10, r1
+ movs r1, 0x8C
+ lsls r1, 1
+ add r1, r8
+ mov r0, sp
+ bl sub_8093FC8
+ movs r3, 0
+ mov r4, sp
+ mov r2, sp
+_08072964:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08072980
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl sub_8092A88
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ b _0807298A
+_08072980:
+ adds r4, 0x8
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08072964
+_0807298A:
+ movs r4, 0
+ movs r5, 0x1
+_0807298E:
+ movs r7, 0
+ mov r2, sp
+ movs r3, 0x7
+_08072994:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080729A0
+ adds r7, 0x1
+_080729A0:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08072994
+ cmp r7, 0x4
+ bgt _08072A50
+ movs r5, 0
+ cmp r5, r7
+ bge _080729F4
+ movs r4, 0x8C
+ lsls r4, 1
+ add r4, r8
+ mov r6, sp
+_080729BA:
+ lsls r0, r5, 3
+ movs r2, 0x8C
+ lsls r2, 1
+ add r2, r8
+ adds r2, r0
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080729EA
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ add r0, sp, 0x40
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_80928C0
+ movs r0, 0x1
+ mov r10, r0
+_080729EA:
+ adds r4, 0x8
+ adds r6, 0x8
+ adds r5, 0x1
+ cmp r5, r7
+ blt _080729BA
+_080729F4:
+ cmp r5, 0x3
+ bgt _08072A0C
+ movs r2, 0x8C
+ lsls r2, 1
+ movs r1, 0
+_080729FE:
+ lsls r0, r5, 3
+ add r0, r8
+ adds r0, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080729FE
+_08072A0C:
+ mov r1, r10
+ cmp r1, 0
+ beq _08072A92
+ mov r1, r8
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08072A8C
+ ldr r0, _08072A44
+ mov r1, r9
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08072A48
+ add r1, sp, 0x40
+ bl strcpy
+ mov r0, r9
+ movs r1, 0x9C
+ lsls r1, 1
+ bl sub_80421C0
+ ldr r0, _08072A4C
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80528F4
+ b _08072A8C
+ .align 2, 0
+_08072A44: .4byte gAvailablePokemonNames
+_08072A48: .4byte gUnknown_202DE58
+_08072A4C: .4byte gUnknown_80F9F04
+_08072A50:
+ movs r0, 0
+ mov r10, r0
+ mov r1, r8
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08072A84
+ ldr r0, _08072A80
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ mov r0, r9
+ mov r1, sp
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8063E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072A84
+ movs r0, 0
+ b _08072AB0
+ .align 2, 0
+_08072A80: .4byte gUnknown_80FDF40
+_08072A84:
+ adds r4, 0x1
+ cmp r4, 0x1D
+ bgt _08072A8C
+ b _0807298E
+_08072A8C:
+ mov r0, r10
+ cmp r0, 0
+ bne _08072AAE
+_08072A92:
+ mov r1, r8
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08072AAE
+ ldr r0, _08072AC0
+ mov r1, r9
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08072AC4
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80528F4
+_08072AAE:
+ movs r0, 0x1
+_08072AB0:
+ add sp, 0xA4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08072AC0: .4byte gAvailablePokemonNames
+_08072AC4: .4byte gUnknown_80F9F2C
+ thumb_func_end sub_8072938
+
+ thumb_func_start sub_8072AC8
+sub_8072AC8:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r7, r2, 0
+ lsls r1, 16
+ asrs r0, r1, 16
+ movs r3, 0
+ adds r2, r6, 0x6
+_08072AD8:
+ strh r3, [r2]
+ subs r2, 0x2
+ cmp r2, r6
+ bge _08072AD8
+ movs r5, 0
+ bl sub_8092B18
+ adds r4, r0, 0
+ b _08072B04
+_08072AEA:
+ cmp r5, 0x4
+ bne _08072AF6
+ movs r0, 0x4
+ bl DungeonRandomCapped
+ b _08072AFA
+_08072AF6:
+ adds r0, r5, 0
+ adds r5, 0x1
+_08072AFA:
+ lsls r0, 1
+ adds r0, r6
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08072B04:
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08072B1C
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_808E07C
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ adds r4, 0x1
+ cmp r0, r7
+ ble _08072AEA
+_08072B1C:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8072AC8
+
+ thumb_func_start sub_8072B24
+sub_8072B24:
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ movs r4, 0
+ movs r7, 0x1
+ movs r6, 0xFD
+ adds r2, r5, 0
+ movs r3, 0x7
+_08072B32:
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08072B44
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r2]
+ adds r4, 0x1
+_08072B44:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08072B32
+ adds r0, r4, 0
+ bl DungeonRandomCapped
+ adds r3, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x38
+ cmp r3, 0x6
+ bgt _08072B6C
+ lsls r0, r3, 3
+ adds r2, r0, r5
+_08072B60:
+ ldr r0, [r2, 0x8]
+ ldr r1, [r2, 0xC]
+ stm r2!, {r0,r1}
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08072B60
+_08072B6C:
+ movs r0, 0
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8072B24
+
+ thumb_func_start sub_8072B78
+sub_8072B78:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r5, r2, 16
+ asrs r5, 16
+ ldr r6, [r7, 0x70]
+ ldr r4, _08072BFC
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_80708B4
+ adds r4, 0x50
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl CopyCyanSpeciesNametoBuffer
+ adds r0, r5, 0
+ bl sub_80687D0
+ adds r4, r0, 0
+ lsls r0, r5, 16
+ lsrs r0, 16
+ strh r0, [r6, 0x4]
+ strh r0, [r6, 0x2]
+ ldrb r2, [r6, 0x9]
+ mov r0, sp
+ adds r1, r5, 0
+ bl GetPokemonLevelData
+ ldr r0, [sp]
+ str r0, [r6, 0x18]
+ str r4, [r7, 0x64]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_806BFC0
+ adds r0, r7, 0
+ bl sub_8069E0C
+ adds r0, r7, 0
+ movs r1, 0x7
+ bl sub_806CCB4
+ ldr r0, _08072C00
+ ldr r2, [r0]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80522F4
+ adds r0, r7, 0
+ bl sub_8042A44
+ bl sub_8083D78
+ movs r0, 0x9E
+ lsls r0, 1
+ cmp r5, r0
+ bne _08072C74
+ movs r5, 0
+ ldr r4, _08072C04
+ b _08072C0C
+ .align 2, 0
+_08072BFC: .4byte gAvailablePokemonNames
+_08072C00: .4byte gUnknown_80FE2EC
+_08072C04: .4byte gUnknown_80F4448
+_08072C08:
+ adds r4, 0x4
+ adds r5, 0x1
+_08072C0C:
+ cmp r5, 0x7
+ bgt _08072C36
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r7, r2]
+ adds r0, r1
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ movs r3, 0x6
+ ldrsh r2, [r7, r3]
+ adds r1, r2
+ bl sub_804954C
+ adds r1, r0, 0
+ ldr r0, _08072C80
+ bl sub_807034C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072C08
+_08072C36:
+ ldr r0, _08072C80
+ mov r8, r0
+ bl sub_803D930
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072C74
+ add r0, sp, 0xC
+ movs r3, 0
+ movs r4, 0
+ mov r1, r8
+ strh r1, [r0]
+ ldrb r1, [r6, 0x9]
+ strh r1, [r0, 0x8]
+ strb r3, [r0, 0x2]
+ ldr r1, _08072C84
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrh r1, [r7, 0x4]
+ ldrh r5, [r2]
+ adds r1, r5
+ strh r1, [r0, 0xC]
+ ldrh r1, [r7, 0x6]
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0xE]
+ str r4, [r0, 0x4]
+ strb r3, [r0, 0x10]
+ movs r1, 0x1
+ bl sub_806B7F8
+_08072C74:
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08072C80: .4byte 0x0000013d
+_08072C84: .4byte gUnknown_80F4448
+ thumb_func_end sub_8072B78
+
+ thumb_func_start sub_8072C88
+sub_8072C88:
+ push {lr}
+ ldr r1, [r0, 0x70]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08072CA2
+ adds r0, r1, 0
+ adds r0, 0x94
+ ldrb r0, [r0]
+ bl sub_808EAFC
+ lsls r0, 24
+ lsrs r0, 24
+ b _08072CA4
+_08072CA2:
+ movs r0, 0
+_08072CA4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8072C88
+
+ thumb_func_start sub_8072CA8
+sub_8072CA8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x70]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08072CEC
+ bl sub_8083600
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08072CEC
+ ldr r0, [r4, 0x70]
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08072CEC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8071598
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072CEC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8045A00
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072CEC
+ adds r0, r4, 0
+ b _08072CEE
+_08072CEC:
+ movs r0, 0
+_08072CEE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8072CA8
+
+ thumb_func_start sub_8072CF4
+sub_8072CF4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r1, _08072D4C
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r6, [r4, 0x70]
+ adds r0, r6, 0
+ adds r0, 0xFC
+ movs r1, 0
+ strb r1, [r0]
+ subs r0, 0x9
+ strb r1, [r0]
+ ldr r0, _08072D50
+ ldr r0, [r0]
+ adds r0, 0xB8
+ str r4, [r0]
+ ldr r2, _08072D54
+ adds r0, r6, 0
+ adds r0, 0x44
+ ldrh r0, [r0]
+ lsls r1, r0, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08072D64
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ beq _08072D58
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_805EFB4
+ b _08072D64
+ .align 2, 0
+_08072D4C: .4byte gUnknown_203B434
+_08072D50: .4byte gDungeonGlobalData
+_08072D54: .4byte gUnknown_80F58F4
+_08072D58:
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8075BA4
+_08072D64:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8070D04
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072D86
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl IsCharging
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072D86
+ adds r0, r4, 0
+ bl sub_8079764
+_08072D86:
+ movs r7, 0x1
+ movs r5, 0xFB
+ movs r0, 0x8C
+ lsls r0, 1
+ adds r2, r6, r0
+ movs r3, 0x3
+_08072D92:
+ ldrb r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08072DA4
+ ldrb r1, [r2, 0x1]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+_08072DA4:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08072D92
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8045028
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072E08
+ adds r0, r4, 0
+ bl sub_807520C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072DF0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08072DD2
+ b _080732D4
+_08072DD2:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072DE0
+ b _080732D4
+_08072DE0:
+ ldr r0, _08072DEC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08072DF0
+ movs r0, 0x1
+ b _080732D6
+ .align 2, 0
+_08072DEC: .4byte gUnknown_202F32D
+_08072DF0:
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _08072DFC
+ movs r0, 0xA
+ bl sub_8052740
+_08072DFC:
+ adds r0, r4, 0
+ bl sub_806A1E8
+ movs r0, 0xA
+ bl sub_803E46C
+_08072E08:
+ adds r0, r6, 0
+ adds r0, 0x44
+ ldrh r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bls _08072E26
+ cmp r1, 0x4
+ beq _08072E26
+ cmp r1, 0x2
+ beq _08072E26
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r6, r2
+ movs r0, 0x1
+ strb r0, [r1]
+_08072E26:
+ movs r3, 0
+ mov r10, r3
+ movs r7, 0xA5
+ lsls r7, 1
+ adds r0, r6, r7
+ mov r1, r10
+ strb r1, [r0]
+ ldr r0, _08072E50
+ strb r1, [r0]
+ ldr r0, _08072E54
+ strb r1, [r0]
+ ldrh r0, [r5]
+ subs r0, 0x2
+ cmp r0, 0x3F
+ bls _08072E46
+ b _080731B4
+_08072E46:
+ lsls r0, 2
+ ldr r1, _08072E58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08072E50: .4byte gUnknown_202F221
+_08072E54: .4byte gUnknown_202F222
+_08072E58: .4byte _08072E5C
+ .align 2, 0
+_08072E5C:
+ .4byte _08072F5C
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _08073104
+ .4byte _080730A4
+ .4byte _0807310C
+ .4byte _0807311C
+ .4byte _080731B4
+ .4byte _08073094
+ .4byte _08073094
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _08073094
+ .4byte _0807314C
+ .4byte _08073154
+ .4byte _0807303E
+ .4byte _080731B4
+ .4byte _0807315C
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _08073186
+ .4byte _0807318E
+ .4byte _08073170
+ .4byte _08073046
+ .4byte _0807311C
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _0807309C
+ .4byte _08073162
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080731B4
+ .4byte _080730AC
+ .4byte _080730B4
+ .4byte _080730C4
+ .4byte _08073196
+ .4byte _08073114
+ .4byte _080730E0
+ .4byte _080730CC
+ .4byte _080730D6
+ .4byte _080730BC
+ .4byte _0807317E
+ .4byte _080731B4
+ .4byte _0807311C
+_08072F5C:
+ adds r0, r6, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08072F76
+ cmp r0, 0x7
+ beq _08072F76
+ cmp r0, 0x5
+ beq _08072F76
+ cmp r0, 0x3
+ beq _08072F76
+ cmp r0, 0x4
+ bne _08072F84
+_08072F76:
+ movs r0, 0
+ strh r0, [r5]
+ ldr r2, _08072F80
+ adds r1, r6, r2
+ b _08072FDA
+ .align 2, 0
+_08072F80: .4byte 0x00000147
+_08072F84:
+ movs r3, 0
+ mov r9, r3
+ ldr r1, _08072FE0
+ adds r2, r6, 0
+ adds r2, 0x46
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r7, [r4, 0x4]
+ adds r1, r7
+ lsls r1, 16
+ ldrh r0, [r0, 0x2]
+ ldrh r7, [r4, 0x6]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r1, 16
+ mov r8, r1
+ orrs r1, r0
+ mov r8, r1
+ ldrh r1, [r6]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ adds r7, r2, 0
+ cmp r0, 0
+ bne _08072FCC
+ adds r0, r4, 0
+ adds r1, r3, 0
+ bl sub_8070D6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08072FCC
+ movs r2, 0x1
+ mov r9, r2
+_08072FCC:
+ mov r3, r9
+ cmp r3, 0
+ beq _08072FE8
+ movs r0, 0
+ strh r0, [r5]
+ ldr r7, _08072FE4
+ adds r1, r6, r7
+_08072FDA:
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080731B8
+ .align 2, 0
+_08072FE0: .4byte gUnknown_80F4448
+_08072FE4: .4byte 0x00000147
+_08072FE8:
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ asrs r2, r0, 16
+ adds r0, r4, 0
+ movs r3, 0
+ bl sub_80694C0
+ ldrb r1, [r7]
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_8074FB0
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073038
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08073038
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073038
+ adds r0, r4, 0x4
+ bl sub_804AE08
+_08073038:
+ movs r1, 0x1
+ mov r10, r1
+ b _080731B8
+_0807303E:
+ adds r0, r4, 0
+ bl sub_807CABC
+ b _080731B8
+_08073046:
+ ldr r0, _08073064
+ ldr r1, [r0]
+ ldr r2, _08073068
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x15
+ bne _08073074
+ ldr r3, _0807306C
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08073074
+ ldr r0, _08073070
+ b _080731A2
+ .align 2, 0
+_08073064: .4byte gDungeonGlobalData
+_08073068: .4byte 0x00000644
+_0807306C: .4byte 0x000037fe
+_08073070: .4byte gUnknown_80FA5B4
+_08073074:
+ bl sub_804267C
+ ldr r0, _0807308C
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r1, _08073090
+ adds r0, r6, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080731B8
+ .align 2, 0
+_0807308C: .4byte gDungeonGlobalData
+_08073090: .4byte gUnknown_202F32C
+_08073094:
+ adds r0, r4, 0
+ bl sub_8067110
+ b _080731B8
+_0807309C:
+ adds r0, r4, 0
+ bl sub_807CB3C
+ b _080731B8
+_080730A4:
+ adds r0, r4, 0
+ bl sub_8066744
+ b _080731B8
+_080730AC:
+ adds r0, r4, 0
+ bl sub_80668D0
+ b _080731B8
+_080730B4:
+ adds r0, r4, 0
+ bl sub_8066AC0
+ b _080731B8
+_080730BC:
+ adds r0, r4, 0
+ bl sub_8066BD4
+ b _080731B8
+_080730C4:
+ adds r0, r4, 0
+ bl sub_8066CF0
+ b _080731B8
+_080730CC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806675C
+ b _080731B8
+_080730D6:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806684C
+ b _080731B8
+_080730E0:
+ ldr r0, _080730FC
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xBC
+ adds r0, r6, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r7, _08073100
+ adds r1, r7
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ b _080731B8
+ .align 2, 0
+_080730FC: .4byte gDungeonGlobalData
+_08073100: .4byte 0x0001357c
+_08073104:
+ adds r0, r4, 0
+ bl sub_8066D04
+ b _080731B8
+_0807310C:
+ adds r0, r4, 0
+ bl sub_8066E14
+ b _080731B8
+_08073114:
+ adds r0, r4, 0
+ bl sub_8066FA4
+ b _080731B8
+_0807311C:
+ adds r0, r6, 0
+ bl sub_8071A70
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073136
+ adds r0, r4, 0
+ bl nullsub_95
+ adds r0, r4, 0
+ bl sub_80671A0
+ b _080731B8
+_08073136:
+ ldr r0, _08073144
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08073148
+ b _080731A2
+ .align 2, 0
+_08073144: .4byte gAvailablePokemonNames
+_08073148: .4byte gUnknown_80FE6D4
+_0807314C:
+ adds r0, r4, 0
+ bl sub_8067510
+ b _080731B8
+_08073154:
+ adds r0, r4, 0
+ bl sub_8067884
+ b _080731B8
+_0807315C:
+ movs r1, 0xB0
+ lsls r1, 1
+ b _08073164
+_08073162:
+ ldr r1, _0807316C
+_08073164:
+ adds r0, r4, 0
+ bl sub_8067904
+ b _080731B8
+ .align 2, 0
+_0807316C: .4byte 0x00000163
+_08073170:
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807FE9C
+ b _080731B8
+_0807317E:
+ adds r0, r4, 0
+ bl sub_8073D08
+ b _080731B8
+_08073186:
+ adds r0, r4, 0
+ bl sub_8073CF0
+ b _080731B8
+_0807318E:
+ adds r0, r4, 0
+ bl sub_8073CFC
+ b _080731B8
+_08073196:
+ ldr r0, _080731AC
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _080731B0
+_080731A2:
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+ b _080731B8
+ .align 2, 0
+_080731AC: .4byte gAvailablePokemonNames
+_080731B0: .4byte gUnknown_80FE478
+_080731B4:
+ movs r0, 0x1
+ strh r0, [r5]
+_080731B8:
+ adds r0, r4, 0
+ bl sub_807FD84
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080731CC
+ b _080732D4
+_080731CC:
+ ldr r0, [r4, 0x70]
+ movs r2, 0xA5
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080731E2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl sub_8079764
+_080731E2:
+ movs r0, 0
+ bl sub_8041888
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080732D4
+ bl sub_8085140
+ ldr r3, _080732E8
+ adds r1, r6, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08073242
+ movs r5, 0
+ strb r5, [r1]
+ movs r7, 0x8C
+ lsls r7, 1
+ adds r2, r6, r7
+ movs r0, 0x1
+ mov r12, r0
+ movs r7, 0x10
+ movs r3, 0x3
+_08073214:
+ ldrb r1, [r2]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0
+ beq _0807322C
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0807322C
+ movs r0, 0
+ strb r0, [r2, 0x4]
+ movs r5, 0x1
+_0807322C:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08073214
+ cmp r5, 0
+ beq _08073242
+ ldr r0, _080732EC
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl SendMessage
+_08073242:
+ bl sub_807360C
+ bl sub_8044B84
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073264
+ bl sub_807348C
+ bl sub_80732F0
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080732D4
+_08073264:
+ mov r1, r10
+ cmp r1, 0
+ beq _08073270
+ adds r0, r4, 0
+ bl sub_8075818
+_08073270:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080732D4
+ bl sub_8044B84
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807328A
+ bl sub_8046D20
+_0807328A:
+ movs r0, 0
+ bl sub_8041888
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080732D4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080732D4
+ mov r3, r10
+ cmp r3, 0
+ bne _080732D4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080732C8
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_080732C8:
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080732D4:
+ movs r0, 0
+_080732D6:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080732E8: .4byte 0x0000014b
+_080732EC: .4byte gUnknown_80FD2CC
+ thumb_func_end sub_8072CF4
+
+ thumb_func_start sub_80732F0
+sub_80732F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r4, 0
+_080732FE:
+ movs r5, 0
+ ldr r0, _0807335C
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _08073360
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r8, r0
+ bl EntityExists
+ lsls r0, 24
+ adds r4, 0x1
+ str r4, [sp, 0x10]
+ cmp r0, 0
+ bne _08073320
+ b _08073472
+_08073320:
+ mov r0, r8
+ ldr r7, [r0, 0x70]
+ movs r1, 0xB2
+ lsls r1, 1
+ adds r4, r7, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _08073332
+ b _08073472
+_08073332:
+ adds r2, r0, 0
+ mov r9, r2
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8070D04
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807336E
+ mov r0, r8
+ bl sub_8070B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073364
+ ldrb r0, [r4]
+ movs r2, 0xFF
+ orrs r0, r2
+ strb r0, [r4]
+ b _08073472
+ .align 2, 0
+_0807335C: .4byte gDungeonGlobalData
+_08073360: .4byte 0x000135cc
+_08073364:
+ adds r0, r7, 0
+ adds r0, 0xEC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08073378
+_0807336E:
+ ldrb r0, [r4]
+ movs r1, 0xFF
+ orrs r0, r1
+ strb r0, [r4]
+ b _08073472
+_08073378:
+ movs r0, 0x4
+ bl DungeonRandomCapped
+ adds r3, r0, 0
+ movs r4, 0
+_08073382:
+ lsls r0, r3, 3
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r0, r2
+ adds r2, r7, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073448
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r1, [sp, 0x8]
+ lsrs r0, r1, 16
+ cmp r0, 0x8A
+ beq _08073448
+ adds r1, r0, 0
+ ldr r0, _08073434
+ cmp r1, r0
+ beq _08073448
+ movs r6, 0
+ movs r0, 0x46
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r7, r1
+_080733BC:
+ lsls r0, r6, 3
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r0, r2
+ adds r5, r7, r0
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080733F4
+ ldrb r0, [r7, 0x7]
+ cmp r0, 0
+ bne _080733DE
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080733F4
+_080733DE:
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0xE3
+ bne _080733F4
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_80573CC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073440
+_080733F4:
+ adds r4, 0x8
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080733BC
+_080733FC:
+ ldr r0, _08073438
+ mov r1, r8
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807343C
+ ldr r1, [r0]
+ mov r0, r8
+ bl SendMessage
+ movs r0, 0x7
+ mov r1, r9
+ ands r1, r0
+ movs r0, 0
+ mov r2, r10
+ strb r1, [r2]
+ str r0, [sp]
+ add r0, sp, 0x8
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8055FA0
+ movs r5, 0x1
+ b _08073456
+ .align 2, 0
+_08073434: .4byte 0x00000147
+_08073438: .4byte gAvailablePokemonNames
+_0807343C: .4byte gUnknown_80FCF38
+_08073440:
+ adds r0, r5, 0x4
+ bl sub_80838EC
+ b _080733FC
+_08073448:
+ adds r3, 0x1
+ cmp r3, 0x4
+ bne _08073450
+ movs r3, 0
+_08073450:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08073382
+_08073456:
+ movs r2, 0xB2
+ lsls r2, 1
+ adds r1, r7, r2
+ ldrb r0, [r1]
+ movs r2, 0xFF
+ orrs r0, r2
+ strb r0, [r1]
+ cmp r5, 0
+ beq _08073472
+ mov r0, r8
+ movs r1, 0xB8
+ lsls r1, 2
+ bl sub_80421C0
+_08073472:
+ ldr r4, [sp, 0x10]
+ cmp r4, 0x13
+ bgt _0807347A
+ b _080732FE
+_0807347A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80732F0
+
+ thumb_func_start sub_807348C
+sub_807348C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r4, 0
+ movs r0, 0xFF
+ mov r9, r0
+_0807349E:
+ ldr r0, _080734E8
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080734EC
+ adds r0, r2
+ adds r0, r1
+ ldr r7, [r0]
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ adds r4, 0x1
+ str r4, [sp, 0x10]
+ cmp r0, 0
+ bne _080734BE
+ b _080735E6
+_080734BE:
+ ldr r6, [r7, 0x70]
+ ldr r0, _080734F0
+ adds r4, r6, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080734CC
+ b _080735E6
+_080734CC:
+ adds r1, r0, 0
+ mov r8, r1
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_8070D04
+ lsls r0, 24
+ cmp r0, 0
+ beq _080734F4
+ ldrb r0, [r4]
+ mov r2, r9
+ orrs r0, r2
+ strb r0, [r4]
+ b _080735DA
+ .align 2, 0
+_080734E8: .4byte gDungeonGlobalData
+_080734EC: .4byte 0x000135cc
+_080734F0: .4byte 0x00000165
+_080734F4:
+ adds r0, r7, 0
+ bl sub_8070B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073514
+ ldrb r0, [r4]
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0xB2
+ lsls r2, 1
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ mov r2, r9
+ b _080735E2
+_08073514:
+ adds r0, r6, 0
+ adds r0, 0xEC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807354A
+ ldrb r0, [r4]
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0xB2
+ lsls r2, 1
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ mov r2, r9
+ b _080735E2
+_08073532:
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ adds r0, r5, 0x4
+ bl sub_80838EC
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_806ACE8
+ b _0807359C
+_0807354A:
+ movs r3, 0
+ movs r0, 0x46
+ adds r0, r6
+ mov r10, r0
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r4, r6, r1
+_08073558:
+ lsls r0, r3, 3
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r0, r2
+ adds r5, r6, r0
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073594
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _0807357A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08073594
+_0807357A:
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0x19
+ bne _08073594
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ str r3, [sp, 0x14]
+ bl sub_80573CC
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ bne _08073532
+_08073594:
+ adds r4, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08073558
+_0807359C:
+ ldr r0, _08073600
+ adds r1, r7, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08073604
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+ movs r0, 0x7
+ mov r1, r8
+ ands r1, r0
+ movs r0, 0
+ mov r2, r10
+ strb r1, [r2]
+ str r0, [sp]
+ add r0, sp, 0x8
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8055FA0
+ ldr r2, _08073608
+ adds r1, r6, r2
+ ldrb r0, [r1]
+ mov r2, r9
+ orrs r0, r2
+ strb r0, [r1]
+_080735DA:
+ movs r0, 0xB2
+ lsls r0, 1
+ adds r1, r6, r0
+ ldrb r0, [r1]
+_080735E2:
+ orrs r0, r2
+ strb r0, [r1]
+_080735E6:
+ ldr r4, [sp, 0x10]
+ cmp r4, 0x13
+ bgt _080735EE
+ b _0807349E
+_080735EE:
+ 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
+_08073600: .4byte gAvailablePokemonNames
+_08073604: .4byte gUnknown_80FCF50
+_08073608: .4byte 0x00000165
+ thumb_func_end sub_807348C
+
+ thumb_func_start sub_807360C
+sub_807360C:
+ push {r4,r5,lr}
+ movs r5, 0
+_08073610:
+ ldr r0, _08073650
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08073654
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073644
+ ldr r0, [r4, 0x70]
+ movs r2, 0xA9
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08073644
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ bl sub_8077274
+_08073644:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08073610
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08073650: .4byte gDungeonGlobalData
+_08073654: .4byte 0x000135cc
+ thumb_func_end sub_807360C
+
+ thumb_func_start DecideUseItem
+DecideUseItem:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ mov r8, r0
+ ldr r6, [r0, 0x70]
+ bl CannotUseItems
+ lsls r0, 24
+ cmp r0, 0
+ beq _080736B8
+ adds r1, r6, 0
+ adds r1, 0xFC
+ movs r0, 0
+ strb r0, [r1]
+ b _080739C4
+_0807367C:
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x24
+ bl sub_8044C94
+ adds r0, r6, 0
+ adds r0, 0x48
+ add r1, sp, 0x54
+ ldrb r1, [r1]
+ strb r1, [r0]
+ mov r2, r8
+ ldrh r1, [r2, 0x4]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2, 0x6]
+ adds r1, r6, 0
+ adds r1, 0x4E
+ strh r0, [r1]
+ ldr r0, _080736B4
+ adds r0, r7, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r6, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ b _08073718
+ .align 2, 0
+_080736B4: .4byte gUnknown_202F330
+_080736B8:
+ adds r0, r6, 0
+ adds r0, 0xFC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080736C4
+ b _080737DC
+_080736C4:
+ adds r7, r6, 0
+ adds r7, 0x60
+ ldrb r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080736D4
+ b _080739C4
+_080736D4:
+ movs r3, 0x81
+ str r3, [sp, 0x54]
+ ldrb r0, [r7, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0807372C
+ mov r0, r8
+ movs r1, 0x2
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80739DC
+ movs r5, 0
+ ldr r0, _08073724
+ ldr r0, [r0]
+ cmp r5, r0
+ bge _08073718
+ ldr r4, _08073728
+_080736FE:
+ lsls r7, r5, 2
+ ldr r0, [r4]
+ bl sub_8084144
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807367C
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r0, _08073724
+ ldr r0, [r0]
+ cmp r5, r0
+ blt _080736FE
+_08073718:
+ ldr r0, _08073724
+ ldr r0, [r0]
+ cmp r5, r0
+ beq _08073722
+ b _080739C4
+_08073722:
+ b _08073792
+ .align 2, 0
+_08073724: .4byte gUnknown_203B440
+_08073728: .4byte gUnknown_202F358
+_0807372C:
+ cmp r0, 0x1
+ bne _0807377C
+ mov r0, r8
+ adds r1, r7, 0
+ mov r2, sp
+ movs r3, 0x1
+ bl sub_8073AA0
+ ldr r0, _08073778
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08073792
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x24
+ bl sub_8044C94
+ adds r0, r6, 0
+ adds r0, 0x48
+ add r1, sp, 0x54
+ ldrb r1, [r1]
+ strb r1, [r0]
+ mov r2, r8
+ ldrh r1, [r2, 0x4]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2, 0x6]
+ adds r1, r6, 0
+ adds r1, 0x4E
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x4
+ lsls r4, 2
+ add r4, sp
+ b _0807395E
+ .align 2, 0
+_08073778: .4byte gUnknown_203B440
+_0807377C:
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08073792
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x23
+ bl sub_8044C94
+ b _080738CE
+_08073792:
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x39
+ bl sub_8044C94
+ b _080739C4
+_0807379E:
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x24
+ bl sub_8044C94
+ adds r0, r6, 0
+ adds r0, 0x48
+ add r3, sp, 0x54
+ ldrb r3, [r3]
+ strb r3, [r0]
+ mov r0, r8
+ ldrh r1, [r0, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x4C
+ strh r1, [r0]
+ mov r1, r8
+ ldrh r0, [r1, 0x6]
+ adds r1, r6, 0
+ adds r1, 0x4E
+ strh r0, [r1]
+ ldr r0, _080737D8
+ add r0, r10
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r6, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ b _080739C4
+ .align 2, 0
+_080737D8: .4byte gUnknown_202F330
+_080737DC:
+ mov r0, r8
+ movs r1, 0x16
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ bne _080737EC
+ b _080739C4
+_080737EC:
+ movs r2, 0x1
+ str r2, [sp, 0x50]
+_080737F0:
+ ldr r3, [sp, 0x50]
+ cmp r3, 0x1
+ bne _080737FE
+ adds r7, r6, 0
+ adds r7, 0x60
+ movs r0, 0x81
+ b _0807384E
+_080737FE:
+ ldr r1, [sp, 0x50]
+ cmp r1, 0
+ bne _08073832
+ mov r2, r8
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ movs r3, 0x6
+ ldrsh r1, [r2, r3]
+ bl sub_804954C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ bne _0807381C
+ b _080739B8
+_0807381C:
+ bl sub_80450F8
+ cmp r0, 0x3
+ beq _08073826
+ b _080739B8
+_08073826:
+ ldr r0, [r4, 0x14]
+ bl sub_8045108
+ adds r7, r0, 0
+ movs r0, 0x80
+ b _0807384E
+_08073832:
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _0807383A
+ b _080739C4
+_0807383A:
+ ldr r1, _080738C0
+ ldr r2, [sp, 0x50]
+ lsls r0, r2, 2
+ subs r0, 0x8
+ ldr r1, [r1]
+ adds r7, r1, r0
+ adds r0, r2, 0
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+_0807384E:
+ str r0, [sp, 0x54]
+ ldrb r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807385C
+ b _080739B8
+_0807385C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08073866
+ b _080739B8
+_08073866:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08073870
+ b _080739B8
+_08073870:
+ ldrb r0, [r7, 0x2]
+ movs r1, 0
+ bl GetItemAIFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080738EC
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0x2
+ bl sub_8048F28
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080738EC
+ ldrb r0, [r7, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x9
+ bne _080738A4
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080738EC
+_080738A4:
+ adds r0, r5, 0
+ bl sub_8084144
+ lsls r0, 24
+ cmp r0, 0
+ beq _080738EC
+ cmp r4, 0x9
+ bne _080738C4
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x31
+ bl sub_8044C94
+ b _080738CE
+ .align 2, 0
+_080738C0: .4byte gTeamInventory_203B460
+_080738C4:
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x23
+ bl sub_8044C94
+_080738CE:
+ adds r0, r6, 0
+ adds r0, 0x48
+ add r3, sp, 0x54
+ ldrb r3, [r3]
+ strb r3, [r0]
+ mov r0, r8
+ ldrh r1, [r0, 0x4]
+ adds r0, r6, 0
+ adds r0, 0x4C
+ strh r1, [r0]
+ mov r2, r8
+ ldrh r1, [r2, 0x6]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _080739C4
+_080738EC:
+ adds r0, r6, 0
+ bl sub_8071A70
+ lsls r0, 24
+ cmp r0, 0
+ beq _080739B8
+ movs r3, 0x1
+ mov r9, r3
+_080738FC:
+ ldrb r0, [r7, 0x2]
+ mov r1, r9
+ bl GetItemAIFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080739AE
+ ldrb r0, [r7, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08073978
+ mov r0, r8
+ adds r1, r7, 0
+ mov r2, sp
+ movs r3, 0
+ bl sub_8073AA0
+ ldr r1, _08073974
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080739AE
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ adds r0, 0x44
+ movs r1, 0x24
+ bl sub_8044C94
+ adds r0, r6, 0
+ adds r0, 0x48
+ add r2, sp, 0x54
+ ldrb r2, [r2]
+ strb r2, [r0]
+ mov r3, r8
+ ldrh r1, [r3, 0x4]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r3, 0x6]
+ adds r1, r6, 0
+ adds r1, 0x4E
+ strh r0, [r1]
+ lsls r4, 2
+ add r4, sp
+ mov r0, r8
+ adds r0, 0x4
+_0807395E:
+ adds r1, r4, 0
+ bl sub_80983D8
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r6, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ ldr r0, [r4]
+ str r0, [r6, 0x58]
+ b _080739C4
+ .align 2, 0
+_08073974: .4byte gUnknown_203B440
+_08073978:
+ mov r0, r8
+ mov r1, r9
+ adds r2, r7, 0
+ movs r3, 0
+ bl sub_80739DC
+ movs r5, 0
+ ldr r1, _080739D4
+ ldr r0, [r1]
+ cmp r5, r0
+ bge _080739AE
+ ldr r4, _080739D8
+_08073990:
+ lsls r2, r5, 2
+ mov r10, r2
+ ldr r0, [r4]
+ bl sub_8084144
+ lsls r0, 24
+ cmp r0, 0
+ beq _080739A2
+ b _0807379E
+_080739A2:
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r3, _080739D4
+ ldr r0, [r3]
+ cmp r5, r0
+ blt _08073990
+_080739AE:
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x2
+ ble _080738FC
+_080739B8:
+ ldr r2, [sp, 0x50]
+ adds r2, 0x1
+ str r2, [sp, 0x50]
+ cmp r2, 0x15
+ bgt _080739C4
+ b _080737F0
+_080739C4:
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080739D4: .4byte gUnknown_203B440
+_080739D8: .4byte gUnknown_202F358
+ thumb_func_end DecideUseItem
+
+ thumb_func_start sub_80739DC
+sub_80739DC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r10, r1
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r1, _08073A44
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08073A48
+ movs r2, 0
+ adds r0, r1, 0x7
+_08073A00:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08073A00
+ movs r7, 0
+_08073A0A:
+ ldr r0, _08073A4C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08073A50
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073A88
+ cmp r5, r4
+ beq _08073A88
+ mov r0, r10
+ cmp r0, 0x1
+ bne _08073A54
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8071598
+ lsls r0, 24
+ cmp r0, 0
+ bne _08073A88
+ movs r6, 0x3
+ b _08073A6A
+ .align 2, 0
+_08073A44: .4byte gUnknown_203B440
+_08073A48: .4byte gUnknown_202F350
+_08073A4C: .4byte gDungeonGlobalData
+_08073A50: .4byte 0x000135cc
+_08073A54:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8071598
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08073A88
+ movs r6, 0x1
+_08073A6A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073A88
+ mov r2, r8
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r9
+ adds r3, r6, 0
+ bl sub_8073B78
+_08073A88:
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _08073A0A
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80739DC
+
+ thumb_func_start sub_8073AA0
+sub_8073AA0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ mov r10, r1
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r1, _08073B6C
+ movs r0, 0
+ str r0, [r1]
+ movs r6, 0
+ adds r7, r1, 0
+_08073AC0:
+ ldr r0, _08073B70
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08073B74
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+ cmp r5, r4
+ beq _08073B56
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CanSee
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8071598
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08073B56
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _08073B10
+ negs r2, r2
+_08073B10:
+ movs r3, 0x6
+ ldrsh r1, [r4, r3]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _08073B20
+ negs r1, r1
+_08073B20:
+ cmp r1, r2
+ bge _08073B26
+ adds r1, r2, 0
+_08073B26:
+ cmp r1, 0xA
+ bgt _08073B56
+ mov r0, r8
+ cmp r0, 0
+ bne _08073B44
+ adds r0, r4, 0
+ mov r1, r10
+ movs r2, 0x1
+ bl sub_8048F28
+ bl sub_8084144
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073B56
+_08073B44:
+ ldr r2, [r7]
+ lsls r1, r2, 2
+ add r1, r9
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1, 0x2]
+ adds r2, 0x1
+ str r2, [r7]
+_08073B56:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08073AC0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08073B6C: .4byte gUnknown_203B440
+_08073B70: .4byte gDungeonGlobalData
+_08073B74: .4byte 0x000135cc
+ thumb_func_end sub_8073AA0
+
+ thumb_func_start sub_8073B78
+sub_8073B78:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r0, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _08073BA2
+ negs r2, r2
+_08073BA2:
+ movs r3, 0x6
+ ldrsh r1, [r4, r3]
+ movs r6, 0x6
+ ldrsh r0, [r5, r6]
+ subs r1, r0
+ cmp r1, 0
+ bge _08073BB2
+ negs r1, r1
+_08073BB2:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08073BCA
+ adds r0, r1, 0
+ cmp r1, r2
+ bge _08073BC4
+ adds r0, r2, 0
+_08073BC4:
+ cmp r0, 0xA
+ ble _08073BCA
+ b _08073CDC
+_08073BCA:
+ movs r6, 0x1
+ negs r6, r6
+ cmp r2, r1
+ bne _08073C14
+ movs r7, 0x4
+ ldrsh r1, [r4, r7]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bge _08073BFA
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bge _08073BF2
+ movs r6, 0x1
+ b _08073C7E
+_08073BF2:
+ cmp r1, r0
+ ble _08073BFA
+ movs r6, 0x3
+ b _08073C7E
+_08073BFA:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ movs r6, 0x7
+ cmp r1, r0
+ ble _08073C7A
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ ble _08073C7A
+ movs r6, 0x5
+ b _08073C7E
+_08073C14:
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r7, 0x4
+ ldrsh r0, [r5, r7]
+ ldrh r2, [r4, 0x4]
+ ldrh r3, [r5, 0x4]
+ cmp r1, r0
+ bne _08073C34
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bge _08073C34
+ movs r6, 0
+ b _08073C7E
+_08073C34:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bge _08073C4C
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ bne _08073C4C
+ movs r6, 0x2
+ b _08073C7E
+_08073C4C:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ bne _08073C64
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r7, 0x6
+ ldrsh r0, [r5, r7]
+ cmp r1, r0
+ ble _08073C64
+ movs r6, 0x4
+ b _08073C7E
+_08073C64:
+ lsls r1, r2, 16
+ lsls r0, r3, 16
+ cmp r1, r0
+ ble _08073C7A
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _08073C7A
+ movs r6, 0x6
+_08073C7A:
+ cmp r6, 0
+ blt _08073CDC
+_08073C7E:
+ ldr r0, _08073CC0
+ adds r7, r6, r0
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _08073CDC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xA
+ bl sub_807C9F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073CDC
+ movs r0, 0x1
+ strb r0, [r7]
+ ldr r1, _08073CC4
+ ldr r0, _08073CC8
+ ldr r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r1
+ str r6, [r1]
+ ldr r1, _08073CCC
+ adds r4, r0, r1
+ mov r3, r8
+ cmp r3, 0
+ bne _08073CD0
+ adds r0, r5, 0
+ mov r1, r9
+ mov r2, r10
+ bl sub_8048F28
+ b _08073CD2
+ .align 2, 0
+_08073CC0: .4byte gUnknown_202F350
+_08073CC4: .4byte gUnknown_202F330
+_08073CC8: .4byte gUnknown_203B440
+_08073CCC: .4byte gUnknown_202F358
+_08073CD0:
+ movs r0, 0x64
+_08073CD2:
+ str r0, [r4]
+ ldr r1, _08073CEC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08073CDC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08073CEC: .4byte gUnknown_203B440
+ thumb_func_end sub_8073B78
+
+ thumb_func_start sub_8073CF0
+sub_8073CF0:
+ push {lr}
+ bl sub_8067110
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073CF0
+
+ thumb_func_start sub_8073CFC
+sub_8073CFC:
+ push {lr}
+ bl sub_80671A0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073CFC
+
+ thumb_func_start sub_8073D08
+sub_8073D08:
+ push {lr}
+ bl sub_8073D14
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8073D08
+
+ thumb_func_start sub_8073D14
+sub_8073D14:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xB0
+ adds r6, r0, 0
+ ldr r4, [r6, 0x70]
+ bl sub_8045128
+ ldr r5, [r0, 0x14]
+ cmp r5, 0
+ bne _08073D30
+ b _0807407A
+_08073D30:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073D3C
+ b _0807407A
+_08073D3C:
+ ldr r0, _08073D68
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0
+ beq _08073D4E
+ b _0807407A
+_08073D4E:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x1
+ bne _08073D56
+ b _0807407A
+_08073D56:
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08073D64
+ cmp r0, 0x47
+ bne _08073D6C
+_08073D64:
+ movs r0, 0x1
+ b _08073D6E
+ .align 2, 0
+_08073D68: .4byte gAvailablePokemonNames
+_08073D6C:
+ movs r0, 0
+_08073D6E:
+ cmp r0, 0
+ beq _08073D74
+ b _0807407A
+_08073D74:
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08073D80
+ b _0807407A
+_08073D80:
+ ldr r0, [r6, 0x70]
+ mov r10, r0
+ adds r0, r5, 0
+ bl sub_8045108
+ adds r5, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08073D98
+ b _0807407A
+_08073D98:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8071518
+ lsls r0, 24
+ cmp r0, 0
+ beq _08073DC8
+ ldr r0, _08073DBC
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08073DC0
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08073DC4
+ b _0807404C
+ .align 2, 0
+_08073DBC: .4byte gUnknown_202DE58
+_08073DC0: .4byte gAvailablePokemonNames
+_08073DC4: .4byte gUnknown_80F8F88
+_08073DC8:
+ mov r1, r10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08073E24
+ ldrb r0, [r5, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08073E24
+ mov r7, r10
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0
+ beq _08073DF4
+ ldr r0, _08073DF0
+ bl PlaySoundEffect
+ b _08073DFC
+ .align 2, 0
+_08073DF0: .4byte 0x0000014b
+_08073DF4:
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySoundEffect
+_08073DFC:
+ adds r0, r5, 0
+ bl GetMoneyValue
+ bl AddToTeamMoney
+ ldr r0, _08073E1C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08073E20
+ b _0807404C
+ .align 2, 0
+_08073E1C: .4byte gUnknown_202DE58
+_08073E20: .4byte gUnknown_80F9054
+_08073E24:
+ ldr r0, _08073E64
+ ldr r0, [r0]
+ ldr r1, _08073E68
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08073E70
+ mov r7, r10
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0
+ bne _08073E70
+ movs r4, 0
+ add r2, sp, 0x54
+ adds r7, 0x60
+ ldr r0, _08073E6C
+ mov r1, sp
+ ldr r0, [r0]
+ adds r3, r2, 0
+_08073E48:
+ stm r3!, {r0}
+ stm r1!, {r4}
+ adds r0, 0x4
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08073E48
+ str r7, [r2, 0x50]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x50]
+ movs r0, 0x15
+ mov r8, r0
+ b _08073E80
+ .align 2, 0
+_08073E64: .4byte gDungeonGlobalData
+_08073E68: .4byte 0x0000065b
+_08073E6C: .4byte gTeamInventory_203B460
+_08073E70:
+ mov r0, r10
+ adds r0, 0x60
+ str r0, [sp, 0x54]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ movs r1, 0x1
+ mov r8, r1
+_08073E80:
+ ldrb r0, [r5, 0x2]
+ add r7, sp, 0xA8
+ strb r0, [r7]
+ adds r0, r7, 0
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08073E90
+ b _08073FA8
+_08073E90:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08073E9C
+ b _08073FA8
+_08073E9C:
+ movs r1, 0x1
+ negs r1, r1
+ mov r12, r1
+ mov r7, r12
+ str r7, [sp, 0xAC]
+ movs r4, 0
+ cmp r4, r8
+ bge _08073EEC
+ ldr r0, _08073F94
+ mov r9, r0
+ add r3, sp, 0x54
+_08073EB2:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073EE4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08073EE4
+ ldr r1, [r5]
+ mov r7, r9
+ ands r1, r7
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r1, r0
+ bne _08073EE4
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08073EE4
+ ldr r1, [sp, 0xAC]
+ cmp r1, r0
+ bge _08073EE4
+ str r0, [sp, 0xAC]
+ mov r12, r4
+_08073EE4:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08073EB2
+_08073EEC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ bne _08073F40
+ mov r7, r12
+ str r7, [sp, 0xAC]
+ movs r4, 0
+ cmp r4, r8
+ bge _08073F38
+ add r0, sp, 0xA8
+ ldrb r0, [r0]
+ mov r9, r0
+ add r3, sp, 0x54
+_08073F06:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073F30
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08073F30
+ ldrb r1, [r2, 0x2]
+ cmp r9, r1
+ bne _08073F30
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08073F30
+ ldr r7, [sp, 0xAC]
+ cmp r7, r0
+ bge _08073F30
+ str r0, [sp, 0xAC]
+ mov r12, r4
+_08073F30:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08073F06
+_08073F38:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ beq _08073FA8
+_08073F40:
+ add r0, sp, 0x54
+ mov r1, r12
+ lsls r4, r1, 2
+ adds r3, r0, r4
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r5, 0x1]
+ adds r1, r0
+ cmp r1, 0x62
+ ble _08073F56
+ movs r1, 0x63
+_08073F56:
+ strb r1, [r2, 0x1]
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08073F6C
+ ldr r0, [r3]
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_08073F6C:
+ ldr r0, _08073F98
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ movs r0, 0xA5
+ lsls r0, 1
+ bl PlaySoundEffect
+ mov r7, sp
+ adds r0, r7, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08073FA0
+ ldr r0, _08073F9C
+ b _0807404C
+ .align 2, 0
+_08073F94: .4byte 0x00ff0008
+_08073F98: .4byte gUnknown_202DE58
+_08073F9C: .4byte gUnknown_80F9018
+_08073FA0:
+ ldr r0, _08073FA4
+ b _0807404C
+ .align 2, 0
+_08073FA4: .4byte gUnknown_80F9050
+_08073FA8:
+ movs r4, 0
+ cmp r4, r8
+ bge _08073FD2
+ ldr r0, [sp, 0x54]
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08073FD2
+ movs r3, 0x1
+ add r2, sp, 0x54
+_08073FBE:
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ bge _08073FD2
+ ldr r0, [r2]
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08073FBE
+_08073FD2:
+ cmp r4, r8
+ bne _08073FEC
+ ldr r0, _08073FE4
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08073FE8
+ b _0807404C
+ .align 2, 0
+_08073FE4: .4byte gUnknown_202DE58
+_08073FE8: .4byte gUnknown_80F8F54
+_08073FEC:
+ mov r1, r10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08074000
+ ldr r0, _08073FFC
+ bl PlaySoundEffect
+ b _08074008
+ .align 2, 0
+_08073FFC: .4byte 0x0000014b
+_08074000:
+ movs r0, 0xA5
+ lsls r0, 1
+ bl PlaySoundEffect
+_08074008:
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08074034
+ ldr r0, [r5]
+ mov r7, r10
+ str r0, [r7, 0x60]
+ ldr r0, _0807402C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08074030
+ b _0807404C
+ .align 2, 0
+_0807402C: .4byte gUnknown_202DE58
+_08074030: .4byte gUnknown_80F9018
+_08074034:
+ adds r0, r5, 0
+ bl AddItemToInventory
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074060
+ ldr r0, _08074058
+ adds r1, r6, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _0807405C
+_0807404C:
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_805239C
+ b _0807407A
+ .align 2, 0
+_08074058: .4byte gAvailablePokemonNames
+_0807405C: .4byte gUnknown_80F8FAC
+_08074060:
+ ldr r0, _0807408C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ adds r0, r6, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08074090
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl sub_805239C
+_0807407A:
+ add sp, 0xB0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807408C: .4byte gUnknown_202DE58
+_08074090: .4byte gUnknown_80F9050
+ thumb_func_end sub_8073D14
+
+ thumb_func_start sub_8074094
+sub_8074094:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _080740AA
+ bl _08074B2E
+_080740AA:
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080740B8
+ bl _08074B2E
+_080740B8:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080740C8
+ bl _08074B2E
+_080740C8:
+ ldr r0, [r5, 0x70]
+ mov r8, r0
+ movs r0, 0xA3
+ lsls r0, 1
+ add r0, r8
+ strb r6, [r0]
+ bl sub_805229C
+ adds r0, r5, 0
+ bl sub_807E8F0
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074170
+ ldr r4, _0807434C
+ add r4, r8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _08074102
+ movs r0, 0x13
+ strb r0, [r4]
+_08074102:
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ ldr r2, _08074350
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ bge _08074170
+ strb r6, [r4]
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074136
+ bl _08074B2E
+_08074136:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08074146
+ bl _08074B2E
+_08074146:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+ mov r3, r8
+ ldrb r0, [r3, 0x7]
+ cmp r0, 0
+ bne _0807415C
+ b _080743B0
+_0807415C:
+ ldr r1, _08074354
+ ldr r0, [r1]
+ strb r4, [r0, 0x1]
+ ldr r0, [r1]
+ movs r4, 0xB8
+ lsls r4, 3
+ adds r0, r4
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+_08074170:
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ bne _0807417A
+ b _080743B0
+_0807417A:
+ movs r2, 0
+ mov r9, r2
+ movs r4, 0xA
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074190
+ movs r4, 0
+_08074190:
+ adds r0, r5, 0
+ movs r1, 0x1F
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741A0
+ subs r4, 0x1
+_080741A0:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741B0
+ subs r4, 0x1
+_080741B0:
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741C0
+ adds r4, 0x1
+_080741C0:
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741D0
+ adds r4, 0x1
+_080741D0:
+ adds r0, r5, 0
+ movs r1, 0x2B
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080741E0
+ adds r4, 0x1
+_080741E0:
+ cmp r4, 0
+ bge _080741E6
+ movs r4, 0
+_080741E6:
+ cmp r4, 0x13
+ ble _080741EC
+ movs r4, 0x13
+_080741EC:
+ mov r3, r9
+ str r3, [sp, 0x8]
+ ldr r0, _08074358
+ str r0, [sp, 0xC]
+ add r6, sp, 0x10
+ lsls r2, r4, 3
+ ldr r0, _0807435C
+ adds r2, r0
+ adds r0, r6, 0
+ add r1, sp, 0x8
+ bl sub_800A34C
+ ldr r2, _08074360
+ add r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bls _0807421E
+ ldr r1, _08074364
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r6, 0x4]
+ adds r0, r1
+ str r0, [r6, 0x4]
+_0807421E:
+ mov r4, r9
+ strb r4, [r2]
+ movs r4, 0x9E
+ lsls r4, 1
+ add r4, r8
+ ldr r7, [r4]
+ add r0, sp, 0x18
+ adds r1, r6, 0
+ bl sub_80943A8
+ ldr r2, [sp, 0x18]
+ add r0, sp, 0x1C
+ adds r1, r7, 0
+ bl sub_80942C0
+ ldr r0, [sp, 0x1C]
+ str r0, [r4]
+ movs r6, 0x1
+ adds r0, r7, 0
+ bl sub_8094450
+ cmp r0, 0x13
+ ble _0807425C
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0x13
+ bgt _0807425C
+ ldr r0, _08074368
+ ldr r0, [r0]
+ mov r9, r0
+_0807425C:
+ adds r0, r7, 0
+ bl sub_8094450
+ cmp r0, 0x9
+ ble _0807427C
+ movs r0, 0x9E
+ lsls r0, 1
+ add r0, r8
+ ldr r0, [r0]
+ bl sub_8094450
+ cmp r0, 0x9
+ bgt _0807427C
+ ldr r0, _0807436C
+ ldr r0, [r0]
+ mov r9, r0
+_0807427C:
+ movs r4, 0x9E
+ lsls r4, 1
+ add r4, r8
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bne _08074298
+ add r0, sp, 0x20
+ movs r1, 0
+ bl sub_80943A0
+ ldr r0, [sp, 0x20]
+ str r0, [r4]
+_08074298:
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bge _080742AE
+ add r0, sp, 0x24
+ movs r1, 0
+ bl sub_80943A0
+ ldr r0, [sp, 0x24]
+ str r0, [r4]
+_080742AE:
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ bne _08074384
+ bl sub_805E804
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080742D8
+ bl _08074B2E
+_080742D8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080742E6
+ bl _08074B2E
+_080742E6:
+ ldr r3, _08074354
+ ldr r0, [r3]
+ ldr r2, _08074370
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x9
+ bhi _080742F8
+ adds r0, 0x1
+ strb r0, [r1]
+_080742F8:
+ ldr r0, [r3]
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _08074308
+ ldr r0, _08074374
+ ldr r0, [r0]
+ mov r9, r0
+_08074308:
+ cmp r2, 0x2
+ bne _08074314
+ ldr r0, _08074378
+ ldr r0, [r0]
+ mov r9, r0
+ movs r6, 0
+_08074314:
+ cmp r2, 0x3
+ bne _08074320
+ ldr r0, _0807437C
+ ldr r0, [r0]
+ mov r9, r0
+ movs r6, 0
+_08074320:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r3, _08074380
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_806F324
+ movs r1, 0xA3
+ lsls r1, 1
+ add r1, r8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r4]
+ bl sub_8094450
+ cmp r0, 0
+ beq _08074390
+ b _080743B0
+ .align 2, 0
+_0807434C: .4byte 0x00000169
+_08074350: .4byte gUnknown_80F5594
+_08074354: .4byte gDungeonGlobalData
+_08074358: .4byte 0x0000199a
+_0807435C: .4byte gUnknown_80F54F4
+_08074360: .4byte 0x00000153
+_08074364: .4byte gUnknown_80F60DC
+_08074368: .4byte gUnknown_80FD594
+_0807436C: .4byte gUnknown_80FD5B8
+_08074370: .4byte 0x00000679
+_08074374: .4byte gUnknown_80FD5DC
+_08074378: .4byte gUnknown_80FD608
+_0807437C: .4byte gUnknown_80FD628
+_08074380: .4byte 0x00000211
+_08074384:
+ ldr r0, _08074408
+ ldr r0, [r0]
+ ldr r1, _0807440C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_08074390:
+ mov r2, r9
+ cmp r2, 0
+ beq _080743B0
+ cmp r6, 0
+ beq _080743A0
+ ldr r0, _08074410
+ bl PlaySoundEffect
+_080743A0:
+ adds r0, r5, 0
+ mov r1, r9
+ bl SendMessage
+ movs r0, 0x1E
+ movs r1, 0x32
+ bl sub_803E708
+_080743B0:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080743BE
+ b _08074B2E
+_080743BE:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080743CA
+ b _08074B2E
+_080743CA:
+ ldr r0, _08074408
+ ldr r0, [r0]
+ ldr r3, _08074414
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08074480
+ adds r0, r5, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _0807441C
+ adds r0, r5, 0
+ movs r1, 0x6
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ ldr r0, _08074418
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r3, 0x88
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x12
+ bl sub_806F324
+ b _08074466
+ .align 2, 0
+_08074408: .4byte gDungeonGlobalData
+_0807440C: .4byte 0x00000679
+_08074410: .4byte 0x00000153
+_08074414: .4byte 0x0000e266
+_08074418: .4byte gUnknown_80F4F8E
+_0807441C:
+ adds r0, r5, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0x9
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl sub_8071858
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074466
+ ldr r0, _08074608
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r3, 0x88
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x12
+ bl sub_806F324
+_08074466:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074474
+ b _08074B2E
+_08074474:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074480
+ b _08074B2E
+_08074480:
+ movs r0, 0x64
+ bl DungeonRandomCapped
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x21
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744D8
+ ldr r0, _0807460C
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r4, r0
+ bge _080744D8
+ adds r0, r5, 0
+ bl sub_8070A58
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744D8
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080744C0
+ b _08074B2E
+_080744C0:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080744CC
+ b _08074B2E
+_080744CC:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8079F20
+_080744D8:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807450C
+ ldr r2, _08074610
+ add r2, r8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r1, [r2]
+ ldr r0, _08074614
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ blt _0807450C
+ movs r0, 0
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r2, 0x7F
+ movs r3, 0
+ bl sub_8077910
+_0807450C:
+ mov r0, r8
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0807453C
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807452A
+ b _08074B2E
+_0807452A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074536
+ b _08074B2E
+_08074536:
+ adds r0, r5, 0
+ bl sub_80420B8
+_0807453C:
+ mov r0, r8
+ adds r0, 0xAC
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0x1
+ bne _080745B6
+ mov r4, r8
+ adds r4, 0xAE
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807455C
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807459C
+_0807455C:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074570
+ b _08074B2E
+_08074570:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807457C
+ b _08074B2E
+_0807457C:
+ ldr r0, _08074618
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _0807461C
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r3, 0x82
+ lsls r3, 2
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_806F324
+_0807459C:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080745AA
+ b _08074B2E
+_080745AA:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080745B6
+ b _08074B2E
+_080745B6:
+ ldrb r0, [r6]
+ cmp r0, 0x2
+ bne _08074628
+ mov r4, r8
+ adds r4, 0xAE
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080745D0
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074696
+_080745D0:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080745E4
+ b _08074B2E
+_080745E4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080745F0
+ b _08074B2E
+_080745F0:
+ ldr r0, _08074620
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _08074624
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ b _0807468C
+ .align 2, 0
+_08074608: .4byte gUnknown_80F4F8E
+_0807460C: .4byte gUnknown_80F4E0C
+_08074610: .4byte 0x00000113
+_08074614: .4byte gUnknown_80F4F30
+_08074618: .4byte gUnknown_80F4F32
+_0807461C: .4byte gUnknown_80F4F70
+_08074620: .4byte gUnknown_80F4F34
+_08074624: .4byte gUnknown_80F4F72
+_08074628:
+ cmp r0, 0x3
+ bne _080746B0
+ mov r2, r8
+ adds r2, 0xAE
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08074640
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074696
+_08074640:
+ mov r1, r8
+ adds r1, 0xAF
+ ldrb r4, [r1]
+ cmp r4, 0x1C
+ bhi _0807464E
+ adds r0, r4, 0x1
+ strb r0, [r1]
+_0807464E:
+ ldr r0, _08074718
+ ldrh r0, [r0]
+ strb r0, [r2]
+ cmp r4, 0x1C
+ ble _0807465A
+ movs r4, 0x1D
+_0807465A:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807466E
+ b _08074B2E
+_0807466E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807467A
+ b _08074B2E
+_0807467A:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r1, _0807471C
+ lsls r0, r4, 1
+ adds r0, r1
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+_0807468C:
+ ldr r3, _08074720
+ adds r0, r5, 0
+ movs r2, 0x3
+ bl sub_806F324
+_08074696:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080746A4
+ b _08074B2E
+_080746A4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080746B0
+ b _08074B2E
+_080746B0:
+ mov r0, r8
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ mov r10, r0
+ cmp r1, 0x7
+ bne _08074730
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080746D0
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074786
+_080746D0:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080746E4
+ b _08074B2E
+_080746E4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080746F0
+ b _08074B2E
+_080746F0:
+ ldr r0, _08074724
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ mov r0, r8
+ adds r0, 0xB4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl sub_8041C4C
+ ldr r0, _08074728
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, _0807472C
+ adds r0, r5, 0
+ movs r2, 0x2
+ b _08074782
+ .align 2, 0
+_08074718: .4byte gUnknown_80F4F36
+_0807471C: .4byte gUnknown_80F4FC8
+_08074720: .4byte 0x0000020a
+_08074724: .4byte gUnknown_80F4F38
+_08074728: .4byte gUnknown_80F4F74
+_0807472C: .4byte 0x00000209
+_08074730:
+ cmp r1, 0x4
+ bne _080747B0
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074748
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074786
+_08074748:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807475C
+ b _08074B2E
+_0807475C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074768
+ b _08074B2E
+_08074768:
+ ldr r0, _080747A4
+ ldrh r0, [r0]
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r0, _080747A8
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, _080747AC
+ adds r0, r5, 0
+ movs r2, 0x5
+_08074782:
+ bl sub_806F324
+_08074786:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074794
+ b _08074B2E
+_08074794:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080747A0
+ b _08074B2E
+_080747A0:
+ b _08074802
+ .align 2, 0
+_080747A4: .4byte gUnknown_80F4F3A
+_080747A8: .4byte gUnknown_80F4F76
+_080747AC: .4byte 0x0000020b
+_080747B0:
+ cmp r1, 0x5
+ bne _08074802
+ mov r4, r8
+ adds r4, 0xB9
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080747C8
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074802
+_080747C8:
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080747DC
+ b _08074B2E
+_080747DC:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080747E8
+ b _08074B2E
+_080747E8:
+ ldr r0, _080748D4
+ ldrh r0, [r0]
+ strb r0, [r4]
+ ldr r0, _080748D8
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl HealTargetHP
+_08074802:
+ mov r0, r8
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807488A
+ mov r2, r8
+ adds r2, 0xCC
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08074820
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074870
+_08074820:
+ mov r0, r8
+ movs r3, 0x10
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ bge _0807482C
+ adds r1, 0x3
+_0807482C:
+ asrs r4, r1, 2
+ cmp r4, 0
+ bne _08074834
+ movs r4, 0x1
+_08074834:
+ ldr r0, _080748DC
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807484E
+ b _08074B2E
+_0807484E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807485A
+ b _08074B2E
+_0807485A:
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ movs r3, 0x83
+ lsls r3, 2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_806F324
+_08074870:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807487E
+ b _08074B2E
+_0807487E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807488A
+ b _08074B2E
+_0807488A:
+ mov r3, r8
+ adds r3, 0xD0
+ ldrb r4, [r3]
+ mov r9, r4
+ cmp r4, 0x1
+ beq _08074898
+ b _080749AE
+_08074898:
+ mov r2, r8
+ adds r2, 0xDA
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080748AC
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074994
+_080748AC:
+ ldr r0, _080748E0
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ ldr r0, _080748E4
+ ldr r1, [r0]
+ mov r0, r8
+ adds r0, 0xD8
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r4, _080748E8
+ adds r1, r4
+ adds r1, r0
+ ldr r4, [r1]
+ ldr r0, _080748EC
+ ldrh r0, [r0]
+ strb r0, [r2]
+ cmp r4, 0
+ bne _080748F0
+ strb r4, [r3]
+ b _08074994
+ .align 2, 0
+_080748D4: .4byte gUnknown_80F4F3C
+_080748D8: .4byte gUnknown_80F4FB2
+_080748DC: .4byte gUnknown_80F4F3E
+_080748E0: .4byte gUnknown_80F4FB4
+_080748E4: .4byte gDungeonGlobalData
+_080748E8: .4byte 0x000135cc
+_080748EC: .4byte gUnknown_80F4F40
+_080748F0:
+ ldr r0, [r4, 0x70]
+ adds r0, 0x98
+ mov r1, r8
+ adds r1, 0xD4
+ ldr r2, [r0]
+ ldr r0, [r1]
+ cmp r2, r0
+ beq _08074906
+ movs r0, 0
+ strb r0, [r3]
+ b _08074994
+_08074906:
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl HasAbility
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ bl sub_80444F4
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807492C
+ b _08074B2E
+_0807492C:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807493A
+ b _08074B2E
+_0807493A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074946
+ b _08074B2E
+_08074946:
+ mov r1, r10
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _08074994
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ ldr r3, _08074980
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x9
+ bl sub_806F324
+ cmp r7, 0
+ beq _08074984
+ adds r0, r4, 0
+ adds r1, r4, 0
+ bl sub_807A96C
+ movs r3, 0xFD
+ lsls r3, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xD
+ bl sub_806F324
+ b _08074994
+ .align 2, 0
+_08074980: .4byte 0x0000020d
+_08074984:
+ mov r2, r9
+ str r2, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ movs r3, 0
+ bl HealTargetHP
+_08074994:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080749A2
+ b _08074B2E
+_080749A2:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080749AE
+ b _08074B2E
+_080749AE:
+ mov r4, r8
+ adds r4, 0xFD
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074A46
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074A46
+ movs r0, 0
+ bl sub_807520C
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _080749D8
+ b _08074B2E
+_080749D8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080749E4
+ b _08074B2E
+_080749E4:
+ ldr r0, _08074A18
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074A1C
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl sub_807A96C
+ mov r0, r8
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _08074A24
+ ldr r0, _08074A20
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+ b _08074A30
+ .align 2, 0
+_08074A18: .4byte gUnknown_202DFE8
+_08074A1C: .4byte gUnknown_80FEB30
+_08074A20: .4byte gPtrProtectSavedItMessage
+_08074A24:
+ ldr r1, _08074B40
+ ldr r3, _08074B44
+ adds r0, r5, 0
+ movs r2, 0xB
+ bl sub_806F324
+_08074A30:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B2E
+_08074A46:
+ mov r0, r8
+ adds r0, 0xC0
+ ldrb r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bne _08074AD4
+ mov r4, r8
+ adds r4, 0xC1
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074AD4
+ strb r0, [r7]
+ adds r0, r5, 0
+ movs r1, 0
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074AD4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8070D04
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074AD4
+ adds r0, r5, 0
+ bl CannotAct
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08074AD4
+ movs r0, 0
+ bl sub_807520C
+ add r4, sp, 0x28
+ ldr r1, _08074B48
+ adds r0, r4, 0
+ bl sub_8092A88
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4]
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8055FA0
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08074B2E
+ mov r0, r8
+ adds r0, 0xA0
+ str r1, [r0]
+_08074AD4:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B2E
+ ldrb r0, [r7]
+ cmp r0, 0xC
+ bne _08074B1E
+ mov r4, r8
+ adds r4, 0xC1
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074B1E
+ strb r0, [r7]
+ movs r1, 0xA5
+ lsls r1, 1
+ add r1, r8
+ strb r0, [r1]
+ ldr r0, _08074B4C
+ adds r1, r5, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074B50
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl SendMessage
+_08074B1E:
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B2E
+ bl sub_8044B28
+_08074B2E:
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074B40: .4byte 0x0000270f
+_08074B44: .4byte 0x0000020e
+_08074B48: .4byte 0x00000165
+_08074B4C: .4byte gAvailablePokemonNames
+_08074B50: .4byte gUnknown_80FABD8
+ thumb_func_end sub_8074094
+
+ thumb_func_start sub_8074B54
+sub_8074B54:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ cmp r7, 0
+ bne _08074B62
+ b _08074F96
+_08074B62:
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074B6E
+ b _08074F96
+_08074B6E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074B7A
+ b _08074F96
+_08074B7A:
+ bl sub_805229C
+ ldr r6, [r7, 0x70]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08074C48
+ adds r0, r6, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08074C48
+ cmp r0, 0x3
+ beq _08074C48
+ movs r4, 0
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _08074BAE
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ bl GetUnk1B
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08074BAE:
+ cmp r4, 0
+ beq _08074C48
+ adds r0, r7, 0
+ movs r1, 0xA
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074BC8
+ ldr r0, _08074EF8
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r4, r0
+_08074BC8:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08074BDA
+ ldr r0, _08074EFC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r4, r0
+_08074BDA:
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl HasAbility
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074BFE
+ adds r0, r7, 0
+ bl sub_807E580
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _08074BFE
+ ldr r0, _08074F00
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r0
+_08074BFE:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r4, r0
+ ble _08074C08
+ adds r4, r0, 0
+_08074C08:
+ cmp r4, 0x1D
+ bgt _08074C0E
+ movs r4, 0x1E
+_08074C0E:
+ movs r3, 0xFC
+ lsls r3, 1
+ adds r1, r6, r3
+ ldrh r0, [r6, 0x10]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, r4
+ blt _08074C38
+_08074C24:
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ ldrh r0, [r1]
+ subs r0, r4
+ strh r0, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, r4
+ bge _08074C24
+_08074C38:
+ movs r3, 0xE
+ ldrsh r1, [r6, r3]
+ ldrh r2, [r6, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _08074C48
+ strh r2, [r6, 0xE]
+_08074C48:
+ adds r0, r6, 0
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074C6E
+ adds r4, r6, 0
+ adds r4, 0xA9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074C6E
+ adds r0, r7, 0
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_807A124
+_08074C6E:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074C7C
+ b _08074F96
+_08074C7C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074C88
+ b _08074F96
+_08074C88:
+ adds r0, r6, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074CAA
+ adds r4, r6, 0
+ adds r4, 0xAD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074CAA
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A290
+_08074CAA:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074CB8
+ b _08074F96
+_08074CB8:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074CC4
+ b _08074F96
+_08074CC4:
+ adds r0, r6, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074CE6
+ adds r4, r6, 0
+ adds r4, 0xB8
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074CE6
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl SendImmobilizeEndMessage
+_08074CE6:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074CF4
+ b _08074F96
+_08074CF4:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D00
+ b _08074F96
+_08074D00:
+ adds r0, r6, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D22
+ adds r4, r6, 0
+ adds r4, 0xBD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D22
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A400
+_08074D22:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074D30
+ b _08074F96
+_08074D30:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D3C
+ b _08074F96
+_08074D3C:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D5E
+ adds r4, r6, 0
+ adds r4, 0xC5
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D5E
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A4C8
+_08074D5E:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074D6C
+ b _08074F96
+_08074D6C:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074D78
+ b _08074F96
+_08074D78:
+ adds r0, r6, 0
+ adds r0, 0xC8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074D9C
+ adds r4, r6, 0
+ adds r4, 0xCB
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074D9C
+ adds r0, r7, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_807A5D0
+_08074D9C:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074DAA
+ b _08074F96
+_08074DAA:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074DB6
+ b _08074F96
+_08074DB6:
+ adds r0, r6, 0
+ adds r0, 0xD0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074DD8
+ adds r4, r6, 0
+ adds r4, 0xD9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074DD8
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A6C8
+_08074DD8:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074DE6
+ b _08074F96
+_08074DE6:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074DF2
+ b _08074F96
+_08074DF2:
+ adds r0, r6, 0
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E14
+ adds r4, r6, 0
+ adds r4, 0xDD
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E14
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A734
+_08074E14:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E22
+ b _08074F96
+_08074E22:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074E2E
+ b _08074F96
+_08074E2E:
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E50
+ adds r4, r6, 0
+ adds r4, 0xE5
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E50
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A7C8
+_08074E50:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E5E
+ b _08074F96
+_08074E5E:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074E6A
+ b _08074F96
+_08074E6A:
+ adds r0, r6, 0
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074E8C
+ adds r4, r6, 0
+ adds r4, 0xE9
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074E8C
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A888
+_08074E8C:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074E9A
+ b _08074F96
+_08074E9A:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074F96
+ adds r0, r6, 0
+ adds r0, 0xEC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074EC6
+ adds r4, r6, 0
+ adds r4, 0xED
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074EC6
+ adds r0, r7, 0
+ adds r1, r7, 0
+ bl sub_807A924
+_08074EC6:
+ adds r0, r7, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _08074F96
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08074F96
+ adds r4, r6, 0
+ adds r4, 0xFA
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F18
+ adds r0, r4, 0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F18
+ ldr r0, _08074F04
+ adds r1, r7, 0
+ b _08074F08
+ .align 2, 0
+_08074EF8: .4byte gUnknown_80F4FC4
+_08074EFC: .4byte gUnknown_80F4FC0
+_08074F00: .4byte gUnknown_80F4FC2
+_08074F04: .4byte gAvailablePokemonNames
+_08074F08:
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r0, _08074FA0
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+_08074F18:
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+_08074F1E:
+ ldr r1, _08074FA4
+ adds r0, r6, r1
+ adds r4, r0, r5
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F3C
+ adds r0, r5, r1
+ adds r0, r6, r0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F3C
+ movs r2, 0x1
+ mov r8, r2
+_08074F3C:
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r6, r3
+ adds r4, r0, r5
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08074F5C
+ adds r0, r5, r3
+ adds r0, r6, r0
+ bl sub_80838EC
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08074F5C
+ movs r0, 0x1
+ mov r8, r0
+_08074F5C:
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08074F1E
+ mov r1, r8
+ cmp r1, 0
+ beq _08074F96
+ ldr r0, [r7, 0x70]
+ movs r2, 0x82
+ lsls r2, 1
+ adds r0, r2
+ ldr r4, [r0]
+ adds r0, r7, 0
+ bl sub_8070774
+ adds r5, r0, 0
+ cmp r4, r5
+ beq _08074F96
+ ldr r0, _08074FA8
+ adds r1, r7, 0
+ movs r2, 0
+ bl SetMessageArgument
+ ldr r1, _08074FAC
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl SendMessage
+_08074F96:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08074FA0: .4byte gPtrStenchWavedOffMessage
+_08074FA4: .4byte 0x0000010d
+_08074FA8: .4byte gAvailablePokemonNames
+_08074FAC: .4byte gUnknown_80FA124
+ thumb_func_end sub_8074B54
+
+ thumb_func_start sub_8074FB0
+sub_8074FB0:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ ldr r4, [r3, 0x70]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ ble _08074FD0
+ adds r1, r4, 0
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ b _08075040
+_08074FD0:
+ ldr r0, _08074FE0
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08074FE8
+ ldr r1, _08074FE4
+ movs r0, 0x2
+ b _08074FEC
+ .align 2, 0
+_08074FE0: .4byte gUnknown_203B46C
+_08074FE4: .4byte gUnknown_202F378
+_08074FE8:
+ ldr r1, _08075048
+ movs r0, 0x1
+_08074FEC:
+ str r0, [r1]
+ adds r6, r1, 0
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ movs r0, 0xC2
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r4, r1
+ movs r0, 0
+ strb r0, [r1, 0x1A]
+ str r5, [r1, 0xC]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x6]
+ strh r0, [r1, 0x2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ str r0, [r1, 0x4]
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ str r0, [r1, 0x8]
+ ldr r0, _0807504C
+ lsls r2, r5, 2
+ adds r2, r0
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ ldr r3, [r6]
+ muls r0, r3
+ str r0, [r1, 0x10]
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ muls r0, r3
+ str r0, [r1, 0x14]
+ adds r0, r4, 0
+ bl sub_8075050
+_08075040:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075048: .4byte gUnknown_202F378
+_0807504C: .4byte gUnknown_80F4D44
+ thumb_func_end sub_8074FB0
+
+ thumb_func_start sub_8075050
+sub_8075050:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ adds r6, r1, 0
+ ldr r0, _08075070
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08075078
+ ldr r1, _08075074
+ movs r0, 0x2
+ b _0807507C
+ .align 2, 0
+_08075070: .4byte gUnknown_203B46C
+_08075074: .4byte gUnknown_202F378
+_08075078:
+ ldr r1, _080750D0
+ movs r0, 0x1
+_0807507C:
+ str r0, [r1]
+ movs r1, 0xFA
+ lsls r1, 1
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080750D4
+ ldr r0, _080750D0
+ ldr r1, [r0]
+ lsls r1, 1
+ movs r0, 0x18
+ bl __divsi3
+ movs r1, 0xCE
+ lsls r1, 1
+ add r1, r9
+ strh r0, [r1]
+ movs r2, 0xCA
+ lsls r2, 1
+ add r2, r9
+ ldr r1, [r2]
+ lsls r1, 1
+ str r1, [r2]
+ movs r2, 0xCC
+ lsls r2, 1
+ add r2, r9
+ ldr r1, [r2]
+ lsls r1, 1
+ str r1, [r2]
+ strh r0, [r6, 0x18]
+ ldr r0, [r6, 0x10]
+ lsls r0, 1
+ str r0, [r6, 0x10]
+ ldr r0, [r6, 0x14]
+ lsls r0, 1
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_080750D0: .4byte gUnknown_202F378
+_080750D4:
+ cmp r0, 0x3
+ bne _08075160
+ ldr r1, [r6, 0x10]
+ str r1, [sp]
+ ldr r0, [r6, 0x14]
+ str r0, [sp, 0x4]
+ movs r4, 0xCE
+ lsls r4, 1
+ add r4, r9
+ movs r5, 0
+ movs r7, 0x1
+_080750EA:
+ ldr r1, _0807515C
+ ldr r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r4]
+ movs r3, 0xCA
+ lsls r3, 1
+ add r3, r9
+ adds r3, r5
+ ldr r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r3]
+ movs r2, 0xCC
+ lsls r2, 1
+ add r2, r9
+ adds r2, r5
+ ldr r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r2]
+ ldr r0, [r3]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r3]
+ ldr r0, [r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r2]
+ adds r4, 0x1C
+ adds r5, 0x1C
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080750EA
+ ldr r1, _0807515C
+ ldr r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+ ldr r1, [sp]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r6, 0x10]
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_0807515C: .4byte gUnknown_202F378
+_08075160:
+ cmp r0, 0x4
+ bne _080751EC
+ ldr r0, [r6, 0x10]
+ str r0, [sp]
+ ldr r1, [r6, 0x14]
+ str r1, [sp, 0x4]
+ movs r7, 0xCE
+ lsls r7, 1
+ add r7, r9
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0x2
+ mov r10, r1
+_0807517A:
+ ldr r0, _080751E8
+ ldr r1, [r0]
+ lsls r1, 2
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r7]
+ movs r4, 0xCA
+ lsls r4, 1
+ add r4, r9
+ add r4, r8
+ ldr r0, [r4]
+ lsls r0, 2
+ str r0, [r4]
+ movs r5, 0xCC
+ lsls r5, 1
+ add r5, r9
+ add r5, r8
+ ldr r0, [r5]
+ lsls r0, 2
+ str r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4]
+ ldr r0, [r5]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r5]
+ adds r7, 0x1C
+ movs r1, 0x1C
+ add r8, r1
+ movs r0, 0x1
+ negs r0, r0
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0
+ bge _0807517A
+ ldr r0, _080751E8
+ ldr r1, [r0]
+ lsls r1, 2
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+ ldr r1, [sp]
+ lsls r0, r1, 2
+ str r0, [r6, 0x10]
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 2
+ str r0, [r6, 0x14]
+ b _080751F8
+ .align 2, 0
+_080751E8: .4byte gUnknown_202F378
+_080751EC:
+ ldr r0, _08075208
+ ldr r1, [r0]
+ movs r0, 0x18
+ bl __divsi3
+ strh r0, [r6, 0x18]
+_080751F8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075208: .4byte gUnknown_202F378
+ thumb_func_end sub_8075050
+
+ thumb_func_start sub_807520C
+sub_807520C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r10, r0
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _08075238
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, _0807523C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08075244
+ ldr r1, _08075240
+ movs r0, 0x2
+ b _08075248
+ .align 2, 0
+_08075238: .4byte gUnknown_202F32D
+_0807523C: .4byte gUnknown_203B46C
+_08075240: .4byte gUnknown_202F378
+_08075244:
+ ldr r1, _080752D0
+ movs r0, 0x1
+_08075248:
+ str r0, [r1]
+ movs r2, 0
+ mov r8, r2
+_0807524E:
+ ldr r0, _080752D4
+ ldr r0, [r0]
+ mov r3, r8
+ lsls r1, r3, 2
+ ldr r4, _080752D8
+ adds r0, r4
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807534C
+ ldr r4, [r5, 0x70]
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ cmp r2, 0
+ bne _080752E0
+ ldr r0, _080752DC
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0807534C
+ strb r2, [r1]
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r6, r4, r1
+ ldr r1, [r6]
+ cmp r1, 0
+ beq _0807534C
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ beq _0807534C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ beq _080752B2
+ adds r0, r5, 0
+ bl CannotAct
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807534C
+_080752B2:
+ adds r0, r5, 0x4
+ adds r1, r6, 0
+ bl sub_80983D8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x46
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _0807534C
+ adds r0, r5, 0
+ bl sub_806CE68
+ b _0807534C
+ .align 2, 0
+_080752D0: .4byte gUnknown_202F378
+_080752D4: .4byte gDungeonGlobalData
+_080752D8: .4byte 0x000135cc
+_080752DC: .4byte 0x00000147
+_080752E0:
+ ldrh r1, [r4]
+ movs r2, 0x80
+ lsls r2, 6
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ movs r3, 0xC4
+ lsls r3, 1
+ adds r0, r4, r3
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [sp]
+ movs r2, 0xC6
+ lsls r2, 1
+ adds r0, r4, r2
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_804535C
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r2, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806CDFC
+ movs r2, 0xFB
+ lsls r2, 1
+ adds r0, r4, r2
+ movs r3, 0
+ strh r3, [r0]
+ movs r7, 0x1
+ adds r0, r5, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807534C
+ movs r4, 0x1
+ mov r9, r4
+_0807534C:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x13
+ bgt _08075358
+ b _0807524E
+_08075358:
+ cmp r7, 0
+ bne _08075360
+ movs r0, 0
+ b _0807566C
+_08075360:
+ ldr r0, _08075390
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xB8
+ ldr r2, [r1]
+ str r2, [sp, 0x10]
+ mov r3, r10
+ str r3, [r1]
+ ldr r4, _08075394
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807537C
+ b _080754AE
+_0807537C:
+ mov r0, r9
+ cmp r0, 0
+ bne _08075384
+ b _080754AE
+_08075384:
+ movs r0, 0x35
+ bl sub_80526D0
+ movs r5, 0
+ b _0807549E
+ .align 2, 0
+_08075390: .4byte gDungeonGlobalData
+_08075394: .4byte 0x0000066c
+_08075398:
+ movs r0, 0x7
+ bl sub_803E46C
+ movs r1, 0
+ mov r8, r1
+ adds r5, 0x1
+ mov r9, r5
+_080753A6:
+ ldr r0, _08075420
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08075424
+ adds r0, r3
+ adds r0, r1
+ ldr r3, [r0]
+ adds r0, r3, 0
+ str r3, [sp, 0x14]
+ bl EntityExists
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _08075492
+ ldr r0, [r3, 0x70]
+ adds r7, r0, 0
+ movs r4, 0xFB
+ lsls r4, 1
+ adds r5, r7, r4
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ movs r2, 0xC2
+ lsls r2, 1
+ adds r1, r2
+ adds r4, r7, r1
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r6, r7, r0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _08075492
+ ldr r1, [r4, 0x10]
+ ldr r2, [r4, 0x14]
+ adds r0, r3, 0
+ bl sub_804539C
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r3, [sp, 0x14]
+ cmp r2, 0
+ bne _08075492
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0
+ ldrsh r1, [r6, r4]
+ cmp r0, r1
+ bne _08075428
+ strh r2, [r6]
+ b _08075492
+ .align 2, 0
+_08075420: .4byte gDungeonGlobalData
+_08075424: .4byte 0x000135cc
+_08075428:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ movs r2, 0xC4
+ lsls r2, 1
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r4
+ str r0, [sp, 0x8]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4
+ add r1, sp, 0x8
+ str r0, [r1, 0x4]
+ adds r0, r3, 0
+ str r3, [sp, 0x14]
+ bl sub_804535C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ movs r2, 0xC8
+ lsls r2, 1
+ adds r1, r7, r2
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r3, [sp, 0x14]
+ adds r0, r3, 0
+ movs r1, 0
+ bl sub_806CDFC
+_08075492:
+ movs r3, 0x1
+ add r8, r3
+ mov r4, r8
+ cmp r4, 0x13
+ ble _080753A6
+ mov r5, r9
+_0807549E:
+ ldr r0, _08075510
+ ldr r1, [r0]
+ movs r0, 0x18
+ bl __divsi3
+ cmp r5, r0
+ bge _080754AE
+ b _08075398
+_080754AE:
+ movs r0, 0
+ mov r8, r0
+_080754B2:
+ ldr r0, _08075514
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08075518
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080754F6
+ ldr r4, [r5, 0x70]
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl nullsub_97
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 6
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080754F6
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_804535C
+_080754F6:
+ movs r3, 0x1
+ add r8, r3
+ mov r4, r8
+ cmp r4, 0x13
+ ble _080754B2
+ bl sub_807AA30
+ movs r7, 0
+_08075506:
+ movs r5, 0
+ adds r0, r7, 0x1
+ mov r8, r0
+ b _08075600
+ .align 2, 0
+_08075510: .4byte gUnknown_202F378
+_08075514: .4byte gDungeonGlobalData
+_08075518: .4byte 0x000135cc
+_0807551C:
+ ldr r2, [r4, 0x70]
+ cmp r7, 0
+ bne _0807552A
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ beq _080755FE
+ b _08075530
+_0807552A:
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ bne _080755FE
+_08075530:
+ ldr r6, [r4, 0x4]
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080755BC
+ ldr r3, _08075560
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ beq _08075564
+ adds r0, r4, 0x4
+ bl sub_804AC20
+ movs r0, 0
+ bl sub_807EC28
+ bl sub_805EE30
+ b _0807556A
+ .align 2, 0
+_08075560: .4byte 0x0000dfff
+_08075564:
+ adds r0, r4, 0
+ bl sub_8075708
+_0807556A:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ movs r0, 0
+ bl sub_8043ED0
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ adds r0, r4, 0
+ bl sub_8071DA4
+ bl sub_8046D20
+ ldr r0, _08075650
+ ldr r0, [r0]
+ ldr r1, _08075654
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8075900
+_080755BC:
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ ldr r0, [r4, 0x4]
+ cmp r6, r0
+ beq _080755DE
+ ldr r1, _08075658
+ movs r0, 0x1
+ strb r0, [r1]
+_080755DE:
+ adds r0, r4, 0
+ bl sub_806A5B8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ bl sub_80706A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+_080755FE:
+ adds r5, 0x1
+_08075600:
+ cmp r5, 0x13
+ bgt _0807562A
+ ldr r0, _08075650
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0807565C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080755FE
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807562A
+ b _0807551C
+_0807562A:
+ mov r7, r8
+ cmp r7, 0x1
+ bgt _08075632
+ b _08075506
+_08075632:
+ bl sub_8086AC0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075660
+ bl sub_8085140
+ ldr r0, _08075650
+ ldr r0, [r0]
+ adds r0, 0xB8
+ ldr r3, [sp, 0x10]
+ str r3, [r0]
+ b _0807566A
+ .align 2, 0
+_08075650: .4byte gDungeonGlobalData
+_08075654: .4byte 0x00003a08
+_08075658: .4byte gUnknown_202F32D
+_0807565C: .4byte 0x000135cc
+_08075660:
+ ldr r0, _0807567C
+ ldr r0, [r0]
+ adds r0, 0xB8
+ ldr r4, [sp, 0x10]
+ str r4, [r0]
+_0807566A:
+ movs r0, 0x1
+_0807566C:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807567C: .4byte gDungeonGlobalData
+ thumb_func_end sub_807520C
+
+ thumb_func_start sub_8075680
+sub_8075680:
+ push {r4-r7,lr}
+ movs r7, 0
+_08075684:
+ ldr r0, _080756FC
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08075700
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080756EE
+ ldr r6, [r5, 0x70]
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080756EE
+ movs r0, 0xB6
+ lsls r0, 1
+ adds r4, r6, r0
+ ldr r1, [r4]
+ cmp r1, 0
+ beq _080756EE
+ ldr r0, [r5, 0x4]
+ cmp r1, r0
+ beq _080756EE
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CannotMove
+ lsls r0, 24
+ cmp r0, 0
+ bne _080756EE
+ adds r0, r5, 0x4
+ adds r1, r4, 0
+ bl sub_80983D8
+ adds r4, r0, 0
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r6, 0
+ adds r1, 0x46
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_806CEBC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_806CDD4
+_080756EE:
+ adds r7, 0x1
+ cmp r7, 0x13
+ ble _08075684
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080756FC: .4byte gDungeonGlobalData
+_08075700: .4byte 0x000135cc
+ thumb_func_end sub_8075680
+
+ thumb_func_start nullsub_97
+nullsub_97:
+ bx lr
+ thumb_func_end nullsub_97
+
+ thumb_func_start sub_8075708
+sub_8075708:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ ldr r6, [r4, 0x70]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807580C
+ adds r0, r4, 0
+ bl sub_8045128
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075752
+ adds r0, r6, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _08075752
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08075752
+ adds r0, r4, 0x4
+ bl sub_804AE84
+_08075752:
+ ldr r5, [r5, 0x14]
+ cmp r5, 0
+ beq _0807580C
+ adds r0, r5, 0
+ bl sub_80450F8
+ cmp r0, 0x5
+ bhi _0807580C
+ lsls r0, 2
+ ldr r1, _0807576C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807576C: .4byte _08075770
+ .align 2, 0
+_08075770:
+ .4byte _0807580C
+ .4byte _0807580C
+ .4byte _08075788
+ .4byte _08075806
+ .4byte _0807580C
+ .4byte _0807580C
+_08075788:
+ adds r0, r5, 0
+ bl sub_8045104
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _080757BA
+ adds r1, r5, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080757BA
+ movs r0, 0x1
+ strb r0, [r1]
+ bl sub_8049ED4
+ movs r0, 0x1
+ mov r9, r0
+_080757BA:
+ ldrb r0, [r7, 0x1]
+ cmp r0, 0
+ bne _080757D2
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080757EC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080757EC
+ b _080757F2
+_080757D2:
+ cmp r0, 0x1
+ bne _080757DE
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080757EC
+ b _080757F2
+_080757DE:
+ cmp r0, 0x2
+ bne _080757EC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080757EC
+ movs r0, 0x1
+ mov r8, r0
+_080757EC:
+ mov r0, r8
+ cmp r0, 0
+ beq _0807580C
+_080757F2:
+ mov r0, r9
+ cmp r0, 0
+ bne _0807580C
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_807FE9C
+ b _0807580C
+_08075806:
+ adds r0, r4, 0
+ bl sub_8073D14
+_0807580C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8075708
+
+ thumb_func_start sub_8075818
+sub_8075818:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, [r4, 0x70]
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _080758F6
+ adds r0, r4, 0
+ bl sub_8045128
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl HasIQSkill
+ lsls r0, 24
+ cmp r0, 0
+ beq _08075848
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080758F2
+_08075848:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _080758F6
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x5
+ bhi _080758F6
+ lsls r0, 2
+ ldr r1, _08075864
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08075864: .4byte _08075868
+ .align 2, 0
+_08075868:
+ .4byte _080758F6
+ .4byte _080758F6
+ .4byte _08075880
+ .4byte _080758BE
+ .4byte _080758F6
+ .4byte _080758F6
+_08075880:
+ adds r0, r4, 0
+ bl sub_8045104
+ movs r1, 0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080758A0
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080758B8
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758B8
+ b _080758F2
+_080758A0:
+ cmp r0, 0x1
+ bne _080758AC
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080758B8
+ b _080758F2
+_080758AC:
+ cmp r0, 0x2
+ bne _080758B8
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758B8
+ movs r1, 0x1
+_080758B8:
+ cmp r1, 0
+ beq _080758F6
+ b _080758F2
+_080758BE:
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080758F6
+ adds r0, r6, 0
+ adds r0, 0x60
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080758F6
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080758E2
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080758F6
+_080758E2:
+ adds r0, r4, 0
+ bl sub_8045108
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080758F6
+_080758F2:
+ movs r0, 0x1
+ b _080758F8
+_080758F6:
+ movs r0, 0
+_080758F8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8075818
+
+ thumb_func_start sub_8075900
+sub_8075900:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ bl EntityExists
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807597A
+ ldr r0, [r4, 0x70]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _0807597A
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807597A
+ ldr r5, _08075980
+ ldr r0, [r5]
+ ldr r1, _08075984
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807597A
+ adds r0, r4, 0
+ bl sub_8045128
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807597A
+ bl sub_8083600
+ ldr r1, _08075988
+ ldr r1, [r1]
+ bl SendMessage
+ ldr r0, [r5]
+ ldr r1, _0807598C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_807AB38
+ movs r0, 0
+ bl sub_8041888
+ adds r0, r4, 0x4
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807597A
+ movs r0, 0x78
+ movs r1, 0x39
+ bl sub_803E708
+_0807597A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08075980: .4byte gDungeonGlobalData
+_08075984: .4byte 0x00000671
+_08075988: .4byte gUnknown_80FE308
+_0807598C: .4byte 0x00000672
+ thumb_func_end sub_8075900