pmd-red/asm/code_8048480.s
Cheng Hann Gan 938a88551f
Labeled more symbols (#77)
* Labeled more symbols

* Fixed comment typo

* Renamed some functions
2021-11-20 08:47:46 -08:00

20451 lines
307 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8048524
sub_8048524:
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
adds r4, r1, 0
ldr r0, [r4, 0x70]
adds r5, r0, 0
ldrb r0, [r5, 0x7]
cmp r0, 0
beq _08048542
adds r0, r6, 0
movs r2, 0
movs r3, 0x5
bl sub_8078A58
b _080485A4
_08048542:
ldr r0, _08048560
adds r1, r4, 0
movs r2, 0
bl SetMessageArgument
adds r0, r4, 0
movs r1, 0x12
bl HasIQSkill
lsls r0, 24
cmp r0, 0
beq _08048568
ldr r0, _08048564
b _08048586
.align 2, 0
_08048560: .4byte gAvailablePokemonNames
_08048564: .4byte gPtrSelfHealPreventedHungerMessage
_08048568:
movs r0, 0x9E
lsls r0, 1
adds r5, r0
ldr r0, [r5]
bl GetBellyRoundedUp
cmp r0, 0
beq _08048598
mov r0, sp
movs r1, 0
bl sub_80943A0
ldr r0, [sp]
str r0, [r5]
ldr r0, _08048594
_08048586:
ldr r2, [r0]
adds r0, r6, 0
adds r1, r4, 0
bl sub_80522F4
b _080485A4
.align 2, 0
_08048594: .4byte gUnknown_80F9740
_08048598:
ldr r0, _080485AC
ldr r2, [r0]
adds r0, r6, 0
adds r1, r4, 0
bl sub_80522F4
_080485A4:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080485AC: .4byte gUnknown_80F9760
thumb_func_end sub_8048524
thumb_func_start sub_80485B0
sub_80485B0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r9, r0
mov r8, r1
movs r0, 0
str r0, [sp]
movs r2, 0x1
mov r10, r2
ldr r4, [r1, 0x70]
movs r0, 0x64
bl DungeonRandomCapped
ldr r1, _0804865C
movs r2, 0
ldrsh r1, [r1, r2]
cmp r0, r1
bge _080485DE
movs r0, 0x3
mov r10, r0
_080485DE:
ldrb r0, [r4, 0x7]
cmp r0, 0
beq _0804867C
movs r2, 0x8C
lsls r2, 1
adds r4, r2
adds r5, r4, 0
movs r7, 0x3
_080485EE:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804862C
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0804862C
adds r0, r5, 0
bl GetMovePower
cmp r0, 0
beq _0804862C
ldrb r6, [r4, 0x5]
adds r0, r5, 0
bl GetMoveUnk12
adds r1, r0, 0
ldrb r0, [r4, 0x5]
add r0, r10
strb r0, [r4, 0x5]
ldrb r0, [r4, 0x5]
cmp r0, r1
blt _08048622
strb r1, [r4, 0x5]
_08048622:
ldrb r0, [r4, 0x5]
cmp r6, r0
beq _0804862C
movs r2, 0x1
str r2, [sp]
_0804862C:
adds r4, 0x8
adds r5, 0x8
subs r7, 0x1
cmp r7, 0
bge _080485EE
ldr r0, [sp]
cmp r0, 0
beq _08048668
ldr r0, _08048660
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
mov r2, r10
cmp r2, 0x1
beq _08048688
movs r0, 0xA
movs r1, 0x40
bl sub_803E708
ldr r0, _08048664
b _0804866A
.align 2, 0
_0804865C: .4byte gUnknown_80F4F46
_08048660: .4byte gUnknown_80FE454
_08048664: .4byte gUnknown_80FE434
_08048668:
ldr r0, _08048678
_0804866A:
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
b _08048688
.align 2, 0
_08048678: .4byte gUnknown_80FE40C
_0804867C:
ldr r0, _08048698
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
_08048688:
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
_08048698: .4byte gUnknown_80FE40C
thumb_func_end sub_80485B0
thumb_func_start sub_804869C
sub_804869C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x1C
adds r4, r0, 0
adds r7, r1, 0
lsls r2, 24
cmp r2, 0
beq _08048724
ldr r5, [r7, 0x70]
ldr r0, _080486D4
ldr r0, [r0]
ldr r1, _080486D8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _080486E4
ldr r0, _080486DC
movs r1, 0
ldrsh r6, [r0, r1]
ldr r0, _080486E0
ldr r2, [r0]
adds r0, r4, 0
adds r1, r7, 0
bl sub_80522F4
b _080486EA
.align 2, 0
_080486D4: .4byte gDungeonGlobalData
_080486D8: .4byte 0x00000675
_080486DC: .4byte gUnknown_80F4FA8
_080486E0: .4byte gUnknown_80FEAE8
_080486E4:
ldr r0, _0804871C
movs r1, 0
ldrsh r6, [r0, r1]
_080486EA:
adds r0, r5, 0
adds r0, 0xB0
ldrb r0, [r0]
cmp r0, 0x1
bne _080486FC
adds r0, r4, 0
adds r1, r7, 0
bl SendImmobilizeEndMessage
_080486FC:
add r0, sp, 0x18
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r0, _08048720
str r0, [sp, 0x8]
str r1, [sp, 0xC]
str r1, [sp, 0x10]
str r1, [sp, 0x14]
adds r0, r4, 0
adds r1, r7, 0
adds r2, r6, 0
movs r3, 0x1
bl sub_806F370
b _080487B6
.align 2, 0
_0804871C: .4byte gUnknown_80F4FA4
_08048720: .4byte 0x00000216
_08048724:
adds r0, r4, 0
bl sub_8042520
adds r0, r4, 0
bl sub_80696FC
adds r5, r0, 0
cmp r5, 0
bne _08048748
ldr r0, _08048744
ldr r2, [r0]
adds r0, r4, 0
adds r1, r7, 0
bl sub_80522F4
b _080487B6
.align 2, 0
_08048744: .4byte gUnknown_80FDBA0
_08048748:
ldr r1, [r5, 0x70]
mov r8, r1
ldr r0, _08048770
ldr r0, [r0]
ldr r1, _08048774
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08048780
ldr r0, _08048778
movs r1, 0
ldrsh r6, [r0, r1]
ldr r0, _0804877C
ldr r2, [r0]
adds r0, r4, 0
adds r1, r7, 0
bl sub_80522F4
b _08048786
.align 2, 0
_08048770: .4byte gDungeonGlobalData
_08048774: .4byte 0x00000675
_08048778: .4byte gUnknown_80F4FAA
_0804877C: .4byte gUnknown_80FEAE8
_08048780:
ldr r0, _080487C4
movs r1, 0
ldrsh r6, [r0, r1]
_08048786:
mov r0, r8
adds r0, 0xB0
ldrb r0, [r0]
cmp r0, 0x1
bne _08048798
adds r0, r4, 0
adds r1, r5, 0
bl SendImmobilizeEndMessage
_08048798:
add r0, sp, 0x18
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r0, _080487C8
str r0, [sp, 0x8]
str r1, [sp, 0xC]
str r1, [sp, 0x10]
str r1, [sp, 0x14]
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
movs r3, 0x1
bl sub_806F370
_080487B6:
add sp, 0x1C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080487C4: .4byte gUnknown_80F4FA6
_080487C8: .4byte 0x00000216
thumb_func_end sub_804869C
thumb_func_start sub_80487CC
sub_80487CC:
push {r4,lr}
sub sp, 0x4
movs r4, 0x1
str r4, [sp]
bl sub_8078B5C
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80487CC
thumb_func_start sub_80487E0
sub_80487E0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
mov r9, r0
mov r8, r1
lsls r3, r2, 24
ldr r5, [r1, 0x70]
ldr r4, _08048858
lsrs r3, 23
adds r0, r5, 0
adds r0, 0x5C
ldrb r0, [r0]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r3, r1
adds r0, r1, r4
movs r2, 0
ldrsh r6, [r0, r2]
adds r0, r5, 0
adds r0, 0x5D
ldrb r2, [r0]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
adds r3, r0
adds r4, r3, r4
movs r2, 0
ldrsh r0, [r4, r2]
adds r6, r0
ldr r0, _0804885C
adds r1, r0
movs r4, 0
ldrsh r2, [r1, r4]
adds r3, r0
movs r1, 0
ldrsh r0, [r3, r1]
adds r2, r0
movs r0, 0x1
str r0, [sp]
mov r0, r9
mov r1, r8
movs r3, 0
bl sub_8078B5C
ldrb r0, [r5, 0x6]
cmp r0, 0
bne _08048906
adds r0, r5, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _08048852
cmp r0, 0x47
bne _08048860
_08048852:
movs r0, 0x1
b _08048862
.align 2, 0
_08048858: .4byte gTypeGummiIQBoost
_0804885C: .4byte gUnknown_810A808
_08048860:
movs r0, 0
_08048862:
cmp r0, 0
bne _08048906
movs r2, 0xC
ldrsh r7, [r5, r2]
ldrh r0, [r5, 0xC]
adds r0, r6
strh r0, [r5, 0xC]
adds r2, r7, r6
lsls r0, 16
cmp r0, 0
bgt _0804887C
movs r0, 0x1
strh r0, [r5, 0xC]
_0804887C:
movs r4, 0xC
ldrsh r0, [r5, r4]
ldr r1, _080488A0
cmp r0, r1
ble _08048888
strh r1, [r5, 0xC]
_08048888:
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r7, r0
bne _080488A8
ldr r0, _080488A4
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
b _08048906
.align 2, 0
_080488A0: .4byte 0x000003e7
_080488A4: .4byte gUnknown_80FD644
_080488A8:
subs r0, r2, r7
movs r2, 0
cmp r0, 0x8
bgt _080488BE
movs r2, 0x1
cmp r0, 0x4
bgt _080488BE
movs r2, 0x3
cmp r0, 0x2
ble _080488BE
movs r2, 0x2
_080488BE:
movs r4, 0xC
ldrsh r0, [r5, r4]
subs r0, r7
movs r4, 0
cmp r0, 0x8
bgt _080488D8
movs r4, 0x1
cmp r0, 0x4
bgt _080488D8
movs r4, 0x3
cmp r0, 0x2
ble _080488D8
movs r4, 0x2
_080488D8:
ldr r1, _08048914
lsls r0, r2, 2
adds r0, r1
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
ldr r1, _08048918
lsls r0, r4, 2
adds r0, r1
ldr r2, [r0]
mov r0, r9
mov r1, r8
bl sub_80522F4
mov r0, r8
bl LoadIQSkills
adds r0, r5, 0
adds r1, r7, 0
bl sub_806A7E8
_08048906:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08048914: .4byte gUnknown_80FD648
_08048918: .4byte gUnknown_80FD6E8
thumb_func_end sub_80487E0
thumb_func_start sub_804891C
sub_804891C:
push {lr}
movs r2, 0x3
bl sub_80793B0
pop {r0}
bx r0
thumb_func_end sub_804891C
thumb_func_start sub_8048928
sub_8048928:
push {lr}
movs r2, 0x3
bl sub_8079420
pop {r0}
bx r0
thumb_func_end sub_8048928
thumb_func_start sub_8048934
sub_8048934:
push {lr}
movs r2, 0x3
bl sub_8079490
pop {r0}
bx r0
thumb_func_end sub_8048934
thumb_func_start sub_8048940
sub_8048940:
push {lr}
movs r2, 0x3
bl sub_8079500
pop {r0}
bx r0
thumb_func_end sub_8048940
thumb_func_start nullsub_94
nullsub_94:
bx lr
thumb_func_end nullsub_94
thumb_func_start sub_8048950
sub_8048950:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r10, r0
mov r8, r1
ldrb r0, [r1, 0x2]
bl GetItemMove
lsls r0, 16
lsrs r0, 16
mov r9, r0
mov r0, r8
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08048988
ldr r0, _08048984
_08048978:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08048A58
.align 2, 0
_08048984: .4byte gUnknown_80FE3E8
_08048988:
mov r1, r8
ldrb r0, [r1, 0x2]
bl IsHMItem
lsls r0, 24
cmp r0, 0
beq _080489A0
ldr r0, _0804899C
b _08048978
.align 2, 0
_0804899C: .4byte gPtrCantUseInDungeonMessage
_080489A0:
movs r7, 0
_080489A2:
ldr r0, _080489FC
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08048A00
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048A12
ldr r6, [r4, 0x70]
movs r0, 0x2
ldrsh r1, [r6, r0]
mov r0, r9
bl CanMonLearnMove
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
movs r1, 0
bl CannotMove
lsls r0, 24
cmp r0, 0
beq _080489DC
movs r5, 0
_080489DC:
adds r0, r6, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
bne _080489E8
movs r5, 0
_080489E8:
adds r0, r6, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _080489F6
cmp r0, 0x47
bne _08048A04
_080489F6:
movs r0, 0x1
b _08048A06
.align 2, 0
_080489FC: .4byte gDungeonGlobalData
_08048A00: .4byte 0x0001357c
_08048A04:
movs r0, 0
_08048A06:
cmp r0, 0
beq _08048A0C
movs r5, 0
_08048A0C:
ldr r1, _08048A50
adds r0, r6, r1
strb r5, [r0]
_08048A12:
adds r7, 0x1
cmp r7, 0x3
ble _080489A2
movs r0, 0
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048A58
mov r0, r10
mov r1, r8
bl sub_804245C
adds r0, r4, 0
mov r1, r9
bl sub_8072938
lsls r0, 24
cmp r0, 0
beq _08048A58
ldr r2, _08048A54
mov r0, r10
movs r1, 0
bl sub_8044E24
movs r0, 0x1
b _08048A5A
.align 2, 0
_08048A50: .4byte 0x00000157
_08048A54: .4byte 0x00000141
_08048A58:
movs r0, 0
_08048A5A:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8048950
thumb_func_start sub_8048A68
sub_8048A68:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r9, r0
mov r8, r1
ldrb r1, [r1]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08048A90
ldr r0, _08048A8C
_08048A80:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08048B8C
.align 2, 0
_08048A8C: .4byte gUnknown_80FE3E8
_08048A90:
ldr r0, _08048AA4
ldr r0, [r0]
ldr r1, _08048AA8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _08048AB0
ldr r0, _08048AAC
b _08048A80
.align 2, 0
_08048AA4: .4byte gDungeonGlobalData
_08048AA8: .4byte 0x0000065c
_08048AAC: .4byte gUnknown_80F9BD8
_08048AB0:
movs r7, 0
_08048AB2:
ldr r0, _08048B24
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08048B28
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048B4A
ldr r5, [r4, 0x70]
movs r6, 0x1
ldrb r0, [r5, 0xA]
cmp r0, 0x3
bhi _08048AF4
ldr r2, _08048B2C
ldrb r1, [r5, 0xA]
movs r0, 0x64
muls r1, r0
ldr r0, _08048B30
adds r1, r0
ldr r0, [r2]
adds r0, r1
movs r1, 0xA
ldrsh r0, [r0, r1]
bl sub_806A538
lsls r0, 24
cmp r0, 0
beq _08048AF6
_08048AF4:
movs r6, 0
_08048AF6:
adds r0, r4, 0
movs r1, 0
bl CannotMove
lsls r0, 24
cmp r0, 0
beq _08048B06
movs r6, 0
_08048B06:
adds r0, r5, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
bne _08048B12
movs r6, 0
_08048B12:
adds r0, r5, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _08048B20
cmp r0, 0x47
bne _08048B34
_08048B20:
movs r0, 0x1
b _08048B36
.align 2, 0
_08048B24: .4byte gDungeonGlobalData
_08048B28: .4byte 0x0001357c
_08048B2C: .4byte gRecruitedPokemonRef
_08048B30: .4byte 0x00008df8
_08048B34:
movs r0, 0
_08048B36:
cmp r0, 0
beq _08048B3C
movs r6, 0
_08048B3C:
ldrb r0, [r5, 0x7]
cmp r0, 0
beq _08048B44
movs r6, 0
_08048B44:
ldr r2, _08048B84
adds r0, r5, r2
strb r6, [r0]
_08048B4A:
adds r7, 0x1
cmp r7, 0x3
ble _08048AB2
movs r0, 0
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _08048B8C
mov r0, r9
mov r1, r8
bl sub_804245C
ldr r0, _08048B88
ldr r0, [r0]
adds r0, 0xBC
str r4, [r0]
movs r2, 0xA1
lsls r2, 1
mov r0, r9
movs r1, 0
bl sub_8044E24
movs r0, 0x1
b _08048B8E
.align 2, 0
_08048B84: .4byte 0x00000157
_08048B88: .4byte gDungeonGlobalData
_08048B8C:
movs r0, 0
_08048B8E:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8048A68
thumb_func_start sub_8048B9C
sub_8048B9C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x20
mov r9, r0
movs r0, 0
mov r8, r0
mov r2, r9
ldr r0, [r2, 0x70]
adds r6, r0, 0
adds r6, 0x44
ldrb r1, [r1]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08048BD4
ldr r0, _08048BD0
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
movs r0, 0
b _08048D40
.align 2, 0
_08048BD0: .4byte gUnknown_80FE3E8
_08048BD4:
movs r2, 0
_08048BD6:
ldr r0, _08048C28
ldr r0, [r0]
lsls r1, r2, 2
ldr r3, _08048C2C
adds r0, r3
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
str r2, [sp, 0x1C]
bl EntityExists
lsls r0, 24
ldr r2, [sp, 0x1C]
cmp r0, 0
beq _08048C3E
ldr r5, [r4, 0x70]
movs r7, 0x1
adds r0, r4, 0
movs r1, 0
bl CannotMove
lsls r0, 24
ldr r2, [sp, 0x1C]
cmp r0, 0
beq _08048C0A
movs r7, 0
_08048C0A:
adds r0, r5, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
bne _08048C16
movs r7, 0
_08048C16:
adds r0, r5, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _08048C24
cmp r0, 0x47
bne _08048C30
_08048C24:
movs r0, 0x1
b _08048C32
.align 2, 0
_08048C28: .4byte gDungeonGlobalData
_08048C2C: .4byte 0x0001357c
_08048C30:
movs r0, 0
_08048C32:
cmp r0, 0
beq _08048C38
movs r7, 0
_08048C38:
ldr r4, _08048C5C
adds r0, r5, r4
strb r7, [r0]
_08048C3E:
adds r2, 0x1
cmp r2, 0x3
ble _08048BD6
movs r0, 0
movs r1, 0x1
bl DrawFieldGiveItemMenu
adds r4, r0, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _08048C60
movs r0, 0
b _08048D40
.align 2, 0
_08048C5C: .4byte 0x00000157
_08048C60:
add r1, sp, 0x4
adds r0, r6, 0
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
b _08048CE2
_08048C6E:
ldrh r0, [r6]
cmp r0, 0x1D
bne _08048C7C
adds r0, r6, 0
bl sub_80637E8
b _08048CE2
_08048C7C:
cmp r0, 0x20
bne _08048C9A
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
bl sub_8063BB4
movs r0, 0x1
bl sub_8044C10
movs r5, 0x1
mov r8, r5
b _08048CE2
_08048C9A:
cmp r0, 0x21
bne _08048CB6
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
movs r1, 0
bl sub_8063CF0
movs r0, 0x1
bl sub_8044C10
b _08048CE2
_08048CB6:
cmp r0, 0x1E
beq _08048CBE
cmp r0, 0x33
bne _08048CD0
_08048CBE:
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
movs r1, 0
bl sub_8063A70
b _08048CE2
_08048CD0:
cmp r0, 0x1F
bne _08048CE2
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
bl sub_8063B54
_08048CE2:
adds r0, r6, 0
bl ResetAction
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
movs r3, 0
bl sub_8062F90
lsls r0, 24
cmp r0, 0
beq _08048C6E
mov r0, r8
cmp r0, 0
beq _08048D38
ldr r0, _08048D34
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
cmp r0, 0x1
bne _08048C6E
adds r1, r6, 0
add r0, sp, 0x4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
mov r0, r9
movs r1, 0
movs r2, 0x6E
bl sub_8044DF0
adds r0, r6, 0
movs r1, 0x2C
bl SetAction
b _08048D3E
.align 2, 0
_08048D34: .4byte gUnknown_80FECA0
_08048D38:
movs r0, 0x1
bl sub_8044C10
_08048D3E:
mov r0, r8
_08048D40:
add sp, 0x20
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8048B9C
thumb_func_start sub_8048D50
sub_8048D50:
push {r4,lr}
adds r4, r0, 0
adds r2, r1, 0
ldr r3, [r4, 0x70]
ldrb r1, [r2]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08048D78
ldr r0, _08048D70
adds r1, r2, 0
bl sub_8045BF8
ldr r0, _08048D74
b _08048D9A
.align 2, 0
_08048D70: .4byte gUnknown_202DE58
_08048D74: .4byte gUnknown_80FE3E8
_08048D78:
adds r0, r3, 0
adds r0, 0xEC
ldrb r0, [r0]
cmp r0, 0x1
bne _08048DB0
ldrb r0, [r2, 0x2]
bl IsEdibleItem
lsls r0, 24
cmp r0, 0
beq _08048DB0
ldr r0, _08048DA8
adds r1, r4, 0
movs r2, 0
bl SetMessageArgument
ldr r0, _08048DAC
_08048D9A:
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
movs r0, 0
b _08048DB2
.align 2, 0
_08048DA8: .4byte gAvailablePokemonNames
_08048DAC: .4byte gUnknown_80FDCA4
_08048DB0:
movs r0, 0x1
_08048DB2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8048D50
thumb_func_start sub_8048DB8
sub_8048DB8:
push {r4,lr}
sub sp, 0x1C
adds r3, r0, 0
adds r4, r1, 0
lsls r2, 24
cmp r2, 0
beq _08048DF4
ldr r0, _08048DEC
movs r1, 0
ldrsh r2, [r0, r1]
add r0, sp, 0x18
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r0, _08048DF0
str r0, [sp, 0x8]
str r1, [sp, 0xC]
str r1, [sp, 0x10]
str r1, [sp, 0x14]
adds r0, r3, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_806F370
b _08048DFA
.align 2, 0
_08048DEC: .4byte gUnknown_80F4FAC
_08048DF0: .4byte 0x00000217
_08048DF4:
adds r0, r3, 0
bl sub_8051E7C
_08048DFA:
add sp, 0x1C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8048DB8
thumb_func_start sub_8048E04
sub_8048E04:
push {r4-r6,lr}
sub sp, 0x8
adds r5, r0, 0
adds r6, r1, 0
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0x1E
movs r3, 0
bl sub_8078B5C
movs r0, 0x5
bl DungeonRandomCapped
cmp r0, 0x4
bhi _08048E9E
lsls r0, 2
ldr r1, _08048E30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08048E30: .4byte _08048E34
.align 2, 0
_08048E34:
.4byte _08048E48
.4byte _08048E54
.4byte _08048E5E
.4byte _08048E6C
.4byte _08048E78
_08048E48:
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0x1
bl sub_80763F8
b _08048E9E
_08048E54:
adds r0, r5, 0
adds r1, r6, 0
bl sub_80769CC
b _08048E9E
_08048E5E:
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x1
bl sub_8076210
b _08048E9E
_08048E6C:
adds r0, r5, 0
adds r1, r6, 0
movs r2, 0x1
bl sub_8077780
b _08048E9E
_08048E78:
ldr r0, _08048EA8
ldr r2, [r0]
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
adds r0, r5, 0
adds r1, r6, 0
movs r3, 0x3
bl sub_8076E20
ldr r0, _08048EAC
ldr r2, [r0]
str r4, [sp]
str r4, [sp, 0x4]
adds r0, r5, 0
adds r1, r6, 0
movs r3, 0x3
bl sub_8076E20
_08048E9E:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08048EA8: .4byte gUnknown_8106A4C
_08048EAC: .4byte gUnknown_8106A50
thumb_func_end sub_8048E04
thumb_func_start sub_8048EB0
sub_8048EB0:
push {lr}
ldr r1, _08048EC0
ldr r1, [r1]
bl SendMessage
pop {r0}
bx r0
.align 2, 0
_08048EC0: .4byte gPtrIcePartCrumbledMessage
thumb_func_end sub_8048EB0
thumb_func_start sub_8048EC4
sub_8048EC4:
push {lr}
ldr r1, _08048ED4
ldr r1, [r1]
bl SendMessage
pop {r0}
bx r0
.align 2, 0
_08048ED4: .4byte gPtrRockPartCrumbledMessage
thumb_func_end sub_8048EC4
thumb_func_start sub_8048ED8
sub_8048ED8:
push {lr}
ldr r1, _08048EE8
ldr r1, [r1]
bl SendMessage
pop {r0}
bx r0
.align 2, 0
_08048EE8: .4byte gPtrSteelPartCrumbledMessage
thumb_func_end sub_8048ED8
thumb_func_start sub_8048EEC
sub_8048EEC:
push {lr}
ldr r1, _08048EFC
ldr r1, [r1]
bl SendMessage
pop {r0}
bx r0
.align 2, 0
_08048EFC: .4byte gPtrWishStoneCrumbledMessage
thumb_func_end sub_8048EEC
thumb_func_start sub_8048F00
sub_8048F00:
push {r4,lr}
adds r4, r0, 0
movs r1, 0xD6
bl sub_80421C0
ldr r0, _08048F24
ldr r1, [r0]
adds r0, r4, 0
bl SendMessage
movs r0, 0x3C
movs r1, 0x46
bl sub_803E708
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08048F24: .4byte gPtrMusicBoxPlayedCrumbledMessage
thumb_func_end sub_8048F00
thumb_func_start EvaluateItem
EvaluateItem:
push {r4-r7,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r3, [r4, 0x70]
movs r6, 0
movs r0, 0x1
adds r5, r2, 0
ands r5, r0
lsrs r2, 1
movs r0, 0x1
ands r2, r0
ldrb r0, [r1, 0x2]
subs r0, 0x1
cmp r0, 0xCC
bls _08048F48
b _080494E0
_08048F48:
lsls r0, 2
ldr r1, _08048F54
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08048F54: .4byte _08048F58
.align 2, 0
_08048F58:
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _0804928C
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049408
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049296
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080492B0
.4byte _080492B0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _08049320
.4byte _080494E0
.4byte _080492B8
.4byte _080492B8
.4byte _0804935E
.4byte _080494E0
.4byte _080493E0
.4byte _0804948E
.4byte _08049394
.4byte _08049344
.4byte _0804946E
.4byte _0804947A
.4byte _08049378
.4byte _080493CE
.4byte _080493AC
.4byte _080493B8
.4byte _08049436
.4byte _080494E0
.4byte _080493F6
.4byte _080494B2
.4byte _0804946A
.4byte _08049462
.4byte _08049454
.4byte _08049498
.4byte _080492DC
.4byte _0804932C
.4byte _08049338
.4byte _0804933C
.4byte _08049340
.4byte _080494C2
.4byte _080494C2
.4byte _080494D6
.4byte _080494C2
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494E0
.4byte _080494DA
_0804928C:
cmp r5, 0
bne _08049292
b _080494E2
_08049292:
movs r6, 0x46
b _080494E2
_08049296:
cmp r5, 0
bne _0804929C
b _080494E0
_0804929C:
movs r1, 0x9E
lsls r1, 1
adds r0, r3, r1
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0
ble _080492AE
b _0804948A
_080492AE:
b _080494E0
_080492B0:
cmp r5, 0
beq _080492B6
b _0804948A
_080492B6:
b _080494E0
_080492B8:
movs r2, 0xE
ldrsh r1, [r3, r2]
movs r2, 0x10
ldrsh r0, [r3, r2]
cmp r1, r0
blt _080492C6
b _080494E2
_080492C6:
cmp r0, 0
bge _080492CC
adds r0, 0x3
_080492CC:
asrs r0, 2
cmp r1, r0
ble _080492D4
b _080494E2
_080492D4:
cmp r5, 0
bne _080492DA
b _08049420
_080492DA:
b _08049432
_080492DC:
movs r6, 0
movs r0, 0x8C
lsls r0, 1
adds r5, r3, r0
adds r7, r5, 0
movs r2, 0x3
_080492E8:
ldrb r1, [r5]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804930C
ldrb r0, [r5, 0x4]
cmp r0, 0
bne _080492FA
adds r6, 0x1E
_080492FA:
ldrb r4, [r5, 0x4]
adds r0, r7, 0
str r2, [sp]
bl GetMoveMaxPP
ldr r2, [sp]
cmp r4, r0
beq _0804930C
adds r6, 0x6
_0804930C:
adds r5, 0x8
adds r7, 0x8
subs r2, 0x1
cmp r2, 0
bge _080492E8
cmp r6, 0x62
bgt _0804931C
b _080494E2
_0804931C:
movs r6, 0x63
b _080494E2
_08049320:
adds r0, r4, 0
bl HasNegativeStatus
lsls r0, 24
movs r6, 0
b _080494BC
_0804932C:
ldrb r0, [r3, 0x14]
_0804932E:
movs r6, 0x64
cmp r0, 0xF9
bhi _08049336
b _080494E2
_08049336:
b _080494E0
_08049338:
ldrb r0, [r3, 0x15]
b _0804932E
_0804933C:
ldrb r0, [r3, 0x16]
b _0804932E
_08049340:
ldrb r0, [r3, 0x17]
b _0804932E
_08049344:
cmp r5, 0
beq _0804934A
b _080494E0
_0804934A:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x64
cmp r0, 0
bne _0804935A
b _080494E2
_0804935A:
movs r6, 0xA
b _080494E2
_0804935E:
adds r0, r4, 0
bl CanSeeInvisible
lsls r0, 24
cmp r0, 0
beq _0804936C
b _080494A2
_0804936C:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049378:
ldr r0, [r4, 0x70]
movs r1, 0x82
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0x3
ble _08049388
b _080494A2
_08049388:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049394:
adds r0, r3, 0
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0x2
bne _080493A0
b _080494A2
_080493A0:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080493AC:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x4
bne _080494A2
b _080494B2
_080493B8:
adds r0, r3, 0
adds r0, 0xBC
ldrb r0, [r0]
cmp r0, 0x2
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0xF
b _080494BC
_080493CE:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080494A2
b _08049420
_080493E0:
adds r0, r3, 0
adds r0, 0xE8
ldrb r0, [r0]
cmp r0, 0x1
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080493F6:
cmp r2, 0
bne _0804940C
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
cmp r0, 0
beq _080494E2
_08049408:
movs r6, 0x28
b _080494E2
_0804940C:
movs r2, 0xE
ldrsh r1, [r3, r2]
movs r2, 0x10
ldrsh r0, [r3, r2]
cmp r1, r0
bge _080494E2
cmp r1, 0x13
bgt _080494E2
cmp r5, 0
bne _08049432
_08049420:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x32
cmp r0, 0
beq _080494E2
movs r6, 0x64
b _080494E2
_08049432:
movs r6, 0x32
b _080494E2
_08049436:
adds r0, r3, 0
adds r0, 0xA8
ldrb r0, [r0]
cmp r0, 0x1
beq _080494A2
cmp r0, 0x5
beq _080494A2
cmp r0, 0x3
beq _080494A2
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_08049454:
adds r0, r3, 0
adds r0, 0xA8
ldrb r0, [r0]
cmp r0, 0x2
beq _080494A2
movs r6, 0x5
b _080494E2
_08049462:
ldrb r0, [r3, 0x9]
movs r6, 0
cmp r0, 0x62
bhi _080494E2
_0804946A:
movs r6, 0x50
b _080494E2
_0804946E:
adds r0, r3, 0
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x1
beq _0804948A
b _080494E0
_0804947A:
movs r1, 0x9E
lsls r1, 1
adds r0, r3, r1
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0
ble _080494E0
_0804948A:
movs r0, 0x32
b _080494E4
_0804948E:
ldrb r0, [r3, 0x9]
movs r6, 0
cmp r0, 0x1
bls _080494E2
b _0804946A
_08049498:
adds r0, r3, 0
adds r0, 0xB0
ldrb r0, [r0]
cmp r0, 0x6
bne _080494A6
_080494A2:
movs r0, 0
b _080494E4
_080494A6:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x5
b _080494BC
_080494B2:
adds r0, r4, 0
bl CanTargetAdjacentPokemon
lsls r0, 24
movs r6, 0x1E
_080494BC:
cmp r0, 0
beq _080494E2
b _0804946A
_080494C2:
movs r2, 0x9E
lsls r2, 1
adds r0, r3, r2
ldr r0, [r0]
bl GetBellyRoundedUp
cmp r0, 0x9
bgt _080494E0
movs r0, 0x64
b _080494E4
_080494D6:
movs r6, 0x1E
b _080494E2
_080494DA:
movs r6, 0x14
cmp r5, 0
beq _080494E2
_080494E0:
movs r6, 0
_080494E2:
adds r0, r6, 0
_080494E4:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end EvaluateItem
thumb_func_start CanTargetAdjacentPokemon
CanTargetAdjacentPokemon:
push {r4-r6,lr}
adds r5, r0, 0
movs r6, 0
_080494F2:
movs r1, 0x4
ldrsh r0, [r5, r1]
ldr r1, _08049538
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]
cmp r4, 0
beq _0804953C
adds r0, r4, 0
bl GetEntityType
cmp r0, 0
beq _0804953C
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 _0804953C
movs r0, 0x1
b _08049544
.align 2, 0
_08049538: .4byte gAdjacentTileOffsets
_0804953C:
adds r6, 0x1
cmp r6, 0x7
ble _080494F2
movs r0, 0
_08049544:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CanTargetAdjacentPokemon
thumb_func_start GetMapTileAtPosition
GetMapTileAtPosition:
push {lr}
adds r2, r0, 0
adds r3, r1, 0
cmp r2, 0
blt _08049584
cmp r3, 0
blt _08049584
cmp r2, 0x37
bgt _08049584
cmp r3, 0x1F
bgt _08049584
ldr r0, _0804957C
ldr r1, [r0]
lsls r2, 2
lsls r0, r3, 3
subs r0, r3
lsls r0, 5
adds r2, r0
ldr r0, _08049580
adds r1, r0
adds r1, r2
ldr r0, [r1]
b _08049588
.align 2, 0
_0804957C: .4byte gDungeonGlobalData
_08049580: .4byte 0x0000e8c0
_08049584:
ldr r0, _0804958C
ldr r0, [r0]
_08049588:
pop {r1}
bx r1
.align 2, 0
_0804958C: .4byte gUnknown_203B430
thumb_func_end GetMapTileAtPosition
thumb_func_start GetMapEntity
GetMapEntity:
push {r4,r5,lr}
adds r2, r0, 0
adds r3, r1, 0
cmp r2, 0
blt _080495A6
cmp r3, 0
blt _080495A6
cmp r2, 0x37
bgt _080495A6
cmp r3, 0x1F
ble _080495C0
_080495A6:
ldr r0, _080495B8
ldr r1, _080495BC
adds r2, r0, 0
ldr r1, [r1]
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
b _080495D6
.align 2, 0
_080495B8: .4byte gUnknown_202F190
_080495BC: .4byte gUnknown_203B430
_080495C0:
ldr r0, _080495DC
ldr r1, [r0]
lsls r2, 2
lsls r0, r3, 3
subs r0, r3
lsls r0, 5
adds r2, r0
ldr r0, _080495E0
adds r1, r0
adds r1, r2
ldr r0, [r1]
_080495D6:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080495DC: .4byte gDungeonGlobalData
_080495E0: .4byte 0x0000e8c0
thumb_func_end GetMapEntity
thumb_func_start sub_80495E4
sub_80495E4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r2, 0
ldr r0, _08049658
mov r9, r0
mov r12, r9
ldr r7, _0804965C
ldr r1, _08049660
mov r8, r1
_080495FA:
lsls r1, r2, 3
lsls r0, r2, 2
adds r6, r2, 0x1
subs r1, r2
adds r0, r2
lsls r0, 2
adds r0, r2
lsls r0, 6
movs r4, 0
lsls r2, r1, 5
mov r3, r8
adds r5, r0, r3
movs r3, 0x37
_08049614:
mov r1, r12
ldr r0, [r1]
adds r1, r0, r7
adds r1, r2
adds r0, r5
adds r0, r4
str r0, [r1]
adds r4, 0x18
adds r2, 0x4
subs r3, 0x1
cmp r3, 0
bge _08049614
adds r2, r6, 0
cmp r2, 0x1F
ble _080495FA
movs r2, 0
mov r3, r9
ldr r1, [r3]
ldr r4, _08049664
adds r0, r1, r4
movs r3, 0
strh r2, [r0]
adds r4, 0x2
adds r0, r1, r4
strh r2, [r0]
ldr r0, _08049668
adds r1, r0
strb r3, [r1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08049658: .4byte gDungeonGlobalData
_0804965C: .4byte 0x0000e8c0
_08049660: .4byte 0x00003a18
_08049664: .4byte 0x00003a0e
_08049668: .4byte 0x00013570
thumb_func_end sub_80495E4
thumb_func_start sub_804966C
sub_804966C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
ldr r1, _08049734
ldr r0, _08049738
mov r8, r0
ldr r6, _0804973C
ldr r0, [r6]
ldr r5, _08049740
adds r0, r5
movs r2, 0
ldrsh r0, [r0, r2]
add r0, r8
ldrb r2, [r0]
mov r0, sp
bl sprintf
ldr r7, _08049744
mov r0, sp
adds r1, r7, 0
bl OpenFileAndGetFileDataPtr
adds r4, r0, 0
ldr r0, _08049748
movs r1, 0
adds r2, r4, 0
bl DecompressATGlobalFile
adds r0, r4, 0
bl CloseFile
ldr r1, _0804974C
ldr r0, [r6]
adds r0, r5
movs r3, 0
ldrsh r2, [r0, r3]
mov r0, sp
bl sprintf
mov r0, sp
adds r1, r7, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _08049750
str r0, [r1]
ldr r1, _08049754
ldr r0, [r6]
adds r0, r5
movs r4, 0
ldrsh r0, [r0, r4]
add r0, r8
ldrb r2, [r0]
mov r0, sp
bl sprintf
mov r0, sp
adds r1, r7, 0
bl OpenFileAndGetFileDataPtr
adds r4, r0, 0
ldr r0, [r6]
ldr r1, _08049758
adds r0, r1
ldr r1, _0804975C
adds r2, r4, 0
bl DecompressATFile
adds r0, r4, 0
bl CloseFile
ldr r0, [r6]
adds r2, r0, r5
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0x3F
bgt _08049768
ldr r1, _08049760
add r0, r8
ldrb r2, [r0]
mov r0, sp
bl sprintf
mov r0, sp
adds r1, r7, 0
bl OpenFileAndGetFileDataPtr
adds r4, r0, 0
ldr r0, [r6]
ldr r1, _08049764
adds r0, r1
movs r1, 0x93
lsls r1, 4
adds r2, r4, 0
bl DecompressATFile
adds r0, r4, 0
bl CloseFile
b _08049794
.align 2, 0
_08049734: .4byte gUnknown_80F6A04
_08049738: .4byte gUnknown_8108EC0
_0804973C: .4byte gDungeonGlobalData
_08049740: .4byte 0x00003a0e
_08049744: .4byte gDungeonFileArchive
_08049748: .4byte 0x06008000
_0804974C: .4byte gUnknown_80F6A10
_08049750: .4byte gUnknown_202EE88
_08049754: .4byte gUnknown_80F6A1C
_08049758: .4byte 0x00011884
_0804975C: .4byte 0x00001194
_08049760: .4byte gUnknown_80F6A28
_08049764: .4byte 0x00012c24
_08049768:
ldr r1, _080497E8
movs r3, 0
ldrsh r2, [r2, r3]
mov r0, sp
bl sprintf
mov r0, sp
adds r1, r7, 0
bl OpenFileAndGetFileDataPtr
adds r4, r0, 0
ldr r0, [r6]
ldr r1, _080497EC
adds r0, r1
movs r1, 0x90
lsls r1, 2
adds r2, r4, 0
bl DecompressATFile
adds r0, r4, 0
bl CloseFile
_08049794:
ldr r1, _080497F0
ldr r5, _080497F4
ldr r0, [r5]
ldr r4, _080497F8
adds r0, r4
movs r3, 0
ldrsh r2, [r0, r3]
mov r0, sp
bl sprintf
ldr r1, _080497FC
mov r0, sp
bl OpenFileAndGetFileDataPtr
adds r1, r0, 0
ldr r0, _08049800
str r1, [r0]
ldr r0, _08049804
movs r2, 0x20
bl sub_8004AA4
ldr r2, _08049808
movs r6, 0
strb r6, [r2]
movs r3, 0x1
strb r3, [r2, 0x1]
movs r0, 0x2
strb r0, [r2, 0x2]
movs r0, 0x3
strb r0, [r2, 0x3]
ldr r1, _0804980C
ldr r0, [r5]
adds r0, r4
movs r4, 0
ldrsh r0, [r0, r4]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _08049810
strb r3, [r2, 0x4]
strb r6, [r2, 0x5]
b _08049814
.align 2, 0
_080497E8: .4byte gUnknown_80F6A34
_080497EC: .4byte 0x00012c24
_080497F0: .4byte gUnknown_80F6A40
_080497F4: .4byte gDungeonGlobalData
_080497F8: .4byte 0x00003a0e
_080497FC: .4byte gDungeonFileArchive
_08049800: .4byte gUnknown_202F18C
_08049804: .4byte gUnknown_202EE8C
_08049808: .4byte gUnknown_202F314
_0804980C: .4byte gDungeonWaterType
_08049810:
strb r6, [r2, 0x4]
strb r3, [r2, 0x5]
_08049814:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804966C
thumb_func_start sub_8049820
sub_8049820:
push {lr}
ldr r0, _08049838
ldr r0, [r0]
bl CloseFile
ldr r0, _0804983C
ldr r0, [r0]
bl CloseFile
pop {r0}
bx r0
.align 2, 0
_08049838: .4byte gUnknown_202F18C
_0804983C: .4byte gUnknown_202EE88
thumb_func_end sub_8049820
thumb_func_start sub_8049840
sub_8049840:
push {lr}
ldr r0, _08049860
ldr r0, [r0]
ldr r1, _08049864
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_8043CE4
lsls r0, 24
cmp r0, 0
beq _08049870
ldr r1, _08049868
ldr r0, _0804986C
b _08049874
.align 2, 0
_08049860: .4byte gDungeonGlobalData
_08049864: .4byte 0x00003a0e
_08049868: .4byte gUnknown_203B430
_0804986C: .4byte gUnknown_80F69EC
_08049870:
ldr r1, _0804987C
ldr r0, _08049880
_08049874:
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0804987C: .4byte gUnknown_203B430
_08049880: .4byte gUnknown_80F69D4
thumb_func_end sub_8049840
thumb_func_start sub_8049884
sub_8049884:
push {r4-r6,lr}
movs r5, 0
_08049888:
movs r4, 0
adds r6, r5, 0x1
_0804988C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80498A8
adds r4, 0x1
cmp r4, 0x37
ble _0804988C
adds r5, r6, 0
cmp r5, 0x1F
ble _08049888
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8049884
thumb_func_start sub_80498A8
sub_80498A8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
mov r10, r0
mov r9, r1
cmp r0, 0
bge _080498BE
b _08049B72
_080498BE:
cmp r1, 0
bge _080498C4
b _08049B72
_080498C4:
cmp r0, 0x37
ble _080498CA
b _08049B72
_080498CA:
cmp r1, 0x1F
ble _080498D0
b _08049B72
_080498D0:
movs r7, 0
bl GetMapTileAtPosition
ldrh r0, [r0]
movs r1, 0x3
mov r8, r1
mov r6, r8
ands r6, r0
str r6, [sp, 0x20]
ldr r4, _08049914
ldr r0, [r4]
ldr r3, _08049918
adds r0, r3
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x3F
ble _08049928
mov r3, r10
cmp r3, 0x17
bgt _0804991C
mov r0, r9
cmp r0, 0x17
bgt _0804991C
mov r0, r10
mov r1, r9
bl GetMapEntity
ldr r2, [r4]
mov r3, r9
lsls r1, r3, 1
add r1, r9
lsls r1, 3
add r1, r10
b _08049B68
.align 2, 0
_08049914: .4byte gDungeonGlobalData
_08049918: .4byte 0x00003a0e
_0804991C:
mov r0, r10
mov r1, r9
bl GetMapEntity
movs r1, 0
b _08049B70
_08049928:
mov r0, r9
adds r0, 0x1
str r0, [sp, 0x24]
mov r0, r10
ldr r1, [sp, 0x24]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp]
mov r4, r10
adds r4, 0x1
adds r0, r4, 0
ldr r1, [sp, 0x24]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x4]
adds r0, r4, 0
mov r1, r9
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x8]
mov r5, r9
subs r5, 0x1
adds r0, r4, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0xC]
mov r0, r10
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x10]
subs r4, 0x2
adds r0, r4, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
mov r1, r9
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
str r0, [sp, 0x18]
adds r0, r4, 0
ldr r1, [sp, 0x24]
bl GetMapTileAtPosition
ldrh r0, [r0]
mov r1, r8
ands r1, r0
str r1, [sp, 0x1C]
cmp r6, 0x1
bne _08049A1E
movs r7, 0xFF
ldr r0, [sp]
cmp r0, 0
bne _080499C6
movs r7, 0xFE
_080499C6:
ldr r0, [sp, 0x4]
cmp r0, 0
bne _080499D2
movs r0, 0x3
negs r0, r0
ands r7, r0
_080499D2:
ldr r0, [sp, 0x8]
cmp r0, 0
bne _080499DE
movs r0, 0x5
negs r0, r0
ands r7, r0
_080499DE:
ldr r0, [sp, 0xC]
cmp r0, 0
bne _080499EA
movs r0, 0x9
negs r0, r0
ands r7, r0
_080499EA:
ldr r0, [sp, 0x10]
cmp r0, 0
bne _080499F6
movs r0, 0x11
negs r0, r0
ands r7, r0
_080499F6:
ldr r0, [sp, 0x14]
cmp r0, 0
bne _08049A02
movs r0, 0x21
negs r0, r0
ands r7, r0
_08049A02:
ldr r0, [sp, 0x18]
cmp r0, 0
bne _08049A0E
movs r0, 0x41
negs r0, r0
ands r7, r0
_08049A0E:
cmp r1, 0
bne _08049A18
movs r0, 0x81
negs r0, r0
ands r7, r0
_08049A18:
movs r0, 0x80
lsls r0, 2
b _08049B3A
_08049A1E:
cmp r6, 0x2
bne _08049A84
movs r7, 0xFF
ldr r0, [sp]
cmp r0, 0x2
beq _08049A2C
movs r7, 0xFE
_08049A2C:
ldr r0, [sp, 0x4]
cmp r0, 0x2
beq _08049A38
movs r0, 0x3
negs r0, r0
ands r7, r0
_08049A38:
ldr r0, [sp, 0x8]
cmp r0, 0x2
beq _08049A44
movs r0, 0x5
negs r0, r0
ands r7, r0
_08049A44:
ldr r0, [sp, 0xC]
cmp r0, 0x2
beq _08049A50
movs r0, 0x9
negs r0, r0
ands r7, r0
_08049A50:
ldr r0, [sp, 0x10]
cmp r0, 0x2
beq _08049A5C
movs r0, 0x11
negs r0, r0
ands r7, r0
_08049A5C:
ldr r0, [sp, 0x14]
cmp r0, 0x2
beq _08049A68
movs r0, 0x21
negs r0, r0
ands r7, r0
_08049A68:
ldr r0, [sp, 0x18]
cmp r0, 0x2
beq _08049A74
movs r0, 0x41
negs r0, r0
ands r7, r0
_08049A74:
cmp r1, 0x2
beq _08049A7E
movs r0, 0x81
negs r0, r0
ands r7, r0
_08049A7E:
movs r0, 0x80
lsls r0, 1
b _08049B3A
_08049A84:
ldr r1, [sp, 0x20]
cmp r1, 0x3
bne _08049AEE
movs r7, 0xFF
ldr r0, [sp]
cmp r0, 0x3
beq _08049A94
movs r7, 0xFE
_08049A94:
ldr r0, [sp, 0x4]
cmp r0, 0x3
beq _08049AA0
movs r0, 0x3
negs r0, r0
ands r7, r0
_08049AA0:
ldr r0, [sp, 0x8]
cmp r0, 0x3
beq _08049AAC
movs r0, 0x5
negs r0, r0
ands r7, r0
_08049AAC:
ldr r0, [sp, 0xC]
cmp r0, 0x3
beq _08049AB8
movs r0, 0x9
negs r0, r0
ands r7, r0
_08049AB8:
ldr r0, [sp, 0x10]
cmp r0, 0x3
beq _08049AC4
movs r0, 0x11
negs r0, r0
ands r7, r0
_08049AC4:
ldr r0, [sp, 0x14]
cmp r0, 0x3
beq _08049AD0
movs r0, 0x21
negs r0, r0
ands r7, r0
_08049AD0:
ldr r0, [sp, 0x18]
cmp r0, 0x3
beq _08049ADC
movs r0, 0x41
negs r0, r0
ands r7, r0
_08049ADC:
ldr r0, [sp, 0x1C]
cmp r0, 0x3
beq _08049AE8
movs r0, 0x81
negs r0, r0
ands r7, r0
_08049AE8:
movs r0, 0x80
lsls r0, 1
b _08049B3A
_08049AEE:
ldr r0, [sp]
cmp r0, 0
bne _08049AF6
movs r7, 0x1
_08049AF6:
ldr r0, [sp, 0x4]
cmp r0, 0
bne _08049B00
movs r0, 0x2
orrs r7, r0
_08049B00:
ldr r0, [sp, 0x8]
cmp r0, 0
bne _08049B0A
movs r0, 0x4
orrs r7, r0
_08049B0A:
ldr r0, [sp, 0xC]
cmp r0, 0
bne _08049B14
movs r0, 0x8
orrs r7, r0
_08049B14:
ldr r0, [sp, 0x10]
cmp r0, 0
bne _08049B1E
movs r0, 0x10
orrs r7, r0
_08049B1E:
ldr r0, [sp, 0x14]
cmp r0, 0
bne _08049B28
movs r0, 0x20
orrs r7, r0
_08049B28:
ldr r0, [sp, 0x18]
cmp r0, 0
bne _08049B32
movs r0, 0x40
orrs r7, r0
_08049B32:
ldr r0, [sp, 0x1C]
cmp r0, 0
bne _08049B3C
movs r0, 0x80
_08049B3A:
orrs r7, r0
_08049B3C:
movs r0, 0x4
bl RandomCapped
adds r4, r0, 0
cmp r4, 0x3
bne _08049B4A
movs r4, 0
_08049B4A:
bl IsBossBattle
lsls r0, 24
cmp r0, 0
beq _08049B56
movs r4, 0
_08049B56:
mov r0, r10
mov r1, r9
bl GetMapEntity
ldr r1, _08049B84
ldr r2, [r1]
lsls r1, r7, 1
adds r1, r7
adds r1, r4, r1
_08049B68:
ldr r3, _08049B88
adds r2, r3
adds r2, r1
ldrb r1, [r2]
_08049B70:
strb r1, [r0, 0x8]
_08049B72:
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
_08049B84: .4byte gDungeonGlobalData
_08049B88: .4byte 0x00012c24
thumb_func_end sub_80498A8
thumb_func_start sub_8049B8C
sub_8049B8C:
push {r4-r6,lr}
movs r5, 0
_08049B90:
movs r4, 0
adds r6, r5, 0x1
_08049B94:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8049BB0
adds r4, 0x1
cmp r4, 0x37
ble _08049B94
adds r5, r6, 0
cmp r5, 0x1F
ble _08049B90
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8049B8C
thumb_func_start sub_8049BB0
sub_8049BB0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
mov r10, r0
str r1, [sp, 0x40]
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
str r0, [sp, 0xC]
adds r0, r1, 0
adds r0, 0x1
mov r9, r0
mov r0, r10
mov r1, r9
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r4, 0x3
adds r0, r4, 0
ands r0, r1
add r6, sp, 0x18
str r0, [sp, 0x18]
mov r5, r10
adds r5, 0x1
adds r0, r5, 0
mov r1, r9
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x4]
adds r0, r5, 0
ldr r1, [sp, 0x40]
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x8]
ldr r0, [sp, 0x40]
subs r0, 0x1
mov r8, r0
adds r0, r5, 0
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0xC]
mov r0, r10
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x10]
subs r5, 0x2
adds r0, r5, 0
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x14]
adds r0, r5, 0
ldr r1, [sp, 0x40]
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r4, 0
ands r0, r1
str r0, [r6, 0x18]
adds r0, r5, 0
mov r1, r9
bl GetMapTileAtPosition
ldrh r0, [r0]
ands r4, r0
str r4, [r6, 0x1C]
ldr r1, [sp, 0x18]
cmp r1, 0x1
bne _08049C6A
ldr r0, [sp]
orrs r0, r1
str r0, [sp]
_08049C6A:
ldr r0, [r6, 0x8]
cmp r0, 0x1
bne _08049C78
ldr r0, [sp]
movs r1, 0x4
orrs r0, r1
str r0, [sp]
_08049C78:
ldr r0, [r6, 0x10]
cmp r0, 0x1
bne _08049C86
ldr r0, [sp]
movs r1, 0x10
orrs r0, r1
str r0, [sp]
_08049C86:
ldr r0, [r6, 0x18]
cmp r0, 0x1
bne _08049C94
ldr r0, [sp]
movs r1, 0x40
orrs r0, r1
str r0, [sp]
_08049C94:
ldr r2, [sp, 0x18]
cmp r2, 0
beq _08049CAE
ldr r0, [r6, 0x4]
cmp r0, 0x1
bne _08049CAE
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049CC8
ldr r0, [sp]
movs r1, 0x2
orrs r0, r1
str r0, [sp]
_08049CAE:
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049CC8
ldr r0, [r6, 0xC]
cmp r0, 0x1
bne _08049CC8
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049CE2
ldr r0, [sp]
movs r1, 0x8
orrs r0, r1
str r0, [sp]
_08049CC8:
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049CE2
ldr r0, [r6, 0x14]
cmp r0, 0x1
bne _08049CE2
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049CFA
ldr r0, [sp]
movs r1, 0x20
orrs r0, r1
str r0, [sp]
_08049CE2:
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049CFA
ldr r0, [r6, 0x1C]
cmp r0, 0x1
bne _08049CFA
cmp r2, 0
beq _08049CFA
ldr r0, [sp]
movs r1, 0x80
orrs r0, r1
str r0, [sp]
_08049CFA:
add r4, sp, 0x38
movs r7, 0x1
adds r2, r4, 0
adds r1, r6, 0
movs r5, 0
movs r3, 0x7
_08049D06:
ldr r0, [r1]
subs r0, 0x1
cmp r0, 0x1
bhi _08049D12
strb r7, [r2]
b _08049D14
_08049D12:
strb r5, [r2]
_08049D14:
adds r2, 0x1
adds r1, 0x4
subs r3, 0x1
cmp r3, 0
bge _08049D06
ldrb r0, [r4]
cmp r0, 0
beq _08049D2C
ldr r0, [sp, 0x4]
movs r1, 0x1
orrs r0, r1
str r0, [sp, 0x4]
_08049D2C:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _08049D3A
ldr r0, [sp, 0x4]
movs r1, 0x4
orrs r0, r1
str r0, [sp, 0x4]
_08049D3A:
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08049D48
ldr r0, [sp, 0x4]
movs r1, 0x10
orrs r0, r1
str r0, [sp, 0x4]
_08049D48:
ldrb r0, [r4, 0x6]
cmp r0, 0
beq _08049D56
ldr r0, [sp, 0x4]
movs r1, 0x40
orrs r0, r1
str r0, [sp, 0x4]
_08049D56:
ldr r2, [sp, 0x18]
cmp r2, 0
beq _08049D70
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08049D70
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049D8A
ldr r0, [sp, 0x4]
movs r1, 0x2
orrs r0, r1
str r0, [sp, 0x4]
_08049D70:
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049D8A
ldrb r0, [r4, 0x3]
cmp r0, 0
beq _08049D8A
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049DA4
ldr r0, [sp, 0x4]
movs r1, 0x8
orrs r0, r1
str r0, [sp, 0x4]
_08049D8A:
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049DA4
ldrb r0, [r4, 0x5]
cmp r0, 0
beq _08049DA4
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049DBC
ldr r0, [sp, 0x4]
movs r1, 0x20
orrs r0, r1
str r0, [sp, 0x4]
_08049DA4:
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049DBC
ldrb r0, [r4, 0x7]
cmp r0, 0
beq _08049DBC
cmp r2, 0
beq _08049DC8
ldr r0, [sp, 0x4]
movs r1, 0x80
orrs r0, r1
str r0, [sp, 0x4]
_08049DBC:
cmp r2, 0
beq _08049DC8
ldr r0, [sp, 0x8]
movs r1, 0x1
orrs r0, r1
str r0, [sp, 0x8]
_08049DC8:
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049DD6
ldr r0, [sp, 0x8]
movs r1, 0x4
orrs r0, r1
str r0, [sp, 0x8]
_08049DD6:
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049DE4
ldr r0, [sp, 0x8]
movs r1, 0x10
orrs r0, r1
str r0, [sp, 0x8]
_08049DE4:
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049DF2
ldr r0, [sp, 0x8]
movs r1, 0x40
orrs r0, r1
str r0, [sp, 0x8]
_08049DF2:
cmp r2, 0
beq _08049E0A
ldr r0, [r6, 0x4]
cmp r0, 0
beq _08049E0A
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049E24
ldr r0, [sp, 0x8]
movs r1, 0x2
orrs r0, r1
str r0, [sp, 0x8]
_08049E0A:
ldr r0, [r6, 0x8]
cmp r0, 0
beq _08049E24
ldr r0, [r6, 0xC]
cmp r0, 0
beq _08049E24
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049E3E
ldr r0, [sp, 0x8]
movs r1, 0x8
orrs r0, r1
str r0, [sp, 0x8]
_08049E24:
ldr r0, [r6, 0x10]
cmp r0, 0
beq _08049E3E
ldr r0, [r6, 0x14]
cmp r0, 0
beq _08049E3E
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049E56
ldr r0, [sp, 0x8]
movs r1, 0x20
orrs r0, r1
str r0, [sp, 0x8]
_08049E3E:
ldr r0, [r6, 0x18]
cmp r0, 0
beq _08049E56
ldr r0, [r6, 0x1C]
cmp r0, 0
beq _08049E56
cmp r2, 0
beq _08049E56
ldr r0, [sp, 0x8]
movs r1, 0x80
orrs r0, r1
str r0, [sp, 0x8]
_08049E56:
movs r0, 0xFF
str r0, [sp, 0xC]
mov r0, r10
cmp r0, 0x1
bgt _08049E64
movs r0, 0x1F
str r0, [sp, 0xC]
_08049E64:
ldr r0, [sp, 0x40]
cmp r0, 0x1
bgt _08049E74
ldr r0, [sp, 0xC]
movs r1, 0x39
negs r1, r1
ands r0, r1
str r0, [sp, 0xC]
_08049E74:
mov r0, r10
cmp r0, 0x35
ble _08049E84
ldr r0, [sp, 0xC]
movs r1, 0xF
negs r1, r1
ands r0, r1
str r0, [sp, 0xC]
_08049E84:
ldr r0, [sp, 0x40]
cmp r0, 0x1D
ble _08049E94
ldr r0, [sp, 0xC]
movs r1, 0x84
negs r1, r1
ands r0, r1
str r0, [sp, 0xC]
_08049E94:
mov r0, r10
ldr r1, [sp, 0x40]
bl GetMapEntity
ldr r1, [sp]
strb r1, [r0, 0xA]
mov r0, r10
ldr r1, [sp, 0x40]
bl GetMapEntity
ldr r1, [sp, 0x4]
strb r1, [r0, 0xB]
mov r0, r10
ldr r1, [sp, 0x40]
bl GetMapEntity
ldr r1, [sp, 0x8]
strb r1, [r0, 0xC]
mov r0, r10
ldr r1, [sp, 0x40]
bl GetMapEntity
ldr r1, [sp, 0xC]
strb r1, [r0, 0xD]
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_8049BB0
thumb_func_start sub_8049ED4
sub_8049ED4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
ldr r0, _08049F78
ldr r6, [r0]
ldr r1, _08049F7C
adds r0, r6, r1
ldrb r0, [r0]
str r0, [sp]
ldr r2, _08049F80
adds r0, r6, r2
ldrb r0, [r0]
str r0, [sp, 0x4]
ldr r4, _08049F84
adds r0, r6, r4
ldrh r0, [r0]
lsls r0, 16
asrs r3, r0, 19
ldr r1, _08049F88
adds r0, r3, 0
adds r0, 0x1E
lsls r0, 1
adds r1, r0, r1
movs r4, 0
ldrsh r2, [r1, r4]
mov r10, r2
ldr r1, _08049F8C
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
str r1, [sp, 0x10]
movs r4, 0
str r4, [sp, 0x8]
_08049F1C:
ldr r1, _08049F90
adds r0, r6, r1
ldrh r0, [r0]
lsls r0, 16
asrs r0, 19
subs r2, r0, 0x1
mov r9, r2
movs r1, 0x1F
ands r3, r1
ldr r1, _08049F88
adds r0, 0x1D
lsls r0, 1
adds r1, r0, r1
movs r2, 0
ldrsh r4, [r1, r2]
mov r8, r4
ldr r1, _08049F8C
adds r0, r1
movs r1, 0
ldrsh r4, [r0, r1]
str r4, [sp, 0x14]
mov r2, r8
lsls r0, r2, 1
add r0, r8
mov r4, r10
adds r7, r4, r0
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x14]
str r3, [sp, 0x34]
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r2, [r5]
movs r1, 0x80
lsls r1, 5
adds r0, r1, 0
ands r0, r2
ldr r3, [sp, 0x34]
cmp r0, 0
beq _08049F98
lsls r0, r7, 1
ldr r2, _08049F94
adds r0, r2
adds r2, r6, r0
b _0804A06A
.align 2, 0
_08049F78: .4byte gDungeonGlobalData
_08049F7C: .4byte 0x00018210
_08049F80: .4byte 0x0001820f
_08049F84: .4byte 0x000181f0
_08049F88: .4byte gUnknown_80F6A4A
_08049F8C: .4byte gUnknown_80F6C06
_08049F90: .4byte 0x000181f2
_08049F94: .4byte 0x00012bec
_08049F98:
movs r0, 0x20
ands r0, r2
cmp r0, 0
beq _08049FAC
lsls r0, r7, 1
ldr r4, _08049FA8
b _08049FD2
.align 2, 0
_08049FA8: .4byte 0x00012bda
_08049FAC:
ldr r0, [sp]
cmp r0, 0
beq _08049FC4
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _08049FC0
adds r1, r2
b _0804A064
.align 2, 0
_08049FC0: .4byte 0x00011884
_08049FC4:
ldrh r1, [r5, 0x4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08049FDC
lsls r0, r7, 1
ldr r4, _08049FD8
_08049FD2:
adds r0, r4
adds r2, r6, r0
b _0804A06A
.align 2, 0
_08049FD8: .4byte 0x00012bfe
_08049FDC:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A028
adds r0, r4, 0
str r3, [sp, 0x34]
bl GetEntityType
ldr r3, [sp, 0x34]
cmp r0, 0x2
bne _0804A014
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A000
ldr r0, [sp, 0x4]
cmp r0, 0
beq _0804A014
_0804A000:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r1, _0804A010
adds r0, r1
b _0804A046
.align 2, 0
_0804A010: .4byte 0x00012a18
_0804A014:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _0804A024
adds r1, r2
b _0804A064
.align 2, 0
_0804A024: .4byte 0x00011884
_0804A028:
movs r4, 0x80
lsls r4, 2
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _0804A058
ldr r1, _0804A050
adds r0, r6, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r4, _0804A054
adds r0, r4
_0804A046:
adds r0, r6, r0
lsls r1, r7, 1
adds r2, r0, r1
b _0804A06A
.align 2, 0
_0804A050: .4byte 0x00003a12
_0804A054: .4byte 0x00012a18
_0804A058:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r0, _0804A0E8
adds r1, r0
_0804A064:
adds r1, r6, r1
lsls r0, r7, 1
adds r2, r1, r0
_0804A06A:
lsls r1, r3, 1
str r1, [sp, 0x30]
adds r3, 0x1
str r3, [sp, 0x2C]
mov r4, r10
adds r4, 0x1
str r4, [sp, 0x28]
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x24]
mov r1, r10
lsls r3, r1, 1
ldr r4, _0804A0EC
adds r4, r3, r4
str r4, [sp, 0x18]
ldr r0, _0804A0F0
adds r0, r3, r0
str r0, [sp, 0x1C]
ldr r1, _0804A0F4
adds r1, r3, r1
str r1, [sp, 0x20]
movs r4, 0x16
str r4, [sp, 0xC]
_0804A098:
movs r0, 0x1F
mov r1, r9
ands r1, r0
mov r9, r1
lsls r0, r1, 6
ldr r4, [sp, 0x30]
adds r0, r4, r0
ldr r1, _0804A0F8
adds r0, r1
ldrh r1, [r2]
strh r1, [r0]
adds r2, 0x6
movs r4, 0x1
add r9, r4
add r8, r4
mov r0, r8
cmp r0, 0x3
bne _0804A1AC
movs r1, 0
mov r8, r1
ldr r2, [sp, 0x14]
adds r2, 0x1
str r2, [sp, 0x14]
mov r7, r10
ldr r0, [sp, 0x10]
adds r1, r2, 0
str r3, [sp, 0x34]
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r2, [r5]
movs r0, 0x20
ands r0, r2
ldr r3, [sp, 0x34]
cmp r0, 0
beq _0804A0FC
ldr r4, [sp, 0x18]
adds r2, r6, r4
b _0804A1AC
.align 2, 0
_0804A0E8: .4byte 0x00011884
_0804A0EC: .4byte 0x00012bda
_0804A0F0: .4byte 0x00012bec
_0804A0F4: .4byte 0x00012bfe
_0804A0F8: .4byte gUnknown_202C838
_0804A0FC:
movs r1, 0x80
lsls r1, 5
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _0804A10E
ldr r4, [sp, 0x1C]
adds r2, r6, r4
b _0804A1AC
_0804A10E:
ldr r0, [sp]
cmp r0, 0
bne _0804A19C
ldrh r1, [r5, 0x4]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0804A124
ldr r4, [sp, 0x20]
adds r2, r6, r4
b _0804A1AC
_0804A124:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A174
adds r0, r4, 0
str r3, [sp, 0x34]
bl GetEntityType
ldr r3, [sp, 0x34]
cmp r0, 0x2
bne _0804A15C
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A148
ldr r0, [sp, 0x4]
cmp r0, 0
beq _0804A15C
_0804A148:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r1, _0804A158
b _0804A1A6
.align 2, 0
_0804A158: .4byte 0x00012a18
_0804A15C:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _0804A170
adds r1, r2
adds r1, r6, r1
lsls r0, r7, 1
adds r2, r1, r0
b _0804A1AC
.align 2, 0
_0804A170: .4byte 0x00011884
_0804A174:
movs r4, 0x80
lsls r4, 2
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _0804A19C
ldr r1, _0804A194
adds r0, r6, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r4, _0804A198
adds r0, r4
b _0804A1A8
.align 2, 0
_0804A194: .4byte 0x00003a12
_0804A198: .4byte 0x00012a18
_0804A19C:
ldrb r1, [r5, 0x8]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r1, _0804A1EC
_0804A1A6:
adds r0, r1
_0804A1A8:
adds r0, r6, r0
adds r2, r0, r3
_0804A1AC:
ldr r4, [sp, 0xC]
subs r4, 0x1
str r4, [sp, 0xC]
cmp r4, 0
blt _0804A1B8
b _0804A098
_0804A1B8:
ldr r3, [sp, 0x2C]
ldr r0, [sp, 0x28]
mov r10, r0
cmp r0, 0x3
bne _0804A1CC
movs r1, 0
mov r10, r1
ldr r2, [sp, 0x10]
adds r2, 0x1
str r2, [sp, 0x10]
_0804A1CC:
ldr r4, [sp, 0x24]
str r4, [sp, 0x8]
cmp r4, 0x1E
bgt _0804A1D6
b _08049F1C
_0804A1D6:
movs r0, 0x3
bl sub_80098F8
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804A1EC: .4byte 0x00011884
thumb_func_end sub_8049ED4
thumb_func_start sub_804A1F0
sub_804A1F0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
ldr r2, _0804A284
ldr r7, [r2]
ldr r3, _0804A288
adds r2, r7, r3
ldrb r2, [r2]
str r2, [sp]
ldr r4, _0804A28C
adds r2, r7, r4
ldrb r2, [r2]
str r2, [sp, 0x4]
ldr r5, _0804A290
adds r2, r7, r5
movs r3, 0
ldrsh r2, [r2, r3]
adds r2, r0
subs r4, 0x1D
adds r0, r7, r4
movs r5, 0
ldrsh r0, [r0, r5]
adds r0, r1
asrs r0, 3
asrs r2, 3
str r2, [sp, 0x14]
subs r1, r0, 0x1
mov r9, r1
ldr r3, _0804A294
adds r1, r2, 0
adds r1, 0x1E
lsls r1, 1
adds r2, r1, r3
movs r5, 0
ldrsh r4, [r2, r5]
str r4, [sp, 0x10]
ldr r2, _0804A298
adds r1, r2
movs r5, 0
ldrsh r4, [r1, r5]
str r4, [sp, 0xC]
adds r0, 0x1D
lsls r0, 1
adds r3, r0, r3
movs r4, 0
ldrsh r1, [r3, r4]
mov r8, r1
adds r0, r2
movs r1, 0
ldrsh r5, [r0, r1]
mov r10, r5
mov r2, r8
lsls r0, r2, 1
add r0, r8
ldr r3, [sp, 0x10]
adds r6, r3, r0
ldr r0, [sp, 0xC]
mov r1, r10
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0804A2A0
lsls r0, r6, 1
ldr r4, _0804A29C
adds r0, r4
adds r2, r7, r0
b _0804A356
.align 2, 0
_0804A284: .4byte gDungeonGlobalData
_0804A288: .4byte 0x00018210
_0804A28C: .4byte 0x0001820f
_0804A290: .4byte 0x000181f0
_0804A294: .4byte gUnknown_80F6A4A
_0804A298: .4byte gUnknown_80F6C06
_0804A29C: .4byte 0x00012bda
_0804A2A0:
movs r0, 0x80
lsls r0, 5
ands r0, r1
cmp r0, 0
beq _0804A2B8
lsls r0, r6, 1
ldr r5, _0804A2B4
adds r0, r5
adds r2, r7, r0
b _0804A356
.align 2, 0
_0804A2B4: .4byte 0x00012bec
_0804A2B8:
ldr r0, [sp]
cmp r0, 0
beq _0804A2D0
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _0804A2CC
adds r1, r2
b _0804A350
.align 2, 0
_0804A2CC: .4byte 0x00011884
_0804A2D0:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A318
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x2
bne _0804A304
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A2F0
ldr r3, [sp, 0x4]
cmp r3, 0
beq _0804A304
_0804A2F0:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r4, _0804A300
adds r0, r4
b _0804A334
.align 2, 0
_0804A300: .4byte 0x00012a18
_0804A304:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r5, _0804A314
adds r1, r5
b _0804A350
.align 2, 0
_0804A314: .4byte 0x00011884
_0804A318:
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _0804A344
ldr r1, _0804A33C
adds r0, r7, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r3, _0804A340
adds r0, r3
_0804A334:
adds r0, r7, r0
lsls r1, r6, 1
adds r2, r0, r1
b _0804A356
.align 2, 0
_0804A33C: .4byte 0x00003a12
_0804A340: .4byte 0x00012a18
_0804A344:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r4, _0804A3AC
adds r1, r4
_0804A350:
adds r1, r7, r1
lsls r0, r6, 1
adds r2, r1, r0
_0804A356:
movs r5, 0x16
str r5, [sp, 0x8]
_0804A35A:
movs r0, 0x1F
ldr r1, [sp, 0x14]
ands r1, r0
str r1, [sp, 0x14]
mov r3, r9
ands r3, r0
mov r9, r3
lsls r1, 1
lsls r0, r3, 6
adds r1, r0
ldr r4, _0804A3B0
adds r1, r4
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x6
movs r5, 0x1
add r9, r5
add r8, r5
mov r0, r8
cmp r0, 0x3
beq _0804A386
b _0804A476
_0804A386:
movs r1, 0
mov r8, r1
add r10, r5
ldr r6, [sp, 0x10]
ldr r0, [sp, 0xC]
mov r1, r10
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0804A3B8
lsls r0, r6, 1
ldr r2, _0804A3B4
adds r0, r2
adds r2, r7, r0
b _0804A476
.align 2, 0
_0804A3AC: .4byte 0x00011884
_0804A3B0: .4byte gUnknown_202C838
_0804A3B4: .4byte 0x00012bda
_0804A3B8:
movs r3, 0x80
lsls r3, 5
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0804A3D4
lsls r0, r6, 1
ldr r4, _0804A3D0
adds r0, r4
adds r2, r7, r0
b _0804A476
.align 2, 0
_0804A3D0: .4byte 0x00012bec
_0804A3D4:
ldr r0, [sp]
cmp r0, 0
beq _0804A3EC
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _0804A3E8
adds r1, r2
b _0804A470
.align 2, 0
_0804A3E8: .4byte 0x00011884
_0804A3EC:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A434
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x2
bne _0804A420
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A40C
ldr r3, [sp, 0x4]
cmp r3, 0
beq _0804A420
_0804A40C:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r4, _0804A41C
adds r0, r4
b _0804A452
.align 2, 0
_0804A41C: .4byte 0x00012a18
_0804A420:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r5, _0804A430
adds r1, r5
b _0804A470
.align 2, 0
_0804A430: .4byte 0x00011884
_0804A434:
movs r2, 0x80
lsls r2, 2
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0804A464
ldr r3, _0804A45C
adds r0, r7, r3
movs r4, 0
ldrsh r1, [r0, r4]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r5, _0804A460
adds r0, r5
_0804A452:
adds r0, r7, r0
lsls r1, r6, 1
adds r2, r0, r1
b _0804A476
.align 2, 0
_0804A45C: .4byte 0x00003a12
_0804A460: .4byte 0x00012a18
_0804A464:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r0, _0804A498
adds r1, r0
_0804A470:
adds r1, r7, r1
lsls r0, r6, 1
adds r2, r1, r0
_0804A476:
ldr r1, [sp, 0x8]
subs r1, 0x1
str r1, [sp, 0x8]
cmp r1, 0
blt _0804A482
b _0804A35A
_0804A482:
movs r0, 0x3
bl sub_80098F8
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
_0804A498: .4byte 0x00011884
thumb_func_end sub_804A1F0
thumb_func_start sub_804A49C
sub_804A49C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
ldr r2, _0804A52C
ldr r7, [r2]
ldr r3, _0804A530
adds r2, r7, r3
ldrb r2, [r2]
str r2, [sp]
ldr r4, _0804A534
adds r2, r7, r4
ldrb r2, [r2]
str r2, [sp, 0x4]
subs r3, 0x20
adds r2, r7, r3
movs r4, 0
ldrsh r2, [r2, r4]
adds r2, r0
adds r3, 0x2
adds r0, r7, r3
movs r4, 0
ldrsh r0, [r0, r4]
adds r0, r1
asrs r2, 3
mov r8, r2
asrs r0, 3
str r0, [sp, 0x14]
ldr r2, _0804A538
mov r0, r8
adds r0, 0x1E
lsls r0, 1
adds r1, r0, r2
movs r4, 0
ldrsh r3, [r1, r4]
mov r9, r3
ldr r1, _0804A53C
adds r0, r1
movs r4, 0
ldrsh r3, [r0, r4]
mov r10, r3
ldr r0, [sp, 0x14]
adds r0, 0x1E
lsls r0, 1
adds r2, r0, r2
movs r4, 0
ldrsh r3, [r2, r4]
str r3, [sp, 0x10]
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
str r1, [sp, 0xC]
lsls r0, r3, 1
adds r0, r3
mov r3, r9
adds r6, r3, r0
mov r0, r10
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0804A544
lsls r0, r6, 1
ldr r4, _0804A540
adds r0, r4
adds r2, r7, r0
b _0804A5DA
.align 2, 0
_0804A52C: .4byte gDungeonGlobalData
_0804A530: .4byte 0x00018210
_0804A534: .4byte 0x0001820f
_0804A538: .4byte gUnknown_80F6A4A
_0804A53C: .4byte gUnknown_80F6C06
_0804A540: .4byte 0x00012bda
_0804A544:
movs r0, 0x80
lsls r0, 5
ands r0, r1
cmp r0, 0
beq _0804A55C
lsls r0, r6, 1
ldr r1, _0804A558
adds r0, r1
adds r2, r7, r0
b _0804A5DA
.align 2, 0
_0804A558: .4byte 0x00012bec
_0804A55C:
ldr r2, [sp]
cmp r2, 0
beq _0804A574
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r3, _0804A570
adds r1, r3
b _0804A5D4
.align 2, 0
_0804A570: .4byte 0x00011884
_0804A574:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A59A
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x2
bne _0804A5C8
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A594
ldr r0, [sp, 0x4]
cmp r0, 0
beq _0804A5C8
_0804A594:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
b _0804A5AC
_0804A59A:
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _0804A5C8
ldr r3, _0804A5C0
adds r0, r7, r3
movs r4, 0
ldrsh r1, [r0, r4]
_0804A5AC:
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r1, _0804A5C4
adds r0, r1
adds r0, r7, r0
lsls r1, r6, 1
adds r2, r0, r1
b _0804A5DA
.align 2, 0
_0804A5C0: .4byte 0x00003a12
_0804A5C4: .4byte 0x00012a18
_0804A5C8:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r2, _0804A638
adds r1, r2
_0804A5D4:
adds r1, r7, r1
lsls r0, r6, 1
adds r2, r1, r0
_0804A5DA:
movs r3, 0x1E
str r3, [sp, 0x8]
_0804A5DE:
movs r0, 0x1F
mov r4, r8
ands r4, r0
mov r8, r4
ldr r1, [sp, 0x14]
ands r1, r0
str r1, [sp, 0x14]
lsls r1, r4, 1
ldr r3, [sp, 0x14]
lsls r0, r3, 6
adds r1, r0
ldr r4, _0804A63C
adds r1, r4
ldrh r0, [r2]
strh r0, [r1]
adds r2, 0x2
movs r0, 0x1
add r8, r0
add r9, r0
mov r1, r9
cmp r1, 0x3
beq _0804A60C
b _0804A702
_0804A60C:
movs r2, 0
mov r9, r2
add r10, r0
ldr r3, [sp, 0x10]
lsls r0, r3, 1
adds r6, r0, r3
mov r0, r10
ldr r1, [sp, 0xC]
bl GetMapTileAtPosition
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0804A644
lsls r0, r6, 1
ldr r4, _0804A640
adds r0, r4
adds r2, r7, r0
b _0804A702
.align 2, 0
_0804A638: .4byte 0x00011884
_0804A63C: .4byte gUnknown_202C838
_0804A640: .4byte 0x00012bda
_0804A644:
movs r2, 0x80
lsls r2, 5
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0804A660
lsls r0, r6, 1
ldr r3, _0804A65C
adds r0, r3
adds r2, r7, r0
b _0804A702
.align 2, 0
_0804A65C: .4byte 0x00012bec
_0804A660:
ldr r4, [sp]
cmp r4, 0
beq _0804A678
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r0, _0804A674
adds r1, r0
b _0804A6FC
.align 2, 0
_0804A674: .4byte 0x00011884
_0804A678:
ldr r4, [r5, 0x14]
cmp r4, 0
beq _0804A6C0
adds r0, r4, 0
bl GetEntityType
cmp r0, 0x2
bne _0804A6AC
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _0804A698
ldr r1, [sp, 0x4]
cmp r1, 0
beq _0804A6AC
_0804A698:
ldr r0, [r4, 0x70]
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r2, _0804A6A8
adds r0, r2
b _0804A6DE
.align 2, 0
_0804A6A8: .4byte 0x00012a18
_0804A6AC:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r3, _0804A6BC
adds r1, r3
b _0804A6FC
.align 2, 0
_0804A6BC: .4byte 0x00011884
_0804A6C0:
movs r4, 0x80
lsls r4, 2
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0804A6F0
ldr r1, _0804A6E8
adds r0, r7, r1
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
ldr r3, _0804A6EC
adds r0, r3
_0804A6DE:
adds r0, r7, r0
lsls r1, r6, 1
adds r2, r0, r1
b _0804A702
.align 2, 0
_0804A6E8: .4byte 0x00003a12
_0804A6EC: .4byte 0x00012a18
_0804A6F0:
ldrb r0, [r5, 0x8]
lsls r1, r0, 3
adds r1, r0
lsls r1, 1
ldr r4, _0804A724
adds r1, r4
_0804A6FC:
adds r1, r7, r1
lsls r0, r6, 1
adds r2, r1, r0
_0804A702:
ldr r0, [sp, 0x8]
subs r0, 0x1
str r0, [sp, 0x8]
cmp r0, 0
blt _0804A70E
b _0804A5DE
_0804A70E:
movs r0, 0x3
bl sub_80098F8
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
_0804A724: .4byte 0x00011884
thumb_func_end sub_804A49C
thumb_func_start sub_804A728
sub_804A728:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
str r0, [sp, 0x1C]
adds r5, r1, 0
adds r4, r3, 0
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x20]
lsls r4, 24
lsrs r4, 24
ldr r6, _0804A814
ldr r0, [r6]
mov r8, r0
bl GetLeaderEntity
str r0, [sp, 0x24]
ldr r0, _0804A818
add r0, r8
ldrh r0, [r0]
lsls r0, 16
asrs r0, 19
str r0, [sp, 0x30]
adds r1, r0, 0
ldr r0, [r6]
ldr r2, _0804A81C
adds r0, r2
strb r4, [r0]
ldr r3, [sp, 0x1C]
movs r4, 0
ldrsh r7, [r3, r4]
movs r0, 0x2
ldrsh r6, [r3, r0]
ldr r0, _0804A820
lsls r5, 2
adds r5, r0
movs r2, 0
ldrsh r4, [r5, r2]
movs r0, 0x2
ldrsh r3, [r5, r0]
mov r0, sp
movs r2, 0x5
_0804A782:
strh r7, [r0]
strh r6, [r0, 0x2]
adds r7, r4
adds r6, r3
adds r0, 0x4
subs r2, 0x1
cmp r2, 0
bge _0804A782
ldr r0, _0804A824
adds r1, 0x1E
lsls r1, 1
adds r0, r1, r0
movs r3, 0
ldrsh r2, [r0, r3]
str r2, [sp, 0x28]
ldr r0, _0804A828
adds r1, r0
movs r0, 0
ldrsh r4, [r1, r0]
mov r10, r4
movs r7, 0
_0804A7AC:
ldr r0, _0804A82C
add r0, r8
ldrh r0, [r0]
lsls r0, 16
asrs r0, 19
str r0, [sp, 0x34]
ldr r0, _0804A824
ldr r1, [sp, 0x34]
adds r1, 0x1E
lsls r1, 1
adds r0, r1, r0
movs r3, 0
ldrsh r2, [r0, r3]
str r2, [sp, 0x2C]
ldr r0, _0804A828
adds r1, r0
movs r0, 0
ldrsh r4, [r1, r0]
mov r9, r4
lsls r0, r2, 1
adds r0, r2
ldr r1, [sp, 0x28]
adds r5, r1, r0
mov r2, r10
lsls r0, r2, 16
lsls r1, r4, 16
lsrs r0, 16
orrs r0, r1
str r0, [sp, 0x18]
ldr r3, [sp, 0x20]
cmp r3, 0
beq _0804A850
ldr r4, [sp, 0x1C]
movs r1, 0
ldrsh r0, [r4, r1]
cmp r10, r0
bne _0804A834
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r9, r0
bne _0804A834
lsls r0, r5, 1
ldr r3, _0804A830
adds r0, r3
mov r4, r8
adds r2, r4, r0
ldr r0, [sp, 0x28]
adds r0, 0x1
str r0, [sp, 0x3C]
adds r1, r7, 0x1
str r1, [sp, 0x38]
b _0804A8FC
.align 2, 0
_0804A814: .4byte gDungeonGlobalData
_0804A818: .4byte 0x000181f0
_0804A81C: .4byte 0x0001821a
_0804A820: .4byte gAdjacentTileOffsets
_0804A824: .4byte gUnknown_80F6A4A
_0804A828: .4byte gUnknown_80F6C06
_0804A82C: .4byte 0x000181f2
_0804A830: .4byte 0x00012b92
_0804A834:
lsls r0, r5, 1
ldr r2, _0804A84C
adds r0, r2
mov r3, r8
adds r2, r3, r0
ldr r4, [sp, 0x28]
adds r4, 0x1
str r4, [sp, 0x3C]
adds r0, r7, 0x1
str r0, [sp, 0x38]
b _0804A8FC
.align 2, 0
_0804A84C: .4byte 0x00013554
_0804A850:
add r4, sp, 0x18
ldr r0, [sp, 0x24]
adds r1, r4, 0
bl sub_807049C
lsls r0, 24
cmp r0, 0
bne _0804A8E8
ldr r0, [sp, 0x24]
adds r1, r4, 0
bl sub_8045AAC
lsls r0, 24
cmp r0, 0
beq _0804A8E8
movs r2, 0
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
lsls r3, r5, 1
ldr r4, [sp, 0x28]
adds r4, 0x1
str r4, [sp, 0x3C]
adds r1, r7, 0x1
str r1, [sp, 0x38]
cmp r0, r10
bne _0804A890
mov r0, sp
movs r4, 0x2
ldrsh r0, [r0, r4]
cmp r0, r9
beq _0804A8AC
_0804A890:
adds r2, 0x1
cmp r2, 0x5
bgt _0804A8AC
lsls r0, r2, 2
mov r4, sp
adds r1, r4, r0
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, r10
bne _0804A890
movs r4, 0x2
ldrsh r0, [r1, r4]
cmp r0, r9
bne _0804A890
_0804A8AC:
cmp r2, 0x6
bne _0804A8D8
ldr r0, _0804A8C0
ldr r0, [r0]
ldrb r0, [r0, 0x3]
cmp r0, 0
beq _0804A8C8
ldr r1, _0804A8C4
adds r0, r3, r1
b _0804A8DC
.align 2, 0
_0804A8C0: .4byte gUnknown_203B46C
_0804A8C4: .4byte 0x00012b80
_0804A8C8:
ldr r4, _0804A8D4
adds r0, r3, r4
mov r1, r8
adds r2, r1, r0
b _0804A8FC
.align 2, 0
_0804A8D4: .4byte 0x00013554
_0804A8D8:
ldr r2, _0804A8E4
adds r0, r3, r2
_0804A8DC:
mov r3, r8
adds r2, r3, r0
b _0804A8FC
.align 2, 0
_0804A8E4: .4byte 0x00012b92
_0804A8E8:
lsls r0, r5, 1
ldr r4, _0804A968
adds r0, r4
mov r1, r8
adds r2, r1, r0
ldr r3, [sp, 0x28]
adds r3, 0x1
str r3, [sp, 0x3C]
adds r4, r7, 0x1
str r4, [sp, 0x38]
_0804A8FC:
movs r6, 0
_0804A8FE:
movs r0, 0x1F
ldr r1, [sp, 0x30]
ands r1, r0
str r1, [sp, 0x30]
ldr r3, [sp, 0x34]
ands r3, r0
lsls r0, r1, 1
lsls r1, r3, 6
adds r0, r1
ldr r4, _0804A96C
adds r0, r4
ldrh r1, [r2]
strh r1, [r0]
adds r2, 0x6
adds r3, 0x1
str r3, [sp, 0x34]
ldr r0, [sp, 0x2C]
adds r0, 0x1
str r0, [sp, 0x2C]
adds r7, r6, 0x1
cmp r0, 0x3
beq _0804A92C
b _0804AA20
_0804A92C:
movs r1, 0
str r1, [sp, 0x2C]
movs r2, 0x1
add r9, r2
ldr r5, [sp, 0x28]
add r4, sp, 0x18
mov r3, r10
strh r3, [r4]
adds r0, r4, 0
mov r1, r9
strh r1, [r0, 0x2]
ldr r2, [sp, 0x20]
cmp r2, 0
beq _0804A984
ldr r3, [sp, 0x1C]
movs r4, 0
ldrsh r0, [r3, r4]
cmp r10, r0
bne _0804A974
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r9, r0
bne _0804A974
ldr r2, [sp, 0x28]
lsls r0, r2, 1
ldr r3, _0804A970
adds r0, r3
mov r4, r8
adds r2, r4, r0
b _0804AA20
.align 2, 0
_0804A968: .4byte 0x00013554
_0804A96C: .4byte gUnknown_202C038
_0804A970: .4byte 0x00012b92
_0804A974:
lsls r0, r5, 1
ldr r1, _0804A980
adds r0, r1
mov r3, r8
adds r2, r3, r0
b _0804AA1E
.align 2, 0
_0804A980: .4byte 0x00013554
_0804A984:
ldr r0, [sp, 0x24]
adds r1, r4, 0
bl sub_807049C
lsls r0, 24
cmp r0, 0
bne _0804AA14
ldr r0, [sp, 0x24]
adds r1, r4, 0
bl sub_8045AAC
lsls r0, 24
cmp r0, 0
beq _0804AA14
movs r2, 0
mov r0, sp
movs r4, 0
ldrsh r0, [r0, r4]
ldr r1, [sp, 0x28]
lsls r3, r1, 1
cmp r0, r10
bne _0804A9BA
mov r0, sp
movs r4, 0x2
ldrsh r0, [r0, r4]
cmp r0, r9
beq _0804A9D6
_0804A9BA:
adds r2, 0x1
cmp r2, 0x5
bgt _0804A9D6
lsls r0, r2, 2
mov r4, sp
adds r1, r4, r0
movs r4, 0
ldrsh r0, [r1, r4]
cmp r0, r10
bne _0804A9BA
movs r4, 0x2
ldrsh r0, [r1, r4]
cmp r0, r9
bne _0804A9BA
_0804A9D6:
cmp r2, 0x6
bne _0804AA04
ldr r0, _0804A9EC
ldr r0, [r0]
ldrb r0, [r0, 0x3]
cmp r0, 0
beq _0804A9F4
ldr r1, _0804A9F0
adds r0, r3, r1
b _0804AA08
.align 2, 0
_0804A9EC: .4byte gUnknown_203B46C
_0804A9F0: .4byte 0x00012b80
_0804A9F4:
ldr r4, _0804AA00
adds r0, r3, r4
mov r1, r8
adds r2, r1, r0
b _0804AA20
.align 2, 0
_0804AA00: .4byte 0x00013554
_0804AA04:
ldr r2, _0804AA10
adds r0, r3, r2
_0804AA08:
mov r3, r8
adds r2, r3, r0
b _0804AA20
.align 2, 0
_0804AA10: .4byte 0x00012b92
_0804AA14:
lsls r0, r5, 1
ldr r4, _0804AA5C
adds r0, r4
mov r1, r8
adds r2, r1, r0
_0804AA1E:
adds r7, r6, 0x1
_0804AA20:
adds r6, r7, 0
cmp r6, 0x14
bgt _0804AA28
b _0804A8FE
_0804AA28:
ldr r2, [sp, 0x30]
adds r2, 0x1
str r2, [sp, 0x30]
ldr r3, [sp, 0x3C]
str r3, [sp, 0x28]
cmp r3, 0x3
bne _0804AA3E
movs r4, 0
str r4, [sp, 0x28]
movs r0, 0x1
add r10, r0
_0804AA3E:
ldr r7, [sp, 0x38]
cmp r7, 0x1E
bgt _0804AA46
b _0804A7AC
_0804AA46:
movs r0, 0x2
bl sub_80098F8
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804AA5C: .4byte 0x00013554
thumb_func_end sub_804A728
thumb_func_start sub_804AA60
sub_804AA60:
push {r4,lr}
movs r1, 0
ldr r0, _0804AAA0
movs r3, 0
movs r2, 0x80
lsls r2, 5
adds r4, r0, r2
_0804AA6E:
lsls r0, r1, 6
adds r2, r1, 0x1
movs r1, 0x1F
adds r0, r4
adds r0, 0x3E
_0804AA78:
strh r3, [r0]
subs r0, 0x2
subs r1, 0x1
cmp r1, 0
bge _0804AA78
adds r1, r2, 0
cmp r1, 0x1F
ble _0804AA6E
movs r4, 0
movs r0, 0x2
bl sub_80098F8
ldr r0, _0804AAA4
ldr r0, [r0]
ldr r1, _0804AAA8
adds r0, r1
strb r4, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0804AAA0: .4byte gUnknown_202B038
_0804AAA4: .4byte gDungeonGlobalData
_0804AAA8: .4byte 0x0001821a
thumb_func_end sub_804AA60
thumb_func_start sub_804AAAC
sub_804AAAC:
push {r4-r7,lr}
movs r5, 0
movs r7, 0
_0804AAB2:
movs r4, 0
adds r6, r5, 0x1
_0804AAB6:
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
strh r7, [r0, 0x4]
adds r4, 0x1
cmp r4, 0x37
ble _0804AAB6
adds r5, r6, 0
cmp r5, 0x1F
ble _0804AAB2
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804AAAC
thumb_func_start sub_804AAD4
sub_804AAD4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _0804AC04
movs r0, 0
mov r8, r0
ldr r6, _0804AC08
ldr r5, _0804AC0C
movs r2, 0
movs r3, 0x1F
_0804AAEA:
ldr r0, [r4]
adds r0, r2
ldr r1, _0804AC10
adds r0, r1
mov r7, r8
strb r7, [r0]
ldr r0, [r4]
adds r0, r2
adds r1, 0x1
adds r0, r1
strb r7, [r0]
ldr r0, [r4]
adds r0, r2
ldr r7, _0804AC14
adds r1, r0, r7
strh r6, [r1]
adds r7, 0x2
adds r1, r0, r7
strh r6, [r1]
adds r7, 0x2
adds r1, r0, r7
strh r5, [r1]
ldr r1, _0804AC18
adds r0, r1
strh r5, [r0]
adds r2, 0x1C
subs r3, 0x1
cmp r3, 0
bge _0804AAEA
movs r4, 0
mov r9, r4
movs r6, 0
ldr r7, _0804AC04
mov r8, r7
_0804AB2E:
movs r4, 0
adds r5, r6, 0x1
_0804AB32:
adds r0, r4, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrb r2, [r0, 0x9]
adds r3, r4, 0x1
cmp r2, 0xFF
beq _0804AB84
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
ldr r1, _0804AC10
adds r0, r1
mov r7, r8
ldr r1, [r7]
adds r1, r0
movs r0, 0x1
strb r0, [r1]
movs r7, 0x2
ldrsh r0, [r1, r7]
cmp r0, r4
ble _0804AB60
strh r4, [r1, 0x2]
_0804AB60:
movs r4, 0x4
ldrsh r0, [r1, r4]
cmp r0, r6
ble _0804AB6A
strh r6, [r1, 0x4]
_0804AB6A:
movs r7, 0x6
ldrsh r0, [r1, r7]
cmp r0, r3
bge _0804AB74
strh r3, [r1, 0x6]
_0804AB74:
movs r4, 0x8
ldrsh r0, [r1, r4]
cmp r0, r5
bge _0804AB7E
strh r5, [r1, 0x8]
_0804AB7E:
cmp r9, r2
bge _0804AB84
mov r9, r2
_0804AB84:
adds r4, r3, 0
cmp r4, 0x37
ble _0804AB32
adds r6, r5, 0
cmp r6, 0x1F
ble _0804AB2E
ldr r7, _0804AC04
mov r8, r7
mov r5, r9
adds r5, 0x1
mov r6, r8
movs r4, 0
movs r3, 0x1F
_0804AB9E:
ldr r1, _0804AC10
adds r0, r4, r1
ldr r1, [r6]
adds r2, r1, r0
ldrb r0, [r2]
cmp r0, 0
beq _0804ABE4
movs r7, 0x2
ldrsh r1, [r2, r7]
subs r1, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
str r0, [r2, 0xC]
movs r0, 0x4
ldrsh r1, [r2, r0]
subs r1, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
str r0, [r2, 0x10]
movs r7, 0x6
ldrsh r1, [r2, r7]
adds r1, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
str r0, [r2, 0x14]
movs r0, 0x8
ldrsh r1, [r2, r0]
adds r1, 0x1
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
str r0, [r2, 0x18]
_0804ABE4:
adds r4, 0x1C
subs r3, 0x1
cmp r3, 0
bge _0804AB9E
mov r1, r8
ldr r0, [r1]
ldr r4, _0804AC1C
adds r0, r4
strb r5, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804AC04: .4byte gDungeonGlobalData
_0804AC08: .4byte 0x0000270f
_0804AC0C: .4byte 0x0000d8f1
_0804AC10: .4byte 0x000104c4
_0804AC14: .4byte 0x000104c6
_0804AC18: .4byte 0x000104cc
_0804AC1C: .4byte 0x000104c0
thumb_func_end sub_804AAD4
thumb_func_start sub_804AC20
sub_804AC20:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
ldr r0, _0804AC6C
ldr r3, [r0]
ldr r5, _0804AC70
adds r0, r3, r5
ldrb r2, [r0]
adds r5, 0x1
adds r0, r3, r5
ldrb r0, [r0]
cmp r0, 0
bne _0804ACD4
cmp r2, 0
bne _0804AC52
movs r2, 0x2
_0804AC52:
cmp r1, 0xFF
bne _0804AC74
movs r0, 0
ldrsh r1, [r4, r0]
subs r3, r1, r2
mov r9, r3
movs r5, 0x2
ldrsh r0, [r4, r5]
subs r3, r0, r2
adds r6, r1, r2
adds r0, r2
mov r8, r0
b _0804ACA2
.align 2, 0
_0804AC6C: .4byte gDungeonGlobalData
_0804AC70: .4byte 0x00018209
_0804AC74:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r1, _0804ACE0
adds r0, r1
adds r2, r3, r0
ldrb r0, [r2, 0x1]
cmp r0, 0
bne _0804ACD4
movs r0, 0x1
strb r0, [r2, 0x1]
movs r3, 0x2
ldrsh r0, [r2, r3]
subs r0, 0x1
mov r9, r0
movs r5, 0x4
ldrsh r0, [r2, r5]
subs r3, r0, 0x1
movs r0, 0x6
ldrsh r6, [r2, r0]
movs r5, 0x8
ldrsh r1, [r2, r5]
mov r8, r1
_0804ACA2:
adds r5, r3, 0
cmp r5, r8
bgt _0804ACD4
_0804ACA8:
mov r4, r9
adds r7, r5, 0x1
cmp r4, r6
bgt _0804ACCE
_0804ACB0:
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x3
orrs r1, r2
strh r1, [r0, 0x4]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80402AC
adds r4, 0x1
cmp r4, r6
ble _0804ACB0
_0804ACCE:
adds r5, r7, 0
cmp r5, r8
ble _0804ACA8
_0804ACD4:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804ACE0: .4byte 0x000104c4
thumb_func_end sub_804AC20
thumb_func_start sub_804ACE4
sub_804ACE4:
push {lr}
movs r1, 0
ldrsh r2, [r0, r1]
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r0, r2, 0
bl GetMapTileAtPosition
ldr r0, [r0, 0x14]
cmp r0, 0
beq _0804AD06
bl GetEntityType
cmp r0, 0x3
bne _0804AD06
movs r0, 0x1
b _0804AD08
_0804AD06:
movs r0, 0
_0804AD08:
pop {r1}
bx r1
thumb_func_end sub_804ACE4
thumb_func_start sub_804AD0C
sub_804AD0C:
push {lr}
movs r1, 0
ldrsh r2, [r0, r1]
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r0, r2, 0
bl GetMapTileAtPosition
ldr r1, [r0, 0x10]
cmp r1, 0
beq _0804AD2C
ldr r0, [r1]
cmp r0, 0x1
bne _0804AD2C
adds r0, r1, 0
b _0804AD2E
_0804AD2C:
movs r0, 0
_0804AD2E:
pop {r1}
bx r1
thumb_func_end sub_804AD0C
thumb_func_start sub_804AD34
sub_804AD34:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
movs r0, 0
mov r8, r0
movs r1, 0
ldrsh r0, [r6, r1]
movs r2, 0x2
ldrsh r1, [r6, r2]
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0804ADB6
movs r0, 0x88
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _0804ADB6
movs r0, 0x1
mov r8, r0
ldr r0, _0804ADFC
ands r0, r1
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
movs r5, 0x1
negs r5, r5
_0804AD74:
movs r4, 0x1
negs r4, r4
adds r7, r5, 0x1
_0804AD7A:
movs r1, 0
ldrsh r0, [r6, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
adds r1, r5, r1
bl sub_80498A8
movs r1, 0
ldrsh r0, [r6, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
adds r1, r5, r1
bl sub_8049BB0
movs r1, 0
ldrsh r0, [r6, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
adds r1, r5, r1
bl sub_80402AC
adds r4, 0x1
cmp r4, 0x1
ble _0804AD7A
adds r5, r7, 0
cmp r5, 0x1
ble _0804AD74
_0804ADB6:
mov r0, r8
cmp r0, 0
beq _0804ADEE
movs r5, 0
_0804ADBE:
ldr r0, _0804AE00
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _0804AE04
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804ADDE
adds r0, r4, 0
bl sub_806CF98
_0804ADDE:
adds r5, 0x1
cmp r5, 0x13
ble _0804ADBE
bl sub_8049ED4
adds r0, r6, 0
bl sub_8042A14
_0804ADEE:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0804ADFC: .4byte 0x0000fffc
_0804AE00: .4byte gDungeonGlobalData
_0804AE04: .4byte 0x000135cc
thumb_func_end sub_804AD34
thumb_func_start sub_804AE08
sub_804AE08:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
movs r0, 0
mov r8, r0
movs r1, 0
ldrsh r0, [r7, r1]
movs r2, 0x2
ldrsh r1, [r7, r2]
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0804AE72
movs r0, 0x88
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _0804AE72
movs r0, 0x1
mov r8, r0
ldr r0, _0804AE80
ands r0, r1
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
ldrh r1, [r2, 0x4]
movs r0, 0x10
orrs r0, r1
strh r0, [r2, 0x4]
movs r5, 0x1
negs r5, r5
_0804AE50:
movs r4, 0x1
negs r4, r4
adds r6, r5, 0x1
_0804AE56:
movs r1, 0
ldrsh r0, [r7, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r7, r2]
adds r1, r5, r1
bl sub_8049BB0
adds r4, 0x1
cmp r4, 0x1
ble _0804AE56
adds r5, r6, 0
cmp r5, 0x1
ble _0804AE50
_0804AE72:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0804AE80: .4byte 0x0000fffc
thumb_func_end sub_804AE08
thumb_func_start sub_804AE84
sub_804AE84:
push {r4-r7,lr}
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r2, 0x2
ldrsh r1, [r5, r2]
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2, 0x4]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0804AF0E
ldr r0, _0804AF14
ands r0, r1
strh r0, [r2, 0x4]
movs r6, 0x1
negs r6, r6
_0804AEAA:
movs r4, 0x1
negs r4, r4
adds r7, r6, 0x1
_0804AEB0:
movs r1, 0
ldrsh r0, [r5, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r5, r2]
adds r1, r6, r1
bl sub_80498A8
movs r1, 0
ldrsh r0, [r5, r1]
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r5, r2]
adds r1, r6, r1
bl sub_80402AC
adds r4, 0x1
cmp r4, 0x1
ble _0804AEB0
adds r6, r7, 0
cmp r6, 0x1
ble _0804AEAA
movs r6, 0
_0804AEDE:
ldr r0, _0804AF18
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _0804AF1C
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl EntityExists
lsls r0, 24
cmp r0, 0
beq _0804AEFE
adds r0, r4, 0
bl sub_806CF98
_0804AEFE:
adds r6, 0x1
cmp r6, 0x13
ble _0804AEDE
bl sub_8049ED4
adds r0, r5, 0
bl sub_8042A14
_0804AF0E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804AF14: .4byte 0x0000ffef
_0804AF18: .4byte gDungeonGlobalData
_0804AF1C: .4byte 0x000135cc
thumb_func_end sub_804AE84
thumb_func_start IsTileWater
IsTileWater:
push {r4,r5,lr}
adds r4, r0, 0
movs r5, 0
bl IsWaterTileset
lsls r0, 24
cmp r0, 0
beq _0804AF3C
ldrh r1, [r4]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0804AF5E
b _0804AF5C
_0804AF3C:
ldrh r1, [r4]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _0804AF5C
ldr r1, _0804AF68
ldr r0, _0804AF6C
ldr r0, [r0]
ldr r2, _0804AF70
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _0804AF5E
_0804AF5C:
movs r5, 0x1
_0804AF5E:
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0804AF68: .4byte gDungeonWaterType
_0804AF6C: .4byte gDungeonGlobalData
_0804AF70: .4byte 0x00003a0e
thumb_func_end IsTileWater
thumb_func_start IsWaterTileset
IsWaterTileset:
push {lr}
ldr r0, _0804AF9C
ldr r0, [r0]
ldr r1, _0804AFA0
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0804AF96
cmp r0, 0x31
beq _0804AF96
cmp r0, 0x20
beq _0804AF96
cmp r0, 0x21
beq _0804AF96
cmp r0, 0x36
bne _0804AFA4
_0804AF96:
movs r0, 0x1
b _0804AFA6
.align 2, 0
_0804AF9C: .4byte gDungeonGlobalData
_0804AFA0: .4byte 0x00003a0e
_0804AFA4:
movs r0, 0
_0804AFA6:
pop {r1}
bx r1
thumb_func_end IsWaterTileset
thumb_func_start sub_804AFAC
sub_804AFAC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
movs r0, 0
mov r10, r0
ldr r4, _0804B0E8
ldr r0, [r4]
ldr r1, _0804B0EC
adds r1, r0
mov r8, r1
ldr r0, _0804B0F0
ldr r1, _0804B0F4
bl OpenFileAndGetFileDataPtr
ldr r2, [r4]
ldr r3, _0804B0F8
adds r1, r2, r3
str r0, [r1]
ldr r0, _0804B0FC
mov r6, r10
strb r6, [r0]
ldr r0, _0804B100
strb r6, [r0]
ldr r0, _0804B104
strb r6, [r0]
ldr r5, _0804B108
movs r3, 0
ldr r1, _0804B10C
ldr r0, _0804B110
adds r2, r0
movs r6, 0
ldrsh r0, [r2, r6]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x2
bne _0804AFFC
movs r3, 0x1
_0804AFFC:
strb r3, [r5]
ldr r1, _0804B114
movs r0, 0xFF
strb r0, [r1]
ldr r0, _0804B118
mov r1, r10
strb r1, [r0]
ldr r1, _0804B11C
mov r2, r8
ldrb r0, [r2, 0x7]
strh r0, [r1]
ldr r1, _0804B120
ldrb r0, [r2, 0x8]
strh r0, [r1]
ldr r1, _0804B124
movs r0, 0x1
strb r0, [r1]
ldr r1, _0804B128
movs r0, 0x1
negs r0, r0
str r0, [r1]
str r0, [r1, 0x8]
str r0, [r1, 0x4]
str r0, [r1, 0xC]
bl sub_804FD30
ldr r3, [r4]
mov r6, r8
ldrb r2, [r6, 0x6]
ldr r1, _0804B12C
adds r0, r3, r1
movs r1, 0
strh r2, [r0]
ldr r2, _0804B130
adds r0, r3, r2
strb r1, [r0]
ldr r0, [r4]
ldr r3, _0804B134
adds r0, r3
strb r1, [r0]
ldr r1, _0804B138
mov r6, r8
ldrb r0, [r6, 0xC]
str r0, [r1]
movs r0, 0
str r0, [sp, 0x40]
_0804B058:
ldr r0, _0804B0E8
ldr r2, [r0]
ldr r3, _0804B13C
adds r1, r2, r3
ldr r0, _0804B140
strh r0, [r1]
ldr r6, _0804B144
adds r1, r2, r6
movs r0, 0x1
negs r0, r0
strh r0, [r1]
ldr r0, _0804B148
adds r1, r2, r0
movs r0, 0x1
negs r0, r0
strh r0, [r1]
ldr r1, _0804B14C
adds r2, r1
strh r0, [r2]
movs r2, 0
mov r9, r2
_0804B082:
ldr r4, _0804B0E8
ldr r0, [r4]
ldr r3, _0804B150
adds r0, r3
movs r5, 0
movs r1, 0
mov r6, r9
strh r6, [r0]
mov r0, r9
cmp r0, 0
ble _0804B09C
ldr r0, _0804B138
str r1, [r0]
_0804B09C:
ldr r0, _0804B154
strb r5, [r0]
ldr r1, _0804B158
ldr r0, _0804B140
strh r0, [r1]
movs r0, 0x1
negs r0, r0
strh r0, [r1, 0x2]
bl sub_804FD30
ldr r1, [r4]
ldr r3, _0804B13C
adds r2, r1, r3
movs r0, 0x1
negs r0, r0
strh r0, [r2]
ldr r6, _0804B144
adds r2, r1, r6
strh r0, [r2]
ldr r0, _0804B15C
adds r1, r0
strb r5, [r1]
ldr r0, [r4]
ldr r2, _0804B160
adds r1, r0, r2
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
beq _0804B164
mov r1, r8
bl sub_804C70C
lsls r0, 24
cmp r0, 0
beq _0804B0E4
b _0804B376
_0804B0E4:
b _0804B2F6
.align 2, 0
_0804B0E8: .4byte gDungeonGlobalData
_0804B0EC: .4byte 0x0001c574
_0804B0F0: .4byte gUnknown_80F6DCC
_0804B0F4: .4byte gDungeonFileArchive
_0804B0F8: .4byte 0x00013568
_0804B0FC: .4byte gUnknown_202F1AA
_0804B100: .4byte gUnknown_202F1AB
_0804B104: .4byte gUnknown_202F1AC
_0804B108: .4byte gUnknown_202F1A8
_0804B10C: .4byte gDungeonWaterType
_0804B110: .4byte 0x00003a0e
_0804B114: .4byte gUnknown_202F1B4
_0804B118: .4byte gUnknown_202F1AE
_0804B11C: .4byte gUnknown_202F1B0
_0804B120: .4byte gUnknown_202F1B2
_0804B124: .4byte gUnknown_202F1AD
_0804B128: .4byte gUnknown_202F1B8
_0804B12C: .4byte 0x00000664
_0804B130: .4byte 0x00003a09
_0804B134: .4byte 0x00003a0a
_0804B138: .4byte gUnknown_202F1C8
_0804B13C: .4byte 0x0000e218
_0804B140: .4byte 0x0000ffff
_0804B144: .4byte 0x0000e21a
_0804B148: .4byte 0x0000e21c
_0804B14C: .4byte 0x0000e21e
_0804B150: .4byte 0x00003a16
_0804B154: .4byte gUnknown_202F1A9
_0804B158: .4byte gUnknown_202F1D8
_0804B15C: .4byte 0x00003a08
_0804B160: .4byte 0x00003a14
_0804B164:
mov r0, r8
ldrb r7, [r0]
movs r6, 0x20
_0804B16A:
cmp r7, 0x8
beq _0804B17E
movs r0, 0x2
movs r1, 0x9
bl sub_808411C
adds r5, r0, 0
movs r0, 0x2
movs r1, 0x8
b _0804B18C
_0804B17E:
movs r0, 0x2
movs r1, 0x5
bl sub_808411C
adds r5, r0, 0
movs r0, 0x2
movs r1, 0x4
_0804B18C:
bl sub_808411C
adds r4, r0, 0
cmp r5, 0x6
bgt _0804B19A
cmp r4, 0x4
ble _0804B1A4
_0804B19A:
subs r6, 0x1
cmp r6, 0
bne _0804B16A
movs r5, 0x4
movs r4, 0x4
_0804B1A4:
movs r0, 0x38
adds r1, r5, 0
bl __divsi3
cmp r0, 0x7
bgt _0804B1B2
movs r5, 0x1
_0804B1B2:
movs r0, 0x20
adds r1, r4, 0
bl __divsi3
cmp r0, 0x7
bgt _0804B1C0
movs r4, 0x1
_0804B1C0:
ldr r2, _0804B1EC
ldr r0, [r2]
ldr r1, _0804B1F0
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r2, _0804B1F4
adds r0, r2
movs r1, 0xFF
strb r1, [r0]
ldr r0, _0804B1F8
str r7, [r0]
movs r0, 0xF
ands r0, r7
cmp r0, 0xB
bhi _0804B274
lsls r0, 2
ldr r1, _0804B1FC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804B1EC: .4byte gDungeonGlobalData
_0804B1F0: .4byte 0x00003a08
_0804B1F4: .4byte 0x00003a0c
_0804B1F8: .4byte gUnknown_202F1D0
_0804B1FC: .4byte _0804B200
.align 2, 0
_0804B200:
.4byte _0804B274
.4byte _0804B230
.4byte _0804B280
.4byte _0804B298
.4byte _0804B2A4
.4byte _0804B2B0
.4byte _0804B2CC
.4byte _0804B2D8
.4byte _0804B274
.4byte _0804B2E0
.4byte _0804B2E8
.4byte _0804B250
_0804B230:
movs r0, 0x2
bl DungeonRandomCapped
adds r4, r0, 0x2
ldr r1, _0804B24C
movs r0, 0x1
strb r0, [r1]
movs r0, 0x4
adds r1, r4, 0
mov r2, r8
bl sub_804B634
b _0804B2AA
.align 2, 0
_0804B24C: .4byte gUnknown_202F1AE
_0804B250:
movs r0, 0x2
bl DungeonRandomCapped
adds r4, r0, 0x2
ldr r1, _0804B270
movs r0, 0x2
strb r0, [r1]
movs r0, 0x4
adds r1, r4, 0
mov r2, r8
bl sub_804B634
movs r6, 0x1
mov r10, r6
b _0804B2F6
.align 2, 0
_0804B270: .4byte gUnknown_202F1AE
_0804B274:
adds r0, r5, 0
adds r1, r4, 0
mov r2, r8
bl sub_804B634
b _0804B2D2
_0804B280:
bl sub_804C918
ldr r0, _0804B290
ldr r0, [r0]
ldr r1, _0804B294
adds r0, r1
b _0804B2BC
.align 2, 0
_0804B290: .4byte gDungeonGlobalData
_0804B294: .4byte 0x00003a08
_0804B298:
mov r0, r8
bl sub_804B72C
movs r2, 0x1
mov r10, r2
b _0804B2F6
_0804B2A4:
mov r0, r8
bl sub_804BC80
_0804B2AA:
movs r3, 0x1
mov r10, r3
b _0804B2F6
_0804B2B0:
bl sub_804C9D0
ldr r0, _0804B2C4
ldr r0, [r0]
ldr r6, _0804B2C8
adds r0, r6
_0804B2BC:
movs r1, 0x1
strb r1, [r0]
b _0804B2F6
.align 2, 0
_0804B2C4: .4byte gDungeonGlobalData
_0804B2C8: .4byte 0x00003a08
_0804B2CC:
mov r0, r8
bl sub_804C0A8
_0804B2D2:
movs r0, 0x1
mov r10, r0
b _0804B2F6
_0804B2D8:
mov r0, r8
bl sub_804C190
b _0804B2F6
_0804B2E0:
mov r0, r8
bl sub_804C2F4
b _0804B2F6
_0804B2E8:
adds r0, r5, 0
adds r1, r4, 0
mov r2, r8
bl sub_804C53C
movs r1, 0x1
mov r10, r1
_0804B2F6:
bl sub_80518F0
bl sub_804FCCC
ldr r0, _0804B4B4
ldrb r0, [r0]
cmp r0, 0
bne _0804B36A
movs r7, 0
movs r1, 0
mov r0, sp
adds r0, 0x3F
_0804B30E:
strb r1, [r0]
subs r0, 0x1
cmp r0, sp
bge _0804B30E
movs r5, 0
_0804B318:
movs r4, 0
adds r6, r5, 0x1
_0804B31C:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r0, [r1]
movs r2, 0x3
ands r2, r0
cmp r2, 0x1
bne _0804B340
ldrb r0, [r1, 0x9]
cmp r0, 0xF0
bhi _0804B340
adds r7, 0x1
cmp r0, 0x3F
bhi _0804B340
add r0, sp
strb r2, [r0]
_0804B340:
adds r4, 0x1
cmp r4, 0x1F
ble _0804B31C
adds r5, r6, 0
cmp r5, 0x37
ble _0804B318
movs r1, 0
movs r4, 0
_0804B350:
mov r2, sp
adds r0, r2, r4
ldrb r0, [r0]
cmp r0, 0
beq _0804B35C
adds r1, 0x1
_0804B35C:
adds r4, 0x1
cmp r4, 0x3F
ble _0804B350
cmp r7, 0x1D
ble _0804B36A
cmp r1, 0x1
bgt _0804B376
_0804B36A:
movs r3, 0x1
add r9, r3
mov r6, r9
cmp r6, 0x9
bgt _0804B376
b _0804B082
_0804B376:
mov r0, r9
cmp r0, 0xA
bne _0804B398
ldr r1, _0804B4B8
ldr r0, _0804B4BC
strh r0, [r1]
movs r0, 0x1
negs r0, r0
strh r0, [r1, 0x2]
bl sub_804C918
ldr r0, _0804B4C0
ldr r0, [r0]
ldr r1, _0804B4C4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
_0804B398:
bl sub_804E9DC
mov r2, r10
cmp r2, 0
beq _0804B3AA
movs r0, 0x1
mov r1, r8
bl sub_80506F0
_0804B3AA:
movs r0, 0x64
bl DungeonRandomCapped
movs r4, 0
mov r3, r8
ldrb r3, [r3, 0x19]
cmp r0, r3
bge _0804B3BC
movs r4, 0x1
_0804B3BC:
mov r0, r8
adds r1, r4, 0
bl sub_804FF08
mov r0, r8
adds r1, r4, 0
bl sub_8050438
bl sub_804FBE8
ldr r5, _0804B4C0
ldr r1, [r5]
ldr r6, _0804B4C8
adds r0, r1, r6
movs r2, 0
ldrsh r0, [r0, r2]
movs r4, 0x1
negs r4, r4
cmp r0, r4
beq _0804B42A
ldr r3, _0804B4CC
adds r0, r1, r3
movs r6, 0
ldrsh r0, [r0, r6]
cmp r0, r4
beq _0804B42A
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0804B436
ldr r1, [r5]
ldr r0, _0804B4D0
adds r2, r1, r0
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, r4
beq _0804B42A
ldr r6, _0804B4D4
adds r1, r6
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, r4
beq _0804B42A
movs r6, 0
ldrsh r0, [r2, r6]
movs r2, 0
ldrsh r1, [r1, r2]
movs r2, 0
bl sub_8050C30
lsls r0, 24
cmp r0, 0
bne _0804B436
_0804B42A:
ldr r3, [sp, 0x40]
adds r3, 0x1
str r3, [sp, 0x40]
cmp r3, 0x9
bgt _0804B436
b _0804B058
_0804B436:
ldr r6, [sp, 0x40]
cmp r6, 0xA
bne _0804B474
ldr r1, _0804B4B8
ldr r0, _0804B4BC
strh r0, [r1]
movs r0, 0x1
negs r0, r0
strh r0, [r1, 0x2]
bl sub_804FD30
bl sub_804C918
ldr r0, _0804B4C0
ldr r0, [r0]
ldr r1, _0804B4C4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
bl sub_804E9DC
mov r0, r8
movs r1, 0
bl sub_804FF08
mov r0, r8
movs r1, 0
bl sub_8050438
bl sub_804FBE8
_0804B474:
ldr r1, _0804B4B8
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
blt _0804B498
movs r3, 0x2
ldrsh r0, [r1, r3]
cmp r0, 0
blt _0804B498
movs r6, 0
ldrsh r0, [r1, r6]
movs r2, 0x2
ldrsh r1, [r1, r2]
movs r2, 0xBE
lsls r2, 1
movs r3, 0
bl sub_806C330
_0804B498:
ldr r0, _0804B4D8
ldr r0, [r0]
cmp r0, 0
blt _0804B4E0
mov r0, r8
bl sub_8051654
ldr r0, _0804B4C0
ldr r0, [r0]
ldr r3, _0804B4DC
adds r0, r3
movs r1, 0x1
b _0804B4EA
.align 2, 0
_0804B4B4: .4byte gUnknown_202F1A9
_0804B4B8: .4byte gUnknown_202F1D8
_0804B4BC: .4byte 0x0000ffff
_0804B4C0: .4byte gDungeonGlobalData
_0804B4C4: .4byte 0x00003a08
_0804B4C8: .4byte 0x0000e218
_0804B4CC: .4byte 0x0000e21a
_0804B4D0: .4byte 0x0000e21c
_0804B4D4: .4byte 0x0000e21e
_0804B4D8: .4byte gUnknown_202F1B8
_0804B4DC: .4byte 0x00003a0a
_0804B4E0:
ldr r0, _0804B524
ldr r0, [r0]
ldr r6, _0804B528
adds r0, r6
movs r1, 0
_0804B4EA:
strb r1, [r0]
movs r0, 0
movs r1, 0
movs r2, 0x38
movs r3, 0x20
bl sub_804B534
ldr r0, _0804B52C
ldrb r0, [r0]
cmp r0, 0
beq _0804B504
bl sub_804FC74
_0804B504:
ldr r0, _0804B524
ldr r0, [r0]
ldr r1, _0804B530
adds r0, r1
ldr r0, [r0]
bl CloseFile
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
_0804B524: .4byte gDungeonGlobalData
_0804B528: .4byte 0x00003a0a
_0804B52C: .4byte gUnknown_202F1A8
_0804B530: .4byte 0x00013568
thumb_func_end sub_804AFAC
thumb_func_start sub_804B534
sub_804B534:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
str r1, [sp]
str r2, [sp, 0x4]
mov r10, r3
adds r5, r0, 0
cmp r5, r2
bge _0804B620
_0804B54C:
ldr r4, [sp]
adds r0, r5, 0x1
mov r9, r0
cmp r4, r10
bge _0804B618
movs r6, 0x3
mov r8, r6
_0804B55A:
movs r3, 0
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0xC]
bl GetMapEntity
adds r2, r0, 0
ldrh r0, [r2]
ldr r6, _0804B630
adds r1, r6, 0
ands r1, r0
strh r1, [r2]
ldrb r0, [r2, 0x9]
adds r6, r4, 0x1
ldr r3, [sp, 0xC]
cmp r0, 0xFF
bne _0804B612
movs r7, 0x3
adds r0, r1, 0
ands r0, r7
cmp r0, 0x1
bne _0804B612
cmp r5, 0
ble _0804B5A4
subs r0, r5, 0x1
adds r1, r4, 0
str r2, [sp, 0x8]
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r7, 0
ands r0, r1
ldr r2, [sp, 0x8]
ldr r3, [sp, 0xC]
cmp r0, 0x1
bne _0804B5A4
movs r3, 0x1
_0804B5A4:
cmp r4, 0
ble _0804B5C4
subs r1, r4, 0x1
adds r0, r5, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x8]
ldr r3, [sp, 0xC]
cmp r0, 0x1
bne _0804B5C4
adds r3, 0x1
_0804B5C4:
cmp r5, 0x35
bgt _0804B5E4
mov r0, r9
adds r1, r4, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x8]
ldr r3, [sp, 0xC]
cmp r0, 0x1
bne _0804B5E4
adds r3, 0x1
_0804B5E4:
adds r6, r4, 0x1
cmp r5, 0x1D
bgt _0804B606
adds r0, r5, 0
adds r1, r6, 0
str r2, [sp, 0x8]
str r3, [sp, 0xC]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x8]
ldr r3, [sp, 0xC]
cmp r0, 0x1
bne _0804B606
adds r3, 0x1
_0804B606:
cmp r3, 0x2
ble _0804B612
ldrh r1, [r2]
movs r0, 0x8
orrs r0, r1
strh r0, [r2]
_0804B612:
adds r4, r6, 0
cmp r4, r10
blt _0804B55A
_0804B618:
mov r5, r9
ldr r0, [sp, 0x4]
cmp r5, r0
blt _0804B54C
_0804B620:
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
_0804B630: .4byte 0x0000fffb
thumb_func_end sub_804B534
thumb_func_start sub_804B634
sub_804B634:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r4, _0804B718
add sp, r4
adds r4, r0, 0
adds r5, r1, 0
mov r9, r2
ldr r0, _0804B71C
add r0, sp
mov r8, r0
ldr r6, _0804B720
add r6, sp
adds r1, r6, 0
adds r2, r4, 0
adds r3, r5, 0
bl sub_804D024
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804D084
mov r1, r9
movs r3, 0x1
ldrsb r3, [r1, r3]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804D154
str r6, [sp]
mov r1, r9
ldrb r0, [r1, 0xD]
str r0, [sp, 0x4]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
mov r3, r8
bl sub_804D2D0
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
mov r3, r9
bl sub_804D5B0
str r6, [sp]
movs r0, 0
str r0, [sp, 0x4]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
mov r3, r8
bl sub_804D8C8
str r6, [sp]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
mov r3, r8
bl sub_804E590
mov r0, r9
ldrb r3, [r0, 0x9]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804F0D0
ldr r0, _0804B724
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804EBC8
ldr r0, _0804B728
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804EEE4
mov r0, r9
ldrb r3, [r0, 0x13]
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804CBEC
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804E03C
add r0, sp, 0x8
adds r1, r4, 0
adds r2, r5, 0
bl sub_804D534
movs r3, 0xE5
lsls r3, 5
add sp, r3
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804B718: .4byte 0xffffe360
_0804B71C: .4byte 0x00001c28
_0804B720: .4byte 0x00001c64
_0804B724: .4byte gUnknown_202F1B0
_0804B728: .4byte gUnknown_202F1B2
thumb_func_end sub_804B634
thumb_func_start sub_804B72C
sub_804B72C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804B9AC
add sp, r4
movs r1, 0xE5
lsls r1, 5
add r1, sp
str r0, [r1]
movs r5, 0
movs r6, 0x1
ldr r1, _0804B9B0
add r1, sp
str r5, [r1]
movs r0, 0x5
str r0, [r1, 0x4]
movs r0, 0x1C
str r0, [r1, 0xC]
movs r0, 0x33
str r0, [r1, 0x14]
movs r0, 0x38
str r0, [r1, 0x18]
movs r2, 0x10
str r2, [r1, 0x8]
movs r0, 0x27
str r0, [r1, 0x10]
ldr r1, _0804B9B4
add r1, sp
movs r0, 0x2
str r0, [r1]
movs r0, 0x7
str r0, [r1, 0x4]
str r2, [r1, 0x8]
movs r0, 0x19
str r0, [r1, 0xC]
movs r0, 0x1E
str r0, [r1, 0x10]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
bl sub_804D084
mov r2, sp
adds r2, 0x3B
ldr r3, _0804B9B8
add r3, sp
str r2, [r3]
mov r4, sp
adds r4, 0x3C
ldr r0, _0804B9BC
add r0, sp
str r4, [r0]
mov r1, sp
adds r1, 0x5B
ldr r2, _0804B9C0
add r2, sp
str r1, [r2]
mov r3, sp
adds r3, 0x5C
movs r4, 0xE6
lsls r4, 5
add r4, sp
str r3, [r4]
mov r0, sp
adds r0, 0x7B
ldr r1, _0804B9C4
add r1, sp
str r0, [r1]
mov r2, sp
adds r2, 0x7E
ldr r3, _0804B9C8
add r3, sp
str r2, [r3]
add r1, sp, 0x68
add r0, sp, 0x8
movs r2, 0xF0
lsls r2, 1
movs r4, 0x6
_0804B7CC:
strb r5, [r0, 0xA]
strb r5, [r1, 0xA]
adds r1, r2
adds r0, r2
subs r4, 0x1
cmp r4, 0
bne _0804B7CC
movs r2, 0x6
subs r2, 0x1
movs r4, 0x4
cmp r4, 0
beq _0804B80C
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
add r0, sp
adds r0, 0x8
add r1, sp, 0x8
ldr r3, _0804B9CC
add r3, sp
str r4, [r3]
_0804B7F6:
strb r5, [r1, 0xA]
strb r5, [r0, 0xA]
adds r0, 0x20
adds r1, 0x20
ldr r3, _0804B9CC
add r3, sp
ldr r4, [r3]
subs r4, 0x1
str r4, [r3]
cmp r4, 0
bne _0804B7F6
_0804B80C:
movs r4, 0x1
cmp r4, r2
bge _0804B848
movs r1, 0x3
_0804B814:
adds r5, r4, 0x1
mov r8, r5
cmp r1, 0x1
ble _0804B842
lsls r0, r4, 4
subs r0, r4
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r0, 0x20
subs r3, r1, 0x1
ldr r4, _0804B9CC
add r4, sp
str r3, [r4]
_0804B830:
strb r6, [r0, 0xA]
adds r0, 0x20
ldr r3, _0804B9CC
add r3, sp
ldr r5, [r3]
subs r5, 0x1
str r5, [r3]
cmp r5, 0
bne _0804B830
_0804B842:
mov r4, r8
cmp r4, r2
blt _0804B814
_0804B848:
movs r4, 0
ldr r5, _0804B9D0
add r5, sp
str r4, [r5]
ldr r0, _0804B9CC
add r0, sp
str r4, [r0]
cmp r4, 0x4
blt _0804B85C
b _0804BA8C
_0804B85C:
movs r4, 0
ldr r2, _0804B9CC
add r2, sp
ldr r1, [r2]
adds r1, 0x1
ldr r2, _0804B9D4
add r2, sp
str r1, [r2]
cmp r4, 0x6
blt _0804B872
b _0804BA7A
_0804B872:
ldr r3, _0804B9B0
add r3, sp
ldr r5, _0804B9D8
add r5, sp
str r3, [r5]
ldr r0, _0804B9B4
add r0, sp
ldr r1, _0804B9DC
add r1, sp
str r0, [r1]
ldr r2, _0804B9CC
add r2, sp
ldr r2, [r2]
lsls r0, r2, 2
ldr r3, [r1]
adds r0, r3, r0
ldr r3, _0804B9E0
add r3, sp
str r0, [r3]
_0804B898:
lsls r0, r4, 4
subs r0, r4
ldr r5, _0804B9CC
add r5, sp
ldr r5, [r5]
adds r0, r5
lsls r0, 5
mov r7, sp
adds r7, r0
adds r7, 0x8
ldrb r0, [r7, 0xA]
cmp r0, 0
bne _0804B8B4
b _0804B9F4
_0804B8B4:
lsls r0, r4, 2
ldr r1, _0804B9D8
add r1, sp
ldr r1, [r1]
adds r0, r1, r0
ldr r1, [r0]
adds r2, r1, 0x2
mov r10, r2
ldr r3, _0804B9E0
add r3, sp
ldr r3, [r3]
ldr r2, [r3]
adds r5, r2, 0x2
ldr r0, _0804B9E4
add r0, sp
str r5, [r0]
adds r4, 0x1
mov r9, r4
lsls r0, r4, 2
ldr r3, _0804B9D8
add r3, sp
ldr r3, [r3]
adds r0, r3, r0
ldr r4, [r0]
subs r4, r1
subs r4, 0x3
ldr r5, _0804B9D4
add r5, sp
ldr r5, [r5]
lsls r0, r5, 2
ldr r1, _0804B9DC
add r1, sp
ldr r1, [r1]
adds r0, r1, r0
ldr r5, [r0]
subs r5, r2
subs r5, 0x3
movs r0, 0x5
adds r1, r4, 0
bl sub_808411C
mov r8, r0
movs r0, 0x4
adds r1, r5, 0
bl sub_808411C
adds r6, r0, 0
mov r2, r8
subs r4, r2
adds r0, r4, 0
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r10
subs r5, r6
adds r0, r5, 0
bl DungeonRandomCapped
ldr r5, _0804B9E4
add r5, sp
ldr r3, [r5]
adds r3, r0
mov r10, r3
mov r0, r8
adds r3, r4, r0
add r6, r10
strh r4, [r7]
strh r3, [r7, 0x4]
mov r1, r10
strh r1, [r7, 0x2]
strh r6, [r7, 0x6]
mov r8, r9
ldr r5, _0804B9D0
add r5, sp
ldr r2, [r5]
adds r2, 0x1
ldr r5, _0804B9E8
add r5, sp
str r2, [r5]
cmp r4, r3
bge _0804B99E
_0804B956:
mov r5, r10
adds r7, r4, 0x1
cmp r5, r6
bge _0804B998
ldr r0, _0804B9EC
mov r9, r0
_0804B962:
adds r0, r4, 0
adds r1, r5, 0
ldr r2, _0804B9F0
add r2, sp
str r3, [r2]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r9
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
ldr r1, _0804B9D0
add r1, sp
ldrb r1, [r1]
strb r1, [r0, 0x9]
adds r5, 0x1
ldr r2, _0804B9F0
add r2, sp
ldr r3, [r2]
cmp r5, r6
blt _0804B962
_0804B998:
adds r4, r7, 0
cmp r4, r3
blt _0804B956
_0804B99E:
ldr r3, _0804B9E8
add r3, sp
ldr r3, [r3]
ldr r4, _0804B9D0
add r4, sp
str r3, [r4]
b _0804BA72
.align 2, 0
_0804B9AC: .4byte 0xffffe320
_0804B9B0: .4byte 0x00001c28
_0804B9B4: .4byte 0x00001c64
_0804B9B8: .4byte 0x00001cd4
_0804B9BC: .4byte 0x00001cd8
_0804B9C0: .4byte 0x00001cbc
_0804B9C4: .4byte 0x00001cc4
_0804B9C8: .4byte 0x00001cc8
_0804B9CC: .4byte 0x00001ca4
_0804B9D0: .4byte 0x00001ca8
_0804B9D4: .4byte 0x00001ccc
_0804B9D8: .4byte 0x00001cac
_0804B9DC: .4byte 0x00001cb4
_0804B9E0: .4byte 0x00001cb8
_0804B9E4: .4byte 0x00001cb0
_0804B9E8: .4byte 0x00001cd0
_0804B9EC: .4byte 0x0000fffc
_0804B9F0: .4byte 0x00001cdc
_0804B9F4:
lsls r0, r4, 2
ldr r5, _0804BBE8
add r5, sp
ldr r5, [r5]
adds r0, r5, r0
ldr r2, [r0]
adds r0, r2, 0x1
ldr r1, _0804BBEC
add r1, sp
ldr r1, [r1]
ldr r3, [r1]
adds r6, r3, 0x1
adds r4, 0x1
mov r8, r4
lsls r1, r4, 2
adds r1, r5, r1
ldr r1, [r1]
subs r1, r2
subs r1, 0x3
ldr r5, _0804BBF0
add r5, sp
ldr r5, [r5]
lsls r2, r5, 2
ldr r4, _0804BBF4
add r4, sp
ldr r4, [r4]
adds r2, r4, r2
ldr r4, [r2]
subs r4, r3
subs r4, 0x3
adds r1, r0, r1
bl sub_808411C
adds r5, r0, 0
adds r4, r6, r4
adds r0, r6, 0
adds r1, r4, 0
bl sub_808411C
adds r4, r0, 0
strh r5, [r7]
adds r0, r5, 0x1
strh r0, [r7, 0x4]
strh r4, [r7, 0x2]
adds r0, r4, 0x1
strh r0, [r7, 0x6]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ldr r3, _0804BBF8
adds r2, r3, 0
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0xFF
strb r1, [r0, 0x9]
_0804BA72:
mov r4, r8
cmp r4, 0x6
bge _0804BA7A
b _0804B898
_0804BA7A:
ldr r4, _0804BBF0
add r4, sp
ldr r4, [r4]
ldr r5, _0804BBFC
add r5, sp
str r4, [r5]
cmp r4, 0x4
bge _0804BA8C
b _0804B85C
_0804BA8C:
add r1, sp, 0x8
movs r6, 0
movs r0, 0x1
strb r0, [r1, 0x16]
ldr r1, _0804BC00
add r1, sp
strb r0, [r1]
movs r1, 0xFF
lsls r1, 1
add r1, sp
strb r0, [r1]
ldr r1, _0804BC04
add r1, sp
strb r0, [r1]
ldr r1, _0804BC08
add r1, sp
strb r0, [r1]
ldr r1, _0804BC0C
add r1, sp
strb r0, [r1]
ldr r1, _0804BC10
add r1, sp
strb r0, [r1]
ldr r1, _0804BC14
add r1, sp
strb r0, [r1]
ldr r1, _0804BC18
add r1, sp
strb r0, [r1]
ldr r1, _0804BC1C
add r1, sp
strb r0, [r1]
add r1, sp, 0x8
strb r0, [r1, 0x14]
ldr r5, _0804BC20
add r5, sp
ldr r5, [r5]
strb r0, [r5]
ldr r1, _0804BC24
add r1, sp
ldr r1, [r1]
strb r0, [r1]
ldr r2, _0804BC28
add r2, sp
ldr r2, [r2]
strb r0, [r2]
movs r3, 0xE6
lsls r3, 5
add r3, sp
ldr r3, [r3]
strb r0, [r3]
ldr r4, _0804BC2C
add r4, sp
ldr r4, [r4]
strb r0, [r4]
ldr r5, _0804BC30
add r5, sp
ldr r5, [r5]
strb r0, [r5]
ldr r1, _0804BC34
add r1, sp
strb r0, [r1]
ldr r1, _0804BC38
add r1, sp
strb r0, [r1]
ldr r1, _0804BC3C
add r1, sp
strb r0, [r1]
ldr r1, _0804BC40
add r1, sp
strb r0, [r1]
ldr r1, _0804BC44
add r1, sp
strb r0, [r1]
ldr r1, _0804BC48
add r1, sp
strb r0, [r1]
ldr r1, _0804BC4C
add r1, sp
strb r0, [r1]
ldr r1, _0804BC50
add r1, sp
strb r0, [r1]
ldr r1, _0804BC54
add r1, sp
strb r0, [r1]
ldr r1, _0804BC58
add r1, sp
strb r0, [r1]
ldr r1, _0804BC5C
add r1, sp
strb r0, [r1]
ldr r1, _0804BC60
add r1, sp
strb r0, [r1]
ldr r1, _0804BC64
add r1, sp
strb r0, [r1]
ldr r1, _0804BC68
add r1, sp
strb r0, [r1]
ldr r1, _0804BC6C
add r1, sp
strb r0, [r1]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
movs r4, 0xE5
lsls r4, 5
add r4, sp
ldr r3, [r4]
bl sub_804D5B0
ldr r5, _0804BC70
add r5, sp
ldr r4, _0804BC74
add r4, sp
str r4, [sp]
str r6, [sp, 0x4]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
adds r3, r5, 0
bl sub_804D8C8
str r4, [sp]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
adds r3, r5, 0
bl sub_804E590
ldr r0, _0804BC78
movs r5, 0
ldrsh r3, [r0, r5]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
bl sub_804EBC8
ldr r0, _0804BC7C
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
bl sub_804EEE4
movs r2, 0xE5
lsls r2, 5
add r2, sp
ldr r2, [r2]
ldrb r3, [r2, 0x13]
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
bl sub_804CBEC
add r0, sp, 0x8
movs r1, 0x6
movs r2, 0x4
bl sub_804E03C
movs r3, 0xE7
lsls r3, 5
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
_0804BBE8: .4byte 0x00001cac
_0804BBEC: .4byte 0x00001cb8
_0804BBF0: .4byte 0x00001ccc
_0804BBF4: .4byte 0x00001cb4
_0804BBF8: .4byte 0x0000fffc
_0804BBFC: .4byte 0x00001ca4
_0804BC00: .4byte 0x000001fd
_0804BC04: .4byte 0x000003dd
_0804BC08: .4byte 0x000003de
_0804BC0C: .4byte 0x000005bd
_0804BC10: .4byte 0x000005be
_0804BC14: .4byte 0x0000079d
_0804BC18: .4byte 0x0000079e
_0804BC1C: .4byte 0x0000097d
_0804BC20: .4byte 0x00001cd4
_0804BC24: .4byte 0x00001cd8
_0804BC28: .4byte 0x00001cbc
_0804BC2C: .4byte 0x00001cc4
_0804BC30: .4byte 0x00001cc8
_0804BC34: .4byte 0x0000025d
_0804BC38: .4byte 0x0000025e
_0804BC3C: .4byte 0x0000043d
_0804BC40: .4byte 0x0000043e
_0804BC44: .4byte 0x0000061d
_0804BC48: .4byte 0x0000061e
_0804BC4C: .4byte 0x000007fd
_0804BC50: .4byte 0x000007fe
_0804BC54: .4byte 0x000009dd
_0804BC58: .4byte 0x0000097c
_0804BC5C: .4byte 0x0000099b
_0804BC60: .4byte 0x0000099c
_0804BC64: .4byte 0x000009bb
_0804BC68: .4byte 0x000009bc
_0804BC6C: .4byte 0x000009db
_0804BC70: .4byte 0x00001c28
_0804BC74: .4byte 0x00001c64
_0804BC78: .4byte gUnknown_202F1B0
_0804BC7C: .4byte gUnknown_202F1B2
thumb_func_end sub_804B72C
thumb_func_start sub_804BC80
sub_804BC80:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804BED0
add sp, r4
movs r1, 0xE5
lsls r1, 5
add r1, sp
str r0, [r1]
movs r4, 0x1
movs r5, 0
ldr r1, _0804BED4
add r1, sp
str r5, [r1]
movs r0, 0xB
str r0, [r1, 0x4]
movs r0, 0x16
str r0, [r1, 0x8]
movs r0, 0x21
str r0, [r1, 0xC]
movs r0, 0x2C
str r0, [r1, 0x10]
movs r0, 0x38
str r0, [r1, 0x14]
ldr r1, _0804BED8
add r1, sp
str r4, [r1]
movs r0, 0x9
str r0, [r1, 0x4]
movs r0, 0x10
str r0, [r1, 0x8]
movs r0, 0x17
str r0, [r1, 0xC]
movs r0, 0x1F
str r0, [r1, 0x10]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
bl sub_804D084
add r6, sp, 0x70
add r1, sp, 0x68
add r0, sp, 0x8
movs r3, 0xF0
lsls r3, 1
movs r2, 0x5
_0804BCE0:
strb r4, [r0, 0xA]
strb r4, [r1, 0xA]
adds r1, r3
adds r0, r3
subs r2, 0x1
cmp r2, 0
bne _0804BCE0
movs r3, 0x5
subs r3, 0x1
movs r2, 0x4
cmp r2, 0
beq _0804BD1A
lsls r0, r3, 4
subs r0, r3
lsls r0, 5
add r0, sp
adds r0, 0x8
add r1, sp, 0x8
mov r10, r2
_0804BD06:
strb r4, [r1, 0xA]
strb r4, [r0, 0xA]
adds r0, 0x20
adds r1, 0x20
movs r2, 0x1
negs r2, r2
add r10, r2
mov r2, r10
cmp r2, 0
bne _0804BD06
_0804BD1A:
movs r2, 0x1
cmp r2, r3
bge _0804BD58
movs r1, 0x3
_0804BD22:
adds r4, r2, 0x1
ldr r0, _0804BEDC
add r0, sp
str r4, [r0]
cmp r1, 0x1
ble _0804BD4E
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r0, 0x20
subs r2, r1, 0x1
mov r10, r2
_0804BD3E:
strb r5, [r0, 0xA]
adds r0, 0x20
movs r4, 0x1
negs r4, r4
add r10, r4
mov r2, r10
cmp r2, 0
bne _0804BD3E
_0804BD4E:
ldr r4, _0804BEDC
add r4, sp
ldr r2, [r4]
cmp r2, r3
blt _0804BD22
_0804BD58:
add r0, sp, 0x8
movs r1, 0x1
strb r1, [r0, 0x8]
movs r0, 0xF2
lsls r0, 3
add r0, sp
strb r1, [r0]
strb r1, [r6]
movs r0, 0xFE
lsls r0, 3
add r0, sp
strb r1, [r0]
movs r5, 0
ldr r6, _0804BEE0
add r6, sp
str r5, [r6]
mov r10, r5
cmp r5, 0x4
blt _0804BD80
b _0804BFAC
_0804BD80:
movs r0, 0x4
movs r1, 0xE6
lsls r1, 5
add r1, sp
str r0, [r1]
_0804BD8A:
movs r2, 0
cmp r2, 0x5
blt _0804BD92
b _0804BF94
_0804BD92:
ldr r3, _0804BED4
add r3, sp
ldr r4, _0804BEE4
add r4, sp
str r3, [r4]
ldr r5, _0804BED8
add r5, sp
ldr r6, _0804BEE8
add r6, sp
str r5, [r6]
mov r1, r10
lsls r0, r1, 2
adds r0, r5, r0
ldr r3, _0804BEEC
add r3, sp
str r0, [r3]
_0804BDB2:
lsls r0, r2, 4
subs r0, r2
add r0, r10
lsls r0, 5
mov r7, sp
adds r7, r0
adds r7, 0x8
ldrb r0, [r7, 0x8]
adds r4, r2, 0x1
ldr r5, _0804BEDC
add r5, sp
str r4, [r5]
cmp r0, 0
beq _0804BDD0
b _0804BF88
_0804BDD0:
ldrb r0, [r7, 0xA]
cmp r0, 0
bne _0804BDD8
b _0804BF00
_0804BDD8:
lsls r0, r2, 2
ldr r6, _0804BEE4
add r6, sp
ldr r6, [r6]
adds r0, r6, r0
ldr r1, [r0]
adds r0, r1, 0x2
mov r9, r0
ldr r3, _0804BEEC
add r3, sp
ldr r3, [r3]
ldr r2, [r3]
adds r4, r2, 0x2
ldr r5, _0804BEF0
add r5, sp
str r4, [r5]
ldr r6, _0804BEDC
add r6, sp
ldr r6, [r6]
lsls r0, r6, 2
ldr r3, _0804BEE4
add r3, sp
ldr r3, [r3]
adds r0, r3, r0
ldr r4, [r0]
subs r4, r1
subs r4, 0x3
ldr r5, _0804BEE8
add r5, sp
ldr r5, [r5]
movs r6, 0xE6
lsls r6, 5
add r6, sp
ldr r6, [r6]
adds r0, r5, r6
ldr r5, [r0]
subs r5, r2
subs r5, 0x3
movs r0, 0x5
adds r1, r4, 0
bl sub_808411C
mov r8, r0
movs r0, 0x4
adds r1, r5, 0
bl sub_808411C
adds r6, r0, 0
mov r0, r8
subs r4, r0
adds r0, r4, 0
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r9
subs r5, r6
adds r0, r5, 0
bl DungeonRandomCapped
ldr r2, _0804BEF0
add r2, sp
ldr r1, [r2]
adds r1, r0
mov r9, r1
mov r5, r8
adds r3, r4, r5
add r6, r9
strh r4, [r7]
strh r3, [r7, 0x4]
strh r1, [r7, 0x2]
strh r6, [r7, 0x6]
ldr r1, _0804BEE0
add r1, sp
ldr r0, [r1]
adds r0, 0x1
ldr r1, _0804BEF4
add r1, sp
str r0, [r1]
cmp r4, r3
bge _0804BEC0
_0804BE78:
mov r5, r9
adds r7, r4, 0x1
cmp r5, r6
bge _0804BEBA
ldr r2, _0804BEF8
mov r8, r2
_0804BE84:
adds r0, r4, 0
adds r1, r5, 0
ldr r2, _0804BEFC
add r2, sp
str r3, [r2]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r8
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
ldr r1, _0804BEE0
add r1, sp
ldrb r1, [r1]
strb r1, [r0, 0x9]
adds r5, 0x1
ldr r2, _0804BEFC
add r2, sp
ldr r3, [r2]
cmp r5, r6
blt _0804BE84
_0804BEBA:
adds r4, r7, 0
cmp r4, r3
blt _0804BE78
_0804BEC0:
ldr r3, _0804BEF4
add r3, sp
ldr r3, [r3]
ldr r4, _0804BEE0
add r4, sp
str r3, [r4]
b _0804BF88
.align 2, 0
_0804BED0: .4byte 0xffffe338
_0804BED4: .4byte 0x00001c28
_0804BED8: .4byte 0x00001c64
_0804BEDC: .4byte 0x00001cb8
_0804BEE0: .4byte 0x00001ca4
_0804BEE4: .4byte 0x00001ca8
_0804BEE8: .4byte 0x00001cb0
_0804BEEC: .4byte 0x00001cb4
_0804BEF0: .4byte 0x00001cac
_0804BEF4: .4byte 0x00001cbc
_0804BEF8: .4byte 0x0000fffc
_0804BEFC: .4byte 0x00001cc4
_0804BF00:
lsls r0, r2, 2
ldr r4, _0804C080
add r4, sp
ldr r4, [r4]
adds r0, r4, r0
ldr r2, [r0]
adds r0, r2, 0x1
ldr r5, _0804C084
add r5, sp
ldr r5, [r5]
ldr r3, [r5]
adds r6, r3, 0x1
mov r8, r6
ldr r4, _0804C088
add r4, sp
ldr r4, [r4]
lsls r1, r4, 2
ldr r5, _0804C080
add r5, sp
ldr r5, [r5]
adds r1, r5, r1
ldr r1, [r1]
subs r1, r2
subs r1, 0x3
ldr r6, _0804C08C
add r6, sp
ldr r6, [r6]
movs r4, 0xE6
lsls r4, 5
add r4, sp
ldr r4, [r4]
adds r2, r6, r4
ldr r4, [r2]
subs r4, r3
subs r4, 0x3
adds r1, r0, r1
bl sub_808411C
adds r5, r0, 0
add r4, r8
mov r0, r8
adds r1, r4, 0
bl sub_808411C
adds r4, r0, 0
strh r5, [r7]
adds r0, r5, 0x1
strh r0, [r7, 0x4]
strh r4, [r7, 0x2]
adds r0, r4, 0x1
strh r0, [r7, 0x6]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ldr r6, _0804C090
adds r2, r6, 0
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0xFF
strb r1, [r0, 0x9]
_0804BF88:
ldr r0, _0804C088
add r0, sp
ldr r2, [r0]
cmp r2, 0x5
bge _0804BF94
b _0804BDB2
_0804BF94:
movs r2, 0xE6
lsls r2, 5
add r2, sp
ldr r1, [r2]
adds r1, 0x4
str r1, [r2]
movs r3, 0x1
add r10, r3
mov r4, r10
cmp r4, 0x4
bge _0804BFAC
b _0804BD8A
_0804BFAC:
movs r2, 0x1
movs r1, 0x1
movs r3, 0xF
add r4, sp, 0x1C
_0804BFB4:
movs r5, 0
mov r10, r5
lsls r0, r3, 5
adds r0, r4
_0804BFBC:
strb r1, [r0]
strb r1, [r0, 0x1F]
adds r0, 0x20
movs r6, 0x1
add r10, r6
mov r5, r10
cmp r5, 0x2
ble _0804BFBC
movs r0, 0xF0
lsls r0, 1
adds r3, 0xF
adds r2, 0x1
cmp r2, 0x3
ble _0804BFB4
mov r10, r6
movs r5, 0x1
adds r4, r0, 0
mov r6, sp
adds r6, r4
adds r6, 0x8
_0804BFE4:
movs r2, 0
mov r1, r10
lsls r0, r1, 5
mov r3, r10
adds r3, 0x1
adds r1, r0, r6
add r0, sp
adds r0, 0x8
_0804BFF4:
strb r5, [r0, 0x16]
strb r5, [r1, 0x15]
adds r1, r4
adds r0, r4
adds r2, 0x1
cmp r2, 0x3
ble _0804BFF4
mov r10, r3
cmp r3, 0x2
ble _0804BFE4
ldr r5, _0804C094
add r5, sp
ldr r4, _0804C098
add r4, sp
str r4, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
adds r3, r5, 0
bl sub_804D8C8
str r4, [sp]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
adds r3, r5, 0
bl sub_804E590
ldr r0, _0804C09C
movs r2, 0
ldrsh r3, [r0, r2]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
bl sub_804EBC8
ldr r0, _0804C0A0
movs r4, 0
ldrsh r3, [r0, r4]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
bl sub_804EEE4
movs r5, 0xE5
lsls r5, 5
add r5, sp
ldr r5, [r5]
ldrb r3, [r5, 0x13]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
bl sub_804CBEC
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x4
bl sub_804E03C
ldr r3, _0804C0A4
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
_0804C080: .4byte 0x00001ca8
_0804C084: .4byte 0x00001cb4
_0804C088: .4byte 0x00001cb8
_0804C08C: .4byte 0x00001cb0
_0804C090: .4byte 0x0000fffc
_0804C094: .4byte 0x00001c28
_0804C098: .4byte 0x00001c64
_0804C09C: .4byte gUnknown_202F1B0
_0804C0A0: .4byte gUnknown_202F1B2
_0804C0A4: .4byte 0x00001cc8
thumb_func_end sub_804BC80
thumb_func_start sub_804C0A8
sub_804C0A8:
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r4, _0804C17C
add sp, r4
adds r6, r0, 0
ldr r4, _0804C180
add r4, sp
movs r0, 0
str r0, [r4]
movs r0, 0xB
str r0, [r4, 0x4]
movs r0, 0x16
str r0, [r4, 0x8]
movs r0, 0x21
str r0, [r4, 0xC]
movs r0, 0x2C
str r0, [r4, 0x10]
movs r0, 0x38
str r0, [r4, 0x14]
ldr r5, _0804C184
add r5, sp
movs r0, 0x4
str r0, [r5]
movs r0, 0xF
str r0, [r5, 0x4]
movs r0, 0x1
mov r8, r0
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804D084
movs r3, 0x1
ldrsb r3, [r6, r3]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804D154
str r5, [sp]
ldrb r0, [r6, 0xD]
str r0, [sp, 0x4]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
adds r3, r4, 0
bl sub_804D2D0
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
adds r3, r6, 0
bl sub_804D5B0
str r5, [sp]
mov r1, r8
str r1, [sp, 0x4]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
adds r3, r4, 0
bl sub_804D8C8
str r5, [sp]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
adds r3, r4, 0
bl sub_804E590
ldr r0, _0804C188
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804EBC8
ldr r0, _0804C18C
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804EEE4
ldrb r3, [r6, 0x13]
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804CBEC
add r0, sp, 0x8
movs r1, 0x5
movs r2, 0x1
bl sub_804E03C
movs r3, 0xE5
lsls r3, 5
add sp, r3
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804C17C: .4byte 0xffffe360
_0804C180: .4byte 0x00001c28
_0804C184: .4byte 0x00001c64
_0804C188: .4byte gUnknown_202F1B0
_0804C18C: .4byte gUnknown_202F1B2
thumb_func_end sub_804C0A8
thumb_func_start sub_804C190
sub_804C190:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804C2CC
add sp, r4
mov r10, r0
ldr r1, _0804C2D0
add r1, sp
movs r2, 0xB
str r2, [r1]
movs r0, 0x16
str r0, [r1, 0x4]
movs r0, 0x21
str r0, [r1, 0x8]
movs r0, 0x2C
str r0, [r1, 0xC]
ldr r1, _0804C2D4
add r1, sp
movs r0, 0x2
str r0, [r1]
str r2, [r1, 0x4]
movs r0, 0x14
str r0, [r1, 0x8]
movs r0, 0x1E
str r0, [r1, 0xC]
movs r0, 0x3
mov r8, r0
movs r7, 0x3
add r0, sp, 0x8
movs r1, 0x3
movs r2, 0x3
bl sub_804D084
movs r1, 0
add r5, sp, 0x50
movs r0, 0x3E
add r0, sp
mov r9, r0
mov r0, r10
ldrb r0, [r0, 0xD]
mov r12, r0
_0804C1E6:
adds r3, r1, 0x1
cmp r7, 0
beq _0804C204
lsls r0, r1, 4
subs r0, r1
movs r2, 0x1
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r1, r7, 0
_0804C1FA:
strb r2, [r0, 0xA]
adds r0, 0x20
subs r1, 0x1
cmp r1, 0
bne _0804C1FA
_0804C204:
adds r1, r3, 0
cmp r1, r8
blt _0804C1E6
add r0, sp, 0x8
movs r4, 0x1
strb r4, [r0, 0x8]
add r0, sp, 0x3D0
strb r4, [r0]
strb r4, [r5]
movs r0, 0x82
lsls r0, 3
add r0, sp
strb r4, [r0]
ldr r6, _0804C2D0
add r6, sp
ldr r5, _0804C2D4
add r5, sp
str r5, [sp]
mov r1, r12
str r1, [sp, 0x4]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
adds r3, r6, 0
bl sub_804D2D0
mov r0, r9
strb r4, [r0]
ldr r0, _0804C2D8
add r0, sp
strb r4, [r0]
ldr r0, _0804C2DC
add r0, sp
strb r4, [r0]
ldr r0, _0804C2E0
add r0, sp
strb r4, [r0]
add r0, sp, 0x1FC
strb r4, [r0]
ldr r0, _0804C2E4
add r0, sp
strb r4, [r0]
add r0, sp, 0x21C
strb r4, [r0]
ldr r0, _0804C2E8
add r0, sp
strb r4, [r0]
str r5, [sp]
str r4, [sp, 0x4]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
adds r3, r6, 0
bl sub_804D8C8
str r5, [sp]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
adds r3, r6, 0
bl sub_804E590
ldr r0, _0804C2EC
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
bl sub_804EBC8
ldr r0, _0804C2F0
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
bl sub_804EEE4
mov r0, r10
ldrb r3, [r0, 0x13]
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
bl sub_804CBEC
add r0, sp, 0x8
mov r1, r8
adds r2, r7, 0
bl sub_804E03C
movs r3, 0xE5
lsls r3, 5
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
_0804C2CC: .4byte 0xffffe360
_0804C2D0: .4byte 0x00001c28
_0804C2D4: .4byte 0x00001c64
_0804C2D8: .4byte 0x0000021d
_0804C2DC: .4byte 0x0000021e
_0804C2E0: .4byte 0x000003fd
_0804C2E4: .4byte 0x0000021b
_0804C2E8: .4byte 0x0000023b
_0804C2EC: .4byte gUnknown_202F1B0
_0804C2F0: .4byte gUnknown_202F1B2
thumb_func_end sub_804C190
thumb_func_start sub_804C2F4
sub_804C2F4:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0804C420
add sp, r4
mov r8, r0
ldr r1, _0804C424
add r1, sp
movs r0, 0x5
str r0, [r1]
movs r0, 0xF
str r0, [r1, 0x4]
movs r0, 0x23
str r0, [r1, 0x8]
movs r0, 0x32
str r0, [r1, 0xC]
ldr r1, _0804C428
add r1, sp
movs r0, 0x2
str r0, [r1]
movs r0, 0xB
str r0, [r1, 0x4]
movs r0, 0x14
str r0, [r1, 0x8]
movs r0, 0x1E
str r0, [r1, 0xC]
movs r7, 0x3
movs r6, 0x3
add r0, sp, 0x8
movs r1, 0x3
movs r2, 0x3
bl sub_804D084
movs r1, 0
mov r0, r8
ldrb r4, [r0, 0xD]
_0804C33C:
adds r3, r1, 0x1
cmp r6, 0
beq _0804C35A
lsls r0, r1, 4
subs r0, r1
movs r2, 0x1
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r1, r6, 0
_0804C350:
strb r2, [r0, 0xA]
adds r0, 0x20
subs r1, 0x1
cmp r1, 0
bne _0804C350
_0804C35A:
adds r1, r3, 0
cmp r1, r7
blt _0804C33C
ldr r3, _0804C424
add r3, sp
ldr r0, _0804C428
add r0, sp
str r0, [sp]
str r4, [sp, 0x4]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804D2D0
movs r4, 0x1
ldr r3, _0804C42C
add r3, sp
ldr r0, _0804C430
add r0, sp
add r2, sp, 0x8
movs r1, 0x2
_0804C384:
strb r4, [r2, 0x16]
strb r4, [r0]
strb r4, [r0, 0x1]
strb r4, [r3]
adds r3, 0x20
adds r0, 0x20
adds r2, 0x20
subs r1, 0x1
cmp r1, 0
bge _0804C384
ldr r5, _0804C424
add r5, sp
ldr r4, _0804C428
add r4, sp
str r4, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
adds r3, r5, 0
bl sub_804D8C8
movs r0, 0x1
movs r1, 0
movs r2, 0x1
add r3, sp, 0x8
bl sub_804C43C
movs r0, 0x1
movs r1, 0
movs r2, 0x2
add r3, sp, 0x8
bl sub_804C43C
str r4, [sp]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
adds r3, r5, 0
bl sub_804E590
ldr r0, _0804C434
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804EBC8
ldr r0, _0804C438
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804EEE4
mov r0, r8
ldrb r3, [r0, 0x13]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804CBEC
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804E03C
movs r3, 0xE5
lsls r3, 5
add sp, r3
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804C420: .4byte 0xffffe360
_0804C424: .4byte 0x00001c28
_0804C428: .4byte 0x00001c64
_0804C42C: .4byte 0x000003dd
_0804C430: .4byte 0x000001fd
_0804C434: .4byte gUnknown_202F1B0
_0804C438: .4byte gUnknown_202F1B2
thumb_func_end sub_804C2F4
thumb_func_start sub_804C43C
sub_804C43C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
str r0, [sp]
str r3, [sp, 0x4]
lsls r7, r1, 5
lsls r0, 4
str r0, [sp, 0xC]
ldr r3, [sp]
subs r0, r3
lsls r0, 5
ldr r4, [sp, 0x4]
adds r0, r4
adds r3, r7, r0
adds r6, r1, r2
lsls r1, r6, 5
adds r2, r1, r0
movs r5, 0
ldrsh r1, [r2, r5]
adds r4, r1, 0
ldrh r0, [r3]
mov r8, r0
movs r5, 0
ldrsh r0, [r3, r5]
cmp r1, r0
ble _0804C478
mov r4, r8
_0804C478:
lsls r0, r4, 16
asrs r0, 16
str r0, [sp, 0x8]
movs r1, 0x2
ldrsh r0, [r3, r1]
mov r10, r0
movs r4, 0x4
ldrsh r1, [r2, r4]
adds r4, r1, 0
ldrh r5, [r3, 0x4]
mov r8, r5
movs r5, 0x4
ldrsh r0, [r3, r5]
cmp r1, r0
bge _0804C498
mov r4, r8
_0804C498:
lsls r0, r4, 16
asrs r0, 16
str r0, [sp, 0x10]
movs r1, 0x6
ldrsh r0, [r2, r1]
mov r8, r0
movs r2, 0
ldrsh r0, [r3, r2]
mov r1, r10
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
ldr r5, [sp, 0x8]
str r7, [sp, 0x1C]
ldr r3, [sp, 0xC]
str r3, [sp, 0x18]
str r6, [sp, 0x14]
ldr r4, [sp, 0x10]
cmp r5, r4
bge _0804C4F2
_0804C4C2:
mov r4, r10
adds r6, r5, 0x1
cmp r10, r8
bge _0804C4EA
ldr r0, _0804C538
adds r7, r0, 0
_0804C4CE:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ands r1, r7
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
mov r1, r9
strb r1, [r0, 0x9]
adds r4, 0x1
cmp r4, r8
blt _0804C4CE
_0804C4EA:
adds r5, r6, 0
ldr r2, [sp, 0x10]
cmp r5, r2
blt _0804C4C2
_0804C4F2:
ldr r3, [sp, 0x18]
ldr r4, [sp]
subs r1, r3, r4
lsls r1, 5
ldr r5, [sp, 0x4]
adds r1, r5
ldr r0, [sp, 0x1C]
adds r2, r0, r1
movs r3, 0
mov r4, sp
ldrh r4, [r4, 0x8]
strh r4, [r2]
mov r5, sp
ldrh r5, [r5, 0x10]
strh r5, [r2, 0x4]
mov r0, r10
strh r0, [r2, 0x2]
mov r4, r8
strh r4, [r2, 0x6]
ldr r5, [sp, 0x14]
lsls r0, r5, 5
adds r0, r1
movs r1, 0x1
strb r1, [r0, 0x12]
strb r1, [r2, 0x12]
strb r3, [r0, 0xB]
strb r1, [r0, 0x11]
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
_0804C538: .4byte 0x0000fffc
thumb_func_end sub_804C43C
thumb_func_start sub_804C53C
sub_804C53C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804C6F8
add sp, r4
mov r10, r2
adds r7, r0, 0
adds r6, r1, 0
ldr r0, _0804C6FC
add r0, sp
ldr r1, _0804C700
add r1, sp
adds r2, r7, 0
adds r3, r6, 0
bl sub_804D024
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804D084
movs r2, 0
cmp r2, r7
bge _0804C594
_0804C570:
adds r3, r2, 0x1
cmp r6, 0
ble _0804C58E
lsls r0, r2, 4
subs r0, r2
movs r2, 0x1
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r1, r6, 0
_0804C584:
strb r2, [r0, 0xA]
adds r0, 0x20
subs r1, 0x1
cmp r1, 0
bne _0804C584
_0804C58E:
adds r2, r3, 0
cmp r2, r7
blt _0804C570
_0804C594:
movs r2, 0x1
subs r0, r7, 0x1
mov r8, r0
subs r1, r6, 0x1
mov r9, r1
mov r0, r10
ldrb r0, [r0, 0xD]
mov r12, r0
cmp r2, r8
bge _0804C5D2
mov r4, r9
mov r5, r8
_0804C5AC:
adds r3, r2, 0x1
cmp r4, 0x1
ble _0804C5CC
lsls r0, r2, 4
subs r0, r2
movs r2, 0x1
lsls r0, 5
add r0, sp
adds r0, 0x8
adds r0, 0x20
subs r1, r4, 0x1
_0804C5C2:
strb r2, [r0, 0x8]
adds r0, 0x20
subs r1, 0x1
cmp r1, 0
bne _0804C5C2
_0804C5CC:
adds r2, r3, 0
cmp r2, r5
blt _0804C5AC
_0804C5D2:
ldr r3, _0804C6FC
add r3, sp
ldr r0, _0804C700
add r0, sp
str r0, [sp]
mov r1, r12
str r1, [sp, 0x4]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804D2D0
movs r2, 0
cmp r2, r8
bge _0804C636
movs r4, 0x1
mov r0, r9
lsls r5, r0, 5
subs r1, r7, 0x2
mov r12, r1
_0804C5FA:
cmp r2, 0
beq _0804C614
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
mov r1, sp
adds r1, r0
adds r1, 0x8
strb r4, [r1, 0x16]
adds r0, r5, r0
add r0, sp
adds r0, 0x8
strb r4, [r0, 0x16]
_0804C614:
adds r3, r2, 0x1
cmp r2, r12
bge _0804C630
lsls r0, r3, 4
subs r0, r3
lsls r0, 5
mov r1, sp
adds r1, r0
adds r1, 0x8
strb r4, [r1, 0x15]
adds r0, r5, r0
add r0, sp
adds r0, 0x8
strb r4, [r0, 0x15]
_0804C630:
adds r2, r3, 0
cmp r2, r8
blt _0804C5FA
_0804C636:
movs r1, 0
cmp r1, r9
bge _0804C66A
movs r3, 0x1
mov r2, r8
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
add r0, sp
adds r0, 0x8
add r2, sp, 0x8
subs r5, r6, 0x2
mov r4, r9
_0804C650:
cmp r1, 0
beq _0804C658
strb r3, [r2, 0x13]
strb r3, [r0, 0x13]
_0804C658:
cmp r1, r5
bge _0804C660
strb r3, [r2, 0x14]
strb r3, [r0, 0x14]
_0804C660:
adds r0, 0x20
adds r2, 0x20
adds r1, 0x1
cmp r1, r4
blt _0804C650
_0804C66A:
ldr r5, _0804C6FC
add r5, sp
ldr r4, _0804C700
add r4, sp
str r4, [sp]
movs r0, 0
str r0, [sp, 0x4]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
adds r3, r5, 0
bl sub_804D8C8
str r4, [sp]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
adds r3, r5, 0
bl sub_804E590
mov r0, r10
ldrb r3, [r0, 0x9]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804F0D0
ldr r0, _0804C704
movs r1, 0
ldrsh r3, [r0, r1]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804EBC8
ldr r0, _0804C708
movs r2, 0
ldrsh r3, [r0, r2]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804EEE4
mov r0, r10
ldrb r3, [r0, 0x13]
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804CBEC
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804E03C
add r0, sp, 0x8
adds r1, r7, 0
adds r2, r6, 0
bl sub_804D534
movs r3, 0xE5
lsls r3, 5
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
_0804C6F8: .4byte 0xffffe360
_0804C6FC: .4byte 0x00001c28
_0804C700: .4byte 0x00001c64
_0804C704: .4byte gUnknown_202F1B0
_0804C708: .4byte gUnknown_202F1B2
thumb_func_end sub_804C53C
thumb_func_start sub_804C70C
sub_804C70C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r7, r0, 0
mov r8, r1
ldr r0, _0804C73C
ldr r0, [r0]
ldr r1, _0804C740
adds r0, r1
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r7, 2
adds r0, r1
ldr r0, [r0]
ldrb r5, [r0]
ldrb r6, [r0, 0x1]
cmp r5, 0
beq _0804C736
cmp r6, 0
bne _0804C744
_0804C736:
bl sub_804C918
b _0804C782
.align 2, 0
_0804C73C: .4byte gDungeonGlobalData
_0804C740: .4byte 0x00013568
_0804C744:
cmp r7, 0x31
bgt _0804C752
adds r0, r7, 0
bl sub_8051288
movs r0, 0x1
b _0804C784
_0804C752:
adds r1, r5, 0x4
movs r0, 0x38
bl __divsi3
adds r4, r0, 0
cmp r4, 0x1
bgt _0804C762
movs r4, 0x1
_0804C762:
adds r1, r6, 0x4
movs r0, 0x20
bl __divsi3
adds r1, r0, 0
cmp r1, 0x1
bgt _0804C772
movs r1, 0x1
_0804C772:
str r7, [sp]
mov r0, r8
str r0, [sp, 0x4]
adds r0, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl sub_804C790
_0804C782:
movs r0, 0
_0804C784:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_804C70C
thumb_func_start sub_804C790
sub_804C790:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804C81C
add sp, r4
adds r5, r0, 0
adds r4, r1, 0
ldr r0, _0804C820
add r0, sp
str r2, [r0]
ldr r1, _0804C824
add r1, sp
str r3, [r1]
movs r2, 0
mov r10, r2
mov r8, r2
ldr r0, _0804C828
add r0, sp
ldr r1, _0804C82C
add r1, sp
adds r2, r5, 0
adds r3, r4, 0
bl sub_804D024
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
bl sub_804D084
ldr r0, _0804C830
add r0, sp
ldr r0, [r0]
movs r3, 0x1
ldrsb r3, [r0, r3]
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
bl sub_804D154
mov r6, r8
cmp r8, r5
bge _0804C818
_0804C7E8:
movs r1, 0
mov r8, r1
adds r2, r6, 0x1
cmp r8, r4
bge _0804C812
lsls r0, r6, 4
subs r0, r6
movs r1, 0x1
lsls r0, 5
add r0, sp
adds r0, 0x10
mov r8, r4
_0804C800:
strb r1, [r0, 0x1B]
adds r0, 0x20
movs r3, 0x1
negs r3, r3
add r8, r3
mov r3, r8
cmp r3, 0
bne _0804C800
mov r8, r4
_0804C812:
adds r6, r2, 0
cmp r6, r5
blt _0804C7E8
_0804C818:
movs r7, 0
b _0804C836
.align 2, 0
_0804C81C: .4byte 0xffffe350
_0804C820: .4byte 0x00001ca8
_0804C824: .4byte 0x00001cac
_0804C828: .4byte 0x00001c30
_0804C82C: .4byte 0x00001c6c
_0804C830: .4byte 0x00001cd4
_0804C834:
adds r7, 0x1
_0804C836:
cmp r7, 0x3F
bgt _0804C864
adds r0, r5, 0
bl DungeonRandomCapped
adds r6, r0, 0
adds r0, r4, 0
bl DungeonRandomCapped
mov r8, r0
mov r0, r8
muls r0, r5
adds r0, r6
mov r10, r0
lsls r0, r6, 4
subs r0, r6
add r0, r8
lsls r0, 5
add r0, sp
adds r0, 0x10
ldrb r0, [r0, 0xA]
cmp r0, 0
beq _0804C834
_0804C864:
ldr r0, _0804C8FC
add r0, sp
mov r9, r0
ldr r7, _0804C900
add r7, sp
str r7, [sp]
mov r1, r10
str r1, [sp, 0x4]
ldr r2, _0804C904
add r2, sp
ldr r2, [r2]
str r2, [sp, 0x8]
ldr r3, _0804C908
add r3, sp
ldr r3, [r3]
str r3, [sp, 0xC]
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
mov r3, r9
bl sub_8050F90
cmp r5, 0x1
bne _0804C898
cmp r4, 0x1
beq _0804C8D0
_0804C898:
mov r0, r8
str r0, [sp]
ldr r1, _0804C90C
add r1, sp
ldr r1, [r1]
str r1, [sp, 0x4]
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
adds r3, r6, 0
bl sub_804D5F0
str r7, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
mov r3, r9
bl sub_804D8C8
str r7, [sp]
add r0, sp, 0x10
adds r1, r5, 0
adds r2, r4, 0
mov r3, r9
bl sub_804E590
_0804C8D0:
lsls r0, r6, 4
subs r0, r6
lsls r0, 5
add r0, sp
adds r0, 0x10
mov r2, r8
lsls r1, r2, 5
adds r0, r1
ldr r3, _0804C910
add r3, sp
ldr r1, [r3]
bl sub_8051438
ldr r3, _0804C914
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
_0804C8FC: .4byte 0x00001c30
_0804C900: .4byte 0x00001c6c
_0804C904: .4byte 0x00001ca8
_0804C908: .4byte 0x00001cac
_0804C90C: .4byte 0x00001cd4
_0804C910: .4byte 0x00001cd0
_0804C914: .4byte 0x00001cb0
thumb_func_end sub_804C790
thumb_func_start sub_804C918
sub_804C918:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _0804C9C4
add sp, r4
mov r0, sp
movs r1, 0x1
movs r2, 0x1
bl sub_804D084
mov r0, sp
movs r3, 0
movs r2, 0x2
strh r2, [r0]
mov r1, sp
movs r0, 0x36
strh r0, [r1, 0x4]
mov r0, sp
strh r2, [r0, 0x2]
movs r0, 0x1E
strh r0, [r1, 0x6]
mov r0, sp
movs r1, 0x1
strb r1, [r0, 0xA]
strb r1, [r0, 0xB]
strb r3, [r0, 0x8]
movs r1, 0
ldrsh r5, [r0, r1]
movs r2, 0x4
ldrsh r0, [r0, r2]
cmp r5, r0
bge _0804C9A6
mov r6, sp
_0804C95C:
movs r0, 0x2
ldrsh r4, [r6, r0]
movs r1, 0x6
ldrsh r0, [r6, r1]
adds r7, r5, 0x1
cmp r4, r0
bge _0804C99C
movs r2, 0
mov r9, r2
ldr r0, _0804C9C8
mov r8, r0
_0804C972:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
mov r2, r8
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
mov r1, r9
strb r1, [r0, 0x9]
adds r4, 0x1
movs r2, 0x6
ldrsh r0, [r6, r2]
cmp r4, r0
blt _0804C972
_0804C99C:
adds r5, r7, 0
movs r1, 0x4
ldrsh r0, [r6, r1]
cmp r5, r0
blt _0804C95C
_0804C9A6:
ldr r3, _0804C9CC
mov r0, sp
movs r1, 0x1
movs r2, 0x1
bl sub_804EEE4
movs r3, 0xE1
lsls r3, 5
add sp, r3
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804C9C4: .4byte 0xffffe3e0
_0804C9C8: .4byte 0x0000fffc
_0804C9CC: .4byte 0x000003e7
thumb_func_end sub_804C918
thumb_func_start sub_804C9D0
sub_804C9D0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0804CBB4
add sp, r4
movs r0, 0
movs r1, 0xE5
lsls r1, 5
add r1, sp
str r0, [r1]
ldr r1, _0804CBB8
add r1, sp
movs r2, 0x2
str r2, [r1]
movs r0, 0x1C
str r0, [r1, 0x4]
movs r0, 0x36
str r0, [r1, 0x8]
ldr r1, _0804CBBC
add r1, sp
str r2, [r1]
movs r0, 0x1E
str r0, [r1, 0x4]
add r0, sp, 0x8
movs r1, 0x2
movs r2, 0x1
bl sub_804D084
movs r0, 0
ldr r2, _0804CBB8
add r2, sp
ldr r3, _0804CBC0
add r3, sp
str r2, [r3]
ldr r4, _0804CBBC
add r4, sp
ldr r1, _0804CBC4
add r1, sp
str r4, [r1]
_0804CA22:
movs r7, 0
lsls r2, r0, 2
ldr r3, _0804CBC8
add r3, sp
str r2, [r3]
adds r4, r0, 0x1
ldr r1, _0804CBCC
add r1, sp
str r4, [r1]
lsls r0, 5
ldr r2, _0804CBD0
add r2, sp
str r0, [r2]
_0804CA3C:
lsls r0, r7, 2
ldr r3, _0804CBC0
add r3, sp
ldr r3, [r3]
adds r0, r3, r0
ldr r1, [r0]
adds r4, r1, 0x1
mov r10, r4
ldr r2, _0804CBC4
add r2, sp
ldr r2, [r2]
ldr r3, _0804CBC8
add r3, sp
ldr r3, [r3]
adds r0, r2, r3
ldr r2, [r0]
adds r4, r2, 0x1
ldr r0, _0804CBD4
add r0, sp
str r4, [r0]
adds r3, r7, 0x1
mov r9, r3
lsls r0, r3, 2
ldr r4, _0804CBC0
add r4, sp
ldr r4, [r4]
adds r0, r4, r0
ldr r4, [r0]
subs r4, r1
subs r4, 0x3
ldr r1, _0804CBCC
add r1, sp
ldr r1, [r1]
lsls r0, r1, 2
ldr r3, _0804CBC4
add r3, sp
ldr r3, [r3]
adds r0, r3, r0
ldr r5, [r0]
subs r5, r2
subs r5, 0x3
movs r0, 0xA
adds r1, r4, 0
bl sub_808411C
mov r8, r0
movs r0, 0x10
adds r1, r5, 0
bl sub_808411C
adds r6, r0, 0
mov r0, r8
subs r4, r0
adds r0, r4, 0
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r10
subs r5, r6
adds r0, r5, 0
bl DungeonRandomCapped
ldr r2, _0804CBD4
add r2, sp
ldr r1, [r2]
adds r1, r0
mov r10, r1
mov r0, r8
adds r3, r4, r0
add r6, r10
lsls r0, r7, 4
subs r0, r7
lsls r0, 5
ldr r1, _0804CBD0
add r1, sp
ldr r1, [r1]
adds r0, r1, r0
add r0, sp
adds r0, 0x8
movs r1, 0x1
strb r1, [r0, 0xA]
strh r4, [r0]
strh r3, [r0, 0x4]
mov r2, r10
strh r2, [r0, 0x2]
strh r6, [r0, 0x6]
mov r0, r9
ldr r1, _0804CBD8
add r1, sp
str r0, [r1]
movs r0, 0xE5
lsls r0, 5
add r0, sp
ldr r2, [r0]
adds r2, 0x1
mov r9, r2
cmp r4, r3
bge _0804CB4E
_0804CB00:
mov r5, r10
adds r7, r4, 0x1
cmp r5, r6
bge _0804CB48
ldr r1, _0804CBDC
mov r8, r1
_0804CB0C:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xE6
lsls r2, 5
add r2, sp
str r3, [r2]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r8
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
movs r1, 0xE5
lsls r1, 5
add r1, sp
ldrb r1, [r1]
strb r1, [r0, 0x9]
adds r5, 0x1
movs r2, 0xE6
lsls r2, 5
add r2, sp
ldr r3, [r2]
cmp r5, r6
blt _0804CB0C
_0804CB48:
adds r4, r7, 0
cmp r4, r3
blt _0804CB00
_0804CB4E:
mov r3, r9
movs r4, 0xE5
lsls r4, 5
add r4, sp
str r3, [r4]
ldr r0, _0804CBD8
add r0, sp
ldr r7, [r0]
cmp r7, 0x1
bgt _0804CB64
b _0804CA3C
_0804CB64:
ldr r1, _0804CBCC
add r1, sp
ldr r0, [r1]
cmp r0, 0
bgt _0804CB70
b _0804CA22
_0804CB70:
add r0, sp, 0x8
movs r2, 0
movs r1, 0x1
strb r1, [r0, 0x16]
ldr r0, _0804CBE0
add r0, sp
strb r1, [r0]
ldr r3, _0804CBB8
add r3, sp
ldr r0, _0804CBBC
add r0, sp
str r0, [sp]
str r2, [sp, 0x4]
add r0, sp, 0x8
movs r1, 0x2
movs r2, 0x1
bl sub_804D8C8
ldr r3, _0804CBE4
add r0, sp, 0x8
movs r1, 0x2
movs r2, 0x1
bl sub_804EEE4
ldr r3, _0804CBE8
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
_0804CBB4: .4byte 0xffffe33c
_0804CBB8: .4byte 0x00001c28
_0804CBBC: .4byte 0x00001c64
_0804CBC0: .4byte 0x00001ca4
_0804CBC4: .4byte 0x00001cac
_0804CBC8: .4byte 0x00001cb0
_0804CBCC: .4byte 0x00001cbc
_0804CBD0: .4byte 0x00001cb4
_0804CBD4: .4byte 0x00001ca8
_0804CBD8: .4byte 0x00001cb8
_0804CBDC: .4byte 0x0000fffc
_0804CBE0: .4byte 0x000001fd
_0804CBE4: .4byte 0x000003e7
_0804CBE8: .4byte 0x00001cc4
thumb_func_end sub_804C9D0
thumb_func_start sub_804CBEC
sub_804CBEC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
str r0, [sp]
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r3, [sp, 0xC]
cmp r3, 0
bne _0804CC06
b _0804D006
_0804CC06:
movs r5, 0
cmp r5, r3
blt _0804CC0E
b _0804D006
_0804CC0E:
ldr r0, [sp, 0x4]
bl DungeonRandomCapped
mov r9, r0
ldr r0, [sp, 0x8]
bl DungeonRandomCapped
mov r10, r0
lsls r0, 5
mov r2, r9
lsls r1, r2, 4
subs r1, r2
lsls r1, 5
ldr r3, [sp]
adds r1, r3
adds r4, r0, r1
ldrb r0, [r4, 0xA]
adds r5, 0x1
str r5, [sp, 0x18]
cmp r0, 0
bne _0804CC3A
b _0804CFFC
_0804CC3A:
ldrb r0, [r4, 0xB]
cmp r0, 0
bne _0804CC42
b _0804CFFC
_0804CC42:
ldrb r0, [r4, 0x8]
cmp r0, 0
beq _0804CC4A
b _0804CFFC
_0804CC4A:
ldrb r0, [r4, 0x10]
cmp r0, 0
beq _0804CC52
b _0804CFFC
_0804CC52:
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x4
ldrsh r1, [r4, r2]
bl sub_808411C
adds r7, r0, 0
movs r3, 0x2
ldrsh r0, [r4, r3]
movs r2, 0x6
ldrsh r1, [r4, r2]
bl sub_808411C
adds r6, r0, 0
movs r0, 0x4
bl DungeonRandomCapped
lsls r0, 1
mov r8, r0
ldr r1, [sp, 0x8]
subs r1, 0x1
movs r3, 0x2
str r3, [sp, 0x10]
ldr r0, [sp, 0x4]
subs r0, 0x1
_0804CC84:
mov r2, r8
cmp r2, 0
bne _0804CC92
cmp r10, r1
blt _0804CC92
movs r3, 0x2
mov r8, r3
_0804CC92:
mov r2, r8
cmp r2, 0x2
bne _0804CCA0
cmp r9, r0
blt _0804CCA0
movs r3, 0x4
mov r8, r3
_0804CCA0:
mov r2, r8
cmp r2, 0x4
bne _0804CCB0
mov r3, r10
cmp r3, 0
bgt _0804CCB0
movs r2, 0x6
mov r8, r2
_0804CCB0:
mov r3, r8
cmp r3, 0x6
bne _0804CCC0
mov r2, r9
cmp r2, 0
bgt _0804CCC0
movs r3, 0
mov r8, r3
_0804CCC0:
ldr r2, [sp, 0x10]
subs r2, 0x1
str r2, [sp, 0x10]
cmp r2, 0
bge _0804CC84
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrb r5, [r0, 0x9]
ldr r1, _0804CCE0
mov r3, r8
lsls r0, r3, 2
adds r4, r0, r1
b _0804CCF0
.align 2, 0
_0804CCE0: .4byte gAdjacentTileOffsets
_0804CCE4:
movs r1, 0
ldrsh r0, [r4, r1]
adds r7, r0
movs r2, 0x2
ldrsh r0, [r4, r2]
adds r6, r0
_0804CCF0:
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r5, r0
beq _0804CCE4
ldr r1, _0804CD08
mov r3, r8
lsls r0, r3, 2
adds r4, r0, r1
b _0804CD18
.align 2, 0
_0804CD08: .4byte gAdjacentTileOffsets
_0804CD0C:
movs r1, 0
ldrsh r0, [r4, r1]
adds r7, r0
movs r2, 0x2
ldrsh r0, [r4, r2]
adds r6, r0
_0804CD18:
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
beq _0804CD0C
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x2
bne _0804CD40
b _0804CFFC
_0804CD40:
movs r3, 0
subs r2, r7, 0x2
adds r4, r7, 0x2
b _0804CD4A
_0804CD48:
adds r2, 0x1
_0804CD4A:
cmp r2, r4
bgt _0804CD6C
subs r0, r6, 0x2
adds r1, r6, 0x2
b _0804CD56
_0804CD54:
adds r0, 0x1
_0804CD56:
cmp r0, r1
bgt _0804CD68
cmp r2, 0x37
bhi _0804CD66
cmp r0, 0
blt _0804CD66
cmp r0, 0x1F
ble _0804CD54
_0804CD66:
movs r3, 0x1
_0804CD68:
cmp r3, 0
beq _0804CD48
_0804CD6C:
cmp r3, 0
beq _0804CD72
b _0804CFFC
_0804CD72:
ldr r2, _0804CDD4
mov r1, r8
adds r1, 0x2
movs r4, 0x6
ands r1, r4
lsls r1, 2
adds r1, r2
movs r3, 0
ldrsh r0, [r1, r3]
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
str r2, [sp, 0x1C]
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
ands r0, r1
ldr r2, [sp, 0x1C]
cmp r0, 0x1
bne _0804CDA2
b _0804CFFC
_0804CDA2:
mov r1, r8
subs r1, 0x2
ands r1, r4
lsls r1, 2
adds r1, r2
movs r2, 0
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
bne _0804CDC8
b _0804CFFC
_0804CDC8:
movs r0, 0x3
bl DungeonRandomCapped
adds r0, 0x3
str r0, [sp, 0x10]
b _0804CFD4
.align 2, 0
_0804CDD4: .4byte gAdjacentTileOffsets
_0804CDD8:
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0804CDEC
b _0804CFFC
_0804CDEC:
movs r0, 0x1
str r0, [sp, 0x14]
adds r4, r7, 0x1
adds r0, r4, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r10
ands r0, r1
mov r9, r4
cmp r0, 0x1
bne _0804CE32
adds r5, r6, 0x1
adds r0, r4, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r0, [r0]
mov r4, r10
ands r4, r0
cmp r4, 0x1
bne _0804CE32
adds r0, r7, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r0, [r0]
mov r1, r10
ands r0, r1
eors r0, r4
negs r1, r0
orrs r1, r0
lsrs r1, 31
str r1, [sp, 0x14]
_0804CE32:
mov r0, r9
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
bne _0804CE70
subs r4, r6, 0x1
mov r0, r9
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
bne _0804CE70
adds r0, r7, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
bne _0804CE70
movs r2, 0
str r2, [sp, 0x14]
_0804CE70:
subs r4, r7, 0x1
adds r0, r4, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEB6
adds r5, r6, 0x1
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x1C]
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEB6
adds r0, r7, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEB6
movs r3, 0
str r3, [sp, 0x14]
_0804CEB6:
adds r0, r4, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEFA
subs r5, r6, 0x1
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x1C]
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEFA
adds r0, r7, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x1C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x1
bne _0804CEFA
movs r0, 0
str r0, [sp, 0x14]
_0804CEFA:
ldr r1, [sp, 0x14]
cmp r1, 0
beq _0804CF16
adds r0, r7, 0
adds r1, r6, 0
bl GetMapEntity
ldrh r1, [r0]
ldr r3, _0804D018
adds r2, r3, 0
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
_0804CF16:
ldr r2, _0804D01C
movs r0, 0x2
add r0, r8
mov r9, r0
movs r1, 0x6
mov r10, r1
mov r1, r9
mov r3, r10
ands r1, r3
lsls r1, 2
adds r1, r2
movs r3, 0
ldrsh r0, [r1, r3]
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
str r2, [sp, 0x1C]
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r5, 0x3
adds r0, r5, 0
ands r0, r1
ldr r2, [sp, 0x1C]
cmp r0, 0x1
beq _0804CFFC
mov r4, r8
subs r4, 0x2
adds r1, r4, 0
mov r0, r10
ands r1, r0
lsls r1, 2
adds r1, r2
movs r2, 0
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r0, r7, r0
adds r1, r6, r1
bl GetMapTileAtPosition
ldrh r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x1
beq _0804CFFC
ldr r0, [sp, 0x10]
subs r0, 0x1
str r0, [sp, 0x10]
cmp r0, 0
bne _0804CFC0
movs r0, 0x3
bl DungeonRandomCapped
adds r0, 0x3
str r0, [sp, 0x10]
movs r0, 0x64
bl DungeonRandomCapped
mov r8, r4
cmp r0, 0x31
bgt _0804CF96
mov r8, r9
_0804CF96:
mov r1, r8
mov r2, r10
ands r1, r2
mov r8, r1
cmp r7, 0x1F
ble _0804CFAE
ldr r0, _0804D020
ldrb r0, [r0]
cmp r0, 0x1
bne _0804CFAE
cmp r1, 0x2
beq _0804CFFC
_0804CFAE:
cmp r7, 0x2F
ble _0804CFC0
ldr r0, _0804D020
ldrb r0, [r0]
cmp r0, 0x2
bne _0804CFC0
mov r3, r8
cmp r3, 0x2
beq _0804CFFC
_0804CFC0:
ldr r0, _0804D01C
mov r2, r8
lsls r1, r2, 2
adds r1, r0
movs r3, 0
ldrsh r0, [r1, r3]
adds r7, r0
movs r2, 0x2
ldrsh r0, [r1, r2]
adds r6, r0
_0804CFD4:
cmp r7, 0x1
ble _0804CFFC
cmp r6, 0x1
ble _0804CFFC
cmp r7, 0x36
bgt _0804CFFC
cmp r6, 0x1E
bgt _0804CFFC
adds r0, r7, 0
adds r1, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r3, 0x3
mov r10, r3
mov r0, r10
ands r0, r1
cmp r0, 0x1
beq _0804CFFC
b _0804CDD8
_0804CFFC:
ldr r5, [sp, 0x18]
ldr r0, [sp, 0xC]
cmp r5, r0
bge _0804D006
b _0804CC0E
_0804D006:
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
_0804D018: .4byte 0x0000fffc
_0804D01C: .4byte gAdjacentTileOffsets
_0804D020: .4byte gUnknown_202F1AE
thumb_func_end sub_804CBEC
thumb_func_start sub_804D024
sub_804D024:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r7, r0, 0
mov r8, r1
adds r5, r2, 0
adds r6, r3, 0
movs r4, 0
cmp r4, r5
bge _0804D04E
movs r0, 0x38
adds r1, r5, 0
bl __divsi3
adds r2, r7, 0
adds r1, r5, 0
_0804D044:
stm r2!, {r4}
adds r4, r0
subs r1, 0x1
cmp r1, 0
bne _0804D044
_0804D04E:
lsls r0, r5, 2
adds r0, r7
str r4, [r0]
movs r4, 0
lsls r5, r6, 2
cmp r4, r6
bge _0804D072
movs r0, 0x20
adds r1, r6, 0
bl __divsi3
mov r2, r8
adds r1, r6, 0
_0804D068:
stm r2!, {r4}
adds r4, r0
subs r1, 0x1
cmp r1, 0
bne _0804D068
_0804D072:
mov r1, r8
adds r0, r5, r1
str r4, [r0]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804D024
thumb_func_start sub_804D084
sub_804D084:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r8, r0
adds r5, r1, 0
mov r9, r2
movs r2, 0
cmp r2, r5
bge _0804D144
lsrs r0, r5, 31
adds r0, r5, r0
asrs r0, 1
str r0, [sp]
movs r3, 0
_0804D0A6:
adds r0, r2, 0x1
mov r10, r0
mov r4, r9
cmp r4, 0
ble _0804D13E
ldr r6, _0804D0D8
ldrb r6, [r6]
str r6, [sp, 0x4]
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
mov r4, r8
adds r1, r0, r4
movs r7, 0
movs r6, 0x1
mov r12, r6
mov r4, r9
_0804D0C8:
ldr r0, [sp, 0x4]
cmp r0, 0x1
bne _0804D0DC
ldr r6, [sp]
cmp r2, r6
blt _0804D0DC
strb r0, [r1, 0x8]
b _0804D102
.align 2, 0
_0804D0D8: .4byte gUnknown_202F1AE
_0804D0DC:
ldr r6, _0804D0FC
ldrb r0, [r6]
cmp r0, 0x2
bne _0804D100
lsls r0, r5, 1
adds r0, r5
cmp r0, 0
bge _0804D0EE
adds r0, 0x3
_0804D0EE:
asrs r0, 2
cmp r2, r0
blt _0804D100
mov r0, r12
strb r0, [r1, 0x8]
b _0804D102
.align 2, 0
_0804D0FC: .4byte gUnknown_202F1AE
_0804D100:
strb r3, [r1, 0x8]
_0804D102:
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
add r0, r8
adds r0, r7, r0
mov r6, r12
strb r6, [r0, 0xA]
strb r3, [r0, 0xB]
strb r3, [r0, 0xF]
strb r3, [r0, 0xE]
strb r3, [r0, 0xC]
strb r3, [r0, 0x16]
strb r3, [r0, 0x15]
strb r3, [r0, 0x14]
strb r3, [r0, 0x13]
strb r3, [r0, 0x1A]
strb r3, [r0, 0x19]
strb r3, [r0, 0x18]
strb r3, [r0, 0x17]
strb r3, [r0, 0x9]
strb r3, [r0, 0x11]
strb r3, [r0, 0x10]
strb r3, [r0, 0x12]
strb r3, [r0, 0x1C]
strb r3, [r0, 0x1D]
adds r1, 0x20
adds r7, 0x20
subs r4, 0x1
cmp r4, 0
bne _0804D0C8
_0804D13E:
mov r2, r10
cmp r2, r5
blt _0804D0A6
_0804D144:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804D084
thumb_func_start sub_804D154
sub_804D154:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x114
str r0, [sp, 0x100]
mov r9, r1
mov r8, r2
adds r4, r3, 0
movs r0, 0x3
bl DungeonRandomCapped
adds r3, r0, 0
cmp r4, 0
bge _0804D17E
negs r4, r4
b _0804D180
_0804D178:
movs r0, 0x1
strb r0, [r4, 0xA]
b _0804D2B6
_0804D17E:
adds r4, r3
_0804D180:
movs r3, 0
mov r0, r8
mov r2, r9
muls r2, r0
cmp r3, r4
bge _0804D19A
movs r1, 0x1
_0804D18E:
mov r5, sp
adds r0, r5, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, r4
blt _0804D18E
_0804D19A:
cmp r3, 0xFF
bgt _0804D1AC
movs r1, 0
_0804D1A0:
mov r6, sp
adds r0, r6, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, 0xFF
ble _0804D1A0
_0804D1AC:
adds r5, r2, 0
movs r6, 0x3F
_0804D1B0:
adds r0, r5, 0
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl DungeonRandomCapped
mov r1, sp
adds r2, r1, r4
ldrb r3, [r2]
adds r1, r0
ldrb r0, [r1]
strb r0, [r2]
strb r3, [r1]
subs r6, 0x1
cmp r6, 0
bge _0804D1B0
movs r3, 0
ldr r0, _0804D24C
str r3, [r0]
movs r7, 0
mov r12, r0
cmp r7, r9
bge _0804D262
_0804D1E0:
movs r5, 0
adds r4, r7, 0x1
str r4, [sp, 0x104]
cmp r5, r8
bge _0804D25C
lsls r2, r7, 4
subs r2, r7
lsls r2, 5
ldr r6, [sp, 0x100]
adds r0, r2, r6
mov r1, r9
movs r4, 0x1
ands r1, r4
str r1, [sp, 0x110]
mov r1, r9
subs r1, 0x1
adds r0, 0x20
mov r10, r0
adds r0, r6, 0
adds r0, 0x8
adds r2, r0
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
_0804D210:
ldrb r4, [r2]
cmp r4, 0
bne _0804D254
mov r6, r12
ldr r0, [r6]
cmp r0, 0x1F
ble _0804D220
strb r4, [r2, 0x2]
_0804D220:
mov r6, sp
adds r0, r6, r3
ldrb r0, [r0]
cmp r0, 0
beq _0804D250
movs r0, 0x1
strb r0, [r2, 0x2]
mov r6, r12
ldr r0, [r6]
adds r0, 0x1
str r0, [r6]
ldr r0, [sp, 0x110]
cmp r0, 0
beq _0804D252
cmp r7, r1
bne _0804D252
cmp r5, 0x1
bne _0804D252
mov r6, r10
strb r4, [r6, 0xA]
b _0804D252
.align 2, 0
_0804D24C: .4byte gUnknown_202F1CC
_0804D250:
strb r0, [r2, 0x2]
_0804D252:
adds r3, 0x1
_0804D254:
adds r2, 0x20
adds r5, 0x1
cmp r5, r8
blt _0804D210
_0804D25C:
ldr r7, [sp, 0x104]
cmp r7, r9
blt _0804D1E0
_0804D262:
mov r1, r12
ldr r0, [r1]
cmp r0, 0x1
bgt _0804D2BC
movs r1, 0
movs r2, 0
_0804D26E:
movs r7, 0
cmp r2, r9
bge _0804D2AC
movs r6, 0
_0804D276:
movs r5, 0
cmp r5, r8
bge _0804D2A4
lsls r0, r6, 5
ldr r3, [sp, 0x100]
adds r4, r0, r3
_0804D282:
ldrb r0, [r4, 0x8]
cmp r0, 0
bne _0804D29C
movs r0, 0x64
str r1, [sp, 0x108]
str r2, [sp, 0x10C]
bl DungeonRandomCapped
ldr r1, [sp, 0x108]
ldr r2, [sp, 0x10C]
cmp r0, 0x3B
bgt _0804D29C
b _0804D178
_0804D29C:
adds r4, 0x20
adds r5, 0x1
cmp r5, r8
blt _0804D282
_0804D2A4:
adds r6, 0xF
adds r7, 0x1
cmp r7, r9
blt _0804D276
_0804D2AC:
cmp r2, 0
bne _0804D2B6
adds r1, 0x1
cmp r1, 0xC7
ble _0804D26E
_0804D2B6:
ldr r1, _0804D2CC
movs r0, 0
strb r0, [r1]
_0804D2BC:
add sp, 0x114
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804D2CC: .4byte gUnknown_202F1AD
thumb_func_end sub_804D154
thumb_func_start sub_804D2D0
sub_804D2D0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
str r0, [sp]
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r0, 0
str r0, [sp, 0x10]
movs r1, 0
str r1, [sp, 0x14]
cmp r1, r2
blt _0804D2F2
b _0804D520
_0804D2F2:
movs r2, 0
mov r10, r2
ldr r3, [sp, 0x14]
adds r3, 0x1
str r3, [sp, 0x28]
ldr r4, [sp, 0x4]
cmp r10, r4
blt _0804D304
b _0804D514
_0804D304:
ldr r5, [sp, 0x14]
lsls r5, 5
str r5, [sp, 0x1C]
_0804D30A:
mov r1, r10
lsls r0, r1, 2
ldr r2, [sp, 0xC]
adds r0, r2
ldr r3, [r0]
adds r4, r3, 0x2
mov r9, r4
ldr r5, [sp, 0x14]
lsls r1, r5, 2
ldr r2, [sp, 0x58]
adds r1, r2
ldr r2, [r1]
adds r4, r2, 0x2
str r4, [sp, 0x18]
ldr r0, [r0, 0x4]
subs r0, r3
subs r4, r0, 0x4
ldr r0, [r1, 0x4]
subs r0, r2
subs r0, 0x3
mov r8, r0
mov r5, r10
lsls r1, r5, 4
subs r0, r1, r5
lsls r0, 5
ldr r2, [sp]
adds r0, r2
ldr r3, [sp, 0x1C]
adds r7, r3, r0
ldrb r0, [r7, 0x8]
str r1, [sp, 0x2C]
adds r5, 0x1
str r5, [sp, 0x24]
cmp r0, 0
beq _0804D352
b _0804D508
_0804D352:
ldrb r0, [r7, 0xA]
cmp r0, 0
bne _0804D35A
b _0804D48C
_0804D35A:
movs r0, 0x5
adds r1, r4, 0
bl sub_808411C
adds r6, r0, 0
movs r0, 0x4
mov r1, r8
bl sub_808411C
adds r5, r0, 0
movs r1, 0x1
adds r0, r6, 0
orrs r0, r1
cmp r0, r4
bge _0804D37A
adds r6, r0, 0
_0804D37A:
adds r0, r5, 0
orrs r0, r1
cmp r0, r8
bge _0804D384
adds r5, r0, 0
_0804D384:
lsls r0, r5, 1
adds r0, r5
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
cmp r6, r0
ble _0804D394
adds r6, r0, 0
_0804D394:
lsls r0, r6, 1
adds r0, r6
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
cmp r5, r0
ble _0804D3A4
adds r5, r0, 0
_0804D3A4:
subs r0, r4, r6
bl DungeonRandomCapped
adds r4, r0, 0
add r4, r9
mov r1, r8
subs r0, r1, r5
bl DungeonRandomCapped
ldr r2, [sp, 0x18]
adds r0, r2
mov r8, r0
adds r3, r4, r6
adds r6, r0, r5
strh r4, [r7]
strh r3, [r7, 0x4]
mov r5, r8
strh r5, [r7, 0x2]
strh r6, [r7, 0x6]
ldr r0, [sp, 0x10]
adds r0, 0x1
str r0, [sp, 0x20]
cmp r4, r3
bge _0804D412
_0804D3D4:
mov r5, r8
adds r7, r4, 0x1
cmp r5, r6
bge _0804D40C
ldr r1, _0804D484
mov r9, r1
_0804D3E0:
adds r0, r4, 0
adds r1, r5, 0
str r3, [sp, 0x34]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r9
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
mov r1, sp
ldrb r1, [r1, 0x10]
strb r1, [r0, 0x9]
adds r5, 0x1
ldr r3, [sp, 0x34]
cmp r5, r6
blt _0804D3E0
_0804D40C:
adds r4, r7, 0
cmp r4, r3
blt _0804D3D4
_0804D412:
movs r5, 0x1
movs r0, 0x64
bl DungeonRandomCapped
movs r1, 0
cmp r0, 0x4F
bgt _0804D422
movs r1, 0x1
_0804D422:
adds r4, r1, 0
ldr r0, _0804D488
ldr r0, [r0]
cmp r0, 0
bne _0804D42E
movs r4, 0
_0804D42E:
movs r0, 0x4
ldr r2, [sp, 0x5C]
ands r0, r2
cmp r0, 0
bne _0804D43A
movs r5, 0
_0804D43A:
cmp r5, 0
beq _0804D466
cmp r4, 0
beq _0804D44E
movs r0, 0x64
bl DungeonRandomCapped
cmp r0, 0x31
ble _0804D466
movs r4, 0
_0804D44E:
cmp r5, 0
beq _0804D466
ldr r3, [sp, 0x2C]
mov r5, r10
subs r0, r3, r5
lsls r0, 5
ldr r1, [sp]
adds r0, r1
ldr r2, [sp, 0x1C]
adds r0, r2, r0
movs r1, 0x1
strb r1, [r0, 0x1C]
_0804D466:
cmp r4, 0
beq _0804D47E
ldr r3, [sp, 0x2C]
mov r4, r10
subs r0, r3, r4
lsls r0, 5
ldr r5, [sp]
adds r0, r5
ldr r1, [sp, 0x1C]
adds r0, r1, r0
movs r1, 0x1
strb r1, [r0, 0x1D]
_0804D47E:
ldr r2, [sp, 0x20]
str r2, [sp, 0x10]
b _0804D508
.align 2, 0
_0804D484: .4byte 0x0000fffc
_0804D488: .4byte gUnknown_202F1C8
_0804D48C:
movs r1, 0x2
movs r3, 0x4
movs r6, 0x2
movs r2, 0x4
mov r5, r10
cmp r5, 0
bne _0804D49C
movs r1, 0x1
_0804D49C:
ldr r0, [sp, 0x14]
cmp r0, 0
bne _0804D4A4
movs r6, 0x1
_0804D4A4:
ldr r0, [sp, 0x4]
subs r0, 0x1
cmp r10, r0
bne _0804D4AE
movs r3, 0x2
_0804D4AE:
ldr r0, [sp, 0x8]
subs r0, 0x1
ldr r5, [sp, 0x14]
cmp r5, r0
bne _0804D4BA
movs r2, 0x2
_0804D4BA:
mov r5, r9
adds r0, r5, r1
adds r1, r5, r4
subs r1, r3
str r2, [sp, 0x30]
bl sub_808411C
adds r5, r0, 0
ldr r1, [sp, 0x18]
adds r0, r1, r6
add r1, r8
ldr r2, [sp, 0x30]
subs r1, r2
bl sub_808411C
adds r4, r0, 0
strh r5, [r7]
adds r0, r5, 0x1
strh r0, [r7, 0x4]
strh r4, [r7, 0x2]
adds r0, r4, 0x1
strh r0, [r7, 0x6]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ldr r3, _0804D530
adds r2, r3, 0
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0xFE
strb r1, [r0, 0x9]
_0804D508:
ldr r4, [sp, 0x24]
mov r10, r4
ldr r5, [sp, 0x4]
cmp r10, r5
bge _0804D514
b _0804D30A
_0804D514:
ldr r0, [sp, 0x28]
str r0, [sp, 0x14]
ldr r1, [sp, 0x8]
cmp r0, r1
bge _0804D520
b _0804D2F2
_0804D520:
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804D530: .4byte 0x0000fffc
thumb_func_end sub_804D2D0
thumb_func_start sub_804D534
sub_804D534:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
adds r3, r0, 0
adds r7, r1, 0
mov r9, r2
movs r1, 0
cmp r1, r9
bge _0804D5A0
_0804D54A:
adds r0, r1, 0x1
mov r8, r0
cmp r7, 0
ble _0804D59A
lsls r1, 5
adds r0, r1, 0
adds r0, 0x8
adds r4, r3, r0
adds r5, r3, r1
adds r6, r7, 0
_0804D55E:
ldrb r0, [r4]
cmp r0, 0
bne _0804D58C
ldrb r0, [r4, 0x6]
cmp r0, 0
bne _0804D58C
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _0804D58C
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _0804D58C
ldrb r0, [r4, 0x14]
cmp r0, 0
bne _0804D58C
ldrb r0, [r4, 0x15]
cmp r0, 0
beq _0804D58C
adds r0, r5, 0
str r3, [sp]
bl sub_804F694
ldr r3, [sp]
_0804D58C:
movs r0, 0xF0
lsls r0, 1
adds r4, r0
adds r5, r0
subs r6, 0x1
cmp r6, 0
bne _0804D55E
_0804D59A:
mov r1, r8
cmp r1, r9
blt _0804D54A
_0804D5A0:
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804D534
thumb_func_start sub_804D5B0
sub_804D5B0:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
mov r9, r0
adds r4, r1, 0
adds r5, r2, 0
adds r6, r3, 0
adds r0, r4, 0
bl DungeonRandomCapped
mov r8, r0
adds r0, r5, 0
bl DungeonRandomCapped
str r0, [sp]
str r6, [sp, 0x4]
mov r0, r9
adds r1, r4, 0
adds r2, r5, 0
mov r3, r8
bl sub_804D5F0
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_804D5B0
thumb_func_start sub_804D5F0
sub_804D5F0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
str r0, [sp]
str r1, [sp, 0x4]
str r2, [sp, 0x8]
adds r7, r3, 0
ldr r6, [sp, 0x40]
ldr r0, [sp, 0x44]
ldrb r0, [r0, 0x5]
str r0, [sp, 0xC]
movs r0, 0x4
bl DungeonRandomCapped
adds r5, r0, 0
movs r1, 0
mov r10, r1
ldr r2, [sp, 0xC]
cmp r10, r2
blt _0804D620
b _0804D726
_0804D620:
lsls r4, r6, 5
mov r9, r4
lsls r0, r7, 4
subs r0, r7
lsls r0, 5
ldr r1, [sp]
adds r0, r1
mov r8, r0
_0804D630:
movs r0, 0x8
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0x4
bl DungeonRandomCapped
cmp r4, 0x3
bgt _0804D644
adds r5, r0, 0
_0804D644:
mov r4, r10
adds r4, 0x1
_0804D648:
movs r1, 0
movs r0, 0x3
ands r0, r5
cmp r0, 0x1
beq _0804D670
cmp r0, 0x1
bgt _0804D65C
cmp r0, 0
beq _0804D666
b _0804D686
_0804D65C:
cmp r0, 0x2
beq _0804D676
cmp r0, 0x3
beq _0804D67C
b _0804D686
_0804D666:
ldr r0, [sp, 0x4]
subs r0, 0x1
cmp r7, r0
blt _0804D68A
b _0804D684
_0804D670:
cmp r6, 0
bgt _0804D68A
b _0804D684
_0804D676:
cmp r7, 0
bgt _0804D68A
b _0804D684
_0804D67C:
ldr r0, [sp, 0x8]
subs r0, 0x1
cmp r6, r0
blt _0804D68A
_0804D684:
adds r5, 0x1
_0804D686:
cmp r1, 0
beq _0804D648
_0804D68A:
movs r1, 0x3
ands r1, r5
cmp r1, 0x1
beq _0804D6C6
cmp r1, 0x1
bgt _0804D69C
cmp r1, 0
beq _0804D6A6
b _0804D71E
_0804D69C:
cmp r1, 0x2
beq _0804D6E2
cmp r1, 0x3
beq _0804D704
b _0804D71E
_0804D6A6:
mov r1, r9
add r1, r8
movs r0, 0xF0
lsls r0, 1
adds r2, r1, r0
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804D71E
movs r0, 0x1
strb r0, [r1, 0x16]
strb r0, [r2, 0x15]
movs r1, 0xF0
lsls r1, 1
add r8, r1
adds r7, 0x1
b _0804D71E
_0804D6C6:
mov r2, r9
add r2, r8
adds r3, r2, 0
subs r3, 0x20
ldrb r0, [r3, 0x8]
cmp r0, 0
bne _0804D71E
strb r1, [r2, 0x13]
strb r1, [r3, 0x14]
movs r2, 0x20
negs r2, r2
add r9, r2
subs r6, 0x1
b _0804D71E
_0804D6E2:
mov r1, r9
add r1, r8
ldr r0, _0804D700
adds r2, r1, r0
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804D71E
movs r0, 0x1
strb r0, [r1, 0x15]
strb r0, [r2, 0x16]
ldr r1, _0804D700
add r8, r1
subs r7, 0x1
b _0804D71E
.align 2, 0
_0804D700: .4byte 0xfffffe20
_0804D704:
mov r1, r9
add r1, r8
adds r2, r1, 0
adds r2, 0x20
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804D71E
movs r0, 0x1
strb r0, [r1, 0x14]
strb r0, [r2, 0x13]
movs r1, 0x20
add r9, r1
adds r6, 0x1
_0804D71E:
mov r10, r4
ldr r2, [sp, 0xC]
cmp r10, r2
blt _0804D630
_0804D726:
ldr r4, [sp, 0x44]
ldrb r0, [r4, 0xB]
cmp r0, 0
beq _0804D730
b _0804D8B8
_0804D730:
movs r0, 0
mov r9, r0
movs r7, 0
ldr r1, [sp, 0x4]
cmp r9, r1
blt _0804D73E
b _0804D8B0
_0804D73E:
movs r2, 0x1
mov r8, r2
_0804D742:
movs r6, 0
adds r4, r7, 0x1
str r4, [sp, 0x14]
ldr r0, [sp, 0x8]
cmp r6, r0
blt _0804D750
b _0804D8A6
_0804D750:
lsls r1, r7, 4
str r1, [sp, 0x10]
subs r0, r1, r7
lsls r0, 5
ldr r2, [sp]
adds r3, r0, r2
_0804D75C:
lsls r0, r6, 5
adds r2, r0, r3
ldrb r1, [r2, 0x8]
adds r4, r0, 0
adds r0, r6, 0x1
str r0, [sp, 0x18]
cmp r1, 0
beq _0804D76E
b _0804D89C
_0804D76E:
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804D776
b _0804D89C
_0804D776:
ldrb r0, [r2, 0x13]
negs r1, r0
orrs r1, r0
lsrs r1, 31
ldrb r0, [r2, 0x14]
cmp r0, 0
beq _0804D786
adds r1, 0x1
_0804D786:
ldrb r0, [r2, 0x15]
cmp r0, 0
beq _0804D78E
adds r1, 0x1
_0804D78E:
ldrb r0, [r2, 0x16]
cmp r0, 0
beq _0804D796
adds r1, 0x1
_0804D796:
cmp r1, 0x1
beq _0804D79C
b _0804D89C
_0804D79C:
movs r0, 0x4
str r3, [sp, 0x1C]
bl DungeonRandomCapped
adds r5, r0, 0
movs r2, 0
mov r10, r2
ldr r1, [sp, 0x10]
subs r0, r1, r7
lsls r0, 5
ldr r1, [sp]
adds r0, r1
adds r1, r4, r0
ldr r3, [sp, 0x1C]
_0804D7B8:
movs r0, 0x3
ands r0, r5
cmp r0, 0x1
beq _0804D7E0
cmp r0, 0x1
bgt _0804D7CA
cmp r0, 0
beq _0804D7D4
b _0804D800
_0804D7CA:
cmp r0, 0x2
beq _0804D7E8
cmp r0, 0x3
beq _0804D7F0
b _0804D800
_0804D7D4:
ldr r0, [sp, 0x4]
subs r0, 0x1
cmp r7, r0
bge _0804D7FE
ldrb r0, [r1, 0x16]
b _0804D7FA
_0804D7E0:
cmp r6, 0
ble _0804D7FE
ldrb r0, [r1, 0x13]
b _0804D7FA
_0804D7E8:
cmp r7, 0
ble _0804D7FE
ldrb r0, [r1, 0x15]
b _0804D7FA
_0804D7F0:
ldr r0, [sp, 0x8]
subs r0, 0x1
cmp r6, r0
bge _0804D7FE
ldrb r0, [r1, 0x14]
_0804D7FA:
cmp r0, 0
beq _0804D80E
_0804D7FE:
adds r5, 0x1
_0804D800:
mov r0, r10
cmp r0, 0
bne _0804D80E
adds r2, 0x1
cmp r2, 0x7
ble _0804D7B8
b _0804D89C
_0804D80E:
movs r2, 0x3
ands r2, r5
cmp r2, 0x1
beq _0804D844
cmp r2, 0x1
bgt _0804D820
cmp r2, 0
beq _0804D82A
b _0804D89C
_0804D820:
cmp r2, 0x2
beq _0804D85C
cmp r2, 0x3
beq _0804D880
b _0804D89C
_0804D82A:
adds r1, r4, r3
movs r4, 0xF0
lsls r4, 1
adds r2, r1, r4
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804D89C
mov r0, r8
strb r0, [r1, 0x16]
strb r0, [r2, 0x15]
movs r1, 0x1
mov r9, r1
b _0804D89C
_0804D844:
adds r1, r4, r3
movs r4, 0xF0
lsls r4, 1
adds r0, r1, r4
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0804D89C
strb r2, [r1, 0x13]
adds r0, r1, 0
subs r0, 0x20
strb r2, [r0, 0x14]
b _0804D898
_0804D85C:
adds r1, r4, r3
movs r2, 0xF0
lsls r2, 1
adds r0, r1, r2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0804D89C
mov r4, r8
strb r4, [r1, 0x15]
ldr r2, _0804D87C
adds r0, r1, r2
strb r4, [r0, 0x16]
movs r4, 0x1
mov r9, r4
b _0804D89C
.align 2, 0
_0804D87C: .4byte 0xfffffe20
_0804D880:
adds r1, r4, r3
movs r2, 0xF0
lsls r2, 1
adds r0, r1, r2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0804D89C
mov r4, r8
strb r4, [r1, 0x14]
adds r0, r1, 0
adds r0, 0x20
strb r4, [r0, 0x13]
_0804D898:
movs r0, 0x1
mov r9, r0
_0804D89C:
ldr r6, [sp, 0x18]
ldr r1, [sp, 0x8]
cmp r6, r1
bge _0804D8A6
b _0804D75C
_0804D8A6:
ldr r7, [sp, 0x14]
ldr r2, [sp, 0x4]
cmp r7, r2
bge _0804D8B0
b _0804D742
_0804D8B0:
mov r4, r9
cmp r4, 0
beq _0804D8B8
b _0804D730
_0804D8B8:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804D5F0
thumb_func_start sub_804D8C8
sub_804D8C8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x58
str r0, [sp, 0xC]
str r1, [sp, 0x10]
str r2, [sp, 0x14]
str r3, [sp, 0x18]
ldr r0, [sp, 0x7C]
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x1C]
movs r0, 0
str r0, [sp, 0x20]
cmp r0, r1
bge _0804D968
_0804D8EC:
movs r1, 0
mov r10, r1
ldr r2, [sp, 0x20]
adds r2, 0x1
str r2, [sp, 0x38]
ldr r3, [sp, 0x14]
cmp r10, r3
bge _0804D95E
ldr r4, [sp, 0x20]
lsls r1, r4, 4
subs r1, r4
movs r3, 0
lsls r1, 5
ldr r0, [sp, 0xC]
adds r0, 0x8
adds r1, r0
_0804D90C:
ldrb r2, [r1]
cmp r2, 0
beq _0804D91C
strb r3, [r1, 0xF]
strb r3, [r1, 0x10]
strb r3, [r1, 0x11]
strb r3, [r1, 0x12]
b _0804D952
_0804D91C:
ldr r5, [sp, 0x20]
cmp r5, 0
bgt _0804D924
strb r2, [r1, 0xD]
_0804D924:
mov r6, r10
cmp r6, 0
bgt _0804D92C
strb r2, [r1, 0xB]
_0804D92C:
ldr r0, [sp, 0x10]
subs r0, 0x1
ldr r7, [sp, 0x20]
cmp r7, r0
blt _0804D938
strb r2, [r1, 0xE]
_0804D938:
ldr r0, [sp, 0x14]
subs r0, 0x1
cmp r10, r0
blt _0804D942
strb r2, [r1, 0xC]
_0804D942:
ldrb r0, [r1, 0xB]
strb r0, [r1, 0xF]
ldrb r0, [r1, 0xC]
strb r0, [r1, 0x10]
ldrb r0, [r1, 0xD]
strb r0, [r1, 0x11]
ldrb r0, [r1, 0xE]
strb r0, [r1, 0x12]
_0804D952:
adds r1, 0x20
movs r0, 0x1
add r10, r0
ldr r2, [sp, 0x14]
cmp r10, r2
blt _0804D90C
_0804D95E:
ldr r3, [sp, 0x38]
str r3, [sp, 0x20]
ldr r4, [sp, 0x10]
cmp r3, r4
blt _0804D8EC
_0804D968:
movs r5, 0
str r5, [sp, 0x20]
ldr r6, [sp, 0x10]
cmp r5, r6
blt _0804D974
b _0804DBC6
_0804D974:
movs r7, 0
mov r10, r7
ldr r0, [sp, 0x20]
adds r0, 0x1
str r0, [sp, 0x38]
ldr r1, [sp, 0x14]
cmp r10, r1
blt _0804D986
b _0804DBBA
_0804D986:
ldr r2, [sp, 0x20]
lsls r2, 4
str r2, [sp, 0x40]
ldr r3, [sp, 0x20]
subs r1, r2, r3
lsls r1, 5
movs r4, 0
str r4, [sp, 0x48]
ldr r5, [sp, 0xC]
movs r6, 0xF0
lsls r6, 1
adds r0, r5, r6
adds r0, r1
mov r8, r0
adds r5, r1, r5
ldr r7, [sp, 0xC]
ldr r2, _0804DA0C
adds r0, r7, r2
adds r7, r1, r0
ldr r3, [sp, 0x78]
str r3, [sp, 0x4C]
ldr r0, [sp, 0xC]
adds r0, 0x20
adds r0, r1, r0
str r0, [sp, 0x50]
ldr r0, [sp, 0xC]
subs r0, 0x20
adds r6, r1, r0
ldr r4, [sp, 0x20]
lsls r0, r4, 2
ldr r1, [sp, 0x18]
adds r0, r1
str r0, [sp, 0x24]
_0804D9C8:
ldr r2, [sp, 0x20]
lsls r0, r2, 4
subs r0, r2
lsls r0, 5
ldr r3, [sp, 0xC]
adds r0, r3
ldr r1, [sp, 0x48]
adds r4, r1, r0
ldrb r0, [r4, 0x8]
cmp r0, 0
beq _0804D9E0
b _0804DB92
_0804D9E0:
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _0804DA10
movs r2, 0
ldrsh r0, [r4, r2]
adds r0, 0x1
movs r3, 0x4
ldrsh r1, [r4, r3]
subs r1, 0x1
bl sub_808411C
mov r9, r0
movs r1, 0x2
ldrsh r0, [r4, r1]
adds r0, 0x1
movs r2, 0x6
ldrsh r1, [r4, r2]
subs r1, 0x1
bl sub_808411C
adds r4, r0, 0
b _0804DA1A
.align 2, 0
_0804DA0C: .4byte 0xfffffe20
_0804DA10:
movs r0, 0
ldrsh r3, [r4, r0]
mov r9, r3
movs r1, 0x2
ldrsh r4, [r4, r1]
_0804DA1A:
ldrb r0, [r5, 0x17]
cmp r0, 0
beq _0804DA74
ldrb r0, [r6, 0x8]
cmp r0, 0
bne _0804DA68
ldrb r0, [r6, 0xA]
cmp r0, 0
beq _0804DA40
movs r2, 0
ldrsh r0, [r6, r2]
adds r0, 0x1
movs r3, 0x4
ldrsh r1, [r6, r3]
subs r1, 0x1
bl sub_808411C
adds r2, r0, 0
b _0804DA44
_0804DA40:
movs r0, 0
ldrsh r2, [r6, r0]
_0804DA44:
movs r3, 0x2
ldrsh r1, [r5, r3]
movs r0, 0x6
ldrsh r3, [r6, r0]
subs r3, 0x1
mov r12, r3
movs r3, 0x1
str r3, [sp]
ldr r3, [sp, 0x24]
ldr r0, [r3]
str r0, [sp, 0x4]
ldr r3, [sp, 0x4C]
ldr r0, [r3]
str r0, [sp, 0x8]
mov r0, r9
mov r3, r12
bl sub_804E328
_0804DA68:
movs r0, 0
strb r0, [r5, 0x17]
strb r0, [r6, 0x18]
movs r1, 0x1
strb r1, [r5, 0xB]
strb r1, [r6, 0xB]
_0804DA74:
ldrb r0, [r5, 0x18]
cmp r0, 0
beq _0804DAD4
ldr r2, [sp, 0x50]
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804DAC6
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804DA9C
movs r3, 0x20
ldrsh r0, [r5, r3]
adds r0, 0x1
movs r2, 0x24
ldrsh r1, [r5, r2]
subs r1, 0x1
bl sub_808411C
adds r2, r0, 0
b _0804DAA0
_0804DA9C:
movs r3, 0x20
ldrsh r2, [r5, r3]
_0804DAA0:
movs r0, 0x6
ldrsh r1, [r5, r0]
subs r1, 0x1
movs r0, 0x22
ldrsh r3, [r5, r0]
mov r12, r3
movs r3, 0x1
str r3, [sp]
ldr r3, [sp, 0x24]
ldr r0, [r3]
str r0, [sp, 0x4]
ldr r3, [sp, 0x4C]
ldr r0, [r3, 0x4]
subs r0, 0x1
str r0, [sp, 0x8]
mov r0, r9
mov r3, r12
bl sub_804E328
_0804DAC6:
movs r0, 0
strb r0, [r5, 0x18]
ldr r1, [sp, 0x50]
strb r0, [r1, 0x17]
movs r2, 0x1
strb r2, [r5, 0xB]
strb r2, [r1, 0xB]
_0804DAD4:
ldrb r0, [r5, 0x19]
cmp r0, 0
beq _0804DB2E
ldrb r0, [r7, 0x8]
cmp r0, 0
bne _0804DB22
ldrb r0, [r7, 0xA]
cmp r0, 0
beq _0804DAFA
movs r3, 0x2
ldrsh r0, [r7, r3]
adds r0, 0x1
movs r2, 0x6
ldrsh r1, [r7, r2]
subs r1, 0x1
bl sub_808411C
adds r3, r0, 0
b _0804DAFE
_0804DAFA:
movs r0, 0x2
ldrsh r3, [r7, r0]
_0804DAFE:
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0
ldrsh r2, [r7, r1]
subs r2, 0x1
mov r9, r2
movs r2, 0
str r2, [sp]
ldr r2, [sp, 0x24]
ldr r1, [r2]
str r1, [sp, 0x4]
ldr r2, [sp, 0x4C]
ldr r1, [r2]
str r1, [sp, 0x8]
adds r1, r4, 0
mov r2, r9
bl sub_804E328
_0804DB22:
movs r3, 0
strb r3, [r5, 0x19]
strb r3, [r7, 0x1A]
movs r0, 0x1
strb r0, [r5, 0xB]
strb r0, [r7, 0xB]
_0804DB2E:
ldrb r0, [r5, 0x1A]
cmp r0, 0
beq _0804DB92
mov r1, r8
ldrb r0, [r1, 0x8]
cmp r0, 0
bne _0804DB84
ldrb r0, [r1, 0xA]
cmp r0, 0
beq _0804DB56
movs r2, 0x2
ldrsh r0, [r1, r2]
adds r0, 0x1
movs r3, 0x6
ldrsh r1, [r1, r3]
subs r1, 0x1
bl sub_808411C
adds r3, r0, 0
b _0804DB5C
_0804DB56:
mov r0, r8
movs r1, 0x2
ldrsh r3, [r0, r1]
_0804DB5C:
movs r2, 0x4
ldrsh r0, [r5, r2]
subs r0, 0x1
mov r1, r8
movs r2, 0
ldrsh r1, [r1, r2]
mov r9, r1
movs r1, 0
str r1, [sp]
ldr r2, [sp, 0x24]
ldr r1, [r2, 0x4]
subs r1, 0x1
str r1, [sp, 0x4]
ldr r2, [sp, 0x4C]
ldr r1, [r2]
str r1, [sp, 0x8]
adds r1, r4, 0
mov r2, r9
bl sub_804E328
_0804DB84:
movs r3, 0
strb r3, [r5, 0x1A]
mov r4, r8
strb r3, [r4, 0x19]
movs r0, 0x1
strb r0, [r5, 0xB]
strb r0, [r4, 0xB]
_0804DB92:
ldr r1, [sp, 0x48]
adds r1, 0x20
str r1, [sp, 0x48]
movs r2, 0x20
add r8, r2
adds r5, 0x20
adds r7, 0x20
ldr r3, [sp, 0x4C]
adds r3, 0x4
str r3, [sp, 0x4C]
ldr r4, [sp, 0x50]
adds r4, 0x20
str r4, [sp, 0x50]
adds r6, 0x20
movs r0, 0x1
add r10, r0
ldr r1, [sp, 0x14]
cmp r10, r1
bge _0804DBBA
b _0804D9C8
_0804DBBA:
ldr r2, [sp, 0x38]
str r2, [sp, 0x20]
ldr r3, [sp, 0x10]
cmp r2, r3
bge _0804DBC6
b _0804D974
_0804DBC6:
ldr r4, [sp, 0x1C]
cmp r4, 0
beq _0804DBCE
b _0804E026
_0804DBCE:
movs r5, 0
str r5, [sp, 0x20]
ldr r6, [sp, 0x10]
cmp r5, r6
blt _0804DBDA
b _0804E026
_0804DBDA:
movs r7, 0
mov r10, r7
ldr r0, [sp, 0x20]
adds r0, 0x1
str r0, [sp, 0x38]
ldr r1, [sp, 0x14]
cmp r10, r1
blt _0804DBEC
b _0804E018
_0804DBEC:
movs r0, 0x64
bl DungeonRandomCapped
mov r2, r10
adds r2, 0x1
str r2, [sp, 0x3C]
cmp r0, 0x4
ble _0804DBFE
b _0804E00C
_0804DBFE:
mov r3, r10
lsls r1, r3, 5
ldr r4, [sp, 0x20]
lsls r2, r4, 4
subs r0, r2, r4
lsls r0, 5
ldr r5, [sp, 0xC]
adds r0, r5
adds r4, r1, r0
ldrb r0, [r4, 0x8]
str r1, [sp, 0x44]
str r2, [sp, 0x40]
cmp r0, 0
beq _0804DC1C
b _0804E00C
_0804DC1C:
ldrb r0, [r4, 0xB]
cmp r0, 0
bne _0804DC24
b _0804E00C
_0804DC24:
ldrb r0, [r4, 0x12]
cmp r0, 0
beq _0804DC2C
b _0804E00C
_0804DC2C:
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0804DC34
b _0804E00C
_0804DC34:
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _0804DC3C
b _0804E00C
_0804DC3C:
movs r0, 0x4
bl DungeonRandomCapped
cmp r0, 0x1
bne _0804DC48
b _0804DD50
_0804DC48:
cmp r0, 0x1
bgt _0804DC52
cmp r0, 0
beq _0804DC60
b _0804E00C
_0804DC52:
cmp r0, 0x2
bne _0804DC58
b _0804DE3C
_0804DC58:
cmp r0, 0x3
bne _0804DC5E
b _0804DF30
_0804DC5E:
b _0804E00C
_0804DC60:
ldr r6, [sp, 0x20]
cmp r6, 0
bgt _0804DC68
b _0804E00C
_0804DC68:
ldr r7, _0804DD48
adds r2, r4, r7
ldrb r0, [r2, 0xB]
cmp r0, 0
bne _0804DC74
b _0804E00C
_0804DC74:
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0804DC7C
b _0804E00C
_0804DC7C:
ldrb r0, [r2, 0xA]
cmp r0, 0
bne _0804DC84
b _0804E00C
_0804DC84:
ldrb r0, [r2, 0x9]
cmp r0, 0
beq _0804DC8C
b _0804E00C
_0804DC8C:
ldrb r0, [r2, 0x12]
cmp r0, 0
beq _0804DC94
b _0804E00C
_0804DC94:
movs r1, 0
ldrsh r0, [r2, r1]
str r0, [sp, 0x28]
ldrh r3, [r4, 0x2]
movs r5, 0x2
ldrsh r1, [r4, r5]
ldrh r5, [r2, 0x2]
movs r6, 0x2
ldrsh r0, [r2, r6]
cmp r1, r0
ble _0804DCAC
adds r3, r5, 0
_0804DCAC:
lsls r0, r3, 16
asrs r0, 16
mov r9, r0
movs r0, 0x4
ldrsh r7, [r4, r0]
mov r10, r7
ldrh r3, [r4, 0x6]
movs r5, 0x6
ldrsh r1, [r4, r5]
ldrh r5, [r2, 0x6]
movs r6, 0x6
ldrsh r0, [r2, r6]
cmp r1, r0
bge _0804DCCA
adds r3, r5, 0
_0804DCCA:
lsls r0, r3, 16
asrs r7, r0, 16
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r8, r0
ldr r5, [sp, 0x28]
cmp r5, r10
bge _0804DD16
_0804DCE4:
mov r4, r9
adds r6, r5, 0x1
cmp r9, r7
bge _0804DD10
ldr r0, _0804DD4C
adds r3, r0, 0
_0804DCF0:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x54]
bl GetMapEntity
ldrh r1, [r0]
ldr r3, [sp, 0x54]
ands r1, r3
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
mov r1, r8
strb r1, [r0, 0x9]
adds r4, 0x1
cmp r4, r7
blt _0804DCF0
_0804DD10:
adds r5, r6, 0
cmp r5, r10
blt _0804DCE4
_0804DD16:
ldr r2, [sp, 0x40]
ldr r3, [sp, 0x20]
subs r0, r2, r3
lsls r0, 5
ldr r4, [sp, 0xC]
adds r0, r4
ldr r5, [sp, 0x44]
adds r0, r5, r0
ldr r6, _0804DD48
adds r3, r0, r6
mov r1, sp
ldrh r1, [r1, 0x28]
strh r1, [r3]
mov r2, r10
strh r2, [r3, 0x4]
mov r4, r9
strh r4, [r3, 0x2]
strh r7, [r3, 0x6]
movs r5, 0x1
strb r5, [r0, 0x12]
strb r5, [r3, 0x12]
movs r6, 0
strb r6, [r0, 0xB]
strb r5, [r0, 0x11]
b _0804E00C
.align 2, 0
_0804DD48: .4byte 0xfffffe20
_0804DD4C: .4byte 0x0000fffc
_0804DD50:
mov r7, r10
cmp r7, 0
bgt _0804DD58
b _0804E00C
_0804DD58:
adds r2, r4, 0
subs r2, 0x20
ldrb r0, [r2, 0xB]
cmp r0, 0
bne _0804DD64
b _0804E00C
_0804DD64:
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0804DD6C
b _0804E00C
_0804DD6C:
ldrb r0, [r2, 0xA]
cmp r0, 0
bne _0804DD74
b _0804E00C
_0804DD74:
ldrb r0, [r2, 0x9]
cmp r0, 0
beq _0804DD7C
b _0804E00C
_0804DD7C:
ldrb r0, [r2, 0x12]
cmp r0, 0
beq _0804DD84
b _0804E00C
_0804DD84:
ldrh r3, [r4]
movs r0, 0
ldrsh r1, [r4, r0]
ldrh r5, [r2]
movs r6, 0
ldrsh r0, [r2, r6]
cmp r1, r0
ble _0804DD96
adds r3, r5, 0
_0804DD96:
lsls r0, r3, 16
asrs r0, 16
str r0, [sp, 0x2C]
movs r0, 0x2
ldrsh r7, [r2, r0]
mov r10, r7
ldrh r3, [r4, 0x4]
movs r5, 0x4
ldrsh r1, [r4, r5]
ldrh r5, [r2, 0x4]
movs r6, 0x4
ldrsh r0, [r2, r6]
cmp r1, r0
bge _0804DDB4
adds r3, r5, 0
_0804DDB4:
lsls r0, r3, 16
asrs r0, 16
mov r8, r0
movs r0, 0x6
ldrsh r7, [r4, r0]
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
ldr r5, [sp, 0x2C]
cmp r5, r8
bge _0804DE06
_0804DDD4:
mov r4, r10
adds r6, r5, 0x1
cmp r10, r7
bge _0804DE00
ldr r0, _0804DE38
adds r3, r0, 0
_0804DDE0:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x54]
bl GetMapEntity
ldrh r1, [r0]
ldr r3, [sp, 0x54]
ands r1, r3
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
mov r1, r9
strb r1, [r0, 0x9]
adds r4, 0x1
cmp r4, r7
blt _0804DDE0
_0804DE00:
adds r5, r6, 0
cmp r5, r8
blt _0804DDD4
_0804DE06:
ldr r2, [sp, 0x40]
ldr r3, [sp, 0x20]
subs r0, r2, r3
lsls r0, 5
ldr r4, [sp, 0xC]
adds r0, r4
ldr r5, [sp, 0x44]
adds r0, r5, r0
adds r3, r0, 0
subs r3, 0x20
mov r6, sp
ldrh r6, [r6, 0x2C]
strh r6, [r3]
mov r1, r8
strh r1, [r3, 0x4]
mov r2, r10
strh r2, [r3, 0x2]
strh r7, [r3, 0x6]
movs r4, 0x1
strb r4, [r0, 0x12]
strb r4, [r3, 0x12]
movs r5, 0
strb r5, [r0, 0xB]
strb r4, [r0, 0x11]
b _0804E00C
.align 2, 0
_0804DE38: .4byte 0x0000fffc
_0804DE3C:
ldr r0, [sp, 0x10]
subs r0, 0x2
ldr r6, [sp, 0x20]
cmp r6, r0
ble _0804DE48
b _0804E00C
_0804DE48:
movs r7, 0xF0
lsls r7, 1
adds r2, r4, r7
ldrb r0, [r2, 0xB]
cmp r0, 0
bne _0804DE56
b _0804E00C
_0804DE56:
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _0804DE5E
b _0804E00C
_0804DE5E:
ldrb r0, [r2, 0xA]
cmp r0, 0
bne _0804DE66
b _0804E00C
_0804DE66:
ldrb r0, [r2, 0x9]
cmp r0, 0
beq _0804DE6E
b _0804E00C
_0804DE6E:
ldrb r0, [r2, 0x12]
cmp r0, 0
beq _0804DE76
b _0804E00C
_0804DE76:
movs r1, 0
ldrsh r0, [r4, r1]
str r0, [sp, 0x30]
ldrh r3, [r2, 0x2]
movs r5, 0x2
ldrsh r1, [r2, r5]
ldrh r5, [r4, 0x2]
movs r6, 0x2
ldrsh r0, [r4, r6]
cmp r1, r0
ble _0804DE8E
adds r3, r5, 0
_0804DE8E:
lsls r0, r3, 16
asrs r0, 16
mov r9, r0
movs r0, 0x4
ldrsh r7, [r2, r0]
mov r10, r7
ldrh r3, [r2, 0x6]
movs r5, 0x6
ldrsh r1, [r2, r5]
ldrh r2, [r4, 0x6]
movs r6, 0x6
ldrsh r0, [r4, r6]
cmp r1, r0
bge _0804DEAC
adds r3, r2, 0
_0804DEAC:
lsls r0, r3, 16
asrs r7, r0, 16
movs r0, 0x2
ldrsh r1, [r4, r0]
ldr r0, [sp, 0x30]
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r8, r0
ldr r5, [sp, 0x30]
cmp r5, r10
bge _0804DEF6
_0804DEC4:
mov r4, r9
adds r6, r5, 0x1
cmp r9, r7
bge _0804DEF0
ldr r1, _0804DF2C
adds r3, r1, 0
_0804DED0:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x54]
bl GetMapEntity
ldrh r1, [r0]
ldr r3, [sp, 0x54]
ands r1, r3
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
mov r2, r8
strb r2, [r0, 0x9]
adds r4, 0x1
cmp r4, r7
blt _0804DED0
_0804DEF0:
adds r5, r6, 0
cmp r5, r10
blt _0804DEC4
_0804DEF6:
ldr r3, [sp, 0x40]
ldr r4, [sp, 0x20]
subs r0, r3, r4
lsls r0, 5
ldr r5, [sp, 0xC]
adds r0, r5
ldr r6, [sp, 0x44]
adds r0, r6, r0
mov r1, sp
ldrh r1, [r1, 0x30]
strh r1, [r0]
mov r2, r10
strh r2, [r0, 0x4]
mov r3, r9
strh r3, [r0, 0x2]
strh r7, [r0, 0x6]
movs r4, 0xF0
lsls r4, 1
adds r1, r0, r4
movs r5, 0x1
strb r5, [r1, 0x12]
strb r5, [r0, 0x12]
movs r6, 0
strb r6, [r1, 0xB]
strb r5, [r1, 0x11]
b _0804E00C
.align 2, 0
_0804DF2C: .4byte 0x0000fffc
_0804DF30:
ldr r0, [sp, 0x14]
subs r0, 0x2
cmp r10, r0
bgt _0804E00C
adds r3, r4, 0
adds r3, 0x20
ldrb r0, [r3, 0xB]
cmp r0, 0
beq _0804E00C
ldrb r0, [r3, 0x8]
cmp r0, 0
bne _0804E00C
ldrb r0, [r3, 0xA]
cmp r0, 0
beq _0804E00C
ldrb r0, [r3, 0x9]
cmp r0, 0
bne _0804E00C
ldrb r0, [r3, 0x12]
cmp r0, 0
bne _0804E00C
ldrh r2, [r4, 0x20]
movs r7, 0x20
ldrsh r1, [r4, r7]
ldrh r5, [r4]
movs r6, 0
ldrsh r0, [r4, r6]
cmp r1, r0
ble _0804DF6C
adds r2, r5, 0
_0804DF6C:
lsls r0, r2, 16
asrs r0, 16
str r0, [sp, 0x34]
movs r7, 0x2
ldrsh r6, [r4, r7]
ldrh r2, [r3, 0x4]
movs r0, 0x4
ldrsh r1, [r3, r0]
ldrh r5, [r4, 0x4]
movs r7, 0x4
ldrsh r0, [r4, r7]
cmp r1, r0
bge _0804DF88
adds r2, r5, 0
_0804DF88:
lsls r0, r2, 16
asrs r0, 16
mov r8, r0
movs r0, 0x6
ldrsh r3, [r3, r0]
movs r1, 0
ldrsh r0, [r4, r1]
adds r1, r6, 0
str r3, [sp, 0x54]
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r10, r0
ldr r5, [sp, 0x34]
ldr r3, [sp, 0x54]
cmp r5, r8
bge _0804DFDE
_0804DFAA:
adds r4, r6, 0
adds r7, r5, 0x1
cmp r6, r3
bge _0804DFD8
ldr r2, _0804E038
mov r9, r2
_0804DFB6:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x54]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r9
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
mov r1, r10
strb r1, [r0, 0x9]
adds r4, 0x1
ldr r3, [sp, 0x54]
cmp r4, r3
blt _0804DFB6
_0804DFD8:
adds r5, r7, 0
cmp r5, r8
blt _0804DFAA
_0804DFDE:
ldr r2, [sp, 0x40]
ldr r4, [sp, 0x20]
subs r0, r2, r4
lsls r0, 5
ldr r5, [sp, 0xC]
adds r0, r5
ldr r7, [sp, 0x44]
adds r0, r7, r0
mov r1, sp
ldrh r1, [r1, 0x34]
strh r1, [r0]
mov r2, r8
strh r2, [r0, 0x4]
strh r6, [r0, 0x2]
strh r3, [r0, 0x6]
adds r1, r0, 0
adds r1, 0x20
movs r3, 0x1
strb r3, [r1, 0x12]
strb r3, [r0, 0x12]
movs r4, 0
strb r4, [r1, 0xB]
strb r3, [r1, 0x11]
_0804E00C:
ldr r5, [sp, 0x3C]
mov r10, r5
ldr r6, [sp, 0x14]
cmp r10, r6
bge _0804E018
b _0804DBEC
_0804E018:
ldr r7, [sp, 0x38]
str r7, [sp, 0x20]
adds r0, r7, 0
ldr r1, [sp, 0x10]
cmp r0, r1
bge _0804E026
b _0804DBDA
_0804E026:
add sp, 0x58
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804E038: .4byte 0x0000fffc
thumb_func_end sub_804D8C8
thumb_func_start sub_804E03C
sub_804E03C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
str r0, [sp]
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
cmp r0, r1
blt _0804E058
b _0804E318
_0804E058:
movs r2, 0
ldr r1, [sp, 0xC]
adds r1, 0x1
str r1, [sp, 0x28]
ldr r3, [sp, 0x8]
cmp r2, r3
blt _0804E068
b _0804E30C
_0804E068:
ldr r4, [sp, 0xC]
lsls r4, 4
str r4, [sp, 0x14]
ldr r6, [sp, 0xC]
subs r0, r4, r6
lsls r0, 5
ldr r1, [sp]
adds r0, r1
str r0, [sp, 0x18]
_0804E07A:
lsls r0, r2, 5
ldr r3, [sp, 0x18]
adds r4, r0, r3
ldrb r1, [r4, 0x8]
str r0, [sp, 0x34]
adds r2, 0x1
str r2, [sp, 0x2C]
cmp r1, 0
beq _0804E08E
b _0804E302
_0804E08E:
ldrb r0, [r4, 0x11]
cmp r0, 0
beq _0804E096
b _0804E302
_0804E096:
ldrb r0, [r4, 0x12]
cmp r0, 0
beq _0804E09E
b _0804E302
_0804E09E:
ldrb r0, [r4, 0xB]
cmp r0, 0
bne _0804E0A6
b _0804E302
_0804E0A6:
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _0804E0AE
b _0804E302
_0804E0AE:
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0804E0B6
b _0804E302
_0804E0B6:
ldrb r0, [r4, 0x10]
cmp r0, 0
beq _0804E0BE
b _0804E302
_0804E0BE:
ldrb r0, [r4, 0x1C]
cmp r0, 0
bne _0804E0C6
b _0804E302
_0804E0C6:
movs r0, 0x64
bl DungeonRandomCapped
cmp r0, 0x3B
bgt _0804E0D2
b _0804E302
_0804E0D2:
movs r6, 0x4
ldrsh r2, [r4, r6]
movs r1, 0
ldrsh r0, [r4, r1]
subs r2, r0
movs r3, 0x6
ldrsh r0, [r4, r3]
movs r6, 0x2
ldrsh r1, [r4, r6]
subs r0, r1
adds r2, r0
str r2, [sp, 0x10]
adds r0, r2, 0
cmp r2, 0
bge _0804E0F2
adds r0, 0x3
_0804E0F2:
asrs r0, 2
str r0, [sp, 0x10]
cmp r0, 0
bne _0804E0FE
movs r0, 0x1
str r0, [sp, 0x10]
_0804E0FE:
movs r1, 0
ldr r2, [sp, 0x10]
cmp r1, r2
blt _0804E108
b _0804E302
_0804E108:
ldr r3, [sp, 0x14]
ldr r4, [sp, 0xC]
subs r0, r3, r4
lsls r0, 5
ldr r6, [sp]
adds r0, r6
ldr r2, [sp, 0x34]
adds r0, r2, r0
str r0, [sp, 0x20]
_0804E11A:
movs r4, 0
adds r1, 0x1
str r1, [sp, 0x30]
_0804E120:
movs r0, 0x4
bl DungeonRandomCapped
str r0, [sp, 0x1C]
cmp r0, 0x1
beq _0804E14A
cmp r0, 0x1
ble _0804E138
cmp r0, 0x2
beq _0804E168
cmp r0, 0x3
beq _0804E182
_0804E138:
ldr r3, [sp, 0x20]
movs r6, 0
ldrsh r7, [r3, r6]
movs r1, 0x2
ldrsh r0, [r3, r1]
mov r8, r0
cmp r4, 0
bne _0804E19C
b _0804E15C
_0804E14A:
ldr r2, [sp, 0x20]
movs r3, 0x4
ldrsh r0, [r2, r3]
subs r7, r0, 0x1
movs r0, 0x2
ldrsh r6, [r2, r0]
mov r8, r6
cmp r4, 0
beq _0804E162
_0804E15C:
movs r3, 0
movs r2, 0x1
b _0804E1A0
_0804E162:
movs r3, 0x1
negs r3, r3
b _0804E19E
_0804E168:
ldr r1, [sp, 0x20]
movs r2, 0x4
ldrsh r0, [r1, r2]
subs r7, r0, 0x1
movs r3, 0x6
ldrsh r0, [r1, r3]
subs r0, 0x1
mov r8, r0
cmp r4, 0
beq _0804E194
movs r3, 0x1
negs r3, r3
b _0804E19E
_0804E182:
ldr r6, [sp, 0x20]
movs r0, 0
ldrsh r7, [r6, r0]
movs r1, 0x6
ldrsh r0, [r6, r1]
subs r0, 0x1
mov r8, r0
cmp r4, 0
beq _0804E19C
_0804E194:
movs r3, 0
movs r2, 0x1
negs r2, r2
b _0804E1A0
_0804E19C:
movs r3, 0x1
_0804E19E:
movs r2, 0
_0804E1A0:
movs r6, 0
mov r9, r6
ldr r5, [sp, 0x34]
ldr r0, [sp, 0x14]
str r0, [sp, 0x40]
ldr r6, [sp, 0x18]
adds r1, r5, r6
movs r6, 0
ldrsh r0, [r1, r6]
mov r10, r0
adds r4, 0x1
str r4, [sp, 0x24]
cmp r7, r10
bge _0804E1BE
b _0804E2F0
_0804E1BE:
movs r4, 0x4
ldrsh r0, [r1, r4]
cmp r7, r0
blt _0804E1C8
b _0804E2F0
_0804E1C8:
ldr r6, [sp, 0x40]
ldr r1, [sp, 0xC]
subs r0, r6, r1
lsls r0, 5
ldr r4, [sp]
adds r0, r4
adds r4, r5, r0
movs r6, 0x2
ldrsh r0, [r4, r6]
cmp r8, r0
bge _0804E1E0
b _0804E2F0
_0804E1E0:
movs r1, 0x6
ldrsh r0, [r4, r1]
cmp r8, r0
blt _0804E1EA
b _0804E2F0
_0804E1EA:
adds r0, r7, 0
mov r1, r8
str r2, [sp, 0x38]
str r3, [sp, 0x3C]
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
ldr r2, [sp, 0x38]
ldr r3, [sp, 0x3C]
cmp r0, 0x1
bne _0804E2D0
movs r6, 0
_0804E206:
ldr r1, _0804E228
lsls r0, r6, 2
adds r0, r1
movs r2, 0
ldrsh r1, [r0, r2]
adds r1, r7
mov r10, r1
movs r3, 0x2
ldrsh r0, [r0, r3]
add r0, r8
mov r9, r0
movs r3, 0
movs r5, 0x1
negs r5, r5
_0804E222:
movs r4, 0x1
negs r4, r4
b _0804E22E
.align 2, 0
_0804E228: .4byte gAdjacentTileOffsets
_0804E22C:
adds r4, 0x1
_0804E22E:
cmp r4, 0x1
bgt _0804E25A
mov r1, r10
adds r0, r1, r4
mov r2, r9
adds r1, r2, r5
str r3, [sp, 0x3C]
bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
ldr r3, [sp, 0x3C]
cmp r0, 0x1
bne _0804E22C
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
bne _0804E256
movs r3, 0x1
_0804E256:
cmp r3, 0
beq _0804E22C
_0804E25A:
cmp r3, 0
bne _0804E26A
adds r5, 0x1
cmp r5, 0x1
ble _0804E222
adds r6, 0x1
cmp r6, 0x7
ble _0804E206
_0804E26A:
cmp r6, 0x8
bne _0804E2F0
movs r6, 0
ldr r3, [sp, 0x1C]
lsls r1, r3, 3
ldr r0, _0804E2C4
adds r4, r1, r0
_0804E278:
ldr r0, _0804E2C8
lsls r1, r6, 2
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r0, r7, r0
add r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
movs r1, 0
cmp r0, 0x1
bne _0804E29C
movs r1, 0x1
_0804E29C:
ldrb r0, [r4]
cmp r0, r1
bne _0804E2AA
adds r4, 0x2
adds r6, 0x2
cmp r6, 0x7
ble _0804E278
_0804E2AA:
cmp r6, 0x8
bne _0804E2F0
adds r0, r7, 0
mov r1, r8
bl GetMapEntity
ldrh r2, [r0]
ldr r4, _0804E2CC
adds r1, r4, 0
ands r2, r1
strh r2, [r0]
b _0804E2F0
.align 2, 0
_0804E2C4: .4byte gUnknown_80F6DD5
_0804E2C8: .4byte gAdjacentTileOffsets
_0804E2CC: .4byte 0x0000fffc
_0804E2D0:
adds r7, r3
add r8, r2
movs r6, 0x1
add r9, r6
mov r0, r9
cmp r0, 0x9
bgt _0804E2F0
movs r1, 0
ldrsh r0, [r4, r1]
cmp r7, r0
blt _0804E2F0
movs r6, 0x4
ldrsh r0, [r4, r6]
cmp r7, r0
bge _0804E2F0
b _0804E1C8
_0804E2F0:
ldr r4, [sp, 0x24]
cmp r4, 0x1
bgt _0804E2F8
b _0804E120
_0804E2F8:
ldr r1, [sp, 0x30]
ldr r0, [sp, 0x10]
cmp r1, r0
bge _0804E302
b _0804E11A
_0804E302:
ldr r2, [sp, 0x2C]
ldr r1, [sp, 0x8]
cmp r2, r1
bge _0804E30C
b _0804E07A
_0804E30C:
ldr r2, [sp, 0x28]
str r2, [sp, 0xC]
ldr r3, [sp, 0x4]
cmp r2, r3
bge _0804E318
b _0804E058
_0804E318:
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_804E03C
thumb_func_start sub_804E328
sub_804E328:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r5, r0, 0
adds r4, r1, 0
str r2, [sp]
str r3, [sp, 0x4]
ldr r0, [sp, 0x28]
lsls r0, 24
mov r10, r5
mov r9, r4
ldr r1, [sp, 0x2C]
mov r8, r1
ldr r7, [sp, 0x30]
cmp r0, 0
bne _0804E350
b _0804E470
_0804E350:
movs r6, 0
_0804E352:
cmp r4, r7
beq _0804E3A8
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
ble _0804E360
b _0804E57E
_0804E360:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E390
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E38C
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E39C
.align 2, 0
_0804E38C: .4byte 0x0000fffc
_0804E390:
cmp r5, r10
beq _0804E396
b _0804E57E
_0804E396:
cmp r4, r9
beq _0804E39C
b _0804E57E
_0804E39C:
cmp r4, r7
bge _0804E3A4
adds r4, 0x1
b _0804E352
_0804E3A4:
subs r4, 0x1
b _0804E352
_0804E3A8:
movs r6, 0
ldr r0, [sp]
cmp r5, r0
beq _0804E40A
movs r7, 0
_0804E3B2:
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
ble _0804E3BC
b _0804E57E
_0804E3BC:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E3EC
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E3E8
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E3F8
.align 2, 0
_0804E3E8: .4byte 0x0000fffc
_0804E3EC:
cmp r5, r10
beq _0804E3F2
b _0804E57E
_0804E3F2:
cmp r4, r9
beq _0804E3F8
b _0804E57E
_0804E3F8:
ldr r0, [sp]
cmp r5, r0
bge _0804E402
adds r5, 0x1
b _0804E404
_0804E402:
subs r5, 0x1
_0804E404:
ldr r1, [sp]
cmp r5, r1
bne _0804E3B2
_0804E40A:
movs r6, 0
ldr r3, [sp, 0x4]
cmp r4, r3
bne _0804E414
b _0804E57E
_0804E414:
movs r7, 0
_0804E416:
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
ble _0804E420
b _0804E57E
_0804E420:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E450
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E44C
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E45C
.align 2, 0
_0804E44C: .4byte 0x0000fffc
_0804E450:
cmp r5, r10
beq _0804E456
b _0804E57E
_0804E456:
cmp r4, r9
beq _0804E45C
b _0804E57E
_0804E45C:
ldr r0, [sp, 0x4]
cmp r4, r0
bge _0804E466
adds r4, 0x1
b _0804E468
_0804E466:
subs r4, 0x1
_0804E468:
ldr r1, [sp, 0x4]
cmp r4, r1
bne _0804E416
b _0804E57E
_0804E470:
movs r6, 0
cmp r5, r8
beq _0804E4C6
movs r7, 0
_0804E478:
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
ble _0804E482
b _0804E57E
_0804E482:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E4B0
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E4AC
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E4B8
.align 2, 0
_0804E4AC: .4byte 0x0000fffc
_0804E4B0:
cmp r5, r10
bne _0804E57E
cmp r4, r9
bne _0804E57E
_0804E4B8:
cmp r5, r8
bge _0804E4C0
adds r5, 0x1
b _0804E4C2
_0804E4C0:
subs r5, 0x1
_0804E4C2:
cmp r5, r8
bne _0804E478
_0804E4C6:
movs r6, 0
ldr r0, [sp, 0x4]
cmp r4, r0
beq _0804E522
movs r7, 0
_0804E4D0:
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
bgt _0804E57E
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E508
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E504
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E510
.align 2, 0
_0804E504: .4byte 0x0000fffc
_0804E508:
cmp r5, r10
bne _0804E57E
cmp r4, r9
bne _0804E57E
_0804E510:
ldr r0, [sp, 0x4]
cmp r4, r0
bge _0804E51A
adds r4, 0x1
b _0804E51C
_0804E51A:
subs r4, 0x1
_0804E51C:
ldr r1, [sp, 0x4]
cmp r4, r1
bne _0804E4D0
_0804E522:
movs r6, 0
ldr r3, [sp]
cmp r5, r3
beq _0804E57E
movs r7, 0
_0804E52C:
adds r0, r6, 0
adds r6, 0x1
cmp r0, 0x37
bgt _0804E57E
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804E564
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E560
adds r1, r3, 0
ands r2, r1
movs r1, 0x1
orrs r2, r1
strh r2, [r0]
b _0804E56C
.align 2, 0
_0804E560: .4byte 0x0000fffc
_0804E564:
cmp r5, r10
bne _0804E57E
cmp r4, r9
bne _0804E57E
_0804E56C:
ldr r0, [sp]
cmp r5, r0
bge _0804E576
adds r5, 0x1
b _0804E578
_0804E576:
subs r5, 0x1
_0804E578:
ldr r1, [sp]
cmp r5, r1
bne _0804E52C
_0804E57E:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804E328
thumb_func_start sub_804E590
sub_804E590:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
str r0, [sp, 0xC]
str r1, [sp, 0x10]
str r2, [sp, 0x14]
str r3, [sp, 0x18]
movs r0, 0
str r0, [sp, 0x1C]
cmp r0, r1
blt _0804E5AE
b _0804E8AA
_0804E5AE:
movs r1, 0x1
mov r10, r1
_0804E5B2:
movs r2, 0
str r2, [sp, 0x20]
ldr r3, [sp, 0x1C]
adds r3, 0x1
str r3, [sp, 0x2C]
ldr r4, [sp, 0x14]
cmp r2, r4
blt _0804E5C4
b _0804E89E
_0804E5C4:
ldr r5, [sp, 0x1C]
lsls r5, 4
ldr r6, [sp, 0x1C]
subs r1, r5, r6
lsls r1, 5
ldr r2, [sp, 0xC]
movs r3, 0xF0
lsls r3, 1
adds r0, r2, r3
adds r0, r1
mov r8, r0
adds r6, r1, r2
ldr r4, _0804E6A4
adds r0, r2, r4
adds r7, r1, r0
adds r0, r2, 0
adds r0, 0x20
adds r0, r1
mov r9, r0
ldr r5, [sp, 0x60]
str r5, [sp, 0x34]
adds r0, r2, 0
subs r0, 0x20
adds r1, r0
str r1, [sp, 0x38]
movs r0, 0
str r0, [sp, 0x3C]
ldr r1, [sp, 0x1C]
lsls r0, r1, 2
ldr r2, [sp, 0x18]
adds r0, r2
str r0, [sp, 0x28]
_0804E604:
ldr r3, [sp, 0x1C]
lsls r0, r3, 4
subs r0, r3
lsls r0, 5
ldr r4, [sp, 0xC]
adds r0, r4
ldr r5, [sp, 0x3C]
adds r4, r5, r0
ldrb r0, [r4, 0x8]
cmp r0, 0
beq _0804E61C
b _0804E874
_0804E61C:
ldrb r0, [r4, 0x11]
cmp r0, 0
beq _0804E624
b _0804E874
_0804E624:
ldrb r0, [r4, 0xB]
cmp r0, 0
beq _0804E62C
b _0804E874
_0804E62C:
ldrb r0, [r4, 0xA]
cmp r0, 0
bne _0804E634
b _0804E848
_0804E634:
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0804E63C
b _0804E848
_0804E63C:
movs r1, 0
ldrsh r0, [r4, r1]
adds r0, 0x1
movs r2, 0x4
ldrsh r1, [r4, r2]
subs r1, 0x1
bl sub_808411C
str r0, [sp, 0x24]
movs r3, 0x2
ldrsh r0, [r4, r3]
adds r0, 0x1
movs r5, 0x6
ldrsh r1, [r4, r5]
subs r1, 0x1
bl sub_808411C
adds r5, r0, 0
ldr r0, [sp, 0x20]
cmp r0, 0
ble _0804E6DC
subs r4, 0x20
ldrb r0, [r4, 0x8]
cmp r0, 0
bne _0804E6DC
ldrb r0, [r4, 0x12]
cmp r0, 0
bne _0804E6DC
ldrb r0, [r4, 0xB]
cmp r0, 0
beq _0804E6DC
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _0804E6A8
movs r1, 0
ldrsh r0, [r4, r1]
adds r0, 0x1
movs r2, 0x4
ldrsh r1, [r4, r2]
subs r1, 0x1
bl sub_808411C
adds r5, r0, 0
movs r3, 0x2
ldrsh r0, [r4, r3]
adds r0, 0x1
movs r2, 0x6
ldrsh r1, [r4, r2]
subs r1, 0x1
bl sub_808411C
b _0804E6AC
.align 2, 0
_0804E6A4: .4byte 0xfffffe20
_0804E6A8:
movs r3, 0
ldrsh r5, [r4, r3]
_0804E6AC:
movs r4, 0x2
ldrsh r1, [r6, r4]
ldr r0, [sp, 0x38]
movs r2, 0x6
ldrsh r3, [r0, r2]
subs r3, 0x1
mov r4, r10
str r4, [sp]
ldr r2, [sp, 0x28]
ldr r0, [r2]
str r0, [sp, 0x4]
ldr r4, [sp, 0x34]
ldr r0, [r4]
str r0, [sp, 0x8]
ldr r0, [sp, 0x24]
adds r2, r5, 0
bl sub_804E328
mov r5, r10
strb r5, [r6, 0xB]
strb r5, [r6, 0x13]
ldr r0, [sp, 0x38]
strb r5, [r0, 0x14]
b _0804E874
_0804E6DC:
ldr r0, [sp, 0x14]
subs r0, 0x1
ldr r1, [sp, 0x20]
cmp r1, r0
bge _0804E758
mov r2, r9
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804E758
ldrb r0, [r2, 0x12]
cmp r0, 0
bne _0804E758
ldrb r0, [r2, 0xB]
cmp r0, 0
beq _0804E758
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804E724
movs r3, 0x20
ldrsh r0, [r6, r3]
adds r0, 0x1
movs r4, 0x24
ldrsh r1, [r6, r4]
subs r1, 0x1
bl sub_808411C
adds r5, r0, 0
movs r1, 0x22
ldrsh r0, [r6, r1]
adds r0, 0x1
movs r2, 0x26
ldrsh r1, [r6, r2]
subs r1, 0x1
bl sub_808411C
b _0804E728
_0804E724:
movs r3, 0x20
ldrsh r5, [r6, r3]
_0804E728:
movs r4, 0x6
ldrsh r1, [r6, r4]
subs r1, 0x1
movs r0, 0x22
ldrsh r3, [r6, r0]
mov r2, r10
str r2, [sp]
ldr r4, [sp, 0x28]
ldr r0, [r4]
str r0, [sp, 0x4]
ldr r2, [sp, 0x34]
ldr r0, [r2, 0x4]
subs r0, 0x1
str r0, [sp, 0x8]
ldr r0, [sp, 0x24]
adds r2, r5, 0
bl sub_804E328
mov r3, r10
strb r3, [r6, 0xB]
strb r3, [r6, 0x14]
mov r4, r9
strb r3, [r4, 0x13]
b _0804E874
_0804E758:
ldr r0, [sp, 0x1C]
cmp r0, 0
ble _0804E7C8
ldrb r0, [r7, 0x8]
cmp r0, 0
bne _0804E7C8
ldrb r0, [r7, 0x12]
cmp r0, 0
bne _0804E7C8
ldrb r0, [r7, 0xB]
cmp r0, 0
beq _0804E7C8
ldrb r0, [r7, 0xA]
cmp r0, 0
beq _0804E79A
movs r1, 0
ldrsh r0, [r7, r1]
adds r0, 0x1
movs r2, 0x4
ldrsh r1, [r7, r2]
subs r1, 0x1
bl sub_808411C
movs r3, 0x2
ldrsh r0, [r7, r3]
adds r0, 0x1
movs r4, 0x6
ldrsh r1, [r7, r4]
subs r1, 0x1
bl sub_808411C
adds r3, r0, 0
b _0804E79E
_0804E79A:
movs r0, 0x2
ldrsh r3, [r7, r0]
_0804E79E:
movs r1, 0
ldrsh r0, [r6, r1]
movs r4, 0
ldrsh r2, [r7, r4]
subs r2, 0x1
movs r1, 0
str r1, [sp]
ldr r4, [sp, 0x28]
ldr r1, [r4]
str r1, [sp, 0x4]
ldr r4, [sp, 0x34]
ldr r1, [r4]
str r1, [sp, 0x8]
adds r1, r5, 0
bl sub_804E328
mov r5, r10
strb r5, [r6, 0xB]
strb r5, [r6, 0x15]
strb r5, [r7, 0x16]
b _0804E874
_0804E7C8:
ldr r0, [sp, 0x10]
subs r0, 0x1
ldr r1, [sp, 0x1C]
cmp r1, r0
bge _0804E874
mov r2, r8
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804E874
ldrb r0, [r2, 0x12]
cmp r0, 0
bne _0804E874
ldrb r0, [r2, 0xB]
cmp r0, 0
beq _0804E874
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804E812
movs r3, 0
ldrsh r0, [r2, r3]
adds r0, 0x1
movs r4, 0x4
ldrsh r1, [r2, r4]
subs r1, 0x1
bl sub_808411C
mov r1, r8
movs r2, 0x2
ldrsh r0, [r1, r2]
adds r0, 0x1
movs r3, 0x6
ldrsh r1, [r1, r3]
subs r1, 0x1
bl sub_808411C
adds r3, r0, 0
b _0804E818
_0804E812:
mov r4, r8
movs r0, 0x2
ldrsh r3, [r4, r0]
_0804E818:
movs r1, 0x4
ldrsh r0, [r6, r1]
subs r0, 0x1
mov r4, r8
movs r1, 0
ldrsh r2, [r4, r1]
movs r1, 0
str r1, [sp]
ldr r4, [sp, 0x28]
ldr r1, [r4, 0x4]
subs r1, 0x1
str r1, [sp, 0x4]
ldr r4, [sp, 0x34]
ldr r1, [r4]
str r1, [sp, 0x8]
adds r1, r5, 0
bl sub_804E328
mov r5, r10
strb r5, [r6, 0xB]
strb r5, [r6, 0x16]
mov r0, r8
strb r5, [r0, 0x15]
b _0804E874
_0804E848:
movs r1, 0
ldrsh r0, [r6, r1]
movs r2, 0x2
ldrsh r1, [r6, r2]
bl GetMapEntity
ldrh r1, [r0]
ldr r3, _0804E99C
adds r2, r3, 0
ands r1, r2
strh r1, [r0]
ldrh r1, [r0, 0x4]
ldr r4, _0804E9A0
adds r2, r4, 0
ands r1, r2
ldr r5, _0804E9A4
adds r2, r5, 0
ands r1, r2
subs r3, 0x1
adds r2, r3, 0
ands r1, r2
strh r1, [r0, 0x4]
_0804E874:
movs r4, 0x20
add r8, r4
adds r6, 0x20
adds r7, 0x20
add r9, r4
ldr r5, [sp, 0x34]
adds r5, 0x4
str r5, [sp, 0x34]
ldr r0, [sp, 0x38]
adds r0, 0x20
str r0, [sp, 0x38]
ldr r1, [sp, 0x3C]
adds r1, 0x20
str r1, [sp, 0x3C]
ldr r2, [sp, 0x20]
adds r2, 0x1
str r2, [sp, 0x20]
ldr r3, [sp, 0x14]
cmp r2, r3
bge _0804E89E
b _0804E604
_0804E89E:
ldr r4, [sp, 0x2C]
str r4, [sp, 0x1C]
ldr r5, [sp, 0x10]
cmp r4, r5
bge _0804E8AA
b _0804E5B2
_0804E8AA:
movs r6, 0
str r6, [sp, 0x1C]
ldr r0, [sp, 0x10]
cmp r6, r0
bge _0804E98A
_0804E8B4:
movs r1, 0
str r1, [sp, 0x20]
ldr r2, [sp, 0x1C]
adds r2, 0x1
str r2, [sp, 0x2C]
ldr r3, [sp, 0x14]
cmp r1, r3
bge _0804E980
ldr r4, [sp, 0x1C]
lsls r4, 4
mov r9, r4
_0804E8CA:
ldr r5, [sp, 0x20]
lsls r2, r5, 5
ldr r6, [sp, 0x1C]
lsls r3, r6, 4
subs r0, r3, r6
lsls r0, 5
ldr r1, [sp, 0xC]
adds r4, r0, r1
adds r1, r2, r4
ldrb r0, [r1, 0x8]
mov r8, r2
adds r5, 0x1
str r5, [sp, 0x30]
cmp r0, 0
bne _0804E976
ldrb r0, [r1, 0x11]
cmp r0, 0
bne _0804E976
ldrb r0, [r1, 0xB]
cmp r0, 0
bne _0804E976
ldrb r0, [r1, 0xF]
cmp r0, 0
bne _0804E976
movs r6, 0
ldrsh r5, [r1, r6]
movs r6, 0x4
ldrsh r0, [r1, r6]
cmp r5, r0
bge _0804E976
mov r10, r4
_0804E908:
ldr r1, [sp, 0x1C]
subs r0, r3, r1
lsls r0, 5
ldr r3, [sp, 0xC]
adds r0, r3
adds r0, r2, r0
movs r6, 0x2
ldrsh r4, [r0, r6]
movs r1, 0x6
ldrsh r0, [r0, r1]
adds r7, r5, 0x1
cmp r4, r0
bge _0804E95C
mov r6, r8
add r6, r10
_0804E926:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
ldr r3, _0804E99C
adds r1, r3, 0
ands r2, r1
strh r2, [r0]
ldrh r2, [r0, 0x4]
adds r3, 0x1
adds r1, r3, 0
ands r2, r1
adds r3, 0x1
adds r1, r3, 0
ands r2, r1
subs r3, 0x3
adds r1, r3, 0
ands r2, r1
strh r2, [r0, 0x4]
movs r1, 0xFF
strb r1, [r0, 0x9]
adds r4, 0x1
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r4, r0
blt _0804E926
_0804E95C:
adds r5, r7, 0
mov r2, r8
mov r3, r9
ldr r4, [sp, 0x1C]
subs r0, r3, r4
lsls r0, 5
ldr r6, [sp, 0xC]
adds r0, r6
adds r0, r2, r0
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0804E908
_0804E976:
ldr r2, [sp, 0x30]
str r2, [sp, 0x20]
ldr r3, [sp, 0x14]
cmp r2, r3
blt _0804E8CA
_0804E980:
ldr r4, [sp, 0x2C]
str r4, [sp, 0x1C]
ldr r5, [sp, 0x10]
cmp r4, r5
blt _0804E8B4
_0804E98A:
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804E99C: .4byte 0x0000fffc
_0804E9A0: .4byte 0x0000fffe
_0804E9A4: .4byte 0x0000fffd
thumb_func_end sub_804E590
thumb_func_start sub_804E9A8
sub_804E9A8:
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 24
lsls r2, 24
lsrs r2, 24
ldrh r0, [r4]
ldr r5, _0804E9D8
adds r3, r5, 0
ands r3, r0
strh r3, [r4]
cmp r1, 0
beq _0804E9D0
ldrb r0, [r4, 0x9]
cmp r0, r2
bne _0804E9D0
adds r0, r3, 0
ands r0, r5
movs r1, 0x2
orrs r0, r1
strh r0, [r4]
_0804E9D0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0804E9D8: .4byte 0x0000fffc
thumb_func_end sub_804E9A8
thumb_func_start sub_804E9DC
sub_804E9DC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r5, 0
movs r0, 0x3
mov r8, r0
movs r7, 0x8
ldr r3, _0804EAF0
mov r9, r3
_0804E9F2:
movs r4, 0
adds r6, r5, 0x1
mov r10, r6
_0804E9F8:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
adds r6, r4, 0x1
cmp r0, 0x1
beq _0804EA0E
b _0804EB0E
_0804EA0E:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
bne _0804EAF4
cmp r5, 0
ble _0804EA4E
subs r0, r5, 0x1
adds r1, r4, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
beq _0804EA4E
ldrh r0, [r2]
adds r1, r0, 0
orrs r1, r7
movs r3, 0
strh r1, [r2]
adds r0, r1, 0
mov r6, r8
ands r0, r6
cmp r0, 0x2
bne _0804EA4E
mov r0, r9
ands r1, r0
movs r0, 0x1
orrs r1, r0
strh r1, [r2]
_0804EA4E:
cmp r4, 0
ble _0804EA82
subs r1, r4, 0x1
adds r0, r5, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
beq _0804EA82
ldrh r0, [r2]
adds r1, r0, 0
orrs r1, r7
movs r3, 0
orrs r1, r7
strh r1, [r2]
adds r0, r1, 0
mov r6, r8
ands r0, r6
cmp r0, 0x2
bne _0804EA82
mov r0, r9
ands r1, r0
movs r0, 0x1
orrs r1, r0
strh r1, [r2]
_0804EA82:
adds r6, r4, 0x1
cmp r4, 0x1E
bgt _0804EABA
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
beq _0804EABA
ldrh r0, [r2]
adds r1, r0, 0
orrs r1, r7
movs r3, 0
mov r12, r3
orrs r1, r7
strh r1, [r2]
adds r0, r1, 0
mov r3, r8
ands r0, r3
cmp r0, 0x2
bne _0804EABA
mov r0, r9
ands r1, r0
movs r0, 0x1
orrs r1, r0
strh r1, [r2]
_0804EABA:
cmp r5, 0x36
bgt _0804EB0E
mov r0, r10
adds r1, r4, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
beq _0804EB0E
ldrh r0, [r2]
adds r1, r0, 0
orrs r1, r7
movs r3, 0
orrs r1, r7
strh r1, [r2]
adds r0, r1, 0
mov r4, r8
ands r0, r4
cmp r0, 0x2
bne _0804EB0E
mov r0, r9
ands r1, r0
movs r0, 0x1
orrs r1, r0
strh r1, [r2]
b _0804EB0E
.align 2, 0
_0804EAF0: .4byte 0x0000fffc
_0804EAF4:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFE
bne _0804EB0E
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0xFF
strb r1, [r0, 0x9]
_0804EB0E:
adds r4, r6, 0
cmp r4, 0x1F
bgt _0804EB16
b _0804E9F8
_0804EB16:
mov r5, r10
cmp r5, 0x37
bgt _0804EB1E
b _0804E9F2
_0804EB1E:
bl sub_804EB30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804E9DC
thumb_func_start sub_804EB30
sub_804EB30:
push {r4-r7,lr}
ldr r0, _0804EBB4
ldr r6, [r0]
movs r2, 0
movs r1, 0x1F
ldr r3, _0804EBB8
adds r0, r6, r3
_0804EB3E:
strh r2, [r0]
subs r0, 0x2
subs r1, 0x1
cmp r1, 0
bge _0804EB3E
movs r5, 0
_0804EB4A:
movs r4, 0
adds r7, r5, 0x1
_0804EB4E:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0804EBA2
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrb r3, [r0, 0x9]
cmp r3, 0x1F
bhi _0804EBA2
lsls r0, r3, 1
ldr r2, _0804EBBC
adds r1, r6, r2
adds r2, r1, r0
movs r1, 0
ldrsh r0, [r2, r1]
cmp r0, 0x1F
bgt _0804EBA2
lsls r0, 2
lsls r1, r3, 7
adds r0, r1
adds r0, r6, r0
ldr r3, _0804EBC0
adds r0, r3
strh r5, [r0]
movs r3, 0
ldrsh r0, [r2, r3]
lsls r0, 2
adds r0, r1
adds r0, r6, r0
ldr r1, _0804EBC4
adds r0, r1
strh r4, [r0]
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
_0804EBA2:
adds r4, 0x1
cmp r4, 0x1F
ble _0804EB4E
adds r5, r7, 0
cmp r5, 0x37
ble _0804EB4A
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804EBB4: .4byte gDungeonGlobalData
_0804EBB8: .4byte 0x00010882
_0804EBBC: .4byte 0x00010844
_0804EBC0: .4byte 0x00010884
_0804EBC4: .4byte 0x00010886
thumb_func_end sub_804EB30
thumb_func_start sub_804EBC8
sub_804EBC8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x58
str r0, [sp, 0x40]
str r1, [sp, 0x44]
mov r10, r2
adds r4, r3, 0
ldr r0, _0804EE90
ldr r0, [r0]
mov r8, r0
ldr r1, _0804EE94
ldr r0, _0804EE98
strh r0, [r1]
movs r0, 0x1
negs r0, r0
strh r0, [r1, 0x2]
ldr r0, _0804EE9C
ldrb r0, [r0]
cmp r0, 0
beq _0804EBF8
b _0804EED4
_0804EBF8:
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0804EC06
b _0804EED4
_0804EC06:
cmp r4, 0
bne _0804EC0C
b _0804EED4
_0804EC0C:
movs r0, 0x64
bl DungeonRandomCapped
cmp r4, r0
bgt _0804EC18
b _0804EED4
_0804EC18:
movs r5, 0
add r7, sp, 0x20
adds r1, r7, 0
mov r0, sp
_0804EC20:
strh r5, [r0]
strh r5, [r1]
adds r1, 0x2
adds r0, 0x2
adds r5, 0x1
cmp r5, 0xE
ble _0804EC20
movs r5, 0xC7
_0804EC30:
movs r0, 0xF
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0xF
bl DungeonRandomCapped
lsls r4, 1
mov r1, sp
adds r2, r1, r4
movs r4, 0
ldrsh r3, [r2, r4]
lsls r0, 1
adds r1, r0
ldrh r0, [r1]
strh r0, [r2]
strh r3, [r1]
subs r5, 0x1
cmp r5, 0
bge _0804EC30
adds r6, r7, 0
movs r5, 0xC7
_0804EC5C:
movs r0, 0xF
bl DungeonRandomCapped
adds r4, r0, 0
movs r0, 0xF
bl DungeonRandomCapped
lsls r4, 1
adds r4, r6, r4
movs r1, 0
ldrsh r2, [r4, r1]
lsls r0, 1
adds r0, r6, r0
ldrh r1, [r0]
strh r1, [r4]
strh r2, [r0]
subs r5, 0x1
cmp r5, 0
bge _0804EC5C
movs r5, 0
_0804EC84:
lsls r0, r5, 1
add r0, sp
movs r3, 0
ldrsh r2, [r0, r3]
mov r9, r2
ldr r4, [sp, 0x44]
cmp r9, r4
blt _0804EC96
b _0804EECC
_0804EC96:
movs r4, 0
_0804EC98:
lsls r0, r4, 1
adds r0, r7, r0
movs r2, 0
ldrsh r1, [r0, r2]
cmp r1, r10
blt _0804ECA6
b _0804EEC4
_0804ECA6:
lsls r1, 5
mov r3, r9
lsls r2, r3, 4
subs r0, r2, r3
lsls r0, 5
ldr r3, [sp, 0x40]
adds r0, r3
adds r3, r1, r0
ldrb r0, [r3, 0x8]
str r1, [sp, 0x4C]
str r2, [sp, 0x48]
cmp r0, 0
beq _0804ECC2
b _0804EEC4
_0804ECC2:
ldrb r0, [r3, 0x11]
cmp r0, 0
beq _0804ECCA
b _0804EEC4
_0804ECCA:
ldrb r0, [r3, 0x12]
cmp r0, 0
beq _0804ECD2
b _0804EEC4
_0804ECD2:
ldrb r0, [r3, 0xB]
cmp r0, 0
bne _0804ECDA
b _0804EEC4
_0804ECDA:
ldrb r0, [r3, 0xA]
cmp r0, 0
bne _0804ECE2
b _0804EEC4
_0804ECE2:
ldrb r0, [r3, 0x9]
cmp r0, 0
beq _0804ECEA
b _0804EEC4
_0804ECEA:
ldrb r0, [r3, 0x10]
cmp r0, 0
beq _0804ECF2
b _0804EEC4
_0804ECF2:
ldrb r0, [r3, 0x1D]
cmp r0, 0
beq _0804ECFA
b _0804EEC4
_0804ECFA:
movs r0, 0x4
ldrsh r1, [r3, r0]
movs r2, 0
ldrsh r0, [r3, r2]
subs r1, r0
cmp r1, 0
bge _0804ED0A
negs r1, r1
_0804ED0A:
cmp r1, 0x4
bgt _0804ED10
b _0804EEC4
_0804ED10:
movs r0, 0x6
ldrsh r1, [r3, r0]
movs r2, 0x2
ldrsh r0, [r3, r2]
subs r1, r0
cmp r1, 0
bge _0804ED20
negs r1, r1
_0804ED20:
cmp r1, 0x3
bgt _0804ED26
b _0804EEC4
_0804ED26:
ldr r1, _0804EEA0
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
strb r0, [r3, 0xC]
ldr r2, _0804EEA4
movs r4, 0
ldrsh r0, [r3, r4]
adds r0, 0x1
str r0, [r2]
movs r7, 0x4
ldrsh r0, [r3, r7]
subs r0, 0x1
str r0, [r2, 0x8]
movs r0, 0x2
ldrsh r1, [r3, r0]
adds r1, 0x1
str r1, [r2, 0x4]
movs r4, 0x6
ldrsh r3, [r3, r4]
subs r0, r3, 0x1
str r0, [r2, 0xC]
subs r0, r1
mov r10, r2
cmp r0, 0x2
bgt _0804ED5C
str r3, [r2, 0xC]
_0804ED5C:
ldr r0, _0804EEA8
add r0, r8
ldr r1, _0804EEAC
str r1, [r0]
ldr r0, _0804EEB0
add r0, r8
str r1, [r0]
ldr r0, _0804EEB4
add r0, r8
ldr r1, _0804EEB8
str r1, [r0]
ldr r0, _0804EEBC
add r0, r8
str r1, [r0]
mov r7, r10
ldr r5, [r7]
ldr r0, [r7, 0x8]
cmp r5, r0
bge _0804EDFA
mov r3, r10
_0804ED84:
ldr r4, [r3, 0x4]
ldr r0, [r3, 0xC]
adds r1, r5, 0x1
str r1, [sp, 0x54]
cmp r4, r0
bge _0804EDF0
ldr r6, _0804EEA8
add r6, r8
ldr r2, _0804EEA4
mov r10, r2
_0804ED98:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x50]
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x20
orrs r1, r2
strh r1, [r0]
ldrh r2, [r0, 0x4]
ldr r7, _0804EEC0
adds r1, r7, 0
ands r2, r1
adds r7, 0x7
adds r1, r7, 0
ands r2, r1
strh r2, [r0, 0x4]
ldr r0, [r6]
ldr r3, [sp, 0x50]
cmp r0, r5
ble _0804EDC4
str r5, [r6]
_0804EDC4:
ldr r1, _0804EEB0
add r1, r8
ldr r0, [r1]
cmp r0, r4
ble _0804EDD0
str r4, [r1]
_0804EDD0:
ldr r1, _0804EEB4
add r1, r8
ldr r0, [r1]
cmp r0, r5
bge _0804EDDC
str r5, [r1]
_0804EDDC:
ldr r1, _0804EEBC
add r1, r8
ldr r0, [r1]
cmp r0, r4
bge _0804EDE8
str r4, [r1]
_0804EDE8:
adds r4, 0x1
ldr r0, [r3, 0xC]
cmp r4, r0
blt _0804ED98
_0804EDF0:
ldr r5, [sp, 0x54]
mov r1, r10
ldr r0, [r1, 0x8]
cmp r5, r0
blt _0804ED84
_0804EDFA:
ldr r3, [sp, 0x4C]
ldr r2, [sp, 0x48]
mov r4, r9
subs r0, r2, r4
lsls r0, 5
ldr r7, [sp, 0x40]
adds r1, r0, r7
adds r0, r3, r1
movs r4, 0
ldrsh r5, [r0, r4]
movs r7, 0x4
ldrsh r0, [r0, r7]
cmp r5, r0
bge _0804EE6C
mov r8, r1
_0804EE18:
mov r1, r9
subs r0, r2, r1
lsls r0, 5
ldr r2, [sp, 0x40]
adds r0, r2
adds r0, r3, r0
movs r3, 0x2
ldrsh r4, [r0, r3]
movs r7, 0x6
ldrsh r0, [r0, r7]
adds r1, r5, 0x1
str r1, [sp, 0x54]
cmp r4, r0
bge _0804EE52
ldr r6, [sp, 0x4C]
add r6, r8
_0804EE38:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x10
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x1
movs r2, 0x6
ldrsh r0, [r6, r2]
cmp r4, r0
blt _0804EE38
_0804EE52:
ldr r5, [sp, 0x54]
ldr r3, [sp, 0x4C]
ldr r2, [sp, 0x48]
mov r4, r9
subs r0, r2, r4
lsls r0, 5
ldr r7, [sp, 0x40]
adds r0, r7
adds r0, r3, r0
movs r1, 0x4
ldrsh r0, [r0, r1]
cmp r5, r0
blt _0804EE18
_0804EE6C:
ldr r2, _0804EEA4
ldr r0, [r2]
ldr r1, [r2, 0x8]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r5, r0, 1
ldr r0, [r2, 0x4]
ldr r1, [r2, 0xC]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r4, r0, 1
ldr r0, _0804EE94
strh r5, [r0]
strh r4, [r0, 0x2]
b _0804EED4
.align 2, 0
_0804EE90: .4byte gDungeonGlobalData
_0804EE94: .4byte gUnknown_202F1D8
_0804EE98: .4byte 0x0000ffff
_0804EE9C: .4byte gUnknown_202F1AB
_0804EEA0: .4byte gUnknown_202F1AA
_0804EEA4: .4byte gUnknown_202F1B8
_0804EEA8: .4byte 0x0000e240
_0804EEAC: .4byte 0x0000270f
_0804EEB0: .4byte 0x0000e244
_0804EEB4: .4byte 0x0000e248
_0804EEB8: .4byte 0xffffd8f1
_0804EEBC: .4byte 0x0000e24c
_0804EEC0: .4byte 0x0000fff7
_0804EEC4:
adds r4, 0x1
cmp r4, 0xE
bgt _0804EECC
b _0804EC98
_0804EECC:
adds r5, 0x1
cmp r5, 0xE
bgt _0804EED4
b _0804EC84
_0804EED4:
add sp, 0x58
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804EBC8
thumb_func_start sub_804EEE4
sub_804EEE4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x108
str r0, [sp, 0x100]
mov r8, r1
adds r7, r2, 0
adds r4, r3, 0
ldr r5, _0804F094
ldr r0, [r5]
str r0, [sp, 0x104]
cmp r4, 0
bne _0804EF04
b _0804F0C0
_0804EF04:
movs r0, 0x64
bl DungeonRandomCapped
cmp r4, r0
bgt _0804EF10
b _0804F0C0
_0804EF10:
ldr r0, _0804F098
ldrb r0, [r0]
cmp r0, 0
beq _0804EF1A
b _0804F0C0
_0804EF1A:
ldr r0, [r5]
movs r1, 0xD1
lsls r1, 3
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _0804EF2C
b _0804F0C0
_0804EF2C:
bl sub_8043D10
lsls r0, 24
cmp r0, 0
beq _0804EF38
b _0804F0C0
_0804EF38:
movs r6, 0
movs r1, 0
cmp r1, r8
bge _0804EF94
_0804EF40:
adds r2, r1, 0x1
cmp r7, 0
ble _0804EF8E
lsls r0, r1, 4
subs r0, r1
lsls r0, 5
ldr r1, [sp, 0x100]
adds r1, 0x8
adds r1, r0, r1
adds r3, r7, 0
_0804EF54:
ldrb r0, [r1]
cmp r0, 0
bne _0804EF86
ldrb r0, [r1, 0x9]
cmp r0, 0
bne _0804EF86
ldrb r0, [r1, 0x3]
cmp r0, 0
beq _0804EF86
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _0804EF86
ldrb r0, [r1, 0x4]
cmp r0, 0
bne _0804EF86
ldrb r0, [r1, 0x7]
cmp r0, 0
bne _0804EF86
ldrb r0, [r1, 0x8]
cmp r0, 0
bne _0804EF86
ldrb r0, [r1, 0x1]
cmp r0, 0
bne _0804EF86
adds r6, 0x1
_0804EF86:
adds r1, 0x20
subs r3, 0x1
cmp r3, 0
bne _0804EF54
_0804EF8E:
adds r1, r2, 0
cmp r1, r8
blt _0804EF40
_0804EF94:
cmp r6, 0
bne _0804EF9A
b _0804F0C0
_0804EF9A:
movs r1, 0
mov r0, sp
adds r0, 0xFF
_0804EFA0:
strb r1, [r0]
subs r0, 0x1
cmp r0, sp
bge _0804EFA0
mov r1, sp
movs r0, 0x1
strb r0, [r1]
movs r5, 0x3F
_0804EFB0:
adds r0, r6, 0
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r6, 0
bl DungeonRandomCapped
mov r3, sp
adds r2, r3, r4
ldrb r3, [r2]
mov r4, sp
adds r1, r4, r0
ldrb r0, [r1]
strb r0, [r2]
strb r3, [r1]
subs r5, 0x1
cmp r5, 0
bge _0804EFB0
movs r5, 0
movs r1, 0
cmp r1, r8
bge _0804F0C0
ldr r6, [sp, 0x100]
mov r9, r6
movs r4, 0
_0804EFE2:
movs r3, 0
cmp r3, r7
bge _0804F0B2
mov r10, r3
lsls r0, r4, 5
ldr r6, [sp, 0x100]
adds r2, r0, r6
_0804EFF0:
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804F0A6
ldrb r0, [r2, 0x11]
cmp r0, 0
bne _0804F0A6
ldrb r0, [r2, 0xB]
cmp r0, 0
beq _0804F0A6
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804F0A6
ldrb r0, [r2, 0xC]
cmp r0, 0
bne _0804F0A6
ldrb r0, [r2, 0xF]
cmp r0, 0
bne _0804F0A6
ldrb r0, [r2, 0x10]
cmp r0, 0
bne _0804F0A6
ldrb r0, [r2, 0x9]
cmp r0, 0
bne _0804F0A6
mov r6, sp
adds r0, r6, r5
ldrb r0, [r0]
cmp r0, 0
beq _0804F0A4
ldr r1, _0804F09C
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
strb r0, [r2, 0xE]
movs r0, 0
ldrsh r5, [r2, r0]
movs r1, 0x4
ldrsh r0, [r2, r1]
cmp r5, r0
bge _0804F0C0
mov r2, r10
add r2, r9
mov r8, r2
_0804F046:
mov r1, r10
add r1, r9
movs r3, 0x2
ldrsh r4, [r1, r3]
movs r6, 0x6
ldrsh r0, [r1, r6]
adds r7, r5, 0x1
cmp r4, r0
bge _0804F086
adds r6, r1, 0
_0804F05A:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x40
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrb r1, [r0, 0x9]
ldr r2, [sp, 0x104]
ldr r3, _0804F0A0
adds r0, r2, r3
strb r1, [r0]
adds r4, 0x1
movs r1, 0x6
ldrsh r0, [r6, r1]
cmp r4, r0
blt _0804F05A
_0804F086:
adds r5, r7, 0
mov r2, r8
movs r3, 0x4
ldrsh r0, [r2, r3]
cmp r5, r0
blt _0804F046
b _0804F0C0
.align 2, 0
_0804F094: .4byte gDungeonGlobalData
_0804F098: .4byte gUnknown_202F1AA
_0804F09C: .4byte gUnknown_202F1AB
_0804F0A0: .4byte 0x00003a0c
_0804F0A4:
adds r5, 0x1
_0804F0A6:
movs r6, 0x20
add r10, r6
adds r2, 0x20
adds r3, 0x1
cmp r3, r7
blt _0804EFF0
_0804F0B2:
movs r0, 0xF0
lsls r0, 1
add r9, r0
adds r4, 0xF
adds r1, 0x1
cmp r1, r8
blt _0804EFE2
_0804F0C0:
add sp, 0x108
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804EEE4
thumb_func_start sub_804F0D0
sub_804F0D0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x104
str r0, [sp, 0x100]
mov r10, r1
mov r9, r2
adds r4, r3, 0
ldr r0, _0804F244
ldr r5, [r0]
cmp r4, 0
bne _0804F0EE
b _0804F266
_0804F0EE:
movs r0, 0x64
bl DungeonRandomCapped
cmp r4, r0
bgt _0804F0FA
b _0804F266
_0804F0FA:
ldr r1, _0804F248
adds r0, r5, r1
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
blt _0804F108
b _0804F266
_0804F108:
movs r5, 0
movs r6, 0
cmp r6, r10
bge _0804F184
_0804F110:
adds r7, r6, 0x1
mov r4, r9
cmp r4, 0
ble _0804F17E
lsls r0, r6, 4
subs r0, r6
lsls r0, 5
ldr r6, [sp, 0x100]
adds r2, r0, r6
_0804F122:
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804F176
ldrb r0, [r2, 0x11]
cmp r0, 0
bne _0804F176
ldrb r0, [r2, 0xB]
cmp r0, 0
beq _0804F176
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804F176
ldrb r0, [r2, 0xC]
cmp r0, 0
bne _0804F176
ldrb r0, [r2, 0xF]
cmp r0, 0
bne _0804F176
ldrb r0, [r2, 0xE]
cmp r0, 0
bne _0804F176
ldrb r0, [r2, 0x9]
cmp r0, 0
bne _0804F176
movs r1, 0x4
ldrsh r0, [r2, r1]
movs r3, 0
ldrsh r1, [r2, r3]
subs r0, r1
movs r3, 0x1
ands r0, r3
cmp r0, 0
beq _0804F176
movs r6, 0x6
ldrsh r0, [r2, r6]
movs r6, 0x2
ldrsh r1, [r2, r6]
subs r0, r1
ands r0, r3
cmp r0, 0
beq _0804F176
adds r5, 0x1
_0804F176:
adds r2, 0x20
subs r4, 0x1
cmp r4, 0
bne _0804F122
_0804F17E:
adds r6, r7, 0
cmp r6, r10
blt _0804F110
_0804F184:
cmp r5, 0
beq _0804F266
movs r1, 0
mov r0, sp
adds r0, 0xFF
_0804F18E:
strb r1, [r0]
subs r0, 0x1
cmp r0, sp
bge _0804F18E
mov r1, sp
movs r0, 0x1
strb r0, [r1]
movs r7, 0x3F
mov r8, r7
_0804F1A0:
adds r0, r5, 0
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl DungeonRandomCapped
mov r1, sp
adds r2, r1, r4
ldrb r3, [r2]
adds r1, r0
ldrb r0, [r1]
strb r0, [r2]
strb r3, [r1]
movs r3, 0x1
negs r3, r3
add r8, r3
mov r4, r8
cmp r4, 0
bge _0804F1A0
movs r6, 0
mov r8, r6
cmp r6, r10
bge _0804F266
ldr r7, [sp, 0x100]
mov r12, r7
_0804F1D4:
movs r4, 0
cmp r4, r9
bge _0804F25A
mov r2, r12
mov r5, r12
_0804F1DE:
ldrb r0, [r2, 0x8]
cmp r0, 0
bne _0804F250
ldrb r0, [r2, 0x11]
cmp r0, 0
bne _0804F250
ldrb r0, [r2, 0xB]
cmp r0, 0
beq _0804F250
ldrb r0, [r2, 0xA]
cmp r0, 0
beq _0804F250
ldrb r0, [r2, 0xC]
cmp r0, 0
bne _0804F250
ldrb r0, [r2, 0xF]
cmp r0, 0
bne _0804F250
ldrb r0, [r2, 0xE]
cmp r0, 0
bne _0804F250
ldrb r0, [r2, 0x9]
cmp r0, 0
bne _0804F250
movs r1, 0x4
ldrsh r0, [r2, r1]
movs r3, 0
ldrsh r1, [r2, r3]
subs r0, r1
movs r3, 0x1
ands r0, r3
cmp r0, 0
beq _0804F250
movs r7, 0x6
ldrsh r0, [r2, r7]
movs r7, 0x2
ldrsh r1, [r2, r7]
subs r0, r1
ands r0, r3
cmp r0, 0
beq _0804F250
mov r0, sp
add r0, r8
ldrb r0, [r0]
cmp r0, 0
beq _0804F24C
adds r0, r5, 0
movs r1, 0
bl sub_804F278
b _0804F266
.align 2, 0
_0804F244: .4byte gDungeonGlobalData
_0804F248: .4byte 0x00003a16
_0804F24C:
movs r0, 0x1
add r8, r0
_0804F250:
adds r2, 0x20
adds r5, 0x20
adds r4, 0x1
cmp r4, r9
blt _0804F1DE
_0804F25A:
movs r1, 0xF0
lsls r1, 1
add r12, r1
adds r6, 0x1
cmp r6, r10
blt _0804F1D4
_0804F266:
add sp, 0x104
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804F0D0
thumb_func_start sub_804F278
sub_804F278:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
mov r8, r1
ldr r1, _0804F2B0
movs r0, 0x1
strb r0, [r1]
movs r0, 0x1
strb r0, [r4, 0x10]
movs r1, 0
ldrsh r0, [r4, r1]
movs r2, 0x2
ldrsh r1, [r4, r2]
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
mov r9, r0
movs r5, 0
ldrsh r0, [r4, r5]
adds r6, r0, 0x1
b _0804F2F0
.align 2, 0
_0804F2B0: .4byte gUnknown_202F1AC
_0804F2B4:
movs r2, 0x2
ldrsh r1, [r4, r2]
subs r1, 0x1
adds r0, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804F2EE
movs r5, 0x2
ldrsh r3, [r4, r5]
subs r1, r3, 0x1
movs r0, 0
ldrsh r2, [r4, r0]
movs r5, 0x4
ldrsh r0, [r4, r5]
str r0, [sp]
movs r5, 0x6
ldrsh r0, [r4, r5]
str r0, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
mov r5, r9
str r5, [sp, 0xC]
adds r0, r6, 0
bl sub_804F494
_0804F2EE:
adds r6, 0x2
_0804F2F0:
movs r1, 0x4
ldrsh r0, [r4, r1]
subs r0, 0x1
cmp r6, r0
blt _0804F2B4
movs r2, 0x2
ldrsh r0, [r4, r2]
adds r5, r0, 0x1
movs r6, 0x6
ldrsh r0, [r4, r6]
b _0804F342
_0804F306:
movs r1, 0x4
ldrsh r0, [r4, r1]
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804F33C
movs r2, 0x4
ldrsh r0, [r4, r2]
movs r6, 0
ldrsh r2, [r4, r6]
movs r1, 0x2
ldrsh r3, [r4, r1]
str r0, [sp]
movs r6, 0x6
ldrsh r1, [r4, r6]
str r1, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
mov r6, r9
str r6, [sp, 0xC]
adds r1, r5, 0
bl sub_804F494
_0804F33C:
adds r5, 0x2
movs r1, 0x6
ldrsh r0, [r4, r1]
_0804F342:
subs r0, 0x1
cmp r5, r0
blt _0804F306
movs r2, 0
ldrsh r0, [r4, r2]
adds r6, r0, 0x1
movs r5, 0x4
ldrsh r0, [r4, r5]
b _0804F392
_0804F354:
movs r0, 0x6
ldrsh r1, [r4, r0]
adds r0, r6, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804F38C
movs r2, 0x6
ldrsh r1, [r4, r2]
movs r5, 0
ldrsh r2, [r4, r5]
movs r0, 0x2
ldrsh r3, [r4, r0]
movs r5, 0x4
ldrsh r0, [r4, r5]
str r0, [sp]
adds r0, r1, 0
str r0, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
mov r5, r9
str r5, [sp, 0xC]
adds r0, r6, 0
bl sub_804F494
_0804F38C:
adds r6, 0x2
movs r1, 0x4
ldrsh r0, [r4, r1]
_0804F392:
subs r0, 0x1
cmp r6, r0
blt _0804F354
movs r2, 0x2
ldrsh r0, [r4, r2]
adds r5, r0, 0x1
movs r6, 0x6
ldrsh r0, [r4, r6]
b _0804F3E4
_0804F3A4:
movs r1, 0
ldrsh r0, [r4, r1]
subs r0, 0x1
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804F3DE
movs r6, 0
ldrsh r2, [r4, r6]
subs r0, r2, 0x1
movs r1, 0x2
ldrsh r3, [r4, r1]
movs r6, 0x4
ldrsh r1, [r4, r6]
str r1, [sp]
movs r6, 0x6
ldrsh r1, [r4, r6]
str r1, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
mov r6, r9
str r6, [sp, 0xC]
adds r1, r5, 0
bl sub_804F494
_0804F3DE:
adds r5, 0x2
movs r1, 0x6
ldrsh r0, [r4, r1]
_0804F3E4:
subs r0, 0x1
cmp r5, r0
blt _0804F3A4
movs r2, 0
ldrsh r0, [r4, r2]
adds r6, r0, 0x3
b _0804F478
_0804F3F2:
movs r1, 0x2
ldrsh r0, [r4, r1]
adds r5, r0, 0x3
movs r2, 0x6
ldrsh r0, [r4, r2]
subs r0, 0x3
adds r1, r6, 0x2
mov r10, r1
cmp r5, r0
bge _0804F476
ldr r2, _0804F434
adds r7, r2, 0
_0804F40A:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _0804F46A
mov r0, r8
cmp r0, 0
beq _0804F438
subs r0, r6, 0x1
adds r1, r5, 0
bl GetMapEntity
ldrh r1, [r0]
ands r1, r7
movs r2, 0x2
orrs r1, r2
b _0804F444
.align 2, 0
_0804F434: .4byte 0x0000fffc
_0804F438:
subs r0, r6, 0x1
adds r1, r5, 0
bl GetMapEntity
ldrh r1, [r0]
ands r1, r7
_0804F444:
strh r1, [r0]
movs r1, 0
ldrsh r2, [r4, r1]
movs r0, 0x2
ldrsh r3, [r4, r0]
movs r1, 0x4
ldrsh r0, [r4, r1]
str r0, [sp]
movs r1, 0x6
ldrsh r0, [r4, r1]
str r0, [sp, 0x4]
mov r0, r8
str r0, [sp, 0x8]
mov r1, r9
str r1, [sp, 0xC]
adds r0, r6, 0
adds r1, r5, 0
bl sub_804F494
_0804F46A:
adds r5, 0x2
movs r2, 0x6
ldrsh r0, [r4, r2]
subs r0, 0x3
cmp r5, r0
blt _0804F40A
_0804F476:
mov r6, r10
_0804F478:
movs r5, 0x4
ldrsh r0, [r4, r5]
subs r0, 0x3
cmp r6, r0
blt _0804F3F2
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804F278
thumb_func_start sub_804F494
sub_804F494:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r5, r0, 0
adds r4, r1, 0
str r2, [sp]
str r3, [sp, 0x4]
ldr r0, [sp, 0x30]
ldr r1, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 24
mov r8, r1
movs r0, 0x3
mov r10, r0
_0804F4BA:
movs r0, 0x4
bl DungeonRandomCapped
adds r6, r0, 0
movs r7, 0
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
mov r1, r9
mov r3, r8
lsrs r2, r3, 24
bl sub_804E9A8
_0804F4D6:
adds r0, r6, 0
mov r1, r10
ands r0, r1
cmp r0, 0x1
beq _0804F4F6
cmp r0, 0x1
bgt _0804F4EA
cmp r0, 0
beq _0804F4F0
b _0804F506
_0804F4EA:
cmp r0, 0x2
beq _0804F4FE
b _0804F506
_0804F4F0:
movs r0, 0x2
movs r1, 0
b _0804F50A
_0804F4F6:
movs r0, 0
movs r1, 0x2
negs r1, r1
b _0804F50A
_0804F4FE:
movs r0, 0x2
negs r0, r0
movs r1, 0
b _0804F50A
_0804F506:
movs r0, 0
movs r1, 0x2
_0804F50A:
adds r0, r5, r0
ldr r2, [sp]
cmp r2, r0
bgt _0804F534
ldr r3, [sp, 0x28]
cmp r3, r0
ble _0804F534
adds r1, r4, r1
ldr r2, [sp, 0x4]
cmp r2, r1
bgt _0804F534
ldr r3, [sp, 0x2C]
cmp r3, r1
ble _0804F534
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r10
ands r0, r1
cmp r0, 0x1
beq _0804F53E
_0804F534:
adds r6, 0x1
adds r7, 0x1
cmp r7, 0x3
bgt _0804F5B2
b _0804F4D6
_0804F53E:
mov r0, r10
ands r0, r6
cmp r0, 0x1
beq _0804F570
cmp r0, 0x1
bgt _0804F550
cmp r0, 0
beq _0804F55A
b _0804F4BA
_0804F550:
cmp r0, 0x2
beq _0804F586
cmp r0, 0x3
beq _0804F59C
b _0804F4BA
_0804F55A:
adds r0, r5, 0x1
adds r1, r4, 0
bl GetMapEntity
mov r1, r9
mov r3, r8
lsrs r2, r3, 24
bl sub_804E9A8
adds r5, 0x2
b _0804F4BA
_0804F570:
subs r1, r4, 0x1
adds r0, r5, 0
bl GetMapEntity
mov r1, r9
mov r3, r8
lsrs r2, r3, 24
bl sub_804E9A8
subs r4, 0x2
b _0804F4BA
_0804F586:
subs r0, r5, 0x1
adds r1, r4, 0
bl GetMapEntity
mov r1, r9
mov r3, r8
lsrs r2, r3, 24
bl sub_804E9A8
subs r5, 0x2
b _0804F4BA
_0804F59C:
adds r1, r4, 0x1
adds r0, r5, 0
bl GetMapEntity
mov r1, r9
mov r3, r8
lsrs r2, r3, 24
bl sub_804E9A8
adds r4, 0x2
b _0804F4BA
_0804F5B2:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804F494
thumb_func_start sub_804F5C4
sub_804F5C4:
ldrh r3, [r0]
ldr r2, _0804F5D4
ands r2, r3
movs r3, 0x2
orrs r2, r3
orrs r2, r1
strh r2, [r0]
bx lr
.align 2, 0
_0804F5D4: .4byte 0x0000fffc
thumb_func_end sub_804F5C4
thumb_func_start sub_804F5D8
sub_804F5D8:
push {r4-r7,lr}
adds r5, r0, 0
movs r0, 0
ldrsh r6, [r5, r0]
b _0804F60C
_0804F5E2:
movs r0, 0x2
ldrsh r4, [r5, r0]
movs r1, 0x6
ldrsh r0, [r5, r1]
adds r7, r6, 0x1
cmp r4, r0
bge _0804F60A
_0804F5F0:
adds r0, r6, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x20
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x1
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r4, r0
blt _0804F5F0
_0804F60A:
adds r6, r7, 0
_0804F60C:
movs r1, 0x4
ldrsh r0, [r5, r1]
cmp r6, r0
blt _0804F5E2
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804F5D8
thumb_func_start sub_804F61C
sub_804F61C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r9, r0
mov r8, r1
movs r7, 0x1
negs r7, r7
b _0804F67A
_0804F62E:
movs r5, 0x1
negs r5, r5
b _0804F666
_0804F634:
cmp r7, 0
beq _0804F63C
cmp r5, 0
bne _0804F660
_0804F63C:
adds r0, r6, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _0804F660
adds r0, r6, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrb r0, [r0, 0x9]
cmp r0, 0xFF
bne _0804F660
movs r0, 0x1
b _0804F686
_0804F660:
adds r5, 0x1
cmp r5, 0x1
bgt _0804F672
_0804F666:
mov r0, r8
adds r4, r0, r5
cmp r4, 0
blt _0804F660
cmp r4, 0x1F
ble _0804F634
_0804F672:
adds r7, 0x1
cmp r7, 0x1
bgt _0804F684
mov r0, r9
_0804F67A:
adds r6, r0, r7
cmp r6, 0
blt _0804F672
cmp r6, 0x37
ble _0804F62E
_0804F684:
movs r0, 0
_0804F686:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_804F61C
thumb_func_start sub_804F694
sub_804F694:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r7, r0, 0
movs r0, 0x6
bl DungeonRandomCapped
subs r0, 0x1
cmp r0, 0x4
bls _0804F6B0
b _0804FBD6
_0804F6B0:
lsls r0, 2
ldr r1, _0804F6BC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804F6BC: .4byte _0804F6C0
.align 2, 0
_0804F6C0:
.4byte _0804FB24
.4byte _0804FA98
.4byte _0804F9DC
.4byte _0804F826
.4byte _0804F6D4
_0804F6D4:
ldr r1, _0804F70C
ldr r0, [r1]
cmp r0, 0
bne _0804F6DE
b _0804FBD6
_0804F6DE:
subs r0, 0x1
str r0, [r1]
adds r0, r7, 0
bl sub_804F5D8
movs r0, 0x2
bl DungeonRandomCapped
cmp r0, 0
beq _0804F78E
movs r5, 0
movs r1, 0
ldrsh r0, [r7, r1]
movs r2, 0x4
ldrsh r1, [r7, r2]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
mov r8, r0
movs r3, 0x2
ldrsh r4, [r7, r3]
b _0804F712
.align 2, 0
_0804F70C: .4byte gUnknown_202F1C8
_0804F710:
adds r4, 0x1
_0804F712:
movs r1, 0x6
ldrsh r0, [r7, r1]
cmp r4, r0
bge _0804F72A
mov r0, r8
adds r1, r4, 0
bl sub_804F61C
lsls r0, 24
cmp r0, 0
beq _0804F710
movs r5, 0x1
_0804F72A:
cmp r5, 0
beq _0804F730
b _0804FBD6
_0804F730:
movs r2, 0x2
ldrsh r4, [r7, r2]
movs r3, 0x6
ldrsh r0, [r7, r3]
cmp r4, r0
bge _0804F754
_0804F73C:
mov r0, r8
adds r1, r4, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
adds r4, 0x1
movs r5, 0x6
ldrsh r0, [r7, r5]
cmp r4, r0
blt _0804F73C
_0804F754:
movs r0, 0
ldrsh r5, [r7, r0]
cmp r5, r8
blt _0804F75E
b _0804FBD2
_0804F75E:
movs r1, 0x2
ldrsh r4, [r7, r1]
movs r2, 0x6
ldrsh r0, [r7, r2]
adds r6, r5, 0x1
cmp r4, r0
bge _0804F786
_0804F76C:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x80
orrs r1, r2
strh r1, [r0]
adds r4, 0x1
movs r3, 0x6
ldrsh r0, [r7, r3]
cmp r4, r0
blt _0804F76C
_0804F786:
adds r5, r6, 0
cmp r5, r8
blt _0804F75E
b _0804FBD2
_0804F78E:
movs r5, 0
movs r4, 0x2
ldrsh r0, [r7, r4]
movs r2, 0x6
ldrsh r1, [r7, r2]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
mov r8, r0
movs r3, 0
ldrsh r4, [r7, r3]
b _0804F7AA
_0804F7A8:
adds r4, 0x1
_0804F7AA:
movs r1, 0x4
ldrsh r0, [r7, r1]
cmp r4, r0
bge _0804F7C2
adds r0, r4, 0
mov r1, r8
bl sub_804F61C
lsls r0, 24
cmp r0, 0
beq _0804F7A8
movs r5, 0x1
_0804F7C2:
cmp r5, 0
beq _0804F7C8
b _0804FBD6
_0804F7C8:
movs r2, 0
ldrsh r4, [r7, r2]
movs r3, 0x4
ldrsh r0, [r7, r3]
cmp r4, r0
bge _0804F7EC
_0804F7D4:
adds r0, r4, 0
mov r1, r8
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
adds r4, 0x1
movs r5, 0x4
ldrsh r0, [r7, r5]
cmp r4, r0
blt _0804F7D4
_0804F7EC:
movs r0, 0x2
ldrsh r5, [r7, r0]
cmp r5, r8
blt _0804F7F6
b _0804FBD2
_0804F7F6:
movs r1, 0
ldrsh r4, [r7, r1]
movs r2, 0x4
ldrsh r0, [r7, r2]
adds r6, r5, 0x1
cmp r4, r0
bge _0804F81E
_0804F804:
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x80
orrs r1, r2
strh r1, [r0]
adds r4, 0x1
movs r3, 0x4
ldrsh r0, [r7, r3]
cmp r4, r0
blt _0804F804
_0804F81E:
adds r5, r6, 0
cmp r5, r8
blt _0804F7F6
b _0804FBD2
_0804F826:
movs r4, 0x4
ldrsh r3, [r7, r4]
movs r5, 0
ldrsh r1, [r7, r5]
subs r0, r3, r1
cmp r0, 0x5
bgt _0804F836
b _0804FBD6
_0804F836:
movs r0, 0x6
ldrsh r4, [r7, r0]
movs r5, 0x2
ldrsh r2, [r7, r5]
subs r0, r4, r2
cmp r0, 0x5
bgt _0804F846
b _0804FBD6
_0804F846:
adds r0, r1, r3
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
str r0, [sp]
adds r0, r2, r4
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
str r0, [sp, 0x4]
ldr r1, _0804F9D8
ldr r0, [r1]
cmp r0, 0
bne _0804F864
b _0804FBD6
_0804F864:
subs r0, 0x1
str r0, [r1]
adds r0, r7, 0
bl sub_804F5D8
ldr r5, [sp]
subs r5, 0x2
ldr r0, [sp, 0x4]
subs r0, 0x2
mov r10, r0
adds r0, r5, 0
mov r1, r10
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r1, [sp]
subs r1, 0x1
mov r9, r1
mov r0, r9
mov r1, r10
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r0, [sp]
mov r1, r10
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r2, [sp]
adds r2, 0x1
mov r8, r2
mov r0, r8
mov r1, r10
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r6, [sp, 0x4]
subs r6, 0x1
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
adds r0, r5, 0
ldr r1, [sp, 0x4]
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r4, [sp, 0x4]
adds r4, 0x1
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r9
adds r1, r4, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
ldr r0, [sp]
adds r1, r4, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r8
mov r1, r10
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r8
adds r1, r6, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r8
ldr r1, [sp, 0x4]
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r8
adds r1, r4, 0
bl GetMapEntity
movs r1, 0x4
bl sub_804F5C4
mov r0, r9
adds r1, r6, 0
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x4
orrs r1, r2
strh r1, [r0, 0x4]
mov r0, r9
adds r1, r6, 0
bl GetMapEntity
ldrh r1, [r0, 0x4]
movs r2, 0x40
orrs r1, r2
strh r1, [r0, 0x4]
ldr r0, [sp]
adds r1, r6, 0
bl GetMapEntity
ldrh r1, [r0, 0x4]
movs r4, 0x2
orrs r1, r4
strh r1, [r0, 0x4]
mov r0, r9
ldr r1, [sp, 0x4]
bl GetMapEntity
ldrh r1, [r0, 0x4]
orrs r1, r4
strh r1, [r0, 0x4]
ldr r0, [sp]
ldr r1, [sp, 0x4]
bl GetMapEntity
ldrh r1, [r0, 0x4]
orrs r1, r4
strh r1, [r0, 0x4]
mov r0, r9
adds r1, r6, 0
bl GetMapEntity
ldrh r1, [r0, 0x4]
movs r4, 0x10
orrs r1, r4
strh r1, [r0, 0x4]
ldr r0, [sp]
adds r1, r6, 0
bl GetMapEntity
ldrh r1, [r0, 0x4]
orrs r1, r4
strh r1, [r0, 0x4]
mov r0, r9
ldr r1, [sp, 0x4]
bl GetMapEntity
ldrh r1, [r0, 0x4]
orrs r1, r4
strh r1, [r0, 0x4]
ldr r0, [sp]
ldr r1, [sp, 0x4]
bl GetMapEntity
ldrh r1, [r0, 0x4]
orrs r4, r1
strh r4, [r0, 0x4]
b _0804FBD2
.align 2, 0
_0804F9D8: .4byte gUnknown_202F1C8
_0804F9DC:
movs r4, 0x4
ldrsh r3, [r7, r4]
movs r5, 0
ldrsh r2, [r7, r5]
subs r0, r3, r2
cmp r0, 0x4
bgt _0804F9EC
b _0804FBD6
_0804F9EC:
movs r1, 0x6
ldrsh r0, [r7, r1]
movs r4, 0x2
ldrsh r1, [r7, r4]
subs r0, r1
cmp r0, 0x4
bgt _0804F9FC
b _0804FBD6
_0804F9FC:
adds r0, r2, 0x2
subs r1, r3, 0x3
bl sub_808411C
adds r4, r0, 0
movs r5, 0x2
ldrsh r0, [r7, r5]
adds r0, 0x2
movs r2, 0x6
ldrsh r1, [r7, r2]
subs r1, 0x3
bl sub_808411C
mov r10, r0
movs r3, 0
ldrsh r0, [r7, r3]
adds r0, 0x2
movs r5, 0x4
ldrsh r1, [r7, r5]
subs r1, 0x3
bl sub_808411C
mov r9, r0
movs r1, 0x2
ldrsh r0, [r7, r1]
adds r0, 0x2
movs r2, 0x6
ldrsh r1, [r7, r2]
subs r1, 0x3
bl sub_808411C
adds r6, r0, 0
ldr r1, _0804FA94
ldr r0, [r1]
cmp r0, 0
bne _0804FA46
b _0804FBD6
_0804FA46:
subs r0, 0x1
str r0, [r1]
adds r0, r7, 0
bl sub_804F5D8
cmp r4, r9
ble _0804FA5A
adds r0, r4, 0
mov r4, r9
mov r9, r0
_0804FA5A:
cmp r10, r6
ble _0804FA64
mov r0, r10
mov r10, r6
adds r6, r0, 0
_0804FA64:
adds r5, r4, 0
cmp r5, r9
ble _0804FA6C
b _0804FBD2
_0804FA6C:
mov r4, r10
adds r3, r5, 0x1
mov r8, r3
cmp r4, r6
bgt _0804FA8A
_0804FA76:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
adds r4, 0x1
cmp r4, r6
ble _0804FA76
_0804FA8A:
mov r5, r8
cmp r5, r9
ble _0804FA6C
b _0804FBD2
.align 2, 0
_0804FA94: .4byte gUnknown_202F1C8
_0804FA98:
movs r4, 0x4
ldrsh r0, [r7, r4]
movs r5, 0
ldrsh r1, [r7, r5]
subs r0, r1
movs r2, 0x1
ands r0, r2
cmp r0, 0
bne _0804FAAC
b _0804FBD6
_0804FAAC:
movs r1, 0x6
ldrsh r0, [r7, r1]
movs r3, 0x2
ldrsh r1, [r7, r3]
subs r0, r1
ands r0, r2
cmp r0, 0
bne _0804FABE
b _0804FBD6
_0804FABE:
ldr r1, _0804FB20
ldr r0, [r1]
cmp r0, 0
bne _0804FAC8
b _0804FBD6
_0804FAC8:
subs r0, 0x1
str r0, [r1]
adds r0, r7, 0
bl sub_804F5D8
movs r6, 0x3F
_0804FAD4:
movs r4, 0x4
ldrsh r0, [r7, r4]
movs r5, 0
ldrsh r1, [r7, r5]
subs r0, r1
bl DungeonRandomCapped
adds r4, r0, 0
movs r1, 0x6
ldrsh r0, [r7, r1]
movs r2, 0x2
ldrsh r1, [r7, r2]
subs r0, r1
bl DungeonRandomCapped
adds r2, r0, 0
adds r0, r4, r2
movs r5, 0x1
ands r0, r5
cmp r0, 0
beq _0804FB14
movs r3, 0
ldrsh r0, [r7, r3]
adds r0, r4
movs r4, 0x2
ldrsh r1, [r7, r4]
adds r1, r2
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
_0804FB14:
subs r6, 0x1
cmp r6, 0
bge _0804FAD4
strb r5, [r7, 0x9]
b _0804FBD6
.align 2, 0
_0804FB20: .4byte gUnknown_202F1C8
_0804FB24:
ldr r1, _0804FBC0
ldr r0, [r1]
cmp r0, 0
beq _0804FBD6
subs r0, 0x1
str r0, [r1]
movs r5, 0x4
ldrsh r3, [r7, r5]
movs r0, 0
ldrsh r2, [r7, r0]
subs r6, r3, r2
movs r4, 0x1
adds r0, r6, 0
ands r0, r4
cmp r0, 0
beq _0804FB54
movs r1, 0x6
ldrsh r0, [r7, r1]
movs r5, 0x2
ldrsh r1, [r7, r5]
subs r0, r1
ands r0, r4
cmp r0, 0
bne _0804FBC4
_0804FB54:
adds r0, r2, r3
lsrs r1, r0, 31
adds r0, r1
asrs r5, r0, 1
movs r0, 0x2
ldrsh r3, [r7, r0]
movs r1, 0x6
ldrsh r2, [r7, r1]
adds r0, r3, r2
lsrs r1, r0, 31
adds r0, r1
asrs r4, r0, 1
cmp r6, 0x4
ble _0804FBAE
subs r0, r2, r3
cmp r0, 0x4
ble _0804FBAE
adds r0, r5, 0x1
adds r1, r4, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
adds r1, r4, 0x1
adds r0, r5, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
subs r0, r5, 0x1
adds r1, r4, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
subs r1, r4, 0x1
adds r0, r5, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
_0804FBAE:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0
bl sub_804F5C4
b _0804FBD2
.align 2, 0
_0804FBC0: .4byte gUnknown_202F1C8
_0804FBC4:
adds r0, r7, 0
bl sub_804F5D8
adds r0, r7, 0
movs r1, 0x1
bl sub_804F278
_0804FBD2:
movs r0, 0x1
strb r0, [r7, 0x9]
_0804FBD6:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804F694
thumb_func_start sub_804FBE8
sub_804FBE8:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r6, 0
ldr r0, _0804FC6C
adds r5, r0, 0
_0804FBF4:
movs r4, 0
adds r3, r6, 0x1
mov r8, r3
_0804FBFA:
adds r0, r6, 0
adds r1, r4, 0
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0804FC2A
movs r7, 0x88
lsls r7, 1
adds r0, r7, 0
ands r0, r1
cmp r0, 0
beq _0804FC24
ldrh r0, [r2, 0x4]
ldr r3, _0804FC70
adds r1, r3, 0
ands r0, r1
strh r0, [r2, 0x4]
_0804FC24:
ldrh r0, [r2, 0x4]
ands r0, r5
strh r0, [r2, 0x4]
_0804FC2A:
ldrh r3, [r2, 0x4]
movs r0, 0x1
ands r0, r3
cmp r0, 0
beq _0804FC46
ldrh r0, [r2]
movs r7, 0x80
lsls r7, 2
adds r1, r7, 0
orrs r1, r0
strh r1, [r2]
adds r0, r3, 0
ands r0, r5
strh r0, [r2, 0x4]
_0804FC46:
ldrh r1, [r2, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0804FC56
adds r0, r1, 0
ands r0, r5
strh r0, [r2, 0x4]
_0804FC56:
adds r4, 0x1
cmp r4, 0x1F
ble _0804FBFA
mov r6, r8
cmp r6, 0x37
ble _0804FBF4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804FC6C: .4byte 0x0000fffb
_0804FC70: .4byte 0x0000fffd
thumb_func_end sub_804FBE8
thumb_func_start sub_804FC74
sub_804FC74:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r5, 0
movs r0, 0x3
mov r8, r0
ldr r0, _0804FCC8
adds r7, r0, 0
_0804FC86:
movs r4, 0
adds r6, r5, 0x1
_0804FC8A:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _0804FCAE
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ands r1, r7
mov r2, r8
orrs r1, r2
strh r1, [r0]
_0804FCAE:
adds r4, 0x1
cmp r4, 0x1F
ble _0804FC8A
adds r5, r6, 0
cmp r5, 0x37
ble _0804FC86
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804FCC8: .4byte 0x0000fffc
thumb_func_end sub_804FC74
thumb_func_start sub_804FCCC
sub_804FCCC:
push {r4-r7,lr}
movs r5, 0
ldr r0, _0804FD0C
adds r7, r0, 0
_0804FCD4:
movs r4, 0
adds r6, r5, 0x1
_0804FCD8:
adds r0, r5, 0
adds r1, r4, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0804FCF8
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ands r1, r7
strh r1, [r0]
_0804FCF8:
adds r4, 0x1
cmp r4, 0x1F
ble _0804FCD8
adds r5, r6, 0
cmp r5, 0x37
ble _0804FCD4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804FD0C: .4byte 0x0000fffc
thumb_func_end sub_804FCCC
thumb_func_start sub_804FD10
sub_804FD10:
movs r2, 0
movs r3, 0
strh r3, [r0]
strh r3, [r0, 0x4]
movs r1, 0xFF
strb r1, [r0, 0x9]
strb r2, [r0, 0x8]
strb r2, [r0, 0xA]
strb r2, [r0, 0xB]
strb r2, [r0, 0xC]
strb r2, [r0, 0xD]
strb r2, [r0, 0xE]
str r3, [r0, 0x10]
str r3, [r0, 0x14]
bx lr
thumb_func_end sub_804FD10
thumb_func_start sub_804FD30
sub_804FD30:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r6, 0
_0804FD3A:
movs r7, 0
adds r4, r6, 0x1
_0804FD3E:
adds r0, r6, 0
adds r1, r7, 0
bl GetMapEntity
bl sub_804FD10
subs r3, r7, 0x1
cmp r6, 0
blt _0804FD5C
cmp r3, 0
blt _0804FD5C
cmp r6, 0x37
bgt _0804FD5C
cmp r3, 0x1F
ble _0804FD60
_0804FD5C:
movs r0, 0x1
b _0804FD62
_0804FD60:
movs r0, 0
_0804FD62:
cmp r0, 0
bne _0804FE24
cmp r4, 0
blt _0804FD76
cmp r3, 0
blt _0804FD76
cmp r4, 0x37
bgt _0804FD76
cmp r3, 0x1F
ble _0804FD7A
_0804FD76:
movs r0, 0x1
b _0804FD7C
_0804FD7A:
movs r0, 0
_0804FD7C:
cmp r0, 0
bne _0804FE24
cmp r4, 0
blt _0804FD90
cmp r3, 0
blt _0804FD90
cmp r4, 0x37
bgt _0804FD90
cmp r3, 0x1F
ble _0804FD94
_0804FD90:
movs r0, 0x1
b _0804FD96
_0804FD94:
movs r0, 0
_0804FD96:
cmp r0, 0
bne _0804FE24
adds r2, r7, 0x1
cmp r4, 0
blt _0804FDAC
cmp r2, 0
blt _0804FDAC
cmp r4, 0x37
bgt _0804FDAC
cmp r2, 0x1F
ble _0804FDB0
_0804FDAC:
movs r0, 0x1
b _0804FDB2
_0804FDB0:
movs r0, 0
_0804FDB2:
cmp r0, 0
bne _0804FE24
cmp r6, 0
blt _0804FDC6
cmp r2, 0
blt _0804FDC6
cmp r6, 0x37
bgt _0804FDC6
cmp r2, 0x1F
ble _0804FDCA
_0804FDC6:
movs r0, 0x1
b _0804FDCC
_0804FDCA:
movs r0, 0
_0804FDCC:
cmp r0, 0
bne _0804FE24
adds r0, r2, 0
subs r1, r6, 0x1
cmp r1, 0
blt _0804FDE4
cmp r0, 0
blt _0804FDE4
cmp r1, 0x37
bgt _0804FDE4
cmp r2, 0x1F
ble _0804FDE8
_0804FDE4:
movs r0, 0x1
b _0804FDEA
_0804FDE8:
movs r0, 0
_0804FDEA:
cmp r0, 0
bne _0804FE24
cmp r1, 0
blt _0804FDFE
cmp r7, 0
blt _0804FDFE
cmp r1, 0x37
bgt _0804FDFE
cmp r7, 0x1F
ble _0804FE02
_0804FDFE:
movs r0, 0x1
b _0804FE04
_0804FE02:
movs r0, 0
_0804FE04:
cmp r0, 0
bne _0804FE24
adds r0, r3, 0
cmp r1, 0
blt _0804FE1A
cmp r0, 0
blt _0804FE1A
cmp r1, 0x37
bgt _0804FE1A
cmp r3, 0x1F
ble _0804FE1E
_0804FE1A:
movs r0, 0x1
b _0804FE20
_0804FE1E:
movs r0, 0
_0804FE20:
cmp r0, 0
beq _0804FE34
_0804FE24:
adds r0, r6, 0
adds r1, r7, 0
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x10
orrs r1, r2
strh r1, [r0]
_0804FE34:
adds r7, 0x1
cmp r7, 0x1F
ble _0804FD3E
adds r6, 0x1
cmp r6, 0x37
bgt _0804FE42
b _0804FD3A
_0804FE42:
ldr r3, _0804FEB4
ldr r1, [r3]
ldr r0, _0804FEB8
adds r2, r1, r0
ldr r0, _0804FEBC
strh r0, [r2]
ldr r2, _0804FEC0
adds r1, r2
movs r0, 0x1
negs r0, r0
strh r0, [r1]
movs r6, 0
mov r8, r3
ldr r1, _0804FEC4
_0804FE5E:
adds r5, r1, 0
movs r4, 0
movs r7, 0x7
_0804FE64:
mov r2, r8
ldr r0, [r2]
adds r0, r5
adds r0, r4
str r1, [sp]
bl sub_804FD10
adds r4, 0x18
subs r7, 0x1
ldr r1, [sp]
cmp r7, 0
bge _0804FE64
adds r1, 0xC0
adds r6, 0x1
cmp r6, 0x7
ble _0804FE5E
ldr r0, _0804FEB4
ldr r1, [r0]
ldr r2, _0804FEC8
adds r1, r2
movs r2, 0
strh r2, [r1]
movs r6, 0
adds r4, r0, 0
ldr r3, _0804FECC
_0804FE96:
ldr r0, [r4]
lsls r1, r6, 2
adds r0, r3
adds r0, r1
ldr r0, [r0]
str r2, [r0]
adds r6, 0x1
cmp r6, 0x3F
ble _0804FE96
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804FEB4: .4byte gDungeonGlobalData
_0804FEB8: .4byte 0x0000e21c
_0804FEBC: .4byte 0x0000ffff
_0804FEC0: .4byte 0x0000e21e
_0804FEC4: .4byte 0x0000e27c
_0804FEC8: .4byte 0x00003904
_0804FECC: .4byte 0x0001371c
thumb_func_end sub_804FD30
thumb_func_start sub_804FED0
sub_804FED0:
push {r4-r7,lr}
adds r7, r0, 0
adds r5, r1, 0
movs r6, 0
b _0804FEFA
_0804FEDA:
adds r0, r5, 0
bl DungeonRandomCapped
adds r4, r0, 0
adds r0, r5, 0
bl DungeonRandomCapped
lsls r4, 2
adds r4, r7
ldr r2, [r4]
lsls r0, 2
adds r0, r7
ldr r1, [r0]
str r1, [r4]
str r2, [r0]
adds r6, 0x1
_0804FEFA:
lsls r0, r5, 1
cmp r6, r0
blt _0804FEDA
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804FED0
thumb_func_start sub_804FF08
sub_804FF08:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _08050234
add sp, r4
mov r10, r0
lsls r1, 24
lsrs r1, 24
movs r0, 0xE0
lsls r0, 5
add r0, sp
str r1, [r0]
ldr r0, _08050238
ldr r0, [r0]
mov r9, r0
ldr r0, _0805023C
add r0, r9
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _0804FF46
ldr r0, _08050240
add r0, r9
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, r1
bne _08050038
_0804FF46:
movs r0, 0
mov r8, r0
movs r6, 0
_0804FF4C:
movs r5, 0
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_0804FF56:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
ands r0, r2
cmp r0, 0x1
bne _0804FFAA
ldrb r0, [r1, 0x9]
cmp r0, 0xFF
beq _0804FFAA
movs r0, 0x20
ands r0, r2
cmp r0, 0
bne _0804FFAA
ldrh r1, [r1, 0x4]
movs r3, 0x8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0804FFAA
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _0804FFAA
adds r0, r3, 0
ands r0, r2
cmp r0, 0
bne _0804FFAA
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _0804FFAA
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r2, 0x1
add r8, r2
_0804FFAA:
adds r5, 0x1
cmp r5, 0x1F
ble _0804FF56
adds r6, 0x1
cmp r6, 0x37
ble _0804FF4C
mov r0, r8
cmp r0, 0
beq _08050038
bl DungeonRandomCapped
lsls r0, 2
mov r1, sp
adds r4, r1, r0
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
adds r5, r0, 0
ldrh r1, [r5, 0x4]
movs r0, 0x1
orrs r0, r1
ldr r1, _08050244
ands r0, r1
strh r0, [r5, 0x4]
ldr r1, _08050248
ldrb r0, [r5, 0x9]
strb r0, [r1]
ldrb r1, [r4]
ldr r0, _0805023C
add r0, r9
strh r1, [r0]
ldrb r1, [r4, 0x1]
ldr r0, _08050240
add r0, r9
strh r1, [r0]
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08050038
ldrb r4, [r5, 0x9]
movs r6, 0
_08050002:
movs r5, 0
_08050004:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapEntity
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
ands r0, r2
cmp r0, 0x1
bne _0805002C
ldrb r0, [r1, 0x9]
cmp r0, r4
bne _0805002C
movs r0, 0x40
orrs r0, r2
strh r0, [r1]
ldrb r1, [r1, 0x9]
ldr r0, _0805024C
add r0, r9
strb r1, [r0]
_0805002C:
adds r5, 0x1
cmp r5, 0x1F
ble _08050004
adds r6, 0x1
cmp r6, 0x37
ble _08050002
_08050038:
movs r2, 0
mov r8, r2
movs r6, 0
_0805003E:
movs r5, 0
adds r7, r6, 0x1
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_0805004A:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
ands r0, r2
cmp r0, 0x1
bne _08050092
ldrb r0, [r1, 0x9]
cmp r0, 0xFF
beq _08050092
movs r0, 0x20
ands r0, r2
cmp r0, 0
bne _08050092
movs r0, 0x40
ands r0, r2
cmp r0, 0
bne _08050092
movs r0, 0x8
ands r0, r2
cmp r0, 0
bne _08050092
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _08050092
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r2, 0x1
add r8, r2
_08050092:
adds r5, 0x1
cmp r5, 0x1F
ble _0805004A
adds r6, r7, 0
cmp r6, 0x37
ble _0805003E
mov r0, r8
cmp r0, 0
beq _080500FA
mov r1, r10
ldrb r4, [r1, 0xF]
cmp r4, 0
beq _080500FA
subs r0, r4, 0x2
adds r1, r4, 0x2
bl sub_808411C
adds r4, r0, 0
cmp r4, 0
bgt _080500BC
movs r4, 0x1
_080500BC:
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _080500FA
adds r6, r4, 0
lsls r0, r5, 2
mov r2, sp
adds r4, r0, r2
_080500D8:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x2
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x4
adds r5, 0x1
cmp r5, r8
bne _080500F4
mov r4, sp
movs r5, 0
_080500F4:
subs r6, 0x1
cmp r6, 0
bne _080500D8
_080500FA:
movs r0, 0
mov r8, r0
movs r6, 0
_08050100:
movs r5, 0
adds r7, r6, 0x1
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_0805010C:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _08050128
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r0, 0x1
add r8, r0
_08050128:
adds r5, 0x1
cmp r5, 0x1F
ble _0805010C
adds r6, r7, 0
cmp r6, 0x37
ble _08050100
mov r1, r8
cmp r1, 0
beq _0805018E
mov r2, r10
ldrb r4, [r2, 0x14]
cmp r4, 0
beq _0805018E
subs r0, r4, 0x2
adds r1, r4, 0x2
bl sub_808411C
adds r4, r0, 0
cmp r4, 0
ble _0805018E
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _0805018E
adds r6, r4, 0
lsls r0, r5, 2
mov r1, sp
adds r4, r0, r1
_0805016C:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x2
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x4
adds r5, 0x1
cmp r5, r8
bne _08050188
mov r4, sp
movs r5, 0
_08050188:
subs r6, 0x1
cmp r6, 0
bne _0805016C
_0805018E:
movs r2, 0
mov r8, r2
movs r0, 0xE0
lsls r0, 5
add r0, sp
ldr r0, [r0]
cmp r0, 0
bne _080501E4
movs r6, 0
_080501A0:
movs r5, 0
adds r7, r6, 0x1
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_080501AC:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _080501D8
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080501D8
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _080501D8
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r0, 0x1
add r8, r0
_080501D8:
adds r5, 0x1
cmp r5, 0x1F
ble _080501AC
adds r6, r7, 0
cmp r6, 0x37
ble _080501A0
_080501E4:
mov r1, r8
cmp r1, 0
beq _08050294
lsrs r4, r1, 31
add r4, r8
asrs r4, 1
lsls r0, r1, 3
movs r1, 0xA
bl __divsi3
adds r1, r0, 0
adds r0, r4, 0
bl sub_808411C
adds r4, r0, 0
cmp r4, 0x5
bgt _08050208
movs r4, 0x6
_08050208:
ldr r0, _08050250
movs r2, 0
ldrsh r0, [r0, r2]
cmp r4, r0
blt _08050214
adds r4, r0, 0
_08050214:
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _08050294
adds r6, r4, 0
lsls r0, r5, 2
mov r1, sp
adds r7, r0, r1
_08050230:
ldrb r0, [r7]
b _08050254
.align 2, 0
_08050234: .4byte 0xffffe3fc
_08050238: .4byte gDungeonGlobalData
_0805023C: .4byte 0x0000e21c
_08050240: .4byte 0x0000e21e
_08050244: .4byte 0x0000fffd
_08050248: .4byte gUnknown_202F1B4
_0805024C: .4byte 0x00003a0c
_08050250: .4byte gUnknown_80F4DA0
_08050254:
ldrb r1, [r7, 0x1]
bl GetMapEntity
adds r4, r0, 0
movs r0, 0x2
bl DungeonRandomCapped
cmp r0, 0
beq _0805026C
ldrh r0, [r4, 0x4]
movs r1, 0x2
b _0805027E
_0805026C:
ldr r0, _08050424
ldr r0, [r0]
ldr r2, _08050428
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
beq _08050282
ldrh r0, [r4, 0x4]
movs r1, 0x4
_0805027E:
orrs r0, r1
strh r0, [r4, 0x4]
_08050282:
adds r7, 0x4
adds r5, 0x1
cmp r5, r8
bne _0805028E
mov r7, sp
movs r5, 0
_0805028E:
subs r6, 0x1
cmp r6, 0
bne _08050230
_08050294:
movs r0, 0
mov r8, r0
movs r6, 0
_0805029A:
movs r5, 0
adds r7, r6, 0x1
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_080502A6:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
ands r0, r2
cmp r0, 0x1
bne _080502F0
ldrb r0, [r1, 0x9]
cmp r0, 0xFF
beq _080502F0
movs r0, 0x20
ands r0, r2
cmp r0, 0
bne _080502F0
ldrh r1, [r1, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080502F0
movs r0, 0x8
ands r0, r2
cmp r0, 0
bne _080502F0
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _080502F0
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r2, 0x1
add r8, r2
_080502F0:
adds r5, 0x1
cmp r5, 0x1F
ble _080502A6
adds r6, r7, 0
cmp r6, 0x37
ble _0805029A
mov r0, r8
cmp r0, 0
beq _08050356
mov r2, r10
ldrb r1, [r2, 0x10]
lsrs r0, r1, 1
bl sub_808411C
adds r4, r0, 0
cmp r4, 0
ble _08050356
cmp r4, 0x37
ble _08050318
movs r4, 0x38
_08050318:
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r4, 0
ble _08050356
adds r6, r4, 0
lsls r0, r5, 2
mov r1, sp
adds r4, r0, r1
_08050334:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x4
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x4
adds r5, 0x1
cmp r5, r8
bne _08050350
mov r4, sp
movs r5, 0
_08050350:
subs r6, 0x1
cmp r6, 0
bne _08050334
_08050356:
ldr r0, _0805042C
add r0, r9
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0x1
negs r1, r1
cmp r0, r1
beq _08050372
ldr r0, _08050430
add r0, r9
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, r1
bne _08050410
_08050372:
movs r0, 0
mov r8, r0
movs r6, 0
_08050378:
movs r5, 0
adds r7, r6, 0x1
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_08050384:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _080503E2
ldrb r0, [r2, 0x9]
cmp r0, 0xFF
beq _080503E2
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _080503E2
movs r3, 0x8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _080503E2
movs r0, 0x80
lsls r0, 1
mov r10, r0
mov r0, r10
ands r0, r1
cmp r0, 0
bne _080503E2
ldrh r1, [r2, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080503E2
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _080503E2
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _080503E2
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r1, 0x1
add r8, r1
_080503E2:
adds r5, 0x1
cmp r5, 0x1F
ble _08050384
adds r6, r7, 0
cmp r6, 0x37
ble _08050378
mov r2, r8
cmp r2, 0
beq _08050410
mov r0, r8
bl DungeonRandomCapped
lsls r0, 2
mov r1, sp
adds r2, r1, r0
ldrb r1, [r2]
ldr r0, _0805042C
add r0, r9
strh r1, [r0]
ldrb r1, [r2, 0x1]
ldr r0, _08050430
add r0, r9
strh r1, [r0]
_08050410:
ldr r3, _08050434
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
_08050424: .4byte gDungeonGlobalData
_08050428: .4byte 0x0000065c
_0805042C: .4byte 0x0000e218
_08050430: .4byte 0x0000e21a
_08050434: .4byte 0x00001c04
thumb_func_end sub_804FF08
thumb_func_start sub_8050438
sub_8050438:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _08050470
add sp, r4
lsls r1, 24
lsrs r1, 24
movs r2, 0xE0
lsls r2, 5
add r2, sp
str r1, [r2]
ldr r1, _08050474
ldr r1, [r1]
mov r10, r1
ldrb r1, [r0, 0x6]
cmp r1, 0
ble _08050478
lsrs r0, r1, 1
bl sub_808411C
adds r7, r0, 0
cmp r7, 0
bgt _0805047A
movs r7, 0x1
b _0805047A
.align 2, 0
_08050470: .4byte 0xffffe3f8
_08050474: .4byte gDungeonGlobalData
_08050478:
adds r7, r1, 0
_0805047A:
movs r0, 0
mov r8, r0
movs r6, 0
_08050480:
movs r5, 0
adds r1, r6, 0x1
mov r9, r1
mov r2, r8
lsls r0, r2, 2
mov r1, sp
adds r4, r0, r1
_0805048E:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r3, [r1]
movs r2, 0x3
ands r2, r3
cmp r2, 0x1
bne _080504F6
ldrb r0, [r1, 0x9]
cmp r0, 0xFF
beq _080504F6
movs r0, 0x20
ands r0, r3
cmp r0, 0
bne _080504F6
ldrh r1, [r1, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080504F6
ands r2, r1
cmp r2, 0
bne _080504F6
movs r0, 0x8
ands r0, r3
cmp r0, 0
bne _080504F6
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
ands r0, r3
cmp r0, 0
bne _080504F6
ldr r0, _080506A0
add r0, r10
movs r1, 0
ldrsh r0, [r0, r1]
cmp r6, r0
bne _080504EC
ldr r0, _080506A4
add r0, r10
movs r2, 0
ldrsh r0, [r0, r2]
cmp r5, r0
beq _080504F6
_080504EC:
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r0, 0x1
add r8, r0
_080504F6:
adds r5, 0x1
cmp r5, 0x1F
ble _0805048E
mov r6, r9
cmp r6, 0x37
ble _08050480
mov r1, r8
cmp r1, 0
beq _0805055E
ldr r0, _080506A8
ldr r0, [r0]
movs r2, 0xD1
lsls r2, 3
adds r0, r2
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0805051C
adds r7, 0x1
_0805051C:
cmp r7, 0
beq _0805055E
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r7, 0
ble _0805055E
adds r6, r7, 0
lsls r0, r5, 2
mov r2, sp
adds r4, r0, r2
_0805053C:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x8
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x4
adds r5, 0x1
cmp r5, r8
bne _08050558
mov r4, sp
movs r5, 0
_08050558:
subs r6, 0x1
cmp r6, 0
bne _0805053C
_0805055E:
ldr r0, _080506AC
add r0, r10
ldrb r0, [r0]
cmp r0, 0
bne _0805056A
b _0805068C
_0805056A:
ldr r0, _080506B0
movs r2, 0
ldrsh r1, [r0, r2]
ldr r2, _080506B4
add r2, sp
str r1, [r2]
movs r0, 0
mov r8, r0
movs r1, 0xE0
lsls r1, 5
add r1, sp
ldr r1, [r1]
cmp r1, 0
beq _0805058A
movs r0, 0x3
str r0, [r2]
_0805058A:
ldr r1, _080506B4
add r1, sp
ldr r1, [r1]
lsls r0, r1, 1
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
ldr r1, _080506B4
add r1, sp
str r0, [r1]
movs r6, 0
_080505A2:
movs r5, 0
adds r2, r6, 0x1
mov r9, r2
mov r1, r8
lsls r0, r1, 2
mov r2, sp
adds r4, r0, r2
_080505B0:
adds r0, r6, 0
adds r1, r5, 0
bl GetMapTileAtPosition
adds r1, r0, 0
ldrh r2, [r1]
movs r0, 0x3
ands r0, r2
cmp r0, 0x1
bne _08050608
ldrb r0, [r1, 0x9]
cmp r0, 0xFF
beq _08050608
movs r0, 0x20
ands r0, r2
cmp r0, 0
bne _08050608
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _08050608
movs r0, 0x40
ands r0, r2
cmp r0, 0
beq _08050608
ldr r0, _080506A0
add r0, r10
movs r2, 0
ldrsh r0, [r0, r2]
cmp r6, r0
bne _080505FE
ldr r0, _080506A4
add r0, r10
movs r1, 0
ldrsh r0, [r0, r1]
cmp r5, r0
beq _08050608
_080505FE:
strb r6, [r4]
strb r5, [r4, 0x1]
adds r4, 0x4
movs r2, 0x1
add r8, r2
_08050608:
adds r5, 0x1
cmp r5, 0x1F
ble _080505B0
mov r6, r9
cmp r6, 0x37
ble _080505A2
mov r0, r8
cmp r0, 0
beq _0805068C
lsls r4, r0, 3
subs r0, r4, r0
movs r1, 0xA
bl __divsi3
adds r5, r0, 0
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
adds r1, r0, 0
adds r0, r5, 0
bl sub_808411C
adds r7, r0, 0
cmp r7, 0
bne _0805063E
movs r7, 0x1
_0805063E:
ldr r1, _080506B4
add r1, sp
ldr r1, [r1]
cmp r7, r1
blt _0805064E
ldr r2, _080506B4
add r2, sp
ldr r7, [r2]
_0805064E:
mov r0, sp
mov r1, r8
bl sub_804FED0
mov r0, r8
bl DungeonRandomCapped
adds r5, r0, 0
cmp r7, 0
ble _0805068C
adds r6, r7, 0
lsls r0, r5, 2
mov r1, sp
adds r4, r0, r1
_0805066A:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
bl GetMapEntity
ldrh r2, [r0, 0x4]
movs r1, 0x8
orrs r1, r2
strh r1, [r0, 0x4]
adds r4, 0x4
adds r5, 0x1
cmp r5, r8
bne _08050686
mov r4, sp
movs r5, 0
_08050686:
subs r6, 0x1
cmp r6, 0
bne _0805066A
_0805068C:
ldr r3, _080506B8
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
_080506A0: .4byte 0x0000e218
_080506A4: .4byte 0x0000e21a
_080506A8: .4byte gDungeonGlobalData
_080506AC: .4byte 0x00003a08
_080506B0: .4byte gUnknown_80F4DA4
_080506B4: .4byte 0x00001c04
_080506B8: .4byte 0x00001c08
thumb_func_end sub_8050438
thumb_func_start sub_80506BC
sub_80506BC:
push {lr}
adds r3, r0, 0
movs r2, 0x1
ldrh r1, [r3]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _080506CE
movs r2, 0
_080506CE:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080506D8
movs r2, 0
_080506D8:
cmp r2, 0
beq _080506E6
ldr r0, _080506EC
ands r0, r1
movs r1, 0x2
orrs r0, r1
strh r0, [r3]
_080506E6:
pop {r0}
bx r0
.align 2, 0
_080506EC: .4byte 0x0000fffc
thumb_func_end sub_80506BC
thumb_func_start sub_80506F0
sub_80506F0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xA4
str r1, [sp, 0x64]
ldrb r1, [r1, 0xD]
ands r1, r0
cmp r1, 0
bne _08050708
b _08050C20
_08050708:
ldr r4, _08050738
movs r0, 0x8
bl DungeonRandomCapped
lsls r0, 2
adds r0, r4
ldr r4, [r0]
cmp r4, 0
bne _0805071C
b _08050A7C
_0805071C:
movs r0, 0x64
bl DungeonRandomCapped
cmp r0, 0x31
bgt _0805073C
movs r0, 0x1
str r0, [sp, 0x74]
movs r1, 0x1F
mov r10, r1
movs r2, 0x1
negs r2, r2
str r2, [sp, 0x70]
b _08050746
.align 2, 0
_08050738: .4byte gUnknown_80F6DF8
_0805073C:
movs r0, 0
str r0, [sp, 0x74]
mov r10, r0
movs r1, 0x1
str r1, [sp, 0x70]
_08050746:
movs r0, 0x32
bl DungeonRandomCapped
adds r0, 0xA
str r0, [sp, 0x78]
movs r0, 0x2
movs r1, 0x36
bl sub_808411C
mov r9, r0
movs r2, 0
str r2, [sp, 0x6C]
subs r4, 0x1
str r4, [sp, 0x98]
_08050762:
movs r0, 0x6
bl DungeonRandomCapped
adds r0, 0x2
str r0, [sp, 0x68]
cmp r0, 0
bne _08050772
b _08050A38
_08050772:
mov r0, r9
cmp r0, 0x37
bhi _080507B8
mov r1, r10
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _0805078A
b _08050A74
_0805078A:
mov r1, r9
cmp r1, 0
blt _080507A2
mov r2, r10
cmp r2, 0
blt _080507A2
mov r0, r9
cmp r0, 0x37
bgt _080507A2
mov r1, r10
cmp r1, 0x1F
ble _080507A6
_080507A2:
movs r0, 0x1
b _080507A8
_080507A6:
movs r0, 0
_080507A8:
cmp r0, 0
bne _080507B8
mov r0, r9
mov r1, r10
bl GetMapEntity
bl sub_80506BC
_080507B8:
ldr r2, [sp, 0x68]
subs r2, 0x1
str r2, [sp, 0x68]
ldr r0, [sp, 0x6C]
add r9, r0
ldr r1, [sp, 0x70]
add r10, r1
mov r2, r10
cmp r2, 0x1F
bls _080507CE
b _08050A38
_080507CE:
ldr r0, [sp, 0x78]
subs r0, 0x1
str r0, [sp, 0x78]
cmp r0, 0
beq _080507DA
b _08050A30
_080507DA:
movs r1, 0x3F
str r1, [sp, 0x7C]
_080507DE:
movs r0, 0x7
bl DungeonRandomCapped
subs r0, 0x3
str r0, [sp, 0x84]
movs r0, 0x7
bl DungeonRandomCapped
subs r1, r0, 0x3
ldr r6, [sp, 0x84]
add r6, r9
subs r0, r6, 0x2
cmp r0, 0x33
bhi _080508DA
mov r2, r10
adds r5, r1, r2
cmp r5, 0x1
ble _080508DA
cmp r5, 0x1D
bgt _080508DA
adds r4, r6, 0x1
adds r0, r5, 0x1
mov r8, r0
adds r0, r4, 0
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x9C]
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
subs r7, r5, 0x1
adds r0, r4, 0
adds r1, r7, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
adds r0, r6, 0
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
adds r0, r6, 0
adds r1, r7, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
subs r4, r6, 0x1
adds r0, r4, 0
mov r1, r8
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
adds r0, r4, 0
adds r1, r5, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
beq _080508B2
adds r0, r4, 0
adds r1, r7, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
ldr r2, [sp, 0x9C]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x2
bne _080508DA
_080508B2:
ldr r0, [sp, 0x84]
add r0, r9
cmp r0, 0
blt _080508C6
cmp r5, 0
blt _080508C6
cmp r0, 0x37
bgt _080508C6
cmp r5, 0x1F
ble _080508CA
_080508C6:
movs r1, 0x1
b _080508CC
_080508CA:
movs r1, 0
_080508CC:
cmp r1, 0
bne _080508DA
adds r1, r5, 0
bl GetMapEntity
bl sub_80506BC
_080508DA:
ldr r1, [sp, 0x7C]
subs r1, 0x1
str r1, [sp, 0x7C]
cmp r1, 0
blt _080508E6
b _080507DE
_080508E6:
movs r0, 0x3
negs r0, r0
_080508EA:
movs r2, 0x3
negs r2, r2
str r2, [sp, 0x80]
mov r1, r9
adds r1, r0, r1
str r1, [sp, 0x90]
adds r0, 0x1
str r0, [sp, 0x8C]
adds r7, r1, 0
mov r5, r10
subs r5, 0x3
_08050900:
movs r6, 0
subs r0, r7, 0x2
cmp r0, 0x33
bls _0805090A
b _08050A1A
_0805090A:
str r5, [sp, 0x88]
str r5, [sp, 0x94]
cmp r5, 0x1
bgt _08050914
b _08050A1A
_08050914:
cmp r5, 0x1D
ble _0805091A
b _08050A1A
_0805091A:
adds r4, r7, 0x1
adds r3, r5, 0x1
adds r0, r4, 0
adds r1, r3, 0
str r3, [sp, 0xA0]
bl GetMapTileAtPosition
ldrh r1, [r0]
movs r2, 0x3
mov r8, r2
mov r0, r8
ands r0, r1
ldr r3, [sp, 0xA0]
cmp r0, 0x2
bne _0805093A
movs r6, 0x1
_0805093A:
adds r0, r4, 0
adds r1, r5, 0
str r3, [sp, 0xA0]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r3, [sp, 0xA0]
cmp r0, 0x2
bne _08050952
adds r6, 0x1
_08050952:
subs r2, r5, 0x1
adds r0, r4, 0
adds r1, r2, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x9C]
ldr r3, [sp, 0xA0]
cmp r0, 0x2
bne _08050970
adds r6, 0x1
_08050970:
adds r0, r7, 0
adds r1, r3, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x9C]
ldr r3, [sp, 0xA0]
cmp r0, 0x2
bne _0805098C
adds r6, 0x1
_0805098C:
adds r0, r7, 0
adds r1, r2, 0
str r2, [sp, 0x9C]
str r3, [sp, 0xA0]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x9C]
ldr r3, [sp, 0xA0]
cmp r0, 0x2
bne _080509A8
adds r6, 0x1
_080509A8:
subs r4, r7, 0x1
adds r0, r4, 0
adds r1, r3, 0
str r2, [sp, 0x9C]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x9C]
cmp r0, 0x2
bne _080509C2
adds r6, 0x1
_080509C2:
adds r0, r4, 0
adds r1, r5, 0
str r2, [sp, 0x9C]
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
ldr r2, [sp, 0x9C]
cmp r0, 0x2
bne _080509DA
adds r6, 0x1
_080509DA:
adds r0, r4, 0
adds r1, r2, 0
bl GetMapTileAtPosition
ldrh r1, [r0]
mov r0, r8
ands r0, r1
cmp r0, 0x2
bne _080509EE
adds r6, 0x1
_080509EE:
cmp r6, 0x3
ble _08050A1A
cmp r7, 0
blt _08050A04
cmp r5, 0
blt _08050A04
cmp r7, 0x37
bgt _08050A04
ldr r0, [sp, 0x88]
cmp r0, 0x1F
ble _08050A08
_08050A04:
movs r0, 0x1
b _08050A0A
_08050A08:
movs r0, 0
_08050A0A:
cmp r0, 0
bne _08050A1A
ldr r0, [sp, 0x90]
ldr r1, [sp, 0x94]
bl GetMapEntity
bl sub_80506BC
_08050A1A:
adds r5, 0x1
ldr r1, [sp, 0x80]
adds r1, 0x1
str r1, [sp, 0x80]
cmp r1, 0x3
bgt _08050A28
b _08050900
_08050A28:
ldr r0, [sp, 0x8C]
cmp r0, 0x3
bgt _08050A30
b _080508EA
_08050A30:
ldr r2, [sp, 0x68]
cmp r2, 0
beq _08050A38
b _08050772
_08050A38:
ldr r0, [sp, 0x6C]
cmp r0, 0
beq _08050A54
movs r1, 0x1
str r1, [sp, 0x70]
ldr r2, [sp, 0x74]
cmp r2, 0
beq _08050A4E
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x70]
_08050A4E:
movs r1, 0
str r1, [sp, 0x6C]
b _08050A6C
_08050A54:
movs r0, 0x64
bl DungeonRandomCapped
movs r2, 0x1
str r2, [sp, 0x6C]
cmp r0, 0x31
bgt _08050A68
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x6C]
_08050A68:
movs r1, 0
str r1, [sp, 0x70]
_08050A6C:
mov r2, r10
cmp r2, 0x1F
bhi _08050A74
b _08050762
_08050A74:
ldr r4, [sp, 0x98]
cmp r4, 0
beq _08050A7C
b _0805071C
_08050A7C:
movs r0, 0
ldr r1, [sp, 0x64]
ldrb r1, [r1, 0x15]
cmp r0, r1
blt _08050A88
b _08050BAE
_08050A88:
movs r2, 0
mov r8, r2
mov r9, r2
movs r5, 0
adds r0, 0x1
mov r10, r0
b _08050A98
_08050A96:
adds r5, 0x1
_08050A98:
cmp r5, 0xC7
bgt _08050AC2
movs r0, 0
movs r1, 0x38
bl sub_808411C
mov r9, r0
movs r0, 0
movs r1, 0x20
bl sub_808411C
mov r8, r0
mov r0, r9
subs r0, 0x1
cmp r0, 0x35
bhi _08050A96
mov r0, r8
cmp r0, 0
ble _08050A96
cmp r0, 0x1E
bgt _08050A96
_08050AC2:
cmp r5, 0xC8
beq _08050BA2
movs r7, 0
movs r3, 0x1
movs r1, 0
_08050ACC:
movs r2, 0
lsls r0, r7, 2
adds r4, r7, 0x1
adds r0, r7
lsls r0, 1
add r0, sp
_08050AD8:
cmp r7, 0
beq _08050AE8
cmp r7, 0x9
beq _08050AE8
cmp r2, 0
beq _08050AE8
cmp r2, 0x9
bne _08050AEC
_08050AE8:
strb r3, [r0]
b _08050AEE
_08050AEC:
strb r1, [r0]
_08050AEE:
adds r0, 0x1
adds r2, 0x1
cmp r2, 0x9
ble _08050AD8
adds r7, r4, 0
cmp r7, 0x9
ble _08050ACC
movs r5, 0x4F
_08050AFE:
movs r0, 0x8
bl DungeonRandomCapped
adds r4, r0, 0
adds r7, r4, 0x1
movs r0, 0x8
bl DungeonRandomCapped
adds r2, r0, 0x1
lsls r0, r4, 2
adds r0, r4
lsls r0, 1
adds r0, r2, r0
add r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _08050B50
adds r1, r7, 0x1
lsls r0, r1, 2
adds r0, r1
lsls r0, 1
adds r0, r2, r0
add r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _08050B50
lsls r0, r7, 2
adds r0, r7
lsls r1, r0, 1
subs r0, r1, 0x1
adds r0, r2, r0
add r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _08050B50
adds r0, r1, 0x1
adds r0, r2, r0
add r0, sp
ldrb r0, [r0]
cmp r0, 0
beq _08050B60
_08050B50:
lsls r0, r7, 2
adds r0, r7
lsls r0, 1
adds r0, r2, r0
mov r2, sp
adds r1, r2, r0
movs r0, 0x1
strb r0, [r1]
_08050B60:
subs r5, 0x1
cmp r5, 0
bge _08050AFE
movs r7, 0
_08050B68:
lsls r0, r7, 2
adds r4, r7, 0x1
adds r0, r7
lsls r0, 1
mov r6, r8
subs r6, 0x5
mov r1, sp
adds r5, r0, r1
add r7, r9
movs r2, 0x9
_08050B7C:
ldrb r0, [r5]
cmp r0, 0
bne _08050B92
subs r0, r7, 0x5
adds r1, r6, 0
str r2, [sp, 0x9C]
bl GetMapEntity
bl sub_80506BC
ldr r2, [sp, 0x9C]
_08050B92:
adds r6, 0x1
adds r5, 0x1
subs r2, 0x1
cmp r2, 0
bge _08050B7C
adds r7, r4, 0
cmp r7, 0x9
ble _08050B68
_08050BA2:
mov r0, r10
ldr r2, [sp, 0x64]
ldrb r2, [r2, 0x15]
cmp r0, r2
bge _08050BAE
b _08050A88
_08050BAE:
movs r0, 0
mov r9, r0
movs r6, 0x1
ldr r1, _08050BF4
adds r5, r1, 0
_08050BB8:
movs r2, 0
mov r10, r2
mov r4, r9
adds r4, 0x1
_08050BC0:
mov r0, r9
mov r1, r10
bl GetMapEntity
adds r2, r0, 0
ldrh r3, [r2]
movs r0, 0x3
ands r0, r3
cmp r0, 0x2
bne _08050C10
movs r1, 0xB0
lsls r1, 1
adds r0, r1, 0
ands r0, r3
cmp r0, 0
bne _08050BEA
ldrh r1, [r2, 0x4]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08050BF8
_08050BEA:
adds r0, r3, 0
ands r0, r5
orrs r0, r6
b _08050C0E
.align 2, 0
_08050BF4: .4byte 0x0000fffc
_08050BF8:
mov r0, r9
subs r0, 0x2
cmp r0, 0x34
bhi _08050C0A
mov r0, r10
cmp r0, 0x1
ble _08050C0A
cmp r0, 0x1E
ble _08050C10
_08050C0A:
ldrh r0, [r2]
ands r0, r5
_08050C0E:
strh r0, [r2]
_08050C10:
movs r1, 0x1
add r10, r1
mov r2, r10
cmp r2, 0x1F
ble _08050BC0
mov r9, r4
cmp r4, 0x37
ble _08050BB8
_08050C20:
add sp, 0xA4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80506F0
thumb_func_start sub_8050C30
sub_8050C30:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _08050F3C
add sp, r4
mov r8, r0
mov r9, r1
lsls r2, 24
lsrs r2, 24
movs r0, 0xE0
lsls r0, 3
add r0, sp
str r2, [r0]
movs r7, 0
mov r1, r8
lsls r1, 5
movs r2, 0xE2
lsls r2, 3
add r2, sp
str r1, [r2]
_08050C5C:
movs r6, 0
lsls r2, r7, 5
adds r3, r7, 0x1
mov r10, r3
mov r5, sp
adds r4, r2, r5
_08050C68:
adds r0, r7, 0
adds r1, r6, 0
bl GetMapEntity
adds r2, r0, 0
ldrh r0, [r2]
movs r3, 0x3
ands r3, r0
movs r0, 0
strb r0, [r4]
movs r0, 0xE0
lsls r0, 3
add r0, sp
ldr r0, [r0]
cmp r0, 0
beq _08050C92
ldrh r0, [r2]
ldr r5, _08050F40
adds r1, r5, 0
ands r0, r1
strh r0, [r2]
_08050C92:
cmp r3, 0x1
beq _08050CA8
ldrh r1, [r2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _08050CA8
ldrb r0, [r4]
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
_08050CA8:
cmp r3, 0x2
bne _08050CBE
ldrh r1, [r2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _08050CBE
ldrb r0, [r4]
movs r1, 0x2
orrs r0, r1
strb r0, [r4]
_08050CBE:
adds r4, 0x1
adds r6, 0x1
cmp r6, 0x1F
ble _08050C68
mov r7, r10
cmp r7, 0x37
ble _08050C5C
movs r1, 0xE2
lsls r1, 3
add r1, sp
ldr r0, [r1]
add r0, r9
mov r3, sp
adds r2, r3, r0
ldrb r1, [r2]
movs r0, 0x50
orrs r0, r1
strb r0, [r2]
ldr r0, _08050F44
ldr r1, [r0]
ldr r5, _08050F48
adds r0, r1, r5
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, r8
beq _08050CF4
b _08050F36
_08050CF4:
ldr r3, _08050F4C
adds r0, r1, r3
movs r5, 0
ldrsh r0, [r0, r5]
cmp r0, r9
beq _08050D02
b _08050F36
_08050D02:
ldr r1, _08050F50
movs r0, 0
str r0, [r1]
movs r0, 0x40
mov r9, r0
_08050D0C:
movs r1, 0
ldr r2, _08050F54
add r2, sp
str r1, [r2]
ldr r3, _08050F50
ldr r0, [r3]
adds r0, 0x1
str r0, [r3]
movs r7, 0
_08050D1E:
movs r6, 0
lsls r2, r7, 5
adds r5, r7, 0x1
mov r10, r5
subs r0, r7, 0x1
movs r1, 0xE1
lsls r1, 3
add r1, sp
str r0, [r1]
lsls r0, 5
mov r1, sp
subs r1, 0x1
adds r5, r2, r1
add r0, sp
mov r8, r0
mov r2, r10
ldr r3, _08050F58
add r3, sp
str r2, [r3]
lsls r0, r2, 5
add r0, sp
mov r12, r0
_08050D4A:
ldrb r1, [r5, 0x1]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08050D56
b _08050EDA
_08050D56:
movs r3, 0x40
mov r0, r9
ands r0, r1
cmp r0, 0
bne _08050D62
b _08050EDA
_08050D62:
ldr r2, _08050F54
add r2, sp
ldr r0, [r2]
adds r0, 0x1
str r0, [r2]
movs r0, 0xBF
ands r0, r1
movs r2, 0
movs r1, 0x80
orrs r0, r1
strb r0, [r5, 0x1]
cmp r7, 0
ble _08050D90
mov r0, r8
ldrb r1, [r0]
movs r0, 0x83
ands r0, r1
cmp r0, 0
bne _08050D90
adds r0, r1, 0
orrs r0, r3
mov r1, r8
strb r0, [r1]
_08050D90:
cmp r6, 0
ble _08050DA4
ldrb r1, [r5]
movs r0, 0x83
ands r0, r1
cmp r0, 0
bne _08050DA4
mov r0, r9
orrs r0, r1
strb r0, [r5]
_08050DA4:
cmp r7, 0x36
bgt _08050DBA
mov r2, r12
ldrb r1, [r2]
movs r0, 0x83
ands r0, r1
cmp r0, 0
bne _08050DBA
mov r0, r9
orrs r0, r1
strb r0, [r2]
_08050DBA:
cmp r6, 0x1E
bgt _08050DCE
ldrb r1, [r5, 0x2]
movs r0, 0x83
ands r0, r1
cmp r0, 0
bne _08050DCE
mov r0, r9
orrs r0, r1
strb r0, [r5, 0x2]
_08050DCE:
cmp r7, 0
ble _08050E12
cmp r6, 0
ble _08050E12
movs r3, 0xE1
lsls r3, 3
add r3, sp
ldr r3, [r3]
lsls r1, r3, 5
subs r0, r1, 0x1
adds r0, r6, r0
mov r2, sp
adds r4, r2, r0
ldrb r3, [r4]
movs r0, 0x87
ands r0, r3
cmp r0, 0
bne _08050E12
adds r0, r6, r1
add r0, sp
ldrb r1, [r0]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E12
ldrb r1, [r5]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E12
mov r0, r9
orrs r0, r3
strb r0, [r4]
_08050E12:
cmp r7, 0x36
bgt _08050E54
cmp r6, 0
ble _08050E54
ldr r3, _08050F58
add r3, sp
ldr r3, [r3]
lsls r1, r3, 5
subs r0, r1, 0x1
adds r0, r6, r0
mov r2, sp
adds r4, r2, r0
ldrb r3, [r4]
movs r0, 0x87
ands r0, r3
cmp r0, 0
bne _08050E54
adds r0, r6, r1
add r0, sp
ldrb r1, [r0]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E54
ldrb r1, [r5]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E54
mov r0, r9
orrs r0, r3
strb r0, [r4]
_08050E54:
cmp r7, 0
ble _08050E98
cmp r6, 0x1E
bgt _08050E98
movs r3, 0xE1
lsls r3, 3
add r3, sp
ldr r3, [r3]
lsls r1, r3, 5
adds r0, r1, 0x1
adds r0, r6, r0
mov r2, sp
adds r4, r2, r0
ldrb r3, [r4]
movs r0, 0x87
ands r0, r3
cmp r0, 0
bne _08050E98
adds r0, r6, r1
add r0, sp
ldrb r1, [r0]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E98
ldrb r1, [r5, 0x2]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050E98
mov r0, r9
orrs r0, r3
strb r0, [r4]
_08050E98:
cmp r7, 0x36
bgt _08050EDA
cmp r6, 0x1E
bgt _08050EDA
ldr r3, _08050F58
add r3, sp
ldr r3, [r3]
lsls r1, r3, 5
adds r0, r1, 0x1
adds r0, r6, r0
mov r2, sp
adds r4, r2, r0
ldrb r3, [r4]
movs r0, 0x87
ands r0, r3
cmp r0, 0
bne _08050EDA
adds r0, r6, r1
add r0, sp
ldrb r1, [r0]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050EDA
ldrb r1, [r5, 0x2]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08050EDA
mov r0, r9
orrs r0, r3
strb r0, [r4]
_08050EDA:
adds r5, 0x1
movs r3, 0x1
add r8, r3
add r12, r3
adds r6, 0x1
cmp r6, 0x1F
bgt _08050EEA
b _08050D4A
_08050EEA:
mov r7, r10
cmp r7, 0x37
bgt _08050EF2
b _08050D1E
_08050EF2:
ldr r5, _08050F54
add r5, sp
ldr r5, [r5]
cmp r5, 0
beq _08050EFE
b _08050D0C
_08050EFE:
movs r7, 0
_08050F00:
movs r6, 0
lsls r2, r7, 5
mov r0, sp
adds r4, r2, r0
_08050F08:
adds r0, r7, 0
adds r1, r6, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r1, [r4]
movs r0, 0x87
ands r0, r1
cmp r0, 0
bne _08050F68
movs r1, 0xE0
lsls r1, 3
add r1, sp
ldr r1, [r1]
cmp r1, 0
bne _08050F5C
ldrh r0, [r2]
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
ands r0, r1
cmp r0, 0
bne _08050F68
_08050F36:
movs r0, 0
b _08050F78
.align 2, 0
_08050F3C: .4byte 0xfffff8ec
_08050F40: .4byte 0x00007fff
_08050F44: .4byte gDungeonGlobalData
_08050F48: .4byte 0x0000e21c
_08050F4C: .4byte 0x0000e21e
_08050F50: .4byte gUnknown_202F1D4
_08050F54: .4byte 0x00000704
_08050F58: .4byte 0x0000070c
_08050F5C:
ldrh r1, [r2]
movs r3, 0x80
lsls r3, 8
adds r0, r3, 0
orrs r0, r1
strh r0, [r2]
_08050F68:
adds r4, 0x1
adds r6, 0x1
cmp r6, 0x1F
ble _08050F08
adds r7, 0x1
cmp r7, 0x37
ble _08050F00
movs r0, 0x1
_08050F78:
ldr r3, _08050F8C
add sp, r3
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08050F8C: .4byte 0x00000714
thumb_func_end sub_8050C30
thumb_func_start sub_8050F90
sub_8050F90:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x3C
str r0, [sp]
str r1, [sp, 0x4]
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r0, 0
str r0, [sp, 0x10]
movs r1, 0
str r1, [sp, 0x14]
movs r2, 0
b _080511D0
_08050FB0:
movs r4, 0
str r4, [sp, 0x18]
ldr r5, [sp, 0x1C]
adds r5, 0x1
str r5, [sp, 0x28]
ldr r6, [sp, 0x4]
cmp r4, r6
blt _08050FC2
b _080511CE
_08050FC2:
ldr r1, [sp, 0x18]
lsls r0, r1, 2
ldr r2, [sp, 0xC]
adds r0, r2
ldr r3, [r0]
adds r4, r3, 0x2
mov r9, r4
ldr r5, [sp, 0x1C]
lsls r1, r5, 2
ldr r6, [sp, 0x5C]
adds r1, r6
ldr r2, [r1]
adds r4, r2, 0x2
mov r10, r4
ldr r0, [r0, 0x4]
subs r0, r3
subs r4, r0, 0x4
ldr r0, [r1, 0x4]
subs r0, r2
subs r7, r0, 0x4
movs r3, 0x5
movs r5, 0x5
ldr r6, [sp, 0x4]
cmp r6, 0x2
bgt _08050FF8
movs r3, 0xA
movs r4, 0xE
_08050FF8:
ldr r0, [sp, 0x8]
cmp r0, 0x1
bne _08051002
movs r5, 0x10
movs r7, 0x18
_08051002:
ldr r2, [sp, 0x1C]
lsls r1, r2, 5
ldr r6, [sp, 0x18]
lsls r2, r6, 4
subs r0, r2, r6
lsls r0, 5
ldr r6, [sp]
adds r0, r6
adds r6, r1, r0
ldrb r0, [r6, 0xA]
str r1, [sp, 0x30]
str r2, [sp, 0x2C]
cmp r0, 0
bne _08051020
b _08051130
_08051020:
ldr r0, [sp, 0x14]
ldr r1, [sp, 0x60]
cmp r0, r1
beq _0805108C
adds r0, r3, 0
adds r1, r4, 0
bl sub_808411C
adds r6, r0, 0
adds r0, r5, 0
adds r1, r7, 0
bl sub_808411C
adds r5, r0, 0
movs r1, 0x1
adds r0, r6, 0
orrs r0, r1
cmp r0, r4
bge _08051048
adds r6, r0, 0
_08051048:
adds r0, r5, 0
orrs r0, r1
cmp r0, r7
bge _08051052
adds r5, r0, 0
_08051052:
lsls r0, r5, 1
adds r0, r5
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
cmp r6, r0
ble _08051062
adds r6, r0, 0
_08051062:
lsls r0, r6, 1
adds r0, r6
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
cmp r5, r0
ble _08051072
adds r5, r0, 0
_08051072:
subs r0, r4, r6
bl DungeonRandomCapped
mov r2, r9
adds r4, r0, r2
subs r0, r7, r5
bl DungeonRandomCapped
mov r3, r10
adds r7, r0, r3
adds r3, r4, r6
adds r6, r7, r5
b _08051098
_0805108C:
mov r4, r9
mov r7, r10
ldr r5, [sp, 0x64]
adds r3, r4, r5
ldr r0, [sp, 0x68]
adds r6, r7, r0
_08051098:
ldr r1, [sp, 0x2C]
ldr r2, [sp, 0x18]
subs r0, r1, r2
lsls r0, 5
ldr r5, [sp]
adds r0, r5
ldr r1, [sp, 0x30]
adds r0, r1, r0
strh r4, [r0]
strh r3, [r0, 0x4]
strh r7, [r0, 0x2]
strh r6, [r0, 0x6]
adds r5, r4, 0
ldr r2, [sp, 0x10]
adds r2, 0x1
str r2, [sp, 0x20]
ldr r4, [sp, 0x14]
adds r4, 0x1
str r4, [sp, 0x24]
ldr r0, [sp, 0x18]
adds r0, 0x1
mov r10, r0
cmp r5, r3
bge _08051108
_080510C8:
adds r4, r7, 0
adds r1, r5, 0x1
mov r8, r1
cmp r4, r6
bge _08051102
ldr r2, _0805112C
mov r9, r2
_080510D6:
adds r0, r5, 0
adds r1, r4, 0
str r3, [sp, 0x38]
bl GetMapEntity
ldrh r1, [r0]
mov r2, r9
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
mov r1, sp
ldrb r1, [r1, 0x10]
strb r1, [r0, 0x9]
adds r4, 0x1
ldr r3, [sp, 0x38]
cmp r4, r6
blt _080510D6
_08051102:
mov r5, r8
cmp r5, r3
blt _080510C8
_08051108:
ldr r2, [sp, 0x14]
ldr r3, [sp, 0x60]
cmp r2, r3
beq _08051124
ldr r4, [sp, 0x2C]
ldr r5, [sp, 0x18]
subs r0, r4, r5
lsls r0, 5
ldr r6, [sp]
adds r0, r6
ldr r1, [sp, 0x30]
adds r0, r1, r0
movs r1, 0x1
strb r1, [r0, 0x1D]
_08051124:
ldr r2, [sp, 0x20]
str r2, [sp, 0x10]
b _080511BE
.align 2, 0
_0805112C: .4byte 0x0000fffc
_08051130:
movs r1, 0x2
movs r3, 0x4
movs r2, 0x2
mov r8, r3
ldr r5, [sp, 0x18]
cmp r5, 0
bne _08051140
movs r1, 0x1
_08051140:
ldr r0, [sp, 0x1C]
cmp r0, 0
bne _08051148
movs r2, 0x1
_08051148:
ldr r0, [sp, 0x4]
subs r0, 0x1
ldr r5, [sp, 0x18]
cmp r5, r0
bne _08051154
movs r3, 0x2
_08051154:
ldr r0, [sp, 0x8]
subs r0, 0x1
ldr r5, [sp, 0x1C]
cmp r5, r0
bne _08051162
movs r0, 0x2
mov r8, r0
_08051162:
mov r5, r9
adds r0, r5, r1
adds r1, r5, r4
subs r1, r3
str r2, [sp, 0x34]
bl sub_808411C
adds r5, r0, 0
ldr r2, [sp, 0x34]
mov r1, r10
adds r0, r1, r2
adds r1, r7
mov r2, r8
subs r1, r2
bl sub_808411C
adds r4, r0, 0
strh r5, [r6]
adds r0, r5, 0x1
strh r0, [r6, 0x4]
strh r4, [r6, 0x2]
adds r0, r4, 0x1
strh r0, [r6, 0x6]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
ldrh r1, [r0]
ldr r3, _080511EC
adds r2, r3, 0
ands r1, r2
movs r2, 0x1
orrs r1, r2
strh r1, [r0]
adds r0, r5, 0
adds r1, r4, 0
bl GetMapEntity
movs r1, 0xFF
strb r1, [r0, 0x9]
ldr r4, [sp, 0x14]
adds r4, 0x1
str r4, [sp, 0x24]
ldr r5, [sp, 0x18]
adds r5, 0x1
mov r10, r5
_080511BE:
ldr r6, [sp, 0x24]
str r6, [sp, 0x14]
mov r0, r10
str r0, [sp, 0x18]
ldr r1, [sp, 0x4]
cmp r0, r1
bge _080511CE
b _08050FC2
_080511CE:
ldr r2, [sp, 0x28]
_080511D0:
str r2, [sp, 0x1C]
ldr r3, [sp, 0x8]
cmp r2, r3
bge _080511DA
b _08050FB0
_080511DA:
add sp, 0x3C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080511EC: .4byte 0x0000fffc
thumb_func_end sub_8050F90
thumb_func_start sub_80511F0
sub_80511F0:
push {r4-r6,lr}
ldr r6, _08051204
ldrb r0, [r6]
cmp r0, 0
beq _0805120C
subs r0, 0x1
strb r0, [r6]
ldr r0, _08051208
ldrb r0, [r0]
b _08051244
.align 2, 0
_08051204: .4byte gUnknown_202F1E1
_08051208: .4byte gUnknown_202F1E0
_0805120C:
ldr r1, _0805122C
ldr r5, _08051230
ldr r2, [r5]
ldrb r3, [r2]
strb r3, [r1]
adds r4, r2, 0x1
str r4, [r5]
lsls r0, r3, 24
lsrs r0, 24
cmp r0, 0xE
bne _08051234
ldrb r0, [r2, 0x1]
strb r0, [r1]
adds r0, r4, 0x1
str r0, [r5]
b _08051242
.align 2, 0
_0805122C: .4byte gUnknown_202F1E0
_08051230: .4byte gUnknown_202F1DC
_08051234:
movs r0, 0xF
ands r0, r3
strb r0, [r6]
movs r0, 0xF0
ands r0, r3
lsrs r0, 4
strb r0, [r1]
_08051242:
ldrb r0, [r1]
_08051244:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80511F0
thumb_func_start sub_805124C
sub_805124C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
ldr r5, [sp, 0x1C]
lsls r1, 24
lsrs r1, 24
lsls r5, 24
lsrs r5, 24
ldrh r6, [r0]
movs r7, 0x80
lsls r7, 1
adds r4, r7, 0
movs r7, 0
mov r8, r7
orrs r4, r6
strh r4, [r0]
mov r4, r8
strb r4, [r0, 0xE]
str r5, [sp]
bl sub_8051A74
lsls r0, 24
lsrs r0, 24
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_805124C
thumb_func_start sub_8051288
sub_8051288:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
str r0, [sp, 0x4]
ldr r0, _08051374
ldr r7, [r0]
ldr r0, _08051378
adds r3, r7, r0
ldr r0, [r3]
ldr r0, [r0, 0x4]
ldr r2, [sp, 0x4]
lsls r1, r2, 2
adds r0, r1, r0
ldr r0, [r0]
ldrb r2, [r0]
mov r10, r2
ldrb r0, [r0, 0x1]
mov r9, r0
ldr r2, _0805137C
adds r0, r7, r2
movs r4, 0
mov r2, r10
strh r2, [r0]
ldr r2, _08051380
adds r0, r7, r2
mov r2, r9
strh r2, [r0]
ldr r2, _08051384
ldr r0, [r3]
ldr r0, [r0, 0x4]
adds r1, r0
ldr r0, [r1]
adds r0, 0x3
str r0, [r2]
ldr r0, _08051388
strb r4, [r0]
movs r6, 0x5
mov r0, r9
adds r0, 0x5
cmp r6, r0
bge _0805132E
movs r1, 0x5
add r1, r10
mov r8, r1
str r0, [sp, 0x8]
_080512E8:
movs r5, 0x5
cmp r5, r8
bge _08051326
_080512EE:
bl sub_80511F0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
movs r1, 0x1
str r1, [sp]
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl sub_805124C
lsls r0, 24
cmp r0, 0
beq _08051320
ldr r2, _0805138C
adds r0, r7, r2
strh r5, [r0]
ldr r1, _08051390
adds r0, r7, r1
strh r6, [r0]
_08051320:
adds r5, 0x1
cmp r5, r8
blt _080512EE
_08051326:
adds r6, 0x1
ldr r2, [sp, 0x8]
cmp r6, r2
blt _080512E8
_0805132E:
movs r6, 0
ldr r0, _08051394
adds r7, r0, 0
_08051334:
movs r5, 0
adds r4, r6, 0x1
_08051338:
cmp r5, 0x4
ble _08051350
mov r0, r10
adds r0, 0x5
cmp r5, r0
bge _08051350
cmp r6, 0x4
ble _08051350
mov r0, r9
adds r0, 0x5
cmp r6, r0
blt _080513A0
_08051350:
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x10
movs r3, 0
orrs r1, r0
strh r1, [r2]
ldr r0, _08051398
ldrb r0, [r0]
cmp r0, 0
beq _0805139C
ands r1, r7
movs r0, 0x3
orrs r1, r0
b _0805139E
.align 2, 0
_08051374: .4byte gDungeonGlobalData
_08051378: .4byte 0x00013568
_0805137C: .4byte 0x0000e260
_08051380: .4byte 0x0000e262
_08051384: .4byte gUnknown_202F1DC
_08051388: .4byte gUnknown_202F1E1
_0805138C: .4byte 0x0000e21c
_08051390: .4byte 0x0000e21e
_08051394: .4byte 0x0000fffc
_08051398: .4byte gUnknown_202F1A8
_0805139C:
ands r1, r7
_0805139E:
strh r1, [r2]
_080513A0:
adds r5, 0x1
cmp r5, 0x37
ble _08051338
adds r6, r4, 0
cmp r6, 0x1F
ble _08051334
ldr r1, [sp, 0x4]
cmp r1, 0x4
bne _080513DA
movs r6, 0x5
ldr r2, _0805142C
adds r7, r2, 0
_080513B8:
movs r5, 0x2
adds r4, r6, 0x1
_080513BC:
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
ldrh r2, [r0]
movs r1, 0x10
orrs r1, r2
ands r1, r7
strh r1, [r0]
adds r5, 0x1
cmp r5, 0x4
ble _080513BC
adds r6, r4, 0
cmp r6, 0x10
ble _080513B8
_080513DA:
ldr r0, _08051430
ldr r0, [r0]
ldr r1, _08051434
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x3F
ble _08051416
movs r6, 0
_080513EC:
movs r5, 0
adds r4, r6, 0x1
_080513F0:
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _0805140A
movs r0, 0x10
orrs r0, r1
strh r0, [r2]
_0805140A:
adds r5, 0x1
cmp r5, 0x37
ble _080513F0
adds r6, r4, 0
cmp r6, 0x1F
ble _080513EC
_08051416:
bl sub_804E9DC
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
_0805142C: .4byte 0x0000fffc
_08051430: .4byte gDungeonGlobalData
_08051434: .4byte 0x00003a0e
thumb_func_end sub_8051288
thumb_func_start sub_8051438
sub_8051438:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
mov r9, r0
ldr r0, _080515AC
ldr r0, [r0]
str r0, [sp, 0x4]
ldr r2, _080515B0
ldr r4, _080515B4
adds r3, r0, r4
ldr r0, [r3]
ldr r0, [r0, 0x4]
lsls r1, 2
adds r0, r1, r0
ldr r0, [r0]
adds r0, 0x3
str r0, [r2]
ldr r2, _080515B8
movs r0, 0
strb r0, [r2]
ldr r0, [r3]
ldr r0, [r0, 0x4]
adds r1, r0
ldr r0, [r1]
ldrb r1, [r0, 0x2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0805147A
b _080515D8
_0805147A:
ldr r5, [sp, 0x4]
ldr r0, _080515BC
adds r1, r5, r0
mov r2, r9
movs r3, 0
ldrsh r0, [r2, r3]
str r0, [r1]
ldr r4, _080515C0
adds r1, r5, r4
movs r5, 0x2
ldrsh r0, [r2, r5]
str r0, [r1]
ldr r0, [sp, 0x4]
ldr r2, _080515C4
adds r1, r0, r2
mov r3, r9
movs r4, 0x4
ldrsh r0, [r3, r4]
str r0, [r1]
ldr r5, [sp, 0x4]
ldr r0, _080515C8
adds r1, r5, r0
movs r2, 0x6
ldrsh r0, [r3, r2]
str r0, [r1]
movs r3, 0
str r3, [sp, 0x8]
mov r4, r9
movs r5, 0x2
ldrsh r4, [r4, r5]
mov r8, r4
mov r1, r9
movs r2, 0x6
ldrsh r0, [r1, r2]
cmp r8, r0
blt _080514C4
b _08051640
_080514C4:
mov r3, r9
movs r4, 0
ldrsh r7, [r3, r4]
movs r5, 0x4
ldrsh r0, [r3, r5]
ldr r1, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x10]
mov r2, r8
adds r2, 0x1
str r2, [sp, 0xC]
cmp r7, r0
bge _08051598
ldr r4, _080515CC
ldr r3, [sp, 0x4]
adds r4, r3, r4
str r4, [sp, 0x14]
movs r5, 0
str r5, [sp, 0x18]
ldr r0, [sp, 0x8]
mov r10, r0
_080514EE:
bl sub_80511F0
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r7, 0
mov r1, r8
bl GetMapEntity
adds r6, r0, 0
ldr r1, [sp, 0x4]
ldr r2, _080515D0
adds r0, r1, r2
add r0, r10
strb r5, [r0]
ldr r3, [sp, 0x8]
lsls r4, r3, 1
adds r4, r3
lsls r4, 3
ldr r1, [sp, 0x14]
adds r0, r1, r4
movs r2, 0
str r2, [sp]
adds r1, r5, 0
adds r2, r7, 0
mov r3, r8
bl sub_805124C
ldrb r1, [r6, 0x9]
ldr r3, [sp, 0x18]
adds r4, r3
ldr r5, [sp, 0x4]
adds r4, r5, r4
adds r0, r6, 0
ldr r2, _080515CC
adds r4, r2
ldm r4!, {r2,r3,r5}
stm r0!, {r2,r3,r5}
ldm r4!, {r2,r3,r5}
stm r0!, {r2,r3,r5}
mov r3, r9
movs r4, 0
ldrsh r0, [r3, r4]
adds r0, 0x2
cmp r7, r0
blt _08051572
movs r5, 0x4
ldrsh r0, [r3, r5]
subs r0, 0x2
cmp r7, r0
bge _08051572
movs r2, 0x2
ldrsh r0, [r3, r2]
adds r0, 0x2
cmp r8, r0
blt _08051572
movs r4, 0x6
ldrsh r0, [r3, r4]
subs r0, 0x2
cmp r8, r0
bge _08051572
movs r0, 0x88
lsls r0, 1
strh r0, [r6]
movs r0, 0xE
strb r0, [r6, 0xE]
_08051572:
strb r1, [r6, 0x9]
ldr r5, [sp, 0x4]
ldr r2, _080515D4
adds r0, r5, r2
strb r1, [r0]
ldr r3, [sp, 0x14]
adds r3, 0xC0
str r3, [sp, 0x14]
ldr r4, [sp, 0x18]
adds r4, 0xC0
str r4, [sp, 0x18]
movs r5, 0x8
add r10, r5
adds r7, 0x1
mov r1, r9
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r7, r0
blt _080514EE
_08051598:
ldr r3, [sp, 0x10]
str r3, [sp, 0x8]
ldr r4, [sp, 0xC]
mov r8, r4
mov r5, r9
movs r1, 0x6
ldrsh r0, [r5, r1]
cmp r8, r0
blt _080514C4
b _08051640
.align 2, 0
_080515AC: .4byte gDungeonGlobalData
_080515B0: .4byte gUnknown_202F1DC
_080515B4: .4byte 0x00013568
_080515B8: .4byte gUnknown_202F1E1
_080515BC: .4byte 0x0000e250
_080515C0: .4byte 0x0000e254
_080515C4: .4byte 0x0000e258
_080515C8: .4byte 0x0000e25c
_080515CC: .4byte 0x0000e27c
_080515D0: .4byte 0x0000e87c
_080515D4: .4byte 0x0000e8bc
_080515D8:
mov r2, r9
movs r3, 0x2
ldrsh r2, [r2, r3]
mov r8, r2
b _08051636
_080515E2:
mov r0, r9
movs r1, 0
ldrsh r7, [r0, r1]
movs r2, 0x4
ldrsh r0, [r0, r2]
mov r3, r8
adds r3, 0x1
str r3, [sp, 0xC]
cmp r7, r0
bge _08051632
_080515F6:
bl sub_80511F0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r7, 0
mov r1, r8
bl GetMapEntity
adds r5, r0, 0
ldrb r6, [r5, 0x9]
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
adds r1, r4, 0
adds r2, r7, 0
mov r3, r8
bl sub_805124C
strb r6, [r5, 0x9]
ldr r4, [sp, 0x4]
ldr r5, _08051650
adds r0, r4, r5
strb r6, [r0]
adds r7, 0x1
mov r1, r9
movs r2, 0x4
ldrsh r0, [r1, r2]
cmp r7, r0
blt _080515F6
_08051632:
ldr r3, [sp, 0xC]
mov r8, r3
_08051636:
mov r4, r9
movs r5, 0x6
ldrsh r0, [r4, r5]
cmp r8, r0
blt _080515E2
_08051640:
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
_08051650: .4byte 0x0000e8bc
thumb_func_end sub_8051438
thumb_func_start sub_8051654
sub_8051654:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
str r0, [sp]
ldr r4, _080516EC
ldr r1, [r4, 0x8]
ldr r0, [r4]
subs r1, r0
subs r1, 0x2
movs r0, 0x3
bl sub_808411C
mov r8, r0
cmp r0, 0x2
bgt _0805167C
movs r0, 0x3
mov r8, r0
_0805167C:
ldr r1, [r4, 0xC]
ldr r0, [r4, 0x4]
subs r1, r0
subs r1, 0x2
movs r0, 0x3
bl sub_808411C
mov r9, r0
cmp r0, 0x2
bgt _08051694
movs r1, 0x3
mov r9, r1
_08051694:
movs r0, 0x2
movs r1, 0x4
bl sub_808411C
mov r10, r0
movs r5, 0
cmp r5, r10
bge _08051734
ldr r0, [r4, 0x8]
ldr r1, [r4]
subs r0, r1
cmp r0, r8
ble _08051734
adds r6, r4, 0
_080516B0:
movs r0, 0x64
bl DungeonRandomCapped
cmp r0, 0x31
bgt _080516F4
ldr r4, [r6, 0x4]
ldr r0, [r6, 0xC]
adds r7, r5, 0x1
cmp r4, r0
bge _080516E4
ldr r5, _080516EC
ldr r0, _080516F0
adds r2, r0, 0
_080516CA:
ldr r0, [r5]
adds r1, r4, 0
str r2, [sp, 0xC]
bl GetMapEntity
ldrh r1, [r0]
ldr r2, [sp, 0xC]
ands r1, r2
strh r1, [r0]
adds r4, 0x1
ldr r0, [r5, 0xC]
cmp r4, r0
blt _080516CA
_080516E4:
ldr r0, [r6]
adds r0, 0x1
str r0, [r6]
b _08051724
.align 2, 0
_080516EC: .4byte gUnknown_202F1B8
_080516F0: .4byte 0x0000ffdf
_080516F4:
ldr r0, [r6, 0x8]
subs r0, 0x1
str r0, [r6, 0x8]
ldr r4, [r6, 0x4]
ldr r0, [r6, 0xC]
adds r7, r5, 0x1
cmp r4, r0
bge _08051724
ldr r5, _08051784
ldr r1, _08051788
adds r2, r1, 0
_0805170A:
ldr r0, [r5, 0x8]
adds r1, r4, 0
str r2, [sp, 0xC]
bl GetMapEntity
ldrh r1, [r0]
ldr r2, [sp, 0xC]
ands r1, r2
strh r1, [r0]
adds r4, 0x1
ldr r0, [r5, 0xC]
cmp r4, r0
blt _0805170A
_08051724:
adds r5, r7, 0
cmp r5, r10
bge _08051734
ldr r0, [r6, 0x8]
ldr r1, [r6]
subs r0, r1
cmp r0, r8
bgt _080516B0
_08051734:
movs r5, 0
ldr r3, _08051784
cmp r5, r10
bge _080517CE
ldr r0, [r3, 0xC]
ldr r1, [r3, 0x4]
subs r0, r1
cmp r0, r9
ble _080517CE
adds r6, r3, 0
_08051748:
movs r0, 0x64
bl DungeonRandomCapped
cmp r0, 0x31
bgt _0805178C
ldr r4, [r6]
ldr r0, [r6, 0x8]
adds r7, r5, 0x1
cmp r4, r0
bge _0805177C
ldr r5, _08051784
ldr r0, _08051788
adds r2, r0, 0
_08051762:
ldr r1, [r5, 0x4]
adds r0, r4, 0
str r2, [sp, 0xC]
bl GetMapEntity
ldrh r1, [r0]
ldr r2, [sp, 0xC]
ands r1, r2
strh r1, [r0]
adds r4, 0x1
ldr r0, [r5, 0x8]
cmp r4, r0
blt _08051762
_0805177C:
ldr r0, [r6, 0x4]
adds r0, 0x1
str r0, [r6, 0x4]
b _080517BC
.align 2, 0
_08051784: .4byte gUnknown_202F1B8
_08051788: .4byte 0x0000ffdf
_0805178C:
ldr r0, [r6, 0xC]
subs r0, 0x1
str r0, [r6, 0xC]
ldr r4, [r6]
ldr r0, [r6, 0x8]
adds r7, r5, 0x1
cmp r4, r0
bge _080517BC
ldr r5, _080518E4
ldr r1, _080518E8
adds r2, r1, 0
_080517A2:
ldr r1, [r5, 0xC]
adds r0, r4, 0
str r2, [sp, 0xC]
bl GetMapEntity
ldrh r1, [r0]
ldr r2, [sp, 0xC]
ands r1, r2
strh r1, [r0]
adds r4, 0x1
ldr r0, [r5, 0x8]
cmp r4, r0
blt _080517A2
_080517BC:
adds r5, r7, 0
ldr r3, _080518E4
cmp r5, r10
bge _080517CE
ldr r1, [r6, 0xC]
ldr r0, [r6, 0x4]
subs r1, r0
cmp r1, r9
bgt _08051748
_080517CE:
ldr r7, [r3]
ldr r0, [r3, 0x8]
cmp r7, r0
bge _08051824
adds r4, r3, 0
mov r9, r3
_080517DA:
ldr r5, [r4, 0x4]
ldr r0, [r4, 0xC]
adds r1, r7, 0x1
mov r8, r1
cmp r5, r0
bge _0805181A
ldr r3, _080518E4
ldr r0, _080518E8
adds r6, r0, 0
_080517EC:
adds r0, r7, 0
adds r1, r5, 0
str r3, [sp, 0x10]
bl GetMapEntity
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x20
ands r0, r1
ldr r3, [sp, 0x10]
cmp r0, 0
beq _08051812
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08051812
adds r0, r1, 0
ands r0, r6
strh r0, [r2]
_08051812:
adds r5, 0x1
ldr r0, [r4, 0xC]
cmp r5, r0
blt _080517EC
_0805181A:
mov r7, r8
mov r1, r9
ldr r0, [r1, 0x8]
cmp r7, r0
blt _080517DA
_08051824:
ldr r0, [r3]
ldr r1, [r3, 0x8]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r2, r0, 1
ldr r0, [r3, 0x4]
ldr r1, [r3, 0xC]
adds r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
subs r0, 0x1
mov r10, r0
movs r0, 0
mov r9, r0
subs r7, r2, 0x1
adds r0, r2, 0x2
cmp r7, r0
bge _080518D2
adds r2, r0, 0
str r2, [sp, 0x4]
_08051850:
mov r5, r10
adds r0, r5, 0x3
adds r1, r7, 0x1
mov r8, r1
mov r1, r9
adds r1, 0x1
str r1, [sp, 0x8]
cmp r5, r0
bge _080518C6
movs r3, 0
_08051864:
adds r0, r7, 0
adds r1, r5, 0
str r3, [sp, 0x10]
bl GetMapEntity
adds r6, r0, 0
ldrh r1, [r6]
movs r0, 0x20
ands r0, r1
ldr r3, [sp, 0x10]
cmp r0, 0
beq _080518BA
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080518BA
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _080518BA
mov r0, r9
lsls r2, r0, 1
adds r2, r3
ldr r0, [sp]
ldrb r1, [r0, 0x18]
lsls r0, r1, 3
adds r0, r1
lsls r0, 1
adds r2, r0
ldr r1, _080518EC
adds r2, r1
movs r0, 0
ldrsh r4, [r2, r0]
movs r0, 0x64
bl DungeonRandomCapped
ldr r3, [sp, 0x10]
cmp r4, r0
ble _080518BA
ldrh r1, [r6, 0x4]
movs r0, 0x2
orrs r0, r1
strh r0, [r6, 0x4]
_080518BA:
adds r5, 0x1
adds r3, 0x6
mov r0, r10
adds r0, 0x3
cmp r5, r0
blt _08051864
_080518C6:
mov r7, r8
ldr r1, [sp, 0x8]
mov r9, r1
ldr r0, [sp, 0x4]
cmp r7, r0
blt _08051850
_080518D2:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080518E4: .4byte gUnknown_202F1B8
_080518E8: .4byte 0x0000ffdf
_080518EC: .4byte gUnknown_80F57D4
thumb_func_end sub_8051654
thumb_func_start sub_80518F0
sub_80518F0:
push {r4-r7,lr}
movs r5, 0
movs r6, 0x10
movs r7, 0
_080518F8:
adds r0, r5, 0
movs r1, 0x1
bl GetMapEntity
adds r4, r0, 0
bl sub_804FD10
cmp r5, 0
beq _0805190E
cmp r5, 0x37
bne _08051914
_0805190E:
ldrh r0, [r4]
orrs r0, r6
strh r0, [r4]
_08051914:
adds r0, r5, 0
movs r1, 0x1E
bl GetMapEntity
adds r4, r0, 0
bl sub_804FD10
cmp r5, 0
beq _0805192A
cmp r5, 0x37
bne _08051930
_0805192A:
ldrh r0, [r4]
orrs r0, r6
strh r0, [r4]
_08051930:
adds r5, 0x1
cmp r5, 0x37
ble _080518F8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80518F0
thumb_func_start sub_805193C
sub_805193C:
push {r4-r6,lr}
sub sp, 0x8
adds r6, r3, 0
ldr r4, [sp, 0x18]
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsls r2, 16
lsrs r1, 16
orrs r1, r2
str r1, [sp, 0x4]
adds r0, r5, 0
bl sub_805210C
lsls r0, 24
cmp r0, 0
beq _0805196A
mov r0, sp
movs r1, 0x76
movs r2, 0
bl xxx_init_itemslot_8090A8C
b _08051974
_0805196A:
mov r0, sp
adds r1, r5, 0
movs r2, 0
bl xxx_init_itemslot_8090A8C
_08051974:
mov r0, sp
ldrb r0, [r0]
orrs r4, r0
mov r0, sp
strb r4, [r0]
cmp r6, 0
beq _08051984
strb r6, [r0, 0x1]
_08051984:
add r0, sp, 0x4
mov r1, sp
movs r2, 0x1
bl sub_80460F8
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_805193C
thumb_func_start sub_8051998
sub_8051998:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r8, r1
mov r9, r2
lsls r0, 16
asrs r0, 16
adds r1, r0, 0
lsls r3, 24
lsrs r6, r3, 24
adds r7, r6, 0
ldr r0, _080519E4
cmp r1, r0
bne _080519E8
mov r1, sp
movs r5, 0
movs r4, 0
movs r0, 0x3C
strh r0, [r1]
bl sub_803DA20
mov r1, sp
strh r0, [r1, 0x8]
mov r0, sp
strb r6, [r0, 0x2]
str r4, [sp, 0x4]
strb r5, [r0, 0x10]
mov r1, r8
strh r1, [r0, 0xC]
mov r1, r9
strh r1, [r0, 0xE]
movs r1, 0x1
bl sub_806B7F8
b _08051A14
.align 2, 0
_080519E4: .4byte 0x000001a5
_080519E8:
cmp r1, 0
beq _08051A14
mov r0, sp
movs r5, 0
movs r4, 0
strh r1, [r0]
adds r0, r1, 0
bl sub_803DA20
mov r1, sp
strh r0, [r1, 0x8]
mov r0, sp
strb r7, [r0, 0x2]
str r4, [sp, 0x4]
strb r5, [r0, 0x10]
mov r1, r8
strh r1, [r0, 0xC]
mov r1, r9
strh r1, [r0, 0xE]
movs r1, 0x1
bl sub_806B7F8
_08051A14:
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8051998
thumb_func_start sub_8051A24
sub_8051A24:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r6, r0, 0
adds r4, r1, 0
adds r5, r2, 0
lsls r6, 24
lsrs r6, 24
lsls r3, 24
lsrs r3, 24
mov r8, r3
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
adds r7, r0, 0
lsls r4, 16
lsls r5, 16
lsrs r4, 16
orrs r4, r5
str r4, [sp]
adds r0, r6, 0
mov r1, sp
movs r2, 0
bl sub_8045684
cmp r0, 0
beq _08051A66
str r0, [r7, 0x14]
adds r0, 0x20
mov r1, r8
strb r1, [r0]
_08051A66:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8051A24
thumb_func_start sub_8051A74
sub_8051A74:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
adds r4, r0, 0
adds r6, r2, 0
adds r7, r3, 0
ldr r0, [sp, 0x20]
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r0, 24
lsrs r0, 24
mov r9, r0
cmp r1, 0xF
bls _08051AA2
ldrh r0, [r4]
ldr r1, _08051AB4
ands r1, r0
movs r0, 0x1
orrs r1, r0
strh r1, [r4]
_08051AA2:
mov r0, r8
cmp r0, 0x45
bls _08051AAA
b _08051D68
_08051AAA:
lsls r0, 2
ldr r1, _08051AB8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08051AB4: .4byte 0x0000fffc
_08051AB8: .4byte _08051ABC
.align 2, 0
_08051ABC:
.4byte _08051BF0
.4byte _08051C0C
.4byte _08051D50
.4byte _08051E1A
.4byte _08051C20
.4byte _08051C54
.4byte _08051C64
.4byte _08051C74
.4byte _08051C94
.4byte _08051D00
.4byte _08051C7E
.4byte _08051D10
.4byte _08051D24
.4byte _08051D50
.4byte _08051D50
.4byte _08051E1A
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051D68
.4byte _08051C94
.4byte _08051CD4
.4byte _08051BD4
_08051BD4:
ldr r0, _08051BFC
ldr r0, [r0]
ldr r2, _08051C00
adds r1, r0, r2
strh r6, [r1]
ldr r3, _08051C04
adds r0, r3
strh r7, [r0]
movs r0, 0xB
adds r1, r6, 0
adds r2, r7, 0
movs r3, 0
bl sub_8051A24
_08051BF0:
ldrh r1, [r4]
ldr r0, _08051C08
ands r0, r1
movs r1, 0x1
movs r2, 0
b _08051D42
.align 2, 0
_08051BFC: .4byte gDungeonGlobalData
_08051C00: .4byte 0x00000684
_08051C04: .4byte 0x00000686
_08051C08: .4byte 0x0000fffc
_08051C0C:
ldrh r1, [r4]
ldr r0, _08051C18
ands r0, r1
ldr r1, _08051C1C
ands r0, r1
b _08051D5A
.align 2, 0
_08051C18: .4byte 0x0000fffc
_08051C1C: .4byte 0x0000feff
_08051C20:
ldrh r1, [r4]
ldr r0, _08051C44
ands r0, r1
movs r1, 0x1
movs r2, 0
orrs r0, r1
strh r0, [r4]
ldr r0, _08051C48
ldr r0, [r0]
ldr r3, _08051C4C
adds r1, r0, r3
strh r6, [r1]
ldr r1, _08051C50
adds r0, r1
strh r7, [r0]
strb r2, [r4, 0x9]
b _08051E1A
.align 2, 0
_08051C44: .4byte 0x0000fffc
_08051C48: .4byte gDungeonGlobalData
_08051C4C: .4byte 0x0000e218
_08051C50: .4byte 0x0000e21a
_08051C54:
ldrh r1, [r4]
ldr r0, _08051C60
ands r0, r1
movs r2, 0
movs r1, 0x2
b _08051D42
.align 2, 0
_08051C60: .4byte 0x0000fffc
_08051C64:
ldrh r1, [r4]
ldr r0, _08051C70
ands r0, r1
movs r1, 0x3
b _08051D58
.align 2, 0
_08051C70: .4byte 0x0000fffc
_08051C74:
ldr r1, _08051C8C
movs r0, 0x1
strb r0, [r1]
bl sub_8049840
_08051C7E:
ldrh r1, [r4]
ldr r0, _08051C90
ands r0, r1
movs r1, 0x3
orrs r0, r1
b _08051D56
.align 2, 0
_08051C8C: .4byte gUnknown_202F1A8
_08051C90: .4byte 0x0000fffc
_08051C94:
ldrh r1, [r4]
ldr r0, _08051CC0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strh r0, [r4]
ldrh r0, [r4, 0x4]
movs r2, 0
orrs r0, r1
ldr r1, _08051CC4
ands r0, r1
strh r0, [r4, 0x4]
strb r2, [r4, 0x9]
ldr r0, _08051CC8
ldr r0, [r0]
ldr r2, _08051CCC
adds r1, r0, r2
strh r6, [r1]
ldr r3, _08051CD0
adds r0, r3
strh r7, [r0]
b _08051E1A
.align 2, 0
_08051CC0: .4byte 0x0000fffc
_08051CC4: .4byte 0x0000fffd
_08051CC8: .4byte gDungeonGlobalData
_08051CCC: .4byte 0x0000e21c
_08051CD0: .4byte 0x0000e21e
_08051CD4:
ldrh r1, [r4]
movs r2, 0x80
lsls r2, 4
adds r0, r2, 0
orrs r0, r1
ldr r1, _08051CF8
ands r0, r1
movs r1, 0x1
movs r2, 0
orrs r0, r1
strh r0, [r4]
ldrh r1, [r4, 0x4]
ldr r0, _08051CFC
ands r0, r1
strh r0, [r4, 0x4]
strb r2, [r4, 0x9]
b _08051E1A
.align 2, 0
_08051CF8: .4byte 0x0000fffc
_08051CFC: .4byte 0x0000fffd
_08051D00:
ldrh r1, [r4]
ldr r0, _08051D0C
ands r0, r1
movs r1, 0x1
b _08051D58
.align 2, 0
_08051D0C: .4byte 0x0000fffc
_08051D10:
ldrh r1, [r4]
ldr r0, _08051D20
ands r0, r1
movs r1, 0x1
movs r2, 0
orrs r0, r1
b _08051D3C
.align 2, 0
_08051D20: .4byte 0x0000fffc
_08051D24:
ldrh r1, [r4]
ldr r0, _08051D4C
ands r0, r1
movs r1, 0x1
orrs r0, r1
movs r2, 0x80
lsls r2, 5
adds r1, r2, 0
orrs r0, r1
movs r1, 0x10
orrs r0, r1
movs r2, 0
_08051D3C:
movs r3, 0x80
lsls r3, 4
adds r1, r3, 0
_08051D42:
orrs r0, r1
strh r0, [r4]
strb r2, [r4, 0x9]
b _08051E1A
.align 2, 0
_08051D4C: .4byte 0x0000fffc
_08051D50:
ldrh r1, [r4]
ldr r0, _08051D64
ands r0, r1
_08051D56:
movs r1, 0x10
_08051D58:
orrs r0, r1
_08051D5A:
strh r0, [r4]
movs r0, 0xFF
strb r0, [r4, 0x9]
b _08051E1A
.align 2, 0
_08051D64: .4byte 0x0000fffc
_08051D68:
mov r0, r8
subs r0, 0x10
lsls r0, 24
lsrs r0, 24
cmp r0, 0xCB
bhi _08051E1A
mov r1, r8
lsls r0, r1, 4
ldr r1, _08051DA0
adds r5, r0, r1
ldrb r0, [r5, 0xC]
strb r0, [r4, 0x9]
ldrb r1, [r5]
cmp r1, 0
beq _08051DB8
mov r2, r9
cmp r2, 0
beq _08051DA4
ldrb r0, [r5]
movs r1, 0x2
ldrsh r3, [r5, r1]
ldr r1, [r5, 0x4]
str r1, [sp]
adds r1, r6, 0
adds r2, r7, 0
bl sub_805193C
b _08051DDC
.align 2, 0
_08051DA0: .4byte gUnknown_80F6D20
_08051DA4:
ldr r0, _08051DB0
ldr r0, [r0]
ldr r2, _08051DB4
adds r0, r2
strb r1, [r0]
b _08051DDC
.align 2, 0
_08051DB0: .4byte gDungeonGlobalData
_08051DB4: .4byte 0x0000068b
_08051DB8:
ldr r2, [r5, 0x4]
cmp r2, 0
beq _08051DDC
ldr r0, _08051E2C
ldr r1, [r0]
subs r0, r2, 0x1
lsls r0, 2
adds r0, r1, r0
ldr r3, _08051E30
adds r0, r3
strh r6, [r0]
ldr r0, [r5, 0x4]
subs r0, 0x1
lsls r0, 2
adds r1, r0
ldr r0, _08051E34
adds r1, r0
strh r7, [r1]
_08051DDC:
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08051DF2
ldrb r3, [r5, 0xA]
mov r1, r8
str r1, [sp]
adds r1, r6, 0
adds r2, r7, 0
bl sub_8051998
_08051DF2:
ldrb r0, [r5, 0xB]
cmp r0, 0x14
beq _08051E08
mov r2, r9
cmp r2, 0
beq _08051E08
ldrb r3, [r5, 0xD]
adds r1, r6, 0
adds r2, r7, 0
bl sub_8051A24
_08051E08:
ldrb r0, [r5, 0xE]
cmp r0, 0
beq _08051E1A
ldrh r0, [r4]
ldr r1, _08051E38
ands r1, r0
movs r0, 0x2
orrs r1, r0
strh r1, [r4]
_08051E1A:
movs r0, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08051E2C: .4byte gDungeonGlobalData
_08051E30: .4byte 0x0000e220
_08051E34: .4byte 0x0000e222
_08051E38: .4byte 0x0000fffc
thumb_func_end sub_8051A74
thumb_func_start sub_8051E3C
sub_8051E3C:
push {r4-r6,lr}
sub sp, 0x4
movs r5, 0
_08051E42:
movs r4, 0
adds r6, r5, 0x1
_08051E46:
adds r0, r4, 0
adds r1, r5, 0
bl GetMapEntity
adds r2, r0, 0
ldrb r0, [r2, 0xE]
cmp r0, 0xF
bls _08051E66
adds r1, r0, 0
movs r0, 0
str r0, [sp]
adds r0, r2, 0
adds r2, r4, 0
adds r3, r5, 0
bl sub_8051A74
_08051E66:
adds r4, 0x1
cmp r4, 0x37
ble _08051E46
adds r5, r6, 0
cmp r5, 0x1F
ble _08051E42
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8051E3C
thumb_func_start sub_8051E7C
sub_8051E7C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
mov r9, r0
movs r1, 0x4
ldrsh r0, [r0, r1]
mov r2, r9
movs r3, 0x6
ldrsh r1, [r2, r3]
subs r1, 0x1
bl GetMapEntity
str r0, [sp, 0x8]
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 5
ands r0, r1
cmp r0, 0
bne _08051EB8
ldr r0, _08051EB4
ldr r1, [r0]
mov r0, r9
bl SendMessage
b _080520F6
.align 2, 0
_08051EB4: .4byte gUnknown_80FDDF0
_08051EB8:
ldr r0, _08051EF0
ldr r0, [r0]
ldr r1, _08051EF4
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08051EC8
b _080520EC
_08051EC8:
mov r2, r9
ldrh r1, [r2, 0x6]
subs r1, 0x1
lsls r1, 16
ldrh r0, [r2, 0x4]
orrs r0, r1
str r0, [sp, 0x4]
mov r0, r9
bl GetEntityRoomIndex
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
mov r3, r9
movs r1, 0x6
ldrsh r0, [r3, r1]
adds r6, r0, 0
subs r6, 0x15
b _08051FE0
.align 2, 0
_08051EF0: .4byte gDungeonGlobalData
_08051EF4: .4byte 0x00003a09
_08051EF8:
mov r2, r9
movs r3, 0x4
ldrsh r0, [r2, r3]
adds r5, r0, 0
subs r5, 0x14
adds r0, 0x14
adds r1, r6, 0x1
str r1, [sp, 0x10]
cmp r5, r0
bgt _08051FD8
ldr r2, _080520C0
mov r10, r2
_08051F10:
mov r0, r10
ldr r3, [r0]
ldr r1, _080520C4
adds r0, r3, r1
ldr r1, [r0]
subs r2, r5, r1
mov r8, r2
ldr r2, _080520C8
adds r0, r3, r2
ldr r2, [r0]
subs r7, r6, r2
mov r0, r8
cmp r0, 0
blt _08051FCA
cmp r7, 0
blt _08051FCA
cmp r0, 0x7
bgt _08051FCA
cmp r7, 0x7
bgt _08051FCA
adds r0, r1, 0x1
cmp r5, r0
blt _08051FCA
adds r0, r2, 0x1
cmp r6, r0
blt _08051FCA
ldr r1, _080520CC
adds r0, r3, r1
ldr r0, [r0]
subs r0, 0x1
cmp r5, r0
bge _08051FCA
ldr r2, _080520D0
adds r0, r3, r2
ldr r0, [r0]
subs r0, 0x1
cmp r6, r0
bge _08051FCA
adds r0, r5, 0
adds r1, r6, 0
bl GetMapEntity
adds r4, r0, 0
ldrh r0, [r4]
movs r3, 0x80
lsls r3, 1
adds r1, r3, 0
ands r0, r1
cmp r0, 0
beq _08051F9A
mov r0, r10
ldr r2, [r0]
lsls r1, r7, 1
adds r1, r7
lsls r1, 3
mov r3, r8
lsls r0, r3, 1
add r0, r8
lsls r0, 6
adds r1, r0
adds r2, r1
ldr r1, _080520D4
adds r0, r2, r1
ldrh r0, [r0]
strh r0, [r4]
ldr r3, _080520D8
adds r2, r3
ldrh r0, [r2]
strh r0, [r4, 0x4]
_08051F9A:
mov r1, r10
ldr r0, [r1]
mov r2, r8
lsls r1, r2, 3
adds r1, r7, r1
ldr r3, _080520DC
adds r0, r3
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
str r0, [sp]
adds r0, r4, 0
adds r2, r5, 0
adds r3, r6, 0
bl sub_8051A74
ldrh r1, [r4, 0x4]
movs r0, 0x3
orrs r0, r1
strh r0, [r4, 0x4]
ldr r0, [sp, 0xC]
cmp r0, 0xFF
beq _08051FCA
strb r0, [r4, 0x9]
_08051FCA:
adds r5, 0x1
mov r2, r9
movs r3, 0x4
ldrsh r0, [r2, r3]
adds r0, 0x14
cmp r5, r0
ble _08051F10
_08051FD8:
ldr r6, [sp, 0x10]
mov r1, r9
movs r2, 0x6
ldrsh r0, [r1, r2]
_08051FE0:
adds r0, 0x13
cmp r6, r0
ble _08051EF8
mov r3, r9
movs r1, 0x6
ldrsh r0, [r3, r1]
adds r6, r0, 0
subs r6, 0x15
adds r0, 0x13
ldr r7, _080520C0
cmp r6, r0
bgt _0805207A
_08051FF8:
mov r2, r9
movs r3, 0x4
ldrsh r0, [r2, r3]
adds r5, r0, 0
subs r5, 0x14
adds r0, 0x14
adds r1, r6, 0x1
str r1, [sp, 0x10]
cmp r5, r0
bgt _0805206C
ldr r7, _080520C0
_0805200E:
ldr r0, _080520C0
ldr r4, [r0]
ldr r2, _080520C4
adds r0, r4, r2
ldr r2, [r0]
subs r1, r5, r2
ldr r3, _080520C8
adds r0, r4, r3
ldr r3, [r0]
subs r0, r6, r3
cmp r1, 0
blt _0805205E
cmp r0, 0
blt _0805205E
cmp r1, 0x7
bgt _0805205E
cmp r0, 0x7
bgt _0805205E
adds r0, r2, 0x1
cmp r5, r0
blt _0805205E
adds r0, r3, 0x1
cmp r6, r0
blt _0805205E
ldr r1, _080520CC
adds r0, r4, r1
ldr r0, [r0]
subs r0, 0x1
cmp r5, r0
bge _0805205E
ldr r2, _080520D0
adds r0, r4, r2
ldr r0, [r0]
subs r0, 0x1
cmp r6, r0
bge _0805205E
adds r0, r5, 0
adds r1, r6, 0
bl sub_80498A8
_0805205E:
adds r5, 0x1
mov r3, r9
movs r1, 0x4
ldrsh r0, [r3, r1]
adds r0, 0x14
cmp r5, r0
ble _0805200E
_0805206C:
ldr r6, [sp, 0x10]
mov r2, r9
movs r3, 0x6
ldrsh r0, [r2, r3]
adds r0, 0x13
cmp r6, r0
ble _08051FF8
_0805207A:
ldr r0, [r7]
ldr r1, _080520E0
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r2, [sp, 0x8]
ldrh r1, [r2]
ldr r0, _080520E4
ands r0, r1
strh r0, [r2]
mov r3, r9
movs r1, 0x4
ldrsh r0, [r3, r1]
movs r2, 0x6
ldrsh r1, [r3, r2]
subs r1, 0x1
bl sub_80498A8
bl sub_8049B8C
bl sub_8049ED4
add r0, sp, 0x4
bl sub_80429FC
ldr r0, _080520E8
ldr r1, [r0]
mov r0, r9
bl SendMessage
movs r0, 0x14
movs r1, 0x3C
bl sub_803E708
b _080520F6
.align 2, 0
_080520C0: .4byte gDungeonGlobalData
_080520C4: .4byte 0x0000e250
_080520C8: .4byte 0x0000e254
_080520CC: .4byte 0x0000e258
_080520D0: .4byte 0x0000e25c
_080520D4: .4byte 0x0000e27c
_080520D8: .4byte 0x0000e280
_080520DC: .4byte 0x0000e87c
_080520E0: .4byte 0x00003a09
_080520E4: .4byte 0x0000efef
_080520E8: .4byte gUnknown_80FDDD0
_080520EC:
ldr r0, _08052108
ldr r1, [r0]
mov r0, r9
bl SendMessage
_080520F6:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08052108: .4byte gUnknown_80FDDF0
thumb_func_end sub_8051E7C
thumb_func_start sub_805210C
sub_805210C:
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
ldr r7, _080521B4
movs r4, 0x1
ldr r2, [r7]
_0805211A:
ldrb r1, [r2]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0805212A
ldrb r0, [r2, 0x2]
cmp r0, r5
beq _080521C8
_0805212A:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x13
ble _0805211A
movs r3, 0
ldr r0, _080521B8
ldr r4, [r0]
movs r6, 0x1
_0805213A:
movs r0, 0x64
adds r2, r3, 0
muls r2, r0
adds r0, r2, r4
ldr r1, _080521BC
adds r0, r1
ldrb r1, [r0]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _0805216C
adds r0, r2, r4
ldr r1, _080521C0
adds r0, r1
ldrb r1, [r0]
adds r0, r6, 0
ands r0, r1
adds r1, r2, r4
cmp r0, 0
beq _0805216C
ldr r2, _080521C4
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, r5
beq _080521C8
_0805216C:
adds r3, 0x1
cmp r3, 0x3
ble _0805213A
movs r3, 0
ldr r0, _080521B8
ldr r4, [r0]
_08052178:
movs r0, 0x58
muls r0, r3
adds r2, r0, r4
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08052196
adds r0, r2, 0
adds r0, 0x28
ldrb r0, [r0]
cmp r0, 0
beq _08052196
cmp r0, r5
beq _080521C8
_08052196:
adds r3, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
ble _08052178
ldr r0, [r7]
lsls r1, r5, 1
adds r0, 0x50
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
bne _080521C8
movs r0, 0
b _080521CA
.align 2, 0
_080521B4: .4byte gTeamInventory_203B460
_080521B8: .4byte gRecruitedPokemonRef
_080521BC: .4byte 0x00008df8
_080521C0: .4byte 0x00008e38
_080521C4: .4byte 0x00008e3a
_080521C8:
movs r0, 0x1
_080521CA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_805210C
thumb_func_start sub_80521D0
sub_80521D0:
push {r4-r6,lr}
movs r1, 0
ldr r5, _08052200
ldr r6, _08052204
ldr r4, _08052208
ldr r3, _0805220C
movs r2, 0
_080521DE:
ldr r0, [r4]
adds r0, r3
adds r0, r1
strb r2, [r0]
adds r1, 0x1
cmp r1, 0x9
ble _080521DE
movs r0, 0
str r0, [r5]
movs r0, 0x1
strb r0, [r6]
movs r0, 0
bl sub_8052210
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08052200: .4byte gUnknown_202F1E8
_08052204: .4byte gUnknown_203B434
_08052208: .4byte gDungeonGlobalData
_0805220C: .4byte 0x0001c054
thumb_func_end sub_80521D0
thumb_func_start sub_8052210
sub_8052210:
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r5, _08052280
_0805221A:
lsls r0, r4, 6
ldr r1, [r5]
adds r0, r1
ldr r1, _08052284
adds r0, r1
ldr r1, _08052288
bl strcpy
adds r4, 0x1
cmp r4, 0x9
ble _0805221A
ldr r1, _08052280
ldr r0, [r1]
ldr r2, _0805228C
adds r0, r2
movs r3, 0
strb r3, [r0]
ldr r0, [r1]
adds r2, 0x1
adds r1, r0, r2
strh r3, [r1]
adds r2, 0x2
adds r1, r0, r2
strh r3, [r1]
adds r2, 0x2
adds r1, r0, r2
strh r3, [r1]
ldr r1, _08052290
adds r2, r0, r1
movs r1, 0x4
strh r1, [r2]
ldr r2, _08052294
adds r0, r2
str r3, [r0]
cmp r6, 0
beq _08052278
ldr r0, _08052298
ldr r0, [r0]
cmp r0, 0x3
bne _08052278
movs r0, 0
movs r1, 0
bl sub_803EAF0
movs r0, 0xB
bl sub_803E46C
_08052278:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08052280: .4byte gDungeonGlobalData
_08052284: .4byte 0x0001bdd4
_08052288: .4byte gUnknown_80F7AE8
_0805228C: .4byte 0x0001c05f
_08052290: .4byte 0x0001c066
_08052294: .4byte 0x0001c06c
_08052298: .4byte gUnknown_202EDD0
thumb_func_end sub_8052210
.align 2,0