#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8069E0C sub_8069E0C: push {r4-r7,lr} adds r4, r0, 0 ldr r5, [r4, 0x70] movs r1, 0x25 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069E44 adds r0, r4, 0 bl GetWeather ldr r1, _08069E40 lsls r0, 24 lsrs r0, 22 adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 adds r0, 0x5C movs r2, 0 strb r1, [r0] adds r0, 0x1 strb r2, [r0] adds r6, r5, 0 adds r6, 0x5E b _08069E62 .align 2, 0 _08069E40: .4byte gUnknown_80F520C _08069E44: movs r4, 0 adds r7, r5, 0 adds r7, 0x5C adds r6, r5, 0 adds r6, 0x5E _08069E4E: movs r1, 0x2 ldrsh r0, [r5, r1] adds r1, r4, 0 bl GetPokemonType adds r1, r7, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x1 ble _08069E4E _08069E62: movs r4, 0 _08069E64: movs r1, 0x2 ldrsh r0, [r5, r1] adds r1, r4, 0 bl GetPokemonAbility adds r1, r6, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x1 ble _08069E64 ldr r0, _08069E88 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069E88: .4byte gDungeonGlobalData thumb_func_end sub_8069E0C thumb_func_start TriggerWeatherAbilities TriggerWeatherAbilities: push {r4-r7,lr} ldr r3, _08069ED8 ldr r2, [r3] ldrb r0, [r2, 0xC] cmp r0, 0 beq _08069F44 movs r1, 0 strb r1, [r2, 0xC] ldr r0, [r3] ldr r2, _08069EDC adds r0, r2 strb r1, [r0] movs r7, 0 adds r5, r3, 0 movs r6, 0x1 _08069EAA: ldr r0, [r5] lsls r1, r7, 2 ldr r2, _08069EE0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08069F3E adds r0, r4, 0 movs r1, 0x4 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069EE8 ldr r0, [r5] ldr r1, _08069EE4 b _08069F16 .align 2, 0 _08069ED8: .4byte gDungeonGlobalData _08069EDC: .4byte 0x0000e279 _08069EE0: .4byte 0x000135cc _08069EE4: .4byte 0x0000e273 _08069EE8: adds r0, r4, 0 movs r1, 0x1C bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069F04 ldr r0, [r5] ldr r2, _08069F00 adds r0, r2 b _08069F18 .align 2, 0 _08069F00: .4byte 0x0000e271 _08069F04: adds r0, r4, 0 movs r1, 0x31 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069F1A ldr r0, [r5] ldr r1, _08069F4C _08069F16: adds r0, r1 _08069F18: strb r6, [r0] _08069F1A: adds r0, r4, 0 movs r1, 0x8 bl HasAbility lsls r0, 24 cmp r0, 0 bne _08069F36 adds r0, r4, 0 movs r1, 0x2D bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069F3E _08069F36: ldr r0, [r5] ldr r2, _08069F50 adds r0, r2 strb r6, [r0] _08069F3E: adds r7, 0x1 cmp r7, 0x13 ble _08069EAA _08069F44: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069F4C: .4byte 0x0000e270 _08069F50: .4byte 0x0000e279 thumb_func_end TriggerWeatherAbilities thumb_func_start sub_8069F54 sub_8069F54: push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 asrs r0, r1, 16 ldr r2, _08069F88 adds r1, r2 lsrs r1, 16 cmp r1, 0x3 bhi _08069F94 adds r0, r5, 0 movs r1, 0x25 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08069F90 ldr r4, _08069F8C adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 22 adds r0, r4 movs r1, 0x2 ldrsh r0, [r0, r1] b _08069F94 .align 2, 0 _08069F88: .4byte 0xfe880000 _08069F8C: .4byte gUnknown_80F520C _08069F90: movs r0, 0xBC lsls r0, 1 _08069F94: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8069F54 thumb_func_start sub_8069F9C sub_8069F9C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r6, r1, 0 mov r9, r2 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08069FB8 b _0806A0FA _08069FB8: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08069FC6 b _0806A0FA _08069FC6: cmp r8, r6 bne _08069FCC b _0806A0FA _08069FCC: mov r0, r8 ldr r2, [r0, 0x70] adds r3, r2, 0 ldr r7, [r6, 0x70] movs r4, 0x1 negs r4, r4 adds r0, r7, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, 0x28 bne _08069FE4 movs r4, 0 _08069FE4: adds r0, r7, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, 0x28 bne _08069FF0 movs r4, 0x1 _08069FF0: cmp r4, 0 blt _0806A068 movs r1, 0 adds r0, r2, 0 adds r0, 0x5E ldrb r2, [r0] cmp r2, 0 beq _0806A006 mov r0, sp strb r2, [r0] movs r1, 0x1 _0806A006: adds r0, r3, 0 adds r0, 0x5F ldrb r2, [r0] cmp r2, 0 beq _0806A018 mov r3, sp adds r0, r3, r1 strb r2, [r0] adds r1, 0x1 _0806A018: cmp r1, 0 beq _0806A068 cmp r1, 0x1 bne _0806A024 movs r1, 0 b _0806A030 _0806A024: adds r0, r1, 0 bl DungeonRandomCapped adds r1, r0, 0 cmp r1, 0 blt _0806A068 _0806A030: adds r0, r7, 0 adds r0, 0x5E adds r0, r4 add r1, sp ldrb r1, [r1] strb r1, [r0] ldr r0, _0806A108 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] ldr r0, _0806A10C adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0806A110 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 adds r0, r6, 0 bl sub_8042900 mov r0, r8 adds r1, r6, 0 bl sub_806ABAC _0806A068: movs r0, 0xAD lsls r0, 1 adds r1, r7, r0 ldrb r0, [r1] cmp r0, 0 beq _0806A0FA movs r0, 0 strb r0, [r1] adds r0, r6, 0 movs r1, 0x3B bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806A0FA mov r0, r8 mov r1, r9 bl GetMoveTypeForPokemon lsls r0, 24 lsrs r5, r0, 24 mov r1, r9 ldrh r0, [r1, 0x2] cmp r0, 0x1F bne _0806A0AA mov r0, r8 bl GetWeather lsls r0, 24 lsrs r0, 24 ldr r1, _0806A114 adds r0, r1 ldrb r5, [r0] _0806A0AA: cmp r5, 0 beq _0806A0FA adds r0, r6, 0 adds r1, r5, 0 bl HasType lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0806A0FA adds r4, r7, 0 adds r4, 0x5C strb r5, [r4] adds r1, r7, 0 adds r1, 0x5D strb r0, [r1] adds r1, 0x99 movs r0, 0x1 strb r0, [r1] ldr r0, _0806A10C adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldrb r0, [r4] bl GetUnformattedTypeString adds r1, r0, 0 ldr r0, _0806A118 bl strcpy ldr r0, _0806A11C ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 adds r0, r6, 0 bl sub_8042968 _0806A0FA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A108: .4byte gDungeonGlobalData _0806A10C: .4byte gAvailablePokemonNames _0806A110: .4byte gUnknown_80FCC7C _0806A114: .4byte gUnknown_80F51E4 _0806A118: .4byte gUnknown_202DE58 _0806A11C: .4byte gUnknown_80FCCAC thumb_func_end sub_8069F9C thumb_func_start sub_806A120 sub_806A120: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 adds r4, r2, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A19C adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A19C cmp r7, r6 beq _0806A19C ldr r5, [r6, 0x70] adds r0, r5, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xC bne _0806A19C adds r0, r7, 0 adds r1, r4, 0 bl GetMoveTypeForPokemon lsls r0, 24 lsrs r0, 24 bl sub_8092364 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0806A19C adds r0, r5, 0 adds r0, 0x5C movs r1, 0 strb r4, [r0] adds r0, 0x1 strb r1, [r0] adds r0, r6, 0 bl sub_8041BBC ldr r0, _0806A1A4 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument adds r0, r4, 0 bl GetUnformattedTypeString adds r1, r0, 0 ldr r0, _0806A1A8 bl strcpy ldr r0, _0806A1AC ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 _0806A19C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A1A4: .4byte gAvailablePokemonNames _0806A1A8: .4byte gUnknown_202DE58 _0806A1AC: .4byte gUnknown_80FDCC8 thumb_func_end sub_806A120 thumb_func_start sub_806A1B0 sub_806A1B0: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A1DE adds r0, r4, 0 movs r1, 0x2A bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806A1DE movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8076090 _0806A1DE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_806A1B0 thumb_func_start sub_806A1E8 sub_806A1E8: push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A234 adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 bne _0806A210 ldr r0, [r4, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A20E movs r1, 0x1 _0806A20E: adds r5, r1, 0 _0806A210: ldr r0, _0806A23C ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 bne _0806A21C movs r5, 0 _0806A21C: cmp r5, 0 beq _0806A234 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A234 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC _0806A234: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A23C: .4byte gUnknown_203B46C thumb_func_end sub_806A1E8 thumb_func_start sub_806A240 sub_806A240: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A2B4 adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 bne _0806A26A ldr r0, [r4, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A268 movs r1, 0x1 _0806A268: adds r6, r1, 0 _0806A26A: cmp r6, 0 beq _0806A284 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A284 adds r0, r4, 0 movs r1, 0x1 bl sub_806A2BC b _0806A2B4 _0806A284: adds r0, r5, 0 bl GetEntityType cmp r0, 0x1 bne _0806A29C ldr r0, [r5, 0x70] movs r1, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0806A29A movs r1, 0x1 _0806A29A: adds r6, r1, 0 _0806A29C: cmp r6, 0 beq _0806A2B4 adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 bne _0806A2B4 adds r0, r5, 0 movs r1, 0x1 bl sub_806A2BC _0806A2B4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806A240 thumb_func_start sub_806A2BC sub_806A2BC: push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A328 adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 bne _0806A328 ldr r5, _0806A2F4 ldr r0, [r5] ldr r1, _0806A2F8 adds r0, r1 ldr r0, [r0] cmp r0, r4 beq _0806A328 adds r7, r4, 0x4 cmp r6, 0 beq _0806A30C movs r0, 0x1 bl sub_804178C b _0806A302 .align 2, 0 _0806A2F4: .4byte gDungeonGlobalData _0806A2F8: .4byte 0x000181f8 _0806A2FC: movs r0, 0x34 bl sub_803E46C _0806A302: ldr r0, [r5] movs r1, 0x12 ldrsh r0, [r0, r1] cmp r0, 0x3B ble _0806A2FC _0806A30C: movs r0, 0x4 movs r1, 0x44 bl sub_803E708 adds r0, r4, 0 bl sub_803F508 adds r0, r7, 0 bl sub_804AC20 ldr r0, _0806A330 ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x12] _0806A328: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A330: .4byte gDungeonGlobalData thumb_func_end sub_806A2BC thumb_func_start nullsub_95 nullsub_95: bx lr thumb_func_end nullsub_95 thumb_func_start sub_806A338 sub_806A338: push {r4-r6,lr} movs r5, 0 ldr r6, _0806A378 _0806A33E: ldr r0, [r6] lsls r1, r5, 2 ldr r2, _0806A37C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A384 ldr r0, [r4, 0x70] adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806A384 ldr r1, [r6] ldr r2, _0806A380 adds r0, r1, r2 str r4, [r0] ldr r0, [r4, 0x70] adds r2, 0xC adds r1, r2 adds r0, 0x98 ldr r0, [r0] str r0, [r1] b _0806A38A .align 2, 0 _0806A378: .4byte gDungeonGlobalData _0806A37C: .4byte 0x000135cc _0806A380: .4byte 0x00017b30 _0806A384: adds r5, 0x1 cmp r5, 0x13 ble _0806A33E _0806A38A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806A338 thumb_func_start sub_806A390 sub_806A390: push {r4-r7,lr} ldr r0, [r0, 0x70] movs r7, 0 movs r1, 0x8C lsls r1, 1 adds r4, r0, r1 adds r5, r4, 0 movs r6, 0x3 _0806A3A0: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806A3C2 ldrb r1, [r4, 0x1] movs r0, 0xF7 ands r0, r1 movs r1, 0xEF ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl GetMoveMaxPP strb r0, [r4, 0x4] _0806A3C2: adds r4, 0x8 adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bge _0806A3A0 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A390 thumb_func_start sub_806A3D4 sub_806A3D4: push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 adds r6, r2, 0 lsls r1, 16 asrs r5, r1, 16 lsls r3, 24 cmp r3, 0 beq _0806A404 ldr r4, _0806A400 adds r0, r5, 0 movs r1, 0xA bl __divsi3 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp adds r1, r4, 0 bl sprintf b _0806A41C .align 2, 0 _0806A400: .4byte gUnknown_8106EA8 _0806A404: ldr r4, _0806A450 adds r0, r5, 0 movs r1, 0xA bl __divsi3 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 mov r0, sp adds r1, r4, 0 bl sprintf _0806A41C: ldr r1, _0806A454 mov r0, sp bl OpenFileAndGetFileDataPtr adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xA bl __modsi3 lsls r0, 16 ldr r1, [r4, 0x4] asrs r0, 12 adds r0, r1 lsls r1, r6, 2 adds r0, r1 ldr r1, [r0] adds r0, r7, 0 bl strcpy adds r0, r4, 0 bl CloseFile add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A450: .4byte gUnknown_8106EB0 _0806A454: .4byte gDungeonFileArchive thumb_func_end sub_806A3D4 thumb_func_start sub_806A458 sub_806A458: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 movs r0, 0 mov r9, r0 ldr r0, [r6, 0x70] ldrb r0, [r0, 0x6] mov r10, r0 adds r0, r6, 0 bl sub_80696A8 cmp r0, 0 bne _0806A47C movs r0, 0 b _0806A4CC _0806A47C: movs r7, 0x1 negs r7, r7 _0806A480: movs r5, 0x1 negs r5, r5 adds r1, r7, 0x1 mov r8, r1 _0806A488: movs r2, 0x4 ldrsh r0, [r6, r2] adds r0, r5 movs r2, 0x6 ldrsh r1, [r6, r2] adds r1, r7 bl GetMapTile_2 adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 beq _0806A4B6 bl GetEntityType cmp r0, 0x1 bne _0806A4B6 ldr r0, [r4, 0x10] ldr r0, [r0, 0x70] ldrb r0, [r0, 0x6] cmp r0, r10 beq _0806A4B6 movs r0, 0x1 add r9, r0 _0806A4B6: adds r5, 0x1 cmp r5, 0x1 ble _0806A488 mov r7, r8 cmp r7, 0x1 ble _0806A480 movs r0, 0 mov r1, r9 cmp r1, 0x1 ble _0806A4CC movs r0, 0x1 _0806A4CC: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806A458 thumb_func_start sub_806A4DC sub_806A4DC: push {r4,lr} sub sp, 0x64 adds r4, r0, 0 ldr r1, _0806A530 ldr r0, [sp, 0x60] ands r0, r1 ldr r1, _0806A534 ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 str r0, [sp, 0x60] movs r0, 0x2 ldrsh r1, [r4, r0] add r0, sp, 0x60 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x8 movs r2, 0 movs r3, 0 bl sub_808CFD0 add r1, sp, 0x8 ldrh r0, [r4, 0x2] strh r0, [r1, 0x8] ldrb r0, [r4, 0x9] strb r0, [r1, 0x3] ldrh r0, [r4, 0xC] strh r0, [r1, 0x14] ldrb r0, [r4, 0x14] strb r0, [r1, 0x18] ldrb r0, [r4, 0x16] strb r0, [r1, 0x1A] adds r0, r1, 0 bl sub_808F700 add sp, 0x64 pop {r4} pop {r1} bx r1 .align 2, 0 _0806A530: .4byte 0xffffff00 _0806A534: .4byte 0xffff00ff thumb_func_end sub_806A4DC thumb_func_start sub_806A538 sub_806A538: push {lr} lsls r0, 16 asrs r1, r0, 16 adds r2, r1, 0 ldr r0, _0806A554 cmp r1, r0 beq _0806A550 ldr r0, _0806A558 cmp r1, r0 beq _0806A550 cmp r2, 0 bge _0806A55C _0806A550: movs r0, 0x1 b _0806A55E .align 2, 0 _0806A554: .4byte 0x000055aa _0806A558: .4byte 0x00005aa5 _0806A55C: movs r0, 0 _0806A55E: pop {r1} bx r1 thumb_func_end sub_806A538 thumb_func_start sub_806A564 sub_806A564: push {lr} lsls r0, 16 asrs r1, r0, 16 ldr r0, _0806A57C cmp r1, r0 beq _0806A584 ldr r0, _0806A580 cmp r1, r0 beq _0806A584 movs r0, 0 b _0806A586 .align 2, 0 _0806A57C: .4byte 0x000055aa _0806A580: .4byte 0x00005aa5 _0806A584: movs r0, 0x1 _0806A586: pop {r1} bx r1 thumb_func_end sub_806A564 thumb_func_start sub_806A58C sub_806A58C: push {lr} lsls r0, 16 movs r1, 0xCE lsls r1, 17 cmp r0, r1 bls _0806A59C movs r0, 0 b _0806A59E _0806A59C: movs r0, 0x1 _0806A59E: pop {r1} bx r1 thumb_func_end sub_806A58C thumb_func_start sub_806A5A4 sub_806A5A4: push {lr} lsls r0, 16 cmp r0, 0 blt _0806A5B0 movs r0, 0 b _0806A5B2 _0806A5B0: movs r0, 0x1 _0806A5B2: pop {r1} bx r1 thumb_func_end sub_806A5A4 thumb_func_start sub_806A5B8 sub_806A5B8: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806A5CE b _0806A6D2 _0806A5CE: adds r0, r6, 0 bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] movs r1, 0x3 ands r1, r0 cmp r1, 0x2 bne _0806A664 ldr r4, [r6, 0x70] ldr r1, _0806A640 ldr r0, _0806A644 ldr r0, [r0] ldr r2, _0806A648 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0806A650 adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0806A608 adds r0, r6, 0 adds r1, r6, 0 bl SendImmobilizeEndMessage _0806A608: movs r1, 0x2 ldrsh r0, [r4, r1] bl GetWalkableTiles lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _0806A6D2 movs r2, 0x2 ldrsh r1, [r4, r2] ldr r0, _0806A64C cmp r1, r0 beq _0806A6D2 cmp r1, 0x92 beq _0806A6D2 adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 beq _0806A6D2 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_8076210 b _0806A6D2 .align 2, 0 _0806A640: .4byte gDungeonWaterType _0806A644: .4byte gDungeonGlobalData _0806A648: .4byte 0x00003a0e _0806A64C: .4byte 0x00000113 _0806A650: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _0806A6D2 adds r0, r6, 0 adds r1, r6, 0 bl sub_807A290 b _0806A6D2 _0806A664: cmp r1, 0 bne _0806A6D2 ldr r7, [r6, 0x70] ldrb r0, [r7, 0x7] cmp r0, 0 beq _0806A6D2 movs r0, 0x9E lsls r0, 1 adds r4, r7, r0 ldr r5, [r4] mov r0, sp adds r1, r5, 0 movs r2, 0x5 bl sub_80942C0 ldr r0, [sp] str r0, [r4] movs r1, 0 mov r8, r1 adds r0, r5, 0 bl RoundUpFixedPoint cmp r0, 0x13 ble _0806A6A4 ldr r0, [r4] bl RoundUpFixedPoint cmp r0, 0x13 bgt _0806A6A4 ldr r0, _0806A6E0 ldr r0, [r0] mov r8, r0 _0806A6A4: adds r0, r5, 0 bl RoundUpFixedPoint cmp r0, 0x9 ble _0806A6C4 movs r2, 0x9E lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0x9 bgt _0806A6C4 ldr r0, _0806A6E4 ldr r0, [r0] mov r8, r0 _0806A6C4: mov r0, r8 cmp r0, 0 beq _0806A6D2 adds r0, r6, 0 mov r1, r8 bl SendMessage _0806A6D2: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A6E0: .4byte gUnknown_80FD594 _0806A6E4: .4byte gUnknown_80FD5B8 thumb_func_end sub_806A5B8 thumb_func_start sub_806A6E8 sub_806A6E8: push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 ldr r6, [r7, 0x70] adds r0, r6, 0 adds r0, 0x64 adds r1, r6, 0 adds r1, 0x62 ldrb r2, [r0] ldrb r1, [r1] cmp r2, r1 beq _0806A77A ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806A764 cmp r1, 0xA beq _0806A70E cmp r1, 0x2B bne _0806A72E _0806A70E: movs r0, 0x9E lsls r0, 1 adds r5, r6, r0 ldr r4, [r5] mov r0, sp movs r1, 0xA bl sub_80943A0 ldr r2, [sp] add r0, sp, 0x4 adds r1, r4, 0 bl sub_80942C0 ldr r0, [sp, 0x4] str r0, [r5] b _0806A744 _0806A72E: cmp r1, 0x1B bne _0806A744 add r0, sp, 0x8 movs r1, 0 bl sub_80943A0 movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 ldr r0, [sp, 0x8] str r0, [r1] _0806A744: ldr r0, _0806A75C ldr r0, [r0] ldr r1, _0806A760 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806A776 adds r0, r7, 0 bl DungeonEntityUpdateStatusSprites b _0806A776 .align 2, 0 _0806A75C: .4byte gDungeonGlobalData _0806A760: .4byte 0x00000676 _0806A764: cmp r1, 0x11 beq _0806A76C cmp r2, 0x11 bne _0806A776 _0806A76C: movs r0, 0x1 bl sub_803F580 bl sub_8040A84 _0806A776: bl sub_807AA30 _0806A77A: adds r0, r6, 0 adds r0, 0x60 ldrb r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0806A792 adds r0, r6, 0 adds r0, 0x62 ldrb r1, [r0] adds r0, 0x2 b _0806A796 _0806A792: adds r0, r6, 0 adds r0, 0x64 _0806A796: strb r1, [r0] add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A6E8 thumb_func_start sub_806A7A0 sub_806A7A0: push {r4,r5,lr} movs r5, 0 _0806A7A4: ldr r0, _0806A7E0 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A7E4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A7D2 ldr r2, [r4, 0x70] movs r1, 0xC ldrsh r0, [r2, r1] cmp r0, 0x1 ble _0806A7D2 adds r1, r0, 0 subs r1, 0x1 adds r0, r2, 0 bl sub_806A7E8 _0806A7D2: adds r5, 0x1 cmp r5, 0x3 ble _0806A7A4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A7E0: .4byte gDungeonGlobalData _0806A7E4: .4byte 0x0001357c thumb_func_end sub_806A7A0 thumb_func_start sub_806A7E8 sub_806A7E8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x30 adds r5, r0, 0 mov r0, sp bl GetNumAvailableIQSkills mov r9, r0 add r4, sp, 0x18 movs r0, 0xC ldrsh r1, [r5, r0] adds r0, r4, 0 bl GetNumAvailableIQSkills adds r6, r0, 0 ldr r0, _0806A828 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument_2 movs r2, 0x1 mov r8, r4 _0806A818: movs r3, 0 movs r5, 0 movs r1, 0 adds r4, r2, 0x1 cmp r3, r9 bge _0806A83E mov r0, sp b _0806A836 .align 2, 0 _0806A828: .4byte gAvailablePokemonNames _0806A82C: adds r1, 0x1 cmp r1, r9 bge _0806A83E mov r7, sp adds r0, r7, r1 _0806A836: ldrb r0, [r0] cmp r0, r2 bne _0806A82C movs r3, 0x1 _0806A83E: movs r1, 0 cmp r1, r6 bge _0806A85C mov r7, r8 ldrb r0, [r7] b _0806A856 _0806A84A: adds r1, 0x1 cmp r1, r6 bge _0806A85C mov r7, r8 adds r0, r7, r1 ldrb r0, [r0] _0806A856: cmp r0, r2 bne _0806A84A movs r5, 0x1 _0806A85C: cmp r3, r5 beq _0806A87A lsls r0, r2, 24 lsrs r0, 24 bl GetIQSkillName adds r1, r0, 0 ldr r0, _0806A890 bl strcpy ldr r0, _0806A894 ldr r1, [r0] movs r0, 0 bl sub_805239C _0806A87A: adds r2, r4, 0 cmp r2, 0x17 ble _0806A818 add sp, 0x30 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A890: .4byte gUnknown_202DE58 _0806A894: .4byte gUnknown_80FEAC4 thumb_func_end sub_806A7E8 thumb_func_start sub_806A898 sub_806A898: push {r4-r7,lr} adds r4, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r1, r2, 24 ldr r5, [r4, 0x70] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806A8C2 ldrh r1, [r4, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r5, r2 strh r1, [r0] ldrh r0, [r4, 0x6] adds r0, 0x1 adds r2, 0x2 adds r1, r5, r2 strh r0, [r1] b _0806A8C8 _0806A8C2: adds r0, r4, 0 bl MoveIfPossible _0806A8C8: movs r0, 0xB6 lsls r0, 1 adds r6, r5, r0 ldr r0, [r6] cmp r0, 0 beq _0806A90E adds r0, r4, 0 movs r1, 0x1 bl CannotMove lsls r0, 24 cmp r0, 0 beq _0806A8EE adds r0, r4, 0 bl CannotAct lsls r0, 24 cmp r0, 0 bne _0806A90E _0806A8EE: adds r0, r4, 0x4 adds r1, r6, 0 bl CalculateFacingDir adds r2, r0, 0 movs r1, 0x7 ands r0, r1 adds r1, r5, 0 adds r1, 0x46 strb r0, [r1] cmp r7, 0 beq _0806A90E adds r0, r4, 0 adds r1, r2, 0 bl sub_806CE68 _0806A90E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A898 thumb_func_start sub_806A914 sub_806A914: push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r5, 0 _0806A92A: ldr r0, _0806A96C ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A970 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A95C ldr r0, [r4, 0x70] cmp r7, 0 beq _0806A952 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806A95C _0806A952: adds r0, r4, 0 mov r1, r8 adds r2, r6, 0 bl sub_806A898 _0806A95C: adds r5, 0x1 cmp r5, 0x13 ble _0806A92A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A96C: .4byte gDungeonGlobalData _0806A970: .4byte 0x000135cc thumb_func_end sub_806A914 thumb_func_start sub_806A974 sub_806A974: push {r4,r5,lr} movs r5, 0 _0806A978: ldr r0, _0806A9AC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806A9B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806A99E ldr r0, [r4, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r4, 0 bl sub_806CE68 _0806A99E: adds r5, 0x1 cmp r5, 0x13 ble _0806A978 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A9AC: .4byte gDungeonGlobalData _0806A9B0: .4byte 0x000135cc thumb_func_end sub_806A974 thumb_func_start sub_806A9B4 sub_806A9B4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806AA02 ldr r0, [r4, 0x70] movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r1, r5, 0 bl sub_80935B8 cmp r0, 0 bne _0806A9E0 ldr r0, _0806A9DC b _0806A9E6 .align 2, 0 _0806A9DC: .4byte gPtrLinkedMovesComeApartMessage _0806A9E0: cmp r0, 0x1 bne _0806A9F4 ldr r0, _0806A9F0 _0806A9E6: ldr r1, [r0] adds r0, r4, 0 bl SendMessage b _0806AA02 .align 2, 0 _0806A9F0: .4byte gPtrLinkMoveOneUseWarningMessage _0806A9F4: cmp r0, 0x2 bne _0806AA02 ldr r0, _0806AA08 ldr r1, [r0] adds r0, r4, 0 bl SendMessage _0806AA02: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806AA08: .4byte gPtrLinkMoveTwoUsesWarningMessage thumb_func_end sub_806A9B4 thumb_func_start sub_806AA0C sub_806AA0C: push {r4,r5,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl IsExclusivePokemonUnlocked lsls r0, 24 cmp r0, 0 beq _0806AA56 ldr r0, _0806AA5C ldr r0, [r0] ldr r1, _0806AA60 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806AA40 adds r0, r4, 0 bl GetBaseSpecies lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 beq _0806AA56 _0806AA40: cmp r4, 0x97 bne _0806AA68 ldr r0, _0806AA5C ldr r0, [r0] ldr r1, _0806AA64 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0806AA56 cmp r5, 0 bne _0806AA68 _0806AA56: movs r0, 0 b _0806AA6A .align 2, 0 _0806AA5C: .4byte gDungeonGlobalData _0806AA60: .4byte 0x000037fd _0806AA64: .4byte 0x000037ff _0806AA68: movs r0, 0x1 _0806AA6A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806AA0C thumb_func_start sub_806AA70 sub_806AA70: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _0806AAB4 mov r8, r0 _0806AA7C: mov r1, r8 ldr r0, [r1] lsls r1, r7, 2 ldr r2, _0806AAB8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806AB12 ldr r0, [r4, 0x70] ldrb r2, [r0, 0xA] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0806AAC4 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x11] cmp r0, 0x1 bne _0806AABC adds r0, r4, 0 bl sub_8042B20 b _0806AB0A .align 2, 0 _0806AAB4: .4byte gDungeonGlobalData _0806AAB8: .4byte 0x0001357c _0806AABC: adds r0, r4, 0 bl sub_8042B0C b _0806AB0A _0806AAC4: cmp r2, 0 blt _0806AB12 movs r6, 0 ldr r1, _0806AB24 movs r0, 0x64 muls r0, r2 ldr r2, _0806AB28 adds r0, r2 ldr r1, [r1] adds r5, r1, r0 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x11] cmp r0, 0 bne _0806AB04 movs r2, 0xA ldrsh r0, [r5, r2] bl sub_806A564 lsls r0, 24 cmp r0, 0 bne _0806AB04 movs r1, 0xA ldrsh r0, [r5, r1] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806AB00 movs r6, 0x1 _0806AB00: cmp r6, 0 beq _0806AB12 _0806AB04: adds r0, r4, 0 bl sub_8042B0C _0806AB0A: adds r1, r4, 0 adds r1, 0x20 movs r0, 0 strb r0, [r1] _0806AB12: adds r7, 0x1 cmp r7, 0x3 ble _0806AA7C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AB24: .4byte gRecruitedPokemonRef _0806AB28: .4byte 0x00008df8 thumb_func_end sub_806AA70 thumb_func_start sub_806AB2C sub_806AB2C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r4, 0 ldr r0, _0806ABA4 mov r9, r0 _0806AB3A: mov r1, r9 ldr r0, [r1] lsls r1, r4, 2 ldr r2, _0806ABA8 adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl EntityExists lsls r0, 24 adds r4, 0x1 mov r8, r4 cmp r0, 0 beq _0806AB92 ldr r5, [r7, 0x70] movs r6, 0 _0806AB5C: mov r1, r9 ldr r0, [r1] lsls r1, r6, 2 ldr r2, _0806ABA8 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806AB8C cmp r7, r4 beq _0806AB8C adds r0, r5, 0 adds r0, 0x7C ldrh r0, [r0] ldrh r1, [r4, 0x26] cmp r0, r1 bne _0806AB8C adds r0, r5, 0 adds r0, 0x80 str r4, [r0] _0806AB8C: adds r6, 0x1 cmp r6, 0x13 ble _0806AB5C _0806AB92: mov r4, r8 cmp r4, 0x13 ble _0806AB3A pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806ABA4: .4byte gDungeonGlobalData _0806ABA8: .4byte 0x000135cc thumb_func_end sub_806AB2C thumb_func_start sub_806ABAC sub_806ABAC: push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, [r4, 0x70] adds r0, r4, 0 movs r1, 0x16 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806ABD4 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0806ABD4 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806ABD4: adds r0, r4, 0 movs r1, 0x40 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806ABF4 adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _0806ABF4 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A400 _0806ABF4: adds r0, r4, 0 movs r1, 0x42 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806AC14 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x1 bne _0806AC14 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806AC14: adds r0, r4, 0 movs r1, 0x29 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806AC34 adds r0, r5, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x7 bne _0806AC34 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A400 _0806AC34: adds r0, r4, 0 movs r1, 0x36 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806AC50 adds r0, r4, 0 movs r1, 0x49 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806AC72 _0806AC50: adds r0, r4, 0 bl IsSleeping lsls r0, 24 cmp r0, 0 bne _0806AC66 adds r0, r5, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 bne _0806AC72 _0806AC66: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_807A124 _0806AC72: adds r0, r4, 0 movs r1, 0x41 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806AC92 adds r0, r5, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0806AC92 adds r0, r6, 0 adds r1, r4, 0 bl SendImmobilizeEndMessage _0806AC92: adds r0, r4, 0 movs r1, 0x45 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806ACB8 adds r0, r5, 0 adds r0, 0xAC ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806ACB8 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A290 _0806ACB8: adds r0, r4, 0 movs r1, 0x25 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806ACE0 adds r1, r5, 0 adds r1, 0xF6 movs r0, 0 strb r0, [r1] adds r0, r5, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xC bne _0806ACE0 adds r0, r6, 0 adds r1, r4, 0 bl sub_807A4C8 _0806ACE0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806ABAC thumb_func_start sub_806ACE8 sub_806ACE8: push {r4,r5,lr} adds r4, r1, 0 ldr r0, [r0, 0x70] mov r12, r0 movs r5, 0xEF movs r2, 0x8C lsls r2, 1 add r2, r12 movs r3, 0x3 _0806ACFA: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 strb r0, [r2] adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0806ACFA movs r2, 0x9C lsls r2, 1 add r2, r12 ldrb r0, [r2] movs r3, 0xEF ands r3, r0 movs r5, 0 strb r3, [r2] ldrh r1, [r4, 0x2] movs r0, 0xB0 lsls r0, 1 cmp r1, r0 bne _0806AD2E movs r1, 0x10 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] b _0806AD36 _0806AD2E: ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] _0806AD36: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806ACE8 thumb_func_start sub_806AD3C sub_806AD3C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0806AE1C add sp, r4 ldr r0, _0806AE20 ldr r0, [r0] ldr r1, _0806AE24 adds r4, r0, r1 mov r0, sp movs r1, 0 bl sub_803D808 str r0, [sp, 0x200] movs r7, 0 cmp r7, r0 bge _0806ADEC mov r6, sp adds r7, r0, 0 _0806AD66: adds r0, r6, 0 bl ExtractSpeciesIndex strh r0, [r4] adds r0, r6, 0 bl ExtractLevel strh r0, [r4, 0x2] adds r0, r4, 0x4 movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x2 ldrsh r2, [r4, r3] bl sub_8072AC8 ldrh r0, [r4, 0x4] cmp r0, 0 bne _0806AD90 movs r0, 0xB8 lsls r0, 1 strh r0, [r4, 0x4] _0806AD90: movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_806C444 strh r0, [r4, 0xC] movs r5, 0 movs r3, 0xE adds r3, r4 mov r9, r3 movs r0, 0x10 adds r0, r4 mov r8, r0 movs r1, 0x14 adds r1, r4 mov r10, r1 _0806ADB2: movs r2, 0 ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] adds r2, r5, 0 bl sub_806C488 mov r2, r9 adds r1, r2, r5 strb r0, [r1] movs r3, 0 ldrsh r0, [r4, r3] movs r2, 0x2 ldrsh r1, [r4, r2] adds r2, r5, 0 bl sub_806C4D4 mov r3, r8 adds r1, r3, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806ADB2 mov r4, r10 adds r6, 0x8 subs r7, 0x1 cmp r7, 0 bne _0806AD66 ldr r7, [sp, 0x200] _0806ADEC: cmp r7, 0x3F bgt _0806ADFC movs r0, 0 _0806ADF2: strh r0, [r4] adds r4, 0x14 adds r7, 0x1 cmp r7, 0x3F ble _0806ADF2 _0806ADFC: movs r7, 0 ldr r4, _0806AE28 ldr r3, _0806AE20 ldr r2, _0806AE2C movs r1, 0 _0806AE06: ldr r0, [r3] adds r0, r2 adds r0, r7 strb r1, [r0] adds r7, 0x1 cmp r7, r4 ble _0806AE06 movs r0, 0x1 mov r10, r0 movs r7, 0 b _0806AE94 .align 2, 0 _0806AE1C: .4byte 0xfffffdfc _0806AE20: .4byte gDungeonGlobalData _0806AE24: .4byte 0x00002f3c _0806AE28: .4byte 0x000001a7 _0806AE2C: .4byte 0x0000363c _0806AE30: movs r2, 0x1 negs r2, r2 mov r8, r2 mov r9, r8 ldr r3, [sp, 0x200] cmp r3, 0 ble _0806AE7A mov r5, sp adds r6, r3, 0 _0806AE42: adds r0, r5, 0 bl ExtractSpeciesIndex lsls r0, 16 asrs r4, r0, 16 ldr r1, _0806AECC ldr r0, [r1] ldr r2, _0806AED0 adds r0, r2 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _0806AE72 adds r0, r5, 0 bl ExtractLevel adds r1, r0, 0 adds r0, r4, 0 bl CalculateEXPGain cmp r9, r0 bge _0806AE72 mov r9, r0 mov r8, r4 _0806AE72: adds r5, 0x8 subs r6, 0x1 cmp r6, 0 bne _0806AE42 _0806AE7A: mov r3, r8 cmp r3, 0 blt _0806AE9A ldr r1, _0806AECC ldr r0, [r1] ldr r2, _0806AED0 adds r0, r2 add r0, r8 mov r3, r10 strb r3, [r0] movs r0, 0x2 add r10, r0 adds r7, 0x1 _0806AE94: ldr r1, [sp, 0x200] cmp r7, r1 blt _0806AE30 _0806AE9A: movs r7, 0 ldr r5, _0806AECC ldr r4, _0806AED0 movs r3, 0x1 ldr r2, _0806AED4 _0806AEA4: ldr r0, [r5] adds r0, r4 adds r1, r0, r7 ldrb r0, [r1] cmp r0, 0 bne _0806AEB2 strb r3, [r1] _0806AEB2: adds r7, 0x1 cmp r7, r2 ble _0806AEA4 movs r3, 0x81 lsls r3, 2 add sp, r3 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AECC: .4byte gDungeonGlobalData _0806AED0: .4byte 0x0000363c _0806AED4: .4byte 0x000001a7 thumb_func_end sub_806AD3C thumb_func_start sub_806AED8 sub_806AED8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 str r1, [sp, 0x8] str r2, [sp, 0xC] str r3, [sp, 0x10] ldr r0, [sp, 0x38] ldr r1, [sp, 0x3C] mov r8, r1 lsls r0, 16 asrs r7, r0, 16 ldr r1, _0806AF04 ldr r0, [r1] ldr r4, _0806AF08 adds r6, r0, r4 movs r3, 0 b _0806AF7A .align 2, 0 _0806AF04: .4byte gDungeonGlobalData _0806AF08: .4byte 0x00002f3c _0806AF0C: lsls r0, r2, 16 asrs r0, 16 cmp r0, r7 bne _0806AF6E movs r2, 0x2 ldrsh r0, [r6, r2] cmp r0, r8 bne _0806AF6E movs r5, 0xE adds r5, r6 mov r8, r5 movs r0, 0x10 adds r0, r6 mov r9, r0 mov r1, r10 adds r1, 0x20 str r1, [sp, 0x14] adds r5, r6, 0x4 mov r4, r10 movs r7, 0x3 _0806AF34: ldrh r1, [r5] adds r0, r4, 0 bl sub_8092AA8 adds r5, 0x2 adds r4, 0x8 subs r7, 0x1 cmp r7, 0 bge _0806AF34 ldrh r0, [r6, 0xC] ldr r2, [sp, 0x8] strh r0, [r2] movs r5, 0 mov r3, r8 mov r2, r9 _0806AF52: ldr r0, [sp, 0xC] adds r1, r0, r5 adds r0, r3, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [sp, 0x10] adds r1, r0, r5 adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806AF52 b _0806B084 _0806AF6E: adds r4, 0x14 adds r3, 0x1 cmp r3, 0x3F bgt _0806AF84 ldr r0, [r1] adds r6, r0, r4 _0806AF7A: ldrh r2, [r6] movs r5, 0 ldrsh r0, [r6, r5] cmp r0, 0 bne _0806AF0C _0806AF84: cmp r3, 0x40 bne _0806AFE6 mov r0, sp adds r1, r7, 0 mov r2, r8 bl sub_8072AC8 mov r0, r10 adds r0, 0x20 str r0, [sp, 0x14] mov r5, sp mov r4, r10 movs r6, 0x3 _0806AF9E: ldrh r1, [r5] adds r0, r4, 0 bl sub_8092AA8 adds r5, 0x2 adds r4, 0x8 subs r6, 0x1 cmp r6, 0 bge _0806AF9E adds r0, r7, 0 mov r1, r8 bl sub_806C444 ldr r1, [sp, 0x8] strh r0, [r1] movs r5, 0 _0806AFBE: adds r0, r7, 0 mov r1, r8 adds r2, r5, 0 bl sub_806C488 ldr r2, [sp, 0xC] adds r1, r2, r5 strb r0, [r1] adds r0, r7, 0 mov r1, r8 adds r2, r5, 0 bl sub_806C4D4 ldr r2, [sp, 0x10] adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806AFBE b _0806B084 _0806AFE6: strh r7, [r6] mov r5, r8 strh r5, [r6, 0x2] adds r4, r6, 0x4 adds r0, r4, 0 adds r1, r7, 0 mov r2, r8 bl sub_8072AC8 movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl sub_806C444 strh r0, [r6, 0xC] movs r5, 0 movs r0, 0xE adds r0, r6 mov r8, r0 movs r1, 0x10 adds r1, r6 mov r9, r1 mov r2, r10 adds r2, 0x20 str r2, [sp, 0x14] _0806B01A: movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] adds r2, r5, 0 bl sub_806C488 mov r2, r8 adds r1, r2, r5 strb r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] adds r2, r5, 0 bl sub_806C4D4 mov r2, r9 adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806B01A mov r5, r10 movs r7, 0x3 _0806B04C: ldrh r1, [r4] adds r0, r5, 0 bl sub_8092AA8 adds r4, 0x2 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _0806B04C ldrh r0, [r6, 0xC] ldr r5, [sp, 0x8] strh r0, [r5] movs r5, 0 mov r3, r8 mov r2, r9 _0806B06A: ldr r0, [sp, 0xC] adds r1, r0, r5 adds r0, r3, r5 ldrb r0, [r0] strb r0, [r1] ldr r0, [sp, 0x10] adds r1, r0, r5 adds r0, r2, r5 ldrb r0, [r0] strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806B06A _0806B084: movs r0, 0 ldr r1, [sp, 0x14] strb r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806AED8 thumb_func_start sub_806B09C sub_806B09C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r7, 0 movs r2, 0 mov r6, r8 adds r6, 0x2 mov r9, r8 _0806B0BA: movs r0, 0x64 muls r0, r2 ldr r1, _0806B0E4 adds r0, r1 ldr r3, _0806B0E8 ldr r1, [r3] adds r5, r1, r0 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 adds r2, 0x1 mov r10, r2 cmp r0, 0 beq _0806B124 lsrs r0, r1, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0806B124 movs r4, 0 b _0806B0EE .align 2, 0 _0806B0E4: .4byte 0x00008df8 _0806B0E8: .4byte gRecruitedPokemonRef _0806B0EC: adds r4, 0x1 _0806B0EE: cmp r4, r7 bge _0806B106 lsls r0, r4, 3 add r0, r8 bl ExtractSpeciesIndex lsls r0, 16 asrs r0, 16 movs r2, 0xE ldrsh r1, [r5, r2] cmp r0, r1 bne _0806B0EC _0806B106: cmp r4, r7 bne _0806B124 movs r3, 0xE ldrsh r2, [r5, r3] mov r0, r9 movs r1, 0 bl sub_808E9D8 movs r0, 0 strh r0, [r6] strh r0, [r6, 0x2] adds r6, 0x8 movs r0, 0x8 add r9, r0 adds r7, 0x1 _0806B124: mov r2, r10 cmp r2, 0x3 ble _0806B0BA mov r0, r8 adds r1, r7, 0 bl sub_803D808 adds r7, r0, 0 ldr r1, [sp] cmp r1, 0 beq _0806B150 lsls r4, r7, 3 add r4, r8 ldr r2, _0806B164 adds r0, r4, 0 movs r1, 0x1 bl sub_808E9D8 movs r0, 0 strh r0, [r4, 0x2] strh r0, [r4, 0x4] adds r7, 0x1 _0806B150: adds r0, r7, 0 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806B164: .4byte 0x000001a5 thumb_func_end sub_806B09C thumb_func_start sub_806B168 sub_806B168: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C ldr r0, _0806B324 ldr r1, [r0] ldr r2, _0806B328 adds r0, r1, r2 movs r3, 0 ldrsh r0, [r0, r3] ldr r4, _0806B32C adds r1, r4 movs r2, 0 ldrsh r1, [r1, r2] bl GetMapTile_1 ldrb r0, [r0, 0x9] str r0, [sp, 0x2C] movs r3, 0 mov r4, sp adds r4, 0x1C str r4, [sp, 0x30] ldr r2, _0806B330 ldr r1, _0806B334 _0806B19C: ldr r0, [r2] adds r0, r1 strh r3, [r0, 0xC] adds r1, 0x64 adds r3, 0x1 cmp r3, 0x3 ble _0806B19C movs r4, 0 movs r3, 0 ldr r0, _0806B324 mov r8, r0 ldr r0, _0806B330 ldr r7, [r0] movs r5, 0x1 add r6, sp, 0xC _0806B1BA: movs r0, 0x64 muls r0, r3 ldr r1, _0806B334 adds r0, r1 adds r2, r7, r0 ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0806B1DA lsrs r0, r1, 1 ands r0, r5 cmp r0, 0 beq _0806B1DA stm r6!, {r2} adds r4, 0x1 _0806B1DA: adds r3, 0x1 cmp r3, 0x3 ble _0806B1BA cmp r4, 0x3 bgt _0806B1F4 movs r1, 0 lsls r0, r4, 2 add r0, sp adds r0, 0xC _0806B1EC: stm r0!, {r1} adds r4, 0x1 cmp r4, 0x3 ble _0806B1EC _0806B1F4: movs r4, 0 movs r6, 0 add r2, sp, 0xC ldr r5, [sp, 0x30] movs r3, 0x3 _0806B1FE: ldr r1, [r2] cmp r1, 0 beq _0806B210 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0806B210 str r6, [r2] stm r5!, {r1} adds r4, 0x1 _0806B210: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B1FE mov r2, r8 ldr r0, [r2] ldr r3, _0806B338 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _0806B24C movs r6, 0 add r2, sp, 0xC lsls r0, r4, 2 ldr r1, [sp, 0x30] adds r5, r0, r1 movs r3, 0x3 _0806B232: ldr r1, [r2] cmp r1, 0 beq _0806B244 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _0806B244 str r6, [r2] stm r5!, {r1} adds r4, 0x1 _0806B244: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B232 _0806B24C: movs r5, 0 add r2, sp, 0xC lsls r0, r4, 2 ldr r3, [sp, 0x30] adds r0, r3 movs r3, 0x3 _0806B258: ldr r1, [r2] cmp r1, 0 beq _0806B264 str r5, [r2] stm r0!, {r1} adds r4, 0x1 _0806B264: adds r2, 0x4 subs r3, 0x1 cmp r3, 0 bge _0806B258 cmp r4, 0x3 bgt _0806B280 movs r1, 0 lsls r0, r4, 2 ldr r2, [sp, 0x30] adds r0, r2 _0806B278: stm r0!, {r1} adds r4, 0x1 cmp r4, 0x3 ble _0806B278 _0806B280: movs r3, 0 _0806B282: lsls r0, r3, 2 ldr r4, [sp, 0x30] adds r0, r4, r0 ldr r0, [r0] mov r8, r0 adds r0, r3, 0x1 str r0, [sp, 0x34] mov r1, r8 cmp r1, 0 bne _0806B298 b _0806B3E8 _0806B298: movs r2, 0xE ldrsh r1, [r1, r2] ldr r0, _0806B33C cmp r1, r0 beq _0806B2AE adds r0, 0x2 cmp r1, r0 beq _0806B2AE subs r0, 0x1 cmp r1, r0 bne _0806B2B6 _0806B2AE: movs r0, 0xBC lsls r0, 1 mov r4, r8 strh r0, [r4, 0xE] _0806B2B6: ldr r0, _0806B340 ldr r2, [r0] movs r1, 0 ldrsh r0, [r0, r1] adds r3, 0x1 str r3, [sp, 0x34] ldr r3, _0806B340 cmp r0, 0x63 beq _0806B350 ldr r4, _0806B324 mov r9, r4 ldr r0, _0806B328 mov r10, r0 adds r5, r3, 0 _0806B2D2: lsls r0, r2, 16 asrs r7, r0, 16 mov r4, r9 ldr r1, [r4] mov r4, r10 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r7, r0 asrs r6, r2, 16 ldr r2, _0806B32C adds r1, r2 movs r4, 0 ldrsh r1, [r1, r4] adds r1, r6, r1 str r3, [sp, 0x38] bl GetMapTile_1 adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r3, [sp, 0x38] ldr r2, [sp, 0x2C] cmp r0, r2 bne _0806B344 mov r4, r8 movs r2, 0xE ldrsh r0, [r4, r2] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r3, [sp, 0x38] cmp r4, 0 bne _0806B344 mov r3, r8 movs r1, 0xE ldrsh r0, [r3, r1] mov r3, r9 ldr r2, [r3] mov r3, r10 b _0806B3A8 .align 2, 0 _0806B324: .4byte gDungeonGlobalData _0806B328: .4byte 0x0000e218 _0806B32C: .4byte 0x0000e21a _0806B330: .4byte gRecruitedPokemonRef _0806B334: .4byte 0x00008df8 _0806B338: .4byte 0x0000065c _0806B33C: .4byte 0x00000179 _0806B340: .4byte gUnknown_80F4598 _0806B344: adds r5, 0x4 ldr r2, [r5] movs r4, 0 ldrsh r0, [r5, r4] cmp r0, 0x63 bne _0806B2D2 _0806B350: movs r0, 0 cmp r0, 0 bne _0806B3E8 ldr r2, [r3] movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0x63 beq _0806B3E8 ldr r3, _0806B3CC mov r9, r3 ldr r5, _0806B3D0 _0806B366: lsls r0, r2, 16 asrs r7, r0, 16 mov r4, r9 ldr r1, [r4] ldr r3, _0806B3D4 adds r0, r1, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r0, r7, r0 asrs r6, r2, 16 ldr r2, _0806B3D8 adds r1, r2 movs r3, 0 ldrsh r1, [r1, r3] adds r1, r6, r1 bl GetMapTile_1 adds r1, r0, 0 mov r4, r8 movs r2, 0xE ldrsh r0, [r4, r2] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0806B3DC mov r3, r8 movs r1, 0xE ldrsh r0, [r3, r1] mov r3, r9 ldr r2, [r3] ldr r3, _0806B3D4 _0806B3A8: adds r1, r2, r3 movs r3, 0 ldrsh r1, [r1, r3] adds r1, r7, r1 ldr r3, _0806B3D8 adds r2, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r2, r6, r2 str r4, [sp] movs r3, 0x1 str r3, [sp, 0x4] str r4, [sp, 0x8] mov r3, r8 bl sub_806B8CC b _0806B3E8 .align 2, 0 _0806B3CC: .4byte gDungeonGlobalData _0806B3D0: .4byte gUnknown_80F4598 _0806B3D4: .4byte 0x0000e218 _0806B3D8: .4byte 0x0000e21a _0806B3DC: adds r5, 0x4 ldr r2, [r5] movs r4, 0 ldrsh r0, [r5, r4] cmp r0, 0x63 bne _0806B366 _0806B3E8: ldr r3, [sp, 0x34] cmp r3, 0x3 bgt _0806B3F0 b _0806B282 _0806B3F0: bl sub_806B678 add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806B168 thumb_func_start sub_806B404 sub_806B404: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 movs r5, 0 movs r2, 0 ldr r0, _0806B480 mov r9, r0 ldr r0, _0806B484 ldr r7, [r0] movs r6, 0x1 ldr r1, _0806B488 mov r8, r1 _0806B422: movs r0, 0x64 muls r0, r2 ldr r3, _0806B48C adds r0, r3 adds r3, r7, r0 ldrh r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0806B446 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _0806B446 movs r1, 0xA ldrsh r0, [r3, r1] cmp r0, r8 beq _0806B490 _0806B446: adds r2, 0x1 cmp r2, 0x3 ble _0806B422 _0806B44C: cmp r5, 0x3 bgt _0806B460 movs r1, 0 lsls r0, r5, 2 add r0, sp adds r0, 0xC _0806B458: stm r0!, {r1} adds r5, 0x1 cmp r5, 0x3 ble _0806B458 _0806B460: movs r0, 0 mov r2, r9 str r0, [r2] bl GetLeaderEntity adds r5, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806B49C ldrh r0, [r5, 0x6] lsls r0, 16 ldrh r4, [r5, 0x4] b _0806B4AE .align 2, 0 _0806B480: .4byte gLeaderPokemon _0806B484: .4byte gRecruitedPokemonRef _0806B488: .4byte 0x000055aa _0806B48C: .4byte 0x00008df8 _0806B490: lsls r0, r5, 2 add r0, sp adds r0, 0xC str r3, [r0] adds r5, 0x1 b _0806B44C _0806B49C: ldr r0, _0806B560 ldr r0, [r0] ldr r3, _0806B564 adds r1, r0, r3 ldr r2, _0806B568 adds r0, r2 ldrh r0, [r0] lsls r0, 16 ldrh r4, [r1] _0806B4AE: orrs r4, r0 lsls r5, r4, 16 asrs r0, r5, 16 asrs r4, 16 adds r1, r4, 0 bl GetMapTile_1 ldrb r0, [r0, 0x9] str r0, [sp, 0x20] movs r2, 0 str r5, [sp, 0x24] mov r10, r4 _0806B4C6: lsls r0, r2, 2 add r0, sp adds r0, 0xC ldr r6, [r0] adds r2, 0x1 str r2, [sp, 0x28] cmp r6, 0 bne _0806B4D8 b _0806B65E _0806B4D8: ldrh r1, [r6] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0806B4E6 b _0806B65E _0806B4E6: lsrs r0, r1, 1 ands r0, r2 cmp r0, 0 bne _0806B4F0 b _0806B65E _0806B4F0: movs r3, 0xA ldrsh r1, [r6, r3] ldr r0, _0806B56C cmp r1, r0 beq _0806B4FC b _0806B65E _0806B4FC: ldr r0, _0806B570 strh r0, [r6, 0xA] movs r7, 0 ldr r2, _0806B574 ldr r0, [r2] str r0, [sp, 0x1C] add r0, sp, 0x1C movs r3, 0 ldrsh r1, [r0, r3] mov r9, r2 adds r2, r0, 0 cmp r1, 0x63 beq _0806B58C ldr r0, [sp, 0x24] asrs r0, 16 mov r8, r0 _0806B51C: movs r1, 0 ldrsh r0, [r2, r1] add r0, r8 ldr r1, [sp, 0x1C] asrs r1, 16 mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] bl GetMapTile_1 adds r1, r0, 0 ldrb r0, [r1, 0x9] ldr r2, [sp, 0x2C] ldr r3, [sp, 0x20] cmp r0, r3 bne _0806B578 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B578 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] add r1, r8 ldr r2, [sp, 0x1C] asrs r2, 16 adds r2, r5 b _0806B642 .align 2, 0 _0806B560: .4byte gDungeonGlobalData _0806B564: .4byte 0x0000e218 _0806B568: .4byte 0x0000e21a _0806B56C: .4byte 0x000055aa _0806B570: .4byte 0x00005aa5 _0806B574: .4byte gUnknown_80F4598 _0806B578: adds r7, 0x1 ldr r1, _0806B5E4 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x1C] movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x63 bne _0806B51C _0806B58C: movs r3, 0 cmp r3, 0 bne _0806B65E movs r7, 0 mov r1, r9 ldr r0, [r1] str r0, [sp, 0x1C] movs r3, 0 ldrsh r0, [r2, r3] cmp r0, 0x63 beq _0806B5FC ldr r0, [sp, 0x24] asrs r0, 16 mov r8, r0 _0806B5A8: movs r1, 0 ldrsh r0, [r2, r1] add r0, r8 ldr r1, [sp, 0x1C] asrs r1, 16 mov r5, r10 adds r1, r5 str r2, [sp, 0x2C] bl GetMapTile_1 adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B5E8 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] add r1, r8 ldr r2, [sp, 0x1C] asrs r2, 16 adds r2, r5 b _0806B642 .align 2, 0 _0806B5E4: .4byte gUnknown_80F4598 _0806B5E8: adds r7, 0x1 ldr r1, _0806B654 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x1C] movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0x63 bne _0806B5A8 _0806B5FC: movs r3, 0 cmp r3, 0 bne _0806B65E movs r7, 0 adds r5, r2, 0 _0806B606: adds r0, r5, 0 str r2, [sp, 0x2C] bl sub_8083660 lsls r0, 24 ldr r2, [sp, 0x2C] cmp r0, 0 beq _0806B658 movs r1, 0 ldrsh r0, [r2, r1] movs r3, 0x2 ldrsh r1, [r5, r3] bl GetMapTile_1 adds r1, r0, 0 movs r3, 0xE ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 lsrs r4, r0, 24 ldr r2, [sp, 0x2C] cmp r4, 0 bne _0806B658 movs r1, 0xE ldrsh r0, [r6, r1] movs r3, 0 ldrsh r1, [r2, r3] movs r3, 0x2 ldrsh r2, [r5, r3] _0806B642: str r4, [sp] movs r3, 0x1 str r3, [sp, 0x4] str r4, [sp, 0x8] adds r3, r6, 0 bl sub_806B8CC b _0806B65E .align 2, 0 _0806B654: .4byte gUnknown_80F4598 _0806B658: adds r7, 0x1 cmp r7, 0x63 ble _0806B606 _0806B65E: ldr r2, [sp, 0x28] cmp r2, 0x3 bgt _0806B666 b _0806B4C6 _0806B666: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806B404 thumb_func_start sub_806B678 sub_806B678: push {r4,r5,lr} movs r5, 0 _0806B67C: ldr r0, _0806B6AC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806B6B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806B6B8 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0806B6B8 adds r0, r4, 0 bl sub_803F4A0 ldr r1, _0806B6B4 ldr r0, [r4, 0x4] str r0, [r1] b _0806B6BE .align 2, 0 _0806B6AC: .4byte gDungeonGlobalData _0806B6B0: .4byte 0x0001357c _0806B6B4: .4byte gUnknown_202EE0C _0806B6B8: adds r5, 0x1 cmp r5, 0x3 ble _0806B67C _0806B6BE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806B678 thumb_func_start sub_806B6C4 sub_806B6C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, _0806B708 ldr r0, [r4] movs r1, 0xD1 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] negs r0, r1 orrs r0, r1 lsrs r0, 31 mov r8, r0 movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 beq _0806B710 movs r0, 0x97 bl HasRecruitedMon lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0806B710 ldr r0, [r4] ldr r2, _0806B70C adds r0, r2 b _0806B71A .align 2, 0 _0806B708: .4byte gDungeonGlobalData _0806B70C: .4byte 0x000037ff _0806B710: ldr r0, _0806B77C ldr r0, [r0] ldr r1, _0806B780 adds r0, r1 movs r1, 0x1 _0806B71A: strb r1, [r0] movs r0, 0x38 bl DungeonRandomCapped adds r5, r0, 0 movs r0, 0x20 bl DungeonRandomCapped adds r7, r0, 0 movs r0, 0 _0806B72E: adds r7, 0x1 cmp r7, 0x20 bne _0806B736 movs r7, 0 _0806B736: adds r0, 0x1 mov r10, r0 mov r4, sp movs r2, 0x37 mov r9, r2 _0806B740: adds r5, 0x1 cmp r5, 0x38 bne _0806B748 movs r5, 0 _0806B748: adds r0, r5, 0 adds r1, r7, 0 bl GetMapTile_1 ldrh r1, [r0, 0x4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0806B7C2 movs r6, 0 mov r0, r8 cmp r0, 0 beq _0806B784 ldr r0, _0806B77C ldr r0, [r0] movs r1, 0xD1 lsls r1, 3 adds r0, r1 ldrh r0, [r0] strh r0, [r4] movs r1, 0x1 movs r0, 0x1 strh r0, [r4, 0x8] strb r1, [r4, 0x2] movs r6, 0x1 b _0806B794 .align 2, 0 _0806B77C: .4byte gDungeonGlobalData _0806B780: .4byte 0x000037ff _0806B784: movs r0, 0 bl sub_803D970 movs r1, 0 strh r0, [r4] mov r2, r8 strh r2, [r4, 0x8] strb r1, [r4, 0x2] _0806B794: movs r0, 0 str r0, [sp, 0x4] strb r0, [r4, 0x10] strh r5, [r4, 0xC] strh r7, [r4, 0xE] cmp r6, 0 bne _0806B7B2 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x1 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _0806B7C2 _0806B7B2: mov r0, sp movs r1, 0 bl sub_806B7F8 cmp r0, 0 beq _0806B7C2 movs r2, 0 mov r8, r2 _0806B7C2: movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 bge _0806B740 mov r0, r10 cmp r0, 0x1F ble _0806B72E mov r2, r8 cmp r2, 0 beq _0806B7E2 ldr r0, _0806B7F4 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xA] _0806B7E2: 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 _0806B7F4: .4byte gDungeonGlobalData thumb_func_end sub_806B6C4 thumb_func_start sub_806B7F8 sub_806B7F8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0xC ldrsh r0, [r6, r1] movs r2, 0xE ldrsh r1, [r6, r2] bl GetMapTile_1 adds r1, r0, 0 movs r3, 0 ldrsh r0, [r6, r3] bl sub_807034C lsls r0, 24 cmp r0, 0 bne _0806B834 movs r4, 0 ldrsh r0, [r6, r4] bl sub_804550C adds r7, r0, 0 cmp r7, 0 bne _0806B838 _0806B834: movs r0, 0 b _0806B8B8 _0806B838: ldr r3, _0806B8C8 movs r0, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_806BC68 ldr r5, [r7, 0x70] movs r0, 0x1 strb r0, [r5, 0x6] movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 adds r1, r5, 0 adds r1, 0x10 adds r2, r5, 0 adds r2, 0x14 movs r3, 0x16 adds r3, r5 mov r9, r3 movs r3, 0x2 ldrsh r4, [r5, r3] str r4, [sp] ldrb r4, [r5, 0x9] str r4, [sp, 0x4] mov r3, r9 bl sub_806AED8 ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] movs r4, 0x8A lsls r4, 1 adds r1, r5, r4 ldr r0, [r6, 0x4] str r0, [r1] ldrb r0, [r6, 0x2] cmp r0, 0 bne _0806B8B6 mov r0, r8 cmp r0, 0 bne _0806B8B6 ldrb r0, [r6, 0x10] cmp r0, 0 bne _0806B8B6 movs r0, 0x64 bl DungeonRandomCapped adds r4, r0, 0 movs r1, 0 ldrsh r0, [r6, r1] bl GetUnk1D lsls r0, 24 lsrs r0, 24 cmp r0, r4 ble _0806B8B6 adds r0, r7, 0 movs r1, 0x7F bl sub_8075BF4 adds r0, r7, 0 movs r1, 0x8 bl sub_806CE68 _0806B8B6: adds r0, r7, 0 _0806B8B8: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806B8C8: .4byte gUnknown_202EE0C thumb_func_end sub_806B7F8 thumb_func_start sub_806B8CC sub_806B8CC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r9, r1 mov r10, r2 adds r5, r3, 0 ldr r1, [sp, 0x50] ldr r2, [sp, 0x54] lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x18] ldrb r1, [r5, 0x2] negs r0, r1 orrs r0, r1 lsrs r0, 31 mov r8, r0 ldr r0, [sp, 0x4C] cmp r0, 0 beq _0806B906 movs r0, 0 ldr r1, [sp, 0x4C] str r0, [r1] _0806B906: adds r0, r4, 0 bl GetBaseSpecies lsls r0, 16 asrs r1, r0, 16 movs r0, 0xCF lsls r0, 1 cmp r1, r0 bne _0806B932 cmp r6, 0 beq _0806B930 ldr r0, _0806B92C ldr r0, [r0] movs r2, 0xE0 lsls r2, 6 adds r0, r2 movs r3, 0 ldrsh r4, [r0, r3] b _0806B932 .align 2, 0 _0806B92C: .4byte gDungeonGlobalData _0806B930: adds r4, r1, 0 _0806B932: mov r0, r9 mov r1, r10 bl GetMapTile_1 adds r1, r0, 0 adds r0, r4, 0 bl sub_807034C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0806B956 adds r0, r4, 0 bl sub_80453AC str r0, [sp, 0x1C] cmp r0, 0 bne _0806B95A _0806B956: movs r0, 0 b _0806BB3C _0806B95A: mov r0, sp movs r7, 0 mov r1, r9 strh r1, [r0, 0xC] mov r2, r10 strh r2, [r0, 0xE] strh r4, [r0] mov r1, sp ldrb r0, [r5, 0x3] strh r0, [r1, 0x8] mov r0, sp strb r7, [r0, 0x2] str r6, [sp, 0x4] strb r7, [r0, 0x10] ldr r4, _0806BB4C ldr r3, _0806BB50 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] add r0, r9 lsls r0, 16 lsrs r0, 16 ldr r2, _0806BB54 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 str r1, [sp, 0x14] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] add r0, r10 lsls r0, 16 ldr r2, _0806BB58 ands r1, r2 orrs r1, r0 str r1, [sp, 0x14] ldr r3, _0806BB5C mov r0, r8 cmp r0, 0 beq _0806B9B0 add r3, sp, 0x14 _0806B9B0: movs r0, 0x1 ldr r1, [sp, 0x1C] mov r2, sp bl sub_806BC68 ldr r1, [sp, 0x1C] ldr r4, [r1, 0x70] strb r7, [r4, 0x6] strb r7, [r4, 0x8] mov r2, r8 strb r2, [r4, 0x7] adds r0, r4, 0 adds r0, 0xF9 mov r3, sp ldrb r3, [r3, 0x18] strb r3, [r0] ldr r0, _0806BB60 str r6, [r0] mov r6, r8 cmp r6, 0 beq _0806B9E4 ldr r0, _0806BB5C mov r7, r9 strh r7, [r0] mov r1, r10 strh r1, [r0, 0x2] _0806B9E4: ldrh r0, [r5, 0x10] strh r0, [r4, 0xE] ldrh r0, [r5, 0x12] strh r0, [r4, 0x10] ldr r0, [r5, 0x18] str r0, [r4, 0x18] movs r3, 0 movs r2, 0x1C adds r2, r5 mov r8, r2 movs r6, 0x50 adds r6, r5 mov r10, r6 movs r7, 0x94 adds r7, r4 mov r9, r7 adds r0, r4, 0 adds r0, 0x8C str r0, [sp, 0x20] adds r1, r4, 0 adds r1, 0xF3 str r1, [sp, 0x24] adds r2, r4, 0 adds r2, 0x64 str r2, [sp, 0x28] movs r6, 0x14 adds r6, r4 mov r12, r6 adds r7, r5, 0 adds r7, 0x14 adds r6, r4, 0 adds r6, 0x16 adds r2, r5, 0 adds r2, 0x16 _0806BA28: mov r0, r12 adds r1, r0, r3 adds r0, r7, r3 ldrb r0, [r0] strb r0, [r1] adds r1, r6, r3 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1 cmp r3, 0x1 ble _0806BA28 movs r1, 0x8C lsls r1, 1 adds r2, r4, r1 adds r1, r2, 0 mov r0, r8 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} movs r0, 0x1 mov r8, r0 movs r7, 0xEF movs r6, 0xDF movs r3, 0x3 _0806BA60: ldrb r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 beq _0806BA72 adds r0, r7, 0 ands r0, r1 ands r0, r6 strb r0, [r2] _0806BA72: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0806BA60 movs r1, 0x9C lsls r1, 1 adds r2, r4, r1 ldrb r1, [r2] movs r0, 0xEF ands r0, r1 movs r1, 0xDF ands r0, r1 strb r0, [r2] ldrb r0, [r5, 0x3] strb r0, [r4, 0x9] ldrh r0, [r5, 0x8] movs r2, 0 strh r0, [r4, 0xC] mov r3, r10 ldrb r0, [r3] mov r6, r9 strb r0, [r6] ldr r0, [r5, 0x4C] ldr r7, [sp, 0x20] str r0, [r7] ldr r0, [r5, 0x54] str r0, [r4, 0x3C] ldr r0, [r5, 0x4] str r0, [r4, 0x40] movs r0, 0x9E lsls r0, 1 adds r1, r4, r0 ldr r0, [r5, 0x44] str r0, [r1] movs r3, 0xA0 lsls r3, 1 adds r1, r4, r3 ldr r0, [r5, 0x48] str r0, [r1] ldrh r0, [r5, 0xC] strb r0, [r4, 0xA] ldr r0, [r5, 0x40] str r0, [r4, 0x60] ldr r0, [sp, 0x24] strb r2, [r0] ldr r6, [sp, 0x28] strb r2, [r6] ldr r7, _0806BB64 ldr r0, [r7] ldr r1, _0806BB68 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806BB24 bl IsBossBattle lsls r0, 24 cmp r0, 0 bne _0806BB24 adds r0, r4, 0 adds r0, 0x5E ldrb r0, [r0] cmp r0, 0x47 beq _0806BAFC adds r0, r4, 0 adds r0, 0x5F ldrb r0, [r0] cmp r0, 0x47 bne _0806BB24 _0806BAFC: adds r4, 0x60 ldrb r1, [r4] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0806BB24 movs r0, 0 bl sub_803D73C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x69 beq _0806BB24 adds r0, r4, 0 movs r2, 0 bl xxx_init_itemslot_8090A8C ldr r2, [sp, 0x24] strb r5, [r2] _0806BB24: ldr r0, [sp, 0x1C] bl sub_806A6E8 ldr r0, [sp, 0x1C] bl LoadIQSkills ldr r3, [sp, 0x4C] cmp r3, 0 beq _0806BB3A ldr r6, [sp, 0x1C] str r6, [r3] _0806BB3A: movs r0, 0x1 _0806BB3C: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806BB4C: .4byte gAdjacentTileOffsets _0806BB50: .4byte gUnknown_202F32C _0806BB54: .4byte 0xffff0000 _0806BB58: .4byte 0x0000ffff _0806BB5C: .4byte gUnknown_202EE0C _0806BB60: .4byte gLeaderPokemon _0806BB64: .4byte gDungeonGlobalData _0806BB68: .4byte 0x00000644 thumb_func_end sub_806B8CC thumb_func_start sub_806BB6C sub_806BB6C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 lsls r4, r1, 16 asrs r4, 16 ldr r0, [r7, 0x70] mov r9, r0 mov r8, r9 adds r0, 0x98 ldr r0, [r0] bl DeletePokemonDungeonSprite add r0, sp, 0x8 movs r1, 0 mov r10, r1 movs r6, 0 lsls r5, r4, 16 lsrs r5, 16 strh r5, [r0] strh r6, [r0, 0x8] mov r2, r10 strb r2, [r0, 0x2] ldr r0, [r7, 0x4] str r0, [sp, 0x14] str r6, [sp, 0xC] movs r0, 0 adds r1, r4, 0 bl sub_8069F54 lsls r0, 16 adds r1, r7, 0 adds r1, 0x22 mov r2, r10 strb r2, [r1] ldr r1, [r7, 0x70] asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1, 0x4] ldr r0, [r7, 0x70] strh r5, [r0, 0x2] adds r0, r2, 0 bl sub_80687D0 str r0, [r7, 0x64] adds r1, r7, 0 adds r1, 0x6A movs r0, 0x7 strb r0, [r1] adds r0, r7, 0 adds r0, 0x6C mov r5, r10 strb r5, [r0] adds r1, 0x1 movs r0, 0xFF strb r0, [r1] adds r1, 0x2 movs r0, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] str r6, [r7, 0x1C] mov r0, r9 adds r0, 0xB0 ldrb r0, [r0] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806BC08 mov r0, r9 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _0806BC08: movs r1, 0 mov r6, r9 ldrb r0, [r6, 0x6] cmp r0, 0 bne _0806BC14 movs r1, 0x1 _0806BC14: adds r0, r1, 0 adds r1, r7, 0 add r2, sp, 0x8 movs r3, 0 bl sub_806BC68 movs r0, 0x8C lsls r0, 1 add r0, r8 mov r1, r8 adds r1, 0x10 mov r2, r8 adds r2, 0x14 mov r3, r8 adds r3, 0x16 mov r5, r8 movs r6, 0x2 ldrsh r4, [r5, r6] str r4, [sp] ldrb r4, [r5, 0x9] str r4, [sp, 0x4] bl sub_806AED8 ldrh r0, [r5, 0x10] strh r0, [r5, 0xE] mov r0, r10 strb r0, [r5, 0x8] adds r0, r7, 0 bl sub_80429E8 adds r0, r7, 0 bl DungeonEntityUpdateStatusSprites add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806BB6C thumb_func_start sub_806BC68 sub_806BC68: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 mov r8, r1 adds r7, r2, 0 mov r10, r3 lsls r4, 24 lsrs r4, 24 ldr r1, _0806BD0C ldr r0, [r1] movs r5, 0 movs r2, 0x1 mov r9, r2 mov r3, r9 strb r3, [r0, 0xC] mov r0, r8 ldr r6, [r0, 0x70] adds r0, r6, 0 movs r1, 0x1 bl sub_806BFC0 ldrb r1, [r7, 0x2] adds r0, r6, 0 adds r0, 0xA4 strb r1, [r0] mov r0, r8 adds r0, 0x20 mov r1, r9 strb r1, [r0] adds r0, 0x2 strb r5, [r0] ldr r0, _0806BD10 mov r2, r8 strh r0, [r2, 0x8] movs r0, 0x1 negs r0, r0 strh r0, [r2, 0xA] ldr r0, _0806BD14 strh r0, [r2, 0x4] strh r0, [r2, 0x6] movs r3, 0xC ldrsh r1, [r7, r3] movs r0, 0xE ldrsh r2, [r7, r0] mov r0, r8 movs r3, 0x1 bl sub_80694C0 mov r0, r8 movs r1, 0 bl sub_804535C cmp r4, 0 bne _0806BD5E movs r2, 0 ldrsh r1, [r7, r2] movs r0, 0xBE lsls r0, 1 cmp r1, r0 bne _0806BD20 ldr r3, _0806BD0C ldr r1, [r3] ldr r4, _0806BD18 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _0806BD20 ldr r2, _0806BD1C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806BD20 ldrb r0, [r7, 0x2] cmp r0, 0 bne _0806BD20 mov r3, r9 strb r3, [r6, 0x8] b _0806BD24 .align 2, 0 _0806BD0C: .4byte gDungeonGlobalData _0806BD10: .4byte 0x0000ffff _0806BD14: .4byte 0x0000fffe _0806BD18: .4byte 0x0000066e _0806BD1C: .4byte 0x00003a0a _0806BD20: movs r0, 0 strb r0, [r6, 0x8] _0806BD24: movs r4, 0x2 ldrsh r0, [r6, r4] bl GetBaseSpecies lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 bne _0806BD42 ldr r0, _0806BD94 ldr r0, [r0] ldr r1, _0806BD98 adds r0, r1 movs r1, 0x1 strb r1, [r0] _0806BD42: movs r2, 0x2 ldrsh r0, [r6, r2] bl GetBaseSpecies lsls r0, 16 asrs r0, 16 cmp r0, 0x97 bne _0806BD5E ldr r0, _0806BD94 ldr r0, [r0] ldr r3, _0806BD9C adds r0, r3 movs r1, 0x1 strb r1, [r0] _0806BD5E: adds r2, r6, 0 adds r2, 0x98 ldr r0, _0806BD94 ldr r1, [r0] ldr r4, _0806BDA0 adds r1, r4 ldr r0, [r1] str r0, [r2] ldr r0, [r1] adds r0, 0x1 str r0, [r1] adds r1, r6, 0 adds r1, 0x9C movs r0, 0 str r0, [r1] ldrh r1, [r7, 0x8] movs r3, 0x8 ldrsh r0, [r7, r3] mov r9, r2 cmp r0, 0 bne _0806BDA4 movs r4, 0 ldrsh r0, [r7, r4] bl sub_803DA20 strb r0, [r6, 0x9] b _0806BDA6 .align 2, 0 _0806BD94: .4byte gDungeonGlobalData _0806BD98: .4byte 0x000037fd _0806BD9C: .4byte 0x000037ff _0806BDA0: .4byte 0x000037f0 _0806BDA4: strb r1, [r6, 0x9] _0806BDA6: movs r0, 0x8A lsls r0, 1 adds r1, r6, r0 ldr r0, [r7, 0x4] str r0, [r1] movs r4, 0x1 strh r4, [r6, 0xC] adds r0, r6, 0 adds r0, 0x8C movs r1, 0 bl SetDefaultIQSkills adds r0, r6, 0 adds r0, 0x3C bl sub_808E6F4 strh r4, [r6, 0x10] strh r4, [r6, 0xE] mov r0, sp movs r1, 0x64 bl sub_80943A0 movs r2, 0x9E lsls r2, 1 adds r1, r6, r2 ldr r0, [sp] str r0, [r1] add r0, sp, 0x4 movs r1, 0x64 bl sub_80943A0 movs r3, 0xA0 lsls r3, 1 adds r1, r6, r3 ldr r0, [sp, 0x4] str r0, [r1] mov r4, r10 cmp r4, 0 beq _0806BE00 movs r0, 0xB6 lsls r0, 1 adds r1, r6, r0 ldr r0, [r4] str r0, [r1] b _0806BE12 _0806BE00: movs r1, 0xB6 lsls r1, 1 adds r0, r6, r1 mov r2, r10 strh r2, [r0] movs r3, 0xB7 lsls r3, 1 adds r0, r6, r3 strh r2, [r0] _0806BE12: movs r7, 0 movs r4, 0 strh r4, [r6] movs r1, 0xA2 lsls r1, 1 adds r0, r6, r1 strb r7, [r0] ldr r2, _0806BFB4 adds r0, r6, r2 strb r7, [r0] movs r3, 0xFA lsls r3, 1 adds r0, r6, r3 strh r4, [r0] adds r1, 0xB2 adds r0, r6, r1 strh r4, [r0] adds r0, r6, 0 adds r0, 0x78 strb r7, [r0] adds r1, r6, 0 adds r1, 0x88 mov r2, r8 ldr r0, [r2, 0x4] str r0, [r1] adds r0, r6, 0 adds r0, 0x80 str r4, [r0] adds r0, 0x4 str r4, [r0] subs r0, 0x8 strh r4, [r0] adds r0, 0x83 strb r7, [r0] subs r3, 0x80 adds r0, r6, r3 str r4, [r0] movs r1, 0x80 lsls r1, 1 adds r0, r6, r1 strb r7, [r0] adds r0, r6, 0 movs r1, 0x1 bl sub_806BFC0 adds r0, r6, 0 adds r0, 0x60 strb r7, [r0, 0x2] strb r7, [r0, 0x1] strb r7, [r0] adds r0, 0x4 strb r7, [r0] movs r2, 0x80 lsls r2, 2 adds r0, r6, r2 str r4, [r0] movs r3, 0xB2 lsls r3, 1 adds r1, r6, r3 movs r0, 0xFF strb r0, [r1] adds r0, 0x66 adds r1, r6, r0 movs r0, 0x1 negs r0, r0 strb r0, [r1] movs r1, 0xFE lsls r1, 1 adds r0, r6, r1 str r4, [r0] subs r2, 0xB9 adds r0, r6, r2 strb r7, [r0] subs r3, 0x1E adds r0, r6, r3 strb r7, [r0] subs r1, 0x96 adds r0, r6, r1 strb r7, [r0] adds r2, 0xB1 adds r0, r6, r2 strh r4, [r0] adds r3, 0xB4 adds r0, r6, r3 strh r4, [r0] subs r1, 0x1E adds r0, r6, r1 strb r7, [r0] subs r2, 0xAF adds r0, r6, r2 strb r7, [r0] subs r3, 0x82 adds r0, r6, r3 strh r4, [r0] adds r0, r6, 0 adds r0, 0xFA strb r7, [r0] adds r0, 0x2 strb r7, [r0] adds r1, 0x3 adds r0, r6, r1 strb r7, [r0] adds r2, 0x3 adds r0, r6, r2 movs r5, 0x1 strb r5, [r0] subs r3, 0x2A adds r0, r6, r3 strh r4, [r0] adds r1, 0x5 adds r0, r6, r1 strh r4, [r0] adds r2, 0x6 adds r0, r6, r2 strb r7, [r0] adds r3, 0x5 adds r0, r6, r3 strb r7, [r0] movs r4, 0xAA lsls r4, 1 adds r0, r6, r4 strb r7, [r0] adds r1, 0x5 adds r0, r6, r1 strb r7, [r0] adds r2, 0x17 adds r0, r6, r2 strb r7, [r0] adds r0, r6, 0 adds r0, 0xFD strb r7, [r0] adds r1, r6, 0 adds r1, 0xFE movs r0, 0x63 strb r0, [r1] adds r3, 0x5 adds r0, r6, r3 strb r7, [r0] adds r4, 0x5 adds r0, r6, r4 strb r7, [r0] movs r1, 0xAD lsls r1, 1 adds r0, r6, r1 strb r7, [r0] mov r0, r8 bl GetMovementSpeed movs r2, 0xAB lsls r2, 1 adds r1, r6, r2 strb r5, [r1] movs r3, 0xAE lsls r3, 1 adds r0, r6, r3 strb r7, [r0] adds r4, 0x5 adds r0, r6, r4 strb r7, [r0] adds r2, 0x7 adds r0, r6, r2 strb r7, [r0] adds r3, 0x3 adds r0, r6, r3 strb r7, [r0] adds r4, 0x2 adds r0, r6, r4 strb r7, [r0] ldrh r0, [r6, 0x4] subs r0, 0x32 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0806BF70 strb r7, [r1] _0806BF70: mov r0, r8 ldrh r1, [r0, 0x6] lsls r1, 16 ldrh r0, [r0, 0x4] orrs r0, r1 str r0, [sp, 0x8] mov r1, r9 ldr r0, [r1] movs r2, 0x4 ldrsh r1, [r6, r2] add r2, sp, 0x8 ldr r3, _0806BFB8 ldr r3, [r3] ldr r4, _0806BFBC adds r3, r4 ldrb r3, [r3] bl AddPokemonDungeonSprite mov r0, r8 bl LoadIQSkills mov r0, r8 movs r1, 0 movs r2, 0 bl sub_806A898 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 _0806BFB4: .4byte 0x00000145 _0806BFB8: .4byte gDungeonGlobalData _0806BFBC: .4byte 0x00018208 thumb_func_end sub_806BC68 thumb_func_start sub_806BFC0 sub_806BFC0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp] adds r1, r4, 0 adds r1, 0xA8 movs r0, 0 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x8 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r2, r4, 0 adds r2, 0xB4 movs r1, 0x22 str r1, [r2] adds r1, r4, 0 adds r1, 0xBC strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x9 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x2 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x4 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x3 strb r0, [r1] adds r1, 0x1 strb r0, [r1] adds r1, 0x1 strb r0, [r1] movs r0, 0xB2 lsls r0, 1 adds r1, r4, r0 movs r0, 0xFF strb r0, [r1] ldr r2, _0806C168 adds r1, r4, r2 movs r0, 0x1 negs r0, r0 strb r0, [r1] movs r1, 0 movs r7, 0x84 lsls r7, 1 adds r0, r4, r7 movs r5, 0x4 _0806C080: strb r1, [r0] strb r1, [r0, 0x5] adds r0, 0x1 subs r5, 0x1 cmp r5, 0 bge _0806C080 movs r0, 0 str r0, [sp, 0x4] movs r5, 0 adds r1, r4, 0 adds r1, 0x5E str r1, [sp, 0x8] movs r2, 0x5C adds r2, r4 mov r10, r2 adds r7, r4, 0 adds r7, 0xFD str r7, [sp, 0x20] adds r0, r4, 0 adds r0, 0xF4 str r0, [sp, 0xC] adds r1, 0x9D str r1, [sp, 0x1C] adds r2, r4, 0 adds r2, 0xF5 str r2, [sp, 0x10] subs r7, 0x7 str r7, [sp, 0x14] adds r0, 0x3 str r0, [sp, 0x18] adds r1, 0x4 str r1, [sp, 0x24] movs r2, 0x1 mov r9, r2 movs r3, 0xA subs r7, 0xC2 str r7, [sp, 0x28] subs r0, 0xCB str r0, [sp, 0x2C] adds r2, r4, 0 adds r2, 0x24 subs r1, 0xDF str r1, [sp, 0x38] adds r6, r4, 0 adds r6, 0x1C movs r7, 0x80 lsls r7, 1 mov r8, r7 _0806C0E0: movs r1, 0x2 ldrsh r0, [r4, r1] adds r1, r5, 0 str r2, [sp, 0x30] str r3, [sp, 0x34] bl GetPokemonAbility ldr r7, [sp, 0x8] adds r1, r7, r5 strb r0, [r1] lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x30] ldr r3, [sp, 0x34] cmp r0, 0x25 bne _0806C104 movs r0, 0x1 str r0, [sp, 0x4] _0806C104: ldr r1, [sp] cmp r1, 0 beq _0806C11E adds r0, r4, 0 adds r0, 0x14 adds r0, r5 mov r7, r9 strb r7, [r0] adds r0, r4, 0 adds r0, 0x16 adds r0, r5 mov r1, r9 strb r1, [r0] _0806C11E: strh r3, [r6] ldr r7, [sp, 0x38] strh r3, [r7] strh r3, [r2] ldr r1, [sp, 0x2C] mov r0, r8 stm r1!, {r0} str r1, [sp, 0x2C] ldr r7, [sp, 0x28] stm r7!, {r0} str r7, [sp, 0x28] adds r2, 0x2 ldr r0, [sp, 0x38] adds r0, 0x2 str r0, [sp, 0x38] adds r6, 0x2 adds r5, 0x1 cmp r5, 0x1 ble _0806C0E0 ldr r1, [sp, 0x4] cmp r1, 0 beq _0806C170 movs r0, 0 bl GetWeather ldr r1, _0806C16C lsls r0, 24 lsrs r0, 22 adds r0, r1 ldrb r0, [r0] movs r1, 0 mov r2, r10 strb r0, [r2] adds r0, r4, 0 adds r0, 0x5D strb r1, [r0] b _0806C188 .align 2, 0 _0806C168: .4byte 0x00000165 _0806C16C: .4byte gUnknown_80F520C _0806C170: movs r5, 0 _0806C172: movs r7, 0x2 ldrsh r0, [r4, r7] adds r1, r5, 0 bl GetPokemonType mov r2, r10 adds r1, r2, r5 strb r0, [r1] adds r5, 0x1 cmp r5, 0x1 ble _0806C172 _0806C188: ldr r0, _0806C1D0 ldr r1, [r0] movs r2, 0 movs r0, 0x1 strb r0, [r1, 0xC] movs r0, 0 strh r2, [r4, 0x28] movs r7, 0x89 lsls r7, 1 adds r1, r4, r7 strb r0, [r1] ldr r1, [sp, 0x20] strb r0, [r1] ldr r2, _0806C1D4 adds r1, r4, r2 strb r0, [r1] ldr r7, [sp, 0xC] strb r0, [r7] ldr r1, [sp, 0x1C] strb r0, [r1] ldr r2, [sp, 0x10] strb r0, [r2] ldr r7, [sp, 0x14] strb r0, [r7] ldr r1, [sp, 0x18] strb r0, [r1] ldr r2, [sp, 0x24] strb r0, [r2] 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 _0806C1D0: .4byte gDungeonGlobalData _0806C1D4: .4byte 0x00000113 thumb_func_end sub_806BFC0 thumb_func_start sub_806C1D8 sub_806C1D8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 _0806C1E2: ldr r0, _0806C258 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806C25C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 adds r5, 0x1 mov r9, r5 cmp r0, 0 beq _0806C244 ldr r4, [r4, 0x70] ldrb r6, [r4, 0xA] cmp r6, 0 blt _0806C244 movs r5, 0 movs r0, 0x8C lsls r0, 1 mov r12, r0 movs r2, 0x1 mov r8, r2 adds r3, r4, 0 movs r7, 0xFE _0806C218: lsls r0, r5, 3 adds r0, r4 add r0, r12 ldrb r1, [r0] mov r0, r8 ands r0, r1 cmp r0, 0 beq _0806C234 ldr r0, _0806C260 adds r2, r3, r0 ldrb r1, [r2] adds r0, r7, 0 ands r0, r1 strb r0, [r2] _0806C234: adds r3, 0x8 adds r5, 0x1 cmp r5, 0x3 ble _0806C218 adds r0, r6, 0 adds r1, r4, 0 bl sub_806C264 _0806C244: mov r5, r9 cmp r5, 0x3 ble _0806C1E2 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C258: .4byte gDungeonGlobalData _0806C25C: .4byte 0x0001357c _0806C260: .4byte 0x00000119 thumb_func_end sub_806C1D8 thumb_func_start sub_806C264 sub_806C264: push {r4,r5,lr} mov r12, r1 ldr r2, _0806C31C movs r1, 0x64 muls r0, r1 ldr r1, _0806C320 adds r0, r1 ldr r1, [r2] adds r3, r1, r0 mov r2, r12 ldrh r0, [r2, 0xE] strh r0, [r3, 0x10] ldrh r0, [r2, 0x10] strh r0, [r3, 0x12] ldr r0, [r2, 0x18] str r0, [r3, 0x18] adds r2, 0x14 adds r1, r3, 0 adds r1, 0x14 movs r4, 0x1 _0806C28C: ldrb r0, [r2] strb r0, [r1] ldrb r0, [r2, 0x2] strb r0, [r1, 0x2] adds r2, 0x1 adds r1, 0x1 subs r4, 0x1 cmp r4, 0 bge _0806C28C ldr r4, _0806C324 adds r0, r4, 0 mov r5, r12 ldrh r5, [r5, 0x4] adds r0, r5 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0806C2B6 movs r0, 0xBC lsls r0, 1 strh r0, [r3, 0xE] _0806C2B6: adds r1, r3, 0 adds r1, 0x1C movs r0, 0x8C lsls r0, 1 add r0, r12 ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} mov r1, r12 ldrb r0, [r1, 0x9] strb r0, [r3, 0x3] ldrh r0, [r1, 0xC] strh r0, [r3, 0x8] mov r0, r12 adds r0, 0x8C ldr r0, [r0] str r0, [r3, 0x4C] mov r0, r12 adds r0, 0x94 ldrb r1, [r0] adds r0, r3, 0 adds r0, 0x50 strb r1, [r0] mov r2, r12 ldr r0, [r2, 0x3C] str r0, [r3, 0x54] movs r0, 0x9E lsls r0, 1 add r0, r12 ldr r0, [r0] str r0, [r3, 0x44] movs r0, 0xA0 lsls r0, 1 add r0, r12 ldr r0, [r0] str r0, [r3, 0x48] ldr r0, [r2, 0x60] str r0, [r3, 0x40] movs r4, 0xA ldrsh r1, [r3, r4] ldr r0, _0806C328 cmp r1, r0 bne _0806C316 ldr r0, _0806C32C strh r0, [r3, 0xA] _0806C316: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806C31C: .4byte gRecruitedPokemonRef _0806C320: .4byte 0x00008df8 _0806C324: .4byte 0xfffffe87 _0806C328: .4byte 0x000055aa _0806C32C: .4byte 0x00005aa5 thumb_func_end sub_806C264 thumb_func_start sub_806C330 sub_806C330: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 asrs r2, 16 mov r12, r2 lsls r3, 24 lsrs r7, r3, 24 ldr r0, _0806C370 ldr r0, [r0] ldr r1, _0806C374 adds r2, r0, r1 movs r3, 0 ldr r0, [r2, 0x40] cmp r3, r0 bge _0806C382 mov r1, r12 lsls r0, r1, 16 lsrs r6, r0, 16 adds r1, r2, 0 _0806C358: ldrb r0, [r1, 0x3] cmp r0, 0 beq _0806C378 ldrb r0, [r1, 0x4] cmp r0, r4 bne _0806C378 ldrb r0, [r1, 0x5] cmp r0, r5 bne _0806C378 strh r6, [r1] strb r7, [r1, 0x2] b _0806C3B8 .align 2, 0 _0806C370: .4byte gDungeonGlobalData _0806C374: .4byte 0x0000057c _0806C378: adds r1, 0x8 adds r3, 0x1 ldr r0, [r2, 0x40] cmp r3, r0 blt _0806C358 _0806C382: ldr r0, [r2, 0x40] cmp r0, 0x7 bgt _0806C3B8 lsls r0, 3 adds r0, r2, r0 movs r1, 0x1 strb r1, [r0, 0x3] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r4, [r0, 0x4] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r5, [r0, 0x5] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 mov r1, r12 strh r1, [r0] ldr r0, [r2, 0x40] lsls r0, 3 adds r0, r2, r0 strb r7, [r0, 0x2] ldr r0, [r2, 0x40] adds r0, 0x1 str r0, [r2, 0x40] _0806C3B8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806C330 thumb_func_start sub_806C3C0 sub_806C3C0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 ldr r0, _0806C424 ldr r0, [r0] ldr r1, _0806C428 adds r7, r0, r1 movs r6, 0 ldr r0, [r7, 0x40] cmp r6, r0 bge _0806C416 mov r5, sp movs r0, 0 mov r8, r0 movs r2, 0 adds r4, r7, 0 _0806C3E2: ldrb r0, [r4, 0x3] cmp r0, 0 beq _0806C40C ldrh r0, [r4] strh r0, [r5] strh r2, [r5, 0x8] ldrb r0, [r4, 0x4] strh r0, [r5, 0xC] ldrb r0, [r4, 0x5] strh r0, [r5, 0xE] ldrb r0, [r4, 0x2] strb r0, [r5, 0x2] str r2, [sp, 0x4] mov r1, r8 strb r1, [r5, 0x10] mov r0, sp movs r1, 0x1 str r2, [sp, 0x14] bl sub_806B7F8 ldr r2, [sp, 0x14] _0806C40C: adds r4, 0x8 adds r6, 0x1 ldr r0, [r7, 0x40] cmp r6, r0 blt _0806C3E2 _0806C416: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C424: .4byte gDungeonGlobalData _0806C428: .4byte 0x0000057c thumb_func_end sub_806C3C0 thumb_func_start sub_806C42C sub_806C42C: ldr r0, _0806C43C ldr r0, [r0] ldr r1, _0806C440 adds r0, r1 movs r1, 0 str r1, [r0, 0x40] bx lr .align 2, 0 _0806C43C: .4byte gDungeonGlobalData _0806C440: .4byte 0x0000057c thumb_func_end sub_806C42C thumb_func_start sub_806C444 sub_806C444: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 bl GetBaseHP adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C478 mov r8, sp _0806C462: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl GetPokemonLevelData mov r1, r8 ldrh r0, [r1, 0x4] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C462 _0806C478: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C444 thumb_func_start sub_806C488 sub_806C488: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 mov r8, r2 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r8 bl GetPokemonAttSpatt adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C4C4 mov r0, sp adds r0, 0x6 add r8, r0 _0806C4AE: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl GetPokemonLevelData mov r1, r8 ldrb r0, [r1] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C4AE _0806C4C4: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C488 thumb_func_start sub_806C4D4 sub_806C4D4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r7, r1, 0 mov r8, r2 lsls r0, 16 asrs r6, r0, 16 adds r0, r6, 0 mov r1, r8 bl GetPokemonDefSpdef adds r5, r0, 0 movs r4, 0x2 cmp r4, r7 bgt _0806C50E add r0, sp, 0x8 add r8, r0 _0806C4F8: mov r0, sp adds r1, r6, 0 adds r2, r4, 0 bl GetPokemonLevelData mov r1, r8 ldrb r0, [r1] adds r5, r0 adds r4, 0x1 cmp r4, r7 ble _0806C4F8 _0806C50E: adds r0, r5, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806C4D4 thumb_func_start sub_806C51C sub_806C51C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x50 adds r6, r0, 0 ldr r0, [r6, 0x70] mov r8, r0 ldr r0, _0806C544 ldr r1, [r0] ldr r2, _0806C548 adds r0, r1, r2 ldr r0, [r0] cmp r0, r6 bne _0806C54C movs r3, 0 str r3, [sp, 0x38] b _0806C554 .align 2, 0 _0806C544: .4byte gDungeonGlobalData _0806C548: .4byte 0x000181f8 _0806C54C: ldr r4, _0806C5AC adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x38] _0806C554: mov r0, r8 adds r0, 0xC8 ldrb r1, [r0] str r0, [sp, 0x40] cmp r1, 0x2 bne _0806C564 movs r7, 0x1 str r7, [sp, 0x38] _0806C564: adds r0, r6, 0 adds r0, 0x6B adds r1, r6, 0 adds r1, 0x6A ldrb r2, [r0] str r0, [sp, 0x48] mov r9, r1 adds r5, r6, 0 adds r5, 0x6D adds r0, 0x1 str r0, [sp, 0x4C] adds r4, r6, 0 adds r4, 0x6F subs r1, 0x47 str r1, [sp, 0x44] mov r3, r9 ldrb r3, [r3] cmp r2, r3 bne _0806C676 ldrb r0, [r5] ldr r7, [sp, 0x4C] ldrb r7, [r7] cmp r0, r7 bne _0806C654 ldrb r0, [r4] cmp r0, 0 bne _0806C654 movs r2, 0 ldrh r1, [r6, 0x28] movs r0, 0x80 lsls r0, 6 ands r0, r1 cmp r0, 0 beq _0806C5B0 movs r0, 0 b _0806C5B2 .align 2, 0 _0806C5AC: .4byte 0x00018210 _0806C5B0: lsrs r0, r1, 15 _0806C5B2: cmp r0, 0 bne _0806C5B8 movs r2, 0x1 _0806C5B8: adds r0, r6, 0 adds r0, 0x23 str r0, [sp, 0x44] cmp r2, 0 beq _0806C654 adds r0, r6, 0 bl sub_806CEBC lsls r0, 24 lsrs r3, r0, 24 adds r1, r6, 0 adds r1, 0x21 movs r0, 0x1 strb r0, [r1] mov r1, r8 adds r1, 0xFE ldrb r0, [r1] cmp r0, 0x63 bne _0806C620 ldr r1, [sp, 0x48] ldrb r0, [r1] cmp r0, 0xC bhi _0806C61C mov r0, r8 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 bne _0806C5F4 movs r2, 0x2 b _0806C600 _0806C5F4: ldr r2, [sp, 0x44] ldrb r0, [r2] movs r2, 0x1 cmp r0, 0x2 bhi _0806C600 movs r2, 0 _0806C600: ldr r1, _0806C618 movs r0, 0xD muls r0, r2 ldr r7, [sp, 0x48] ldrb r7, [r7] adds r0, r7 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bne _0806C622 adds r0, r3, 0 b _0806C622 .align 2, 0 _0806C618: .4byte gUnknown_8106EC8 _0806C61C: movs r0, 0x63 b _0806C622 _0806C620: ldrb r0, [r1] _0806C622: cmp r0, 0x63 beq _0806C654 mov r1, r9 strb r0, [r1] ldrb r1, [r5] movs r0, 0x7 ands r0, r1 ldr r2, [sp, 0x4C] strb r0, [r2] movs r0, 0x1 strb r0, [r4] mov r7, r9 ldrb r0, [r7] cmp r0, 0x6 bne _0806C654 adds r1, r6, 0 adds r1, 0x6E ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _0806C654 strb r3, [r7] _0806C654: ldr r1, [sp, 0x48] ldrb r0, [r1] mov r2, r9 ldrb r2, [r2] cmp r0, r2 bne _0806C676 ldrb r0, [r5] ldr r3, [sp, 0x4C] ldrb r3, [r3] cmp r0, r3 bne _0806C676 ldrb r0, [r4] movs r7, 0x28 adds r7, r6 mov r10, r7 cmp r0, 0 beq _0806C714 _0806C676: mov r1, r9 ldrb r0, [r1] ldr r2, [sp, 0x48] strb r0, [r2] ldr r3, [sp, 0x4C] mov r10, r3 ldrb r0, [r3] strb r0, [r5] movs r7, 0 strb r7, [r4] adds r0, r6, 0 adds r0, 0x68 movs r1, 0 ldrsh r7, [r0, r1] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] mov r4, r9 ldrb r1, [r4] bl sub_808DA44 lsls r0, 24 cmp r0, 0 beq _0806C6A8 movs r7, 0 _0806C6A8: ldr r0, [sp, 0x38] cmp r0, 0 bne _0806C6D6 bl Random movs r4, 0x3 ands r4, r0 adds r5, r6, 0 adds r5, 0x28 ldr r1, [r6, 0x64] mov r3, r9 ldrb r2, [r3] mov r0, r10 ldrb r3, [r0] str r7, [sp] str r4, [sp, 0x4] ldr r4, [sp, 0x38] str r4, [sp, 0x8] adds r0, r5, 0 bl sub_80053AC mov r10, r5 b _0806C704 _0806C6D6: ldr r0, _0806C774 bl sub_80687D0 adds r5, r0, 0 bl Random movs r1, 0x3 ands r1, r0 adds r4, r6, 0 adds r4, 0x28 mov r0, r9 ldrb r2, [r0] ldr r0, [sp, 0x4C] ldrb r3, [r0] str r7, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 bl sub_80053AC mov r10, r4 _0806C704: mov r2, r9 ldrb r0, [r2] cmp r0, 0x6 beq _0806C714 adds r1, r6, 0 adds r1, 0x6E movs r0, 0 strb r0, [r1] _0806C714: ldr r0, _0806C778 ldr r1, [r0] ldr r3, _0806C77C adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0806C784 ldr r4, [sp, 0x48] ldrb r0, [r4] cmp r0, 0x7 bne _0806C73C mov r7, r8 movs r1, 0x4 ldrsh r0, [r7, r1] bl GetWalkableTiles lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0806C7E2 _0806C73C: movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C76A movs r0, 0xB0 lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C7E2 ldr r0, _0806C780 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C76A mov r0, r10 bl sub_80054BC mov r0, r10 bl sub_80054BC _0806C76A: mov r0, r10 bl sub_80054BC b _0806C7E2 .align 2, 0 _0806C774: .4byte 0x000001a5 _0806C778: .4byte gDungeonGlobalData _0806C77C: .4byte 0x0001356c _0806C780: .4byte 0x0000015f _0806C784: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 beq _0806C7E2 cmp r0, 0x6 beq _0806C7E2 ldr r2, _0806C7B4 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806C7BC ldr r3, _0806C7B8 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0806C7BC mov r0, r10 bl sub_80054BC mov r0, r10 bl sub_80054BC b _0806C7DC .align 2, 0 _0806C7B4: .4byte 0x0000066c _0806C7B8: .4byte 0x0001c05f _0806C7BC: ldr r4, [sp, 0x48] ldrb r0, [r4] cmp r0, 0 beq _0806C7C8 cmp r0, 0x7 bne _0806C7DC _0806C7C8: ldr r0, [r6, 0x70] movs r7, 0x82 lsls r7, 1 adds r0, r7 ldr r0, [r0] cmp r0, 0x1 ble _0806C7DC mov r0, r10 bl sub_80054BC _0806C7DC: mov r0, r10 bl sub_80054BC _0806C7E2: ldr r1, [r6, 0xC] ldr r0, [r6, 0x14] cmp r1, r0 bne _0806C800 ldr r1, [r6, 0x10] ldr r0, [r6, 0x18] cmp r1, r0 bne _0806C800 ldr r1, [sp, 0x44] ldrb r0, [r1] cmp r0, 0x9 bhi _0806C806 adds r0, 0x1 strb r0, [r1] b _0806C806 _0806C800: movs r0, 0 ldr r2, [sp, 0x44] strb r0, [r2] _0806C806: ldr r0, [r6, 0xC] str r0, [r6, 0x14] ldr r2, [r6, 0x10] str r2, [r6, 0x18] cmp r0, 0 bge _0806C814 adds r0, 0xFF _0806C814: asrs r1, r0, 8 ldr r0, _0806C88C ldr r3, [r0] ldr r4, _0806C890 adds r0, r3, r4 movs r7, 0 ldrsh r0, [r0, r7] subs r1, r0 str r1, [sp, 0x2C] ldr r0, [r6, 0x1C] subs r0, r2, r0 movs r1, 0xBA lsls r1, 1 add r1, r8 ldr r1, [r1] subs r0, r1 cmp r0, 0 bge _0806C83A adds r0, 0xFF _0806C83A: asrs r1, r0, 8 ldr r4, _0806C894 adds r0, r3, r4 movs r7, 0 ldrsh r3, [r0, r7] subs r1, r3 str r1, [sp, 0x30] adds r0, r2, 0 cmp r0, 0 bge _0806C850 adds r0, 0xFF _0806C850: asrs r0, 8 subs r0, r3 mov r9, r0 lsrs r0, 31 add r0, r9 asrs r0, 1 mov r9, r0 movs r0, 0xAB lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C870 movs r0, 0x1 negs r0, r0 add r9, r0 _0806C870: movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C898 adds r0, r6, 0 bl sub_8042768 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x34] b _0806C8D8 .align 2, 0 _0806C88C: .4byte gDungeonGlobalData _0806C890: .4byte 0x000181f0 _0806C894: .4byte 0x000181f2 _0806C898: ldr r0, _0806C8B8 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806C8C6 ldr r0, _0806C8BC ldr r0, [r0] movs r1, 0x4 ands r0, r1 cmp r0, 0 beq _0806C8C0 ldr r1, [sp, 0x2C] adds r1, 0x1 str r1, [sp, 0x2C] b _0806C8C6 .align 2, 0 _0806C8B8: .4byte 0x0000015d _0806C8BC: .4byte gUnknown_202EDCC _0806C8C0: ldr r2, [sp, 0x2C] subs r2, 0x1 str r2, [sp, 0x2C] _0806C8C6: movs r1, 0 movs r0, 0xAF lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 bne _0806C8D6 movs r1, 0x1 _0806C8D6: str r1, [sp, 0x34] _0806C8D8: ldr r0, [r6, 0xC] cmp r0, 0 bge _0806C8E0 adds r0, 0xFF _0806C8E0: lsls r0, 8 lsrs r0, 16 ldr r1, _0806C998 ldr r2, [sp, 0x28] ands r2, r1 orrs r2, r0 str r2, [sp, 0x28] ldr r1, [r6, 0x10] ldr r0, [r6, 0x1C] subs r1, r0 movs r5, 0xBA lsls r5, 1 add r5, r8 ldr r0, [r5] subs r0, r1, r0 cmp r0, 0 bge _0806C904 adds r0, 0xFF _0806C904: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _0806C99C ands r2, r1 orrs r2, r0 str r2, [sp, 0x28] add r0, sp, 0xC mov r1, r10 bl sub_8005700 mov r4, r8 adds r4, 0x98 ldr r0, [r4] add r1, sp, 0x28 ldr r2, _0806C9A0 ldr r2, [r2] ldr r3, _0806C9A4 adds r2, r3 ldrb r3, [r2] add r2, sp, 0xC bl sub_800F958 adds r0, r6, 0 bl EntityGetStatusSprites adds r2, r0, 0 ldr r4, [r4] mov r0, r8 movs r1, 0x4 ldrsh r7, [r0, r1] movs r3, 0 ldr r0, [sp, 0x34] cmp r0, 0 beq _0806C958 movs r0, 0xA6 lsls r0, 1 add r0, r8 ldrb r1, [r0] negs r0, r1 orrs r0, r1 lsrs r3, r0, 31 _0806C958: adds r0, r4, 0 adds r1, r7, 0 bl UpdateDungeonPokemonSprite adds r0, r6, 0 mov r1, r9 bl sub_8042EC8 movs r0, 0xAE lsls r0, 1 add r0, r8 ldrb r1, [r0] cmp r1, 0 bne _0806C9BA mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x1 bne _0806C9AC ldr r1, [r5] ldr r0, _0806C9A8 cmp r1, r0 bgt _0806C9BA movs r2, 0x80 lsls r2, 4 adds r0, r1, r2 str r0, [r5] movs r1, 0xC8 lsls r1, 8 cmp r0, r1 ble _0806C9BA b _0806C9B8 .align 2, 0 _0806C998: .4byte 0xffff0000 _0806C99C: .4byte 0x0000ffff _0806C9A0: .4byte gDungeonGlobalData _0806C9A4: .4byte 0x00018208 _0806C9A8: .4byte 0x0000c7ff _0806C9AC: ldr r0, [r5] ldr r3, _0806CA5C adds r0, r3 str r0, [r5] cmp r0, 0 bge _0806C9BA _0806C9B8: str r1, [r5] _0806C9BA: ldr r4, [sp, 0x34] cmp r4, 0 bne _0806C9C2 b _0806CBDE _0806C9C2: movs r4, 0 adds r0, r6, 0 bl sub_806CF54 lsls r0, 24 lsrs r7, r0, 24 add r1, sp, 0x1C ldr r2, _0806CA60 strh r2, [r1] ldr r0, _0806CA64 strh r0, [r1, 0x2] strh r2, [r1, 0x4] strh r4, [r1, 0x6] strh r4, [r1, 0x8] ldr r0, _0806CA68 ldr r0, [r0] ldr r2, _0806CA6C adds r0, r2 ldrb r0, [r0] lsls r0, 10 strh r0, [r1, 0xA] mov r3, r8 ldrb r0, [r3, 0x6] adds r5, r1, 0 cmp r0, 0 beq _0806CA08 ldr r1, _0806CA70 adds r0, r1, 0 ldrh r2, [r3, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _0806CA08 movs r4, 0x1 _0806CA08: mov r0, r8 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 bne _0806CA22 ldr r0, _0806CA68 ldr r0, [r0] ldr r3, _0806CA74 adds r0, r3 ldrb r0, [r0] cmp r0, 0 bne _0806CA22 movs r4, 0x1 _0806CA22: cmp r4, 0 beq _0806CA32 ldrh r1, [r5, 0x6] movs r4, 0x80 lsls r4, 3 adds r0, r4, 0 orrs r0, r1 strh r0, [r5, 0x6] _0806CA32: movs r0, 0 str r0, [sp, 0x3C] mov r1, r8 ldrb r0, [r1, 0x6] cmp r0, 0 beq _0806CA46 ldr r2, [sp, 0x40] ldrb r0, [r2] cmp r0, 0x2 bne _0806CA4A _0806CA46: movs r3, 0x1 str r3, [sp, 0x3C] _0806CA4A: mov r0, r8 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0806CA58 cmp r0, 0x47 bne _0806CA78 _0806CA58: movs r0, 0x1 b _0806CA7A .align 2, 0 _0806CA5C: .4byte 0xfffff400 _0806CA60: .4byte 0x0000f3ff _0806CA64: .4byte 0x0000ffff _0806CA68: .4byte gDungeonGlobalData _0806CA6C: .4byte 0x00018208 _0806CA70: .4byte 0xfffffe5f _0806CA74: .4byte 0x0001820f _0806CA78: movs r0, 0 _0806CA7A: cmp r0, 0 bne _0806CA88 mov r0, r8 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806CA8C _0806CA88: movs r4, 0x1 str r4, [sp, 0x3C] _0806CA8C: mov r0, r8 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0x2 beq _0806CB16 mov r0, r8 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0x6 beq _0806CAAC subs r0, 0x4 ldrb r0, [r0] cmp r0, 0x4 beq _0806CAAC cmp r1, 0x2 bne _0806CABA _0806CAAC: ldr r0, _0806CAC4 ldr r0, [r0] movs r1, 0x2 ands r0, r1 ldr r1, [sp, 0x2C] adds r1, r0 str r1, [sp, 0x2C] _0806CABA: ldr r2, [sp, 0x38] cmp r2, 0 beq _0806CACC ldr r0, _0806CAC8 b _0806CAD2 .align 2, 0 _0806CAC4: .4byte gUnknown_202EDCC _0806CAC8: .4byte 0x000001a5 _0806CACC: mov r3, r8 movs r4, 0x4 ldrsh r0, [r3, r4] _0806CAD2: movs r1, 0 bl GetPokemonOverworldPalette lsls r0, 24 lsrs r2, r0, 24 adds r0, r6, 0 adds r0, 0x22 ldrb r1, [r0] cmp r1, 0 bne _0806CAF8 str r2, [sp] str r5, [sp, 0x4] mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] mov r3, r9 bl sub_800558C b _0806CB16 _0806CAF8: cmp r1, 0x1 bne _0806CB16 ldr r0, _0806CBF0 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _0806CB16 str r2, [sp] str r5, [sp, 0x4] mov r0, r10 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] mov r3, r9 bl sub_800558C _0806CB16: ldr r0, [r6, 0xC] cmp r0, 0 bge _0806CB1E adds r0, 0xFF _0806CB1E: asrs r0, 8 ldrh r1, [r6, 0x38] adds r0, r1 movs r1, 0xB8 lsls r1, 1 add r1, r8 strh r0, [r1] ldr r0, [r6, 0x10] cmp r0, 0 bge _0806CB34 adds r0, 0xFF _0806CB34: asrs r0, 8 ldrh r2, [r6, 0x3A] adds r0, r2 movs r3, 0xB9 lsls r3, 1 add r3, r8 strh r0, [r3] movs r4, 0 ldrsh r2, [r1, r4] ldr r0, _0806CBF4 ldr r1, [r0] ldr r4, _0806CBF8 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] subs r4, r2, r0 movs r0, 0 ldrsh r2, [r3, r0] ldr r3, _0806CBFC adds r1, r3 movs r3, 0 ldrsh r0, [r1, r3] subs r5, r2, r0 movs r0, 0x20 negs r0, r0 cmp r4, r0 blt _0806CBDE cmp r5, r0 blt _0806CBDE ldr r0, _0806CC00 cmp r4, r0 bgt _0806CBDE cmp r5, 0xBF bgt _0806CBDE cmp r7, 0x6 beq _0806CBDE adds r0, r6, 0 adds r0, 0x22 ldrb r0, [r0] cmp r0, 0 bne _0806CBDE ldr r0, [sp, 0x3C] lsls r2, r0, 3 adds r2, r0 lsls r2, 3 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 ldr r1, _0806CC04 adds r0, r1 adds r3, r2, r0 movs r0, 0xAB lsls r0, 1 add r0, r8 ldrb r0, [r0] cmp r0, 0 beq _0806CBDE movs r2, 0x8 ldrsh r1, [r3, r2] adds r1, r4, r1 ldr r0, _0806CC08 ands r1, r0 ldrh r2, [r3, 0x2] movs r0, 0xFE lsls r0, 8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x2] movs r4, 0xA ldrsh r1, [r3, r4] adds r1, r5, r1 ldr r0, _0806CC0C ands r1, r0 lsls r1, 4 ldrh r2, [r3, 0x6] movs r0, 0xF ands r0, r2 orrs r0, r1 strh r0, [r3, 0x6] adds r0, r3, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl AddSprite _0806CBDE: add sp, 0x50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806CBF0: .4byte gUnknown_202EDCC _0806CBF4: .4byte gDungeonGlobalData _0806CBF8: .4byte 0x000181f0 _0806CBFC: .4byte 0x000181f2 _0806CC00: .4byte 0x0000010f _0806CC04: .4byte gUnknown_202ED28 _0806CC08: .4byte 0x000001ff _0806CC0C: .4byte 0x00000fff thumb_func_end sub_806C51C thumb_func_start sub_806CC10 sub_806CC10: push {r4,r5,lr} movs r5, 0 _0806CC14: ldr r0, _0806CC68 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CC6C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806CC5C ldr r2, [r4, 0x70] movs r1, 0xB3 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0 beq _0806CC5C subs r1, 0x1 strb r1, [r0] movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _0806CC5C adds r0, r2, 0 adds r0, 0x46 ldrb r2, [r0] subs r2, 0x1 movs r0, 0x7 ands r2, r0 adds r0, r4, 0 movs r1, 0 bl sub_806CDD4 _0806CC5C: adds r5, 0x1 cmp r5, 0x13 ble _0806CC14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CC68: .4byte gDungeonGlobalData _0806CC6C: .4byte 0x000135cc thumb_func_end sub_806CC10 thumb_func_start sub_806CC70 sub_806CC70: push {r4,r5,lr} movs r5, 0 _0806CC74: ldr r0, _0806CCAC ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CCB0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806CCA0 adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 _0806CCA0: adds r5, 0x1 cmp r5, 0x13 ble _0806CC74 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CCAC: .4byte gDungeonGlobalData _0806CCB0: .4byte 0x000135cc thumb_func_end sub_806CC70 thumb_func_start sub_806CCB4 sub_806CCB4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r7, [r5, 0x70] ldr r0, _0806CD40 ldr r0, [r0] ldr r2, _0806CD44 adds r1, r0, r2 ldrb r6, [r1] ldr r3, _0806CD48 adds r0, r3 ldr r0, [r0] cmp r5, r0 bne _0806CCDC movs r6, 0 _0806CCDC: adds r0, r5, 0 adds r0, 0x6B movs r3, 0 strb r4, [r0] adds r2, r5, 0 adds r2, 0x6A strb r4, [r2] adds r4, r7, 0 adds r4, 0x46 ldrb r0, [r4] adds r1, r5, 0 adds r1, 0x6D strb r0, [r1] ldrb r0, [r4] subs r1, 0x1 strb r0, [r1] adds r0, r5, 0 adds r0, 0x6F strb r3, [r0] subs r0, 0x7 movs r3, 0 ldrsh r4, [r0, r3] mov r9, r4 adds r0, r7, 0 adds r0, 0xC8 ldrb r0, [r0] adds r7, r2, 0 mov r8, r1 cmp r0, 0x2 beq _0806CD4C cmp r6, 0 bne _0806CD4C bl Random movs r4, 0x3 ands r4, r0 adds r0, r5, 0 adds r0, 0x28 ldr r1, [r5, 0x64] ldrb r2, [r7] mov r7, r8 ldrb r3, [r7] mov r7, r9 str r7, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] bl sub_80053AC b _0806CD76 .align 2, 0 _0806CD40: .4byte gDungeonGlobalData _0806CD44: .4byte 0x00018210 _0806CD48: .4byte 0x000181f8 _0806CD4C: ldr r0, _0806CD8C bl sub_80687D0 adds r4, r0, 0 bl Random movs r1, 0x3 ands r1, r0 adds r0, r5, 0 adds r0, 0x28 ldrb r2, [r7] mov r6, r8 ldrb r3, [r6] mov r7, r9 str r7, [sp] str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r1, r4, 0 bl sub_80053AC _0806CD76: adds r1, r5, 0 adds r1, 0x6E movs r0, 0 strb r0, [r1] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806CD8C: .4byte 0x000001a5 thumb_func_end sub_806CCB4 .align 2,0