mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-28 04:54:56 -05:00
9127 lines
136 KiB
ArmAsm
9127 lines
136 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8057D9C
|
|
sub_8057D9C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r0, [r4, 0x70]
|
|
movs r5, 0
|
|
ldr r1, _08057DF8
|
|
mov r8, r1
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r2, r0, r1
|
|
movs r0, 0x1
|
|
mov r12, r0
|
|
movs r7, 0x10
|
|
movs r3, 0x3
|
|
_08057DBC:
|
|
ldrb r1, [r2]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057DD4
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057DD4
|
|
movs r0, 0
|
|
strb r0, [r2, 0x4]
|
|
movs r5, 0x1
|
|
_08057DD4:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08057DBC
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r5, 0
|
|
beq _08057E00
|
|
ldr r0, _08057DFC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08057E0C
|
|
.align 2, 0
|
|
_08057DF8: .4byte gUnknown_202DFE8
|
|
_08057DFC: .4byte gUnknown_80FD350
|
|
_08057E00:
|
|
ldr r0, _08057E18
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08057E0C:
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E18: .4byte gUnknown_80FD370
|
|
thumb_func_end sub_8057D9C
|
|
|
|
thumb_func_start sub_8057E1C
|
|
sub_8057E1C:
|
|
push {lr}
|
|
bl sub_8078348
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E1C
|
|
|
|
thumb_func_start sub_8057E28
|
|
sub_8057E28:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, _08057E4C
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807824C
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E4C: .4byte gUnknown_80F4EDC
|
|
thumb_func_end sub_8057E28
|
|
|
|
thumb_func_start sub_8057E50
|
|
sub_8057E50:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_807A9D8
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8079CA0
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E50
|
|
|
|
thumb_func_start sub_8057E6C
|
|
sub_8057E6C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r4, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, [r7, 0x70]
|
|
mov r9, r1
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_807A9D8
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08057EBC
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08057EBC
|
|
ldr r0, _08057ECC
|
|
add r0, r9
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
_08057EBC:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057ECC: .4byte 0x00000155
|
|
thumb_func_end sub_8057E6C
|
|
|
|
thumb_func_start sub_8057ED0
|
|
sub_8057ED0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08057F12
|
|
movs r7, 0x1
|
|
ldr r0, _08057F1C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08057F12
|
|
ldr r0, _08057F20
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x80
|
|
bl sub_80772C0
|
|
_08057F12:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F1C: .4byte gUnknown_80F4E04
|
|
_08057F20: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8057ED0
|
|
|
|
thumb_func_start sub_8057F24
|
|
sub_8057F24:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
ldr r5, [r6, 0x70]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
movs r4, 0x1
|
|
strh r4, [r5, 0xE]
|
|
ldr r0, _08057F74
|
|
ldr r2, [r0]
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
movs r3, 0x40
|
|
bl sub_80772C0
|
|
ldr r0, _08057F78
|
|
ldr r2, [r0]
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
movs r3, 0x40
|
|
bl sub_80772C0
|
|
movs r0, 0xAA
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
mov r0, r9
|
|
strb r0, [r5]
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F74: .4byte gUnknown_8106A4C
|
|
_08057F78: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8057F24
|
|
|
|
thumb_func_start sub_8057F7C
|
|
sub_8057F7C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08057FBA
|
|
movs r7, 0x1
|
|
ldr r0, _08057FC4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08057FBA
|
|
ldr r0, _08057FC8
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_80775DC
|
|
_08057FBA:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057FC4: .4byte gUnknown_80F4E02
|
|
_08057FC8: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8057F7C
|
|
|
|
thumb_func_start sub_8057FCC
|
|
sub_8057FCC:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8077AE4
|
|
ldr r0, _08057FF0
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057FF0: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8057FCC
|
|
|
|
thumb_func_start sub_8057FF4
|
|
sub_8057FF4:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl GetFlashFireStatus
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _08058048
|
|
ldr r0, [r4, 0x70]
|
|
movs r2, 0xA9
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08058054
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _0805802C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r6, 0x1
|
|
bne _08058034
|
|
ldr r0, _08058030
|
|
b _08058036
|
|
.align 2, 0
|
|
_0805802C: .4byte gUnknown_202DFE8
|
|
_08058030: .4byte gUnknown_80FAE00
|
|
_08058034:
|
|
ldr r0, _08058044
|
|
_08058036:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08058054
|
|
.align 2, 0
|
|
_08058044: .4byte gUnknown_80FADD8
|
|
_08058048:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_8076210
|
|
_08058054:
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057FF4
|
|
|
|
thumb_func_start sub_805805C
|
|
sub_805805C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
mov r10, r0
|
|
mov r9, r1
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
ldr r1, [r0, 0x70]
|
|
movs r6, 0x1
|
|
movs r2, 0
|
|
ldr r4, _08058098
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
blt _080580B0
|
|
movs r7, 0xC
|
|
ldrsh r3, [r1, r7]
|
|
adds r1, r4, 0
|
|
ldr r4, _0805809C
|
|
_08058088:
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r3, r0
|
|
bge _080580A0
|
|
movs r0, 0x2
|
|
ldrsh r6, [r1, r0]
|
|
b _080580B0
|
|
.align 2, 0
|
|
_08058098: .4byte gUnknown_80F55BC
|
|
_0805809C: .4byte 0x000003e6
|
|
_080580A0:
|
|
adds r1, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bgt _080580B0
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, 0
|
|
bge _08058088
|
|
_080580B0:
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0
|
|
str r1, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
mov r0, r10
|
|
mov r1, r9
|
|
adds r2, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080580F4
|
|
movs r2, 0x1
|
|
_080580F4:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805805C
|
|
|
|
thumb_func_start GrudgeMoveAction
|
|
GrudgeMoveAction:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r7, 0
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _08058134
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0xF4
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0805813C
|
|
ldr r0, _08058138
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0805814E
|
|
.align 2, 0
|
|
_08058134: .4byte gUnknown_202DFE8
|
|
_08058138: .4byte gUnknown_80FD2B4
|
|
_0805813C:
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
movs r7, 0x1
|
|
ldr r0, _08058158
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0805814E:
|
|
adds r0, r7, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058158: .4byte gUnknown_80FD294
|
|
thumb_func_end GrudgeMoveAction
|
|
|
|
thumb_func_start sub_805815C
|
|
sub_805815C:
|
|
push {lr}
|
|
movs r2, 0x4
|
|
bl sub_80797A0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805815C
|
|
|
|
thumb_func_start sub_805816C
|
|
sub_805816C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
adds r4, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r6, 0
|
|
bl sub_807A9D8
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080581BE
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, _080581CC
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080581BE
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8076210
|
|
_080581BE:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080581CC: .4byte gUnknown_80F4DB8
|
|
thumb_func_end sub_805816C
|
|
|
|
thumb_func_start sub_80581D0
|
|
sub_80581D0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
adds r4, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r6, 0
|
|
bl sub_807A9D8
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058222
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, _08058230
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058222
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8076210
|
|
_08058222:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058230: .4byte gUnknown_80F4DBA
|
|
thumb_func_end sub_80581D0
|
|
|
|
thumb_func_start sub_8058234
|
|
sub_8058234:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldrh r1, [r2, 0x2]
|
|
ldr r0, _08058258
|
|
movs r2, 0x51
|
|
cmp r1, r0
|
|
bne _08058246
|
|
movs r2, 0x7A
|
|
_08058246:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl sub_8078FDC
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058258: .4byte 0x0000013b
|
|
thumb_func_end sub_8058234
|
|
|
|
thumb_func_start sub_805825C
|
|
sub_805825C:
|
|
push {lr}
|
|
ldr r2, _0805826C
|
|
ldr r2, [r2]
|
|
bl sub_8077540
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805826C: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805825C
|
|
|
|
thumb_func_start sub_8058270
|
|
sub_8058270:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r2, r3, 0
|
|
movs r3, 0x1
|
|
ldr r0, [r1, 0x70]
|
|
adds r0, 0xC0
|
|
ldrb r0, [r0]
|
|
subs r0, 0x7
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0805828E
|
|
movs r3, 0x2
|
|
_0805828E:
|
|
lsls r3, 8
|
|
str r2, [sp]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058270
|
|
|
|
thumb_func_start sub_80582AC
|
|
sub_80582AC:
|
|
push {lr}
|
|
ldr r2, _080582C0
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080582C0: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_80582AC
|
|
|
|
thumb_func_start sub_80582C4
|
|
sub_80582C4:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8077780
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80582C4
|
|
|
|
thumb_func_start sub_80582D4
|
|
sub_80582D4:
|
|
push {lr}
|
|
ldr r2, _080582E8
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080582E8: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_80582D4
|
|
|
|
thumb_func_start sub_80582EC
|
|
sub_80582EC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
adds r1, r4, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058328
|
|
ldr r0, _08058324
|
|
ldr r3, [r0]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8079764
|
|
b _0805833C
|
|
.align 2, 0
|
|
_08058324: .4byte gUnknown_80F4F50
|
|
_08058328:
|
|
ldr r0, _08058348
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
adds r3, r4, 0
|
|
bl sub_8079618
|
|
movs r4, 0x1
|
|
_0805833C:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058348: .4byte gUnknown_80FAC54
|
|
thumb_func_end sub_80582EC
|
|
|
|
thumb_func_start sub_805834C
|
|
sub_805834C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r3, r2, 0
|
|
ldr r2, _08058368
|
|
ldr r2, [r2]
|
|
str r2, [sp]
|
|
movs r2, 0x1
|
|
bl sub_8079618
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058368: .4byte gUnknown_80FAC74
|
|
thumb_func_end sub_805834C
|
|
|
|
thumb_func_start sub_805836C
|
|
sub_805836C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x1C
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
ldr r0, [r6, 0x70]
|
|
adds r0, 0xA0
|
|
ldr r0, [r0]
|
|
lsls r4, r0, 1
|
|
ldr r0, _080583D0
|
|
cmp r4, r0
|
|
ble _0805838A
|
|
adds r4, r0, 0
|
|
_0805838A:
|
|
adds r0, r2, 0
|
|
bl GetMoveType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _080583D4
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080583C0
|
|
movs r2, 0x1
|
|
_080583C0:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080583D0: .4byte 0x000003e7
|
|
_080583D4: .4byte 0x000001ff
|
|
thumb_func_end sub_805836C
|
|
|
|
thumb_func_start sub_80583D8
|
|
sub_80583D8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805841C
|
|
movs r7, 0x1
|
|
ldr r0, _08058428
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805841C
|
|
ldr r0, _0805842C
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_0805841C:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058428: .4byte gUnknown_80F4DC2
|
|
_0805842C: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_80583D8
|
|
|
|
thumb_func_start sub_8058430
|
|
sub_8058430:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805846A
|
|
movs r7, 0x1
|
|
ldr r0, _08058474
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805846A
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_0805846A:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058474: .4byte gUnknown_80F4DEE
|
|
thumb_func_end sub_8058430
|
|
|
|
thumb_func_start sub_8058478
|
|
sub_8058478:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080584B2
|
|
movs r7, 0x1
|
|
ldr r0, _080584BC
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080584B2
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_080584B2:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080584BC: .4byte gUnknown_80F4DE6
|
|
thumb_func_end sub_8058478
|
|
|
|
thumb_func_start sub_80584C0
|
|
sub_80584C0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
mov r10, r1
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r7, 0
|
|
add r0, sp, 0x18
|
|
strb r7, [r0]
|
|
mov r0, r9
|
|
ldr r2, [r0, 0x70]
|
|
ldr r0, [r1, 0x70]
|
|
movs r3, 0xE
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r2, r3]
|
|
subs r5, r1, r0
|
|
cmp r5, 0
|
|
bge _080584F0
|
|
movs r5, 0
|
|
_080584F0:
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r7, [sp, 0x14]
|
|
mov r0, r9
|
|
mov r1, r10
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08058532
|
|
movs r2, 0x1
|
|
_08058532:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80584C0
|
|
|
|
thumb_func_start sub_8058548
|
|
sub_8058548:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xAC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08058560
|
|
ldr r0, _0805857C
|
|
ldr r5, [r0]
|
|
_08058560:
|
|
str r3, [sp]
|
|
adds r0, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805857C: .4byte gUnknown_80F4F6C
|
|
thumb_func_end sub_8058548
|
|
|
|
thumb_func_start sub_8058580
|
|
sub_8058580:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080585BC
|
|
movs r7, 0x1
|
|
ldr r0, _080585C8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080585BC
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_80779F0
|
|
_080585BC:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080585C8: .4byte gUnknown_80F4DD4
|
|
thumb_func_end sub_8058580
|
|
|
|
thumb_func_start sub_80585CC
|
|
sub_80585CC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
movs r6, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080585EC
|
|
cmp r0, 0x3
|
|
bne _08058602
|
|
_080585EC:
|
|
ldr r0, _08058620
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A4C8
|
|
movs r6, 0x1
|
|
_08058602:
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r7, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058624
|
|
movs r0, 0x1
|
|
orrs r0, r6
|
|
lsls r0, 24
|
|
b _08058626
|
|
.align 2, 0
|
|
_08058620: .4byte gUnknown_80FD104
|
|
_08058624:
|
|
lsls r0, r6, 24
|
|
_08058626:
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80585CC
|
|
|
|
thumb_func_start sub_8058638
|
|
sub_8058638:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058670
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058670
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_80779F0
|
|
_08058670:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058638
|
|
|
|
thumb_func_start sub_805867C
|
|
sub_805867C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
adds r1, r4, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080586B8
|
|
ldr r0, _080586B4
|
|
ldr r3, [r0]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8079764
|
|
b _080586CC
|
|
.align 2, 0
|
|
_080586B4: .4byte gUnknown_80F4F54
|
|
_080586B8:
|
|
ldr r0, _080586D8
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x5
|
|
adds r3, r4, 0
|
|
bl sub_8079618
|
|
movs r4, 0x1
|
|
_080586CC:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080586D8: .4byte gUnknown_80FACA4
|
|
thumb_func_end sub_805867C
|
|
|
|
thumb_func_start sub_80586DC
|
|
sub_80586DC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
adds r5, r3, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r5, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_8055640
|
|
adds r4, r0, 0
|
|
negs r0, r4
|
|
orrs r0, r4
|
|
lsrs r5, r0, 31
|
|
cmp r5, 0
|
|
beq _08058762
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058762
|
|
lsrs r0, r4, 31
|
|
adds r0, r4, r0
|
|
asrs r2, r0, 1
|
|
ldr r0, [r7, 0x70]
|
|
movs r5, 0x1
|
|
cmp r2, 0
|
|
bgt _08058734
|
|
movs r2, 0x1
|
|
_08058734:
|
|
adds r1, r0, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08058740
|
|
strb r5, [r1]
|
|
_08058740:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08058756
|
|
movs r3, 0xFD
|
|
lsls r3, 1
|
|
adds r0, r7, 0
|
|
adds r1, r2, 0
|
|
movs r2, 0xD
|
|
bl sub_806F324
|
|
b _08058762
|
|
_08058756:
|
|
str r5, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
_08058762:
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80586DC
|
|
|
|
thumb_func_start sub_8058770
|
|
sub_8058770:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
mov r12, r2
|
|
adds r5, r3, 0
|
|
ldr r2, [r4, 0x70]
|
|
movs r0, 0x10
|
|
ldrsh r3, [r2, r0]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _0805878A
|
|
adds r0, r3, 0x3
|
|
_0805878A:
|
|
movs r7, 0xE
|
|
ldrsh r1, [r2, r7]
|
|
asrs r0, 2
|
|
cmp r1, r0
|
|
bgt _08058798
|
|
movs r3, 0
|
|
b _080587BE
|
|
_08058798:
|
|
movs r0, 0xE
|
|
ldrsh r1, [r2, r0]
|
|
lsrs r0, r3, 31
|
|
adds r0, r3, r0
|
|
asrs r0, 1
|
|
cmp r1, r0
|
|
bgt _080587AA
|
|
movs r3, 0x1
|
|
b _080587BE
|
|
_080587AA:
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
cmp r0, 0
|
|
bge _080587B4
|
|
adds r0, 0x3
|
|
_080587B4:
|
|
asrs r0, 2
|
|
movs r3, 0x3
|
|
cmp r1, r0
|
|
bgt _080587BE
|
|
movs r3, 0x2
|
|
_080587BE:
|
|
ldr r1, _080587E4
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
str r5, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, r12
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080587E4: .4byte gUnknown_80F51A4
|
|
thumb_func_end sub_8058770
|
|
|
|
thumb_func_start sub_80587E8
|
|
sub_80587E8:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r1, r3, 0
|
|
ldr r0, [r5, 0x70]
|
|
adds r0, 0xAC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _0805881A
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
str r1, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_807A290
|
|
b _0805882E
|
|
_0805881A:
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r1, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
_0805882E:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80587E8
|
|
|
|
thumb_func_start sub_8058838
|
|
sub_8058838:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r2, _08058854
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x3
|
|
bl sub_8076F80
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058854: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8058838
|
|
|
|
thumb_func_start sub_8058858
|
|
sub_8058858:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
ldr r0, _08058898
|
|
ldr r5, [r0]
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8076E20
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058898: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8058858
|
|
|
|
thumb_func_start sub_805889C
|
|
sub_805889C:
|
|
push {lr}
|
|
bl sub_80769CC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805889C
|
|
|
|
thumb_func_start sub_80588A8
|
|
sub_80588A8:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8079E34
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80588A8
|
|
|
|
thumb_func_start sub_80588B8
|
|
sub_80588B8:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080588E4
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080588E4
|
|
ldr r0, _080588F0
|
|
strb r6, [r0]
|
|
_080588E4:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080588F0: .4byte gUnknown_202F219
|
|
thumb_func_end sub_80588B8
|
|
|
|
thumb_func_start sub_80588F4
|
|
sub_80588F4:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
ldr r0, [r5, 0x70]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
bl GetLowKickDmg
|
|
adds r3, r0, 0
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
mov r2, r8
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80588F4
|
|
|
|
thumb_func_start sub_8058930
|
|
sub_8058930:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r0, r7, 0
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080589B8
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
ldr r0, _080589C8
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080589B8
|
|
ldr r6, [r7, 0x70]
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_8077910
|
|
ldr r0, _080589CC
|
|
ldr r5, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
ldr r0, _080589D0
|
|
ldr r4, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
adds r6, 0xFB
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
bne _080589B8
|
|
mov r0, r8
|
|
strb r0, [r6]
|
|
_080589B8:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080589C8: .4byte gUnknown_80F4DD6
|
|
_080589CC: .4byte gUnknown_8106A4C
|
|
_080589D0: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8058930
|
|
|
|
thumb_func_start sub_80589D4
|
|
sub_80589D4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r4, _08058A04
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058A04: .4byte gUnknown_80F500A
|
|
thumb_func_end sub_80589D4
|
|
|
|
thumb_func_start sub_8058A08
|
|
sub_8058A08:
|
|
push {lr}
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_8077910
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058A08
|
|
|
|
thumb_func_start sub_8058A18
|
|
sub_8058A18:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058A44
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058A44
|
|
ldr r0, _08058A50
|
|
strb r6, [r0]
|
|
_08058A44:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058A50: .4byte gUnknown_202F21A
|
|
thumb_func_end sub_8058A18
|
|
|
|
thumb_func_start sub_8058A54
|
|
sub_8058A54:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, _08058A78
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80781DC
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058A78: .4byte gUnknown_80F4EB8
|
|
thumb_func_end sub_8058A54
|
|
|
|
thumb_func_start sub_8058A7C
|
|
sub_8058A7C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _08058AA4
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
ldr r0, _08058AA8
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058AA4: .4byte gUnknown_8106A4C
|
|
_08058AA8: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8058A7C
|
|
|
|
thumb_func_start SkyAttackMoveAction
|
|
SkyAttackMoveAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058B14
|
|
ldr r0, _08058B0C
|
|
ldr r3, [r0]
|
|
str r7, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058B04
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, _08058B10
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058B04
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_08058B04:
|
|
adds r0, r4, 0
|
|
bl sub_8079764
|
|
b _08058B2A
|
|
.align 2, 0
|
|
_08058B0C: .4byte gUnknown_80F4F4C
|
|
_08058B10: .4byte gUnknown_80F4DF4
|
|
_08058B14:
|
|
ldr r0, _08058B38
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
adds r3, r5, 0
|
|
bl sub_8079618
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_08058B2A:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058B38: .4byte gUnknown_80FACC4
|
|
thumb_func_end SkyAttackMoveAction
|
|
|
|
thumb_func_start sub_8058B3C
|
|
sub_8058B3C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058B76
|
|
movs r7, 0x1
|
|
ldr r0, _08058B80
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058B76
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80767B0
|
|
_08058B76:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058B80: .4byte gUnknown_80F4DBC
|
|
thumb_func_end sub_8058B3C
|
|
|
|
thumb_func_start sub_8058B84
|
|
sub_8058B84:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058BCC
|
|
movs r6, 0x1
|
|
ldr r0, _08058BD8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058BCC
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _08058BDC
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r4, 0xFB
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08058BCC
|
|
strb r6, [r4]
|
|
_08058BCC:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058BD8: .4byte gUnknown_80F4DD0
|
|
_08058BDC: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8058B84
|
|
|
|
thumb_func_start sub_8058BE0
|
|
sub_8058BE0:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
bl sub_8079C24
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058BE0
|
|
|
|
thumb_func_start sub_8058BF0
|
|
sub_8058BF0:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80779F0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058BF0
|
|
|
|
thumb_func_start sub_8058C00
|
|
sub_8058C00:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058C3A
|
|
movs r7, 0x1
|
|
ldr r0, _08058C44
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058C3A
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077AE4
|
|
_08058C3A:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058C44: .4byte gUnknown_80F4DF8
|
|
thumb_func_end sub_8058C00
|
|
|
|
thumb_func_start sub_8058C48
|
|
sub_8058C48:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
adds r5, r3, 0
|
|
movs r1, 0xC0
|
|
lsls r1, 1
|
|
movs r0, 0x80
|
|
bl DungeonRandomRange
|
|
adds r3, r0, 0
|
|
ldr r0, [r4, 0x70]
|
|
ldrb r0, [r0, 0x9]
|
|
muls r0, r3
|
|
cmp r0, 0
|
|
bge _08058C6C
|
|
adds r0, 0xFF
|
|
_08058C6C:
|
|
asrs r3, r0, 8
|
|
cmp r3, 0
|
|
bge _08058C74
|
|
movs r3, 0x1
|
|
_08058C74:
|
|
cmp r3, 0xC7
|
|
ble _08058C7A
|
|
movs r3, 0xC7
|
|
_08058C7A:
|
|
str r5, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
bl sub_8055864
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058C48
|
|
|
|
thumb_func_start sub_8058C98
|
|
sub_8058C98:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x1C]
|
|
movs r6, 0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058CDE
|
|
movs r6, 0x1
|
|
ldr r0, _08058CE8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058CDE
|
|
str r6, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_08058CDE:
|
|
adds r0, r6, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058CE8: .4byte gUnknown_80F4DC0
|
|
thumb_func_end sub_8058C98
|
|
|
|
thumb_func_start sub_8058CEC
|
|
sub_8058CEC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058D28
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058D28
|
|
ldr r0, _08058D34
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0x2
|
|
bl sub_8076E20
|
|
_08058D28:
|
|
adds r0, r6, 0
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058D34: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8058CEC
|
|
|
|
thumb_func_start sub_8058D38
|
|
sub_8058D38:
|
|
push {lr}
|
|
bl sub_8075FCC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058D38
|
|
|
|
thumb_func_start sub_8058D44
|
|
sub_8058D44:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
mov r12, r2
|
|
adds r5, r3, 0
|
|
ldr r2, [r4, 0x70]
|
|
movs r0, 0x10
|
|
ldrsh r3, [r2, r0]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08058D5E
|
|
adds r0, r3, 0x3
|
|
_08058D5E:
|
|
movs r7, 0xE
|
|
ldrsh r1, [r2, r7]
|
|
asrs r0, 2
|
|
cmp r1, r0
|
|
bgt _08058D6C
|
|
movs r3, 0
|
|
b _08058D92
|
|
_08058D6C:
|
|
movs r0, 0xE
|
|
ldrsh r1, [r2, r0]
|
|
lsrs r0, r3, 31
|
|
adds r0, r3, r0
|
|
asrs r0, 1
|
|
cmp r1, r0
|
|
bgt _08058D7E
|
|
movs r3, 0x1
|
|
b _08058D92
|
|
_08058D7E:
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
cmp r0, 0
|
|
bge _08058D88
|
|
adds r0, 0x3
|
|
_08058D88:
|
|
asrs r0, 2
|
|
movs r3, 0x3
|
|
cmp r1, r0
|
|
bgt _08058D92
|
|
movs r3, 0x2
|
|
_08058D92:
|
|
ldr r1, _08058DB8
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
str r5, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
mov r2, r12
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058DB8: .4byte gUnknown_80F51B4
|
|
thumb_func_end sub_8058D44
|
|
|
|
thumb_func_start sub_8058DBC
|
|
sub_8058DBC:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r5, [r7, 0x70]
|
|
ldr r4, [r6, 0x70]
|
|
adds r0, r6, 0
|
|
bl nullsub_92
|
|
movs r3, 0
|
|
_08058DCE:
|
|
lsls r2, r3, 1
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x1C
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, r5, 0
|
|
adds r1, 0x20
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
lsls r2, r3, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x2C
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x2C
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r1, r5, 0
|
|
adds r1, 0x34
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x34
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x1
|
|
ble _08058DCE
|
|
ldr r0, _08058E54
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08058E58
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
adds r1, r5, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08058E4C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08058E4C:
|
|
movs r0, 0x1
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058E54: .4byte gAvailablePokemonNames
|
|
_08058E58: .4byte gUnknown_80FBD58
|
|
thumb_func_end sub_8058DBC
|
|
|
|
thumb_func_start sub_8058E5C
|
|
sub_8058E5C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058ED0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058ED0
|
|
ldr r0, [r5, 0x70]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, 0
|
|
bge _08058E8C
|
|
adds r2, 0x7
|
|
_08058E8C:
|
|
asrs r6, r2, 3
|
|
cmp r6, 0
|
|
bne _08058E94
|
|
movs r6, 0x1
|
|
_08058E94:
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08058ED0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058ED0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
ldr r0, _08058EDC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0xC]
|
|
str r7, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_08058ED0:
|
|
adds r0, r7, 0
|
|
add sp, 0x18
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058EDC: .4byte 0x000001fd
|
|
thumb_func_end sub_8058E5C
|
|
|
|
thumb_func_start sub_8058EE0
|
|
sub_8058EE0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r2, [r1, 0x70]
|
|
movs r3, 0x10
|
|
ldrsh r2, [r2, r3]
|
|
lsrs r3, r2, 31
|
|
adds r2, r3
|
|
asrs r2, 1
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058EE0
|
|
|
|
thumb_func_start sub_8058F04
|
|
sub_8058F04:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
mov r12, r2
|
|
adds r5, r3, 0
|
|
ldr r3, [r4, 0x70]
|
|
movs r6, 0x1
|
|
ldr r0, _08058F50
|
|
ldr r1, [r0]
|
|
movs r0, 0xC1
|
|
lsls r0, 9
|
|
adds r2, r1, r0
|
|
movs r0, 0xC
|
|
str r0, [r2]
|
|
ldr r0, _08058F54
|
|
adds r1, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
adds r3, 0xC0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0xA
|
|
bne _08058F34
|
|
movs r6, 0x2
|
|
_08058F34:
|
|
lsls r3, r6, 8
|
|
str r5, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
mov r2, r12
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058F48
|
|
movs r0, 0x1
|
|
_08058F48:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058F50: .4byte gDungeonGlobalData
|
|
_08058F54: .4byte 0x00018204
|
|
thumb_func_end sub_8058F04
|
|
|
|
thumb_func_start sub_8058F58
|
|
sub_8058F58:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
ldr r0, _08058FB0
|
|
ldr r0, [r0]
|
|
ldr r1, _08058FB4
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r5, [r0, r1]
|
|
cmp r5, 0
|
|
bge _08058F78
|
|
movs r5, 0
|
|
_08058F78:
|
|
cmp r5, 0x4A
|
|
ble _08058F7E
|
|
movs r5, 0x4A
|
|
_08058F7E:
|
|
ldr r4, _08058FB8
|
|
lsls r5, 3
|
|
adds r0, r5, r4
|
|
ldrh r1, [r0]
|
|
mov r0, sp
|
|
bl InitPokemonMove
|
|
adds r4, 0x4
|
|
adds r5, r4
|
|
ldr r4, [r5]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
mov r2, sp
|
|
mov r3, r8
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058FB0: .4byte gDungeonGlobalData
|
|
_08058FB4: .4byte 0x00003a0e
|
|
_08058FB8: .4byte gUnknown_80F5D10
|
|
thumb_func_end sub_8058F58
|
|
|
|
thumb_func_start sub_8058FBC
|
|
sub_8058FBC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08058FF6
|
|
movs r7, 0x1
|
|
ldr r0, _08059000
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058FF6
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_08058FF6:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059000: .4byte gUnknown_80F4DE4
|
|
thumb_func_end sub_8058FBC
|
|
|
|
thumb_func_start sub_8059004
|
|
sub_8059004:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x8
|
|
mov r9, r0
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r8
|
|
adds r2, 0x4
|
|
str r4, [sp]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
mov r1, r8
|
|
movs r3, 0x1
|
|
bl sub_807DF38
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059004
|
|
|
|
thumb_func_start sub_8059050
|
|
sub_8059050:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8077780
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059050
|
|
|
|
thumb_func_start sub_8059060
|
|
sub_8059060:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r3, r2, 0
|
|
ldr r2, _0805907C
|
|
ldr r2, [r2]
|
|
str r2, [sp]
|
|
movs r2, 0xB
|
|
bl sub_8079618
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805907C: .4byte gUnknown_80FAD6C
|
|
thumb_func_end sub_8059060
|
|
|
|
thumb_func_start sub_8059080
|
|
sub_8059080:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080590BA
|
|
movs r7, 0x1
|
|
ldr r0, _080590C4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080590BA
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_080590BA:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080590C4: .4byte gUnknown_80F4DE8
|
|
thumb_func_end sub_8059080
|
|
|
|
thumb_func_start sub_80590C8
|
|
sub_80590C8:
|
|
push {lr}
|
|
bl sub_80798B0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80590C8
|
|
|
|
thumb_func_start sub_80590D4
|
|
sub_80590D4:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x1C
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
add r0, sp, 0x18
|
|
mov r1, r9
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_806F4A4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r6, 0
|
|
movs r1, 0x37
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805911C
|
|
movs r4, 0
|
|
_0805911C:
|
|
cmp r4, 0
|
|
bne _08059134
|
|
ldr r0, _08059130
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0805917A
|
|
.align 2, 0
|
|
_08059130: .4byte gUnknown_80FEB88
|
|
_08059134:
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _0805918C
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
mov r0, r9
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r0, [sp, 0x14]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08059178
|
|
movs r2, 0x1
|
|
_08059178:
|
|
strb r2, [r1]
|
|
_0805917A:
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805918C: .4byte 0x0000270f
|
|
thumb_func_end sub_80590D4
|
|
|
|
thumb_func_start sub_8059190
|
|
sub_8059190:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080591CA
|
|
movs r7, 0x1
|
|
ldr r0, _080591D4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080591CA
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_080591CA:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080591D4: .4byte gUnknown_80F4DEA
|
|
thumb_func_end sub_8059190
|
|
|
|
thumb_func_start sub_80591D8
|
|
sub_80591D8:
|
|
push {lr}
|
|
bl sub_8079834
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80591D8
|
|
|
|
thumb_func_start sub_80591E4
|
|
sub_80591E4:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
adds r5, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r5, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _0805927E
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r4, r0, 1
|
|
cmp r4, 0
|
|
bgt _0805922A
|
|
movs r4, 0x1
|
|
_0805922A:
|
|
adds r0, r7, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805927E
|
|
ldr r0, [r7, 0x70]
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
adds r1, r0, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805924A
|
|
mov r0, r8
|
|
strb r0, [r1]
|
|
_0805924A:
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805927E
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _0805926E
|
|
movs r3, 0xFD
|
|
lsls r3, 1
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD
|
|
bl sub_806F324
|
|
b _0805927E
|
|
_0805926E:
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
_0805927E:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80591E4
|
|
|
|
thumb_func_start SkillSwapMoveAction
|
|
SkillSwapMoveAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r7, [r4, 0x70]
|
|
ldr r5, [r6, 0x70]
|
|
adds r0, r6, 0
|
|
movs r1, 0x35
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080592BA
|
|
adds r0, r4, 0
|
|
movs r1, 0x35
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080592D0
|
|
_080592BA:
|
|
ldr r0, _080592CC
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805932E
|
|
.align 2, 0
|
|
_080592CC: .4byte gUnknown_80FC8C0
|
|
_080592D0:
|
|
movs r0, 0x5E
|
|
adds r0, r5
|
|
mov r12, r0
|
|
ldrb r3, [r0]
|
|
mov r8, r3
|
|
adds r1, r5, 0
|
|
adds r1, 0x5F
|
|
ldrb r2, [r1]
|
|
adds r5, r7, 0
|
|
adds r5, 0x5E
|
|
ldrb r0, [r5]
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
movs r0, 0x5F
|
|
adds r0, r7
|
|
mov r12, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
mov r3, r8
|
|
strb r3, [r5]
|
|
mov r0, r12
|
|
strb r2, [r0]
|
|
ldr r0, _08059338
|
|
ldr r0, [r0]
|
|
movs r5, 0x1
|
|
strb r5, [r0, 0xC]
|
|
ldr r0, _0805933C
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
adds r1, r7, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805931C
|
|
strb r5, [r1]
|
|
_0805931C:
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
bl sub_806ABAC
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_806ABAC
|
|
movs r0, 0x1
|
|
_0805932E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059338: .4byte gDungeonGlobalData
|
|
_0805933C: .4byte gUnknown_80FC888
|
|
thumb_func_end SkillSwapMoveAction
|
|
|
|
thumb_func_start SketchMoveAction
|
|
SketchMoveAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r1, [r6, 0x70]
|
|
str r1, [sp]
|
|
ldr r0, [r7, 0x70]
|
|
movs r2, 0
|
|
mov r12, r2
|
|
movs r4, 0
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r3, r0, r1
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
movs r0, 0x10
|
|
mov r8, r0
|
|
_08059372:
|
|
ldrb r2, [r3]
|
|
mov r0, r9
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08059384
|
|
mov r0, r8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080593A8
|
|
_08059384:
|
|
adds r3, 0x8
|
|
adds r1, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08059372
|
|
movs r0, 0
|
|
cmp r0, 0
|
|
bne _080593B2
|
|
ldr r0, _080593A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805940A
|
|
.align 2, 0
|
|
_080593A4: .4byte gUnknown_80FE3BC
|
|
_080593A8:
|
|
movs r2, 0x8D
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0]
|
|
mov r12, r0
|
|
_080593B2:
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
bne _080593CC
|
|
ldr r0, _080593C8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _08059408
|
|
.align 2, 0
|
|
_080593C8: .4byte gUnknown_80FE3BC
|
|
_080593CC:
|
|
adds r0, r5, 0
|
|
mov r1, r12
|
|
bl InitPokemonMove
|
|
ldr r0, _0805941C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
ldr r0, _08059420
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
ldr r1, [sp]
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08059404
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08059404:
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
_08059408:
|
|
mov r0, r10
|
|
_0805940A:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805941C: .4byte gUnknown_202DE58
|
|
_08059420: .4byte gUnknown_80FE38C
|
|
thumb_func_end SketchMoveAction
|
|
|
|
thumb_func_start sub_8059424
|
|
sub_8059424:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805945E
|
|
movs r7, 0x1
|
|
ldr r0, _08059468
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805945E
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_0805945E:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059468: .4byte gUnknown_80F4DF0
|
|
thumb_func_end sub_8059424
|
|
|
|
thumb_func_start sub_805946C
|
|
sub_805946C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080594D2
|
|
movs r6, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080594D2
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080594D2
|
|
ldr r0, [r5, 0x70]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, 0
|
|
bge _080594B0
|
|
adds r2, 0x7
|
|
_080594B0:
|
|
asrs r2, 3
|
|
cmp r2, 0
|
|
bne _080594B8
|
|
movs r2, 0x1
|
|
_080594B8:
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
ldr r0, _080594DC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0xC]
|
|
str r6, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_080594D2:
|
|
adds r0, r6, 0
|
|
add sp, 0x18
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080594DC: .4byte 0x000001fd
|
|
thumb_func_end sub_805946C
|
|
|
|
thumb_func_start sub_80594E0
|
|
sub_80594E0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _08059518
|
|
ldr r0, [r0]
|
|
ldr r1, _0805951C
|
|
ldrh r1, [r1]
|
|
ldr r2, _08059520
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_807EAA0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805950E
|
|
ldr r0, _08059524
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0805950E:
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059518: .4byte gDungeonGlobalData
|
|
_0805951C: .4byte gUnknown_80F4F42
|
|
_08059520: .4byte 0x0000e269
|
|
_08059524: .4byte gUnknown_80FCF78
|
|
thumb_func_end sub_80594E0
|
|
|
|
thumb_func_start sub_8059528
|
|
sub_8059528:
|
|
push {lr}
|
|
ldr r2, _0805953C
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
bl sub_80775DC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805953C: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8059528
|
|
|
|
thumb_func_start sub_8059540
|
|
sub_8059540:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805957A
|
|
movs r7, 0x1
|
|
ldr r0, _08059584
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805957A
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80763F8
|
|
_0805957A:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059584: .4byte gUnknown_80F4DC4
|
|
thumb_func_end sub_8059540
|
|
|
|
thumb_func_start sub_8059588
|
|
sub_8059588:
|
|
push {lr}
|
|
ldr r2, _0805959C
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805959C: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8059588
|
|
|
|
thumb_func_start sub_80595A0
|
|
sub_80595A0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080595DC
|
|
movs r7, 0x1
|
|
ldr r0, _080595E8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080595DC
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8076210
|
|
_080595DC:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080595E8: .4byte gUnknown_80F4DE0
|
|
thumb_func_end sub_80595A0
|
|
|
|
thumb_func_start sub_80595EC
|
|
sub_80595EC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
movs r7, 0
|
|
add r0, sp, 0x18
|
|
strb r7, [r0]
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_806F4A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08059630
|
|
ldr r0, _0805962C
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _08059678
|
|
.align 2, 0
|
|
_0805962C: .4byte gUnknown_80FEB8C
|
|
_08059630:
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _08059688
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r7, [sp, 0x14]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08059672
|
|
movs r2, 0x1
|
|
_08059672:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
_08059678:
|
|
add sp, 0x1C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059688: .4byte 0x0000270f
|
|
thumb_func_end sub_80595EC
|
|
|
|
thumb_func_start sub_805968C
|
|
sub_805968C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
mov r8, r1
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
beq _080596B6
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080596EC
|
|
_080596B6:
|
|
ldr r0, _080596E8
|
|
ldr r3, [r0]
|
|
cmp r4, 0x2
|
|
beq _080596C6
|
|
cmp r4, 0x4
|
|
beq _080596C6
|
|
cmp r4, 0x5
|
|
bne _080596CC
|
|
_080596C6:
|
|
lsrs r0, r3, 31
|
|
adds r0, r3, r0
|
|
asrs r3, r0, 1
|
|
_080596CC:
|
|
str r7, [sp]
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8079764
|
|
b _08059700
|
|
.align 2, 0
|
|
_080596E8: .4byte gUnknown_80F4F48
|
|
_080596EC:
|
|
ldr r0, _08059710
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x2
|
|
adds r3, r6, 0
|
|
bl sub_8079618
|
|
movs r4, 0x1
|
|
_08059700:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059710: .4byte gUnknown_80FACE4
|
|
thumb_func_end sub_805968C
|
|
|
|
thumb_func_start sub_8059714
|
|
sub_8059714:
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
mov r10, r1
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, _0805978C
|
|
movs r3, 0
|
|
ldrsh r2, [r1, r3]
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
mov r0, r9
|
|
mov r1, r10
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08059774
|
|
movs r2, 0x1
|
|
_08059774:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805978C: .4byte gUnknown_80F4F7C
|
|
thumb_func_end sub_8059714
|
|
|
|
thumb_func_start sub_8059790
|
|
sub_8059790:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
adds r1, r4, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080597CC
|
|
ldr r0, _080597C8
|
|
ldr r3, [r0]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8079764
|
|
b _080597E0
|
|
.align 2, 0
|
|
_080597C8: .4byte gUnknown_80F4F5C
|
|
_080597CC:
|
|
ldr r0, _080597EC
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x7
|
|
adds r3, r4, 0
|
|
bl sub_8079618
|
|
movs r4, 0x1
|
|
_080597E0:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080597EC: .4byte gUnknown_80FACFC
|
|
thumb_func_end sub_8059790
|
|
|
|
thumb_func_start sub_80597F0
|
|
sub_80597F0:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x8
|
|
mov r9, r0
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r8
|
|
adds r2, 0x4
|
|
str r4, [sp]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
mov r1, r8
|
|
movs r3, 0x2
|
|
bl sub_807DF38
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80597F0
|
|
|
|
thumb_func_start DiveMoveAction
|
|
DiveMoveAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
movs r6, 0
|
|
bl GetMapTileForDungeonEntity_2
|
|
bl IsTileGround
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059870
|
|
ldr r0, _0805986C
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _080598B8
|
|
.align 2, 0
|
|
_0805986C: .4byte gUnknown_80FD128
|
|
_08059870:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080598A4
|
|
ldr r0, _080598A0
|
|
ldr r3, [r0]
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r6, r1, 31
|
|
adds r0, r4, 0
|
|
bl sub_8079764
|
|
b _080598B8
|
|
.align 2, 0
|
|
_080598A0: .4byte gUnknown_80F4F64
|
|
_080598A4:
|
|
ldr r0, _080598C8
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x9
|
|
adds r3, r5, 0
|
|
bl sub_8079618
|
|
movs r6, 0x1
|
|
_080598B8:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080598C8: .4byte gUnknown_80FAD2C
|
|
thumb_func_end DiveMoveAction
|
|
|
|
thumb_func_start sub_80598CC
|
|
sub_80598CC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805990A
|
|
movs r7, 0x1
|
|
ldr r0, _08059914
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805990A
|
|
ldr r0, _08059918
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_80775DC
|
|
_0805990A:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059914: .4byte gUnknown_80F4E00
|
|
_08059918: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_80598CC
|
|
|
|
thumb_func_start sub_805991C
|
|
sub_805991C:
|
|
push {lr}
|
|
bl sub_80787E4
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805991C
|
|
|
|
thumb_func_start sub_8059928
|
|
sub_8059928:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r1, r3, 0
|
|
movs r3, 0x1
|
|
movs r6, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xC0
|
|
ldrb r0, [r0]
|
|
subs r0, 0x7
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08059948
|
|
movs r3, 0x2
|
|
_08059948:
|
|
lsls r3, 8
|
|
str r1, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059978
|
|
movs r6, 0x1
|
|
ldr r0, _08059984
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059978
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_08059978:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059984: .4byte gUnknown_80F4DEC
|
|
thumb_func_end sub_8059928
|
|
|
|
thumb_func_start sub_8059988
|
|
sub_8059988:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _080599A8
|
|
movs r7, 0x1
|
|
ldr r0, _080599E0
|
|
strb r7, [r0]
|
|
_080599A8:
|
|
ldr r0, _080599E0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080599D6
|
|
ldr r0, _080599E4
|
|
ldr r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _080599D6
|
|
ldr r0, _080599E8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080599D6
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80763F8
|
|
_080599D6:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080599E0: .4byte gUnknown_202F218
|
|
_080599E4: .4byte gUnknown_202F214
|
|
_080599E8: .4byte gUnknown_80F4DC8
|
|
thumb_func_end sub_8059988
|
|
|
|
thumb_func_start sub_80599EC
|
|
sub_80599EC:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r3, r0, 0
|
|
ldr r0, [r1, 0x70]
|
|
movs r4, 0x10
|
|
ldrsh r2, [r0, r4]
|
|
cmp r2, 0
|
|
bge _080599FE
|
|
adds r2, 0x3
|
|
_080599FE:
|
|
asrs r2, 2
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r3, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80599EC
|
|
|
|
thumb_func_start sub_8059A18
|
|
sub_8059A18:
|
|
push {lr}
|
|
ldr r2, _08059A28
|
|
ldr r2, [r2]
|
|
bl sub_8077540
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059A28: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_8059A18
|
|
|
|
thumb_func_start sub_8059A2C
|
|
sub_8059A2C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x70]
|
|
ldrb r0, [r0, 0x9]
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
mov r2, r10
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08059A90
|
|
movs r2, 0x1
|
|
_08059A90:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059A2C
|
|
|
|
thumb_func_start sub_8059AA8
|
|
sub_8059AA8:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8077AE4
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059AA8
|
|
|
|
thumb_func_start sub_8059AB8
|
|
sub_8059AB8:
|
|
push {lr}
|
|
bl sub_8078758
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059AB8
|
|
|
|
thumb_func_start sub_8059AC4
|
|
sub_8059AC4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r4, _08059AF4
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059AF4: .4byte gUnknown_80F501A
|
|
thumb_func_end sub_8059AC4
|
|
|
|
thumb_func_start sub_8059AF8
|
|
sub_8059AF8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
movs r7, 0
|
|
add r0, sp, 0x18
|
|
strb r7, [r0]
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r6, 0
|
|
bl sub_806F4A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08059B3C
|
|
ldr r0, _08059B38
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _08059B82
|
|
.align 2, 0
|
|
_08059B38: .4byte gUnknown_80FEB90
|
|
_08059B3C:
|
|
adds r0, r5, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _08059B90
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
str r7, [sp, 0x10]
|
|
str r7, [sp, 0x14]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08059B7C
|
|
movs r2, 0x1
|
|
_08059B7C:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
_08059B82:
|
|
add sp, 0x1C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059B90: .4byte 0x0000270f
|
|
thumb_func_end sub_8059AF8
|
|
|
|
thumb_func_start sub_8059B94
|
|
sub_8059B94:
|
|
push {lr}
|
|
ldr r2, _08059BA8
|
|
ldr r2, [r2]
|
|
movs r3, 0x2
|
|
bl sub_8077084
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059BA8: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8059B94
|
|
|
|
thumb_func_start sub_8059BAC
|
|
sub_8059BAC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r7, [r5, 0x70]
|
|
adds r0, r5, 0
|
|
movs r1, 0x25
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059BD8
|
|
ldr r0, _08059BD4
|
|
b _08059C5E
|
|
.align 2, 0
|
|
_08059BD4: .4byte gPtrForecastPreventsTypeSwitchMessage
|
|
_08059BD8:
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r4, r7, r1
|
|
mov r9, sp
|
|
movs r6, 0x3
|
|
_08059BE2:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08059C08
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMoveTypeForPokemon
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059C08
|
|
mov r0, r9
|
|
adds r0, 0x4
|
|
mov r9, r0
|
|
subs r0, 0x4
|
|
stm r0!, {r4}
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_08059C08:
|
|
adds r4, 0x8
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08059BE2
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08059C5C
|
|
bl DungeonRandomCapped
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r4, r1, r0
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
bl GetMoveTypeForPokemon
|
|
adds r1, r7, 0
|
|
adds r1, 0x5C
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x5D
|
|
strb r2, [r0]
|
|
adds r1, 0x9A
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _08059C54
|
|
ldr r1, [r4]
|
|
bl sub_80928C0
|
|
ldr r0, _08059C58
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
b _08059C6A
|
|
.align 2, 0
|
|
_08059C54: .4byte gUnknown_202DE58
|
|
_08059C58: .4byte gUnknown_80FE330
|
|
_08059C5C:
|
|
ldr r0, _08059C7C
|
|
_08059C5E:
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
_08059C6A:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059C7C: .4byte gUnknown_80FE36C
|
|
thumb_func_end sub_8059BAC
|
|
|
|
thumb_func_start sub_8059C80
|
|
sub_8059C80:
|
|
push {lr}
|
|
bl sub_8079D1C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059C80
|
|
|
|
thumb_func_start HelpingHandMoveAction
|
|
HelpingHandMoveAction:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
cmp r5, r4
|
|
bne _08059CA8
|
|
ldr r0, _08059CA4
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_80522F4
|
|
b _08059CC6
|
|
.align 2, 0
|
|
_08059CA4: .4byte gUnknown_80FEB60
|
|
_08059CA8:
|
|
ldr r0, _08059CD0
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
ldr r0, _08059CD4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
movs r6, 0x1
|
|
_08059CC6:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059CD0: .4byte gUnknown_8106A4C
|
|
_08059CD4: .4byte gUnknown_8106A50
|
|
thumb_func_end HelpingHandMoveAction
|
|
|
|
thumb_func_start sub_8059CD8
|
|
sub_8059CD8:
|
|
push {lr}
|
|
ldr r2, _08059CEC
|
|
ldr r2, [r2]
|
|
movs r3, 0x2
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059CEC: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8059CD8
|
|
|
|
thumb_func_start sub_8059CF0
|
|
sub_8059CF0:
|
|
push {lr}
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059CF0
|
|
|
|
thumb_func_start sub_8059D00
|
|
sub_8059D00:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059D3A
|
|
movs r7, 0x1
|
|
ldr r0, _08059D44
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059D3A
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_08059D3A:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059D44: .4byte gUnknown_80F4DE2
|
|
thumb_func_end sub_8059D00
|
|
|
|
thumb_func_start sub_8059D48
|
|
sub_8059D48:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8077780
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059D48
|
|
|
|
thumb_func_start sub_8059D58
|
|
sub_8059D58:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059D8E
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059D8E
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_08059D8E:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059D58
|
|
|
|
thumb_func_start sub_8059D98
|
|
sub_8059D98:
|
|
push {lr}
|
|
bl sub_80769CC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059D98
|
|
|
|
thumb_func_start sub_8059DA4
|
|
sub_8059DA4:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_80763F8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059DA4
|
|
|
|
thumb_func_start sub_8059DB4
|
|
sub_8059DB4:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_80765E0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8059DB4
|
|
|
|
thumb_func_start sub_8059DC4
|
|
sub_8059DC4:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059DFE
|
|
movs r7, 0x1
|
|
ldr r0, _08059E08
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059DFE
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80765E0
|
|
_08059DFE:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059E08: .4byte gUnknown_80F4DCA
|
|
thumb_func_end sub_8059DC4
|
|
|
|
thumb_func_start sub_8059E0C
|
|
sub_8059E0C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059E46
|
|
movs r7, 0x1
|
|
ldr r0, _08059E50
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059E46
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80763F8
|
|
_08059E46:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059E50: .4byte gUnknown_80F4DBE
|
|
thumb_func_end sub_8059E0C
|
|
|
|
thumb_func_start sub_8059E54
|
|
sub_8059E54:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x2C
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
adds r7, r2, 0
|
|
adds r1, r3, 0
|
|
ldr r0, [sp, 0x48]
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _08059E8A
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r1, [sp]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r7, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
mov r9, r1
|
|
_08059E8A:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _08059F1A
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl GetMoveTypeForPokemon
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CalculateMovePower
|
|
adds r5, r0, 0
|
|
adds r0, r7, 0
|
|
bl GetMoveCriticalHitChance
|
|
str r0, [sp]
|
|
add r2, sp, 0x18
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp, 0x8]
|
|
ldrh r0, [r7, 0x2]
|
|
str r0, [sp, 0xC]
|
|
mov r0, r9
|
|
str r0, [sp, 0x10]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_806EAF4
|
|
ldr r0, _08059F2C
|
|
ldr r1, [r6, 0x70]
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _08059F30
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_80522F4
|
|
ldr r0, [sp, 0x18]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
str r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
bne _08059EF6
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
_08059EF6:
|
|
ldr r2, [sp, 0x18]
|
|
add r0, sp, 0x28
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _08059F34
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x13
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
mov r0, r9
|
|
str r0, [sp, 0x14]
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_08059F1A:
|
|
mov r0, r9
|
|
add sp, 0x2C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059F2C: .4byte gAvailablePokemonNames
|
|
_08059F30: .4byte gUnknown_80FC7C8
|
|
_08059F34: .4byte 0x000001f7
|
|
thumb_func_end sub_8059E54
|
|
|
|
thumb_func_start sub_8059F38
|
|
sub_8059F38:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059FA0
|
|
ldr r0, _08059F98
|
|
ldr r3, [r0]
|
|
str r7, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _08059F90
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, _08059F9C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08059F90
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_08059F90:
|
|
adds r0, r4, 0
|
|
bl sub_8079764
|
|
b _08059FB6
|
|
.align 2, 0
|
|
_08059F98: .4byte gUnknown_80F4F60
|
|
_08059F9C: .4byte gUnknown_80F4DCC
|
|
_08059FA0:
|
|
ldr r0, _08059FC4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x8
|
|
adds r3, r5, 0
|
|
bl sub_8079618
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_08059FB6:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08059FC4: .4byte gUnknown_80FAD10
|
|
thumb_func_end sub_8059F38
|
|
|
|
thumb_func_start sub_8059FC8
|
|
sub_8059FC8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x2C
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
adds r7, r2, 0
|
|
adds r1, r3, 0
|
|
ldr r0, [sp, 0x48]
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
bne _08059FFE
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
str r1, [sp]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r7, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
mov r9, r1
|
|
_08059FFE:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _0805A090
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl GetMoveTypeForPokemon
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CalculateMovePower
|
|
adds r5, r0, 0
|
|
adds r0, r7, 0
|
|
bl GetMoveCriticalHitChance
|
|
str r0, [sp]
|
|
add r2, sp, 0x18
|
|
str r2, [sp, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
str r0, [sp, 0x8]
|
|
ldrh r0, [r7, 0x2]
|
|
str r0, [sp, 0xC]
|
|
mov r0, r9
|
|
str r0, [sp, 0x10]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_806EAF4
|
|
ldr r0, _0805A0A0
|
|
ldr r1, [r6, 0x70]
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _0805A0A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_80522F4
|
|
ldr r0, [sp, 0x18]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
str r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
bne _0805A06A
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
_0805A06A:
|
|
ldr r2, [sp, 0x18]
|
|
add r0, sp, 0x28
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xFC
|
|
lsls r0, 1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x13
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
mov r0, r9
|
|
str r0, [sp, 0x14]
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0805A090:
|
|
mov r0, r9
|
|
add sp, 0x2C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A0A0: .4byte gAvailablePokemonNames
|
|
_0805A0A4: .4byte gUnknown_80FC7C8
|
|
thumb_func_end sub_8059FC8
|
|
|
|
thumb_func_start sub_805A0A8
|
|
sub_805A0A8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A114
|
|
movs r7, 0x1
|
|
ldr r0, _0805A0F8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A114
|
|
movs r0, 0x3
|
|
bl DungeonRandomCapped
|
|
cmp r0, 0x1
|
|
beq _0805A0FC
|
|
cmp r0, 0x1
|
|
ble _0805A0EA
|
|
cmp r0, 0x2
|
|
beq _0805A10A
|
|
_0805A0EA:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
b _0805A114
|
|
.align 2, 0
|
|
_0805A0F8: .4byte gUnknown_80F4DFC
|
|
_0805A0FC:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8076210
|
|
b _0805A114
|
|
_0805A10A:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80767B0
|
|
_0805A114:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A0A8
|
|
|
|
thumb_func_start sub_805A120
|
|
sub_805A120:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r1, [r6, 0x70]
|
|
mov r9, r1
|
|
mov r7, r9
|
|
ldr r2, [r5, 0x70]
|
|
mov r8, r2
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
ldr r4, _0805A16C
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
movs r1, 0x2C
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A174
|
|
ldr r0, _0805A170
|
|
b _0805A1B8
|
|
.align 2, 0
|
|
_0805A16C: .4byte gAvailablePokemonNames
|
|
_0805A170: .4byte gUnknown_80FCCE4
|
|
_0805A174:
|
|
adds r0, r5, 0
|
|
movs r1, 0x24
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A18C
|
|
ldr r0, _0805A188
|
|
b _0805A1B8
|
|
.align 2, 0
|
|
_0805A188: .4byte gUnknown_80FD578
|
|
_0805A18C:
|
|
mov r0, r9
|
|
adds r0, 0x60
|
|
mov r2, r8
|
|
adds r2, 0x60
|
|
ldrb r1, [r0]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805A1A2
|
|
mov r10, r4
|
|
_0805A1A2:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805A1B0
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
_0805A1B0:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _0805A1CC
|
|
ldr r0, _0805A1C8
|
|
_0805A1B8:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805A1FC
|
|
.align 2, 0
|
|
_0805A1C8: .4byte gUnknown_80FC7AC
|
|
_0805A1CC:
|
|
ldr r0, [r7, 0x60]
|
|
ldr r2, [sp]
|
|
ldr r1, [r2, 0x60]
|
|
str r1, [r7, 0x60]
|
|
str r0, [r2, 0x60]
|
|
adds r0, r6, 0
|
|
bl sub_806A6E8
|
|
adds r0, r5, 0
|
|
bl sub_806A6E8
|
|
adds r1, r7, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805A1EE
|
|
strb r4, [r1]
|
|
_0805A1EE:
|
|
ldr r0, _0805A20C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
_0805A1FC:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A20C: .4byte gUnknown_80FC790
|
|
thumb_func_end sub_805A120
|
|
|
|
thumb_func_start sub_805A210
|
|
sub_805A210:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r3, 0
|
|
ldr r4, _0805A238
|
|
ldr r3, [r4]
|
|
adds r3, 0x1
|
|
str r3, [r4]
|
|
lsls r3, 8
|
|
str r5, [sp]
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A238: .4byte gUnknown_202F210
|
|
thumb_func_end sub_805A210
|
|
|
|
thumb_func_start sub_805A23C
|
|
sub_805A23C:
|
|
push {lr}
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0xD4
|
|
bne _0805A24C
|
|
movs r0, 0
|
|
bl sub_807EA30
|
|
b _0805A252
|
|
_0805A24C:
|
|
movs r0, 0x1
|
|
bl sub_807EA30
|
|
_0805A252:
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A23C
|
|
|
|
thumb_func_start sub_805A258
|
|
sub_805A258:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A292
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A292
|
|
ldr r0, _0805A29C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_80775DC
|
|
_0805A292:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A29C: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805A258
|
|
|
|
thumb_func_start sub_805A2A0
|
|
sub_805A2A0:
|
|
push {lr}
|
|
bl sub_805BA50
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A2A0
|
|
|
|
thumb_func_start sub_805A2B0
|
|
sub_805A2B0:
|
|
push {lr}
|
|
ldr r2, _0805A2C4
|
|
ldr r2, [r2]
|
|
movs r3, 0x2
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A2C4: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805A2B0
|
|
|
|
thumb_func_start sub_805A2C8
|
|
sub_805A2C8:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r2, _0805A2E4
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
str r3, [sp, 0x4]
|
|
bl sub_8076E20
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A2E4: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805A2C8
|
|
|
|
thumb_func_start sub_805A2E8
|
|
sub_805A2E8:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
ldr r0, [r1, 0x70]
|
|
adds r0, 0xC0
|
|
ldrb r0, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
cmp r0, 0x9
|
|
bne _0805A302
|
|
movs r4, 0x80
|
|
lsls r4, 2
|
|
_0805A302:
|
|
str r3, [sp]
|
|
adds r0, r5, 0
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A312
|
|
movs r6, 0x1
|
|
_0805A312:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A2E8
|
|
|
|
thumb_func_start sub_805A31C
|
|
sub_805A31C:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r4, [r5, 0x70]
|
|
ldr r7, [r6, 0x70]
|
|
adds r0, r6, 0
|
|
movs r1, 0x35
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A348
|
|
ldr r0, _0805A344
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805A386
|
|
.align 2, 0
|
|
_0805A344: .4byte gUnknown_80FC854
|
|
_0805A348:
|
|
adds r0, r7, 0
|
|
adds r0, 0x5E
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x5E
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x5F
|
|
ldrb r0, [r0]
|
|
adds r1, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _0805A38C
|
|
ldr r0, [r0]
|
|
movs r2, 0x1
|
|
strb r2, [r0, 0xC]
|
|
adds r1, 0x9C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805A370
|
|
strb r2, [r1]
|
|
_0805A370:
|
|
ldr r0, _0805A390
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_806ABAC
|
|
movs r0, 0x1
|
|
_0805A386:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A38C: .4byte gDungeonGlobalData
|
|
_0805A390: .4byte gUnknown_80FC81C
|
|
thumb_func_end sub_805A31C
|
|
|
|
thumb_func_start sub_805A394
|
|
sub_805A394:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _0805A3CC
|
|
ldr r0, [r0]
|
|
ldr r1, _0805A3D0
|
|
ldrh r1, [r1]
|
|
ldr r2, _0805A3D4
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_807EAA0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805A3C2
|
|
ldr r0, _0805A3D8
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0805A3C2:
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A3CC: .4byte gDungeonGlobalData
|
|
_0805A3D0: .4byte gUnknown_80F4F42
|
|
_0805A3D4: .4byte 0x0000e268
|
|
_0805A3D8: .4byte gUnknown_80FCF7C
|
|
thumb_func_end sub_805A394
|
|
|
|
thumb_func_start sub_805A3DC
|
|
sub_805A3DC:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r2, _0805A3F8
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
str r3, [sp, 0x4]
|
|
bl sub_8076F80
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A3F8: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805A3DC
|
|
|
|
thumb_func_start sub_805A3FC
|
|
sub_805A3FC:
|
|
push {lr}
|
|
bl sub_807992C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A3FC
|
|
|
|
thumb_func_start sub_805A408
|
|
sub_805A408:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A442
|
|
movs r7, 0x1
|
|
ldr r0, _0805A44C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A442
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
_0805A442:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A44C: .4byte gUnknown_80F4DF2
|
|
thumb_func_end sub_805A408
|
|
|
|
thumb_func_start sub_805A450
|
|
sub_805A450:
|
|
push {lr}
|
|
ldr r2, _0805A460
|
|
ldr r2, [r2]
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A460: .4byte gUnknown_80FC730
|
|
thumb_func_end sub_805A450
|
|
|
|
thumb_func_start sub_805A464
|
|
sub_805A464:
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A4B4
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A4B4
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805A4B4
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x4
|
|
movs r1, 0x69
|
|
movs r2, 0x2
|
|
bl sub_8045C28
|
|
add r3, sp, 0x8
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
add r2, sp, 0x4
|
|
bl sub_805A7D4
|
|
_0805A4B4:
|
|
adds r0, r7, 0
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A464
|
|
|
|
thumb_func_start sub_805A4C0
|
|
sub_805A4C0:
|
|
push {lr}
|
|
ldr r2, _0805A4D0
|
|
ldr r2, [r2]
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A4D0: .4byte gUnknown_80FC74C
|
|
thumb_func_end sub_805A4C0
|
|
|
|
thumb_func_start sub_805A4D4
|
|
sub_805A4D4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, _0805A4F8
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8075E74
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A4F8: .4byte gUnknown_80F4E94
|
|
thumb_func_end sub_805A4D4
|
|
|
|
thumb_func_start sub_805A4FC
|
|
sub_805A4FC:
|
|
push {lr}
|
|
bl sub_8076AA4
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A4FC
|
|
|
|
thumb_func_start sub_805A508
|
|
sub_805A508:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r0, [r3, 0x70]
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0805A540
|
|
ldr r1, _0805A53C
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r3, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
b _0805A54C
|
|
.align 2, 0
|
|
_0805A53C: .4byte gUnknown_80F51D4
|
|
_0805A540:
|
|
ldr r0, _0805A558
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r3, 0
|
|
bl sub_80522F4
|
|
_0805A54C:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A558: .4byte gUnknown_80FC770
|
|
thumb_func_end sub_805A508
|
|
|
|
thumb_func_start sub_805A55C
|
|
sub_805A55C:
|
|
push {lr}
|
|
bl sub_8078594
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A55C
|
|
|
|
thumb_func_start sub_805A568
|
|
sub_805A568:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A568
|
|
|
|
thumb_func_start sub_805A588
|
|
sub_805A588:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A5D8
|
|
movs r7, 0x1
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A5D8
|
|
ldr r0, _0805A5E4
|
|
ldr r5, [r0]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8076E20
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_0805A5D8:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A5E4: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805A588
|
|
|
|
thumb_func_start sub_805A5E8
|
|
sub_805A5E8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x18]
|
|
movs r6, 0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A632
|
|
movs r6, 0x1
|
|
ldr r0, _0805A63C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A632
|
|
ldr r4, [r5, 0x70]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
adds r4, 0xFB
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0805A632
|
|
strb r6, [r4]
|
|
_0805A632:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A63C: .4byte gUnknown_80F4DD2
|
|
thumb_func_end sub_805A5E8
|
|
|
|
thumb_func_start SpitUpMoveAction
|
|
SpitUpMoveAction:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r1, r3, 0
|
|
ldr r0, [r5, 0x70]
|
|
movs r3, 0x89
|
|
lsls r3, 1
|
|
adds r4, r0, r3
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0805A66C
|
|
adds r3, r0, 0
|
|
lsls r3, 8
|
|
str r1, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_8055640
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
b _0805A678
|
|
_0805A66C:
|
|
ldr r0, _0805A684
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_0805A678:
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A684: .4byte gUnknown_80FCA3C
|
|
thumb_func_end SpitUpMoveAction
|
|
|
|
thumb_func_start sub_805A688
|
|
sub_805A688:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805A6BE
|
|
movs r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A6BE
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077AE4
|
|
_0805A6BE:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805A688
|
|
|
|
thumb_func_start sub_805A6C8
|
|
sub_805A6C8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, [r6, 0x70]
|
|
mov r9, r0
|
|
ldr r7, [r5, 0x70]
|
|
mov r8, r7
|
|
ldr r4, _0805A708
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
movs r1, 0x2C
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A710
|
|
ldr r0, _0805A70C
|
|
b _0805A73A
|
|
.align 2, 0
|
|
_0805A708: .4byte gAvailablePokemonNames
|
|
_0805A70C: .4byte gUnknown_80FCCE8
|
|
_0805A710:
|
|
adds r0, r5, 0
|
|
movs r1, 0x24
|
|
bl HasItem
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _0805A728
|
|
ldr r0, _0805A724
|
|
b _0805A73A
|
|
.align 2, 0
|
|
_0805A724: .4byte gUnknown_80FD57C
|
|
_0805A728:
|
|
ldr r0, [r7, 0x60]
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805A74C
|
|
ldr r0, _0805A748
|
|
_0805A73A:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805A7B4
|
|
.align 2, 0
|
|
_0805A748: .4byte gUnknown_80FD18C
|
|
_0805A74C:
|
|
mov r0, r8
|
|
adds r0, 0x60
|
|
strb r2, [r0, 0x2]
|
|
strb r2, [r0, 0x1]
|
|
strb r2, [r0]
|
|
ldr r0, _0805A7C4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
ldr r4, _0805A7C8
|
|
mov r3, r9
|
|
adds r3, 0x46
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r2, [r0]
|
|
ldr r0, _0805A7CC
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
str r1, [sp, 0x4]
|
|
ldrb r0, [r3]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
ldr r2, _0805A7D0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
add r3, sp, 0x4
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl sub_805A7D4
|
|
adds r1, r5, 0x4
|
|
adds r0, r5, 0
|
|
bl sub_80706A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A7B2
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_0805A7B2:
|
|
movs r0, 0x1
|
|
_0805A7B4:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805A7C4: .4byte gUnknown_80FD170
|
|
_0805A7C8: .4byte gAdjacentTileOffsets
|
|
_0805A7CC: .4byte 0xffff0000
|
|
_0805A7D0: .4byte 0x0000ffff
|
|
thumb_func_end sub_805A6C8
|
|
|
|
thumb_func_start sub_805A7D4
|
|
sub_805A7D4:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x78
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0x28
|
|
movs r5, 0
|
|
strb r5, [r0]
|
|
add r1, sp, 0x24
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x26
|
|
strb r5, [r0]
|
|
str r6, [sp, 0x74]
|
|
add r1, sp, 0x4
|
|
ldrh r0, [r3]
|
|
ldrh r2, [r4, 0x4]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r3, 0x2]
|
|
ldrh r2, [r4, 0x6]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x6]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, 0x4
|
|
lsls r1, 8
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, 0x4
|
|
lsls r2, 8
|
|
add r0, sp, 0x4
|
|
bl sub_8045394
|
|
add r0, sp, 0x4
|
|
strh r5, [r0, 0x26]
|
|
ldr r0, _0805A858
|
|
add r1, sp, 0x4
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
str r5, [sp]
|
|
mov r0, r8
|
|
add r1, sp, 0x4
|
|
adds r2, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_804652C
|
|
add sp, 0x78
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805A858: .4byte gUnknown_202DE58
|
|
thumb_func_end sub_805A7D4
|
|
|
|
thumb_func_start sub_805A85C
|
|
sub_805A85C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
mov r10, r2
|
|
str r3, [sp, 0x24]
|
|
ldr r0, [r6, 0x4]
|
|
str r0, [sp, 0x18]
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
movs r2, 0x8
|
|
bl sub_806CDD4
|
|
movs r5, 0
|
|
_0805A880:
|
|
movs r0, 0x3
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
movs r0, 0x3
|
|
bl DungeonRandomCapped
|
|
adds r2, r0, 0
|
|
subs r4, 0x1
|
|
subs r2, 0x1
|
|
cmp r4, 0
|
|
bne _0805A89C
|
|
cmp r2, 0
|
|
beq _0805A8BC
|
|
_0805A89C:
|
|
ldrh r0, [r6, 0x4]
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
ldrh r1, [r6, 0x6]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
lsrs r0, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x18]
|
|
adds r0, r6, 0
|
|
add r1, sp, 0x18
|
|
bl sub_80705F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A8C2
|
|
_0805A8BC:
|
|
adds r5, 0x1
|
|
cmp r5, 0x27
|
|
ble _0805A880
|
|
_0805A8C2:
|
|
cmp r5, 0x28
|
|
bne _0805A8DC
|
|
ldr r0, _0805A8D8
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805AAB8
|
|
.align 2, 0
|
|
_0805A8D8: .4byte gUnknown_80FEBDC
|
|
_0805A8DC:
|
|
add r0, sp, 0x18
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 11
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r0, r3
|
|
ldr r1, [r6, 0xC]
|
|
subs r0, r1
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
str r0, [sp, 0x28]
|
|
add r0, sp, 0x18
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 11
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r0, r3
|
|
ldr r1, [r6, 0x10]
|
|
subs r0, r1
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
str r0, [sp, 0x2C]
|
|
adds r4, r6, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
mov r9, r4
|
|
cmp r0, 0
|
|
bne _0805A934
|
|
add r0, sp, 0x18
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805A94C
|
|
_0805A934:
|
|
movs r5, 0xB
|
|
_0805A936:
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x28]
|
|
ldr r2, [sp, 0x2C]
|
|
bl sub_804539C
|
|
movs r0, 0x2C
|
|
bl sub_803E46C
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0805A936
|
|
_0805A94C:
|
|
add r0, sp, 0x18
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
add r4, sp, 0x18
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
bl GetMapTile_2
|
|
ldr r5, [r0, 0x10]
|
|
cmp r5, 0
|
|
beq _0805AA4C
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
adds r7, r0, 0
|
|
cmp r7, 0x1
|
|
bne _0805A9FE
|
|
add r4, sp, 0x1C
|
|
ldr r1, _0805AA44
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80571F0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0805A9B0
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x24]
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, _0805AA48
|
|
movs r3, 0
|
|
ldrsh r2, [r1, r3]
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
str r7, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0805A9B0:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0805AAB6
|
|
mov r0, r8
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AAB6
|
|
ldr r0, _0805AA48
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0xFF
|
|
lsls r0, 1
|
|
str r0, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
str r4, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
mov r0, r8
|
|
mov r1, r8
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805AAB6
|
|
mov r0, r8
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AAB6
|
|
_0805A9FE:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AAB6
|
|
mov r0, r9
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805AA22
|
|
add r0, sp, 0x18
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AA5E
|
|
_0805AA22:
|
|
ldr r2, [sp, 0x28]
|
|
negs r7, r2
|
|
ldr r3, [sp, 0x2C]
|
|
negs r4, r3
|
|
movs r5, 0xB
|
|
_0805AA2C:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_804539C
|
|
movs r0, 0x2C
|
|
bl sub_803E46C
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0805AA2C
|
|
b _0805AA5E
|
|
.align 2, 0
|
|
_0805AA44: .4byte 0x00000163
|
|
_0805AA48: .4byte gUnknown_80F4F82
|
|
_0805AA4C:
|
|
add r0, sp, 0x18
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r4, r3]
|
|
adds r0, r6, 0
|
|
movs r3, 0
|
|
bl sub_80694C0
|
|
_0805AA5E:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AAB6
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
mov r1, r9
|
|
adds r0, r6, 0
|
|
bl sub_80706A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AA8C
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_0805AA8C:
|
|
ldr r0, [r6, 0x70]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0805AAA0
|
|
mov r0, r9
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0805AAA0:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0805AAC8
|
|
ldr r0, [r0]
|
|
ldr r1, _0805AACC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8075900
|
|
_0805AAB6:
|
|
movs r0, 0x1
|
|
_0805AAB8:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AAC8: .4byte gDungeonGlobalData
|
|
_0805AACC: .4byte 0x00003a08
|
|
thumb_func_end sub_805A85C
|
|
|
|
thumb_func_start sub_805AAD0
|
|
sub_805AAD0:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
bl sub_80782CC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AAD0
|
|
|
|
thumb_func_start sub_805AAE0
|
|
sub_805AAE0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, [r4, 0x70]
|
|
movs r7, 0
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r5, r0, r1
|
|
ldr r0, [r5]
|
|
bl RoundUpFixedPoint
|
|
cmp r0, 0x1
|
|
ble _0805AB20
|
|
ldr r0, _0805AB1C
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x63
|
|
bl sub_8077084
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_80943A0
|
|
ldr r0, [sp]
|
|
str r0, [r5]
|
|
movs r7, 0x1
|
|
b _0805AB36
|
|
.align 2, 0
|
|
_0805AB1C: .4byte gUnknown_8106A4C
|
|
_0805AB20:
|
|
ldr r0, _0805AB40
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0805AB44
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_0805AB36:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AB40: .4byte gAvailablePokemonNames
|
|
_0805AB44: .4byte gUnknown_80FC5CC
|
|
thumb_func_end sub_805AAE0
|
|
|
|
thumb_func_start sub_805AB48
|
|
sub_805AB48:
|
|
push {lr}
|
|
bl sub_8079A24
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AB48
|
|
|
|
thumb_func_start sub_805AB54
|
|
sub_805AB54:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
bne _0805AB70
|
|
b _0805AC86
|
|
_0805AB70:
|
|
movs r7, 0x1
|
|
ldr r0, _0805ABA8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805AB88
|
|
b _0805AC86
|
|
_0805AB88:
|
|
ldr r1, _0805ABAC
|
|
ldr r0, _0805ABB0
|
|
ldr r0, [r0]
|
|
ldr r2, _0805ABB4
|
|
adds r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _0805AC7C
|
|
lsls r0, 2
|
|
ldr r1, _0805ABB8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0805ABA8: .4byte gUnknown_80F4E06
|
|
_0805ABAC: .4byte gUnknown_80F5978
|
|
_0805ABB0: .4byte gDungeonGlobalData
|
|
_0805ABB4: .4byte 0x00003a0e
|
|
_0805ABB8: .4byte _0805ABBC
|
|
.align 2, 0
|
|
_0805ABBC:
|
|
.4byte _0805ABE0
|
|
.4byte _0805ABEC
|
|
.4byte _0805AC08
|
|
.4byte _0805AC16
|
|
.4byte _0805AC34
|
|
.4byte _0805AC50
|
|
.4byte _0805AC64
|
|
.4byte _0805AC70
|
|
.4byte _0805AC7C
|
|
_0805ABE0:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80763F8
|
|
b _0805AC86
|
|
_0805ABEC:
|
|
ldr r1, _0805AC04
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_8075C58
|
|
b _0805AC86
|
|
.align 2, 0
|
|
_0805AC04: .4byte gUnknown_80F4E74
|
|
_0805AC08:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_80779F0
|
|
b _0805AC86
|
|
_0805AC16:
|
|
ldr r0, _0805AC30
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076E20
|
|
b _0805AC86
|
|
.align 2, 0
|
|
_0805AC30: .4byte gUnknown_8106A4C
|
|
_0805AC34:
|
|
ldr r0, _0805AC4C
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
b _0805AC86
|
|
.align 2, 0
|
|
_0805AC4C: .4byte gUnknown_8106A4C
|
|
_0805AC50:
|
|
ldr r0, _0805AC60
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_80775DC
|
|
b _0805AC86
|
|
.align 2, 0
|
|
_0805AC60: .4byte gUnknown_8106A4C
|
|
_0805AC64:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077AE4
|
|
b _0805AC86
|
|
_0805AC70:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80776C0
|
|
b _0805AC86
|
|
_0805AC7C:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077780
|
|
_0805AC86:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AB54
|
|
|
|
thumb_func_start sub_805AC90
|
|
sub_805AC90:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805ACCA
|
|
movs r7, 0x1
|
|
ldr r0, _0805ACD4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805ACCA
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_8077AE4
|
|
_0805ACCA:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805ACD4: .4byte gUnknown_80F4DFA
|
|
thumb_func_end sub_805AC90
|
|
|
|
thumb_func_start sub_805ACD8
|
|
sub_805ACD8:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, _0805AD00
|
|
ldr r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AD00: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805ACD8
|
|
|
|
thumb_func_start sub_805AD04
|
|
sub_805AD04:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, _0805AD30
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r3, r0, 0
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8076090
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AD30: .4byte gUnknown_80F4EE0
|
|
thumb_func_end sub_805AD04
|
|
|
|
thumb_func_start sub_805AD34
|
|
sub_805AD34:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r2, _0805AD50
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
str r3, [sp]
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x2
|
|
bl sub_8076E20
|
|
movs r0, 0x1
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AD50: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805AD34
|
|
|
|
thumb_func_start sub_805AD54
|
|
sub_805AD54:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r10, r0
|
|
ldr r1, [r5, 0x70]
|
|
mov r8, r1
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
beq _0805AD88
|
|
ldr r0, _0805AD80
|
|
ldr r0, [r0]
|
|
ldr r1, _0805AD84
|
|
adds r7, r0, r1
|
|
movs r0, 0x10
|
|
b _0805AD92
|
|
.align 2, 0
|
|
_0805AD80: .4byte gDungeonGlobalData
|
|
_0805AD84: .4byte 0x0001358c
|
|
_0805AD88:
|
|
ldr r0, _0805AD98
|
|
ldr r0, [r0]
|
|
ldr r1, _0805AD9C
|
|
adds r7, r0, r1
|
|
movs r0, 0x4
|
|
_0805AD92:
|
|
str r0, [sp]
|
|
movs r6, 0
|
|
b _0805AE0E
|
|
.align 2, 0
|
|
_0805AD98: .4byte gDungeonGlobalData
|
|
_0805AD9C: .4byte 0x0001357c
|
|
_0805ADA0:
|
|
lsls r0, r6, 2
|
|
adds r0, r7
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AE0C
|
|
cmp r5, r4
|
|
beq _0805AE0C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805AE0C
|
|
ldr r1, [r4, 0x70]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0805AE0C
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4A
|
|
beq _0805ADE2
|
|
cmp r0, 0x47
|
|
bne _0805ADE6
|
|
_0805ADE2:
|
|
movs r0, 0x1
|
|
b _0805ADE8
|
|
_0805ADE6:
|
|
movs r0, 0
|
|
_0805ADE8:
|
|
cmp r0, 0
|
|
bne _0805AE0C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
mov r3, r9
|
|
adds r3, 0x4
|
|
bl sub_807D148
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
mov r1, r8
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805AE0C
|
|
mov r0, r10
|
|
strb r0, [r1]
|
|
_0805AE0C:
|
|
adds r6, 0x1
|
|
_0805AE0E:
|
|
ldr r1, [sp]
|
|
cmp r6, r1
|
|
blt _0805ADA0
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _0805AE26
|
|
ldr r0, _0805AE38
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_80522F4
|
|
_0805AE26:
|
|
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
|
|
.align 2, 0
|
|
_0805AE38: .4byte gUnknown_81004EC
|
|
thumb_func_end sub_805AD54
|
|
|
|
thumb_func_start sub_805AE3C
|
|
sub_805AE3C:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
bl sub_807A9D8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
str r4, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
mov r2, r8
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AE3C
|
|
|
|
thumb_func_start sub_805AE74
|
|
sub_805AE74:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805AEB8
|
|
movs r7, 0x1
|
|
ldr r0, _0805AEC4
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AEB8
|
|
ldr r0, _0805AEC8
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_0805AEB8:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AEC4: .4byte gUnknown_80F4DDA
|
|
_0805AEC8: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805AE74
|
|
|
|
thumb_func_start sub_805AECC
|
|
sub_805AECC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r5, r2, 0
|
|
adds r4, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r6, 0
|
|
bl sub_807A9D8
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805AF1E
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r0, _0805AF2C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805AF1E
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8076210
|
|
_0805AF1E:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805AF2C: .4byte gUnknown_80F4DFE
|
|
thumb_func_end sub_805AECC
|
|
|
|
thumb_func_start sub_805AF30
|
|
sub_805AF30:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r4, r3, 0
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
adds r1, r0, 0
|
|
cmp r0, 0x9
|
|
bgt _0805AF54
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
movs r3, 0x78
|
|
b _0805AF92
|
|
_0805AF54:
|
|
cmp r0, 0x1D
|
|
bgt _0805AF78
|
|
ldr r0, [r5, 0x70]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, 0
|
|
bge _0805AF64
|
|
adds r2, 0x3
|
|
_0805AF64:
|
|
asrs r2, 2
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
movs r0, 0x1
|
|
b _0805AF9C
|
|
_0805AF78:
|
|
cmp r1, 0x3B
|
|
bgt _0805AF88
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
movs r3, 0x50
|
|
b _0805AF92
|
|
_0805AF88:
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
movs r3, 0x28
|
|
_0805AF92:
|
|
bl sub_8055864
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r0, r1, 31
|
|
_0805AF9C:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805AF30
|
|
|
|
thumb_func_start sub_805AFA4
|
|
sub_805AFA4:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
adds r6, r3, 0
|
|
bl sub_807A9D8
|
|
ldr r3, [r4, 0x70]
|
|
movs r0, 0x10
|
|
ldrsh r2, [r3, r0]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _0805AFC6
|
|
adds r0, r2, 0x3
|
|
_0805AFC6:
|
|
movs r7, 0xE
|
|
ldrsh r1, [r3, r7]
|
|
asrs r0, 2
|
|
cmp r1, r0
|
|
bgt _0805AFD4
|
|
movs r2, 0
|
|
b _0805AFFA
|
|
_0805AFD4:
|
|
movs r0, 0xE
|
|
ldrsh r1, [r3, r0]
|
|
lsrs r0, r2, 31
|
|
adds r0, r2, r0
|
|
asrs r0, 1
|
|
cmp r1, r0
|
|
bgt _0805AFE6
|
|
movs r2, 0x1
|
|
b _0805AFFA
|
|
_0805AFE6:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
cmp r0, 0
|
|
bge _0805AFF0
|
|
adds r0, 0x3
|
|
_0805AFF0:
|
|
asrs r0, 2
|
|
movs r2, 0x3
|
|
cmp r1, r0
|
|
bgt _0805AFFA
|
|
movs r2, 0x2
|
|
_0805AFFA:
|
|
ldr r1, _0805B024
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
str r6, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, r8
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B024: .4byte gUnknown_80F51C4
|
|
thumb_func_end sub_805AFA4
|
|
|
|
thumb_func_start sub_805B028
|
|
sub_805B028:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8077780
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B028
|
|
|
|
thumb_func_start TransformMoveAction
|
|
TransformMoveAction:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _0805B05A
|
|
strb r0, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_8078E18
|
|
movs r0, 0x1
|
|
b _0805B068
|
|
_0805B05A:
|
|
ldr r0, _0805B070
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
_0805B068:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B070: .4byte gUnknown_80FEFF4
|
|
thumb_func_end TransformMoveAction
|
|
|
|
thumb_func_start sub_805B074
|
|
sub_805B074:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B0AE
|
|
movs r7, 0x1
|
|
ldr r0, _0805B0B8
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B0AE
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80763F8
|
|
_0805B0AE:
|
|
adds r0, r7, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B0B8: .4byte gUnknown_80F4DC6
|
|
thumb_func_end sub_805B074
|
|
|
|
thumb_func_start sub_805B0BC
|
|
sub_805B0BC:
|
|
push {lr}
|
|
ldr r2, [r0, 0x70]
|
|
adds r2, 0x46
|
|
ldrb r2, [r2]
|
|
bl sub_807CD9C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B0BC
|
|
|
|
thumb_func_start sub_805B0D0
|
|
sub_805B0D0:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r4, [r5, 0x70]
|
|
ldr r1, _0805B134
|
|
ldr r0, _0805B138
|
|
ldr r0, [r0]
|
|
ldr r2, _0805B13C
|
|
adds r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0x25
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0805B14C
|
|
adds r0, r4, 0
|
|
adds r0, 0x5C
|
|
strb r6, [r0]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0xF6
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _0805B140
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
bl GetUnformattedTypeString
|
|
adds r1, r0, 0
|
|
ldr r0, _0805B144
|
|
bl strcpy
|
|
ldr r0, _0805B148
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
b _0805B15A
|
|
.align 2, 0
|
|
_0805B134: .4byte gDungeonCamouflageTypes
|
|
_0805B138: .4byte gDungeonGlobalData
|
|
_0805B13C: .4byte 0x00003a0e
|
|
_0805B140: .4byte gUnknown_202DFE8
|
|
_0805B144: .4byte gUnknown_202DE58
|
|
_0805B148: .4byte gUnknown_80FEB08
|
|
_0805B14C:
|
|
ldr r0, _0805B160
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
_0805B15A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B160: .4byte gPtrForecastPreventsTypeSwitchMessage
|
|
thumb_func_end sub_805B0D0
|
|
|
|
thumb_func_start sub_805B164
|
|
sub_805B164:
|
|
push {lr}
|
|
ldr r2, _0805B178
|
|
ldr r2, [r2]
|
|
movs r3, 0x2
|
|
bl sub_8077084
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B178: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805B164
|
|
|
|
thumb_func_start sub_805B17C
|
|
sub_805B17C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r7, r2, 0
|
|
mov r8, r3
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldrh r1, [r7, 0x2]
|
|
ldr r0, _0805B1A8
|
|
cmp r1, r0
|
|
bne _0805B1AC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_807A9D8
|
|
movs r6, 0x9E
|
|
lsls r6, 1
|
|
b _0805B1BA
|
|
.align 2, 0
|
|
_0805B1A8: .4byte 0x00000123
|
|
_0805B1AC:
|
|
movs r6, 0x75
|
|
cmp r1, 0x45
|
|
beq _0805B1BA
|
|
movs r6, 0xF1
|
|
cmp r1, 0x7D
|
|
bne _0805B1BA
|
|
movs r6, 0x7E
|
|
_0805B1BA:
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B1F4
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
ldr r0, _0805B204
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B1F4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
movs r3, 0
|
|
bl sub_80768DC
|
|
_0805B1F4:
|
|
mov r0, r9
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B204: .4byte gUnknown_80F4E08
|
|
thumb_func_end sub_805B17C
|
|
|
|
thumb_func_start sub_805B208
|
|
sub_805B208:
|
|
push {lr}
|
|
bl sub_80788E8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B208
|
|
|
|
thumb_func_start sub_805B214
|
|
sub_805B214:
|
|
push {lr}
|
|
bl sub_8076B48
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B214
|
|
|
|
thumb_func_start TrapperOrbAction
|
|
TrapperOrbAction:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r6, 0
|
|
ldr r0, [r4, 0x70]
|
|
ldrb r0, [r0, 0x6]
|
|
movs r2, 0x1
|
|
cmp r0, 0
|
|
beq _0805B234
|
|
movs r2, 0x2
|
|
_0805B234:
|
|
adds r0, r4, 0x4
|
|
movs r1, 0x13
|
|
bl sub_807FCD4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B246
|
|
movs r6, 0x1
|
|
b _0805B252
|
|
_0805B246:
|
|
ldr r0, _0805B260
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0805B252:
|
|
bl sub_8049ED4
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B260: .4byte gUnknown_80FC5A8
|
|
thumb_func_end TrapperOrbAction
|
|
|
|
thumb_func_start sub_805B264
|
|
sub_805B264:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
mov r9, r2
|
|
mov r12, r3
|
|
ldr r4, [r7, 0x70]
|
|
ldr r0, _0805B2D0
|
|
ldr r3, [r0]
|
|
movs r6, 0
|
|
ldr r0, _0805B2D4
|
|
ldr r1, [r0]
|
|
movs r0, 0xC1
|
|
lsls r0, 9
|
|
adds r5, r1, r0
|
|
ldr r2, _0805B2D8
|
|
lsls r0, r3, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
ldr r0, _0805B2DC
|
|
adds r1, r0
|
|
str r6, [r1]
|
|
ldr r0, _0805B2E0
|
|
lsls r3, 1
|
|
adds r3, r0
|
|
movs r0, 0
|
|
ldrsh r3, [r3, r0]
|
|
adds r4, 0xC0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xA
|
|
bne _0805B2AC
|
|
lsls r3, 1
|
|
_0805B2AC:
|
|
mov r0, r12
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
mov r2, r9
|
|
bl sub_8055864
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r6, r1, 31
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B2D0: .4byte gUnknown_202F224
|
|
_0805B2D4: .4byte gDungeonGlobalData
|
|
_0805B2D8: .4byte gUnknown_8106A8C
|
|
_0805B2DC: .4byte 0x00018204
|
|
_0805B2E0: .4byte gUnknown_80F4F94
|
|
thumb_func_end sub_805B264
|
|
|
|
thumb_func_start sub_805B2E4
|
|
sub_805B2E4:
|
|
push {lr}
|
|
bl sub_80799A8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B2E4
|
|
|
|
thumb_func_start sub_805B2F0
|
|
sub_805B2F0:
|
|
push {lr}
|
|
bl sub_8079B1C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B2F0
|
|
|
|
thumb_func_start sub_805B2FC
|
|
sub_805B2FC:
|
|
push {lr}
|
|
ldr r2, _0805B310
|
|
ldr r2, [r2]
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B310: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805B2FC
|
|
|
|
thumb_func_start sub_805B314
|
|
sub_805B314:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_80783C4
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B314
|
|
|
|
thumb_func_start sub_805B324
|
|
sub_805B324:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B368
|
|
movs r7, 0x1
|
|
ldr r0, _0805B374
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B368
|
|
ldr r0, _0805B378
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076E20
|
|
_0805B368:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B374: .4byte gUnknown_80F4DD8
|
|
_0805B378: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805B324
|
|
|
|
thumb_func_start sub_805B37C
|
|
sub_805B37C:
|
|
push {lr}
|
|
bl sub_80780E4
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B37C
|
|
|
|
thumb_func_start sub_805B388
|
|
sub_805B388:
|
|
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 _0805B39E
|
|
movs r0, 0x1
|
|
_0805B39E:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B388
|
|
|
|
thumb_func_start sub_805B3A8
|
|
sub_805B3A8:
|
|
push {lr}
|
|
bl sub_8079BA8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B3A8
|
|
|
|
thumb_func_start sub_805B3B4
|
|
sub_805B3B4:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, _0805B3DC
|
|
ldr r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B3DC: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805B3B4
|
|
|
|
thumb_func_start sub_805B3E0
|
|
sub_805B3E0:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
movs r0, 0x1
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B3E0
|
|
|
|
thumb_func_start sub_805B3FC
|
|
sub_805B3FC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x18]
|
|
movs r6, 0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B446
|
|
movs r6, 0x1
|
|
ldr r0, _0805B450
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B446
|
|
ldr r4, [r5, 0x70]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r4, 0xFB
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0805B446
|
|
strb r6, [r4]
|
|
_0805B446:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B450: .4byte gUnknown_80F4DCE
|
|
thumb_func_end sub_805B3FC
|
|
|
|
thumb_func_start sub_805B454
|
|
sub_805B454:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_807614C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B454
|
|
|
|
thumb_func_start MimicMoveAction
|
|
MimicMoveAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r9, r1
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, [r6, 0x70]
|
|
mov r8, r1
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x70]
|
|
movs r5, 0
|
|
ldr r1, _0805B50C
|
|
mov r10, r1
|
|
subs r1, 0x2F
|
|
adds r4, r0, r1
|
|
movs r7, 0x3
|
|
_0805B48C:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B4D4
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r6, 0
|
|
bl sub_805755C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805B4D4
|
|
ldrh r2, [r4, 0x2]
|
|
adds r0, r2, 0
|
|
cmp r0, r10
|
|
beq _0805B4D4
|
|
cmp r0, 0xE5
|
|
beq _0805B4D4
|
|
cmp r0, 0x8A
|
|
beq _0805B4D4
|
|
cmp r0, 0x28
|
|
beq _0805B4D4
|
|
cmp r0, 0x11
|
|
beq _0805B4D4
|
|
ldrb r1, [r4]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B4D4
|
|
lsls r1, r5, 1
|
|
movs r0, 0xBD
|
|
lsls r0, 1
|
|
add r0, r8
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
adds r5, 0x1
|
|
_0805B4D4:
|
|
adds r4, 0x8
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _0805B48C
|
|
ldr r0, _0805B510
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r5, 0
|
|
beq _0805B518
|
|
mov r1, r8
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805B4F8
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0805B4F8:
|
|
ldr r0, _0805B514
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
mov r1, r9
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
b _0805B524
|
|
.align 2, 0
|
|
_0805B50C: .4byte 0x00000147
|
|
_0805B510: .4byte gAvailablePokemonNames
|
|
_0805B514: .4byte gUnknown_80FDCE4
|
|
_0805B518:
|
|
ldr r0, _0805B538
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
mov r1, r9
|
|
bl sub_80522F4
|
|
_0805B524:
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B538: .4byte gUnknown_80FDD00
|
|
thumb_func_end MimicMoveAction
|
|
|
|
thumb_func_start sub_805B53C
|
|
sub_805B53C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
mov r10, r0
|
|
mov r9, r1
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r0, 0
|
|
add r1, sp, 0x18
|
|
strb r0, [r1]
|
|
mov r0, r10
|
|
ldr r1, [r0, 0x70]
|
|
movs r5, 0x1
|
|
movs r2, 0
|
|
ldr r4, _0805B580
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
blt _0805B598
|
|
movs r7, 0xC
|
|
ldrsh r3, [r1, r7]
|
|
adds r1, r4, 0
|
|
ldr r4, _0805B584
|
|
_0805B570:
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r3, r0
|
|
bge _0805B588
|
|
movs r0, 0x2
|
|
ldrsh r5, [r1, r0]
|
|
b _0805B598
|
|
.align 2, 0
|
|
_0805B580: .4byte gUnknown_80F55EC
|
|
_0805B584: .4byte 0x000003e6
|
|
_0805B588:
|
|
adds r1, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
bgt _0805B598
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, 0
|
|
bge _0805B570
|
|
_0805B598:
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0
|
|
str r1, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
mov r0, r10
|
|
mov r1, r9
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805B5DC
|
|
movs r2, 0x1
|
|
_0805B5DC:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B53C
|
|
|
|
thumb_func_start sub_805B5F4
|
|
sub_805B5F4:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r2, 0x1
|
|
bl sub_8077F40
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805B60E
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0805B60E:
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B5F4
|
|
|
|
thumb_func_start sub_805B618
|
|
sub_805B618:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
mov r9, r3
|
|
ldr r0, _0805B660
|
|
ldr r4, [r0]
|
|
ldr r5, _0805B664
|
|
lsls r4, 3
|
|
adds r0, r4, r5
|
|
ldrh r1, [r0]
|
|
mov r0, sp
|
|
bl InitPokemonMove
|
|
adds r5, 0x4
|
|
adds r4, r5
|
|
ldr r4, [r4]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
mov r2, sp
|
|
mov r3, r9
|
|
bl _call_via_r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B660: .4byte gUnknown_202F228
|
|
_0805B664: .4byte gUnknown_80F59C8
|
|
thumb_func_end sub_805B618
|
|
|
|
thumb_func_start sub_805B668
|
|
sub_805B668:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r7, r2, 0
|
|
adds r6, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x3A
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
adds r0, r4, 0
|
|
bl IsSleeping
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B712
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl sub_8055640
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _0805B71E
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r4, r0, 1
|
|
cmp r4, 0
|
|
bgt _0805B6BE
|
|
movs r4, 0x1
|
|
_0805B6BE:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B71E
|
|
ldr r0, [r5, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805B6DC
|
|
mov r0, r8
|
|
strb r0, [r1]
|
|
_0805B6DC:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B71E
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _0805B700
|
|
movs r3, 0xFD
|
|
lsls r3, 1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0xD
|
|
bl sub_806F324
|
|
b _0805B71E
|
|
_0805B700:
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
b _0805B71E
|
|
_0805B712:
|
|
ldr r0, _0805B730
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0805B71E:
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B730: .4byte gPtrSleepingTargetOnlyMessage
|
|
thumb_func_end sub_805B668
|
|
|
|
thumb_func_start sub_805B734
|
|
sub_805B734:
|
|
push {lr}
|
|
bl sub_8078678
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B734
|
|
|
|
thumb_func_start sub_805B740
|
|
sub_805B740:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
ldr r5, [r6, 0x70]
|
|
movs r7, 0
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0
|
|
bne _0805B7C2
|
|
movs r4, 0
|
|
movs r0, 0x60
|
|
adds r0, r5
|
|
mov r8, r0
|
|
_0805B75E:
|
|
lsls r1, r4, 2
|
|
ldr r0, _0805B7D4
|
|
ldr r0, [r0]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B790
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805B790
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0x7C
|
|
bne _0805B790
|
|
ldrb r1, [r2, 0x1]
|
|
adds r1, 0x7D
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
bl xxx_init_itemslot_8090A8C
|
|
movs r7, 0x1
|
|
_0805B790:
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _0805B75E
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805B7C2
|
|
adds r0, r5, 0
|
|
adds r0, 0x62
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7C
|
|
bne _0805B7C2
|
|
adds r0, r5, 0
|
|
adds r0, 0x61
|
|
ldrb r1, [r0]
|
|
adds r1, 0x7D
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
movs r2, 0
|
|
bl xxx_init_itemslot_8090A8C
|
|
movs r7, 0x1
|
|
_0805B7C2:
|
|
cmp r7, 0
|
|
beq _0805B7DC
|
|
ldr r0, _0805B7D8
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0805B7E8
|
|
.align 2, 0
|
|
_0805B7D4: .4byte gTeamInventory_203B460
|
|
_0805B7D8: .4byte gUnknown_80FDC9C
|
|
_0805B7DC:
|
|
ldr r0, _0805B7F8
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_0805B7E8:
|
|
adds r0, r7, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B7F8: .4byte gUnknown_80FDCA0
|
|
thumb_func_end sub_805B740
|
|
|
|
thumb_func_start sub_805B7FC
|
|
sub_805B7FC:
|
|
push {lr}
|
|
bl sub_8079AA0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B7FC
|
|
|
|
thumb_func_start sub_805B808
|
|
sub_805B808:
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
mov r10, r1
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, _0805B880
|
|
movs r3, 0
|
|
ldrsh r2, [r1, r3]
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
mov r0, r9
|
|
mov r1, r10
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805B868
|
|
movs r2, 0x1
|
|
_0805B868:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B880: .4byte gUnknown_80F4F7E
|
|
thumb_func_end sub_805B808
|
|
|
|
thumb_func_start sub_805B884
|
|
sub_805B884:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _0805B8AC
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_8077910
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B8AC: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_805B884
|
|
|
|
thumb_func_start SkullBashMoveAction
|
|
SkullBashMoveAction:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
adds r6, r3, 0
|
|
adds r1, r4, 0
|
|
bl MoveMatchesChargingStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B8EC
|
|
ldr r0, _0805B8E8
|
|
ldr r3, [r0]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8055640
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8079764
|
|
b _0805B900
|
|
.align 2, 0
|
|
_0805B8E8: .4byte gUnknown_80F4F58
|
|
_0805B8EC:
|
|
ldr r0, _0805B90C
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x6
|
|
adds r3, r4, 0
|
|
bl sub_8079618
|
|
movs r4, 0x1
|
|
_0805B900:
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B90C: .4byte gUnknown_80FAFF0
|
|
thumb_func_end SkullBashMoveAction
|
|
|
|
thumb_func_start sub_805B910
|
|
sub_805B910:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r7, 0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B954
|
|
movs r7, 0x1
|
|
ldr r0, _0805B960
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B954
|
|
ldr r0, _0805B964
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_0805B954:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805B960: .4byte gUnknown_80F4DDC
|
|
_0805B964: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_805B910
|
|
|
|
thumb_func_start sub_805B968
|
|
sub_805B968:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r7, [sp]
|
|
adds r0, r5, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805B9D8
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8057308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805B9D8
|
|
ldr r0, [r5, 0x70]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r0, r1]
|
|
cmp r2, 0
|
|
bge _0805B9A8
|
|
adds r2, 0x3
|
|
_0805B9A8:
|
|
asrs r4, r2, 2
|
|
cmp r4, 0
|
|
bgt _0805B9B0
|
|
movs r4, 0x1
|
|
_0805B9B0:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
mov r0, r8
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0805B9D8:
|
|
mov r0, r8
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805B968
|
|
|
|
thumb_func_start sub_805B9E8
|
|
sub_805B9E8:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
mov r0, sp
|
|
bl sub_8069D18
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BA08
|
|
ldr r0, _0805BA04
|
|
b _0805BA18
|
|
.align 2, 0
|
|
_0805BA04: .4byte gUnknown_80FD430
|
|
_0805BA08:
|
|
mov r0, sp
|
|
bl sub_804AD34
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
beq _0805BA28
|
|
ldr r0, _0805BA24
|
|
_0805BA18:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0805BA34
|
|
.align 2, 0
|
|
_0805BA24: .4byte gUnknown_80FD3F0
|
|
_0805BA28:
|
|
ldr r0, _0805BA40
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0805BA34:
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BA40: .4byte gUnknown_80FD40C
|
|
thumb_func_end sub_805B9E8
|
|
|
|
thumb_func_start sub_805BA44
|
|
sub_805BA44:
|
|
push {lr}
|
|
bl sub_807D3CC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BA44
|
|
|
|
thumb_func_start sub_805BA50
|
|
sub_805BA50:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
str r3, [sp]
|
|
adds r0, r6, 0
|
|
adds r3, r4, 0
|
|
bl sub_8055640
|
|
cmp r0, 0
|
|
beq _0805BB4C
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_805727C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BB4C
|
|
ldr r0, [r6, 0x70]
|
|
mov r8, r0
|
|
mov r10, r8
|
|
ldr r7, [r5, 0x70]
|
|
str r7, [sp, 0x4]
|
|
ldr r4, _0805BAC0
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
movs r1, 0x2C
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BAC4
|
|
movs r0, 0x1
|
|
b _0805BB4E
|
|
.align 2, 0
|
|
_0805BAC0: .4byte gAvailablePokemonNames
|
|
_0805BAC4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x24
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BADC
|
|
ldr r0, _0805BAD8
|
|
b _0805BB04
|
|
.align 2, 0
|
|
_0805BAD8: .4byte gUnknown_80FD574
|
|
_0805BADC:
|
|
mov r0, r8
|
|
adds r0, 0x60
|
|
adds r3, r7, 0
|
|
adds r3, 0x60
|
|
ldrb r0, [r0]
|
|
mov r2, r9
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _0805BAF8
|
|
ldr r0, _0805BAF4
|
|
b _0805BB04
|
|
.align 2, 0
|
|
_0805BAF4: .4byte gUnknown_80FC654
|
|
_0805BAF8:
|
|
ldrb r1, [r3]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0805BB18
|
|
ldr r0, _0805BB14
|
|
_0805BB04:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
b _0805BB4E
|
|
.align 2, 0
|
|
_0805BB14: .4byte gUnknown_80FC678
|
|
_0805BB18:
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r1, 0x60]
|
|
mov r1, r10
|
|
str r0, [r1, 0x60]
|
|
strb r2, [r3, 0x2]
|
|
strb r2, [r3, 0x1]
|
|
strb r2, [r3]
|
|
adds r0, r6, 0
|
|
bl sub_806A6E8
|
|
adds r0, r5, 0
|
|
bl sub_806A6E8
|
|
mov r1, r10
|
|
adds r1, 0xFB
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0805BB40
|
|
mov r0, r9
|
|
strb r0, [r1]
|
|
_0805BB40:
|
|
ldr r0, _0805BB60
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0805BB4C:
|
|
mov r0, r9
|
|
_0805BB4E:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BB60: .4byte gUnknown_80FC614
|
|
thumb_func_end sub_805BA50
|
|
|
|
thumb_func_start sub_805BB64
|
|
sub_805BB64:
|
|
push {lr}
|
|
movs r2, 0xA
|
|
bl sub_80797A0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BB64
|
|
|
|
thumb_func_start sub_805BB74
|
|
sub_805BB74:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r0, [r3, 0x70]
|
|
adds r2, r0, 0
|
|
adds r2, 0xFB
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _0805BB88
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
_0805BB88:
|
|
adds r0, r3, 0
|
|
movs r2, 0x1
|
|
bl sub_807E254
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BB74
|
|
|
|
thumb_func_start sub_805BB98
|
|
sub_805BB98:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BB98
|
|
|
|
thumb_func_start CleanseOrbAction
|
|
CleanseOrbAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
ldr r0, [r6, 0x70]
|
|
movs r7, 0
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
bne _0805BC30
|
|
movs r5, 0
|
|
ldr r3, _0805BC44
|
|
_0805BBC0:
|
|
lsls r1, r5, 2
|
|
ldr r0, [r3]
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0805BBE8
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _0805BBE8
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0805BBE8
|
|
movs r0, 0xF7
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
_0805BBE8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0805BBC0
|
|
movs r5, 0
|
|
_0805BBF0:
|
|
ldr r0, _0805BC48
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0805BC4C
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BC2A
|
|
ldr r0, [r4, 0x70]
|
|
adds r2, r0, 0
|
|
adds r2, 0x60
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805BC2A
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0805BC2A
|
|
movs r0, 0xF7
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r7, 0x1
|
|
_0805BC2A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0805BBF0
|
|
_0805BC30:
|
|
cmp r7, 0
|
|
beq _0805BC54
|
|
ldr r0, _0805BC50
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0805BC60
|
|
.align 2, 0
|
|
_0805BC44: .4byte gTeamInventory_203B460
|
|
_0805BC48: .4byte gDungeonGlobalData
|
|
_0805BC4C: .4byte 0x0001357c
|
|
_0805BC50: .4byte gUnknown_80FC8F0
|
|
_0805BC54:
|
|
ldr r0, _0805BC6C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_0805BC60:
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BC6C: .4byte gUnknown_80FC920
|
|
thumb_func_end CleanseOrbAction
|
|
|
|
thumb_func_start sub_805BC70
|
|
sub_805BC70:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r1, _0805BC94
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8075C58
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BC94: .4byte gUnknown_80F4E74
|
|
thumb_func_end sub_805BC70
|
|
|
|
thumb_func_start sub_805BC98
|
|
sub_805BC98:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
mov r10, r2
|
|
str r3, [sp, 0x1C]
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
mov r7, sp
|
|
adds r7, 0x19
|
|
strb r5, [r7]
|
|
ldr r0, [r6, 0x70]
|
|
mov r9, r0
|
|
ldr r0, [r1, 0x70]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r0, r1]
|
|
subs r4, r0, 0x1
|
|
cmp r4, 0
|
|
bge _0805BCCA
|
|
movs r4, 0
|
|
_0805BCCA:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x1C]
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r2, sp, 0x18
|
|
str r2, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
str r5, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
mov r1, r9
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r4, r0, 1
|
|
cmp r4, 0
|
|
bge _0805BD02
|
|
movs r4, 0
|
|
_0805BD02:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x1C]
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r7, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
str r5, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805BD34
|
|
movs r2, 0x1
|
|
_0805BD34:
|
|
strb r2, [r1]
|
|
movs r1, 0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
bne _0805BD40
|
|
movs r1, 0x1
|
|
_0805BD40:
|
|
strb r1, [r7]
|
|
movs r2, 0
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805BD50
|
|
cmp r1, 0
|
|
beq _0805BD52
|
|
_0805BD50:
|
|
movs r2, 0x1
|
|
_0805BD52:
|
|
adds r0, r2, 0
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BC98
|
|
|
|
thumb_func_start sub_805BD64
|
|
sub_805BD64:
|
|
push {lr}
|
|
bl sub_8078D8C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BD64
|
|
|
|
thumb_func_start sub_805BD70
|
|
sub_805BD70:
|
|
push {lr}
|
|
bl sub_8077DDC
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BD70
|
|
|
|
thumb_func_start sub_805BD7C
|
|
sub_805BD7C:
|
|
push {lr}
|
|
bl sub_8077ED0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BD7C
|
|
|
|
thumb_func_start TransferOrbAction
|
|
TransferOrbAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r10, r0
|
|
adds r7, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, [r7, 0x70]
|
|
ldrb r0, [r1, 0x6]
|
|
cmp r0, 0
|
|
beq _0805BE60
|
|
mov r9, r1
|
|
movs r2, 0x2
|
|
ldrsh r5, [r1, r2]
|
|
mov r8, r5
|
|
ldr r0, _0805BDD0
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r0, r9
|
|
adds r0, 0xA4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805BDD8
|
|
ldr r0, _0805BDD4
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
b _0805BE78
|
|
.align 2, 0
|
|
_0805BDD0: .4byte gAvailablePokemonNames
|
|
_0805BDD4: .4byte gUnknown_80FD450
|
|
_0805BDD8:
|
|
movs r6, 0
|
|
b _0805BDDE
|
|
_0805BDDC:
|
|
adds r6, 0x1
|
|
_0805BDDE:
|
|
cmp r6, 0x1D
|
|
bgt _0805BE14
|
|
movs r0, 0
|
|
bl sub_803D970
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BDDC
|
|
cmp r8, r5
|
|
beq _0805BDDC
|
|
mov r0, r8
|
|
bl GetPokemonSize
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl GetPokemonSize
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _0805BDDC
|
|
_0805BE14:
|
|
cmp r6, 0x1E
|
|
beq _0805BE22
|
|
mov r1, r9
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r5
|
|
bne _0805BE34
|
|
_0805BE22:
|
|
ldr r0, _0805BE30
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _0805BE76
|
|
.align 2, 0
|
|
_0805BE30: .4byte gUnknown_80FD450
|
|
_0805BE34:
|
|
ldr r0, _0805BE58
|
|
adds r1, r5, 0
|
|
bl CopyCyanSpeciesNametoBuffer
|
|
ldr r0, _0805BE5C
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_806BB6C
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
b _0805BE76
|
|
.align 2, 0
|
|
_0805BE58: .4byte gUnknown_202DFE8
|
|
_0805BE5C: .4byte gUnknown_80FD434
|
|
_0805BE60:
|
|
ldr r0, _0805BE88
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0805BE8C
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
_0805BE76:
|
|
ldr r0, [sp]
|
|
_0805BE78:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BE88: .4byte gAvailablePokemonNames
|
|
_0805BE8C: .4byte gUnknown_80FD450
|
|
thumb_func_end TransferOrbAction
|
|
|
|
thumb_func_start sub_805BE90
|
|
sub_805BE90:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80779F0
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BE90
|
|
|
|
thumb_func_start LuminousOrbAction
|
|
LuminousOrbAction:
|
|
push {lr}
|
|
bl HandleLuminousOrbAction
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end LuminousOrbAction
|
|
|
|
thumb_func_start sub_805BEAC
|
|
sub_805BEAC:
|
|
push {lr}
|
|
bl sub_8076D10
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BEAC
|
|
|
|
thumb_func_start sub_805BEB8
|
|
sub_805BEB8:
|
|
push {lr}
|
|
movs r2, 0x8
|
|
bl sub_807DA14
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BEB8
|
|
|
|
thumb_func_start sub_805BEC8
|
|
sub_805BEC8:
|
|
push {lr}
|
|
bl sub_807D510
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BEC8
|
|
|
|
thumb_func_start EscapeOrbAction
|
|
EscapeOrbAction:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, _0805BF00
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r5, _0805BF04
|
|
ldr r0, [r5]
|
|
ldr r1, _0805BF08
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805BF10
|
|
ldr r0, _0805BF0C
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0805BF26
|
|
.align 2, 0
|
|
_0805BF00: .4byte gAvailablePokemonNames
|
|
_0805BF04: .4byte gDungeonGlobalData
|
|
_0805BF08: .4byte 0x0000066e
|
|
_0805BF0C: .4byte gUnknown_80FD4DC
|
|
_0805BF10:
|
|
ldr r0, _0805BF30
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
ldr r0, [r5]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
ldr r0, [r5]
|
|
strb r1, [r0, 0x11]
|
|
_0805BF26:
|
|
movs r0, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805BF30: .4byte gUnknown_80FD4C4
|
|
thumb_func_end EscapeOrbAction
|
|
|
|
thumb_func_start sub_805BF34
|
|
sub_805BF34:
|
|
push {lr}
|
|
bl sub_807DB74
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805BF34
|
|
|
|
thumb_func_start TrapbustOrbAction
|
|
TrapbustOrbAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
adds r0, r1, 0
|
|
bl GetMapTileForDungeonEntity_2
|
|
adds r4, r0, 0
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805BF78
|
|
ldr r0, _0805BF74
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x4]
|
|
bl SendMessage
|
|
movs r0, 0
|
|
b _0805C06A
|
|
.align 2, 0
|
|
_0805BF74: .4byte gUnknown_80FD1EC
|
|
_0805BF78:
|
|
ldrb r0, [r4, 0x9]
|
|
cmp r0, 0xFF
|
|
bne _0805BFAC
|
|
ldr r2, [sp, 0x8]
|
|
movs r3, 0x4
|
|
ldrsh r1, [r2, r3]
|
|
ldr r0, _0805BFA4
|
|
ldr r0, [r0]
|
|
ldr r4, _0805BFA8
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
subs r2, r1, r0
|
|
ldr r3, [sp, 0x8]
|
|
movs r4, 0x6
|
|
ldrsh r1, [r3, r4]
|
|
subs r1, r0
|
|
str r1, [sp, 0xC]
|
|
adds r1, r2, r0
|
|
mov r10, r1
|
|
ldr r3, [sp, 0xC]
|
|
adds r7, r3, r0
|
|
b _0805BFDA
|
|
.align 2, 0
|
|
_0805BFA4: .4byte gDungeonGlobalData
|
|
_0805BFA8: .4byte 0x00018209
|
|
_0805BFAC:
|
|
ldr r2, _0805C050
|
|
ldrb r1, [r4, 0x9]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _0805C054
|
|
adds r0, r4
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
subs r2, r0, 0x1
|
|
movs r3, 0x4
|
|
ldrsh r0, [r1, r3]
|
|
subs r0, 0x1
|
|
str r0, [sp, 0xC]
|
|
movs r4, 0x6
|
|
ldrsh r0, [r1, r4]
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
adds r7, r0, 0x1
|
|
_0805BFDA:
|
|
adds r6, r2, 0
|
|
cmp r6, r10
|
|
bgt _0805C034
|
|
_0805BFE0:
|
|
ldr r5, [sp, 0xC]
|
|
adds r4, r6, 0x1
|
|
mov r9, r4
|
|
cmp r5, r7
|
|
bgt _0805C02E
|
|
lsls r0, r6, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_0805BFF0:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapTile_2
|
|
ldr r4, [r0, 0x14]
|
|
cmp r4, 0
|
|
beq _0805C028
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0805C028
|
|
adds r0, r4, 0
|
|
bl GetTrapData
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
beq _0805C028
|
|
lsls r0, r5, 16
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
bl sub_807FE04
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x10]
|
|
_0805C028:
|
|
adds r5, 0x1
|
|
cmp r5, r7
|
|
ble _0805BFF0
|
|
_0805C02E:
|
|
mov r6, r9
|
|
cmp r6, r10
|
|
ble _0805BFE0
|
|
_0805C034:
|
|
ldr r3, [sp, 0x10]
|
|
cmp r3, 0
|
|
beq _0805C05C
|
|
ldr r0, _0805C058
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x8]
|
|
bl sub_80522F4
|
|
bl sub_8040A84
|
|
bl sub_8049ED4
|
|
b _0805C068
|
|
.align 2, 0
|
|
_0805C050: .4byte gDungeonGlobalData
|
|
_0805C054: .4byte 0x000104c4
|
|
_0805C058: .4byte gUnknown_80FD1B0
|
|
_0805C05C:
|
|
ldr r0, _0805C07C
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x8]
|
|
bl sub_80522F4
|
|
_0805C068:
|
|
ldr r0, [sp, 0x10]
|
|
_0805C06A:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C07C: .4byte gUnknown_80FD1CC
|
|
thumb_func_end TrapbustOrbAction
|
|
|
|
thumb_func_start sub_805C080
|
|
sub_805C080:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, [r5, 0x70]
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _0805C0AC
|
|
ldr r0, _0805C0A4
|
|
ldr r0, [r0]
|
|
ldr r1, _0805C0A8
|
|
adds r0, r1
|
|
movs r1, 0x10
|
|
b _0805C0BA
|
|
.align 2, 0
|
|
_0805C0A4: .4byte gDungeonGlobalData
|
|
_0805C0A8: .4byte 0x0001358c
|
|
_0805C0AC:
|
|
ldr r0, _0805C11C
|
|
ldr r0, [r0]
|
|
ldr r1, _0805C120
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
cmp r1, 0
|
|
beq _0805C0FA
|
|
_0805C0BA:
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
_0805C0BE:
|
|
ldr r4, [r6]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0805C0F2
|
|
cmp r5, r4
|
|
beq _0805C0F2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805C0F2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
adds r3, r5, 0x4
|
|
bl sub_807D148
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0805C0F2:
|
|
adds r6, 0x4
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bne _0805C0BE
|
|
_0805C0FA:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
bne _0805C10C
|
|
ldr r0, _0805C124
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_80522F4
|
|
_0805C10C:
|
|
mov r0, r8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C11C: .4byte gDungeonGlobalData
|
|
_0805C120: .4byte 0x0001357c
|
|
_0805C124: .4byte gUnknown_81004F0
|
|
thumb_func_end sub_805C080
|
|
|
|
thumb_func_start sub_805C128
|
|
sub_805C128:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
bl sub_807885C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C128
|
|
|
|
thumb_func_start sub_805C138
|
|
sub_805C138:
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x1C
|
|
mov r9, r0
|
|
mov r10, r1
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
movs r5, 0
|
|
add r0, sp, 0x18
|
|
strb r5, [r0]
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
bl sub_8057600
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _0805C1AC
|
|
add r1, sp, 0x18
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
str r5, [sp, 0x14]
|
|
mov r0, r9
|
|
mov r1, r10
|
|
movs r3, 0x1
|
|
bl sub_806F370
|
|
add r1, sp, 0x18
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805C194
|
|
movs r2, 0x1
|
|
_0805C194:
|
|
strb r2, [r1]
|
|
add r0, sp, 0x18
|
|
ldrb r0, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C1AC: .4byte 0x0000270f
|
|
thumb_func_end sub_805C138
|
|
|
|
thumb_func_start sub_805C1B0
|
|
sub_805C1B0:
|
|
push {lr}
|
|
bl sub_80790C8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805C1B0
|
|
|
|
thumb_func_start sub_805C1BC
|
|
sub_805C1BC:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _0805C1E0
|
|
movs r5, 0
|
|
ldrsh r4, [r4, r5]
|
|
str r3, [sp]
|
|
adds r3, r4, 0
|
|
bl sub_8055864
|
|
adds r1, r0, 0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0805C1E0: .4byte gUnknown_80F4F80
|
|
thumb_func_end sub_805C1BC
|
|
|
|
.align 2, 0
|