#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_806CEBC sub_806CEBC: push {lr} ldr r0, [r0, 0x70] adds r1, r0, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _0806CED2 cmp r0, 0x5 beq _0806CED2 cmp r0, 0x3 bne _0806CEE8 _0806CED2: movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0xB9 bne _0806CEE4 adds r0, r1, 0 adds r0, 0xA9 ldrb r0, [r0] cmp r0, 0x7F beq _0806CEF2 _0806CEE4: movs r0, 0x5 b _0806CEF8 _0806CEE8: adds r0, r1, 0 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x1 beq _0806CEF6 _0806CEF2: movs r0, 0x7 b _0806CEF8 _0806CEF6: movs r0, 0xB _0806CEF8: pop {r1} bx r1 thumb_func_end sub_806CEBC thumb_func_start sub_806CEFC sub_806CEFC: push {r4,lr} adds r4, r1, 0 ldr r2, [r0, 0x70] movs r3, 0x7 ands r1, r3 adds r2, 0x46 strb r1, [r2] movs r1, 0x7 ands r1, r4 bl sub_806CE68 pop {r4} pop {r0} bx r0 thumb_func_end sub_806CEFC thumb_func_start sub_806CF18 sub_806CF18: push {r4-r6,lr} adds r4, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806CF4C ldr r6, [r4, 0x70] movs r5, 0 b _0806CF2E _0806CF2C: adds r5, 0x1 _0806CF2E: cmp r5, 0x63 bgt _0806CF4C movs r0, 0x21 bl sub_803E46C movs r1, 0x4 ldrsh r0, [r6, r1] adds r1, r4, 0 adds r1, 0x6B ldrb r1, [r1] bl sub_808DA44 lsls r0, 24 cmp r0, 0 bne _0806CF2C _0806CF4C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806CF18 thumb_func_start sub_806CF54 sub_806CF54: ldr r0, [r0, 0x70] movs r1, 0x81 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bx lr thumb_func_end sub_806CF54 thumb_func_start sub_806CF60 sub_806CF60: push {r4,r5,lr} movs r5, 0 _0806CF64: ldr r0, _0806CF90 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0806CF94 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806CF84 adds r0, r4, 0 bl sub_806CF98 _0806CF84: adds r5, 0x1 cmp r5, 0x13 ble _0806CF64 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CF90: .4byte gDungeonGlobalData _0806CF94: .4byte 0x000135cc thumb_func_end sub_806CF60 thumb_func_start sub_806CF98 sub_806CF98: push {r4-r7,lr} adds r4, r0, 0 bl GetMapTileForDungeonEntity_2 ldrh r0, [r0] movs r5, 0x3 ands r5, r0 adds r6, r5, 0 ldr r7, [r4, 0x70] movs r1, 0x4 ldrsh r0, [r7, r1] bl GetShadowSize lsls r0, 24 lsrs r4, r0, 24 cmp r5, 0x3 bne _0806CFBE movs r0, 0x6 b _0806CFF8 _0806CFBE: cmp r5, 0x1 bne _0806CFCE bl IsWaterTileset lsls r0, 24 cmp r0, 0 beq _0806CFEE b _0806CFE8 _0806CFCE: cmp r6, 0x2 bne _0806CFEE ldr r1, _0806D000 ldr r0, _0806D004 ldr r0, [r0] ldr r2, _0806D008 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0806CFEE _0806CFE8: ldr r0, _0806D00C adds r0, r4, r0 ldrb r4, [r0] _0806CFEE: movs r1, 0x81 lsls r1, 2 adds r0, r7, r1 strb r4, [r0] adds r0, r4, 0 _0806CFF8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806D000: .4byte gDungeonWaterType _0806D004: .4byte gDungeonGlobalData _0806D008: .4byte 0x00003a0e _0806D00C: .4byte gUnknown_8106EEF thumb_func_end sub_806CF98 thumb_func_start sub_806D010 sub_806D010: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 ldr r0, [sp, 0x40] lsls r0, 16 asrs r0, 16 mov r10, r0 movs r7, 0 ldr r0, [sp, 0x3C] str r0, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, [sp, 0x48] str r2, [sp, 0x8] adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_806D528 lsls r0, 24 cmp r0, 0 beq _0806D04A b _0806D514 _0806D04A: mov r3, r8 ldrb r0, [r3, 0xF] cmp r0, 0 beq _0806D054 b _0806D514 _0806D054: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D062 b _0806D514 _0806D062: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D070 b _0806D514 _0806D070: adds r0, r6, 0 bl GetEntityType cmp r0, 0x1 beq _0806D07C b _0806D514 _0806D07C: adds r0, r5, 0 bl GetEntityType cmp r0, 0x1 beq _0806D088 b _0806D514 _0806D088: ldr r0, [sp, 0x44] mov r9, r0 adds r0, r5, 0 bl CannotAct lsls r0, 24 cmp r0, 0 bne _0806D0A2 ldr r0, [r5, 0x70] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0 beq _0806D0A6 _0806D0A2: movs r1, 0 mov r9, r1 _0806D0A6: mov r2, r9 cmp r2, 0 beq _0806D100 movs r3, 0x4 ldrsh r1, [r6, r3] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D0BC negs r1, r1 _0806D0BC: cmp r1, 0x1 bgt _0806D100 movs r3, 0x6 ldrsh r1, [r6, r3] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D0D0 negs r1, r1 _0806D0D0: cmp r1, 0x1 bgt _0806D100 cmp r6, r5 beq _0806D100 mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 cmp r0, 0 beq _0806D100 ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xD bne _0806D100 adds r0, r5, 0 adds r1, r6, 0 bl sub_8042730 adds r0, r5, 0 adds r1, r6, 0 bl sub_807F43C _0806D100: ldr r0, [r5, 0x70] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xC bne _0806D118 ldr r0, _0806D3BC ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 _0806D118: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D126 b _0806D514 _0806D126: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D134 b _0806D514 _0806D134: mov r0, r9 cmp r0, 0 beq _0806D216 cmp r6, r5 beq _0806D216 movs r2, 0x4 ldrsh r1, [r6, r2] movs r3, 0x4 ldrsh r0, [r5, r3] subs r1, r0 cmp r1, 0 bge _0806D14E negs r1, r1 _0806D14E: cmp r1, 0x1 bgt _0806D216 movs r0, 0x6 ldrsh r1, [r6, r0] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D162 negs r1, r1 _0806D162: cmp r1, 0x1 bgt _0806D216 mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 lsrs r4, r0, 24 ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x4 bne _0806D188 cmp r4, 0 beq _0806D188 adds r0, r5, 0 bl sub_8041B18 adds r7, 0x4 _0806D188: ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xA bne _0806D19E cmp r4, 0 beq _0806D19E adds r0, r5, 0 bl sub_8041B18 adds r7, 0x1 _0806D19E: ldr r0, [r5, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x8 bne _0806D1B4 cmp r4, 0 bne _0806D1B4 adds r0, r5, 0 bl sub_8041B90 adds r7, 0x4 _0806D1B4: adds r0, r5, 0 movs r1, 0x12 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D1C4 adds r7, 0x2 _0806D1C4: cmp r7, 0 beq _0806D216 ldr r0, _0806D3C0 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 mov r1, r8 ldr r0, [r1] muls r0, r7 cmp r0, 0 bge _0806D1E0 adds r0, 0x3 _0806D1E0: asrs r0, 2 str r0, [sp, 0xC] add r2, sp, 0xC mov r3, r8 ldrb r0, [r3, 0xC] movs r1, 0 strb r0, [r2, 0xC] movs r0, 0x6 str r0, [sp, 0x10] movs r0, 0x2 str r0, [sp, 0x14] adds r0, r2, 0 strb r1, [r0, 0xD] strb r1, [r0, 0xE] strb r1, [r0, 0xF] ldr r0, [sp, 0x3C] str r0, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r2, [sp, 0x48] str r2, [sp, 0x8] adds r0, r5, 0 adds r1, r6, 0 add r2, sp, 0xC movs r3, 0 bl sub_806D528 _0806D216: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D224 b _0806D514 _0806D224: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806D232 b _0806D514 _0806D232: mov r3, r9 cmp r3, 0 bne _0806D23A b _0806D48A _0806D23A: cmp r6, r5 bne _0806D240 b _0806D48A _0806D240: movs r0, 0x4 ldrsh r1, [r6, r0] movs r2, 0x4 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D250 negs r1, r1 _0806D250: cmp r1, 0x1 ble _0806D256 b _0806D48A _0806D256: movs r3, 0x6 ldrsh r1, [r6, r3] movs r2, 0x6 ldrsh r0, [r5, r2] subs r1, r0 cmp r1, 0 bge _0806D266 negs r1, r1 _0806D266: cmp r1, 0x1 ble _0806D26C b _0806D48A _0806D26C: mov r3, r8 ldrb r0, [r3, 0xC] bl sub_8092354 lsls r0, 24 lsrs r7, r0, 24 ldr r4, [r6, 0x70] adds r0, r5, 0 movs r1, 0x5 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D2C2 adds r0, r6, 0 movs r1, 0xA bl HasType lsls r0, 24 cmp r0, 0 bne _0806D2C2 adds r0, r6, 0 movs r1, 0x37 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806D2C2 movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3C4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D2C2 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x1 orrs r0, r1 strh r0, [r2] _0806D2C2: adds r0, r5, 0 movs r1, 0xA bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D2EE movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3C8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D2EE movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x2 orrs r0, r1 strh r0, [r2] _0806D2EE: adds r0, r5, 0 movs r1, 0x17 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D328 adds r0, r6, 0 movs r1, 0x11 bl HasType lsls r0, 24 cmp r0, 0 beq _0806D328 movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3CC movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D328 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x4 orrs r0, r1 strh r0, [r2] _0806D328: adds r0, r5, 0 movs r1, 0x20 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D358 cmp r7, 0 beq _0806D358 movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3D0 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D358 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x8 orrs r0, r1 strh r0, [r2] _0806D358: adds r0, r5, 0 movs r1, 0x27 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D384 movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3D4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D384 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x20 orrs r0, r1 strh r0, [r2] _0806D384: adds r0, r5, 0 movs r1, 0x3D bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D3FA cmp r7, 0 beq _0806D3FA movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D3D8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D3FA movs r0, 0x3 bl DungeonRandomCapped cmp r0, 0 bgt _0806D3DC movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r0, 0x40 b _0806D3F6 .align 2, 0 _0806D3BC: .4byte gUnknown_8106A4C _0806D3C0: .4byte gUnknown_80FCFA4 _0806D3C4: .4byte gUnknown_80F4E10 _0806D3C8: .4byte gUnknown_80F4E12 _0806D3CC: .4byte gUnknown_80F4E14 _0806D3D0: .4byte gUnknown_80F4E16 _0806D3D4: .4byte gUnknown_80F4E18 _0806D3D8: .4byte gUnknown_80F4E1A _0806D3DC: cmp r0, 0x1 bgt _0806D3EC movs r0, 0xBC lsls r0, 1 adds r2, r4, r0 ldrh r1, [r2] movs r0, 0x10 b _0806D3F6 _0806D3EC: movs r1, 0xBC lsls r1, 1 adds r2, r4, r1 ldrh r1, [r2] movs r0, 0x80 _0806D3F6: orrs r0, r1 strh r0, [r2] _0806D3FA: adds r0, r5, 0 movs r1, 0x3E bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D428 movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D4D4 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D428 movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] subs r3, 0x78 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D428: adds r0, r5, 0 movs r1, 0x44 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D45A cmp r7, 0 beq _0806D45A movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D4D8 movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D45A movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] adds r3, 0x88 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D45A: adds r0, r5, 0 movs r1, 0x1 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D48A movs r0, 0x64 bl DungeonRandomCapped ldr r1, _0806D4DC movs r2, 0 ldrsh r1, [r1, r2] cmp r0, r1 bge _0806D48A movs r3, 0xBC lsls r3, 1 adds r2, r4, r3 ldrh r1, [r2] movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 orrs r0, r1 strh r0, [r2] _0806D48A: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806D514 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806D514 mov r0, r9 cmp r0, 0 beq _0806D514 ldr r2, [r5, 0x70] adds r6, r2, 0 adds r3, r2, 0 adds r3, 0xD0 ldrb r0, [r3] cmp r0, 0x2 bne _0806D514 ldr r0, _0806D4E0 ldr r1, [r0] adds r0, r2, 0 adds r0, 0xD8 ldrb r0, [r0] lsls r0, 2 ldr r2, _0806D4E4 adds r1, r2 adds r1, r0 ldr r4, [r1] cmp r4, 0 bne _0806D4E8 strb r4, [r3] b _0806D514 .align 2, 0 _0806D4D4: .4byte gUnknown_80F4E1C _0806D4D8: .4byte gUnknown_80F4E1E _0806D4DC: .4byte gUnknown_80F4E20 _0806D4E0: .4byte gDungeonGlobalData _0806D4E4: .4byte 0x000135cc _0806D4E8: ldr r0, [r4, 0x70] adds r0, 0x98 adds r1, r6, 0 adds r1, 0xD4 ldr r2, [r0] ldr r0, [r1] cmp r2, r0 beq _0806D4FE movs r0, 0 strb r0, [r3] b _0806D514 _0806D4FE: adds r0, r4, 0 adds r1, r5, 0 bl sub_8041D00 mov r3, r8 ldr r1, [r3] ldr r3, _0806D524 adds r0, r4, 0 movs r2, 0xC bl sub_806F324 _0806D514: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806D524: .4byte 0x000001f9 thumb_func_end sub_806D010 thumb_func_start sub_806D528 sub_806D528: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 mov r9, r0 adds r7, r1, 0 adds r5, r2, 0 str r3, [sp, 0x4C] ldr r0, [sp, 0x7C] lsls r0, 16 asrs r0, 16 str r0, [sp, 0x50] movs r0, 0 str r0, [sp, 0x54] mov r10, r0 mov r8, r0 mov r1, r10 strb r1, [r5, 0xF] adds r0, r7, 0 bl GetEntityType cmp r0, 0x1 beq _0806D55C b _0806D754 _0806D55C: ldr r6, [r7, 0x70] mov r0, r9 adds r1, r7, 0 bl sub_807A96C mov r0, r9 adds r1, r7, 0 bl SetShopkeeperAggression mov r0, r9 bl GetEntityType cmp r0, 0x1 bne _0806D592 mov r2, r9 ldr r0, [r2, 0x70] adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x3 bne _0806D592 ldrb r0, [r5, 0xE] cmp r0, 0 bne _0806D592 ldr r0, _0806D5C8 movs r3, 0 ldrsh r0, [r0, r3] str r0, [r5] _0806D592: ldr r0, _0806D5CC ldr r1, [sp, 0x50] cmp r1, r0 beq _0806D5DC adds r0, r7, 0 movs r1, 0xD bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D5DC ldr r1, [r5] ldr r0, _0806D5D0 cmp r1, r0 bne _0806D5DC ldr r0, _0806D5D4 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0806D5D8 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D71E .align 2, 0 _0806D5C8: .4byte gUnknown_80F4F8C _0806D5CC: .4byte 0x0000020e _0806D5D0: .4byte 0x0000270f _0806D5D4: .4byte gUnknown_202DFE8 _0806D5D8: .4byte gUnknown_80FCA90 _0806D5DC: adds r0, r6, 0 adds r0, 0xB0 ldrb r4, [r0] mov r10, r0 cmp r4, 0x1 bne _0806D618 ldr r0, _0806D610 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0806D614 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 mov r0, r9 adds r1, r7, 0 bl sub_8042238 strb r4, [r5, 0xF] _0806D608: movs r0, 0 bl _0806E0F0 .align 2, 0 _0806D610: .4byte gUnknown_202DFE8 _0806D614: .4byte gUnknown_80F9600 _0806D618: adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x1 beq _0806D62A cmp r0, 0x5 beq _0806D62A cmp r0, 0x3 bne _0806D63A _0806D62A: adds r0, r6, 0 adds r0, 0xA9 ldrb r0, [r0] cmp r0, 0x7F bne _0806D63A adds r0, r7, 0 bl sub_807A9B0 _0806D63A: adds r0, r7, 0 movs r1, 0x23 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D660 ldrb r0, [r5, 0xC] cmp r0, 0x5 bne _0806D660 _0806D64E: ldr r2, [r5] movs r0, 0 str r0, [sp] mov r0, r9 adds r1, r7, 0 movs r3, 0 bl HealTargetHP b _0806D754 _0806D660: adds r0, r7, 0 movs r1, 0x24 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806D674 ldrb r0, [r5, 0xC] cmp r0, 0x3 beq _0806D64E _0806D674: movs r2, 0xA9 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _0806D6D0 ldrb r0, [r5, 0xD] cmp r0, 0 beq _0806D692 ldr r0, _0806D6A4 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D692: ldr r0, [r5, 0x8] cmp r0, 0x1 beq _0806D6B0 cmp r0, 0x1 bcc _0806D6A8 cmp r0, 0x3 beq _0806D6C4 b _0806D6D0 .align 2, 0 _0806D6A4: .4byte gUnknown_80F9614 _0806D6A8: ldr r0, _0806D6AC b _0806D6B2 .align 2, 0 _0806D6AC: .4byte gUnknown_80F9630 _0806D6B0: ldr r0, _0806D6C0 _0806D6B2: ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D6D0 .align 2, 0 _0806D6C0: .4byte gUnknown_80F9654 _0806D6C4: ldr r0, _0806D728 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D6D0: ldr r4, _0806D72C adds r0, r4, 0 mov r1, r9 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r1, [r5] cmp r1, 0 bne _0806D760 mov r0, r9 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D734 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D734 movs r3, 0xA9 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _0806D71E ldr r0, _0806D730 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D71E: mov r0, r9 adds r1, r7, 0 bl sub_8042238 b _0806D754 .align 2, 0 _0806D728: .4byte gUnknown_80F9670 _0806D72C: .4byte gAvailablePokemonNames _0806D730: .4byte gUnknown_80F9688 _0806D734: movs r1, 0xA9 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _0806D74C ldr r0, _0806D75C ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D74C: movs r0, 0x1E movs r1, 0x18 bl sub_803E708 _0806D754: movs r0, 0x1 strb r0, [r5, 0xF] b _0806D608 .align 2, 0 _0806D75C: .4byte gUnknown_80F9688 _0806D760: ldr r0, _0806D7B8 cmp r1, r0 bne _0806D7C4 ldr r0, [sp, 0x80] cmp r0, 0 beq _0806D796 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D796 adds r0, r7, 0 bl GetMapTileForDungeonEntity_2 mov r8, r0 movs r0, 0x14 movs r1, 0x18 bl sub_803E708 mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x4 orrs r0, r1 strh r0, [r2, 0x4] bl sub_8049ED4 _0806D796: movs r3, 0xA9 lsls r3, 1 adds r0, r6, r3 ldrb r0, [r0] cmp r0, 0 bne _0806D7AE ldr r0, _0806D7BC ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D7AE: adds r1, r6, 0 adds r1, 0xA0 ldr r0, _0806D7C0 str r0, [r1] b _0806D84A .align 2, 0 _0806D7B8: .4byte 0x0000270f _0806D7BC: .4byte gUnknown_80F96A8 _0806D7C0: .4byte 0x000003e7 _0806D7C4: ldr r0, _0806D824 str r1, [r0] ldr r1, _0806D828 ldr r0, [r5, 0x4] lsls r0, 2 adds r0, r1 ldr r4, [r0] adds r2, r6, 0 adds r2, 0xA0 ldr r0, [r2] ldr r1, [r5] adds r0, r1 str r0, [r2] ldr r1, _0806D82C cmp r0, r1 ble _0806D7E6 str r1, [r2] _0806D7E6: adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D830 ldr r0, [r5, 0x4] cmp r0, 0xE beq _0806D808 ldr r0, [r5] negs r0, r0 movs r3, 0x1 negs r3, r3 adds r1, r7, 0 movs r2, 0x1 bl sub_803ED30 _0806D808: movs r1, 0xA9 lsls r1, 1 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 bne _0806D84A cmp r4, 0 beq _0806D84A mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_80522F4 b _0806D84A .align 2, 0 _0806D824: .4byte gUnknown_202DE30 _0806D828: .4byte gUnknown_80F9764 _0806D82C: .4byte 0x000003e7 _0806D830: movs r2, 0xA9 lsls r2, 1 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _0806D84A cmp r4, 0 beq _0806D84A mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_80522F4 _0806D84A: ldr r0, [r5, 0x4] cmp r0, 0xE bne _0806D858 movs r3, 0xE ldrsh r0, [r6, r3] cmp r0, 0x1 bgt _0806D900 _0806D858: mov r0, r8 cmp r0, 0 bne _0806D900 adds r0, r7, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _0806D900 mov r2, r9 ldr r1, [r2, 0x4] ldr r0, [r7, 0x4] cmp r1, r0 beq _0806D8E6 mov r0, r9 bl GetEntityType cmp r0, 0x1 bne _0806D8E6 movs r4, 0 ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806D8B4 ldr r0, _0806D8B0 ldr r0, [r0] ldrb r0, [r0, 0x2] cmp r0, 0 beq _0806D8B6 adds r0, r7, 0 bl sub_806A458 lsls r0, 24 cmp r0, 0 bne _0806D8B6 adds r0, r7, 0 mov r1, r9 bl CanSee lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 b _0806D8B6 .align 2, 0 _0806D8B0: .4byte gUnknown_203B46C _0806D8B4: movs r4, 0 _0806D8B6: adds r0, r6, 0 adds r0, 0xE8 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806D8C8 movs r4, 0 _0806D8C8: cmp r4, 0 beq _0806D8E0 ldr r4, [r7, 0x70] adds r0, r7, 0x4 mov r1, r9 adds r1, 0x4 bl CalculateFacingDir movs r1, 0x7 ands r0, r1 adds r4, 0x46 strb r0, [r4] _0806D8E0: adds r0, r7, 0 bl TargetTileInFront _0806D8E6: ldr r0, [r7, 0x70] adds r0, 0x46 ldrb r2, [r0] adds r0, r7, 0 movs r1, 0x6 bl sub_806CDD4 adds r0, r7, 0 adds r1, r5, 0 bl sub_80420E8 movs r3, 0x1 str r3, [sp, 0x54] _0806D900: movs r0, 0xE ldrsh r4, [r6, r0] ldr r1, [r5] cmp r4, r1 ble _0806D910 ldrh r0, [r6, 0xE] subs r0, r1 b _0806D912 _0806D910: movs r0, 0 _0806D912: strh r0, [r6, 0xE] adds r0, r6, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x9 bne _0806D93C movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 bne _0806D958 movs r0, 0x1 strh r0, [r6, 0xE] ldr r0, _0806D938 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806D958 .align 2, 0 _0806D938: .4byte gUnknown_8100548 _0806D93C: ldr r2, [sp, 0x4C] cmp r2, 0x1 bne _0806D958 movs r3, 0xE ldrsh r0, [r6, r3] cmp r0, 0 bne _0806D958 strh r2, [r6, 0xE] ldr r0, _0806D9C8 ldr r2, [r0] mov r0, r9 adds r1, r7, 0 bl sub_80522F4 _0806D958: movs r1, 0xE ldrsh r0, [r6, r1] subs r4, r0 cmp r4, 0 bge _0806D964 movs r4, 0 _0806D964: ldr r2, [sp, 0x54] cmp r2, 0 bne _0806D970 mov r3, r8 cmp r3, 0 beq _0806D978 _0806D970: movs r0, 0xA movs r1, 0x18 bl sub_803E708 _0806D978: movs r1, 0xE ldrsh r0, [r6, r1] cmp r0, 0 beq _0806D9D4 ldr r2, [sp, 0x54] cmp r2, 0 beq _0806D98E adds r0, r7, 0 movs r1, 0x8 bl sub_806CE68 _0806D98E: adds r0, r7, 0 movs r1, 0x10 bl HasItem lsls r0, 24 cmp r0, 0 beq _0806D9B2 cmp r4, 0 ble _0806D9B2 ldr r1, [r5] ldr r0, _0806D9CC cmp r1, r0 beq _0806D9B2 mov r0, r9 adds r1, r7, 0 adds r2, r4, 0 bl sub_8071D4C _0806D9B2: mov r3, r8 cmp r3, 0 bne _0806D9BA b _0806D608 _0806D9BA: ldrh r1, [r3, 0x4] ldr r0, _0806D9D0 ands r0, r1 strh r0, [r3, 0x4] bl sub_8049ED4 b _0806D608 .align 2, 0 _0806D9C8: .4byte gUnknown_810056C _0806D9CC: .4byte 0x0000270f _0806D9D0: .4byte 0x0000fffb _0806D9D4: adds r0, r6, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x2 bne _0806D9E6 mov r0, r9 adds r1, r7, 0 bl sub_807A7C8 _0806D9E6: mov r0, r8 cmp r0, 0 beq _0806DA18 movs r0, 0x14 movs r1, 0x18 bl sub_803E708 adds r1, r7, 0 adds r1, 0x22 movs r0, 0x2 strb r0, [r1] movs r0, 0xA movs r1, 0x18 bl sub_803E708 mov r2, r8 ldrh r1, [r2, 0x4] ldr r0, _0806DA14 ands r0, r1 strh r0, [r2, 0x4] bl sub_8049ED4 b _0806DA2E .align 2, 0 _0806DA14: .4byte 0x0000fffb _0806DA18: ldr r3, [sp, 0x54] cmp r3, 0 beq _0806DA2E adds r1, r7, 0 adds r1, 0x22 movs r0, 0x1 strb r0, [r1] movs r0, 0x1E movs r1, 0x18 bl sub_803E708 _0806DA2E: movs r0, 0x1 mov r8, r0 mov r0, r9 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806DA50 mov r0, r9 bl GetEntityType cmp r0, 0x1 bne _0806DA50 cmp r9, r7 beq _0806DA50 movs r1, 0 mov r8, r1 _0806DA50: movs r2, 0xA6 lsls r2, 1 adds r1, r6, r2 movs r0, 0 strb r0, [r1] ldr r4, _0806DA88 adds r0, r4, 0 mov r1, r9 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, [r5, 0x4] subs r0, 0x13 cmp r0, 0x1 bhi _0806DA9C ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806DA90 ldr r0, _0806DA8C ldr r2, [r0] b _0806DAC2 .align 2, 0 _0806DA88: .4byte gAvailablePokemonNames _0806DA8C: .4byte gUnknown_80F9E44 _0806DA90: ldr r0, _0806DA98 ldr r1, [r0] b _0806DB86 .align 2, 0 _0806DA98: .4byte gUnknown_80F9E44 _0806DA9C: ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806DAD0 adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806DAB8 ldr r0, _0806DAB4 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DAB4: .4byte gUnknown_80F9DF0 _0806DAB8: ldr r0, _0806DACC mov r2, r8 lsls r1, r2, 2 adds r1, r0 ldr r2, [r1] _0806DAC2: mov r0, r9 adds r1, r7, 0 bl sub_80522F4 b _0806DBA4 .align 2, 0 _0806DACC: .4byte gUnknown_80F9CC0 _0806DAD0: ldr r2, _0806DB04 ldrb r1, [r6, 0xA] movs r0, 0x64 muls r0, r1 ldr r3, _0806DB08 adds r0, r3 ldr r1, [r2] adds r3, r1, r0 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806DB00 adds r0, r6, 0 adds r0, 0x40 ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0x41 bne _0806DB18 ldr r0, _0806DB0C ldr r0, [r0] ldr r1, _0806DB10 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _0806DB18 _0806DB00: ldr r0, _0806DB14 b _0806DB7E .align 2, 0 _0806DB04: .4byte gRecruitedPokemonRef _0806DB08: .4byte 0x00008df8 _0806DB0C: .4byte gDungeonGlobalData _0806DB10: .4byte 0x0000065c _0806DB14: .4byte gUnknown_80F9CEC _0806DB18: ldrb r0, [r2] cmp r0, 0x4A beq _0806DB22 cmp r0, 0x47 bne _0806DB26 _0806DB22: movs r0, 0x1 b _0806DB28 _0806DB26: movs r0, 0 _0806DB28: cmp r0, 0 beq _0806DB38 ldr r0, _0806DB34 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DB34: .4byte gUnknown_80F9DAC _0806DB38: adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806DB4C ldr r0, _0806DB48 b _0806DB7E .align 2, 0 _0806DB48: .4byte gUnknown_80F9DF0 _0806DB4C: movs r1, 0xA ldrsh r0, [r3, r1] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806DB94 ldr r0, _0806DB70 ldr r0, [r0] ldr r2, _0806DB74 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0806DB7C ldr r0, _0806DB78 mov r3, r8 lsls r1, r3, 2 b _0806DB82 .align 2, 0 _0806DB70: .4byte gDungeonGlobalData _0806DB74: .4byte 0x0000065d _0806DB78: .4byte gUnknown_80F9D8C _0806DB7C: ldr r0, _0806DB90 _0806DB7E: mov r2, r8 lsls r1, r2, 2 _0806DB82: adds r1, r0 ldr r1, [r1] _0806DB86: mov r0, r9 bl sub_805239C b _0806DBA4 .align 2, 0 _0806DB90: .4byte gUnknown_80F9D84 _0806DB94: ldr r0, _0806DC4C mov r3, r8 lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] mov r0, r9 bl sub_805239C _0806DBA4: mov r1, r10 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806DBBC adds r0, r6, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _0806DBBC: adds r1, r6, 0 adds r1, 0x60 ldrb r3, [r1] movs r2, 0x1 mov r8, r2 mov r0, r8 ands r0, r3 adds r5, r1, 0 cmp r0, 0 beq _0806DC5C movs r0, 0x8 ands r0, r3 cmp r0, 0 bne _0806DC5C movs r0, 0x2 ands r0, r3 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0806DC5C ldrb r0, [r5, 0x2] cmp r0, 0xD2 bne _0806DC5C adds r0, r7, 0 bl sub_8042148 adds r0, r7, 0 adds r0, 0x22 strb r4, [r0] ldrh r0, [r6, 0x10] movs r2, 0 strh r0, [r6, 0xE] movs r3, 0xAC lsls r3, 1 adds r0, r6, r3 strb r2, [r0] movs r1, 0xA6 lsls r1, 1 adds r0, r6, r1 mov r3, r8 strb r3, [r0] movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 movs r3, 0xA0 lsls r3, 1 adds r0, r6, r3 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DC36 ldr r0, _0806DC50 ldr r1, [r0] ldr r3, _0806DC54 adds r1, r3 strb r2, [r1] ldr r0, [r0] ldr r1, _0806DC58 adds r0, r1 strb r2, [r0] _0806DC36: strb r2, [r5, 0x2] strb r2, [r5, 0x1] strb r2, [r5] adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DC48 b _0806DEC8 _0806DC48: b _0806DEE4 .align 2, 0 _0806DC4C: .4byte gUnknown_80F9D28 _0806DC50: .4byte gDungeonGlobalData _0806DC54: .4byte 0x00000679 _0806DC58: .4byte 0x00000676 _0806DC5C: ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806DC64 b _0806DDFC _0806DC64: mov r10, r5 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806DC72 b _0806DDFC _0806DC72: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0806DC7C b _0806DDFC _0806DC7C: ldrb r0, [r5, 0x2] cmp r0, 0xD8 beq _0806DC84 b _0806DDFC _0806DC84: movs r4, 0 _0806DC86: ldr r0, _0806DD80 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0806DD84 adds r0, r2 adds r0, r1 ldr r0, [r0] mov r8, r0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806DCDE cmp r8, r7 beq _0806DCDE adds r0, r7, 0 mov r1, r8 bl CanSee lsls r0, 24 cmp r0, 0 beq _0806DCDE mov r3, r8 movs r0, 0x4 ldrsh r1, [r3, r0] movs r2, 0x4 ldrsh r0, [r7, r2] subs r1, r0 cmp r1, 0 bge _0806DCC4 negs r1, r1 _0806DCC4: cmp r1, 0x1 bgt _0806DCDE mov r3, r8 movs r0, 0x6 ldrsh r1, [r3, r0] movs r2, 0x6 ldrsh r0, [r7, r2] subs r1, r0 cmp r1, 0 bge _0806DCDA negs r1, r1 _0806DCDA: cmp r1, 0x1 ble _0806DCE4 _0806DCDE: adds r4, 0x1 cmp r4, 0x3 ble _0806DC86 _0806DCE4: cmp r4, 0x4 bne _0806DCEA b _0806DDFC _0806DCEA: adds r0, r7, 0 bl sub_8042148 mov r3, r8 ldr r4, [r3, 0x4] ldr r1, _0806DD88 mov r0, r8 adds r2, r7, 0 bl sub_8068FE0 lsls r1, r4, 16 asrs r1, 16 asrs r4, 16 adds r0, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_80694C0 adds r0, r7, 0 movs r1, 0 bl sub_804535C adds r1, r7, 0 adds r1, 0x22 movs r0, 0 strb r0, [r1] ldrh r0, [r6, 0x10] movs r4, 0 strh r0, [r6, 0xE] adds r0, r7, 0 bl sub_8042A24 movs r1, 0xAC lsls r1, 1 adds r0, r6, r1 strb r4, [r0] movs r2, 0xA6 lsls r2, 1 adds r1, r6, r2 movs r0, 0x1 strb r0, [r1] movs r3, 0x9E lsls r3, 1 adds r1, r6, r3 subs r2, 0xC adds r0, r6, r2 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DD62 ldr r0, _0806DD80 ldr r1, [r0] ldr r3, _0806DD8C adds r1, r3 strb r4, [r1] ldr r0, [r0] ldr r1, _0806DD90 adds r0, r1 strb r4, [r0] _0806DD62: mov r2, r10 strb r4, [r2, 0x2] strb r4, [r2, 0x1] strb r4, [r2] adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DD94 mov r0, r9 adds r1, r7, 0 movs r2, 0x3 bl sub_807A5D0 b _0806DDA2 .align 2, 0 _0806DD80: .4byte gDungeonGlobalData _0806DD84: .4byte 0x0001357c _0806DD88: .4byte 0x00000221 _0806DD8C: .4byte 0x00000679 _0806DD90: .4byte 0x00000676 _0806DD94: cmp r0, 0x2 bne _0806DDA2 mov r0, r9 adds r1, r7, 0 movs r2, 0x2 bl sub_807A5D0 _0806DDA2: adds r0, r7, 0 bl sub_8078084 adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 bl sub_800DBBC adds r0, r7, 0 bl sub_806A390 adds r0, r7, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl sub_806CCB4 adds r0, r7, 0 bl DungeonEntityUpdateStatusSprites ldr r4, _0806DDF0 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 mov r1, r8 movs r2, 0 bl SetMessageArgument ldr r0, _0806DDF4 b _0806DF2E .align 2, 0 _0806DDF0: .4byte gAvailablePokemonNames _0806DDF4: .4byte gUnknown_80FD484 _0806DDF8: mov r4, r8 b _0806DE64 _0806DDFC: adds r0, r7, 0 movs r1, 0x16 bl HasIQSkill lsls r0, 24 cmp r0, 0 bne _0806DE0C b _0806DF48 _0806DE0C: movs r4, 0 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806DE28 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806DE28 ldrb r0, [r5, 0x2] cmp r0, 0x3A bne _0806DE28 adds r4, r5, 0 _0806DE28: cmp r4, 0 bne _0806DE68 ldrb r0, [r6, 0x6] cmp r0, 0 bne _0806DE64 movs r3, 0 ldr r0, _0806DED4 ldr r2, [r0] mov r12, r2 movs r0, 0x1 mov r10, r0 _0806DE3E: lsls r0, r3, 2 add r0, r12 mov r8, r0 ldrb r1, [r2] mov r0, r10 ands r0, r1 cmp r0, 0 beq _0806DE5C movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806DE5C ldrb r0, [r2, 0x2] cmp r0, 0x3A beq _0806DDF8 _0806DE5C: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _0806DE3E _0806DE64: cmp r4, 0 beq _0806DF48 _0806DE68: adds r0, r7, 0 bl sub_8042148 adds r0, r4, 0 movs r1, 0x46 movs r2, 0x2 bl sub_8045C28 adds r1, r7, 0 adds r1, 0x22 movs r0, 0 strb r0, [r1] ldrh r0, [r6, 0x10] movs r2, 0 strh r0, [r6, 0xE] movs r1, 0xAC lsls r1, 1 adds r0, r6, r1 strb r2, [r0] movs r3, 0xA6 lsls r3, 1 adds r1, r6, r3 movs r0, 0x1 strb r0, [r1] movs r0, 0x9E lsls r0, 1 adds r1, r6, r0 subs r3, 0xC adds r0, r6, r3 ldr r0, [r0] str r0, [r1] ldrb r0, [r6, 0x7] cmp r0, 0 beq _0806DEBE ldr r0, _0806DED8 ldr r1, [r0] ldr r3, _0806DEDC adds r1, r3 strb r2, [r1] ldr r0, [r0] ldr r1, _0806DEE0 adds r0, r1 strb r2, [r0] _0806DEBE: adds r0, r6, 0 adds r0, 0xC8 ldrb r0, [r0] cmp r0, 0x3 bne _0806DEE4 _0806DEC8: mov r0, r9 adds r1, r7, 0 movs r2, 0x3 bl sub_807A5D0 b _0806DEF2 .align 2, 0 _0806DED4: .4byte gTeamInventory_203B460 _0806DED8: .4byte gDungeonGlobalData _0806DEDC: .4byte 0x00000679 _0806DEE0: .4byte 0x00000676 _0806DEE4: cmp r0, 0x2 bne _0806DEF2 mov r0, r9 adds r1, r7, 0 movs r2, 0x2 bl sub_807A5D0 _0806DEF2: adds r0, r7, 0 bl sub_8078084 adds r0, r6, 0 movs r1, 0 bl sub_806BFC0 bl sub_800DBBC adds r0, r7, 0 bl sub_806A390 adds r0, r7, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r7, 0 bl sub_806CCB4 adds r0, r7, 0 bl DungeonEntityUpdateStatusSprites ldr r0, _0806DF40 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0806DF44 _0806DF2E: ldr r1, [r0] mov r0, r9 bl sub_805239C adds r0, r7, 0 bl sub_806F63C bl _0806D608 .align 2, 0 _0806DF40: .4byte gUnknown_202DFE8 _0806DF44: .4byte gUnknown_80FD46C _0806DF48: ldrb r4, [r6, 0x7] cmp r4, 0 bne _0806DF68 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806DF68 adds r1, r7, 0x4 adds r0, r7, 0 adds r2, r5, 0 bl sub_80464C8 strb r4, [r5, 0x2] strb r4, [r5, 0x1] strb r4, [r5] _0806DF68: adds r0, r6, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _0806DF7E ldr r0, _0806E02C ldr r0, [r0] ldr r2, _0806E030 adds r0, r2 ldr r1, _0806E034 strh r1, [r0] _0806DF7E: movs r3, 0 mov r10, r3 mov r0, r9 bl GetEntityType cmp r0, 0x1 bne _0806E066 mov r0, r9 ldr r4, [r0, 0x70] movs r1, 0x2 ldrsh r0, [r6, r1] ldrb r1, [r6, 0x9] bl CalculateEXPGain adds r5, r0, 0 adds r0, r6, 0 adds r0, 0xFB ldrb r0, [r0] cmp r0, 0 beq _0806DFAE cmp r0, 0x2 bne _0806DFB4 lsls r0, r5, 1 adds r5, r0, r5 _0806DFAE: lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 _0806DFB4: cmp r5, 0 bne _0806DFBA movs r5, 0x1 _0806DFBA: ldrb r0, [r4, 0x7] cmp r0, 0 beq _0806DFC8 movs r2, 0x2 ldrsh r0, [r6, r2] bl sub_80980B4 _0806DFC8: adds r0, r6, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _0806DFDA ldr r3, _0806E038 adds r1, r4, r3 movs r0, 0x1 strb r0, [r1] _0806DFDA: ldr r0, [sp, 0x78] cmp r0, 0x1 bne _0806E066 ldrb r0, [r4, 0x6] cmp r0, 0 bne _0806E040 ldrb r0, [r6, 0x6] cmp r0, 0 beq _0806E066 mov r0, r9 mov r1, r9 adds r2, r5, 0 bl sub_8071D4C movs r6, 0 _0806DFF8: ldr r0, _0806E02C ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0806E03C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806E020 cmp r4, r9 beq _0806E020 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_8071D4C _0806E020: adds r6, 0x1 cmp r6, 0x3 ble _0806DFF8 movs r3, 0x1 mov r10, r3 b _0806E066 .align 2, 0 _0806E02C: .4byte gDungeonGlobalData _0806E030: .4byte 0x0000066a _0806E034: .4byte 0x000003e7 _0806E038: .4byte 0x0000014b _0806E03C: .4byte 0x0001357c _0806E040: ldr r5, _0806E0BC ldr r0, [r5] ldr r1, _0806E0C0 adds r0, r1 ldrb r0, [r0] bl sub_809033C lsls r0, 24 cmp r0, 0 beq _0806E066 ldr r2, _0806E0C4 adds r0, r4, r2 add r3, sp, 0x78 ldrb r3, [r3] strb r3, [r0] ldr r0, [r5] add r1, sp, 0x78 ldrb r1, [r1] strb r1, [r0, 0xD] _0806E066: mov r0, r9 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806E08A mov r0, r9 bl GetEntityType cmp r0, 0x1 bne _0806E08A mov r2, r9 ldr r0, [r2, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 bne _0806E08A movs r3, 0 mov r10, r3 _0806E08A: mov r0, r10 cmp r0, 0 beq _0806E0E4 add r0, sp, 0x4 adds r1, r7, 0 bl sub_8069D4C mov r0, r9 adds r1, r7, 0 bl sub_806F660 lsls r0, 24 cmp r0, 0 beq _0806E0D8 mov r0, r9 adds r1, r7, 0 add r2, sp, 0x4 bl sub_806FA5C lsls r0, 24 cmp r0, 0 bne _0806E0CC ldr r1, _0806E0C8 adds r0, r7, 0 b _0806E0DC .align 2, 0 _0806E0BC: .4byte gDungeonGlobalData _0806E0C0: .4byte 0x00000644 _0806E0C4: .4byte 0x00000149 _0806E0C8: .4byte 0x000001f5 _0806E0CC: ldr r1, _0806E0D4 movs r0, 0x1 strb r0, [r1] b _0806E0EE .align 2, 0 _0806E0D4: .4byte gUnknown_202F221 _0806E0D8: adds r0, r7, 0 ldr r1, [sp, 0x50] _0806E0DC: mov r2, r9 bl sub_8068FE0 b _0806E0EE _0806E0E4: adds r0, r7, 0 ldr r1, [sp, 0x50] mov r2, r9 bl sub_8068FE0 _0806E0EE: movs r0, 0x1 _0806E0F0: add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806D528 thumb_func_start sub_806E100 sub_806E100: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r6, r0, 0 mov r8, r1 str r2, [sp, 0x18] lsls r3, 24 lsrs r7, r3, 24 movs r0, 0 mov r9, r0 movs r1, 0 str r1, [sp, 0x20] mov r2, r8 ldr r2, [r2, 0x70] str r2, [sp, 0x24] ldr r3, [sp, 0x18] ldr r3, [r3, 0x70] mov r10, r3 adds r0, r6, 0 movs r1, 0x1 bl sub_800A020 mov r0, r9 ldr r4, [sp, 0x48] strb r0, [r4, 0xD] strb r0, [r4, 0xE] movs r1, 0 str r1, [sp, 0x1C] ldr r0, [sp, 0x18] bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806E14E movs r0, 0x1 b _0806E61A _0806E14E: cmp r7, 0x1 beq _0806E156 cmp r7, 0x7 bne _0806E15A _0806E156: movs r2, 0x1 str r2, [sp, 0x20] _0806E15A: ldr r0, [sp, 0x18] movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E170 cmp r7, 0 beq _0806E170 movs r3, 0x1 str r3, [sp, 0x1C] _0806E170: movs r0, 0x2 ldr r4, [sp, 0x48] str r0, [r4, 0x8] movs r5, 0 add r0, sp, 0x10 mov r9, r0 b _0806E1F2 _0806E17E: mov r1, r10 adds r1, 0x5C ldr r2, [sp, 0x20] cmp r2, 0 beq _0806E1B4 adds r0, r1, r5 ldrb r0, [r0] cmp r0, 0xE bne _0806E1B4 mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806E1B4 movs r4, 0 ldr r0, _0806E1AC ldr r0, [r0] ldr r3, _0806E1B0 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] b _0806E1CA .align 2, 0 _0806E1AC: .4byte gDungeonGlobalData _0806E1B0: .4byte 0x00000179 _0806E1B4: ldr r2, _0806E4E4 adds r0, r1, r5 ldrb r1, [r0] lsls r1, 1 lsls r0, r7, 3 adds r0, r7 lsls r0, 2 adds r1, r0 adds r1, r2 movs r0, 0 ldrsh r4, [r1, r0] _0806E1CA: cmp r4, 0x2 beq _0806E1DC lsls r0, r4, 2 add r0, sp ldr r2, [r0] adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E1DC: lsls r0, r5, 2 add r0, r9 str r4, [r0] ldr r0, _0806E4E8 ldr r0, [r0] movs r1, 0x9E lsls r1, 1 adds r0, r1 adds r0, r5 strb r4, [r0] adds r5, 0x1 _0806E1F2: cmp r5, 0x1 bgt _0806E20E mov r1, sp ldr r0, _0806E4EC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] adds r0, r6, 0 bl sub_800A2A0 lsls r0, 24 cmp r0, 0 beq _0806E17E _0806E20E: ldr r2, _0806E4F0 mov r1, r9 ldr r0, [r1, 0x4] lsls r0, 2 ldr r1, [sp, 0x10] lsls r1, 4 adds r0, r1 adds r0, r2 ldr r0, [r0] ldr r2, [sp, 0x48] str r0, [r2, 0x8] movs r3, 0x1 mov r9, r3 cmp r0, 0x3 beq _0806E240 movs r4, 0 mov r9, r4 ldr r0, [sp, 0x1C] cmp r0, 0 beq _0806E240 ldr r0, _0806E4F4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r6] str r1, [r6, 0x4] _0806E240: cmp r7, 0x2 beq _0806E248 cmp r7, 0x6 bne _0806E26C _0806E248: ldr r0, [sp, 0x18] movs r1, 0x2 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E26C ldr r0, _0806E4E8 ldr r0, [r0] ldr r2, _0806E4F8 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E4FC adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E26C: cmp r7, 0x2 bne _0806E2A0 ldr r0, [sp, 0x18] bl GetFlashFireStatus lsls r0, 24 cmp r0, 0 beq _0806E2A0 ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB7 lsls r3, 1 adds r0, r3 movs r4, 0 movs r5, 0x1 strb r5, [r0] adds r0, r6, 0 movs r1, 0 bl sub_800A020 ldr r0, [sp, 0x48] str r4, [r0, 0x8] strb r4, [r0, 0xD] strb r5, [r0, 0xE] movs r1, 0 mov r9, r1 _0806E2A0: cmp r7, 0x9 bne _0806E2D2 ldr r0, [sp, 0x18] movs r1, 0x37 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E2D2 ldr r0, _0806E4E8 ldr r0, [r0] ldr r2, _0806E500 adds r0, r2 movs r4, 0 movs r5, 0x1 strb r5, [r0] adds r0, r6, 0 movs r1, 0 bl sub_800A020 ldr r3, [sp, 0x48] str r4, [r3, 0x8] strb r4, [r3, 0xD] strb r5, [r3, 0xE] mov r9, r4 _0806E2D2: cmp r7, 0x3 bne _0806E340 mov r0, r8 movs r1, 0x10 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E340 movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E2F2 adds r1, 0x3 _0806E2F2: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E300 movs r4, 0x1 _0806E300: ldr r0, [sp, 0x24] movs r1, 0x80 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E32A ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB8 lsls r3, 1 adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E32A: cmp r5, 0 beq _0806E340 mov r0, r8 bl sub_80428EC ldr r0, _0806E508 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E340: cmp r7, 0x4 bne _0806E3AC mov r0, r8 movs r1, 0x1A bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E3AC movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E360 adds r1, 0x3 _0806E360: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E36E movs r4, 0x1 _0806E36E: ldr r0, [sp, 0x24] movs r1, 0x2 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E396 ldr r0, _0806E4E8 ldr r0, [r0] ldr r3, _0806E50C adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E396: cmp r5, 0 beq _0806E3AC mov r0, r8 bl sub_80428D8 ldr r0, _0806E510 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E3AC: cmp r7, 0xC bne _0806E41A mov r0, r8 movs r1, 0x43 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E41A movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E3CC adds r1, 0x3 _0806E3CC: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E3DA movs r4, 0x1 _0806E3DA: ldr r0, [sp, 0x24] movs r1, 0x10 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E404 ldr r0, _0806E4E8 ldr r0, [r0] movs r3, 0xB9 lsls r3, 1 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E404: cmp r5, 0 beq _0806E41A mov r0, r8 bl sub_8042978 ldr r0, _0806E514 ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E41A: cmp r7, 0x2 bne _0806E486 mov r0, r8 movs r1, 0x46 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E486 movs r4, 0 ldr r0, [sp, 0x24] movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E43A adds r1, 0x3 _0806E43A: asrs r1, 2 ldr r3, [sp, 0x24] movs r2, 0xE ldrsh r0, [r3, r2] cmp r1, r0 blt _0806E448 movs r4, 0x1 _0806E448: ldr r0, [sp, 0x24] movs r1, 0x20 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0 beq _0806E470 ldr r0, _0806E4E8 ldr r0, [r0] ldr r3, _0806E518 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E504 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E470: cmp r5, 0 beq _0806E486 mov r0, r8 bl sub_804298C ldr r0, _0806E51C ldr r2, [r0] mov r0, r8 ldr r1, [sp, 0x18] bl sub_80522F4 _0806E486: adds r0, r6, 0 bl sub_800A2A0 lsls r0, 24 cmp r0, 0 bne _0806E4B8 mov r0, r8 adds r1, r7, 0 bl HasType lsls r0, 24 cmp r0, 0 beq _0806E4B8 ldr r0, _0806E4E8 ldr r0, [r0] movs r4, 0xBA lsls r4, 1 adds r0, r4 movs r1, 0x1 strb r1, [r0] ldr r2, _0806E520 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E4B8: mov r0, r8 bl GetWeather lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0806E53E cmp r7, 0x2 bne _0806E524 ldr r0, _0806E4E8 ldr r0, [r0] movs r1, 0xB6 lsls r1, 1 adds r0, r1 strb r4, [r0] ldr r2, _0806E520 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C b _0806E53E .align 2, 0 _0806E4E4: .4byte gTypeEffectivenessChart _0806E4E8: .4byte gDungeonGlobalData _0806E4EC: .4byte gUnknown_8106F54 _0806E4F0: .4byte gUnknown_80F54B4 _0806E4F4: .4byte gUnknown_8106EFC _0806E4F8: .4byte 0x0000016d _0806E4FC: .4byte gUnknown_8106F1C _0806E500: .4byte 0x0000016f _0806E504: .4byte gUnknown_8106F0C _0806E508: .4byte gUnknown_80FEDA8 _0806E50C: .4byte 0x00000171 _0806E510: .4byte gUnknown_80FED88 _0806E514: .4byte gUnknown_80FEDC8 _0806E518: .4byte 0x00000173 _0806E51C: .4byte gUnknown_80FEDE8 _0806E520: .4byte gUnknown_8106F14 _0806E524: cmp r7, 0x3 bne _0806E53E ldr r0, _0806E560 ldr r0, [r0] movs r2, 0xB6 lsls r2, 1 adds r0, r2 strb r4, [r0] ldr r2, _0806E564 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E53E: cmp r4, 0x4 bne _0806E586 cmp r7, 0x2 bne _0806E56C ldr r0, _0806E560 ldr r0, [r0] ldr r3, _0806E568 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E564 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C b _0806E586 .align 2, 0 _0806E560: .4byte gDungeonGlobalData _0806E564: .4byte gUnknown_8106F1C _0806E568: .4byte 0x0000016b _0806E56C: cmp r7, 0x3 bne _0806E586 ldr r0, _0806E62C ldr r0, [r0] ldr r2, _0806E630 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E634 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E586: cmp r4, 0x3 bne _0806E5A6 cmp r7, 0x1 beq _0806E5A6 ldr r2, _0806E638 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C ldr r0, _0806E62C ldr r0, [r0] movs r3, 0xB5 lsls r3, 1 adds r1, r0, r3 movs r0, 0x1 strb r0, [r1] _0806E5A6: ldr r0, _0806E62C ldr r1, [r0] ldr r2, _0806E63C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0806E5B8 cmp r4, 0x6 bne _0806E5CE _0806E5B8: cmp r7, 0x5 bne _0806E5CE ldr r3, _0806E640 adds r1, r3 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E644 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E5CE: ldr r0, _0806E62C ldr r1, [r0] ldr r4, _0806E648 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _0806E5F4 cmp r7, 0x2 bne _0806E5F4 movs r0, 0xBB lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E644 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E5F4: cmp r7, 0x5 bne _0806E618 ldr r0, [sp, 0x24] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xB bne _0806E618 ldr r0, _0806E62C ldr r0, [r0] ldr r2, _0806E64C adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] ldr r2, _0806E650 adds r0, r6, 0 adds r1, r6, 0 bl sub_800A34C _0806E618: mov r0, r9 _0806E61A: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806E62C: .4byte gDungeonGlobalData _0806E630: .4byte 0x0000016b _0806E634: .4byte gUnknown_8106F14 _0806E638: .4byte gUnknown_8106F64 _0806E63C: .4byte 0x0000e277 _0806E640: .4byte 0x00000175 _0806E644: .4byte gUnknown_8106F1C _0806E648: .4byte 0x0000e278 _0806E64C: .4byte 0x00000177 _0806E650: .4byte gUnknown_8106F0C thumb_func_end sub_806E100 thumb_func_start WeightWeakTypePicker WeightWeakTypePicker: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 str r1, [sp, 0x14] lsls r2, 24 lsrs r4, r2, 24 movs r5, 0x1 movs r0, 0 str r0, [sp, 0x10] adds r0, r1, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0806E6DC cmp r4, 0x1 beq _0806E682 cmp r4, 0x7 bne _0806E686 _0806E682: movs r1, 0x1 str r1, [sp, 0x10] _0806E686: mov r2, r9 ldr r2, [r2, 0x70] mov r8, r2 ldr r3, [sp, 0x14] ldr r3, [r3, 0x70] mov r10, r3 cmp r4, 0x2 bne _0806E6A2 ldr r0, [sp, 0x14] bl GetFlashFireStatus lsls r0, 24 cmp r0, 0 bne _0806E6C6 _0806E6A2: cmp r4, 0x5 bne _0806E6B4 ldr r0, [sp, 0x14] movs r1, 0x23 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806E6C6 _0806E6B4: cmp r4, 0x3 bne _0806E6CA ldr r0, [sp, 0x14] movs r1, 0x24 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E6CA _0806E6C6: movs r0, 0 b _0806E894 _0806E6CA: cmp r4, 0x9 bne _0806E6E0 ldr r0, [sp, 0x14] movs r1, 0x37 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E6E0 _0806E6DC: movs r0, 0x1 b _0806E894 _0806E6E0: mov r6, r10 adds r6, 0x5C str r6, [sp, 0x18] lsls r0, r4, 3 adds r0, r4 lsls r0, 2 mov r12, r0 adds r2, r6, 0 _0806E6F0: mov r0, sp ldr r1, _0806E724 ldm r1!, {r3,r6,r7} stm r0!, {r3,r6,r7} ldr r1, [r1] str r1, [r0] ldr r7, [sp, 0x10] cmp r7, 0 beq _0806E730 ldrb r0, [r2] cmp r0, 0xE bne _0806E730 mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806E730 movs r3, 0 ldr r0, _0806E728 ldr r0, [r0] ldr r6, _0806E72C adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] b _0806E73E .align 2, 0 _0806E724: .4byte gTypeEffectivenessMultipliers _0806E728: .4byte gDungeonGlobalData _0806E72C: .4byte 0x00000179 _0806E730: ldrb r0, [r2] lsls r0, 1 add r0, r12 ldr r7, _0806E854 adds r0, r7 movs r1, 0 ldrsh r3, [r0, r1] _0806E73E: cmp r5, 0 beq _0806E75E lsls r0, r3, 2 add r0, sp ldr r0, [r0] muls r5, r0 lsrs r0, r5, 31 adds r0, r5, r0 asrs r5, r0, 1 cmp r5, 0 beq _0806E84E adds r2, 0x1 ldr r0, [sp, 0x18] adds r0, 0x1 cmp r2, r0 ble _0806E6F0 _0806E75E: cmp r4, 0x2 beq _0806E766 cmp r4, 0x6 bne _0806E774 _0806E766: ldr r0, [sp, 0x14] movs r1, 0x2 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806E84E _0806E774: cmp r4, 0x3 bne _0806E7A0 mov r0, r9 movs r1, 0x10 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E7A0 mov r2, r8 movs r3, 0x10 ldrsh r1, [r2, r3] cmp r1, 0 bge _0806E792 adds r1, 0x3 _0806E792: asrs r1, 2 mov r6, r8 movs r7, 0xE ldrsh r0, [r6, r7] cmp r1, r0 blt _0806E7A0 lsls r5, 1 _0806E7A0: cmp r4, 0x4 bne _0806E7CC mov r0, r9 movs r1, 0x1A bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E7CC mov r0, r8 movs r2, 0x10 ldrsh r1, [r0, r2] cmp r1, 0 bge _0806E7BE adds r1, 0x3 _0806E7BE: asrs r1, 2 mov r3, r8 movs r6, 0xE ldrsh r0, [r3, r6] cmp r1, r0 blt _0806E7CC lsls r5, 1 _0806E7CC: cmp r4, 0xC bne _0806E7F8 mov r0, r9 movs r1, 0x43 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E7F8 mov r7, r8 movs r0, 0x10 ldrsh r1, [r7, r0] cmp r1, 0 bge _0806E7EA adds r1, 0x3 _0806E7EA: asrs r1, 2 mov r2, r8 movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 blt _0806E7F8 lsls r5, 1 _0806E7F8: cmp r4, 0x2 bne _0806E824 mov r0, r9 movs r1, 0x46 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E824 mov r6, r8 movs r7, 0x10 ldrsh r1, [r6, r7] cmp r1, 0 bge _0806E816 adds r1, 0x3 _0806E816: asrs r1, 2 mov r2, r8 movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 blt _0806E824 lsls r5, 1 _0806E824: cmp r5, 0 beq _0806E84E mov r0, r9 adds r1, r4, 0 bl HasType lsls r0, 24 cmp r0, 0 beq _0806E838 lsls r5, 1 _0806E838: mov r0, r9 bl GetWeather lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E85A cmp r4, 0x2 beq _0806E858 cmp r4, 0x3 bne _0806E85A _0806E84E: movs r0, 0x2 b _0806E894 .align 2, 0 _0806E854: .4byte gTypeEffectivenessChart _0806E858: lsls r5, 1 _0806E85A: ldr r0, _0806E8A4 ldr r1, [r0] ldr r6, _0806E8A8 adds r1, r6 ldrb r1, [r1] cmp r1, 0 beq _0806E86C cmp r4, 0x5 beq _0806E84E _0806E86C: ldr r0, [r0] ldr r7, _0806E8AC adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _0806E87C cmp r4, 0x2 beq _0806E84E _0806E87C: cmp r4, 0x5 bne _0806E88C mov r0, r8 adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0xB bne _0806E88C lsls r5, 1 _0806E88C: cmp r5, 0x2 ble _0806E892 movs r5, 0x3 _0806E892: adds r0, r5, 0x2 _0806E894: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806E8A4: .4byte gDungeonGlobalData _0806E8A8: .4byte 0x0000e277 _0806E8AC: .4byte 0x0000e278 thumb_func_end WeightWeakTypePicker thumb_func_start sub_806E8B0 sub_806E8B0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r6, r0, 0 mov r9, r1 adds r0, r2, 0 str r3, [sp] lsls r0, 24 lsrs r0, 24 movs r7, 0x1 movs r1, 0x1 mov r8, r1 movs r2, 0x1 str r2, [sp, 0x4] str r1, [sp, 0x8] bl sub_8092354 movs r2, 0 mov r10, r2 lsls r0, 24 cmp r0, 0 bne _0806E8E6 movs r0, 0x1 mov r10, r0 _0806E8E6: adds r0, r6, 0 movs r1, 0x11 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E92C ldr r5, [r6, 0x70] adds r0, r6, 0 bl HasNegativeStatus adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r0, 24 cmp r4, 0 beq _0806E916 movs r7, 0x2 _0806E916: cmp r0, 0 beq _0806E92C adds r0, r6, 0 bl sub_80428B0 ldr r0, _0806EADC ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806E92C: adds r0, r6, 0 movs r1, 0x22 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806E948 adds r0, r6, 0 movs r1, 0x4B bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E98E _0806E948: ldr r2, [r6, 0x70] movs r4, 0 ldr r0, [sp, 0x30] cmp r0, 0x20 bgt _0806E95A mov r1, r10 cmp r1, 0 bne _0806E95A movs r4, 0x1 _0806E95A: movs r1, 0x80 lsls r1, 1 adds r0, r2, 0 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0 beq _0806E978 lsls r0, r7, 1 adds r7, r0, r7 mov r2, r8 lsls r2, 1 mov r8, r2 _0806E978: cmp r1, 0 beq _0806E98E adds r0, r6, 0 bl sub_80428C4 ldr r0, _0806EAE0 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806E98E: adds r0, r6, 0 movs r1, 0x30 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E9AC mov r0, r10 cmp r0, 0 bne _0806E9AC lsls r0, r7, 1 adds r7, r0, r7 mov r1, r8 lsls r1, 1 mov r8, r1 _0806E9AC: ldr r0, [r6, 0x70] ldrb r0, [r0, 0x6] movs r4, 0x1 cmp r0, 0 beq _0806E9B8 movs r4, 0 _0806E9B8: adds r0, r6, 0 movs r1, 0x38 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806E9EA mov r2, r10 cmp r2, 0x1 bne _0806E9EA ldr r0, _0806EAE4 ldr r0, [r0] ldr r1, _0806EAE8 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806E9EA lsls r0, r7, 4 subs r7, r0, r7 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 1 mov r8, r0 _0806E9EA: adds r0, r6, 0 movs r1, 0x3F bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806EA1C mov r0, r10 cmp r0, 0x1 bne _0806EA1C ldr r0, _0806EAE4 ldr r0, [r0] ldr r1, _0806EAEC adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806EA1C lsls r0, r7, 4 subs r7, r0, r7 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 1 mov r8, r0 _0806EA1C: mov r0, r9 movs r1, 0x6 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806EA38 mov r0, r10 cmp r0, 0 bne _0806EA38 lsls r7, 2 mov r1, r8 lsls r0, r1, 2 add r8, r0 _0806EA38: mov r0, r9 movs r1, 0x34 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806EA90 mov r2, r10 cmp r2, 0 bne _0806EA90 mov r0, r9 ldr r5, [r0, 0x70] bl HasNegativeStatus adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x8 adds r2, r4, 0 bl SetVisualFlags lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0 beq _0806EA7A ldr r2, [sp, 0x4] lsls r0, r2, 1 adds r2, r0, r2 str r2, [sp, 0x4] ldr r0, [sp, 0x8] lsls r0, 1 str r0, [sp, 0x8] _0806EA7A: cmp r1, 0 beq _0806EA90 mov r0, r9 bl sub_8042940 ldr r0, _0806EAF0 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0806EA90: ldr r1, [sp] ldr r0, [r1] muls r0, r7 str r0, [r1] ldr r2, [sp, 0x2C] ldr r0, [r2] ldr r1, [sp, 0x4] muls r0, r1 str r0, [r2] mov r2, r8 cmp r2, 0x1 beq _0806EAB6 ldr r1, [sp] ldr r0, [r1] mov r1, r8 bl __divsi3 ldr r2, [sp] str r0, [r2] _0806EAB6: ldr r0, [sp, 0x8] cmp r0, 0x1 beq _0806EACA ldr r1, [sp, 0x2C] ldr r0, [r1] ldr r1, [sp, 0x8] bl __divsi3 ldr r2, [sp, 0x2C] str r0, [r2] _0806EACA: 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 _0806EADC: .4byte gUnknown_80FEE04 _0806EAE0: .4byte gUnknown_80FEE2C _0806EAE4: .4byte gDungeonGlobalData _0806EAE8: .4byte 0x000037fa _0806EAEC: .4byte 0x000037f8 _0806EAF0: .4byte gUnknown_80FEE54 thumb_func_end sub_806E8B0 thumb_func_start sub_806EAF4 sub_806EAF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8C str r0, [sp, 0x70] mov r9, r1 adds r7, r3, 0 ldr r0, [sp, 0xB8] ldr r1, [sp, 0xBC] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x74] lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x78] ldr r0, [sp, 0x70] ldr r0, [r0, 0x70] mov r10, r0 mov r1, r9 ldr r1, [r1, 0x70] str r1, [sp, 0x7C] adds r0, r2, 0 bl sub_8092354 movs r2, 0 str r2, [sp, 0x80] lsls r0, 24 cmp r0, 0 bne _0806EB3A movs r3, 0x1 str r3, [sp, 0x80] _0806EB3A: bl sub_806F500 mov r6, r10 ldrb r0, [r6, 0x7] cmp r0, 0 bne _0806EB72 movs r0, 0x9E lsls r0, 1 add r0, r10 ldr r0, [r0] bl RoundUpFixedPoint adds r1, r0, 0 cmp r1, 0 bne _0806EB72 movs r0, 0x1 ldr r2, [sp, 0xB0] str r0, [r2] str r1, [r2, 0x4] movs r0, 0x2 str r0, [r2, 0x8] add r3, sp, 0x74 ldrb r3, [r3] strb r3, [r2, 0xC] strb r1, [r2, 0xD] strb r1, [r2, 0xE] strb r1, [r2, 0xF] b _0806F294 _0806EB72: ldr r0, _0806EBA4 cmp r4, r0 bne _0806EBA8 mov r0, r9 movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806EBA8 movs r0, 0x1 ldr r6, [sp, 0xB0] str r0, [r6] movs r1, 0 str r1, [r6, 0x4] movs r0, 0x2 str r0, [r6, 0x8] add r0, sp, 0x74 ldrb r0, [r0] strb r0, [r6, 0xC] strb r1, [r6, 0xD] strb r1, [r6, 0xE] strb r1, [r6, 0xF] b _0806F294 .align 2, 0 _0806EBA4: .4byte 0x00000163 _0806EBA8: add r1, sp, 0x74 ldrb r2, [r1] ldr r1, [sp, 0xB0] strb r2, [r1, 0xC] ldr r1, _0806EDA4 ldr r0, [r1] movs r2, 0x9A lsls r2, 1 adds r0, r2 add r3, sp, 0x74 ldrb r3, [r3] strb r3, [r0] ldr r2, [r1] movs r6, 0x9C lsls r6, 1 adds r0, r2, r6 ldr r1, [sp, 0x80] str r1, [r0] lsls r1, 1 mov r0, r10 adds r0, 0x1C adds r0, r1 movs r3, 0 ldrsh r4, [r0, r3] mov r8, r1 ldr r6, [sp, 0x78] cmp r6, 0 beq _0806EBF8 ldr r0, [sp, 0x74] cmp r0, 0x2 bne _0806EBF8 mov r1, r10 movs r3, 0x28 ldrsh r0, [r1, r3] adds r4, r0 ldrh r1, [r1, 0x28] movs r6, 0xA2 lsls r6, 1 adds r0, r2, r6 strh r1, [r0] _0806EBF8: mov r0, r10 movs r2, 0x4 ldrsh r1, [r0, r2] ldr r0, _0806EDA8 cmp r1, r0 bne _0806EC06 adds r4, 0x2 _0806EC06: movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0806EC10 subs r4, 0x2 _0806EC10: ldr r0, _0806EDAC cmp r1, r0 bne _0806EC18 subs r4, 0x2 _0806EC18: cmp r4, 0 bge _0806EC1E movs r4, 0 _0806EC1E: cmp r4, 0x14 ble _0806EC24 movs r4, 0x14 _0806EC24: ldr r6, _0806EDA4 ldr r0, [r6] movs r3, 0x9F lsls r3, 1 adds r0, r3 strb r4, [r0] ldr r1, [r6] mov r5, r10 adds r5, 0x14 ldr r0, [sp, 0x80] adds r2, r5, r0 ldrb r0, [r2] adds r0, r7 adds r3, 0x2 adds r1, r3 strh r0, [r1] ldrb r0, [r2] adds r0, r7 lsls r0, 8 ldr r2, _0806EDB0 lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] bl sub_8009DA4 adds r2, r0, 0 ldr r0, [sp, 0x80] lsls r4, r0, 2 mov r0, r10 adds r0, 0x2C adds r0, r4 ldr r1, [r0] adds r0, r2, 0 bl sub_8009DA4 adds r2, r0, 0 str r5, [sp, 0x88] cmp r2, 0 bge _0806EC74 adds r0, 0xFF _0806EC74: asrs r0, 8 str r0, [sp, 0x8] ldr r0, [sp, 0x7C] adds r0, 0x20 add r0, r8 movs r1, 0 ldrsh r3, [r0, r1] ldr r2, [sp, 0x80] cmp r2, 0 bne _0806ECA0 ldr r0, [sp, 0x7C] adds r0, 0xC0 ldrb r0, [r0] cmp r0, 0x6 bne _0806ECA0 ldr r0, [r6] movs r6, 0xBD lsls r6, 1 adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] adds r3, 0x1 _0806ECA0: ldr r0, [sp, 0x7C] movs r2, 0x4 ldrsh r1, [r0, r2] ldr r0, _0806EDA8 cmp r1, r0 bne _0806ECAE subs r3, 0x2 _0806ECAE: movs r0, 0xD1 lsls r0, 1 cmp r1, r0 bne _0806ECB8 adds r3, 0x2 _0806ECB8: ldr r0, _0806EDAC cmp r1, r0 bne _0806ECC0 subs r3, 0x2 _0806ECC0: cmp r3, 0 bge _0806ECC6 movs r3, 0 _0806ECC6: cmp r3, 0x14 ble _0806ECCC movs r3, 0x14 _0806ECCC: ldr r5, _0806EDA4 ldr r0, [r5] ldr r6, _0806EDB4 adds r0, r6 strb r3, [r0] ldr r2, [r5] ldr r0, [sp, 0x7C] adds r0, 0x16 ldr r1, [sp, 0x80] adds r0, r1 ldrb r1, [r0] adds r6, 0x3 adds r2, r6 strh r1, [r2] ldrb r0, [r0] lsls r0, 8 ldr r2, _0806EDB8 lsls r1, r3, 2 adds r1, r2 ldr r1, [r1] bl sub_8009DA4 adds r2, r0, 0 ldr r0, [sp, 0x7C] adds r0, 0x34 adds r0, r4 ldr r1, [r0] adds r0, r2, 0 bl sub_8009DA4 cmp r0, 0 bge _0806ED0E adds r0, 0xFF _0806ED0E: asrs r0, 8 str r0, [sp, 0xC] movs r0, 0x64 bl DungeonRandomCapped str r0, [sp, 0x84] ldr r0, [sp, 0x80] cmp r0, 0 bne _0806EDC8 ldr r0, [sp, 0x70] movs r1, 0x13 bl HasItem lsls r0, 24 cmp r0, 0 beq _0806ED4A ldr r2, _0806EDBC movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r1, [r5] movs r6, 0xB0 lsls r6, 1 adds r1, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806ED4A: ldr r0, [sp, 0x70] movs r1, 0x2B bl HasItem lsls r0, 24 cmp r0, 0 beq _0806ED74 ldr r2, _0806EDC0 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r1, [r5] movs r6, 0xB0 lsls r6, 1 adds r1, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806ED74: ldr r3, [sp, 0x78] cmp r3, 0 beq _0806EE4A mov r0, r9 movs r1, 0x1E bl HasItem lsls r0, 24 cmp r0, 0 beq _0806EE4A ldr r2, _0806EDC4 movs r6, 0 ldrsh r1, [r2, r6] ldr r0, [sp, 0xC] adds r0, r1 str r0, [sp, 0xC] ldr r0, [r5] movs r3, 0xB1 lsls r3, 1 adds r1, r0, r3 ldrb r0, [r2] ldrb r6, [r1] adds r0, r6 b _0806EE48 .align 2, 0 _0806EDA4: .4byte gDungeonGlobalData _0806EDA8: .4byte 0x000001a1 _0806EDAC: .4byte 0x000001a3 _0806EDB0: .4byte gUnknown_80F504C _0806EDB4: .4byte 0x0000013f _0806EDB8: .4byte gUnknown_80F50A0 _0806EDBC: .4byte gUnknown_810AC60 _0806EDC0: .4byte gUnknown_810AC68 _0806EDC4: .4byte gUnknown_810AC64 _0806EDC8: ldr r0, [sp, 0x78] cmp r0, 0 beq _0806EDF6 mov r0, r9 movs r1, 0x22 bl HasItem lsls r0, 24 cmp r0, 0 beq _0806EDF6 ldr r2, _0806EEF8 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0xC] adds r0, r1 str r0, [sp, 0xC] ldr r0, [r5] ldr r6, _0806EEFC adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806EDF6: ldr r0, [sp, 0x70] movs r1, 0x21 bl HasItem lsls r0, 24 cmp r0, 0 beq _0806EE20 ldr r2, _0806EF00 movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r0, _0806EF04 ldr r0, [r0] ldr r6, _0806EF08 adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 strb r0, [r1] _0806EE20: ldr r0, [sp, 0x70] movs r1, 0x2B bl HasItem lsls r0, 24 cmp r0, 0 beq _0806EE4A ldr r2, _0806EF0C movs r3, 0 ldrsh r1, [r2, r3] ldr r0, [sp, 0x8] adds r0, r1 str r0, [sp, 0x8] ldr r0, _0806EF04 ldr r0, [r0] ldr r6, _0806EF08 adds r1, r0, r6 ldrb r0, [r2] ldrb r2, [r1] adds r0, r2 _0806EE48: strb r0, [r1] _0806EE4A: ldr r0, _0806EF04 ldr r2, [r0] movs r3, 0xA3 lsls r3, 1 adds r1, r2, r3 add r0, sp, 0x8 ldrh r0, [r0] strh r0, [r1] movs r6, 0xA4 lsls r6, 1 adds r1, r2, r6 add r4, sp, 0xC ldrh r0, [r4] strh r0, [r1] ldr r0, [sp, 0x8] cmp r0, 0 bge _0806EE70 movs r0, 0 str r0, [sp, 0x8] _0806EE70: ldr r1, _0806EF10 ldr r0, [sp, 0x8] cmp r0, r1 ble _0806EE7C ldr r0, _0806EF14 str r0, [sp, 0x8] _0806EE7C: movs r3, 0xA8 lsls r3, 1 add r3, r10 ldrh r2, [r3] ldr r1, _0806EF18 adds r0, r1, 0 ands r0, r2 strh r0, [r3] movs r2, 0xA7 lsls r2, 1 add r2, r10 ldrh r0, [r2] ands r1, r0 strh r1, [r2] str r4, [sp] ldr r0, [sp, 0x84] str r0, [sp, 0x4] ldr r0, [sp, 0x70] mov r1, r9 ldr r2, [sp, 0x74] add r3, sp, 0x8 bl sub_806E8B0 add r5, sp, 0x10 ldr r1, [sp, 0x8] ldr r0, [sp, 0xC] subs r1, r0 adds r0, r5, 0 bl sub_800A020 add r4, sp, 0x18 adds r0, r4, 0 movs r1, 0x8 bl sub_800A020 adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_800A3F0 mov r1, r10 ldrb r6, [r1, 0x6] mov r8, r5 adds r7, r4, 0 cmp r6, 0 bne _0806EF20 ldrb r1, [r1, 0x9] adds r0, r7, 0 bl sub_800A020 str r6, [sp, 0x20] ldr r0, _0806EF1C add r2, sp, 0x20 str r0, [r2, 0x4] adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C mov r2, r10 ldrb r0, [r2, 0x9] lsls r0, 1 b _0806EF60 .align 2, 0 _0806EEF8: .4byte gUnknown_810AC66 _0806EEFC: .4byte 0x00000163 _0806EF00: .4byte gUnknown_810AC62 _0806EF04: .4byte gDungeonGlobalData _0806EF08: .4byte 0x00000161 _0806EF0C: .4byte gUnknown_810AC68 _0806EF10: .4byte 0x000003e6 _0806EF14: .4byte 0x000003e7 _0806EF18: .4byte 0x0000feff _0806EF1C: .4byte 0x0000aaaa _0806EF20: ldr r3, [sp, 0x88] ldr r6, [sp, 0x80] adds r0, r3, r6 ldrb r0, [r0] str r0, [sp, 0x28] movs r0, 0x1 str r0, [sp, 0x2C] add r3, sp, 0x28 add r0, sp, 0x2C str r0, [sp] ldr r0, [sp, 0x84] str r0, [sp, 0x4] ldr r0, [sp, 0x70] mov r1, r9 ldr r2, [sp, 0x74] bl sub_806E8B0 ldr r1, [sp, 0x28] adds r0, r7, 0 bl sub_800A020 add r4, sp, 0x20 adds r0, r4, 0 movs r1, 0x3 bl sub_800A020 adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_800A3F0 ldr r0, [sp, 0x28] _0806EF60: movs r1, 0x3 bl __divsi3 adds r6, r0, 0 add r5, sp, 0x30 adds r0, r5, 0 mov r1, r8 adds r2, r7, 0 bl sub_800A6D0 ldr r4, _0806F098 ldr r0, [r4] movs r1, 0xA5 lsls r1, 1 adds r0, r1 movs r2, 0 mov r8, r2 strh r6, [r0] adds r0, r5, 0 bl sub_800A048 ldr r1, [r4] movs r3, 0xA6 lsls r3, 1 adds r1, r3 strh r0, [r1] ldr r0, [sp, 0x30] ldr r1, [sp, 0x34] str r0, [sp, 0x38] str r1, [sp, 0x3C] str r0, [sp, 0x48] str r1, [sp, 0x4C] add r6, sp, 0x38 adds r0, r6, 0 adds r1, r6, 0 adds r2, r6, 0 bl sub_800A34C mov r0, r8 str r0, [sp, 0x40] ldr r0, _0806F09C add r5, sp, 0x40 str r0, [r5, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_800A34C adds r0, r5, 0 movs r1, 0x2 bl sub_800A020 add r4, sp, 0x48 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A34C ldr r1, [sp, 0xC] adds r0, r5, 0 bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A6F0 adds r0, r5, 0 movs r1, 0xA bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_800A6D0 add r5, sp, 0x50 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_800A6D0 ldr r4, _0806F0A0 adds r0, r4, 0 adds r1, r5, 0 bl sub_800A2F0 lsls r0, 24 mov r8, r5 cmp r0, 0 beq _0806F01E ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [sp, 0x50] str r1, [sp, 0x54] _0806F01E: ldr r4, _0806F0A4 mov r0, r8 adds r1, r4, 0 bl sub_800A2F0 lsls r0, 24 cmp r0, 0 beq _0806F036 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [sp, 0x50] str r1, [sp, 0x54] _0806F036: add r4, sp, 0x58 ldr r1, [sp, 0xB0] str r1, [sp] adds r0, r4, 0 ldr r1, [sp, 0x70] mov r2, r9 ldr r3, [sp, 0x74] bl sub_806E100 lsls r0, 24 lsrs r5, r0, 24 adds r7, r4, 0 ldr r2, [sp, 0x74] cmp r2, 0x2 bne _0806F0BC mov r0, r9 bl GetFlashFireStatus lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0806F0BC ldr r3, [sp, 0x7C] movs r6, 0xA9 lsls r6, 1 adds r1, r3, r6 ldrb r0, [r1] cmp r0, 0 bne _0806F0BC ldr r0, [sp, 0x78] cmp r0, 0 beq _0806F118 movs r0, 0x1 strb r0, [r1] ldr r0, _0806F0A8 mov r1, r9 movs r2, 0 bl SetMessageArgument cmp r4, 0x1 bne _0806F0B0 ldr r0, _0806F0AC ldr r2, [r0] ldr r0, [sp, 0x70] mov r1, r9 bl sub_80522F4 b _0806F0BC .align 2, 0 _0806F098: .4byte gDungeonGlobalData _0806F09C: .4byte 0x00000ccc _0806F0A0: .4byte gUnknown_8106F24 _0806F0A4: .4byte gUnknown_8106F04 _0806F0A8: .4byte gUnknown_202DFE8 _0806F0AC: .4byte gUnknown_80FAE00 _0806F0B0: ldr r0, _0806F15C ldr r2, [r0] ldr r0, [sp, 0x70] mov r1, r9 bl sub_80522F4 _0806F0BC: ldr r1, [sp, 0x78] cmp r1, 0 beq _0806F118 ldr r2, [sp, 0x80] cmp r2, 0 bne _0806F0EE ldr r0, [sp, 0x7C] adds r0, 0xC4 ldrb r4, [r0] cmp r4, 0x1 bne _0806F0EE mov r0, r9 bl sub_8041B74 ldr r2, _0806F160 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C ldr r0, _0806F164 ldr r0, [r0] movs r3, 0xB3 lsls r3, 1 adds r0, r3 strb r4, [r0] _0806F0EE: ldr r6, [sp, 0x80] cmp r6, 0x1 bne _0806F118 ldr r0, [sp, 0x7C] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x3 bne _0806F118 mov r0, r9 bl sub_8041B5C ldr r2, _0806F160 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C ldr r0, _0806F164 ldr r0, [r0] ldr r1, _0806F168 adds r0, r1 strb r6, [r0] _0806F118: mov r0, r9 movs r1, 0xC bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806F1F4 mov r0, r9 movs r1, 0x13 bl HasAbility lsls r0, 24 cmp r0, 0 bne _0806F1F4 mov r3, r10 ldrb r0, [r3, 0x6] ldr r4, [sp, 0xAC] cmp r0, 0 beq _0806F140 movs r4, 0 _0806F140: mov r0, r10 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x4 bne _0806F170 ldr r4, _0806F16C ldr r0, _0806F164 ldr r0, [r0] movs r6, 0xB4 lsls r6, 1 adds r0, r6 movs r1, 0x1 strb r1, [r0] b _0806F1DA .align 2, 0 _0806F15C: .4byte gUnknown_80FADD8 _0806F160: .4byte gUnknown_8106F1C _0806F164: .4byte gDungeonGlobalData _0806F168: .4byte 0x00000167 _0806F16C: .4byte 0x000003e7 _0806F170: ldr r0, [sp, 0x70] movs r1, 0xC bl HasItem lsls r0, 24 cmp r0, 0 beq _0806F194 ldr r0, _0806F2A4 movs r1, 0 ldrsh r0, [r0, r1] adds r4, r0 ldr r0, _0806F2A8 ldr r0, [r0] movs r2, 0xB2 lsls r2, 1 adds r0, r2 movs r1, 0x1 strb r1, [r0] _0806F194: mov r0, r9 movs r1, 0xD bl HasItem lsls r0, 24 cmp r0, 0 beq _0806F1B6 ldr r0, _0806F2A4 movs r3, 0 ldrsh r0, [r0, r3] adds r4, r0 ldr r0, _0806F2A8 ldr r0, [r0] ldr r6, _0806F2AC adds r1, r0, r6 movs r0, 0x1 strb r0, [r1] _0806F1B6: cmp r5, 0 beq _0806F1DA ldr r0, [sp, 0x70] movs r1, 0x1 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _0806F1DA ldr r0, _0806F2B0 movs r1, 0 ldrsh r4, [r0, r1] ldr r0, _0806F2A8 ldr r0, [r0] ldr r2, _0806F2B4 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _0806F1DA: movs r0, 0x64 bl DungeonRandomCapped cmp r0, r4 bge _0806F1F4 ldr r2, _0806F2B8 adds r0, r7, 0 adds r1, r7, 0 bl sub_800A34C movs r0, 0x1 ldr r3, [sp, 0xB0] strb r0, [r3, 0xD] _0806F1F4: mov r0, r8 bl sub_800A048 ldr r5, _0806F2A8 ldr r1, [r5] movs r6, 0xAA lsls r6, 1 adds r1, r6 str r0, [r1] mov r0, r8 mov r1, r8 adds r2, r7, 0 bl sub_800A34C ldr r0, [r5] movs r1, 0xAE lsls r1, 1 adds r0, r1 ldr r2, [sp, 0xB4] str r2, [r0] add r4, sp, 0x60 adds r0, r4, 0 adds r1, r2, 0 bl sub_800A088 mov r0, r8 mov r1, r8 adds r2, r4, 0 bl sub_800A34C mov r0, r8 bl sub_800A048 ldr r1, [r5] movs r3, 0xA8 lsls r3, 1 adds r1, r3 str r0, [r1] movs r0, 0x80 lsls r0, 7 bl DungeonRandomCapped movs r6, 0 str r6, [sp, 0x58] movs r1, 0xE0 lsls r1, 8 adds r0, r1 str r0, [r7, 0x4] mov r0, r8 mov r1, r8 adds r2, r7, 0 bl sub_800A34C add r4, sp, 0x68 adds r0, r4, 0 movs r1, 0x64 bl sub_800A020 adds r0, r7, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_800A34C adds r0, r7, 0 bl sub_800A048 ldr r1, [r5] movs r2, 0xAC lsls r2, 1 adds r1, r2 str r0, [r1] mov r0, r8 bl sub_800A048 ldr r3, [sp, 0xB0] str r0, [r3] str r6, [r3, 0x4] cmp r0, 0 bne _0806F294 strb r0, [r3, 0xD] _0806F294: add sp, 0x8C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F2A4: .4byte gUnknown_80F4DAE _0806F2A8: .4byte gDungeonGlobalData _0806F2AC: .4byte 0x00000165 _0806F2B0: .4byte gUnknown_80F4DB0 _0806F2B4: .4byte 0x00000169 _0806F2B8: .4byte gUnknown_8106F14 thumb_func_end sub_806EAF4 thumb_func_start sub_806F2BC sub_806F2BC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r5, r0, 0 mov r12, r1 ldr r7, [sp, 0x2C] lsls r2, 24 lsrs r4, r2, 24 adds r6, r3, 0 cmp r6, 0 bgt _0806F2D6 movs r6, 0x1 _0806F2D6: ldr r0, _0806F320 cmp r6, r0 ble _0806F2DE adds r6, r0, 0 _0806F2DE: movs r0, 0 mov r8, r0 strb r4, [r7, 0xC] str r7, [sp] add r0, sp, 0x4 adds r1, r5, 0 mov r2, r12 adds r3, r4, 0 bl sub_806E100 add r4, sp, 0xC adds r0, r4, 0 adds r1, r6, 0 bl sub_800A020 adds r0, r4, 0 adds r1, r4, 0 add r2, sp, 0x4 bl sub_800A34C adds r0, r4, 0 bl sub_800A048 str r0, [r7] mov r0, r8 str r0, [r7, 0x4] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F320: .4byte 0x000003e7 thumb_func_end sub_806F2BC thumb_func_start sub_806F324 sub_806F324: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x94 mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, r3, 16 asrs r4, 16 add r0, sp, 0x10 bl sub_80457DC add r2, sp, 0x84 str r5, [sp, 0x84] movs r0, 0x2 str r0, [r2, 0x8] movs r0, 0 strb r0, [r2, 0xC] str r6, [r2, 0x4] strb r0, [r2, 0xD] strb r0, [r2, 0xE] strb r0, [r2, 0xF] str r0, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] add r0, sp, 0x10 mov r1, r8 movs r3, 0 bl sub_806D010 add sp, 0x94 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806F324 thumb_func_start sub_806F370 sub_806F370: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r10, r0 adds r7, r1, 0 mov r9, r3 ldr r0, [sp, 0x50] ldr r1, [sp, 0x54] ldr r3, [sp, 0x58] lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 asrs r1, 16 mov r8, r1 adds r5, r2, 0 movs r0, 0x2 str r0, [sp, 0x18] str r3, [sp, 0x14] add r0, sp, 0x10 movs r1, 0 strb r4, [r0, 0xC] strb r1, [r0, 0xD] strb r1, [r0, 0xE] cmp r4, 0 beq _0806F3FC ldr r1, [r7, 0x70] movs r2, 0 lsls r0, r4, 3 mov r3, sp adds r3, 0x20 str r3, [sp, 0x28] ldr r6, _0806F408 mov r12, r6 adds r1, 0x5C adds r0, r4 lsls r3, r0, 2 ldr r4, [sp, 0x28] _0806F3C0: adds r0, r1, r2 ldrb r0, [r0] lsls r0, 1 adds r0, r3 add r0, r12 movs r6, 0 ldrsh r0, [r0, r6] stm r4!, {r0} adds r2, 0x1 cmp r2, 0x1 ble _0806F3C0 adds r0, r7, 0 movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0806F3FC ldr r2, _0806F40C ldr r1, [sp, 0x28] ldr r0, [r1, 0x4] lsls r0, 2 ldr r1, [sp, 0x20] lsls r1, 4 adds r0, r1 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 beq _0806F3FC movs r5, 0 _0806F3FC: str r5, [sp, 0x10] cmp r5, 0 bne _0806F410 add r1, sp, 0x10 movs r0, 0x1 b _0806F414 .align 2, 0 _0806F408: .4byte gTypeEffectivenessChart _0806F40C: .4byte gUnknown_80F54B4 _0806F410: add r1, sp, 0x10 movs r0, 0 _0806F414: strb r0, [r1, 0xF] mov r3, r9 str r3, [sp] mov r6, r8 str r6, [sp, 0x4] ldr r0, [sp, 0x5C] str r0, [sp, 0x8] ldr r0, [sp, 0x60] str r0, [sp, 0xC] mov r0, r10 adds r1, r7, 0 add r2, sp, 0x10 movs r3, 0 bl sub_806D010 ldr r0, [sp, 0x4C] cmp r0, 0 beq _0806F440 add r0, sp, 0x10 ldrb r0, [r0, 0xF] ldr r1, [sp, 0x4C] strb r0, [r1] _0806F440: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806F370 thumb_func_start SetShopkeeperAggression SetShopkeeperAggression: push {r4-r6,lr} adds r5, r0, 0 ldr r4, [r1, 0x70] adds r6, r4, 0 ldrb r0, [r4, 0x8] cmp r0, 0 beq _0806F47A adds r0, r5, 0 bl GetEntityType cmp r0, 0x1 bne _0806F47A ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0806F476 movs r0, 0x2 strb r0, [r4, 0x8] b _0806F47A _0806F476: movs r0, 0x3 strb r0, [r6, 0x8] _0806F47A: pop {r4-r6} pop {r0} bx r0 thumb_func_end SetShopkeeperAggression thumb_func_start sub_806F480 sub_806F480: push {lr} lsls r1, 24 lsrs r1, 24 ldr r2, [r0, 0x70] adds r3, r2, 0 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0806F49E cmp r1, 0 beq _0806F49A movs r0, 0x2 strb r0, [r2, 0x8] b _0806F49E _0806F49A: movs r0, 0x3 strb r0, [r3, 0x8] _0806F49E: pop {r0} bx r0 thumb_func_end sub_806F480 thumb_func_start sub_806F4A4 sub_806F4A4: push {r4-r6,lr} lsls r1, 24 lsrs r4, r1, 24 ldr r5, [r0, 0x70] movs r1, 0xE bl HasType lsls r0, 24 cmp r0, 0 beq _0806F4CE cmp r4, 0x1 beq _0806F4C0 cmp r4, 0x7 bne _0806F4CE _0806F4C0: adds r0, r5, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0806F4CE _0806F4CA: movs r0, 0 b _0806F4F6 _0806F4CE: movs r2, 0 lsls r0, r4, 3 ldr r6, _0806F4FC adds r3, r5, 0 adds r3, 0x5C adds r0, r4 lsls r1, r0, 2 _0806F4DC: adds r0, r3, r2 ldrb r0, [r0] lsls r0, 1 adds r0, r1 adds r0, r6 movs r4, 0 ldrsh r0, [r0, r4] cmp r0, 0 beq _0806F4CA adds r2, 0x1 cmp r2, 0x1 ble _0806F4DC movs r0, 0x1 _0806F4F6: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806F4FC: .4byte gTypeEffectivenessChart thumb_func_end sub_806F4A4 thumb_func_start sub_806F500 sub_806F500: ldr r0, _0806F5F4 ldr r0, [r0] mov r12, r0 movs r0, 0x9A lsls r0, 1 add r0, r12 movs r1, 0 strb r1, [r0] str r1, [r0, 0x4] strb r1, [r0, 0x8] strb r1, [r0, 0x9] movs r2, 0xA strb r2, [r0, 0xA] strb r2, [r0, 0xB] movs r2, 0 movs r3, 0x1 strh r3, [r0, 0xC] strh r3, [r0, 0xE] strh r1, [r0, 0x10] strh r1, [r0, 0x14] strh r1, [r0, 0x12] strh r1, [r0, 0x16] strh r1, [r0, 0x18] str r1, [r0, 0x1C] str r1, [r0, 0x24] str r1, [r0, 0x28] movs r0, 0xB0 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F5F8 add r0, r12 strb r2, [r0] movs r0, 0xB1 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F5FC add r0, r12 strb r2, [r0] movs r0, 0xB2 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F600 add r0, r12 strb r2, [r0] movs r0, 0xB3 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F604 add r0, r12 strb r2, [r0] movs r0, 0xB4 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F608 add r0, r12 strb r2, [r0] movs r0, 0xB5 lsls r0, 1 add r0, r12 strb r2, [r0] movs r0, 0xB6 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F60C add r0, r12 strb r2, [r0] ldr r0, _0806F610 add r0, r12 strb r2, [r0] movs r0, 0xB7 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F614 add r0, r12 strb r2, [r0] movs r0, 0xB8 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F618 add r0, r12 strb r2, [r0] movs r0, 0xB9 lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F61C add r0, r12 strb r2, [r0] movs r0, 0xBA lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F620 add r0, r12 strb r2, [r0] movs r0, 0xBB lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F624 add r0, r12 strb r2, [r0] movs r0, 0xBC lsls r0, 1 add r0, r12 strb r2, [r0] ldr r0, _0806F628 add r0, r12 strb r2, [r0] movs r0, 0xBD lsls r0, 1 add r0, r12 strb r2, [r0] bx lr .align 2, 0 _0806F5F4: .4byte gDungeonGlobalData _0806F5F8: .4byte 0x00000161 _0806F5FC: .4byte 0x00000163 _0806F600: .4byte 0x00000165 _0806F604: .4byte 0x00000167 _0806F608: .4byte 0x00000169 _0806F60C: .4byte 0x0000016b _0806F610: .4byte 0x0000016d _0806F614: .4byte 0x0000016f _0806F618: .4byte 0x00000171 _0806F61C: .4byte 0x00000173 _0806F620: .4byte 0x00000175 _0806F624: .4byte 0x00000177 _0806F628: .4byte 0x00000179 thumb_func_end sub_806F500 thumb_func_start sub_806F62C sub_806F62C: ldr r1, _0806F638 lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .align 2, 0 _0806F638: .4byte gUnknown_8106F7C thumb_func_end sub_806F62C thumb_func_start sub_806F63C sub_806F63C: push {lr} ldr r1, _0806F658 ldr r1, [r1] ldr r2, _0806F65C adds r1, r2 ldr r1, [r1, 0x10] cmp r1, r0 bne _0806F652 adds r0, r1, 0 bl sub_803F508 _0806F652: pop {r0} bx r0 .align 2, 0 _0806F658: .4byte gDungeonGlobalData _0806F65C: .4byte 0x000181e8 thumb_func_end sub_806F63C thumb_func_start sub_806F660 sub_806F660: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 mov r8, r1 ldr r0, [r6, 0x70] mov r10, r0 ldr r4, [r1, 0x70] movs r1, 0x1 negs r1, r1 mov r9, r1 movs r2, 0x4 ldrsh r0, [r4, r2] bl GetPokemonSize lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0806F6C0 ldr r3, [r0] ldr r1, _0806F6C4 adds r0, r3, r1 ldrh r2, [r0] subs r0, r2, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0806F702 lsls r0, r2, 16 asrs r1, r0, 16 cmp r1, 0x9 beq _0806F702 cmp r1, 0xF beq _0806F702 adds r0, r2, 0 subs r0, 0x2C lsls r0, 16 lsrs r0, 16 cmp r0, 0x4 bhi _0806F6CC ldr r2, _0806F6C8 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 bne _0806F702 b _0806F8FC .align 2, 0 _0806F6C0: .4byte gDungeonGlobalData _0806F6C4: .4byte 0x00003a14 _0806F6C8: .4byte 0x0000065c _0806F6CC: cmp r1, 0x31 bne _0806F6F0 ldr r1, _0806F6EC adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0806F6DC b _0806F8FC _0806F6DC: movs r0, 0xCF lsls r0, 1 bl sub_8097900 lsls r0, 24 cmp r0, 0 bne _0806F702 b _0806F8FC .align 2, 0 _0806F6EC: .4byte 0x00000659 _0806F6F0: ldr r2, _0806F834 adds r0, r3, r2 ldrb r0, [r0] bl GetRecruitable lsls r0, 24 cmp r0, 0 bne _0806F702 b _0806F8FC _0806F702: ldr r0, _0806F838 ldr r0, [r0] ldr r3, _0806F83C adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0806F712 b _0806F8FC _0806F712: ldrh r1, [r4, 0x2] adds r0, r1, 0 subs r0, 0x90 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bls _0806F766 lsls r0, r1, 16 asrs r1, r0, 16 ldr r0, _0806F840 cmp r1, r0 beq _0806F766 subs r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x2 cmp r1, r0 beq _0806F766 adds r0, 0x8A cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x4 cmp r1, r0 beq _0806F766 subs r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x2 cmp r1, r0 beq _0806F766 subs r0, 0x9 cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 beq _0806F766 adds r0, 0x1 cmp r1, r0 bne _0806F776 _0806F766: movs r1, 0x2 ldrsh r0, [r4, r1] bl HasRecruitedMon lsls r0, 24 cmp r0, 0 beq _0806F776 b _0806F8FC _0806F776: movs r2, 0x2 ldrsh r0, [r4, r2] bl sub_806F9BC lsls r0, 24 cmp r0, 0 bne _0806F786 b _0806F8FC _0806F786: movs r3, 0x4 ldrsh r1, [r6, r3] mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] subs r1, r0 cmp r1, 0 bge _0806F798 negs r1, r1 _0806F798: cmp r1, 0x1 ble _0806F79E b _0806F8FC _0806F79E: movs r0, 0x6 ldrsh r1, [r6, r0] mov r2, r8 movs r3, 0x6 ldrsh r0, [r2, r3] subs r1, r0 cmp r1, 0 bge _0806F7B0 negs r1, r1 _0806F7B0: cmp r1, 0x1 ble _0806F7B6 b _0806F8FC _0806F7B6: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _0806F7C2 b _0806F8FC _0806F7C2: adds r0, r4, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0806F7CE b _0806F8FC _0806F7CE: mov r0, r8 adds r1, r6, 0 bl CanSee lsls r0, 24 cmp r0, 0 bne _0806F7DE b _0806F8FC _0806F7DE: bl sub_806F910 movs r0, 0xFA lsls r0, 2 bl DungeonRandomCapped adds r7, r0, 0 movs r1, 0x2 ldrsh r0, [r4, r1] bl GetBaseRecruit lsls r0, 16 asrs r4, r0, 16 ldr r0, _0806F844 cmp r4, r0 bne _0806F800 b _0806F8FC _0806F800: adds r0, r6, 0 movs r1, 0x2E bl HasItem lsls r0, 24 cmp r0, 0 beq _0806F816 ldr r0, _0806F848 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r0 _0806F816: ldr r0, _0806F84C mov r3, r10 ldrb r1, [r3, 0x9] lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] adds r4, r0 cmp r7, r4 bge _0806F8FC movs r4, 0 movs r0, 0x6 subs r3, r0, r5 ldr r7, _0806F850 b _0806F856 .align 2, 0 _0806F834: .4byte 0x00000644 _0806F838: .4byte gDungeonGlobalData _0806F83C: .4byte 0x0000065d _0806F840: .4byte 0x0000010d _0806F844: .4byte 0xfffffc19 _0806F848: .4byte gUnknown_80F5008 _0806F84C: .4byte gUnknown_80F5700 _0806F850: .4byte gUnknown_202EE70 _0806F854: adds r4, 0x1 _0806F856: cmp r4, r3 bgt _0806F878 movs r2, 0 cmp r2, r5 bge _0806F872 adds r1, r4, r7 b _0806F86C _0806F864: adds r1, 0x1 adds r2, 0x1 cmp r2, r5 bge _0806F872 _0806F86C: ldrb r0, [r1] cmp r0, 0 beq _0806F864 _0806F872: cmp r2, r5 bne _0806F854 mov r9, r4 _0806F878: movs r0, 0x1 negs r0, r0 cmp r9, r0 beq _0806F8F4 movs r4, 0 ldr r3, _0806F8BC ldr r0, [r3] ldr r2, _0806F8C0 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806F8B4 adds r7, r3, 0 adds r5, r2, 0 movs r2, 0 movs r3, 0x1 _0806F89C: adds r2, 0x64 adds r4, 0x1 cmp r4, 0x3 bgt _0806F8B4 ldr r0, [r7] adds r0, r2, r0 adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806F89C _0806F8B4: cmp r4, 0x4 beq _0806F8F4 movs r4, 0 b _0806F8C6 .align 2, 0 _0806F8BC: .4byte gRecruitedPokemonRef _0806F8C0: .4byte 0x00008df8 _0806F8C4: adds r4, 0x1 _0806F8C6: cmp r4, 0x3 bgt _0806F8E2 ldr r0, _0806F8EC ldr r0, [r0] lsls r1, r4, 2 ldr r3, _0806F8F0 adds r0, r3 adds r0, r1 ldr r0, [r0] bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806F8C4 _0806F8E2: cmp r4, 0x4 beq _0806F8F4 movs r0, 0x1 b _0806F8FE .align 2, 0 _0806F8EC: .4byte gDungeonGlobalData _0806F8F0: .4byte 0x0001357c _0806F8F4: adds r0, r6, 0 mov r1, r8 bl nullsub_96 _0806F8FC: movs r0, 0 _0806F8FE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806F660 thumb_func_start nullsub_96 nullsub_96: bx lr thumb_func_end nullsub_96 thumb_func_start sub_806F910 sub_806F910: push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 movs r6, 0 movs r7, 0x40 _0806F91C: ldr r0, _0806F9AC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0806F9B0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 adds r1, r6, 0x1 mov r8, r1 cmp r0, 0 beq _0806F98A ldr r0, [r4, 0x70] movs r2, 0x4 ldrsh r0, [r0, r2] bl GetPokemonSize lsls r0, 24 lsrs r1, r0, 24 adds r0, r4, 0 adds r0, 0x68 strh r7, [r0] ldr r0, [r4, 0x70] ldr r2, _0806F9B4 adds r0, r2 strb r6, [r0] ldr r0, [r4, 0x70] adds r2, 0x1 adds r0, r2 strb r1, [r0] cmp r1, 0 beq _0806F978 ldr r3, _0806F9B8 movs r2, 0x1 _0806F966: cmp r5, 0x5 bgt _0806F972 adds r0, r5, r3 strb r2, [r0] adds r7, 0x10 adds r5, 0x1 _0806F972: subs r1, 0x1 cmp r1, 0 bne _0806F966 _0806F978: adds r0, r4, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CCB4 _0806F98A: mov r6, r8 cmp r6, 0x3 ble _0806F91C cmp r5, 0x5 bgt _0806F9A2 ldr r2, _0806F9B8 movs r1, 0 _0806F998: adds r0, r5, r2 strb r1, [r0] adds r5, 0x1 cmp r5, 0x5 ble _0806F998 _0806F9A2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F9AC: .4byte gDungeonGlobalData _0806F9B0: .4byte 0x0001357c _0806F9B4: .4byte 0x00000167 _0806F9B8: .4byte gUnknown_202EE70 thumb_func_end sub_806F910 thumb_func_start sub_806F9BC sub_806F9BC: push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r4, r0, 16 ldr r5, _0806FA40 ldr r0, [r5] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806FA3C adds r0, r4, 0 bl sub_808529C lsls r0, 24 cmp r0, 0 beq _0806FA3C cmp r4, 0x97 bne _0806F9F2 ldr r0, [r5] movs r1, 0xCF lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0806FA3C _0806F9F2: movs r0, 0xCC lsls r0, 1 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA44 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA48 cmp r4, r0 beq _0806FA3C movs r0, 0xD1 lsls r0, 1 cmp r4, r0 beq _0806FA3C ldr r0, _0806FA4C cmp r4, r0 beq _0806FA3C adds r0, r4, 0 bl GetUnk12 lsls r0, 24 cmp r0, 0 bne _0806FA50 adds r0, r4, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 mov r1, sp movs r2, 0 movs r3, 0 bl sub_8092638 mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0 bne _0806FA50 _0806FA3C: movs r0, 0 b _0806FA52 .align 2, 0 _0806FA40: .4byte gDungeonGlobalData _0806FA44: .4byte 0x00000199 _0806FA48: .4byte 0x000001a1 _0806FA4C: .4byte 0x000001a3 _0806FA50: movs r0, 0x1 _0806FA52: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806F9BC thumb_func_start sub_806FA5C sub_806FA5C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r8, r0 adds r5, r1, 0 adds r6, r2, 0 adds r0, r5, 0x4 mov r1, r8 adds r1, 0x4 bl CalculateFacingDir adds r4, r0, 0 movs r0, 0 mov r10, r0 movs r1, 0 ldrsh r0, [r6, r1] bl GetFriendArea lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r5, 0 adds r0, 0x22 mov r2, r10 strb r2, [r0] mov r0, r8 adds r1, r5, 0 bl sub_807A0CC adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 ldr r0, _0806FAD4 movs r3, 0 ldrsh r1, [r6, r3] bl CopyCyanSpeciesNametoBuffer ldr r0, _0806FAD8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0 bne _0806FAE4 movs r4, 0 ldrsh r1, [r6, r4] ldr r0, _0806FADC cmp r1, r0 beq _0806FB28 ldr r0, _0806FAE0 ldr r1, [r0] mov r0, r8 bl SendMessage b _0806FB28 .align 2, 0 _0806FAD4: .4byte gAvailablePokemonNames _0806FAD8: .4byte gUnknown_80F9FE8 _0806FADC: .4byte 0x0000019d _0806FAE0: .4byte gUnknown_80FA004 _0806FAE4: movs r7, 0 ldr r3, _0806FB2C ldr r0, [r3] ldr r2, _0806FB30 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FB1A mov r12, r3 adds r4, r2, 0 movs r2, 0 movs r3, 0x1 _0806FB00: adds r2, 0x64 adds r7, 0x1 cmp r7, 0x3 bgt _0806FB1A mov r1, r12 ldr r0, [r1] adds r0, r2, r0 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FB00 _0806FB1A: cmp r7, 0x4 bne _0806FB38 ldr r0, _0806FB34 ldr r1, [r0] mov r0, r8 bl SendMessage _0806FB28: movs r0, 0 b _0806FCF0 .align 2, 0 _0806FB2C: .4byte gRecruitedPokemonRef _0806FB30: .4byte 0x00008df8 _0806FB34: .4byte gUnknown_80FA030 _0806FB38: mov r0, r9 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _0806FB4E mov r0, r9 bl UnlockFriendArea movs r2, 0x1 mov r10, r2 _0806FB4E: movs r1, 0xFA lsls r1, 1 adds r0, r5, 0 mov r2, r8 bl sub_8068FE0 ldr r1, _0806FC40 movs r0, 0x64 muls r0, r7 ldr r3, _0806FC44 adds r0, r3 ldr r1, [r1] adds r5, r1, r0 movs r4, 0 movs r0, 0x3 strh r0, [r5] strb r4, [r5, 0x2] ldrh r0, [r6, 0xE] strb r0, [r5, 0x3] movs r0, 0x1 strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0x4C movs r1, 0 bl SetDefaultIQSkills ldr r0, [r6, 0x44] str r0, [r5, 0x54] adds r0, r5, 0 adds r0, 0x50 strb r4, [r0] ldr r0, _0806FC48 strh r0, [r5, 0xA] strh r7, [r5, 0xC] ldrh r0, [r6] strh r0, [r5, 0xE] ldr r0, _0806FC4C ldr r0, [r0] ldr r4, _0806FC50 adds r0, r4 ldr r0, [r0] str r0, [r5, 0x4] ldrh r0, [r6, 0x8] strh r0, [r5, 0x10] ldrh r0, [r6, 0x8] strh r0, [r5, 0x12] ldr r0, [r6, 0x14] str r0, [r5, 0x44] ldr r0, [r6, 0x18] str r0, [r5, 0x48] movs r2, 0 adds r7, r6, 0 adds r7, 0x20 adds r4, r6, 0 adds r4, 0xA adds r3, r6, 0 adds r3, 0xC adds r1, r5, 0 adds r1, 0x14 _0806FBC4: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x2] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x1 ble _0806FBC4 ldr r0, [r6, 0x10] str r0, [r5, 0x18] adds r1, r5, 0 adds r1, 0x1C adds r0, r7, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r6, 0x1C] str r0, [r5, 0x40] adds r4, r5, 0 adds r4, 0x58 movs r1, 0 ldrsh r0, [r6, r1] bl GetMonSpecies adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl BoundedCopyStringtoBuffer bl sub_8097848 movs r2, 0 ldrsh r0, [r6, r2] movs r3, 0x4 ldrsh r1, [r6, r3] movs r3, 0x6 ldrsh r2, [r6, r3] add r3, sp, 0xC str r3, [sp] movs r3, 0 str r3, [sp, 0x4] movs r3, 0x1 str r3, [sp, 0x8] adds r3, r5, 0 bl sub_806B8CC lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _0806FC58 ldr r0, _0806FC54 ldr r1, [r0] mov r0, r8 bl SendMessage strh r7, [r5] b _0806FCEE .align 2, 0 _0806FC40: .4byte gRecruitedPokemonRef _0806FC44: .4byte 0x00008df8 _0806FC48: .4byte 0x0000ffff _0806FC4C: .4byte gDungeonGlobalData _0806FC50: .4byte 0x00000644 _0806FC54: .4byte gUnknown_80FA058 _0806FC58: bl sub_8083D88 movs r0, 0xA0 movs r1, 0x46 bl sub_803E708 ldr r0, _0806FC78 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _0806FC94 b _0806FC88 .align 2, 0 _0806FC78: .4byte gUnknown_80FA090 _0806FC7C: ldr r0, _0806FD00 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FC88: adds r0, r4, 0 bl sub_805FBE8 lsls r0, 24 cmp r0, 0 beq _0806FC7C _0806FC94: ldr r4, _0806FD04 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_808D9DC ldr r0, _0806FD08 ldr r1, [r0] mov r0, r8 bl SendMessage mov r0, r10 cmp r0, 0 beq _0806FCD8 bl xxx_call_GetLeaderEntity adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0806FD0C mov r1, r9 bl sub_8092558 movs r0, 0xCE bl PlaySound ldr r0, _0806FD10 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FCD8: movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x97 bne _0806FCEE ldr r2, _0806FD14 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x11] _0806FCEE: movs r0, 0x1 _0806FCF0: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806FD00: .4byte gUnknown_80FA0C8 _0806FD04: .4byte gAvailablePokemonNames _0806FD08: .4byte gUnknown_80FA0F0 _0806FD0C: .4byte gUnknown_202E628 _0806FD10: .4byte gUnknown_80FA120 _0806FD14: .4byte gDungeonGlobalData thumb_func_end sub_806FA5C thumb_func_start sub_806FD18 sub_806FD18: push {r4-r7,lr} ldr r4, [r0, 0x70] movs r6, 0x1 negs r6, r6 movs r1, 0x4 ldrsh r0, [r4, r1] bl GetPokemonSize lsls r0, 24 lsrs r5, r0, 24 movs r2, 0x2 ldrsh r0, [r4, r2] bl sub_806F9BC lsls r0, 24 cmp r0, 0 beq _0806FDEC bl sub_806F910 movs r4, 0 movs r0, 0x6 subs r3, r0, r5 ldr r7, _0806FD48 b _0806FD4E .align 2, 0 _0806FD48: .4byte gUnknown_202EE70 _0806FD4C: adds r4, 0x1 _0806FD4E: cmp r4, r3 bgt _0806FD70 movs r2, 0 cmp r2, r5 bge _0806FD6A adds r1, r4, r7 b _0806FD64 _0806FD5C: adds r1, 0x1 adds r2, 0x1 cmp r2, r5 bge _0806FD6A _0806FD64: ldrb r0, [r1] cmp r0, 0 beq _0806FD5C _0806FD6A: cmp r2, r5 bne _0806FD4C adds r6, r4, 0 _0806FD70: movs r0, 0x1 negs r0, r0 cmp r6, r0 beq _0806FDEC movs r4, 0 ldr r3, _0806FDB4 ldr r0, [r3] ldr r2, _0806FDB8 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FDAC adds r6, r3, 0 adds r5, r2, 0 movs r2, 0 movs r3, 0x1 _0806FD94: adds r2, 0x64 adds r4, 0x1 cmp r4, 0x3 bgt _0806FDAC ldr r0, [r6] adds r0, r2, r0 adds r0, r5 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FD94 _0806FDAC: cmp r4, 0x4 beq _0806FDEC movs r4, 0 b _0806FDBE .align 2, 0 _0806FDB4: .4byte gRecruitedPokemonRef _0806FDB8: .4byte 0x00008df8 _0806FDBC: adds r4, 0x1 _0806FDBE: cmp r4, 0x3 bgt _0806FDDA ldr r0, _0806FDE4 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0806FDE8 adds r0, r2 adds r0, r1 ldr r0, [r0] bl EntityExists lsls r0, 24 cmp r0, 0 bne _0806FDBC _0806FDDA: cmp r4, 0x4 beq _0806FDEC movs r0, 0x1 b _0806FDEE .align 2, 0 _0806FDE4: .4byte gDungeonGlobalData _0806FDE8: .4byte 0x0001357c _0806FDEC: movs r0, 0 _0806FDEE: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806FD18 thumb_func_start sub_806FDF4 sub_806FDF4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x60 str r0, [sp, 0x58] mov r10, r1 str r2, [sp, 0x5C] movs r0, 0 mov r9, r0 str r0, [r2] add r0, sp, 0xC bl sub_8069D4C movs r6, 0 ldr r3, _0806FE50 ldr r0, [r3] ldr r2, _0806FE54 adds r0, r2 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806FE46 adds r5, r3, 0 adds r4, r2, 0 movs r2, 0 movs r3, 0x1 _0806FE2E: adds r2, 0x64 adds r6, 0x1 cmp r6, 0x3 bgt _0806FE46 ldr r0, [r5] adds r0, r2, r0 adds r0, r4 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0806FE2E _0806FE46: cmp r6, 0x4 bne _0806FE58 movs r0, 0 b _0806FFF8 .align 2, 0 _0806FE50: .4byte gRecruitedPokemonRef _0806FE54: .4byte 0x00008df8 _0806FE58: add r0, sp, 0xC movs r1, 0 ldrsh r0, [r0, r1] bl GetFriendArea lsls r0, 24 lsrs r7, r0, 24 ldr r1, _0806FF74 movs r0, 0x64 muls r0, r6 ldr r2, _0806FF78 adds r0, r2 ldr r1, [r1] adds r5, r1, r0 movs r4, 0 movs r0, 0x3 strh r0, [r5] strb r4, [r5, 0x2] add r0, sp, 0xC ldrh r0, [r0, 0xE] strb r0, [r5, 0x3] movs r0, 0x1 strh r0, [r5, 0x8] adds r0, r5, 0 adds r0, 0x4C movs r1, 0 bl SetDefaultIQSkills ldr r0, [sp, 0x50] str r0, [r5, 0x54] adds r0, r5, 0 adds r0, 0x50 strb r4, [r0] ldr r0, _0806FF7C strh r0, [r5, 0xA] strh r6, [r5, 0xC] add r0, sp, 0xC ldrh r0, [r0] strh r0, [r5, 0xE] ldr r0, _0806FF80 ldr r0, [r0] ldr r3, _0806FF84 adds r0, r3 ldr r0, [r0] str r0, [r5, 0x4] add r0, sp, 0xC ldrh r0, [r0, 0x8] strh r0, [r5, 0x10] add r0, sp, 0xC ldrh r0, [r0, 0x8] strh r0, [r5, 0x12] ldr r0, [sp, 0x20] str r0, [r5, 0x44] ldr r0, [sp, 0x24] str r0, [r5, 0x48] movs r2, 0 add r6, sp, 0x2C add r4, sp, 0x54 mov r8, r4 mov r4, sp adds r4, 0x16 add r3, sp, 0x18 adds r1, r5, 0 adds r1, 0x14 _0806FED8: adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1, 0x2] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x1 ble _0806FED8 ldr r0, [sp, 0x1C] str r0, [r5, 0x18] adds r1, r5, 0 adds r1, 0x1C adds r0, r6, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [sp, 0x28] str r0, [r5, 0x40] adds r4, r5, 0 adds r4, 0x58 add r0, sp, 0xC movs r1, 0 ldrsh r0, [r0, r1] bl GetMonSpecies adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA bl BoundedCopyStringtoBuffer adds r0, r7, 0 bl GetFriendAreaStatus lsls r0, 24 cmp r0, 0 bne _0806FF34 adds r0, r7, 0 bl UnlockFriendArea movs r2, 0x1 mov r9, r2 _0806FF34: bl sub_8097848 movs r1, 0xFA lsls r1, 1 mov r0, r10 ldr r2, [sp, 0x58] bl sub_8068FE0 add r0, sp, 0xC movs r3, 0 ldrsh r0, [r0, r3] add r1, sp, 0xC movs r2, 0x4 ldrsh r1, [r1, r2] add r2, sp, 0xC movs r3, 0x6 ldrsh r2, [r2, r3] mov r3, r8 str r3, [sp] movs r3, 0 str r3, [sp, 0x4] str r3, [sp, 0x8] adds r3, r5, 0 bl sub_806B8CC lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0806FF88 strh r0, [r5] b _0806FFF6 .align 2, 0 _0806FF74: .4byte gRecruitedPokemonRef _0806FF78: .4byte 0x00008df8 _0806FF7C: .4byte 0x0000ffff _0806FF80: .4byte gDungeonGlobalData _0806FF84: .4byte 0x00000644 _0806FF88: ldr r0, _0806FF9C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _0806FFB8 b _0806FFAC .align 2, 0 _0806FF9C: .4byte gUnknown_80FA090 _0806FFA0: ldr r0, _08070008 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FFAC: adds r0, r4, 0 bl sub_805FBE8 lsls r0, 24 cmp r0, 0 beq _0806FFA0 _0806FFB8: mov r4, r9 cmp r4, 0 beq _0806FFE6 bl xxx_call_GetLeaderEntity adds r1, r0, 0 ldr r0, _0807000C movs r2, 0 bl SetMessageArgument ldr r0, _08070010 adds r1, r7, 0 bl sub_8092558 movs r0, 0xCE bl PlaySound ldr r0, _08070014 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806FFE6: ldr r0, _08070018 adds r1, r5, 0 movs r2, 0 bl sub_808D9DC ldr r0, [sp, 0x54] ldr r1, [sp, 0x5C] str r0, [r1] _0806FFF6: movs r0, 0x1 _0806FFF8: add sp, 0x60 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08070008: .4byte gUnknown_80FA0C8 _0807000C: .4byte gAvailablePokemonNames _08070010: .4byte gUnknown_202E628 _08070014: .4byte gUnknown_80FA120 _08070018: .4byte gUnknown_202E088 thumb_func_end sub_806FDF4 .align 2,0