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

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

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

4200 lines
64 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8042A84
sub_8042A84:
push {r4-r7,lr}
adds r4, r1, 0
adds r7, r2, 0
lsls r0, 16
asrs r5, r0, 16
movs r6, 0x80
lsls r6, 2
adds r0, r4, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08042AF8
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl sub_804151C
adds r0, r7, 0
movs r1, 0x42
bl sub_803E708
adds r5, r4, 0
adds r5, 0x20
_08042AB4:
ldr r1, [r4, 0x1C]
ldr r0, _08042B00
cmp r1, r0
bgt _08042AF0
movs r0, 0x42
bl sub_803E46C
ldr r1, [r4, 0x1C]
adds r1, r6
str r1, [r4, 0x1C]
movs r0, 0x80
lsls r0, 1
adds r6, r0
ldr r0, [r4, 0x10]
subs r0, r1
cmp r0, 0
bge _08042AD8
adds r0, 0xFF
_08042AD8:
asrs r1, r0, 8
ldr r0, _08042B04
ldr r0, [r0]
ldr r2, _08042B08
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r1, r0
movs r0, 0x8
negs r0, r0
cmp r1, r0
bge _08042AB4
_08042AF0:
movs r0, 0
strb r0, [r5]
bl sub_804178C
_08042AF8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042B00: .4byte 0x0000c7ff
_08042B04: .4byte gDungeonGlobalData
_08042B08: .4byte 0x000181f2
thumb_func_end sub_8042A84
thumb_func_start sub_8042B0C
sub_8042B0C:
push {lr}
adds r1, r0, 0
movs r0, 0x9F
lsls r0, 1
movs r2, 0x5
bl sub_8042A84
pop {r0}
bx r0
thumb_func_end sub_8042B0C
thumb_func_start sub_8042B20
sub_8042B20:
push {lr}
adds r1, r0, 0
movs r0, 0xDE
lsls r0, 1
movs r2, 0xE
bl sub_8042A84
pop {r0}
bx r0
thumb_func_end sub_8042B20
thumb_func_start sub_8042B34
sub_8042B34:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
movs r0, 0
mov r8, r0
bl xxx_call_GetLeaderEntity
mov r10, r0
ldr r7, _08042CB0
movs r0, 0xCC
movs r1, 0x7
bl MemoryAlloc
str r0, [r7]
str r5, [r0]
adds r4, 0x1
lsls r4, 2
str r4, [r0, 0x8]
ldr r4, _08042CB4
lsls r0, r5, 1
adds r0, r5
lsls r0, 3
adds r0, r4
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_800EE5C
bl sub_800EF64
movs r0, 0x46
bl sub_803E46C
ldr r0, [r7]
str r6, [r0, 0x4]
movs r5, 0
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042B8E
b _08042C9E
_08042B8E:
mov r9, sp
_08042B90:
mov r2, r8
lsls r6, r2, 3
ldr r0, [r7]
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, r6, r0
ldr r3, _08042CB4
adds r0, r3
movs r1, 0
ldrsh r0, [r0, r1]
str r0, [sp]
str r5, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
mov r2, r10
ldr r0, [r2, 0xC]
cmp r0, 0
bge _08042BBA
adds r0, 0xFF
_08042BBA:
asrs r0, 8
mov r3, r9
strh r0, [r3, 0xC]
mov r1, sp
mov r2, r10
ldr r0, [r2, 0x10]
cmp r0, 0
bge _08042BCC
adds r0, 0xFF
_08042BCC:
asrs r0, 8
strh r0, [r1, 0xE]
movs r0, 0x2
bl RandomCapped
ldr r1, [r7]
lsls r4, r5, 2
adds r3, r1, 0
adds r3, 0x4C
adds r3, r4
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r6, r1
ldr r2, _08042CB4
adds r2, 0x4
adds r1, r2
ldr r1, [r1]
lsls r1, 1
adds r1, r0
str r1, [r3]
movs r0, 0xF0
bl RandomCapped
ldr r1, [r7]
adds r1, r4
adds r0, 0x98
adds r1, 0x8C
strh r0, [r1]
lsls r0, r5, 1
adds r0, 0x8
bl RandomCapped
ldr r1, [r7]
adds r2, r1, r4
adds r3, r0, 0
adds r3, 0x18
adds r1, r5, 0
cmp r5, 0
bge _08042C20
adds r1, r5, 0x3
_08042C20:
asrs r1, 2
lsls r1, 2
subs r1, r5, r1
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
subs r0, r3, r0
adds r1, r2, 0
adds r1, 0x8E
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x8C
ldrh r0, [r0]
mov r3, r9
strh r0, [r3, 0x10]
ldrh r0, [r1]
strh r0, [r3, 0x12]
movs r0, 0x4
str r0, [sp, 0x14]
ldr r0, _08042CB8
str r0, [sp, 0x18]
add r1, sp, 0x1C
ldr r0, _08042CBC
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
mov r0, sp
bl sub_800E890
ldr r2, [r7]
adds r1, r2, 0
adds r1, 0xC
adds r1, r4
str r0, [r1]
movs r6, 0x1
add r8, r6
mov r0, r8
cmp r0, 0x2
bgt _08042C82
ldr r0, [r2]
lsls r1, r0, 1
adds r1, r0
add r1, r8
lsls r1, 3
ldr r2, _08042CB4
adds r1, r2
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _08042C86
_08042C82:
movs r6, 0
mov r8, r6
_08042C86:
ldr r0, [sp]
bl sub_800ECA4
ldr r0, [r0, 0x4]
bl sub_800F15C
adds r5, 0x1
ldr r0, [r7]
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042C9E
b _08042B90
_08042C9E:
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
_08042CB0: .4byte gUnknown_203B414
_08042CB4: .4byte gUnknown_80F6624
_08042CB8: .4byte 0x0000ffff
_08042CBC: .4byte gUnknown_80F683C
thumb_func_end sub_8042B34
thumb_func_start sub_8042CC0
sub_8042CC0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r7, 0
ldr r2, _08042D20
ldr r1, [r2]
ldr r0, [r1, 0x4]
cmp r0, 0
beq _08042CDC
movs r7, 0x1
subs r0, 0x1
str r0, [r1, 0x4]
_08042CDC:
movs r5, 0
ldr r0, [r2]
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042D56
adds r6, r2, 0
movs r0, 0x98
negs r0, r0
mov r9, r0
movs r4, 0
ldr r1, _08042D24
mov r8, r1
_08042CF4:
ldr r3, [r6]
adds r0, r3, r4
adds r2, r0, 0
adds r2, 0x8C
adds r0, r3, 0
adds r0, 0x4C
adds r0, r4
ldr r1, [r0]
ldrh r0, [r2]
subs r0, r1
strh r0, [r2]
lsls r0, 16
asrs r0, 16
cmp r0, r9
bgt _08042D2E
ldr r0, [r3, 0x4]
cmp r0, 0
ble _08042D28
movs r0, 0x98
strh r0, [r2]
b _08042D30
.align 2, 0
_08042D20: .4byte gUnknown_203B414
_08042D24: .4byte 0x0000ff68
_08042D28:
mov r0, r8
strh r0, [r2]
b _08042D30
_08042D2E:
movs r7, 0x1
_08042D30:
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
adds r1, r4, 0
adds r1, 0x8C
adds r2, r1
movs r1, 0
str r1, [sp]
movs r3, 0
bl sub_800E8AC
adds r4, 0x4
adds r5, 0x1
ldr r0, [r6]
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042CF4
_08042D56:
ldr r0, _08042D74
ldr r0, [r0]
ldr r1, _08042D78
adds r0, r1
bl sub_800E90C
adds r0, r7, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08042D74: .4byte gDungeonGlobalData
_08042D78: .4byte 0x000181f0
thumb_func_end sub_8042CC0
thumb_func_start sub_8042D7C
sub_8042D7C:
push {r4-r6,lr}
ldr r1, _08042DD0
ldr r0, [r1]
cmp r0, 0
beq _08042DCA
movs r5, 0
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042DBA
adds r6, r1, 0
_08042D90:
ldr r0, [r6]
lsls r4, r5, 2
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
beq _08042DB0
ldr r0, [r6]
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
bl sub_800DC14
_08042DB0:
adds r5, 0x1
ldr r0, [r6]
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042D90
_08042DBA:
bl sub_800DBBC
ldr r4, _08042DD0
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08042DCA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08042DD0: .4byte gUnknown_203B414
thumb_func_end sub_8042D7C
thumb_func_start sub_8042DD4
sub_8042DD4:
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r2, 0
ldr r0, _08042E04
mov r12, r0
ldr r3, _08042E08
_08042DE4:
mov r1, r12
ldr r0, [r1]
adds r4, r0, r3
ldr r1, [r4]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08042E0C
str r5, [r4]
str r6, [r4, 0xC]
str r7, [r4, 0x4]
adds r0, r5, 0
bl sub_800E6D8
str r0, [r4, 0x8]
b _08042E14
.align 2, 0
_08042E04: .4byte gDungeonGlobalData
_08042E08: .4byte 0x000005c4
_08042E0C:
adds r3, 0x10
adds r2, 0x1
cmp r2, 0x2
ble _08042DE4
_08042E14:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8042DD4
thumb_func_start sub_8042E1C
sub_8042E1C:
push {r4-r6,lr}
movs r5, 0
ldr r6, _08042E44
ldr r4, _08042E48
_08042E24:
ldr r0, [r6]
adds r0, r4
ldr r1, [r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08042E4C
adds r0, r1, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
beq _08042E4C
movs r0, 0x1
b _08042E56
.align 2, 0
_08042E44: .4byte gDungeonGlobalData
_08042E48: .4byte 0x000005c4
_08042E4C:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x2
ble _08042E24
movs r0, 0
_08042E56:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8042E1C
thumb_func_start sub_8042E5C
sub_8042E5C:
push {r4-r7,lr}
ldr r7, _08042E90
ldr r6, _08042E94
movs r5, 0x2
_08042E64:
ldr r0, [r7]
adds r4, r0, r6
ldr r0, [r4]
cmp r0, 0
blt _08042E82
bl sub_800E9A8
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08042E82
movs r0, 0x1
negs r0, r0
str r0, [r4]
str r1, [r4, 0xC]
_08042E82:
adds r6, 0x10
subs r5, 0x1
cmp r5, 0
bge _08042E64
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042E90: .4byte gDungeonGlobalData
_08042E94: .4byte 0x000005c4
thumb_func_end sub_8042E5C
thumb_func_start sub_8042E98
sub_8042E98:
push {r4,r5,lr}
ldr r5, _08042EC0
movs r4, 0x1
negs r4, r4
movs r3, 0
ldr r2, _08042EC4
movs r1, 0x2
_08042EA6:
ldr r0, [r5]
adds r0, r2
str r4, [r0]
str r3, [r0, 0x4]
str r3, [r0, 0xC]
adds r2, 0x10
subs r1, 0x1
cmp r1, 0
bge _08042EA6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08042EC0: .4byte gDungeonGlobalData
_08042EC4: .4byte 0x000005c4
thumb_func_end sub_8042E98
thumb_func_start sub_8042EC8
sub_8042EC8:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r6, r0, 0
mov r8, r1
movs r7, 0
_08042ED6:
ldr r1, _08042F5C
lsls r0, r7, 4
ldr r2, _08042F60
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldr r0, [r4]
cmp r0, 0
blt _08042F4A
ldr r0, [r4, 0xC]
cmp r0, r6
bne _08042F4A
ldr r0, [r6, 0xC]
cmp r0, 0
bge _08042EF6
adds r0, 0xFF
_08042EF6:
lsls r0, 8
lsrs r0, 16
ldr r1, _08042F64
ldr r2, [sp, 0x8]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x8]
ldr r1, [r6, 0x10]
cmp r1, 0
bge _08042F0C
adds r1, 0xFF
_08042F0C:
lsls r1, 8
lsrs r1, 16
lsls r1, 16
ldr r0, _08042F68
ands r2, r0
orrs r2, r1
str r2, [sp, 0x8]
movs r0, 0
str r0, [sp, 0x4]
ldr r5, [r6, 0x70]
ldr r2, [r4, 0x8]
subs r0, 0x1
cmp r2, r0
beq _08042F36
lsls r2, 24
lsrs r2, 24
add r0, sp, 0x4
adds r1, r6, 0
adds r1, 0x28
bl sub_800569C
_08042F36:
ldr r0, [r4]
adds r1, r5, 0
adds r1, 0x46
ldrb r1, [r1]
str r1, [sp]
add r1, sp, 0x8
add r2, sp, 0x4
mov r3, r8
bl sub_800EB24
_08042F4A:
adds r7, 0x1
cmp r7, 0x2
ble _08042ED6
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042F5C: .4byte gDungeonGlobalData
_08042F60: .4byte 0x000005c4
_08042F64: .4byte 0xffff0000
_08042F68: .4byte 0x0000ffff
thumb_func_end sub_8042EC8
thumb_func_start xxx_dungeon_8042F6C
xxx_dungeon_8042F6C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r8, r0
ldr r1, _0804310C
movs r0, 0
strb r0, [r1]
mov r0, r8
ldrb r6, [r0, 0x8]
ldrb r1, [r0, 0x11]
mov r9, r1
ldrb r2, [r0, 0x10]
mov r10, r2
ldr r0, _08043110
mov r3, r8
ldr r1, [r3, 0x74]
str r1, [r0]
ldr r2, _08043114
ldr r0, [r3, 0x78]
str r0, [r2]
cmp r6, 0
bne _08042FA0
strb r6, [r1]
_08042FA0:
ldr r2, [r2]
movs r1, 0
ldr r4, _08043118
ldr r5, _0804311C
mov r0, sp
adds r0, 0x4
str r0, [sp, 0x8]
mov r3, r8
adds r3, 0x7C
str r3, [sp, 0xC]
movs r3, 0
_08042FB6:
adds r0, r2, r1
strb r3, [r0]
adds r1, 0x1
cmp r1, r4
bls _08042FB6
movs r7, 0
movs r0, 0x64
strh r0, [r5]
cmp r6, 0
bne _0804300C
ldr r4, _08043114
ldr r0, [r4]
mov r5, r8
ldrb r1, [r5, 0xF]
movs r2, 0xCF
lsls r2, 3
adds r0, r2
strb r1, [r0]
ldr r2, [r4]
ldr r3, _08043120
adds r2, r3
ldr r0, [r5, 0x14]
ldr r1, [r5, 0x18]
str r0, [r2]
str r1, [r2, 0x4]
ldrb r0, [r5, 0x4]
bl GetUnkC
ldr r1, [r4]
ldr r5, _08043124
adds r2, r1, r5
strh r0, [r2]
ldr r0, _08043128
adds r1, r0
strb r7, [r1]
mov r1, r8
ldrb r0, [r1, 0x4]
bl GetUnk3
ldr r1, [r4]
ldr r2, _0804312C
adds r1, r2
strb r0, [r1]
_0804300C:
ldr r4, _08043114
ldr r0, [r4]
movs r3, 0xD3
lsls r3, 3
adds r0, r3
strb r7, [r0]
ldr r0, [r4]
ldr r5, _08043130
adds r0, r5
strb r7, [r0]
ldr r0, [r4]
mov r2, r8
ldrb r1, [r2, 0x9]
subs r3, 0x3C
adds r0, r3
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r2, 0xC]
subs r5, 0x3F
adds r0, r5
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r2, 0xA]
movs r2, 0xCB
lsls r2, 3
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
mov r3, r8
ldrb r1, [r3, 0xB]
subs r5, 0x1
adds r0, r5
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r3, 0xD]
adds r2, 0x3
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r3, 0xE]
ldr r3, _08043134
adds r0, r3
strb r1, [r0]
bl sub_8083F34
bl sub_803D4AC
bl sub_804513C
bl sub_8043CD8
bl sub_80495E4
bl sub_803E250
bl sub_8040130
bl sub_8040124
movs r0, 0x1
bl sub_803F27C
ldr r1, _08043138
ldr r5, _0804313C
adds r0, r5, 0
strh r0, [r1]
movs r0, 0x1
movs r1, 0x14
bl sub_80095CC
movs r0, 0
bl sub_800DAC0
movs r0, 0x1
bl xxx_update_some_bg_tiles
bl sub_803DF60
bl sub_803E02C
bl sub_8042E98
ldr r0, _08043140
strb r7, [r0]
cmp r6, 0
beq _080430C8
ldr r0, _08043110
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8081BF4
bl sub_8049840
_080430C8:
mov r0, r9
cmp r0, 0
beq _080430D2
bl sub_8043D60
_080430D2:
cmp r6, 0
beq _080430D8
b _080431DC
_080430D8:
ldr r0, [r4]
ldr r1, _08043144
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r2, _08043148
adds r0, r2
strb r1, [r0]
ldr r2, [r4]
movs r3, 0xCF
lsls r3, 3
adds r0, r2, r3
ldrb r3, [r0]
cmp r3, 0x1
bne _08043154
mov r5, r8
ldrb r1, [r5, 0x14]
ldr r5, _0804314C
adds r0, r2, r5
strb r1, [r0]
ldr r0, [r4]
ldr r1, _08043150
adds r0, r1
strb r3, [r0]
b _0804315E
.align 2, 0
_0804310C: .4byte gUnknown_203B40C
_08043110: .4byte gUnknown_203B41C
_08043114: .4byte gDungeonGlobalData
_08043118: .4byte 0x0001cedb
_0804311C: .4byte gUnknown_203B410
_08043120: .4byte 0x0000064c
_08043124: .4byte 0x00000666
_08043128: .4byte 0x0000067a
_0804312C: .4byte 0x0000067b
_08043130: .4byte 0x00000699
_08043134: .4byte 0x0000065d
_08043138: .4byte gUnknown_2026E4E
_0804313C: .4byte 0x00000808
_08043140: .4byte gUnknown_202F32C
_08043144: .4byte 0x0001820b
_08043148: .4byte 0x0001820c
_0804314C: .4byte 0x00000644
_08043150: .4byte 0x00000645
_08043154:
ldr r3, _0804318C
adds r1, r2, r3
mov r5, r8
ldr r0, [r5, 0x4]
str r0, [r1]
_0804315E:
ldr r4, _08043190
ldr r0, [r4]
ldr r1, _08043194
adds r0, r1
movs r1, 0
strb r1, [r0]
bl sub_8044124
cmp r6, 0
bne _080431DC
ldr r1, [r4]
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _0804319C
ldr r3, _08043198
adds r1, r3
mov r5, r8
ldr r0, [r5, 0x18]
str r0, [r1]
b _080431AC
.align 2, 0
_0804318C: .4byte 0x00000644
_08043190: .4byte gDungeonGlobalData
_08043194: .4byte 0x00000674
_08043198: .4byte 0x0000067c
_0804319C:
bl Random
ldr r2, [r4]
ldr r1, _08043208
adds r2, r1
ldr r1, _0804320C
ands r1, r0
str r1, [r2]
_080431AC:
ldr r4, _08043210
ldr r0, [r4]
ldr r2, _08043208
adds r0, r2
ldr r0, [r0]
bl sub_808408C
cmp r6, 0
bne _080431DC
bl sub_80980A4
lsls r0, 24
cmp r0, 0
bne _080431D8
ldr r0, [r4]
ldr r3, _08043214
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
bne _080431D8
bl sub_8043FD0
_080431D8:
bl sub_806890C
_080431DC:
mov r5, r9
cmp r5, 0
beq _08043230
ldr r1, _08043218
ldr r0, _08043210
ldr r0, [r0]
ldr r2, _0804321C
adds r0, r2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
str r0, [r1]
cmp r0, 0
beq _08043224
ldr r0, _08043220
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08043230
.align 2, 0
_08043208: .4byte 0x0000067c
_0804320C: .4byte 0x00ffffff
_08043210: .4byte gDungeonGlobalData
_08043214: .4byte 0x00000644
_08043218: .4byte gUnknown_202DE30
_0804321C: .4byte 0x0000067b
_08043220: .4byte gUnknown_80FEC48
_08043224:
ldr r0, _080432B4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043230:
mov r3, r10
cmp r3, 0
beq _0804326A
mov r1, r8
adds r1, 0x44
movs r0, 0
strb r0, [r1]
ldr r0, _080432B8
ldr r0, [r0]
ldr r5, _080432BC
adds r0, r5
ldrb r0, [r0]
bl GetLevelCondition
lsls r0, 24
mov r4, r8
adds r4, 0x1C
cmp r0, 0
beq _0804325C
adds r0, r4, 0
bl sub_808D0D8
_0804325C:
adds r0, r4, 0
bl sub_8068A84
cmp r6, 0
beq _0804326A
bl sub_806B404
_0804326A:
bl sub_8068614
cmp r6, 0
bne _080432F4
ldr r0, _080432B8
ldr r0, [r0]
movs r1, 0xCF
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080432F4
mov r0, sp
bl sub_8099394
lsls r0, 24
cmp r0, 0
beq _080432F4
mov r0, sp
ldrb r0, [r0]
bl sub_8095228
adds r2, r0, 0
adds r2, 0x2C
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0
beq _080432E8
ldr r1, _080432C0
str r0, [r1]
ldr r0, _080432C4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _080432F4
.align 2, 0
_080432B4: .4byte gUnknown_80FEC7C
_080432B8: .4byte gDungeonGlobalData
_080432BC: .4byte 0x00000644
_080432C0: .4byte gUnknown_202DE30
_080432C4: .4byte gUnknown_81002B8
_080432C8:
ldr r4, _080432CC
b _080432D2
.align 2, 0
_080432CC: .4byte 0x00000226
_080432D0:
ldr r4, _080432E4
_080432D2:
bl GetLeaderEntity
adds r2, r0, 0
adds r0, r4, 0
movs r1, 0
bl sub_8083AB0
bl _08043AF4
.align 2, 0
_080432E4: .4byte 0x00000227
_080432E8:
ldr r0, _080434B8
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_080432F4:
movs r2, 0
mov r10, r2
movs r3, 0
mov r9, r3
_080432FC:
bl sub_8098080
bl nullsub_16
bl sub_80521D0
bl sub_80531A8
bl InitDungeonPokemonSprites
cmp r6, 0
bne _08043318
bl sub_804513C
_08043318:
ldr r0, _080434BC
movs r5, 0
str r5, [r0]
ldr r4, _080434C0
ldr r0, [r4]
strb r5, [r0]
cmp r6, 0
bne _08043346
bl sub_80840A4
ldr r1, [r4]
movs r3, 0xD0
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r0, 0xCD
lsls r0, 3
adds r1, r0
movs r0, 0xA
strh r0, [r1]
ldr r0, [r2]
bl sub_80840D8
_08043346:
ldr r0, [r4]
ldr r1, _080434C4
adds r0, r1
strb r5, [r0]
cmp r6, 0
bne _08043390
ldr r0, [r4]
ldr r2, _080434C8
adds r0, r2
strb r6, [r0]
movs r0, 0x4
bl DungeonRandomCapped
ldr r1, [r4]
ldr r3, _080434CC
adds r1, r3
strb r6, [r1]
ldr r1, [r4]
ldr r2, _080434D0
adds r1, r2
strb r6, [r1]
ldr r2, [r4]
ldr r1, _080434D4
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r3, 0x3
adds r0, r2, r3
strh r1, [r0]
ldr r0, _080434D8
adds r2, r0
mov r1, r10
strb r1, [r2]
ldr r0, [r4]
ldr r2, _080434DC
adds r0, r2
strb r1, [r0]
_08043390:
bl sub_803D4D0
ldr r0, [r4]
strb r5, [r0, 0x1]
ldr r0, [r4]
strb r5, [r0, 0x10]
ldr r0, [r4]
strb r5, [r0, 0x2]
ldr r0, [r4]
strb r5, [r0, 0x4]
ldr r0, [r4]
strb r5, [r0, 0x11]
ldr r0, [r4]
strb r5, [r0, 0x8]
ldr r0, [r4]
strb r5, [r0, 0x3]
ldr r0, [r4]
strb r5, [r0, 0x6]
ldr r0, [r4]
strb r5, [r0, 0xF]
ldr r2, [r4]
movs r3, 0xB8
lsls r3, 3
adds r1, r2, r3
movs r0, 0x1
negs r0, r0
str r0, [r1]
strb r5, [r2, 0x7]
ldr r0, [r4]
strb r5, [r0, 0x9]
ldr r0, [r4]
strb r5, [r0, 0xA]
ldr r0, [r4]
movs r1, 0x1
strb r1, [r0, 0xB]
ldr r0, [r4]
strb r1, [r0, 0xD]
ldr r0, [r4]
strb r5, [r0, 0xE]
ldr r0, [r4]
ldr r2, _080434E0
adds r0, r2
strb r5, [r0]
cmp r6, 0
bne _080434A6
ldr r0, [r4]
adds r3, 0xB9
adds r0, r3
strb r6, [r0]
ldr r1, [r4]
ldr r5, _080434E4
adds r0, r1, r5
str r6, [r0]
movs r2, 0xD2
lsls r2, 3
adds r0, r1, r2
str r6, [r0]
adds r3, 0x1B
adds r0, r1, r3
str r6, [r0]
subs r5, 0x2C
adds r0, r1, r5
strh r6, [r0]
subs r2, 0x2E
adds r0, r1, r2
strh r6, [r0]
subs r3, 0x26
adds r1, r3
mov r5, r10
strb r5, [r1]
ldr r0, [r4]
ldr r1, _080434E8
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
adds r2, 0xE
adds r0, r2
strb r5, [r0]
ldr r0, [r4]
adds r3, 0x8
adds r0, r3
strb r5, [r0]
ldr r0, [r4]
ldr r5, _080434EC
adds r0, r5
mov r1, r10
strb r1, [r0]
ldr r0, [r4]
adds r2, 0x2
adds r0, r2
strb r1, [r0]
ldr r1, [r4]
subs r3, 0xC
adds r2, r1, r3
ldr r0, _080434F0
strh r0, [r2]
adds r5, 0x17
adds r0, r1, r5
strh r6, [r0]
ldr r0, _080434F4
adds r1, r0
mov r2, r10
strb r2, [r1]
ldr r1, [r4]
adds r3, 0x1A
adds r0, r1, r3
movs r2, 0x63
strh r2, [r0]
subs r5, 0x2
adds r0, r1, r5
strh r2, [r0]
ldr r0, _080434F8
adds r1, r0
mov r2, r10
strb r2, [r1]
ldr r1, [r4]
ldr r3, _080434FC
adds r0, r1, r3
ldrb r2, [r0]
ldr r5, _08043500
adds r0, r1, r5
strh r2, [r0]
ldr r2, _08043504
adds r0, r1, r2
ldrb r2, [r0]
ldr r3, _08043508
adds r0, r1, r3
strh r2, [r0]
ldr r5, _0804350C
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _08043510
adds r1, r2
strh r0, [r1]
movs r0, 0
bl sub_807E5E4
bl sub_80842F0
_080434A6:
bl sub_803D8F0
bl sub_8068658
cmp r6, 0
bne _08043514
bl sub_80687AC
b _0804351C
.align 2, 0
_080434B8: .4byte gPtrFinalChanceMessage
_080434BC: .4byte gLeaderPokemon
_080434C0: .4byte gDungeonGlobalData
_080434C4: .4byte 0x000037ec
_080434C8: .4byte 0x000037fc
_080434CC: .4byte 0x000037fd
_080434D0: .4byte 0x000037fe
_080434D4: .4byte gUnknown_80F6850
_080434D8: .4byte 0x000037ff
_080434DC: .4byte 0x00000675
_080434E0: .4byte 0x0001c05e
_080434E4: .4byte 0x0000068c
_080434E8: .4byte 0x0000066f
_080434EC: .4byte 0x00000671
_080434F0: .4byte 0x000003e7
_080434F4: .4byte 0x0000068a
_080434F8: .4byte 0x0000e264
_080434FC: .4byte 0x0001c576
_08043500: .4byte 0x00003a0e
_08043504: .4byte 0x0001c577
_08043508: .4byte 0x00003a10
_0804350C: .4byte 0x0001c586
_08043510: .4byte 0x00003a14
_08043514:
bl sub_8068768
bl sub_8082B40
_0804351C:
bl sub_806C42C
bl sub_806AD3C
cmp r6, 0
bne _08043544
ldr r1, _080435B4
ldr r3, _080435B8
ldr r0, [r3]
ldr r5, _080435BC
adds r0, r5
movs r2, 0
ldrsh r0, [r0, r2]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
bl sub_8083E88
bl sub_80847D4
_08043544:
bl sub_8049840
bl sub_803E178
ldr r0, _080435C0
mov r3, r9
str r3, [r0]
bl sub_8040124
movs r0, 0x4
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
adds r0, r6, 0
bl sub_803F27C
bl ShowDungeonNameBanner
cmp r6, 0
bne _08043594
bl sub_804AFAC
ldr r5, _080435B8
ldr r0, [r5]
ldr r1, _080435C4
adds r0, r1
ldrb r0, [r0]
bl GetUnkC
ldr r2, [r5]
ldr r3, _080435C8
adds r1, r2, r3
strh r0, [r1]
ldr r5, _080435CC
adds r2, r5
mov r0, r10
strb r0, [r2]
_08043594:
bl sub_804AAD4
bl sub_8049B8C
bl sub_804966C
cmp r6, 0
bne _080435D0
bl sub_806B168
bl sub_806C3C0
bl sub_806B6C4
b _080435D4
.align 2, 0
_080435B4: .4byte gDungeonMusic
_080435B8: .4byte gDungeonGlobalData
_080435BC: .4byte 0x00003a10
_080435C0: .4byte gUnknown_202EDC8
_080435C4: .4byte 0x00000644
_080435C8: .4byte 0x00000666
_080435CC: .4byte 0x0000067a
_080435D0:
bl sub_806B678
_080435D4:
ldr r4, _0804362C
ldr r1, [r4]
ldr r2, _08043630
adds r0, r1, r2
mov r3, r9
str r3, [r0]
ldr r5, _08043634
adds r0, r1, r5
str r3, [r0]
adds r2, 0x4
adds r0, r1, r2
str r3, [r0]
ldr r3, _08043638
adds r0, r1, r3
mov r5, r9
str r5, [r0]
adds r2, 0x4
adds r0, r1, r2
str r5, [r0]
adds r3, 0x4
adds r1, r3
str r5, [r1]
cmp r6, 0
bne _08043644
bl sub_807FA18
bl sub_8045CB0
ldr r1, [r4]
ldr r5, _0804363C
adds r2, r1, r5
ldr r3, _08043640
adds r0, r1, r3
ldr r0, [r0]
str r0, [r2]
subs r5, 0x4
adds r1, r5
str r6, [r1]
bl sub_8051E3C
bl sub_804AAAC
b _08043648
.align 2, 0
_0804362C: .4byte gDungeonGlobalData
_08043630: .4byte 0x00017b2c
_08043634: .4byte 0x00017b38
_08043638: .4byte 0x00017b3c
_0804363C: .4byte 0x00000694
_08043640: .4byte 0x0000068c
_08043644:
bl sub_806A338
_08043648:
bl sub_8068F80
bl sub_8049884
bl sub_8049ED4
cmp r6, 0
bne _08043664
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_806A914
b _0804366C
_08043664:
bl sub_806CF60
bl sub_806A974
_0804366C:
movs r0, 0x1
bl sub_8041888
cmp r6, 0
bne _0804367E
bl sub_80848F0
bl sub_8097890
_0804367E:
ldr r0, _080436A0
movs r1, 0x1
strb r1, [r0]
cmp r6, 0
beq _08043690
bl sub_807E88C
bl sub_806AB2C
_08043690:
ldr r2, _080436A4
ldr r0, [r2]
ldrb r0, [r0, 0x7]
cmp r0, 0
bne _080436A8
bl sub_803E748
b _080436AC
.align 2, 0
_080436A0: .4byte gUnknown_203B40C
_080436A4: .4byte gDungeonGlobalData
_080436A8:
bl sub_803E7C8
_080436AC:
movs r0, 0
bl sub_8040094
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
bl sub_8040150
bl sub_8040A84
ldr r4, _08043730
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
mov r3, r9
str r3, [r0]
ldr r5, _08043734
adds r1, r5
strb r3, [r1]
ldr r0, [r4]
ldr r1, _08043738
adds r0, r1
mov r2, r9
strb r2, [r0]
ldr r1, [r4]
movs r5, 0
movs r0, 0x63
strh r0, [r1, 0x12]
movs r3, 0x1
strb r3, [r1]
cmp r6, 0
bne _08043706
bl sub_8052DD0
ldr r1, [r4]
ldrb r0, [r1, 0x9]
cmp r0, 0
beq _08043706
strb r5, [r1, 0x9]
bl sub_8083D68
bl sub_8052F80
_08043706:
ldr r0, _0804373C
mov r5, r9
str r5, [r0]
ldr r4, _08043730
ldr r0, [r4]
strb r5, [r0, 0x5]
cmp r6, 0
bne _08043778
bl DisplayPreFightDialogue
ldr r1, [r4]
ldrb r0, [r1, 0x4]
cmp r0, 0
bne _08043728
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _08043740
_08043728:
movs r0, 0x1
strb r0, [r1, 0x5]
b _0804374C
.align 2, 0
_08043730: .4byte gDungeonGlobalData
_08043734: .4byte 0x0000066c
_08043738: .4byte 0x0000066d
_0804373C: .4byte gLeaderPokemon
_08043740:
bl GetLeaderEntity
bl sub_803F4A0
bl sub_8040A84
_0804374C:
cmp r6, 0
bne _08043778
ldr r1, _08043774
ldr r0, [r1]
ldrb r0, [r0, 0x5]
cmp r0, 0
bne _0804377C
bl sub_807E5AC
movs r0, 0
bl GetWeather
lsls r0, 24
cmp r0, 0
beq _0804377C
movs r0, 0x1
bl sub_807E7FC
b _0804377C
.align 2, 0
_08043774: .4byte gDungeonGlobalData
_08043778:
bl TriggerWeatherAbilities
_0804377C:
cmp r6, 0
beq _08043784
movs r6, 0
b _080437A2
_08043784:
bl sub_80427AC
bl GetLeaderEntity
ldr r2, _08043960
ldr r1, [r2]
ldr r3, _08043964
adds r1, r3
ldrb r1, [r1]
bl sub_8075900
movs r0, 0x1
movs r1, 0
bl sub_807EAA0
_080437A2:
bl nullsub_16
ldr r2, _08043960
ldr r0, [r2]
ldrb r1, [r0, 0x5]
cmp r1, 0
bne _080437DA
movs r4, 0x1
ldr r5, _08043968
adds r0, r5
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0804396C
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
ldr r5, _08043970
adds r0, r5
strb r4, [r0]
_080437C8:
adds r0, r4, 0
bl RunDungeon
movs r4, 0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _080437C8
_080437DA:
bl GetLeaderEntity
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080437F0
adds r0, r4, 0
bl sub_8071DA4
_080437F0:
ldr r5, _08043960
ldr r0, [r5]
ldr r4, _08043968
adds r0, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _08043822
movs r0, 0x1
bl sub_8043ED0
lsls r0, 24
cmp r0, 0
beq _08043812
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
strb r1, [r0]
_08043812:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _08043822
ldrb r0, [r1, 0x11]
cmp r0, 0
beq _08043830
_08043822:
ldr r2, _08043960
ldr r0, [r2]
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _08043830
bl sub_806AA70
_08043830:
bl GetLeaderEntity
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804384A
movs r0, 0x4F
bl sub_80526D0
movs r0, 0x4F
bl sub_8052740
_0804384A:
bl sub_8040124
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
ldr r3, _08043960
ldr r0, [r3]
ldr r5, _08043970
adds r0, r5
mov r1, r9
strb r1, [r0]
ldr r0, [r3]
ldr r2, _0804396C
adds r0, r2
movs r3, 0x1
strb r3, [r0]
ldr r5, _08043960
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0
bne _08043896
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _08043896
ldr r2, _08043974
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0x72
bne _08043896
ldr r3, _08043978
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0x1B
bne _08043896
movs r0, 0x3C
bl sub_8083ED8
_08043896:
movs r0, 0x4
movs r1, 0x4F
bl sub_803E708
ldr r5, _08043960
ldr r0, [r5]
ldrb r0, [r0, 0x7]
cmp r0, 0
bne _080438AC
bl sub_803E830
_080438AC:
movs r0, 0
bl SetBGOBJEnableFlags
ldr r1, _0804397C
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0x60
orrs r0, r1
ldr r1, _08043980
ands r0, r1
movs r1, 0x80
lsls r1, 8
orrs r0, r1
ldr r1, _08043984
ands r0, r1
movs r1, 0xF8
lsls r1, 16
orrs r0, r1
str r0, [sp, 0x4]
ldr r0, _08043988
ldr r2, [r0]
movs r0, 0xFD
ldr r1, [sp, 0x8]
movs r3, 0
bl SetBGPaletteBufferColorRGB
movs r0, 0x1
bl sub_8040094
ldr r0, [r5]
ldr r1, _0804396C
adds r0, r1
movs r7, 0
movs r2, 0x1
strb r2, [r0]
ldr r1, [r5]
ldrb r0, [r1, 0x10]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08043926
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08043926
bl GetLeaderEntity
adds r4, r0, 0
ldr r0, _0804398C
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
ldr r0, [r5]
strb r7, [r0, 0x6]
ldr r0, _08043990
adds r1, r4, 0
adds r2, r4, 0
bl sub_8083AB0
_08043926:
bl sub_80688CC
bl sub_8049820
ldr r0, _08043994
ldr r0, [r0]
bl CloseFile
bl FreeDungeonPokemonSprites
ldr r0, _08043998
mov r3, r10
strb r3, [r0]
ldr r4, _08043960
ldr r1, [r4]
ldrb r0, [r1, 0x3]
cmp r0, 0
beq _0804394C
b _08043BFC
_0804394C:
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _080439A0
ldr r0, _0804399C
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8080B30
b _080439A6
.align 2, 0
_08043960: .4byte gDungeonGlobalData
_08043964: .4byte 0x00003a08
_08043968: .4byte 0x00000654
_0804396C: .4byte 0x00018218
_08043970: .4byte 0x00018219
_08043974: .4byte 0x0001ceda
_08043978: .4byte 0x00000644
_0804397C: .4byte 0xffffff00
_08043980: .4byte 0xffff00ff
_08043984: .4byte 0xff00ffff
_08043988: .4byte gUnknown_202EDC8
_0804398C: .4byte gPtrClientFaintedMessage
_08043990: .4byte 0x00000222
_08043994: .4byte gDungeonNameBannerPalette
_08043998: .4byte gUnknown_203B40C
_0804399C: .4byte gUnknown_203B41C
_080439A0:
movs r0, 0x2
bl sub_8046F84
_080439A6:
bl sub_806C1D8
ldr r4, _080439CC
ldr r1, [r4]
ldr r5, _080439D0
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, 0x1
bne _080439D4
adds r5, 0x1A
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, 0
bne _080439C4
b _08043AF4
_080439C4:
bl sub_804700C
b _08043AF4
.align 2, 0
_080439CC: .4byte gDungeonGlobalData
_080439D0: .4byte 0x00000654
_080439D4:
ldrb r0, [r1, 0x11]
cmp r0, 0x1
bne _080439DC
b _080432C8
_080439DC:
cmp r0, 0x2
bne _08043A00
bl GetLeaderEntity
adds r2, r0, 0
ldr r0, _080439F8
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r1, _080439FC
adds r0, r1
b _08043A62
.align 2, 0
_080439F8: .4byte 0x00000229
_080439FC: .4byte 0x0000066e
_08043A00:
cmp r0, 0x3
bne _08043A24
bl GetLeaderEntity
adds r2, r0, 0
ldr r0, _08043A1C
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r2, _08043A20
adds r0, r2
b _08043A62
.align 2, 0
_08043A1C: .4byte 0x0000022a
_08043A20: .4byte 0x0000066e
_08043A24:
cmp r0, 0x4
bne _08043A2A
b _080432D0
_08043A2A:
movs r3, 0xCF
lsls r3, 3
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0x1
bne _08043A74
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08043A74
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x2
bne _08043A74
bl GetLeaderEntity
adds r2, r0, 0
movs r0, 0x8A
lsls r0, 2
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r5, _08043A70
adds r0, r5
_08043A62:
ldrb r0, [r0]
cmp r0, 0
beq _08043AF4
bl sub_8097810
b _08043AF4
.align 2, 0
_08043A70: .4byte 0x0000066e
_08043A74:
ldr r4, _08043ACC
ldr r0, [r4]
ldr r1, _08043AD0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08043A86
bl sub_8097810
_08043A86:
ldr r1, [r4]
ldr r3, _08043AD4
adds r2, r1, r3
ldrb r0, [r2]
adds r0, 0x1
ldr r5, _08043AD8
adds r1, r5
ldrb r1, [r1]
cmp r0, r1
bge _08043AE4
strb r0, [r2]
ldr r0, [r4]
ldr r1, _08043ADC
adds r0, r1
ldrh r1, [r0]
ldr r0, _08043AE0
cmp r1, r0
beq _08043AAC
b _080432FC
_08043AAC:
movs r0, 0x1F
bl sub_8098100
lsls r0, 24
cmp r0, 0
beq _08043ABA
b _080432FC
_08043ABA:
movs r0, 0x1F
bl sub_8097FA8
bl sub_8086130
bl sub_8097FF8
b _080432FC
.align 2, 0
_08043ACC: .4byte gDungeonGlobalData
_08043AD0: .4byte 0x0000066e
_08043AD4: .4byte 0x00000645
_08043AD8: .4byte 0x0001cec8
_08043ADC: .4byte 0x00000644
_08043AE0: .4byte 0x0000060b
_08043AE4:
ldr r4, _08043B80
bl GetLeaderEntity
adds r2, r0, 0
adds r0, r4, 0
movs r1, 0
bl sub_8083AB0
_08043AF4:
ldr r1, _08043B84
movs r0, 0
strb r0, [r1]
mov r4, r8
adds r4, 0x7E
movs r0, 0
strb r0, [r4]
bl sub_8097FF8
movs r0, 0x1
movs r1, 0x14
bl sub_80095CC
bl sub_803E13C
movs r0, 0x4
bl sub_800CDA8
ldr r0, _08043B88
ldr r1, [r0]
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _08043B38
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
bl sub_8083C88
lsls r0, 24
cmp r0, 0
beq _08043B38
bl sub_80841EC
_08043B38:
bl sub_8083C24
lsls r0, 24
cmp r0, 0
beq _08043BA4
ldr r5, _08043B88
ldr r0, [r5]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _08043B98
ldr r0, _08043B8C
ldr r3, [sp, 0xC]
strh r0, [r3]
mov r4, r8
adds r4, 0x84
adds r0, r4, 0
movs r1, 0
movs r2, 0x8
bl memset
mov r3, r8
adds r3, 0x80
ldr r1, [r5]
ldr r5, _08043B90
adds r2, r1, r5
ldr r0, [r2]
str r0, [r3]
ldr r0, [r2]
str r0, [r4]
mov r2, r8
adds r2, 0x88
ldr r0, _08043B94
adds r1, r0
ldr r0, [r1]
str r0, [r2]
b _08043C32
.align 2, 0
_08043B80: .4byte 0x00000227
_08043B84: .4byte gUnknown_203B40C
_08043B88: .4byte gDungeonGlobalData
_08043B8C: .4byte 0x0000fffe
_08043B90: .4byte 0x00000644
_08043B94: .4byte 0x0000067c
_08043B98:
ldr r0, _08043BA0
ldr r1, [sp, 0xC]
strh r0, [r1]
b _08043C32
.align 2, 0
_08043BA0: .4byte 0x0000ffff
_08043BA4:
bl sub_8083C50
lsls r0, 24
cmp r0, 0
beq _08043C28
ldr r0, _08043BC8
ldr r0, [r0]
movs r2, 0xCF
lsls r2, 3
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _08043BCC
movs r0, 0x4
ldr r3, [sp, 0xC]
strh r0, [r3]
b _08043BE6
.align 2, 0
_08043BC8: .4byte gDungeonGlobalData
_08043BCC:
cmp r0, 0
bne _08043BDC
movs r0, 0x1
ldr r5, [sp, 0xC]
strh r0, [r5]
bl sub_8084424
b _08043BE6
_08043BDC:
movs r0, 0x1
ldr r1, [sp, 0xC]
strh r0, [r1]
bl sub_8084424
_08043BE6:
ldr r0, _08043BF4
ldr r0, [r0]
ldr r2, _08043BF8
adds r0, r2
ldrb r0, [r0]
strb r0, [r4]
b _08043C32
.align 2, 0
_08043BF4: .4byte gDungeonGlobalData
_08043BF8: .4byte 0x00000674
_08043BFC:
ldr r0, _08043C20
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8080B30
movs r0, 0x3
ldr r3, [sp, 0xC]
strh r0, [r3]
mov r1, r8
adds r1, 0x80
ldr r0, [r4]
ldr r5, _08043C24
adds r0, r5
ldr r0, [r0]
str r0, [r1]
b _08043C32
.align 2, 0
_08043C20: .4byte gUnknown_203B41C
_08043C24: .4byte 0x00000644
_08043C28:
movs r0, 0x2
ldr r1, [sp, 0xC]
strh r0, [r1]
bl sub_8084424
_08043C32:
bl sub_806863C
bl sub_803E214
bl nullsub_56
bl sub_8040218
ldr r2, [sp, 0xC]
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0x1
beq _08043C54
cmp r0, 0x4
beq _08043C54
cmp r0, 0x2
bne _08043C58
_08043C54:
bl sub_8047104
_08043C58:
ldr r5, [sp, 0xC]
movs r0, 0
ldrsh r1, [r5, r0]
cmp r1, 0x1
beq _08043C8A
movs r0, 0x2
negs r0, r0
cmp r1, r0
beq _08043C78
cmp r1, 0x4
beq _08043C78
adds r0, 0x1
cmp r1, r0
beq _08043C78
cmp r1, 0x2
bne _08043CAC
_08043C78:
ldr r2, [sp, 0xC]
movs r3, 0
ldrsh r1, [r2, r3]
cmp r1, 0x1
beq _08043C8A
cmp r1, 0x4
beq _08043C8A
cmp r1, 0x2
bne _08043C92
_08043C8A:
movs r0, 0x1
bl sub_8068BDC
b _08043CAC
_08043C92:
movs r0, 0x2
negs r0, r0
cmp r1, r0
bne _08043CA2
movs r0, 0
bl sub_8068BDC
b _08043CAC
_08043CA2:
bl sub_8068F28
movs r0, 0
bl sub_8068BDC
_08043CAC:
bl sub_800DB7C
ldr r0, _08043CD0
movs r1, 0
str r1, [r0]
ldr r0, _08043CD4
str r1, [r0]
bl nullsub_16
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
_08043CD0: .4byte gDungeonGlobalData
_08043CD4: .4byte gUnknown_203B41C
thumb_func_end xxx_dungeon_8042F6C
thumb_func_start sub_8043CD8
sub_8043CD8:
push {lr}
bl vram_related_8009804
pop {r0}
bx r0
thumb_func_end sub_8043CD8
thumb_func_start sub_8043CE4
sub_8043CE4:
push {lr}
adds r1, r0, 0
ldr r0, _08043CF4
ldrb r0, [r0]
cmp r0, 0
beq _08043CF8
movs r0, 0x1
b _08043D08
.align 2, 0
_08043CF4: .4byte gUnknown_202F1A8
_08043CF8:
movs r2, 0
ldr r0, _08043D0C
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x2
bne _08043D06
movs r2, 0x1
_08043D06:
adds r0, r2, 0
_08043D08:
pop {r1}
bx r1
.align 2, 0
_08043D0C: .4byte gDungeonWaterType
thumb_func_end sub_8043CE4
thumb_func_start sub_8043D10
sub_8043D10:
push {lr}
ldr r0, _08043D38
ldr r1, [r0]
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _08043D3C
subs r2, 0x2B
adds r0, r1, r2
subs r2, 0x8
adds r1, r2
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _08043D3C
movs r0, 0x2
b _08043D4C
.align 2, 0
_08043D38: .4byte gDungeonGlobalData
_08043D3C:
bl IsBossBattle
lsls r0, 24
cmp r0, 0
bne _08043D4A
movs r0, 0
b _08043D4C
_08043D4A:
movs r0, 0x1
_08043D4C:
pop {r1}
bx r1
thumb_func_end sub_8043D10
thumb_func_start sub_8043D50
sub_8043D50:
ldr r2, _08043D5C
str r2, [r1]
movs r1, 0x90
lsls r1, 7
str r1, [r0]
bx lr
.align 2, 0
_08043D5C: .4byte 0x0001cedc
thumb_func_end sub_8043D50
thumb_func_start sub_8043D60
sub_8043D60:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r5, 0
_08043D6A:
ldr r0, _08043DA4
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08043DA8
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043DCE
ldr r2, [r4, 0x70]
movs r1, 0x1
ldrb r0, [r2, 0x8]
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r1, 31
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _08043DA0
cmp r0, 0x47
bne _08043DAC
_08043DA0:
movs r0, 0x1
b _08043DAE
.align 2, 0
_08043DA4: .4byte gDungeonGlobalData
_08043DA8: .4byte 0x0001358c
_08043DAC:
movs r0, 0
_08043DAE:
cmp r0, 0
beq _08043DB4
movs r1, 0
_08043DB4:
adds r0, r2, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
bne _08043DC0
movs r1, 0
_08043DC0:
cmp r1, 0
beq _08043DCE
adds r0, r4, 0
ldr r1, _08043EC0
adds r2, r4, 0
bl sub_8068FE0
_08043DCE:
adds r5, 0x1
cmp r5, 0xF
ble _08043D6A
movs r5, 0
ldr r0, _08043EC4
mov r9, r0
mov r8, r5
_08043DDC:
mov r1, r9
ldr r0, [r1]
lsls r1, r5, 2
ldr r2, _08043EC8
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
adds r7, r5, 0x1
cmp r0, 0
beq _08043E62
adds r0, r4, 0
adds r0, 0x22
mov r1, r8
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x20
movs r0, 0x1
strb r0, [r1]
ldr r4, [r4, 0x70]
ldrh r0, [r4, 0x10]
strh r0, [r4, 0xE]
movs r2, 0x9E
lsls r2, 1
adds r1, r4, r2
adds r2, 0x4
adds r0, r4, r2
ldr r0, [r0]
str r0, [r1]
mov r1, r9
ldr r0, [r1]
ldr r2, _08043ECC
adds r0, r2
mov r1, r8
strb r1, [r0]
adds r0, r4, 0
movs r1, 0
bl sub_806BFC0
ldrh r0, [r4, 0x2]
strh r0, [r4, 0x4]
adds r0, r4, 0
adds r0, 0xFD
mov r2, r8
strb r2, [r0]
movs r0, 0x8C
lsls r0, 1
adds r5, r4, r0
adds r4, r5, 0
movs r6, 0x3
_08043E46:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08043E58
adds r0, r5, 0
bl GetMoveMaxPP
strb r0, [r4, 0x4]
_08043E58:
adds r4, 0x8
adds r5, 0x8
subs r6, 0x1
cmp r6, 0
bge _08043E46
_08043E62:
adds r5, r7, 0
cmp r5, 0x3
ble _08043DDC
movs r6, 0
_08043E6A:
movs r5, 0
adds r7, r6, 0x1
_08043E6E:
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
ldr r4, [r0, 0x14]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043EA0
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x2
bne _08043EA0
adds r0, r4, 0
bl GetTrapData
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0x1B
bne _08043EA0
movs r0, 0x5
strb r0, [r1]
_08043EA0:
adds r5, 0x1
cmp r5, 0x37
ble _08043E6E
adds r6, r7, 0
cmp r6, 0x1F
ble _08043E6A
movs r0, 0x2
bl sub_8046F84
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08043EC0: .4byte 0x00000207
_08043EC4: .4byte gDungeonGlobalData
_08043EC8: .4byte 0x0001357c
_08043ECC: .4byte 0x00000676
thumb_func_end sub_8043D60
thumb_func_start sub_8043ED0
sub_8043ED0:
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0
cmp r5, 0
bne _08043EEA
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _08043EEA
movs r0, 0
b _08043FB8
_08043EEA:
ldr r6, _08043F2C
ldr r0, [r6]
ldrb r0, [r0, 0x10]
cmp r0, 0x1
bne _08043F40
bl GetLeaderEntity
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043F20
ldr r0, _08043F30
ldr r1, [r6]
ldr r2, _08043F34
adds r1, r2
bl strcpy
ldr r0, _08043F38
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043F20:
adds r0, r4, 0
bl sub_8042B0C
ldr r1, _08043F3C
b _08043FAC
.align 2, 0
_08043F2C: .4byte gDungeonGlobalData
_08043F30: .4byte gAvailablePokemonNames
_08043F34: .4byte 0x000005f4
_08043F38: .4byte gUnknown_80F89B4
_08043F3C: .4byte 0x0000021f
_08043F40:
cmp r0, 0x2
bne _08043F74
bl GetLeaderEntity
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043FA4
ldr r0, _08043F68
ldr r1, [r6]
ldr r2, _08043F6C
adds r1, r2
bl strcpy
ldr r0, _08043F70
b _08043F9A
.align 2, 0
_08043F68: .4byte gAvailablePokemonNames
_08043F6C: .4byte 0x000005f4
_08043F70: .4byte gUnknown_80F89D4
_08043F74:
cmp r0, 0x3
bne _08043FB6
bl GetLeaderEntity
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043FA4
ldr r0, _08043FC0
ldr r1, [r6]
ldr r2, _08043FC4
adds r1, r2
bl strcpy
ldr r0, _08043FC8
_08043F9A:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043FA4:
adds r0, r4, 0
bl sub_8042B0C
ldr r1, _08043FCC
_08043FAC:
adds r0, r4, 0
adds r2, r4, 0
bl sub_8068FE0
movs r7, 0x1
_08043FB6:
adds r0, r7, 0
_08043FB8:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08043FC0: .4byte gAvailablePokemonNames
_08043FC4: .4byte 0x000005f4
_08043FC8: .4byte gUnknown_80F89D8
_08043FCC: .4byte 0x00000222
thumb_func_end sub_8043ED0
thumb_func_start sub_8043FD0
sub_8043FD0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
movs r0, 0x2
mov r9, r0
movs r1, 0x1
mov r10, r1
movs r0, 0xFF
mov r8, r0
_08043FE8:
movs r3, 0
mov r1, r9
adds r1, 0x1
str r1, [sp, 0x3C]
_08043FF0:
ldr r2, _080440E4
movs r0, 0x58
adds r1, r3, 0
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldrh r1, [r4]
mov r0, r10
ands r0, r1
adds r3, 0x1
str r3, [sp, 0x40]
cmp r0, 0
beq _080440FE
lsrs r0, r1, 1
mov r1, r10
ands r0, r1
cmp r0, 0
beq _080440FE
add r5, sp, 0x20
movs r0, 0x8
ldrsh r1, [r4, r0]
adds r0, r5, 0
mov r2, r9
bl GetPokemonLevelData
mov r1, r9
strb r1, [r4, 0x3]
ldr r0, [sp, 0x20]
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x4]
ldrh r1, [r4, 0x16]
adds r0, r1
movs r2, 0
strh r0, [r4, 0x16]
lsls r0, 16
ldr r1, _080440E8
cmp r0, r1
ble _08044040
ldr r0, _080440EC
strh r0, [r4, 0x16]
_08044040:
ldrb r0, [r4, 0x18]
str r0, [sp, 0x2C]
ldrb r0, [r4, 0x19]
str r0, [sp, 0x30]
ldrb r0, [r4, 0x1A]
str r0, [sp, 0x34]
ldrb r0, [r4, 0x1B]
str r0, [sp, 0x38]
ldrb r1, [r5, 0x6]
ldr r0, [sp, 0x2C]
adds r0, r1
str r0, [sp, 0x2C]
ldrb r1, [r5, 0x7]
ldr r0, [sp, 0x30]
adds r0, r1
str r0, [sp, 0x30]
ldrb r1, [r5, 0x8]
ldr r0, [sp, 0x34]
adds r0, r1
str r0, [sp, 0x34]
ldrb r1, [r5, 0x9]
ldr r0, [sp, 0x38]
adds r0, r1
str r0, [sp, 0x38]
ldr r0, [sp, 0x2C]
cmp r0, 0xFE
ble _0804407A
mov r0, r8
str r0, [sp, 0x2C]
_0804407A:
ldr r0, [sp, 0x30]
cmp r0, 0xFE
ble _08044084
mov r1, r8
str r1, [sp, 0x30]
_08044084:
ldr r0, [sp, 0x34]
cmp r0, 0xFE
ble _0804408E
mov r0, r8
str r0, [sp, 0x34]
_0804408E:
ldr r0, [sp, 0x38]
cmp r0, 0xFE
ble _08044098
mov r1, r8
str r1, [sp, 0x38]
_08044098:
ldr r0, [sp, 0x2C]
strb r0, [r4, 0x18]
ldr r0, [sp, 0x30]
strb r0, [r4, 0x19]
ldr r0, [sp, 0x34]
strb r0, [r4, 0x1A]
ldr r0, [sp, 0x38]
strb r0, [r4, 0x1B]
movs r0, 0x8
ldrsh r1, [r4, r0]
ldrb r2, [r4, 0x3]
mov r0, sp
ldr r3, _080440EC
bl sub_808E0AC
adds r6, r0, 0
cmp r6, 0
beq _080440FE
movs r0, 0
cmp r0, r6
bge _080440FE
_080440C2:
movs r3, 0
adds r7, r0, 0x1
lsls r0, 1
mov r1, sp
adds r5, r1, r0
adds r2, r4, 0
adds r2, 0x2C
_080440D0:
ldrb r1, [r2]
mov r0, r10
ands r0, r1
cmp r0, 0
bne _080440F0
ldrh r1, [r5]
adds r0, r2, 0
bl InitZeroedPPPokemonMove
b _080440F8
.align 2, 0
_080440E4: .4byte gRecruitedPokemonRef
_080440E8: .4byte 0x03e60000
_080440EC: .4byte 0x000003e7
_080440F0:
adds r2, 0x8
adds r3, 0x1
cmp r3, 0x3
ble _080440D0
_080440F8:
adds r0, r7, 0
cmp r0, r6
blt _080440C2
_080440FE:
ldr r3, [sp, 0x40]
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
bgt _0804410A
b _08043FF0
_0804410A:
ldr r0, [sp, 0x3C]
mov r9, r0
cmp r0, 0x5
bgt _08044114
b _08043FE8
_08044114:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8043FD0
thumb_func_start sub_8044124
sub_8044124:
push {r4,r5,lr}
ldr r0, _080441AC
ldr r0, [r0]
ldr r1, _080441B0
adds r0, r1
ldrb r0, [r0]
bl GetMaxItemCount
cmp r0, 0
bne _08044182
movs r3, 0
ldr r4, _080441B4
movs r2, 0
_0804413E:
lsls r1, r3, 2
ldr r0, [r4]
adds r1, r0
strb r2, [r1, 0x2]
strb r2, [r1, 0x1]
strb r2, [r1]
adds r3, 0x1
cmp r3, 0x13
ble _0804413E
movs r3, 0
ldr r5, _080441B8
movs r4, 0x1
_08044156:
movs r0, 0x58
adds r1, r3, 0
muls r1, r0
ldr r0, [r5]
adds r1, r0, r1
ldrh r2, [r1]
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _08044178
lsrs r0, r2, 1
ands r0, r4
cmp r0, 0
beq _08044178
adds r1, 0x28
movs r0, 0
strb r0, [r1]
_08044178:
adds r3, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
ble _08044156
_08044182:
ldr r0, _080441AC
ldr r0, [r0]
ldr r2, _080441B0
adds r0, r2
ldrb r0, [r0]
bl GetMoneyCondition
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080441A4
ldr r0, _080441B4
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
str r1, [r0]
_080441A4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080441AC: .4byte gDungeonGlobalData
_080441B0: .4byte 0x00000644
_080441B4: .4byte gTeamInventory_203B460
_080441B8: .4byte gRecruitedPokemonRef
thumb_func_end sub_8044124
thumb_func_start IsBossBattle
IsBossBattle:
push {lr}
ldr r0, _080441D8
ldr r0, [r0]
ldr r1, _080441DC
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080441E0
cmp r0, 0x31
bgt _080441E0
movs r0, 0x1
b _080441E2
.align 2, 0
_080441D8: .4byte gDungeonGlobalData
_080441DC: .4byte 0x00003a14
_080441E0:
movs r0, 0
_080441E2:
pop {r1}
bx r1
thumb_func_end IsBossBattle
thumb_func_start IsFixedDungeon
IsFixedDungeon:
push {lr}
ldr r0, _08044200
ldr r0, [r0]
ldr r1, _08044204
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x3F
bgt _08044208
movs r0, 0
b _0804420A
.align 2, 0
_08044200: .4byte gDungeonGlobalData
_08044204: .4byte 0x00003a0e
_08044208:
movs r0, 0x1
_0804420A:
pop {r1}
bx r1
thumb_func_end IsFixedDungeon
thumb_func_start sub_8044210
sub_8044210:
push {lr}
ldr r0, _0804422C
ldr r0, [r0]
ldr r1, _08044230
adds r0, r1
ldrb r0, [r0]
subs r0, 0x4B
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
bls _08044234
movs r0, 0
b _08044236
.align 2, 0
_0804422C: .4byte gDungeonGlobalData
_08044230: .4byte 0x00000644
_08044234:
movs r0, 0x1
_08044236:
pop {r1}
bx r1
thumb_func_end sub_8044210
thumb_func_start RunDungeon
RunDungeon:
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044994
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
adds r0, r4, 0
bl xxx_dungeon_80442D0
lsls r0, 24
lsrs r4, r0, 24
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
cmp r4, 0
beq _08044280
bl sub_807E378
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
_08044280:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044574
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044820
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080442C6
bl sub_8044AB4
ldr r0, _080442CC
ldr r0, [r0]
movs r2, 0xCC
lsls r2, 3
adds r1, r0, r2
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0x18
bne _080442C6
strh r4, [r1]
_080442C6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080442CC: .4byte gDungeonGlobalData
thumb_func_end RunDungeon
thumb_func_start xxx_dungeon_80442D0
xxx_dungeon_80442D0:
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
bl GetLeaderEntity
adds r5, r0, 0
cmp r5, 0
beq _0804431A
bl TriggerWeatherAbilities
adds r0, r5, 0
bl GetMovementSpeed
ldr r3, _08044320
ldr r1, _08044324
ldr r1, [r1]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r2, 0
ldrsh r1, [r1, r2]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
adds r1, r3
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
beq _0804431A
ldr r0, [r5, 0x70]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08044328
_0804431A:
movs r0, 0
b _0804444E
.align 2, 0
_08044320: .4byte gSpeedTurns
_08044324: .4byte gDungeonGlobalData
_08044328:
bl GetLeaderEntity
adds r5, r0, 0
cmp r5, 0
beq _0804431A
movs r0, 0
bl UseAttack
lsls r0, 24
cmp r0, 0
bne _0804435C
ldr r0, _08044388
ldr r1, [r0]
ldr r2, _0804438C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08044356
ldr r3, _08044390
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
beq _0804435C
_08044356:
movs r0, 0xC
bl sub_803E46C
_0804435C:
ldr r0, [r5, 0x70]
adds r0, 0xF8
movs r1, 0
strb r1, [r0]
bl sub_8044B28
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _0804431A
ldr r0, _08044388
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xB8
str r5, [r0]
adds r1, 0xBC
str r2, [r1]
cmp r7, 0
beq _08044394
movs r7, 0
b _0804439A
.align 2, 0
_08044388: .4byte gDungeonGlobalData
_0804438C: .4byte 0x0000066c
_08044390: .4byte 0x00000673
_08044394:
adds r0, r5, 0
bl TickStatusHeal
_0804439A:
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0804431A
adds r0, r5, 0
bl sub_8071DA4
ldr r6, _08044434
ldr r1, [r6]
movs r0, 0x1
strb r0, [r1, 0xF]
bl sub_805D8C8
ldr r0, [r6]
strb r4, [r0, 0xF]
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
adds r0, r5, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
ldr r2, [r5, 0x70]
ldrh r1, [r2]
movs r3, 0x80
lsls r3, 8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08044400
subs r3, 0x1
adds r0, r3, 0
ands r0, r1
movs r3, 0x80
lsls r3, 7
adds r1, r3, 0
orrs r0, r1
strh r0, [r2]
_08044400:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
bl sub_8044454
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0804444C
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xBC
ldr r1, [r0]
cmp r1, 0
beq _08044438
bl sub_805F02C
ldr r0, [r6]
adds r0, 0xBC
str r4, [r0]
movs r7, 0x1
b _08044328
.align 2, 0
_08044434: .4byte gDungeonGlobalData
_08044438:
ldr r0, [r5, 0x70]
adds r0, 0xF8
ldrb r0, [r0]
cmp r0, 0
beq _0804444C
movs r3, 0xCC
lsls r3, 3
adds r0, r2, r3
strh r1, [r0]
b _08044328
_0804444C:
movs r0, 0x1
_0804444E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end xxx_dungeon_80442D0
thumb_func_start sub_8044454
sub_8044454:
push {r4-r6,lr}
ldr r0, _080444E8
ldr r1, [r0]
ldrb r0, [r1, 0xE]
cmp r0, 0
beq _080444E2
movs r0, 0
strb r0, [r1, 0xE]
movs r6, 0
_08044466:
ldr r0, _080444E8
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _080444EC
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080444DC
ldr r5, [r4, 0x70]
ldrh r0, [r5]
movs r2, 0x80
lsls r2, 8
adds r1, r2, 0
ands r0, r1
cmp r0, 0
beq _080444DC
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080444E2
adds r0, r4, 0
bl TickStatusHeal
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080444DC
adds r0, r4, 0
bl sub_8071DA4
adds r0, r4, 0
movs r1, 0
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
ldrh r0, [r5]
ldr r2, _080444F0
adds r1, r2, 0
ands r0, r1
movs r2, 0x80
lsls r2, 7
adds r1, r2, 0
orrs r0, r1
strh r0, [r5]
_080444DC:
adds r6, 0x1
cmp r6, 0x13
ble _08044466
_080444E2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080444E8: .4byte gDungeonGlobalData
_080444EC: .4byte 0x000135cc
_080444F0: .4byte 0x00007fff
thumb_func_end sub_8044454
thumb_func_start sub_80444F4
sub_80444F4:
push {r4-r6,lr}
adds r6, r0, 0
bl GetLeaderEntity
cmp r6, r0
bne _08044566
ldr r0, _0804456C
ldr r1, [r0]
ldrb r0, [r1, 0xE]
cmp r0, 0
beq _08044566
movs r0, 0
strb r0, [r1, 0xE]
movs r5, 0
_08044510:
ldr r0, _0804456C
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08044570
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044560
cmp r6, r4
beq _08044560
ldr r0, [r4, 0x70]
ldrh r0, [r0]
movs r2, 0x80
lsls r2, 8
adds r1, r2, 0
ands r0, r1
cmp r0, 0
beq _08044560
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044566
adds r0, r4, 0
movs r1, 0
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
_08044560:
adds r5, 0x1
cmp r5, 0x13
ble _08044510
_08044566:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804456C: .4byte gDungeonGlobalData
_08044570: .4byte 0x000135cc
thumb_func_end sub_80444F4
thumb_func_start sub_8044574
sub_8044574:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
bl GetLeaderEntity
mov r10, r0
movs r7, 0
mov r0, sp
adds r0, 0x4
str r0, [sp, 0x40]
ldr r1, _08044634
mov r9, r1
_08044592:
mov r2, r9
ldr r0, [r2]
lsls r1, r7, 2
ldr r3, _08044638
adds r0, r3
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080446A4
ldr r6, [r5, 0x70]
mov r8, r6
ldrb r0, [r6, 0x7]
cmp r0, 0
bne _080446A4
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080446AC
mov r1, r9
ldr r0, [r1]
adds r0, 0xB8
str r5, [r0]
bl TriggerWeatherAbilities
movs r2, 0xA2
lsls r2, 1
adds r0, r6, r2
strb r4, [r0]
adds r0, r5, 0
bl GetMovementSpeed
mov r3, r9
ldr r1, [r3]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r3, 0
ldrsh r1, [r1, r3]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
ldr r0, _0804463C
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080446A4
movs r3, 0xA4
lsls r3, 1
adds r0, r6, r3
ldrb r0, [r0]
cmp r0, 0
bne _080446A4
ldrh r1, [r6]
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _080446A4
movs r3, 0x80
lsls r3, 7
adds r0, r3, 0
ands r0, r1
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _08044644
ldr r2, _08044640
adds r0, r2, 0
ands r0, r1
strh r0, [r6]
b _080446A4
.align 2, 0
_08044634: .4byte gDungeonGlobalData
_08044638: .4byte 0x0001357c
_0804463C: .4byte gSpeedTurns
_08044640: .4byte 0x0000bfff
_08044644:
ldr r1, _08044668
add r1, r8
strb r0, [r1]
adds r0, r5, 0
bl TickStatusHeal
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080446A4
adds r0, r5, 0
bl sub_8071DA4
movs r4, 0
b _0804466E
.align 2, 0
_08044668: .4byte 0x00000145
_0804466C:
adds r4, 0x1
_0804466E:
cmp r4, 0x2
bgt _080446A4
adds r0, r5, 0
movs r1, 0
bl DecideAction
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080446A4
adds r0, r5, 0
bl sub_8072CF4
lsls r0, 24
cmp r0, 0
beq _080446A4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _0804466C
_080446A4:
adds r7, 0x1
cmp r7, 0x3
bgt _080446AC
b _08044592
_080446AC:
movs r0, 0
mov r8, r0
_080446B0:
adds r0, 0x1
mov r9, r0
add r2, sp, 0x8
ldr r1, [sp, 0x40]
mov r0, sp
movs r7, 0x2
_080446BC:
mov r3, r8
str r3, [r0]
str r2, [r1]
adds r2, 0x8
adds r1, 0x8
adds r0, 0x8
subs r7, 0x1
cmp r7, 0
bge _080446BC
str r3, [sp, 0x18]
str r3, [sp, 0x1C]
movs r7, 0
_080446D4:
ldr r0, _08044710
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08044714
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044760
ldr r1, [r4, 0x70]
movs r3, 0xA2
lsls r3, 1
adds r2, r1, r3
ldrb r0, [r2]
cmp r0, 0
beq _08044760
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _08044718
adds r3, 0x1
adds r0, r1, r3
mov r1, r8
strb r1, [r0]
strb r1, [r2]
b _08044760
.align 2, 0
_08044710: .4byte gDungeonGlobalData
_08044714: .4byte 0x0001357c
_08044718:
mov r2, r10
movs r3, 0x4
ldrsh r1, [r2, r3]
movs r2, 0x4
ldrsh r0, [r4, r2]
subs r2, r1, r0
cmp r2, 0
bge _0804472A
negs r2, r2
_0804472A:
mov r3, r10
movs r0, 0x6
ldrsh r1, [r3, r0]
movs r3, 0x6
ldrsh r0, [r4, r3]
subs r1, r0
cmp r1, 0
bge _0804473C
negs r1, r1
_0804473C:
cmp r1, r2
bge _08044742
adds r1, r2, 0
_08044742:
cmp r1, 0x2
ble _08044748
movs r1, 0x2
_08044748:
add r3, sp, 0x20
lsls r0, r7, 3
adds r3, r0
str r4, [r3]
add r2, sp, 0x24
adds r2, r0
lsls r1, 3
ldr r0, [sp, 0x40]
adds r1, r0, r1
ldr r0, [r1]
str r0, [r2]
str r3, [r1]
_08044760:
adds r7, 0x1
cmp r7, 0x3
ble _080446D4
mov r5, sp
movs r6, 0
_0804476A:
ldr r4, [r5]
cmp r4, 0
beq _080447A0
ldr r1, [r4, 0x70]
ldr r3, _08044814
adds r2, r1, r3
movs r0, 0x1
strb r0, [r2]
movs r2, 0xA2
lsls r2, 1
adds r0, r1, r2
strb r6, [r0]
adds r0, r4, 0
movs r1, 0x1
bl DecideAction
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
adds r0, r4, 0
bl EntityExists
_080447A0:
ldr r5, [r5, 0x4]
cmp r5, 0
bne _0804476A
mov r0, r9
cmp r0, 0x2
ble _080446B0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044802
movs r7, 0
_080447B8:
ldr r0, _08044818
ldr r0, [r0]
lsls r1, r7, 2
ldr r3, _0804481C
adds r0, r3
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080447FC
ldr r0, [r4, 0x70]
movs r1, 0xA2
lsls r1, 1
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0
beq _080447FC
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080447FC
adds r0, r4, 0
bl sub_8071DA4
movs r0, 0
strb r0, [r5]
_080447FC:
adds r7, 0x1
cmp r7, 0x3
ble _080447B8
_08044802:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044814: .4byte 0x00000145
_08044818: .4byte gDungeonGlobalData
_0804481C: .4byte 0x0001357c
thumb_func_end sub_8044574
thumb_func_start sub_8044820
sub_8044820:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r7, 0
ldr r0, _08044830
mov r8, r0
b _080448FC
.align 2, 0
_08044830: .4byte gSpeedTurns
_08044834:
ldr r4, [r5, 0x70]
ldr r0, [r6]
adds r0, 0xB8
str r5, [r0]
bl TriggerWeatherAbilities
ldrh r2, [r4]
movs r1, 0x80
lsls r1, 8
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _080448FA
movs r1, 0x80
lsls r1, 7
adds r0, r1, 0
ands r0, r2
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
beq _0804486C
ldr r1, _08044868
adds r0, r1, 0
ands r0, r2
strh r0, [r4]
b _080448FA
.align 2, 0
_08044868: .4byte 0x0000bfff
_0804486C:
movs r2, 0xA2
lsls r2, 1
adds r0, r4, r2
strb r1, [r0]
adds r0, r5, 0
bl GetMovementSpeed
ldr r1, [r6]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r2, 0
ldrsh r1, [r1, r2]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
add r1, r8
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080448FA
movs r1, 0xA4
lsls r1, 1
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080448FA
ldrh r1, [r4]
ldr r2, _08044984
adds r0, r2, 0
ands r1, r0
movs r0, 0
strh r1, [r4]
ldr r2, _08044988
adds r1, r4, r2
strb r0, [r1]
adds r0, r5, 0
bl TickStatusHeal
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080448FA
adds r0, r5, 0
bl sub_8071DA4
adds r0, r5, 0
movs r1, 0
bl DecideAction
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044924
adds r0, r5, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044924
_080448FA:
adds r7, 0x1
_080448FC:
cmp r7, 0xF
bgt _08044924
ldr r6, _0804498C
ldr r0, [r6]
lsls r1, r7, 2
ldr r2, _08044990
adds r0, r2
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _080448FA
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _08044834
_08044924:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804497A
movs r7, 0
_08044930:
ldr r0, _0804498C
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08044990
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044974
ldr r0, [r4, 0x70]
movs r1, 0xA2
lsls r1, 1
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0
beq _08044974
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044974
adds r0, r4, 0
bl sub_8071DA4
movs r0, 0
strb r0, [r5]
_08044974:
adds r7, 0x1
cmp r7, 0xF
ble _08044930
_0804497A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044984: .4byte 0x00003fff
_08044988: .4byte 0x00000145
_0804498C: .4byte gDungeonGlobalData
_08044990: .4byte 0x0001358c
thumb_func_end sub_8044820
thumb_func_start sub_8044994
sub_8044994:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _08044A94
ldr r4, _08044A98
ldr r0, [r4]
movs r2, 0xCC
lsls r2, 3
adds r0, r2
movs r3, 0
ldrsh r0, [r0, r3]
lsls r0, 1
adds r1, 0x32
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08044A8A
bl sub_8071B48
ldr r0, [r4]
ldr r2, _08044A9C
adds r0, r2
movs r2, 0
strb r2, [r0]
ldr r0, [r4]
ldr r3, _08044AA0
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
ldr r1, _08044AA4
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r3, 0x2
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
ldr r3, _08044AA8
adds r1, r0, r3
str r2, [r1]
ldr r1, _08044AAC
adds r0, r1
movs r1, 0x2
str r1, [r0]
mov r8, r2
adds r7, r4, 0
_080449F2:
ldr r0, [r7]
mov r2, r8
lsls r1, r2, 2
ldr r3, _08044AB0
adds r0, r3
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044A7A
ldr r0, [r5, 0x70]
adds r4, r0, 0
movs r0, 0xA4
lsls r0, 1
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
ldrb r0, [r4, 0x6]
movs r6, 0x1
cmp r0, 0
beq _08044A24
movs r6, 0
_08044A24:
adds r0, r5, 0
movs r1, 0x32
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08044A46
ldr r1, [r7]
ldr r2, _08044AA8
adds r0, r1, r2
str r5, [r0]
ldr r3, _08044AAC
adds r1, r3
adds r0, r4, 0
adds r0, 0x98
ldr r0, [r0]
str r0, [r1]
_08044A46:
adds r0, r5, 0
movs r1, 0x3F
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08044A60
ldr r0, [r7]
ldr r1, _08044AA4
adds r0, r1
adds r0, r6
movs r1, 0x1
strb r1, [r0]
_08044A60:
adds r0, r5, 0
movs r1, 0x38
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _08044A7A
ldr r0, [r7]
ldr r2, _08044A9C
adds r0, r2
adds r0, r6
movs r1, 0x1
strb r1, [r0]
_08044A7A:
movs r3, 0x1
add r8, r3
mov r0, r8
cmp r0, 0x13
ble _080449F2
movs r0, 0
bl sub_8043ED0
_08044A8A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044A94: .4byte gSpeedTurns
_08044A98: .4byte gDungeonGlobalData
_08044A9C: .4byte 0x000037f8
_08044AA0: .4byte 0x000037f9
_08044AA4: .4byte 0x000037fa
_08044AA8: .4byte 0x00017b2c
_08044AAC: .4byte 0x00017b38
_08044AB0: .4byte 0x000135cc
thumb_func_end sub_8044994
thumb_func_start sub_8044AB4
sub_8044AB4:
push {r4,lr}
ldr r1, _08044ADC
ldr r0, _08044AE0
ldr r0, [r0]
movs r2, 0xCC
lsls r2, 3
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
adds r0, 0x1
lsls r0, 1
adds r1, 0x32
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08044B1A
movs r4, 0
b _08044AE6
.align 2, 0
_08044ADC: .4byte gSpeedTurns
_08044AE0: .4byte gDungeonGlobalData
_08044AE4:
adds r4, 0x1
_08044AE6:
cmp r4, 0x13
bgt _08044B08
ldr r0, _08044B20
ldr r0, [r0]
lsls r1, r4, 2
ldr r2, _08044B24
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08044AE4
movs r0, 0
bl UseAttack
_08044B08:
movs r0, 0x1
movs r1, 0
bl sub_807EAA0
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
_08044B1A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044B20: .4byte gDungeonGlobalData
_08044B24: .4byte 0x000135cc
thumb_func_end sub_8044AB4
thumb_func_start sub_8044B28
sub_8044B28:
push {r4,lr}
ldr r4, _08044B48
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _08044B76
bl GetLeaderEntity
cmp r0, 0
bne _08044B50
ldr r0, [r4]
ldr r1, _08044B4C
adds r0, r1
movs r1, 0x1
strb r1, [r0]
b _08044B76
.align 2, 0
_08044B48: .4byte gDungeonGlobalData
_08044B4C: .4byte 0x00000654
_08044B50:
ldr r0, [r4]
ldrb r2, [r0, 0x2]
cmp r2, 0x1
bne _08044B68
ldr r2, _08044B64
adds r1, r0, r2
movs r0, 0x2
strb r0, [r1]
b _08044B76
.align 2, 0
_08044B64: .4byte 0x00000654
_08044B68:
cmp r2, 0x2
beq _08044B70
movs r0, 0
b _08044B78
_08044B70:
ldr r1, _08044B80
adds r0, r1
strb r2, [r0]
_08044B76:
movs r0, 0x1
_08044B78:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08044B80: .4byte 0x00000654
thumb_func_end sub_8044B28
thumb_func_start sub_8044B84
sub_8044B84:
push {lr}
ldr r0, _08044B9C
ldr r0, [r0]
ldrb r0, [r0, 0x10]
cmp r0, 0
bne _08044BA0
bl sub_8044B28
lsls r0, 24
lsrs r0, 24
b _08044BA2
.align 2, 0
_08044B9C: .4byte gDungeonGlobalData
_08044BA0:
movs r0, 0x1
_08044BA2:
pop {r1}
bx r1
thumb_func_end sub_8044B84
thumb_func_start sub_8044BA8
sub_8044BA8:
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0x26
bne _08044BCC
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08044BCC
ldr r0, _08044BC8
b _08044C02
.align 2, 0
_08044BC8: .4byte gUnknown_80F91EC
_08044BCC:
ldr r1, _08044BEC
lsls r0, r4, 3
adds r4, r0, r1
ldr r0, [r4]
ldr r1, _08044BF0
bl strcmp
cmp r0, 0
beq _08044BE0
movs r0, 0x1
_08044BE0:
lsls r0, 24
cmp r0, 0
beq _08044BF4
ldr r0, [r4]
b _08044C04
.align 2, 0
_08044BEC: .4byte gUnknown_80F7C50
_08044BF0: .4byte gUnknown_80F697C
_08044BF4:
ldr r4, _08044C0C
adds r0, r5, 0
bl GetItemCategory
lsls r0, 3
adds r4, 0x4
adds r0, r4
_08044C02:
ldr r0, [r0]
_08044C04:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08044C0C: .4byte gActions
thumb_func_end sub_8044BA8
thumb_func_start sub_8044C10
sub_8044C10:
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8083654
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0x44
movs r3, 0
movs r0, 0
strh r0, [r1]
cmp r4, 0
beq _08044C44
adds r0, r2, 0
adds r0, 0x48
strb r3, [r0]
adds r0, 0x8
strb r3, [r0]
adds r1, 0x14
ldr r0, _08044C4C
strh r0, [r1]
adds r1, 0x2
movs r0, 0x1
negs r0, r0
strh r0, [r1]
_08044C44:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044C4C: .4byte 0x0000ffff
thumb_func_end sub_8044C10
thumb_func_start sub_8044C50
sub_8044C50:
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_8083654
adds r2, r0, 0
adds r0, 0x44
movs r1, 0
strh r4, [r0]
adds r0, 0x4
strb r1, [r0]
adds r0, 0x8
strb r1, [r0]
adds r1, r2, 0
adds r1, 0x58
ldr r0, _08044C84
strh r0, [r1]
adds r1, 0x2
movs r0, 0x1
negs r0, r0
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044C84: .4byte 0x0000ffff
thumb_func_end sub_8044C50
thumb_func_start ResetAction
ResetAction:
movs r2, 0
movs r1, 0
strh r1, [r0]
strb r2, [r0, 0x4]
strb r2, [r0, 0xC]
bx lr
thumb_func_end ResetAction
.align 2, 0