From 60a19d681cda14c4ebeab5d18a98e3b07a5e93a3 Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Sun, 20 Feb 2022 21:59:07 -0500 Subject: Decomped GetMapTile_2 --- asm/code_803D110.s | 2 +- asm/code_8040094.s | 14 +- asm/code_80428A0.s | 2 +- asm/code_8044CC8.s | 4 +- asm/code_80450F8.s | 2 +- asm/code_8045A00.s | 18 +- asm/code_8046CE4.s | 10 +- asm/code_8049590.s | 18473 ---------------------------------------- asm/code_80495E4.s | 18426 +++++++++++++++++++++++++++++++++++++++ asm/code_80521D0.s | 6 +- asm/code_8057144.s | 2 +- asm/code_8057824.s | 10 +- asm/code_805CEB8.s | 52 +- asm/code_8069E0C.s | 26 +- asm/code_806CD90.s | 4 +- asm/code_807034C.s | 12 +- asm/code_8070E3C.s | 28 +- asm/code_80718D8.s | 4 +- asm/code_8073CF0.s | 4 +- asm/code_8075BA4.s | 32 +- asm/code_807C4A0.s | 2 +- asm/code_807CD9C.s | 62 +- asm/code_808333C.s | 14 +- asm/code_80848F0.s | 2 +- asm/jirachi_wish.s | 6 +- include/dungeon_global_data.h | 2 +- include/dungeon_map_access.h | 9 +- include/dungeon_util.h | 2 +- ld_script.txt | 2 +- src/code_8040094.c | 5 +- src/code_80521D0_1.c | 6 +- src/code_8057824_1.c | 2 +- src/dungeon_ai_attack.c | 6 +- src/dungeon_ai_attack_1.c | 2 +- src/dungeon_ai_item_weight.c | 2 +- src/dungeon_ai_items.c | 2 +- src/dungeon_ai_movement.c | 4 +- src/dungeon_capabilities_1.c | 4 +- src/dungeon_map_access.c | 20 +- src/dungeon_range.c | 2 +- src/dungeon_util.c | 10 +- src/status_checker.c | 6 +- 42 files changed, 18636 insertions(+), 18667 deletions(-) delete mode 100644 asm/code_8049590.s create mode 100644 asm/code_80495E4.s diff --git a/asm/code_803D110.s b/asm/code_803D110.s index 0411a71..fe3cd47 100644 --- a/asm/code_803D110.s +++ b/asm/code_803D110.s @@ -4953,7 +4953,7 @@ sub_803F7BC: ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r1, [r0, 0x9] ldr r2, _0803F808 adds r0, r4, r2 diff --git a/asm/code_8040094.s b/asm/code_8040094.s index 8c54f30..cdf03f4 100644 --- a/asm/code_8040094.s +++ b/asm/code_8040094.s @@ -232,7 +232,7 @@ _080402FC: _08040302: mov r0, r8 adds r1, r3, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 mov r9, r0 ldrh r0, [r0] movs r5, 0x3 @@ -553,7 +553,7 @@ _0804056C: adds r1, r3, 0 adds r1, 0x1 mov r0, r8 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -567,7 +567,7 @@ _0804058A: adds r1, r5, 0 subs r1, 0x1 mov r0, r8 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -583,7 +583,7 @@ _080405AA: mov r0, r8 adds r0, 0x1 ldr r1, [sp] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -598,7 +598,7 @@ _080405CA: ble _080405E8 subs r0, 0x1 ldr r1, [sp] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -2523,7 +2523,7 @@ sub_80414C0: cmp r0, 0x9C bne _080414DC adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 bl IsTileGround lsls r0, 24 cmp r0, 0 @@ -2533,7 +2533,7 @@ _080414DC: cmp r0, 0x8 bne _080414F6 adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 5febc6a..6f512f1 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -2410,7 +2410,7 @@ _08043E6A: _08043E6E: adds r0, r5, 0 adds r1, r6, 0 - bl GetMapEntity + bl GetMapTile_2 ldr r4, [r0, 0x14] adds r0, r4, 0 bl EntityExists diff --git a/asm/code_8044CC8.s b/asm/code_8044CC8.s index f5a3aca..cc76921 100644 --- a/asm/code_8044CC8.s +++ b/asm/code_8044CC8.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_8044CC8 sub_8044CC8: push {lr} @@ -33,7 +33,7 @@ _08044CEC: ldrsh r0, [r2, r1] movs r3, 0x6 ldrsh r1, [r2, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x14] bl GetItemData b _08044D34 diff --git a/asm/code_80450F8.s b/asm/code_80450F8.s index 6d391de..5103e9c 100644 --- a/asm/code_80450F8.s +++ b/asm/code_80450F8.s @@ -792,7 +792,7 @@ sub_8045708: ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] - bl GetMapEntity + bl GetMapTile_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 diff --git a/asm/code_8045A00.s b/asm/code_8045A00.s index 944744e..80e2a82 100644 --- a/asm/code_8045A00.s +++ b/asm/code_8045A00.s @@ -426,7 +426,7 @@ _08045CEE: _08045CF6: adds r0, r5, 0 adds r1, r6, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r0, [r2] movs r3, 0x80 @@ -542,7 +542,7 @@ sub_8045DB4: ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x14] cmp r4, 0 bne _08045DE8 @@ -958,7 +958,7 @@ _08046110: ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] - bl GetMapEntity + bl GetMapTile_2 str r4, [r0, 0x14] ldrh r1, [r0] movs r0, 0x20 @@ -1044,7 +1044,7 @@ sub_80461C8: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] - bl GetMapEntity + bl GetMapTile_2 adds r6, r0, 0 ldr r5, [r6, 0x14] cmp r5, 0 @@ -1187,7 +1187,7 @@ _080462E4: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 @@ -1492,7 +1492,7 @@ sub_804652C: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x14] movs r3, 0 @@ -1559,7 +1559,7 @@ _080465A8: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldrh r1, [r4] movs r6, 0x3 @@ -1630,7 +1630,7 @@ _08046644: ldrsh r0, [r0, r3] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 @@ -1999,7 +1999,7 @@ _08046904: lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 diff --git a/asm/code_8046CE4.s b/asm/code_8046CE4.s index 520a378..b8ff1f9 100644 --- a/asm/code_8046CE4.s +++ b/asm/code_8046CE4.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_8046CE4 sub_8046CE4: push {r4,r5,lr} @@ -715,7 +715,7 @@ _08047228: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 @@ -747,7 +747,7 @@ _0804727A: ldrsh r1, [r1, r3] adds r1, r2 str r2, [sp, 0x234] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -868,7 +868,7 @@ _0804737A: ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x3 @@ -1424,7 +1424,7 @@ _080477D0: ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 diff --git a/asm/code_8049590.s b/asm/code_8049590.s deleted file mode 100644 index 0fb0554..0000000 --- a/asm/code_8049590.s +++ /dev/null @@ -1,18473 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - 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 gWalkableTileToCrossableTerrain -_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 IsTileGround -IsTileGround: - 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 IsTileGround - - 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 diff --git a/asm/code_80495E4.s b/asm/code_80495E4.s new file mode 100644 index 0000000..47aa04a --- /dev/null +++ b/asm/code_80495E4.s @@ -0,0 +1,18426 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + 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 gWalkableTileToCrossableTerrain +_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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + movs r1, 0 + b _08049B70 +_08049928: + mov r0, r9 + adds r0, 0x1 + str r0, [sp, 0x24] + mov r0, r10 + ldr r1, [sp, 0x24] + bl GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x4] + adds r0, r4, 0 + mov r1, r9 + bl GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0xC] + mov r0, r10 + adds r1, r5, 0 + bl GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + mov r1, r9 + bl GetMapTile_1 + ldrh r1, [r0] + mov r0, r8 + ands r0, r1 + str r0, [sp, 0x18] + adds r0, r4, 0 + ldr r1, [sp, 0x24] + bl GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x4] + adds r0, r5, 0 + ldr r1, [sp, 0x40] + bl GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0xC] + mov r0, r10 + mov r1, r8 + bl GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x14] + adds r0, r5, 0 + ldr r1, [sp, 0x40] + bl GetMapTile_1 + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + str r0, [r6, 0x18] + adds r0, r5, 0 + mov r1, r9 + bl GetMapTile_1 + 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 GetMapTile_2 + ldr r1, [sp] + strb r1, [r0, 0xA] + mov r0, r10 + ldr r1, [sp, 0x40] + bl GetMapTile_2 + ldr r1, [sp, 0x4] + strb r1, [r0, 0xB] + mov r0, r10 + ldr r1, [sp, 0x40] + bl GetMapTile_2 + ldr r1, [sp, 0x8] + strb r1, [r0, 0xC] + mov r0, r10 + ldr r1, [sp, 0x40] + bl GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 IsTileGround +IsTileGround: + 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 IsTileGround + + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + ldrh r0, [r0] + mov r4, r10 + ands r4, r0 + cmp r4, 0x1 + bne _0804CE32 + adds r0, r7, 0 + adds r1, r5, 0 + bl GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0x1 + bne _0804CE70 + adds r0, r7, 0 + adds r1, r4, 0 + bl GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E390 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E3EC + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E450 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E4B0 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E508 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + beq _0804E564 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + ldrb r0, [r0, 0x9] + cmp r0, 0xFF + bne _0804EAF4 + cmp r5, 0 + ble _0804EA4E + subs r0, r5, 0x1 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + ldrb r0, [r0, 0x9] + cmp r0, 0xFE + bne _0804EB0E + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0804EBA2 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + ldrh r2, [r0] + movs r1, 0x40 + orrs r1, r2 + strh r1, [r0] + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0804F660 + adds r0, r6, 0 + adds r1, r4, 0 + bl GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r1, [sp] + subs r1, 0x1 + mov r9, r1 + mov r0, r9 + mov r1, r10 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r0, [sp] + mov r1, r10 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r2, [sp] + adds r2, 0x1 + mov r8, r2 + mov r0, r8 + mov r1, r10 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r6, [sp, 0x4] + subs r6, 0x1 + adds r0, r5, 0 + adds r1, r6, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + adds r0, r5, 0 + ldr r1, [sp, 0x4] + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r4, [sp, 0x4] + adds r4, 0x1 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r9 + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + ldr r0, [sp] + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + mov r1, r10 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + adds r1, r6, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + ldr r1, [sp, 0x4] + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r8 + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0x4 + bl sub_804F5C4 + mov r0, r9 + adds r1, r6, 0 + bl GetMapTile_2 + ldrh r2, [r0, 0x4] + movs r1, 0x4 + orrs r1, r2 + strh r1, [r0, 0x4] + mov r0, r9 + adds r1, r6, 0 + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + movs r2, 0x40 + orrs r1, r2 + strh r1, [r0, 0x4] + ldr r0, [sp] + adds r1, r6, 0 + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + movs r4, 0x2 + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + ldr r1, [sp, 0x4] + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + ldr r1, [sp, 0x4] + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + adds r1, r6, 0 + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + movs r4, 0x10 + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + adds r1, r6, 0 + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + mov r0, r9 + ldr r1, [sp, 0x4] + bl GetMapTile_2 + ldrh r1, [r0, 0x4] + orrs r1, r4 + strh r1, [r0, 0x4] + ldr r0, [sp] + ldr r1, [sp, 0x4] + bl GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + movs r1, 0 + bl sub_804F5C4 + adds r1, r4, 0x1 + adds r0, r5, 0 + bl GetMapTile_2 + movs r1, 0 + bl sub_804F5C4 + subs r0, r5, 0x1 + adds r1, r4, 0 + bl GetMapTile_2 + movs r1, 0 + bl sub_804F5C4 + subs r1, r4, 0x1 + adds r0, r5, 0 + bl GetMapTile_2 + movs r1, 0 + bl sub_804F5C4 +_0804FBAE: + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0804FCAE + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_1 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0804FCF8 + adds r0, r5, 0 + adds r1, r4, 0 + bl GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_1 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 GetMapTile_2 + 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 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 05ebda7..f8846cd 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -2668,7 +2668,7 @@ _080538DA: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x10] str r0, [sp, 0x38] bl EntityExists @@ -7995,7 +7995,7 @@ _08056780: movs r2, 0 ldrsh r0, [r6, r2] asrs r1, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -8307,7 +8307,7 @@ _08056A0E: ldrsh r0, [r7, r2] movs r6, 0x2 ldrsh r1, [r7, r6] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x3 diff --git a/asm/code_8057144.s b/asm/code_8057144.s index 6aec5b4..e3b2bf9 100644 --- a/asm/code_8057144.s +++ b/asm/code_8057144.s @@ -909,7 +909,7 @@ sub_8057788: movs r0, 0 mov r9, r0 adds r0, r4, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r5, r0, 0 bl IsTileGround lsls r0, 24 diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 37a3b25..0cdad21 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -4061,7 +4061,7 @@ DiveMoveAction: adds r5, r2, 0 mov r8, r3 movs r6, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 bl IsTileGround lsls r0, 24 cmp r0, 0 @@ -6328,7 +6328,7 @@ _0805A94C: add r4, sp, 0x18 movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapEntity + bl GetMapTile_2 ldr r5, [r0, 0x10] cmp r5, 0 beq _0805AA4C @@ -9264,7 +9264,7 @@ TrapbustOrbAction: movs r0, 0 str r0, [sp, 0x10] adds r0, r1, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r4, r0, 0 bl IsBossBattle lsls r0, 24 @@ -9344,7 +9344,7 @@ _0805BFE0: _0805BFF0: adds r0, r6, 0 adds r1, r5, 0 - bl GetMapEntity + bl GetMapTile_2 ldr r4, [r0, 0x14] cmp r4, 0 beq _0805C028 @@ -9770,7 +9770,7 @@ _0805C2DC: ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapEntity + bl GetMapTile_2 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 diff --git a/asm/code_805CEB8.s b/asm/code_805CEB8.s index 1bfebc8..6448a5c 100644 --- a/asm/code_805CEB8.s +++ b/asm/code_805CEB8.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start CanUseOnTargetWithStatusChecker CanUseOnTargetWithStatusChecker: push {r4-r7,lr} @@ -2837,7 +2837,7 @@ _0805E76A: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 @@ -2982,7 +2982,7 @@ sub_805E874: ldrsh r2, [r2, r3] str r2, [sp, 0x1C] adds r1, r2, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldr r1, _0805E910 ldr r2, [sp, 0x18] @@ -3023,7 +3023,7 @@ sub_805E874: bne _0805E918 adds r0, r7, 0 adds r1, r6, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] cmp r0, 0xFF beq _0805E922 @@ -3061,7 +3061,7 @@ _0805E92E: ldrsh r1, [r1, r3] ldr r2, [sp, 0x1C] adds r1, r2, r1 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 @@ -3128,7 +3128,7 @@ _0805E9BC: _0805E9C8: adds r0, r7, 0 adds r1, r6, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldr r0, [r5, 0x14] cmp r0, 0 @@ -3485,7 +3485,7 @@ sub_805EC4C: lsls r0, r2, 16 asrs r0, 16 asrs r1, r2, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x10] mov r8, r0 cmp r0, 0 @@ -3719,7 +3719,7 @@ _0805EE42: b _0805EF52 _0805EE4E: adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xD @@ -4818,7 +4818,7 @@ _0805F742: movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x14] cmp r4, 0 bne _0805F75C @@ -6609,7 +6609,7 @@ _0806063C: ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x14] bl GetItemData adds r7, r0, 0 @@ -7231,7 +7231,7 @@ _08060B3C: ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x14] cmp r0, 0 bne _08060B68 @@ -14514,7 +14514,7 @@ sub_806455C: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, _080645D0 ldr r2, [r0] @@ -14658,7 +14658,7 @@ _08064640: ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x14] cmp r4, 0 bne _080646B8 @@ -19433,7 +19433,7 @@ _08066D68: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 @@ -19582,7 +19582,7 @@ _08066EA8: ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x14] cmp r0, 0 beq _08066ECC @@ -19708,7 +19708,7 @@ sub_8066FA4: ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 mov r10, r0 adds r0, r7, 0 movs r1, 0 @@ -23721,7 +23721,7 @@ sub_8068F80: cmp r5, 0 beq _08068FCC adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] lsrs r0, 5 movs r1, 0x1 @@ -23759,7 +23759,7 @@ sub_8068FE0: asrs r1, 16 mov r9, r1 ldr r7, [r0, 0x70] - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r4, r0, 0 ldr r0, [sp, 0x74] cmp r0, 0 @@ -24352,7 +24352,7 @@ sub_80694C0: mov r9, r3 adds r0, r7, 0 mov r1, r8 - bl GetMapEntity + bl GetMapTile_2 mov r10, r0 ldr r5, [r4, 0x70] adds r6, r5, 0 @@ -24399,7 +24399,7 @@ _08069522: blt _08069552 adds r1, r0, 0 adds r0, r2, 0 - bl GetMapEntity + bl GetMapTile_2 adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, r4 @@ -24546,7 +24546,7 @@ _08069622: _08069648: adds r0, r6, 0 adds r1, r7, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 @@ -24587,7 +24587,7 @@ _0806967C: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r0, [r0, 0x10] _0806969E: pop {r4,r5} @@ -24624,7 +24624,7 @@ sub_80696A8: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r1, [r0, 0x10] cmp r1, 0 beq _080696F4 @@ -24679,7 +24679,7 @@ sub_80696FC: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 adds r0, r4, 0 mov r1, sp @@ -24745,7 +24745,7 @@ sub_806977C: movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 mov r6, sp adds r0, r4, 0 mov r1, sp @@ -24777,7 +24777,7 @@ sub_806977C: ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r6, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 adds r0, r4, 0 mov r1, sp diff --git a/asm/code_8069E0C.s b/asm/code_8069E0C.s index 151cdcf..0562664 100644 --- a/asm/code_8069E0C.s +++ b/asm/code_8069E0C.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_8069E0C sub_8069E0C: push {r4-r7,lr} @@ -850,7 +850,7 @@ _0806A488: movs r2, 0x6 ldrsh r1, [r6, r2] adds r1, r7 - bl GetMapEntity + bl GetMapTile_2 adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 @@ -1029,7 +1029,7 @@ sub_806A5B8: b _0806A6D2 _0806A5CE: adds r0, r6, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 @@ -2565,7 +2565,7 @@ sub_806B168: adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] str r0, [sp, 0x2C] movs r3, 0 @@ -2764,7 +2764,7 @@ _0806B2D2: ldrsh r1, [r1, r4] adds r1, r6, r1 str r3, [sp, 0x38] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r3, [sp, 0x38] @@ -2831,7 +2831,7 @@ _0806B366: movs r3, 0 ldrsh r1, [r1, r3] adds r1, r6, r1 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 mov r4, r8 movs r2, 0xE @@ -2987,7 +2987,7 @@ _0806B4AE: asrs r0, r5, 16 asrs r4, 16 adds r1, r4, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r2, 0 @@ -3050,7 +3050,7 @@ _0806B51C: mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r2, [sp, 0x2C] @@ -3116,7 +3116,7 @@ _0806B5A8: mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] @@ -3166,7 +3166,7 @@ _0806B606: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r5, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] @@ -3324,7 +3324,7 @@ _0806B740: _0806B748: adds r0, r5, 0 adds r1, r7, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0, 0x4] movs r0, 0x8 ands r0, r1 @@ -3426,7 +3426,7 @@ sub_806B7F8: ldrsh r0, [r6, r1] movs r2, 0xE ldrsh r1, [r6, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 movs r3, 0 ldrsh r0, [r6, r3] @@ -3572,7 +3572,7 @@ _0806B930: _0806B932: mov r0, r9 mov r1, r10 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 adds r0, r4, 0 bl sub_807034C diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s index d4383f7..509da75 100644 --- a/asm/code_806CD90.s +++ b/asm/code_806CD90.s @@ -142,7 +142,7 @@ _0806CF94: .4byte 0x000135cc sub_806CF98: push {r4-r7,lr} adds r4, r0, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] movs r5, 0x3 ands r5, r0 @@ -1123,7 +1123,7 @@ _0806D760: cmp r0, 0 beq _0806D796 adds r0, r7, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 mov r8, r0 movs r0, 0x14 movs r1, 0x18 diff --git a/asm/code_807034C.s b/asm/code_807034C.s index 8ce57cc..c8f4d56 100644 --- a/asm/code_807034C.s +++ b/asm/code_807034C.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_807034C sub_807034C: push {r4,lr} @@ -67,7 +67,7 @@ sub_80703A0: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -203,7 +203,7 @@ sub_807049C: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -309,7 +309,7 @@ sub_8070564: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -387,7 +387,7 @@ sub_80705F0: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] @@ -480,7 +480,7 @@ sub_80706A4: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] diff --git a/asm/code_8070E3C.s b/asm/code_8070E3C.s index 7af381e..3f644aa 100644 --- a/asm/code_8070E3C.s +++ b/asm/code_8070E3C.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_8070E3C sub_8070E3C: push {r4-r7,lr} @@ -30,7 +30,7 @@ sub_8070E3C: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -89,7 +89,7 @@ _08070EDC: ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -133,7 +133,7 @@ sub_8070F14: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -147,7 +147,7 @@ sub_8070F14: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldr r1, _08070F74 movs r0, 0x7 @@ -195,7 +195,7 @@ sub_8070F80: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -254,7 +254,7 @@ _08071020: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -304,7 +304,7 @@ sub_8071058: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x10 @@ -368,7 +368,7 @@ _08071100: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 adds r1, r4, 0 adds r1, 0xA @@ -422,7 +422,7 @@ _08071152: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x10 @@ -481,7 +481,7 @@ _080711DC: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 adds r1, r2, 0 adds r1, 0xA @@ -537,7 +537,7 @@ CanMoveForward: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldrh r1, [r5] movs r0, 0x10 @@ -661,7 +661,7 @@ _08071348: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r0, 0xA adds r0, r6 ldr r2, _08071374 @@ -781,7 +781,7 @@ _08071432: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r0, 0xA adds r0, r5 ldrb r0, [r0] diff --git a/asm/code_80718D8.s b/asm/code_80718D8.s index 030fd72..f1fe7a5 100644 --- a/asm/code_80718D8.s +++ b/asm/code_80718D8.s @@ -189,7 +189,7 @@ _08071C08: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 @@ -2247,7 +2247,7 @@ _08072C0C: movs r3, 0x6 ldrsh r2, [r7, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldr r0, _08072C80 bl sub_807034C diff --git a/asm/code_8073CF0.s b/asm/code_8073CF0.s index 36da354..a948a4d 100644 --- a/asm/code_8073CF0.s +++ b/asm/code_8073CF0.s @@ -39,7 +39,7 @@ sub_8073D14: sub sp, 0xB0 adds r6, r0, 0 ldr r4, [r6, 0x70] - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldr r5, [r0, 0x14] cmp r5, 0 bne _08073D30 @@ -3242,7 +3242,7 @@ sub_8075708: cmp r0, 0 beq _0807580C adds r0, r4, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r5, r0, 0 adds r0, r4, 0 movs r1, 0xD diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s index def36e3..f07f25e 100644 --- a/asm/code_8075BA4.s +++ b/asm/code_8075BA4.s @@ -860,7 +860,7 @@ _08076292: _08076298: .4byte gUnknown_80FCE84 _0807629C: adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -966,7 +966,7 @@ _08076362: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1198,7 +1198,7 @@ _08076544: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1421,7 +1421,7 @@ _08076714: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -1542,7 +1542,7 @@ _08076814: _0807682C: .4byte gUnknown_80FCE00 _08076830: adds r0, r5, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -3545,7 +3545,7 @@ _08077874: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x10] adds r0, r4, 0 bl EntityExists @@ -9836,7 +9836,7 @@ sub_807AB38: _0807AB54: adds r0, r2, 0 str r2, [sp, 0x1A4] - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r1, [r0] movs r0, 0x40 ands r0, r1 @@ -9898,7 +9898,7 @@ _0807ABC6: adds r0, r4, 0 adds r1, r6, 0 str r2, [sp, 0x1A4] - bl GetMapEntity + bl GetMapTile_2 adds r1, r0, 0 ldr r0, [r1, 0x10] ldr r2, [sp, 0x1A4] @@ -9988,7 +9988,7 @@ _0807AC72: adds r0, r4, 0 adds r1, r6, 0 str r2, [sp, 0x1A4] - bl GetMapEntity + bl GetMapTile_2 adds r1, r0, 0 ldr r0, [r1, 0x10] ldr r2, [sp, 0x1A4] @@ -10300,7 +10300,7 @@ CanTakeItem: cmp r0, 0 bne _0807AF50 adds r0, r4, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 adds r6, r0, 0 ldr r4, [r6, 0x14] cmp r4, 0 @@ -10658,7 +10658,7 @@ _0807B17C: ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0807B1C4 @@ -10712,7 +10712,7 @@ _0807B1FA: _0807B200: adds r0, r4, 0 adds r1, r5, 0 - bl GetMapEntity + bl GetMapTile_2 ldr r0, [r0, 0x14] cmp r0, 0 beq _0807B216 @@ -11372,7 +11372,7 @@ _0807B6FE: ldrsh r0, [r7, r4] movs r2, 0x6 ldrsh r1, [r7, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -11400,7 +11400,7 @@ _0807B71E: lsls r0, r5, 16 asrs r0, 16 asrs r1, r5, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] cmp r0, r10 beq _0807B758 @@ -11848,7 +11848,7 @@ _0807BAA2: ldrsh r0, [r6, r1] movs r2, 0x6 ldrsh r1, [r6, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x8 ands r0, r1 @@ -11878,7 +11878,7 @@ _0807BAC4: adds r5, r2, r0 mov r0, r8 adds r1, r5, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] cmp r0, 0xFF bne _0807BB04 diff --git a/asm/code_807C4A0.s b/asm/code_807C4A0.s index 03c4fbc..865f009 100644 --- a/asm/code_807C4A0.s +++ b/asm/code_807C4A0.s @@ -584,7 +584,7 @@ _0807C8BE: movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r5, [r0, 0x10] cmp r5, 0 beq _0807C948 diff --git a/asm/code_807CD9C.s b/asm/code_807CD9C.s index f5de8e0..978bf1d 100644 --- a/asm/code_807CD9C.s +++ b/asm/code_807CD9C.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_807CD9C sub_807CD9C: push {r4-r7,lr} @@ -167,7 +167,7 @@ _0807CED8: ldrsh r0, [r7, r1] ldr r1, [sp, 0x18] asrs r1, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r5, r0, 0 ldr r0, [r5, 0x10] cmp r0, 0 @@ -902,7 +902,7 @@ _0807D4DC: .4byte gUnknown_80FD320 thumb_func_start sub_807D4E0 sub_807D4E0: push {r4,lr} - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r4, [r0, 0x14] cmp r4, 0 beq _0807D506 @@ -990,7 +990,7 @@ _0807D580: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r2, 0x3 adds r0, r2, 0 @@ -1190,7 +1190,7 @@ _0807D6DA: lsls r0, r6, 16 asrs r0, 16 asrs r1, r6, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r3, 0x3 @@ -1631,7 +1631,7 @@ _0807DA8C: bgt _0807DB00 adds r0, r5, 0 adds r1, r4, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 @@ -1752,7 +1752,7 @@ _0807DBB6: _0807DBB8: adds r0, r4, 0 adds r1, r5, 0 - bl GetMapEntity + bl GetMapTile_2 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 @@ -1892,7 +1892,7 @@ _0807DCD8: movs r6, 0 adds r0, r5, 0 adds r1, r4, 0 - bl GetMapEntity + bl GetMapTile_2 adds r2, r0, 0 ldrh r1, [r2] ldr r3, _0807DD6C @@ -2015,7 +2015,7 @@ _0807DDC8: _0807DDCA: adds r0, r5, 0 adds r1, r4, 0 - bl GetMapEntity + bl GetMapTile_2 adds r2, r0, 0 ldrh r1, [r2] movs r3, 0x80 @@ -2062,7 +2062,7 @@ _0807DE1A: beq _0807DE30 adds r0, r5, 0 adds r1, r4, 0 - bl GetMapEntity + bl GetMapTile_2 ldrh r2, [r0] movs r1, 0x40 orrs r1, r2 @@ -2095,7 +2095,7 @@ _0807DE46: ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 @@ -2323,7 +2323,7 @@ _0807E014: bgt _0807E112 cmp r1, 0x1F bgt _0807E112 - bl GetMapEntity + bl GetMapTile_2 mov r8, r0 ldr r0, [sp, 0x18] movs r2, 0 @@ -3815,7 +3815,7 @@ _0807EC46: ldrb r0, [r0] str r0, [sp, 0x8] adds r0, r7, 0 - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] lsrs r0, 5 mov r10, r0 @@ -4062,7 +4062,7 @@ _0807EE22: ldrsh r0, [r6, r2] asrs r1, 16 str r3, [sp, 0x18] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r0, [r0, 0x9] ldr r3, [sp, 0x18] cmp r0, 0xFF @@ -4238,7 +4238,7 @@ sub_807EF84: cmp r4, 0 beq _0807EFE2 bl GetLeaderEntity - bl GetMapEntityForDungeonEntity + bl GetMapTileForDungeonEntity_2 ldrh r1, [r0] movs r0, 0x20 ands r0, r1 @@ -4363,7 +4363,7 @@ _0807F09A: str r0, [sp, 0x4] adds r0, r6, 0 adds r1, r5, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 @@ -4555,7 +4555,7 @@ _0807F23C: _0807F240: adds r0, r6, 0 adds r1, r5, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldrh r1, [r4] movs r0, 0x20 @@ -4699,7 +4699,7 @@ _0807F360: _0807F364: adds r0, r6, 0 adds r1, r5, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 @@ -5300,7 +5300,7 @@ _0807F7FC: adds r4, r2, 0 movs r3, 0x2 ldrsh r1, [r4, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldr r6, [r0, 0x10] adds r0, r6, 0 bl EntityExists @@ -5538,7 +5538,7 @@ _0807FA1E: _0807FA22: adds r0, r5, 0 adds r1, r6, 0 - bl GetMapEntity + bl GetMapTile_2 adds r4, r0, 0 ldrh r1, [r4, 0x4] movs r0, 0x4 @@ -5651,7 +5651,7 @@ _0807FAF8: movs r6, 0 adds r0, r5, 0 mov r1, r8 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 @@ -5850,7 +5850,7 @@ CanLayTrap: movs r3, 0x2 ldrsh r1, [r0, r3] adds r0, r2, 0 - bl GetMapEntity + bl GetMapTile_2 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 @@ -5904,7 +5904,7 @@ sub_807FCD4: ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] - bl GetMapEntity + bl GetMapTile_2 adds r6, r0, 0 cmp r5, 0x13 bls _0807FD12 @@ -6058,7 +6058,7 @@ sub_807FE04: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] - bl GetMapEntity + bl GetMapTile_2 adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 @@ -6094,7 +6094,7 @@ sub_807FE44: ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r2, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x14] cmp r0, 0 @@ -6152,7 +6152,7 @@ sub_807FE9C: ldrsh r0, [r1, r2] movs r3, 0x2 ldrsh r1, [r1, r3] - bl GetMapEntity + bl GetMapTile_2 str r0, [sp, 0x4] ldr r0, [r0, 0x14] mov r10, r0 @@ -7449,7 +7449,7 @@ _080808E2: ldrsh r0, [r5, r2] movs r3, 0x2 ldrsh r1, [r5, r3] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r1, [r0, 0x9] cmp r1, 0xFF bne _0808090A @@ -7502,7 +7502,7 @@ _0808093E: _0808094A: adds r0, r6, 0 adds r1, r7, 0 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r4, r0, 0 ldr r0, [r4, 0x14] adds r2, r6, 0x1 @@ -10300,7 +10300,7 @@ _080820FC: mov r3, sp movs r2, 0x6 ldrsh r1, [r3, r2] - bl GetMapEntity + bl GetMapTile_2 adds r4, r0, 0 ldrb r0, [r7] mov r3, r9 @@ -11074,7 +11074,7 @@ _08082856: add r3, sp movs r2, 0 ldrsh r1, [r3, r2] - bl GetMapEntity + bl GetMapTile_2 ldr r1, [r4] str r1, [r7, 0x8] ldr r1, [r4] @@ -11487,7 +11487,7 @@ _08082B46: ldrsh r0, [r5, r1] movs r2, 0x6 ldrsh r1, [r5, r2] - bl GetMapEntity + bl GetMapTile_2 ldrb r1, [r0, 0x9] adds r0, r5, 0 adds r0, 0x25 diff --git a/asm/code_808333C.s b/asm/code_808333C.s index bd38800..87beca7 100644 --- a/asm/code_808333C.s +++ b/asm/code_808333C.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start InSameRoom_3 InSameRoom_3: push {r4-r6,lr} @@ -14,7 +14,7 @@ InSameRoom_3: ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrb r2, [r0, 0x9] cmp r2, 0xFF beq _08083394 @@ -107,7 +107,7 @@ sub_80833E8: ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldr r0, _08083438 ldr r3, [r0] @@ -253,7 +253,7 @@ _080834F8: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -292,7 +292,7 @@ _0808353E: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl GetMapTileAtPosition + bl GetMapTile_1 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -618,7 +618,7 @@ _0808379C: ldr r2, _0808380C add r2, sp str r3, [r2] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r2, r0, 0 ldr r0, _08083810 ldr r1, _0808380C @@ -730,7 +730,7 @@ _0808386A: adds r0, r5, 0 adds r1, r4, 0 str r3, [sp] - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 ldrh r2, [r1] movs r7, 0x80 diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s index 3b54680..01d27da 100644 --- a/asm/code_80848F0.s +++ b/asm/code_80848F0.s @@ -218,7 +218,7 @@ _080853EE: lsls r0, r4, 16 asrs r0, 16 asrs r1, r4, 16 - bl GetMapTileAtPosition + bl GetMapTile_1 adds r1, r0, 0 mov r0, r8 bl sub_807034C diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s index 9055379..ef24a1c 100644 --- a/asm/jirachi_wish.s +++ b/asm/jirachi_wish.s @@ -157,7 +157,7 @@ _0808B6D2: movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 - bl GetMapEntity + bl GetMapTile_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -241,7 +241,7 @@ _0808B77E: movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 - bl GetMapEntity + bl GetMapTile_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 @@ -391,7 +391,7 @@ _0808B8F4: movs r2, 0 ldrsh r0, [r7, r2] asrs r1, 16 - bl GetMapEntity + bl GetMapTile_2 ldrh r1, [r0] movs r0, 0x3 ands r0, r1 diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h index 948603e..74e052e 100644 --- a/include/dungeon_global_data.h +++ b/include/dungeon_global_data.h @@ -71,7 +71,7 @@ struct DungeonGlobalData /* 0xE277 */ u8 mudSportTurnsLeft; /* 0xE278 */ u8 waterSportTurnsLeft; u8 fillE279[0xE8C0 - 0xE279]; - /* 0xE8C0 */ struct MapTile* mapEntityPointers[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X]; + /* 0xE8C0 */ struct MapTile* mapTilePointers[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X]; u8 fill104C0[0x104C4 - 0x104C0]; /* 0x104C4 */ struct MapRoom roomData[MAX_ROOM_COUNT]; u8 fill10764[0x10844 - 0x10764]; diff --git a/include/dungeon_map_access.h b/include/dungeon_map_access.h index 5e4e3da..c715483 100644 --- a/include/dungeon_map_access.h +++ b/include/dungeon_map_access.h @@ -3,7 +3,14 @@ #include "map.h" +struct unkStruct_202F190 +{ + struct MapTile* unk0[6]; +}; + // 0x4954C -struct MapTile* GetMapTileAtPosition(s32 x, s32 y); +struct MapTile* GetMapTile_1(s32 x, s32 y); +// 0x49590 +struct MapTile* GetMapTile_2(s32 x, s32 y); #endif diff --git a/include/dungeon_util.h b/include/dungeon_util.h index 4d91b29..b32b85d 100644 --- a/include/dungeon_util.h +++ b/include/dungeon_util.h @@ -15,6 +15,6 @@ u32 GetEntityType(struct DungeonEntity *entity); struct DungeonEntityData *GetTrapData(struct DungeonEntity *entity); // 0x45108 struct ItemSlot *GetItemData(struct DungeonEntity *entity); -struct MapTile *GetMapEntityForDungeonEntity(struct DungeonEntity *entity); +struct MapTile *GetMapTileForDungeonEntity_2(struct DungeonEntity *entity); #endif diff --git a/ld_script.txt b/ld_script.txt index 790721e..a03b217 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -200,7 +200,7 @@ SECTIONS { asm/code_8048480.o(.text); src/dungeon_ai_item_weight.o(.text); src/dungeon_map_access.o(.text); - asm/code_8049590.o(.text); + asm/code_80495E4.o(.text); src/code_80521D0.o(.text); asm/code_80521D0.o(.text); src/charge_move.o(.text); diff --git a/src/code_8040094.c b/src/code_8040094.c index c0e7eac..f7374e3 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -3,6 +3,7 @@ #include "code_80521D0.h" #include "dungeon_entity.h" #include "dungeon_global_data.h" +#include "dungeon_map_access.h" #include "file_system.h" #include "play_time.h" @@ -26,8 +27,6 @@ extern void sub_8040A84(); extern const char *gUnknown_80FD040; // It became brighter on the floor -extern struct MapTile *GetMapEntity(u32, u32); - // Luminous Orb??? void HandleLuminousOrbAction(struct DungeonEntity *param_1) { @@ -41,7 +40,7 @@ void HandleLuminousOrbAction(struct DungeonEntity *param_1) { for(XCoord = 0; XCoord < DUNGEON_MAX_SIZE_X; XCoord++) { - mapTile = GetMapEntity(XCoord, YCoord); + mapTile = GetMapTile_2(XCoord, YCoord); mapTile->unk4 = mapTile->unk4 | 1; } } diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c index 2b23a14..53f5586 100644 --- a/src/code_80521D0_1.c +++ b/src/code_80521D0_1.c @@ -3,6 +3,7 @@ #include "constants/friend_area.h" #include "dungeon_global_data.h" #include "dungeon_entity.h" +#include "dungeon_map_access.h" #include "dungeon_random.h" #include "dungeon_util.h" #include "friend_area.h" @@ -138,7 +139,6 @@ extern void sub_8049ED4(); extern void sub_8040A84(); extern void sub_8086A54(struct DungeonEntity *); -extern struct MapTile *GetMapEntity(u32, u32); extern void sub_806BFC0(struct DungeonEntityData *, u32); void sub_808BBA8(struct DungeonEntity *param_1) @@ -207,7 +207,7 @@ void sub_808BCE4(void) { struct MapTile *puVar1; - puVar1 = GetMapEntity(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E); + puVar1 = GetMapTile_2(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E); puVar1->tileType &= ~(TILE_TYPE_FLOOR | TILE_TYPE_LIQUID); puVar1->tileType |= TILE_TYPE_MAP_EDGE; puVar1->tileType &= ~TILE_TYPE_STAIRS; @@ -221,7 +221,7 @@ void sub_808BD38(void) { struct MapTile *puVar1; - puVar1 = GetMapEntity(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E); + puVar1 = GetMapTile_2(gDungeonGlobalData->unkE23C, gDungeonGlobalData->unkE23E); puVar1->tileType &= ~(TILE_TYPE_FLOOR | TILE_TYPE_LIQUID); puVar1->tileType |= TILE_TYPE_FLOOR; puVar1->tileType &= ~TILE_TYPE_MAP_EDGE; diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index f3a7db2..0d48f71 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -3318,7 +3318,7 @@ void sub_808B1CC(u8 r0) "\tldrsh r0, [r0, r2]\n" "\tmovs r3, 0x2\n" "\tldrsh r1, [r5, r3]\n" - "\tbl GetMapEntity\n" + "\tbl GetMapTile_2\n" "\tldrh r2, [r0]\n" "\tmovs r3, 0x80\n" "\tlsls r3, 2\n" diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index a275081..092bab5 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -377,7 +377,7 @@ s32 FindMoveTarget(struct MoveTargetResults *moveTargetResults, struct DungeonEn { // Double assignment to fix a regswap. s16 rangeTargetingFlags = rangeTargetingFlags2 = targetingFlags & 0xF0; - struct MapTile *adjacentTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x, + struct MapTile *adjacentTile = GetMapTile_1(pokemon->posWorld.x + gAdjacentTileOffsets[i].x, pokemon->posWorld.y + gAdjacentTileOffsets[i].y); struct DungeonEntity *adjacentPokemon = adjacentTile->pokemon; if (adjacentPokemon != NULL && GetEntityType(adjacentPokemon) == ENTITY_POKEMON) @@ -411,7 +411,7 @@ s32 FindMoveTarget(struct MoveTargetResults *moveTargetResults, struct DungeonEn { for (i = 0; i < NUM_DIRECTIONS; i++) { - struct MapTile *targetTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x, + struct MapTile *targetTile = GetMapTile_1(pokemon->posWorld.x + gAdjacentTileOffsets[i].x, pokemon->posWorld.y + gAdjacentTileOffsets[i].y); if (CanAttackInFront(pokemon, i)) { @@ -425,7 +425,7 @@ s32 FindMoveTarget(struct MoveTargetResults *moveTargetResults, struct DungeonEn continue; } } - targetTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[i].x * 2, + targetTile = GetMapTile_1(pokemon->posWorld.x + gAdjacentTileOffsets[i].x * 2, pokemon->posWorld.y + gAdjacentTileOffsets[i].y * 2); targetPokemon = targetTile->pokemon; if (targetPokemon != NULL && GetEntityType(targetPokemon) == ENTITY_POKEMON) diff --git a/src/dungeon_ai_attack_1.c b/src/dungeon_ai_attack_1.c index 8a186ea..641bc8c 100644 --- a/src/dungeon_ai_attack_1.c +++ b/src/dungeon_ai_attack_1.c @@ -57,7 +57,7 @@ bool8 IsTargetStraightAhead(struct DungeonEntity *pokemon, struct DungeonEntity break; } while (0); // Extra label needed to swap branch locations in ASM. - mapTile = GetMapTileAtPosition(currentPosX, currentPosY); + mapTile = GetMapTile_1(currentPosX, currentPosY); if (!(mapTile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID))) { break; diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c index 5006970..08652b2 100644 --- a/src/dungeon_ai_item_weight.c +++ b/src/dungeon_ai_item_weight.c @@ -448,7 +448,7 @@ bool8 CanTargetAdjacentPokemon(struct DungeonEntity *pokemon) s32 facingDir; for (facingDir = 0; facingDir < NUM_DIRECTIONS; facingDir++) { - struct MapTile *mapTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[facingDir].x, pokemon->posWorld.y + gAdjacentTileOffsets[facingDir].y); + struct MapTile *mapTile = GetMapTile_1(pokemon->posWorld.x + gAdjacentTileOffsets[facingDir].x, pokemon->posWorld.y + gAdjacentTileOffsets[facingDir].y); struct DungeonEntity *adjacentPokemon = mapTile->pokemon; if (adjacentPokemon != NULL && GetEntityType(adjacentPokemon) != ENTITY_NONE && CanTarget(pokemon, adjacentPokemon, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET) diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index 183d143..52aacc4 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -158,7 +158,7 @@ void DecideUseItem(struct DungeonEntity *pokemon) else if (toolboxIndex == 0) { // This seems unused. toolboxIndex can never be 0. - struct MapTile *mapTile = GetMapTileAtPosition(pokemon->posWorld.x, pokemon->posWorld.y); + struct MapTile *mapTile = GetMapTile_1(pokemon->posWorld.x, pokemon->posWorld.y); struct DungeonEntity *mapObject = mapTile->mapObject; if (mapObject != null) { diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index 5fa6d87..49609d7 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -49,7 +49,7 @@ u32 sub_8075818(struct DungeonEntity *entity) entityData = entity->entityData; if(EntityExists(entity)) { - tile = GetMapEntityForDungeonEntity(entity); + tile = GetMapTileForDungeonEntity_2(entity); if(HasIQSkill(entity, IQ_SKILL_SUPER_MOBILE)) if(!(tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID))) return 1; @@ -136,7 +136,7 @@ void sub_8075900(struct DungeonEntity *pokemon, u8 r1) { if(!gDungeonGlobalData->monsterHouseActive) { - if((GetMapEntityForDungeonEntity(pokemon)->tileType & TILE_TYPE_MONSTER_HOUSE)) + if((GetMapTileForDungeonEntity_2(pokemon)->tileType & TILE_TYPE_MONSTER_HOUSE)) { // It's a monster house! SendMessage(GetLeaderEntity(), gPtrItsaMonsterHouseMessage); diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c index e6ec6fa..605f9e9 100644 --- a/src/dungeon_capabilities_1.c +++ b/src/dungeon_capabilities_1.c @@ -89,7 +89,7 @@ bool8 CannotAttack(struct DungeonEntity *pokemon, bool8 skipSleep) bool8 CanMoveInDirection(struct DungeonEntity *pokemon, u32 facingDir) { u8 crossableTerrain = GetCrossableTerrain(pokemon->entityData->entityID); - struct MapTile *currentMapTile = GetMapTileAtPosition(pokemon->posWorld.x + gAdjacentTileOffsets[facingDir].x, + struct MapTile *currentMapTile = GetMapTile_1(pokemon->posWorld.x + gAdjacentTileOffsets[facingDir].x, pokemon->posWorld.y + gAdjacentTileOffsets[facingDir].y); if (currentMapTile->tileType & TILE_TYPE_MAP_EDGE || currentMapTile->pokemon != NULL) { @@ -118,7 +118,7 @@ bool8 CanMoveInDirection(struct DungeonEntity *pokemon, u32 facingDir) } } } - currentMapTile = GetMapTileAtPosition(pokemon->posWorld.x, pokemon->posWorld.y); + currentMapTile = GetMapTile_1(pokemon->posWorld.x, pokemon->posWorld.y); if (!(currentMapTile->canMoveAdjacent[crossableTerrain] & gDirectionBitMasks[facingDir & DIRECTION_MASK])) { return FALSE; diff --git a/src/dungeon_map_access.c b/src/dungeon_map_access.c index 43e0e4d..9ffa633 100644 --- a/src/dungeon_map_access.c +++ b/src/dungeon_map_access.c @@ -3,13 +3,25 @@ #include "dungeon_global_data.h" -extern struct MapTile *gUnknown_203B430; +extern struct unkStruct_202F190 gUnknown_202F190; +extern struct unkStruct_202F190 *gUnknown_203B430; -struct MapTile* GetMapTileAtPosition(s32 x, s32 y) +struct MapTile* GetMapTile_1(s32 x, s32 y) { if (x >= 0 && y >= 0 && x < DUNGEON_MAX_SIZE_X && y < DUNGEON_MAX_SIZE_Y) { - return gDungeonGlobalData->mapEntityPointers[y][x]; + return gDungeonGlobalData->mapTilePointers[y][x]; } - return gUnknown_203B430; + return (struct MapTile*) gUnknown_203B430->unk0; +} + +struct MapTile* GetMapTile_2(s32 x, s32 y) +{ + if (x < 0 || y < 0 || x >= DUNGEON_MAX_SIZE_X || y >= DUNGEON_MAX_SIZE_Y) + { + struct MapTile* tile = (struct MapTile*) gUnknown_202F190.unk0; + gUnknown_202F190 = *gUnknown_203B430; + return tile; + } + return gDungeonGlobalData->mapTilePointers[y][x]; } diff --git a/src/dungeon_range.c b/src/dungeon_range.c index facd71d..00b827d 100644 --- a/src/dungeon_range.c +++ b/src/dungeon_range.c @@ -14,7 +14,7 @@ bool8 InSameRoom_2(struct Position *pos1, struct Position *pos2) { visibility = 2; } - tile1 = GetMapTileAtPosition(pos1->x, pos1->y); + tile1 = GetMapTile_1(pos1->x, pos1->y); pos1RoomIndex = tile1->roomIndex; if (pos1RoomIndex == CORRIDOR_ROOM_INDEX) { diff --git a/src/dungeon_util.c b/src/dungeon_util.c index c5b5695..1d443c0 100644 --- a/src/dungeon_util.c +++ b/src/dungeon_util.c @@ -14,8 +14,6 @@ const struct Position gAdjacentTileOffsets[] = { {-1, 1} }; -extern struct MapTile* GetMapEntity(s16, s16); - bool8 EntityExists(struct DungeonEntity *entity) { if (!entity) @@ -55,12 +53,12 @@ struct DungeonEntityData* sub_8045110(struct DungeonEntity *entity) return entity->entityData; } -struct MapTile* GetMapTileForDungeonEntity(struct DungeonEntity *entity) +struct MapTile* GetMapTileForDungeonEntity_1(struct DungeonEntity *entity) { - return GetMapTileAtPosition(entity->posWorld.x, entity->posWorld.y); + return GetMapTile_1(entity->posWorld.x, entity->posWorld.y); } -struct MapTile* GetMapEntityForDungeonEntity(struct DungeonEntity *entity) +struct MapTile* GetMapTileForDungeonEntity_2(struct DungeonEntity *entity) { - return GetMapEntity(entity->posWorld.x, entity->posWorld.y); + return GetMapTile_2(entity->posWorld.x, entity->posWorld.y); } diff --git a/src/status_checker.c b/src/status_checker.c index 379082f..7fbfc51 100644 --- a/src/status_checker.c +++ b/src/status_checker.c @@ -348,14 +348,14 @@ bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct Pokemo } break; case MOVE_DIVE: - if (IsTileGround(GetMapEntityForDungeonEntity(pokemon))) + if (IsTileGround(GetMapTileForDungeonEntity_2(pokemon))) { return FALSE; } break; case MOVE_DIG: { - struct MapTile *tile = GetMapEntityForDungeonEntity(pokemon); + struct MapTile *tile = GetMapTileForDungeonEntity_2(pokemon); if (!IsTileGround(tile) || (tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) != TILE_TYPE_FLOOR) { return FALSE; @@ -364,7 +364,7 @@ bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct Pokemo } case MOVE_TRAP_BUSTER: { - struct DungeonEntity *mapObject = GetMapEntityForDungeonEntity(pokemon)->mapObject; + struct DungeonEntity *mapObject = GetMapTileForDungeonEntity_2(pokemon)->mapObject; if (mapObject == NULL || GetEntityType(mapObject) != ENTITY_TRAP) { return FALSE; -- cgit v1.2.3