From 4aafa434a61c07b70e6bc2364ab6f63c7e2c4169 Mon Sep 17 00:00:00 2001 From: AnonymousRandomPerson Date: Sun, 20 Feb 2022 23:43:06 -0500 Subject: Decomped IsTileGround() --- asm/code_80495E4.s | 15098 +------------------------------------------------ asm/code_804AF74.s | 15059 ++++++++++++++++++++++++++++++++++++++++++++++++ data/data_810AC60.s | 22 - include/tile_types.h | 13 + ld_script.txt | 3 + src/status_checker.c | 2 +- src/tile_types.c | 103 + 7 files changed, 15180 insertions(+), 15120 deletions(-) create mode 100644 asm/code_804AF74.s create mode 100644 include/tile_types.h create mode 100644 src/tile_types.c diff --git a/asm/code_80495E4.s b/asm/code_80495E4.s index 47aa04a..58b1087 100644 --- a/asm/code_80495E4.s +++ b/asm/code_80495E4.s @@ -3327,15100 +3327,4 @@ _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 + .align 2, 0 \ No newline at end of file diff --git a/asm/code_804AF74.s b/asm/code_804AF74.s new file mode 100644 index 0000000..12fa236 --- /dev/null +++ b/asm/code_804AF74.s @@ -0,0 +1,15059 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + 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/data/data_810AC60.s b/data/data_810AC60.s index d12480b..c1730f5 100644 --- a/data/data_810AC60.s +++ b/data/data_810AC60.s @@ -92,25 +92,3 @@ gBlastBurnIQReq: @ 810ACBC .global gVoltTackleIQReq gVoltTackleIQReq: @ 810ACBE .2byte 333 - - .global gDungeonWaterType -gDungeonWaterType: @ 810ACC0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x02 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x01 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 diff --git a/include/tile_types.h b/include/tile_types.h new file mode 100644 index 0000000..2096201 --- /dev/null +++ b/include/tile_types.h @@ -0,0 +1,13 @@ +#ifndef GUARD_TILE_TYPES_H +#define GUARD_TILE_TYPES_H + +#include "map.h" + +#define DUNGEON_WATER_TYPE_NONE 0 +#define DUNGEON_WATER_TYPE_LAVA 1 +#define DUNGEON_WATER_TYPE_WATER 2 + +// 0x4AF20 +bool8 IsTileGround(struct MapTile* tile); + +#endif diff --git a/ld_script.txt b/ld_script.txt index 7d0298a..4885780 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -201,6 +201,8 @@ SECTIONS { src/dungeon_ai_item_weight.o(.text); src/dungeon_map_access.o(.text); asm/code_80495E4.o(.text); + src/tile_types.o(.text); + asm/code_804AF74.o(.text); src/code_80521D0.o(.text); asm/code_80521D0.o(.text); src/charge_move.o(.text); @@ -423,6 +425,7 @@ SECTIONS { data/data_8107010.o(.rodata); src/friend_area.o(.rodata); data/data_810AC60.o(.rodata); + src/tile_types.o(.rodata); src/exclusive_pokemon.o(.rodata); src/rescue_team_info.o(.rodata); src/text_util.o(.rodata); diff --git a/src/status_checker.c b/src/status_checker.c index e0bf251..667f0cb 100644 --- a/src/status_checker.c +++ b/src/status_checker.c @@ -13,6 +13,7 @@ #include "map.h" #include "number_util.h" #include "status_checks_1.h" +#include "tile_types.h" #include "weather.h" // Array indices correspond to the current dungeon tileset. @@ -95,7 +96,6 @@ const u8 gDungeonCamouflageTypes[76] = { TYPE_ROCK }; -extern bool8 IsTileGround(struct MapTile*); extern bool8 CanLayTrap(struct Position*); bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct PokemonMove *move) diff --git a/src/tile_types.c b/src/tile_types.c new file mode 100644 index 0000000..fe28d9d --- /dev/null +++ b/src/tile_types.c @@ -0,0 +1,103 @@ +#include "global.h" +#include "tile_types.h" + +#include "dungeon_global_data.h" + +const u8 gDungeonWaterType[] = { + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_WATER, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_WATER, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_LAVA, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_LAVA, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_LAVA, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_LAVA, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, + DUNGEON_WATER_TYPE_NONE, +}; + +extern bool8 IsWaterTileset(); + +bool8 IsTileGround(struct MapTile* tile) +{ + bool8 isGround = FALSE; + if (IsWaterTileset()) + { + if (!(tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID))) + { + isGround = TRUE; + } + } + else if ((tile->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) != TILE_TYPE_LIQUID || + gDungeonWaterType[gDungeonGlobalData->tileset] == DUNGEON_WATER_TYPE_LAVA) + { + isGround = TRUE; + } + return isGround; +} -- cgit v1.2.3