diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/code_8057824.s | 6238 | ||||
-rw-r--r-- | asm/code_8069E0C.s | 6209 |
2 files changed, 6210 insertions, 6237 deletions
diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 4dc4556..d07bd29 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -36500,6240 +36500,4 @@ _08069D6C: bx r0 thumb_func_end sub_8069D4C - thumb_func_start TargetTileInFront -TargetTileInFront: - push {r4,lr} - ldr r1, [r0, 0x70] - mov r12, r1 - ldr r3, _08069E08 - mov r4, r12 - adds r4, 0x46 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1] - ldrh r2, [r0, 0x4] - adds r1, r2 - movs r2, 0xB6 - lsls r2, 1 - add r2, r12 - strh r1, [r2] - ldrb r1, [r4] - lsls r1, 2 - adds r1, r3 - ldrh r1, [r1, 0x2] - ldrh r0, [r0, 0x6] - adds r1, r0 - movs r0, 0xB7 - lsls r0, 1 - add r0, r12 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08069E08: .4byte gAdjacentTileOffsets - thumb_func_end TargetTileInFront - - 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 GetMapEntity - 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 GetMapEntityForDungeonEntity - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 GetMapTileAtPosition - 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 + .align 2, 0
\ No newline at end of file diff --git a/asm/code_8069E0C.s b/asm/code_8069E0C.s new file mode 100644 index 0000000..151cdcf --- /dev/null +++ b/asm/code_8069E0C.s @@ -0,0 +1,6209 @@ + #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 GetMapEntity + 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 GetMapEntityForDungeonEntity + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 GetMapTileAtPosition + 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 |