pmd-red/asm/code_80521D0.s
mid-kid 99a038284b Translate all .include to #include
This decision was made to reduce the complexity of using .include whilst
juggling with tools/scaninc and tools/preproc:
- tools/scaninc doesn't apply the proper search rules for .include (it
  assumes #include behavior). In particular, it doesn't consider paths
  starting from $PWD, and doesn't scan the included files as a result.
- .include had to be processed before #include by preproc in many cases,
  as code was being included that had to be preprocessed by CPP (think
  of #define). This contradicts standard GCC behavior.

To make include paths consistent across the asm/ data/ and src/
directories, the following files were moved:
- constants/ → include/asm/constants/
- asm/macros/ → include/asm/macros/
- asm/macros.inc → include/asm/macros.inc
- include/macros/m4a.inc → include/asm/macros/m4a.inc

As part of the necessary changes for this to work, the scaninc method in
the makefile was improved to generate .d files that don't choke when
files are missing.
2021-12-20 16:29:12 +01:00

9235 lines
138 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80523A8
sub_80523A8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
adds r3, r0, 0
adds r4, r1, 0
lsls r2, 24
lsrs r2, 24
mov r10, r2
ldr r0, _080523D0
ldr r1, [r0]
adds r2, r0, 0
cmp r1, r3
beq _080523D8
movs r7, 0x1
ldr r1, _080523D4
b _080523DE
.align 2, 0
_080523D0: .4byte gUnknown_202F1E8
_080523D4: .4byte gUnknown_203B434
_080523D8:
ldr r0, _080523F0
ldrb r7, [r0]
adds r1, r0, 0
_080523DE:
movs r0, 0x1
mov r8, r0
str r3, [r2]
movs r0, 0
strb r0, [r1]
movs r1, 0
mov r9, r1
b _080523FA
.align 2, 0
_080523F0: .4byte gUnknown_203B434
_080523F4:
movs r0, 0
bl sub_803E46C
_080523FA:
ldr r6, _0805249C
ldr r2, [r6]
ldr r3, _080524A0
adds r0, r2, r3
movs r3, 0
ldrsh r1, [r0, r3]
adds r1, 0x1
cmp r1, 0xA
bne _0805240E
movs r1, 0
_0805240E:
ldr r3, _080524A4
adds r0, r2, r3
movs r3, 0
ldrsh r0, [r0, r3]
cmp r1, r0
beq _080523F4
ldrb r0, [r4]
cmp r0, 0
beq _080524B0
ldr r5, _080524A0
adds r0, r2, r5
movs r3, 0
ldrsh r1, [r0, r3]
ldr r3, _080524A8
adds r0, r2, r3
adds r0, r1
strb r7, [r0]
adds r0, r4, 0
mov r1, sp
mov r2, sp
adds r2, 0x3E
movs r3, 0x80
bl xxx_format_string
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0xD
bne _08052448
adds r4, 0x1
_08052448:
ldrb r0, [r4]
cmp r0, 0xA
bne _08052450
adds r4, 0x1
_08052450:
mov r0, sp
adds r1, r7, 0
mov r2, r8
bl sub_8053210
movs r7, 0
movs r0, 0
mov r8, r0
mov r1, r10
cmp r1, 0
beq _080523FA
movs r2, 0x1
mov r9, r2
ldr r1, [r6]
adds r0, r1, r5
movs r3, 0
ldrsh r0, [r0, r3]
lsls r0, 6
adds r0, r1
ldr r1, _080524AC
adds r0, r1
mov r1, sp
movs r2, 0x40
bl strncpy
ldr r0, [r6]
adds r1, r0, r5
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _080523FA
mov r2, r8
strh r2, [r1]
b _080523FA
.align 2, 0
_0805249C: .4byte gDungeonGlobalData
_080524A0: .4byte 0x0001c060
_080524A4: .4byte 0x0001c062
_080524A8: .4byte 0x0001c054
_080524AC: .4byte 0x0001bdd4
_080524B0:
mov r3, r9
cmp r3, 0
beq _080524D4
ldr r0, _080524E4
ldr r2, [r0]
ldr r3, _080524E8
adds r1, r2, r3
movs r0, 0xF0
strh r0, [r1]
ldr r0, _080524EC
adds r2, r0
ldr r0, [r2]
cmp r0, 0
bne _080524D0
movs r0, 0x1
str r0, [r2]
_080524D0:
bl sub_805E804
_080524D4:
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080524E4: .4byte gDungeonGlobalData
_080524E8: .4byte 0x0001c064
_080524EC: .4byte 0x0001c06c
thumb_func_end sub_80523A8
thumb_func_start xxx_draw_string_80524F0
xxx_draw_string_80524F0:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x3C
ldr r0, _0805251C
ldr r0, [r0]
ldr r1, _08052520
adds r7, r0, r1
ldr r2, _08052524
adds r5, r0, r2
ldr r1, [r5]
cmp r1, 0x1
beq _08052528
cmp r1, 0x1
bcs _08052510
b _0805267C
_08052510:
cmp r1, 0x2
beq _0805253C
cmp r1, 0x3
bne _0805251A
b _0805265C
_0805251A:
b _0805267C
.align 2, 0
_0805251C: .4byte gDungeonGlobalData
_08052520: .4byte 0x0001bdd4
_08052524: .4byte 0x0001c06c
_08052528:
bl sub_800EC74
lsls r0, 24
cmp r0, 0
beq _08052534
b _0805267C
_08052534:
movs r0, 0x3
movs r1, 0
bl sub_803EAF0
_0805253C:
ldr r3, _08052560
adds r0, r7, r3
movs r1, 0
ldrsh r4, [r0, r1]
movs r2, 0xA3
lsls r2, 2
adds r0, r7, r2
movs r3, 0
ldrsh r0, [r0, r3]
cmp r4, r0
bne _08052564
movs r0, 0xA6
lsls r0, 2
adds r1, r7, r0
movs r0, 0
str r0, [r1]
b _0805267C
.align 2, 0
_08052560: .4byte 0x0000028e
_08052564:
lsls r0, r4, 6
adds r5, r7, r0
add r1, sp, 0x4
movs r0, 0x4
strh r0, [r1]
ldr r2, _080525B0
adds r6, r7, r2
ldrh r0, [r6]
strh r0, [r1, 0x2]
movs r3, 0x7
mov r8, r3
str r3, [sp, 0x14]
movs r0, 0
bl sub_80073B8
movs r1, 0xA0
lsls r1, 2
adds r0, r7, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _080525AA
movs r2, 0
ldrsh r0, [r6, r2]
cmp r0, 0x7
ble _080525AA
adds r2, r0, 0
subs r2, 0x1
mov r0, r8
str r0, [sp]
movs r0, 0
movs r1, 0
movs r3, 0xE0
bl sub_80078A4
_080525AA:
adds r6, r4, 0x1
b _080525F2
.align 2, 0
_080525B0: .4byte 0x00000292
_080525B4:
add r1, sp, 0x38
adds r0, r5, 0
bl xxx_get_next_char_from_string
adds r5, r0, 0
ldr r4, [sp, 0x38]
cmp r4, 0x60
bne _080525D0
add r1, sp, 0x4
adds r0, r1, 0
ldrh r0, [r0]
adds r0, 0x6
strh r0, [r1]
b _080525F2
_080525D0:
add r0, sp, 0x4
movs r1, 0
ldrsh r0, [r0, r1]
add r1, sp, 0x4
movs r2, 0x2
ldrsh r1, [r1, r2]
ldr r3, [sp, 0x14]
movs r2, 0
str r2, [sp]
adds r2, r4, 0
bl xxx_call_draw_char
add r2, sp, 0x4
adds r1, r2, 0
ldrh r1, [r1]
adds r1, r0
strh r1, [r2]
_080525F2:
adds r0, r5, 0
add r1, sp, 0x4
bl sub_8009190
adds r5, r0, 0
ldrb r0, [r5]
cmp r0, 0
beq _0805260A
cmp r0, 0xD
beq _0805260A
cmp r0, 0xA
bne _080525B4
_0805260A:
movs r0, 0
bl sub_80073E0
movs r3, 0xA4
lsls r3, 2
adds r1, r7, r3
movs r0, 0xF0
strh r0, [r1]
adds r4, r6, 0
cmp r4, 0xA
bne _08052622
movs r4, 0
_08052622:
ldr r1, _08052654
adds r0, r7, r1
strh r4, [r0]
ldr r2, _08052658
adds r1, r7, r2
ldrh r0, [r1]
adds r0, 0xB
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2F
ble _0805267C
movs r0, 0x25
strh r0, [r1]
movs r3, 0xA5
lsls r3, 2
adds r1, r7, r3
movs r0, 0
strh r0, [r1]
movs r0, 0xA6
lsls r0, 2
adds r1, r7, r0
movs r0, 0x3
str r0, [r1]
b _0805267C
.align 2, 0
_08052654: .4byte 0x0000028e
_08052658: .4byte 0x00000292
_0805265C:
ldr r1, _080526C4
adds r4, r0, r1
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
ldr r0, _080526C8
ldr r1, [r0]
movs r0, 0
bl _call_via_r1
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0xA
ble _0805267C
movs r0, 0x2
str r0, [r5]
_0805267C:
ldr r3, _080526CC
adds r0, r7, r3
ldrb r0, [r0]
cmp r0, 0
bne _080526B8
movs r0, 0xA4
lsls r0, 2
adds r1, r7, r0
ldrh r2, [r1]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
beq _080526B8
subs r0, r2, 0x1
strh r0, [r1]
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
bne _080526B8
movs r2, 0xA6
lsls r2, 2
adds r0, r7, r2
str r1, [r0]
movs r0, 0
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
_080526B8:
add sp, 0x3C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080526C4: .4byte 0x0001c068
_080526C8: .4byte gUnknown_203B08C
_080526CC: .4byte 0x0000028a
thumb_func_end xxx_draw_string_80524F0
thumb_func_start sub_80526D0
sub_80526D0:
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _0805272C
ldr r1, [r0]
ldr r0, _08052730
adds r4, r1, r0
ldr r2, _08052734
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _080526FA
ldr r3, _08052738
adds r0, r1, r3
subs r2, 0xA
adds r1, r2
movs r3, 0
ldrsh r2, [r0, r3]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r2, r0
beq _08052724
_080526FA:
adds r0, r5, 0
bl sub_803E46C
movs r1, 0xA6
lsls r1, 2
adds r0, r4, r1
ldr r0, [r0]
cmp r0, 0
bne _080526FA
ldr r0, _0805272C
ldr r0, [r0]
ldr r2, _08052738
adds r1, r0, r2
ldr r3, _0805273C
adds r0, r3
movs r2, 0
ldrsh r1, [r1, r2]
movs r3, 0
ldrsh r0, [r0, r3]
cmp r1, r0
bne _080526FA
_08052724:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805272C: .4byte gDungeonGlobalData
_08052730: .4byte 0x0001bdd4
_08052734: .4byte 0x0001c06c
_08052738: .4byte 0x0001c060
_0805273C: .4byte 0x0001c062
thumb_func_end sub_80526D0
thumb_func_start sub_8052740
sub_8052740:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
ldr r0, _080527B0
ldr r4, [r0]
ldr r0, _080527B4
adds r7, r4, r0
adds r0, r5, 0
bl sub_80526D0
movs r6, 0
ldr r1, _080527B8
adds r4, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0xB3
ble _080527A4
ldr r2, _080527BC
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0x3
beq _080527A4
adds r4, r2, 0
ldr r0, _080527C0
mov r8, r0
_08052776:
ldrh r0, [r4, 0x2]
mov r1, r8
ands r0, r1
cmp r0, 0
bne _080527A4
adds r0, r5, 0
bl sub_803E46C
adds r6, 0x1
cmp r6, 0xEF
bgt _080527A4
movs r1, 0xA4
lsls r1, 2
adds r0, r7, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0xB3
ble _080527A4
ldrh r1, [r4]
movs r0, 0x3
ands r0, r1
cmp r0, 0x3
bne _08052776
_080527A4:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080527B0: .4byte gDungeonGlobalData
_080527B4: .4byte 0x0001bdd4
_080527B8: .4byte 0x0001c064
_080527BC: .4byte gRealInputs
_080527C0: .4byte 0x0000030f
thumb_func_end sub_8052740
thumb_func_start PrintFieldMessage
PrintFieldMessage:
push {r4-r7,lr}
sub sp, 0x28
adds r4, r0, 0
adds r7, r1, 0
lsls r2, 24
lsrs r6, r2, 24
ldr r0, _08052858
ldrb r0, [r0]
cmp r0, 0
beq _080527DE
movs r0, 0xA
bl sub_8052740
_080527DE:
movs r0, 0x2
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
movs r5, 0
str r5, [sp, 0x14]
str r5, [sp, 0x18]
ldr r0, _0805285C
ldr r1, [r0]
ldr r2, _08052860
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052844
adds r2, 0x6
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052844
cmp r4, 0
beq _08052844
movs r1, 0
ldrsh r0, [r4, r1]
ldrb r1, [r4, 0x2]
bl IsPokemonDialogueSpriteAvail
lsls r0, 24
cmp r0, 0
beq _08052844
movs r2, 0
ldrsh r0, [r4, r2]
bl GetDialogueSpriteDataPtr
str r0, [sp, 0x14]
ldr r0, [r0, 0x4]
str r0, [sp, 0x18]
add r1, sp, 0x14
movs r2, 0
movs r0, 0x2
strh r0, [r1, 0x8]
movs r0, 0x9
strh r0, [r1, 0xA]
ldrb r0, [r4, 0x2]
strb r0, [r1, 0xC]
adds r0, r1, 0
strb r2, [r0, 0xD]
strb r2, [r0, 0xE]
adds r5, r0, 0
_08052844:
movs r1, 0
str r1, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r5, [sp, 0xC]
cmp r6, 0
beq _08052868
ldr r0, _08052864
b _0805286C
.align 2, 0
_08052858: .4byte gUnknown_203B40C
_0805285C: .4byte gDungeonGlobalData
_08052860: .4byte 0x0001820a
_08052864: .4byte 0x00000701
_08052868:
movs r0, 0x80
lsls r0, 3
_0805286C:
str r0, [sp, 0x10]
adds r0, r7, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_8014248
ldr r0, _080528D0
ldr r0, [r0]
ldr r1, _080528D4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
add r4, sp, 0x24
_08052888:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
adds r0, r4, 0
bl sub_80144A4
adds r1, r0, 0
cmp r1, 0
bne _08052888
ldr r0, _080528D0
ldr r0, [r0]
ldr r2, _080528D4
adds r0, r2
strb r1, [r0]
ldr r0, [sp, 0x14]
cmp r0, 0
beq _080528B2
bl CloseFile
_080528B2:
cmp r6, 0
beq _080528E4
bl sub_805E804
bl sub_8040238
ldr r0, _080528D8
ldrb r0, [r0]
cmp r0, 0
beq _080528DC
movs r0, 0
movs r1, 0
bl sub_803EAF0
b _080528E4
.align 2, 0
_080528D0: .4byte gDungeonGlobalData
_080528D4: .4byte 0x0001c05f
_080528D8: .4byte gUnknown_202EE01
_080528DC:
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
_080528E4:
movs r0, 0x8
movs r1, 0x9
bl sub_803E708
add sp, 0x28
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end PrintFieldMessage
thumb_func_start sub_80528F4
sub_80528F4:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
adds r0, r5, 0
adds r1, r4, 0
bl sub_80522E8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80528F4
thumb_func_start DisplayDungeonDialogue
DisplayDungeonDialogue:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
adds r6, r0, 0
bl xxx_call_GetLeaderEntity
adds r4, r0, 0
bl GetPartnerEntity
adds r5, r0, 0
movs r0, 0
mov r9, r0
cmp r4, 0
beq _0805295C
ldr r4, [r4, 0x70]
ldr r2, _08052950
ldrb r1, [r4, 0xA]
movs r0, 0x64
muls r0, r1
ldr r1, _08052954
adds r0, r1
ldr r1, [r2]
adds r1, r0
ldr r0, _08052958
bl sub_808DA0C
movs r2, 0x4
ldrsh r7, [r4, r2]
b _08052966
.align 2, 0
_08052950: .4byte gRecruitedPokemonRef
_08052954: .4byte 0x00008df8
_08052958: .4byte gAvailablePokemonNames
_0805295C:
movs r7, 0
ldr r0, _08052988
ldr r1, _0805298C
bl strcpy
_08052966:
cmp r5, 0
beq _0805299C
ldr r4, [r5, 0x70]
ldr r2, _08052990
ldrb r1, [r4, 0xA]
movs r0, 0x64
muls r0, r1
ldr r1, _08052994
adds r0, r1
ldr r1, [r2]
adds r1, r0
ldr r0, _08052998
bl sub_808DA0C
movs r2, 0x4
ldrsh r4, [r4, r2]
b _080529A6
.align 2, 0
_08052988: .4byte gAvailablePokemonNames
_0805298C: .4byte gUnknown_80F7AF8
_08052990: .4byte gRecruitedPokemonRef
_08052994: .4byte 0x00008df8
_08052998: .4byte gUnknown_202DFE8
_0805299C:
movs r4, 0
ldr r0, _080529C0
ldr r1, _080529C4
bl strcpy
_080529A6:
movs r0, 0x4
ldrsh r1, [r6, r0]
movs r0, 0xD5
lsls r0, 1
cmp r1, r0
beq _080529F0
cmp r1, r0
bgt _080529C8
subs r0, 0x1
cmp r1, r0
beq _080529D4
b _08052A1C
.align 2, 0
_080529C0: .4byte gUnknown_202DFE8
_080529C4: .4byte gUnknown_80F7AF8
_080529C8:
ldr r0, _080529D0
cmp r1, r0
beq _08052A08
b _08052A1C
.align 2, 0
_080529D0: .4byte 0x000001ab
_080529D4:
adds r4, r7, 0
ldr r0, _080529E4
ldr r1, _080529E8
ldr r2, _080529EC
bl ExpandPlaceholdersBuffer
b _08052A28
.align 2, 0
_080529E4: .4byte gUnknown_202E5D8
_080529E8: .4byte gUnknown_80F7AFC
_080529EC: .4byte gAvailablePokemonNames
_080529F0:
ldr r0, _080529FC
ldr r1, _08052A00
ldr r2, _08052A04
bl ExpandPlaceholdersBuffer
b _08052A28
.align 2, 0
_080529FC: .4byte gUnknown_202E5D8
_08052A00: .4byte gUnknown_80F7AFC
_08052A04: .4byte gUnknown_202DFE8
_08052A08:
movs r4, 0
ldr r0, _08052A14
ldr r1, _08052A18
bl strcpy
b _08052A28
.align 2, 0
_08052A14: .4byte gUnknown_202E5D8
_08052A18: .4byte gUnknown_80F7B04
_08052A1C:
movs r1, 0x4
ldrsh r4, [r6, r1]
ldr r0, _08052A48
adds r1, r4, 0
bl CopyYellowSpeciesNametoBuffer
_08052A28:
ldrh r0, [r6]
subs r0, 0x2
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _08052A3C
ldr r0, _08052A48
ldr r1, _08052A4C
bl strcpy
_08052A3C:
movs r2, 0x6
ldrsh r0, [r6, r2]
ldr r2, _08052A50
add r7, sp, 0x10
b _08052A8E
.align 2, 0
_08052A48: .4byte gUnknown_202E5D8
_08052A4C: .4byte gUnknown_80F7B04
_08052A50: .4byte gDungeonGlobalData
_08052A54:
movs r0, 0x6
ldrsh r1, [r6, r0]
cmp r1, 0x1
bne _08052A78
cmp r4, 0x1
beq _08052A9E
cmp r4, 0x9B
beq _08052A9E
ldr r0, _08052B08
cmp r4, r0
beq _08052A9E
cmp r4, 0x19
beq _08052A9E
cmp r4, 0x4
beq _08052A9E
subs r0, 0x6
cmp r4, r0
beq _08052A9E
_08052A78:
movs r0, 0x8C
lsls r0, 1
cmp r1, r0
bne _08052A88
cmp r4, r1
beq _08052A9E
cmp r4, 0x98
beq _08052A9E
_08052A88:
adds r6, 0xC
movs r1, 0x6
ldrsh r0, [r6, r1]
_08052A8E:
cmp r0, 0
beq _08052A9E
cmp r0, 0x7
bne _08052A54
cmp r4, 0x7
beq _08052A9E
cmp r4, 0x9E
bne _08052A54
_08052A9E:
ldr r1, [r2]
ldr r2, _08052B0C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052B14
adds r2, 0x6
adds r0, r1, r2
ldrb r0, [r0]
mov r8, r0
cmp r0, 0
bne _08052B14
ldrh r0, [r6]
cmp r0, 0x4
beq _08052B14
ldrb r0, [r6, 0x2]
cmp r0, 0x80
beq _08052B14
cmp r4, 0
beq _08052B14
ldrb r0, [r6, 0x3]
bl sub_808CDB0
adds r5, r0, 0
mov r9, sp
adds r0, r4, 0
bl GetDialogueSpriteDataPtr
str r0, [sp]
cmp r0, 0
beq _08052B10
ldr r0, [r0, 0x4]
str r0, [sp, 0x4]
mov r1, r8
mov r0, r9
strb r1, [r0, 0xE]
ldrb r0, [r6, 0x2]
mov r2, r9
strb r0, [r2, 0xC]
ldrb r0, [r5, 0x4]
strb r0, [r2, 0xD]
ldrh r0, [r5]
strh r0, [r2, 0x8]
ldrh r0, [r5, 0x2]
strh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
bgt _08052B14
movs r0, 0x2
strh r0, [r2, 0xA]
b _08052B14
.align 2, 0
_08052B08: .4byte 0x0000011b
_08052B0C: .4byte 0x0001820a
_08052B10:
movs r0, 0
mov r9, r0
_08052B14:
movs r0, 0xA
bl sub_8052740
movs r0, 0x2
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
ldr r0, [r6, 0x8]
ldr r2, _08052B88
ldrh r1, [r6]
lsls r1, 1
adds r1, r2
ldrh r3, [r1]
movs r1, 0
mov r2, r9
bl sub_80141B4
_08052B3C:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
adds r0, r7, 0
bl sub_80144A4
cmp r0, 0
bne _08052B3C
mov r1, r9
cmp r1, 0
beq _08052B5C
ldr r0, [r1]
bl CloseFile
_08052B5C:
ldrh r0, [r6]
cmp r0, 0x1
beq _08052B72
cmp r0, 0x3
beq _08052B72
bl sub_8040238
movs r0, 0
movs r1, 0
bl sub_803EAF0
_08052B72:
movs r0, 0x8
movs r1, 0x9
bl sub_803E708
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08052B88: .4byte gUnknown_80F7AEA
thumb_func_end DisplayDungeonDialogue
thumb_func_start sub_8052B8C
sub_8052B8C:
push {r4-r7,lr}
sub sp, 0x14
adds r4, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r0, 0xA
bl sub_8052740
movs r0, 0x2
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
movs r5, 0
str r5, [sp]
str r5, [sp, 0x4]
ldr r0, _08052C14
ldr r1, [r0]
ldr r2, _08052C18
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052C02
adds r2, 0x6
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052C02
cmp r4, 0
beq _08052C02
movs r1, 0
ldrsh r0, [r4, r1]
ldrb r1, [r4, 0x2]
bl IsPokemonDialogueSpriteAvail
lsls r0, 24
cmp r0, 0
beq _08052C02
movs r2, 0
ldrsh r0, [r4, r2]
bl GetDialogueSpriteDataPtr
str r0, [sp]
ldr r0, [r0, 0x4]
str r0, [sp, 0x4]
mov r1, sp
movs r2, 0
movs r0, 0x2
strh r0, [r1, 0x8]
movs r0, 0x9
strh r0, [r1, 0xA]
ldrb r0, [r4, 0x2]
strb r0, [r1, 0xC]
mov r0, sp
strb r2, [r0, 0xD]
strb r2, [r0, 0xE]
mov r5, sp
_08052C02:
cmp r7, 0x1
bne _08052C1C
movs r2, 0xC0
lsls r2, 2
adds r0, r6, 0
adds r1, r5, 0
bl sub_80141E0
b _08052C28
.align 2, 0
_08052C14: .4byte gDungeonGlobalData
_08052C18: .4byte 0x0001820a
_08052C1C:
movs r2, 0xC0
lsls r2, 2
adds r0, r6, 0
adds r1, r5, 0
bl sub_8014214
_08052C28:
add r4, sp, 0x10
_08052C2A:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
adds r0, r4, 0
bl sub_80144A4
cmp r0, 0
bne _08052C2A
ldr r0, [sp]
cmp r0, 0
beq _08052C48
bl CloseFile
_08052C48:
bl sub_8040238
movs r0, 0
movs r1, 0
bl sub_803EAF0
ldr r0, [sp, 0x10]
cmp r0, 0x1
beq _08052C5E
movs r0, 0
b _08052C60
_08052C5E:
movs r0, 0x1
_08052C60:
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8052B8C
thumb_func_start sub_8052C68
sub_8052C68:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x28
adds r4, r0, 0
adds r7, r1, 0
mov r8, r2
lsls r3, 16
lsrs r6, r3, 16
movs r0, 0xA
bl sub_8052740
movs r0, 0x2
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
movs r5, 0
str r5, [sp, 0x14]
str r5, [sp, 0x18]
ldr r0, _08052D3C
ldr r1, [r0]
ldr r2, _08052D40
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052CE6
adds r2, 0x6
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052CE6
cmp r4, 0
beq _08052CE6
movs r1, 0
ldrsh r0, [r4, r1]
ldrb r1, [r4, 0x2]
bl IsPokemonDialogueSpriteAvail
lsls r0, 24
cmp r0, 0
beq _08052CE6
movs r2, 0
ldrsh r0, [r4, r2]
bl GetDialogueSpriteDataPtr
str r0, [sp, 0x14]
ldr r0, [r0, 0x4]
str r0, [sp, 0x18]
add r1, sp, 0x14
movs r2, 0
movs r0, 0x2
strh r0, [r1, 0x8]
movs r0, 0x9
strh r0, [r1, 0xA]
ldrb r0, [r4, 0x2]
strb r0, [r1, 0xC]
adds r0, r1, 0
strb r2, [r0, 0xD]
strb r2, [r0, 0xE]
adds r5, r0, 0
_08052CE6:
movs r2, 0x1
negs r2, r2
movs r1, 0
str r1, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r5, [sp, 0xC]
str r6, [sp, 0x10]
adds r0, r7, 0
mov r3, r8
bl sub_8014248
add r4, sp, 0x24
_08052D02:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
adds r0, r4, 0
bl sub_80144A4
cmp r0, 0
bne _08052D02
ldr r0, [sp, 0x14]
cmp r0, 0
beq _08052D20
bl CloseFile
_08052D20:
bl sub_8040238
movs r0, 0
movs r1, 0
bl sub_803EAF0
ldr r0, [sp, 0x24]
add sp, 0x28
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08052D3C: .4byte gDungeonGlobalData
_08052D40: .4byte 0x0001820a
thumb_func_end sub_8052C68
thumb_func_start sub_8052D44
sub_8052D44:
push {r4-r7,lr}
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
bl EntityExists
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _08052D70
ldr r0, _08052D6C
adds r1, r4, 0
movs r2, 0
bl SetMessageArgument
ldr r0, [r4, 0x70]
ldrh r0, [r0, 0x4]
strh r0, [r7]
b _08052D7A
.align 2, 0
_08052D6C: .4byte gAvailablePokemonNames
_08052D70:
ldr r0, _08052D9C
ldr r1, _08052DA0
bl strcpy
strh r5, [r7]
_08052D7A:
adds r0, r6, 0
bl EntityExists
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08052DA8
ldr r0, _08052DA4
adds r1, r6, 0
movs r2, 0
bl SetMessageArgument
ldr r0, [r6, 0x70]
ldrh r0, [r0, 0x4]
strh r0, [r7, 0x2]
b _08052DB2
.align 2, 0
_08052D9C: .4byte gAvailablePokemonNames
_08052DA0: .4byte gUnknown_80F7AF8
_08052DA4: .4byte gUnknown_202DFE8
_08052DA8:
ldr r0, _08052DB8
ldr r1, _08052DBC
bl strcpy
strh r4, [r7, 0x2]
_08052DB2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08052DB8: .4byte gUnknown_202DFE8
_08052DBC: .4byte gUnknown_80F7AF8
thumb_func_end sub_8052D44
thumb_func_start sub_8052DC0
sub_8052DC0:
push {lr}
bl sub_8045888
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8052DC0
thumb_func_start sub_8052DD0
sub_8052DD0:
push {r4-r6,lr}
bl GetLeaderEntity
adds r5, r0, 0
ldr r6, _08052E68
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
beq _08052E46
ldr r6, _08052E6C
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
beq _08052E46
ldr r6, _08052E70
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
beq _08052E46
ldr r0, _08052E74
ldr r0, [r0]
ldr r1, _08052E78
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _08052EB6
ldr r6, _08052E7C
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
beq _08052E46
ldr r6, _08052E80
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
beq _08052E46
ldr r6, _08052E84
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
bne _08052E88
_08052E46:
adds r0, r4, 0
bl sub_8098170
bl sub_8083E28
ldr r4, [r6, 0x4]
movs r0, 0
adds r1, r4, 0
movs r2, 0x1
bl PrintFieldMessage
adds r0, r5, 0
adds r1, r4, 0
bl sub_80522E8
b _08052EB6
.align 2, 0
_08052E68: .4byte gUnknown_80FF020
_08052E6C: .4byte gUnknown_80FF080
_08052E70: .4byte gUnknown_80FF0D8
_08052E74: .4byte gDungeonGlobalData
_08052E78: .4byte 0x00000644
_08052E7C: .4byte gUnknown_80FF13C
_08052E80: .4byte gUnknown_80FF1B4
_08052E84: .4byte gUnknown_80FF22C
_08052E88:
ldr r6, _08052EBC
ldr r4, [r6]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
bne _08052EB6
adds r0, r4, 0
bl sub_8098170
bl sub_8083E28
ldr r4, [r6, 0x4]
movs r0, 0
adds r1, r4, 0
movs r2, 0x1
bl PrintFieldMessage
adds r0, r5, 0
adds r1, r4, 0
bl sub_80522E8
_08052EB6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08052EBC: .4byte gUnknown_80FF290
thumb_func_end sub_8052DD0
thumb_func_start sub_8052EC0
sub_8052EC0:
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
adds r0, r4, 0
bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _08052EE0
ldr r5, _08052EDC
b _08052F22
.align 2, 0
_08052EDC: .4byte gUnknown_80FF310
_08052EE0:
cmp r4, 0x37
bne _08052EEC
ldr r5, _08052EE8
b _08052F22
.align 2, 0
_08052EE8: .4byte gUnknown_80FF394
_08052EEC:
cmp r4, 0x43
bne _08052EF8
ldr r5, _08052EF4
b _08052F22
.align 2, 0
_08052EF4: .4byte gUnknown_80FF3E8
_08052EF8:
cmp r4, 0x48
bne _08052F04
ldr r5, _08052F00
b _08052F22
.align 2, 0
_08052F00: .4byte gUnknown_80FF440
_08052F04:
cmp r4, 0x7
bne _08052F10
ldr r5, _08052F0C
b _08052F22
.align 2, 0
_08052F0C: .4byte gUnknown_80FF4A0
_08052F10:
cmp r4, 0x42
bne _08052F1C
ldr r5, _08052F18
b _08052F22
.align 2, 0
_08052F18: .4byte gUnknown_80FF518
_08052F1C:
cmp r4, 0x45
bne _08052F4C
ldr r5, _08052F48
_08052F22:
ldr r4, [r5]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
bne _08052F74
adds r0, r4, 0
bl sub_8098170
bl sub_8083E28
ldr r1, [r5, 0x4]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08052F74
.align 2, 0
_08052F48: .4byte gUnknown_80FF57C
_08052F4C:
cmp r5, 0x69
bne _08052F74
ldr r5, _08052F7C
ldr r4, [r5]
adds r0, r4, 0
bl sub_80981A0
lsls r0, 24
cmp r0, 0
bne _08052F74
adds r0, r4, 0
bl sub_8098170
bl sub_8083E28
ldr r1, [r5, 0x4]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08052F74:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08052F7C: .4byte gUnknown_80FF5E8
thumb_func_end sub_8052EC0
thumb_func_start sub_8052F80
sub_8052F80:
push {lr}
ldr r0, _08052F9C
ldr r0, [r0]
ldrb r0, [r0, 0xA]
cmp r0, 0
beq _08052FA4
ldr r0, _08052FA0
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08052FB0
.align 2, 0
_08052F9C: .4byte gDungeonGlobalData
_08052FA0: .4byte gUnknown_80FF6F8
_08052FA4:
ldr r0, _08052FB4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08052FB0:
pop {r0}
bx r0
.align 2, 0
_08052FB4: .4byte gUnknown_80FF6A4
thumb_func_end sub_8052F80
thumb_func_start sub_8052FB8
sub_8052FB8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r3, r0, 0
movs r0, 0
mov r8, r0
ldr r0, _08053030
movs r2, 0
adds r0, 0x2
movs r1, 0x1C
_08052FD2:
strh r2, [r0]
adds r0, 0x2
subs r1, 0x1
cmp r1, 0
bge _08052FD2
movs r0, 0
str r0, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
str r0, [sp, 0x8]
str r0, [sp, 0xC]
movs r0, 0x30
str r0, [sp, 0x10]
adds r0, r3, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_8014248
movs r1, 0
mov r9, r1
ldr r7, _08053034
ldr r2, _08053038
mov r10, r2
_08053002:
mov r3, r8
cmp r3, 0x3D
bgt _08053040
movs r4, 0x1
add r8, r4
movs r5, 0
mov r1, r8
lsrs r0, r1, 31
adds r6, r1, r0
ldr r4, _0805303C
_08053016:
adds r0, r5, 0
adds r0, 0xF0
adds r1, r4, 0
asrs r2, r6, 1
movs r3, 0
bl SetBGPaletteBufferColorRGB
adds r4, 0x4
adds r5, 0x1
cmp r5, 0x7
ble _08053016
b _080530CA
.align 2, 0
_08053030: .4byte gUnknown_202B038
_08053034: .4byte gUnknown_202F1F0
_08053038: .4byte 0x0000f3ff
_0805303C: .4byte gUnknown_202D038
_08053040:
movs r2, 0x1
add r9, r2
movs r0, 0x8
mov r3, r9
ands r0, r3
cmp r0, 0
beq _080530BE
ldrh r0, [r7]
ldr r4, _080530D8
adds r1, r4, 0
ands r0, r1
ldr r2, _080530DC
adds r1, r2, 0
ands r0, r1
mov r3, r10
ands r0, r3
ldr r4, _080530E0
adds r1, r4, 0
ands r0, r1
ldr r2, _080530E4
adds r1, r2, 0
ands r0, r1
ldr r3, _080530E8
ands r0, r3
movs r4, 0x80
lsls r4, 7
orrs r0, r4
strh r0, [r7]
movs r2, 0xFC
lsls r2, 2
ldrh r0, [r7, 0x4]
movs r3, 0xFC
lsls r3, 8
adds r1, r3, 0
ands r0, r1
orrs r0, r2
movs r4, 0
orrs r0, r4
mov r1, r10
ands r0, r1
movs r2, 0xF
movs r3, 0xF0
lsls r3, 8
ldr r4, _080530EC
adds r1, r4, 0
ands r0, r1
orrs r0, r3
strh r0, [r7, 0x4]
movs r1, 0xF0
lsls r1, 3
ldrh r0, [r7, 0x6]
ands r2, r0
orrs r2, r1
strh r2, [r7, 0x6]
movs r0, 0x70
strh r0, [r7, 0x2]
adds r0, r7, 0
movs r1, 0x80
lsls r1, 1
movs r2, 0
movs r3, 0
bl AddSprite
_080530BE:
ldr r0, _080530F0
ldrh r1, [r0, 0x2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _080530F4
_080530CA:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
b _08053002
.align 2, 0
_080530D8: .4byte 0x0000feff
_080530DC: .4byte 0x0000fdff
_080530E0: .4byte 0x0000efff
_080530E4: .4byte 0x0000dfff
_080530E8: .4byte 0x00003fff
_080530EC: .4byte 0x00000fff
_080530F0: .4byte gRealInputs
_080530F4:
mov r0, r8
cmp r0, 0
blt _08053134
ldr r1, _08053178
mov r9, r1
_080530FE:
movs r5, 0
mov r7, r8
subs r7, 0x1
mov r2, r8
lsrs r0, r2, 31
adds r6, r2, r0
mov r4, r9
_0805310C:
adds r0, r5, 0
adds r0, 0xF0
adds r1, r4, 0
asrs r2, r6, 1
movs r3, 0
bl SetBGPaletteBufferColorRGB
adds r4, 0x4
adds r5, 0x1
cmp r5, 0x7
ble _0805310C
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
mov r8, r7
mov r3, r8
cmp r3, 0
bge _080530FE
_08053134:
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
movs r0, 0x9
bl sub_803E46C
bl sub_8040238
movs r5, 0
ldr r4, _08053178
_0805314C:
adds r0, r5, 0
adds r0, 0xF0
adds r1, r4, 0
bl SetBGPaletteBufferColorArray
adds r4, 0x4
adds r5, 0x1
cmp r5, 0x7
ble _0805314C
movs r0, 0x8
movs r1, 0x9
bl sub_803E708
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08053178: .4byte gUnknown_202D038
thumb_func_end sub_8052FB8
thumb_func_start sub_805317C
sub_805317C:
push {lr}
ldr r0, _08053198
ldr r1, [r0]
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
beq _0805319C
subs r2, 0x34
adds r0, r1, r2
ldrb r0, [r0]
b _0805319E
.align 2, 0
_08053198: .4byte gDungeonGlobalData
_0805319C:
movs r0, 0x3F
_0805319E:
bl GetDungeonName1
pop {r1}
bx r1
thumb_func_end sub_805317C
thumb_func_start sub_80531A8
sub_80531A8:
push {r4-r6,lr}
ldr r2, _080531F0
ldr r1, [r2]
movs r0, 0
strh r0, [r1, 0x16]
movs r0, 0x1
strb r0, [r1, 0xB]
movs r4, 0
movs r3, 0
ldr r5, _080531F4
_080531BC:
ldr r0, [r2]
lsls r1, r4, 6
adds r0, r1
adds r0, r5
strb r3, [r0]
ldr r0, [r2]
adds r0, r1
ldr r6, _080531F8
adds r0, r6
strb r3, [r0]
ldr r0, [r2]
adds r0, r1
adds r6, 0x1
adds r0, r6
strb r3, [r0]
ldr r0, [r2]
adds r0, r1
ldr r1, _080531FC
adds r0, r1
strb r3, [r0]
adds r4, 0x1
cmp r4, 0x13
ble _080531BC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080531F0: .4byte gDungeonGlobalData
_080531F4: .4byte 0x0001c073
_080531F8: .4byte 0x0001c070
_080531FC: .4byte 0x0001c072
thumb_func_end sub_80531A8
thumb_func_start sub_8053200
sub_8053200:
ldr r0, _0805320C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0xB]
bx lr
.align 2, 0
_0805320C: .4byte gDungeonGlobalData
thumb_func_end sub_8053200
thumb_func_start sub_8053210
sub_8053210:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldr r0, _08053264
mov r12, r0
ldr r3, [r0]
movs r0, 0x16
ldrsh r4, [r3, r0]
lsls r4, 6
ldr r5, _08053268
adds r0, r4, r5
adds r0, r3, r0
adds r7, r0, 0x3
adds r0, 0x3E
mov r8, r0
adds r3, r4
adds r3, r5
movs r0, 0x1
strb r0, [r3]
mov r4, r12
ldr r3, [r4]
movs r4, 0x16
ldrsh r0, [r3, r4]
lsls r0, 6
adds r3, r0
ldr r0, _0805326C
adds r3, r0
strb r1, [r3]
mov r3, r12
ldr r1, [r3]
movs r4, 0x16
ldrsh r0, [r1, r4]
lsls r0, 6
adds r1, r0
ldr r0, _08053270
adds r1, r0
strb r2, [r1]
ldrb r2, [r6]
adds r0, r2, 0
mov r1, r12
b _08053282
.align 2, 0
_08053264: .4byte gDungeonGlobalData
_08053268: .4byte 0x0001c070
_0805326C: .4byte 0x0001c071
_08053270: .4byte 0x0001c072
_08053274:
cmp r7, r8
bcs _0805327C
strb r2, [r7]
adds r7, 0x1
_0805327C:
adds r6, 0x1
ldrb r2, [r6]
adds r0, r2, 0
_08053282:
cmp r0, 0
beq _0805328A
cmp r0, 0xD
bne _08053274
_0805328A:
movs r0, 0
strb r0, [r7]
ldr r2, [r1]
ldrh r0, [r2, 0x16]
adds r0, 0x1
strh r0, [r2, 0x16]
lsls r0, 16
asrs r0, 16
cmp r0, 0x13
ble _080532A2
movs r0, 0
strh r0, [r2, 0x16]
_080532A2:
ldr r1, [r1]
movs r0, 0x1
strb r0, [r1, 0xB]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8053210
thumb_func_start sub_80532B4
sub_80532B4:
push {r4-r6,lr}
sub sp, 0xC
mov r0, sp
bl sub_801317C
movs r0, 0x9
movs r1, 0
bl sub_803EAF0
_080532C6:
movs r0, 0xD
bl sub_803E46C
movs r0, 0
bl sub_8008D8C
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080532C6
ldr r0, _08053374
str r1, [r0]
ldr r4, _08053378
strb r1, [r4]
bl sub_80533A4
adds r6, r4, 0
_080532E8:
movs r5, 0
strb r5, [r6]
mov r0, sp
movs r1, 0
bl nullsub_34
movs r0, 0
ldr r1, _0805337C
bl sub_8014140
adds r4, r0, 0
bl sub_8053430
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
bl sub_8053540
lsls r0, 24
cmp r0, 0
beq _0805331A
movs r5, 0x1
_0805331A:
cmp r5, 0
bne _08053324
movs r0, 0xD
bl sub_803E46C
_08053324:
ldrb r1, [r6]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0805333A
movs r0, 0x1
movs r1, 0x8
negs r1, r1
bl sub_805363C
_0805333A:
ldrb r1, [r6]
movs r4, 0x2
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0805334E
movs r0, 0
movs r1, 0x72
bl sub_805363C
_0805334E:
bl sub_80048C8
lsls r0, 24
cmp r0, 0
bne _080532E8
ldr r0, _08053380
ldrh r1, [r0, 0x2]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _0805336C
mov r0, sp
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _08053384
_0805336C:
bl sub_8083D30
b _08053390
.align 2, 0
_08053374: .4byte gUnknown_202F1F8
_08053378: .4byte gUnknown_202F1FC
_0805337C: .4byte gUnknown_8106990
_08053380: .4byte gRealInputs
_08053384:
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080532E8
bl sub_8083D08
_08053390:
movs r0, 0
movs r1, 0
bl sub_803EAF0
movs r0, 0x1
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80532B4
thumb_func_start sub_80533A4
sub_80533A4:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
ldr r5, _08053428
ldr r0, [r5]
movs r1, 0x16
ldrsh r4, [r0, r1]
movs r6, 0x10
subs r4, 0x8
cmp r4, 0
bge _080533BE
adds r4, 0x14
_080533BE:
movs r0, 0
bl sub_80073B8
mov r8, r5
movs r7, 0x7
_080533C8:
lsls r0, r4, 6
ldr r2, _0805342C
adds r0, r2
mov r2, r8
ldr r1, [r2]
adds r5, r1, r0
ldrb r0, [r5]
cmp r0, 0
beq _08053402
ldrb r0, [r5, 0x1]
cmp r0, 0
beq _080533F0
movs r0, 0x7
str r0, [sp]
movs r0, 0
movs r1, 0
adds r2, r6, 0
movs r3, 0xE0
bl sub_80078A4
_080533F0:
adds r1, r6, 0x3
adds r2, r5, 0x3
movs r0, 0xD
str r0, [sp]
movs r0, 0x8
movs r3, 0
bl xxx_call_draw_string
adds r6, 0xE
_08053402:
adds r4, 0x1
cmp r4, 0x13
ble _0805340A
movs r4, 0
_0805340A:
subs r7, 0x1
cmp r7, 0
bge _080533C8
movs r0, 0
bl sub_80073E0
movs r0, 0
bl sub_8007334
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08053428: .4byte gDungeonGlobalData
_0805342C: .4byte 0x0001c070
thumb_func_end sub_80533A4
thumb_func_start sub_8053430
sub_8053430:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
ldr r3, _08053454
ldr r0, [r3]
movs r2, 0x16
ldrsh r1, [r0, r2]
ldr r2, _08053458
ldr r0, [r2]
adds r1, r0
movs r6, 0x2
subs r1, 0x9
cmp r1, 0
bge _0805345E
_0805344C:
adds r1, 0x14
cmp r1, 0
blt _0805344C
b _0805345E
.align 2, 0
_08053454: .4byte gDungeonGlobalData
_08053458: .4byte gUnknown_202F1F8
_0805345C:
subs r1, 0x14
_0805345E:
cmp r1, 0x13
bgt _0805345C
ldr r0, [r3]
lsls r1, 6
adds r0, r1
ldr r3, _0805349C
adds r0, r3
ldrb r0, [r0]
adds r4, r1, 0
cmp r0, 0
beq _08053498
ldr r1, [r2]
movs r0, 0xC
negs r0, r0
cmp r1, r0
ble _08053498
ldr r2, _080534A0
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
ldr r0, _080534A4
ldrh r1, [r0, 0x4]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080534A8
cmp r5, 0x1
beq _080534A8
_08053498:
movs r0, 0
b _08053528
.align 2, 0
_0805349C: .4byte 0x0001c070
_080534A0: .4byte gUnknown_202F1FC
_080534A4: .4byte gRealInputs
_080534A8:
movs r0, 0
bl sub_8083CE0
movs r0, 0
bl sub_80073B8
ldr r0, _08053530
ldr r2, _08053534
adds r1, r4, r2
ldr r0, [r0]
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0
beq _080534FA
movs r0, 0x10
str r0, [sp]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0xD0
bl sub_80087EC
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _080534EA
movs r0, 0x7
str r0, [sp]
movs r0, 0
movs r1, 0
adds r2, r6, 0
movs r3, 0xE0
bl sub_80078A4
_080534EA:
adds r1, r6, 0x3
adds r2, r4, 0x3
movs r0, 0xD
str r0, [sp]
movs r0, 0x8
movs r3, 0
bl xxx_call_draw_string
_080534FA:
movs r0, 0
bl sub_80073E0
movs r0, 0xD
bl sub_803E46C
ldr r5, _08053538
movs r4, 0x6
_0805350A:
ldr r1, [r5]
movs r0, 0
bl _call_via_r1
movs r0, 0xD
bl sub_803E46C
subs r4, 0x1
cmp r4, 0
bge _0805350A
ldr r1, _0805353C
ldr r0, [r1]
subs r0, 0x1
str r0, [r1]
movs r0, 0x1
_08053528:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08053530: .4byte gDungeonGlobalData
_08053534: .4byte 0x0001c070
_08053538: .4byte gUnknown_203B084
_0805353C: .4byte gUnknown_202F1F8
thumb_func_end sub_8053430
thumb_func_start sub_8053540
sub_8053540:
push {r4,r5,lr}
sub sp, 0x4
adds r3, r0, 0
ldr r0, _08053564
ldr r0, [r0]
movs r1, 0x16
ldrsh r2, [r0, r1]
ldr r1, _08053568
ldr r0, [r1]
adds r4, r2, r0
movs r5, 0x80
cmp r4, 0
bge _0805356E
_0805355A:
adds r4, 0x14
cmp r4, 0
blt _0805355A
b _0805356E
.align 2, 0
_08053564: .4byte gDungeonGlobalData
_08053568: .4byte gUnknown_202F1F8
_0805356C:
subs r4, 0x14
_0805356E:
cmp r4, 0x13
bgt _0805356C
ldr r0, [r1]
cmp r0, 0
bge _08053592
ldr r2, _08053598
ldrb r0, [r2]
movs r1, 0x2
orrs r0, r1
strb r0, [r2]
ldr r0, _0805359C
ldrh r1, [r0, 0x4]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080535A0
cmp r3, 0x2
beq _080535A0
_08053592:
movs r0, 0
b _08053622
.align 2, 0
_08053598: .4byte gUnknown_202F1FC
_0805359C: .4byte gRealInputs
_080535A0:
movs r0, 0
bl sub_8083CE0
movs r0, 0
bl sub_80073B8
ldr r1, _0805362C
lsls r0, r4, 6
ldr r2, _08053630
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldrb r0, [r4]
cmp r0, 0
beq _080535F4
movs r0, 0x10
str r0, [sp]
movs r0, 0
movs r1, 0
adds r2, r5, 0
movs r3, 0x68
bl sub_80087EC
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _080535E4
movs r0, 0x7
str r0, [sp]
movs r0, 0
movs r1, 0
adds r2, r5, 0
movs r3, 0xE0
bl sub_80078A4
_080535E4:
adds r1, r5, 0x3
adds r2, r4, 0x3
movs r0, 0xD
str r0, [sp]
movs r0, 0x8
movs r3, 0
bl xxx_call_draw_string
_080535F4:
movs r0, 0
bl sub_80073E0
movs r0, 0xD
bl sub_803E46C
ldr r5, _08053634
movs r4, 0x6
_08053604:
ldr r1, [r5]
movs r0, 0
bl _call_via_r1
movs r0, 0xD
bl sub_803E46C
subs r4, 0x1
cmp r4, 0
bge _08053604
ldr r1, _08053638
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
movs r0, 0x1
_08053622:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0805362C: .4byte gDungeonGlobalData
_08053630: .4byte 0x0001c070
_08053634: .4byte gUnknown_203B080
_08053638: .4byte gUnknown_202F1F8
thumb_func_end sub_8053540
thumb_func_start sub_805363C
sub_805363C:
push {r4-r7,lr}
mov r12, r1
lsls r0, 24
lsrs r2, r0, 24
ldr r7, _080536D0
ldr r0, _080536D4
ldr r0, [r0]
movs r1, 0x8
ands r0, r1
cmp r0, 0
bne _080536C8
ldr r0, _080536D8
ldrh r1, [r0]
ldr r3, _080536DC
ands r3, r1
ldr r1, _080536E0
ands r3, r1
ldr r1, _080536E4
ands r3, r1
ldr r1, _080536E8
ands r3, r1
ldr r1, _080536EC
ands r3, r1
negs r1, r2
orrs r1, r2
asrs r1, 31
movs r2, 0x80
lsls r2, 6
ands r2, r1
ldrh r1, [r0, 0x2]
ldr r4, _080536F0
ands r4, r1
orrs r4, r2
movs r5, 0xF
ldr r2, _080536F4
movs r6, 0x2
ldrsh r1, [r7, r6]
lsls r1, 3
add r1, r12
ands r1, r2
lsls r1, 4
ldrh r2, [r0, 0x6]
ands r5, r2
orrs r5, r1
strh r5, [r0, 0x6]
movs r2, 0
ldrsh r1, [r7, r2]
lsls r1, 3
adds r1, 0x5C
ldr r2, _080536F8
ands r1, r2
movs r2, 0xFE
lsls r2, 8
ands r4, r2
orrs r4, r1
movs r2, 0x80
lsls r2, 7
ldr r1, _080536FC
ands r3, r1
orrs r3, r2
strh r3, [r0]
ands r4, r1
strh r4, [r0, 0x2]
ldr r1, _08053700
strh r1, [r0, 0x4]
movs r1, 0x7F
movs r2, 0
movs r3, 0
bl AddSprite
_080536C8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080536D0: .4byte gUnknown_2027370
_080536D4: .4byte gUnknown_202EDCC
_080536D8: .4byte gUnknown_202F200
_080536DC: .4byte 0x0000feff
_080536E0: .4byte 0x0000fdff
_080536E4: .4byte 0x0000f3ff
_080536E8: .4byte 0x0000efff
_080536EC: .4byte 0x0000dfff
_080536F0: .4byte 0x0000c1ff
_080536F4: .4byte 0x00000fff
_080536F8: .4byte 0x000001ff
_080536FC: .4byte 0x00003fff
_08053700: .4byte 0x0000f3f0
thumb_func_end sub_805363C
thumb_func_start sub_8053704
sub_8053704:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x48
str r0, [sp, 0x10]
adds r7, r1, 0
mov r8, r2
mov r9, r3
movs r0, 0
str r0, [sp, 0x14]
ldrh r1, [r2, 0x2]
str r1, [sp, 0x18]
bl _08055570
_08053724:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08053734
bl _0805556A
_08053734:
str r7, [sp, 0x1C]
ldr r2, [r5, 0x70]
str r2, [sp, 0x24]
movs r3, 0xAD
lsls r3, 1
adds r0, r2, r3
add r1, sp, 0x20
ldrb r1, [r1]
strb r1, [r0]
ldr r0, [sp, 0x18]
bl GetMoveTargetsUser
lsls r0, 24
cmp r0, 0
beq _080537B4
ldr r6, _080537A4
ldr r0, [r6]
ldr r2, _080537A8
adds r0, r2
ldr r4, [r0]
cmp r4, 0
beq _080537B4
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x1
beq _0805376C
b _08053A1C
_0805376C:
cmp r4, r7
bne _08053772
b _08053A1C
_08053772:
ldr r1, [r4, 0x70]
adds r1, 0x98
ldr r0, [r6]
ldr r3, _080537AC
adds r0, r3
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _08053786
b _08053A1C
_08053786:
ldr r0, [sp, 0x24]
adds r0, 0xFF
ldrb r0, [r0]
cmp r0, 0
beq _08053792
b _08053A1C
_08053792:
ldr r0, _080537B0
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
adds r5, r4, 0
b _08053A1C
.align 2, 0
_080537A4: .4byte gDungeonGlobalData
_080537A8: .4byte 0x00017b30
_080537AC: .4byte 0x00017b3c
_080537B0: .4byte gUnknown_80FCD28
_080537B4:
adds r0, r7, 0
mov r1, r8
bl GetMoveType_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _08053854
ldr r2, _08053844
ldr r0, [r2]
ldr r1, _08053848
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08053854
adds r4, r0, 0
str r2, [sp, 0x44]
bl GetEntityType
ldr r2, [sp, 0x44]
cmp r0, 0x1
beq _080537E2
b _08053A1C
_080537E2:
ldr r6, [r4, 0x70]
adds r1, r6, 0
adds r1, 0x98
ldr r0, [r2]
ldr r2, _0805384C
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _080537F8
b _08053A1C
_080537F8:
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0805380E
b _08053A1C
_0805380E:
ldr r0, [sp, 0x24]
adds r0, 0xFF
ldrb r0, [r0]
cmp r0, 0
bne _08053822
adds r0, r6, 0
adds r0, 0xFF
ldrb r0, [r0]
cmp r0, 0
beq _08053828
_08053822:
cmp r5, r4
beq _08053828
b _08053A1C
_08053828:
adds r0, r4, 0
bl sub_8042930
ldr r0, _08053850
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
adds r5, r4, 0
movs r3, 0x1
str r3, [sp, 0x2C]
b _08053A1C
.align 2, 0
_08053844: .4byte gDungeonGlobalData
_08053848: .4byte 0x00017b2c
_0805384C: .4byte 0x00017b38
_08053850: .4byte gUnknown_80FCD0C
_08053854:
adds r0, r5, 0
movs r1, 0x2C
bl HasItem
lsls r0, 24
cmp r0, 0
bne _08053864
b _08053A1C
_08053864:
adds r0, r5, 0
movs r1, 0
bl CannotAttack
lsls r0, 24
cmp r0, 0
beq _08053874
b _08053A1C
_08053874:
adds r0, r7, 0
mov r1, r8
movs r2, 0
bl GetTargetingFlags
movs r1, 0xF0
ands r1, r0
cmp r1, 0
beq _08053888
b _08053A1C
_08053888:
ldr r1, [sp, 0x24]
movs r2, 0x9E
lsls r2, 1
adds r0, r1, r2
ldr r0, [r0]
bl GetBellyRoundedUp
ldr r1, _080538C4
movs r3, 0
ldrsh r1, [r1, r3]
cmp r0, r1
bge _080538A2
b _08053A1C
_080538A2:
ldr r0, [sp, 0x24]
adds r0, 0xFF
ldrb r0, [r0]
cmp r0, 0
beq _080538AE
b _08053A1C
_080538AE:
ldr r0, [sp, 0x24]
adds r0, 0x46
ldrb r4, [r0]
mov r10, r4
bl IsBossBattle
lsls r0, 24
cmp r0, 0
beq _080538CC
ldr r0, _080538C8
b _080539FA
.align 2, 0
_080538C4: .4byte gUnknown_80F5006
_080538C8: .4byte gUnknown_80FDD88
_080538CC:
movs r0, 0
str r0, [sp, 0x34]
movs r2, 0x9E
lsls r2, 1
ldr r1, [sp, 0x24]
adds r2, r1, r2
str r2, [sp, 0x3C]
_080538DA:
movs r3, 0x1
add r10, r3
movs r0, 0x7
mov r1, r10
ands r1, r0
mov r10, r1
movs r2, 0x4
ldrsh r0, [r5, r2]
ldr r1, _080539B4
mov r3, r10
lsls r2, r3, 2
adds r2, r1
movs r3, 0
ldrsh r1, [r2, r3]
adds r0, r1
movs r3, 0x6
ldrsh r1, [r5, r3]
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
bl GetMapTileAtPosition
ldr r0, [r0, 0x10]
str r0, [sp, 0x38]
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080539DC
ldr r0, [sp, 0x38]
bl GetEntityType
cmp r0, 0x1
bne _080539DC
adds r0, r5, 0
bl sub_8045888
lsls r0, 24
mov r1, sp
adds r1, 0xC
str r1, [sp, 0x40]
cmp r0, 0
beq _0805397C
movs r6, 0x17
_08053932:
adds r0, r5, 0
adds r1, r4, 0
bl sub_806CE68
movs r0, 0x2
movs r1, 0x43
bl sub_803E708
adds r4, 0x1
movs r2, 0x7
ands r4, r2
subs r6, 0x1
cmp r6, 0
bge _08053932
cmp r4, r10
beq _0805396C
movs r6, 0x7
_08053954:
adds r0, r5, 0
adds r1, r4, 0
bl sub_806CE68
movs r0, 0x2
movs r1, 0x43
bl sub_803E708
adds r4, 0x1
ands r4, r6
cmp r4, r10
bne _08053954
_0805396C:
adds r0, r5, 0
adds r1, r4, 0
bl sub_806CE68
movs r0, 0x2
movs r1, 0x43
bl sub_803E708
_0805397C:
ldr r3, [sp, 0x3C]
ldr r4, [r3]
ldr r0, _080539B8
movs r2, 0
ldrsh r1, [r0, r2]
add r0, sp, 0x8
bl sub_80943A0
ldr r2, [sp, 0x8]
ldr r0, [sp, 0x40]
adds r1, r4, 0
bl sub_80942C0
ldr r0, [sp, 0xC]
ldr r3, [sp, 0x3C]
str r0, [r3]
mov r0, r8
ldrh r1, [r0, 0x2]
ldr r0, _080539BC
cmp r1, r0
bne _080539C4
ldr r0, _080539C0
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
b _080539D0
.align 2, 0
_080539B4: .4byte gAdjacentTileOffsets
_080539B8: .4byte gUnknown_80F5006
_080539BC: .4byte 0x00000163
_080539C0: .4byte gUnknown_80FDDA8
_080539C4:
ldr r0, _080539D8
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
_080539D0:
str r5, [sp, 0x20]
ldr r5, [sp, 0x38]
b _080539E8
.align 2, 0
_080539D8: .4byte gUnknown_80FDD20
_080539DC:
ldr r1, [sp, 0x34]
adds r1, 0x1
str r1, [sp, 0x34]
cmp r1, 0x7
bgt _080539E8
b _080538DA
_080539E8:
ldr r2, [sp, 0x34]
cmp r2, 0x8
bne _08053A1C
mov r3, r8
ldrh r1, [r3, 0x2]
ldr r0, _08053A08
cmp r1, r0
bne _08053A10
ldr r0, _08053A0C
_080539FA:
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
b _08053A1C
.align 2, 0
_08053A08: .4byte 0x00000163
_08053A0C: .4byte gUnknown_80FDDAC
_08053A10:
ldr r0, _08053AD8
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
_08053A1C:
ldr r1, _08053ADC
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r1, _08053AE0
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, [r5, 0x70]
str r0, [sp, 0x24]
movs r6, 0xAD
lsls r6, 1
adds r1, r0, r6
movs r0, 0
strb r0, [r1]
ldr r1, [sp, 0x24]
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08053A4C
movs r2, 0xB6
lsls r2, 1
adds r1, r2
ldr r0, [r7, 0x4]
str r0, [r1]
_08053A4C:
adds r0, r5, 0
bl sub_806A1E8
adds r0, r7, 0
adds r1, r5, 0
bl sub_807A96C
movs r4, 0
adds r0, r7, 0
mov r1, r8
bl sub_80570AC
lsls r0, 24
cmp r0, 0
bne _08053A7E
mov r3, r8
ldrh r1, [r3, 0x2]
adds r0, r7, 0
bl sub_805755C
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
_08053A7E:
ldr r0, [sp, 0x2C]
cmp r0, 0
beq _08053A86
b _08053BAE
_08053A86:
ldr r0, [sp, 0x24]
adds r0, 0xC4
ldrb r0, [r0]
cmp r0, 0x5
bne _08053AE8
ldr r0, [sp, 0x18]
bl GetMoveAffectedByMagicCoat
lsls r0, 24
cmp r0, 0
beq _08053B5C
adds r0, r7, 0
adds r1, r5, 0
bl sub_8055988
lsls r0, 24
cmp r0, 0
beq _08053B5C
ldr r0, _08053AE4
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
adds r0, r5, 0
bl sub_8041B48
adds r0, r5, 0
adds r1, r7, 0
bl sub_80559DC
adds r5, r7, 0
ldr r1, [r7, 0x70]
str r1, [sp, 0x24]
adds r0, r1, r6
add r2, sp, 0x2C
ldrb r2, [r2]
strb r2, [r0]
movs r3, 0x1
str r3, [sp, 0x30]
b _08053B5C
.align 2, 0
_08053AD8: .4byte gUnknown_80FDD48
_08053ADC: .4byte gUnknown_202F208
_08053AE0: .4byte gUnknown_202F20C
_08053AE4: .4byte gUnknown_80FC52C
_08053AE8:
cmp r0, 0xB
bne _08053B5C
adds r0, r7, 0
mov r1, r8
movs r2, 0
bl GetTargetingFlags
lsls r0, 16
asrs r1, r0, 16
ldr r0, _08053C88
ldr r2, [sp, 0x18]
cmp r2, r0
beq _08053B5C
adds r0, 0x32
cmp r2, r0
beq _08053B5C
cmp r4, 0
bne _08053B5C
movs r0, 0xF
ands r0, r1
cmp r0, 0
beq _08053B20
cmp r0, 0x4
beq _08053B20
cmp r0, 0x5
beq _08053B20
cmp r0, 0x2
bne _08053B5C
_08053B20:
adds r0, r7, 0
adds r1, r5, 0
bl sub_8055988
lsls r0, 24
cmp r0, 0
beq _08053B5C
ldr r0, _08053C8C
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
adds r0, r5, 0
bl sub_8041BA8
adds r0, r5, 0
adds r1, r7, 0
bl sub_80559DC
adds r5, r7, 0
ldr r3, [r7, 0x70]
str r3, [sp, 0x24]
movs r0, 0xAD
lsls r0, 1
adds r1, r3, r0
movs r0, 0
strb r0, [r1]
movs r1, 0x1
str r1, [sp, 0x30]
_08053B5C:
ldr r2, [sp, 0x2C]
cmp r2, 0
bne _08053BAE
ldr r0, [sp, 0x24]
adds r0, 0xC4
ldrb r0, [r0]
cmp r0, 0x7
bne _08053BAE
adds r0, r7, 0
mov r1, r8
movs r2, 0
bl GetTargetingFlags
lsls r0, 16
movs r1, 0xF0
lsls r1, 12
ands r1, r0
asrs r1, 16
cmp r1, 0
beq _08053B90
cmp r1, 0x4
beq _08053B90
cmp r1, 0x5
beq _08053B90
cmp r1, 0x2
bne _08053BAE
_08053B90:
cmp r4, 0
bne _08053BAE
ldr r0, _08053C90
adds r1, r5, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08053C94
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
movs r3, 0
str r3, [sp, 0x28]
_08053BAE:
adds r0, r5, 0
mov r1, r8
bl sub_80571F0
lsls r0, 24
cmp r0, 0
beq _08053BC0
movs r0, 0
str r0, [sp, 0x28]
_08053BC0:
ldr r1, [sp, 0x28]
cmp r1, 0
beq _08053C4A
adds r0, r5, 0
movs r1, 0x3C
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08053BFA
mov r0, r8
bl IsBlockedBySoundproof
lsls r0, 24
cmp r0, 0
beq _08053BFA
ldr r0, _08053C90
adds r1, r5, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08053C98
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
movs r2, 0
str r2, [sp, 0x28]
_08053BFA:
ldr r3, [sp, 0x28]
cmp r3, 0
beq _08053C4A
movs r0, 0
ldr r1, [sp, 0x30]
cmp r1, 0
bne _08053C0A
movs r0, 0x1
_08053C0A:
adds r2, r0, 0
mov r3, r8
ldrh r1, [r3, 0x2]
cmp r1, 0x68
beq _08053C20
ldr r0, _08053C9C
cmp r1, r0
beq _08053C20
subs r0, 0x4
cmp r1, r0
bne _08053C22
_08053C20:
movs r2, 0
_08053C22:
str r2, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
movs r3, 0
bl sub_8056B34
lsls r0, 24
cmp r0, 0
bne _08053C3A
movs r0, 0
str r0, [sp, 0x28]
_08053C3A:
ldr r1, [sp, 0x28]
cmp r1, 0
beq _08053C4A
ldr r2, [sp, 0x2C]
cmp r2, 0
beq _08053C4A
movs r3, 0
str r3, [sp, 0x28]
_08053C4A:
adds r0, r5, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _08053C6A
movs r0, 0x4
movs r1, 0x4A
bl sub_803E708
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
movs r3, 0
bl sub_8041168
_08053C6A:
ldr r0, [sp, 0x28]
cmp r0, 0
beq _08053C72
b _08053D72
_08053C72:
ldr r0, [r7, 0x70]
ldrb r0, [r0, 0x7]
cmp r0, 0
beq _08053CA0
movs r1, 0xAB
lsls r1, 1
adds r0, r7, 0
bl sub_80421C0
b _08053CA8
.align 2, 0
_08053C88: .4byte 0x00000163
_08053C8C: .4byte gUnknown_80FC558
_08053C90: .4byte gUnknown_202DFE8
_08053C94: .4byte gUnknown_80FC574
_08053C98: .4byte gUnknown_8100524
_08053C9C: .4byte 0x00000131
_08053CA0:
ldr r1, _08053CC4
adds r0, r7, 0
bl sub_80421C0
_08053CA8:
ldr r0, _08053CC8
ldr r1, [r5, 0x70]
movs r2, 0
bl SetMessageArgument_2
cmp r7, r5
bne _08053CD0
ldr r0, _08053CCC
ldr r2, [r0]
adds r0, r7, 0
adds r1, r7, 0
bl sub_80522F4
b _08053D10
.align 2, 0
_08053CC4: .4byte 0x00000157
_08053CC8: .4byte gUnknown_202DFE8
_08053CCC: .4byte gUnknown_80F9380
_08053CD0:
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
cmp r0, 0
bne _08053CEC
ldr r0, _08053CE8
b _08053CF4
.align 2, 0
_08053CE8: .4byte gUnknown_80F9384
_08053CEC:
ldr r1, [sp, 0x2C]
cmp r1, 0
beq _08053D04
ldr r0, _08053D00
_08053CF4:
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
b _08053D10
.align 2, 0
_08053D00: .4byte gUnknown_80F93A4
_08053D04:
ldr r0, _08053D48
ldr r2, [r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80522F4
_08053D10:
adds r0, r5, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _08053D2A
ldr r0, _08053D4C
movs r3, 0x1
negs r3, r3
adds r1, r5, 0
movs r2, 0x1
bl sub_803ED30
_08053D2A:
ldr r2, [sp, 0x18]
cmp r2, 0xCC
beq _08053D50
cmp r2, 0xCE
bne _08053D60
movs r0, 0x1
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059FC8
b _08053D60
.align 2, 0
_08053D48: .4byte gUnknown_80F9364
_08053D4C: .4byte 0x0000270f
_08053D50:
movs r0, 0x1
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059E54
_08053D60:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _08053D6E
bl _080555A2
_08053D6E:
bl _08055568
_08053D72:
ldr r0, [sp, 0x24]
adds r0, 0xFB
ldrb r3, [r0]
mov r10, r3
ldr r2, [sp, 0x24]
ldrb r1, [r2, 0x6]
adds r6, r0, 0
cmp r1, 0
beq _08053DA8
mov r3, r8
ldrh r1, [r3, 0x2]
ldr r0, _08053E88
cmp r1, r0
beq _08053D9E
mov r0, r9
cmp r0, 0
bne _08053D9E
mov r1, r10
cmp r1, 0
bne _08053D9E
movs r0, 0x1
strb r0, [r6]
_08053D9E:
ldr r2, [sp, 0x68]
cmp r2, 0x1
bne _08053DA8
movs r0, 0x2
strb r0, [r6]
_08053DA8:
ldr r3, [sp, 0x24]
movs r0, 0xB2
lsls r0, 1
adds r4, r3, r0
ldrb r0, [r4]
cmp r0, 0xFF
bne _08053DCE
adds r0, r5, 0
movs r1, 0xE3
bl sub_80717A4
lsls r0, 24
cmp r0, 0
beq _08053DCE
adds r0, r5, 0x4
adds r1, r7, 0x4
bl CalculateFacingDir
strb r0, [r4]
_08053DCE:
ldr r1, [sp, 0x24]
ldr r2, _08053E8C
adds r4, r1, r2
ldrb r0, [r4]
cmp r0, 0xFF
bne _08053DF2
adds r0, r5, 0
movs r1, 0x19
bl sub_80717A4
lsls r0, 24
cmp r0, 0
beq _08053DF2
adds r0, r5, 0x4
adds r1, r7, 0x4
bl CalculateFacingDir
strb r0, [r4]
_08053DF2:
adds r0, r5, 0
movs r1, 0x39
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08053E4A
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08053E4A
mov r3, r8
ldrh r1, [r3, 0x2]
ldr r0, _08053E88
cmp r1, r0
beq _08053E4A
subs r0, 0x3
cmp r1, r0
beq _08053E4A
mov r0, r9
cmp r0, 0
bne _08053E4A
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _08053E4A
ldrb r1, [r3, 0x1]
movs r4, 0x10
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _08053E42
adds r0, r7, 0
bl sub_8042950
_08053E42:
mov r1, r8
ldrb r0, [r1, 0x1]
orrs r0, r4
strb r0, [r1, 0x1]
_08053E4A:
adds r0, r7, 0
mov r1, r8
movs r2, 0
bl GetTargetingFlags
movs r1, 0xF
ands r1, r0
cmp r1, 0
bne _08053E64
adds r0, r7, 0
adds r1, r5, 0
bl SetShopkeeperAggression
_08053E64:
ldr r2, [sp, 0x24]
movs r3, 0xAC
lsls r3, 1
adds r0, r2, r3
movs r1, 0x1
strb r1, [r0]
movs r0, 0xCE
lsls r0, 1
ldr r1, [sp, 0x18]
cmp r1, r0
bls _08053E7E
bl _080554C0
_08053E7E:
lsls r0, r1, 2
ldr r1, _08053E90
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08053E88: .4byte 0x00000163
_08053E8C: .4byte 0x00000165
_08053E90: .4byte _08053E94
.align 2, 0
_08053E94:
.4byte _08054520
.4byte _08054DB8
.4byte _08054C18
.4byte _08054888
.4byte _08054878
.4byte _08054D80
.4byte _08054D8E
.4byte _08054FB0
.4byte _08054FE8
.4byte _08054508
.4byte _08054FF6
.4byte _08055270
.4byte _08055190
.4byte _080548C8
.4byte _080552B6
.4byte _08054E1A
.4byte _0805527E
.4byte _080551F2
.4byte _08054508
.4byte _080549C8
.4byte _08054EEC
.4byte _08054968
.4byte _08054EDE
.4byte _0805528C
.4byte _08054B18
.4byte _08055422
.4byte _08054E1A
.4byte _08054AB8
.4byte _08054508
.4byte _0805529A
.4byte _080547A8
.4byte _08055200
.4byte _0805460A
.4byte _08054948
.4byte _08054878
.4byte _0805519E
.4byte _080545AE
.4byte _0805514A
.4byte _08054CD4
.4byte _08054508
.4byte _08055396
.4byte _08054EB4
.4byte _08054A68
.4byte _08054C28
.4byte _08054A58
.4byte _08054E8A
.4byte _080547A8
.4byte _08054DD4
.4byte _080553DC
.4byte _0805504A
.4byte _080554A0
.4byte _08054CD4
.4byte _0805455E
.4byte _0805456E
.4byte _080552D2
.4byte _080549B8
.4byte _08055004
.4byte _0805453E
.4byte _08054F94
.4byte _08054818
.4byte _08054D56
.4byte _08054CE2
.4byte _080547B8
.4byte _08054788
.4byte _08054868
.4byte _08054868
.4byte _08054F16
.4byte _08055112
.4byte _080545AE
.4byte _080545FA
.4byte _08054F94
.4byte _080546D8
.4byte _08054F86
.4byte _08054928
.4byte _0805459E
.4byte _08054D64
.4byte _08054AD8
.4byte _080550DA
.4byte _08054E52
.4byte _08054878
.4byte _08054AD8
.4byte _080545AE
.4byte _080546E8
.4byte _08054ED0
.4byte _08054878
.4byte _080550CC
.4byte _0805462A
.4byte _080545AE
.4byte _08054E28
.4byte _0805462A
.4byte _080545AE
.4byte _08054B78
.4byte _08055120
.4byte _080546E8
.4byte _08054C48
.4byte _08054CC6
.4byte _080551D6
.4byte _08054928
.4byte _08054FA2
.4byte _08054A38
.4byte _08054B58
.4byte _0805457E
.4byte _08055090
.4byte _080547E8
.4byte _08055238
.4byte _08054C18
.4byte _08054A88
.4byte _080546F8
.4byte _08054DF0
.4byte _0805464A
.4byte _08054A78
.4byte _08054878
.4byte _08054B98
.4byte _0805512E
.4byte _080546F8
.4byte _08055414
.4byte _08054AF8
.4byte _08054C78
.4byte _0805452E
.4byte _0805536C
.4byte _08054768
.4byte _080550DA
.4byte _08054DC6
.4byte _080550E8
.4byte _08054858
.4byte _080545FA
.4byte _08054508
.4byte _080547B8
.4byte _08055104
.4byte _08054898
.4byte _08054BF8
.4byte _080545CA
.4byte _08054508
.4byte _08054778
.4byte _08054BE8
.4byte _08054B08
.4byte _08054508
.4byte _080553B2
.4byte _08055388
.4byte _08054798
.4byte _08054AE8
.4byte _08054BD8
.4byte _08054EA6
.4byte _080545FA
.4byte _08054768
.4byte _08054508
.4byte _08054EA6
.4byte _08054738
.4byte _080549F8
.4byte _08054748
.4byte _080545DA
.4byte _08054B48
.4byte _08054838
.4byte _08054FBE
.4byte _08054508
.4byte _080550F6
.4byte _08054FDA
.4byte _0805456E
.4byte _08054508
.4byte _08054A48
.4byte _08055166
.4byte _08054508
.4byte _080546C8
.4byte _08054508
.4byte _08054B38
.4byte _08054C38
.4byte _08054508
.4byte _08054508
.4byte _08054508
.4byte _08054988
.4byte _08054AC8
.4byte _080548C8
.4byte _080550BE
.4byte _08054C58
.4byte _08054508
.4byte _08054508
.4byte _08054508
.4byte _080548B8
.4byte _08054508
.4byte _08054508
.4byte _08054508
.4byte _080549D8
.4byte _08054508
.4byte _080553C0
.4byte _08055468
.4byte _08055246
.4byte _08054A28
.4byte _08054F5C
.4byte _08054758
.4byte _08054508
.4byte _08054508
.4byte _080548C8
.4byte _080548E8
.4byte _08054908
.4byte _080548A8
.4byte _080549B8
.4byte _080548D8
.4byte _08054EC2
.4byte _08054BA8
.4byte _080548D8
.4byte _0805463A
.4byte _08054508
.4byte _08054A28
.4byte _08054AF8
.4byte _0805509E
.4byte _08054FCC
.4byte _08054D28
.4byte _080547D8
.4byte _08054508
.4byte _08054C98
.4byte _08054B28
.4byte _08054508
.4byte _08054DAA
.4byte _08054E98
.4byte _08054CB8
.4byte _08054A08
.4byte _08054AC8
.4byte _08054A98
.4byte _08054C78
.4byte _0805461A
.4byte _080553A4
.4byte _08054788
.4byte _08054508
.4byte _0805520E
.4byte _08054DC6
.4byte _08054E7C
.4byte _08054828
.4byte _08054D0C
.4byte _0805521C
.4byte _08055066
.4byte _0805456E
.4byte _08054878
.4byte _08054C68
.4byte _08054DE2
.4byte _080546F8
.4byte _08054768
.4byte _08055182
.4byte _08054D1A
.4byte _0805458E
.4byte _0805458E
.4byte _08054508
.4byte _08054508
.4byte _0805458E
.4byte _08054918
.4byte _0805469C
.4byte _08055174
.4byte _08054938
.4byte _080545DA
.4byte _08054508
.4byte _08055012
.4byte _08054508
.4byte _080545AE
.4byte _08054F24
.4byte _08054B78
.4byte _080552E0
.4byte _080546D8
.4byte _08055074
.4byte _08055254
.4byte _08054A28
.4byte _08054C08
.4byte _08054508
.4byte _08054778
.4byte _0805456E
.4byte _0805535E
.4byte _080547C8
.4byte _080549A8
.4byte _08055326
.4byte _08054AA8
.4byte _08054958
.4byte _0805530A
.4byte _0805457E
.4byte _08054788
.4byte _08054D3A
.4byte _08054EA6
.4byte _080548C8
.4byte _08054728
.4byte _080547F8
.4byte _08054BB8
.4byte _0805513C
.4byte _0805463A
.4byte _0805463A
.4byte _080548F8
.4byte _080552A8
.4byte _080546B8
.4byte _08054958
.4byte _08054508
.4byte _080553F8
.4byte _08054CB8
.4byte _08054978
.4byte _08054778
.4byte _08054508
.4byte _080545FA
.4byte _0805456E
.4byte _080551C8
.4byte _08054B88
.4byte _08054E0C
.4byte _08054E60
.4byte _08054508
.4byte _08054D72
.4byte _08054928
.4byte _08054508
.4byte _080550B0
.4byte _08054A18
.4byte _08054788
.4byte _08055090
.4byte _080550B0
.4byte _08054508
.4byte _08054DAA
.4byte _08054508
.4byte _08054708
.4byte _080547C8
.4byte _08054508
.4byte _08054508
.4byte _080551E4
.4byte _08054EFA
.4byte _080552D2
.4byte _080551BA
.4byte _08055074
.4byte _08054C38
.4byte _080549E8
.4byte _08054AD8
.4byte _08054508
.4byte _08054508
.4byte _08054508
.4byte _08054D48
.4byte _08054680
.4byte _08054808
.4byte _08055492
.4byte _08055406
.4byte _08054DFE
.4byte _0805544C
.4byte _08054F32
.4byte _08054664
.4byte _080549B8
.4byte _080553EA
.4byte _08054718
.4byte _080545AE
.4byte _08055430
.4byte _08054BC8
.4byte _08054E1A
.4byte _08054CE2
.4byte _08054848
.4byte _08054768
.4byte _08054998
.4byte _0805457E
.4byte _0805457E
.4byte _08054508
.4byte _08054508
.4byte _08054E6E
.4byte _08054FA2
.4byte _08054508
.4byte _08054A88
.4byte _0805454E
.4byte _08054508
.4byte _08054AF8
.4byte _08054512
.4byte _080554C0
.4byte _08054CF0
.4byte _080554C0
.4byte _080554C0
.4byte _08054508
.4byte _0805529A
.4byte _08054508
.4byte _08055158
.4byte _08054CA8
.4byte _08055318
.4byte _08054508
.4byte _08054F24
.4byte _08054958
.4byte _08054F5C
.4byte _080552EE
.4byte _08054B68
.4byte _08054CC6
.4byte _08054F40
.4byte _08055058
.4byte _080552FC
.4byte _08055476
.4byte _08055484
.4byte _080553CE
.4byte _08055326
.4byte _08055090
.4byte _08054E44
.4byte _080548C8
.4byte _08054F08
.4byte _0805543E
.4byte _08055350
.4byte _08054C88
.4byte _08054E36
.4byte _08054F6A
.4byte _08055020
.4byte _08055334
.4byte _080551AC
.4byte _080545EA
.4byte _0805545A
.4byte _08054D9C
.4byte _08055342
.4byte _08055082
.4byte _080554AE
.4byte _08055262
.4byte _0805522A
.4byte _08054F4E
.4byte _08054CFE
.4byte _080554C0
.4byte _0805537A
.4byte _080554C0
.4byte _080554C0
.4byte _080554A0
.4byte _080552C4
.4byte _080554C0
.4byte _08054F78
.4byte _0805502E
.4byte _080554C0
.4byte _0805503C
_08054508:
movs r3, 0x80
lsls r3, 1
mov r2, r9
str r2, [sp]
b _080545B6
_08054512:
mov r3, r9
str r3, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
movs r3, 0x80
b _080545BC
_08054520:
mov r0, r9
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
movs r3, 0
b _080545BC
_0805452E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058F04
bl _080554BA
_0805453E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058270
bl _080554BA
_0805454E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B968
bl _080554BA
_0805455E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805816C
bl _080554BA
_0805456E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80581D0
bl _080554BA
_0805457E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058B3C
bl _080554BA
_0805458E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A568
bl _080554BA
_0805459E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057E1C
bl _080554BA
_080545AE:
movs r3, 0x80
lsls r3, 1
mov r1, r9
str r1, [sp]
_080545B6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
_080545BC:
bl sub_8055640
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
bl _080554C2
_080545CA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80590D4
bl _080554BA
_080545DA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80595EC
bl _080554BA
_080545EA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C138
bl _080554BA
_080545FA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B17C
bl _080554BA
_0805460A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057D20
bl _080554BA
_0805461A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A2E8
bl _080554BA
_0805462A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805889C
bl _080554BA
_0805463A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059E0C
bl _080554BA
_0805464A:
ldr r0, _08054660
ldr r3, [r0]
mov r2, r9
str r2, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_8058C98
bl _080554BA
.align 2, 0
_08054660: .4byte gUnknown_8106A50
_08054664:
ldr r0, _0805467C
ldr r3, [r0]
mov r0, r9
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_8058C98
bl _080554BA
.align 2, 0
_0805467C: .4byte gUnknown_8106A4C
_08054680:
ldr r0, _08054698
ldr r3, [r0]
mov r1, r9
str r1, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_805B3FC
bl _080554BA
.align 2, 0
_08054698: .4byte gUnknown_8106A4C
_0805469C:
ldr r0, _080546B4
ldr r3, [r0]
mov r2, r9
str r2, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_805A5E8
bl _080554BA
.align 2, 0
_080546B4: .4byte gUnknown_8106A4C
_080546B8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B074
bl _080554BA
_080546C8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059928
bl _080554BA
_080546D8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058580
bl _080554BA
_080546E8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058930
bl _080554BA
_080546F8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058C00
bl _080554BA
_08054708:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B324
bl _080554BA
_08054718:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B910
bl _080554BA
_08054728:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AE74
bl _080554BA
_08054738:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059540
bl _080554BA
_08054748:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80595A0
bl _080554BA
_08054758:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059D00
bl _080554BA
_08054768:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058FBC
bl _080554BA
_08054778:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059190
bl _080554BA
_08054788:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058430
bl _080554BA
_08054798:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059424
bl _080554BA
_080547A8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057C88
bl _080554BA
_080547B8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80583D8
bl _080554BA
_080547C8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AC90
bl _080554BA
_080547D8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A0A8
bl _080554BA
_080547E8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058B84
bl _080554BA
_080547F8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AECC
bl _080554BA
_08054808:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B454
bl _080554BA
_08054818:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80582C4
bl _080554BA
_08054828:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A408
bl _080554BA
_08054838:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059714
bl _080554BA
_08054848:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B808
bl _080554BA
_08054858:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059050
bl _080554BA
_08054868:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058478
bl _080554BA
_08054878:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80576F8
bl _080554BA
_08054888:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80576D0
bl _080554BA
_08054898:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059080
bl _080554BA
_080548A8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059D98
bl _080554BA
_080548B8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059AF8
bl _080554BA
_080548C8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059AA8
bl _080554BA
_080548D8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059DA4
bl _080554BA
_080548E8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059D48
bl _080554BA
_080548F8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B028
bl _080554BA
_08054908:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059D58
bl _080554BA
_08054918:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A588
bl _080554BA
_08054928:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058638
bl _080554BA
_08054938:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A688
bl _080554BA
_08054948:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057D7C
bl _080554BA
_08054958:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B0BC
bl _080554BA
_08054968:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057A0C
bl _080554BA
_08054978:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B164
bl _080554BA
_08054988:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059A18
bl _080554BA
_08054998:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B884
bl _080554BA
_080549A8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805ACD8
bl _080554BA
_080549B8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80582D4
bl _080554BA
_080549C8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057954
bl _080554BA
_080549D8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059B94
bl _080554BA
_080549E8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B3B4
bl _080554BA
_080549F8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059588
bl _080554BA
_08054A08:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A2B0
bl _080554BA
_08054A18:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B2FC
bl _080554BA
_08054A28:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059CD8
bl _080554BA
_08054A38:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058A7C
bl _080554BA
_08054A48:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80598CC
bl _080554BA
_08054A58:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057F7C
bl _080554BA
_08054A68:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057ED0
bl _080554BA
_08054A78:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058CEC
bl _080554BA
_08054A88:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058BF0
bl _080554BA
_08054A98:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A2C8
bl _080554BA
_08054AA8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AD34
bl _080554BA
_08054AB8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057C68
bl _080554BA
_08054AC8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059A2C
bl _080554BA
_08054AD8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80586DC
bl _080554BA
_08054AE8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805946C
bl _080554BA
_08054AF8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058E5C
bl _080554BA
_08054B08:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80591E4
bl _080554BA
_08054B18:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057BC4
bl _080554BA
_08054B28:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A210
bl _080554BA
_08054B38:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059988
bl _080554BA
_08054B48:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805968C
bl _080554BA
_08054B58:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl SkyAttackMoveAction
bl _080554BA
_08054B68:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BE90
bl _080554BA
_08054B78:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80588B8
bl _080554BA
_08054B88:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B214
bl _080554BA
_08054B98:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058D38
bl _080554BA
_08054BA8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059DC4
bl _080554BA
_08054BB8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AF30
bl _080554BA
_08054BC8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B7FC
bl _080554BA
_08054BD8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80594E0
bl _080554BA
_08054BE8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80591D8
bl _080554BA
_08054BF8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80590C8
bl _080554BA
_08054C08:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AB48
bl _080554BA
_08054C18:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805768C
bl _080554BA
_08054C28:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057F24
bl _080554BA
_08054C38:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80599EC
bl _080554BA
_08054C48:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80589D4
bl _080554BA
_08054C58:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059AC4
bl _080554BA
_08054C68:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A4D4
bl _080554BA
_08054C78:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058EE0
bl _080554BA
_08054C88:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BD70
bl _080554BA
_08054C98:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A120
bl _080554BA
_08054CA8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BA50
bl _080554BA
_08054CB8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A2A0
b _080554BA
_08054CC6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058A08
b _080554BA
_08054CD4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805815C
b _080554BA
_08054CE2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805834C
b _080554BA
_08054CF0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805836C
b _080554BA
_08054CFE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C3DC
b _080554BA
_08054D0C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A450
b _080554BA
_08054D1A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A55C
b _080554BA
_08054D28:
movs r0, 0
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059FC8
b _080554BA
_08054D3A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AE3C
b _080554BA
_08054D48:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B3E0
b _080554BA
_08054D56:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80582EC
b _080554BA
_08054D64:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805867C
b _080554BA
_08054D72:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B2E4
b _080554BA
_08054D80:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057720
b _080554BA
_08054D8E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057748
b _080554BA
_08054D9C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C1BC
b _080554BA
_08054DAA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A23C
b _080554BA
_08054DB8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057634
b _080554BA
_08054DC6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A3DC
b _080554BA
_08054DD4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057FF4
b _080554BA
_08054DE2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A4FC
b _080554BA
_08054DF0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058C48
b _080554BA
_08054DFE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B5F4
b _080554BA
_08054E0C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl TrapperOrbAction
b _080554BA
_08054E1A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80578EC
b _080554BA
_08054E28:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80588A8
b _080554BA
_08054E36:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BD7C
b _080554BA
_08054E44:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BC70
b _080554BA
_08054E52:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80587E8
b _080554BA
_08054E60:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B264
b _080554BA
_08054E6E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl SkullBashMoveAction
b _080554BA
_08054E7C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A3FC
b _080554BA
_08054E8A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057FCC
b _080554BA
_08054E98:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A258
b _080554BA
_08054EA6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059528
b _080554BA
_08054EB4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057E6C
b _080554BA
_08054EC2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059DB4
b _080554BA
_08054ED0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058838
b _080554BA
_08054EDE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl TormentMoveAction
b _080554BA
_08054EEC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057974
b _080554BA
_08054EFA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B388
b _080554BA
_08054F08:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BC98
b _080554BA
_08054F16:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80584C0
b _080554BA
_08054F24:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BB74
b _080554BA
_08054F32:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B668
b _080554BA
_08054F40:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl LuminousOrbAction
b _080554BA
_08054F4E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl FillInOrbAction
b _080554BA
_08054F5C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059CF0
b _080554BA
_08054F6A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BF34
b _080554BA
_08054F78:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C474
b _080554BA
_08054F86:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80585CC
b _080554BA
_08054F94:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80582AC
b _080554BA
_08054FA2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058A54
b _080554BA
_08054FB0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805777C
b _080554BA
_08054FBE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059790
b _080554BA
_08054FCC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059F38
b _080554BA
_08054FDA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl DiveMoveAction
b _080554BA
_08054FE8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057788
b _080554BA
_08054FF6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057824
b _080554BA
_08055004:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805825C
b _080554BA
_08055012:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A6C8
b _080554BA
_08055020:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl TrapbustOrbAction
b _080554BA
_0805502E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C480
b _080554BA
_0805503C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C48C
b _080554BA
_0805504A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl GrudgeMoveAction
b _080554BA
_08055058:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BEAC
b _080554BA
_08055066:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A4C0
b _080554BA
_08055074:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AAD0
b _080554BA
_08055082:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C1F8
b _080554BA
_08055090:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B314
b _080554BA
_0805509E:
movs r0, 0
str r0, [sp]
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059E54
b _080554BA
_080550B0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B2F0
b _080554BA
_080550BE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059AB8
b _080554BA
_080550CC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058858
b _080554BA
_080550DA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058770
b _080554BA
_080550E8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059004
b _080554BA
_080550F6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80597F0
b _080554BA
_08055104:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059060
b _080554BA
_08055112:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058548
b _080554BA
_08055120:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80588F4
b _080554BA
_0805512E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058D44
b _080554BA
_0805513C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AFA4
b _080554BA
_0805514A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057E28
b _080554BA
_08055158:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BA44
b _080554BA
_08055166:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805991C
b _080554BA
_08055174:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl SpitUpMoveAction
b _080554BA
_08055182:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A508
b _080554BA
_08055190:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805785C
b _080554BA
_0805519E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057D9C
b _080554BA
_080551AC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C128
b _080554BA
_080551BA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B3A8
b _080554BA
_080551C8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B208
b _080554BA
_080551D6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058A18
b _080554BA
_080551E4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B37C
b _080554BA
_080551F2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057948
b _080554BA
_08055200:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057CD0
b _080554BA
_0805520E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A394
b _080554BA
_0805521C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A464
b _080554BA
_0805522A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C2A0
b _080554BA
_08055238:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058BE0
b _080554BA
_08055246:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl HelpingHandMoveAction
b _080554BA
_08055254:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AAE0
b _080554BA
_08055262:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C288
b _080554BA
_08055270:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805783C
b _080554BA
_0805527E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80578FC
b _080554BA
_0805528C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057BB4
b _080554BA
_0805529A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B9E8
b _080554BA
_080552A8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl TransformMoveAction
b _080554BA
_080552B6:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_80578A4
b _080554BA
_080552C4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C468
b _080554BA
_080552D2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058234
b _080554BA
_080552E0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A85C
b _080554BA
_080552EE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl TransferOrbAction
b _080554BA
_080552FC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BB98
b _080554BA
_0805530A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AD54
b _080554BA
_08055318:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BB64
b _080554BA
_08055326:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AD04
b _080554BA
_08055334:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C080
b _080554BA
_08055342:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C1E4
b _080554BA
_08055350:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl EscapeOrbAction
b _080554BA
_0805535E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805AB54
b _080554BA
_0805536C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058F58
b _080554BA
_0805537A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C3F8
b _080554BA
_08055388:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl SketchMoveAction
b _080554BA
_08055396:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057E50
b _080554BA
_080553A4:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805A31C
b _080554BA
_080553B2:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl SkillSwapMoveAction
b _080554BA
_080553C0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059BAC
b _080554BA
_080553CE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl CleanseOrbAction
b _080554BA
_080553DC:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805805C
b _080554BA
_080553EA:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B734
b _080554BA
_080553F8:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B0D0
b _080554BA
_08055406:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B53C
b _080554BA
_08055414:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8058DBC
b _080554BA
_08055422:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8057BEC
b _080554BA
_08055430:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B740
b _080554BA
_0805543E:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BD64
b _080554BA
_0805544C:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805B618
b _080554BA
_0805545A:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C1B0
b _080554BA
_08055468:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_8059C80
b _080554BA
_08055476:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BEB8
b _080554BA
_08055484:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805BEC8
b _080554BA
_08055492:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl MimicMoveAction
b _080554BA
_080554A0:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C45C
b _080554BA
_080554AE:
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
mov r3, r9
bl sub_805C208
_080554BA:
lsls r0, 24
lsrs r4, r0, 24
b _080554C2
_080554C0:
movs r4, 0
_080554C2:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080555A2
ldr r0, [sp, 0x20]
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080554E6
ldr r3, [sp, 0x20]
ldr r0, [r3, 0x70]
adds r0, 0x46
ldrb r1, [r0]
adds r0, r3, 0
bl sub_806CE68
_080554E6:
cmp r4, 0
bne _08055510
adds r0, r7, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055530
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055530
ldr r1, [sp, 0x24]
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08055530
mov r2, r10
strb r2, [r6]
b _08055530
_08055510:
mov r0, r8
bl sub_8057088
lsls r0, 24
cmp r0, 0
beq _08055530
adds r0, r7, 0
movs r1, 0
bl sub_8057308
lsls r0, 24
cmp r0, 0
beq _08055530
ldr r1, _08055614
movs r0, 0x1
strb r0, [r1]
_08055530:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055548
ldr r3, [sp, 0x24]
movs r0, 0xAC
lsls r0, 1
adds r1, r3, r0
movs r0, 0x1
strb r0, [r1]
_08055548:
ldr r1, [sp, 0x18]
cmp r1, 0x89
beq _08055568
adds r0, r7, 0
bl sub_8055DDC
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_8069F9C
adds r0, r7, 0
adds r1, r5, 0
mov r2, r8
bl sub_806A120
_08055568:
ldr r7, [sp, 0x1C]
_0805556A:
ldr r2, [sp, 0x14]
adds r2, 0x1
str r2, [sp, 0x14]
_08055570:
ldr r3, [sp, 0x14]
cmp r3, 0x3F
bgt _080555A2
movs r0, 0
str r0, [sp, 0x20]
lsls r0, r3, 2
ldr r1, [sp, 0x10]
adds r0, r1
ldr r5, [r0]
movs r2, 0x1
str r2, [sp, 0x28]
movs r3, 0
str r3, [sp, 0x2C]
movs r0, 0
str r0, [sp, 0x30]
cmp r5, 0
beq _080555A2
adds r0, r7, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080555A2
bl _08053724
_080555A2:
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _08055604
adds r0, r7, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080555D6
ldr r0, [r7, 0x70]
movs r2, 0xAA
lsls r2, 1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
beq _080555D6
strb r4, [r1]
adds r0, r7, 0
adds r1, r7, 0
movs r2, 0
movs r3, 0
bl sub_807D148
_080555D6:
adds r0, r7, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055604
ldr r0, [r7, 0x70]
ldr r3, _08055618
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, 0
beq _08055604
movs r0, 0
strb r0, [r1]
ldr r1, _0805561C
ldr r2, [r1]
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r7, 0
adds r1, r7, 0
movs r3, 0x2
bl sub_8076E20
_08055604:
add sp, 0x48
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08055614: .4byte gUnknown_202F222
_08055618: .4byte 0x00000155
_0805561C: .4byte gUnknown_8106A50
thumb_func_end sub_8053704
thumb_func_start sub_8055620
sub_8055620:
push {r4,lr}
sub sp, 0x4
movs r4, 0x80
lsls r4, 1
str r3, [sp]
adds r3, r4, 0
bl sub_8055640
cmp r0, 0
beq _08055636
movs r0, 0x1
_08055636:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8055620
thumb_func_start sub_8055640
sub_8055640:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
adds r6, r0, 0
mov r10, r1
adds r5, r2, 0
mov r9, r3
ldr r7, [sp, 0x44]
adds r1, r5, 0
bl GetMoveType_2
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_8071A44
mov r8, r0
adds r0, r5, 0
bl GetMoveCriticalHitChance
str r0, [sp]
add r0, sp, 0x14
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
ldrh r0, [r5, 0x2]
str r0, [sp, 0xC]
movs r0, 0x1
str r0, [sp, 0x10]
adds r0, r6, 0
mov r1, r10
adds r2, r4, 0
mov r3, r8
bl sub_806EAF4
adds r0, r5, 0
adds r1, r7, 0
bl sub_8057600
lsls r0, 16
asrs r0, 16
str r0, [sp]
adds r0, r6, 0
mov r1, r10
adds r2, r5, 0
add r3, sp, 0x14
bl sub_8055728
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8055640
thumb_func_start sub_80556BC
sub_80556BC:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x24
adds r6, r0, 0
mov r9, r1
adds r4, r2, 0
adds r5, r3, 0
ldr r7, [sp, 0x40]
lsls r4, 24
lsrs r4, 24
adds r1, r5, 0
bl sub_8071A44
mov r8, r0
adds r0, r5, 0
bl GetMoveCriticalHitChance
str r0, [sp]
add r0, sp, 0x14
str r0, [sp, 0x4]
str r7, [sp, 0x8]
ldrh r0, [r5, 0x2]
str r0, [sp, 0xC]
movs r0, 0x1
str r0, [sp, 0x10]
adds r0, r6, 0
mov r1, r9
adds r2, r4, 0
mov r3, r8
bl sub_806EAF4
adds r0, r5, 0
ldr r1, [sp, 0x44]
bl sub_8057600
lsls r0, 16
asrs r0, 16
str r0, [sp]
adds r0, r6, 0
mov r1, r9
adds r2, r5, 0
add r3, sp, 0x14
bl sub_8055728
add sp, 0x24
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80556BC
thumb_func_start sub_8055728
sub_8055728:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r6, r0, 0
adds r4, r1, 0
adds r5, r2, 0
mov r8, r3
ldr r0, [sp, 0x30]
lsls r0, 16
asrs r0, 16
mov r9, r0
movs r7, 0x1
str r7, [sp]
adds r0, r6, 0
movs r3, 0x1
bl sub_8056B34
lsls r0, 24
cmp r0, 0
beq _080557C0
movs r0, 0
mov r10, r0
ldrh r1, [r5, 0x2]
movs r0, 0x9D
lsls r0, 1
cmp r1, r0
bne _08055768
movs r1, 0x1
mov r10, r1
_08055768:
adds r0, r4, 0
movs r1, 0x2E
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08055790
ldr r0, _080557AC
ldr r1, [r0]
ldr r0, _080557B0
adds r2, r1, r0
ldr r0, _080557B4
strh r0, [r2]
ldr r2, _080557B8
adds r0, r1, r2
str r4, [r0]
ldr r0, _080557BC
adds r1, r0
ldrh r0, [r4, 0x26]
str r0, [r1]
_08055790:
str r7, [sp]
mov r1, r9
str r1, [sp, 0x4]
str r7, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
adds r0, r6, 0
adds r1, r4, 0
mov r2, r8
mov r3, r10
bl sub_806D010
b _08055826
.align 2, 0
_080557AC: .4byte gDungeonGlobalData
_080557B0: .4byte 0x00000662
_080557B4: .4byte 0x000003e7
_080557B8: .4byte 0x00017b34
_080557BC: .4byte 0x00017b40
_080557C0:
ldr r0, _08055808
ldr r1, [r4, 0x70]
movs r2, 0
bl SetMessageArgument_2
adds r0, r6, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _08055814
adds r0, r4, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _08055814
ldr r0, _0805580C
movs r3, 0x1
negs r3, r3
adds r1, r4, 0
movs r2, 0x1
bl sub_803ED30
ldr r0, _08055810
ldr r2, [r0]
adds r0, r6, 0
adds r1, r4, 0
bl sub_805232C
adds r0, r6, 0
adds r1, r4, 0
bl sub_8042238
b _08055820
.align 2, 0
_08055808: .4byte gUnknown_202DFE8
_0805580C: .4byte 0x0000270f
_08055810: .4byte gUnknown_80F9688
_08055814:
ldr r0, _08055834
ldr r2, [r0]
adds r0, r6, 0
adds r1, r4, 0
bl sub_80522F4
_08055820:
movs r0, 0x1
mov r2, r8
strb r0, [r2, 0xF]
_08055826:
mov r1, r8
ldrb r0, [r1, 0xF]
cmp r0, 0
beq _08055838
movs r0, 0
b _08055854
.align 2, 0
_08055834: .4byte gUnknown_80F9688
_08055838:
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055850
ldr r0, [r4, 0x70]
movs r2, 0xAD
lsls r2, 1
adds r1, r0, r2
movs r0, 0x1
strb r0, [r1]
_08055850:
mov r1, r8
ldr r0, [r1]
_08055854:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8055728
thumb_func_start sub_8055864
sub_8055864:
push {r4-r7,lr}
sub sp, 0x20
adds r4, r0, 0
adds r7, r1, 0
adds r5, r2, 0
adds r6, r3, 0
adds r1, r5, 0
bl GetMoveType_2
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
add r0, sp, 0x10
str r0, [sp]
adds r0, r4, 0
adds r1, r7, 0
adds r3, r6, 0
bl sub_806F2BC
adds r0, r5, 0
ldr r1, [sp, 0x34]
bl sub_8057600
lsls r0, 16
asrs r0, 16
movs r5, 0x1
str r5, [sp]
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
adds r0, r4, 0
adds r1, r7, 0
add r2, sp, 0x10
movs r3, 0
bl sub_806D010
add r0, sp, 0x10
ldrb r0, [r0, 0xF]
cmp r0, 0
beq _080558BA
movs r0, 0
b _080558D2
_080558BA:
adds r0, r7, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080558D0
ldr r0, [r7, 0x70]
movs r1, 0xAD
lsls r1, 1
adds r0, r1
strb r5, [r0]
_080558D0:
ldr r0, [sp, 0x10]
_080558D2:
add sp, 0x20
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8055864
thumb_func_start sub_80558DC
sub_80558DC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
movs r4, 0x1
movs r2, 0
mov r9, r2
ldr r1, [r1, 0x70]
mov r10, r1
bl GetMoveType
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
beq _08055902
cmp r1, 0x7
bne _08055906
_08055902:
movs r5, 0x1
mov r9, r5
_08055906:
ldr r6, _08055944
mov r8, r6
mov r3, r10
adds r3, 0x5C
ldr r7, _08055948
mov r12, r7
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
str r0, [sp, 0x10]
adds r2, r3, 0
_0805591C:
mov r0, sp
mov r1, r8
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldr r1, [r1]
str r1, [r0]
mov r0, r9
cmp r0, 0
beq _0805594C
ldrb r0, [r2]
cmp r0, 0xE
bne _0805594C
mov r0, r10
adds r0, 0xF5
ldrb r0, [r0]
cmp r0, 0
bne _0805594C
movs r0, 0
b _0805595A
.align 2, 0
_08055944: .4byte gUnknown_81069BC
_08055948: .4byte gTypeEffectivenessChart
_0805594C:
ldrb r0, [r2]
lsls r0, 1
ldr r1, [sp, 0x10]
adds r0, r1
add r0, r12
movs r5, 0
ldrsh r0, [r0, r5]
_0805595A:
lsls r0, 2
add r0, sp
ldr r0, [r0]
muls r4, r0
cmp r4, 0
beq _0805596E
adds r2, 0x1
adds r0, r3, 0x1
cmp r2, r0
ble _0805591C
_0805596E:
adds r0, r4, 0
cmp r0, 0
beq _08055976
movs r0, 0x1
_08055976:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80558DC
thumb_func_start sub_8055988
sub_8055988:
push {r4,lr}
adds r2, r0, 0
adds r4, r1, 0
cmp r2, r4
beq _080559D4
movs r0, 0x4
ldrsh r1, [r2, r0]
movs r3, 0x4
ldrsh r0, [r4, r3]
subs r1, r0
cmp r1, 0
bge _080559A2
negs r1, r1
_080559A2:
cmp r1, 0x1
bgt _080559D4
movs r0, 0x6
ldrsh r1, [r2, r0]
movs r3, 0x6
ldrsh r0, [r4, r3]
subs r1, r0
cmp r1, 0
bge _080559B6
negs r1, r1
_080559B6:
cmp r1, 0x1
bgt _080559D4
adds r0, r4, 0x4
adds r1, r2, 0x4
bl CalculateFacingDir
adds r1, r0, 0
adds r0, r4, 0
bl CanAttackInFront
lsls r0, 24
cmp r0, 0
beq _080559D4
movs r0, 0x1
b _080559D6
_080559D4:
movs r0, 0
_080559D6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8055988
thumb_func_start sub_80559DC
sub_80559DC:
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, [r5, 0x70]
adds r0, r5, 0x4
adds r1, 0x4
bl CalculateFacingDir
adds r1, r0, 0
movs r2, 0x7
ands r0, r2
adds r4, 0x46
strb r0, [r4]
adds r0, r5, 0
bl sub_806CE68
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80559DC
thumb_func_start sub_8055A00
sub_8055A00:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x34
adds r5, r0, 0
mov r9, r1
str r2, [sp, 0x20]
str r3, [sp, 0x24]
ldr r0, [r5, 0x70]
mov r10, r0
mov r7, r9
cmp r7, 0x3
ble _08055A22
movs r0, 0
b _08055DB4
_08055A22:
movs r0, 0xBC
lsls r0, 1
add r0, r10
movs r1, 0
movs r2, 0
strh r2, [r0]
ldr r0, _08055A4C
add r0, r10
strb r1, [r0]
mov r0, r10
adds r0, 0xBC
ldrb r0, [r0]
cmp r0, 0x1
bne _08055A58
ldr r0, _08055A50
adds r1, r5, 0
bl SetMessageArgument
ldr r0, _08055A54
b _08055A8A
.align 2, 0
_08055A4C: .4byte 0x00000159
_08055A50: .4byte gAvailablePokemonNames
_08055A54: .4byte gUnknown_80FC714
_08055A58:
cmp r0, 0x7
bne _08055A74
ldr r0, _08055A6C
adds r1, r5, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08055A70
b _08055A8A
.align 2, 0
_08055A6C: .4byte gAvailablePokemonNames
_08055A70: .4byte gUnknown_80FC718
_08055A74:
mov r0, r10
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x4
bne _08055AA0
ldr r0, _08055A98
adds r1, r5, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08055A9C
_08055A8A:
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
movs r0, 0
b _08055DB4
.align 2, 0
_08055A98: .4byte gAvailablePokemonNames
_08055A9C: .4byte gUnknown_80FC6A8
_08055AA0:
ldr r0, _08055B24
strb r1, [r0]
ldr r0, _08055B28
str r2, [r0]
ldr r0, _08055B2C
strb r1, [r0]
adds r0, r7, 0x1
movs r2, 0
movs r6, 0x3
movs r1, 0xC0
lsls r1, 1
add r1, r10
_08055AB8:
strh r2, [r1]
subs r1, 0x2
subs r6, 0x1
cmp r6, 0
bge _08055AB8
movs r6, 0
movs r3, 0x1
adds r7, r0, 0
cmp r7, 0x3
bgt _08055B06
lsls r2, r7, 3
mov r1, r10
adds r0, r1, r2
movs r4, 0x8C
lsls r4, 1
adds r0, r4
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08055B06
movs r0, 0x2
mov r8, r0
adds r0, r2, r4
mov r1, r10
adds r2, r0, r1
_08055AEC:
adds r6, 0x1
cmp r6, 0x3
bgt _08055B06
adds r3, 0x1
adds r2, 0x8
adds r7, 0x1
cmp r7, 0x3
bgt _08055B06
ldrb r1, [r2]
mov r0, r8
ands r0, r1
cmp r0, 0
bne _08055AEC
_08055B06:
movs r0, 0
str r0, [sp, 0x28]
cmp r3, 0x1
ble _08055B12
movs r1, 0x1
str r1, [sp, 0x28]
_08055B12:
mov r7, r9
lsls r0, r7, 3
movs r1, 0x8C
lsls r1, 1
adds r0, r1
add r0, r10
mov r8, r0
b _08055CB4
.align 2, 0
_08055B24: .4byte gUnknown_202F222
_08055B28: .4byte gUnknown_202F208
_08055B2C: .4byte gUnknown_202F221
_08055B30:
mov r1, r8
ldrh r0, [r1, 0x2]
cmp r0, 0x19
beq _08055B3C
cmp r0, 0xE3
bne _08055B4E
_08055B3C:
adds r0, r5, 0
bl IsSleeping
lsls r0, 24
cmp r0, 0
bne _08055B5E
adds r0, r5, 0
movs r1, 0x1
b _08055B52
_08055B4E:
adds r0, r5, 0
movs r1, 0
_08055B52:
bl CannotAttack
lsls r0, 24
cmp r0, 0
beq _08055B5E
b _08055CCE
_08055B5E:
ldr r0, _08055B9C
ldrb r0, [r0]
cmp r0, 0
beq _08055B68
b _08055CCE
_08055B68:
ldrb r1, [r6]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08055B74
b _08055C82
_08055B74:
movs r2, 0x1
movs r0, 0
str r0, [sp, 0x2C]
adds r0, r5, 0
adds r1, r6, 0
str r2, [sp, 0x30]
bl sub_80570AC
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r6, 0x4]
ldr r2, [sp, 0x30]
cmp r0, 0
beq _08055BA0
cmp r4, 0
bne _08055BBA
movs r1, 0x1
str r1, [sp, 0x2C]
b _08055BBA
.align 2, 0
_08055B9C: .4byte gUnknown_202F221
_08055BA0:
cmp r4, 0
bne _08055BBA
ldr r0, _08055C08
adds r1, r6, 0
movs r2, 0
bl sub_80928C0
ldr r0, _08055C0C
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
movs r2, 0
_08055BBA:
cmp r2, 0
beq _08055C82
ldr r0, _08055C10
ldr r0, [r0]
mov r9, r0
ldr r0, _08055C14
add r0, r10
strb r4, [r0]
ldrh r0, [r6, 0x2]
cmp r0, 0xE5
bne _08055C20
ldr r0, [r6]
ldr r1, [r6, 0x4]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
adds r0, r5, 0
bl sub_8057144
lsls r0, 16
ldr r2, _08055C18
ldr r1, [sp, 0x8]
ands r1, r2
orrs r1, r0
str r1, [sp, 0x8]
ldr r0, _08055C08
add r1, sp, 0x8
movs r2, 0
bl sub_80928C0
ldr r0, _08055C1C
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
ldr r0, [sp, 0x28]
str r0, [sp]
add r1, sp, 0x8
str r1, [sp, 0x4]
b _08055C26
.align 2, 0
_08055C08: .4byte gUnknown_202DE58
_08055C0C: .4byte gUnknown_80F93C8
_08055C10: .4byte gUnknown_202F208
_08055C14: .4byte 0x00000159
_08055C18: .4byte 0x0000ffff
_08055C1C: .4byte gUnknown_80FD2DC
_08055C20:
ldr r0, [sp, 0x28]
str r0, [sp]
str r6, [sp, 0x4]
_08055C26:
adds r0, r5, 0
ldr r1, [sp, 0x20]
ldr r2, [sp, 0x24]
ldr r3, [sp, 0x54]
bl sub_8055FA0
lsls r0, 24
lsrs r0, 24
ldr r1, [sp, 0x2C]
cmp r1, 0
beq _08055C56
cmp r0, 0
beq _08055C56
ldrb r1, [r6, 0x1]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08055C50
movs r0, 0xFB
ands r0, r1
b _08055C54
_08055C50:
movs r0, 0x8
orrs r0, r1
_08055C54:
strb r0, [r6, 0x1]
_08055C56:
ldr r0, _08055C70
ldr r0, [r0]
cmp r9, r0
bne _08055C82
ldr r0, [sp, 0x24]
cmp r0, 0
bne _08055C78
ldr r0, _08055C74
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
b _08055C82
.align 2, 0
_08055C70: .4byte gUnknown_202F208
_08055C74: .4byte gUnknown_80FC690
_08055C78:
ldr r0, _08055DC4
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
_08055C82:
movs r0, 0x1
bl sub_804178C
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055CCE
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08055CCE
movs r1, 0x8
add r8, r1
adds r7, 0x1
cmp r7, 0x3
bgt _08055CCE
mov r0, r8
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08055CCE
_08055CB4:
mov r6, r8
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055CCE
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08055CCE
b _08055B30
_08055CCE:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055D54
movs r6, 0
_08055CDC:
lsls r0, r6, 1
movs r1, 0xBD
lsls r1, 1
add r1, r10
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
beq _08055D4E
add r4, sp, 0x10
adds r1, r0, 0
adds r0, r4, 0
bl sub_8092AA8
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08055D48
ldrh r0, [r4, 0x2]
cmp r0, 0xE5
bne _08055D36
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
adds r0, r5, 0
bl sub_8057144
lsls r0, 16
ldr r2, _08055DC8
ldr r1, [sp, 0x18]
ands r1, r2
orrs r1, r0
str r1, [sp, 0x18]
add r4, sp, 0x18
ldr r0, _08055DCC
adds r1, r4, 0
movs r2, 0
bl sub_80928C0
ldr r0, _08055DD0
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
_08055D36:
ldr r1, [sp, 0x28]
str r1, [sp]
str r4, [sp, 0x4]
adds r0, r5, 0
movs r1, 0
ldr r2, [sp, 0x24]
ldr r3, [sp, 0x54]
bl sub_8055FA0
_08055D48:
movs r0, 0x1
bl sub_804178C
_08055D4E:
adds r6, 0x1
cmp r6, 0x3
ble _08055CDC
_08055D54:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
adds r0, r5, 0
bl sub_8071DA4
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
ldr r1, _08055DD4
ldrb r0, [r1]
cmp r0, 0
beq _08055DB2
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08055DB2
ldr r4, [r5, 0x70]
ldr r1, _08055DD8
adds r0, r5, 0
movs r2, 0x1
bl sub_808417C
adds r3, r0, 0
movs r0, 0
str r0, [sp]
adds r0, r5, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_8076090
adds r4, 0xFB
ldrb r0, [r4]
cmp r0, 0
bne _08055DB2
movs r0, 0x1
strb r0, [r4]
_08055DB2:
movs r0, 0x1
_08055DB4:
add sp, 0x34
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08055DC4: .4byte gUnknown_80FC6A4
_08055DC8: .4byte 0x0000ffff
_08055DCC: .4byte gUnknown_202DE58
_08055DD0: .4byte gUnknown_80FD2DC
_08055DD4: .4byte gUnknown_202F222
_08055DD8: .4byte gUnknown_80F4E70
thumb_func_end sub_8055A00
thumb_func_start sub_8055DDC
sub_8055DDC:
push {r4-r7,lr}
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08055DEC
b _08055F62
_08055DEC:
ldr r6, [r4, 0x70]
movs r7, 0xBC
lsls r7, 1
adds r5, r6, r7
ldrh r1, [r5]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08055E10
ldr r0, _08055F68
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
_08055E10:
ldrh r1, [r5]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08055E2C
ldr r0, _08055F6C
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
_08055E2C:
ldrh r1, [r5]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08055E48
ldr r0, _08055F70
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
bl sub_80769CC
_08055E48:
ldrh r1, [r5]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08055E66
ldr r0, _08055F74
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_8077780
_08055E66:
ldrh r1, [r5]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08055E84
ldr r0, _08055F78
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_8077780
_08055E84:
ldrh r1, [r5]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08055EA2
ldr r0, _08055F7C
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_80763F8
_08055EA2:
ldrh r1, [r5]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08055EC0
ldr r0, _08055F80
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_80763F8
_08055EC0:
ldrh r1, [r5]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08055EEA
ldr r0, _08055F84
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
ldr r1, _08055F88
adds r0, r4, 0
movs r2, 0x1
bl sub_808417C
adds r2, r0, 0
adds r0, r4, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_8075C58
_08055EEA:
ldrh r1, [r5]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08055F0C
ldr r0, _08055F8C
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8076210
_08055F0C:
ldrh r1, [r5]
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _08055F2C
ldr r0, _08055F90
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x1
bl sub_807614C
_08055F2C:
adds r5, r6, r7
ldrh r1, [r5]
movs r0, 0x80
lsls r0, 3
ands r0, r1
cmp r0, 0
beq _08055F5E
ldr r0, _08055F94
adds r1, r4, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08055F98
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
adds r0, r4, 0
bl sub_80428A0
ldr r0, _08055F9C
ldrh r1, [r0]
adds r0, r6, 0
adds r0, 0xFA
strb r1, [r0]
_08055F5E:
movs r0, 0
strh r0, [r5]
_08055F62:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08055F68: .4byte gUnknown_80FEEA4
_08055F6C: .4byte gUnknown_80FEEC8
_08055F70: .4byte gUnknown_80FEEEC
_08055F74: .4byte gUnknown_80FEF0C
_08055F78: .4byte gUnknown_80FEF30
_08055F7C: .4byte gUnknown_80FEF4C
_08055F80: .4byte gUnknown_80FEF50
_08055F84: .4byte gUnknown_80FEF54
_08055F88: .4byte gUnknown_80F4E74
_08055F8C: .4byte gUnknown_80FEF74
_08055F90: .4byte gUnknown_80FEF98
_08055F94: .4byte gAvailablePokemonNames
_08055F98: .4byte gUnknown_80FEFD0
_08055F9C: .4byte gUnknown_80F5004
thumb_func_end sub_8055DDC
thumb_func_start sub_8055FA0
sub_8055FA0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x130
adds r5, r0, 0
adds r6, r1, 0
mov r10, r2
str r3, [sp, 0x120]
ldr r7, [sp, 0x154]
movs r0, 0
mov r8, r0
str r0, [sp, 0xC]
movs r0, 0x1
bl sub_804178C
ldrh r1, [r7, 0x2]
movs r0, 0xA5
lsls r0, 1
cmp r1, r0
bne _08056010
movs r0, 0x69
bl DungeonRandomCapped
ldr r1, _08056004
str r0, [r1]
add r4, sp, 0x110
ldr r1, _08056008
lsls r0, 3
adds r0, r1
ldrh r1, [r0]
adds r0, r4, 0
bl InitPokemonMove
ldrb r1, [r7]
add r0, sp, 0x110
strb r1, [r0]
ldrb r0, [r7, 0x1]
strb r0, [r4, 0x1]
ldr r0, _0805600C
ldr r2, [r0]
mov r1, r10
str r1, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
b _08056056
.align 2, 0
_08056004: .4byte gUnknown_202F228
_08056008: .4byte gUnknown_80F59C8
_0805600C: .4byte gUnknown_80FECBC
_08056010:
cmp r1, 0x77
bne _08056068
ldr r0, _08056108
ldr r0, [r0]
ldr r1, _0805610C
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
bge _08056026
movs r0, 0
_08056026:
cmp r0, 0x4A
ble _0805602C
movs r0, 0x4A
_0805602C:
add r4, sp, 0x118
ldr r1, _08056110
lsls r0, 3
adds r0, r1
ldrh r1, [r0]
adds r0, r4, 0
bl InitPokemonMove
ldrb r1, [r7]
add r0, sp, 0x118
strb r1, [r0]
ldrb r0, [r7, 0x1]
strb r0, [r4, 0x1]
ldr r0, _08056114
ldr r2, [r0]
mov r0, r10
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
_08056056:
adds r0, r5, 0
adds r1, r7, 0
add r3, sp, 0xC
bl sub_8056468
movs r0, 0x1
bl sub_804178C
adds r7, r4, 0
_08056068:
movs r2, 0
str r2, [sp, 0x128]
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
bl GetTargetingFlags
movs r4, 0xF0
adds r1, r4, 0
ands r1, r0
cmp r1, 0x50
bne _08056084
movs r0, 0xA
str r0, [sp, 0x128]
_08056084:
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
bl GetTargetingFlags
adds r1, r4, 0
ands r1, r0
cmp r1, 0x80
bne _080560CC
movs r1, 0x1
str r1, [sp, 0x128]
ldrh r0, [r7, 0x2]
cmp r0, 0x97
bne _080560AE
adds r0, r5, 0
bl GetWeather
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080560CC
_080560AE:
ldrh r0, [r7, 0x2]
bl DoesMoveCharge
lsls r0, 24
cmp r0, 0
beq _080560CC
adds r0, r5, 0
adds r1, r7, 0
bl sub_80570AC
lsls r0, 24
cmp r0, 0
bne _080560CC
movs r2, 0
str r2, [sp, 0x128]
_080560CC:
ldr r0, _08056118
ldr r1, [r5, 0x70]
movs r2, 0
bl SetMessageArgument_2
ldr r0, _0805611C
adds r1, r7, 0
movs r2, 0
bl sub_80928C0
adds r0, r5, 0
adds r1, r7, 0
bl sub_80570AC
lsls r0, 24
cmp r0, 0
beq _08056124
ldr r0, _08056120
ldr r0, [r0]
mov r8, r0
ldr r0, [r5, 0x70]
adds r0, 0xFF
movs r1, 0
strb r1, [r0]
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
bl sub_805744C
b _08056142
.align 2, 0
_08056108: .4byte gDungeonGlobalData
_0805610C: .4byte 0x00003a0e
_08056110: .4byte gUnknown_80F5D10
_08056114: .4byte gUnknown_80FECE0
_08056118: .4byte gAvailablePokemonNames
_0805611C: .4byte gUnknown_202DE58
_08056120: .4byte gUnknown_80FC72C
_08056124:
mov r0, r10
cmp r0, 0
bne _08056132
ldrh r0, [r7, 0x2]
bl GetMoveUseText
b _08056136
_08056132:
ldr r0, _08056194
ldr r0, [r0]
_08056136:
mov r8, r0
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0x1
bl IsMoveUsable_2
_08056142:
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _08056156
cmp r6, 0
beq _08056156
adds r0, r5, 0
adds r1, r7, 0
bl sub_806ACE8
_08056156:
ldr r0, [r5, 0x70]
adds r0, 0xEC
ldrb r0, [r0]
cmp r0, 0x1
bne _080561A0
ldrh r0, [r7, 0x2]
bl GetMoveAffectedByMuzzled
lsls r0, 24
cmp r0, 0
beq _080561A0
ldr r0, _08056198
adds r1, r5, 0
movs r2, 0
bl SetMessageArgument
adds r0, r5, 0
mov r1, r8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
ldr r0, _0805619C
_08056188:
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
_08056190:
movs r0, 0
b _08056446
.align 2, 0
_08056194: .4byte gUnknown_80F9158
_08056198: .4byte gAvailablePokemonNames
_0805619C: .4byte gUnknown_80FC710
_080561A0:
cmp r4, 0
bne _08056214
ldr r0, _080561D4
ldr r1, [r5, 0x70]
movs r2, 0
bl SetMessageArgument_2
mov r1, r10
cmp r1, 0
bne _080561E0
ldr r0, _080561D8
adds r1, r7, 0
movs r2, 0
bl sub_80928C0
adds r0, r5, 0
mov r1, r8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
ldr r0, _080561DC
b _08056188
.align 2, 0
_080561D4: .4byte gAvailablePokemonNames
_080561D8: .4byte gUnknown_202DE58
_080561DC: .4byte gUnknown_80FC6D0
_080561E0:
ldr r0, _0805620C
mov r2, r10
lsls r1, r2, 24
lsrs r1, 24
movs r2, 0
bl sub_8090DC4
adds r0, r5, 0
mov r1, r8
bl SendMessage
movs r0, 0xA
movs r1, 0x3F
bl sub_803E708
ldr r0, _08056210
ldr r1, [r0]
adds r0, r5, 0
bl SendMessage
b _08056190
.align 2, 0
_0805620C: .4byte gUnknown_202DE58
_08056210: .4byte gUnknown_80FC6FC
_08056214:
ldr r0, _0805625C
movs r1, 0
str r1, [r0]
ldr r0, _08056260
str r1, [r0]
ldr r0, _08056264
str r1, [r0]
ldr r0, _08056268
strb r1, [r0]
ldr r0, _0805626C
strb r1, [r0]
ldr r0, _08056270
strb r1, [r0]
ldr r0, _08056274
str r1, [r0]
ldr r0, _08056278
strb r1, [r0]
ldr r0, [sp, 0x150]
cmp r0, 0
beq _0805624C
ldr r0, [r5, 0x70]
ldr r2, _0805627C
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0x3
bhi _0805624C
adds r0, 0x1
strb r0, [r1]
_0805624C:
adds r0, r7, 0
bl sub_8057070
str r0, [sp, 0x124]
movs r0, 0
mov r9, r0
b _080563E4
.align 2, 0
_0805625C: .4byte gUnknown_202F214
_08056260: .4byte gUnknown_202F20C
_08056264: .4byte gUnknown_202F210
_08056268: .4byte gUnknown_202F218
_0805626C: .4byte gUnknown_202F219
_08056270: .4byte gUnknown_202F21A
_08056274: .4byte gUnknown_202F21C
_08056278: .4byte gUnknown_202F220
_0805627C: .4byte 0x00000153
_08056280:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _0805628E
b _08056444
_0805628E:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _0805629A
b _08056444
_0805629A:
ldr r4, [r5, 0x70]
ldr r0, [sp, 0x120]
cmp r0, 0
bne _080562AC
ldrh r0, [r7, 0x2]
cmp r0, 0x19
beq _080562AC
cmp r0, 0xE3
bne _080562BE
_080562AC:
adds r0, r5, 0
bl IsSleeping
lsls r0, 24
cmp r0, 0
bne _080562CE
adds r0, r5, 0
movs r1, 0x1
b _080562C2
_080562BE:
adds r0, r5, 0
movs r1, 0
_080562C2:
bl CannotAttack
lsls r0, 24
cmp r0, 0
beq _080562CE
b _08056400
_080562CE:
movs r1, 0xA5
lsls r1, 1
adds r0, r4, r1
movs r6, 0
strb r6, [r0]
ldrh r0, [r7, 0x2]
cmp r0, 0x9
bne _080562F4
ldr r4, [r5, 0x70]
movs r0, 0x8
bl DungeonRandomCapped
adds r4, 0x46
strb r0, [r4]
adds r0, r5, 0
bl TargetTileInFront
movs r2, 0
str r2, [sp, 0x12C]
_080562F4:
ldr r0, _080563A0
str r6, [r0]
str r6, [sp, 0xC]
ldr r0, [sp, 0x128]
cmp r0, 0x1
bhi _08056324
add r0, sp, 0xC
adds r1, r5, 0
adds r2, r7, 0
bl sub_8056CE8
add r0, sp, 0xC
adds r1, r5, 0
bl sub_80574C4
mov r1, r9
cmp r1, 0
beq _08056324
ldr r2, [sp, 0x12C]
cmp r2, 0
beq _08056324
ldr r0, [sp, 0xC]
cmp r0, 0
beq _08056400
_08056324:
mov r0, r10
str r0, [sp]
movs r0, 0
mov r1, r9
cmp r1, 0
bne _08056332
movs r0, 0x1
_08056332:
str r0, [sp, 0x4]
ldr r2, [sp, 0x128]
str r2, [sp, 0x8]
adds r0, r5, 0
adds r1, r7, 0
mov r2, r8
add r3, sp, 0xC
bl sub_8056468
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
mov r8, r0
ldr r0, _080563A0
ldr r0, [r0]
cmp r0, 0
beq _08056358
bl sub_806A1E8
_08056358:
ldr r1, [r5, 0x70]
adds r0, r1, 0
adds r0, 0xBC
ldrb r0, [r0]
cmp r0, 0x2
beq _0805637C
cmp r0, 0x4
beq _0805637C
movs r2, 0xB6
lsls r2, 1
adds r0, r1, r2
mov r2, r8
strh r2, [r0]
movs r2, 0xB7
lsls r2, 1
adds r0, r1, r2
mov r1, r8
strh r1, [r0]
_0805637C:
ldr r1, _080563A4
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r2, [sp, 0x128]
cmp r2, 0
beq _080563A8
mov r0, r10
str r0, [sp]
ldr r1, [sp, 0x150]
str r1, [sp, 0x4]
adds r0, r5, 0
adds r1, r7, 0
adds r3, r4, 0
bl sub_80566F8
b _080563B8
.align 2, 0
_080563A0: .4byte gUnknown_203B438
_080563A4: .4byte gUnknown_202F214
_080563A8:
ldr r2, [sp, 0x150]
str r2, [sp]
add r0, sp, 0xC
adds r1, r5, 0
adds r2, r7, 0
mov r3, r10
bl sub_8053704
_080563B8:
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056400
adds r0, r5, 0
bl sub_806CF18
ldr r0, [r5, 0x70]
movs r2, 0xA5
lsls r2, 1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
bne _080563E0
strb r0, [r1]
adds r0, r5, 0
bl sub_8079764
_080563E0:
movs r0, 0x1
add r9, r0
_080563E4:
ldr r1, [sp, 0x124]
cmp r9, r1
bge _08056400
movs r2, 0x1
str r2, [sp, 0x12C]
ldr r0, _08056458
ldrb r0, [r0]
cmp r0, 0
bne _08056400
ldr r0, _0805645C
ldrb r0, [r0]
cmp r0, 0
bne _08056400
b _08056280
_08056400:
ldr r0, _08056460
ldrb r0, [r0]
cmp r0, 0
beq _08056418
adds r0, r5, 0
adds r1, r5, 0
bl SendImmobilizeEndMessage
adds r0, r5, 0
adds r1, r5, 0
bl sub_807A6C8
_08056418:
ldr r0, _08056464
ldrb r0, [r0]
cmp r0, 0
beq _08056444
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056444
ldr r4, [r5, 0x70]
adds r0, r5, 0
adds r1, r5, 0
movs r2, 0
bl sub_8077AE4
adds r4, 0xFB
ldrb r0, [r4]
cmp r0, 0
bne _08056444
movs r0, 0x1
strb r0, [r4]
_08056444:
movs r0, 0x1
_08056446:
add sp, 0x130
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08056458: .4byte gUnknown_202F220
_0805645C: .4byte gUnknown_202F221
_08056460: .4byte gUnknown_202F21A
_08056464: .4byte gUnknown_202F219
thumb_func_end sub_8055FA0
thumb_func_start sub_8056468
sub_8056468:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r6, r0, 0
mov r8, r1
mov r9, r2
adds r4, r3, 0
ldr r0, [sp, 0x28]
lsls r0, 24
lsrs r0, 24
str r0, [sp]
movs r0, 0
mov r10, r0
adds r0, r6, 0
bl sub_8045888
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r7, r1, 31
mov r2, r9
cmp r2, 0
beq _08056518
movs r5, 0
b _080564A6
_080564A2:
adds r4, 0x4
adds r5, 0x1
_080564A6:
cmp r5, 0x40
bgt _080564BC
ldr r0, [r4]
cmp r0, 0
beq _080564BC
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _080564A2
movs r7, 0x1
_080564BC:
cmp r7, 0
beq _080564F2
ldr r0, _080564DC
ldr r1, [r6, 0x70]
movs r2, 0
bl SetMessageArgument_2
ldr r0, [sp, 0x24]
cmp r0, 0
bne _080564E4
ldr r0, _080564E0
mov r1, r8
movs r2, 0
bl sub_80928C0
b _080564F2
.align 2, 0
_080564DC: .4byte gAvailablePokemonNames
_080564E0: .4byte gUnknown_202DE58
_080564E4:
ldr r0, _08056508
ldr r2, [sp, 0x24]
lsls r1, r2, 24
lsrs r1, 24
movs r2, 0
bl sub_8090DC4
_080564F2:
mov r0, r8
ldrh r1, [r0, 0x2]
ldr r0, _0805650C
cmp r1, r0
beq _08056510
adds r0, r6, 0
mov r1, r9
bl sub_805239C
b _08056518
.align 2, 0
_08056508: .4byte gUnknown_202DE58
_0805650C: .4byte 0x00000163
_08056510:
adds r0, r6, 0
mov r1, r9
bl sub_80522E8
_08056518:
cmp r7, 0
beq _08056544
ldr r2, [sp]
cmp r2, 0
beq _0805652A
adds r0, r6, 0
mov r1, r8
movs r2, 0x1
b _08056530
_0805652A:
adds r0, r6, 0
mov r1, r8
movs r2, 0
_08056530:
bl sub_8040BB0
lsls r0, 24
lsrs r0, 24
mov r10, r0
adds r0, r6, 0
mov r1, r8
bl sub_8040DA0
b _08056550
_08056544:
ldr r0, [r6, 0x70]
adds r0, 0x46
ldrb r1, [r0]
adds r0, r6, 0
bl sub_806CE68
_08056550:
mov r0, r10
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8056468
thumb_func_start sub_8056564
sub_8056564:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
adds r6, r0, 0
adds r5, r1, 0
adds r7, r2, 0
adds r4, r3, 0
ldr r0, [r6, 0x70]
mov r8, r0
ldr r0, _08056680
ldr r0, [r0]
ldr r1, _08056684
adds r0, r1
ldrb r0, [r0]
mov r9, r0
cmp r0, 0
beq _0805658C
b _080566E4
_0805658C:
mov r2, r8
movs r1, 0x4
ldrsh r0, [r2, r1]
bl GetPokemonSize
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bls _080565A4
cmp r4, 0x1
bne _080565A4
b _080566E4
_080565A4:
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl GetWeather
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
bl sub_800ECB8
movs r2, 0x6
ldrsh r4, [r0, r2]
movs r1, 0
ldrsh r0, [r5, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 11
movs r0, 0x2
ldrsh r2, [r5, r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 11
movs r2, 0x80
lsls r2, 5
adds r3, r0, r2
movs r2, 0xC0
lsls r2, 4
adds r0, r1, r2
cmp r0, 0
bge _080565EC
adds r0, 0xFF
_080565EC:
lsls r0, 8
lsrs r0, 16
ldr r1, _08056688
ldr r2, [sp, 0x14]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x14]
adds r0, r3, 0
cmp r0, 0
bge _08056602
adds r0, 0xFF
_08056602:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r1, _0805668C
ands r2, r1
orrs r2, r0
str r2, [sp, 0x14]
cmp r4, 0
beq _080566E4
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl GetWeather
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
bl sub_800EF10
bl sub_800EF64
movs r0, 0x5E
bl sub_803E46C
mov r0, r8
movs r1, 0x4
ldrsh r5, [r0, r1]
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl GetWeather
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
bl sub_80412E0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_800E710
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08056690
add r0, sp, 0x8
adds r1, r6, 0
adds r1, 0x28
lsls r2, 24
lsrs r2, 24
bl sub_800569C
b _08056694
.align 2, 0
_08056680: .4byte gDungeonGlobalData
_08056684: .4byte 0x0001820a
_08056688: .4byte 0xffff0000
_0805668C: .4byte 0x0000ffff
_08056690:
mov r2, r9
str r2, [sp, 0x8]
_08056694:
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl GetWeather
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
bl sub_80412E0
mov r1, sp
strh r0, [r1]
mov r2, r8
ldrh r0, [r2, 0x4]
strh r0, [r1, 0x2]
ldr r0, [r6, 0xC]
cmp r0, 0
bge _080566BC
adds r0, 0xFF
_080566BC:
asrs r0, 8
strh r0, [r1, 0x4]
mov r1, sp
ldr r0, [r6, 0x10]
cmp r0, 0
bge _080566CA
adds r0, 0xFF
_080566CA:
asrs r0, 8
strh r0, [r1, 0x6]
mov r0, r8
adds r0, 0x46
ldrb r0, [r0]
str r0, [sp, 0xC]
movs r0, 0
str r0, [sp, 0x10]
add r1, sp, 0x14
mov r0, sp
bl sub_800E308
b _080566E8
_080566E4:
movs r0, 0x1
negs r0, r0
_080566E8:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8056564
thumb_func_start sub_80566F8
sub_80566F8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x54
mov r10, r0
str r1, [sp, 0x1C]
str r2, [sp, 0x20]
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x24]
movs r0, 0
str r0, [sp, 0x34]
movs r7, 0
mov r1, r10
ldr r6, [r1, 0x70]
ldr r2, [sp, 0x1C]
ldrh r0, [r2, 0x2]
bl sub_800ED20
movs r1, 0x2
str r1, [sp, 0x44]
cmp r0, 0x1
beq _08056736
movs r2, 0x6
str r2, [sp, 0x44]
cmp r0, 0x2
bne _08056736
movs r0, 0x3
str r0, [sp, 0x44]
_08056736:
mov r1, r10
ldrh r0, [r1, 0x6]
lsls r0, 16
ldrh r3, [r1, 0x4]
orrs r3, r0
str r3, [sp, 0xC]
ldr r1, _08056814
adds r2, r6, 0
adds r2, 0x46
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
movs r1, 0
ldrsh r6, [r0, r1]
str r6, [sp, 0x28]
movs r1, 0x2
ldrsh r6, [r0, r1]
str r6, [sp, 0x2C]
movs r6, 0
str r6, [sp, 0x30]
mov r8, r2
ldr r0, [sp, 0x20]
cmp r6, r0
bge _080567EC
add r0, sp, 0xC
movs r2, 0
ldrsh r1, [r0, r2]
cmp r1, 0
blt _080567EC
asrs r0, r3, 16
cmp r0, 0
blt _080567EC
cmp r1, 0x37
bgt _080567EC
cmp r0, 0x1F
bgt _080567EC
add r6, sp, 0xC
_08056780:
ldrh r0, [r6]
ldr r1, [sp, 0x28]
adds r0, r1
lsls r0, 16
lsrs r0, 16
ldr r2, _08056818
ands r2, r3
orrs r2, r0
asrs r0, r2, 16
ldr r1, [sp, 0x2C]
adds r0, r1
lsls r0, 16
ldr r1, _0805681C
ands r1, r2
orrs r1, r0
str r1, [sp, 0xC]
adds r7, 0x1
movs r2, 0
ldrsh r0, [r6, r2]
asrs r1, 16
bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _080567EC
ldr r0, [r2, 0x10]
cmp r0, 0
beq _080567C6
bl GetEntityType
cmp r0, 0x1
beq _080567EC
_080567C6:
ldr r0, [sp, 0x30]
adds r0, 0x1
str r0, [sp, 0x30]
ldr r1, [sp, 0x20]
cmp r0, r1
bge _080567EC
movs r0, 0
ldrsh r2, [r6, r0]
cmp r2, 0
blt _080567EC
ldr r0, [sp, 0xC]
asrs r1, r0, 16
adds r3, r0, 0
cmp r1, 0
blt _080567EC
cmp r2, 0x37
bgt _080567EC
cmp r1, 0x1F
ble _08056780
_080567EC:
ldr r2, [sp, 0x1C]
ldrh r1, [r2, 0x2]
mov r0, r10
bl sub_805755C
lsls r0, 24
cmp r0, 0
beq _08056820
mov r0, r10
ldr r1, [sp, 0x1C]
bl sub_80570AC
lsls r0, 24
cmp r0, 0
bne _08056820
movs r6, 0x1
negs r6, r6
str r6, [sp, 0x40]
b _0805682E
.align 2, 0
_08056814: .4byte gAdjacentTileOffsets
_08056818: .4byte 0xffff0000
_0805681C: .4byte 0x0000ffff
_08056820:
mov r0, r10
add r1, sp, 0xC
ldr r2, [sp, 0x1C]
ldr r3, [sp, 0x20]
bl sub_8056564
str r0, [sp, 0x40]
_0805682E:
mov r0, r10
ldrh r1, [r0, 0x4]
add r0, sp, 0xC
strh r1, [r0]
mov r2, r10
ldrh r1, [r2, 0x6]
strh r1, [r0, 0x2]
ldr r1, _08056874
mov r6, r8
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
str r1, [sp, 0x28]
movs r1, 0x2
ldrsh r6, [r0, r1]
str r6, [sp, 0x2C]
movs r0, 0x18
ldr r1, [sp, 0x44]
bl __divsi3
adds r1, r7, 0
muls r1, r0
ldr r2, [sp, 0x20]
cmp r2, 0x1
ble _08056878
adds r6, r1, 0
adds r6, 0x8
str r6, [sp, 0x38]
cmp r6, 0x3F
ble _0805687C
movs r0, 0x40
str r0, [sp, 0x38]
b _0805687C
.align 2, 0
_08056874: .4byte gAdjacentTileOffsets
_08056878:
movs r2, 0x20
str r2, [sp, 0x38]
_0805687C:
movs r6, 0
mov r9, r6
movs r0, 0x80
lsls r0, 12
bl __divsi3
str r0, [sp, 0x48]
ldr r1, _0805696C
mov r2, r8
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
str r0, [sp, 0x3C]
ldr r0, _08056970
ldr r0, [r0]
ldr r6, _08056974
adds r0, r6
movs r1, 0x1
strb r1, [r0]
movs r0, 0
str r0, [sp, 0x30]
ldr r1, [sp, 0x20]
cmp r0, r1
blt _080568B0
b _08056AB6
_080568B0:
add r0, sp, 0xC
movs r2, 0
ldrsh r1, [r0, r2]
cmp r1, 0
bge _080568BC
b _08056AB6
_080568BC:
ldrh r0, [r0, 0x2]
lsls r0, 16
asrs r0, 16
cmp r0, 0
bge _080568C8
b _08056AB6
_080568C8:
cmp r1, 0x37
ble _080568CE
b _08056AB6
_080568CE:
cmp r0, 0x1F
ble _080568D4
b _08056AB6
_080568D4:
add r7, sp, 0xC
_080568D6:
ldr r6, [sp, 0xC]
ldrh r0, [r7]
ldr r1, [sp, 0x28]
adds r0, r1
strh r0, [r7]
ldrh r0, [r7, 0x2]
ldr r2, [sp, 0x2C]
adds r0, r2
strh r0, [r7, 0x2]
add r0, sp, 0xC
bl sub_803F428
lsls r0, 24
cmp r0, 0
bne _080568F6
b _08056A00
_080568F6:
ldr r0, _08056970
ldr r0, [r0]
ldr r1, _08056978
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08056906
b _08056A00
_08056906:
lsls r1, r6, 16
asrs r1, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r2, 0xC0
lsls r2, 4
adds r4, r0, r2
asrs r1, r6, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r6, 0x80
lsls r6, 5
adds r5, r0, r6
ldr r1, [sp, 0x28]
lsls r0, r1, 8
ldr r6, [sp, 0x44]
adds r2, r6, 0
muls r2, r0
str r2, [sp, 0x4C]
ldr r1, [sp, 0x2C]
lsls r0, r1, 8
adds r2, r6, 0
muls r2, r0
str r2, [sp, 0x50]
movs r6, 0
movs r0, 0x18
ldr r1, [sp, 0x44]
bl __divsi3
mov r8, r0
cmp r6, r8
bge _08056A0E
_0805694A:
ldr r0, [sp, 0x40]
cmp r0, 0
blt _080569D4
ldr r1, [sp, 0x24]
cmp r1, 0
beq _0805697C
mov r0, r9
cmp r0, 0
bge _0805695E
adds r0, 0xFF
_0805695E:
asrs r0, 8
bl sub_8009C7C
ldr r2, [sp, 0x38]
adds r3, r0, 0
muls r3, r2
b _0805697E
.align 2, 0
_0805696C: .4byte gUnknown_81069D4
_08056970: .4byte gDungeonGlobalData
_08056974: .4byte 0x0001c05e
_08056978: .4byte 0x0001820a
_0805697C:
movs r3, 0
_0805697E:
adds r0, r4, 0
cmp r4, 0
bge _08056986
adds r0, 0xFF
_08056986:
lsls r0, 8
lsrs r0, 16
ldr r1, _080569F0
ldr r2, [sp, 0x10]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x10]
subs r0, r5, r3
cmp r0, 0
bge _0805699C
adds r0, 0xFF
_0805699C:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r1, _080569F4
ands r2, r1
orrs r2, r0
str r2, [sp, 0x10]
adds r2, r5, 0
cmp r2, 0
bge _080569B2
adds r2, 0xFF
_080569B2:
asrs r2, 8
ldr r0, _080569F8
ldr r0, [r0]
ldr r1, _080569FC
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
subs r2, r0
lsrs r0, r2, 31
adds r2, r0
asrs r2, 1
ldr r0, [sp, 0x3C]
adds r2, r0
ldr r0, [sp, 0x40]
add r1, sp, 0x10
bl sub_800E3AC
_080569D4:
movs r0, 0x30
bl sub_803E46C
ldr r1, [sp, 0x4C]
adds r4, r1
ldr r2, [sp, 0x50]
adds r5, r2
ldr r0, [sp, 0x48]
add r9, r0
adds r6, 0x1
cmp r6, r8
blt _0805694A
b _08056A0E
.align 2, 0
_080569F0: .4byte 0xffff0000
_080569F4: .4byte 0x0000ffff
_080569F8: .4byte gDungeonGlobalData
_080569FC: .4byte 0x000181f2
_08056A00:
movs r0, 0x18
ldr r1, [sp, 0x44]
bl __divsi3
ldr r1, [sp, 0x48]
muls r0, r1
add r9, r0
_08056A0E:
movs r2, 0
ldrsh r0, [r7, r2]
movs r6, 0x2
ldrsh r1, [r7, r6]
bl GetMapTileAtPosition
adds r6, r0, 0
ldrh r1, [r6]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08056AB6
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08056A8E
bl GetEntityType
cmp r0, 0x1
bne _08056A8E
ldr r0, [r6, 0x10]
ldr r1, [sp, 0x1C]
bl sub_80571F0
lsls r0, 24
cmp r0, 0
bne _08056A8E
ldr r0, [sp, 0x34]
cmp r0, 0
bgt _08056AB6
movs r4, 0
mov r2, r10
ldr r1, [r2, 0x70]
adds r0, r1, 0
adds r0, 0xBC
ldrb r2, [r0]
cmp r2, 0x2
beq _08056A64
adds r0, 0x2C
ldrb r0, [r0]
cmp r0, 0x1
beq _08056A64
cmp r2, 0x4
bne _08056A66
_08056A64:
movs r4, 0x1
_08056A66:
mov r0, r10
ldr r1, [sp, 0x1C]
movs r2, 0
bl GetTargetingFlags
adds r2, r0, 0
lsls r2, 16
asrs r2, 16
ldr r0, [r6, 0x10]
str r0, [sp]
ldr r6, [sp, 0x1C]
str r6, [sp, 0x4]
str r4, [sp, 0x8]
ldr r0, [sp, 0x34]
add r1, sp, 0x14
mov r3, r10
bl sub_8056F80
str r0, [sp, 0x34]
b _08056AB6
_08056A8E:
ldr r0, [sp, 0x30]
adds r0, 0x1
str r0, [sp, 0x30]
ldr r1, [sp, 0x20]
cmp r0, r1
bge _08056AB6
movs r2, 0
ldrsh r1, [r7, r2]
cmp r1, 0
blt _08056AB6
ldrh r0, [r7, 0x2]
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _08056AB6
cmp r1, 0x37
bgt _08056AB6
cmp r0, 0x1F
bgt _08056AB6
b _080568D6
_08056AB6:
ldr r6, [sp, 0x40]
cmp r6, 0
blt _08056AC2
adds r0, r6, 0
bl sub_800DC14
_08056AC2:
movs r0, 0x1
bl sub_804178C
ldr r0, _08056AF4
ldr r0, [r0]
ldr r1, _08056AF8
adds r0, r1
movs r2, 0
strb r2, [r0]
ldr r6, [sp, 0x34]
cmp r6, 0
ble _08056AFC
lsls r1, r6, 2
add r0, sp, 0x14
adds r1, r0
str r2, [r1]
ldr r1, [sp, 0x78]
str r1, [sp]
mov r1, r10
ldr r2, [sp, 0x1C]
ldr r3, [sp, 0x74]
bl sub_8053704
b _08056B22
.align 2, 0
_08056AF4: .4byte gDungeonGlobalData
_08056AF8: .4byte 0x0001c05e
_08056AFC:
ldr r0, [sp, 0x20]
cmp r0, 0x1
bne _08056B22
add r0, sp, 0xC
bl sub_803F428
lsls r0, 24
cmp r0, 0
beq _08056B22
movs r0, 0x1
movs r1, 0x4A
bl sub_803E708
mov r0, r10
movs r1, 0
ldr r2, [sp, 0x1C]
add r3, sp, 0xC
bl sub_8041168
_08056B22:
add sp, 0x54
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80566F8
thumb_func_start sub_8056B34
sub_8056B34:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r7, r0, 0
adds r6, r1, 0
mov r8, r2
adds r1, r3, 0
ldr r4, [sp, 0x24]
lsls r4, 24
lsrs r4, 24
mov r0, r8
bl GetMoveAccuracy
adds r5, r0, 0
movs r0, 0x64
bl DungeonRandomCapped
str r0, [sp]
ldr r0, [r7, 0x70]
mov r9, r0
ldr r1, [r6, 0x70]
mov r10, r1
cmp r4, 0
beq _08056B70
cmp r7, r6
bne _08056B70
b _08056CD4
_08056B70:
mov r0, r8
ldrh r1, [r0, 0x2]
ldr r0, _08056CC4
cmp r1, r0
bne _08056B8A
adds r0, r7, 0
movs r1, 0x4
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056B8A
b _08056CD4
_08056B8A:
mov r0, r9
adds r0, 0xDC
ldrb r0, [r0]
cmp r0, 0x1
bne _08056B96
b _08056CD4
_08056B96:
cmp r0, 0x2
bne _08056B9C
b _08056CBE
_08056B9C:
cmp r5, 0x64
ble _08056BA2
b _08056CD4
_08056BA2:
adds r0, r6, 0
movs r1, 0x23
bl HasItem
lsls r0, 24
cmp r0, 0
beq _08056BB6
ldr r0, _08056CC8
ldr r0, [r0]
subs r5, r0
_08056BB6:
adds r0, r6, 0
movs r1, 0x5
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056BCA
ldr r0, _08056CCC
ldr r0, [r0]
subs r5, r0
_08056BCA:
mov r1, r9
movs r0, 0x24
ldrsh r4, [r1, r0]
adds r0, r7, 0
movs r1, 0x33
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08056BE0
adds r4, 0x2
_08056BE0:
mov r1, r8
ldrh r0, [r1, 0x2]
cmp r0, 0x40
bne _08056BFC
adds r0, r7, 0
bl GetWeather
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
beq _08056CD4
cmp r0, 0x1
bne _08056BFC
subs r4, 0x2
_08056BFC:
cmp r4, 0
bge _08056C02
movs r4, 0
_08056C02:
cmp r4, 0x14
ble _08056C08
movs r4, 0x14
_08056C08:
ldr r1, _08056CD0
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0
bge _08056C16
movs r0, 0
_08056C16:
movs r1, 0xC8
lsls r1, 7
cmp r0, r1
ble _08056C20
adds r0, r1, 0
_08056C20:
muls r5, r0
adds r0, r5, 0
cmp r5, 0
bge _08056C2A
adds r0, 0xFF
_08056C2A:
asrs r5, r0, 8
mov r0, r10
movs r1, 0x26
ldrsh r4, [r0, r1]
adds r0, 0xF5
ldrb r0, [r0]
cmp r0, 0
beq _08056C3C
movs r4, 0xA
_08056C3C:
adds r0, r6, 0
bl GetWeather
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08056C5A
adds r0, r6, 0
movs r1, 0x1D
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08056C5A
adds r4, 0x2
_08056C5A:
adds r0, r7, 0
movs r1, 0x30
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08056C86
mov r0, r8
bl GetMoveType
lsls r0, 24
lsrs r0, 24
bl sub_8092354
movs r1, 0
lsls r0, 24
cmp r0, 0
bne _08056C80
movs r1, 0x1
_08056C80:
cmp r1, 0
bne _08056C86
adds r4, 0x2
_08056C86:
cmp r4, 0
bge _08056C8C
movs r4, 0
_08056C8C:
cmp r4, 0x14
ble _08056C92
movs r4, 0x14
_08056C92:
ldr r0, _08056CD0
lsls r1, r4, 2
adds r0, 0x54
adds r1, r0
ldr r0, [r1]
cmp r0, 0
bge _08056CA2
movs r0, 0
_08056CA2:
movs r1, 0xC8
lsls r1, 7
cmp r0, r1
ble _08056CAC
adds r0, r1, 0
_08056CAC:
muls r5, r0
adds r0, r5, 0
cmp r5, 0
bge _08056CB6
adds r0, 0xFF
_08056CB6:
asrs r5, r0, 8
ldr r0, [sp]
cmp r0, r5
blt _08056CD4
_08056CBE:
movs r0, 0
b _08056CD6
.align 2, 0
_08056CC4: .4byte 0x00000163
_08056CC8: .4byte gUnknown_80F519C
_08056CCC: .4byte gUnknown_80F51A0
_08056CD0: .4byte gUnknown_80F50F4
_08056CD4:
movs r0, 0x1
_08056CD6:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8056B34
thumb_func_start sub_8056CE8
sub_8056CE8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
str r0, [sp, 0x10]
adds r5, r1, 0
mov r8, r2
movs r0, 0
mov r9, r0
movs r3, 0
ldr r1, [r5, 0x70]
adds r0, r1, 0
adds r0, 0xBC
ldrb r2, [r0]
cmp r2, 0x2
beq _08056D18
adds r0, 0x2C
ldrb r0, [r0]
cmp r0, 0x1
beq _08056D18
cmp r2, 0x4
bne _08056D1A
_08056D18:
movs r3, 0x1
_08056D1A:
mov r10, r3
movs r1, 0
ldr r0, [r5, 0x70]
adds r0, 0xBC
ldrb r0, [r0]
cmp r0, 0x2
beq _08056D2C
cmp r0, 0x4
bne _08056D2E
_08056D2C:
movs r1, 0x1
_08056D2E:
str r1, [sp, 0x14]
adds r0, r5, 0
movs r1, 0x7
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08056D44
movs r1, 0
str r1, [sp, 0x14]
mov r10, r1
_08056D44:
adds r0, r5, 0
mov r1, r8
movs r2, 0
bl GetTargetingFlags
lsls r0, 16
asrs r7, r0, 16
movs r0, 0xF
ands r0, r7
cmp r0, 0x4
bne _08056D86
adds r0, r5, 0
mov r1, r8
bl sub_80570AC
lsls r0, 24
lsrs r4, r0, 24
mov r2, r8
ldrh r0, [r2, 0x2]
cmp r0, 0x97
bne _08056D7E
adds r0, r5, 0
bl GetWeather
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08056D7E
movs r4, 0x1
_08056D7E:
movs r7, 0x73
cmp r4, 0
beq _08056D86
movs r7, 0
_08056D86:
movs r1, 0xF0
ands r1, r7
cmp r1, 0
bne _08056DA6
adds r0, r5, 0
bl sub_80696A8
cmp r0, 0
bne _08056D9A
b _08056F64
_08056D9A:
str r0, [sp]
mov r0, r8
str r0, [sp, 0x4]
mov r1, r10
str r1, [sp, 0x8]
b _08056F56
_08056DA6:
cmp r1, 0x10
beq _08056DAE
cmp r1, 0x20
bne _08056E34
_08056DAE:
ldr r0, [r5, 0x70]
cmp r1, 0x20
bne _08056DBC
adds r0, 0x46
ldrb r4, [r0]
movs r0, 0x8
b _08056DCA
_08056DBC:
adds r0, 0x46
ldrb r0, [r0]
subs r4, r0, 0x1
movs r0, 0x3
cmp r0, 0
bne _08056DCA
b _08056F64
_08056DCA:
adds r6, r0, 0
_08056DCC:
movs r0, 0x7
ands r4, r0
ldr r0, _08056E28
lsls r3, r4, 2
adds r3, r0
ldrh r0, [r3]
ldrh r2, [r5, 0x4]
adds r0, r2
lsls r0, 16
lsrs r0, 16
ldr r2, _08056E2C
ldr r1, [sp, 0xC]
ands r1, r2
orrs r1, r0
str r1, [sp, 0xC]
ldrh r2, [r3, 0x2]
ldrh r0, [r5, 0x6]
adds r2, r0
lsls r2, 16
ldr r0, _08056E30
ands r1, r0
orrs r1, r2
str r1, [sp, 0xC]
add r0, sp, 0xC
bl sub_804AD0C
cmp r0, 0
beq _08056E1C
str r0, [sp]
mov r1, r8
str r1, [sp, 0x4]
mov r2, r10
str r2, [sp, 0x8]
mov r0, r9
ldr r1, [sp, 0x10]
adds r2, r7, 0
adds r3, r5, 0
bl sub_8056F80
mov r9, r0
_08056E1C:
subs r6, 0x1
adds r4, 0x1
cmp r6, 0
bne _08056DCC
b _08056F64
.align 2, 0
_08056E28: .4byte gAdjacentTileOffsets
_08056E2C: .4byte 0xffff0000
_08056E30: .4byte 0x0000ffff
_08056E34:
cmp r1, 0x30
bne _08056E9C
movs r6, 0
_08056E3A:
ldr r0, _08056E74
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _08056E78
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056E94
adds r0, r5, 0
adds r1, r4, 0
bl sub_8045A70
lsls r0, 24
cmp r0, 0
beq _08056E94
cmp r4, r5
bne _08056E7C
str r5, [sp]
mov r0, r8
str r0, [sp, 0x4]
ldr r1, [sp, 0x14]
str r1, [sp, 0x8]
b _08056E86
.align 2, 0
_08056E74: .4byte gDungeonGlobalData
_08056E78: .4byte 0x000135cc
_08056E7C:
str r4, [sp]
mov r2, r8
str r2, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
_08056E86:
mov r0, r9
ldr r1, [sp, 0x10]
adds r2, r7, 0
adds r3, r5, 0
bl sub_8056F80
mov r9, r0
_08056E94:
adds r6, 0x1
cmp r6, 0x13
ble _08056E3A
b _08056F64
_08056E9C:
cmp r1, 0x40
bne _08056EEA
movs r4, 0
adds r0, r5, 0
bl sub_80696FC
cmp r0, 0
beq _08056ED0
mov r4, r9
str r0, [sp]
mov r1, r8
str r1, [sp, 0x4]
mov r2, r10
str r2, [sp, 0x8]
adds r0, r4, 0
ldr r1, [sp, 0x10]
adds r2, r7, 0
adds r3, r5, 0
bl sub_8056F80
mov r9, r0
mov r1, r9
eors r1, r4
negs r0, r1
orrs r0, r1
lsrs r4, r0, 31
_08056ED0:
cmp r4, 0
bne _08056F64
adds r0, r5, 0
bl sub_806977C
cmp r0, 0
beq _08056F64
str r0, [sp]
mov r0, r8
str r0, [sp, 0x4]
mov r1, r10
str r1, [sp, 0x8]
b _08056F56
_08056EEA:
cmp r1, 0x50
beq _08056F64
cmp r1, 0x80
bne _08056F00
adds r0, r5, 0
bl sub_80696FC
cmp r0, 0
beq _08056F64
str r0, [sp]
b _08056F4E
_08056F00:
cmp r1, 0x60
bne _08056F48
movs r6, 0
_08056F06:
ldr r0, _08056F40
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _08056F44
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08056F38
str r4, [sp]
mov r0, r8
str r0, [sp, 0x4]
mov r1, r10
str r1, [sp, 0x8]
mov r0, r9
ldr r1, [sp, 0x10]
adds r2, r7, 0
adds r3, r5, 0
bl sub_8056F80
mov r9, r0
_08056F38:
adds r6, 0x1
cmp r6, 0x13
ble _08056F06
b _08056F64
.align 2, 0
_08056F40: .4byte gDungeonGlobalData
_08056F44: .4byte 0x000135cc
_08056F48:
cmp r1, 0x70
bne _08056F64
str r5, [sp]
_08056F4E:
mov r2, r8
str r2, [sp, 0x4]
mov r0, r10
str r0, [sp, 0x8]
_08056F56:
mov r0, r9
ldr r1, [sp, 0x10]
adds r2, r7, 0
adds r3, r5, 0
bl sub_8056F80
mov r9, r0
_08056F64:
mov r1, r9
lsls r0, r1, 2
ldr r2, [sp, 0x10]
adds r0, r2
movs r1, 0
str r1, [r0]
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8056CE8
thumb_func_start sub_8056F80
sub_8056F80:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
mov r8, r1
adds r4, r3, 0
ldr r7, [sp, 0x18]
ldr r0, [sp, 0x20]
lsls r2, 16
asrs r2, 16
lsls r0, 24
lsrs r0, 24
mov r12, r0
movs r6, 0
ldr r1, [r7, 0x70]
ldr r3, [sp, 0x1C]
ldrh r0, [r3, 0x2]
cmp r0, 0xFC
bne _08056FAA
cmp r4, r7
beq _08057060
_08056FAA:
ldrb r0, [r1, 0x8]
cmp r0, 0x1
beq _08057060
adds r0, r1, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x4
beq _08057060
cmp r0, 0x1
beq _08057060
mov r0, r12
cmp r0, 0
bne _0805702C
movs r0, 0xF
ands r0, r2
cmp r0, 0
beq _08056FD0
cmp r0, 0x4
bne _08056FE6
_08056FD0:
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0805702E
b _0805702C
_08056FE6:
cmp r0, 0x1
bne _08056FFE
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
cmp r0, 0
bne _0805702E
b _0805702C
_08056FFE:
cmp r0, 0x2
beq _0805702C
cmp r0, 0x5
bne _0805700C
cmp r4, r7
beq _0805702E
b _0805702C
_0805700C:
cmp r0, 0x6
bne _08057028
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
movs r3, 0
bl CanTarget
lsls r0, 24
cmp r0, 0
bne _0805702E
cmp r4, r7
beq _0805702E
b _0805702C
_08057028:
cmp r0, 0x3
bne _0805702E
_0805702C:
movs r6, 0x1
_0805702E:
adds r0, r7, 0
ldr r1, [sp, 0x1C]
bl sub_80571F0
lsls r0, 24
cmp r0, 0
beq _0805703E
movs r6, 0
_0805703E:
cmp r6, 0
beq _08057060
cmp r5, 0x3F
bgt _08057060
lsls r0, r5, 2
add r0, r8
str r7, [r0]
ldr r0, [r7, 0x70]
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _0805705E
ldr r1, _0805706C
ldr r0, [r1]
cmp r0, 0
bne _0805705E
str r7, [r1]
_0805705E:
adds r5, 0x1
_08057060:
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0805706C: .4byte gUnknown_203B438
thumb_func_end sub_8056F80
thumb_func_start sub_8057070
sub_8057070:
push {lr}
bl GetMoveHitCount
cmp r0, 0
bne _08057082
movs r0, 0x2
movs r1, 0x6
bl sub_808411C
_08057082:
pop {r1}
bx r1
thumb_func_end sub_8057070
thumb_func_start sub_8057088
sub_8057088:
push {lr}
ldrh r1, [r0, 0x2]
cmp r1, 0xEE
beq _080570A4
cmp r1, 0xEF
beq _080570A4
cmp r1, 0xF2
beq _080570A4
movs r0, 0x88
lsls r0, 1
cmp r1, r0
beq _080570A4
movs r0, 0
b _080570A6
_080570A4:
movs r0, 0x1
_080570A6:
pop {r1}
bx r1
thumb_func_end sub_8057088
thumb_func_start sub_80570AC
sub_80570AC:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _080570C2
b _080570E8
_080570BE:
movs r0, 0x1
b _080570EA
_080570C2:
ldr r0, [r4, 0x70]
movs r3, 0
ldr r2, _080570F0
adds r4, r0, 0
adds r4, 0xC0
_080570CC:
ldrh r1, [r2]
cmp r1, 0
beq _080570E8
ldrh r0, [r5, 0x2]
cmp r0, r1
bne _080570E0
ldrb r0, [r4]
ldrb r1, [r2, 0x2]
cmp r0, r1
beq _080570BE
_080570E0:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x63
ble _080570CC
_080570E8:
movs r0, 0
_080570EA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080570F0: .4byte gChargeMovesToStatuses
thumb_func_end sub_80570AC
.align 2, 0