mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 06:57:18 -05:00
This decision was made to reduce the complexity of using .include whilst juggling with tools/scaninc and tools/preproc: - tools/scaninc doesn't apply the proper search rules for .include (it assumes #include behavior). In particular, it doesn't consider paths starting from $PWD, and doesn't scan the included files as a result. - .include had to be processed before #include by preproc in many cases, as code was being included that had to be preprocessed by CPP (think of #define). This contradicts standard GCC behavior. To make include paths consistent across the asm/ data/ and src/ directories, the following files were moved: - constants/ → include/asm/constants/ - asm/macros/ → include/asm/macros/ - asm/macros.inc → include/asm/macros.inc - include/macros/m4a.inc → include/asm/macros/m4a.inc As part of the necessary changes for this to work, the scaninc method in the makefile was improved to generate .d files that don't choke when files are missing.
26849 lines
412 KiB
ArmAsm
26849 lines
412 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8075BF4
|
|
sub_8075BF4:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r7, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075C0A
|
|
movs r0, 0
|
|
b _08075C52
|
|
_08075C0A:
|
|
ldr r6, [r5, 0x70]
|
|
adds r1, r6, 0
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08075C48
|
|
cmp r0, 0x1
|
|
beq _08075C44
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
cmp r4, 0x7F
|
|
beq _08075C3C
|
|
adds r0, r5, 0
|
|
movs r1, 0x2F
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075C3C
|
|
lsrs r0, r4, 31
|
|
adds r0, r4, r0
|
|
asrs r4, r0, 1
|
|
cmp r4, 0
|
|
bgt _08075C3C
|
|
movs r4, 0x1
|
|
_08075C3C:
|
|
adds r0, r6, 0
|
|
adds r0, 0xA9
|
|
strb r4, [r0]
|
|
b _08075C4A
|
|
_08075C44:
|
|
movs r7, 0x1
|
|
b _08075C4A
|
|
_08075C48:
|
|
movs r7, 0x2
|
|
_08075C4A:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
adds r0, r7, 0
|
|
_08075C52:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8075BF4
|
|
|
|
thumb_func_start sub_8075C58
|
|
sub_8075C58:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
adds r7, r5, 0
|
|
movs r2, 0x1
|
|
adds r3, r5, 0
|
|
bl sub_8075CFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075CEC
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08075C90
|
|
cmp r5, 0
|
|
beq _08075CEC
|
|
ldr r0, _08075C8C
|
|
b _08075CCE
|
|
.align 2, 0
|
|
_08075C8C: .4byte gUnknown_80FB380
|
|
_08075C90:
|
|
cmp r0, 0x5
|
|
bne _08075CA0
|
|
cmp r7, 0
|
|
beq _08075CEC
|
|
ldr r0, _08075C9C
|
|
b _08075CCE
|
|
.align 2, 0
|
|
_08075C9C: .4byte gUnknown_80FB384
|
|
_08075CA0:
|
|
adds r0, r4, 0
|
|
bl sub_8041AF4
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
bl sub_8075BF4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
cmp r5, 0x1
|
|
bne _08075CC8
|
|
ldr r0, _08075CC4
|
|
b _08075CCE
|
|
.align 2, 0
|
|
_08075CC4: .4byte gUnknown_80FB338
|
|
_08075CC8:
|
|
cmp r5, 0x2
|
|
bne _08075CE0
|
|
ldr r0, _08075CDC
|
|
_08075CCE:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08075CEC
|
|
.align 2, 0
|
|
_08075CDC: .4byte gUnknown_80FB35C
|
|
_08075CE0:
|
|
ldr r0, _08075CF8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08075CEC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08075CF8: .4byte gUnknown_80FB318
|
|
thumb_func_end sub_8075C58
|
|
|
|
thumb_func_start sub_8075CFC
|
|
sub_8075CFC:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
lsls r3, 24
|
|
lsrs r5, r3, 24
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075DAA
|
|
ldr r0, _08075D4C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r7, 0
|
|
beq _08075D34
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075DAA
|
|
_08075D34:
|
|
adds r0, r4, 0
|
|
movs r1, 0x11
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075D54
|
|
cmp r5, 0
|
|
beq _08075DAA
|
|
ldr r0, _08075D50
|
|
b _08075DA0
|
|
.align 2, 0
|
|
_08075D4C: .4byte gAvailablePokemonNames
|
|
_08075D50: .4byte gUnknown_80FCD54
|
|
_08075D54:
|
|
adds r0, r4, 0
|
|
movs r1, 0x36
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075D70
|
|
cmp r5, 0
|
|
beq _08075DAA
|
|
ldr r0, _08075D6C
|
|
b _08075DA0
|
|
.align 2, 0
|
|
_08075D6C: .4byte gUnknown_80FCD58
|
|
_08075D70:
|
|
adds r0, r4, 0
|
|
movs r1, 0x49
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075D8C
|
|
cmp r5, 0
|
|
beq _08075DAA
|
|
ldr r0, _08075D88
|
|
b _08075DA0
|
|
.align 2, 0
|
|
_08075D88: .4byte gUnknown_80FCD88
|
|
_08075D8C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075DB4
|
|
cmp r5, 0
|
|
beq _08075DAA
|
|
ldr r0, _08075DB0
|
|
_08075DA0:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08075DAA:
|
|
movs r0, 0x1
|
|
b _08075DB6
|
|
.align 2, 0
|
|
_08075DB0: .4byte gUnknown_80FD548
|
|
_08075DB4:
|
|
movs r0, 0
|
|
_08075DB6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8075CFC
|
|
|
|
thumb_func_start sub_8075DBC
|
|
sub_8075DBC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
movs r0, 0
|
|
mov r9, r0
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075CFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075E62
|
|
ldr r6, [r5, 0x70]
|
|
adds r4, r6, 0
|
|
adds r4, 0xA8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x2
|
|
beq _08075E50
|
|
adds r0, r5, 0
|
|
bl sub_8041EC8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x3
|
|
beq _08075E1A
|
|
adds r4, 0x1
|
|
mov r0, r8
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2F
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075E1E
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
strb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08075E1E
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
b _08075E1E
|
|
_08075E1A:
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08075E1E:
|
|
adds r1, r6, 0
|
|
adds r1, 0xA8
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08075E3C
|
|
ldr r0, _08075E38
|
|
b _08075E3E
|
|
.align 2, 0
|
|
_08075E38: .4byte gUnknown_80FB3CC
|
|
_08075E3C:
|
|
ldr r0, _08075E4C
|
|
_08075E3E:
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08075E5C
|
|
.align 2, 0
|
|
_08075E4C: .4byte gUnknown_80FB3A4
|
|
_08075E50:
|
|
ldr r0, _08075E70
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08075E5C:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08075E62:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08075E70: .4byte gUnknown_80FB3D0
|
|
thumb_func_end sub_8075DBC
|
|
|
|
thumb_func_start sub_8075E74
|
|
sub_8075E74:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
movs r0, 0
|
|
mov r9, r0
|
|
adds r0, r7, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_8075CFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075F22
|
|
ldr r6, [r5, 0x70]
|
|
adds r4, r6, 0
|
|
adds r4, 0xA8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x2
|
|
beq _08075F10
|
|
adds r0, r5, 0
|
|
bl sub_8041ED8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08075EB2
|
|
cmp r0, 0x4
|
|
bne _08075ED8
|
|
_08075EB2:
|
|
adds r4, r6, 0
|
|
adds r4, 0xA9
|
|
mov r0, r8
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2F
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08075EDC
|
|
ldrb r0, [r4]
|
|
lsrs r0, 1
|
|
strb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08075EDC
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
b _08075EDC
|
|
_08075ED8:
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08075EDC:
|
|
adds r1, r6, 0
|
|
adds r1, 0xA8
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08075EFC
|
|
ldr r0, _08075EF8
|
|
b _08075EFE
|
|
.align 2, 0
|
|
_08075EF8: .4byte gUnknown_80FB360
|
|
_08075EFC:
|
|
ldr r0, _08075F0C
|
|
_08075EFE:
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08075F1C
|
|
.align 2, 0
|
|
_08075F0C: .4byte gUnknown_80FB31C
|
|
_08075F10:
|
|
ldr r0, _08075F30
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08075F1C:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08075F22:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08075F30: .4byte gUnknown_80FB388
|
|
thumb_func_end sub_8075E74
|
|
|
|
thumb_func_start sub_8075F34
|
|
sub_8075F34:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075CFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08075FC2
|
|
ldr r2, [r4, 0x70]
|
|
adds r1, r2, 0
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08075F78
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA9
|
|
strb r6, [r0]
|
|
adds r0, r4, 0
|
|
bl nullsub_91
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
ldr r0, _08075F74
|
|
b _08075F9E
|
|
.align 2, 0
|
|
_08075F74: .4byte gUnknown_80FB3E0
|
|
_08075F78:
|
|
cmp r0, 0x1
|
|
beq _08075F84
|
|
cmp r0, 0x3
|
|
beq _08075F84
|
|
cmp r0, 0x5
|
|
bne _08075F8C
|
|
_08075F84:
|
|
ldr r0, _08075F88
|
|
b _08075F9E
|
|
.align 2, 0
|
|
_08075F88: .4byte gUnknown_80FB418
|
|
_08075F8C:
|
|
cmp r0, 0x2
|
|
bne _08075F98
|
|
ldr r0, _08075F94
|
|
b _08075F9E
|
|
.align 2, 0
|
|
_08075F94: .4byte gUnknown_80FB3F8
|
|
_08075F98:
|
|
cmp r0, 0x4
|
|
bne _08075FB0
|
|
ldr r0, _08075FAC
|
|
_08075F9E:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08075FBC
|
|
.align 2, 0
|
|
_08075FAC: .4byte gUnknown_80FB414
|
|
_08075FB0:
|
|
ldr r0, _08075FC8
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08075FBC:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08075FC2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08075FC8: .4byte gUnknown_80FB3E0
|
|
thumb_func_end sub_8075F34
|
|
|
|
thumb_func_start sub_8075FCC
|
|
sub_8075FCC:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
movs r7, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076086
|
|
ldr r5, [r4, 0x70]
|
|
adds r0, r5, 0
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _08075FF4
|
|
cmp r0, 0x5
|
|
beq _08075FF4
|
|
cmp r0, 0x3
|
|
bne _08075FF6
|
|
_08075FF4:
|
|
movs r7, 0x1
|
|
_08075FF6:
|
|
ldr r0, _08076060
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xA8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
beq _08076074
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _08076064
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xA9
|
|
strb r0, [r1]
|
|
ldr r0, _08076068
|
|
adds r1, r5, r0
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, 0x65
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041EE8
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
cmp r7, 0
|
|
beq _08076050
|
|
ldr r0, _0807606C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076050:
|
|
ldr r0, _08076070
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076080
|
|
.align 2, 0
|
|
_08076060: .4byte gAvailablePokemonNames
|
|
_08076064: .4byte gUnknown_80F4E7C
|
|
_08076068: .4byte 0x00000165
|
|
_0807606C: .4byte gUnknown_80FB41C
|
|
_08076070: .4byte gUnknown_80FB458
|
|
_08076074:
|
|
ldr r0, _0807608C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076080:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076086:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807608C: .4byte gUnknown_80FB43C
|
|
thumb_func_end sub_8075FCC
|
|
|
|
thumb_func_start sub_8076090
|
|
sub_8076090:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x1C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807613A
|
|
ldr r5, [r4, 0x70]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080760D0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, r9
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807613A
|
|
_080760D0:
|
|
ldr r0, _08076100
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
adds r1, r5, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08076110
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
adds r1, r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r0, 0xBD
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl nullsub_72
|
|
cmp r7, 0x1
|
|
bne _08076108
|
|
ldr r0, _08076104
|
|
b _08076116
|
|
.align 2, 0
|
|
_08076100: .4byte gAvailablePokemonNames
|
|
_08076104: .4byte gUnknown_80FB480
|
|
_08076108:
|
|
ldr r0, _0807610C
|
|
b _08076116
|
|
.align 2, 0
|
|
_0807610C: .4byte gUnknown_80FB4D4
|
|
_08076110:
|
|
cmp r7, 0x1
|
|
bne _08076128
|
|
ldr r0, _08076124
|
|
_08076116:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076134
|
|
.align 2, 0
|
|
_08076124: .4byte gUnknown_80FB4B0
|
|
_08076128:
|
|
ldr r0, _08076148
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076134:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807613A:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076148: .4byte gUnknown_80FB4F0
|
|
thumb_func_end sub_8076090
|
|
|
|
thumb_func_start sub_807614C
|
|
sub_807614C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076206
|
|
ldr r5, [r4, 0x70]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076206
|
|
adds r0, r4, 0
|
|
movs r1, 0x29
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080761A8
|
|
ldr r0, _080761A0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r7, 0
|
|
beq _08076206
|
|
ldr r0, _080761A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076206
|
|
.align 2, 0
|
|
_080761A0: .4byte gAvailablePokemonNames
|
|
_080761A4: .4byte gUnknown_80FCC4C
|
|
_080761A8:
|
|
ldr r0, _080761E8
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
adds r1, r5, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7
|
|
beq _080761F4
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
ldr r1, _080761EC
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041EF8
|
|
ldr r0, _080761F0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076200
|
|
.align 2, 0
|
|
_080761E8: .4byte gAvailablePokemonNames
|
|
_080761EC: .4byte gUnknown_80F4F00
|
|
_080761F0: .4byte gUnknown_80FB50C
|
|
_080761F4:
|
|
ldr r0, _0807620C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076200:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076206:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807620C: .4byte gUnknown_80FB52C
|
|
thumb_func_end sub_807614C
|
|
|
|
thumb_func_start sub_8076210
|
|
sub_8076210:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076238
|
|
b _080763DA
|
|
_08076238:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
mov r2, r10
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807624A
|
|
b _080763DA
|
|
_0807624A:
|
|
ldr r0, [r5, 0x70]
|
|
mov r8, r0
|
|
ldr r0, _08076274
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
adds r0, r5, 0
|
|
movs r1, 0x42
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807627C
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bne _0807626E
|
|
b _080763DA
|
|
_0807626E:
|
|
ldr r0, _08076278
|
|
b _080762CC
|
|
.align 2, 0
|
|
_08076274: .4byte gAvailablePokemonNames
|
|
_08076278: .4byte gUnknown_80FCE5C
|
|
_0807627C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807629C
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _08076292
|
|
b _080763DA
|
|
_08076292:
|
|
ldr r0, _08076298
|
|
b _080762CC
|
|
.align 2, 0
|
|
_08076298: .4byte gUnknown_80FCE84
|
|
_0807629C:
|
|
adds r0, r5, 0
|
|
bl GetMapEntityForDungeonEntity
|
|
ldrh r1, [r0]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
bne _080762E8
|
|
ldr r1, _080762D8
|
|
ldr r0, _080762DC
|
|
ldr r0, [r0]
|
|
ldr r3, _080762E0
|
|
adds r0, r3
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080762E8
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bne _080762CA
|
|
b _080763DA
|
|
_080762CA:
|
|
ldr r0, _080762E4
|
|
_080762CC:
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080763DA
|
|
.align 2, 0
|
|
_080762D8: .4byte gDungeonWaterType
|
|
_080762DC: .4byte gDungeonGlobalData
|
|
_080762E0: .4byte 0x00003a0e
|
|
_080762E4: .4byte gUnknown_80FEBBC
|
|
_080762E8:
|
|
movs r6, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08076338
|
|
movs r4, 0
|
|
strb r6, [r1]
|
|
ldr r1, _08076330
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAD
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0xAE
|
|
strb r4, [r0]
|
|
adds r0, 0x1
|
|
strb r4, [r0]
|
|
movs r6, 0
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08076322
|
|
adds r0, r5, 0
|
|
bl sub_8041C34
|
|
_08076322:
|
|
ldr r0, _08076334
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08076344
|
|
.align 2, 0
|
|
_08076330: .4byte gUnknown_80F4E30
|
|
_08076334: .4byte gUnknown_80FB548
|
|
_08076338:
|
|
ldr r0, _080763E8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08076344:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080763DA
|
|
cmp r6, 0
|
|
bne _080763DA
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r6, 0
|
|
_08076362:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
ldr r1, _080763EC
|
|
lsls r2, r6, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x10]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080763D4
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080763D4
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _080763B8
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
ldr r0, _080763F0
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _080763F4
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080763B8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807167C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080763D4
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
mov r3, r10
|
|
bl sub_8076210
|
|
_080763D4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08076362
|
|
_080763DA:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080763E8: .4byte gUnknown_80FB564
|
|
_080763EC: .4byte gAdjacentTileOffsets
|
|
_080763F0: .4byte gAvailablePokemonNames
|
|
_080763F4: .4byte gUnknown_80FF01C
|
|
thumb_func_end sub_8076210
|
|
|
|
thumb_func_start sub_80763F8
|
|
sub_80763F8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807641A
|
|
b _080765C0
|
|
_0807641A:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
mov r2, r10
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807642C
|
|
b _080765C0
|
|
_0807642C:
|
|
ldr r0, [r5, 0x70]
|
|
mov r8, r0
|
|
ldr r0, _08076454
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
adds r0, r5, 0
|
|
movs r1, 0x14
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807645C
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bne _08076450
|
|
b _080765C0
|
|
_08076450:
|
|
ldr r0, _08076458
|
|
b _080764A4
|
|
.align 2, 0
|
|
_08076454: .4byte gAvailablePokemonNames
|
|
_08076458: .4byte gUnknown_80FD524
|
|
_0807645C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x45
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807647C
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bne _08076472
|
|
b _080765C0
|
|
_08076472:
|
|
ldr r0, _08076478
|
|
b _080764A4
|
|
.align 2, 0
|
|
_08076478: .4byte gUnknown_80FCEB0
|
|
_0807647C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807649A
|
|
adds r0, r5, 0
|
|
movs r1, 0x11
|
|
bl HasType
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _080764B4
|
|
_0807649A:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _080764A2
|
|
b _080765C0
|
|
_080764A2:
|
|
ldr r0, _080764B0
|
|
_080764A4:
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080765C0
|
|
.align 2, 0
|
|
_080764B0: .4byte gUnknown_80FCEDC
|
|
_080764B4:
|
|
movs r6, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08076520
|
|
cmp r0, 0x2
|
|
beq _0807650C
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _08076504
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAD
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0xAE
|
|
strb r4, [r0]
|
|
adds r0, 0x1
|
|
strb r4, [r0]
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
bl sub_8041C6C
|
|
ldr r0, _08076508
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE94
|
|
b _0807652C
|
|
.align 2, 0
|
|
_08076504: .4byte gUnknown_80F4E34
|
|
_08076508: .4byte gUnknown_80FB598
|
|
_0807650C:
|
|
ldr r0, _0807651C
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807652C
|
|
.align 2, 0
|
|
_0807651C: .4byte gUnknown_80FB5D4
|
|
_08076520:
|
|
ldr r0, _080765D0
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807652C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080765BA
|
|
cmp r6, 0
|
|
bne _080765BA
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r6, 0
|
|
_08076544:
|
|
movs r3, 0x4
|
|
ldrsh r0, [r5, r3]
|
|
ldr r1, _080765D4
|
|
lsls r2, r6, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x10]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080765B4
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080765B4
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _0807659A
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
ldr r0, _080765D8
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _080765DC
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807659A:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807167C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080765B4
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
mov r2, r10
|
|
bl sub_80763F8
|
|
_080765B4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08076544
|
|
_080765BA:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080765C0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080765D0: .4byte gUnknown_80FB5F8
|
|
_080765D4: .4byte gAdjacentTileOffsets
|
|
_080765D8: .4byte gAvailablePokemonNames
|
|
_080765DC: .4byte gUnknown_80FF01C
|
|
thumb_func_end sub_80763F8
|
|
|
|
thumb_func_start sub_80765E0
|
|
sub_80765E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076602
|
|
b _08076790
|
|
_08076602:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
mov r2, r10
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076614
|
|
b _08076790
|
|
_08076614:
|
|
ldr r0, [r5, 0x70]
|
|
mov r8, r0
|
|
ldr r0, _0807663C
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
adds r0, r5, 0
|
|
movs r1, 0x14
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076644
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bne _08076638
|
|
b _08076790
|
|
_08076638:
|
|
ldr r0, _08076640
|
|
b _0807668C
|
|
.align 2, 0
|
|
_0807663C: .4byte gAvailablePokemonNames
|
|
_08076640: .4byte gUnknown_80FD524
|
|
_08076644:
|
|
adds r0, r5, 0
|
|
movs r1, 0x45
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076664
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bne _0807665A
|
|
b _08076790
|
|
_0807665A:
|
|
ldr r0, _08076660
|
|
b _0807668C
|
|
.align 2, 0
|
|
_08076660: .4byte gUnknown_80FCEB0
|
|
_08076664:
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076682
|
|
adds r0, r5, 0
|
|
movs r1, 0x11
|
|
bl HasType
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0807669C
|
|
_08076682:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _0807668A
|
|
b _08076790
|
|
_0807668A:
|
|
ldr r0, _08076698
|
|
_0807668C:
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08076790
|
|
.align 2, 0
|
|
_08076698: .4byte gUnknown_80FCEDC
|
|
_0807669C:
|
|
movs r6, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _080766F0
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r1, _080766E8
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAD
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0xAE
|
|
strb r4, [r0]
|
|
adds r0, 0x1
|
|
strb r4, [r0]
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
bl sub_8041C7C
|
|
ldr r0, _080766EC
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE94
|
|
b _080766FC
|
|
.align 2, 0
|
|
_080766E8: .4byte gUnknown_80F4E38
|
|
_080766EC: .4byte gUnknown_80FB5B4
|
|
_080766F0:
|
|
ldr r0, _080767A0
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080766FC:
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807678A
|
|
cmp r6, 0
|
|
bne _0807678A
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r6, 0
|
|
_08076714:
|
|
movs r3, 0x4
|
|
ldrsh r0, [r5, r3]
|
|
ldr r1, _080767A4
|
|
lsls r2, r6, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x10]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076784
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _08076784
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _0807676A
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
ldr r0, _080767A8
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _080767AC
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807676A:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807167C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08076784
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
mov r2, r10
|
|
bl sub_80765E0
|
|
_08076784:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08076714
|
|
_0807678A:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076790:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080767A0: .4byte gUnknown_80FB5F8
|
|
_080767A4: .4byte gAdjacentTileOffsets
|
|
_080767A8: .4byte gAvailablePokemonNames
|
|
_080767AC: .4byte gUnknown_80FF01C
|
|
thumb_func_end sub_80765E0
|
|
|
|
thumb_func_start sub_80767B0
|
|
sub_80767B0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
adds r6, r4, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080767CE
|
|
b _080768C8
|
|
_080767CE:
|
|
ldr r0, _0807680C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r7, [r5, 0x70]
|
|
adds r0, r7, 0
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080768C8
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080768C8
|
|
adds r0, r5, 0
|
|
movs r1, 0x41
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076814
|
|
cmp r4, 0
|
|
beq _080768C8
|
|
ldr r0, _08076810
|
|
b _0807685C
|
|
.align 2, 0
|
|
_0807680C: .4byte gAvailablePokemonNames
|
|
_08076810: .4byte gUnknown_80FCDE0
|
|
_08076814:
|
|
adds r0, r5, 0
|
|
movs r1, 0x6
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076830
|
|
cmp r4, 0
|
|
beq _080768C8
|
|
ldr r0, _0807682C
|
|
b _0807685C
|
|
.align 2, 0
|
|
_0807682C: .4byte gUnknown_80FCE00
|
|
_08076830:
|
|
adds r0, r5, 0
|
|
bl GetMapEntityForDungeonEntity
|
|
ldrh r1, [r0]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
bne _08076878
|
|
ldr r1, _08076868
|
|
ldr r0, _0807686C
|
|
ldr r0, [r0]
|
|
ldr r2, _08076870
|
|
adds r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08076878
|
|
cmp r6, 0
|
|
beq _080768C8
|
|
ldr r0, _08076874
|
|
_0807685C:
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080768C8
|
|
.align 2, 0
|
|
_08076868: .4byte gDungeonWaterType
|
|
_0807686C: .4byte gDungeonGlobalData
|
|
_08076870: .4byte 0x00003a0e
|
|
_08076874: .4byte gUnknown_80FCE34
|
|
_08076878:
|
|
adds r6, r7, 0
|
|
adds r6, 0xB0
|
|
ldrb r0, [r6]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08076892
|
|
adds r0, r7, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_08076892:
|
|
adds r0, r5, 0
|
|
bl sub_8041F08
|
|
movs r4, 0
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
ldr r1, _080768D4
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0xB9
|
|
strb r4, [r0]
|
|
ldr r0, _080768D8
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080768C8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080768D4: .4byte gUnknown_80F4E2C
|
|
_080768D8: .4byte gUnknown_80FB610
|
|
thumb_func_end sub_80767B0
|
|
|
|
thumb_func_start sub_80768DC
|
|
sub_80768DC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080769BE
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080769BE
|
|
ldr r6, [r5, 0x70]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB0
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0807692A
|
|
adds r0, r6, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
b _08076948
|
|
_0807692A:
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _08076948
|
|
ldr r0, _0807699C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _080769A0
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08076948:
|
|
ldr r0, _0807699C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xB0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7
|
|
beq _080769AC
|
|
movs r4, 0
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
ldr r1, _080769A4
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB9
|
|
strb r4, [r0]
|
|
subs r0, 0x5
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
bl nullsub_71
|
|
ldr r0, _080769A8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE94
|
|
b _080769B8
|
|
.align 2, 0
|
|
_0807699C: .4byte gAvailablePokemonNames
|
|
_080769A0: .4byte gUnknown_80FA844
|
|
_080769A4: .4byte gUnknown_80F4E58
|
|
_080769A8: .4byte gUnknown_80FB628
|
|
_080769AC:
|
|
ldr r0, _080769C8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080769B8:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080769BE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080769C8: .4byte gUnknown_80FB64C
|
|
thumb_func_end sub_80768DC
|
|
|
|
thumb_func_start sub_80769CC
|
|
sub_80769CC:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076A9A
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076A9A
|
|
ldr r6, [r5, 0x70]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB0
|
|
ldrb r1, [r0]
|
|
subs r0, r1, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08076A0C
|
|
adds r0, r6, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
b _08076A2A
|
|
_08076A0C:
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _08076A2A
|
|
ldr r0, _08076A78
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076A7C
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08076A2A:
|
|
ldr r0, _08076A78
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xB0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
beq _08076A88
|
|
movs r4, 0
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _08076A80
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r0, 0xB9
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
bl nullsub_70
|
|
ldr r0, _08076A84
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE94
|
|
b _08076A94
|
|
.align 2, 0
|
|
_08076A78: .4byte gAvailablePokemonNames
|
|
_08076A7C: .4byte gUnknown_80FA844
|
|
_08076A80: .4byte gUnknown_80F4E54
|
|
_08076A84: .4byte gUnknown_80FB668
|
|
_08076A88:
|
|
ldr r0, _08076AA0
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08076A94:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076A9A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076AA0: .4byte gUnknown_80FB688
|
|
thumb_func_end sub_80769CC
|
|
|
|
thumb_func_start sub_8076AA4
|
|
sub_8076AA4:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076B3A
|
|
ldr r1, [r5, 0x70]
|
|
adds r7, r1, 0
|
|
adds r6, r1, 0
|
|
adds r6, 0xB0
|
|
ldrb r0, [r6]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08076AD8
|
|
adds r0, r1, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_08076AD8:
|
|
ldr r0, _08076B1C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x5
|
|
beq _08076B28
|
|
movs r4, 0
|
|
movs r0, 0x5
|
|
strb r0, [r6]
|
|
ldr r1, _08076B20
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0xB9
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
bl nullsub_90
|
|
ldr r0, _08076B24
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08076B34
|
|
.align 2, 0
|
|
_08076B1C: .4byte gAvailablePokemonNames
|
|
_08076B20: .4byte gUnknown_80F4E60
|
|
_08076B24: .4byte gUnknown_80FB6A4
|
|
_08076B28:
|
|
ldr r0, _08076B44
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08076B34:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076B3A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076B44: .4byte gUnknown_80FB6C0
|
|
thumb_func_end sub_8076AA4
|
|
|
|
thumb_func_start sub_8076B48
|
|
sub_8076B48:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076B60
|
|
b _08076C9E
|
|
_08076B60:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0
|
|
beq _08076B74
|
|
b _08076C9E
|
|
_08076B74:
|
|
ldr r5, [r6, 0x70]
|
|
ldr r0, [r4, 0x70]
|
|
mov r8, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0xB0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08076C20
|
|
mov r2, r8
|
|
adds r2, 0xB0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3
|
|
beq _08076C20
|
|
cmp r0, 0x4
|
|
beq _08076C20
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
adds r1, 0x8
|
|
movs r0, 0x7F
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0xB9
|
|
strb r7, [r0]
|
|
movs r0, 0x4
|
|
strb r0, [r2]
|
|
ldr r1, _08076C0C
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0xB9
|
|
strb r7, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x9C
|
|
ldr r0, _08076C10
|
|
ldr r1, [r0]
|
|
ldr r0, _08076C14
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
mov r2, r8
|
|
adds r2, 0x9C
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl nullsub_69
|
|
ldr r0, _08076C18
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076C1C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE94
|
|
b _08076C98
|
|
.align 2, 0
|
|
_08076C0C: .4byte gUnknown_80F4E5C
|
|
_08076C10: .4byte gDungeonGlobalData
|
|
_08076C14: .4byte 0x000037f4
|
|
_08076C18: .4byte gAvailablePokemonNames
|
|
_08076C1C: .4byte gUnknown_80FB6D8
|
|
_08076C20:
|
|
adds r7, r5, 0
|
|
adds r7, 0xB0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x3
|
|
bne _08076C40
|
|
ldr r0, _08076CA8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076CAC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076C40:
|
|
mov r5, r8
|
|
adds r5, 0xB0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x3
|
|
bne _08076C60
|
|
ldr r0, _08076CA8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076CAC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076C60:
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x4
|
|
bne _08076C7C
|
|
ldr r0, _08076CA8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076CB0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076C7C:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x4
|
|
bne _08076C98
|
|
ldr r0, _08076CA8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076CB0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076C98:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076C9E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076CA8: .4byte gAvailablePokemonNames
|
|
_08076CAC: .4byte gUnknown_80FB6FC
|
|
_08076CB0: .4byte gUnknown_80FB718
|
|
thumb_func_end sub_8076B48
|
|
|
|
thumb_func_start sub_8076CB4
|
|
sub_8076CB4:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r5, 0
|
|
movs r6, 0
|
|
_08076CBC:
|
|
ldr r0, _08076D08
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08076D0C
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076CFA
|
|
ldr r1, [r4, 0x70]
|
|
adds r2, r1, 0
|
|
adds r2, 0x9C
|
|
ldr r0, [r2]
|
|
cmp r0, r7
|
|
bne _08076CF4
|
|
adds r1, 0xB0
|
|
ldrb r0, [r1]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08076CF2
|
|
strb r6, [r1]
|
|
_08076CF2:
|
|
str r6, [r2]
|
|
_08076CF4:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076CFA:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _08076CBC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076D08: .4byte gDungeonGlobalData
|
|
_08076D0C: .4byte 0x000135cc
|
|
thumb_func_end sub_8076CB4
|
|
|
|
thumb_func_start sub_8076D10
|
|
sub_8076D10:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076E0E
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076E0E
|
|
adds r0, r6, 0
|
|
bl sub_8041C08
|
|
ldr r4, [r6, 0x70]
|
|
adds r5, r4, 0
|
|
adds r5, 0xB0
|
|
ldrb r0, [r5]
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08076D54
|
|
adds r0, r4, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
_08076D54:
|
|
ldr r0, _08076D74
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x6
|
|
beq _08076DAC
|
|
movs r0, 0x6
|
|
strb r0, [r5]
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0
|
|
beq _08076D7C
|
|
ldr r1, _08076D78
|
|
b _08076D7E
|
|
.align 2, 0
|
|
_08076D74: .4byte gAvailablePokemonNames
|
|
_08076D78: .4byte gUnknown_80F4EBC
|
|
_08076D7C:
|
|
ldr r1, _08076DA4
|
|
_08076D7E:
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r4, 0
|
|
adds r1, 0xB8
|
|
strb r0, [r1]
|
|
adds r1, r4, 0
|
|
adds r1, 0xB9
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _08076DA8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08076DB8
|
|
.align 2, 0
|
|
_08076DA4: .4byte gUnknown_80F4EC0
|
|
_08076DA8: .4byte gUnknown_80FB7BC
|
|
_08076DAC:
|
|
ldr r0, _08076E14
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_08076DB8:
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0
|
|
beq _08076E08
|
|
movs r5, 0
|
|
movs r7, 0
|
|
_08076DC2:
|
|
ldr r0, _08076E18
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08076E1C
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076E02
|
|
ldr r1, [r4, 0x70]
|
|
adds r3, r1, 0
|
|
adds r3, 0x78
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
bne _08076E02
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldr r0, [r2]
|
|
cmp r0, r6
|
|
bne _08076E02
|
|
movs r0, 0x6
|
|
strb r0, [r3]
|
|
str r7, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
strh r7, [r0]
|
|
subs r0, 0x2
|
|
strb r7, [r0]
|
|
_08076E02:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08076DC2
|
|
_08076E08:
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076E0E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076E14: .4byte gUnknown_80FB7DC
|
|
_08076E18: .4byte gDungeonGlobalData
|
|
_08076E1C: .4byte 0x0001357c
|
|
thumb_func_end sub_8076D10
|
|
|
|
thumb_func_start sub_8076E20
|
|
sub_8076E20:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
mov r9, r3
|
|
ldr r0, [sp, 0x1C]
|
|
ldr r1, [sp, 0x20]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076E4C
|
|
b _08076F6E
|
|
_08076E4C:
|
|
cmp r5, 0
|
|
beq _08076E64
|
|
ldr r0, _08076E5C
|
|
ldr r1, _08076E60
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08076E6E
|
|
.align 2, 0
|
|
_08076E5C: .4byte gUnknown_202DE58
|
|
_08076E60: .4byte gUnknown_80FC0C8
|
|
_08076E64:
|
|
ldr r0, _08076EA0
|
|
ldr r1, _08076EA4
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08076E6E:
|
|
cmp r7, 0
|
|
beq _08076EE4
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
bl sub_8071728
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08076F6E
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076EB0
|
|
ldr r0, _08076EA8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076EAC
|
|
b _08076ECE
|
|
.align 2, 0
|
|
_08076EA0: .4byte gUnknown_202DE58
|
|
_08076EA4: .4byte gUnknown_80FC0B8
|
|
_08076EA8: .4byte gAvailablePokemonNames
|
|
_08076EAC: .4byte gUnknown_80FD550
|
|
_08076EB0:
|
|
adds r0, r4, 0
|
|
movs r1, 0x9
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08076EE4
|
|
cmp r5, 0
|
|
bne _08076EE4
|
|
ldr r0, _08076EDC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08076EE0
|
|
_08076ECE:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076F6E
|
|
.align 2, 0
|
|
_08076EDC: .4byte gAvailablePokemonNames
|
|
_08076EE0: .4byte gUnknown_80FCA60
|
|
_08076EE4:
|
|
ldr r7, [r4, 0x70]
|
|
ldr r0, _08076F0C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8041F28
|
|
mov r0, r9
|
|
cmp r0, 0x1
|
|
bne _08076F18
|
|
ldr r0, _08076F10
|
|
ldr r1, _08076F14
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08076F22
|
|
.align 2, 0
|
|
_08076F0C: .4byte gAvailablePokemonNames
|
|
_08076F10: .4byte gUnknown_202DEA8
|
|
_08076F14: .4byte gUnknown_80FC0E4
|
|
_08076F18:
|
|
ldr r0, _08076F50
|
|
ldr r1, _08076F54
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08076F22:
|
|
lsls r1, r5, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x1C
|
|
adds r1, r0, r1
|
|
movs r2, 0
|
|
ldrsh r3, [r1, r2]
|
|
mov r0, r9
|
|
subs r3, r0
|
|
cmp r3, 0
|
|
bge _08076F38
|
|
movs r3, 0
|
|
_08076F38:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
beq _08076F5C
|
|
strh r3, [r1]
|
|
ldr r0, _08076F58
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08076F68
|
|
.align 2, 0
|
|
_08076F50: .4byte gUnknown_202DEA8
|
|
_08076F54: .4byte gUnknown_80FC0D4
|
|
_08076F58: .4byte gUnknown_80FC15C
|
|
_08076F5C:
|
|
ldr r0, _08076F7C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08076F68:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08076F6E:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08076F7C: .4byte gUnknown_80FC274
|
|
thumb_func_end sub_8076E20
|
|
|
|
thumb_func_start sub_8076F80
|
|
sub_8076F80:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
mov r9, r3
|
|
ldr r0, [sp, 0x1C]
|
|
ldr r1, [sp, 0x20]
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077072
|
|
cmp r5, 0
|
|
beq _08076FC4
|
|
ldr r0, _08076FBC
|
|
ldr r1, _08076FC0
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08076FCE
|
|
.align 2, 0
|
|
_08076FBC: .4byte gUnknown_202DE58
|
|
_08076FC0: .4byte gUnknown_80FC0AC
|
|
_08076FC4:
|
|
ldr r0, _08077008
|
|
ldr r1, _0807700C
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08076FCE:
|
|
cmp r7, 0
|
|
beq _08076FE2
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
bl sub_8071728
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077072
|
|
_08076FE2:
|
|
ldr r7, [r4, 0x70]
|
|
ldr r0, _08077010
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8041F4C
|
|
mov r0, r9
|
|
cmp r0, 0x1
|
|
bne _0807701C
|
|
ldr r0, _08077014
|
|
ldr r1, _08077018
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08077026
|
|
.align 2, 0
|
|
_08077008: .4byte gUnknown_202DE58
|
|
_0807700C: .4byte gUnknown_80FC09C
|
|
_08077010: .4byte gAvailablePokemonNames
|
|
_08077014: .4byte gUnknown_202DEA8
|
|
_08077018: .4byte gUnknown_80FC0E4
|
|
_0807701C:
|
|
ldr r0, _08077054
|
|
ldr r1, _08077058
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08077026:
|
|
lsls r1, r5, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x20
|
|
adds r1, r0, r1
|
|
movs r2, 0
|
|
ldrsh r3, [r1, r2]
|
|
mov r0, r9
|
|
subs r3, r0
|
|
cmp r3, 0
|
|
bge _0807703C
|
|
movs r3, 0
|
|
_0807703C:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
beq _08077060
|
|
strh r3, [r1]
|
|
ldr r0, _0807705C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807706C
|
|
.align 2, 0
|
|
_08077054: .4byte gUnknown_202DEA8
|
|
_08077058: .4byte gUnknown_80FC0D4
|
|
_0807705C: .4byte gUnknown_80FC158
|
|
_08077060:
|
|
ldr r0, _08077080
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807706C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077072:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077080: .4byte gUnknown_80FC248
|
|
thumb_func_end sub_8076F80
|
|
|
|
thumb_func_start sub_8077084
|
|
sub_8077084:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077152
|
|
ldr r7, [r4, 0x70]
|
|
ldr r0, _080770C4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8041F70
|
|
cmp r5, 0
|
|
beq _080770D0
|
|
ldr r0, _080770C8
|
|
ldr r1, _080770CC
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _080770DA
|
|
.align 2, 0
|
|
_080770C4: .4byte gAvailablePokemonNames
|
|
_080770C8: .4byte gUnknown_202DE58
|
|
_080770CC: .4byte gUnknown_80FC0C8
|
|
_080770D0:
|
|
ldr r0, _080770EC
|
|
ldr r1, _080770F0
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_080770DA:
|
|
cmp r6, 0x1
|
|
bne _080770FC
|
|
ldr r0, _080770F4
|
|
ldr r1, _080770F8
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08077106
|
|
.align 2, 0
|
|
_080770EC: .4byte gUnknown_202DE58
|
|
_080770F0: .4byte gUnknown_80FC0B8
|
|
_080770F4: .4byte gUnknown_202DEA8
|
|
_080770F8: .4byte gUnknown_80FC0E4
|
|
_080770FC:
|
|
ldr r0, _08077134
|
|
ldr r1, _08077138
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08077106:
|
|
lsls r1, r5, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x1C
|
|
adds r1, r0, r1
|
|
movs r0, 0
|
|
ldrsh r3, [r1, r0]
|
|
adds r3, r6
|
|
cmp r3, 0x13
|
|
ble _0807711A
|
|
movs r3, 0x14
|
|
_0807711A:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
beq _08077140
|
|
strh r3, [r1]
|
|
ldr r0, _0807713C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807714C
|
|
.align 2, 0
|
|
_08077134: .4byte gUnknown_202DEA8
|
|
_08077138: .4byte gUnknown_80FC0D4
|
|
_0807713C: .4byte gUnknown_80FC13C
|
|
_08077140:
|
|
ldr r0, _0807715C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807714C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077152:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807715C: .4byte gUnknown_80FC270
|
|
thumb_func_end sub_8077084
|
|
|
|
thumb_func_start sub_8077160
|
|
sub_8077160:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807722E
|
|
ldr r7, [r4, 0x70]
|
|
ldr r0, _080771A0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8041F94
|
|
cmp r5, 0
|
|
beq _080771AC
|
|
ldr r0, _080771A4
|
|
ldr r1, _080771A8
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _080771B6
|
|
.align 2, 0
|
|
_080771A0: .4byte gAvailablePokemonNames
|
|
_080771A4: .4byte gUnknown_202DE58
|
|
_080771A8: .4byte gUnknown_80FC0AC
|
|
_080771AC:
|
|
ldr r0, _080771C8
|
|
ldr r1, _080771CC
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_080771B6:
|
|
cmp r6, 0x1
|
|
bne _080771D8
|
|
ldr r0, _080771D0
|
|
ldr r1, _080771D4
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _080771E2
|
|
.align 2, 0
|
|
_080771C8: .4byte gUnknown_202DE58
|
|
_080771CC: .4byte gUnknown_80FC09C
|
|
_080771D0: .4byte gUnknown_202DEA8
|
|
_080771D4: .4byte gUnknown_80FC0E4
|
|
_080771D8:
|
|
ldr r0, _08077210
|
|
ldr r1, _08077214
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_080771E2:
|
|
lsls r1, r5, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x20
|
|
adds r1, r0, r1
|
|
movs r0, 0
|
|
ldrsh r3, [r1, r0]
|
|
adds r3, r6
|
|
cmp r3, 0x13
|
|
ble _080771F6
|
|
movs r3, 0x14
|
|
_080771F6:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r3
|
|
beq _0807721C
|
|
strh r3, [r1]
|
|
ldr r0, _08077218
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077228
|
|
.align 2, 0
|
|
_08077210: .4byte gUnknown_202DEA8
|
|
_08077214: .4byte gUnknown_80FC0D4
|
|
_08077218: .4byte gUnknown_80FC138
|
|
_0807721C:
|
|
ldr r0, _08077238
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08077228:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807722E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077238: .4byte gUnknown_80FC21C
|
|
thumb_func_end sub_8077160
|
|
|
|
thumb_func_start GetFlashFireStatus
|
|
GetFlashFireStatus:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077258
|
|
adds r0, r4, 0
|
|
movs r1, 0x48
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807725C
|
|
_08077258:
|
|
movs r0, 0
|
|
b _0807726C
|
|
_0807725C:
|
|
ldr r0, [r4, 0x70]
|
|
movs r1, 0x28
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
bgt _0807726A
|
|
movs r0, 0x2
|
|
b _0807726C
|
|
_0807726A:
|
|
movs r0, 0x1
|
|
_0807726C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetFlashFireStatus
|
|
|
|
thumb_func_start sub_8077274
|
|
sub_8077274:
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080772B4
|
|
ldr r0, [r5, 0x70]
|
|
adds r4, r0, 0
|
|
ldr r0, _080772BC
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
movs r0, 0x28
|
|
ldrsh r1, [r4, r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x1
|
|
ble _0807729E
|
|
movs r1, 0x2
|
|
_0807729E:
|
|
movs r2, 0x28
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r1
|
|
beq _080772AE
|
|
strh r1, [r4, 0x28]
|
|
adds r0, r5, 0
|
|
bl sub_8041C58
|
|
_080772AE:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080772B4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080772BC: .4byte gAvailablePokemonNames
|
|
thumb_func_end sub_8077274
|
|
|
|
thumb_func_start sub_80772C0
|
|
sub_80772C0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x20]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080772E6
|
|
b _08077422
|
|
_080772E6:
|
|
cmp r4, 0
|
|
beq _08077300
|
|
ldr r0, _080772F8
|
|
ldr r1, _080772FC
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _0807730A
|
|
.align 2, 0
|
|
_080772F8: .4byte gUnknown_202DE58
|
|
_080772FC: .4byte gUnknown_80FC0C8
|
|
_08077300:
|
|
ldr r0, _08077340
|
|
ldr r1, _08077344
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_0807730A:
|
|
cmp r7, 0xFF
|
|
bgt _08077320
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8071728
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077320
|
|
b _08077422
|
|
_08077320:
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077350
|
|
cmp r7, 0xFF
|
|
bgt _08077350
|
|
ldr r0, _08077348
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807734C
|
|
b _08077376
|
|
.align 2, 0
|
|
_08077340: .4byte gUnknown_202DE58
|
|
_08077344: .4byte gUnknown_80FC0B8
|
|
_08077348: .4byte gAvailablePokemonNames
|
|
_0807734C: .4byte gUnknown_80FD550
|
|
_08077350:
|
|
adds r0, r5, 0
|
|
movs r1, 0x9
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807738C
|
|
cmp r4, 0
|
|
bne _0807738C
|
|
cmp r7, 0xFF
|
|
bgt _0807738C
|
|
cmp r6, 0
|
|
beq _08077422
|
|
ldr r0, _08077384
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08077388
|
|
_08077376:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08077422
|
|
.align 2, 0
|
|
_08077384: .4byte gAvailablePokemonNames
|
|
_08077388: .4byte gUnknown_80FCA60
|
|
_0807738C:
|
|
ldr r0, [r5, 0x70]
|
|
mov r8, r0
|
|
ldr r0, _080773B8
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
lsls r1, r4, 2
|
|
mov r0, r8
|
|
adds r0, 0x2C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r10, r0
|
|
adds r6, r1, 0
|
|
cmp r7, 0xFF
|
|
bgt _080773BC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8041FD8
|
|
b _080773C4
|
|
.align 2, 0
|
|
_080773B8: .4byte gAvailablePokemonNames
|
|
_080773BC:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8041FB4
|
|
_080773C4:
|
|
mov r0, r8
|
|
adds r0, 0x2C
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
adds r1, r7, 0
|
|
bl sub_8009DA4
|
|
str r0, [r4]
|
|
cmp r0, 0x1
|
|
bgt _080773DC
|
|
movs r0, 0x2
|
|
str r0, [r4]
|
|
_080773DC:
|
|
ldr r0, [r4]
|
|
ldr r1, _080773F0
|
|
cmp r0, r1
|
|
ble _080773E6
|
|
str r1, [r4]
|
|
_080773E6:
|
|
ldr r0, [r4]
|
|
cmp r10, r0
|
|
ble _080773F8
|
|
ldr r0, _080773F4
|
|
b _080773FE
|
|
.align 2, 0
|
|
_080773F0: .4byte 0x000063fd
|
|
_080773F4: .4byte gUnknown_80FC11C
|
|
_080773F8:
|
|
cmp r10, r0
|
|
bge _08077410
|
|
ldr r0, _0807740C
|
|
_080773FE:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807741C
|
|
.align 2, 0
|
|
_0807740C: .4byte gUnknown_80FC118
|
|
_08077410:
|
|
ldr r0, _08077430
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807741C:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077422:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077430: .4byte gUnknown_80FC184
|
|
thumb_func_end sub_80772C0
|
|
|
|
thumb_func_start sub_8077434
|
|
sub_8077434:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x20]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807752E
|
|
cmp r4, 0
|
|
beq _08077470
|
|
ldr r0, _08077468
|
|
ldr r1, _0807746C
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _0807747A
|
|
.align 2, 0
|
|
_08077468: .4byte gUnknown_202DE58
|
|
_0807746C: .4byte gUnknown_80FC0AC
|
|
_08077470:
|
|
ldr r0, _080774BC
|
|
ldr r1, _080774C0
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_0807747A:
|
|
mov r0, r8
|
|
cmp r0, 0xFF
|
|
bgt _08077490
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8071728
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807752E
|
|
_08077490:
|
|
ldr r7, [r5, 0x70]
|
|
ldr r0, _080774C4
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
lsls r1, r4, 2
|
|
adds r0, r7, 0
|
|
adds r0, 0x34
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r10, r0
|
|
adds r6, r1, 0
|
|
mov r0, r8
|
|
cmp r0, 0xFF
|
|
bgt _080774C8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_804201C
|
|
b _080774D0
|
|
.align 2, 0
|
|
_080774BC: .4byte gUnknown_202DE58
|
|
_080774C0: .4byte gUnknown_80FC09C
|
|
_080774C4: .4byte gAvailablePokemonNames
|
|
_080774C8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8041FFC
|
|
_080774D0:
|
|
adds r0, r7, 0
|
|
adds r0, 0x34
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
mov r1, r8
|
|
bl sub_8009DA4
|
|
str r0, [r4]
|
|
cmp r0, 0x1
|
|
bgt _080774E8
|
|
movs r0, 0x2
|
|
str r0, [r4]
|
|
_080774E8:
|
|
ldr r0, [r4]
|
|
ldr r1, _080774FC
|
|
cmp r0, r1
|
|
ble _080774F2
|
|
str r1, [r4]
|
|
_080774F2:
|
|
ldr r0, [r4]
|
|
cmp r10, r0
|
|
ble _08077504
|
|
ldr r0, _08077500
|
|
b _0807750A
|
|
.align 2, 0
|
|
_080774FC: .4byte 0x000063fd
|
|
_08077500: .4byte gUnknown_80FC114
|
|
_08077504:
|
|
cmp r10, r0
|
|
bge _0807751C
|
|
ldr r0, _08077518
|
|
_0807750A:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08077528
|
|
.align 2, 0
|
|
_08077518: .4byte gUnknown_80FC0FC
|
|
_0807751C:
|
|
ldr r0, _0807753C
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08077528:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807752E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807753C: .4byte gUnknown_80FC180
|
|
thumb_func_end sub_8077434
|
|
|
|
thumb_func_start sub_8077540
|
|
sub_8077540:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080775D2
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _08077578
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8042040
|
|
cmp r5, 0
|
|
beq _08077584
|
|
ldr r0, _0807757C
|
|
ldr r1, _08077580
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _0807758E
|
|
.align 2, 0
|
|
_08077578: .4byte gAvailablePokemonNames
|
|
_0807757C: .4byte gUnknown_202DE58
|
|
_08077580: .4byte gUnknown_80FC090
|
|
_08077584:
|
|
ldr r0, _080775B4
|
|
ldr r1, _080775B8
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_0807758E:
|
|
lsls r0, r5, 1
|
|
adds r1, r6, 0
|
|
adds r1, 0x24
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x13
|
|
bgt _080775C0
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1]
|
|
ldr r0, _080775BC
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080775CC
|
|
.align 2, 0
|
|
_080775B4: .4byte gUnknown_202DE58
|
|
_080775B8: .4byte gUnknown_80FC084
|
|
_080775BC: .4byte gUnknown_80FC1C4
|
|
_080775C0:
|
|
ldr r0, _080775D8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080775CC:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080775D2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080775D8: .4byte gUnknown_80FC218
|
|
thumb_func_end sub_8077540
|
|
|
|
thumb_func_start sub_80775DC
|
|
sub_80775DC:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r3, 24
|
|
lsrs r4, r3, 24
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080776B6
|
|
cmp r6, 0
|
|
beq _0807760C
|
|
ldr r0, _08077604
|
|
ldr r1, _08077608
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
b _08077616
|
|
.align 2, 0
|
|
_08077604: .4byte gUnknown_202DE58
|
|
_08077608: .4byte gUnknown_80FC090
|
|
_0807760C:
|
|
ldr r0, _08077654
|
|
ldr r1, _08077658
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_08077616:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_8071728
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080776B6
|
|
adds r0, r5, 0
|
|
movs r1, 0x1E
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077664
|
|
cmp r6, 0
|
|
bne _08077664
|
|
cmp r4, 0
|
|
beq _080776B6
|
|
ldr r0, _0807765C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08077660
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080776B6
|
|
.align 2, 0
|
|
_08077654: .4byte gUnknown_202DE58
|
|
_08077658: .4byte gUnknown_80FC084
|
|
_0807765C: .4byte gAvailablePokemonNames
|
|
_08077660: .4byte gUnknown_80FCA64
|
|
_08077664:
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _0807769C
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_8042060
|
|
lsls r0, r6, 1
|
|
adds r4, 0x24
|
|
adds r1, r4, r0
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080776A4
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1]
|
|
ldr r0, _080776A0
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080776B0
|
|
.align 2, 0
|
|
_0807769C: .4byte gAvailablePokemonNames
|
|
_080776A0: .4byte gUnknown_80FC1A4
|
|
_080776A4:
|
|
ldr r0, _080776BC
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080776B0:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080776B6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080776BC: .4byte gUnknown_80FC1F0
|
|
thumb_func_end sub_80775DC
|
|
|
|
thumb_func_start sub_80776C0
|
|
sub_80776C0:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077776
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077776
|
|
adds r0, r4, 0
|
|
movs r1, 0x1F
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077718
|
|
ldr r0, _08077710
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r6, 0
|
|
beq _08077776
|
|
ldr r0, _08077714
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077776
|
|
.align 2, 0
|
|
_08077710: .4byte gAvailablePokemonNames
|
|
_08077714: .4byte gUnknown_80FCC18
|
|
_08077718:
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _08077758
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08077764
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _0807775C
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_80420A0
|
|
ldr r0, _08077760
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077770
|
|
.align 2, 0
|
|
_08077758: .4byte gAvailablePokemonNames
|
|
_0807775C: .4byte gUnknown_80F4E3C
|
|
_08077760: .4byte gUnknown_80FB2E0
|
|
_08077764:
|
|
ldr r0, _0807777C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08077770:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077776:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807777C: .4byte gUnknown_80FB300
|
|
thumb_func_end sub_80776C0
|
|
|
|
thumb_func_start sub_8077780
|
|
sub_8077780:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080777A2
|
|
b _080778F0
|
|
_080777A2:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
mov r2, r10
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080777B4
|
|
b _080778F0
|
|
_080777B4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x16
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _080777EC
|
|
ldr r0, _080777E4
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _080777D6
|
|
b _080778F0
|
|
_080777D6:
|
|
ldr r0, _080777E8
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080778F0
|
|
.align 2, 0
|
|
_080777E4: .4byte gAvailablePokemonNames
|
|
_080777E8: .4byte gUnknown_80FCBF8
|
|
_080777EC:
|
|
movs r6, 0x1
|
|
ldr r1, [r5, 0x70]
|
|
mov r8, r1
|
|
ldr r0, _08077844
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r1, r8
|
|
adds r1, 0xAC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _08077850
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r1, _08077848
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
mov r1, r8
|
|
adds r1, 0xAD
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
adds r0, 0xAE
|
|
strb r4, [r0]
|
|
adds r0, 0x1
|
|
strb r4, [r0]
|
|
movs r6, 0
|
|
ldr r0, _0807784C
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
bl sub_8041C1C
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
b _0807785C
|
|
.align 2, 0
|
|
_08077844: .4byte gAvailablePokemonNames
|
|
_08077848: .4byte gUnknown_80F4E50
|
|
_0807784C: .4byte gUnknown_80FB2AC
|
|
_08077850:
|
|
ldr r0, _08077900
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807785C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x19
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080778EA
|
|
cmp r6, 0
|
|
bne _080778EA
|
|
movs r3, 0
|
|
mov r9, r3
|
|
movs r6, 0
|
|
_08077874:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
ldr r1, _08077904
|
|
lsls r2, r6, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x10]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080778E4
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080778E4
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bne _080778CA
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
ldr r0, _08077908
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument_2
|
|
ldr r0, _0807790C
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080778CA:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807167C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080778E4
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
mov r2, r10
|
|
bl sub_8077780
|
|
_080778E4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08077874
|
|
_080778EA:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080778F0:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077900: .4byte gUnknown_80FB2CC
|
|
_08077904: .4byte gAdjacentTileOffsets
|
|
_08077908: .4byte gAvailablePokemonNames
|
|
_0807790C: .4byte gUnknown_80FF01C
|
|
thumb_func_end sub_8077780
|
|
|
|
thumb_func_start sub_8077910
|
|
sub_8077910:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080779DE
|
|
cmp r4, 0
|
|
bne _08077940
|
|
ldr r1, _08077964
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r4, r0, 0x1
|
|
_08077940:
|
|
ldr r6, [r5, 0x70]
|
|
ldr r0, _08077968
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
adds r7, r0, 0
|
|
cmp r7, 0x4
|
|
bne _08077970
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _080779D8
|
|
ldr r0, _0807796C
|
|
b _0807799E
|
|
.align 2, 0
|
|
_08077964: .4byte gUnknown_80F4E40
|
|
_08077968: .4byte gAvailablePokemonNames
|
|
_0807796C: .4byte gUnknown_80FC2B8
|
|
_08077970:
|
|
movs r2, 0
|
|
movs r0, 0x84
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
b _08077988
|
|
_0807797A:
|
|
adds r2, 0x1
|
|
cmp r2, 0x4
|
|
bgt _08077990
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
adds r1, r0, r2
|
|
_08077988:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0807797A
|
|
strb r4, [r1]
|
|
_08077990:
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
adds r4, r0, 0
|
|
cmp r7, r4
|
|
bne _080779B0
|
|
ldr r0, _080779AC
|
|
_0807799E:
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080779D8
|
|
.align 2, 0
|
|
_080779AC: .4byte gUnknown_80FC298
|
|
_080779B0:
|
|
adds r0, r5, 0
|
|
bl sub_8041CB8
|
|
ldr r1, _080779EC
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r1, r6, 0
|
|
adds r1, 0xF8
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
strb r2, [r0]
|
|
_080779D8:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080779DE:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080779EC: .4byte gUnknown_80FA124
|
|
thumb_func_end sub_8077910
|
|
|
|
thumb_func_start sub_80779F0
|
|
sub_80779F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077AD0
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
mov r2, r9
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077AD0
|
|
ldr r7, [r5, 0x70]
|
|
ldr r0, _08077A48
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
str r0, [sp]
|
|
cmp r0, 0
|
|
bne _08077A50
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08077ACA
|
|
ldr r0, _08077A4C
|
|
b _08077AA2
|
|
.align 2, 0
|
|
_08077A48: .4byte gAvailablePokemonNames
|
|
_08077A4C: .4byte gUnknown_80FC2D8
|
|
_08077A50:
|
|
movs r0, 0
|
|
cmp r0, r8
|
|
bge _08077A8C
|
|
_08077A56:
|
|
movs r1, 0
|
|
adds r6, r0, 0x1
|
|
_08077A5A:
|
|
ldr r2, _08077A78
|
|
adds r0, r7, r2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08077A80
|
|
adds r0, r5, 0
|
|
ldr r1, _08077A7C
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _08077A86
|
|
.align 2, 0
|
|
_08077A78: .4byte 0x0000010d
|
|
_08077A7C: .4byte gUnknown_80F4E48
|
|
_08077A80:
|
|
adds r1, 0x1
|
|
cmp r1, 0x4
|
|
ble _08077A5A
|
|
_08077A86:
|
|
adds r0, r6, 0
|
|
cmp r0, r8
|
|
blt _08077A56
|
|
_08077A8C:
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
adds r4, r0, 0
|
|
ldr r0, [sp]
|
|
cmp r0, r4
|
|
bne _08077AB4
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _08077ACA
|
|
ldr r0, _08077AB0
|
|
_08077AA2:
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08077ACA
|
|
.align 2, 0
|
|
_08077AB0: .4byte gUnknown_80FC298
|
|
_08077AB4:
|
|
adds r0, r5, 0
|
|
bl sub_8041CCC
|
|
ldr r0, _08077AE0
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08077ACA:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077AD0:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077AE0: .4byte gUnknown_80FA124
|
|
thumb_func_end sub_80779F0
|
|
|
|
thumb_func_start sub_8077AE4
|
|
sub_8077AE4:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r7, r5, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077BAA
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077BAA
|
|
ldr r0, _08077B2C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
movs r1, 0x12
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077B34
|
|
cmp r5, 0
|
|
beq _08077BAA
|
|
ldr r0, _08077B30
|
|
b _08077B48
|
|
.align 2, 0
|
|
_08077B2C: .4byte gAvailablePokemonNames
|
|
_08077B30: .4byte gUnknown_80FD500
|
|
_08077B34:
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077B58
|
|
cmp r7, 0
|
|
beq _08077BAA
|
|
ldr r0, _08077B54
|
|
_08077B48:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077BAA
|
|
.align 2, 0
|
|
_08077B54: .4byte gUnknown_80FCDB4
|
|
_08077B58:
|
|
adds r0, r4, 0
|
|
bl sub_8041BE8
|
|
ldr r5, [r4, 0x70]
|
|
adds r1, r5, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
beq _08077B98
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _08077B90
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
ldr r0, _08077B94
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077BA4
|
|
.align 2, 0
|
|
_08077B90: .4byte gUnknown_80F4E4C
|
|
_08077B94: .4byte gUnknown_80FB25C
|
|
_08077B98:
|
|
ldr r0, _08077BB0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08077BA4:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077BAA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077BB0: .4byte gUnknown_80FB27C
|
|
thumb_func_end sub_8077AE4
|
|
|
|
thumb_func_start sub_8077BB4
|
|
sub_8077BB4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077C3A
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077C3A
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08077C1C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _08077C28
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r1, _08077C20
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041BF8
|
|
ldr r0, _08077C24
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077C34
|
|
.align 2, 0
|
|
_08077C1C: .4byte gAvailablePokemonNames
|
|
_08077C20: .4byte gUnknown_80F4ECC
|
|
_08077C24: .4byte gUnknown_80FB940
|
|
_08077C28:
|
|
ldr r0, _08077C40
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08077C34:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077C3A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077C40: .4byte gUnknown_80FB960
|
|
thumb_func_end sub_8077BB4
|
|
|
|
thumb_func_start HealTargetHP
|
|
HealTargetHP:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r9, r0
|
|
adds r5, r1, 0
|
|
mov r10, r2
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077C6E
|
|
b _08077DC8
|
|
_08077C6E:
|
|
ldr r4, [r5, 0x70]
|
|
movs r0, 0x10
|
|
ldrsh r7, [r4, r0]
|
|
movs r1, 0xE
|
|
ldrsh r6, [r4, r1]
|
|
ldrh r2, [r4, 0xE]
|
|
adds r0, r6, 0
|
|
ldrh r1, [r4, 0x10]
|
|
mov r12, r1
|
|
adds r1, r7, 0
|
|
cmp r0, r1
|
|
bne _08077C8C
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bgt _08077C92
|
|
_08077C8C:
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
bne _08077CD0
|
|
_08077C92:
|
|
ldrh r1, [r4, 0x10]
|
|
add r1, r8
|
|
strh r1, [r4, 0x10]
|
|
ldrh r0, [r4, 0xE]
|
|
add r0, r8
|
|
strh r0, [r4, 0xE]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r0, _08077CCC
|
|
cmp r1, r0
|
|
ble _08077CAA
|
|
strh r0, [r4, 0x10]
|
|
_08077CAA:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
movs r3, 0x10
|
|
ldrsh r2, [r4, r3]
|
|
ldrh r1, [r4, 0x10]
|
|
cmp r0, r2
|
|
ble _08077CBA
|
|
strh r1, [r4, 0xE]
|
|
_08077CBA:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r2
|
|
bne _08077CC4
|
|
adds r6, r0, 0
|
|
_08077CC4:
|
|
adds r0, r5, 0
|
|
bl sub_8041C94
|
|
b _08077CE8
|
|
.align 2, 0
|
|
_08077CCC: .4byte 0x000003e7
|
|
_08077CD0:
|
|
mov r3, r10
|
|
adds r0, r2, r3
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
ble _08077CE2
|
|
mov r0, r12
|
|
strh r0, [r4, 0xE]
|
|
_08077CE2:
|
|
adds r0, r5, 0
|
|
bl sub_8041CA8
|
|
_08077CE8:
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
subs r7, r0, r7
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
subs r6, r0, r6
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
ldr r0, _08077D1C
|
|
str r6, [r0]
|
|
str r7, [r0, 0x4]
|
|
ldr r0, _08077D20
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r6, 0
|
|
bne _08077D28
|
|
cmp r7, 0
|
|
bne _08077D28
|
|
ldr r3, [sp]
|
|
cmp r3, 0
|
|
beq _08077DC8
|
|
ldr r0, _08077D24
|
|
b _08077D3A
|
|
.align 2, 0
|
|
_08077D1C: .4byte gUnknown_202DE30
|
|
_08077D20: .4byte gAvailablePokemonNames
|
|
_08077D24: .4byte gUnknown_80FB204
|
|
_08077D28:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08077D4C
|
|
cmp r6, 0
|
|
bne _08077D4C
|
|
ldr r1, [sp]
|
|
cmp r1, 0
|
|
beq _08077DC8
|
|
ldr r0, _08077D48
|
|
_08077D3A:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08077DC8
|
|
.align 2, 0
|
|
_08077D48: .4byte gUnknown_80FB21C
|
|
_08077D4C:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
cmp r7, 0
|
|
beq _08077D6E
|
|
adds r0, r5, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077D62
|
|
mov r8, r7
|
|
_08077D62:
|
|
ldr r0, _08077DA0
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08077D6E:
|
|
cmp r6, 0
|
|
beq _08077DB4
|
|
adds r0, r5, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077D80
|
|
mov r8, r6
|
|
_08077D80:
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
beq _08077DB4
|
|
movs r0, 0x10
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _08077DA8
|
|
ldr r0, _08077DA4
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08077DB4
|
|
.align 2, 0
|
|
_08077DA0: .4byte gUnknown_80FB240
|
|
_08077DA4: .4byte gUnknown_80FB1E0
|
|
_08077DA8:
|
|
ldr r0, _08077DD8
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08077DB4:
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
beq _08077DC8
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_803ED30
|
|
_08077DC8:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077DD8: .4byte gUnknown_80FB1C4
|
|
thumb_func_end HealTargetHP
|
|
|
|
thumb_func_start sub_8077DDC
|
|
sub_8077DDC:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077E3C
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08077E0C
|
|
ldr r0, _08077E08
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077E3C
|
|
.align 2, 0
|
|
_08077E08: .4byte gUnknown_80FAEF0
|
|
_08077E0C:
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_75
|
|
ldr r0, _08077E44
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08077E48
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
bl sub_803F580
|
|
bl sub_8040A84
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077E3C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077E44: .4byte gAvailablePokemonNames
|
|
_08077E48: .4byte gUnknown_80FAEA0
|
|
thumb_func_end sub_8077DDC
|
|
|
|
thumb_func_start sub_8077E4C
|
|
sub_8077E4C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077EC0
|
|
bl sub_8043D10
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077E70
|
|
ldr r0, _08077E6C
|
|
b _08077E7E
|
|
.align 2, 0
|
|
_08077E6C: .4byte gUnknown_80FAF3C
|
|
_08077E70:
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08077E90
|
|
ldr r0, _08077E8C
|
|
_08077E7E:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077EC0
|
|
.align 2, 0
|
|
_08077E8C: .4byte gUnknown_80FAF1C
|
|
_08077E90:
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_76
|
|
ldr r0, _08077EC8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08077ECC
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
bl sub_803F580
|
|
bl sub_8040A84
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077EC0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077EC8: .4byte gAvailablePokemonNames
|
|
_08077ECC: .4byte gUnknown_80FAEC8
|
|
thumb_func_end sub_8077E4C
|
|
|
|
thumb_func_start sub_8077ED0
|
|
sub_8077ED0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08077F30
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08077F00
|
|
ldr r0, _08077EFC
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08077F30
|
|
.align 2, 0
|
|
_08077EFC: .4byte gUnknown_80FAFD0
|
|
_08077F00:
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_77
|
|
ldr r0, _08077F38
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08077F3C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0
|
|
bl sub_803F580
|
|
bl sub_8040A84
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08077F30:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08077F38: .4byte gAvailablePokemonNames
|
|
_08077F3C: .4byte gUnknown_80FAFAC
|
|
thumb_func_end sub_8077ED0
|
|
|
|
thumb_func_start sub_8077F40
|
|
sub_8077F40:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
mov r9, r6
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08077F62
|
|
b _08078068
|
|
_08077F62:
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
mov r10, r0
|
|
cmp r0, 0x1
|
|
beq _08077F70
|
|
b _08078068
|
|
_08077F70:
|
|
ldr r7, [r4, 0x70]
|
|
cmp r5, r4
|
|
bne _08077F88
|
|
cmp r6, 0
|
|
beq _08078068
|
|
ldr r0, _08077F84
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
b _08078022
|
|
.align 2, 0
|
|
_08077F84: .4byte gPtrCantLeechSeedSelfMessage
|
|
_08077F88:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
mov r2, r9
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08078068
|
|
ldr r0, _08077FC0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl HasType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
beq _08077FC8
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08078068
|
|
ldr r0, _08077FC4
|
|
b _0807801E
|
|
.align 2, 0
|
|
_08077FC0: .4byte gAvailablePokemonNames
|
|
_08077FC4: .4byte gPtrCantLeechSeedMonMessage
|
|
_08077FC8:
|
|
adds r6, r7, 0
|
|
adds r6, 0xD0
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _0807801C
|
|
cmp r0, 0x2
|
|
bne _08077FE2
|
|
ldr r0, _08078014
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08077FE2:
|
|
mov r1, r10
|
|
strb r1, [r6]
|
|
ldr r1, _08078018
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xD9
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0xDA
|
|
mov r6, r8
|
|
strb r6, [r0]
|
|
adds r0, r4, 0
|
|
bl nullsub_78
|
|
adds r1, r7, 0
|
|
adds r1, 0xD8
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r2, 0
|
|
adds r3, r1, 0
|
|
b _08078030
|
|
.align 2, 0
|
|
_08078014: .4byte gUnknown_80FAA8C
|
|
_08078018: .4byte gUnknown_80F4EB0
|
|
_0807801C:
|
|
ldr r0, _0807802C
|
|
_0807801E:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
_08078022:
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078068
|
|
.align 2, 0
|
|
_0807802C: .4byte gUnknown_80FAE7C
|
|
_08078030:
|
|
ldr r0, _08078078
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 2
|
|
ldr r6, _0807807C
|
|
adds r0, r6
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r5, r0
|
|
bne _08078050
|
|
strb r2, [r3]
|
|
ldr r0, [r5, 0x70]
|
|
adds r1, r7, 0
|
|
adds r1, 0xD4
|
|
adds r0, 0x98
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_08078050:
|
|
adds r2, 0x1
|
|
cmp r2, 0x13
|
|
ble _08078030
|
|
ldr r0, _08078080
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078068:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078078: .4byte gDungeonGlobalData
|
|
_0807807C: .4byte 0x000135cc
|
|
_08078080: .4byte gUnknown_80FAE58
|
|
thumb_func_end sub_8077F40
|
|
|
|
thumb_func_start sub_8078084
|
|
sub_8078084:
|
|
push {r4-r6,lr}
|
|
ldr r6, [r0, 0x70]
|
|
movs r5, 0
|
|
_0807808A:
|
|
ldr r0, _080780DC
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _080780E0
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080780D0
|
|
ldr r1, [r4, 0x70]
|
|
adds r3, r1, 0
|
|
adds r3, 0xD0
|
|
ldrb r0, [r3]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080780D0
|
|
adds r0, r1, 0
|
|
adds r0, 0xD4
|
|
adds r1, r6, 0
|
|
adds r1, 0x98
|
|
ldr r2, [r0]
|
|
ldr r0, [r1]
|
|
cmp r2, r0
|
|
bne _080780D0
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080780D0:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807808A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080780DC: .4byte gDungeonGlobalData
|
|
_080780E0: .4byte 0x000135cc
|
|
thumb_func_end sub_8078084
|
|
|
|
thumb_func_start sub_80780E4
|
|
sub_80780E4:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080781C4
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080781C4
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _080781C4
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _0807816C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r7, r6, 0
|
|
adds r7, 0xD0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x2
|
|
beq _08078178
|
|
cmp r0, 0x1
|
|
bne _08078134
|
|
ldr r0, _08078170
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08078134:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x2
|
|
strb r0, [r7]
|
|
ldr r1, _08078174
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xD9
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r0, 0xDA
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl nullsub_74
|
|
adds r1, r6, 0
|
|
adds r1, 0xD8
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r2, 0
|
|
adds r3, r1, 0
|
|
b _0807818C
|
|
.align 2, 0
|
|
_0807816C: .4byte gAvailablePokemonNames
|
|
_08078170: .4byte gUnknown_80FA79C
|
|
_08078174: .4byte gUnknown_80F4EF0
|
|
_08078178:
|
|
ldr r0, _08078188
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080781C4
|
|
.align 2, 0
|
|
_08078188: .4byte gUnknown_80FBB78
|
|
_0807818C:
|
|
ldr r0, _080781D0
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 2
|
|
ldr r7, _080781D4
|
|
adds r0, r7
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r5, r0
|
|
bne _080781AC
|
|
strb r2, [r3]
|
|
ldr r0, [r5, 0x70]
|
|
adds r1, r6, 0
|
|
adds r1, 0xD4
|
|
adds r0, 0x98
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_080781AC:
|
|
adds r2, 0x1
|
|
cmp r2, 0x13
|
|
ble _0807818C
|
|
ldr r0, _080781D8
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080781C4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080781D0: .4byte gDungeonGlobalData
|
|
_080781D4: .4byte 0x000135cc
|
|
_080781D8: .4byte gUnknown_80FBB4C
|
|
thumb_func_end sub_80780E4
|
|
|
|
thumb_func_start sub_80781DC
|
|
sub_80781DC:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078242
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08078228
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xDC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08078230
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r1, r6, 0x1
|
|
adds r0, r5, 0
|
|
adds r0, 0xDD
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8041CDC
|
|
ldr r0, _0807822C
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807823C
|
|
.align 2, 0
|
|
_08078228: .4byte gAvailablePokemonNames
|
|
_0807822C: .4byte gUnknown_80FB73C
|
|
_08078230:
|
|
ldr r0, _08078248
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807823C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078242:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078248: .4byte gUnknown_80FB764
|
|
thumb_func_end sub_80781DC
|
|
|
|
thumb_func_start sub_807824C
|
|
sub_807824C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r7, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080782C2
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080782C2
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _080782A8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xDC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
beq _080782B0
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
adds r1, r7, 0x1
|
|
adds r0, r5, 0
|
|
adds r0, 0xDD
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8041CEC
|
|
ldr r0, _080782AC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080782BC
|
|
.align 2, 0
|
|
_080782A8: .4byte gAvailablePokemonNames
|
|
_080782AC: .4byte gUnknown_80FB780
|
|
_080782B0:
|
|
ldr r0, _080782C8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080782BC:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080782C2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080782C8: .4byte gUnknown_80FB7A0
|
|
thumb_func_end sub_807824C
|
|
|
|
thumb_func_start sub_80782CC
|
|
sub_80782CC:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807833E
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08078320
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xDC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _0807832C
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r1, _08078324
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xDD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_79
|
|
ldr r0, _08078328
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078338
|
|
.align 2, 0
|
|
_08078320: .4byte gAvailablePokemonNames
|
|
_08078324: .4byte gUnknown_80F4EC4
|
|
_08078328: .4byte gUnknown_80FB8BC
|
|
_0807832C:
|
|
ldr r0, _08078344
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08078338:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807833E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078344: .4byte gUnknown_80FB8E4
|
|
thumb_func_end sub_80782CC
|
|
|
|
thumb_func_start sub_8078348
|
|
sub_8078348:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080783BA
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807839C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xDC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
beq _080783A8
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
ldr r1, _080783A0
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xDD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_80
|
|
ldr r0, _080783A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080783B4
|
|
.align 2, 0
|
|
_0807839C: .4byte gAvailablePokemonNames
|
|
_080783A0: .4byte gUnknown_80F4EC8
|
|
_080783A4: .4byte gUnknown_80FB900
|
|
_080783A8:
|
|
ldr r0, _080783C0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080783B4:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080783BA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080783C0: .4byte gUnknown_80FB924
|
|
thumb_func_end sub_8078348
|
|
|
|
thumb_func_start sub_80783C4
|
|
sub_80783C4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x18]
|
|
adds r0, r7, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080783E8
|
|
b _0807856A
|
|
_080783E8:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080783FA
|
|
b _0807856A
|
|
_080783FA:
|
|
ldr r4, [r7, 0x70]
|
|
ldr r0, _08078420
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r4, 0
|
|
adds r1, 0xC8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bne _08078428
|
|
ldr r0, _08078424
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _0807856A
|
|
.align 2, 0
|
|
_08078420: .4byte gAvailablePokemonNames
|
|
_08078424: .4byte gUnknown_80FB994
|
|
_08078428:
|
|
movs r6, 0
|
|
mov r8, r1
|
|
movs r0, 0xC9
|
|
adds r0, r4
|
|
mov r9, r0
|
|
movs r1, 0xCA
|
|
adds r1, r4
|
|
mov r10, r1
|
|
adds r2, r4, 0
|
|
adds r2, 0xCB
|
|
str r2, [sp, 0x1C]
|
|
adds r4, 0xCC
|
|
str r4, [sp, 0x20]
|
|
_08078442:
|
|
ldr r0, _0807857C
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r3, _08078580
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078480
|
|
cmp r7, r4
|
|
beq _08078480
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xC8
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _08078480
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807A5D0
|
|
movs r0, 0x2A
|
|
bl sub_803E46C
|
|
_08078480:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _08078442
|
|
adds r0, r7, 0
|
|
bl sub_8041D38
|
|
ldr r0, _08078584
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r4, r8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _080784A8
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0x2
|
|
bl sub_807A5D0
|
|
_080784A8:
|
|
movs r4, 0
|
|
movs r0, 0x2
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r0, [r5, 0x70]
|
|
ldrb r0, [r0, 0x6]
|
|
mov r2, r9
|
|
strb r0, [r2]
|
|
mov r3, sp
|
|
ldrb r0, [r3, 0x18]
|
|
mov r3, r10
|
|
strb r0, [r3]
|
|
ldr r1, _08078588
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
ldr r1, [sp, 0x1C]
|
|
strb r0, [r1]
|
|
ldr r2, [sp, 0x20]
|
|
strb r4, [r2]
|
|
adds r0, r7, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r7, 0
|
|
bl sub_806CCB4
|
|
ldr r0, _0807857C
|
|
ldr r0, [r0]
|
|
ldr r3, _0807858C
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _08078590
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
movs r6, 0
|
|
mov r8, r6
|
|
_08078502:
|
|
ldr r0, _0807857C
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r4, _08078580
|
|
adds r0, r4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r9, r0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807855E
|
|
mov r5, r9
|
|
ldr r4, [r5, 0x70]
|
|
adds r1, r4, 0
|
|
adds r1, 0x78
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
adds r0, 0x80
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
subs r0, 0x4
|
|
strh r1, [r0]
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0
|
|
bne _0807855E
|
|
mov r1, sp
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl MoveIfPossible
|
|
adds r1, r4, 0
|
|
adds r1, 0x44
|
|
mov r0, sp
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
_0807855E:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _08078502
|
|
adds r0, r7, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807856A:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807857C: .4byte gDungeonGlobalData
|
|
_08078580: .4byte 0x000135cc
|
|
_08078584: .4byte gAvailablePokemonNames
|
|
_08078588: .4byte gUnknown_80F4ED0
|
|
_0807858C: .4byte 0x000037fc
|
|
_08078590: .4byte gUnknown_80FB978
|
|
thumb_func_end sub_80783C4
|
|
|
|
thumb_func_start sub_8078594
|
|
sub_8078594:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807866E
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807866E
|
|
ldr r4, [r5, 0x70]
|
|
ldr r7, [r6, 0x70]
|
|
adds r0, r5, 0
|
|
movs r1, 0xE
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078640
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807866E
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_807A5D0
|
|
adds r0, r6, 0
|
|
bl sub_8041D48
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r4, 0xE]
|
|
cmp r0, 0
|
|
bne _080785F6
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
_080785F6:
|
|
adds r1, r7, 0
|
|
adds r1, 0xC8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _0807861C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08078634
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xCB
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_0807861C:
|
|
ldr r0, _08078638
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807863C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08078668
|
|
.align 2, 0
|
|
_08078634: .4byte gUnknown_80F4EA4
|
|
_08078638: .4byte gAvailablePokemonNames
|
|
_0807863C: .4byte gUnknown_80FB004
|
|
_08078640:
|
|
ldr r0, _08078674
|
|
ldr r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077084
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8077160
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80779F0
|
|
_08078668:
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807866E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078674: .4byte gUnknown_8106A4C
|
|
thumb_func_end sub_8078594
|
|
|
|
thumb_func_start sub_8078678
|
|
sub_8078678:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078732
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x3
|
|
bl sub_807A5D0
|
|
movs r5, 0
|
|
_0807869A:
|
|
ldr r0, _0807873C
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08078740
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080786C8
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0xC8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _080786C8
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807A5D0
|
|
_080786C8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807869A
|
|
adds r0, r6, 0
|
|
bl nullsub_81
|
|
ldr r5, [r6, 0x70]
|
|
mov r8, r5
|
|
adds r1, r5, 0
|
|
adds r1, 0xC8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08078700
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r1, _08078744
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xCB
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0xCC
|
|
strb r4, [r0]
|
|
_08078700:
|
|
ldr r0, _0807873C
|
|
ldr r1, [r0]
|
|
ldr r2, _08078748
|
|
adds r0, r1, r2
|
|
str r6, [r0]
|
|
ldr r0, _0807874C
|
|
adds r1, r0
|
|
mov r0, r8
|
|
adds r0, 0x98
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, _08078750
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08078754
|
|
ldr r2, [r0]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078732:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807873C: .4byte gDungeonGlobalData
|
|
_08078740: .4byte 0x000135cc
|
|
_08078744: .4byte gUnknown_80F4EA8
|
|
_08078748: .4byte 0x00017b30
|
|
_0807874C: .4byte 0x00017b3c
|
|
_08078750: .4byte gAvailablePokemonNames
|
|
_08078754: .4byte gUnknown_80FB01C
|
|
thumb_func_end sub_8078678
|
|
|
|
thumb_func_start sub_8078758
|
|
sub_8078758:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080787DA
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080787DA
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _080787BC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
beq _080787C8
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r1, _080787C0
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_73
|
|
ldr r0, _080787C4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080787D4
|
|
.align 2, 0
|
|
_080787BC: .4byte gAvailablePokemonNames
|
|
_080787C0: .4byte gUnknown_80F4ED8
|
|
_080787C4: .4byte gUnknown_80FB9F0
|
|
_080787C8:
|
|
ldr r0, _080787E0
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080787D4:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080787DA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080787E0: .4byte gUnknown_80FBA14
|
|
thumb_func_end sub_8078758
|
|
|
|
thumb_func_start sub_80787E4
|
|
sub_80787E4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078852
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _08078834
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
movs r0, 0x89
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x2
|
|
bhi _08078840
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
adds r0, r5, 0
|
|
bl sub_8041D5C
|
|
ldr r1, _08078838
|
|
ldrb r0, [r4]
|
|
str r0, [r1]
|
|
ldr r0, _0807883C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807884C
|
|
.align 2, 0
|
|
_08078834: .4byte gAvailablePokemonNames
|
|
_08078838: .4byte gUnknown_202DE30
|
|
_0807883C: .4byte gUnknown_80FBA38
|
|
_08078840:
|
|
ldr r0, _08078858
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807884C:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078852:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078858: .4byte gUnknown_80FBA60
|
|
thumb_func_end sub_80787E4
|
|
|
|
thumb_func_start sub_807885C
|
|
sub_807885C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080788DE
|
|
ldr r0, [r4, 0x70]
|
|
adds r7, r0, 0
|
|
adds r5, r7, 0
|
|
adds r5, 0xE4
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x2
|
|
bne _08078884
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A7C8
|
|
_08078884:
|
|
ldr r0, _080788C0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
beq _080788CC
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r1, _080788C4
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xE5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041D84
|
|
ldr r0, _080788C8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080788D8
|
|
.align 2, 0
|
|
_080788C0: .4byte gAvailablePokemonNames
|
|
_080788C4: .4byte gUnknown_80F4EE4
|
|
_080788C8: .4byte gUnknown_80FBA80
|
|
_080788CC:
|
|
ldr r0, _080788E4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080788D8:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080788DE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080788E4: .4byte gUnknown_80FBAA0
|
|
thumb_func_end sub_807885C
|
|
|
|
thumb_func_start sub_80788E8
|
|
sub_80788E8:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807895E
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807895E
|
|
adds r0, r5, 0
|
|
bl nullsub_82
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _08078940
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0xFD
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0807894C
|
|
ldr r1, _08078944
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
ldr r0, _08078948
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08078958
|
|
.align 2, 0
|
|
_08078940: .4byte gAvailablePokemonNames
|
|
_08078944: .4byte gUnknown_80F4EEC
|
|
_08078948: .4byte gUnknown_80FBB04
|
|
_0807894C:
|
|
ldr r0, _08078964
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08078958:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807895E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078964: .4byte gUnknown_80FBB28
|
|
thumb_func_end sub_80788E8
|
|
|
|
thumb_func_start sub_8078968
|
|
sub_8078968:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r5, [r4, 0x70]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078A4A
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08078A4A
|
|
movs r3, 0
|
|
ldr r0, _080789E8
|
|
mov r8, r0
|
|
movs r1, 0x1
|
|
mov r12, r1
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
movs r7, 0x10
|
|
_080789A2:
|
|
ldrb r1, [r2]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080789B4
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080789BC
|
|
_080789B4:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080789A2
|
|
_080789BC:
|
|
cmp r3, 0x4
|
|
bne _080789F0
|
|
movs r1, 0x9C
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080789F0
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _080789EC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078A4A
|
|
.align 2, 0
|
|
_080789E8: .4byte gAvailablePokemonNames
|
|
_080789EC: .4byte gUnknown_80FBBD4
|
|
_080789F0:
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xBC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
beq _08078A38
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r1, _08078A30
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xBD
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_83
|
|
ldr r0, _08078A34
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078A44
|
|
.align 2, 0
|
|
_08078A30: .4byte gUnknown_80F4EF4
|
|
_08078A34: .4byte gUnknown_80FBB94
|
|
_08078A38:
|
|
ldr r0, _08078A54
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08078A44:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078A4A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078A54: .4byte gUnknown_80FBBB8
|
|
thumb_func_end sub_8078968
|
|
|
|
thumb_func_start sub_8078A58
|
|
sub_8078A58:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
adds r5, r3, 0
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078B4A
|
|
ldr r4, [r6, 0x70]
|
|
cmp r5, 0
|
|
beq _08078AE0
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl sub_80943A0
|
|
ldr r2, [sp]
|
|
movs r0, 0xA0
|
|
lsls r0, 1
|
|
adds r5, r4, r0
|
|
ldr r7, [r5]
|
|
add r0, sp, 0x4
|
|
adds r1, r7, 0
|
|
bl sub_80942C0
|
|
ldr r2, [sp, 0x4]
|
|
str r2, [r5]
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r1, [r4]
|
|
add r0, sp, 0x8
|
|
bl sub_8094318
|
|
ldr r0, [sp, 0x8]
|
|
str r0, [r4]
|
|
ldr r0, _08078AD0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
ldr r0, [r5]
|
|
bl GetBellyRoundedUp
|
|
cmp r4, r0
|
|
beq _08078AD8
|
|
adds r0, r6, 0
|
|
bl sub_8041D9C
|
|
ldr r0, _08078AD4
|
|
b _08078B22
|
|
.align 2, 0
|
|
_08078AD0: .4byte gAvailablePokemonNames
|
|
_08078AD4: .4byte gUnknown_80FBD9C
|
|
_08078AD8:
|
|
ldr r0, _08078ADC
|
|
b _08078B22
|
|
.align 2, 0
|
|
_08078ADC: .4byte gUnknown_80FBE3C
|
|
_08078AE0:
|
|
add r0, sp, 0xC
|
|
adds r1, r7, 0
|
|
bl sub_80943A0
|
|
ldr r2, [sp, 0xC]
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r7, [r4]
|
|
add r0, sp, 0x10
|
|
adds r1, r7, 0
|
|
bl sub_80942C0
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [r4]
|
|
ldr r0, _08078B30
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
bl GetBellyRoundedUp
|
|
adds r5, r0, 0
|
|
ldr r0, [r4]
|
|
bl GetBellyRoundedUp
|
|
cmp r5, r0
|
|
beq _08078B38
|
|
adds r0, r6, 0
|
|
bl nullsub_84
|
|
ldr r0, _08078B34
|
|
_08078B22:
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08078B44
|
|
.align 2, 0
|
|
_08078B30: .4byte gAvailablePokemonNames
|
|
_08078B34: .4byte gUnknown_80FBD78
|
|
_08078B38:
|
|
ldr r0, _08078B58
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_08078B44:
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078B4A:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078B58: .4byte gUnknown_80FBE40
|
|
thumb_func_end sub_8078A58
|
|
|
|
thumb_func_start sub_8078B5C
|
|
sub_8078B5C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
mov r10, r2
|
|
str r3, [sp, 0x1C]
|
|
ldr r0, [sp, 0x48]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08078B86
|
|
b _08078D78
|
|
_08078B86:
|
|
ldr r7, [r6, 0x70]
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0
|
|
bne _08078BB8
|
|
adds r0, r6, 0
|
|
movs r1, 0x1B
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078BB8
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08078BA4
|
|
b _08078D78
|
|
_08078BA4:
|
|
ldr r0, _08078BB4
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08078D78
|
|
.align 2, 0
|
|
_08078BB4: .4byte gUnknown_80FBEA0
|
|
_08078BB8:
|
|
movs r5, 0
|
|
ldr r1, [sp, 0x1C]
|
|
cmp r1, 0
|
|
beq _08078BE8
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
bl GetBellyRoundedUp
|
|
cmp r4, r0
|
|
blt _08078BE0
|
|
movs r5, 0x1
|
|
_08078BE0:
|
|
ldr r0, _08078C8C
|
|
cmp r10, r0
|
|
bne _08078BE8
|
|
movs r5, 0x1
|
|
_08078BE8:
|
|
cmp r5, 0
|
|
beq _08078CC0
|
|
movs r0, 0xA0
|
|
lsls r0, 1
|
|
adds r5, r7, r0
|
|
ldr r1, [r5]
|
|
str r1, [sp, 0x20]
|
|
subs r0, 0x4
|
|
adds r0, r7
|
|
mov r10, r0
|
|
ldr r0, [r0]
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
ldr r0, [r5]
|
|
bl GetBellyRoundedUp
|
|
movs r1, 0
|
|
str r1, [sp, 0x24]
|
|
cmp r4, r0
|
|
bne _08078C16
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x24]
|
|
_08078C16:
|
|
mov r0, sp
|
|
ldr r1, [sp, 0x1C]
|
|
bl sub_80943A0
|
|
ldr r2, [sp]
|
|
ldr r1, [r5]
|
|
add r0, sp, 0x4
|
|
bl sub_8094268
|
|
ldr r4, [sp, 0x4]
|
|
str r4, [r5]
|
|
add r0, sp, 0x8
|
|
movs r1, 0xC8
|
|
bl sub_80943A0
|
|
ldr r2, [sp, 0x8]
|
|
add r0, sp, 0xC
|
|
adds r1, r4, 0
|
|
bl sub_8094318
|
|
ldr r0, [sp, 0xC]
|
|
str r0, [r5]
|
|
mov r1, r10
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0x24]
|
|
cmp r0, 0
|
|
bne _08078C5E
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08078C5E
|
|
ldr r0, _08078C90
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_08078C5E:
|
|
ldr r0, [sp, 0x20]
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
bl GetBellyRoundedUp
|
|
cmp r4, r0
|
|
bne _08078C9C
|
|
ldr r0, _08078C94
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08078D72
|
|
ldr r0, _08078C98
|
|
b _08078D4E
|
|
.align 2, 0
|
|
_08078C8C: .4byte 0x000003e7
|
|
_08078C90: .4byte gUnknown_80FBE64
|
|
_08078C94: .4byte gAvailablePokemonNames
|
|
_08078C98: .4byte gUnknown_80FBDF0
|
|
_08078C9C:
|
|
adds r0, r6, 0
|
|
bl sub_8041DB0
|
|
ldr r0, _08078CB8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08078D72
|
|
ldr r0, _08078CBC
|
|
b _08078D4E
|
|
.align 2, 0
|
|
_08078CB8: .4byte gAvailablePokemonNames
|
|
_08078CBC: .4byte gUnknown_80FBDC4
|
|
_08078CC0:
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r5, r7, r0
|
|
ldr r4, [r5]
|
|
add r0, sp, 0x10
|
|
mov r1, r10
|
|
bl sub_80943A0
|
|
ldr r2, [sp, 0x10]
|
|
ldr r1, [r5]
|
|
add r0, sp, 0x14
|
|
bl sub_8094268
|
|
ldr r1, [sp, 0x14]
|
|
str r1, [r5]
|
|
movs r0, 0xA0
|
|
lsls r0, 1
|
|
adds r7, r0
|
|
ldr r2, [r7]
|
|
add r0, sp, 0x18
|
|
bl sub_8094318
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [r5]
|
|
ldr r0, _08078D28
|
|
cmp r10, r0
|
|
bne _08078CFA
|
|
ldr r0, [r7]
|
|
str r0, [r5]
|
|
_08078CFA:
|
|
adds r0, r6, 0
|
|
bl nullsub_85
|
|
ldr r0, _08078D2C
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r4, 0
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
ldr r0, [r5]
|
|
bl GetBellyRoundedUp
|
|
cmp r4, r0
|
|
bne _08078D34
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08078D72
|
|
ldr r0, _08078D30
|
|
b _08078D4E
|
|
.align 2, 0
|
|
_08078D28: .4byte 0x000003e7
|
|
_08078D2C: .4byte gAvailablePokemonNames
|
|
_08078D30: .4byte gUnknown_80FBE14
|
|
_08078D34:
|
|
ldr r0, [r5]
|
|
bl GetBellyRoundedUp
|
|
adds r4, r0, 0
|
|
ldr r0, [r7]
|
|
bl GetBellyRoundedUp
|
|
cmp r4, r0
|
|
blt _08078D60
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08078D72
|
|
ldr r0, _08078D5C
|
|
_08078D4E:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08078D72
|
|
.align 2, 0
|
|
_08078D5C: .4byte gUnknown_80FBE64
|
|
_08078D60:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08078D72
|
|
ldr r0, _08078D88
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_08078D72:
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078D78:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078D88: .4byte gUnknown_80FBE84
|
|
thumb_func_end sub_8078B5C
|
|
|
|
thumb_func_start sub_8078D8C
|
|
sub_8078D8C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078E0E
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08078E0E
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _08078DF0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xEC
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08078DFC
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08078DF4
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xED
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_86
|
|
ldr r0, _08078DF8
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078E08
|
|
.align 2, 0
|
|
_08078DF0: .4byte gAvailablePokemonNames
|
|
_08078DF4: .4byte gUnknown_80F4F1C
|
|
_08078DF8: .4byte gUnknown_80FBF68
|
|
_08078DFC:
|
|
ldr r0, _08078E14
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08078E08:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078E0E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078E14: .4byte gUnknown_80FBF84
|
|
thumb_func_end sub_8078D8C
|
|
|
|
thumb_func_start sub_8078E18
|
|
sub_8078E18:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08078E48
|
|
add sp, r4
|
|
mov r10, r0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078F2E
|
|
ldr r7, [r5, 0x70]
|
|
adds r0, r7, 0
|
|
adds r0, 0xE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08078E50
|
|
ldr r0, _08078E4C
|
|
b _08078EC0
|
|
.align 2, 0
|
|
_08078E48: .4byte 0xfffffe00
|
|
_08078E4C: .4byte gUnknown_80FBF04
|
|
_08078E50:
|
|
ldr r0, _08078ECC
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
mov r0, sp
|
|
movs r1, 0
|
|
bl sub_803D870
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
beq _08078EBE
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r6, 0
|
|
_08078E6E:
|
|
mov r0, r8
|
|
bl DungeonRandomCapped
|
|
lsls r0, 3
|
|
add r0, sp
|
|
bl ExtractSpeciesIndex
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
bl sub_8069F54
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r1, 0x4
|
|
ldrsh r0, [r7, r1]
|
|
cmp r4, r0
|
|
beq _08078EAE
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078EAE
|
|
adds r0, r4, 0
|
|
bl sub_80687D0
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
bne _08078EB4
|
|
_08078EAE:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _08078E6E
|
|
_08078EB4:
|
|
cmp r6, 0x14
|
|
beq _08078EBE
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _08078ED4
|
|
_08078EBE:
|
|
ldr r0, _08078ED0
|
|
_08078EC0:
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08078F2E
|
|
.align 2, 0
|
|
_08078ECC: .4byte gAvailablePokemonNames
|
|
_08078ED0: .4byte gUnknown_80FBEE4
|
|
_08078ED4:
|
|
strh r4, [r7, 0x4]
|
|
mov r0, r9
|
|
str r0, [r5, 0x64]
|
|
adds r1, r7, 0
|
|
adds r1, 0xE4
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _08078F44
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xE5
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_806CF98
|
|
adds r0, r5, 0
|
|
bl nullsub_87
|
|
adds r0, r5, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl sub_806CCB4
|
|
ldr r0, _08078F48
|
|
movs r2, 0x4
|
|
ldrsh r1, [r7, r2]
|
|
bl CopyCyanSpeciesNametoBuffer
|
|
ldr r0, _08078F4C
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078F2E:
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078F44: .4byte gUnknown_80F4EFC
|
|
_08078F48: .4byte gUnknown_202DFE8
|
|
_08078F4C: .4byte gUnknown_80FBEC0
|
|
thumb_func_end sub_8078E18
|
|
|
|
thumb_func_start sub_8078F50
|
|
sub_8078F50:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08078FD2
|
|
ldr r0, [r4, 0x70]
|
|
adds r7, r0, 0
|
|
adds r5, r7, 0
|
|
adds r5, 0xE4
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x2
|
|
bne _08078F78
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A7C8
|
|
_08078F78:
|
|
ldr r0, _08078FB4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x3
|
|
beq _08078FC0
|
|
movs r0, 0x3
|
|
strb r0, [r5]
|
|
ldr r1, _08078FB8
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xE5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_88
|
|
ldr r0, _08078FBC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08078FCC
|
|
.align 2, 0
|
|
_08078FB4: .4byte gAvailablePokemonNames
|
|
_08078FB8: .4byte gUnknown_80F4F04
|
|
_08078FBC: .4byte gUnknown_80FBF28
|
|
_08078FC0:
|
|
ldr r0, _08078FD8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08078FCC:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08078FD2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078FD8: .4byte gUnknown_80FBF50
|
|
thumb_func_end sub_8078F50
|
|
|
|
thumb_func_start sub_8078FDC
|
|
sub_8078FDC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 16
|
|
asrs r7, r2, 16
|
|
mov r10, r7
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r9, r0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080790B6
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080790B6
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079064
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
movs r1, 0x26
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0xA
|
|
ble _0807902E
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x26]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0807902E:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0807904C
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_8041DD8
|
|
ldr r0, _08079068
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_0807904C:
|
|
adds r5, 0xF5
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08079070
|
|
ldr r0, _0807906C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080790B6
|
|
.align 2, 0
|
|
_08079064: .4byte gAvailablePokemonNames
|
|
_08079068: .4byte gUnknown_80FC000
|
|
_0807906C: .4byte gUnknown_80FBFB8
|
|
_08079070:
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bne _0807907E
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
bl sub_8041DD8
|
|
_0807907E:
|
|
adds r0, r4, 0
|
|
movs r1, 0xE
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080790A0
|
|
ldr r0, _0807909C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080790B0
|
|
.align 2, 0
|
|
_0807909C: .4byte gUnknown_80FBFD8
|
|
_080790A0:
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r0, _080790C4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080790B0:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080790B6:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080790C4: .4byte gUnknown_80FBF9C
|
|
thumb_func_end sub_8078FDC
|
|
|
|
thumb_func_start sub_80790C8
|
|
sub_80790C8:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079134
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079134
|
|
ldr r6, _0807911C
|
|
ldr r0, [r6]
|
|
ldr r1, _08079120
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08079128
|
|
adds r0, r4, 0
|
|
bl nullsub_89
|
|
ldr r0, [r6]
|
|
ldr r1, _08079120
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
ldr r0, _08079124
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079134
|
|
.align 2, 0
|
|
_0807911C: .4byte gDungeonGlobalData
|
|
_08079120: .4byte 0x00000676
|
|
_08079124: .4byte gUnknown_80FC028
|
|
_08079128:
|
|
ldr r0, _0807913C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079134:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807913C: .4byte gUnknown_80FC054
|
|
thumb_func_end sub_80790C8
|
|
|
|
thumb_func_start BlindTarget
|
|
BlindTarget:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080791CE
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080791CE
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _080791B0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xE8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _080791BC
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _080791B4
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xE9
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041E0C
|
|
ldr r0, _080791B8
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x31
|
|
bl sub_803E46C
|
|
bl sub_8049ED4
|
|
bl sub_8040A84
|
|
b _080791C8
|
|
.align 2, 0
|
|
_080791B0: .4byte gAvailablePokemonNames
|
|
_080791B4: .4byte gUnknown_80F4F08
|
|
_080791B8: .4byte gUnknown_80FB7F4
|
|
_080791BC:
|
|
ldr r0, _080791D4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080791C8:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080791CE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080791D4: .4byte gUnknown_80FB810
|
|
thumb_func_end BlindTarget
|
|
|
|
thumb_func_start sub_80791D8
|
|
sub_80791D8:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079266
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079266
|
|
ldr r7, [r4, 0x70]
|
|
ldr r0, _08079248
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r6, r7, 0
|
|
adds r6, 0xE8
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x2
|
|
beq _08079254
|
|
adds r0, r4, 0
|
|
bl sub_8041E1C
|
|
ldr r0, _0807924C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x2
|
|
strb r0, [r6]
|
|
ldr r1, _08079250
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r7, 0
|
|
adds r1, 0xE9
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_803F580
|
|
bl sub_8049ED4
|
|
bl sub_8040A84
|
|
b _08079260
|
|
.align 2, 0
|
|
_08079248: .4byte gAvailablePokemonNames
|
|
_0807924C: .4byte gUnknown_80FB834
|
|
_08079250: .4byte gUnknown_80F4F0C
|
|
_08079254:
|
|
ldr r0, _0807926C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079260:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079266:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807926C: .4byte gUnknown_80FB85C
|
|
thumb_func_end sub_80791D8
|
|
|
|
thumb_func_start RestoreVisionTarget
|
|
RestoreVisionTarget:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080792EE
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _080792D0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xE8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _080792DC
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r1, _080792D4
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xE9
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041E3C
|
|
ldr r0, _080792D8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r0, 0x31
|
|
bl sub_803E46C
|
|
bl sub_8049ED4
|
|
bl sub_8040A84
|
|
b _080792E8
|
|
.align 2, 0
|
|
_080792D0: .4byte gAvailablePokemonNames
|
|
_080792D4: .4byte gUnknown_80F4F10
|
|
_080792D8: .4byte gUnknown_80FB880
|
|
_080792DC:
|
|
ldr r0, _080792F4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080792E8:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080792EE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080792F4: .4byte gUnknown_80FB89C
|
|
thumb_func_end RestoreVisionTarget
|
|
|
|
thumb_func_start sub_80792F8
|
|
sub_80792F8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r10, r0
|
|
adds r6, r1, 0
|
|
mov r9, r2
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807939A
|
|
ldr r0, [r6, 0x70]
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
adds r5, r4, 0
|
|
movs r7, 0x3
|
|
_08079326:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807935E
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl GetMoveMaxPP
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r1, r0
|
|
bge _0807935E
|
|
ldr r0, [sp]
|
|
add r0, r9
|
|
str r0, [sp]
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r1, r0
|
|
ble _08079356
|
|
ldr r0, [sp, 0x4]
|
|
str r0, [sp]
|
|
_08079356:
|
|
ldr r0, [sp]
|
|
strb r0, [r4, 0x4]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0807935E:
|
|
adds r4, 0x8
|
|
adds r5, 0x8
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _08079326
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08079388
|
|
adds r0, r6, 0
|
|
bl sub_8041E4C
|
|
ldr r0, _08079384
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _08079394
|
|
.align 2, 0
|
|
_08079384: .4byte gUnknown_80FDBD0
|
|
_08079388:
|
|
ldr r0, _080793AC
|
|
ldr r2, [r0]
|
|
mov r0, r10
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_08079394:
|
|
adds r0, r6, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807939A:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080793AC: .4byte gUnknown_80FDBF0
|
|
thumb_func_end sub_80792F8
|
|
|
|
thumb_func_start sub_80793B0
|
|
sub_80793B0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079416
|
|
ldr r0, _080793FC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x14]
|
|
adds r2, r0, 0
|
|
adds r0, r2, r5
|
|
cmp r0, 0xFE
|
|
ble _080793DE
|
|
movs r0, 0xFF
|
|
_080793DE:
|
|
strb r0, [r1, 0x14]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, r0
|
|
bcs _08079404
|
|
adds r0, r4, 0
|
|
bl sub_8041E60
|
|
ldr r0, _08079400
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079410
|
|
.align 2, 0
|
|
_080793FC: .4byte gAvailablePokemonNames
|
|
_08079400: .4byte gUnknown_80FC33C
|
|
_08079404:
|
|
ldr r0, _0807941C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079410:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079416:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807941C: .4byte gUnknown_80FC360
|
|
thumb_func_end sub_80793B0
|
|
|
|
thumb_func_start sub_8079420
|
|
sub_8079420:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079486
|
|
ldr r0, _0807946C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x15]
|
|
adds r2, r0, 0
|
|
adds r0, r2, r5
|
|
cmp r0, 0xFE
|
|
ble _0807944E
|
|
movs r0, 0xFF
|
|
_0807944E:
|
|
strb r0, [r1, 0x15]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, r0
|
|
bcs _08079474
|
|
adds r0, r4, 0
|
|
bl sub_8041E74
|
|
ldr r0, _08079470
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079480
|
|
.align 2, 0
|
|
_0807946C: .4byte gAvailablePokemonNames
|
|
_08079470: .4byte gUnknown_80FC388
|
|
_08079474:
|
|
ldr r0, _0807948C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079480:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079486:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807948C: .4byte gUnknown_80FC3B4
|
|
thumb_func_end sub_8079420
|
|
|
|
thumb_func_start sub_8079490
|
|
sub_8079490:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080794F6
|
|
ldr r0, _080794DC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x16]
|
|
adds r2, r0, 0
|
|
adds r0, r2, r5
|
|
cmp r0, 0xFE
|
|
ble _080794BE
|
|
movs r0, 0xFF
|
|
_080794BE:
|
|
strb r0, [r1, 0x16]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, r0
|
|
bcs _080794E4
|
|
adds r0, r4, 0
|
|
bl sub_8041E84
|
|
ldr r0, _080794E0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080794F0
|
|
.align 2, 0
|
|
_080794DC: .4byte gAvailablePokemonNames
|
|
_080794E0: .4byte gUnknown_80FC3D8
|
|
_080794E4:
|
|
ldr r0, _080794FC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080794F0:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080794F6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080794FC: .4byte gUnknown_80FC3FC
|
|
thumb_func_end sub_8079490
|
|
|
|
thumb_func_start sub_8079500
|
|
sub_8079500:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079566
|
|
ldr r0, _0807954C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x17]
|
|
adds r2, r0, 0
|
|
adds r0, r2, r5
|
|
cmp r0, 0xFE
|
|
ble _0807952E
|
|
movs r0, 0xFF
|
|
_0807952E:
|
|
strb r0, [r1, 0x17]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r2, r0
|
|
bcs _08079554
|
|
adds r0, r4, 0
|
|
bl sub_8041E94
|
|
ldr r0, _08079550
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079560
|
|
.align 2, 0
|
|
_0807954C: .4byte gAvailablePokemonNames
|
|
_08079550: .4byte gUnknown_80FC428
|
|
_08079554:
|
|
ldr r0, _0807956C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079560:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079566:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807956C: .4byte gUnknown_80FC454
|
|
thumb_func_end sub_8079500
|
|
|
|
thumb_func_start sub_8079570
|
|
sub_8079570:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _080795A0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0xE0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
beq _080795A8
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8041EA4
|
|
ldr r0, _080795A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080795B4
|
|
.align 2, 0
|
|
_080795A0: .4byte gUnknown_202DFE8
|
|
_080795A4: .4byte gUnknown_80FD20C
|
|
_080795A8:
|
|
ldr r0, _080795C0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080795B4:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080795C0: .4byte gUnknown_80FD22C
|
|
thumb_func_end sub_8079570
|
|
|
|
thumb_func_start sub_80795C4
|
|
sub_80795C4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _080795F4
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0xE0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x2
|
|
beq _080795FC
|
|
movs r0, 0x2
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8041EB4
|
|
ldr r0, _080795F8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08079608
|
|
.align 2, 0
|
|
_080795F4: .4byte gUnknown_202DFE8
|
|
_080795F8: .4byte gUnknown_80FD254
|
|
_080795FC:
|
|
ldr r0, _08079614
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08079608:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079614: .4byte gUnknown_80FD27C
|
|
thumb_func_end sub_80795C4
|
|
|
|
thumb_func_start sub_8079618
|
|
sub_8079618:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
adds r7, r1, 0
|
|
mov r8, r3
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
adds r0, r7, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079638
|
|
b _08079752
|
|
_08079638:
|
|
ldr r5, [r7, 0x70]
|
|
ldr r0, _08079660
|
|
adds r1, r7, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xC0
|
|
ldrb r0, [r0]
|
|
cmp r0, r6
|
|
bne _08079668
|
|
cmp r6, 0xC
|
|
bne _08079668
|
|
ldr r0, _08079664
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _08079752
|
|
.align 2, 0
|
|
_08079660: .4byte gAvailablePokemonNames
|
|
_08079664: .4byte gUnknown_80FC074
|
|
_08079668:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC0
|
|
strb r6, [r0]
|
|
movs r4, 0
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
subs r2, r6, 0x7
|
|
b _0807968A
|
|
_0807967A:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
bgt _08079694
|
|
lsls r0, r4, 3
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r5, r0
|
|
_0807968A:
|
|
cmp r0, r8
|
|
bne _0807967A
|
|
adds r0, r5, 0
|
|
adds r0, 0xC2
|
|
strb r4, [r0]
|
|
_08079694:
|
|
movs r1, 0xA5
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r4, 0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080796B2
|
|
adds r0, r5, 0
|
|
adds r0, 0xFF
|
|
strb r1, [r0]
|
|
movs r4, 0x1
|
|
b _080796C6
|
|
_080796B2:
|
|
adds r0, r6, 0
|
|
subs r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080796C6
|
|
adds r1, r5, 0
|
|
adds r1, 0xFF
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
_080796C6:
|
|
cmp r6, 0x1
|
|
bne _080796E4
|
|
ldr r1, _08079718
|
|
adds r0, r7, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r2, r5, 0
|
|
adds r2, 0xC1
|
|
movs r1, 0
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
adds r0, 0xA0
|
|
str r1, [r0]
|
|
_080796E4:
|
|
cmp r6, 0xC
|
|
bne _080796FA
|
|
ldr r1, _0807971C
|
|
adds r0, r7, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC1
|
|
strb r0, [r1]
|
|
_080796FA:
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl sub_8041BD0
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0x1C]
|
|
bl sub_80522F4
|
|
adds r0, r7, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
movs r4, 0
|
|
ldr r6, _08079720
|
|
b _0807972C
|
|
.align 2, 0
|
|
_08079718: .4byte gUnknown_80F4E9C
|
|
_0807971C: .4byte gUnknown_80F4EA0
|
|
_08079720: .4byte 0x0000c7ff
|
|
_08079724:
|
|
movs r0, 0x53
|
|
bl sub_803E46C
|
|
adds r4, 0x1
|
|
_0807972C:
|
|
ldr r0, _08079760
|
|
cmp r4, r0
|
|
bgt _08079752
|
|
movs r1, 0x1
|
|
adds r0, r5, 0
|
|
adds r0, 0xFF
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807974E
|
|
movs r1, 0xBA
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
cmp r0, r6
|
|
ble _0807974E
|
|
movs r1, 0x1
|
|
_0807974E:
|
|
cmp r1, 0
|
|
beq _08079724
|
|
_08079752:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079760: .4byte 0x0000018f
|
|
thumb_func_end sub_8079618
|
|
|
|
thumb_func_start sub_8079764
|
|
sub_8079764:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807979A
|
|
ldr r2, [r4, 0x70]
|
|
adds r3, r2, 0
|
|
adds r3, 0xC0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
beq _08079794
|
|
cmp r0, 0xC
|
|
beq _08079794
|
|
movs r1, 0
|
|
strb r1, [r3]
|
|
movs r3, 0xA5
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0xFF
|
|
strb r1, [r0]
|
|
_08079794:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807979A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8079764
|
|
|
|
thumb_func_start sub_80797A0
|
|
sub_80797A0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079822
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _080797E0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r5, r6, 0
|
|
adds r5, 0xC4
|
|
ldrb r0, [r5]
|
|
cmp r0, r7
|
|
bne _080797E8
|
|
ldr r0, _080797E4
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079822
|
|
.align 2, 0
|
|
_080797E0: .4byte gAvailablePokemonNames
|
|
_080797E4: .4byte gUnknown_80FB10C
|
|
_080797E8:
|
|
adds r0, r4, 0
|
|
bl nullsub_57
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x4
|
|
beq _0807980A
|
|
cmp r0, 0xA
|
|
beq _0807980A
|
|
ldr r1, _0807982C
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
_0807980A:
|
|
adds r0, r6, 0
|
|
adds r0, 0xC4
|
|
strb r7, [r0]
|
|
ldr r0, _08079830
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079822:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807982C: .4byte gUnknown_80F4E98
|
|
_08079830: .4byte gUnknown_80FB0E0
|
|
thumb_func_end sub_80797A0
|
|
|
|
thumb_func_start sub_8079834
|
|
sub_8079834:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080798A6
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079888
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
beq _08079894
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r1, _0807988C
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_58
|
|
ldr r0, _08079890
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080798A0
|
|
.align 2, 0
|
|
_08079888: .4byte gAvailablePokemonNames
|
|
_0807988C: .4byte gUnknown_80F4E88
|
|
_08079890: .4byte gUnknown_80FB048
|
|
_08079894:
|
|
ldr r0, _080798AC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_080798A0:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_080798A6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080798AC: .4byte gUnknown_80FB074
|
|
thumb_func_end sub_8079834
|
|
|
|
thumb_func_start sub_80798B0
|
|
sub_80798B0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079922
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079904
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xE
|
|
beq _08079910
|
|
movs r0, 0xE
|
|
strb r0, [r1]
|
|
ldr r1, _08079908
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_59
|
|
ldr r0, _0807990C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807991C
|
|
.align 2, 0
|
|
_08079904: .4byte gAvailablePokemonNames
|
|
_08079908: .4byte gUnknown_80F4E8C
|
|
_0807990C: .4byte gUnknown_80FB09C
|
|
_08079910:
|
|
ldr r0, _08079928
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807991C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079922:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079928: .4byte gUnknown_80FB0C4
|
|
thumb_func_end sub_80798B0
|
|
|
|
thumb_func_start sub_807992C
|
|
sub_807992C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807999E
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079980
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
beq _0807998C
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
ldr r1, _08079984
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_8041B34
|
|
ldr r0, _08079988
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079998
|
|
.align 2, 0
|
|
_08079980: .4byte gAvailablePokemonNames
|
|
_08079984: .4byte gUnknown_80F4EB4
|
|
_08079988: .4byte gUnknown_80FAE1C
|
|
_0807998C:
|
|
ldr r0, _080799A4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079998:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807999E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080799A4: .4byte gUnknown_80FAE3C
|
|
thumb_func_end sub_807992C
|
|
|
|
thumb_func_start sub_80799A8
|
|
sub_80799A8:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079A1A
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _080799FC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
beq _08079A08
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
ldr r1, _08079A00
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_60
|
|
ldr r0, _08079A04
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079A14
|
|
.align 2, 0
|
|
_080799FC: .4byte gAvailablePokemonNames
|
|
_08079A00: .4byte gUnknown_80F4E90
|
|
_08079A04: .4byte gUnknown_80FAF5C
|
|
_08079A08:
|
|
ldr r0, _08079A20
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079A14:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079A1A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079A20: .4byte gUnknown_80FAF8C
|
|
thumb_func_end sub_80799A8
|
|
|
|
thumb_func_start sub_8079A24
|
|
sub_8079A24:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079A96
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079A78
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x3
|
|
beq _08079A84
|
|
movs r0, 0x3
|
|
strb r0, [r1]
|
|
ldr r1, _08079A7C
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_61
|
|
ldr r0, _08079A80
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079A90
|
|
.align 2, 0
|
|
_08079A78: .4byte gAvailablePokemonNames
|
|
_08079A7C: .4byte gUnknown_80F4E84
|
|
_08079A80: .4byte gUnknown_80FB130
|
|
_08079A84:
|
|
ldr r0, _08079A9C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079A90:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079A96:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079A9C: .4byte gUnknown_80FB160
|
|
thumb_func_end sub_8079A24
|
|
|
|
thumb_func_start sub_8079AA0
|
|
sub_8079AA0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079B12
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079AF4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
beq _08079B00
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _08079AF8
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_62
|
|
ldr r0, _08079AFC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079B0C
|
|
.align 2, 0
|
|
_08079AF4: .4byte gAvailablePokemonNames
|
|
_08079AF8: .4byte gUnknown_80F4E80
|
|
_08079AFC: .4byte gUnknown_80FB17C
|
|
_08079B00:
|
|
ldr r0, _08079B18
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079B0C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079B12:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079B18: .4byte gUnknown_80FB1A8
|
|
thumb_func_end sub_8079AA0
|
|
|
|
thumb_func_start sub_8079B1C
|
|
sub_8079B1C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079B98
|
|
adds r0, r4, 0
|
|
bl nullsub_63
|
|
ldr r5, [r4, 0x70]
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x7
|
|
beq _08079B7C
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
ldr r1, _08079B70
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
ldr r0, _08079B74
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08079B78
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079B92
|
|
.align 2, 0
|
|
_08079B70: .4byte gUnknown_80F4ED4
|
|
_08079B74: .4byte gAvailablePokemonNames
|
|
_08079B78: .4byte gUnknown_80FB9B0
|
|
_08079B7C:
|
|
ldr r0, _08079BA0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _08079BA4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079B92:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079B98:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079BA0: .4byte gAvailablePokemonNames
|
|
_08079BA4: .4byte gUnknown_80FB9D8
|
|
thumb_func_end sub_8079B1C
|
|
|
|
thumb_func_start sub_8079BA8
|
|
sub_8079BA8:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079C1A
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079BFC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x8
|
|
beq _08079C08
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r1, _08079C00
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_64
|
|
ldr r0, _08079C04
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079C14
|
|
.align 2, 0
|
|
_08079BFC: .4byte gAvailablePokemonNames
|
|
_08079C00: .4byte gUnknown_80F4EE8
|
|
_08079C04: .4byte gUnknown_80FBAC0
|
|
_08079C08:
|
|
ldr r0, _08079C20
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079C14:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079C1A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079C20: .4byte gUnknown_80FBAE4
|
|
thumb_func_end sub_8079BA8
|
|
|
|
thumb_func_start sub_8079C24
|
|
sub_8079C24:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079C96
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079C78
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x9
|
|
beq _08079C84
|
|
movs r0, 0x9
|
|
strb r0, [r1]
|
|
ldr r1, _08079C7C
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_65
|
|
ldr r0, _08079C80
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079C90
|
|
.align 2, 0
|
|
_08079C78: .4byte gAvailablePokemonNames
|
|
_08079C7C: .4byte gUnknown_80F4EF8
|
|
_08079C80: .4byte gUnknown_80FBBF0
|
|
_08079C84:
|
|
ldr r0, _08079C9C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079C90:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079C96:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079C9C: .4byte gUnknown_80FBC14
|
|
thumb_func_end sub_8079C24
|
|
|
|
thumb_func_start sub_8079CA0
|
|
sub_8079CA0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079D12
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079CF4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB
|
|
beq _08079D00
|
|
movs r0, 0xB
|
|
strb r0, [r1]
|
|
ldr r1, _08079CF8
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_66
|
|
ldr r0, _08079CFC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079D0C
|
|
.align 2, 0
|
|
_08079CF4: .4byte gAvailablePokemonNames
|
|
_08079CF8: .4byte gUnknown_80F4F18
|
|
_08079CFC: .4byte gUnknown_80FBC38
|
|
_08079D00:
|
|
ldr r0, _08079D18
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079D0C:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079D12:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079D18: .4byte gUnknown_80FBC5C
|
|
thumb_func_end sub_8079CA0
|
|
|
|
thumb_func_start sub_8079D1C
|
|
sub_8079D1C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079DAE
|
|
ldr r6, [r4, 0x70]
|
|
adds r0, r4, 0
|
|
movs r1, 0x25
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079D50
|
|
ldr r0, _08079D4C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079DAE
|
|
.align 2, 0
|
|
_08079D4C: .4byte gPtrForecastPreventsConversion2Message
|
|
_08079D50:
|
|
ldr r0, _08079D90
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r6, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xC
|
|
beq _08079D9C
|
|
movs r0, 0xC
|
|
strb r0, [r1]
|
|
ldr r1, _08079D94
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_67
|
|
ldr r0, _08079D98
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079DA8
|
|
.align 2, 0
|
|
_08079D90: .4byte gAvailablePokemonNames
|
|
_08079D94: .4byte gUnknown_80F4F20
|
|
_08079D98: .4byte gUnknown_80FBC7C
|
|
_08079D9C:
|
|
ldr r0, _08079DB4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079DA8:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079DAE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079DB4: .4byte gUnknown_80FBCA4
|
|
thumb_func_end sub_8079D1C
|
|
|
|
thumb_func_start sub_8079DB8
|
|
sub_8079DB8:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079E2A
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _08079E0C
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD
|
|
beq _08079E18
|
|
movs r0, 0xD
|
|
strb r0, [r1]
|
|
ldr r1, _08079E10
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0xC5
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl nullsub_68
|
|
ldr r0, _08079E14
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _08079E24
|
|
.align 2, 0
|
|
_08079E0C: .4byte gAvailablePokemonNames
|
|
_08079E10: .4byte gUnknown_80F4F24
|
|
_08079E14: .4byte gUnknown_80FBCC8
|
|
_08079E18:
|
|
ldr r0, _08079E30
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079E24:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079E2A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079E30: .4byte gUnknown_80FBCF0
|
|
thumb_func_end sub_8079DB8
|
|
|
|
thumb_func_start sub_8079E34
|
|
sub_8079E34:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r9, r2
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079F0E
|
|
ldr r0, [r5, 0x70]
|
|
mov r12, r0
|
|
movs r4, 0
|
|
movs r7, 0xA
|
|
_08079E5C:
|
|
lsls r2, r4, 1
|
|
mov r0, r12
|
|
adds r0, 0x1C
|
|
adds r1, r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xA
|
|
beq _08079E70
|
|
strh r7, [r1]
|
|
movs r6, 0x1
|
|
_08079E70:
|
|
mov r0, r12
|
|
adds r0, 0x20
|
|
adds r1, r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xA
|
|
beq _08079E82
|
|
strh r7, [r1]
|
|
movs r6, 0x1
|
|
_08079E82:
|
|
mov r0, r12
|
|
adds r0, 0x24
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xA
|
|
beq _08079E94
|
|
strh r7, [r1]
|
|
movs r6, 0x1
|
|
_08079E94:
|
|
lsls r3, r4, 2
|
|
mov r0, r12
|
|
adds r0, 0x2C
|
|
adds r1, r0, r3
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
cmp r0, r2
|
|
beq _08079EAA
|
|
str r2, [r1]
|
|
movs r6, 0x1
|
|
_08079EAA:
|
|
mov r0, r12
|
|
adds r0, 0x34
|
|
adds r1, r0, r3
|
|
ldr r0, [r1]
|
|
cmp r0, r2
|
|
beq _08079EBA
|
|
str r2, [r1]
|
|
movs r6, 0x1
|
|
_08079EBA:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _08079E5C
|
|
cmp r6, 0
|
|
beq _08079ECC
|
|
adds r0, r5, 0
|
|
bl sub_80420C8
|
|
b _08079ED8
|
|
_08079ECC:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
beq _08079ED8
|
|
adds r0, r5, 0
|
|
bl sub_80420C8
|
|
_08079ED8:
|
|
ldr r0, _08079EF4
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
cmp r6, 0
|
|
beq _08079EFC
|
|
ldr r0, _08079EF8
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _08079F08
|
|
.align 2, 0
|
|
_08079EF4: .4byte gAvailablePokemonNames
|
|
_08079EF8: .4byte gUnknown_80FBD18
|
|
_08079EFC:
|
|
ldr r0, _08079F1C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_08079F08:
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_08079F0E:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079F1C: .4byte gUnknown_80FBD3C
|
|
thumb_func_end sub_8079E34
|
|
|
|
thumb_func_start sub_8079F20
|
|
sub_8079F20:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r9, r0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079F50
|
|
b _0807A0B8
|
|
_08079F50:
|
|
ldr r7, [r4, 0x70]
|
|
adds r0, r4, 0
|
|
bl HasNegativeStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08079FF2
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807A124
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079F7C
|
|
b _0807A0B8
|
|
_08079F7C:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A290
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl SendImmobilizeEndMessage
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A400
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_807A5D0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A6C8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A734
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A888
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807A924
|
|
adds r1, r7, 0
|
|
adds r1, 0xFD
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08079FD8
|
|
mov r0, r9
|
|
strb r0, [r1]
|
|
ldr r0, _0807A08C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079FD8:
|
|
adds r1, r7, 0
|
|
adds r1, 0xF5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08079FF2
|
|
mov r2, r9
|
|
strb r2, [r1]
|
|
ldr r0, _0807A090
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_08079FF2:
|
|
adds r0, r4, 0
|
|
bl GetMovementSpeed
|
|
adds r6, r0, 0
|
|
movs r1, 0
|
|
movs r3, 0x4
|
|
ldr r2, _0807A094
|
|
adds r0, r7, r2
|
|
_0807A002:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0807A002
|
|
adds r0, r4, 0
|
|
bl GetMovementSpeed
|
|
cmp r6, r0
|
|
beq _0807A032
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r1, _0807A098
|
|
movs r2, 0x82
|
|
lsls r2, 1
|
|
adds r0, r7, r2
|
|
ldr r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807A032:
|
|
movs r6, 0x1
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
adds r2, r7, r0
|
|
movs r7, 0xFE
|
|
movs r3, 0x3
|
|
_0807A03E:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807A05E
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807A05E
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
mov r9, r0
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
_0807A05E:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0807A03E
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _0807A0A0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
beq _0807A078
|
|
adds r0, r4, 0
|
|
bl sub_80420C8
|
|
_0807A078:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _0807A0B2
|
|
ldr r0, _0807A09C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807A0B2
|
|
.align 2, 0
|
|
_0807A08C: .4byte gUnknown_8100594
|
|
_0807A090: .4byte gPtrExposedWoreOffMessage
|
|
_0807A094: .4byte 0x00000111
|
|
_0807A098: .4byte gUnknown_80FA124
|
|
_0807A09C: .4byte gPtrSealedMoveReleasedMessage
|
|
_0807A0A0:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _0807A0B2
|
|
ldr r0, _0807A0C8
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807A0B2:
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A0B8:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A0C8: .4byte gUnknown_81004E8
|
|
thumb_func_end sub_8079F20
|
|
|
|
thumb_func_start sub_807A0CC
|
|
sub_807A0CC:
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A11E
|
|
ldr r4, [r5, 0x70]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_806BFC0
|
|
adds r1, r4, 0
|
|
adds r1, 0xFD
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
subs r1, 0x8
|
|
strb r0, [r1]
|
|
movs r7, 0x1
|
|
movs r6, 0xFE
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
adds r2, r4, r0
|
|
movs r3, 0x3
|
|
_0807A0FE:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807A110
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
_0807A110:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0807A0FE
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A11E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A0CC
|
|
|
|
thumb_func_start sub_807A124
|
|
sub_807A124:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
movs r0, 0
|
|
mov r9, r0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807A14E
|
|
b _0807A27C
|
|
_0807A14E:
|
|
ldr r7, [r5, 0x70]
|
|
ldr r0, _0807A170
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bls _0807A166
|
|
b _0807A260
|
|
_0807A166:
|
|
lsls r0, 2
|
|
ldr r1, _0807A174
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A170: .4byte gAvailablePokemonNames
|
|
_0807A174: .4byte _0807A178
|
|
.align 2, 0
|
|
_0807A178:
|
|
.4byte _0807A260
|
|
.4byte _0807A194
|
|
.4byte _0807A1A0
|
|
.4byte _0807A1B4
|
|
.4byte _0807A228
|
|
.4byte _0807A1E8
|
|
.4byte _0807A260
|
|
_0807A194:
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
ldr r0, _0807A19C
|
|
b _0807A1A2
|
|
.align 2, 0
|
|
_0807A19C: .4byte gUnknown_80FA6E8
|
|
_0807A1A0:
|
|
ldr r0, _0807A1B0
|
|
_0807A1A2:
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807A260
|
|
.align 2, 0
|
|
_0807A1B0: .4byte gUnknown_80FA708
|
|
_0807A1B4:
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
ldr r0, _0807A1DC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0807A260
|
|
ldr r0, _0807A1E0
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r3, _0807A1E4
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_806F324
|
|
b _0807A260
|
|
.align 2, 0
|
|
_0807A1DC: .4byte gUnknown_80FA70C
|
|
_0807A1E0: .4byte gUnknown_80F4F78
|
|
_0807A1E4: .4byte 0x0000020f
|
|
_0807A1E8:
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
ldr r0, _0807A220
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
ldr r0, _0807A224
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0
|
|
bl HealTargetHP
|
|
adds r0, r7, 0
|
|
adds r0, 0xA8
|
|
strb r4, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8079F20
|
|
b _0807A260
|
|
.align 2, 0
|
|
_0807A220: .4byte gUnknown_80FA710
|
|
_0807A224: .4byte gUnknown_80F4F7A
|
|
_0807A228:
|
|
cmp r4, 0
|
|
beq _0807A254
|
|
adds r1, r7, 0
|
|
adds r1, 0xA8
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _0807A250
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_808417C
|
|
adds r2, r0, 0
|
|
adds r2, 0x1
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_8075C58
|
|
b _0807A27C
|
|
.align 2, 0
|
|
_0807A250: .4byte gUnknown_80F4F2C
|
|
_0807A254:
|
|
ldr r0, _0807A28C
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807A260:
|
|
adds r1, r7, 0
|
|
adds r1, 0xA8
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _0807A27C
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
_0807A27C:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A28C: .4byte gUnknown_80FA734
|
|
thumb_func_end sub_807A124
|
|
|
|
thumb_func_start sub_807A290
|
|
sub_807A290:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A31A
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _0807A2C4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
adds r0, 0xAC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _0807A30C
|
|
lsls r0, 2
|
|
ldr r1, _0807A2C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A2C4: .4byte gAvailablePokemonNames
|
|
_0807A2C8: .4byte _0807A2CC
|
|
.align 2, 0
|
|
_0807A2CC:
|
|
.4byte _0807A30C
|
|
.4byte _0807A300
|
|
.4byte _0807A2E4
|
|
.4byte _0807A2E4
|
|
.4byte _0807A2EC
|
|
.4byte _0807A30C
|
|
_0807A2E4:
|
|
ldr r0, _0807A2E8
|
|
b _0807A2EE
|
|
.align 2, 0
|
|
_0807A2E8: .4byte gUnknown_80FA8A8
|
|
_0807A2EC:
|
|
ldr r0, _0807A2FC
|
|
_0807A2EE:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807A30C
|
|
.align 2, 0
|
|
_0807A2FC: .4byte gUnknown_80FA868
|
|
_0807A300:
|
|
ldr r0, _0807A320
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807A30C:
|
|
adds r1, r6, 0
|
|
adds r1, 0xAC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A31A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A320: .4byte gUnknown_80FA888
|
|
thumb_func_end sub_807A290
|
|
|
|
thumb_func_start SendImmobilizeEndMessage
|
|
SendImmobilizeEndMessage:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r7, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A3F4
|
|
ldr r6, [r4, 0x70]
|
|
ldr r0, _0807A358
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _0807A3DC
|
|
lsls r0, 2
|
|
ldr r1, _0807A35C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A358: .4byte gAvailablePokemonNames
|
|
_0807A35C: .4byte _0807A360
|
|
.align 2, 0
|
|
_0807A360:
|
|
.4byte _0807A3DC
|
|
.4byte _0807A384
|
|
.4byte _0807A3A0
|
|
.4byte _0807A3B4
|
|
.4byte _0807A3B4
|
|
.4byte _0807A3A0
|
|
.4byte _0807A3D0
|
|
.4byte _0807A398
|
|
.4byte _0807A3DC
|
|
_0807A384:
|
|
ldr r0, _0807A394
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
movs r7, 0x1
|
|
b _0807A3DC
|
|
.align 2, 0
|
|
_0807A394: .4byte gUnknown_80FA8BC
|
|
_0807A398:
|
|
ldr r0, _0807A39C
|
|
b _0807A3A2
|
|
.align 2, 0
|
|
_0807A39C: .4byte gUnknown_80FA820
|
|
_0807A3A0:
|
|
ldr r0, _0807A3B0
|
|
_0807A3A2:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _0807A3DC
|
|
.align 2, 0
|
|
_0807A3B0: .4byte gUnknown_80FA824
|
|
_0807A3B4:
|
|
ldr r0, _0807A3CC
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r6, 0
|
|
adds r0, 0x9C
|
|
ldr r0, [r0]
|
|
bl sub_8076CB4
|
|
b _0807A3DC
|
|
.align 2, 0
|
|
_0807A3CC: .4byte gUnknown_80FA81C
|
|
_0807A3D0:
|
|
ldr r0, _0807A3FC
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
_0807A3DC:
|
|
adds r1, r6, 0
|
|
adds r1, 0xB0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
cmp r7, 0
|
|
beq _0807A3F4
|
|
adds r0, r4, 0
|
|
bl sub_8042A74
|
|
_0807A3F4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A3FC: .4byte gUnknown_80FABF8
|
|
thumb_func_end SendImmobilizeEndMessage
|
|
|
|
thumb_func_start sub_807A400
|
|
sub_807A400:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A4BC
|
|
ldr r6, [r5, 0x70]
|
|
ldr r0, _0807A434
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
adds r0, 0xBC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _0807A4A8
|
|
lsls r0, 2
|
|
ldr r1, _0807A438
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A434: .4byte gAvailablePokemonNames
|
|
_0807A438: .4byte _0807A43C
|
|
.align 2, 0
|
|
_0807A43C:
|
|
.4byte _0807A4A8
|
|
.4byte _0807A49C
|
|
.4byte _0807A460
|
|
.4byte _0807A478
|
|
.4byte _0807A468
|
|
.4byte _0807A470
|
|
.4byte _0807A488
|
|
.4byte _0807A480
|
|
.4byte _0807A4A8
|
|
_0807A460:
|
|
ldr r0, _0807A464
|
|
b _0807A48A
|
|
.align 2, 0
|
|
_0807A464: .4byte gUnknown_80FA800
|
|
_0807A468:
|
|
ldr r0, _0807A46C
|
|
b _0807A48A
|
|
.align 2, 0
|
|
_0807A46C: .4byte gUnknown_80FA97C
|
|
_0807A470:
|
|
ldr r0, _0807A474
|
|
b _0807A48A
|
|
.align 2, 0
|
|
_0807A474: .4byte gUnknown_80FA9DC
|
|
_0807A478:
|
|
ldr r0, _0807A47C
|
|
b _0807A48A
|
|
.align 2, 0
|
|
_0807A47C: .4byte gUnknown_80FAC38
|
|
_0807A480:
|
|
ldr r0, _0807A484
|
|
b _0807A48A
|
|
.align 2, 0
|
|
_0807A484: .4byte gUnknown_80FAB90
|
|
_0807A488:
|
|
ldr r0, _0807A498
|
|
_0807A48A:
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807A4A8
|
|
.align 2, 0
|
|
_0807A498: .4byte gUnknown_80FAAAC
|
|
_0807A49C:
|
|
ldr r0, _0807A4C4
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807A4A8:
|
|
adds r1, r6, 0
|
|
adds r1, 0xBC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
_0807A4BC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A4C4: .4byte gUnknown_80FAC18
|
|
thumb_func_end sub_807A400
|
|
|
|
thumb_func_start sub_807A4C8
|
|
sub_807A4C8:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807A4DA
|
|
b _0807A5C4
|
|
_0807A4DA:
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807A4FC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF
|
|
bhi _0807A5B6
|
|
lsls r0, 2
|
|
ldr r1, _0807A500
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A4FC: .4byte gAvailablePokemonNames
|
|
_0807A500: .4byte _0807A504
|
|
.align 2, 0
|
|
_0807A504:
|
|
.4byte _0807A5B6
|
|
.4byte _0807A544
|
|
.4byte _0807A54C
|
|
.4byte _0807A554
|
|
.4byte _0807A55C
|
|
.4byte _0807A564
|
|
.4byte _0807A56C
|
|
.4byte _0807A574
|
|
.4byte _0807A57C
|
|
.4byte _0807A584
|
|
.4byte _0807A55C
|
|
.4byte _0807A58C
|
|
.4byte _0807A594
|
|
.4byte _0807A59C
|
|
.4byte _0807A5AC
|
|
.4byte _0807A5B6
|
|
_0807A544:
|
|
ldr r0, _0807A548
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A548: .4byte gUnknown_80FA638
|
|
_0807A54C:
|
|
ldr r0, _0807A550
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A550: .4byte gUnknown_80FA69C
|
|
_0807A554:
|
|
ldr r0, _0807A558
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A558: .4byte gUnknown_80FA658
|
|
_0807A55C:
|
|
ldr r0, _0807A560
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A560: .4byte gUnknown_80FA67C
|
|
_0807A564:
|
|
ldr r0, _0807A568
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A568: .4byte gUnknown_80FA6BC
|
|
_0807A56C:
|
|
ldr r0, _0807A570
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A570: .4byte gUnknown_80FA6D4
|
|
_0807A574:
|
|
ldr r0, _0807A578
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A578: .4byte gUnknown_80FA9C0
|
|
_0807A57C:
|
|
ldr r0, _0807A580
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A580: .4byte gUnknown_80FAA68
|
|
_0807A584:
|
|
ldr r0, _0807A588
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A588: .4byte gUnknown_80FAAC8
|
|
_0807A58C:
|
|
ldr r0, _0807A590
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A590: .4byte gUnknown_80FAAE8
|
|
_0807A594:
|
|
ldr r0, _0807A598
|
|
b _0807A59E
|
|
.align 2, 0
|
|
_0807A598: .4byte gUnknown_80FAB08
|
|
_0807A59C:
|
|
ldr r0, _0807A5A8
|
|
_0807A59E:
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
b _0807A5B6
|
|
.align 2, 0
|
|
_0807A5A8: .4byte gUnknown_80FAB28
|
|
_0807A5AC:
|
|
ldr r0, _0807A5CC
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
_0807A5B6:
|
|
adds r1, r5, 0
|
|
adds r1, 0xC4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A5C4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A5CC: .4byte gUnknown_80FAB40
|
|
thumb_func_end sub_807A4C8
|
|
|
|
thumb_func_start sub_807A5D0
|
|
sub_807A5D0:
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A6B2
|
|
ldr r7, [r5, 0x70]
|
|
ldr r0, _0807A604
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r7, 0
|
|
adds r0, 0xC8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0807A6A4
|
|
lsls r0, 2
|
|
ldr r1, _0807A608
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A604: .4byte gAvailablePokemonNames
|
|
_0807A608: .4byte _0807A60C
|
|
.align 2, 0
|
|
_0807A60C:
|
|
.4byte _0807A6A4
|
|
.4byte _0807A620
|
|
.4byte _0807A668
|
|
.4byte _0807A634
|
|
.4byte _0807A6A4
|
|
_0807A620:
|
|
cmp r6, 0x1
|
|
beq _0807A6A4
|
|
ldr r0, _0807A630
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
b _0807A6A4
|
|
.align 2, 0
|
|
_0807A630: .4byte gUnknown_80FA7BC
|
|
_0807A634:
|
|
cmp r6, 0x3
|
|
beq _0807A642
|
|
ldr r0, _0807A658
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
_0807A642:
|
|
ldr r0, _0807A65C
|
|
ldr r0, [r0]
|
|
ldr r2, _0807A660
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
str r2, [r1]
|
|
ldr r1, _0807A664
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
b _0807A6A4
|
|
.align 2, 0
|
|
_0807A658: .4byte gUnknown_80FA7DC
|
|
_0807A65C: .4byte gDungeonGlobalData
|
|
_0807A660: .4byte 0x00017b30
|
|
_0807A664: .4byte 0x00017b3c
|
|
_0807A668:
|
|
adds r0, r7, 0
|
|
adds r0, 0xC8
|
|
movs r4, 0
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl sub_806CCB4
|
|
ldr r0, _0807A6B8
|
|
ldr r0, [r0]
|
|
ldr r2, _0807A6BC
|
|
adds r0, r2
|
|
strb r4, [r0]
|
|
cmp r6, 0x2
|
|
beq _0807A6A4
|
|
ldr r0, _0807A6C0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807A6C4
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
_0807A6A4:
|
|
adds r1, r7, 0
|
|
adds r1, 0xC8
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A6B2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A6B8: .4byte gDungeonGlobalData
|
|
_0807A6BC: .4byte 0x000037fc
|
|
_0807A6C0: .4byte gAvailablePokemonNames
|
|
_0807A6C4: .4byte gUnknown_80FA9A0
|
|
thumb_func_end sub_807A5D0
|
|
|
|
thumb_func_start sub_807A6C8
|
|
sub_807A6C8:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A72A
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807A6F8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xD0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0807A6FC
|
|
cmp r0, 0x1
|
|
ble _0807A716
|
|
cmp r0, 0x2
|
|
beq _0807A70C
|
|
b _0807A716
|
|
.align 2, 0
|
|
_0807A6F8: .4byte gAvailablePokemonNames
|
|
_0807A6FC:
|
|
ldr r0, _0807A708
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
b _0807A716
|
|
.align 2, 0
|
|
_0807A708: .4byte gUnknown_80FA79C
|
|
_0807A70C:
|
|
ldr r0, _0807A730
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
_0807A716:
|
|
adds r1, r5, 0
|
|
adds r1, 0xD0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r1, 0x8
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A72A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A730: .4byte gUnknown_80FAA8C
|
|
thumb_func_end sub_807A6C8
|
|
|
|
thumb_func_start sub_807A734
|
|
sub_807A734:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A7BC
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807A764
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xDC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _0807A7AE
|
|
lsls r0, 2
|
|
ldr r1, _0807A768
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A764: .4byte gAvailablePokemonNames
|
|
_0807A768: .4byte _0807A76C
|
|
.align 2, 0
|
|
_0807A76C:
|
|
.4byte _0807A7AE
|
|
.4byte _0807A784
|
|
.4byte _0807A78C
|
|
.4byte _0807A794
|
|
.4byte _0807A7A4
|
|
.4byte _0807A7AE
|
|
_0807A784:
|
|
ldr r0, _0807A788
|
|
b _0807A796
|
|
.align 2, 0
|
|
_0807A788: .4byte gUnknown_80FA8E0
|
|
_0807A78C:
|
|
ldr r0, _0807A790
|
|
b _0807A796
|
|
.align 2, 0
|
|
_0807A790: .4byte gUnknown_80FA90C
|
|
_0807A794:
|
|
ldr r0, _0807A7A0
|
|
_0807A796:
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
b _0807A7AE
|
|
.align 2, 0
|
|
_0807A7A0: .4byte gUnknown_80FA934
|
|
_0807A7A4:
|
|
ldr r0, _0807A7C4
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
_0807A7AE:
|
|
adds r1, r5, 0
|
|
adds r1, 0xDC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A7BC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A7C4: .4byte gUnknown_80FA95C
|
|
thumb_func_end sub_807A734
|
|
|
|
thumb_func_start sub_807A7C8
|
|
sub_807A7C8:
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A87E
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807A7FC
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0807A866
|
|
lsls r0, 2
|
|
ldr r1, _0807A800
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A7FC: .4byte gAvailablePokemonNames
|
|
_0807A800: .4byte _0807A804
|
|
.align 2, 0
|
|
_0807A804:
|
|
.4byte _0807A866
|
|
.4byte _0807A818
|
|
.4byte _0807A834
|
|
.4byte _0807A824
|
|
.4byte _0807A866
|
|
_0807A818:
|
|
movs r6, 0x1
|
|
ldr r0, _0807A820
|
|
b _0807A826
|
|
.align 2, 0
|
|
_0807A820: .4byte gUnknown_80FA9F4
|
|
_0807A824:
|
|
ldr r0, _0807A830
|
|
_0807A826:
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
b _0807A866
|
|
.align 2, 0
|
|
_0807A830: .4byte gUnknown_80FABBC
|
|
_0807A834:
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_8069F54
|
|
strh r0, [r5, 0x4]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_80687D0
|
|
str r0, [r4, 0x64]
|
|
adds r0, r4, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_806CCB4
|
|
ldr r0, _0807A884
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
_0807A866:
|
|
adds r1, r5, 0
|
|
adds r1, 0xE4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
cmp r6, 0
|
|
beq _0807A87E
|
|
movs r0, 0x1
|
|
bl sub_807EC28
|
|
_0807A87E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A884: .4byte gUnknown_80FAB6C
|
|
thumb_func_end sub_807A7C8
|
|
|
|
thumb_func_start sub_807A888
|
|
sub_807A888:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A918
|
|
ldr r5, [r4, 0x70]
|
|
ldr r0, _0807A8B8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
adds r0, 0xE8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _0807A8F6
|
|
lsls r0, 2
|
|
ldr r1, _0807A8BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807A8B8: .4byte gAvailablePokemonNames
|
|
_0807A8BC: .4byte _0807A8C0
|
|
.align 2, 0
|
|
_0807A8C0:
|
|
.4byte _0807A8F6
|
|
.4byte _0807A8D4
|
|
.4byte _0807A8DC
|
|
.4byte _0807A8EC
|
|
.4byte _0807A8F6
|
|
_0807A8D4:
|
|
ldr r0, _0807A8D8
|
|
b _0807A8DE
|
|
.align 2, 0
|
|
_0807A8D8: .4byte gUnknown_80FAA0C
|
|
_0807A8DC:
|
|
ldr r0, _0807A8E8
|
|
_0807A8DE:
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
b _0807A8F6
|
|
.align 2, 0
|
|
_0807A8E8: .4byte gUnknown_80FAA2C
|
|
_0807A8EC:
|
|
ldr r0, _0807A920
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
_0807A8F6:
|
|
adds r0, r5, 0
|
|
adds r0, 0xE8
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _0807A918
|
|
movs r0, 0x31
|
|
bl sub_803E46C
|
|
bl sub_8049ED4
|
|
bl sub_8040A84
|
|
_0807A918:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A920: .4byte gUnknown_80FAA48
|
|
thumb_func_end sub_807A888
|
|
|
|
thumb_func_start sub_807A924
|
|
sub_807A924:
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807A95C
|
|
ldr r4, [r5, 0x70]
|
|
ldr r0, _0807A964
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r4, 0xEC
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
bne _0807A952
|
|
ldr r0, _0807A968
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
_0807A952:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807A95C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807A964: .4byte gAvailablePokemonNames
|
|
_0807A968: .4byte gUnknown_80FABC0
|
|
thumb_func_end sub_807A924
|
|
|
|
thumb_func_start sub_807A96C
|
|
sub_807A96C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r5, r0, 0
|
|
movs r2, 0
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _0807A988
|
|
adds r0, r6, 0
|
|
bl SendImmobilizeEndMessage
|
|
movs r2, 0x1
|
|
_0807A988:
|
|
adds r0, r5, 0
|
|
adds r0, 0xA8
|
|
ldrh r1, [r0]
|
|
ldr r0, _0807A9AC
|
|
cmp r1, r0
|
|
bne _0807A9A2
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_807A124
|
|
movs r2, 0x1
|
|
_0807A9A2:
|
|
adds r0, r2, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807A9AC: .4byte 0x00007f01
|
|
thumb_func_end sub_807A96C
|
|
|
|
thumb_func_start sub_807A9B0
|
|
sub_807A9B0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xA8
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
adds r0, 0xA9
|
|
strb r2, [r0]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_806A898
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807A9B0
|
|
|
|
thumb_func_start sub_807A9D8
|
|
sub_807A9D8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AA20
|
|
ldr r2, [r4, 0x70]
|
|
adds r3, r2, 0
|
|
adds r3, 0xB0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
bne _0807AA20
|
|
movs r1, 0
|
|
strb r1, [r3]
|
|
adds r0, r2, 0
|
|
adds r0, 0xB8
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _0807AA28
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807AA2C
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
adds r0, r4, 0
|
|
bl DungeonEntityUpdateStatusSprites
|
|
_0807AA20:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807AA28: .4byte gAvailablePokemonNames
|
|
_0807AA2C: .4byte gUnknown_80FA8BC
|
|
thumb_func_end sub_807A9D8
|
|
|
|
thumb_func_start sub_807AA30
|
|
sub_807AA30:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r4, 0
|
|
_0807AA3C:
|
|
ldr r0, _0807AAD8
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 2
|
|
ldr r2, _0807AADC
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
adds r4, 0x1
|
|
mov r10, r4
|
|
cmp r0, 0
|
|
beq _0807AB22
|
|
ldr r1, [r5, 0x70]
|
|
adds r0, r1, 0
|
|
adds r0, 0xA8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807AB22
|
|
adds r0, r1, 0
|
|
adds r0, 0xA9
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7F
|
|
bne _0807AB22
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
_0807AA82:
|
|
ldr r0, _0807AAD8
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r2, _0807AAE0
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AB00
|
|
adds r0, r4, 0
|
|
movs r1, 0x18
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807AB00
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807AABA
|
|
negs r1, r1
|
|
_0807AABA:
|
|
cmp r1, 0x1
|
|
bgt _0807AAE4
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807AACE
|
|
negs r1, r1
|
|
_0807AACE:
|
|
cmp r1, 0x1
|
|
bgt _0807AAE4
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
b _0807AB06
|
|
.align 2, 0
|
|
_0807AAD8: .4byte gDungeonGlobalData
|
|
_0807AADC: .4byte 0x0001358c
|
|
_0807AAE0: .4byte 0x0001357c
|
|
_0807AAE4:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1D
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AB00
|
|
adds r0, r4, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r7, r0
|
|
beq _0807AB1C
|
|
_0807AB00:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _0807AA82
|
|
_0807AB06:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _0807AB1C
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _0807AB16
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
_0807AB16:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0807AB22
|
|
_0807AB1C:
|
|
adds r0, r5, 0
|
|
bl sub_807A9B0
|
|
_0807AB22:
|
|
mov r4, r10
|
|
cmp r4, 0xF
|
|
ble _0807AA3C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AA30
|
|
|
|
thumb_func_start sub_807AB38
|
|
sub_807AB38:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1A8
|
|
adds r2, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldr r0, [r2, 0x70]
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _0807AB54
|
|
b _0807ADA6
|
|
_0807AB54:
|
|
adds r0, r2, 0
|
|
str r2, [sp, 0x1A4]
|
|
bl GetMapEntityForDungeonEntity
|
|
ldrh r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
ldr r2, [sp, 0x1A4]
|
|
cmp r0, 0
|
|
bne _0807AB6A
|
|
b _0807ADA6
|
|
_0807AB6A:
|
|
ldr r3, _0807AC10
|
|
ldr r0, [r3]
|
|
ldr r5, _0807AC14
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807AB7A
|
|
b _0807ADA6
|
|
_0807AB7A:
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r3, [r3]
|
|
ldr r1, _0807AC18
|
|
adds r0, r3, r1
|
|
ldrb r1, [r0]
|
|
cmp r1, 0xFF
|
|
bne _0807AB8C
|
|
b _0807ADA6
|
|
_0807AB8C:
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r5, _0807AC1C
|
|
adds r0, r5
|
|
adds r3, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
cmp r4, 0
|
|
beq _0807AC20
|
|
movs r1, 0x6
|
|
ldrsh r0, [r2, r1]
|
|
subs r6, r0, 0x4
|
|
adds r0, 0x4
|
|
cmp r6, r0
|
|
ble _0807ABAE
|
|
b _0807ACB4
|
|
_0807ABAE:
|
|
movs r4, 0x4
|
|
ldrsh r0, [r2, r4]
|
|
subs r4, r0, 0x4
|
|
adds r0, 0x4
|
|
adds r5, r6, 0x1
|
|
mov r9, r5
|
|
cmp r4, r0
|
|
bgt _0807AC00
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
mov r1, sp
|
|
adds r5, r0, r1
|
|
_0807ABC6:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
str r2, [sp, 0x1A4]
|
|
bl GetMapEntity
|
|
adds r1, r0, 0
|
|
ldr r0, [r1, 0x10]
|
|
ldr r2, [sp, 0x1A4]
|
|
cmp r0, 0
|
|
bne _0807ABF4
|
|
ldrh r1, [r1]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0807ABF4
|
|
mov r0, r8
|
|
cmp r0, 0x63
|
|
bgt _0807ABF4
|
|
strh r4, [r5]
|
|
strh r6, [r5, 0x2]
|
|
adds r5, 0x4
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_0807ABF4:
|
|
adds r4, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r2, r1]
|
|
adds r0, 0x4
|
|
cmp r4, r0
|
|
ble _0807ABC6
|
|
_0807AC00:
|
|
mov r6, r9
|
|
movs r4, 0x6
|
|
ldrsh r0, [r2, r4]
|
|
adds r0, 0x4
|
|
cmp r6, r0
|
|
ble _0807ABAE
|
|
b _0807ACB4
|
|
.align 2, 0
|
|
_0807AC10: .4byte gDungeonGlobalData
|
|
_0807AC14: .4byte 0x00000671
|
|
_0807AC18: .4byte 0x00003a0c
|
|
_0807AC1C: .4byte 0x000104c4
|
|
_0807AC20:
|
|
movs r5, 0x4
|
|
ldrsh r0, [r2, r5]
|
|
subs r1, r0, 0x4
|
|
movs r5, 0x2
|
|
ldrsh r4, [r3, r5]
|
|
mov r10, r4
|
|
cmp r10, r1
|
|
bge _0807AC32
|
|
mov r10, r1
|
|
_0807AC32:
|
|
adds r1, r0, 0x5
|
|
movs r0, 0x6
|
|
ldrsh r7, [r3, r0]
|
|
cmp r7, r1
|
|
ble _0807AC3E
|
|
adds r7, r1, 0
|
|
_0807AC3E:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r2, r1]
|
|
subs r2, r0, 0x4
|
|
movs r4, 0x4
|
|
ldrsh r1, [r3, r4]
|
|
cmp r1, r2
|
|
bge _0807AC4E
|
|
adds r1, r2, 0
|
|
_0807AC4E:
|
|
adds r0, 0x5
|
|
movs r5, 0x8
|
|
ldrsh r2, [r3, r5]
|
|
cmp r2, r0
|
|
ble _0807AC5A
|
|
adds r2, r0, 0
|
|
_0807AC5A:
|
|
adds r6, r1, 0
|
|
cmp r6, r2
|
|
bge _0807ACB4
|
|
_0807AC60:
|
|
mov r4, r10
|
|
adds r0, r6, 0x1
|
|
mov r9, r0
|
|
cmp r4, r7
|
|
bge _0807ACAE
|
|
mov r1, r8
|
|
lsls r0, r1, 2
|
|
mov r1, sp
|
|
adds r5, r0, r1
|
|
_0807AC72:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
str r2, [sp, 0x1A4]
|
|
bl GetMapEntity
|
|
adds r1, r0, 0
|
|
ldr r0, [r1, 0x10]
|
|
ldr r2, [sp, 0x1A4]
|
|
cmp r0, 0
|
|
bne _0807ACA8
|
|
ldrh r1, [r1]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0807ACA8
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807ACA8
|
|
mov r0, r8
|
|
cmp r0, 0x63
|
|
bgt _0807ACA8
|
|
strh r4, [r5]
|
|
strh r6, [r5, 0x2]
|
|
adds r5, 0x4
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_0807ACA8:
|
|
adds r4, 0x1
|
|
cmp r4, r7
|
|
blt _0807AC72
|
|
_0807ACAE:
|
|
mov r6, r9
|
|
cmp r6, r2
|
|
blt _0807AC60
|
|
_0807ACB4:
|
|
ldr r0, _0807AD74
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
ldr r1, _0807AD78
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
bl sub_808411C
|
|
adds r7, r0, 0
|
|
cmp r7, r8
|
|
blt _0807ACCC
|
|
mov r7, r8
|
|
_0807ACCC:
|
|
movs r6, 0
|
|
cmp r6, r7
|
|
bge _0807ADA0
|
|
mov r10, r6
|
|
_0807ACD4:
|
|
mov r0, r8
|
|
bl DungeonRandomCapped
|
|
adds r2, r0, 0
|
|
movs r3, 0
|
|
cmp r3, r8
|
|
bge _0807AD0C
|
|
lsls r0, r2, 2
|
|
mov r5, sp
|
|
adds r1, r5, r0
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
bne _0807AD1C
|
|
_0807ACF2:
|
|
adds r2, 0x1
|
|
cmp r2, r8
|
|
blt _0807ACFA
|
|
movs r2, 0
|
|
_0807ACFA:
|
|
adds r3, 0x1
|
|
cmp r3, r8
|
|
bge _0807AD0C
|
|
lsls r0, r2, 2
|
|
add r0, sp
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
cmp r0, 0
|
|
beq _0807ACF2
|
|
_0807AD0C:
|
|
lsls r0, r2, 2
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r4, 0
|
|
ldrsh r1, [r1, r4]
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
beq _0807ADA0
|
|
_0807AD1C:
|
|
movs r0, 0x1
|
|
bl sub_803D970
|
|
add r4, sp, 0x190
|
|
movs r1, 0
|
|
strh r0, [r4]
|
|
mov r0, r10
|
|
strh r0, [r4, 0x8]
|
|
strb r1, [r4, 0x2]
|
|
mov r1, r10
|
|
str r1, [r4, 0x4]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x10]
|
|
mov r2, sp
|
|
adds r1, r2, r5
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0xE]
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
movs r1, 0x1
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
adds r6, 0x1
|
|
mov r9, r6
|
|
cmp r0, 0
|
|
beq _0807AD9A
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_806B7F8
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AD9A
|
|
movs r0, 0xC8
|
|
lsls r0, 8
|
|
str r0, [r4, 0x1C]
|
|
movs r5, 0
|
|
b _0807AD84
|
|
.align 2, 0
|
|
_0807AD74: .4byte gUnknown_80F4DA2
|
|
_0807AD78: .4byte gUnknown_80F4DA4
|
|
_0807AD7C:
|
|
movs r0, 0x57
|
|
bl sub_803E46C
|
|
adds r5, 0x1
|
|
_0807AD84:
|
|
cmp r5, 0x63
|
|
bgt _0807AD96
|
|
ldr r0, [r4, 0x1C]
|
|
movs r1, 0xAA
|
|
bl sub_8009DA4
|
|
str r0, [r4, 0x1C]
|
|
cmp r0, 0xFF
|
|
bgt _0807AD7C
|
|
_0807AD96:
|
|
mov r0, r10
|
|
str r0, [r4, 0x1C]
|
|
_0807AD9A:
|
|
mov r6, r9
|
|
cmp r6, r7
|
|
blt _0807ACD4
|
|
_0807ADA0:
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
_0807ADA6:
|
|
add sp, 0x1A8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807AB38
|
|
|
|
thumb_func_start MoveIfPossible
|
|
MoveIfPossible:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r4, [r5, 0x70]
|
|
adds r0, r4, 0
|
|
adds r0, 0x79
|
|
movs r6, 0
|
|
strb r6, [r0]
|
|
adds r0, 0x1
|
|
strb r6, [r0]
|
|
adds r0, 0x1
|
|
strb r6, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
bl HasTactic
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807ADFA
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
asrs r0, 1
|
|
cmp r1, r0
|
|
bgt _0807ADFA
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
strh r6, [r0]
|
|
b _0807AEB4
|
|
_0807ADFA:
|
|
adds r0, r5, 0
|
|
movs r1, 0x9
|
|
bl HasTactic
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AE12
|
|
adds r1, r4, 0
|
|
adds r1, 0x44
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _0807AEB4
|
|
_0807AE12:
|
|
ldrb r0, [r4, 0x7]
|
|
cmp r0, 0
|
|
bne _0807AE32
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
bl GetBellyRoundedUp
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0807AE32
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
strh r1, [r0]
|
|
b _0807AEB4
|
|
_0807AE32:
|
|
adds r0, r4, 0
|
|
adds r0, 0xA4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807AE6A
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
bl SetWalkAction
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r1, r4, 0
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
ldrh r1, [r5, 0x4]
|
|
movs r2, 0xB6
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
strh r1, [r0]
|
|
ldrh r0, [r5, 0x6]
|
|
subs r0, 0x1
|
|
adds r2, 0x2
|
|
adds r1, r4, r2
|
|
strh r0, [r1]
|
|
b _0807AEB4
|
|
_0807AE6A:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl ShouldAvoidEnemies_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AE80
|
|
adds r0, r5, 0
|
|
bl AvoidEnemies
|
|
b _0807AE9C
|
|
_0807AE80:
|
|
adds r0, r5, 0
|
|
bl CanTakeItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AE96
|
|
adds r1, r4, 0
|
|
adds r1, 0x44
|
|
movs r0, 0x3F
|
|
strh r0, [r1]
|
|
b _0807AEB4
|
|
_0807AE96:
|
|
adds r0, r5, 0
|
|
bl ChooseTargetPosition
|
|
_0807AE9C:
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _0807AEAC
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
strh r2, [r0]
|
|
b _0807AEB4
|
|
_0807AEAC:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl DecideMovement
|
|
_0807AEB4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MoveIfPossible
|
|
|
|
thumb_func_start CanTakeItem
|
|
CanTakeItem:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, [r4, 0x70]
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AF50
|
|
adds r0, r4, 0
|
|
bl CannotUseItems
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807AF50
|
|
adds r0, r4, 0
|
|
bl GetMapEntityForDungeonEntity
|
|
adds r6, r0, 0
|
|
ldr r4, [r6, 0x14]
|
|
cmp r4, 0
|
|
beq _0807AF50
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x5
|
|
bhi _0807AF50
|
|
lsls r0, 2
|
|
ldr r1, _0807AEFC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0807AEFC: .4byte _0807AF00
|
|
.align 2, 0
|
|
_0807AF00:
|
|
.4byte _0807AF50
|
|
.4byte _0807AF50
|
|
.4byte _0807AF50
|
|
.4byte _0807AF18
|
|
.4byte _0807AF50
|
|
.4byte _0807AF50
|
|
_0807AF18:
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
bne _0807AF50
|
|
adds r0, r5, 0
|
|
adds r0, 0x60
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807AF50
|
|
ldrh r1, [r6]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807AF3C
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0
|
|
bne _0807AF50
|
|
_0807AF3C:
|
|
adds r0, r4, 0
|
|
bl GetItemData
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807AF50
|
|
movs r0, 0x1
|
|
b _0807AF52
|
|
_0807AF50:
|
|
movs r0, 0
|
|
_0807AF52:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CanTakeItem
|
|
|
|
thumb_func_start ChooseTargetPosition
|
|
ChooseTargetPosition:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
mov r8, r0
|
|
ldr r7, [r0, 0x70]
|
|
bl TargetLeader
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807AF74
|
|
b _0807B12C
|
|
_0807AF74:
|
|
ldr r0, _0807AF8C
|
|
ldr r1, [r0]
|
|
ldr r2, _0807AF90
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807AF98
|
|
ldr r3, _0807AF94
|
|
adds r6, r1, r3
|
|
movs r4, 0x14
|
|
mov r10, r4
|
|
b _0807AFB4
|
|
.align 2, 0
|
|
_0807AF8C: .4byte gDungeonGlobalData
|
|
_0807AF90: .4byte 0x000037fc
|
|
_0807AF94: .4byte 0x000135cc
|
|
_0807AF98:
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0
|
|
beq _0807AFAC
|
|
ldr r0, _0807AFA8
|
|
adds r6, r1, r0
|
|
movs r1, 0x4
|
|
mov r10, r1
|
|
b _0807AFB4
|
|
.align 2, 0
|
|
_0807AFA8: .4byte 0x0001357c
|
|
_0807AFAC:
|
|
ldr r2, _0807B01C
|
|
adds r6, r1, r2
|
|
movs r3, 0x10
|
|
mov r10, r3
|
|
_0807AFB4:
|
|
mov r0, r8
|
|
bl CanCrossWalls
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [sp]
|
|
ldr r0, _0807B020
|
|
mov r9, r0
|
|
movs r5, 0
|
|
adds r1, r7, 0
|
|
adds r1, 0x78
|
|
str r1, [sp, 0x8]
|
|
cmp r5, r10
|
|
bge _0807B09E
|
|
_0807AFD6:
|
|
lsls r0, r5, 2
|
|
adds r0, r6
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B098
|
|
ldr r0, [r4, 0x70]
|
|
adds r1, r0, 0
|
|
adds r1, 0xA4
|
|
ldrb r1, [r1]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _0807B098
|
|
ldr r0, _0807B024
|
|
ldr r0, [r0]
|
|
ldr r3, _0807B028
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B02C
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807B098
|
|
ldr r2, [r4, 0x70]
|
|
b _0807B03C
|
|
.align 2, 0
|
|
_0807B01C: .4byte 0x0001358c
|
|
_0807B020: .4byte 0x000003e7
|
|
_0807B024: .4byte gDungeonGlobalData
|
|
_0807B028: .4byte 0x000037fc
|
|
_0807B02C:
|
|
ldrb r0, [r7, 0x6]
|
|
cmp r0, 0
|
|
bne _0807B03C
|
|
adds r0, r2, 0
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
beq _0807B098
|
|
_0807B03C:
|
|
ldrb r0, [r2, 0x8]
|
|
cmp r0, 0x1
|
|
beq _0807B098
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
beq _0807B074
|
|
mov r2, r8
|
|
movs r3, 0x4
|
|
ldrsh r1, [r2, r3]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807B05A
|
|
negs r1, r1
|
|
_0807B05A:
|
|
cmp r1, 0x5
|
|
bgt _0807B074
|
|
mov r3, r8
|
|
movs r0, 0x6
|
|
ldrsh r1, [r3, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807B070
|
|
negs r1, r1
|
|
_0807B070:
|
|
cmp r1, 0x5
|
|
ble _0807B082
|
|
_0807B074:
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl CanSee_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B098
|
|
_0807B082:
|
|
adds r1, r4, 0x4
|
|
mov r0, r8
|
|
adds r0, 0x4
|
|
bl GetMaxPositionDifference
|
|
cmp r9, r0
|
|
ble _0807B098
|
|
mov r9, r0
|
|
str r5, [sp]
|
|
cmp r0, 0x1
|
|
ble _0807B09E
|
|
_0807B098:
|
|
adds r5, 0x1
|
|
cmp r5, r10
|
|
blt _0807AFD6
|
|
_0807B09E:
|
|
ldr r3, [sp]
|
|
cmp r3, 0
|
|
blt _0807B12C
|
|
movs r2, 0
|
|
movs r5, 0x1
|
|
ldr r4, [sp, 0x8]
|
|
strb r5, [r4]
|
|
adds r1, r7, 0
|
|
adds r1, 0x88
|
|
lsls r0, r3, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
subs r1, 0x8
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
ldrh r1, [r0, 0x26]
|
|
adds r0, r7, 0
|
|
adds r0, 0x7C
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strb r5, [r0]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
str r2, [r0]
|
|
mov r0, r8
|
|
movs r1, 0x8
|
|
bl HasTactic
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807B0E4
|
|
b _0807B2C6
|
|
_0807B0E4:
|
|
mov r0, r8
|
|
bl CanSeeTeammate
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B0F2
|
|
b _0807B2C6
|
|
_0807B0F2:
|
|
mov r2, r8
|
|
movs r3, 0x4
|
|
ldrsh r1, [r2, r3]
|
|
ldr r2, [r4]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r2, r4]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807B106
|
|
negs r1, r1
|
|
_0807B106:
|
|
cmp r1, 0x1
|
|
ble _0807B10C
|
|
b _0807B2C6
|
|
_0807B10C:
|
|
mov r0, r8
|
|
movs r3, 0x6
|
|
ldrsh r1, [r0, r3]
|
|
movs r4, 0x6
|
|
ldrsh r0, [r2, r4]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _0807B11E
|
|
negs r0, r0
|
|
_0807B11E:
|
|
cmp r0, 0x1
|
|
ble _0807B124
|
|
b _0807B2C6
|
|
_0807B124:
|
|
adds r0, r7, 0
|
|
adds r0, 0x7B
|
|
strb r5, [r0]
|
|
b _0807B2C6
|
|
_0807B12C:
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
bl HasTactic
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807B17C
|
|
ldrb r5, [r7, 0x6]
|
|
adds r0, r7, 0
|
|
adds r0, 0x78
|
|
str r0, [sp, 0x8]
|
|
cmp r5, 0
|
|
bne _0807B222
|
|
mov r0, r8
|
|
bl GetLeaderEntityIfVisible
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B222
|
|
movs r0, 0x1
|
|
ldr r1, [sp, 0x8]
|
|
strb r0, [r1]
|
|
adds r1, r7, 0
|
|
adds r1, 0x88
|
|
ldr r0, [r4, 0x4]
|
|
str r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x80
|
|
str r4, [r0]
|
|
ldrh r1, [r4, 0x26]
|
|
subs r0, 0x4
|
|
strh r1, [r0]
|
|
movs r2, 0x8A
|
|
lsls r2, 1
|
|
adds r0, r7, r2
|
|
str r5, [r0]
|
|
b _0807B2C6
|
|
_0807B17C:
|
|
ldrb r0, [r7, 0x7]
|
|
adds r3, r7, 0
|
|
adds r3, 0x78
|
|
str r3, [sp, 0x8]
|
|
cmp r0, 0
|
|
beq _0807B222
|
|
ldr r4, _0807B1BC
|
|
ldr r0, [r4]
|
|
ldr r1, _0807B1C0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
movs r3, 0x4
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, 0x6
|
|
ldrsh r1, [r2, r3]
|
|
bl GetMapTileAtPosition
|
|
ldrb r1, [r0, 0x9]
|
|
cmp r1, 0xFF
|
|
bne _0807B1C4
|
|
mov r4, r8
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
subs r2, r1, 0x2
|
|
mov r10, r2
|
|
movs r3, 0x6
|
|
ldrsh r0, [r4, r3]
|
|
subs r2, r0, 0x2
|
|
adds r6, r1, 0x2
|
|
adds r0, 0x2
|
|
b _0807B1EC
|
|
.align 2, 0
|
|
_0807B1BC: .4byte gDungeonGlobalData
|
|
_0807B1C0: .4byte 0x00018209
|
|
_0807B1C4:
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0807B26C
|
|
adds r0, r1
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
subs r0, 0x1
|
|
mov r10, r0
|
|
movs r3, 0x4
|
|
ldrsh r0, [r1, r3]
|
|
subs r2, r0, 0x1
|
|
movs r4, 0x6
|
|
ldrsh r0, [r1, r4]
|
|
adds r6, r0, 0x1
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
adds r0, 0x1
|
|
_0807B1EC:
|
|
mov r9, r0
|
|
adds r5, r2, 0
|
|
adds r4, r7, 0
|
|
adds r4, 0x78
|
|
str r4, [sp, 0x8]
|
|
cmp r5, r9
|
|
bgt _0807B222
|
|
_0807B1FA:
|
|
mov r4, r10
|
|
cmp r4, r6
|
|
bgt _0807B21C
|
|
_0807B200:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetMapEntity
|
|
ldr r0, [r0, 0x14]
|
|
cmp r0, 0
|
|
beq _0807B216
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
beq _0807B270
|
|
_0807B216:
|
|
adds r4, 0x1
|
|
cmp r4, r6
|
|
ble _0807B200
|
|
_0807B21C:
|
|
adds r5, 0x1
|
|
cmp r5, r9
|
|
ble _0807B1FA
|
|
_0807B222:
|
|
ldr r1, [sp, 0x8]
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _0807B2C0
|
|
adds r3, r7, 0
|
|
adds r3, 0x80
|
|
ldr r1, [r3]
|
|
cmp r1, 0
|
|
beq _0807B2C0
|
|
adds r2, r7, 0
|
|
adds r2, 0x7C
|
|
ldrh r0, [r1, 0x26]
|
|
ldrh r4, [r2]
|
|
cmp r0, r4
|
|
bne _0807B2B4
|
|
ldr r1, [r1, 0x70]
|
|
mov r9, r1
|
|
movs r5, 0
|
|
mov r4, r9
|
|
adds r4, 0x68
|
|
_0807B250:
|
|
lsls r6, r5, 2
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl InSameRoom
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807B294
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0807B250
|
|
b _0807B2C0
|
|
.align 2, 0
|
|
_0807B26C: .4byte 0x000104c4
|
|
_0807B270:
|
|
movs r1, 0
|
|
movs r0, 0x7
|
|
ldr r2, [sp, 0x8]
|
|
strb r0, [r2]
|
|
adds r0, r7, 0
|
|
adds r0, 0x88
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
subs r0, 0xA
|
|
str r1, [r0]
|
|
subs r0, 0x4
|
|
strh r1, [r0]
|
|
movs r3, 0x8A
|
|
lsls r3, 1
|
|
adds r0, r7, r3
|
|
str r1, [r0]
|
|
b _0807B2C6
|
|
_0807B294:
|
|
movs r2, 0
|
|
movs r0, 0x2
|
|
ldr r4, [sp, 0x8]
|
|
strb r0, [r4]
|
|
adds r1, r7, 0
|
|
adds r1, 0x88
|
|
mov r0, r9
|
|
adds r0, 0x68
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
str r2, [r0]
|
|
b _0807B2C6
|
|
_0807B2B4:
|
|
movs r1, 0
|
|
movs r0, 0x6
|
|
ldr r4, [sp, 0x8]
|
|
strb r0, [r4]
|
|
str r1, [r3]
|
|
strh r1, [r2]
|
|
_0807B2C0:
|
|
mov r0, r8
|
|
bl Explore
|
|
_0807B2C6:
|
|
movs r0, 0x1
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ChooseTargetPosition
|
|
|
|
thumb_func_start DecideMovement
|
|
DecideMovement:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x3C
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r5, [r0, 0x70]
|
|
movs r0, 0xB6
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
adds r4, r5, 0
|
|
adds r4, 0x88
|
|
ldr r0, [r4]
|
|
str r0, [r1]
|
|
mov r2, r9
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r4]
|
|
cmp r1, r0
|
|
beq _0807B348
|
|
mov r6, r9
|
|
adds r6, 0x4
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl CalculateFacingDir
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x7A
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
bl ShouldAvoidFirstHit
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B366
|
|
adds r0, r5, 0
|
|
adds r0, 0x78
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807B37C
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl IsTargetTwoTilesAway
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B37C
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl GetMaxPositionDifference
|
|
cmp r0, 0x2
|
|
bne _0807B354
|
|
_0807B348:
|
|
adds r0, r5, 0
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
bl SetAction
|
|
b _0807B5CE
|
|
_0807B354:
|
|
cmp r0, 0x1
|
|
bgt _0807B37C
|
|
movs r3, 0x4
|
|
add r8, r3
|
|
movs r0, 0x7
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r8, r1
|
|
b _0807B37C
|
|
_0807B366:
|
|
adds r0, r5, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B37C
|
|
movs r2, 0x4
|
|
add r8, r2
|
|
movs r0, 0x7
|
|
mov r3, r8
|
|
ands r3, r0
|
|
mov r8, r3
|
|
_0807B37C:
|
|
add r4, sp, 0x30
|
|
mov r0, r9
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl CanMoveForward
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B3A8
|
|
adds r0, r5, 0
|
|
adds r0, 0x44
|
|
movs r2, 0x2
|
|
ldrsh r1, [r5, r2]
|
|
bl SetWalkAction
|
|
movs r0, 0x7
|
|
mov r3, r8
|
|
ands r3, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x46
|
|
strb r3, [r0]
|
|
b _0807B5CE
|
|
_0807B3A8:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0807B444
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0
|
|
bne _0807B3E8
|
|
ldr r1, _0807B3E0
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807B3E8
|
|
adds r0, r5, 0
|
|
adds r0, 0x79
|
|
movs r4, 0x1
|
|
strb r4, [r0]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
bl SetAction
|
|
ldr r3, _0807B3E4
|
|
adds r0, r5, r3
|
|
strb r4, [r0]
|
|
b _0807B5CE
|
|
.align 2, 0
|
|
_0807B3E0: .4byte 0x00000145
|
|
_0807B3E4: .4byte 0x00000147
|
|
_0807B3E8:
|
|
mov r0, r9
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
ldr r2, _0807B434
|
|
mov r3, r8
|
|
lsls r0, r3, 2
|
|
adds r2, r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0x88
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r1, r0
|
|
bne _0807B43C
|
|
mov r1, r9
|
|
movs r3, 0x6
|
|
ldrsh r0, [r1, r3]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x8A
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
cmp r0, r1
|
|
bne _0807B43C
|
|
adds r0, r5, 0
|
|
adds r0, 0x44
|
|
movs r1, 0x1
|
|
bl SetAction
|
|
ldr r3, _0807B438
|
|
adds r1, r5, r3
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807B5CE
|
|
.align 2, 0
|
|
_0807B434: .4byte gAdjacentTileOffsets
|
|
_0807B438: .4byte 0x00000147
|
|
_0807B43C:
|
|
adds r1, r5, 0
|
|
adds r1, 0x79
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0807B444:
|
|
mov r3, sp
|
|
mov r2, sp
|
|
mov r1, sp
|
|
add r0, sp, 0x28
|
|
movs r4, 0x1
|
|
strb r4, [r0]
|
|
add r0, sp, 0x20
|
|
strb r4, [r0]
|
|
strb r4, [r1, 0x18]
|
|
strb r4, [r2, 0x10]
|
|
strb r4, [r3, 0x8]
|
|
ldrb r6, [r5, 0x6]
|
|
cmp r6, 0
|
|
bne _0807B4C8
|
|
mov r0, r8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0807B4C8
|
|
mov r1, r9
|
|
movs r2, 0x4
|
|
ldrsh r0, [r1, r2]
|
|
adds r1, r5, 0
|
|
adds r1, 0x88
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
subs r2, r0, r1
|
|
cmp r2, 0
|
|
bge _0807B47E
|
|
negs r2, r2
|
|
_0807B47E:
|
|
mov r0, r9
|
|
movs r3, 0x6
|
|
ldrsh r1, [r0, r3]
|
|
adds r0, r5, 0
|
|
adds r0, 0x8A
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807B494
|
|
negs r1, r1
|
|
_0807B494:
|
|
cmp r2, 0x2
|
|
bgt _0807B4C8
|
|
cmp r1, 0x2
|
|
bgt _0807B4C8
|
|
cmp r2, r1
|
|
beq _0807B4C8
|
|
movs r3, 0x2
|
|
mov r0, r8
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _0807B4BA
|
|
cmp r2, r1
|
|
bge _0807B4B4
|
|
mov r0, sp
|
|
strb r6, [r0, 0x10]
|
|
b _0807B4C8
|
|
_0807B4B4:
|
|
mov r0, sp
|
|
strb r6, [r0, 0x8]
|
|
b _0807B4C8
|
|
_0807B4BA:
|
|
cmp r2, r1
|
|
bge _0807B4C4
|
|
mov r0, sp
|
|
strb r3, [r0, 0x8]
|
|
b _0807B4C8
|
|
_0807B4C4:
|
|
mov r0, sp
|
|
strb r3, [r0, 0x10]
|
|
_0807B4C8:
|
|
movs r1, 0x3
|
|
mov r10, r1
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
bl ShouldAvoidEnemies_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807B4E4
|
|
adds r0, r5, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B4E8
|
|
_0807B4E4:
|
|
movs r2, 0x5
|
|
mov r10, r2
|
|
_0807B4E8:
|
|
movs r6, 0x1
|
|
adds r3, r5, 0
|
|
adds r3, 0x44
|
|
str r3, [sp, 0x34]
|
|
cmp r6, r10
|
|
bge _0807B53C
|
|
mov r3, sp
|
|
mov r4, sp
|
|
adds r4, 0xA
|
|
add r7, sp, 0x8
|
|
_0807B4FC:
|
|
lsls r0, r6, 3
|
|
add r2, sp, 0x4
|
|
adds r2, r0
|
|
ldr r1, _0807B598
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
add r1, r8
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
str r1, [r2]
|
|
mov r0, r9
|
|
adds r2, r4, 0
|
|
str r3, [sp, 0x38]
|
|
bl CanMoveForward
|
|
strb r0, [r7, 0x1]
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x38]
|
|
cmp r0, 0
|
|
bne _0807B532
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0807B532
|
|
movs r0, 0x1
|
|
strb r0, [r3, 0x10]
|
|
strb r0, [r3, 0x8]
|
|
_0807B532:
|
|
adds r4, 0x8
|
|
adds r7, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, r10
|
|
blt _0807B4FC
|
|
_0807B53C:
|
|
movs r6, 0x1
|
|
cmp r6, r10
|
|
bge _0807B56E
|
|
adds r3, r5, 0
|
|
adds r3, 0x79
|
|
add r1, sp, 0x8
|
|
movs r4, 0x8
|
|
movs r7, 0x1
|
|
_0807B54C:
|
|
adds r2, r4, 0
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
beq _0807B55A
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0807B5A0
|
|
_0807B55A:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _0807B562
|
|
strb r7, [r3]
|
|
_0807B562:
|
|
adds r1, 0x8
|
|
adds r4, r2, 0
|
|
adds r4, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, r10
|
|
blt _0807B54C
|
|
_0807B56E:
|
|
ldr r0, [sp, 0x34]
|
|
movs r1, 0x1
|
|
bl SetAction
|
|
ldr r1, _0807B59C
|
|
adds r0, r5, r1
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
strb r2, [r0]
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _0807B5BC
|
|
adds r0, r5, 0
|
|
adds r0, 0x79
|
|
strb r1, [r0]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
b _0807B5CE
|
|
.align 2, 0
|
|
_0807B598: .4byte gFaceDirectionIncrements
|
|
_0807B59C: .4byte 0x00000147
|
|
_0807B5A0:
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
ldr r0, [sp, 0x34]
|
|
bl SetWalkAction
|
|
add r0, sp, 0x4
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
b _0807B5CE
|
|
_0807B5BC:
|
|
adds r0, r5, 0
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B5CE
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
strb r2, [r0]
|
|
_0807B5CE:
|
|
add sp, 0x3C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DecideMovement
|
|
|
|
thumb_func_start AvoidEnemies
|
|
AvoidEnemies:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
adds r7, r0, 0
|
|
ldr r0, _0807B61C
|
|
str r0, [sp, 0x8]
|
|
ldr r1, [r7, 0x70]
|
|
str r1, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, _0807B620
|
|
ldr r1, [r0]
|
|
ldr r2, _0807B624
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B62C
|
|
ldr r3, _0807B628
|
|
adds r0, r1, r3
|
|
movs r4, 0x14
|
|
mov r9, r4
|
|
b _0807B64C
|
|
.align 2, 0
|
|
_0807B61C: .4byte 0x000f423f
|
|
_0807B620: .4byte gDungeonGlobalData
|
|
_0807B624: .4byte 0x000037fc
|
|
_0807B628: .4byte 0x000135cc
|
|
_0807B62C:
|
|
ldr r2, [sp, 0x10]
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
beq _0807B644
|
|
ldr r3, _0807B640
|
|
adds r0, r1, r3
|
|
movs r4, 0x4
|
|
mov r9, r4
|
|
b _0807B64C
|
|
.align 2, 0
|
|
_0807B640: .4byte 0x0001357c
|
|
_0807B644:
|
|
ldr r2, _0807B790
|
|
adds r0, r1, r2
|
|
movs r3, 0x10
|
|
mov r9, r3
|
|
_0807B64C:
|
|
movs r4, 0
|
|
str r4, [sp, 0xC]
|
|
movs r1, 0xFF
|
|
str r1, [sp, 0x4]
|
|
mov r8, r4
|
|
cmp r4, r9
|
|
bge _0807B6D8
|
|
adds r6, r0, 0
|
|
_0807B65C:
|
|
ldr r4, [r6]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B6CE
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807B6CE
|
|
ldr r0, _0807B794
|
|
ldr r0, [r0]
|
|
ldr r2, _0807B798
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807B69A
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807B6CE
|
|
_0807B69A:
|
|
adds r1, r4, 0x4
|
|
adds r0, r7, 0x4
|
|
bl GetMaxPositionDifference
|
|
ldr r3, [sp, 0x8]
|
|
cmp r3, r0
|
|
ble _0807B6CE
|
|
str r0, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
adds r0, r4, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x10]
|
|
adds r1, 0x88
|
|
ldr r4, [sp, 0xC]
|
|
ldr r0, [r4, 0x4]
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0x10]
|
|
movs r2, 0xB6
|
|
lsls r2, 1
|
|
adds r1, r0, r2
|
|
ldr r0, [r4, 0x4]
|
|
str r0, [r1]
|
|
_0807B6CE:
|
|
adds r6, 0x4
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
cmp r8, r9
|
|
blt _0807B65C
|
|
_0807B6D8:
|
|
ldr r0, _0807B79C
|
|
ldr r4, [sp, 0x8]
|
|
cmp r4, r0
|
|
bne _0807B6E2
|
|
b _0807B906
|
|
_0807B6E2:
|
|
ldr r0, [sp, 0x10]
|
|
adds r0, 0x88
|
|
str r0, [sp, 0x28]
|
|
ldr r1, [sp, 0x10]
|
|
adds r1, 0x78
|
|
str r1, [sp, 0x24]
|
|
ldr r2, [sp, 0x4]
|
|
cmp r10, r2
|
|
beq _0807B6F6
|
|
b _0807B8E0
|
|
_0807B6F6:
|
|
mov r3, r10
|
|
cmp r3, 0xFF
|
|
bne _0807B6FE
|
|
b _0807B8E0
|
|
_0807B6FE:
|
|
movs r4, 0x4
|
|
ldrsh r0, [r7, r4]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r7, r2]
|
|
bl GetMapTileAtPosition
|
|
ldrh r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807B7B2
|
|
ldrh r0, [r7, 0x6]
|
|
lsls r0, 16
|
|
ldrh r5, [r7, 0x4]
|
|
orrs r5, r0
|
|
movs r4, 0
|
|
_0807B71E:
|
|
ldr r1, _0807B7A0
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrh r3, [r7, 0x4]
|
|
adds r1, r3
|
|
lsls r1, 16
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r2, [r7, 0x6]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r5, r1, 16
|
|
orrs r5, r0
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
asrs r1, r5, 16
|
|
bl GetMapTileAtPosition
|
|
ldrb r0, [r0, 0x9]
|
|
cmp r0, r10
|
|
beq _0807B758
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
bl CanMoveForward
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807B75E
|
|
_0807B758:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0807B71E
|
|
_0807B75E:
|
|
cmp r4, 0x8
|
|
bne _0807B7A4
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
movs r0, 0x6
|
|
ldr r3, [sp, 0x24]
|
|
strb r0, [r3]
|
|
ldr r0, _0807B7A0
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldrh r4, [r7, 0x4]
|
|
adds r0, r4
|
|
ldr r2, [sp, 0x28]
|
|
strh r0, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r7, [r7, 0x6]
|
|
adds r0, r7
|
|
ldr r1, [sp, 0x10]
|
|
adds r1, 0x8A
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
b _0807B910
|
|
.align 2, 0
|
|
_0807B790: .4byte 0x0001358c
|
|
_0807B794: .4byte gDungeonGlobalData
|
|
_0807B798: .4byte 0x000037fc
|
|
_0807B79C: .4byte 0x000f423f
|
|
_0807B7A0: .4byte gAdjacentTileOffsets
|
|
_0807B7A4:
|
|
movs r0, 0x5
|
|
ldr r3, [sp, 0x24]
|
|
strb r0, [r3]
|
|
ldr r4, [sp, 0x28]
|
|
str r5, [r4]
|
|
movs r0, 0x1
|
|
b _0807B910
|
|
_0807B7B2:
|
|
ldr r0, _0807B8D0
|
|
mov r2, r10
|
|
lsls r1, r2, 7
|
|
ldr r3, _0807B8D4
|
|
adds r1, r3
|
|
ldr r0, [r0]
|
|
adds r1, r0, r1
|
|
str r1, [sp, 0x18]
|
|
lsls r1, r2, 1
|
|
ldr r4, _0807B8D8
|
|
adds r0, r4
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
str r1, [sp, 0x14]
|
|
ldr r3, _0807B8DC
|
|
str r3, [sp, 0x20]
|
|
movs r4, 0
|
|
str r4, [sp, 0x1C]
|
|
ldr r0, [sp, 0xC]
|
|
movs r1, 0x4
|
|
ldrsh r3, [r0, r1]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r7, r2]
|
|
subs r2, r3, r0
|
|
cmp r2, 0
|
|
bge _0807B7EA
|
|
negs r2, r2
|
|
_0807B7EA:
|
|
ldr r4, [sp, 0xC]
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r4, 0x6
|
|
ldrsh r0, [r7, r4]
|
|
subs r1, r0
|
|
mov r8, r1
|
|
cmp r1, 0
|
|
bge _0807B802
|
|
mov r0, r8
|
|
negs r0, r0
|
|
mov r8, r0
|
|
_0807B802:
|
|
cmp r8, r2
|
|
bge _0807B808
|
|
mov r8, r2
|
|
_0807B808:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
ldr r2, [sp, 0x10]
|
|
adds r2, 0x8A
|
|
str r2, [sp, 0x2C]
|
|
ldr r4, [sp, 0x1C]
|
|
ldr r0, [sp, 0x14]
|
|
cmp r4, r0
|
|
bge _0807B8AA
|
|
mov r10, r3
|
|
ldr r6, [sp, 0x18]
|
|
_0807B81E:
|
|
movs r1, 0
|
|
ldrsh r3, [r6, r1]
|
|
mov r2, r10
|
|
subs r0, r2, r3
|
|
cmp r0, 0
|
|
bge _0807B82C
|
|
negs r0, r0
|
|
_0807B82C:
|
|
ldr r4, [sp, 0xC]
|
|
movs r1, 0x6
|
|
ldrsh r4, [r4, r1]
|
|
mov r12, r4
|
|
movs r4, 0x2
|
|
ldrsh r2, [r6, r4]
|
|
mov r4, r12
|
|
subs r1, r4, r2
|
|
cmp r1, 0
|
|
bge _0807B842
|
|
negs r1, r1
|
|
_0807B842:
|
|
cmp r1, r0
|
|
bge _0807B848
|
|
adds r1, r0, 0
|
|
_0807B848:
|
|
movs r0, 0x4
|
|
ldrsh r4, [r7, r0]
|
|
subs r0, r3, r4
|
|
movs r3, 0x6
|
|
ldrsh r5, [r7, r3]
|
|
subs r3, r2, r5
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
bge _0807B85E
|
|
adds r0, r2, 0
|
|
_0807B85E:
|
|
cmp r3, r2
|
|
bge _0807B864
|
|
adds r3, r2, 0
|
|
_0807B864:
|
|
cmp r0, 0x1
|
|
ble _0807B86A
|
|
movs r0, 0x1
|
|
_0807B86A:
|
|
cmp r3, 0x1
|
|
ble _0807B870
|
|
movs r3, 0x1
|
|
_0807B870:
|
|
adds r0, r4, r0
|
|
mov r4, r10
|
|
subs r2, r4, r0
|
|
cmp r2, 0
|
|
bge _0807B87C
|
|
negs r2, r2
|
|
_0807B87C:
|
|
adds r0, r5, r3
|
|
mov r3, r12
|
|
subs r0, r3, r0
|
|
cmp r0, 0
|
|
bge _0807B888
|
|
negs r0, r0
|
|
_0807B888:
|
|
cmp r0, r2
|
|
bge _0807B88E
|
|
adds r0, r2, 0
|
|
_0807B88E:
|
|
cmp r0, r8
|
|
blt _0807B89E
|
|
ldr r4, [sp, 0x20]
|
|
cmp r4, r1
|
|
bge _0807B89E
|
|
mov r0, r9
|
|
str r0, [sp, 0x1C]
|
|
str r1, [sp, 0x20]
|
|
_0807B89E:
|
|
adds r6, 0x4
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
ldr r2, [sp, 0x14]
|
|
cmp r9, r2
|
|
blt _0807B81E
|
|
_0807B8AA:
|
|
ldr r3, [sp, 0x20]
|
|
cmp r3, 0
|
|
blt _0807B8E0
|
|
movs r0, 0x5
|
|
ldr r4, [sp, 0x24]
|
|
strb r0, [r4]
|
|
ldr r1, [sp, 0x1C]
|
|
lsls r0, r1, 2
|
|
ldr r2, [sp, 0x18]
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
ldr r3, [sp, 0x28]
|
|
strh r1, [r3]
|
|
ldrh r0, [r0, 0x2]
|
|
ldr r4, [sp, 0x2C]
|
|
strh r0, [r4]
|
|
movs r0, 0x1
|
|
b _0807B910
|
|
.align 2, 0
|
|
_0807B8D0: .4byte gDungeonGlobalData
|
|
_0807B8D4: .4byte 0x00010884
|
|
_0807B8D8: .4byte 0x00010844
|
|
_0807B8DC: .4byte 0xfff0bdc1
|
|
_0807B8E0:
|
|
movs r0, 0x5
|
|
ldr r1, [sp, 0x24]
|
|
strb r0, [r1]
|
|
ldr r2, [sp, 0xC]
|
|
ldrh r1, [r2, 0x4]
|
|
ldrh r0, [r7, 0x4]
|
|
subs r1, r0
|
|
subs r0, r1
|
|
ldr r3, [sp, 0x28]
|
|
strh r0, [r3]
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r7, 0x6]
|
|
subs r0, r1
|
|
subs r1, r0
|
|
ldr r0, [sp, 0x10]
|
|
adds r0, 0x8A
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
b _0807B910
|
|
_0807B906:
|
|
adds r0, r7, 0
|
|
bl Explore
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0807B910:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end AvoidEnemies
|
|
|
|
thumb_func_start Explore
|
|
Explore:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r6, r0, 0
|
|
ldr r7, [r6, 0x70]
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xFF
|
|
bne _0807B9DC
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r4, r7, 0
|
|
adds r4, 0x46
|
|
ldrb r0, [r4]
|
|
adds r0, 0x4
|
|
mov r8, r0
|
|
movs r0, 0x7
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r8, r1
|
|
adds r0, r6, 0
|
|
bl IsAtJunction
|
|
lsls r0, 24
|
|
mov r9, r4
|
|
cmp r0, 0
|
|
beq _0807B96C
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
strb r0, [r4]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
_0807B96C:
|
|
movs r3, 0
|
|
movs r4, 0x78
|
|
adds r4, r7
|
|
mov r10, r4
|
|
adds r0, r7, 0
|
|
adds r0, 0x88
|
|
str r0, [sp, 0x8]
|
|
adds r7, 0x8A
|
|
ldr r5, _0807B9D4
|
|
_0807B97E:
|
|
mov r1, r9
|
|
ldrb r0, [r1]
|
|
ldr r1, [r5]
|
|
adds r4, r0, r1
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
beq _0807B994
|
|
cmp r4, r8
|
|
beq _0807B9AA
|
|
_0807B994:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
str r3, [sp, 0xC]
|
|
bl CanMoveForward
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0xC]
|
|
cmp r0, 0
|
|
beq _0807B9AA
|
|
b _0807BB42
|
|
_0807B9AA:
|
|
adds r5, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _0807B97E
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
movs r1, 0x6
|
|
mov r3, r10
|
|
strb r1, [r3]
|
|
ldr r1, _0807B9D8
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrh r4, [r6, 0x4]
|
|
adds r1, r4
|
|
ldr r2, [sp, 0x8]
|
|
strh r1, [r2]
|
|
ldrh r0, [r0, 0x2]
|
|
b _0807BB5A
|
|
.align 2, 0
|
|
_0807B9D4: .4byte gFaceDirectionIncrements
|
|
_0807B9D8: .4byte gAdjacentTileOffsets
|
|
_0807B9DC:
|
|
ldr r0, _0807BA30
|
|
ldr r2, [r0]
|
|
lsls r1, r3, 1
|
|
ldr r4, _0807BA34
|
|
adds r0, r2, r4
|
|
adds r0, r1
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
mov r8, r1
|
|
lsls r0, r3, 7
|
|
ldr r1, _0807BA38
|
|
adds r0, r1
|
|
adds r2, r0
|
|
mov r9, r2
|
|
movs r2, 0x8A
|
|
lsls r2, 1
|
|
adds r0, r7, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807BA40
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r2, r7, 0
|
|
adds r2, 0x78
|
|
movs r1, 0x6
|
|
strb r1, [r2]
|
|
ldr r1, _0807BA3C
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrh r3, [r6, 0x4]
|
|
adds r1, r3
|
|
adds r2, 0x10
|
|
strh r1, [r2]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
adds r1, r7, 0
|
|
adds r1, 0x8A
|
|
strh r0, [r1]
|
|
b _0807BB60
|
|
.align 2, 0
|
|
_0807BA30: .4byte gDungeonGlobalData
|
|
_0807BA34: .4byte 0x00010844
|
|
_0807BA38: .4byte 0x00010884
|
|
_0807BA3C: .4byte gAdjacentTileOffsets
|
|
_0807BA40:
|
|
adds r0, r7, 0
|
|
adds r0, 0x78
|
|
ldrb r1, [r0]
|
|
mov r10, r0
|
|
cmp r1, 0x4
|
|
beq _0807BAA2
|
|
mov r4, r8
|
|
cmp r4, 0
|
|
bne _0807BA84
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
movs r0, 0x6
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
ldr r0, _0807BA80
|
|
lsls r2, r4, 2
|
|
adds r2, r0
|
|
ldrh r0, [r2]
|
|
ldrh r3, [r6, 0x4]
|
|
adds r0, r3
|
|
adds r1, r7, 0
|
|
adds r1, 0x88
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
adds r1, 0x2
|
|
strh r0, [r1]
|
|
b _0807BB60
|
|
.align 2, 0
|
|
_0807BA80: .4byte gAdjacentTileOffsets
|
|
_0807BA84:
|
|
movs r5, 0
|
|
_0807BA86:
|
|
mov r0, r8
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
ldr r0, [r6, 0x4]
|
|
lsls r1, r4, 2
|
|
mov r4, r9
|
|
adds r2, r1, r4
|
|
ldr r1, [r2]
|
|
cmp r0, r1
|
|
bne _0807BB18
|
|
adds r5, 0x1
|
|
cmp r5, 0x9
|
|
ble _0807BA86
|
|
_0807BAA2:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r6, r2]
|
|
bl GetMapTileAtPosition
|
|
ldrh r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BB60
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
mov r9, r3
|
|
_0807BAC4:
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
movs r0, 0x4
|
|
ldrsh r2, [r6, r0]
|
|
ldr r0, _0807BB14
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
adds r2, r0
|
|
mov r8, r2
|
|
movs r0, 0x6
|
|
ldrsh r2, [r6, r0]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r1, r3]
|
|
adds r5, r2, r0
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl GetMapTileAtPosition
|
|
ldrb r0, [r0, 0x9]
|
|
cmp r0, 0xFF
|
|
bne _0807BB04
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
adds r2, 0x1
|
|
bl CanMoveForward
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807BB2E
|
|
_0807BB04:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
adds r4, 0x1
|
|
mov r1, r9
|
|
cmp r1, 0x7
|
|
ble _0807BAC4
|
|
b _0807BB60
|
|
.align 2, 0
|
|
_0807BB14: .4byte gAdjacentTileOffsets
|
|
_0807BB18:
|
|
movs r0, 0x4
|
|
mov r3, r10
|
|
strb r0, [r3]
|
|
ldrh r1, [r2]
|
|
adds r0, r7, 0
|
|
adds r0, 0x88
|
|
strh r1, [r0]
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
b _0807BB60
|
|
_0807BB2E:
|
|
movs r0, 0x3
|
|
mov r4, r10
|
|
strb r0, [r4]
|
|
adds r0, r7, 0
|
|
adds r0, 0x88
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r5, [r0]
|
|
b _0807BB60
|
|
_0807BB42:
|
|
movs r0, 0x3
|
|
mov r2, r10
|
|
strb r0, [r2]
|
|
ldr r0, _0807BB74
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldrh r3, [r6, 0x4]
|
|
adds r0, r3
|
|
ldr r4, [sp, 0x8]
|
|
strh r0, [r4]
|
|
ldrh r0, [r1, 0x2]
|
|
_0807BB5A:
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
strh r0, [r7]
|
|
_0807BB60:
|
|
movs r0, 0x1
|
|
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
|
|
_0807BB74: .4byte gAdjacentTileOffsets
|
|
thumb_func_end Explore
|
|
|
|
thumb_func_start sub_807BB78
|
|
sub_807BB78:
|
|
ldr r3, [r0, 0x70]
|
|
adds r1, r3, 0
|
|
adds r1, 0x78
|
|
movs r2, 0
|
|
strb r2, [r1]
|
|
adds r1, 0x10
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x80
|
|
str r2, [r0]
|
|
subs r0, 0x4
|
|
strh r2, [r0]
|
|
bx lr
|
|
thumb_func_end sub_807BB78
|
|
|
|
thumb_func_start DecideAttack
|
|
DecideAttack:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x5C
|
|
mov r10, r0
|
|
ldr r0, [r0, 0x70]
|
|
mov r8, r0
|
|
mov r0, r10
|
|
movs r1, 0
|
|
bl CannotAttack
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BBB6
|
|
b _0807C03A
|
|
_0807BBB6:
|
|
mov r0, r10
|
|
movs r1, 0x1
|
|
bl ShouldAvoidEnemies_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BBC6
|
|
b _0807C03A
|
|
_0807BBC6:
|
|
mov r0, r10
|
|
movs r1, 0x8
|
|
bl HasTactic
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BBD6
|
|
b _0807C03A
|
|
_0807BBD6:
|
|
mov r0, r8
|
|
adds r0, 0xBC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0807BBF2
|
|
ldr r0, _0807BC70
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl RollPercentChance
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BBF2
|
|
b _0807C03A
|
|
_0807BBF2:
|
|
mov r0, r8
|
|
adds r0, 0xC0
|
|
ldrb r1, [r0]
|
|
str r0, [sp, 0x50]
|
|
cmp r1, 0
|
|
beq _0807BC7C
|
|
movs r5, 0
|
|
movs r4, 0x8C
|
|
lsls r4, 1
|
|
add r4, r8
|
|
_0807BC06:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BC74
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
bl sub_80570AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BC74
|
|
mov r0, r8
|
|
adds r0, 0xC2
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _0807BC74
|
|
mov r0, r8
|
|
adds r0, 0x44
|
|
movs r1, 0x15
|
|
bl SetAction
|
|
adds r3, r5, 0
|
|
mov r6, r8
|
|
adds r6, 0x48
|
|
cmp r5, 0
|
|
bgt _0807BC3E
|
|
b _0807C006
|
|
_0807BC3E:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807BC4A
|
|
b _0807C006
|
|
_0807BC4A:
|
|
movs r4, 0x2
|
|
lsls r0, r5, 3
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
mov r7, r8
|
|
adds r2, r0, r7
|
|
_0807BC58:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _0807BC62
|
|
b _0807C006
|
|
_0807BC62:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807BC58
|
|
b _0807C006
|
|
.align 2, 0
|
|
_0807BC70: .4byte gConfusedAttackChance
|
|
_0807BC74:
|
|
adds r4, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0807BC06
|
|
_0807BC7C:
|
|
movs r0, 0
|
|
str r0, [sp, 0x44]
|
|
movs r1, 0
|
|
str r1, [sp, 0x40]
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
add r2, r8
|
|
movs r4, 0x1
|
|
movs r3, 0x4
|
|
movs r5, 0x3
|
|
_0807BC90:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BCB0
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BCA8
|
|
ldr r7, [sp, 0x40]
|
|
adds r7, 0x1
|
|
str r7, [sp, 0x40]
|
|
_0807BCA8:
|
|
ldrb r0, [r2, 0x4]
|
|
ldr r1, [sp, 0x44]
|
|
adds r1, r0
|
|
str r1, [sp, 0x44]
|
|
_0807BCB0:
|
|
adds r2, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0807BC90
|
|
ldr r2, [sp, 0x44]
|
|
cmp r2, 0
|
|
bne _0807BCF8
|
|
add r4, sp, 0x2C
|
|
movs r1, 0xB0
|
|
lsls r1, 1
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
mov r0, sp
|
|
mov r1, r10
|
|
adds r2, r4, 0
|
|
bl FindMoveTarget
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807BCDE
|
|
b _0807C03A
|
|
_0807BCDE:
|
|
mov r0, r8
|
|
adds r0, 0x44
|
|
movs r1, 0x17
|
|
bl SetAction
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
mov r1, r8
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
b _0807C008
|
|
_0807BCF8:
|
|
mov r0, r10
|
|
movs r1, 0xB
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x48]
|
|
mov r0, r10
|
|
movs r1, 0x6
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
str r1, [sp, 0x3C]
|
|
movs r7, 0
|
|
str r7, [sp, 0x44]
|
|
mov r0, sp
|
|
adds r0, 0x28
|
|
str r0, [sp, 0x4C]
|
|
adds r2, r0, 0
|
|
movs r1, 0x1
|
|
adds r0, 0x3
|
|
_0807BD2A:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r2
|
|
bge _0807BD2A
|
|
ldr r1, [sp, 0x3C]
|
|
cmp r1, 0
|
|
beq _0807BDC0
|
|
movs r2, 0x63
|
|
movs r4, 0
|
|
movs r5, 0
|
|
movs r3, 0x8C
|
|
lsls r3, 1
|
|
add r3, r8
|
|
b _0807BD98
|
|
_0807BD46:
|
|
cmp r5, 0
|
|
beq _0807BD7A
|
|
ldrb r1, [r3]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807BD7A
|
|
adds r0, r4, 0x1
|
|
adds r6, r5, 0x1
|
|
cmp r0, r5
|
|
bge _0807BD74
|
|
cmp r2, 0x1
|
|
bgt _0807BD74
|
|
adds r1, r4, 0
|
|
cmp r1, r5
|
|
bge _0807BD74
|
|
ldr r2, [sp, 0x4C]
|
|
movs r4, 0
|
|
_0807BD6A:
|
|
adds r0, r2, r1
|
|
strb r4, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, r5
|
|
blt _0807BD6A
|
|
_0807BD74:
|
|
ldrb r2, [r3, 0x4]
|
|
adds r4, r5, 0
|
|
b _0807BD86
|
|
_0807BD7A:
|
|
ldrb r1, [r3, 0x4]
|
|
cmp r1, r2
|
|
ble _0807BD82
|
|
adds r1, r2, 0
|
|
_0807BD82:
|
|
adds r2, r1, 0
|
|
adds r6, r5, 0x1
|
|
_0807BD86:
|
|
adds r5, r6, 0
|
|
cmp r5, 0x3
|
|
bgt _0807BDA2
|
|
lsls r0, r5, 3
|
|
movs r7, 0x8C
|
|
lsls r7, 1
|
|
adds r0, r7
|
|
mov r1, r8
|
|
adds r3, r1, r0
|
|
_0807BD98:
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807BD46
|
|
_0807BDA2:
|
|
adds r0, r4, 0x1
|
|
cmp r0, r5
|
|
bge _0807BDC0
|
|
cmp r2, 0x1
|
|
bgt _0807BDC0
|
|
adds r1, r4, 0
|
|
cmp r1, r5
|
|
bge _0807BDC0
|
|
ldr r2, [sp, 0x4C]
|
|
movs r3, 0
|
|
_0807BDB6:
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, r5
|
|
blt _0807BDB6
|
|
_0807BDC0:
|
|
movs r5, 0
|
|
movs r2, 0
|
|
str r2, [sp, 0x54]
|
|
add r4, sp, 0x4
|
|
movs r7, 0x8C
|
|
lsls r7, 1
|
|
add r7, r8
|
|
adds r6, r7, 0
|
|
mov r9, sp
|
|
mov r0, sp
|
|
str r0, [sp, 0x58]
|
|
_0807BDD6:
|
|
movs r2, 0
|
|
mov r1, r9
|
|
strb r2, [r1]
|
|
ldrb r1, [r7]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BE64
|
|
ldr r1, [sp, 0x4C]
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807BE64
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
ldr r2, [sp, 0x3C]
|
|
bl IsMoveUsable
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807BE64
|
|
ldrb r1, [r7]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BE64
|
|
movs r0, 0x1
|
|
mov r2, r9
|
|
strb r0, [r2]
|
|
ldr r1, [sp, 0x50]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xB
|
|
bne _0807BE38
|
|
ldrh r0, [r7, 0x2]
|
|
cmp r0, 0x80
|
|
bne _0807BE24
|
|
movs r2, 0
|
|
str r2, [r4]
|
|
b _0807BE64
|
|
_0807BE24:
|
|
mov r0, r10
|
|
adds r1, r6, 0
|
|
bl GetMoveType_2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
beq _0807BE4A
|
|
movs r0, 0x1
|
|
b _0807BE54
|
|
_0807BE38:
|
|
ldr r1, [sp, 0x48]
|
|
cmp r1, 0
|
|
beq _0807BE4A
|
|
ldr r0, [sp, 0x58]
|
|
mov r1, r10
|
|
adds r2, r6, 0
|
|
bl FindMoveTarget
|
|
b _0807BE54
|
|
_0807BE4A:
|
|
adds r0, r6, 0
|
|
bl GetMoveWeight
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0807BE54:
|
|
str r0, [r4]
|
|
add r0, sp, 0x4
|
|
ldr r2, [sp, 0x54]
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x44]
|
|
adds r1, r0
|
|
str r1, [sp, 0x44]
|
|
_0807BE64:
|
|
ldr r2, [sp, 0x54]
|
|
adds r2, 0x8
|
|
str r2, [sp, 0x54]
|
|
adds r4, 0x8
|
|
adds r7, 0x8
|
|
adds r6, 0x8
|
|
movs r0, 0x8
|
|
add r9, r0
|
|
ldr r1, [sp, 0x58]
|
|
adds r1, 0x8
|
|
str r1, [sp, 0x58]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0807BDD6
|
|
movs r0, 0
|
|
str r0, [sp, 0x24]
|
|
mov r0, r10
|
|
movs r1, 0x17
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807BECA
|
|
ldr r2, [sp, 0x50]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xB
|
|
beq _0807BECA
|
|
add r0, sp, 0x20
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xB
|
|
bne _0807BEAA
|
|
str r1, [sp, 0x24]
|
|
b _0807BEC2
|
|
_0807BEAA:
|
|
ldr r7, [sp, 0x48]
|
|
cmp r7, 0
|
|
beq _0807BEB4
|
|
movs r0, 0x2
|
|
b _0807BEC0
|
|
_0807BEB4:
|
|
ldr r0, _0807BEE8
|
|
ldr r2, [sp, 0x40]
|
|
lsls r1, r2, 1
|
|
adds r1, r0
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
_0807BEC0:
|
|
str r0, [sp, 0x24]
|
|
_0807BEC2:
|
|
ldr r0, [sp, 0x24]
|
|
ldr r1, [sp, 0x44]
|
|
adds r1, r0
|
|
str r1, [sp, 0x44]
|
|
_0807BECA:
|
|
ldr r2, [sp, 0x48]
|
|
cmp r2, 0
|
|
beq _0807BF2A
|
|
movs r5, 0
|
|
movs r7, 0
|
|
str r7, [sp, 0x44]
|
|
add r0, sp, 0x4
|
|
adds r3, r0, 0
|
|
mov r2, sp
|
|
movs r4, 0x4
|
|
_0807BEDE:
|
|
ldrb r1, [r2]
|
|
cmp r1, 0
|
|
bne _0807BEEC
|
|
str r1, [r3]
|
|
b _0807BEF4
|
|
.align 2, 0
|
|
_0807BEE8: .4byte gUnknown_80F4E22
|
|
_0807BEEC:
|
|
ldr r1, [r3]
|
|
cmp r5, r1
|
|
bge _0807BEF4
|
|
adds r5, r1, 0
|
|
_0807BEF4:
|
|
adds r3, 0x8
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0807BEDE
|
|
movs r4, 0
|
|
movs r6, 0
|
|
adds r1, r0, 0
|
|
adds r3, r1, 0
|
|
mov r2, sp
|
|
_0807BF08:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _0807BF1E
|
|
ldr r0, [r1]
|
|
cmp r5, r0
|
|
beq _0807BF16
|
|
str r6, [r1]
|
|
_0807BF16:
|
|
ldr r0, [r3]
|
|
ldr r7, [sp, 0x44]
|
|
adds r7, r0
|
|
str r7, [sp, 0x44]
|
|
_0807BF1E:
|
|
adds r1, 0x8
|
|
adds r3, 0x8
|
|
adds r2, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x4
|
|
ble _0807BF08
|
|
_0807BF2A:
|
|
ldr r0, [sp, 0x44]
|
|
cmp r0, 0
|
|
bne _0807BF32
|
|
b _0807C03A
|
|
_0807BF32:
|
|
bl DungeonRandomCapped
|
|
str r0, [sp, 0x38]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r0, r10
|
|
movs r1, 0x17
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807BF5A
|
|
add r1, sp, 0x34
|
|
mov r0, r10
|
|
movs r2, 0x1
|
|
bl TargetRegularAttack
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
b _0807BF5E
|
|
_0807BF5A:
|
|
movs r6, 0
|
|
str r6, [sp, 0x34]
|
|
_0807BF5E:
|
|
movs r5, 0
|
|
mov r4, sp
|
|
movs r7, 0
|
|
_0807BF64:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0807C010
|
|
add r0, sp, 0x4
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807C010
|
|
add r9, r0
|
|
ldr r2, [sp, 0x38]
|
|
cmp r9, r2
|
|
blt _0807C010
|
|
cmp r5, 0x4
|
|
bne _0807BF9C
|
|
cmp r6, 0
|
|
beq _0807C03A
|
|
mov r0, r8
|
|
adds r0, 0x44
|
|
movs r1, 0x32
|
|
bl SetAction
|
|
ldr r0, [sp, 0x34]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
mov r1, r8
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
b _0807C008
|
|
_0807BF9C:
|
|
movs r0, 0x8C
|
|
lsls r0, 1
|
|
mov r9, r0
|
|
adds r2, r7, r0
|
|
add r2, r8
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
bl FindMoveTarget
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0807C01A
|
|
mov r0, r8
|
|
adds r0, 0x44
|
|
movs r1, 0x15
|
|
bl SetAction
|
|
adds r3, r5, 0
|
|
mov r6, r8
|
|
adds r6, 0x48
|
|
movs r1, 0x46
|
|
add r1, r8
|
|
mov r12, r1
|
|
cmp r5, 0
|
|
ble _0807BFFC
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
add r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807BFFC
|
|
movs r7, 0x2
|
|
lsls r0, r5, 3
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r2, r0, r2
|
|
_0807BFEA:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
ble _0807BFFC
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807BFEA
|
|
_0807BFFC:
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
mov r2, r12
|
|
strb r0, [r2]
|
|
_0807C006:
|
|
strb r3, [r6]
|
|
_0807C008:
|
|
mov r0, r10
|
|
bl TargetTileInFront
|
|
b _0807C03A
|
|
_0807C010:
|
|
adds r4, 0x8
|
|
adds r7, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
ble _0807BF64
|
|
_0807C01A:
|
|
cmp r6, 0
|
|
beq _0807C03A
|
|
mov r0, r8
|
|
adds r0, 0x44
|
|
movs r1, 0x32
|
|
bl SetAction
|
|
ldr r0, [sp, 0x34]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
mov r1, r8
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
mov r0, r10
|
|
bl TargetTileInFront
|
|
_0807C03A:
|
|
add sp, 0x5C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DecideAttack
|
|
|
|
thumb_func_start FindMoveTarget
|
|
FindMoveTarget:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
str r0, [sp, 0x8]
|
|
adds r6, r1, 0
|
|
mov r10, r2
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x10]
|
|
ldr r4, [r6, 0x70]
|
|
movs r1, 0
|
|
mov r8, r1
|
|
ldr r1, _0807C0C8
|
|
movs r2, 0
|
|
adds r0, r1, 0x7
|
|
_0807C06E:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _0807C06E
|
|
adds r0, r6, 0
|
|
mov r1, r10
|
|
movs r2, 0x1
|
|
bl GetTargetingFlags
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
adds r0, r6, 0
|
|
movs r1, 0x8
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x14]
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x8]
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
adds r0, 0xBC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bne _0807C0B0
|
|
mov r0, r10
|
|
bl GetMoveDealsDirectDamage
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C0C4
|
|
_0807C0B0:
|
|
ldr r3, [sp, 0x14]
|
|
cmp r3, 0
|
|
beq _0807C0CC
|
|
adds r0, r6, 0
|
|
mov r1, r10
|
|
bl CanUseWithStatusChecker
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C0CC
|
|
_0807C0C4:
|
|
movs r0, 0x1
|
|
b _0807C48C
|
|
.align 2, 0
|
|
_0807C0C8: .4byte gCanAttackInDirection
|
|
_0807C0CC:
|
|
movs r0, 0xF0
|
|
ldr r1, [sp, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C0DE
|
|
cmp r0, 0x10
|
|
beq _0807C0DE
|
|
cmp r0, 0x20
|
|
bne _0807C19C
|
|
_0807C0DE:
|
|
adds r0, r4, 0
|
|
adds r0, 0xE8
|
|
ldrb r1, [r0]
|
|
cmp r1, 0x1
|
|
bne _0807C128
|
|
subs r0, 0xA2
|
|
ldrb r7, [r0]
|
|
ldr r0, _0807C118
|
|
adds r0, r7, r0
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
beq _0807C0F8
|
|
b _0807C3F6
|
|
_0807C0F8:
|
|
strb r1, [r0]
|
|
ldr r0, _0807C11C
|
|
add r0, r8
|
|
strb r7, [r0]
|
|
ldr r0, _0807C120
|
|
mov r4, r8
|
|
lsls r2, r4, 2
|
|
adds r0, r2, r0
|
|
movs r1, 0x63
|
|
str r1, [r0]
|
|
ldr r0, _0807C124
|
|
adds r2, r0
|
|
str r3, [r2]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C118: .4byte gCanAttackInDirection
|
|
_0807C11C: .4byte gUnknown_202F388
|
|
_0807C120: .4byte gPotentialTargetWeights_2
|
|
_0807C124: .4byte gUnknown_202F3B0
|
|
_0807C128:
|
|
movs r7, 0
|
|
movs r0, 0xF0
|
|
ldr r1, [sp, 0xC]
|
|
ands r0, r1
|
|
lsls r5, r0, 16
|
|
_0807C132:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
ldr r1, _0807C198
|
|
lsls r2, r7, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r4, 0x6
|
|
ldrsh r1, [r6, r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x10]
|
|
cmp r4, 0
|
|
beq _0807C18E
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807C18E
|
|
asrs r0, r5, 16
|
|
cmp r0, 0x10
|
|
beq _0807C178
|
|
cmp r0, 0x20
|
|
beq _0807C178
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CanAttackInFront
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C18E
|
|
_0807C178:
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
ldr r1, [sp, 0x14]
|
|
str r1, [sp, 0x4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r4, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
_0807C18E:
|
|
adds r7, 0x1
|
|
cmp r7, 0x7
|
|
ble _0807C132
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C198: .4byte gAdjacentTileOffsets
|
|
_0807C19C:
|
|
cmp r0, 0x30
|
|
bne _0807C1F0
|
|
movs r5, 0
|
|
_0807C1A2:
|
|
ldr r0, _0807C1E8
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0807C1EC
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C1E0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C1E0
|
|
mov r3, r10
|
|
str r3, [sp]
|
|
ldr r0, [sp, 0x14]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r4, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
_0807C1E0:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807C1A2
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C1E8: .4byte gDungeonGlobalData
|
|
_0807C1EC: .4byte 0x000135cc
|
|
_0807C1F0:
|
|
cmp r0, 0x40
|
|
bne _0807C2A8
|
|
movs r7, 0
|
|
ldr r1, _0807C2A4
|
|
mov r9, r1
|
|
_0807C1FA:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
mov r3, r9
|
|
movs r4, 0
|
|
ldrsh r1, [r3, r4]
|
|
adds r0, r1
|
|
movs r2, 0x6
|
|
ldrsh r1, [r6, r2]
|
|
movs r4, 0x2
|
|
ldrsh r2, [r3, r4]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl CanAttackInFront
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C296
|
|
ldr r5, [r4, 0x10]
|
|
cmp r5, 0
|
|
beq _0807C250
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807C250
|
|
mov r4, r8
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
ldr r1, [sp, 0x14]
|
|
str r1, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
cmp r4, r8
|
|
bne _0807C296
|
|
_0807C250:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
mov r3, r9
|
|
movs r4, 0
|
|
ldrsh r1, [r3, r4]
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r2, 0x6
|
|
ldrsh r1, [r6, r2]
|
|
movs r4, 0x2
|
|
ldrsh r2, [r3, r4]
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldr r5, [r4, 0x10]
|
|
cmp r5, 0
|
|
beq _0807C296
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807C296
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
ldr r1, [sp, 0x14]
|
|
str r1, [sp, 0x4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
_0807C296:
|
|
movs r2, 0x4
|
|
add r9, r2
|
|
adds r7, 0x1
|
|
cmp r7, 0x7
|
|
ble _0807C1FA
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C2A4: .4byte gAdjacentTileOffsets
|
|
_0807C2A8:
|
|
cmp r0, 0x50
|
|
beq _0807C2B0
|
|
cmp r0, 0x80
|
|
bne _0807C394
|
|
_0807C2B0:
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x18]
|
|
cmp r0, 0x50
|
|
bne _0807C2BC
|
|
movs r4, 0xA
|
|
str r4, [sp, 0x18]
|
|
_0807C2BC:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
_0807C2C0:
|
|
ldr r0, _0807C37C
|
|
ldr r0, [r0]
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
ldr r3, _0807C380
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C370
|
|
cmp r6, r4
|
|
beq _0807C370
|
|
adds r1, r4, 0x4
|
|
adds r0, r6, 0x4
|
|
bl CalculateFacingDir
|
|
adds r5, r0, 0
|
|
ldr r0, _0807C384
|
|
adds r7, r5, r0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
bne _0807C370
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C370
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x18]
|
|
bl IsTargetInLineRange
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C370
|
|
ldr r0, [sp, 0x14]
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0xC]
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
mov r3, r10
|
|
bl CanUseStatusMove
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C370
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
ldr r3, [sp, 0x18]
|
|
bl IsTargetStraightAhead
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C370
|
|
movs r0, 0x1
|
|
strb r0, [r7]
|
|
ldr r0, _0807C388
|
|
add r0, r8
|
|
strb r5, [r0]
|
|
adds r0, r6, 0
|
|
mov r1, r10
|
|
bl GetMoveType_2
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r4, 0
|
|
bl WeightMove
|
|
ldr r1, _0807C38C
|
|
mov r3, r8
|
|
lsls r2, r3, 2
|
|
adds r1, r2, r1
|
|
str r0, [r1]
|
|
ldr r0, _0807C390
|
|
adds r2, r0
|
|
str r4, [r2]
|
|
movs r4, 0x1
|
|
add r8, r4
|
|
_0807C370:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
mov r1, r9
|
|
cmp r1, 0x13
|
|
ble _0807C2C0
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C37C: .4byte gDungeonGlobalData
|
|
_0807C380: .4byte 0x000135cc
|
|
_0807C384: .4byte gCanAttackInDirection
|
|
_0807C388: .4byte gUnknown_202F388
|
|
_0807C38C: .4byte gPotentialTargetWeights_2
|
|
_0807C390: .4byte gUnknown_202F3B0
|
|
_0807C394:
|
|
cmp r0, 0x60
|
|
bne _0807C3DC
|
|
movs r5, 0
|
|
_0807C39A:
|
|
ldr r0, _0807C3D4
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0807C3D8
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C3CA
|
|
mov r3, r10
|
|
str r3, [sp]
|
|
ldr r0, [sp, 0x14]
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r4, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
_0807C3CA:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807C39A
|
|
b _0807C3F6
|
|
.align 2, 0
|
|
_0807C3D4: .4byte gDungeonGlobalData
|
|
_0807C3D8: .4byte 0x000135cc
|
|
_0807C3DC:
|
|
cmp r0, 0x70
|
|
bne _0807C3F6
|
|
mov r1, r10
|
|
str r1, [sp]
|
|
ldr r2, [sp, 0x14]
|
|
str r2, [sp, 0x4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
adds r3, r6, 0
|
|
bl WeightMoveIfUsable
|
|
mov r8, r0
|
|
_0807C3F6:
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
bne _0807C402
|
|
ldr r4, [sp, 0x8]
|
|
strb r3, [r4]
|
|
b _0807C48A
|
|
_0807C402:
|
|
movs r4, 0
|
|
movs r3, 0
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
ble _0807C420
|
|
ldr r2, _0807C464
|
|
mov r1, r8
|
|
_0807C410:
|
|
ldr r0, [r2]
|
|
cmp r3, r0
|
|
bge _0807C418
|
|
adds r3, r0, 0
|
|
_0807C418:
|
|
adds r2, 0x4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _0807C410
|
|
_0807C420:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
ble _0807C43A
|
|
movs r5, 0
|
|
ldr r2, _0807C464
|
|
_0807C42A:
|
|
ldr r0, [r2]
|
|
cmp r3, r0
|
|
beq _0807C432
|
|
str r5, [r2]
|
|
_0807C432:
|
|
adds r2, 0x4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _0807C42A
|
|
_0807C43A:
|
|
str r3, [sp, 0x10]
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
ble _0807C450
|
|
ldr r2, _0807C464
|
|
mov r1, r8
|
|
_0807C446:
|
|
ldm r2!, {r0}
|
|
adds r4, r0
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _0807C446
|
|
_0807C450:
|
|
adds r0, r4, 0
|
|
bl DungeonRandomCapped
|
|
adds r2, r0, 0
|
|
movs r1, 0
|
|
cmp r1, r8
|
|
bge _0807C478
|
|
ldr r3, _0807C464
|
|
b _0807C470
|
|
.align 2, 0
|
|
_0807C464: .4byte gPotentialTargetWeights_2
|
|
_0807C468:
|
|
adds r3, 0x4
|
|
adds r1, 0x1
|
|
cmp r1, r8
|
|
bge _0807C478
|
|
_0807C470:
|
|
ldr r0, [r3]
|
|
subs r2, r0
|
|
cmp r2, 0
|
|
bge _0807C468
|
|
_0807C478:
|
|
movs r0, 0x1
|
|
ldr r3, [sp, 0x8]
|
|
strb r0, [r3]
|
|
ldr r0, _0807C49C
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r3, 0x1]
|
|
movs r0, 0x8
|
|
str r0, [r3, 0x4]
|
|
_0807C48A:
|
|
ldr r0, [sp, 0x10]
|
|
_0807C48C:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807C49C: .4byte gUnknown_202F388
|
|
thumb_func_end FindMoveTarget
|
|
|
|
thumb_func_start IsTargetInLineRange
|
|
IsTargetInLineRange:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r5, r3]
|
|
subs r3, r1, r0
|
|
cmp r3, 0
|
|
bge _0807C4B6
|
|
negs r3, r3
|
|
_0807C4B6:
|
|
movs r6, 0x6
|
|
ldrsh r1, [r4, r6]
|
|
movs r7, 0x6
|
|
ldrsh r0, [r5, r7]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807C4C6
|
|
negs r1, r1
|
|
_0807C4C6:
|
|
adds r0, r1, 0
|
|
cmp r1, r3
|
|
bge _0807C4CE
|
|
adds r0, r3, 0
|
|
_0807C4CE:
|
|
cmp r0, 0xA
|
|
bgt _0807C578
|
|
cmp r0, r2
|
|
bgt _0807C578
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
cmp r3, r1
|
|
bne _0807C516
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
ldrh r2, [r4, 0x4]
|
|
ldrh r3, [r5, 0x4]
|
|
cmp r1, r0
|
|
bge _0807C4FE
|
|
movs r6, 0x6
|
|
ldrsh r1, [r4, r6]
|
|
movs r7, 0x6
|
|
ldrsh r0, [r5, r7]
|
|
cmp r1, r0
|
|
blt _0807C574
|
|
cmp r1, r0
|
|
bgt _0807C574
|
|
_0807C4FE:
|
|
lsls r1, r2, 16
|
|
lsls r0, r3, 16
|
|
movs r6, 0x7
|
|
cmp r1, r0
|
|
ble _0807C570
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
ble _0807C570
|
|
b _0807C574
|
|
_0807C516:
|
|
movs r3, 0x4
|
|
ldrsh r1, [r4, r3]
|
|
movs r7, 0x4
|
|
ldrsh r0, [r5, r7]
|
|
ldrh r2, [r4, 0x4]
|
|
ldrh r3, [r5, 0x4]
|
|
cmp r1, r0
|
|
bne _0807C532
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r7, 0x6
|
|
ldrsh r0, [r5, r7]
|
|
cmp r1, r0
|
|
blt _0807C574
|
|
_0807C532:
|
|
lsls r1, r2, 16
|
|
lsls r0, r3, 16
|
|
cmp r1, r0
|
|
bge _0807C546
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r7, 0x6
|
|
ldrsh r0, [r5, r7]
|
|
cmp r1, r0
|
|
beq _0807C574
|
|
_0807C546:
|
|
lsls r1, r2, 16
|
|
lsls r0, r3, 16
|
|
cmp r1, r0
|
|
bne _0807C55A
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r7, 0x6
|
|
ldrsh r0, [r5, r7]
|
|
cmp r1, r0
|
|
bgt _0807C574
|
|
_0807C55A:
|
|
lsls r1, r2, 16
|
|
lsls r0, r3, 16
|
|
cmp r1, r0
|
|
ble _0807C570
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _0807C570
|
|
movs r6, 0x6
|
|
_0807C570:
|
|
cmp r6, 0
|
|
blt _0807C578
|
|
_0807C574:
|
|
movs r0, 0x1
|
|
b _0807C57A
|
|
_0807C578:
|
|
movs r0, 0
|
|
_0807C57A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsTargetInLineRange
|
|
|
|
thumb_func_start WeightMoveIfUsable
|
|
WeightMoveIfUsable:
|
|
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, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x28]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r9, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r2, [r5, 0x70]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r0, [r7, 0x4]
|
|
cmp r1, r0
|
|
beq _0807C5BC
|
|
movs r0, 0xF0
|
|
mov r1, r9
|
|
ands r0, r1
|
|
cmp r0, 0x30
|
|
beq _0807C5BC
|
|
cmp r0, 0x60
|
|
beq _0807C5BC
|
|
cmp r0, 0x70
|
|
bne _0807C5C4
|
|
_0807C5BC:
|
|
adds r0, r2, 0
|
|
adds r0, 0x46
|
|
ldrb r4, [r0]
|
|
b _0807C5CE
|
|
_0807C5C4:
|
|
adds r0, r5, 0x4
|
|
adds r1, r7, 0x4
|
|
bl CalculateFacingDir
|
|
adds r4, r0, 0
|
|
_0807C5CE:
|
|
ldr r0, _0807C638
|
|
adds r0, r4
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807C624
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
ldr r3, [sp, 0x24]
|
|
bl CanUseStatusMove
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C624
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r0, _0807C63C
|
|
adds r0, r6, r0
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x24]
|
|
bl GetMoveType_2
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
adds r2, r7, 0
|
|
bl WeightMove
|
|
ldr r1, _0807C640
|
|
lsls r2, r6, 2
|
|
adds r1, r2, r1
|
|
str r0, [r1]
|
|
ldr r0, _0807C644
|
|
adds r2, r0
|
|
str r7, [r2]
|
|
adds r6, 0x1
|
|
_0807C624:
|
|
adds r0, r6, 0
|
|
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
|
|
_0807C638: .4byte gCanAttackInDirection
|
|
_0807C63C: .4byte gUnknown_202F388
|
|
_0807C640: .4byte gPotentialTargetWeights_2
|
|
_0807C644: .4byte gUnknown_202F3B0
|
|
thumb_func_end WeightMoveIfUsable
|
|
|
|
thumb_func_start CanUseStatusMove
|
|
CanUseStatusMove:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r1, [sp, 0x1C]
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
movs r7, 0
|
|
movs r0, 0xF
|
|
ands r0, r6
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0807C686
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807C6E0
|
|
movs r7, 0x1
|
|
b _0807C6E4
|
|
_0807C686:
|
|
cmp r1, 0x1
|
|
beq _0807C6BE
|
|
cmp r1, 0x2
|
|
bne _0807C692
|
|
ldr r1, [r4, 0x70]
|
|
b _0807C69C
|
|
_0807C692:
|
|
cmp r1, 0x5
|
|
bne _0807C6B6
|
|
ldr r1, [r4, 0x70]
|
|
cmp r5, r4
|
|
beq _0807C6B2
|
|
_0807C69C:
|
|
movs r7, 0x1
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0x1
|
|
beq _0807C6B2
|
|
adds r0, r1, 0
|
|
adds r0, 0xA4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
beq _0807C6B2
|
|
cmp r0, 0x1
|
|
bne _0807C6E0
|
|
_0807C6B2:
|
|
movs r0, 0
|
|
b _0807C7A0
|
|
_0807C6B6:
|
|
cmp r1, 0x6
|
|
bne _0807C6D4
|
|
cmp r5, r4
|
|
beq _0807C6B2
|
|
_0807C6BE:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C6E0
|
|
movs r7, 0x1
|
|
b _0807C6E4
|
|
_0807C6D4:
|
|
subs r0, 0x3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0807C6E0
|
|
movs r7, 0x1
|
|
_0807C6E0:
|
|
cmp r7, 0
|
|
beq _0807C79E
|
|
_0807C6E4:
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _0807C77C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
bl CanUseWithStatusChecker_2
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C6B2
|
|
movs r1, 0xF0
|
|
lsls r1, 4
|
|
ands r1, r6
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0807C78A
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _0807C76E
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
bne _0807C720
|
|
adds r0, r4, 0
|
|
bl HasNegativeStatus
|
|
b _0807C774
|
|
_0807C720:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _0807C730
|
|
adds r0, r4, 0
|
|
bl IsSleeping
|
|
b _0807C774
|
|
_0807C730:
|
|
movs r0, 0xC0
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _0807C75A
|
|
ldr r1, [r4, 0x70]
|
|
adds r0, r1, 0
|
|
adds r0, 0x5C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xE
|
|
beq _0807C74E
|
|
adds r0, r1, 0
|
|
adds r0, 0x5D
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xE
|
|
bne _0807C6B2
|
|
_0807C74E:
|
|
adds r0, r1, 0
|
|
adds r0, 0xF5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807C79E
|
|
b _0807C6B2
|
|
_0807C75A:
|
|
movs r0, 0xA0
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _0807C79E
|
|
adds r0, r4, 0
|
|
bl HasNegativeStatus
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C79E
|
|
_0807C76E:
|
|
adds r0, r4, 0
|
|
bl HasQuarterHPOrLess
|
|
_0807C774:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C79E
|
|
b _0807C6B2
|
|
_0807C77C:
|
|
movs r0, 0xF0
|
|
lsls r0, 4
|
|
ands r0, r6
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _0807C79E
|
|
_0807C78A:
|
|
mov r0, r8
|
|
movs r1, 0x2
|
|
bl GetMoveAccuracy
|
|
adds r4, r0, 0
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
cmp r0, r4
|
|
bge _0807C6B2
|
|
_0807C79E:
|
|
adds r0, r7, 0
|
|
_0807C7A0:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CanUseStatusMove
|
|
|
|
thumb_func_start WeightMove
|
|
WeightMove:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
mov r8, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
movs r6, 0x1
|
|
ldr r4, [r2, 0x70]
|
|
adds r7, r4, 0
|
|
ldrb r0, [r4, 0x6]
|
|
cmp r0, 0
|
|
beq _0807C7D6
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807C7DA
|
|
_0807C7D6:
|
|
movs r0, 0x1
|
|
b _0807C848
|
|
_0807C7DA:
|
|
adds r0, r5, 0
|
|
movs r1, 0x9
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C804
|
|
ldr r0, _0807C7FC
|
|
ldr r0, [r0]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
ldr r2, _0807C800
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
b _0807C846
|
|
.align 2, 0
|
|
_0807C7FC: .4byte gDungeonGlobalData
|
|
_0807C800: .4byte 0x0000363c
|
|
_0807C804:
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C828
|
|
ldrb r1, [r7, 0xE]
|
|
movs r2, 0xC
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
bne _0807C846
|
|
movs r6, 0x1
|
|
b _0807C846
|
|
_0807C828:
|
|
adds r0, r5, 0
|
|
movs r1, 0xB
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C846
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
mov r2, r9
|
|
bl WeightWeakTypePicker
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0807C846:
|
|
adds r0, r6, 0
|
|
_0807C848:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end WeightMove
|
|
|
|
thumb_func_start TargetRegularAttack
|
|
TargetRegularAttack:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x50
|
|
adds r7, r0, 0
|
|
str r1, [sp, 0x40]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x44]
|
|
ldr r0, [r7, 0x70]
|
|
movs r1, 0
|
|
mov r8, r1
|
|
adds r1, r0, 0
|
|
adds r1, 0x46
|
|
ldrb r6, [r1]
|
|
adds r0, 0xE8
|
|
ldrb r0, [r0]
|
|
movs r3, 0x8
|
|
mov r10, r3
|
|
cmp r0, 0x1
|
|
bne _0807C886
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
_0807C886:
|
|
movs r4, 0
|
|
adds r0, r7, 0
|
|
movs r1, 0x9
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807C8A4
|
|
adds r0, r7, 0
|
|
movs r1, 0xA
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C8A6
|
|
_0807C8A4:
|
|
movs r4, 0x1
|
|
_0807C8A6:
|
|
str r4, [sp, 0x48]
|
|
adds r0, r7, 0
|
|
movs r1, 0x8
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4C]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
cmp r9, r10
|
|
bge _0807C952
|
|
_0807C8BE:
|
|
movs r0, 0x7
|
|
ands r6, r0
|
|
movs r3, 0x4
|
|
ldrsh r0, [r7, r3]
|
|
ldr r1, _0807C95C
|
|
lsls r2, r6, 2
|
|
adds r2, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r3, 0x6
|
|
ldrsh r1, [r7, r3]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r2, r3]
|
|
adds r1, r2
|
|
bl GetMapTileAtPosition
|
|
ldr r5, [r0, 0x10]
|
|
cmp r5, 0
|
|
beq _0807C948
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807C948
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl CanAttackInFront
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807C948
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
ldr r3, [sp, 0x44]
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0807C948
|
|
ldr r0, [sp, 0x4C]
|
|
cmp r0, 0
|
|
beq _0807C922
|
|
ldr r0, [r5, 0x70]
|
|
adds r0, 0xB0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0807C948
|
|
_0807C922:
|
|
mov r1, r8
|
|
lsls r4, r1, 2
|
|
mov r3, sp
|
|
adds r0, r3, r4
|
|
str r6, [r0]
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl WeightMove
|
|
add r1, sp, 0x20
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0x48]
|
|
cmp r0, 0
|
|
beq _0807C960
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_0807C948:
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
adds r6, 0x1
|
|
cmp r9, r10
|
|
blt _0807C8BE
|
|
_0807C952:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _0807C966
|
|
movs r0, 0
|
|
b _0807C9E8
|
|
.align 2, 0
|
|
_0807C95C: .4byte gAdjacentTileOffsets
|
|
_0807C960:
|
|
ldr r1, [sp, 0x40]
|
|
str r6, [r1]
|
|
b _0807C9E6
|
|
_0807C966:
|
|
movs r4, 0
|
|
movs r3, 0
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
ble _0807C984
|
|
add r1, sp, 0x20
|
|
mov r2, r8
|
|
_0807C974:
|
|
ldr r0, [r1]
|
|
cmp r3, r0
|
|
bge _0807C97C
|
|
adds r3, r0, 0
|
|
_0807C97C:
|
|
adds r1, 0x4
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _0807C974
|
|
_0807C984:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
ble _0807C9A0
|
|
movs r5, 0
|
|
add r1, sp, 0x20
|
|
mov r2, r8
|
|
_0807C990:
|
|
ldr r0, [r1]
|
|
cmp r3, r0
|
|
beq _0807C998
|
|
str r5, [r1]
|
|
_0807C998:
|
|
adds r1, 0x4
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _0807C990
|
|
_0807C9A0:
|
|
mov r3, r8
|
|
cmp r3, 0
|
|
ble _0807C9B4
|
|
add r1, sp, 0x20
|
|
mov r2, r8
|
|
_0807C9AA:
|
|
ldm r1!, {r0}
|
|
adds r4, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _0807C9AA
|
|
_0807C9B4:
|
|
adds r0, r4, 0
|
|
bl DungeonRandomCapped
|
|
adds r1, r0, 0
|
|
movs r2, 0
|
|
cmp r2, r8
|
|
bge _0807C9DC
|
|
ldr r0, [sp, 0x20]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
blt _0807C9DC
|
|
add r3, sp, 0x20
|
|
_0807C9CC:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, r8
|
|
bge _0807C9DC
|
|
ldr r0, [r3]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807C9CC
|
|
_0807C9DC:
|
|
lsls r0, r2, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x40]
|
|
str r0, [r1]
|
|
_0807C9E6:
|
|
movs r0, 0x1
|
|
_0807C9E8:
|
|
add sp, 0x50
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end TargetRegularAttack
|
|
|
|
thumb_func_start IsTargetStraightAhead
|
|
IsTargetStraightAhead:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r4, r0, 0
|
|
mov r10, r1
|
|
adds r7, r2, 0
|
|
adds r5, r3, 0
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
mov r2, r10
|
|
movs r3, 0x4
|
|
ldrsh r0, [r2, r3]
|
|
subs r2, r1, r0
|
|
cmp r2, 0
|
|
bge _0807CA1C
|
|
negs r2, r2
|
|
_0807CA1C:
|
|
movs r6, 0x6
|
|
ldrsh r1, [r4, r6]
|
|
mov r3, r10
|
|
movs r6, 0x6
|
|
ldrsh r0, [r3, r6]
|
|
subs r6, r1, r0
|
|
cmp r6, 0
|
|
bge _0807CA2E
|
|
negs r6, r6
|
|
_0807CA2E:
|
|
cmp r6, r2
|
|
bge _0807CA34
|
|
adds r6, r2, 0
|
|
_0807CA34:
|
|
cmp r6, r5
|
|
ble _0807CA3A
|
|
adds r6, r5, 0
|
|
_0807CA3A:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl HasIQSkill
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CA50
|
|
cmp r6, r5
|
|
bgt _0807CAAC
|
|
_0807CA4C:
|
|
movs r0, 0x1
|
|
b _0807CAAE
|
|
_0807CA50:
|
|
movs r0, 0x4
|
|
ldrsh r5, [r4, r0]
|
|
movs r1, 0x6
|
|
ldrsh r4, [r4, r1]
|
|
ldr r1, _0807CA70
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
mov r9, r2
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
mov r8, r1
|
|
movs r7, 0
|
|
b _0807CA94
|
|
.align 2, 0
|
|
_0807CA70: .4byte gAdjacentTileOffsets
|
|
_0807CA74:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapTileAtPosition
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807CAAC
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r10
|
|
beq _0807CA4C
|
|
cmp r0, 0
|
|
bne _0807CAAC
|
|
adds r7, 0x1
|
|
_0807CA94:
|
|
cmp r7, r6
|
|
bgt _0807CAAC
|
|
add r5, r9
|
|
add r4, r8
|
|
cmp r5, 0
|
|
ble _0807CAAC
|
|
cmp r4, 0
|
|
ble _0807CAAC
|
|
cmp r5, 0x36
|
|
bgt _0807CAAC
|
|
cmp r4, 0x1E
|
|
ble _0807CA74
|
|
_0807CAAC:
|
|
movs r0, 0
|
|
_0807CAAE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsTargetStraightAhead
|
|
|
|
thumb_func_start sub_807CABC
|
|
sub_807CABC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r6, 0
|
|
b _0807CADC
|
|
_0807CAC6:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CB0A
|
|
ldr r1, _0807CB38
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807CB0A
|
|
adds r6, 0x1
|
|
_0807CADC:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8070828
|
|
cmp r6, r0
|
|
bge _0807CB0A
|
|
ldr r5, [r4, 0x70]
|
|
adds r0, r5, 0
|
|
adds r0, 0x48
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
bl sub_8055A00
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CAC6
|
|
_0807CB0A:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8057588
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CB2A
|
|
ldr r0, [r4, 0x70]
|
|
adds r0, 0x48
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_806A9B4
|
|
_0807CB2A:
|
|
adds r0, r4, 0
|
|
bl sub_806A1B0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807CB38: .4byte 0x00000159
|
|
thumb_func_end sub_807CABC
|
|
|
|
thumb_func_start sub_807CB3C
|
|
sub_807CB3C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
adds r6, r0, 0
|
|
ldr r7, [r6, 0x70]
|
|
movs r1, 0
|
|
movs r2, 0x15
|
|
bl sub_8044D90
|
|
adds r2, r0, 0
|
|
ldr r5, [r2]
|
|
ldrb r1, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807CB80
|
|
ldr r0, _0807CB78
|
|
adds r1, r2, 0
|
|
bl sub_8045BF8
|
|
ldr r0, _0807CB7C
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
b _0807CD54
|
|
.align 2, 0
|
|
_0807CB78: .4byte gUnknown_202DE58
|
|
_0807CB7C: .4byte gUnknown_80FE3E8
|
|
_0807CB80:
|
|
add r0, sp, 0x8
|
|
adds r1, r7, 0
|
|
adds r1, 0x44
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CBAC
|
|
ldr r0, _0807CBA8
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
movs r4, 0x1
|
|
b _0807CCDE
|
|
.align 2, 0
|
|
_0807CBA8: .4byte gPtrMysteriousPowerPreventedUseMessage
|
|
_0807CBAC:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
add r4, sp, 0x20
|
|
lsls r5, 8
|
|
lsrs r0, r5, 24
|
|
bl GetItemMove
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
ldrb r0, [r7, 0x7]
|
|
mov r10, r4
|
|
mov r9, r5
|
|
cmp r0, 0
|
|
bne _0807CC08
|
|
ldr r1, _0807CC20
|
|
ldr r0, [sp, 0x28]
|
|
ands r0, r1
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
str r0, [sp, 0x28]
|
|
movs r0, 0xA
|
|
add r4, sp, 0x28
|
|
str r0, [r4, 0x4]
|
|
movs r3, 0x8C
|
|
lsls r3, 1
|
|
adds r2, r7, r3
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl FindMoveTarget
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0807CC08
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
adds r1, r7, 0
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
bl TargetTileInFront
|
|
_0807CC08:
|
|
adds r0, r7, 0
|
|
adds r0, 0xBC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807CC2C
|
|
ldr r0, _0807CC24
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807CC28
|
|
b _0807CC3C
|
|
.align 2, 0
|
|
_0807CC20: .4byte 0xffffff00
|
|
_0807CC24: .4byte gAvailablePokemonNames
|
|
_0807CC28: .4byte gUnknown_80FC714
|
|
_0807CC2C:
|
|
cmp r0, 0x7
|
|
bne _0807CC50
|
|
ldr r0, _0807CC48
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807CC4C
|
|
_0807CC3C:
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
b _0807CCDC
|
|
.align 2, 0
|
|
_0807CC48: .4byte gAvailablePokemonNames
|
|
_0807CC4C: .4byte gUnknown_80FC718
|
|
_0807CC50:
|
|
adds r0, r7, 0
|
|
adds r0, 0xAC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _0807CC72
|
|
ldr r0, _0807CCB8
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807CCBC
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
movs r4, 0
|
|
mov r8, r4
|
|
_0807CC72:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0807CCDC
|
|
mov r5, r9
|
|
lsrs r0, r5, 24
|
|
cmp r0, 0xB6
|
|
beq _0807CC84
|
|
cmp r0, 0xBF
|
|
bne _0807CCC0
|
|
_0807CC84:
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0x7A
|
|
bl sub_8044DF0
|
|
mov r2, r10
|
|
ldrb r1, [r2]
|
|
movs r0, 0x8
|
|
movs r4, 0
|
|
orrs r0, r1
|
|
add r3, sp, 0x20
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0xA
|
|
strb r0, [r3, 0x4]
|
|
lsrs r2, r5, 24
|
|
str r4, [sp]
|
|
str r3, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl sub_8055FA0
|
|
b _0807CCDE
|
|
.align 2, 0
|
|
_0807CCB8: .4byte gAvailablePokemonNames
|
|
_0807CCBC: .4byte gUnknown_80FC6A8
|
|
_0807CCC0:
|
|
mov r3, r9
|
|
lsrs r2, r3, 24
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
mov r4, r10
|
|
str r4, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl sub_8055FA0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
b _0807CCDE
|
|
_0807CCDC:
|
|
movs r4, 0
|
|
_0807CCDE:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CD38
|
|
cmp r4, 0
|
|
beq _0807CCF8
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0x7A
|
|
bl sub_8044DF0
|
|
_0807CCF8:
|
|
adds r0, r6, 0
|
|
bl sub_8071DA4
|
|
adds r0, r6, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0
|
|
beq _0807CD18
|
|
adds r0, r6, 0x4
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807CD18:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807CD30
|
|
ldr r0, [r0]
|
|
ldr r1, _0807CD34
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8075900
|
|
b _0807CD44
|
|
.align 2, 0
|
|
_0807CD30: .4byte gDungeonGlobalData
|
|
_0807CD34: .4byte 0x00003a08
|
|
_0807CD38:
|
|
cmp r4, 0
|
|
beq _0807CD44
|
|
add r0, sp, 0x8
|
|
movs r1, 0
|
|
bl sub_8044D40
|
|
_0807CD44:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CD54
|
|
adds r0, r6, 0
|
|
bl sub_806A1B0
|
|
_0807CD54:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807CB3C
|
|
|
|
thumb_func_start GetTargetingFlags
|
|
GetTargetingFlags:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
ldrh r0, [r4, 0x2]
|
|
cmp r0, 0xED
|
|
bne _0807CD88
|
|
cmp r5, 0
|
|
bne _0807CD88
|
|
adds r0, r3, 0
|
|
movs r1, 0xE
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CD88
|
|
movs r0, 0x73
|
|
b _0807CD94
|
|
_0807CD88:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetMoveTargetingFlags
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
_0807CD94:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetTargetingFlags
|
|
|
|
thumb_func_start sub_807CD9C
|
|
sub_807CD9C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x24]
|
|
bl IsFixedDungeon
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CDC4
|
|
ldr r0, _0807CDC0
|
|
b _0807CDFE
|
|
.align 2, 0
|
|
_0807CDC0: .4byte gUnknown_80FC9E8
|
|
_0807CDC4:
|
|
cmp r9, r6
|
|
bne _0807CDE4
|
|
ldr r0, _0807CDDC
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807CDE0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
b _0807CE02
|
|
.align 2, 0
|
|
_0807CDDC: .4byte gAvailablePokemonNames
|
|
_0807CDE0: .4byte gUnknown_80FCA10
|
|
_0807CDE4:
|
|
ldr r0, _0807CE0C
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r6, 0
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CE28
|
|
ldr r0, _0807CE10
|
|
_0807CDFE:
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
_0807CE02:
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0807D02A
|
|
.align 2, 0
|
|
_0807CE0C: .4byte gAvailablePokemonNames
|
|
_0807CE10: .4byte gUnknown_80FCBCC
|
|
_0807CE14:
|
|
str r0, [sp, 0x28]
|
|
b _0807CF26
|
|
_0807CE18:
|
|
ldrh r0, [r5]
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
mov r10, r0
|
|
b _0807CF20
|
|
_0807CE28:
|
|
ldr r1, [r6, 0x70]
|
|
adds r2, r4, 0x4
|
|
movs r3, 0x7
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
adds r1, 0x46
|
|
strb r0, [r1]
|
|
movs r0, 0x7
|
|
ands r2, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0x6
|
|
bl sub_806CDD4
|
|
ldr r1, _0807D03C
|
|
adds r0, r6, 0
|
|
bl sub_80421C0
|
|
ldr r0, _0807D040
|
|
ldr r2, [r0]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
movs r2, 0
|
|
str r2, [sp, 0x28]
|
|
lsls r1, r4, 2
|
|
ldr r0, _0807D044
|
|
adds r1, r0
|
|
mov r8, r1
|
|
add r7, sp, 0x18
|
|
_0807CE68:
|
|
ldr r2, [r6, 0x4]
|
|
str r2, [sp, 0x18]
|
|
ldrh r0, [r7]
|
|
mov r3, r8
|
|
ldrh r3, [r3]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0807D048
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0x18]
|
|
asrs r0, r1, 16
|
|
mov r2, r8
|
|
ldrh r2, [r2, 0x2]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
ldr r2, _0807D04C
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp, 0x18]
|
|
movs r3, 0
|
|
ldrsh r0, [r7, r3]
|
|
cmp r0, 0
|
|
blt _0807CF20
|
|
asrs r1, r2, 16
|
|
cmp r1, 0
|
|
blt _0807CF20
|
|
cmp r0, 0x37
|
|
bgt _0807CF20
|
|
cmp r1, 0x1F
|
|
bgt _0807CF20
|
|
mov r1, r8
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 10
|
|
str r0, [sp, 0x2C]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r1, r3]
|
|
lsls r0, 10
|
|
str r0, [sp, 0x30]
|
|
movs r4, 0x5
|
|
_0807CEBC:
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x2C]
|
|
ldr r2, [sp, 0x30]
|
|
bl sub_804539C
|
|
adds r0, r6, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CED8
|
|
movs r0, 0x19
|
|
bl sub_803E46C
|
|
_0807CED8:
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0807CEBC
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
ldr r1, [sp, 0x18]
|
|
asrs r1, 16
|
|
bl GetMapTileAtPosition
|
|
adds r5, r0, 0
|
|
ldr r0, [r5, 0x10]
|
|
cmp r0, 0
|
|
bne _0807CE14
|
|
add r4, sp, 0x18
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80705F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807CE18
|
|
movs r2, 0
|
|
ldrsh r1, [r7, r2]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r4, r3]
|
|
adds r0, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
ldr r0, [sp, 0x24]
|
|
subs r0, 0x1
|
|
str r0, [sp, 0x24]
|
|
cmp r0, 0
|
|
bgt _0807CE68
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
_0807CF20:
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _0807CF4E
|
|
_0807CF26:
|
|
adds r1, r6, 0x4
|
|
adds r0, r6, 0
|
|
bl sub_807D068
|
|
ldr r0, _0807D050
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, _0807D054
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r1, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0807CF4E:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807D02A
|
|
ldr r0, [sp, 0x28]
|
|
cmp r0, 0
|
|
beq _0807CF9E
|
|
add r4, sp, 0x1C
|
|
ldr r1, _0807D058
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
ldr r0, [sp, 0x28]
|
|
adds r1, r4, 0
|
|
bl sub_80571F0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0807CF9E
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x28]
|
|
bl sub_807A96C
|
|
ldr r0, _0807D050
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
ldr r0, _0807D05C
|
|
str r0, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
str r4, [sp, 0x10]
|
|
str r4, [sp, 0x14]
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x28]
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0807CF9E:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0807D02A
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D02A
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
adds r4, r6, 0x4
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80706A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807CFD8
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_0807CFD8:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D02A
|
|
adds r0, r6, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
ldr r0, [r6, 0x70]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0807D014
|
|
ldr r1, _0807D060
|
|
ldr r0, [r1]
|
|
strb r5, [r0, 0x1]
|
|
ldr r0, [r1]
|
|
movs r2, 0xB8
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807D014:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807D060
|
|
ldr r0, [r0]
|
|
ldr r3, _0807D064
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8075900
|
|
_0807D02A:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807D03C: .4byte 0x000001a3
|
|
_0807D040: .4byte gUnknown_80F8A0C
|
|
_0807D044: .4byte gAdjacentTileOffsets
|
|
_0807D048: .4byte 0xffff0000
|
|
_0807D04C: .4byte 0x0000ffff
|
|
_0807D050: .4byte gUnknown_80F4F90
|
|
_0807D054: .4byte 0x00000219
|
|
_0807D058: .4byte 0x00000163
|
|
_0807D05C: .4byte 0x0000021a
|
|
_0807D060: .4byte gDungeonGlobalData
|
|
_0807D064: .4byte 0x00003a08
|
|
thumb_func_end sub_807CD9C
|
|
|
|
thumb_func_start sub_807D068
|
|
sub_807D068:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 11
|
|
movs r2, 0xC0
|
|
lsls r2, 4
|
|
adds r2, r0
|
|
mov r10, r2
|
|
movs r0, 0x2
|
|
ldrsh r1, [r1, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 11
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
adds r1, r0
|
|
mov r9, r1
|
|
ldr r0, [r6, 0xC]
|
|
subs r0, r2
|
|
cmp r0, 0
|
|
bge _0807D0A4
|
|
negs r0, r0
|
|
_0807D0A4:
|
|
ldr r1, [r6, 0x10]
|
|
cmp r0, 0xB
|
|
bgt _0807D0B8
|
|
mov r2, r9
|
|
subs r0, r1, r2
|
|
cmp r0, 0
|
|
bge _0807D0B4
|
|
negs r0, r0
|
|
_0807D0B4:
|
|
cmp r0, 0xB
|
|
ble _0807D11E
|
|
_0807D0B8:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r5, [r6, 0xC]
|
|
adds r4, r1, 0
|
|
mov r1, r10
|
|
subs r0, r1, r5
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
str r0, [sp, 0x8]
|
|
mov r2, r9
|
|
subs r0, r2, r4
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
str r0, [sp, 0xC]
|
|
mov r0, sp
|
|
str r0, [sp, 0x10]
|
|
movs r7, 0xB
|
|
_0807D0DE:
|
|
ldr r1, [sp, 0x8]
|
|
adds r5, r1
|
|
ldr r2, [sp, 0xC]
|
|
adds r4, r2
|
|
str r5, [sp]
|
|
ldr r0, [sp, 0x10]
|
|
str r4, [r0, 0x4]
|
|
mov r0, r8
|
|
bl sub_8009C7C
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_804535C
|
|
adds r0, r6, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D114
|
|
movs r0, 0x1A
|
|
bl sub_803E46C
|
|
_0807D114:
|
|
movs r1, 0xAA
|
|
add r8, r1
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _0807D0DE
|
|
_0807D11E:
|
|
mov r2, r10
|
|
str r2, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_804535C
|
|
movs r0, 0x1A
|
|
bl sub_803E46C
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807D068
|
|
|
|
thumb_func_start sub_807D148
|
|
sub_807D148:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
mov r9, r2
|
|
str r3, [sp, 0x4]
|
|
ldr r0, [r5, 0x70]
|
|
mov r10, r0
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
ldr r0, _0807D180
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
adds r0, r5, 0
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D188
|
|
ldr r0, _0807D184
|
|
b _0807D194
|
|
.align 2, 0
|
|
_0807D180: .4byte gAvailablePokemonNames
|
|
_0807D184: .4byte gUnknown_80FCAE8
|
|
_0807D188:
|
|
bl IsFixedDungeon
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D1A4
|
|
ldr r0, _0807D1A0
|
|
_0807D194:
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _0807D3A8
|
|
.align 2, 0
|
|
_0807D1A0: .4byte gUnknown_80FC97C
|
|
_0807D1A4:
|
|
mov r2, r9
|
|
cmp r2, 0x1
|
|
bne _0807D1DC
|
|
ldr r0, _0807D1D0
|
|
ldr r0, [r0]
|
|
ldr r3, _0807D1D4
|
|
adds r0, r3
|
|
ldr r1, [r0]
|
|
ldr r0, [r5, 0x4]
|
|
cmp r1, r0
|
|
bne _0807D1DC
|
|
ldr r0, _0807D1D8
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8076D10
|
|
b _0807D3A8
|
|
.align 2, 0
|
|
_0807D1D0: .4byte gDungeonGlobalData
|
|
_0807D1D4: .4byte 0x0000e21c
|
|
_0807D1D8: .4byte gUnknown_80FC9A0
|
|
_0807D1DC:
|
|
ldr r0, _0807D27C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_807A96C
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80421AC
|
|
adds r0, r5, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D252
|
|
mov r0, r10
|
|
adds r0, 0x46
|
|
ldrb r4, [r0]
|
|
ldr r1, [r5, 0x1C]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r2
|
|
str r1, [r5, 0x1C]
|
|
ldr r2, _0807D280
|
|
adds r6, r0, 0
|
|
cmp r1, r2
|
|
bgt _0807D252
|
|
movs r7, 0x7
|
|
_0807D21E:
|
|
ldr r0, _0807D284
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807D23C
|
|
adds r4, 0x1
|
|
ands r4, r7
|
|
adds r0, r4, 0
|
|
ands r0, r7
|
|
strb r0, [r6]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_806CE68
|
|
_0807D23C:
|
|
movs r0, 0x22
|
|
bl sub_803E46C
|
|
ldr r1, [r5, 0x1C]
|
|
movs r3, 0x80
|
|
lsls r3, 4
|
|
adds r1, r3
|
|
str r1, [r5, 0x1C]
|
|
ldr r0, _0807D280
|
|
cmp r1, r0
|
|
ble _0807D21E
|
|
_0807D252:
|
|
mov r0, r9
|
|
cmp r0, 0x1
|
|
beq _0807D288
|
|
cmp r0, 0x1
|
|
bcc _0807D264
|
|
cmp r0, 0x2
|
|
beq _0807D2B0
|
|
cmp r0, 0x3
|
|
beq _0807D2C8
|
|
_0807D264:
|
|
mov r0, sp
|
|
bl sub_8083660
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807D2CE
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
b _0807D2CE
|
|
.align 2, 0
|
|
_0807D27C: .4byte gUnknown_80FC584
|
|
_0807D280: .4byte 0x00009fff
|
|
_0807D284: .4byte gUnknown_202EDCC
|
|
_0807D288:
|
|
ldr r0, _0807D2A8
|
|
ldr r1, [r0]
|
|
ldr r2, _0807D2AC
|
|
adds r1, r2
|
|
mov r0, sp
|
|
bl sub_808384C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807D2CE
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp]
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x8]
|
|
b _0807D2CE
|
|
.align 2, 0
|
|
_0807D2A8: .4byte gDungeonGlobalData
|
|
_0807D2AC: .4byte 0x0000e21c
|
|
_0807D2B0:
|
|
mov r0, sp
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_808384C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807D2CE
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
b _0807D2CE
|
|
_0807D2C8:
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r1]
|
|
str r0, [sp]
|
|
_0807D2CE:
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
adds r0, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
adds r0, r5, 0
|
|
bl sub_807BB78
|
|
movs r0, 0x1
|
|
bl sub_803F580
|
|
adds r0, r5, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D340
|
|
mov r1, r10
|
|
adds r1, 0x46
|
|
ldrb r4, [r1]
|
|
movs r0, 0x9C
|
|
lsls r0, 8
|
|
str r0, [r5, 0x1C]
|
|
adds r6, r1, 0
|
|
movs r7, 0x7
|
|
_0807D310:
|
|
ldr r0, _0807D3B8
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807D32E
|
|
adds r4, 0x1
|
|
ands r4, r7
|
|
adds r0, r4, 0
|
|
ands r0, r7
|
|
strb r0, [r6]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_806CE68
|
|
_0807D32E:
|
|
movs r0, 0x22
|
|
bl sub_803E46C
|
|
ldr r0, [r5, 0x1C]
|
|
ldr r1, _0807D3BC
|
|
adds r0, r1
|
|
str r0, [r5, 0x1C]
|
|
cmp r0, 0
|
|
bgt _0807D310
|
|
_0807D340:
|
|
movs r4, 0
|
|
str r4, [r5, 0x1C]
|
|
movs r0, 0x22
|
|
bl sub_803E46C
|
|
ldr r2, [sp, 0x8]
|
|
cmp r2, 0
|
|
beq _0807D35C
|
|
ldr r0, _0807D3C0
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_0807D35C:
|
|
mov r3, r9
|
|
cmp r3, 0x1
|
|
bne _0807D36A
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_8076D10
|
|
_0807D36A:
|
|
mov r1, r10
|
|
ldrb r0, [r1, 0x7]
|
|
cmp r0, 0
|
|
beq _0807D392
|
|
adds r0, r5, 0x4
|
|
bl sub_804AC20
|
|
ldr r1, _0807D3C4
|
|
ldr r0, [r1]
|
|
strb r4, [r0, 0x1]
|
|
ldr r0, [r1]
|
|
movs r2, 0xB8
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807D392:
|
|
adds r0, r5, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807D3C4
|
|
ldr r0, [r0]
|
|
ldr r3, _0807D3C8
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8075900
|
|
_0807D3A8:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807D3B8: .4byte gUnknown_202EDCC
|
|
_0807D3BC: .4byte 0xfffffc00
|
|
_0807D3C0: .4byte gUnknown_80FCB14
|
|
_0807D3C4: .4byte gDungeonGlobalData
|
|
_0807D3C8: .4byte 0x00003a08
|
|
thumb_func_end sub_807D148
|
|
|
|
thumb_func_start sub_807D3CC
|
|
sub_807D3CC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r4, _0807D448
|
|
ldr r0, [r4]
|
|
ldr r1, _0807D44C
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
cmp r6, 0
|
|
bne _0807D3E8
|
|
movs r6, 0x2
|
|
_0807D3E8:
|
|
mov r0, r8
|
|
str r2, [sp]
|
|
bl GetEntityRoomIndex
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r2, [sp]
|
|
cmp r1, 0xFF
|
|
bne _0807D450
|
|
mov r3, r8
|
|
movs r1, 0x6
|
|
ldrsh r0, [r3, r1]
|
|
subs r5, r0, r6
|
|
adds r0, r6
|
|
cmp r5, r0
|
|
bgt _0807D4A8
|
|
_0807D408:
|
|
mov r3, r8
|
|
movs r1, 0x4
|
|
ldrsh r0, [r3, r1]
|
|
subs r4, r0, r6
|
|
adds r0, r6
|
|
adds r7, r5, 0x1
|
|
cmp r4, r0
|
|
bgt _0807D438
|
|
_0807D418:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
str r2, [sp]
|
|
bl sub_807D4E0
|
|
ldr r2, [sp]
|
|
orrs r2, r0
|
|
lsls r0, r2, 24
|
|
lsrs r2, r0, 24
|
|
adds r4, 0x1
|
|
mov r3, r8
|
|
movs r1, 0x4
|
|
ldrsh r0, [r3, r1]
|
|
adds r0, r6
|
|
cmp r4, r0
|
|
ble _0807D418
|
|
_0807D438:
|
|
adds r5, r7, 0
|
|
mov r3, r8
|
|
movs r1, 0x6
|
|
ldrsh r0, [r3, r1]
|
|
adds r0, r6
|
|
cmp r5, r0
|
|
ble _0807D408
|
|
b _0807D4A8
|
|
.align 2, 0
|
|
_0807D448: .4byte gDungeonGlobalData
|
|
_0807D44C: .4byte 0x00018209
|
|
_0807D450:
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r3, _0807D468
|
|
adds r0, r3
|
|
ldr r1, [r4]
|
|
adds r6, r1, r0
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
subs r5, r0, 0x1
|
|
b _0807D49E
|
|
.align 2, 0
|
|
_0807D468: .4byte 0x000104c4
|
|
_0807D46C:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r6, r1]
|
|
subs r4, r0, 0x1
|
|
movs r3, 0x6
|
|
ldrsh r0, [r6, r3]
|
|
adds r0, 0x1
|
|
adds r7, r5, 0x1
|
|
cmp r4, r0
|
|
bgt _0807D49C
|
|
_0807D47E:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
str r2, [sp]
|
|
bl sub_807D4E0
|
|
ldr r2, [sp]
|
|
orrs r2, r0
|
|
lsls r0, r2, 24
|
|
lsrs r2, r0, 24
|
|
adds r4, 0x1
|
|
movs r1, 0x6
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
ble _0807D47E
|
|
_0807D49C:
|
|
adds r5, r7, 0
|
|
_0807D49E:
|
|
movs r3, 0x8
|
|
ldrsh r0, [r6, r3]
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
ble _0807D46C
|
|
_0807D4A8:
|
|
cmp r2, 0
|
|
beq _0807D4C4
|
|
ldr r0, _0807D4C0
|
|
ldr r1, [r0]
|
|
mov r0, r8
|
|
bl SendMessage
|
|
bl sub_8040A84
|
|
bl sub_8049ED4
|
|
b _0807D4CE
|
|
.align 2, 0
|
|
_0807D4C0: .4byte gUnknown_80FD2F8
|
|
_0807D4C4:
|
|
ldr r0, _0807D4DC
|
|
ldr r1, [r0]
|
|
mov r0, r8
|
|
bl SendMessage
|
|
_0807D4CE:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807D4DC: .4byte gUnknown_80FD320
|
|
thumb_func_end sub_807D3CC
|
|
|
|
thumb_func_start sub_807D4E0
|
|
sub_807D4E0:
|
|
push {r4,lr}
|
|
bl GetMapTileAtPosition
|
|
ldr r4, [r0, 0x14]
|
|
cmp r4, 0
|
|
beq _0807D506
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0807D506
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0807D506
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _0807D508
|
|
_0807D506:
|
|
movs r0, 0
|
|
_0807D508:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807D4E0
|
|
|
|
thumb_func_start sub_807D510
|
|
sub_807D510:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _0807D540
|
|
add sp, r4
|
|
ldr r1, _0807D544
|
|
add r1, sp
|
|
str r0, [r1]
|
|
movs r2, 0
|
|
movs r3, 0xD1
|
|
lsls r3, 4
|
|
add r3, sp
|
|
str r2, [r3]
|
|
ldr r4, _0807D548
|
|
add r4, sp
|
|
str r2, [r4]
|
|
add r5, sp, 0x4
|
|
mov r8, r5
|
|
mov r10, r2
|
|
mov r9, r2
|
|
add r7, sp, 0x8
|
|
b _0807D606
|
|
.align 2, 0
|
|
_0807D540: .4byte 0xfffff2d4
|
|
_0807D544: .4byte 0x00000d08
|
|
_0807D548: .4byte 0x00000d0c
|
|
_0807D54C:
|
|
movs r0, 0x4
|
|
ldrsh r1, [r5, r0]
|
|
ldr r2, _0807D650
|
|
add r2, sp
|
|
ldr r2, [r2]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r2, r3]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807D562
|
|
negs r1, r1
|
|
_0807D562:
|
|
cmp r1, 0x2
|
|
bgt _0807D580
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
ldr r4, _0807D650
|
|
add r4, sp
|
|
ldr r4, [r4]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807D57C
|
|
negs r1, r1
|
|
_0807D57C:
|
|
cmp r1, 0x2
|
|
ble _0807D5FE
|
|
_0807D580:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r5, r2]
|
|
bl GetMapTileAtPosition
|
|
ldrh r1, [r0]
|
|
movs r2, 0x3
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807D5FE
|
|
mov r3, r8
|
|
str r2, [r3]
|
|
ldr r4, _0807D654
|
|
add r4, sp
|
|
ldr r1, _0807D658
|
|
add r1, sp
|
|
ldr r1, [r1]
|
|
lsls r0, r1, 2
|
|
adds r4, r0
|
|
str r4, [r7, 0x6C]
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [r7]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, 0x4
|
|
lsls r1, 8
|
|
movs r3, 0x6
|
|
ldrsh r0, [r5, r3]
|
|
lsls r2, r0, 1
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, 0x4
|
|
lsls r2, 8
|
|
mov r0, r8
|
|
bl sub_8045394
|
|
movs r2, 0
|
|
movs r1, 0
|
|
strh r1, [r7, 0x22]
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x1C]
|
|
strb r2, [r7, 0x1E]
|
|
str r1, [r7, 0x18]
|
|
ldr r0, _0807D65C
|
|
ldr r0, [r0]
|
|
ldr r5, _0807D660
|
|
adds r0, r5
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
adds r7, 0x74
|
|
movs r0, 0x74
|
|
add r8, r0
|
|
ldr r2, _0807D658
|
|
add r2, sp
|
|
ldr r1, [r2]
|
|
adds r1, 0x1
|
|
str r1, [r2]
|
|
_0807D5FE:
|
|
movs r3, 0x4
|
|
add r9, r3
|
|
movs r4, 0x1
|
|
add r10, r4
|
|
_0807D606:
|
|
ldr r0, _0807D65C
|
|
ldr r1, [r0]
|
|
ldr r5, _0807D664
|
|
adds r0, r1, r5
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r10, r0
|
|
bge _0807D634
|
|
ldr r3, _0807D668
|
|
adds r0, r1, r3
|
|
add r0, r9
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D5FE
|
|
ldr r4, _0807D658
|
|
add r4, sp
|
|
ldr r4, [r4]
|
|
cmp r4, 0x18
|
|
ble _0807D54C
|
|
_0807D634:
|
|
ldr r5, _0807D658
|
|
add r5, sp
|
|
ldr r5, [r5]
|
|
cmp r5, 0
|
|
bne _0807D670
|
|
ldr r0, _0807D66C
|
|
ldr r1, [r0]
|
|
ldr r2, _0807D650
|
|
add r2, sp
|
|
ldr r0, [r2]
|
|
bl SendMessage
|
|
b _0807D9F4
|
|
.align 2, 0
|
|
_0807D650: .4byte 0x00000d08
|
|
_0807D654: .4byte 0x00000b58
|
|
_0807D658: .4byte 0x00000d0c
|
|
_0807D65C: .4byte gDungeonGlobalData
|
|
_0807D660: .4byte 0x00003804
|
|
_0807D664: .4byte 0x00003904
|
|
_0807D668: .4byte 0x0001361c
|
|
_0807D66C: .4byte gUnknown_80FE034
|
|
_0807D670:
|
|
movs r1, 0
|
|
movs r7, 0x1D
|
|
ldr r0, _0807D754
|
|
add r0, sp
|
|
_0807D678:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _0807D678
|
|
movs r7, 0
|
|
ldr r3, _0807D758
|
|
add r3, sp
|
|
ldr r3, [r3]
|
|
cmp r7, r3
|
|
blt _0807D690
|
|
b _0807D7CC
|
|
_0807D690:
|
|
ldr r4, _0807D75C
|
|
mov r10, r4
|
|
ldr r5, _0807D760
|
|
movs r0, 0
|
|
ldrsh r5, [r5, r0]
|
|
ldr r0, _0807D764
|
|
add r0, sp
|
|
str r5, [r0]
|
|
_0807D6A0:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
ldr r2, _0807D768
|
|
add r2, sp
|
|
ldr r2, [r2]
|
|
ldrh r0, [r2, 0x4]
|
|
ldr r1, _0807D76C
|
|
ands r6, r1
|
|
orrs r6, r0
|
|
ldrh r0, [r2, 0x6]
|
|
lsls r0, 16
|
|
mov r4, r10
|
|
ands r6, r4
|
|
orrs r6, r0
|
|
mov r4, r9
|
|
adds r5, r7, 0x1
|
|
movs r0, 0xD2
|
|
lsls r0, 4
|
|
add r0, sp
|
|
str r5, [r0]
|
|
ldr r1, _0807D760
|
|
ldr r2, _0807D764
|
|
add r2, sp
|
|
ldr r2, [r2]
|
|
cmp r2, 0x63
|
|
beq _0807D790
|
|
ldr r3, _0807D770
|
|
add r3, sp
|
|
mov r8, r3
|
|
_0807D6DA:
|
|
ldr r0, _0807D774
|
|
add r0, sp
|
|
adds r0, r4
|
|
ldr r5, _0807D778
|
|
add r5, sp
|
|
str r0, [r5]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807D77C
|
|
lsls r2, r4, 2
|
|
adds r2, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _0807D768
|
|
add r1, sp
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0807D76C
|
|
ands r6, r1
|
|
orrs r6, r0
|
|
ldrh r0, [r2, 0x2]
|
|
ldr r2, _0807D768
|
|
add r2, sp
|
|
ldr r2, [r2]
|
|
ldrh r2, [r2, 0x6]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
mov r3, r10
|
|
ands r6, r3
|
|
orrs r6, r0
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
asrs r1, r6, 16
|
|
bl GetMapTileAtPosition
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
movs r3, 0x3
|
|
ands r3, r1
|
|
cmp r3, 0x1
|
|
bne _0807D77C
|
|
movs r5, 0x80
|
|
lsls r5, 2
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807D77C
|
|
ldr r0, [r2, 0x14]
|
|
cmp r0, 0
|
|
bne _0807D77C
|
|
lsls r0, r7, 2
|
|
add r0, r8
|
|
str r6, [r0]
|
|
ldr r0, _0807D778
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
strb r3, [r0]
|
|
b _0807D7B8
|
|
.align 2, 0
|
|
_0807D754: .4byte 0x00000d05
|
|
_0807D758: .4byte 0x00000d0c
|
|
_0807D75C: .4byte 0x0000ffff
|
|
_0807D760: .4byte gUnknown_80F4468
|
|
_0807D764: .4byte 0x00000d18
|
|
_0807D768: .4byte 0x00000d08
|
|
_0807D76C: .4byte 0xffff0000
|
|
_0807D770: .4byte 0x00000bbc
|
|
_0807D774: .4byte 0x00000ce8
|
|
_0807D778: .4byte 0x00000d28
|
|
_0807D77C:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1D
|
|
bgt _0807D790
|
|
lsls r0, r4, 2
|
|
ldr r1, _0807D9B4
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0x63
|
|
bne _0807D6DA
|
|
_0807D790:
|
|
mov r3, r9
|
|
cmp r3, 0
|
|
bne _0807D7B8
|
|
movs r0, 0x74
|
|
muls r0, r7
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
str r3, [r0]
|
|
ldr r1, _0807D9B8
|
|
add r1, sp
|
|
lsls r0, r7, 2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
mov r0, r10
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldrh r2, [r1, 0x2]
|
|
mov r0, r10
|
|
orrs r0, r2
|
|
strh r0, [r1, 0x2]
|
|
_0807D7B8:
|
|
movs r4, 0xD2
|
|
lsls r4, 4
|
|
add r4, sp
|
|
ldr r7, [r4]
|
|
ldr r5, _0807D9BC
|
|
add r5, sp
|
|
ldr r5, [r5]
|
|
cmp r7, r5
|
|
bge _0807D7CC
|
|
b _0807D6A0
|
|
_0807D7CC:
|
|
movs r7, 0
|
|
ldr r0, _0807D9BC
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
cmp r7, r0
|
|
bge _0807D866
|
|
_0807D7D8:
|
|
movs r0, 0x74
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
mov r8, r1
|
|
mov r4, sp
|
|
add r4, r8
|
|
adds r4, 0x4
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D85A
|
|
adds r0, r4, 0x4
|
|
movs r1, 0x1
|
|
bl sub_80461C8
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
movs r3, 0x6
|
|
ldrsh r1, [r4, r3]
|
|
bl sub_80402AC
|
|
movs r5, 0xC2
|
|
lsls r5, 4
|
|
add r5, sp
|
|
lsls r6, r7, 3
|
|
adds r5, r6
|
|
ldr r4, _0807D9B8
|
|
add r4, sp
|
|
lsls r0, r7, 2
|
|
adds r4, r0
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
lsls r0, 8
|
|
add r1, sp, 0x10
|
|
add r1, r8
|
|
ldr r1, [r1]
|
|
subs r0, r1
|
|
movs r1, 0x3C
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
ldr r5, _0807D9C0
|
|
add r5, sp
|
|
adds r5, r6
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
lsls r0, 8
|
|
add r1, sp, 0x14
|
|
add r1, r8
|
|
ldr r1, [r1]
|
|
subs r0, r1
|
|
movs r1, 0x3C
|
|
bl __divsi3
|
|
str r0, [r5]
|
|
_0807D85A:
|
|
adds r7, 0x1
|
|
ldr r3, _0807D9BC
|
|
add r3, sp
|
|
ldr r3, [r3]
|
|
cmp r7, r3
|
|
blt _0807D7D8
|
|
_0807D866:
|
|
movs r1, 0xD1
|
|
lsls r1, 1
|
|
ldr r4, _0807D9C4
|
|
add r4, sp
|
|
ldr r0, [r4]
|
|
bl sub_80421C0
|
|
movs r5, 0
|
|
mov r9, r5
|
|
ldr r0, _0807D9C8
|
|
ldr r0, [r0]
|
|
ldr r1, _0807D9CC
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r2, _0807D9D0
|
|
add r2, sp
|
|
str r0, [r2]
|
|
mov r10, r5
|
|
movs r6, 0
|
|
_0807D88C:
|
|
movs r7, 0
|
|
mov r3, r10
|
|
adds r3, 0x22
|
|
ldr r4, _0807D9D4
|
|
add r4, sp
|
|
str r3, [r4]
|
|
adds r5, r6, 0x1
|
|
ldr r0, _0807D9D8
|
|
add r0, sp
|
|
str r5, [r0]
|
|
ldr r1, _0807D9BC
|
|
add r1, sp
|
|
ldr r1, [r1]
|
|
cmp r7, r1
|
|
bge _0807D916
|
|
mov r2, r9
|
|
lsls r2, 24
|
|
mov r8, r2
|
|
_0807D8B0:
|
|
movs r0, 0x74
|
|
adds r5, r7, 0
|
|
muls r5, r0
|
|
mov r4, sp
|
|
adds r4, r5
|
|
adds r4, 0x4
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807D90A
|
|
movs r0, 0xC2
|
|
lsls r0, 4
|
|
add r0, sp
|
|
lsls r2, r7, 3
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, _0807D9C0
|
|
add r0, sp
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_804539C
|
|
mov r0, r10
|
|
bl sub_8009C7C
|
|
add r2, sp, 0x20
|
|
adds r2, r5
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
str r1, [r2]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
ldr r3, _0807D9D0
|
|
add r3, sp
|
|
ldr r1, [r3]
|
|
movs r2, 0
|
|
mov r4, r8
|
|
lsrs r3, r4, 24
|
|
bl sub_80462AC
|
|
_0807D90A:
|
|
adds r7, 0x1
|
|
ldr r5, _0807D9BC
|
|
add r5, sp
|
|
ldr r5, [r5]
|
|
cmp r7, r5
|
|
blt _0807D8B0
|
|
_0807D916:
|
|
movs r0, 0x13
|
|
bl sub_803E46C
|
|
ldr r0, _0807D9D4
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
mov r10, r0
|
|
movs r0, 0x3
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _0807D930
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
_0807D930:
|
|
movs r0, 0x7
|
|
mov r2, r9
|
|
ands r2, r0
|
|
mov r9, r2
|
|
ldr r3, _0807D9D8
|
|
add r3, sp
|
|
ldr r6, [r3]
|
|
cmp r6, 0x3B
|
|
ble _0807D88C
|
|
movs r7, 0
|
|
ldr r4, _0807D9BC
|
|
add r4, sp
|
|
ldr r4, [r4]
|
|
cmp r7, r4
|
|
bge _0807D996
|
|
_0807D94E:
|
|
ldr r0, _0807D9B8
|
|
add r0, sp
|
|
lsls r1, r7, 2
|
|
adds r4, r0, r1
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
blt _0807D98A
|
|
movs r0, 0x74
|
|
muls r0, r7
|
|
add r0, sp
|
|
adds r0, 0x4
|
|
bl GetItemData
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_80460F8
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
bl sub_80402AC
|
|
movs r3, 0x1
|
|
movs r4, 0xD1
|
|
lsls r4, 4
|
|
add r4, sp
|
|
str r3, [r4]
|
|
_0807D98A:
|
|
adds r7, 0x1
|
|
ldr r5, _0807D9BC
|
|
add r5, sp
|
|
ldr r5, [r5]
|
|
cmp r7, r5
|
|
blt _0807D94E
|
|
_0807D996:
|
|
movs r0, 0xD1
|
|
lsls r0, 4
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807D9E0
|
|
ldr r0, _0807D9DC
|
|
ldr r1, [r0]
|
|
ldr r2, _0807D9C4
|
|
add r2, sp
|
|
ldr r0, [r2]
|
|
bl SendMessage
|
|
b _0807D9EE
|
|
.align 2, 0
|
|
_0807D9B4: .4byte gUnknown_80F4468
|
|
_0807D9B8: .4byte 0x00000bbc
|
|
_0807D9BC: .4byte 0x00000d0c
|
|
_0807D9C0: .4byte 0x00000c24
|
|
_0807D9C4: .4byte 0x00000d08
|
|
_0807D9C8: .4byte gDungeonGlobalData
|
|
_0807D9CC: .4byte 0x00018210
|
|
_0807D9D0: .4byte 0x00000d14
|
|
_0807D9D4: .4byte 0x00000d1c
|
|
_0807D9D8: .4byte 0x00000d24
|
|
_0807D9DC: .4byte gUnknown_80FE060
|
|
_0807D9E0:
|
|
ldr r0, _0807DA08
|
|
ldr r1, [r0]
|
|
ldr r3, _0807DA0C
|
|
add r3, sp
|
|
ldr r0, [r3]
|
|
bl SendMessage
|
|
_0807D9EE:
|
|
movs r0, 0x1
|
|
bl sub_807EC28
|
|
_0807D9F4:
|
|
ldr r3, _0807DA10
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807DA08: .4byte gUnknown_80FE034
|
|
_0807DA0C: .4byte 0x00000d08
|
|
_0807DA10: .4byte 0x00000d2c
|
|
thumb_func_end sub_807D510
|
|
|
|
thumb_func_start sub_807DA14
|
|
sub_807DA14:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
ldr r0, [r6, 0x70]
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DA50
|
|
ldr r0, _0807DA48
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807DA4C
|
|
b _0807DA5C
|
|
.align 2, 0
|
|
_0807DA48: .4byte gAvailablePokemonNames
|
|
_0807DA4C: .4byte gUnknown_80FCB98
|
|
_0807DA50:
|
|
bl IsFixedDungeon
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DA6C
|
|
ldr r0, _0807DA68
|
|
_0807DA5C:
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _0807DB5E
|
|
.align 2, 0
|
|
_0807DA68: .4byte gUnknown_80FC9C0
|
|
_0807DA6C:
|
|
cmp r4, 0x8
|
|
bne _0807DA76
|
|
mov r0, r10
|
|
adds r0, 0x46
|
|
ldrb r4, [r0]
|
|
_0807DA76:
|
|
adds r0, r6, 0
|
|
movs r1, 0x6
|
|
adds r2, r4, 0
|
|
bl sub_806CDD4
|
|
lsls r1, r4, 2
|
|
adds r2, r6, 0x4
|
|
mov r9, r2
|
|
ldr r0, _0807DAFC
|
|
adds r1, r0
|
|
mov r8, r1
|
|
_0807DA8C:
|
|
ldrh r0, [r6, 0x4]
|
|
mov r3, r8
|
|
ldrh r3, [r3]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
ldrh r1, [r6, 0x6]
|
|
mov r2, r8
|
|
ldrh r2, [r2, 0x2]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
lsrs r7, r0, 16
|
|
orrs r7, r1
|
|
lsls r0, r7, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
ble _0807DB00
|
|
asrs r4, r7, 16
|
|
cmp r4, 0
|
|
ble _0807DB00
|
|
cmp r5, 0x36
|
|
bgt _0807DB00
|
|
cmp r4, 0x1E
|
|
bgt _0807DB00
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapTileAtPosition
|
|
adds r1, r0, 0
|
|
ldr r0, [r1, 0x10]
|
|
cmp r0, 0
|
|
bne _0807DB00
|
|
ldrh r1, [r1]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807DB00
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_80694C0
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
adds r0, r6, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DA8C
|
|
movs r0, 0x3A
|
|
bl sub_803E46C
|
|
b _0807DA8C
|
|
.align 2, 0
|
|
_0807DAFC: .4byte gAdjacentTileOffsets
|
|
_0807DB00:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
mov r1, r9
|
|
adds r0, r6, 0
|
|
bl sub_80706A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DB20
|
|
adds r0, r6, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_0807DB20:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DB5E
|
|
adds r0, r6, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
mov r3, r10
|
|
ldrb r0, [r3, 0x7]
|
|
cmp r0, 0
|
|
beq _0807DB48
|
|
mov r0, r9
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807DB48:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807DB6C
|
|
ldr r0, [r0]
|
|
ldr r1, _0807DB70
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8075900
|
|
_0807DB5E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807DB6C: .4byte gDungeonGlobalData
|
|
_0807DB70: .4byte 0x00003a08
|
|
thumb_func_end sub_807DA14
|
|
|
|
thumb_func_start sub_807DB74
|
|
sub_807DB74:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
bl IsFixedDungeon
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DB94
|
|
ldr r0, _0807DB90
|
|
b _0807DBA0
|
|
.align 2, 0
|
|
_0807DB90: .4byte gUnknown_80FD060
|
|
_0807DB94:
|
|
bl IsWaterTileset
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DBB0
|
|
ldr r0, _0807DBAC
|
|
_0807DBA0:
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl SendMessage
|
|
b _0807DC54
|
|
.align 2, 0
|
|
_0807DBAC: .4byte gUnknown_80FD08C
|
|
_0807DBB0:
|
|
movs r5, 0
|
|
ldr r0, _0807DC24
|
|
adds r6, r0, 0
|
|
_0807DBB6:
|
|
movs r4, 0
|
|
_0807DBB8:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetMapEntity
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
bne _0807DBE2
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80498A8
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_0807DBE2:
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0807DBB8
|
|
adds r5, 0x1
|
|
cmp r5, 0x1F
|
|
ble _0807DBB6
|
|
movs r5, 0
|
|
_0807DBF0:
|
|
movs r4, 0
|
|
adds r6, r5, 0x1
|
|
_0807DBF4:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8049BB0
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0807DBF4
|
|
adds r5, r6, 0
|
|
cmp r5, 0x1F
|
|
ble _0807DBF0
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0807DC30
|
|
ldr r1, _0807DC28
|
|
adds r0, r7, 0
|
|
bl sub_80421C0
|
|
ldr r0, _0807DC2C
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl SendMessage
|
|
b _0807DC3A
|
|
.align 2, 0
|
|
_0807DC24: .4byte 0x0000fffc
|
|
_0807DC28: .4byte 0x000001a1
|
|
_0807DC2C: .4byte gUnknown_80FD05C
|
|
_0807DC30:
|
|
ldr r0, _0807DC60
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl SendMessage
|
|
_0807DC3A:
|
|
ldr r0, _0807DC64
|
|
ldr r0, [r0]
|
|
movs r1, 0xCE
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bl sub_806CF60
|
|
bl sub_8040A84
|
|
bl sub_8049ED4
|
|
_0807DC54:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807DC60: .4byte gUnknown_80FD060
|
|
_0807DC64: .4byte gDungeonGlobalData
|
|
thumb_func_end sub_807DB74
|
|
|
|
thumb_func_start sub_807DC68
|
|
sub_807DC68:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r0
|
|
ldr r0, _0807DC88
|
|
ldr r1, [r0]
|
|
ldr r2, _0807DC8C
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807DC94
|
|
ldr r0, _0807DC90
|
|
b _0807DCB8
|
|
.align 2, 0
|
|
_0807DC88: .4byte gDungeonGlobalData
|
|
_0807DC8C: .4byte 0x00003a08
|
|
_0807DC90: .4byte gUnknown_80FD3C8
|
|
_0807DC94:
|
|
ldr r3, _0807DCA4
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807DCAC
|
|
ldr r0, _0807DCA8
|
|
b _0807DCB8
|
|
.align 2, 0
|
|
_0807DCA4: .4byte 0x00003a0b
|
|
_0807DCA8: .4byte gUnknown_80FD3CC
|
|
_0807DCAC:
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DCC8
|
|
ldr r0, _0807DCC4
|
|
_0807DCB8:
|
|
ldr r1, [r0]
|
|
mov r0, r9
|
|
bl SendMessage
|
|
b _0807DF0E
|
|
.align 2, 0
|
|
_0807DCC4: .4byte gUnknown_80FD3D0
|
|
_0807DCC8:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r5, 0x1
|
|
movs r1, 0
|
|
mov r10, r1
|
|
ldr r2, _0807DD68
|
|
adds r7, r2, 0
|
|
_0807DCD6:
|
|
movs r4, 0x1
|
|
_0807DCD8:
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapEntity
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
ldr r3, _0807DD6C
|
|
adds r0, r3, 0
|
|
adds r3, r1, 0
|
|
ands r3, r0
|
|
strh r3, [r2]
|
|
mov r0, r10
|
|
strb r0, [r2, 0x9]
|
|
movs r0, 0x10
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _0807DD94
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r0, 0
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807DD94
|
|
ldrh r0, [r2, 0x4]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
ldr r1, _0807DD70
|
|
adds r0, r1, 0
|
|
adds r1, r3, 0
|
|
ands r1, r0
|
|
strh r1, [r2]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807DD28
|
|
movs r3, 0x1
|
|
mov r8, r3
|
|
_0807DD28:
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x2
|
|
beq _0807DD94
|
|
cmp r0, 0x3
|
|
beq _0807DD94
|
|
cmp r5, 0x1
|
|
beq _0807DD44
|
|
cmp r4, 0x1
|
|
beq _0807DD44
|
|
cmp r5, 0x36
|
|
beq _0807DD44
|
|
cmp r4, 0x1E
|
|
bne _0807DD5C
|
|
_0807DD44:
|
|
ldr r0, [r2, 0x14]
|
|
cmp r0, 0
|
|
bne _0807DD5C
|
|
ldr r0, _0807DD74
|
|
ldr r0, [r0]
|
|
movs r1, 0xCE
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807DD5C
|
|
movs r6, 0x1
|
|
_0807DD5C:
|
|
cmp r6, 0
|
|
beq _0807DD78
|
|
ldrh r0, [r2]
|
|
ands r0, r7
|
|
movs r1, 0x2
|
|
b _0807DD90
|
|
.align 2, 0
|
|
_0807DD68: .4byte 0x0000fffc
|
|
_0807DD6C: .4byte 0x0000fbff
|
|
_0807DD70: .4byte 0x0000fff7
|
|
_0807DD74: .4byte gDungeonGlobalData
|
|
_0807DD78:
|
|
ldrh r1, [r2]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
beq _0807DD94
|
|
adds r0, r1, 0
|
|
ands r0, r7
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r1, r3, 0
|
|
_0807DD90:
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0807DD94:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0807DCD8
|
|
adds r5, 0x1
|
|
cmp r5, 0x36
|
|
ble _0807DCD6
|
|
ldr r0, _0807DF1C
|
|
ldr r1, [r0]
|
|
ldr r2, _0807DF20
|
|
adds r0, r1, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
adds r2, 0x2
|
|
adds r1, r2
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
movs r2, 0x1
|
|
bl sub_8050C30
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DE02
|
|
movs r5, 0
|
|
movs r6, 0x84
|
|
lsls r6, 8
|
|
movs r7, 0
|
|
_0807DDC8:
|
|
movs r4, 0
|
|
_0807DDCA:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapEntity
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807DDF6
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, r6
|
|
bne _0807DDF6
|
|
ldr r3, _0807DF24
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
_0807DDF6:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0807DDCA
|
|
adds r5, 0x1
|
|
cmp r5, 0x37
|
|
ble _0807DDC8
|
|
_0807DE02:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0807DE14
|
|
ldr r0, _0807DF1C
|
|
ldr r0, [r0]
|
|
ldr r1, _0807DF28
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0807DE14:
|
|
movs r5, 0
|
|
_0807DE16:
|
|
movs r4, 0
|
|
adds r6, r5, 0x1
|
|
_0807DE1A:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _0807DE30
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl GetMapEntity
|
|
ldrh r2, [r0]
|
|
movs r1, 0x40
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
_0807DE30:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8049BB0
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0807DE1A
|
|
adds r5, r6, 0
|
|
cmp r5, 0x37
|
|
ble _0807DE16
|
|
movs r5, 0
|
|
_0807DE46:
|
|
ldr r0, _0807DF1C
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r3, _0807DF2C
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DE74
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl GetMapTileAtPosition
|
|
ldrb r1, [r0, 0x9]
|
|
adds r0, r4, 0
|
|
adds r0, 0x25
|
|
strb r1, [r0]
|
|
_0807DE74:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807DE46
|
|
bl sub_804EB30
|
|
bl sub_804AAD4
|
|
bl sub_8049884
|
|
bl sub_806CF60
|
|
bl sub_8040A84
|
|
bl sub_8049ED4
|
|
ldr r0, _0807DF30
|
|
ldr r1, [r0]
|
|
mov r0, r9
|
|
bl SendMessage
|
|
movs r0, 0x28
|
|
movs r1, 0x2B
|
|
bl sub_803E708
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_8075900
|
|
movs r5, 0
|
|
_0807DEAE:
|
|
ldr r0, _0807DF1C
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r3, _0807DF2C
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DEF4
|
|
adds r0, r4, 0
|
|
bl sub_806A5B8
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DEF4
|
|
adds r1, r4, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_80706A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DEF4
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_0807DEF4:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807DEAE
|
|
ldr r0, _0807DF1C
|
|
ldr r0, [r0]
|
|
ldr r1, _0807DF34
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r0, 0x14
|
|
movs r1, 0x2B
|
|
bl sub_803E708
|
|
_0807DF0E:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807DF1C: .4byte gDungeonGlobalData
|
|
_0807DF20: .4byte 0x0000e21c
|
|
_0807DF24: .4byte 0x0000fffc
|
|
_0807DF28: .4byte 0x00003a0c
|
|
_0807DF2C: .4byte 0x000135cc
|
|
_0807DF30: .4byte gUnknown_80FD3A0
|
|
_0807DF34: .4byte 0x00003a08
|
|
thumb_func_end sub_807DC68
|
|
|
|
thumb_func_start sub_807DF38
|
|
sub_807DF38:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
str r0, [sp, 0x8]
|
|
mov r10, r1
|
|
str r2, [sp, 0xC]
|
|
adds r6, r3, 0
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x10]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
str r1, [sp, 0x14]
|
|
movs r5, 0
|
|
b _0807DF62
|
|
_0807DF60:
|
|
adds r5, 0x1
|
|
_0807DF62:
|
|
cmp r5, 0x13
|
|
bgt _0807DF8E
|
|
ldr r0, _0807DFA8
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0807DFAC
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DF60
|
|
adds r0, r4, 0
|
|
movs r1, 0x15
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807DF60
|
|
_0807DF8E:
|
|
cmp r5, 0x14
|
|
beq _0807DFB4
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r10
|
|
bl sub_804218C
|
|
ldr r0, _0807DFB0
|
|
mov r1, r10
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
b _0807DFC2
|
|
.align 2, 0
|
|
_0807DFA8: .4byte gDungeonGlobalData
|
|
_0807DFAC: .4byte 0x000135cc
|
|
_0807DFB0: .4byte gAvailablePokemonNames
|
|
_0807DFB4:
|
|
mov r0, r10
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _0807DFD4
|
|
_0807DFC2:
|
|
ldr r0, _0807DFD0
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r10
|
|
bl sub_80522F4
|
|
b _0807E174
|
|
.align 2, 0
|
|
_0807DFD0: .4byte gUnknown_80F96EC
|
|
_0807DFD4:
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r10
|
|
adds r2, r6, 0
|
|
bl sub_804216C
|
|
ldr r0, _0807E184
|
|
mov r1, r10
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807E188
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r10
|
|
bl sub_80522F4
|
|
movs r5, 0
|
|
ldr r0, _0807E18C
|
|
lsls r1, r6, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
mov r9, r0
|
|
ldrh r4, [r0]
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
str r1, [sp, 0x1C]
|
|
cmp r0, 0x63
|
|
bne _0807E00E
|
|
b _0807E124
|
|
_0807E00E:
|
|
mov r0, sp
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x18]
|
|
_0807E014:
|
|
ldr r1, [sp, 0xC]
|
|
ldrh r0, [r1]
|
|
adds r0, r4, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0807E190
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
ldr r2, [sp, 0xC]
|
|
ldrh r0, [r2, 0x2]
|
|
mov r3, r9
|
|
ldrh r3, [r3, 0x2]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
ldr r2, _0807E194
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldr r1, [sp, 0x18]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
blt _0807E112
|
|
asrs r1, r2, 16
|
|
cmp r1, 0
|
|
blt _0807E112
|
|
cmp r0, 0x37
|
|
bgt _0807E112
|
|
cmp r1, 0x1F
|
|
bgt _0807E112
|
|
bl GetMapEntity
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x18]
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0
|
|
ble _0807E0BE
|
|
ldr r0, [sp, 0x4]
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
ble _0807E0BE
|
|
cmp r1, 0x36
|
|
bgt _0807E0BE
|
|
cmp r0, 0x1E
|
|
bgt _0807E0BE
|
|
mov r3, r8
|
|
ldrh r1, [r3]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807E0BE
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807E0BE
|
|
ldr r2, _0807E198
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
add r7, sp, 0x4
|
|
_0807E09A:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r6, r5, 0x1
|
|
_0807E0A0:
|
|
movs r3, 0
|
|
ldrsh r0, [r7, r3]
|
|
adds r0, r4
|
|
ldr r1, [sp, 0x4]
|
|
asrs r1, 16
|
|
adds r1, r5
|
|
bl sub_80498A8
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _0807E0A0
|
|
adds r5, r6, 0
|
|
cmp r5, 0x1
|
|
ble _0807E09A
|
|
movs r5, 0x1
|
|
_0807E0BE:
|
|
mov r0, r8
|
|
ldr r4, [r0, 0x14]
|
|
cmp r4, 0
|
|
beq _0807E0DC
|
|
cmp r4, r10
|
|
beq _0807E0DC
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _0807E0DC
|
|
add r0, sp, 0x4
|
|
movs r1, 0
|
|
bl sub_80461C8
|
|
_0807E0DC:
|
|
mov r1, r8
|
|
ldr r4, [r1, 0x10]
|
|
cmp r4, 0
|
|
beq _0807E112
|
|
cmp r4, r10
|
|
beq _0807E112
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807E112
|
|
ldr r0, _0807E19C
|
|
ldr r2, [sp, 0x1C]
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x8]
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_807E1A0
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E124
|
|
_0807E112:
|
|
movs r3, 0x4
|
|
add r9, r3
|
|
mov r0, r9
|
|
ldrh r4, [r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x63
|
|
beq _0807E124
|
|
b _0807E014
|
|
_0807E124:
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E174
|
|
mov r0, r10
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807E14E
|
|
ldr r0, _0807E19C
|
|
ldr r2, [sp, 0x1C]
|
|
adds r0, r2, r0
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r10
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_807E1A0
|
|
_0807E14E:
|
|
cmp r5, 0
|
|
beq _0807E174
|
|
movs r5, 0
|
|
_0807E154:
|
|
movs r4, 0
|
|
adds r6, r5, 0x1
|
|
_0807E158:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8049BB0
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0807E158
|
|
adds r5, r6, 0
|
|
cmp r5, 0x1F
|
|
ble _0807E154
|
|
bl sub_8040A84
|
|
bl sub_8049ED4
|
|
_0807E174:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E184: .4byte gAvailablePokemonNames
|
|
_0807E188: .4byte gUnknown_80F96BC
|
|
_0807E18C: .4byte gUnknown_8107178
|
|
_0807E190: .4byte 0xffff0000
|
|
_0807E194: .4byte 0x0000ffff
|
|
_0807E198: .4byte 0x0000fffc
|
|
_0807E19C: .4byte gUnknown_203B444
|
|
thumb_func_end sub_807DF38
|
|
|
|
thumb_func_start sub_807E1A0
|
|
sub_807E1A0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x24
|
|
mov r9, r0
|
|
adds r6, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
lsls r3, 16
|
|
asrs r7, r3, 16
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E244
|
|
ldr r5, [r6, 0x70]
|
|
add r4, sp, 0x1C
|
|
ldr r1, _0807E20C
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80571F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E244
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0
|
|
bne _0807E210
|
|
movs r0, 0xE
|
|
ldrsh r4, [r5, r0]
|
|
lsrs r0, r4, 31
|
|
adds r5, r4, r0
|
|
asrs r4, r5, 1
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E202
|
|
lsrs r0, r5, 31
|
|
adds r0, r4, r0
|
|
asrs r4, r0, 1
|
|
_0807E202:
|
|
cmp r4, 0
|
|
bgt _0807E226
|
|
movs r4, 0x1
|
|
b _0807E226
|
|
.align 2, 0
|
|
_0807E20C: .4byte 0x00000163
|
|
_0807E210:
|
|
ldr r4, [sp, 0x40]
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl HasType
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E226
|
|
lsrs r0, r4, 31
|
|
adds r0, r4, r0
|
|
asrs r4, r0, 1
|
|
_0807E226:
|
|
add r0, sp, 0x18
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
str r0, [sp, 0x10]
|
|
str r0, [sp, 0x14]
|
|
mov r0, r9
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0807E244:
|
|
add sp, 0x24
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807E1A0
|
|
|
|
thumb_func_start sub_807E254
|
|
sub_807E254:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E274
|
|
ldr r0, _0807E270
|
|
adds r1, r6, 0
|
|
b _0807E286
|
|
.align 2, 0
|
|
_0807E270: .4byte gAvailablePokemonNames
|
|
_0807E274:
|
|
adds r0, r7, 0
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E2A4
|
|
ldr r0, _0807E29C
|
|
adds r1, r7, 0
|
|
_0807E286:
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807E2A0
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _0807E366
|
|
.align 2, 0
|
|
_0807E29C: .4byte gAvailablePokemonNames
|
|
_0807E2A0: .4byte gUnknown_80FCAC0
|
|
_0807E2A4:
|
|
ldrh r1, [r6, 0x6]
|
|
lsls r1, 16
|
|
ldrh r0, [r6, 0x4]
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldrh r1, [r7, 0x6]
|
|
lsls r1, 16
|
|
ldrh r0, [r7, 0x4]
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
mov r5, sp
|
|
mov r0, sp
|
|
bl nullsub_93
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
bl nullsub_93
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x2
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x2
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r7, 0
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E330
|
|
ldr r0, [r6, 0x70]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0807E31A
|
|
adds r0, r6, 0x4
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807E31A:
|
|
adds r0, r6, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807E370
|
|
ldr r0, [r0]
|
|
ldr r1, _0807E374
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8075900
|
|
_0807E330:
|
|
adds r0, r7, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E366
|
|
ldr r0, [r7, 0x70]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0807E350
|
|
adds r0, r7, 0x4
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807E350:
|
|
adds r0, r7, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807E370
|
|
ldr r0, [r0]
|
|
ldr r2, _0807E374
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_8075900
|
|
_0807E366:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E370: .4byte gDungeonGlobalData
|
|
_0807E374: .4byte 0x00003a08
|
|
thumb_func_end sub_807E254
|
|
|
|
thumb_func_start sub_807E378
|
|
sub_807E378:
|
|
push {r4-r7,lr}
|
|
bl GetLeaderEntity
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E38C
|
|
b _0807E564
|
|
_0807E38C:
|
|
ldr r0, _0807E41C
|
|
ldr r1, [r0]
|
|
ldr r3, _0807E420
|
|
adds r2, r1, r3
|
|
ldrh r3, [r2]
|
|
movs r5, 0
|
|
ldrsh r1, [r2, r5]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
ble _0807E3AA
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _0807E3B4
|
|
_0807E3AA:
|
|
ldr r0, [r6]
|
|
ldr r1, _0807E424
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
_0807E3B4:
|
|
adds r5, r6, 0
|
|
ldr r1, [r5]
|
|
ldr r7, _0807E424
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807E434
|
|
ldr r2, _0807E420
|
|
adds r0, r1, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0xF9
|
|
ble _0807E3D0
|
|
b _0807E564
|
|
_0807E3D0:
|
|
bl sub_805E804
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806A2BC
|
|
adds r0, r4, 0
|
|
bl UseAttack
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E3EE
|
|
b _0807E564
|
|
_0807E3EE:
|
|
ldr r0, _0807E428
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
ldr r1, _0807E42C
|
|
ldr r0, [r5]
|
|
ldr r2, _0807E430
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80426C8
|
|
ldr r0, [r5]
|
|
adds r0, r7
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _0807E564
|
|
.align 2, 0
|
|
_0807E41C: .4byte gDungeonGlobalData
|
|
_0807E420: .4byte 0x00000666
|
|
_0807E424: .4byte 0x0000067a
|
|
_0807E428: .4byte gUnknown_80F9C4C
|
|
_0807E42C: .4byte gUnknown_80F5FAC
|
|
_0807E430: .4byte 0x00003a0e
|
|
_0807E434:
|
|
cmp r0, 0x1
|
|
bne _0807E4A0
|
|
ldr r2, _0807E490
|
|
adds r0, r1, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x95
|
|
ble _0807E446
|
|
b _0807E564
|
|
_0807E446:
|
|
bl sub_805E804
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806A2BC
|
|
adds r0, r4, 0
|
|
bl UseAttack
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E464
|
|
b _0807E564
|
|
_0807E464:
|
|
ldr r0, _0807E494
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
ldr r1, _0807E498
|
|
ldr r0, [r5]
|
|
ldr r2, _0807E49C
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80426C8
|
|
ldr r0, [r5]
|
|
adds r0, r7
|
|
movs r1, 0x2
|
|
strb r1, [r0]
|
|
b _0807E564
|
|
.align 2, 0
|
|
_0807E490: .4byte 0x00000666
|
|
_0807E494: .4byte gUnknown_80F9C70
|
|
_0807E498: .4byte gUnknown_80F5FAC
|
|
_0807E49C: .4byte 0x00003a0e
|
|
_0807E4A0:
|
|
cmp r0, 0x2
|
|
bne _0807E508
|
|
ldr r2, _0807E4F8
|
|
adds r0, r1, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x31
|
|
bgt _0807E564
|
|
bl sub_805E804
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806A2BC
|
|
adds r0, r4, 0
|
|
bl UseAttack
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E564
|
|
ldr r0, _0807E4FC
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
ldr r1, _0807E500
|
|
ldr r0, [r5]
|
|
ldr r2, _0807E504
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_80426C8
|
|
ldr r0, [r5]
|
|
adds r0, r7
|
|
movs r1, 0x3
|
|
strb r1, [r0]
|
|
b _0807E564
|
|
.align 2, 0
|
|
_0807E4F8: .4byte 0x00000666
|
|
_0807E4FC: .4byte gUnknown_80F9C8C
|
|
_0807E500: .4byte gUnknown_80F5FAC
|
|
_0807E504: .4byte 0x00003a0e
|
|
_0807E508:
|
|
ldr r5, _0807E56C
|
|
adds r0, r1, r5
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bgt _0807E564
|
|
bl sub_805E804
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806A2BC
|
|
adds r0, r4, 0
|
|
bl UseAttack
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E564
|
|
ldr r0, _0807E570
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl SendMessage
|
|
ldr r1, _0807E574
|
|
ldr r0, [r6]
|
|
ldr r2, _0807E578
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_80426C8
|
|
ldr r0, [r6]
|
|
adds r0, r7
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
ldr r1, _0807E57C
|
|
adds r0, r4, 0
|
|
adds r2, r4, 0
|
|
bl sub_8068FE0
|
|
_0807E564:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E56C: .4byte 0x00000666
|
|
_0807E570: .4byte gUnknown_80F9CBC
|
|
_0807E574: .4byte gUnknown_80F5FAC
|
|
_0807E578: .4byte 0x00003a0e
|
|
_0807E57C: .4byte 0x0000021e
|
|
thumb_func_end sub_807E378
|
|
|
|
thumb_func_start GetWeather
|
|
GetWeather:
|
|
push {lr}
|
|
cmp r0, 0
|
|
beq _0807E596
|
|
movs r1, 0x2D
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E596
|
|
movs r0, 0
|
|
b _0807E5A0
|
|
_0807E596:
|
|
ldr r0, _0807E5A4
|
|
ldr r0, [r0]
|
|
ldr r1, _0807E5A8
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
_0807E5A0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807E5A4: .4byte gDungeonGlobalData
|
|
_0807E5A8: .4byte 0x0000e264
|
|
thumb_func_end GetWeather
|
|
|
|
thumb_func_start sub_807E5AC
|
|
sub_807E5AC:
|
|
push {lr}
|
|
ldr r0, _0807E5DC
|
|
ldr r0, [r0]
|
|
ldr r1, _0807E5E0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _0807E5C6
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0807E5C6:
|
|
bl sub_807E5E4
|
|
bl TriggerWeatherAbilities
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_807EAA0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E5DC: .4byte gDungeonGlobalData
|
|
_0807E5E0: .4byte 0x0001c578
|
|
thumb_func_end sub_807E5AC
|
|
|
|
thumb_func_start sub_807E5E4
|
|
sub_807E5E4:
|
|
push {r4-r6,lr}
|
|
ldr r3, _0807E674
|
|
ldr r1, [r3]
|
|
ldr r2, _0807E678
|
|
adds r1, r2
|
|
movs r4, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r2, r0, r2
|
|
ldrb r1, [r2]
|
|
ldr r2, _0807E67C
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
ldr r1, _0807E680
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
movs r2, 0
|
|
adds r4, r3, 0
|
|
ldr r6, _0807E684
|
|
movs r1, 0
|
|
ldr r5, _0807E688
|
|
_0807E610:
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _0807E610
|
|
ldr r0, [r3]
|
|
ldr r2, _0807E68C
|
|
adds r0, r2
|
|
movs r2, 0
|
|
movs r1, 0x9
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
ldr r1, _0807E690
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
movs r6, 0xBE
|
|
lsls r6, 1
|
|
ldr r5, _0807E694
|
|
movs r4, 0xBF
|
|
lsls r4, 1
|
|
_0807E64C:
|
|
ldr r0, [r3]
|
|
lsls r1, r2, 2
|
|
adds r0, r1
|
|
adds r0, r6
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
adds r0, r5
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
adds r0, r4
|
|
strb r2, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xFF
|
|
ble _0807E64C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E674: .4byte gDungeonGlobalData
|
|
_0807E678: .4byte 0x0000e265
|
|
_0807E67C: .4byte 0x0000e264
|
|
_0807E680: .4byte 0x0000e279
|
|
_0807E684: .4byte 0x0000e267
|
|
_0807E688: .4byte 0x0000e26f
|
|
_0807E68C: .4byte 0x0000e266
|
|
_0807E690: .4byte 0x0000e277
|
|
_0807E694: .4byte 0x0000017d
|
|
thumb_func_end sub_807E5E4
|
|
|
|
thumb_func_start sub_807E698
|
|
sub_807E698:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _0807E724
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
mov r10, r0
|
|
movs r0, 0
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [sp]
|
|
bl sub_8042818
|
|
movs r0, 0x25
|
|
bl sub_803E46C
|
|
movs r0, 0x1
|
|
bl sub_804178C
|
|
ldr r1, _0807E728
|
|
ldrb r0, [r1]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
ldr r2, _0807E72C
|
|
mov r8, r2
|
|
_0807E6EC:
|
|
movs r7, 0
|
|
movs r0, 0x25
|
|
bl sub_803E46C
|
|
movs r6, 0
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r1, 2
|
|
mov r2, r10
|
|
adds r5, r0, r2
|
|
movs r0, 0xFF
|
|
mov r12, r0
|
|
_0807E702:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4]
|
|
ldrb r3, [r5]
|
|
subs r1, r0, r3
|
|
cmp r1, 0
|
|
bge _0807E71A
|
|
negs r1, r1
|
|
_0807E71A:
|
|
cmp r1, 0x9
|
|
bgt _0807E730
|
|
strb r3, [r4]
|
|
b _0807E746
|
|
.align 2, 0
|
|
_0807E724: .4byte gUnknown_202ECA0
|
|
_0807E728: .4byte gUnknown_203B40D
|
|
_0807E72C: .4byte gDungeonGlobalData
|
|
_0807E730:
|
|
movs r7, 0x1
|
|
adds r2, r0, 0
|
|
adds r1, r3, 0
|
|
cmp r2, r1
|
|
bcs _0807E73E
|
|
adds r0, 0xA
|
|
b _0807E744
|
|
_0807E73E:
|
|
cmp r2, r1
|
|
bls _0807E746
|
|
subs r0, 0xA
|
|
_0807E744:
|
|
strb r0, [r4]
|
|
_0807E746:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
ldr r2, _0807E764
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4]
|
|
ldrb r3, [r5, 0x1]
|
|
subs r1, r0, r3
|
|
cmp r1, 0
|
|
bge _0807E75C
|
|
negs r1, r1
|
|
_0807E75C:
|
|
cmp r1, 0x9
|
|
bgt _0807E768
|
|
strb r3, [r4]
|
|
b _0807E77E
|
|
.align 2, 0
|
|
_0807E764: .4byte 0x0000017d
|
|
_0807E768:
|
|
movs r7, 0x1
|
|
adds r2, r0, 0
|
|
adds r1, r3, 0
|
|
cmp r2, r1
|
|
bcs _0807E776
|
|
adds r0, 0xA
|
|
b _0807E77C
|
|
_0807E776:
|
|
cmp r2, r1
|
|
bls _0807E77E
|
|
subs r0, 0xA
|
|
_0807E77C:
|
|
strb r0, [r4]
|
|
_0807E77E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
movs r2, 0xBF
|
|
lsls r2, 1
|
|
adds r4, r0, r2
|
|
ldrb r0, [r4]
|
|
ldrb r3, [r5, 0x2]
|
|
subs r1, r0, r3
|
|
cmp r1, 0
|
|
bge _0807E796
|
|
negs r1, r1
|
|
_0807E796:
|
|
cmp r1, 0x9
|
|
bgt _0807E79E
|
|
strb r3, [r4]
|
|
b _0807E7B4
|
|
_0807E79E:
|
|
movs r7, 0x1
|
|
adds r2, r0, 0
|
|
adds r1, r3, 0
|
|
cmp r2, r1
|
|
bcs _0807E7AC
|
|
adds r0, 0xA
|
|
b _0807E7B2
|
|
_0807E7AC:
|
|
cmp r2, r1
|
|
bls _0807E7B4
|
|
subs r0, 0xA
|
|
_0807E7B2:
|
|
strb r0, [r4]
|
|
_0807E7B4:
|
|
adds r6, 0x4
|
|
adds r5, 0x4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r12, r0
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
bge _0807E702
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_803E874
|
|
cmp r7, 0
|
|
beq _0807E7DA
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
mov r0, r9
|
|
cmp r0, 0x3F
|
|
ble _0807E6EC
|
|
_0807E7DA:
|
|
ldr r0, _0807E7F8
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
strb r1, [r0]
|
|
ldr r0, [sp]
|
|
bl sub_807E7FC
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E7F8: .4byte gUnknown_203B40D
|
|
thumb_func_end sub_807E698
|
|
|
|
thumb_func_start sub_807E7FC
|
|
sub_807E7FC:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r6, _0807E874
|
|
ldr r0, [r6]
|
|
ldr r1, _0807E878
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
cmp r5, 0
|
|
bne _0807E816
|
|
bl GetLeaderEntity
|
|
adds r5, r0, 0
|
|
_0807E816:
|
|
cmp r4, 0
|
|
beq _0807E844
|
|
ldr r0, [r6]
|
|
ldr r2, _0807E87C
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807E844
|
|
ldr r4, _0807E880
|
|
movs r0, 0
|
|
bl GetWeather
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl GetWeatherName
|
|
ldr r0, _0807E884
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
_0807E844:
|
|
movs r5, 0
|
|
_0807E846:
|
|
ldr r0, _0807E874
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0807E888
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E866
|
|
adds r0, r4, 0
|
|
bl sub_807E8F0
|
|
_0807E866:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807E846
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E874: .4byte gDungeonGlobalData
|
|
_0807E878: .4byte 0x000181f8
|
|
_0807E87C: .4byte 0x0001356c
|
|
_0807E880: .4byte gAvailablePokemonNames
|
|
_0807E884: .4byte gUnknown_80FC5E0
|
|
_0807E888: .4byte 0x000135cc
|
|
thumb_func_end sub_807E7FC
|
|
|
|
thumb_func_start sub_807E88C
|
|
sub_807E88C:
|
|
push {r4-r7,lr}
|
|
movs r0, 0
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
ldr r1, _0807E8E4
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
movs r4, 0
|
|
ldr r5, _0807E8E8
|
|
lsrs r0, 14
|
|
adds r3, r0, r1
|
|
movs r6, 0xBE
|
|
lsls r6, 1
|
|
_0807E8A8:
|
|
ldr r0, [r5]
|
|
lsls r2, r4, 2
|
|
adds r0, r2
|
|
ldrb r1, [r3]
|
|
adds r0, r6
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
ldrb r1, [r3, 0x1]
|
|
ldr r7, _0807E8EC
|
|
adds r0, r7
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
ldrb r1, [r3, 0x2]
|
|
movs r2, 0xBF
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
adds r3, 0x4
|
|
adds r4, 0x1
|
|
cmp r4, 0xFF
|
|
ble _0807E8A8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_803E874
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807E8E4: .4byte gUnknown_202ECA0
|
|
_0807E8E8: .4byte gDungeonGlobalData
|
|
_0807E8EC: .4byte 0x0000017d
|
|
thumb_func_end sub_807E88C
|
|
|
|
thumb_func_start sub_807E8F0
|
|
sub_807E8F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807E90E
|
|
b _0807EA0A
|
|
_0807E90E:
|
|
ldr r4, [r5, 0x70]
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
mov r9, r1
|
|
mov r1, sp
|
|
adds r6, r4, 0
|
|
adds r6, 0x5C
|
|
ldrb r0, [r6]
|
|
strb r0, [r1]
|
|
adds r7, r4, 0
|
|
adds r7, 0x5D
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x1]
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
adds r0, r5, 0
|
|
movs r1, 0x25
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E958
|
|
adds r0, r5, 0
|
|
bl GetWeather
|
|
ldr r1, _0807E954
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r6]
|
|
mov r1, r8
|
|
strb r1, [r7]
|
|
b _0807E984
|
|
.align 2, 0
|
|
_0807E954: .4byte gUnknown_80F520C
|
|
_0807E958:
|
|
adds r0, r4, 0
|
|
adds r0, 0xC4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC
|
|
beq _0807E984
|
|
adds r0, r4, 0
|
|
adds r0, 0xF6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807E984
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0
|
|
bl GetPokemonType
|
|
strb r0, [r6]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1
|
|
bl GetPokemonType
|
|
strb r0, [r7]
|
|
_0807E984:
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r1, 0x5C
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0807E9A0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r1, 0x5D
|
|
ldrb r0, [r0, 0x1]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _0807E9A4
|
|
_0807E9A0:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0807E9A4:
|
|
ldr r1, _0807E9D0
|
|
adds r0, r1, 0
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bhi _0807E9FE
|
|
adds r0, r5, 0
|
|
movs r1, 0x25
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807E9D4
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8069F54
|
|
b _0807E9D8
|
|
.align 2, 0
|
|
_0807E9D0: .4byte 0xfffffe88
|
|
_0807E9D4:
|
|
movs r0, 0xBC
|
|
lsls r0, 1
|
|
_0807E9D8:
|
|
strh r0, [r4, 0x4]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r9
|
|
beq _0807E9FE
|
|
bl sub_80687D0
|
|
str r0, [r5, 0x64]
|
|
adds r0, r5, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl sub_806CCB4
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0807E9FE:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _0807EA0A
|
|
adds r0, r5, 0
|
|
bl sub_80429D8
|
|
_0807EA0A:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807E8F0
|
|
|
|
thumb_func_start GetWeatherName
|
|
GetWeatherName:
|
|
push {lr}
|
|
lsls r1, 24
|
|
ldr r2, _0807EA2C
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807EA2C: .4byte gWeatherNames
|
|
thumb_func_end GetWeatherName
|
|
|
|
thumb_func_start sub_807EA30
|
|
sub_807EA30:
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807EA6C
|
|
ldr r1, _0807EA5C
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
ldr r1, _0807EA60
|
|
ldr r1, [r1]
|
|
ldr r2, _0807EA64
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
bl GetLeaderEntity
|
|
ldr r1, _0807EA68
|
|
ldr r1, [r1]
|
|
bl SendMessage
|
|
b _0807EA8C
|
|
.align 2, 0
|
|
_0807EA5C: .4byte gUnknown_80F4EAC
|
|
_0807EA60: .4byte gDungeonGlobalData
|
|
_0807EA64: .4byte 0x0000e277
|
|
_0807EA68: .4byte gUnknown_80FAD8C
|
|
_0807EA6C:
|
|
ldr r1, _0807EA90
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_808417C
|
|
ldr r1, _0807EA94
|
|
ldr r1, [r1]
|
|
ldr r2, _0807EA98
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
bl GetLeaderEntity
|
|
ldr r1, _0807EA9C
|
|
ldr r1, [r1]
|
|
bl SendMessage
|
|
_0807EA8C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807EA90: .4byte gUnknown_80F4EAC
|
|
_0807EA94: .4byte gDungeonGlobalData
|
|
_0807EA98: .4byte 0x0000e278
|
|
_0807EA9C: .4byte gUnknown_80FADB0
|
|
thumb_func_end sub_807EA30
|
|
|
|
thumb_func_start sub_807EAA0
|
|
sub_807EAA0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r9, r1
|
|
movs r2, 0
|
|
str r2, [sp, 0x8]
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r5, 0
|
|
ldr r7, _0807EAF0
|
|
ldr r6, _0807EAF4
|
|
_0807EAD6:
|
|
ldr r3, [r7]
|
|
adds r0, r3, r6
|
|
adds r4, r0, r5
|
|
ldr r1, _0807EAF8
|
|
adds r0, r3, r1
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
ldrb r2, [r4]
|
|
adds r1, r0, 0
|
|
cmp r2, r1
|
|
bcs _0807EAFC
|
|
strb r0, [r4]
|
|
b _0807EB08
|
|
.align 2, 0
|
|
_0807EAF0: .4byte gDungeonGlobalData
|
|
_0807EAF4: .4byte 0x0000e267
|
|
_0807EAF8: .4byte 0x0000e26f
|
|
_0807EAFC:
|
|
cmp r2, r1
|
|
bls _0807EB08
|
|
adds r0, r5, r6
|
|
adds r0, r3, r0
|
|
bl sub_80838EC
|
|
_0807EB08:
|
|
ldr r0, [r7]
|
|
ldr r2, _0807EB38
|
|
adds r0, r2
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
ldr r0, _0807EB3C
|
|
cmp r8, r1
|
|
bge _0807EB1C
|
|
mov r8, r1
|
|
mov r9, r5
|
|
_0807EB1C:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0807EAD6
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bge _0807EB44
|
|
ldr r0, [r0]
|
|
ldr r2, _0807EB40
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
subs r2, 0x1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
b _0807EB4E
|
|
.align 2, 0
|
|
_0807EB38: .4byte 0x0000e267
|
|
_0807EB3C: .4byte gDungeonGlobalData
|
|
_0807EB40: .4byte 0x0000e265
|
|
_0807EB44:
|
|
ldr r0, [r0]
|
|
ldr r1, _0807EB94
|
|
adds r0, r1
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
_0807EB4E:
|
|
ldr r0, _0807EB98
|
|
ldr r1, [r0]
|
|
ldr r2, _0807EB9C
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807EB64
|
|
ldr r0, _0807EB94
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_0807EB64:
|
|
movs r0, 0
|
|
bl GetWeather
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r10, r0
|
|
bne _0807EB78
|
|
ldr r1, [sp, 0x4]
|
|
cmp r1, 0
|
|
beq _0807EB82
|
|
_0807EB78:
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
ldr r0, [sp]
|
|
bl sub_807E698
|
|
_0807EB82:
|
|
ldr r0, _0807EB98
|
|
ldr r0, [r0]
|
|
ldr r2, _0807EBA0
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807EBA4
|
|
subs r0, 0x1
|
|
b _0807EBA6
|
|
.align 2, 0
|
|
_0807EB94: .4byte 0x0000e264
|
|
_0807EB98: .4byte gDungeonGlobalData
|
|
_0807EB9C: .4byte 0x0000e279
|
|
_0807EBA0: .4byte 0x0000e266
|
|
_0807EBA4:
|
|
movs r0, 0x9
|
|
_0807EBA6:
|
|
strb r0, [r1]
|
|
ldr r4, _0807EC14
|
|
ldr r0, [r4]
|
|
ldr r2, _0807EC18
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807EBD4
|
|
adds r0, r1, 0
|
|
bl sub_80838EC
|
|
ldr r0, [r4]
|
|
ldr r1, _0807EC18
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807EBD4
|
|
bl GetLeaderEntity
|
|
ldr r1, _0807EC1C
|
|
ldr r1, [r1]
|
|
bl SendMessage
|
|
_0807EBD4:
|
|
ldr r4, _0807EC14
|
|
ldr r0, [r4]
|
|
ldr r2, _0807EC20
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0807EC00
|
|
adds r0, r1, 0
|
|
bl sub_80838EC
|
|
ldr r0, [r4]
|
|
ldr r1, _0807EC20
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807EC00
|
|
bl GetLeaderEntity
|
|
ldr r1, _0807EC24
|
|
ldr r1, [r1]
|
|
bl SendMessage
|
|
_0807EC00:
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807EC14: .4byte gDungeonGlobalData
|
|
_0807EC18: .4byte 0x0000e277
|
|
_0807EC1C: .4byte gUnknown_80FA778
|
|
_0807EC20: .4byte 0x0000e278
|
|
_0807EC24: .4byte gUnknown_80FA758
|
|
thumb_func_end sub_807EAA0
|
|
|
|
thumb_func_start sub_807EC28
|
|
sub_807EC28:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
bl sub_8044B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807EC46
|
|
b _0807EF32
|
|
_0807EC46:
|
|
bl GetLeaderEntity
|
|
adds r7, r0, 0
|
|
ldr r0, [r7, 0x70]
|
|
mov r9, r0
|
|
ldr r4, _0807ECB4
|
|
ldr r0, [r4]
|
|
movs r5, 0xD3
|
|
lsls r5, 3
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
bl GetMapEntityForDungeonEntity
|
|
ldrh r0, [r0]
|
|
lsrs r0, 5
|
|
mov r10, r0
|
|
movs r0, 0x1
|
|
mov r1, r10
|
|
ands r1, r0
|
|
mov r10, r1
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r3, _0807ECB8
|
|
adds r0, r3
|
|
mov r2, r10
|
|
strb r2, [r0]
|
|
ldr r2, [r4]
|
|
ldr r6, _0807ECBC
|
|
adds r0, r2, r6
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _0807EC90
|
|
b _0807EF32
|
|
_0807EC90:
|
|
adds r6, 0x26
|
|
adds r0, r2, r6
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807EC9C
|
|
b _0807EF32
|
|
_0807EC9C:
|
|
mov r0, r9
|
|
adds r0, 0xE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0807ECC0
|
|
adds r0, r2, r5
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
b _0807EF32
|
|
.align 2, 0
|
|
_0807ECB4: .4byte gDungeonGlobalData
|
|
_0807ECB8: .4byte 0x00000699
|
|
_0807ECBC: .4byte 0x0000066e
|
|
_0807ECC0:
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
movs r6, 0
|
|
_0807ECC6:
|
|
ldr r0, _0807ED48
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r2, _0807ED4C
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807ED0E
|
|
ldr r0, [r5, 0x70]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1
|
|
bne _0807ED0E
|
|
adds r0, r5, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807ED0E
|
|
adds r0, r7, 0
|
|
bl GetEntityRoomIndex
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _0807ED0E
|
|
movs r0, 0x1
|
|
str r0, [sp, 0xC]
|
|
_0807ED0E:
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
ble _0807ECC6
|
|
ldr r1, _0807ED50
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
ldr r1, _0807ED54
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
ldr r1, [sp, 0x8]
|
|
cmp r1, 0
|
|
bne _0807ED5C
|
|
mov r2, r10
|
|
cmp r2, 0x1
|
|
bne _0807ED64
|
|
ldr r6, [sp, 0xC]
|
|
cmp r6, 0
|
|
bne _0807ED3A
|
|
b _0807EF32
|
|
_0807ED3A:
|
|
ldr r0, _0807ED58
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _0807EF32
|
|
.align 2, 0
|
|
_0807ED48: .4byte gDungeonGlobalData
|
|
_0807ED4C: .4byte 0x0001358c
|
|
_0807ED50: .4byte 0xffff0000
|
|
_0807ED54: .4byte 0xff00ffff
|
|
_0807ED58: .4byte gUnknown_80FE674
|
|
_0807ED5C:
|
|
mov r0, r10
|
|
cmp r0, 0x1
|
|
bne _0807ED64
|
|
b _0807EF32
|
|
_0807ED64:
|
|
ldr r1, [sp, 0x8]
|
|
cmp r1, 0x1
|
|
bne _0807ED70
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _0807ED78
|
|
_0807ED70:
|
|
mov r6, r8
|
|
cmp r6, 0
|
|
bne _0807ED78
|
|
b _0807EF32
|
|
_0807ED78:
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
movs r1, 0
|
|
str r1, [sp, 0x14]
|
|
bl sub_807EF48
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807ED8C
|
|
b _0807EECC
|
|
_0807ED8C:
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x14]
|
|
movs r6, 0
|
|
_0807ED92:
|
|
ldr r0, _0807EE90
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r2, _0807EE94
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807EDAE
|
|
b _0807EEC4
|
|
_0807EDAE:
|
|
ldr r0, [r5, 0x70]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1
|
|
beq _0807EDB8
|
|
b _0807EEC4
|
|
_0807EDB8:
|
|
adds r0, r5, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807EDC6
|
|
b _0807EEC4
|
|
_0807EDC6:
|
|
adds r0, r7, 0
|
|
bl GetEntityRoomIndex
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl GetEntityRoomIndex
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _0807EEC4
|
|
movs r6, 0x1
|
|
str r6, [sp, 0x10]
|
|
movs r0, 0x4
|
|
ldrsh r1, [r7, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807EDF0
|
|
negs r1, r1
|
|
_0807EDF0:
|
|
cmp r1, 0x1
|
|
bgt _0807EE10
|
|
movs r6, 0x6
|
|
ldrsh r1, [r7, r6]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0807EE04
|
|
negs r1, r1
|
|
_0807EE04:
|
|
adds r6, r7, 0x4
|
|
mov r9, r6
|
|
adds r0, r5, 0x4
|
|
mov r8, r0
|
|
cmp r1, 0x1
|
|
ble _0807EE72
|
|
_0807EE10:
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r6, sp, 0x4
|
|
adds r1, r7, 0x4
|
|
mov r9, r1
|
|
adds r2, r5, 0x4
|
|
mov r8, r2
|
|
_0807EE1E:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_0807EE22:
|
|
ldrh r0, [r7, 0x4]
|
|
adds r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _0807EE98
|
|
ldr r2, [sp, 0x4]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrh r0, [r7, 0x6]
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
ldr r1, _0807EE9C
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
movs r2, 0
|
|
ldrsh r0, [r6, r2]
|
|
asrs r1, 16
|
|
str r3, [sp, 0x18]
|
|
bl GetMapTileAtPosition
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r3, [sp, 0x18]
|
|
cmp r0, 0xFF
|
|
beq _0807EE66
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80703A0
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x18]
|
|
cmp r0, 0
|
|
beq _0807EEA0
|
|
_0807EE66:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _0807EE22
|
|
adds r3, 0x1
|
|
cmp r3, 0x1
|
|
ble _0807EE1E
|
|
_0807EE72:
|
|
adds r0, r7, 0
|
|
bl sub_8070BC0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807EEAE
|
|
mov r0, r9
|
|
mov r1, r8
|
|
bl CalculateFacingDir
|
|
adds r1, r0, 0
|
|
adds r0, r7, 0
|
|
bl sub_806CE34
|
|
b _0807EEB2
|
|
.align 2, 0
|
|
_0807EE90: .4byte gDungeonGlobalData
|
|
_0807EE94: .4byte 0x0001358c
|
|
_0807EE98: .4byte 0xffff0000
|
|
_0807EE9C: .4byte 0x0000ffff
|
|
_0807EEA0:
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
adds r3, r6, 0
|
|
bl sub_807D148
|
|
b _0807EE72
|
|
_0807EEAE:
|
|
movs r6, 0
|
|
str r6, [sp, 0x10]
|
|
_0807EEB2:
|
|
mov r0, r8
|
|
mov r1, r9
|
|
bl CalculateFacingDir
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
bl sub_806CE68
|
|
b _0807EECC
|
|
_0807EEC4:
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
bgt _0807EECC
|
|
b _0807ED92
|
|
_0807EECC:
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, 0
|
|
beq _0807EF04
|
|
ldr r1, [sp, 0x10]
|
|
cmp r1, 0
|
|
beq _0807EEDE
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0
|
|
bne _0807EF04
|
|
_0807EEDE:
|
|
ldr r0, _0807EEF8
|
|
ldr r0, [r0]
|
|
ldr r2, _0807EEFC
|
|
adds r1, r0, r2
|
|
ldr r6, _0807EF00
|
|
adds r0, r6
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
ble _0807EF32
|
|
_0807EEF2:
|
|
bl sub_807F33C
|
|
b _0807EF32
|
|
.align 2, 0
|
|
_0807EEF8: .4byte gDungeonGlobalData
|
|
_0807EEFC: .4byte 0x00000694
|
|
_0807EF00: .4byte 0x0000068c
|
|
_0807EF04:
|
|
ldr r0, [sp, 0x10]
|
|
bl sub_807EFFC
|
|
ldr r0, [sp, 0x10]
|
|
bl sub_807F19C
|
|
cmp r0, 0
|
|
bne _0807EEF2
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, 0x1
|
|
bne _0807EF32
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bne _0807EF32
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0
|
|
beq _0807EF32
|
|
ldr r0, _0807EF44
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
_0807EF32:
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807EF44: .4byte gUnknown_80FE65C
|
|
thumb_func_end sub_807EC28
|
|
|
|
thumb_func_start sub_807EF48
|
|
sub_807EF48:
|
|
push {lr}
|
|
ldr r0, _0807EF70
|
|
ldr r2, [r0]
|
|
ldr r1, _0807EF74
|
|
adds r0, r2, r1
|
|
ldr r3, _0807EF78
|
|
adds r1, r2, r3
|
|
ldr r0, [r0]
|
|
ldr r1, [r1]
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bgt _0807EF7C
|
|
movs r1, 0xD2
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807EF7C
|
|
movs r0, 0
|
|
b _0807EF7E
|
|
.align 2, 0
|
|
_0807EF70: .4byte gDungeonGlobalData
|
|
_0807EF74: .4byte 0x00000694
|
|
_0807EF78: .4byte 0x0000068c
|
|
_0807EF7C:
|
|
movs r0, 0x1
|
|
_0807EF7E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807EF48
|
|
|
|
thumb_func_start sub_807EF84
|
|
sub_807EF84:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r1, _0807EFD0
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
ldr r1, _0807EFD4
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl sub_807EFFC
|
|
movs r0, 0x1
|
|
bl sub_807F19C
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0807EFE2
|
|
bl GetLeaderEntity
|
|
bl GetMapEntityForDungeonEntity
|
|
ldrh r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807EFDC
|
|
cmp r4, 0x2
|
|
beq _0807EFEE
|
|
ldr r0, _0807EFD8
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
b _0807EFEE
|
|
.align 2, 0
|
|
_0807EFD0: .4byte 0xffff0000
|
|
_0807EFD4: .4byte 0xff00ffff
|
|
_0807EFD8: .4byte gUnknown_80FE63C
|
|
_0807EFDC:
|
|
bl sub_807F33C
|
|
b _0807EFEE
|
|
_0807EFE2:
|
|
ldr r0, _0807EFF8
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
_0807EFEE:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807EFF8: .4byte gUnknown_80FE5F0
|
|
thumb_func_end sub_807EF84
|
|
|
|
thumb_func_start sub_807EFFC
|
|
sub_807EFFC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r4, _0807F168
|
|
ldr r0, [r4]
|
|
movs r5, 0xD2
|
|
lsls r5, 3
|
|
adds r2, r0, r5
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _0807F01E
|
|
b _0807F158
|
|
_0807F01E:
|
|
ldr r1, _0807F16C
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
ldr r1, _0807F170
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
cmp r3, 0
|
|
bne _0807F036
|
|
b _0807F158
|
|
_0807F036:
|
|
ldr r1, _0807F174
|
|
ldr r0, [r2]
|
|
str r0, [r1]
|
|
ldr r0, _0807F178
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
beq _0807F04E
|
|
b _0807F158
|
|
_0807F04E:
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
bl PlaySoundEffect
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl AddToTeamMoney
|
|
ldr r0, [r4]
|
|
ldr r2, _0807F17C
|
|
adds r1, r0, r2
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0xC]
|
|
ldr r2, _0807F180
|
|
adds r1, r0, r2
|
|
ldr r6, [r1]
|
|
ldr r1, _0807F184
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
bgt _0807F134
|
|
mov r8, r4
|
|
_0807F07C:
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
ldr r2, _0807F188
|
|
adds r1, r0, r2
|
|
ldr r5, [r1]
|
|
ldr r1, _0807F18C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
adds r2, r6, 0x1
|
|
mov r10, r2
|
|
cmp r5, r0
|
|
bgt _0807F124
|
|
lsls r0, r6, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
_0807F09A:
|
|
lsls r0, r5, 16
|
|
mov r1, r9
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807F114
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807F114
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _0807F114
|
|
ldr r0, [r4, 0x14]
|
|
bl GetItemData
|
|
adds r2, r0, 0
|
|
ldrb r1, [r2]
|
|
movs r7, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807F114
|
|
ldr r0, [r2]
|
|
str r0, [sp, 0x8]
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80461C8
|
|
ldr r0, [sp, 0x8]
|
|
lsrs r0, 16
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl CanSellItem
|
|
lsls r0, 24
|
|
add r3, sp, 0x8
|
|
cmp r0, 0
|
|
beq _0807F10A
|
|
ldrb r0, [r3]
|
|
adds r2, r7, 0
|
|
orrs r2, r0
|
|
ldr r1, _0807F190
|
|
ldr r0, [sp, 0x8]
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x8]
|
|
_0807F10A:
|
|
adds r0, r4, 0
|
|
adds r1, r3, 0
|
|
movs r2, 0x1
|
|
bl sub_80460F8
|
|
_0807F114:
|
|
adds r5, 0x1
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
ldr r1, _0807F18C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r5, r0
|
|
ble _0807F09A
|
|
_0807F124:
|
|
mov r6, r10
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
ldr r1, _0807F184
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
ble _0807F07C
|
|
_0807F134:
|
|
ldr r0, _0807F168
|
|
ldr r0, [r0]
|
|
ldr r1, _0807F194
|
|
adds r2, r0, r1
|
|
subs r1, 0x8
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0xC]
|
|
subs r1, r0
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _0807F198
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
_0807F158:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807F168: .4byte gDungeonGlobalData
|
|
_0807F16C: .4byte 0xffff0000
|
|
_0807F170: .4byte 0xff00ffff
|
|
_0807F174: .4byte gUnknown_202DE30
|
|
_0807F178: .4byte gUnknown_80FE5C0
|
|
_0807F17C: .4byte 0x0000068c
|
|
_0807F180: .4byte 0x0000e240
|
|
_0807F184: .4byte 0x0000e248
|
|
_0807F188: .4byte 0x0000e244
|
|
_0807F18C: .4byte 0x0000e24c
|
|
_0807F190: .4byte 0xffffff00
|
|
_0807F194: .4byte 0x00000694
|
|
_0807F198: .4byte gUnknown_80FE4F4
|
|
thumb_func_end sub_807EFFC
|
|
|
|
thumb_func_start sub_807F19C
|
|
sub_807F19C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _0807F1EC
|
|
ldr r0, [sp]
|
|
ands r0, r1
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
ldr r1, _0807F1F0
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
ldr r0, _0807F1F4
|
|
ldr r0, [r0]
|
|
ldr r3, _0807F1F8
|
|
adds r1, r0, r3
|
|
subs r3, 0x8
|
|
adds r0, r3
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
subs r4, r1, r0
|
|
cmp r4, 0
|
|
bgt _0807F1CE
|
|
b _0807F31A
|
|
_0807F1CE:
|
|
cmp r2, 0
|
|
beq _0807F1E6
|
|
ldr r0, _0807F1FC
|
|
str r4, [r0]
|
|
ldr r0, _0807F200
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl sub_8052B8C
|
|
cmp r0, 0x1
|
|
beq _0807F204
|
|
_0807F1E6:
|
|
movs r0, 0x1
|
|
b _0807F31C
|
|
.align 2, 0
|
|
_0807F1EC: .4byte 0xffff0000
|
|
_0807F1F0: .4byte 0xff00ffff
|
|
_0807F1F4: .4byte gDungeonGlobalData
|
|
_0807F1F8: .4byte 0x00000694
|
|
_0807F1FC: .4byte gUnknown_202DE30
|
|
_0807F200: .4byte gUnknown_80FE568
|
|
_0807F204:
|
|
ldr r0, _0807F224
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bge _0807F22C
|
|
ldr r0, _0807F228
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
movs r0, 0x2
|
|
b _0807F31C
|
|
.align 2, 0
|
|
_0807F224: .4byte gTeamInventory_203B460
|
|
_0807F228: .4byte gUnknown_80FE520
|
|
_0807F22C:
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
bl PlaySoundEffect
|
|
negs r0, r4
|
|
bl AddToTeamMoney
|
|
movs r6, 0
|
|
_0807F23C:
|
|
movs r5, 0
|
|
adds r7, r6, 0x1
|
|
_0807F240:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807F27E
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807F27E
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _0807F27E
|
|
ldr r0, [r4, 0x14]
|
|
bl GetItemData
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
bl CanSellItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F27E
|
|
ldrb r1, [r4]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0807F27E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x1F
|
|
ble _0807F240
|
|
adds r6, r7, 0
|
|
cmp r6, 0x37
|
|
ble _0807F23C
|
|
movs r5, 0
|
|
_0807F28C:
|
|
ldr r0, _0807F324
|
|
lsls r1, r5, 2
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807F2B2
|
|
ldrb r0, [r4, 0x2]
|
|
bl CanSellItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F2B2
|
|
ldrb r1, [r4]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0807F2B2:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807F28C
|
|
movs r5, 0
|
|
_0807F2BA:
|
|
ldr r0, _0807F328
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
ldr r2, _0807F32C
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F2F8
|
|
ldr r0, [r4, 0x70]
|
|
adds r4, r0, 0
|
|
adds r4, 0x60
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807F2F8
|
|
ldrb r0, [r4, 0x2]
|
|
bl CanSellItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F2F8
|
|
ldrb r1, [r4]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0807F2F8:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _0807F2BA
|
|
ldr r0, _0807F328
|
|
ldr r0, [r0]
|
|
ldr r3, _0807F330
|
|
adds r1, r0, r3
|
|
ldr r2, _0807F334
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, _0807F338
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl PrintFieldMessage
|
|
_0807F31A:
|
|
movs r0, 0
|
|
_0807F31C:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807F324: .4byte gTeamInventory_203B460
|
|
_0807F328: .4byte gDungeonGlobalData
|
|
_0807F32C: .4byte 0x000135cc
|
|
_0807F330: .4byte 0x00000694
|
|
_0807F334: .4byte 0x0000068c
|
|
_0807F338: .4byte gUnknown_80FE4D4
|
|
thumb_func_end sub_807F19C
|
|
|
|
thumb_func_start sub_807F33C
|
|
sub_807F33C:
|
|
push {r4-r7,lr}
|
|
ldr r2, _0807F41C
|
|
ldr r0, [r2]
|
|
ldr r1, _0807F420
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldr r2, _0807F424
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
bl GetLeaderEntity
|
|
ldr r1, _0807F428
|
|
ldr r1, [r1]
|
|
bl SendMessage
|
|
movs r6, 0
|
|
_0807F360:
|
|
movs r5, 0
|
|
adds r7, r6, 0x1
|
|
_0807F364:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807F38A
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _0807F38A
|
|
ldr r0, [r4, 0x14]
|
|
bl GetItemData
|
|
ldrb r2, [r0]
|
|
movs r1, 0xFD
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_0807F38A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x1F
|
|
ble _0807F364
|
|
adds r6, r7, 0
|
|
cmp r6, 0x37
|
|
ble _0807F360
|
|
movs r6, 0
|
|
ldr r4, _0807F42C
|
|
movs r5, 0x1
|
|
movs r3, 0xFD
|
|
_0807F39E:
|
|
lsls r1, r6, 2
|
|
ldr r0, [r4]
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807F3B4
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_0807F3B4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _0807F39E
|
|
movs r6, 0
|
|
_0807F3BC:
|
|
ldr r0, _0807F41C
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r3, _0807F430
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F3F4
|
|
ldr r4, [r5, 0x70]
|
|
movs r0, 0
|
|
strb r0, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl GetMovementSpeed
|
|
adds r4, 0x60
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807F3F4
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_0807F3F4:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _0807F3BC
|
|
ldr r0, _0807F41C
|
|
ldr r1, [r0]
|
|
ldr r2, _0807F434
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
ldr r3, _0807F438
|
|
adds r0, r1, r3
|
|
str r2, [r0]
|
|
movs r0, 0xD2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
str r2, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807F41C: .4byte gDungeonGlobalData
|
|
_0807F420: .4byte 0x0000066e
|
|
_0807F424: .4byte 0x0000066f
|
|
_0807F428: .4byte gUnknown_80FE4B8
|
|
_0807F42C: .4byte gTeamInventory_203B460
|
|
_0807F430: .4byte 0x000135cc
|
|
_0807F434: .4byte 0x00000694
|
|
_0807F438: .4byte 0x0000068c
|
|
thumb_func_end sub_807F33C
|
|
|
|
thumb_func_start sub_807F43C
|
|
sub_807F43C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10C
|
|
str r0, [sp, 0xEC]
|
|
mov r8, r1
|
|
mov r0, r8
|
|
movs r1, 0xE
|
|
bl HasAbility
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F470
|
|
ldr r0, _0807F468
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807F46C
|
|
b _0807F694
|
|
.align 2, 0
|
|
_0807F468: .4byte gAvailablePokemonNames
|
|
_0807F46C: .4byte gUnknown_80FCB40
|
|
_0807F470:
|
|
ldr r0, [sp, 0xEC]
|
|
cmp r0, r8
|
|
bne _0807F490
|
|
ldr r0, _0807F488
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807F48C
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
b _0807F698
|
|
.align 2, 0
|
|
_0807F488: .4byte gAvailablePokemonNames
|
|
_0807F48C: .4byte gUnknown_80FCB70
|
|
_0807F490:
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
add r1, sp, 0xD4
|
|
str r0, [r1]
|
|
movs r2, 0
|
|
str r2, [sp, 0xF0]
|
|
_0807F49C:
|
|
movs r3, 0
|
|
mov r9, r3
|
|
movs r7, 0
|
|
mov r4, sp
|
|
adds r4, 0x18
|
|
str r4, [sp, 0x108]
|
|
_0807F4A8:
|
|
ldr r0, _0807F504
|
|
ldr r0, [r0]
|
|
lsls r1, r7, 2
|
|
ldr r2, _0807F508
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
adds r3, r7, 0x1
|
|
str r3, [sp, 0x104]
|
|
cmp r0, 0
|
|
bne _0807F4C8
|
|
b _0807F602
|
|
_0807F4C8:
|
|
ldr r0, [sp, 0xEC]
|
|
cmp r0, r4
|
|
bne _0807F4D0
|
|
b _0807F602
|
|
_0807F4D0:
|
|
cmp r8, r4
|
|
bne _0807F4D6
|
|
b _0807F602
|
|
_0807F4D6:
|
|
adds r1, r4, 0
|
|
bl CanSee
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F4E4
|
|
b _0807F602
|
|
_0807F4E4:
|
|
ldr r1, [sp, 0xF0]
|
|
cmp r1, 0
|
|
bne _0807F50C
|
|
ldr r0, [sp, 0xEC]
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0807F500
|
|
b _0807F602
|
|
_0807F500:
|
|
b _0807F51E
|
|
.align 2, 0
|
|
_0807F504: .4byte gDungeonGlobalData
|
|
_0807F508: .4byte 0x000135cc
|
|
_0807F50C:
|
|
ldr r0, [sp, 0xEC]
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CanTarget
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F602
|
|
_0807F51E:
|
|
ldr r2, [sp, 0xF0]
|
|
cmp r2, 0
|
|
bne _0807F594
|
|
movs r5, 0
|
|
add r6, sp, 0xC8
|
|
adds r3, r7, 0x1
|
|
str r3, [sp, 0x104]
|
|
adds r7, r6, 0
|
|
ldr r0, _0807F588
|
|
mov r10, r0
|
|
_0807F532:
|
|
ldr r0, _0807F58C
|
|
lsls r3, r5, 2
|
|
adds r3, r0
|
|
ldrh r0, [r4, 0x4]
|
|
ldrh r1, [r3]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [r6]
|
|
mov r2, r10
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
ldrh r2, [r4, 0x6]
|
|
ldrh r3, [r3, 0x2]
|
|
adds r2, r3
|
|
lsls r2, 16
|
|
ldr r0, _0807F590
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
str r1, [r7]
|
|
mov r0, r8
|
|
add r1, sp, 0xC8
|
|
bl sub_80703A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F570
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0807F532
|
|
_0807F570:
|
|
cmp r5, 0x8
|
|
beq _0807F602
|
|
mov r3, r9
|
|
cmp r3, 0x27
|
|
bgt _0807F602
|
|
ldr r0, [r4, 0x4]
|
|
ldr r4, [sp, 0x108]
|
|
stm r4!, {r0}
|
|
str r4, [sp, 0x108]
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
b _0807F602
|
|
.align 2, 0
|
|
_0807F588: .4byte 0xffff0000
|
|
_0807F58C: .4byte gAdjacentTileOffsets
|
|
_0807F590: .4byte 0x0000ffff
|
|
_0807F594:
|
|
movs r5, 0
|
|
add r6, sp, 0xCC
|
|
adds r1, r7, 0x1
|
|
str r1, [sp, 0x104]
|
|
adds r7, r6, 0
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, sp
|
|
adds r0, 0x18
|
|
mov r10, r0
|
|
_0807F5A8:
|
|
ldr r0, _0807F630
|
|
lsls r3, r5, 2
|
|
adds r3, r0
|
|
ldrh r0, [r4, 0x4]
|
|
ldrh r1, [r3]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0807F634
|
|
ldr r1, [r6]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [r7]
|
|
ldrh r2, [r4, 0x6]
|
|
ldrh r3, [r3, 0x2]
|
|
adds r2, r3
|
|
lsls r2, 16
|
|
ldr r0, _0807F638
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
str r1, [r7]
|
|
mov r0, r8
|
|
add r1, sp, 0xCC
|
|
bl sub_80703A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F5FC
|
|
mov r2, r9
|
|
cmp r2, 0x27
|
|
bgt _0807F5FC
|
|
ldr r0, [r6]
|
|
mov r3, r10
|
|
adds r3, 0x4
|
|
mov r10, r3
|
|
subs r3, 0x4
|
|
stm r3!, {r0}
|
|
ldr r0, [sp, 0x108]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x108]
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
_0807F5FC:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0807F5A8
|
|
_0807F602:
|
|
ldr r7, [sp, 0x104]
|
|
cmp r7, 0x13
|
|
bgt _0807F60A
|
|
b _0807F4A8
|
|
_0807F60A:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _0807F63C
|
|
ldr r3, [sp, 0xF0]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0xF0]
|
|
cmp r3, 0x1
|
|
bgt _0807F61C
|
|
b _0807F49C
|
|
_0807F61C:
|
|
ldr r0, [sp, 0xEC]
|
|
adds r0, 0x4
|
|
add r4, sp, 0xB8
|
|
adds r1, r4, 0
|
|
bl sub_80833E8
|
|
movs r7, 0
|
|
add r5, sp, 0xD0
|
|
adds r6, r5, 0
|
|
b _0807F654
|
|
.align 2, 0
|
|
_0807F630: .4byte gAdjacentTileOffsets
|
|
_0807F634: .4byte 0xffff0000
|
|
_0807F638: .4byte 0x0000ffff
|
|
_0807F63C:
|
|
mov r0, r9
|
|
bl DungeonRandomCapped
|
|
lsls r0, 2
|
|
add r0, sp
|
|
adds r0, 0x18
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0xD4]
|
|
b _0807F6A8
|
|
_0807F64E:
|
|
ldr r0, [r5]
|
|
str r0, [sp, 0xD4]
|
|
b _0807F68E
|
|
_0807F654:
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x8]
|
|
bl sub_808411C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0807F6A0
|
|
ldr r1, [r5]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [r6]
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r4, 0xC]
|
|
bl sub_808411C
|
|
lsls r0, 16
|
|
ldrh r1, [r6]
|
|
orrs r1, r0
|
|
str r1, [r6]
|
|
mov r0, r8
|
|
add r1, sp, 0xD0
|
|
bl sub_80703A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F64E
|
|
adds r7, 0x1
|
|
cmp r7, 0x63
|
|
ble _0807F654
|
|
_0807F68E:
|
|
cmp r7, 0x64
|
|
bne _0807F6A8
|
|
ldr r0, _0807F6A4
|
|
_0807F694:
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0xEC]
|
|
_0807F698:
|
|
mov r1, r8
|
|
bl sub_80522F4
|
|
b _0807F99C
|
|
.align 2, 0
|
|
_0807F6A0: .4byte 0xffff0000
|
|
_0807F6A4: .4byte gUnknown_80FE6B4
|
|
_0807F6A8:
|
|
ldr r0, _0807F860
|
|
mov r1, r8
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldr r0, _0807F864
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0xEC]
|
|
mov r1, r8
|
|
bl sub_80522F4
|
|
mov r0, r8
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F6D0
|
|
ldr r0, _0807F868
|
|
bl PlaySoundEffect
|
|
_0807F6D0:
|
|
movs r4, 0
|
|
str r4, [sp, 0x100]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x70]
|
|
adds r0, 0x46
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
add r2, sp, 0xD4
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
mov r4, r8
|
|
movs r3, 0x4
|
|
ldrsh r0, [r4, r3]
|
|
subs r3, r1, r0
|
|
movs r4, 0x2
|
|
ldrsh r1, [r2, r4]
|
|
mov r2, r8
|
|
movs r4, 0x6
|
|
ldrsh r0, [r2, r4]
|
|
subs r1, r0
|
|
cmp r1, r3
|
|
bge _0807F6FE
|
|
adds r1, r3, 0
|
|
_0807F6FE:
|
|
lsls r6, r1, 4
|
|
cmp r6, 0x50
|
|
ble _0807F706
|
|
movs r6, 0x50
|
|
_0807F706:
|
|
cmp r6, 0x9
|
|
bgt _0807F70C
|
|
movs r6, 0xA
|
|
_0807F70C:
|
|
mov r1, r8
|
|
adds r1, 0x4
|
|
add r0, sp, 0xD4
|
|
bl CalculateFacingDir
|
|
adds r5, r0, 0
|
|
add r2, sp, 0xD4
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 11
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r4, r3
|
|
ldr r0, _0807F86C
|
|
lsls r5, 2
|
|
adds r5, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
adds r4, r0
|
|
str r4, [sp, 0xF4]
|
|
movs r3, 0xD6
|
|
add r3, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r3, r2]
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 11
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r4, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
adds r4, r0
|
|
str r4, [sp, 0xF8]
|
|
mov r2, r8
|
|
ldr r5, [r2, 0xC]
|
|
ldr r3, [sp, 0xF4]
|
|
subs r0, r3, r5
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
str r0, [sp, 0xFC]
|
|
mov r0, r8
|
|
ldr r4, [r0, 0x10]
|
|
ldr r1, [sp, 0xF8]
|
|
subs r0, r1, r4
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
mov r10, r0
|
|
add r0, sp, 0xD8
|
|
str r5, [r0]
|
|
str r4, [r0, 0x4]
|
|
movs r7, 0
|
|
adds r5, r0, 0
|
|
cmp r7, r6
|
|
bge _0807F7FC
|
|
adds r4, r5, 0
|
|
_0807F794:
|
|
ldr r0, [r5]
|
|
ldr r2, [sp, 0xFC]
|
|
adds r0, r2, r0
|
|
str r0, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
add r0, r10
|
|
str r0, [r4, 0x4]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_804535C
|
|
mov r0, r8
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F7E6
|
|
ldr r0, [sp, 0x100]
|
|
bl sub_8009C7C
|
|
lsls r0, 5
|
|
mov r3, r8
|
|
str r0, [r3, 0x1C]
|
|
movs r0, 0x3B
|
|
bl sub_803E46C
|
|
movs r0, 0x3
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _0807F7E6
|
|
movs r0, 0x7
|
|
mov r1, r9
|
|
ands r1, r0
|
|
mov r9, r1
|
|
mov r0, r8
|
|
movs r1, 0x6
|
|
mov r2, r9
|
|
bl sub_806CDD4
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
_0807F7E6:
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r6, 0
|
|
bl __divsi3
|
|
ldr r3, [sp, 0x100]
|
|
adds r3, r0
|
|
str r3, [sp, 0x100]
|
|
adds r7, 0x1
|
|
cmp r7, r6
|
|
blt _0807F794
|
|
_0807F7FC:
|
|
ldr r4, [sp, 0xF4]
|
|
str r4, [r5]
|
|
add r1, sp, 0xD8
|
|
ldr r0, [sp, 0xF8]
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0
|
|
mov r2, r8
|
|
str r0, [r2, 0x1C]
|
|
mov r0, r8
|
|
bl sub_804535C
|
|
movs r0, 0x3B
|
|
bl sub_803E46C
|
|
mov r3, r8
|
|
ldr r0, [r3, 0x70]
|
|
movs r1, 0x7
|
|
mov r4, r9
|
|
ands r4, r1
|
|
adds r0, 0x46
|
|
strb r4, [r0]
|
|
add r2, sp, 0xD4
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
adds r4, r2, 0
|
|
movs r3, 0x2
|
|
ldrsh r1, [r4, r3]
|
|
bl GetMapTileAtPosition
|
|
ldr r6, [r0, 0x10]
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0807F876
|
|
add r2, sp, 0xD4
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r4, r3]
|
|
mov r0, r8
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
mov r0, r8
|
|
bl sub_807F9BC
|
|
b _0807F99C
|
|
.align 2, 0
|
|
_0807F860: .4byte gAvailablePokemonNames
|
|
_0807F864: .4byte gUnknown_80FE690
|
|
_0807F868: .4byte 0x000001a3
|
|
_0807F86C: .4byte gAdjacentTileOffsets
|
|
_0807F870:
|
|
ldr r0, [r7]
|
|
str r0, [sp, 0xD4]
|
|
b _0807F8BE
|
|
_0807F876:
|
|
movs r5, 0
|
|
add r4, sp, 0xE0
|
|
adds r7, r4, 0
|
|
_0807F87C:
|
|
ldr r0, _0807F8D0
|
|
lsls r3, r5, 2
|
|
adds r3, r0
|
|
add r1, sp, 0xD4
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r3]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0807F8D4
|
|
ldr r1, [r7]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
add r0, sp, 0xD4
|
|
ldrh r2, [r0, 0x2]
|
|
ldrh r3, [r3, 0x2]
|
|
adds r2, r3
|
|
lsls r2, 16
|
|
ldr r0, _0807F8D8
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
str r1, [r4]
|
|
mov r0, r8
|
|
add r1, sp, 0xE0
|
|
bl sub_80703A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F870
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0807F87C
|
|
_0807F8BE:
|
|
cmp r5, 0x8
|
|
bne _0807F8DC
|
|
ldr r0, [sp, 0xEC]
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
b _0807F8FA
|
|
.align 2, 0
|
|
_0807F8D0: .4byte gAdjacentTileOffsets
|
|
_0807F8D4: .4byte 0xffff0000
|
|
_0807F8D8: .4byte 0x0000ffff
|
|
_0807F8DC:
|
|
mov r0, r8
|
|
add r1, sp, 0xD4
|
|
bl sub_807D068
|
|
add r0, sp, 0xD4
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0xD6
|
|
add r0, sp
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
mov r0, r8
|
|
movs r3, 0x1
|
|
bl sub_80694C0
|
|
_0807F8FA:
|
|
adds r0, r6, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
bne _0807F954
|
|
add r4, sp, 0xE4
|
|
ldr r1, _0807F9AC
|
|
adds r0, r4, 0
|
|
bl InitPokemonMove
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80571F0
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _0807F93C
|
|
ldr r0, _0807F9B0
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, _0807F9B4
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r1, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, [sp, 0xEC]
|
|
adds r1, r6, 0
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
_0807F93C:
|
|
adds r0, r6, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F954
|
|
ldr r0, [r6, 0x70]
|
|
adds r0, 0x46
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_806CE68
|
|
_0807F954:
|
|
ldr r0, _0807F9B0
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, _0807F9B8
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r1, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, [sp, 0xEC]
|
|
mov r1, r8
|
|
movs r3, 0
|
|
bl sub_806F370
|
|
mov r0, r8
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807F98E
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x70]
|
|
adds r0, 0x46
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
bl sub_806CE68
|
|
_0807F98E:
|
|
movs r0, 0x1E
|
|
movs r1, 0x3B
|
|
bl sub_803E708
|
|
mov r0, r8
|
|
bl sub_807F9BC
|
|
_0807F99C:
|
|
add sp, 0x10C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807F9AC: .4byte 0x00000163
|
|
_0807F9B0: .4byte gUnknown_80F4F92
|
|
_0807F9B4: .4byte 0x0000021a
|
|
_0807F9B8: .4byte 0x00000219
|
|
thumb_func_end sub_807F43C
|
|
|
|
thumb_func_start sub_807F9BC
|
|
sub_807F9BC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807FA0A
|
|
ldr r0, [r4, 0x70]
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
beq _0807F9F4
|
|
ldr r2, _0807FA10
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1]
|
|
ldr r0, [r2]
|
|
movs r1, 0xB8
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
adds r0, r4, 0x4
|
|
bl sub_804AC20
|
|
movs r0, 0
|
|
bl sub_807EC28
|
|
_0807F9F4:
|
|
adds r0, r4, 0
|
|
bl sub_806A5B8
|
|
ldr r0, _0807FA10
|
|
ldr r0, [r0]
|
|
ldr r1, _0807FA14
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8075900
|
|
_0807FA0A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807FA10: .4byte gDungeonGlobalData
|
|
_0807FA14: .4byte 0x00003a08
|
|
thumb_func_end sub_807F9BC
|
|
|
|
thumb_func_start sub_807FA18
|
|
sub_807FA18:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
movs r6, 0
|
|
_0807FA1E:
|
|
movs r5, 0
|
|
adds r7, r6, 0x1
|
|
_0807FA22:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl GetMapEntity
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807FA88
|
|
lsls r0, r5, 16
|
|
lsls r1, r6, 16
|
|
lsrs r0, 16
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldrh r1, [r4, 0x4]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807FA4E
|
|
movs r0, 0x6
|
|
b _0807FA56
|
|
_0807FA4E:
|
|
bl sub_803D6FC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0807FA56:
|
|
cmp r0, 0x11
|
|
bne _0807FA72
|
|
movs r0, 0x11
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8045684
|
|
cmp r0, 0
|
|
beq _0807FA88
|
|
str r0, [r4, 0x14]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
movs r0, 0x1
|
|
b _0807FA86
|
|
_0807FA72:
|
|
mov r1, sp
|
|
movs r2, 0
|
|
bl sub_8045684
|
|
cmp r0, 0
|
|
beq _0807FA88
|
|
str r0, [r4, 0x14]
|
|
adds r1, r0, 0
|
|
adds r1, 0x20
|
|
movs r0, 0
|
|
_0807FA86:
|
|
strb r0, [r1]
|
|
_0807FA88:
|
|
adds r5, 0x1
|
|
cmp r5, 0x37
|
|
ble _0807FA22
|
|
adds r6, r7, 0
|
|
cmp r6, 0x1F
|
|
ble _0807FA1E
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807FA18
|
|
|
|
thumb_func_start sub_807FA9C
|
|
sub_807FA9C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r2, _0807FAC4
|
|
ldr r0, [r2]
|
|
ldr r3, _0807FAC8
|
|
adds r1, r0, r3
|
|
ldrb r1, [r1]
|
|
str r1, [sp]
|
|
ldr r1, _0807FACC
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
subs r1, r0, 0x5
|
|
mov r8, r1
|
|
b _0807FBFE
|
|
.align 2, 0
|
|
_0807FAC4: .4byte gDungeonGlobalData
|
|
_0807FAC8: .4byte 0x0001820f
|
|
_0807FACC: .4byte 0x000181ea
|
|
_0807FAD0:
|
|
ldr r0, [r2]
|
|
ldr r2, _0807FC18
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
subs r5, r0, 0x6
|
|
adds r0, 0x6
|
|
mov r1, r8
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x4]
|
|
cmp r5, r0
|
|
blt _0807FAEA
|
|
b _0807FBEE
|
|
_0807FAEA:
|
|
ldr r7, _0807FC1C
|
|
ldr r2, _0807FC20
|
|
mov r10, r2
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
mov r9, r0
|
|
_0807FAF8:
|
|
movs r6, 0
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807FB24
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0807FB24
|
|
ldr r0, [r4, 0x14]
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0807FB22
|
|
ldr r3, [sp]
|
|
cmp r3, 0
|
|
beq _0807FB24
|
|
_0807FB22:
|
|
movs r6, 0x1
|
|
_0807FB24:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807FB34
|
|
movs r6, 0x1
|
|
_0807FB34:
|
|
cmp r6, 0
|
|
beq _0807FBD6
|
|
ldr r0, _0807FC24
|
|
ldr r1, [r0]
|
|
ldr r3, _0807FC28
|
|
adds r0, r1, r3
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
mov r2, r9
|
|
subs r3, r2, r0
|
|
mov r2, r8
|
|
lsls r0, r2, 1
|
|
add r0, r8
|
|
lsls r0, 3
|
|
ldr r2, _0807FC2C
|
|
adds r1, r2
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
subs r2, r0, r1
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r3, r0
|
|
blt _0807FBD6
|
|
cmp r2, r0
|
|
blt _0807FBD6
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r3, r0
|
|
bgt _0807FBD6
|
|
cmp r2, 0xC0
|
|
bgt _0807FBD6
|
|
ldrh r1, [r7]
|
|
mov r0, r10
|
|
ands r0, r1
|
|
strh r0, [r7]
|
|
ldr r1, _0807FC30
|
|
ands r1, r2
|
|
lsls r1, 4
|
|
ldrh r2, [r7, 0x6]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r7, 0x6]
|
|
ldr r0, _0807FC34
|
|
ands r3, r0
|
|
ldrh r0, [r7, 0x2]
|
|
movs r2, 0xFE
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strh r0, [r7, 0x2]
|
|
ldrh r1, [r7, 0x4]
|
|
mov r0, r10
|
|
ands r0, r1
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
orrs r0, r3
|
|
movs r1, 0
|
|
orrs r0, r1
|
|
movs r1, 0xA0
|
|
lsls r1, 8
|
|
ldr r2, _0807FC30
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
movs r3, 0
|
|
orrs r0, r3
|
|
movs r2, 0xFE
|
|
lsls r2, 1
|
|
movs r3, 0xFC
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r7, 0x4]
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl AddSprite
|
|
_0807FBD6:
|
|
movs r0, 0x18
|
|
add r9, r0
|
|
adds r5, 0x1
|
|
ldr r0, _0807FC24
|
|
ldr r0, [r0]
|
|
ldr r1, _0807FC18
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r0, 0x6
|
|
cmp r5, r0
|
|
blt _0807FAF8
|
|
_0807FBEE:
|
|
ldr r3, [sp, 0x4]
|
|
mov r8, r3
|
|
ldr r2, _0807FC24
|
|
ldr r0, [r2]
|
|
ldr r1, _0807FC38
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
_0807FBFE:
|
|
adds r0, 0x5
|
|
cmp r8, r0
|
|
bge _0807FC06
|
|
b _0807FAD0
|
|
_0807FC06:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807FC18: .4byte 0x000181e8
|
|
_0807FC1C: .4byte gUnknown_202EDC0
|
|
_0807FC20: .4byte 0x0000f3ff
|
|
_0807FC24: .4byte gDungeonGlobalData
|
|
_0807FC28: .4byte 0x000181f0
|
|
_0807FC2C: .4byte 0x000181f2
|
|
_0807FC30: .4byte 0x00000fff
|
|
_0807FC34: .4byte 0x000001ff
|
|
_0807FC38: .4byte 0x000181ea
|
|
thumb_func_end sub_807FA9C
|
|
|
|
thumb_func_start sub_807FC3C
|
|
sub_807FC3C:
|
|
push {r4-r7,lr}
|
|
ldr r6, _0807FC70
|
|
ldr r4, [r6]
|
|
ldrh r5, [r0]
|
|
ldr r7, _0807FC74
|
|
adds r3, r4, r7
|
|
strh r5, [r3]
|
|
ldrh r3, [r0, 0x2]
|
|
ldr r5, _0807FC78
|
|
adds r0, r4, r5
|
|
strh r3, [r0]
|
|
adds r7, 0x4
|
|
adds r4, r7
|
|
strb r1, [r4]
|
|
ldr r0, [r6]
|
|
ldr r1, _0807FC7C
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r6]
|
|
subs r5, 0x6
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807FC70: .4byte gDungeonGlobalData
|
|
_0807FC74: .4byte 0x00013574
|
|
_0807FC78: .4byte 0x00013576
|
|
_0807FC7C: .4byte 0x00013579
|
|
thumb_func_end sub_807FC3C
|
|
|
|
thumb_func_start CanLayTrap
|
|
CanLayTrap:
|
|
push {lr}
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r0, r3]
|
|
adds r0, r2, 0
|
|
bl GetMapEntity
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FCCA
|
|
ldrb r0, [r2, 0x9]
|
|
cmp r0, 0xFF
|
|
beq _0807FCCA
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FCCA
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FCCA
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0x1
|
|
bne _0807FCCA
|
|
ldr r0, [r2, 0x14]
|
|
cmp r0, 0
|
|
beq _0807FCCE
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
beq _0807FCCE
|
|
_0807FCCA:
|
|
movs r0, 0
|
|
b _0807FCD0
|
|
_0807FCCE:
|
|
movs r0, 0x1
|
|
_0807FCD0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CanLayTrap
|
|
|
|
thumb_func_start sub_807FCD4
|
|
sub_807FCD4:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r7, r2]
|
|
bl GetMapEntity
|
|
adds r6, r0, 0
|
|
cmp r5, 0x13
|
|
bls _0807FD12
|
|
movs r4, 0
|
|
b _0807FCFE
|
|
_0807FCFC:
|
|
adds r4, 0x1
|
|
_0807FCFE:
|
|
cmp r4, 0x1D
|
|
bgt _0807FD0C
|
|
bl sub_803D6FC
|
|
adds r5, r0, 0
|
|
cmp r5, 0x11
|
|
beq _0807FCFC
|
|
_0807FD0C:
|
|
cmp r4, 0x1E
|
|
bne _0807FD12
|
|
movs r5, 0x10
|
|
_0807FD12:
|
|
ldrh r1, [r6]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FD6E
|
|
ldrb r0, [r6, 0x9]
|
|
cmp r0, 0xFF
|
|
beq _0807FD6E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FD6E
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0807FD6E
|
|
movs r4, 0x3
|
|
ands r4, r1
|
|
cmp r4, 0x1
|
|
bne _0807FD6E
|
|
ldr r0, [r6, 0x14]
|
|
cmp r0, 0
|
|
beq _0807FD60
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0807FD6E
|
|
ldr r0, [r6, 0x14]
|
|
bl GetTrapData
|
|
strb r5, [r0]
|
|
ldr r0, [r6, 0x14]
|
|
bl GetTrapData
|
|
mov r1, r8
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r6, 0x14]
|
|
b _0807FD74
|
|
_0807FD60:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_8045684
|
|
cmp r0, 0
|
|
bne _0807FD72
|
|
_0807FD6E:
|
|
movs r0, 0
|
|
b _0807FD7A
|
|
_0807FD72:
|
|
str r0, [r6, 0x14]
|
|
_0807FD74:
|
|
adds r0, 0x20
|
|
strb r4, [r0]
|
|
movs r0, 0x1
|
|
_0807FD7A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807FCD4
|
|
|
|
thumb_func_start sub_807FD84
|
|
sub_807FD84:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
ldr r4, _0807FD9C
|
|
ldr r0, [r4]
|
|
ldr r2, _0807FDA0
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0807FDA4
|
|
movs r0, 0
|
|
b _0807FDF6
|
|
.align 2, 0
|
|
_0807FD9C: .4byte gDungeonGlobalData
|
|
_0807FDA0: .4byte 0x00013570
|
|
_0807FDA4:
|
|
strb r5, [r1]
|
|
ldr r2, [r4]
|
|
ldr r3, _0807FDD8
|
|
adds r0, r2, r3
|
|
adds r3, 0x4
|
|
adds r1, r2, r3
|
|
ldrb r1, [r1]
|
|
adds r3, 0x1
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
bl sub_807FCD4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _0807FDE0
|
|
ldr r1, [r4]
|
|
ldr r0, _0807FDD8
|
|
adds r1, r0
|
|
ldr r0, _0807FDDC
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8052364
|
|
b _0807FDF0
|
|
.align 2, 0
|
|
_0807FDD8: .4byte 0x00013574
|
|
_0807FDDC: .4byte gUnknown_80FC5F8
|
|
_0807FDE0:
|
|
ldr r1, [r4]
|
|
ldr r2, _0807FDFC
|
|
adds r1, r2
|
|
ldr r0, _0807FE00
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8052364
|
|
_0807FDF0:
|
|
bl sub_8049ED4
|
|
adds r0, r5, 0
|
|
_0807FDF6:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0807FDFC: .4byte 0x00013574
|
|
_0807FE00: .4byte gUnknown_80FC5FC
|
|
thumb_func_end sub_807FD84
|
|
|
|
thumb_func_start sub_807FE04
|
|
sub_807FE04:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
bl GetMapEntity
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807FE3C
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0807FE3C
|
|
ldr r1, [r4, 0x14]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
str r0, [r4, 0x14]
|
|
cmp r5, 0
|
|
beq _0807FE38
|
|
bl sub_8049ED4
|
|
_0807FE38:
|
|
movs r0, 0x1
|
|
b _0807FE3E
|
|
_0807FE3C:
|
|
movs r0, 0
|
|
_0807FE3E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807FE04
|
|
|
|
thumb_func_start sub_807FE44
|
|
sub_807FE44:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x14]
|
|
cmp r0, 0
|
|
beq _0807FE7C
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _0807FE7C
|
|
ldr r0, [r4, 0x14]
|
|
adds r0, 0x20
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
cmp r5, 0
|
|
beq _0807FE78
|
|
bl sub_8049ED4
|
|
_0807FE78:
|
|
movs r0, 0x1
|
|
b _0807FE7E
|
|
_0807FE7C:
|
|
movs r0, 0
|
|
_0807FE7E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_807FE44
|
|
|
|
thumb_func_start GetTrapName
|
|
GetTrapName:
|
|
push {lr}
|
|
lsls r1, 24
|
|
ldr r2, _0807FE98
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807FE98: .4byte gTrapNames
|
|
thumb_func_end GetTrapName
|
|
|
|
thumb_func_start sub_807FE9C
|
|
sub_807FE9C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
mov r9, r1
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r6, r3, 24
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
bl GetMapEntity
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r0, 0x14]
|
|
mov r10, r0
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
cmp r0, 0
|
|
bne _0807FECE
|
|
b _080801B4
|
|
_0807FECE:
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
beq _0807FED8
|
|
b _080801B4
|
|
_0807FED8:
|
|
mov r0, r10
|
|
bl GetTrapData
|
|
mov r8, r0
|
|
ldr r0, _0807FF58
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
bl GetTrapName
|
|
ldr r3, [sp, 0x4]
|
|
ldr r4, [r3, 0x10]
|
|
cmp r4, 0
|
|
beq _0807FEFE
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x1
|
|
beq _0807FEFE
|
|
movs r4, 0
|
|
_0807FEFE:
|
|
mov r1, r10
|
|
adds r1, 0x20
|
|
ldrb r0, [r1]
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
cmp r4, 0
|
|
beq _0807FF96
|
|
adds r0, r4, 0
|
|
bl sub_806A1E8
|
|
cmp r6, 0
|
|
beq _0807FF96
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x11
|
|
beq _0807FF96
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
adds r7, r0, 0
|
|
movs r6, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1C
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807FF3C
|
|
ldr r0, _0807FF5C
|
|
ldr r6, [r0]
|
|
_0807FF3C:
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0x1
|
|
beq _0807FF50
|
|
ldr r0, _0807FF60
|
|
ldr r0, [r0]
|
|
ldr r3, _0807FF64
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807FF68
|
|
_0807FF50:
|
|
cmp r7, 0
|
|
bge _0807FF70
|
|
b _0807FF6C
|
|
.align 2, 0
|
|
_0807FF58: .4byte gAvailablePokemonNames
|
|
_0807FF5C: .4byte gUnknown_80FDB5C
|
|
_0807FF60: .4byte gDungeonGlobalData
|
|
_0807FF64: .4byte 0x0001820f
|
|
_0807FF68:
|
|
cmp r7, 0xE
|
|
bgt _0807FF70
|
|
_0807FF6C:
|
|
ldr r0, _0807FFD8
|
|
ldr r6, [r0]
|
|
_0807FF70:
|
|
cmp r6, 0
|
|
beq _0807FF96
|
|
mov r0, r9
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807FF84
|
|
bl sub_8049ED4
|
|
_0807FF84:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_80522F4
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bne _0807FF96
|
|
b _080801B4
|
|
_0807FF96:
|
|
mov r0, r9
|
|
bl sub_803F428
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0807FFFA
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
movs r0, 0
|
|
bl sub_80421C0
|
|
bl sub_8049ED4
|
|
mov r1, r8
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_804225C
|
|
ldr r0, _0807FFDC
|
|
ldr r0, [r0]
|
|
ldr r2, _0807FFE0
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0807FFE8
|
|
ldr r0, _0807FFE4
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
b _0807FFFA
|
|
.align 2, 0
|
|
_0807FFD8: .4byte gUnknown_80FDB7C
|
|
_0807FFDC: .4byte gDungeonGlobalData
|
|
_0807FFE0: .4byte 0x0001820a
|
|
_0807FFE4: .4byte gUnknown_80FD7F4
|
|
_0807FFE8:
|
|
ldr r0, _08080010
|
|
mov r3, r8
|
|
ldrb r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r5, 0
|
|
bl SendMessage
|
|
_0807FFFA:
|
|
cmp r4, 0
|
|
beq _08080020
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x2
|
|
bne _08080014
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_806F480
|
|
b _08080020
|
|
.align 2, 0
|
|
_08080010: .4byte gUnknown_80FD7F8
|
|
_08080014:
|
|
cmp r0, 0x1
|
|
bne _08080020
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_806F480
|
|
_08080020:
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1B
|
|
bls _0808002A
|
|
b _08080194
|
|
_0808002A:
|
|
lsls r0, 2
|
|
ldr r1, _08080034
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080034: .4byte _08080038
|
|
.align 2, 0
|
|
_08080038:
|
|
.4byte _080800A8
|
|
.4byte _080800B2
|
|
.4byte _080800BC
|
|
.4byte _080800C6
|
|
.4byte _080800D0
|
|
.4byte _080800DA
|
|
.4byte _080800E6
|
|
.4byte _080800F0
|
|
.4byte _080800FA
|
|
.4byte _08080104
|
|
.4byte _0808010E
|
|
.4byte _08080118
|
|
.4byte _08080122
|
|
.4byte _0808012C
|
|
.4byte _08080136
|
|
.4byte _08080140
|
|
.4byte _0808014A
|
|
.4byte _08080168
|
|
.4byte _08080172
|
|
.4byte _08080180
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _08080194
|
|
.4byte _080800DA
|
|
_080800A8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080A5C
|
|
b _08080194
|
|
_080800B2:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80801CC
|
|
b _08080194
|
|
_080800BC:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_808024C
|
|
b _08080194
|
|
_080800C6:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080418
|
|
b _08080194
|
|
_080800D0:
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_8080620
|
|
b _0808017A
|
|
_080800DA:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x4]
|
|
bl sub_8080504
|
|
b _08080194
|
|
_080800E6:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080374
|
|
b _08080194
|
|
_080800F0:
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
bl sub_8080884
|
|
b _08080194
|
|
_080800FA:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080364
|
|
b _08080194
|
|
_08080104:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080388
|
|
b _08080194
|
|
_0808010E:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80803B4
|
|
b _08080194
|
|
_08080118:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80807C0
|
|
b _08080194
|
|
_08080122:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80803C8
|
|
b _08080194
|
|
_0808012C:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80803D8
|
|
b _08080194
|
|
_08080136:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80803F8
|
|
b _08080194
|
|
_08080140:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8080700
|
|
b _08080194
|
|
_0808014A:
|
|
cmp r4, 0
|
|
beq _08080194
|
|
ldr r0, _08080160
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r3, _08080164
|
|
adds r0, r4, 0
|
|
movs r2, 0xF
|
|
bl sub_806F324
|
|
b _08080194
|
|
.align 2, 0
|
|
_08080160: .4byte gUnknown_80F4F86
|
|
_08080164: .4byte 0x00000213
|
|
_08080168:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80807B4
|
|
b _08080194
|
|
_08080172:
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_80808A4
|
|
_0808017A:
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x8]
|
|
b _08080194
|
|
_08080180:
|
|
cmp r4, 0
|
|
beq _08080194
|
|
ldr r0, _080801C4
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r3, _080801C8
|
|
adds r0, r4, 0
|
|
movs r2, 0xA
|
|
bl sub_806F324
|
|
_08080194:
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080801A6
|
|
adds r0, r4, 0
|
|
bl sub_8071DA4
|
|
_080801A6:
|
|
ldr r3, [sp, 0x8]
|
|
cmp r3, 0
|
|
beq _080801B4
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_807FE04
|
|
_080801B4:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080801C4: .4byte gUnknown_80F4F84
|
|
_080801C8: .4byte 0x00000206
|
|
thumb_func_end sub_807FE9C
|
|
|
|
thumb_func_start sub_80801CC
|
|
sub_80801CC:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _08080240
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
adds r1, r0, 0
|
|
cmp r0, 0x18
|
|
bgt _080801EC
|
|
ldr r0, _080801E8
|
|
b _080801F2
|
|
.align 2, 0
|
|
_080801E8: .4byte gUnknown_8106A4C
|
|
_080801EC:
|
|
cmp r0, 0x31
|
|
bgt _0808020C
|
|
ldr r0, _08080208
|
|
_080801F2:
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8076E20
|
|
b _08080240
|
|
.align 2, 0
|
|
_08080208: .4byte gUnknown_8106A50
|
|
_0808020C:
|
|
cmp r1, 0x4A
|
|
bgt _0808022C
|
|
ldr r0, _08080228
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
b _08080240
|
|
.align 2, 0
|
|
_08080228: .4byte gUnknown_8106A4C
|
|
_0808022C:
|
|
ldr r0, _08080248
|
|
ldr r2, [r0]
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8076F80
|
|
_08080240:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080248: .4byte gUnknown_8106A50
|
|
thumb_func_end sub_80801CC
|
|
|
|
thumb_func_start sub_808024C
|
|
sub_808024C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x5C
|
|
str r0, [sp, 0x54]
|
|
mov r10, r1
|
|
ldr r0, [r1, 0x70]
|
|
mov r8, r0
|
|
mov r0, r10
|
|
movs r1, 0xE
|
|
bl HasItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08080278
|
|
ldr r0, _08080274
|
|
b _08080300
|
|
.align 2, 0
|
|
_08080274: .4byte gUnknown_80FDC7C
|
|
_08080278:
|
|
movs r6, 0
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x7]
|
|
movs r1, 0x60
|
|
add r1, r8
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
beq _080802C8
|
|
movs r5, 0
|
|
ldr r7, _0808030C
|
|
mov r0, sp
|
|
str r0, [sp, 0x58]
|
|
_08080290:
|
|
lsls r4, r5, 2
|
|
ldr r0, [r7]
|
|
adds r2, r4, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080802C2
|
|
ldrb r0, [r2, 0x2]
|
|
bl IsNotSpecialItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080802C2
|
|
ldr r0, [r7]
|
|
adds r2, r0, r4
|
|
ldrb r1, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080802C2
|
|
ldr r1, [sp, 0x58]
|
|
stm r1!, {r2}
|
|
str r1, [sp, 0x58]
|
|
adds r6, 0x1
|
|
_080802C2:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _08080290
|
|
_080802C8:
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080802FA
|
|
mov r0, r8
|
|
adds r0, 0x62
|
|
ldrb r0, [r0]
|
|
bl IsNotSpecialItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080802FA
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080802FA
|
|
lsls r0, r6, 2
|
|
add r0, sp
|
|
mov r1, r9
|
|
str r1, [r0]
|
|
adds r6, 0x1
|
|
_080802FA:
|
|
cmp r6, 0
|
|
bne _08080314
|
|
ldr r0, _08080310
|
|
_08080300:
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x54]
|
|
mov r1, r10
|
|
bl sub_80522F4
|
|
b _0808034A
|
|
.align 2, 0
|
|
_0808030C: .4byte gTeamInventory_203B460
|
|
_08080310: .4byte gUnknown_80FDC40
|
|
_08080314:
|
|
adds r0, r6, 0
|
|
bl DungeonRandomCapped
|
|
ldr r2, _0808035C
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r4, r1, r0
|
|
ldr r1, [r4]
|
|
adds r0, r2, 0
|
|
bl sub_8045BF8
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r1, 0xC9
|
|
lsls r1, 1
|
|
mov r0, r10
|
|
bl sub_80421C0
|
|
ldr r0, _08080360
|
|
ldr r2, [r0]
|
|
ldr r0, [sp, 0x54]
|
|
mov r1, r10
|
|
bl sub_80522F4
|
|
_0808034A:
|
|
add sp, 0x5C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0808035C: .4byte gUnknown_202DE58
|
|
_08080360: .4byte gUnknown_80FDC18
|
|
thumb_func_end sub_808024C
|
|
|
|
thumb_func_start sub_8080364
|
|
sub_8080364:
|
|
push {lr}
|
|
cmp r1, 0
|
|
beq _08080370
|
|
movs r2, 0x1
|
|
bl sub_8077AE4
|
|
_08080370:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8080364
|
|
|
|
thumb_func_start sub_8080374
|
|
sub_8080374:
|
|
push {lr}
|
|
cmp r1, 0
|
|
beq _08080382
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_807D148
|
|
_08080382:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8080374
|
|
|
|
thumb_func_start sub_8080388
|
|
sub_8080388:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _080803A8
|
|
ldr r1, _080803B0
|
|
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
|
|
_080803A8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080803B0: .4byte gUnknown_80F4E74
|
|
thumb_func_end sub_8080388
|
|
|
|
thumb_func_start sub_80803B4
|
|
sub_80803B4:
|
|
push {lr}
|
|
cmp r1, 0
|
|
beq _080803C2
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_80779F0
|
|
_080803C2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80803B4
|
|
|
|
thumb_func_start sub_80803C8
|
|
sub_80803C8:
|
|
push {lr}
|
|
cmp r1, 0
|
|
beq _080803D4
|
|
movs r2, 0x1
|
|
bl sub_80763F8
|
|
_080803D4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80803C8
|
|
|
|
thumb_func_start sub_80803D8
|
|
sub_80803D8:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
adds r2, r1, 0x4
|
|
movs r3, 0
|
|
str r3, [sp]
|
|
ldr r3, _080803F4
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x1
|
|
bl sub_807DF38
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080803F4: .4byte 0x00000212
|
|
thumb_func_end sub_80803D8
|
|
|
|
thumb_func_start sub_80803F8
|
|
sub_80803F8:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
adds r2, r1, 0x4
|
|
movs r3, 0
|
|
str r3, [sp]
|
|
ldr r3, _08080414
|
|
str r3, [sp, 0x4]
|
|
movs r3, 0x2
|
|
bl sub_807DF38
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080414: .4byte 0x00000212
|
|
thumb_func_end sub_80803F8
|
|
|
|
thumb_func_start sub_8080418
|
|
sub_8080418:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x58
|
|
mov r8, r0
|
|
adds r6, r1, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
cmp r6, 0
|
|
beq _080804F0
|
|
ldr r7, [r6, 0x70]
|
|
movs r3, 0
|
|
ldrb r0, [r7, 0x7]
|
|
cmp r0, 0
|
|
beq _0808045A
|
|
ldr r0, _080804C0
|
|
movs r1, 0x1
|
|
mov r12, r1
|
|
ldr r2, [r0]
|
|
mov r4, sp
|
|
movs r5, 0x13
|
|
_08080444:
|
|
ldrb r1, [r2]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080452
|
|
stm r4!, {r2}
|
|
adds r3, 0x1
|
|
_08080452:
|
|
adds r2, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08080444
|
|
_0808045A:
|
|
adds r2, r7, 0
|
|
adds r2, 0x60
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080470
|
|
lsls r0, r3, 2
|
|
add r0, sp
|
|
str r2, [r0]
|
|
adds r3, 0x1
|
|
_08080470:
|
|
cmp r3, 0
|
|
ble _080804B6
|
|
mov r4, sp
|
|
adds r5, r3, 0
|
|
_08080478:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x2]
|
|
bl GetItemType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080804AE
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x54
|
|
beq _080804AE
|
|
movs r0, 0x64
|
|
bl DungeonRandomCapped
|
|
ldr r1, _080804C4
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
cmp r0, r1
|
|
bge _080804AE
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
ldr r0, [r4]
|
|
movs r1, 0x54
|
|
movs r2, 0x2
|
|
bl sub_8045C28
|
|
_080804AE:
|
|
adds r4, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08080478
|
|
_080804B6:
|
|
mov r1, r9
|
|
cmp r1, 0x1
|
|
bne _080804CC
|
|
ldr r0, _080804C8
|
|
b _080804D4
|
|
.align 2, 0
|
|
_080804C0: .4byte gTeamInventory_203B460
|
|
_080804C4: .4byte gUnknown_80F4E0E
|
|
_080804C8: .4byte gUnknown_80FD788
|
|
_080804CC:
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bne _080804E4
|
|
ldr r0, _080804E0
|
|
_080804D4:
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
b _080804F0
|
|
.align 2, 0
|
|
_080804E0: .4byte gUnknown_80FD7D4
|
|
_080804E4:
|
|
ldr r0, _08080500
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80522F4
|
|
_080804F0:
|
|
add sp, 0x58
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080500: .4byte gUnknown_80FD7AC
|
|
thumb_func_end sub_8080418
|
|
|
|
thumb_func_start sub_8080504
|
|
sub_8080504:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r7, r2, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
cmp r4, 0
|
|
bne _0808051A
|
|
b _0808060E
|
|
_0808051A:
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08080534
|
|
ldr r0, _08080530
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
b _0808060E
|
|
.align 2, 0
|
|
_08080530: .4byte gUnknown_80FED0C
|
|
_08080534:
|
|
ldr r5, [r4, 0x70]
|
|
adds r0, r4, 0
|
|
bl sub_8045888
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808055E
|
|
adds r0, r7, 0
|
|
movs r1, 0x1B
|
|
bl sub_8080B00
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
ldr r1, _080805A4
|
|
adds r0, r4, 0
|
|
bl sub_80421C0
|
|
movs r0, 0x1E
|
|
movs r1, 0x48
|
|
bl sub_803E708
|
|
_0808055E:
|
|
ldrb r0, [r5, 0x7]
|
|
cmp r0, 0
|
|
beq _080805C4
|
|
bl sub_8043D10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080805B4
|
|
movs r2, 0xAE
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
adds r2, 0x2
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x28
|
|
movs r1, 0x4B
|
|
bl sub_803E708
|
|
ldr r0, _080805A8
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r3, _080805AC
|
|
adds r0, r4, 0
|
|
movs r2, 0x11
|
|
bl sub_806F324
|
|
ldr r0, _080805B0
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
b _0808060E
|
|
.align 2, 0
|
|
_080805A4: .4byte 0x00000193
|
|
_080805A8: .4byte gUnknown_80F4F8A
|
|
_080805AC: .4byte 0x00000215
|
|
_080805B0: .4byte gDungeonGlobalData
|
|
_080805B4:
|
|
ldr r0, _080805C0
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl SendMessage
|
|
b _08080600
|
|
.align 2, 0
|
|
_080805C0: .4byte gUnknown_80F9728
|
|
_080805C4:
|
|
ldr r0, _080805E4
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl SetMessageArgument
|
|
ldrb r0, [r5, 0x6]
|
|
cmp r0, 0
|
|
beq _080805EC
|
|
ldr r0, _080805E8
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80522F4
|
|
b _080805F6
|
|
.align 2, 0
|
|
_080805E4: .4byte gAvailablePokemonNames
|
|
_080805E8: .4byte gUnknown_80F970C
|
|
_080805EC:
|
|
ldr r0, _08080618
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_805239C
|
|
_080805F6:
|
|
ldr r1, _0808061C
|
|
adds r0, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_8068FE0
|
|
_08080600:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0808060E
|
|
adds r0, r7, 0
|
|
movs r1, 0x5
|
|
bl sub_8080B00
|
|
_0808060E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080618: .4byte gUnknown_80F970C
|
|
_0808061C: .4byte 0x00000215
|
|
thumb_func_end sub_8080504
|
|
|
|
thumb_func_start sub_8080620
|
|
sub_8080620:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp, 0x14]
|
|
adds r7, r1, 0
|
|
movs r0, 0x3
|
|
bl DungeonRandomCapped
|
|
adds r6, r0, 0
|
|
adds r4, r6, 0x2
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r5, r0, 0
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080806CA
|
|
movs r0, 0
|
|
mov r8, r0
|
|
cmp r8, r4
|
|
bge _080806BA
|
|
mov r4, sp
|
|
movs r1, 0
|
|
mov r10, r1
|
|
movs r2, 0
|
|
mov r9, r2
|
|
adds r6, 0x2
|
|
_08080660:
|
|
movs r0, 0
|
|
bl sub_803D970
|
|
movs r1, 0x7
|
|
ands r5, r1
|
|
strh r0, [r4]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080806B2
|
|
mov r2, r9
|
|
strh r2, [r4, 0x8]
|
|
mov r0, r10
|
|
strb r0, [r4, 0x2]
|
|
ldr r0, _080806D8
|
|
lsls r1, r5, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r7]
|
|
adds r0, r2
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r7, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0xE]
|
|
mov r2, r9
|
|
str r2, [sp, 0x4]
|
|
mov r0, r10
|
|
strb r0, [r4, 0x10]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_806B7F8
|
|
cmp r0, 0
|
|
beq _080806B2
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_080806B2:
|
|
adds r5, 0x1
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _08080660
|
|
_080806BA:
|
|
movs r1, 0xCA
|
|
lsls r1, 1
|
|
adds r0, r7, 0
|
|
bl sub_80421EC
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080806E0
|
|
_080806CA:
|
|
ldr r0, _080806DC
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x14]
|
|
bl SendMessage
|
|
b _080806EA
|
|
.align 2, 0
|
|
_080806D8: .4byte gAdjacentTileOffsets
|
|
_080806DC: .4byte gUnknown_80FED04
|
|
_080806E0:
|
|
ldr r0, _080806FC
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x14]
|
|
bl SendMessage
|
|
_080806EA:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080806FC: .4byte gUnknown_80FED00
|
|
thumb_func_end sub_8080620
|
|
|
|
thumb_func_start sub_8080700
|
|
sub_8080700:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x20
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
mov r12, r0
|
|
cmp r5, 0
|
|
beq _080807A4
|
|
ldr r7, [r5, 0x70]
|
|
movs r4, 0
|
|
movs r3, 0
|
|
mov r6, sp
|
|
_0808071C:
|
|
lsls r0, r3, 3
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r2, r7, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080742
|
|
ldrb r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
beq _08080742
|
|
lsls r1, r4, 2
|
|
stm r6!, {r2}
|
|
add r0, sp, 0x10
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
adds r4, 0x1
|
|
_08080742:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0808071C
|
|
cmp r4, 0
|
|
beq _0808077A
|
|
adds r0, r4, 0
|
|
bl DungeonRandomCapped
|
|
adds r4, r0, 0
|
|
lsls r4, 2
|
|
mov r0, sp
|
|
adds r2, r0, r4
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x4]
|
|
ldr r0, _08080790
|
|
ldr r1, [r2]
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
add r0, sp, 0x10
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_806A9B4
|
|
movs r1, 0x1
|
|
mov r12, r1
|
|
_0808077A:
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
beq _08080798
|
|
ldr r0, _08080794
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
b _080807A4
|
|
.align 2, 0
|
|
_08080790: .4byte gUnknown_202DE58
|
|
_08080794: .4byte gUnknown_80FDA80
|
|
_08080798:
|
|
ldr r0, _080807B0
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80522F4
|
|
_080807A4:
|
|
add sp, 0x20
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080807B0: .4byte gUnknown_80FDAA0
|
|
thumb_func_end sub_8080700
|
|
|
|
thumb_func_start sub_80807B4
|
|
sub_80807B4:
|
|
push {lr}
|
|
movs r2, 0
|
|
bl sub_8079E34
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80807B4
|
|
|
|
thumb_func_start sub_80807C0
|
|
sub_80807C0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
cmp r7, 0
|
|
beq _08080870
|
|
mov r0, r8
|
|
movs r2, 0x1
|
|
bl sub_80716E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08080870
|
|
ldr r0, [r7, 0x70]
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
movs r1, 0x8C
|
|
lsls r1, 1
|
|
adds r2, r0, r1
|
|
adds r3, r2, 0
|
|
mov r12, sp
|
|
movs r4, 0x3
|
|
_080807F6:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080816
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08080816
|
|
mov r0, r12
|
|
adds r0, 0x4
|
|
mov r12, r0
|
|
subs r0, 0x4
|
|
stm r0!, {r3}
|
|
adds r5, 0x1
|
|
_08080816:
|
|
adds r2, 0x8
|
|
adds r3, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080807F6
|
|
cmp r5, 0
|
|
beq _08080848
|
|
adds r0, r5, 0
|
|
bl DungeonRandomCapped
|
|
lsls r0, 2
|
|
mov r1, sp
|
|
adds r3, r1, r0
|
|
ldr r2, [r3]
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x1]
|
|
ldr r0, _0808085C
|
|
ldr r1, [r3]
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
_08080848:
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _08080864
|
|
ldr r0, _08080860
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
b _08080870
|
|
.align 2, 0
|
|
_0808085C: .4byte gUnknown_202DE58
|
|
_08080860: .4byte gUnknown_80FDB04
|
|
_08080864:
|
|
ldr r0, _08080880
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl sub_80522F4
|
|
_08080870:
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080880: .4byte gUnknown_80FDB2C
|
|
thumb_func_end sub_80807C0
|
|
|
|
thumb_func_start sub_8080884
|
|
sub_8080884:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _0808089E
|
|
movs r0, 0x8
|
|
bl DungeonRandomCapped
|
|
adds r2, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_807CD9C
|
|
_0808089E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8080884
|
|
|
|
thumb_func_start sub_80808A4
|
|
sub_80808A4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
str r0, [sp, 0x14]
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
ldr r6, _080808D0
|
|
ldr r0, [r6]
|
|
ldr r1, _080808D4
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
bl IsBossBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080808DC
|
|
ldr r0, _080808D8
|
|
b _08080A2E
|
|
.align 2, 0
|
|
_080808D0: .4byte gDungeonGlobalData
|
|
_080808D4: .4byte 0x00018209
|
|
_080808D8: .4byte gUnknown_80FED08
|
|
_080808DC:
|
|
cmp r4, 0
|
|
bne _080808E2
|
|
movs r4, 0x2
|
|
_080808E2:
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
bl GetMapTileAtPosition
|
|
ldrb r1, [r0, 0x9]
|
|
cmp r1, 0xFF
|
|
bne _0808090A
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
subs r2, r1, r4
|
|
str r2, [sp, 0x18]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r5, r3]
|
|
subs r2, r0, r4
|
|
adds r1, r4
|
|
mov r10, r1
|
|
adds r0, r4
|
|
b _08080934
|
|
_0808090A:
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08080994
|
|
adds r0, r1
|
|
ldr r1, [r6]
|
|
adds r1, r0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
subs r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r1, r3]
|
|
subs r2, r0, 0x1
|
|
movs r3, 0x6
|
|
ldrsh r0, [r1, r3]
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
adds r0, 0x1
|
|
_08080934:
|
|
str r0, [sp, 0x1C]
|
|
adds r7, r2, 0
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r7, r0
|
|
bgt _08080A26
|
|
_0808093E:
|
|
ldr r6, [sp, 0x18]
|
|
adds r1, r7, 0x1
|
|
str r1, [sp, 0x24]
|
|
cmp r6, r10
|
|
bgt _08080A1E
|
|
mov r5, sp
|
|
_0808094A:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl GetMapTileAtPosition
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x14]
|
|
adds r2, r6, 0x1
|
|
mov r9, r2
|
|
cmp r0, 0
|
|
beq _08080A18
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _08080A18
|
|
ldr r0, [r4, 0x14]
|
|
bl GetItemData
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08080A18
|
|
movs r0, 0xBE
|
|
lsls r0, 1
|
|
strh r0, [r5]
|
|
movs r2, 0
|
|
mov r4, sp
|
|
_08080980:
|
|
ldr r0, _08080998
|
|
ldr r0, [r0]
|
|
ldr r3, _0808099C
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080809A0
|
|
movs r0, 0xBE
|
|
lsls r0, 1
|
|
b _080809AE
|
|
.align 2, 0
|
|
_08080994: .4byte 0x000104c4
|
|
_08080998: .4byte gDungeonGlobalData
|
|
_0808099C: .4byte 0x0000066e
|
|
_080809A0:
|
|
movs r0, 0
|
|
str r2, [sp, 0x28]
|
|
bl sub_803D970
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, [sp, 0x28]
|
|
_080809AE:
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r3, 0
|
|
strh r0, [r4]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0
|
|
str r2, [sp, 0x28]
|
|
str r3, [sp, 0x2C]
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
ldr r2, [sp, 0x28]
|
|
ldr r3, [sp, 0x2C]
|
|
cmp r0, 0
|
|
bne _080809D4
|
|
adds r2, 0x1
|
|
cmp r2, 0x63
|
|
ble _08080980
|
|
_080809D4:
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0
|
|
str r3, [sp, 0x2C]
|
|
bl sub_806AA0C
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x2C]
|
|
cmp r0, 0
|
|
beq _08080A10
|
|
strh r3, [r5, 0x8]
|
|
mov r0, r8
|
|
strb r0, [r5, 0x2]
|
|
strh r6, [r5, 0xC]
|
|
strh r7, [r5, 0xE]
|
|
str r3, [sp, 0x4]
|
|
strb r0, [r5, 0x10]
|
|
mov r0, sp
|
|
movs r1, 0x1
|
|
bl sub_806B7F8
|
|
cmp r0, 0
|
|
beq _08080A10
|
|
add r0, sp, 0xC
|
|
movs r1, 0
|
|
bl sub_80461C8
|
|
ldr r1, [sp, 0x20]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x20]
|
|
_08080A10:
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80402AC
|
|
_08080A18:
|
|
mov r6, r9
|
|
cmp r6, r10
|
|
ble _0808094A
|
|
_08080A1E:
|
|
ldr r7, [sp, 0x24]
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r7, r2
|
|
ble _0808093E
|
|
_08080A26:
|
|
ldr r3, [sp, 0x20]
|
|
cmp r3, 0
|
|
beq _08080A3C
|
|
ldr r0, _08080A38
|
|
_08080A2E:
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x14]
|
|
bl SendMessage
|
|
b _08080A46
|
|
.align 2, 0
|
|
_08080A38: .4byte gUnknown_80FDACC
|
|
_08080A3C:
|
|
ldr r0, _08080A58
|
|
ldr r1, [r0]
|
|
ldr r0, [sp, 0x14]
|
|
bl SendMessage
|
|
_08080A46:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080A58: .4byte gUnknown_80FDAE4
|
|
thumb_func_end sub_80808A4
|
|
|
|
thumb_func_start sub_8080A5C
|
|
sub_8080A5C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _08080AEC
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
movs r2, 0x8
|
|
bl sub_806CDD4
|
|
movs r0, 0x10
|
|
movs r1, 0x55
|
|
bl sub_803E708
|
|
adds r0, r4, 0
|
|
movs r1, 0x8
|
|
bl sub_806CE68
|
|
ldr r5, [r4, 0x70]
|
|
adds r2, r5, 0
|
|
adds r2, 0x60
|
|
ldrb r1, [r2]
|
|
movs r6, 0x1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080AEC
|
|
ldr r0, [r5, 0x60]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
bl FillInventoryGaps
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r0, r4, 0
|
|
bl sub_80421C0
|
|
adds r0, r5, 0
|
|
adds r0, 0x46
|
|
ldrb r0, [r0]
|
|
movs r2, 0x7
|
|
ands r2, r0
|
|
ldr r0, _08080AF4
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, _08080AF8
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r2, [r4, 0x6]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
ldr r2, _08080AFC
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0x4
|
|
add r3, sp, 0x8
|
|
str r6, [sp]
|
|
adds r0, r7, 0
|
|
add r2, sp, 0x4
|
|
bl sub_804687C
|
|
_08080AEC:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080AF4: .4byte gAdjacentTileOffsets
|
|
_08080AF8: .4byte 0xffff0000
|
|
_08080AFC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8080A5C
|
|
|
|
thumb_func_start sub_8080B00
|
|
sub_8080B00:
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, [r0, 0x14]
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08080B2A
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _08080B26
|
|
adds r0, r4, 0
|
|
bl GetTrapData
|
|
strb r5, [r0]
|
|
_08080B26:
|
|
bl sub_8049ED4
|
|
_08080B2A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8080B00
|
|
|
|
thumb_func_start sub_8080B30
|
|
sub_8080B30:
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_8082F9C
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
add r1, sp, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FA8
|
|
mov r0, sp
|
|
bl sub_8080B90
|
|
mov r0, sp
|
|
bl sub_8081454
|
|
mov r0, sp
|
|
bl sub_808165C
|
|
mov r0, sp
|
|
bl sub_808173C
|
|
mov r0, sp
|
|
bl sub_8080BBC
|
|
mov r0, sp
|
|
bl sub_8080C44
|
|
mov r0, sp
|
|
bl sub_8080CF0
|
|
ldr r1, _08080B8C
|
|
mov r0, sp
|
|
bl sub_808300C
|
|
mov r0, sp
|
|
bl nullsub_98
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080B8C: .4byte gUnknown_81071D4
|
|
thumb_func_end sub_8080B30
|
|
|
|
thumb_func_start sub_8080B90
|
|
sub_8080B90:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _08080BB0
|
|
bl sub_808300C
|
|
ldr r0, _08080BB4
|
|
ldr r1, [r0]
|
|
ldr r0, _08080BB8
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
movs r2, 0x58
|
|
bl sub_8082FA8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080BB0: .4byte gUnknown_81071E0
|
|
_08080BB4: .4byte gDungeonGlobalData
|
|
_08080BB8: .4byte 0x00000644
|
|
thumb_func_end sub_8080B90
|
|
|
|
thumb_func_start sub_8080BBC
|
|
sub_8080BBC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
ldr r1, _08080C38
|
|
movs r2, 0
|
|
add r0, sp, 0x4
|
|
_08080BC8:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, sp
|
|
bge _08080BC8
|
|
adds r0, r6, 0
|
|
bl sub_808300C
|
|
movs r7, 0
|
|
_08080BD8:
|
|
ldr r0, _08080C3C
|
|
ldr r0, [r0]
|
|
lsls r1, r7, 2
|
|
ldr r2, _08080C40
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
movs r5, 0
|
|
cmp r4, 0
|
|
beq _08080C1A
|
|
adds r0, r4, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x3
|
|
bne _08080C1A
|
|
adds r0, r4, 0
|
|
bl GetItemData
|
|
adds r1, r0, 0
|
|
adds r0, r6, 0
|
|
bl sub_8081788
|
|
adds r1, r4, 0x4
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0x6
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
movs r5, 0x1
|
|
_08080C1A:
|
|
cmp r5, 0
|
|
bne _08080C28
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x5
|
|
bl sub_8082FA8
|
|
_08080C28:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3F
|
|
ble _08080BD8
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080C38: .4byte gUnknown_81071E0
|
|
_08080C3C: .4byte gDungeonGlobalData
|
|
_08080C40: .4byte 0x0001361c
|
|
thumb_func_end sub_8080BBC
|
|
|
|
thumb_func_start sub_8080C44
|
|
sub_8080C44:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
ldr r3, _08080CE4
|
|
movs r2, 0xFF
|
|
_08080C50:
|
|
mov r0, sp
|
|
adds r1, r0, r7
|
|
ldrb r0, [r1]
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
adds r7, 0x1
|
|
cmp r7, 0x4
|
|
ble _08080C50
|
|
adds r0, r6, 0
|
|
adds r1, r3, 0
|
|
bl sub_808300C
|
|
movs r7, 0
|
|
_08080C6A:
|
|
ldr r0, _08080CE8
|
|
ldr r0, [r0]
|
|
lsls r1, r7, 2
|
|
ldr r2, _08080CEC
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
movs r4, 0
|
|
cmp r5, 0
|
|
beq _08080CC8
|
|
adds r0, r5, 0
|
|
bl GetEntityType
|
|
cmp r0, 0x2
|
|
bne _08080CC8
|
|
adds r0, r5, 0
|
|
bl GetTrapData
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0x1
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r5, 0
|
|
adds r1, 0x20
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r5, 0x4
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r5, 0x6
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
movs r4, 0x1
|
|
_08080CC8:
|
|
cmp r4, 0
|
|
bne _08080CD6
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x5
|
|
bl sub_8082FA8
|
|
_08080CD6:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3F
|
|
ble _08080C6A
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080CE4: .4byte gUnknown_81071E0
|
|
_08080CE8: .4byte gDungeonGlobalData
|
|
_08080CEC: .4byte 0x0001371c
|
|
thumb_func_end sub_8080C44
|
|
|
|
thumb_func_start sub_8080CF0
|
|
sub_8080CF0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r1, _08080DD4
|
|
bl sub_808300C
|
|
ldr r4, _08080DD8
|
|
ldr r0, [r4]
|
|
ldr r1, _08080DDC
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083078
|
|
ldr r0, [r4]
|
|
ldr r2, _08080DE0
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083078
|
|
ldr r0, [r4]
|
|
ldr r1, _08080DE4
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _08080DE8
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08080DEC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _08080DF0
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08080DF4
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _08080DF8
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08080DFC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _08080E00
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
movs r1, 0xE0
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083030
|
|
movs r5, 0
|
|
_08080D9A:
|
|
ldr r0, [r4]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08080E04
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8080E0C
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08080D9A
|
|
movs r5, 0
|
|
ldr r4, _08080DD8
|
|
_08080DB6:
|
|
ldr r0, [r4]
|
|
lsls r1, r5, 2
|
|
ldr r2, _08080E08
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8080E0C
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08080DB6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080DD4: .4byte gUnknown_81071E0
|
|
_08080DD8: .4byte gDungeonGlobalData
|
|
_08080DDC: .4byte 0x000037f0
|
|
_08080DE0: .4byte 0x000037f4
|
|
_08080DE4: .4byte 0x000037f8
|
|
_08080DE8: .4byte 0x000037f9
|
|
_08080DEC: .4byte 0x000037fa
|
|
_08080DF0: .4byte 0x000037fb
|
|
_08080DF4: .4byte 0x000037fc
|
|
_08080DF8: .4byte 0x000037fd
|
|
_08080DFC: .4byte 0x000037fe
|
|
_08080E00: .4byte 0x000037ff
|
|
_08080E04: .4byte 0x0001357c
|
|
_08080E08: .4byte 0x0001358c
|
|
thumb_func_end sub_8080CF0
|
|
|
|
thumb_func_start sub_8080E0C
|
|
sub_8080E0C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08080E88
|
|
add sp, r4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r1, 0
|
|
add r0, sp, 0x20C
|
|
str r1, [r0]
|
|
movs r1, 0x1
|
|
movs r6, 0x82
|
|
lsls r6, 2
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0xAA
|
|
bl sub_8083060
|
|
adds r0, r5, 0
|
|
movs r1, 0x55
|
|
bl sub_8083060
|
|
adds r0, r4, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08080E8C
|
|
ldr r6, [r4, 0x70]
|
|
add r1, sp, 0x208
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0x6
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0
|
|
adds r1, 0x26
|
|
adds r0, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
b _08080ECC
|
|
.align 2, 0
|
|
_08080E88: .4byte 0xfffffd6c
|
|
_08080E8C:
|
|
mov r0, sp
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
bl memset
|
|
mov r6, sp
|
|
add r4, sp, 0x20C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
_08080ECC:
|
|
ldrh r1, [r6]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
movs r0, 0x4
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_80817F4
|
|
movs r2, 0x2
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_80817F4
|
|
ldrb r1, [r6, 0x6]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r6, 0x7]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r6, 0x8]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r6, 0x9]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r6, 0xA]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
adds r1, r6, 0
|
|
adds r1, 0x40
|
|
adds r0, r5, 0
|
|
bl sub_80818C8
|
|
movs r0, 0xC
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r2, 0xE
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r0, 0x10
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r2, 0x12
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
ldrb r1, [r6, 0x14]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r6, 0x15]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r6, 0x16]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r6, 0x17]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r1, [r6, 0x18]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r0, 0x20
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r2, 0x22
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r0, 0x24
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r2, 0x26
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r0, 0x28
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
ldr r1, [r6, 0x2C]
|
|
adds r0, r5, 0
|
|
bl sub_80830A0
|
|
ldr r1, [r6, 0x30]
|
|
adds r0, r5, 0
|
|
bl sub_80830A0
|
|
ldr r1, [r6, 0x34]
|
|
adds r0, r5, 0
|
|
bl sub_80830A0
|
|
ldr r1, [r6, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_80830A0
|
|
adds r1, r6, 0
|
|
adds r1, 0x44
|
|
adds r0, r5, 0
|
|
bl sub_80817C8
|
|
adds r0, r6, 0
|
|
adds r0, 0x5C
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_808180C
|
|
adds r0, r6, 0
|
|
adds r0, 0x5D
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_808180C
|
|
adds r0, r6, 0
|
|
adds r0, 0x5E
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8081824
|
|
adds r0, r6, 0
|
|
adds r0, 0x5F
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8081824
|
|
adds r1, r6, 0
|
|
adds r1, 0x60
|
|
adds r0, r5, 0
|
|
bl sub_8081788
|
|
adds r0, r6, 0
|
|
adds r0, 0x64
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80817B0
|
|
movs r1, 0x78
|
|
adds r1, r6
|
|
mov r8, r1
|
|
movs r2, 0x8C
|
|
adds r2, r6
|
|
mov r9, r2
|
|
movs r0, 0x90
|
|
adds r0, r6
|
|
mov r10, r0
|
|
adds r1, r6, 0
|
|
adds r1, 0x94
|
|
str r1, [sp, 0x214]
|
|
adds r2, r6, 0
|
|
adds r2, 0x3C
|
|
str r2, [sp, 0x210]
|
|
adds r0, r6, 0
|
|
adds r0, 0x98
|
|
str r0, [sp, 0x218]
|
|
adds r1, 0x8
|
|
str r1, [sp, 0x21C]
|
|
adds r2, 0x64
|
|
str r2, [sp, 0x220]
|
|
adds r0, 0x10
|
|
str r0, [sp, 0x228]
|
|
adds r1, 0x10
|
|
str r1, [sp, 0x22C]
|
|
adds r2, 0x10
|
|
str r2, [sp, 0x230]
|
|
adds r0, 0x14
|
|
str r0, [sp, 0x234]
|
|
adds r1, 0x14
|
|
str r1, [sp, 0x238]
|
|
adds r2, 0x14
|
|
str r2, [sp, 0x23C]
|
|
adds r0, 0xC
|
|
str r0, [sp, 0x240]
|
|
adds r1, 0x10
|
|
str r1, [sp, 0x244]
|
|
adds r2, 0x18
|
|
str r2, [sp, 0x248]
|
|
adds r0, 0x18
|
|
str r0, [sp, 0x24C]
|
|
adds r1, 0x14
|
|
str r1, [sp, 0x250]
|
|
adds r2, 0xC
|
|
str r2, [sp, 0x254]
|
|
adds r0, 0xC
|
|
str r0, [sp, 0x258]
|
|
adds r1, 0xC
|
|
str r1, [sp, 0x25C]
|
|
adds r2, 0x9
|
|
str r2, [sp, 0x260]
|
|
adds r0, 0x6
|
|
str r0, [sp, 0x264]
|
|
adds r1, 0x3
|
|
str r1, [sp, 0x268]
|
|
adds r2, 0x3
|
|
str r2, [sp, 0x26C]
|
|
adds r0, 0x9
|
|
str r0, [sp, 0x280]
|
|
adds r1, 0x2
|
|
str r1, [sp, 0x270]
|
|
adds r2, 0x2
|
|
str r2, [sp, 0x274]
|
|
subs r0, 0x4
|
|
str r0, [sp, 0x278]
|
|
adds r1, 0x5
|
|
str r1, [sp, 0x27C]
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x284]
|
|
adds r0, 0x6
|
|
str r0, [sp, 0x288]
|
|
adds r1, 0x4
|
|
str r1, [sp, 0x28C]
|
|
adds r2, 0x3
|
|
str r2, [sp, 0x290]
|
|
subs r0, 0x59
|
|
str r0, [sp, 0x224]
|
|
adds r4, r6, 0
|
|
adds r4, 0x68
|
|
movs r7, 0x3
|
|
_080810C2:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80830D8
|
|
adds r4, 0x4
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _080810C2
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_80818E4
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_8081B54
|
|
adds r0, r5, 0
|
|
mov r1, r10
|
|
bl sub_8081B54
|
|
ldr r2, [sp, 0x214]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8081880
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x210]
|
|
bl sub_8081898
|
|
ldr r0, [sp, 0x218]
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
ldr r2, [sp, 0x21C]
|
|
ldr r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
ldr r0, [sp, 0x220]
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x228]
|
|
bl sub_8081920
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x22C]
|
|
bl sub_808193C
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x230]
|
|
bl sub_8081968
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x234]
|
|
bl sub_8081994
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x238]
|
|
bl sub_80819B0
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x23C]
|
|
bl sub_80819D4
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x240]
|
|
bl sub_80819F0
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x244]
|
|
bl sub_8081A24
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x248]
|
|
bl sub_8081A58
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x24C]
|
|
bl sub_8081A74
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x250]
|
|
bl sub_8081A80
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x254]
|
|
bl sub_8081A9C
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x258]
|
|
bl sub_8081AB8
|
|
ldr r2, [sp, 0x25C]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x260]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, [sp, 0x264]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x268]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, [sp, 0x26C]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x280]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, [sp, 0x270]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x274]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, [sp, 0x278]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x27C]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, [sp, 0x284]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [sp, 0x288]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, [sp, 0x28C]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r0, [sp, 0x290]
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_808183C
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8081854
|
|
movs r2, 0x82
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_808186C
|
|
movs r0, 0x84
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
adds r0, r5, 0
|
|
movs r2, 0x5
|
|
bl sub_808314C
|
|
ldr r2, _08081428
|
|
adds r1, r6, r2
|
|
adds r0, r5, 0
|
|
movs r2, 0x5
|
|
bl sub_808314C
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, _0808142C
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r1, 0x8A
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r2, 0x8C
|
|
lsls r2, 1
|
|
adds r1, r6, r2
|
|
adds r0, r5, 0
|
|
bl sub_8081B08
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
adds r0, r5, 0
|
|
bl sub_8081B34
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r1, r6, r2
|
|
adds r0, r5, 0
|
|
bl sub_8081B34
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, _08081430
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r1, _08081434
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r2, 0xA3
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, _08081438
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r1, 0xA5
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r2, _0808143C
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r2, 0xA7
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrh r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
movs r1, 0xA8
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
movs r2, 0xA9
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r1, _08081440
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r1, _08081444
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r2, 0xAB
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, _08081448
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r1, 0xB3
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, _0808144C
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r2, _08081450
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
movs r0, 0xB6
|
|
lsls r0, 1
|
|
adds r1, r6, r0
|
|
adds r0, r5, 0
|
|
bl sub_80830D8
|
|
movs r1, 0xBA
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830A0
|
|
movs r2, 0xBC
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldrh r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
movs r1, 0xFC
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r1, 0xFD
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r1, 0xFE
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
ldr r2, [sp, 0x224]
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80818B8
|
|
movs r3, 0xA5
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081428: .4byte 0x0000010d
|
|
_0808142C: .4byte 0x00000113
|
|
_08081430: .4byte 0x00000145
|
|
_08081434: .4byte 0x00000147
|
|
_08081438: .4byte 0x00000149
|
|
_0808143C: .4byte 0x0000014b
|
|
_08081440: .4byte 0x00000153
|
|
_08081444: .4byte 0x00000155
|
|
_08081448: .4byte 0x00000165
|
|
_0808144C: .4byte 0x00000167
|
|
_08081450: .4byte 0x00000169
|
|
thumb_func_end sub_8080E0C
|
|
|
|
thumb_func_start sub_8081454
|
|
sub_8081454:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
ldr r1, _08081600
|
|
bl sub_808300C
|
|
ldr r4, _08081604
|
|
ldr r0, [r4]
|
|
ldr r1, _08081608
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _0808160C
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081610
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r2, _08081614
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081618
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_8083060
|
|
ldr r0, [r4]
|
|
ldr r2, _0808161C
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_8083060
|
|
ldr r0, [r4]
|
|
ldr r1, _08081620
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _08081624
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _08081628
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _0808162C
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _08081630
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r7, 0
|
|
bl sub_8083048
|
|
movs r1, 0
|
|
mov r9, r4
|
|
_08081510:
|
|
lsls r0, r1, 2
|
|
adds r2, r1, 0x1
|
|
mov r8, r2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
lsls r0, 6
|
|
ldr r1, _08081634
|
|
adds r6, r0, r1
|
|
movs r5, 0
|
|
movs r4, 0x37
|
|
_08081526:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, r6
|
|
adds r1, r5
|
|
adds r0, r7, 0
|
|
bl sub_8081B60
|
|
adds r5, 0x18
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08081526
|
|
mov r1, r8
|
|
cmp r1, 0x1F
|
|
ble _08081510
|
|
ldr r4, _08081604
|
|
ldr r1, [r4]
|
|
ldr r0, _08081638
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_80830D8
|
|
ldr r1, [r4]
|
|
ldr r2, _0808163C
|
|
adds r1, r2
|
|
adds r0, r7, 0
|
|
bl sub_80830D8
|
|
ldr r6, _08081640
|
|
movs r5, 0x7
|
|
_08081560:
|
|
ldr r1, [r4]
|
|
adds r1, r6
|
|
adds r0, r7, 0
|
|
bl sub_80830D8
|
|
adds r6, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08081560
|
|
ldr r4, _08081604
|
|
ldr r1, [r4]
|
|
ldr r0, _08081644
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_80830F8
|
|
ldr r1, [r4]
|
|
ldr r2, _08081648
|
|
adds r1, r2
|
|
adds r0, r7, 0
|
|
bl sub_80830F8
|
|
ldr r1, [r4]
|
|
ldr r0, _0808164C
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_808312C
|
|
movs r1, 0
|
|
mov r10, r4
|
|
_0808159C:
|
|
movs r4, 0
|
|
adds r2, r1, 0x1
|
|
mov r8, r2
|
|
lsls r0, r1, 1
|
|
lsls r2, r1, 3
|
|
mov r9, r2
|
|
adds r0, r1
|
|
lsls r0, 6
|
|
ldr r1, _08081650
|
|
adds r6, r0, r1
|
|
movs r5, 0
|
|
_080815B2:
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
adds r1, r6
|
|
adds r1, r5
|
|
adds r0, r7, 0
|
|
bl sub_8081B60
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
mov r2, r9
|
|
adds r1, r4, r2
|
|
ldr r2, _08081654
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_8083060
|
|
adds r5, 0x18
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080815B2
|
|
mov r1, r8
|
|
cmp r1, 0x7
|
|
ble _0808159C
|
|
ldr r0, _08081604
|
|
ldr r1, [r0]
|
|
ldr r0, _08081658
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_8081B94
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081600: .4byte gUnknown_81071E0
|
|
_08081604: .4byte gDungeonGlobalData
|
|
_08081608: .4byte 0x00003a08
|
|
_0808160C: .4byte 0x00003a09
|
|
_08081610: .4byte 0x00003a0a
|
|
_08081614: .4byte 0x00003a0b
|
|
_08081618: .4byte 0x00003a0c
|
|
_0808161C: .4byte 0x00003a0d
|
|
_08081620: .4byte 0x00003a0e
|
|
_08081624: .4byte 0x00003a10
|
|
_08081628: .4byte 0x00003a12
|
|
_0808162C: .4byte 0x00003a14
|
|
_08081630: .4byte 0x00003a16
|
|
_08081634: .4byte 0x00003a18
|
|
_08081638: .4byte 0x0000e218
|
|
_0808163C: .4byte 0x0000e21c
|
|
_08081640: .4byte 0x0000e220
|
|
_08081644: .4byte 0x0000e240
|
|
_08081648: .4byte 0x0000e250
|
|
_0808164C: .4byte 0x0000e260
|
|
_08081650: .4byte 0x0000e27c
|
|
_08081654: .4byte 0x0000e87c
|
|
_08081658: .4byte 0x0000e264
|
|
thumb_func_end sub_8081454
|
|
|
|
thumb_func_start sub_808165C
|
|
sub_808165C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, _08081708
|
|
bl sub_808300C
|
|
ldr r4, _0808170C
|
|
ldr r0, [r4]
|
|
ldr r1, _08081710
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r0, [r4]
|
|
ldr r1, _08081714
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r0, [r4]
|
|
ldr r1, _08081718
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _0808171C
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081720
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081724
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081728
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _0808172C
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081730
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081734
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldr r0, [r4]
|
|
ldr r1, _08081738
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081708: .4byte gUnknown_81071E0
|
|
_0808170C: .4byte gDungeonGlobalData
|
|
_08081710: .4byte 0x00018208
|
|
_08081714: .4byte 0x00018209
|
|
_08081718: .4byte 0x0001820a
|
|
_0808171C: .4byte 0x0001820b
|
|
_08081720: .4byte 0x0001820c
|
|
_08081724: .4byte 0x0001820d
|
|
_08081728: .4byte 0x0001820e
|
|
_0808172C: .4byte 0x0001820f
|
|
_08081730: .4byte 0x00018210
|
|
_08081734: .4byte 0x00018211
|
|
_08081738: .4byte 0x00018213
|
|
thumb_func_end sub_808165C
|
|
|
|
thumb_func_start sub_808173C
|
|
sub_808173C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _08081778
|
|
ldr r0, [r4]
|
|
ldr r1, _0808177C
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _08081780
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
ldr r0, [r4]
|
|
ldr r1, _08081784
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081778: .4byte gDungeonGlobalData
|
|
_0808177C: .4byte 0x0001ced6
|
|
_08081780: .4byte 0x0001ced8
|
|
_08081784: .4byte 0x0001ceda
|
|
thumb_func_end sub_808173C
|
|
|
|
thumb_func_start sub_8081788
|
|
sub_8081788:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081788
|
|
|
|
thumb_func_start sub_80817B0
|
|
sub_80817B0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80817B0
|
|
|
|
thumb_func_start sub_80817C8
|
|
sub_80817C8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r1, r4, 0x2
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0
|
|
adds r1, 0x14
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0x16
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80817C8
|
|
|
|
thumb_func_start sub_80817F4
|
|
sub_80817F4:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strh r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80817F4
|
|
|
|
thumb_func_start sub_808180C
|
|
sub_808180C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808180C
|
|
|
|
thumb_func_start sub_8081824
|
|
sub_8081824:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081824
|
|
|
|
thumb_func_start sub_808183C
|
|
sub_808183C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808183C
|
|
|
|
thumb_func_start sub_8081854
|
|
sub_8081854:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081854
|
|
|
|
thumb_func_start sub_808186C
|
|
sub_808186C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808186C
|
|
|
|
thumb_func_start sub_8081880
|
|
sub_8081880:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081880
|
|
|
|
thumb_func_start sub_8081898
|
|
sub_8081898:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_808180C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081898
|
|
|
|
thumb_func_start sub_80818B8
|
|
sub_80818B8:
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8083060
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80818B8
|
|
|
|
thumb_func_start sub_80818C8
|
|
sub_80818C8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r4]
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80818C8
|
|
|
|
thumb_func_start sub_80818E4
|
|
sub_80818E4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r4, 0x3]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
adds r4, 0x10
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80830D8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80818E4
|
|
|
|
thumb_func_start sub_8081920
|
|
sub_8081920:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081920
|
|
|
|
thumb_func_start sub_808193C
|
|
sub_808193C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x3]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808193C
|
|
|
|
thumb_func_start sub_8081968
|
|
sub_8081968:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x9]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldr r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081968
|
|
|
|
thumb_func_start sub_8081994
|
|
sub_8081994:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081994
|
|
|
|
thumb_func_start sub_80819B0
|
|
sub_80819B0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80819B0
|
|
|
|
thumb_func_start sub_80819D4
|
|
sub_80819D4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80819D4
|
|
|
|
thumb_func_start sub_80819F0
|
|
sub_80819F0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_80830B4
|
|
ldrb r1, [r4, 0x3]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80819F0
|
|
|
|
thumb_func_start sub_8081A24
|
|
sub_8081A24:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldr r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083078
|
|
ldrb r1, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x9]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0xA]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081A24
|
|
|
|
thumb_func_start sub_8081A58
|
|
sub_8081A58:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081A58
|
|
|
|
thumb_func_start sub_8081A74
|
|
sub_8081A74:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081A74
|
|
|
|
thumb_func_start sub_8081A80
|
|
sub_8081A80:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081A80
|
|
|
|
thumb_func_start sub_8081A9C
|
|
sub_8081A9C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081A9C
|
|
|
|
thumb_func_start sub_8081AB8
|
|
sub_8081AB8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081AB8
|
|
|
|
thumb_func_start sub_8081AD4
|
|
sub_8081AD4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r4]
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
adds r1, r4, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
ldrb r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r4, 0x5]
|
|
adds r0, r5, 0
|
|
bl sub_8083060
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081AD4
|
|
|
|
thumb_func_start sub_8081B08
|
|
sub_8081B08:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r7, 0
|
|
movs r5, 0x3
|
|
_08081B12:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8081AD4
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08081B12
|
|
adds r0, r7, 0
|
|
adds r0, 0x20
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081B08
|
|
|
|
thumb_func_start sub_8081B34
|
|
sub_8081B34:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083048
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081B34
|
|
|
|
thumb_func_start sub_8081B54
|
|
sub_8081B54:
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl sub_8082FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081B54
|
|
|
|
thumb_func_start sub_8081B60
|
|
sub_8081B60:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldrh r1, [r4]
|
|
bl sub_8083030
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8083030
|
|
adds r1, r4, 0
|
|
adds r1, 0x9
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0xE
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081B60
|
|
|
|
thumb_func_start sub_8081B94
|
|
sub_8081B94:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r5, 0x1
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
movs r4, 0
|
|
_08081BAC:
|
|
adds r0, r5, 0x3
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
adds r0, r5, 0
|
|
adds r0, 0xB
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08081BAC
|
|
ldrb r1, [r5, 0x2]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r5, 0x13]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r5, 0x14]
|
|
adds r0, r6, 0
|
|
bl sub_8083060
|
|
ldrb r1, [r5, 0x15]
|
|
adds r0, r6, 0
|
|
bl sub_80830B4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081B94
|
|
|
|
thumb_func_start sub_8081BF4
|
|
sub_8081BF4:
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_8082FD4
|
|
add r1, sp, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
bl sub_8081C50
|
|
mov r0, sp
|
|
bl sub_8081C7C
|
|
mov r0, sp
|
|
bl sub_8081F2C
|
|
mov r0, sp
|
|
bl sub_808201C
|
|
mov r0, sp
|
|
bl sub_8082060
|
|
mov r0, sp
|
|
bl sub_80820D8
|
|
mov r0, sp
|
|
bl sub_808217C
|
|
ldr r1, _08081C4C
|
|
mov r0, sp
|
|
bl sub_8083018
|
|
mov r0, sp
|
|
bl nullsub_98
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081C4C: .4byte gUnknown_81071D4
|
|
thumb_func_end sub_8081BF4
|
|
|
|
thumb_func_start sub_8081C50
|
|
sub_8081C50:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _08081C70
|
|
bl sub_8083018
|
|
ldr r0, _08081C74
|
|
ldr r1, [r0]
|
|
ldr r0, _08081C78
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
movs r2, 0x58
|
|
bl sub_8082FE0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081C70: .4byte gUnknown_81071E0
|
|
_08081C74: .4byte gDungeonGlobalData
|
|
_08081C78: .4byte 0x00000644
|
|
thumb_func_end sub_8081C50
|
|
|
|
thumb_func_start sub_8081C7C
|
|
sub_8081C7C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
ldr r1, _08081E20
|
|
bl sub_8083018
|
|
adds r0, r7, 0
|
|
bl sub_80831DC
|
|
ldr r4, _08081E24
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E28
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E2C
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E30
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E34
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083188
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E38
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083188
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E3C
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E40
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E44
|
|
adds r1, r3
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E48
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E4C
|
|
adds r1, r3
|
|
strh r0, [r1]
|
|
adds r0, r7, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E50
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
movs r1, 0
|
|
mov r9, r4
|
|
_08081D2E:
|
|
lsls r0, r1, 2
|
|
adds r3, r1, 0x1
|
|
mov r8, r3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
lsls r0, 6
|
|
ldr r1, _08081E54
|
|
adds r6, r0, r1
|
|
movs r5, 0
|
|
movs r4, 0x37
|
|
_08081D44:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, r6
|
|
adds r1, r5
|
|
adds r0, r7, 0
|
|
bl sub_8081E7C
|
|
adds r5, 0x18
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08081D44
|
|
mov r1, r8
|
|
cmp r1, 0x1F
|
|
ble _08081D2E
|
|
ldr r4, _08081E24
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E58
|
|
adds r1, r3
|
|
adds r0, r7, 0
|
|
bl sub_80831F8
|
|
ldr r1, [r4]
|
|
ldr r0, _08081E5C
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_80831F8
|
|
ldr r6, _08081E60
|
|
movs r5, 0x7
|
|
_08081D7E:
|
|
ldr r1, [r4]
|
|
adds r1, r6
|
|
adds r0, r7, 0
|
|
bl sub_80831F8
|
|
adds r6, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08081D7E
|
|
ldr r4, _08081E24
|
|
ldr r1, [r4]
|
|
ldr r2, _08081E64
|
|
adds r1, r2
|
|
adds r0, r7, 0
|
|
bl sub_8083220
|
|
ldr r1, [r4]
|
|
ldr r3, _08081E68
|
|
adds r1, r3
|
|
adds r0, r7, 0
|
|
bl sub_8083220
|
|
ldr r1, [r4]
|
|
ldr r0, _08081E6C
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_8083260
|
|
movs r1, 0
|
|
mov r10, r4
|
|
_08081DBA:
|
|
movs r4, 0
|
|
adds r2, r1, 0x1
|
|
mov r8, r2
|
|
lsls r0, r1, 1
|
|
lsls r3, r1, 3
|
|
mov r9, r3
|
|
adds r0, r1
|
|
lsls r0, 6
|
|
ldr r1, _08081E70
|
|
adds r6, r0, r1
|
|
movs r5, 0
|
|
_08081DD0:
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
adds r1, r6
|
|
adds r1, r5
|
|
adds r0, r7, 0
|
|
bl sub_8081E7C
|
|
adds r0, r7, 0
|
|
bl sub_8083188
|
|
mov r3, r10
|
|
ldr r1, [r3]
|
|
mov r3, r9
|
|
adds r2, r4, r3
|
|
ldr r3, _08081E74
|
|
adds r1, r3
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r5, 0x18
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08081DD0
|
|
mov r1, r8
|
|
cmp r1, 0x7
|
|
ble _08081DBA
|
|
ldr r0, _08081E24
|
|
ldr r1, [r0]
|
|
ldr r0, _08081E78
|
|
adds r1, r0
|
|
adds r0, r7, 0
|
|
bl sub_8081EC0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081E20: .4byte gUnknown_81071E0
|
|
_08081E24: .4byte gDungeonGlobalData
|
|
_08081E28: .4byte 0x00003a08
|
|
_08081E2C: .4byte 0x00003a09
|
|
_08081E30: .4byte 0x00003a0a
|
|
_08081E34: .4byte 0x00003a0b
|
|
_08081E38: .4byte 0x00003a0c
|
|
_08081E3C: .4byte 0x00003a0d
|
|
_08081E40: .4byte 0x00003a0e
|
|
_08081E44: .4byte 0x00003a10
|
|
_08081E48: .4byte 0x00003a12
|
|
_08081E4C: .4byte 0x00003a14
|
|
_08081E50: .4byte 0x00003a16
|
|
_08081E54: .4byte 0x00003a18
|
|
_08081E58: .4byte 0x0000e218
|
|
_08081E5C: .4byte 0x0000e21c
|
|
_08081E60: .4byte 0x0000e220
|
|
_08081E64: .4byte 0x0000e240
|
|
_08081E68: .4byte 0x0000e250
|
|
_08081E6C: .4byte 0x0000e260
|
|
_08081E70: .4byte 0x0000e27c
|
|
_08081E74: .4byte 0x0000e87c
|
|
_08081E78: .4byte 0x0000e264
|
|
thumb_func_end sub_8081C7C
|
|
|
|
thumb_func_start sub_8081E7C
|
|
sub_8081E7C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
movs r6, 0
|
|
strh r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
strh r0, [r4, 0x4]
|
|
adds r1, r4, 0
|
|
adds r1, 0x9
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r1, r4, 0
|
|
adds r1, 0xE
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
str r6, [r4, 0x10]
|
|
str r6, [r4, 0x14]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081E7C
|
|
|
|
thumb_func_start sub_8081EC0
|
|
sub_8081EC0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0x18
|
|
bl memset
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r1, r5, 0x1
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
movs r4, 0
|
|
_08081EE6:
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
adds r1, r5, 0x3
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
adds r1, r5, 0
|
|
adds r1, 0xB
|
|
adds r1, r4
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08081EE6
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x2]
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x13]
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x14]
|
|
adds r0, r6, 0
|
|
bl sub_80831DC
|
|
strb r0, [r5, 0x15]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081EC0
|
|
|
|
thumb_func_start sub_8081F2C
|
|
sub_8081F2C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, _08081FE4
|
|
bl sub_8083018
|
|
ldr r4, _08081FE8
|
|
ldr r0, [r4]
|
|
ldr r1, _08081FEC
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, [r4]
|
|
ldr r2, _08081FF0
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, [r4]
|
|
ldr r2, _08081FF4
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08081FF8
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08081FFC
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082000
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082004
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082008
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _0808200C
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082010
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082014
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082018
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081FE4: .4byte gUnknown_81071E0
|
|
_08081FE8: .4byte gDungeonGlobalData
|
|
_08081FEC: .4byte 0x000181f8
|
|
_08081FF0: .4byte 0x00018208
|
|
_08081FF4: .4byte 0x00018209
|
|
_08081FF8: .4byte 0x0001820a
|
|
_08081FFC: .4byte 0x0001820b
|
|
_08082000: .4byte 0x0001820c
|
|
_08082004: .4byte 0x0001820d
|
|
_08082008: .4byte 0x0001820e
|
|
_0808200C: .4byte 0x0001820f
|
|
_08082010: .4byte 0x00018210
|
|
_08082014: .4byte 0x00018211
|
|
_08082018: .4byte 0x00018213
|
|
thumb_func_end sub_8081F2C
|
|
|
|
thumb_func_start sub_808201C
|
|
sub_808201C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl sub_8083170
|
|
ldr r4, _08082050
|
|
ldr r1, [r4]
|
|
ldr r2, _08082054
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r2, _08082058
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
ldr r1, [r4]
|
|
ldr r2, _0808205C
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08082050: .4byte gDungeonGlobalData
|
|
_08082054: .4byte 0x0001ced6
|
|
_08082058: .4byte 0x0001ced8
|
|
_0808205C: .4byte 0x0001ceda
|
|
thumb_func_end sub_808201C
|
|
|
|
thumb_func_start sub_8082060
|
|
sub_8082060:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
ldr r1, _080820A4
|
|
bl sub_8083018
|
|
add r4, sp, 0x4
|
|
mov r7, sp
|
|
movs r6, 0x3F
|
|
_08082072:
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
bl sub_80820A8
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80831F8
|
|
ldrb r1, [r7]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08082096
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
movs r2, 0
|
|
bl sub_80460F8
|
|
_08082096:
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08082072
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080820A4: .4byte gUnknown_81071E0
|
|
thumb_func_end sub_8082060
|
|
|
|
thumb_func_start sub_80820A8
|
|
sub_80820A8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r1, r4, 0x1
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80820A8
|
|
|
|
thumb_func_start sub_80820D8
|
|
sub_80820D8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
ldr r1, _08082178
|
|
bl sub_8083018
|
|
movs r0, 0x1
|
|
add r0, sp
|
|
mov r9, r0
|
|
add r1, sp, 0x4
|
|
mov r8, r1
|
|
mov r7, sp
|
|
movs r2, 0x3F
|
|
mov r10, r2
|
|
_080820FC:
|
|
movs r0, 0x6
|
|
strb r0, [r7]
|
|
movs r0, 0
|
|
mov r3, sp
|
|
strb r0, [r3, 0x1]
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0
|
|
add r1, sp, 0x4
|
|
bl sub_80831F8
|
|
ldrb r0, [r7]
|
|
cmp r0, 0xFF
|
|
beq _0808215C
|
|
mov r1, r8
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
mov r3, sp
|
|
movs r2, 0x6
|
|
ldrsh r1, [r3, r2]
|
|
bl GetMapEntity
|
|
adds r4, r0, 0
|
|
ldrb r0, [r7]
|
|
mov r3, r9
|
|
ldrb r2, [r3]
|
|
mov r1, r8
|
|
bl sub_8045684
|
|
cmp r0, 0
|
|
beq _0808215C
|
|
str r0, [r4, 0x14]
|
|
adds r0, 0x20
|
|
strb r6, [r0]
|
|
_0808215C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r10, r0
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
bge _080820FC
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08082178: .4byte gUnknown_81071E0
|
|
thumb_func_end sub_80820D8
|
|
|
|
thumb_func_start sub_808217C
|
|
sub_808217C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, _08082250
|
|
bl sub_8083018
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
ldr r4, _08082254
|
|
ldr r1, [r4]
|
|
ldr r2, _08082258
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
ldr r1, [r4]
|
|
ldr r2, _0808225C
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082260
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082264
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082268
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _0808226C
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082270
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082274
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _08082278
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [r4]
|
|
ldr r2, _0808227C
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
ldr r1, [r4]
|
|
movs r2, 0xE0
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
movs r4, 0
|
|
_08082226:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_8082280
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08082226
|
|
movs r4, 0
|
|
_08082238:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_8082280
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08082238
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08082250: .4byte gUnknown_81071E0
|
|
_08082254: .4byte gDungeonGlobalData
|
|
_08082258: .4byte 0x000037f0
|
|
_0808225C: .4byte 0x000037f4
|
|
_08082260: .4byte 0x000037f8
|
|
_08082264: .4byte 0x000037f9
|
|
_08082268: .4byte 0x000037fa
|
|
_0808226C: .4byte 0x000037fb
|
|
_08082270: .4byte 0x000037fc
|
|
_08082274: .4byte 0x000037fd
|
|
_08082278: .4byte 0x000037fe
|
|
_0808227C: .4byte 0x000037ff
|
|
thumb_func_end sub_808217C
|
|
|
|
thumb_func_start sub_8082280
|
|
sub_8082280:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _0808266C
|
|
add sp, r4
|
|
adds r5, r0, 0
|
|
str r2, [sp, 0x210]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x20C]
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
mov r0, sp
|
|
movs r1, 0
|
|
bl memset
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x214]
|
|
add r4, sp, 0x208
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80831F8
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x218]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x21C]
|
|
ldr r1, _08082670
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082BC0
|
|
mov r1, sp
|
|
strh r0, [r1, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_8082BC0
|
|
mov r1, sp
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
mov r1, sp
|
|
strb r0, [r1, 0x6]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
mov r1, sp
|
|
strb r0, [r1, 0x7]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x8]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x9]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0xA]
|
|
add r1, sp, 0x40
|
|
adds r0, r5, 0
|
|
bl sub_8082F64
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0xC]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x10]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x12]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x14]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x15]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x16]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
mov r1, sp
|
|
strb r0, [r1, 0x17]
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
str r0, [sp, 0x18]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x1C]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x1E]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x20]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x24]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x26]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
mov r1, sp
|
|
strh r0, [r1, 0x28]
|
|
adds r0, r5, 0
|
|
bl sub_80831C8
|
|
str r0, [sp, 0x2C]
|
|
adds r0, r5, 0
|
|
bl sub_80831C8
|
|
str r0, [sp, 0x30]
|
|
adds r0, r5, 0
|
|
bl sub_80831C8
|
|
str r0, [sp, 0x34]
|
|
adds r0, r5, 0
|
|
bl sub_80831C8
|
|
str r0, [sp, 0x38]
|
|
add r1, sp, 0x44
|
|
adds r0, r5, 0
|
|
bl sub_8082CBC
|
|
adds r0, r5, 0
|
|
bl sub_8082BFC
|
|
add r1, sp, 0x5C
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082BFC
|
|
mov r1, sp
|
|
adds r1, 0x5D
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082C18
|
|
mov r1, sp
|
|
adds r1, 0x5E
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082C18
|
|
mov r1, sp
|
|
adds r1, 0x5F
|
|
strb r0, [r1]
|
|
add r1, sp, 0x60
|
|
adds r0, r5, 0
|
|
bl sub_80820A8
|
|
adds r0, r5, 0
|
|
bl sub_8082BE0
|
|
add r1, sp, 0x64
|
|
strb r0, [r1]
|
|
add r7, sp, 0x78
|
|
add r0, sp, 0x8C
|
|
mov r8, r0
|
|
add r1, sp, 0x90
|
|
mov r9, r1
|
|
add r2, sp, 0x94
|
|
mov r10, r2
|
|
mov r3, sp
|
|
adds r3, 0x3C
|
|
str r3, [sp, 0x270]
|
|
mov r0, sp
|
|
adds r0, 0x98
|
|
str r0, [sp, 0x274]
|
|
mov r1, sp
|
|
adds r1, 0x9C
|
|
str r1, [sp, 0x278]
|
|
mov r2, sp
|
|
adds r2, 0xA0
|
|
str r2, [sp, 0x27C]
|
|
adds r3, 0x6C
|
|
str r3, [sp, 0x284]
|
|
adds r0, 0x14
|
|
str r0, [sp, 0x288]
|
|
adds r1, 0x14
|
|
str r1, [sp, 0x28C]
|
|
adds r2, 0x1C
|
|
str r2, [sp, 0x290]
|
|
adds r3, 0x18
|
|
str r3, [sp, 0x294]
|
|
adds r0, 0x18
|
|
str r0, [sp, 0x298]
|
|
adds r1, 0x18
|
|
str r1, [sp, 0x29C]
|
|
adds r2, 0x14
|
|
str r2, [sp, 0x220]
|
|
adds r3, 0x1C
|
|
str r3, [sp, 0x224]
|
|
adds r0, 0x1C
|
|
str r0, [sp, 0x228]
|
|
adds r1, 0x1C
|
|
str r1, [sp, 0x22C]
|
|
adds r2, 0x18
|
|
str r2, [sp, 0x230]
|
|
adds r3, 0x10
|
|
str r3, [sp, 0x234]
|
|
adds r0, 0x10
|
|
str r0, [sp, 0x238]
|
|
adds r1, 0xD
|
|
str r1, [sp, 0x23C]
|
|
adds r2, 0xA
|
|
str r2, [sp, 0x240]
|
|
adds r3, 0x7
|
|
str r3, [sp, 0x244]
|
|
adds r0, 0x4
|
|
str r0, [sp, 0x248]
|
|
adds r1, 0xA
|
|
str r1, [sp, 0x25C]
|
|
adds r2, 0x3
|
|
str r2, [sp, 0x24C]
|
|
adds r3, 0x3
|
|
str r3, [sp, 0x250]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x254]
|
|
subs r1, 0x1
|
|
str r1, [sp, 0x258]
|
|
adds r2, 0x7
|
|
str r2, [sp, 0x260]
|
|
adds r3, 0x7
|
|
str r3, [sp, 0x264]
|
|
adds r0, 0x7
|
|
str r0, [sp, 0x268]
|
|
adds r1, 0x5
|
|
str r1, [sp, 0x26C]
|
|
subs r2, 0x58
|
|
str r2, [sp, 0x280]
|
|
add r4, sp, 0x68
|
|
movs r6, 0x3
|
|
_080824DC:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80831F8
|
|
adds r4, 0x4
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080824DC
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_8082CE4
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_8082D28
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_8082D28
|
|
adds r0, r5, 0
|
|
bl sub_8082C84
|
|
movs r4, 0
|
|
mov r3, r10
|
|
strb r0, [r3]
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x270]
|
|
bl sub_8082F80
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
ldr r1, [sp, 0x274]
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
ldr r2, [sp, 0x278]
|
|
str r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
ldr r3, [sp, 0x27C]
|
|
str r0, [r3]
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x284]
|
|
bl sub_8082D34
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x288]
|
|
bl sub_8082D50
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x28C]
|
|
bl sub_8082D7C
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x290]
|
|
bl sub_8082DA8
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x294]
|
|
bl sub_8082DC4
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x298]
|
|
bl sub_8082DE8
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x29C]
|
|
bl sub_8082E04
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x220]
|
|
bl sub_8082E38
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x224]
|
|
bl sub_8082E6C
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x228]
|
|
bl sub_8082E88
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x22C]
|
|
bl sub_8082E94
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x230]
|
|
bl sub_8082EB0
|
|
adds r0, r5, 0
|
|
ldr r1, [sp, 0x234]
|
|
bl sub_8082ECC
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [sp, 0x238]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r2, [sp, 0x23C]
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r3, [sp, 0x240]
|
|
strb r0, [r3]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [sp, 0x244]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r2, [sp, 0x248]
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r3, [sp, 0x25C]
|
|
strb r0, [r3]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, [sp, 0x24C]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r2, [sp, 0x250]
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r3, [sp, 0x254]
|
|
strb r0, [r3]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, [sp, 0x258]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r2, [sp, 0x260]
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r3, [sp, 0x264]
|
|
strb r0, [r3]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, [sp, 0x268]
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082C34
|
|
ldr r2, [sp, 0x26C]
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
bl sub_8082C50
|
|
add r1, sp, 0x100
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082C6C
|
|
add r1, sp, 0x104
|
|
str r0, [r1]
|
|
add r1, sp, 0x108
|
|
adds r0, r5, 0
|
|
movs r2, 0x5
|
|
bl sub_8083288
|
|
ldr r1, _08082674
|
|
add r1, sp
|
|
adds r0, r5, 0
|
|
movs r2, 0x5
|
|
bl sub_8083288
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
movs r1, 0x89
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
b _08082678
|
|
.align 2, 0
|
|
_0808266C: .4byte 0xfffffd60
|
|
_08082670: .4byte gLeaderPokemon
|
|
_08082674: .4byte 0x0000010d
|
|
_08082678:
|
|
ldr r1, _08082818
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
add r1, sp, 0x114
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [r1]
|
|
add r1, sp, 0x118
|
|
adds r0, r5, 0
|
|
bl sub_8082F1C
|
|
add r1, sp, 0x13C
|
|
adds r0, r5, 0
|
|
bl sub_8082F48
|
|
add r1, sp, 0x140
|
|
adds r0, r5, 0
|
|
bl sub_8082F48
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
add r1, sp, 0x144
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, _0808281C
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, _08082820
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
movs r1, 0xA3
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
add r1, sp, 0x148
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, _08082824
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
movs r1, 0xA5
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, _08082828
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
add r1, sp, 0x14C
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
movs r1, 0xA7
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
add r1, sp, 0x150
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
movs r1, 0xA9
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, _0808282C
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
add r1, sp, 0x154
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
ldr r1, _08082830
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
movs r1, 0xAB
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
add r1, sp, 0x164
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, _08082834
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
movs r1, 0xB3
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, _08082838
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
add r1, sp, 0x168
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083188
|
|
ldr r1, _0808283C
|
|
add r1, sp
|
|
strb r0, [r1]
|
|
add r1, sp, 0x16C
|
|
adds r0, r5, 0
|
|
bl sub_80831F8
|
|
adds r0, r5, 0
|
|
bl sub_80831C8
|
|
add r1, sp, 0x174
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
add r1, sp, 0x178
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
add r1, sp, 0x1F8
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8083170
|
|
movs r1, 0xFD
|
|
lsls r1, 1
|
|
add r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_80831A0
|
|
add r1, sp, 0x1FC
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl sub_8082CA0
|
|
ldr r3, [sp, 0x280]
|
|
strb r0, [r3]
|
|
ldr r0, _08082840
|
|
str r4, [r0]
|
|
ldr r0, [sp, 0x214]
|
|
cmp r0, 0
|
|
beq _080828BE
|
|
ldr r1, [sp, 0x20C]
|
|
cmp r1, 0
|
|
beq _08082844
|
|
mov r0, sp
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
mov r1, sp
|
|
movs r3, 0x4
|
|
ldrsh r1, [r1, r3]
|
|
ldr r2, [sp, 0x210]
|
|
bl sub_80828E0
|
|
b _08082856
|
|
.align 2, 0
|
|
_08082818: .4byte 0x00000113
|
|
_0808281C: .4byte 0x00000145
|
|
_08082820: .4byte 0x00000147
|
|
_08082824: .4byte 0x00000149
|
|
_08082828: .4byte 0x0000014b
|
|
_0808282C: .4byte 0x00000153
|
|
_08082830: .4byte 0x00000155
|
|
_08082834: .4byte 0x00000165
|
|
_08082838: .4byte 0x00000167
|
|
_0808283C: .4byte 0x00000169
|
|
_08082840: .4byte gLeaderPokemon
|
|
_08082844:
|
|
mov r0, sp
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [sp, 0x210]
|
|
bl sub_8082A08
|
|
_08082856:
|
|
adds r7, r0, 0
|
|
cmp r7, 0
|
|
beq _080828BE
|
|
ldr r6, [r7, 0x70]
|
|
movs r5, 0x82
|
|
lsls r5, 2
|
|
mov r3, sp
|
|
adds r4, r3, r5
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
ldr r3, _080828D4
|
|
add r3, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r3, r2]
|
|
bl GetMapEntity
|
|
ldr r1, [r4]
|
|
str r1, [r7, 0x8]
|
|
ldr r1, [r4]
|
|
str r1, [r7, 0x4]
|
|
str r7, [r0, 0x10]
|
|
adds r0, r7, 0
|
|
adds r0, 0x20
|
|
movs r4, 0
|
|
add r1, sp, 0x218
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
add r2, sp, 0x21C
|
|
ldrh r2, [r2]
|
|
strh r2, [r7, 0x26]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl memcpy
|
|
ldr r0, _080828D8
|
|
str r4, [r0]
|
|
ldrb r0, [r6, 0x7]
|
|
cmp r0, 0
|
|
beq _080828B0
|
|
ldr r0, _080828DC
|
|
ldrh r1, [r7, 0x4]
|
|
strh r1, [r0]
|
|
ldrh r1, [r7, 0x6]
|
|
strh r1, [r0, 0x2]
|
|
_080828B0:
|
|
adds r0, r7, 0
|
|
bl LoadIQSkills
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_804535C
|
|
_080828BE:
|
|
movs r3, 0xA8
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080828D4: .4byte 0x0000020a
|
|
_080828D8: .4byte gLeaderPokemon
|
|
_080828DC: .4byte gUnknown_203B410
|
|
thumb_func_end sub_8082280
|
|
|
|
thumb_func_start sub_80828E0
|
|
sub_80828E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r5, r2, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r10, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r8, r1
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
mov r0, r8
|
|
bl GetPokemonSize
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r3, 0
|
|
movs r0, 0x6
|
|
subs r7, r0, r6
|
|
ldr r0, _08082914
|
|
mov r9, r0
|
|
b _0808291A
|
|
.align 2, 0
|
|
_08082914: .4byte gUnknown_202EE70
|
|
_08082918:
|
|
adds r3, 0x1
|
|
_0808291A:
|
|
cmp r3, r7
|
|
bgt _0808293E
|
|
movs r2, 0
|
|
cmp r2, r6
|
|
bge _08082938
|
|
mov r0, r9
|
|
adds r1, r3, r0
|
|
b _08082932
|
|
_0808292A:
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
cmp r2, r6
|
|
bge _08082938
|
|
_08082932:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0808292A
|
|
_08082938:
|
|
cmp r2, r6
|
|
bne _08082918
|
|
adds r4, r3, 0
|
|
_0808293E:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bne _0808294A
|
|
movs r0, 0
|
|
b _080829E6
|
|
_0808294A:
|
|
ldr r2, _080829F4
|
|
ldr r0, [r2]
|
|
lsls r1, r5, 2
|
|
ldr r3, _080829F8
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r7, [r0]
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
str r0, [r7]
|
|
adds r0, r7, 0
|
|
adds r0, 0x24
|
|
strb r5, [r0]
|
|
lsls r0, r5, 6
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080829FC
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
str r1, [r7, 0x70]
|
|
movs r5, 0
|
|
mov r3, r10
|
|
strh r3, [r1, 0x2]
|
|
ldr r0, [r7, 0x70]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x4]
|
|
ldr r0, [r7, 0x70]
|
|
strb r5, [r0, 0x6]
|
|
mov r0, r8
|
|
bl sub_80687D0
|
|
str r0, [r7, 0x64]
|
|
lsls r0, r4, 4
|
|
adds r0, 0x40
|
|
adds r1, r7, 0
|
|
adds r1, 0x68
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x6C
|
|
strb r5, [r0]
|
|
adds r1, 0x1
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x6D
|
|
mov r3, r9
|
|
strb r3, [r0]
|
|
adds r0, 0x2
|
|
strb r3, [r0]
|
|
movs r0, 0
|
|
str r0, [r7, 0x1C]
|
|
bl sub_8045ACC
|
|
ldr r0, [r7, 0x70]
|
|
ldr r1, _08082A00
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r0, [r7, 0x70]
|
|
movs r3, 0xB4
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
strb r6, [r0]
|
|
cmp r6, 0
|
|
beq _080829E4
|
|
ldr r3, _08082A04
|
|
movs r2, 0x1
|
|
adds r1, r6, 0
|
|
_080829D8:
|
|
adds r0, r4, r3
|
|
strb r2, [r0]
|
|
adds r4, 0x1
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080829D8
|
|
_080829E4:
|
|
adds r0, r7, 0
|
|
_080829E6:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080829F4: .4byte gDungeonGlobalData
|
|
_080829F8: .4byte 0x0001357c
|
|
_080829FC: .4byte 0x0000069c
|
|
_08082A00: .4byte 0x00000167
|
|
_08082A04: .4byte gUnknown_202EE70
|
|
thumb_func_end sub_80828E0
|
|
|
|
thumb_func_start sub_8082A08
|
|
sub_8082A08:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r2, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r9, r1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
mov r0, r9
|
|
bl GetPokemonSize
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r3, 0
|
|
movs r0, 0x10
|
|
subs r4, r0, r6
|
|
ldr r7, _08082A3C
|
|
b _08082A42
|
|
.align 2, 0
|
|
_08082A3C: .4byte gUnknown_202EE76
|
|
_08082A40:
|
|
adds r3, 0x1
|
|
_08082A42:
|
|
cmp r3, r4
|
|
bgt _08082A64
|
|
movs r2, 0
|
|
cmp r2, r6
|
|
bge _08082A5E
|
|
adds r1, r3, r7
|
|
b _08082A58
|
|
_08082A50:
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
cmp r2, r6
|
|
bge _08082A5E
|
|
_08082A58:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08082A50
|
|
_08082A5E:
|
|
cmp r2, r6
|
|
bne _08082A40
|
|
mov r8, r3
|
|
_08082A64:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r8, r0
|
|
bne _08082A70
|
|
movs r0, 0
|
|
b _08082B1C
|
|
_08082A70:
|
|
ldr r2, _08082B2C
|
|
ldr r0, [r2]
|
|
lsls r1, r5, 2
|
|
ldr r3, _08082B30
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r7, [r0]
|
|
movs r4, 0x1
|
|
str r4, [r7]
|
|
adds r0, r7, 0
|
|
adds r0, 0x24
|
|
movs r1, 0
|
|
mov r10, r1
|
|
strb r5, [r0]
|
|
subs r0, 0x2
|
|
mov r3, r10
|
|
strb r3, [r0]
|
|
lsls r0, r5, 6
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _08082B34
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
str r1, [r7, 0x70]
|
|
movs r5, 0
|
|
mov r2, sp
|
|
ldrh r2, [r2]
|
|
strh r2, [r1, 0x2]
|
|
ldr r0, [r7, 0x70]
|
|
mov r3, r9
|
|
strh r3, [r0, 0x4]
|
|
ldr r0, [r7, 0x70]
|
|
strb r4, [r0, 0x6]
|
|
mov r0, r9
|
|
bl sub_80687D0
|
|
str r0, [r7, 0x64]
|
|
mov r1, r8
|
|
lsls r0, r1, 4
|
|
adds r0, 0xA0
|
|
adds r1, r7, 0
|
|
adds r1, 0x68
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
movs r0, 0x7
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x6C
|
|
strb r5, [r0]
|
|
adds r1, 0x1
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
adds r0, 0x6D
|
|
strb r4, [r0]
|
|
adds r0, 0x2
|
|
strb r4, [r0]
|
|
mov r2, r10
|
|
str r2, [r7, 0x1C]
|
|
ldr r0, [r7, 0x70]
|
|
ldr r3, _08082B38
|
|
adds r0, r3
|
|
mov r4, r8
|
|
strb r4, [r0]
|
|
ldr r0, [r7, 0x70]
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
cmp r6, 0
|
|
beq _08082B16
|
|
ldr r3, _08082B3C
|
|
movs r2, 0x1
|
|
adds r1, r6, 0
|
|
_08082B06:
|
|
mov r4, r8
|
|
adds r0, r4, r3
|
|
strb r2, [r0]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _08082B06
|
|
_08082B16:
|
|
bl sub_8045ACC
|
|
adds r0, r7, 0
|
|
_08082B1C:
|
|
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
|
|
_08082B2C: .4byte gDungeonGlobalData
|
|
_08082B30: .4byte 0x0001358c
|
|
_08082B34: .4byte 0x00000ebc
|
|
_08082B38: .4byte 0x00000167
|
|
_08082B3C: .4byte gUnknown_202EE76
|
|
thumb_func_end sub_8082A08
|
|
|
|
thumb_func_start sub_8082B40
|
|
sub_8082B40:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
movs r6, 0
|
|
_08082B46:
|
|
ldr r0, _08082BB8
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 2
|
|
ldr r2, _08082BBC
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r5, [r0]
|
|
adds r0, r5, 0
|
|
bl EntityExists
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08082BA8
|
|
ldr r4, [r5, 0x70]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80687D0
|
|
str r0, [r5, 0x64]
|
|
adds r0, r5, 0
|
|
bl sub_806CEBC
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl sub_806CCB4
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r0, 0x98
|
|
ldr r0, [r0]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r4, r2]
|
|
mov r2, sp
|
|
movs r3, 0x3
|
|
bl AddPokemonDungeonSprite
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r5, r2]
|
|
bl GetMapEntity
|
|
ldrb r1, [r0, 0x9]
|
|
adds r0, r5, 0
|
|
adds r0, 0x25
|
|
strb r1, [r0]
|
|
_08082BA8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _08082B46
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08082BB8: .4byte gDungeonGlobalData
|
|
_08082BBC: .4byte 0x000135cc
|
|
thumb_func_end sub_8082B40
|
|
|
|
thumb_func_start sub_8082BC0
|
|
sub_8082BC0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strh r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082BC0
|
|
|
|
thumb_func_start sub_8082BE0
|
|
sub_8082BE0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082BE0
|
|
|
|
thumb_func_start sub_8082BFC
|
|
sub_8082BFC:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082BFC
|
|
|
|
thumb_func_start sub_8082C18
|
|
sub_8082C18:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082C18
|
|
|
|
thumb_func_start sub_8082C34
|
|
sub_8082C34:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082C34
|
|
|
|
thumb_func_start sub_8082C50
|
|
sub_8082C50:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082C50
|
|
|
|
thumb_func_start sub_8082C6C
|
|
sub_8082C6C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FE0
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082C6C
|
|
|
|
thumb_func_start sub_8082C84
|
|
sub_8082C84:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082C84
|
|
|
|
thumb_func_start sub_8082CA0
|
|
sub_8082CA0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8082CA0
|
|
|
|
thumb_func_start sub_8082CBC
|
|
sub_8082CBC:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
adds r1, r4, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
movs r0, 0x7
|
|
strb r0, [r4, 0x3]
|
|
adds r4, 0x14
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80831F8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082CBC
|
|
|
|
thumb_func_start sub_8082CE4
|
|
sub_8082CE4:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
movs r6, 0
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
strb r0, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_80831DC
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r5, 0
|
|
bl sub_8083158
|
|
strh r0, [r4, 0x4]
|
|
str r6, [r4, 0x8]
|
|
str r6, [r4, 0xC]
|
|
adds r4, 0x10
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80831F8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082CE4
|
|
|
|
thumb_func_start sub_8082D28
|
|
sub_8082D28:
|
|
push {lr}
|
|
movs r2, 0x3
|
|
bl sub_8082FE0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082D28
|
|
|
|
thumb_func_start sub_8082D34
|
|
sub_8082D34:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082D34
|
|
|
|
thumb_func_start sub_8082D50
|
|
sub_8082D50:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082D50
|
|
|
|
thumb_func_start sub_8082D7C
|
|
sub_8082D7C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x9]
|
|
adds r0, r4, 0
|
|
bl sub_80831A0
|
|
str r0, [r5, 0x4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082D7C
|
|
|
|
thumb_func_start sub_8082DA8
|
|
sub_8082DA8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082DA8
|
|
|
|
thumb_func_start sub_8082DC4
|
|
sub_8082DC4:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x2]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082DC4
|
|
|
|
thumb_func_start sub_8082DE8
|
|
sub_8082DE8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082DE8
|
|
|
|
thumb_func_start sub_8082E04
|
|
sub_8082E04:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_80831DC
|
|
strb r0, [r5, 0x1]
|
|
adds r0, r4, 0
|
|
bl sub_80831DC
|
|
strb r0, [r5, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x3]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082E04
|
|
|
|
thumb_func_start sub_8082E38
|
|
sub_8082E38:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_80831A0
|
|
str r0, [r5, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x8]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x9]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0xA]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082E38
|
|
|
|
thumb_func_start sub_8082E6C
|
|
sub_8082E6C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082E6C
|
|
|
|
thumb_func_start sub_8082E88
|
|
sub_8082E88:
|
|
push {lr}
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082E88
|
|
|
|
thumb_func_start sub_8082E94
|
|
sub_8082E94:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082E94
|
|
|
|
thumb_func_start sub_8082EB0
|
|
sub_8082EB0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082EB0
|
|
|
|
thumb_func_start sub_8082ECC
|
|
sub_8082ECC:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082ECC
|
|
|
|
thumb_func_start sub_8082EE8
|
|
sub_8082EE8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8083188
|
|
strb r0, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_8082FE0
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x4]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082EE8
|
|
|
|
thumb_func_start sub_8082F1C
|
|
sub_8082F1C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r7, 0
|
|
movs r5, 0x3
|
|
_08082F26:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8082EE8
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08082F26
|
|
adds r0, r6, 0
|
|
bl sub_8083188
|
|
adds r1, r7, 0
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082F1C
|
|
|
|
thumb_func_start sub_8082F48
|
|
sub_8082F48:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8083170
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8083170
|
|
strh r0, [r5, 0x2]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082F48
|
|
|
|
thumb_func_start sub_8082F64
|
|
sub_8082F64:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8083188
|
|
strb r0, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8083188
|
|
strb r0, [r5, 0x1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082F64
|
|
|
|
thumb_func_start sub_8082F80
|
|
sub_8082F80:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8083170
|
|
strh r0, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8082BFC
|
|
strb r0, [r5, 0x2]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082F80
|
|
|
|
thumb_func_start sub_8082F9C
|
|
sub_8082F9C:
|
|
str r1, [r0]
|
|
movs r3, 0
|
|
str r3, [r0, 0x8]
|
|
adds r1, r2
|
|
str r1, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_8082F9C
|
|
|
|
thumb_func_start sub_8082FA8
|
|
sub_8082FA8:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r2, 0
|
|
beq _08082FCC
|
|
_08082FB2:
|
|
ldr r1, [r3]
|
|
ldrb r0, [r4]
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
str r0, [r3]
|
|
adds r4, 0x1
|
|
subs r2, 0x1
|
|
ldr r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
cmp r2, 0
|
|
bne _08082FB2
|
|
_08082FCC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082FA8
|
|
|
|
thumb_func_start sub_8082FD4
|
|
sub_8082FD4:
|
|
str r1, [r0]
|
|
movs r3, 0
|
|
str r3, [r0, 0x8]
|
|
adds r1, r2
|
|
str r1, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_8082FD4
|
|
|
|
thumb_func_start sub_8082FE0
|
|
sub_8082FE0:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r2, 0
|
|
beq _08083002
|
|
_08082FEA:
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
adds r1, 0x1
|
|
str r1, [r3]
|
|
adds r4, 0x1
|
|
subs r2, 0x1
|
|
ldr r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
cmp r2, 0
|
|
bne _08082FEA
|
|
_08083002:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8082FE0
|
|
|
|
thumb_func_start nullsub_98
|
|
nullsub_98:
|
|
bx lr
|
|
thumb_func_end nullsub_98
|
|
|
|
thumb_func_start sub_808300C
|
|
sub_808300C:
|
|
push {lr}
|
|
movs r2, 0x8
|
|
bl sub_8082FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808300C
|
|
|
|
thumb_func_start sub_8083018
|
|
sub_8083018:
|
|
push {lr}
|
|
sub sp, 0xC
|
|
mov r1, sp
|
|
movs r2, 0x8
|
|
bl sub_8082FE0
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1, 0x8]
|
|
add sp, 0xC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083018
|
|
|
|
thumb_func_start sub_8083030
|
|
sub_8083030:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strh r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083030
|
|
|
|
thumb_func_start sub_8083048
|
|
sub_8083048:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strh r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083048
|
|
|
|
thumb_func_start sub_8083060
|
|
sub_8083060:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r2, sp
|
|
strb r1, [r2]
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083060
|
|
|
|
thumb_func_start sub_8083078
|
|
sub_8083078:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083078
|
|
|
|
thumb_func_start sub_808308C
|
|
sub_808308C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808308C
|
|
|
|
thumb_func_start sub_80830A0
|
|
sub_80830A0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80830A0
|
|
|
|
thumb_func_start sub_80830B4
|
|
sub_80830B4:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
movs r2, 0
|
|
cmp r1, 0
|
|
beq _080830C4
|
|
movs r2, 0xFF
|
|
_080830C4:
|
|
mov r0, sp
|
|
strb r2, [r0]
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80830B4
|
|
|
|
thumb_func_start sub_80830D8
|
|
sub_80830D8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80830D8
|
|
|
|
thumb_func_start sub_80830F8
|
|
sub_80830F8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0xC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80830F8
|
|
|
|
thumb_func_start sub_808312C
|
|
sub_808312C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FA8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808312C
|
|
|
|
thumb_func_start sub_808314C
|
|
sub_808314C:
|
|
push {lr}
|
|
bl sub_8082FA8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808314C
|
|
|
|
thumb_func_start sub_8083158
|
|
sub_8083158:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8083158
|
|
|
|
thumb_func_start sub_8083170
|
|
sub_8083170:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8083170
|
|
|
|
thumb_func_start sub_8083188
|
|
sub_8083188:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8083188
|
|
|
|
thumb_func_start sub_80831A0
|
|
sub_80831A0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FE0
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80831A0
|
|
|
|
thumb_func_start sub_80831B4
|
|
sub_80831B4:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FE0
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80831B4
|
|
|
|
thumb_func_start sub_80831C8
|
|
sub_80831C8:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x4
|
|
bl sub_8082FE0
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80831C8
|
|
|
|
thumb_func_start sub_80831DC
|
|
sub_80831DC:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80831DC
|
|
|
|
thumb_func_start sub_80831F8
|
|
sub_80831F8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
strh r0, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80831F8
|
|
|
|
thumb_func_start sub_8083220
|
|
sub_8083220:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
str r0, [r4, 0x4]
|
|
str r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r4, 0xC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083220
|
|
|
|
thumb_func_start sub_8083260
|
|
sub_8083260:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
strh r0, [r4]
|
|
strh r0, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8082FE0
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083260
|
|
|
|
thumb_func_start sub_8083288
|
|
sub_8083288:
|
|
push {lr}
|
|
bl sub_8082FE0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8083288
|
|
|
|
.align 2, 0 |