#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8057A0C sub_8057A0C: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 ldr r2, [r5, 0x70] mov r8, r2 ldr r0, [r6, 0x70] adds r3, r0, 0 movs r1, 0xE ldrsh r0, [r2, r1] movs r4, 0xE ldrsh r1, [r3, r4] adds r0, r1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r2, 0xE] strh r0, [r3, 0xE] movs r7, 0xE ldrsh r1, [r2, r7] ldrh r4, [r2, 0x10] movs r7, 0x10 ldrsh r0, [r2, r7] cmp r1, r0 ble _08057A42 strh r4, [r2, 0xE] _08057A42: movs r0, 0xE ldrsh r1, [r3, r0] ldrh r2, [r3, 0x10] movs r4, 0x10 ldrsh r0, [r3, r4] cmp r1, r0 ble _08057A52 strh r2, [r3, 0xE] _08057A52: ldr r4, _08057A90 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08057A78 movs r0, 0x1 strb r0, [r1] _08057A78: ldr r0, _08057A94 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057A90: .4byte gAvailablePokemonNames _08057A94: .4byte gUnknown_80FC7EC thumb_func_end sub_8057A0C thumb_func_start TormentMoveAction TormentMoveAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 mov r8, r1 ldr r0, [r1, 0x70] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r1, 0x8C lsls r1, 1 adds r4, r0, r1 adds r5, r4, 0 movs r0, 0x10 mov r9, r0 movs r7, 0x3 _08057ABE: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08057B12 movs r6, 0x20 movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08057B04 mov r0, r9 ands r0, r1 cmp r0, 0 beq _08057B12 ldr r0, _08057AFC adds r1, r5, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08057B00 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 ldrb r0, [r4] orrs r0, r6 strb r0, [r4] movs r1, 0x1 str r1, [sp, 0xC] b _08057B12 .align 2, 0 _08057AFC: .4byte gUnknown_202DE58 _08057B00: .4byte gUnknown_80FCFBC _08057B04: mov r0, r9 ands r0, r1 cmp r0, 0 bne _08057B12 movs r0, 0xDF ands r0, r1 strb r0, [r4] _08057B12: adds r4, 0x8 adds r5, 0x8 subs r7, 0x1 cmp r7, 0 bge _08057ABE ldr r0, [sp, 0x8] movs r1, 0x9C lsls r1, 1 adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08057B6C movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08057B7A movs r1, 0xB0 lsls r1, 1 mov r0, sp bl InitPokemonMove ldrb r1, [r4] movs r0, 0x20 orrs r0, r1 strb r0, [r4] movs r0, 0x1 str r0, [sp, 0xC] ldr r0, _08057B64 mov r1, sp movs r2, 0 bl sub_80928C0 ldr r0, _08057B68 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 b _08057B7A .align 2, 0 _08057B64: .4byte gUnknown_202DE58 _08057B68: .4byte gUnknown_80FCFBC _08057B6C: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08057B7A movs r0, 0xDF ands r0, r1 strb r0, [r4] _08057B7A: ldr r1, [sp, 0xC] cmp r1, 0 beq _08057B90 ldr r1, [sp, 0x8] adds r1, 0xC0 ldrb r0, [r1] cmp r0, 0x1 bne _08057B9C movs r0, 0 strb r0, [r1] b _08057B9C _08057B90: ldr r0, _08057BB0 ldr r2, [r0] mov r0, r10 mov r1, r8 bl sub_80522F4 _08057B9C: ldr r0, [sp, 0xC] 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 _08057BB0: .4byte gUnknown_80FCFE4 thumb_func_end TormentMoveAction thumb_func_start sub_8057BB4 sub_8057BB4: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8057BB4 thumb_func_start sub_8057BC4 sub_8057BC4: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8077AE4 ldr r0, _08057BE8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057BE8: .4byte gUnknown_8106A4C thumb_func_end sub_8057BC4 thumb_func_start sub_8057BEC sub_8057BEC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 adds r6, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 bl IsSleeping lsls r0, 24 cmp r0, 0 beq _08057C48 movs r3, 0x80 lsls r3, 1 str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_8055640 cmp r0, 0 beq _08057C54 movs r1, 0x1 mov r8, r1 ldr r0, _08057C44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057C54 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_80776C0 b _08057C54 .align 2, 0 _08057C44: .4byte gUnknown_80F4E0A _08057C48: ldr r0, _08057C64 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _08057C54: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057C64: .4byte gUnknown_80FC734 thumb_func_end sub_8057BEC thumb_func_start sub_8057C68 sub_8057C68: push {lr} sub sp, 0x4 ldr r2, _08057C84 ldr r2, [r2] movs r3, 0x1 str r3, [sp] movs r3, 0x40 bl sub_8077434 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08057C84: .4byte gUnknown_8106A4C thumb_func_end sub_8057C68 thumb_func_start sub_8057C88 sub_8057C88: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057CC2 movs r7, 0x1 ldr r0, _08057CCC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057CC2 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _08057CC2: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057CCC: .4byte gUnknown_80F4DF6 thumb_func_end sub_8057C88 thumb_func_start sub_8057CD0 sub_8057CD0: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 adds r5, r3, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 ldr r1, _08057D18 adds r1, r0, r1 ldrb r2, [r1] ldr r1, _08057D1C lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] str r5, [sp, 0x4] adds r0, r4, 0 adds r1, r6, 0 mov r3, r8 bl sub_80556BC cmp r0, 0 beq _08057D0A movs r0, 0x1 _08057D0A: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08057D18: .4byte gUnknown_80F51E4 _08057D1C: .4byte gUnknown_80F51EC thumb_func_end sub_8057CD0 thumb_func_start sub_8057D20 sub_8057D20: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r7, 0 ldr r0, [r4, 0x70] adds r0, 0xC0 ldrb r0, [r0] movs r6, 0x80 lsls r6, 1 cmp r0, 0x9 bne _08057D3C movs r6, 0x80 lsls r6, 2 _08057D3C: str r3, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r3, r6, 0 bl sub_8055640 cmp r0, 0 beq _08057D6E movs r7, 0x1 ldr r0, _08057D78 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r4, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057D6E adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x3B movs r3, 0 bl sub_80768DC _08057D6E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057D78: .4byte gUnknown_80F4E08 thumb_func_end sub_8057D20 thumb_func_start sub_8057D7C sub_8057D7C: push {lr} sub sp, 0x8 ldr r2, _08057D98 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x2 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _08057D98: .4byte gUnknown_8106A50 thumb_func_end sub_8057D7C thumb_func_start sub_8057D9C sub_8057D9C: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x70] movs r5, 0 ldr r1, _08057DF8 mov r8, r1 movs r1, 0x8C lsls r1, 1 adds r2, r0, r1 movs r0, 0x1 mov r12, r0 movs r7, 0x10 movs r3, 0x3 _08057DBC: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08057DD4 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08057DD4 movs r0, 0 strb r0, [r2, 0x4] movs r5, 0x1 _08057DD4: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08057DBC mov r0, r8 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument cmp r5, 0 beq _08057E00 ldr r0, _08057DFC ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 b _08057E0C .align 2, 0 _08057DF8: .4byte gUnknown_202DFE8 _08057DFC: .4byte gUnknown_80FD350 _08057E00: ldr r0, _08057E18 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08057E0C: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057E18: .4byte gUnknown_80FD370 thumb_func_end sub_8057D9C thumb_func_start sub_8057E1C sub_8057E1C: push {lr} bl sub_8078348 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8057E1C thumb_func_start sub_8057E28 sub_8057E28: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08057E4C adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_807824C movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057E4C: .4byte gUnknown_80F4EDC thumb_func_end sub_8057E28 thumb_func_start sub_8057E50 sub_8057E50: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_807A9D8 adds r0, r4, 0 adds r1, r5, 0 bl sub_8079CA0 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8057E50 thumb_func_start sub_8057E6C sub_8057E6C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r7, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 ldr r1, [r7, 0x70] mov r9, r1 adds r0, r7, 0 adds r1, r5, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8055640 cmp r0, 0 beq _08057EBC movs r0, 0x1 mov r8, r0 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08057EBC ldr r0, _08057ECC add r0, r9 mov r1, r8 strb r1, [r0] _08057EBC: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057ECC: .4byte 0x00000155 thumb_func_end sub_8057E6C thumb_func_start sub_8057ED0 sub_8057ED0: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057F12 movs r7, 0x1 ldr r0, _08057F1C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057F12 ldr r0, _08057F20 ldr r2, [r0] movs r0, 0 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x80 bl sub_80772C0 _08057F12: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057F1C: .4byte gUnknown_80F4E04 _08057F20: .4byte gUnknown_8106A4C thumb_func_end sub_8057ED0 thumb_func_start sub_8057F24 sub_8057F24: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 ldr r5, [r6, 0x70] movs r0, 0x1 mov r9, r0 movs r4, 0x1 strh r4, [r5, 0xE] ldr r0, _08057F74 ldr r2, [r0] str r4, [sp] adds r0, r6, 0 movs r3, 0x40 bl sub_80772C0 ldr r0, _08057F78 ldr r2, [r0] str r4, [sp] adds r0, r6, 0 mov r1, r8 movs r3, 0x40 bl sub_80772C0 movs r0, 0xAA lsls r0, 1 adds r5, r0 mov r0, r9 strb r0, [r5] movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08057F74: .4byte gUnknown_8106A4C _08057F78: .4byte gUnknown_8106A50 thumb_func_end sub_8057F24 thumb_func_start sub_8057F7C sub_8057F7C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08057FBA movs r7, 0x1 ldr r0, _08057FC4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08057FBA ldr r0, _08057FC8 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _08057FBA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08057FC4: .4byte gUnknown_80F4E02 _08057FC8: .4byte gUnknown_8106A4C thumb_func_end sub_8057F7C thumb_func_start sub_8057FCC sub_8057FCC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8077AE4 ldr r0, _08057FF0 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08057FF0: .4byte gUnknown_8106A50 thumb_func_end sub_8057FCC thumb_func_start sub_8057FF4 sub_8057FF4: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 bl GetFlashFireStatus lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _08058048 ldr r0, [r4, 0x70] movs r2, 0xA9 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _08058054 movs r0, 0x1 strb r0, [r1] ldr r0, _0805802C adds r1, r4, 0 movs r2, 0 bl SetMessageArgument cmp r6, 0x1 bne _08058034 ldr r0, _08058030 b _08058036 .align 2, 0 _0805802C: .4byte gUnknown_202DFE8 _08058030: .4byte gUnknown_80FAE00 _08058034: ldr r0, _08058044 _08058036: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _08058054 .align 2, 0 _08058044: .4byte gUnknown_80FADD8 _08058048: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl sub_8076210 _08058054: movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8057FF4 thumb_func_start sub_805805C sub_805805C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 mov r9, r1 adds r5, r2, 0 mov r8, r3 ldr r1, [r0, 0x70] movs r6, 0x1 movs r2, 0 ldr r4, _08058098 movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0 blt _080580B0 movs r7, 0xC ldrsh r3, [r1, r7] adds r1, r4, 0 ldr r4, _0805809C _08058088: movs r7, 0 ldrsh r0, [r1, r7] cmp r3, r0 bge _080580A0 movs r0, 0x2 ldrsh r6, [r1, r0] b _080580B0 .align 2, 0 _08058098: .4byte gUnknown_80F55BC _0805809C: .4byte 0x000003e6 _080580A0: adds r1, 0x4 adds r2, 0x1 cmp r2, r4 bgt _080580B0 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 bge _08058088 _080580B0: adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r1, [sp, 0x14] mov r0, r10 mov r1, r9 adds r2, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080580F4 movs r2, 0x1 _080580F4: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805805C thumb_func_start GrudgeMoveAction GrudgeMoveAction: push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 movs r7, 0 ldr r4, [r5, 0x70] ldr r0, _08058134 movs r2, 0 bl SetMessageArgument adds r4, 0xF4 ldrb r0, [r4] cmp r0, 0 beq _0805813C ldr r0, _08058138 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 b _0805814E .align 2, 0 _08058134: .4byte gUnknown_202DFE8 _08058138: .4byte gUnknown_80FD2B4 _0805813C: movs r0, 0x1 strb r0, [r4] movs r7, 0x1 ldr r0, _08058158 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0805814E: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058158: .4byte gUnknown_80FD294 thumb_func_end GrudgeMoveAction thumb_func_start sub_805815C sub_805815C: push {lr} movs r2, 0x4 bl sub_80797A0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805815C thumb_func_start sub_805816C sub_805816C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _080581BE movs r1, 0x1 mov r8, r1 ldr r0, _080581CC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080581BE adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _080581BE: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080581CC: .4byte gUnknown_80F4DB8 thumb_func_end sub_805816C thumb_func_start sub_80581D0 sub_80581D0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08058222 movs r1, 0x1 mov r8, r1 ldr r0, _08058230 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058222 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _08058222: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058230: .4byte gUnknown_80F4DBA thumb_func_end sub_80581D0 thumb_func_start sub_8058234 sub_8058234: push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 ldrh r1, [r2, 0x2] ldr r0, _08058258 movs r2, 0x51 cmp r1, r0 bne _08058246 movs r2, 0x7A _08058246: adds r0, r3, 0 adds r1, r4, 0 bl sub_8078FDC movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08058258: .4byte 0x0000013b thumb_func_end sub_8058234 thumb_func_start sub_805825C sub_805825C: push {lr} ldr r2, _0805826C ldr r2, [r2] bl sub_8077540 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805826C: .4byte gUnknown_8106A50 thumb_func_end sub_805825C thumb_func_start sub_8058270 sub_8058270: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r2, 0 adds r2, r3, 0 movs r3, 0x1 ldr r0, [r1, 0x70] adds r0, 0xC0 ldrb r0, [r0] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0805828E movs r3, 0x2 _0805828E: lsls r3, 8 str r2, [sp] adds r0, r4, 0 adds r2, r5, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8058270 thumb_func_start sub_80582AC sub_80582AC: push {lr} ldr r2, _080582C0 ldr r2, [r2] movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080582C0: .4byte gUnknown_8106A4C thumb_func_end sub_80582AC thumb_func_start sub_80582C4 sub_80582C4: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80582C4 thumb_func_start sub_80582D4 sub_80582D4: push {lr} ldr r2, _080582E8 ldr r2, [r2] movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080582E8: .4byte gUnknown_8106A4C thumb_func_end sub_80582D4 thumb_func_start sub_80582EC sub_80582EC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _08058328 ldr r0, _08058324 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _0805833C .align 2, 0 _08058324: .4byte gUnknown_80F4F50 _08058328: ldr r0, _08058348 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x4 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _0805833C: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058348: .4byte gUnknown_80FAC54 thumb_func_end sub_80582EC thumb_func_start sub_805834C sub_805834C: push {lr} sub sp, 0x4 adds r3, r2, 0 ldr r2, _08058368 ldr r2, [r2] str r2, [sp] movs r2, 0x1 bl sub_8079618 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _08058368: .4byte gUnknown_80FAC74 thumb_func_end sub_805834C thumb_func_start sub_805836C sub_805836C: push {r4-r7,lr} sub sp, 0x1C adds r6, r0, 0 adds r7, r1, 0 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] ldr r0, [r6, 0x70] adds r0, 0xA0 ldr r0, [r0] lsls r4, r0, 1 ldr r0, _080583D0 cmp r4, r0 ble _0805838A adds r4, r0, 0 _0805838A: adds r0, r2, 0 bl GetMoveType lsls r0, 24 lsrs r0, 24 add r1, sp, 0x18 str r1, [sp] str r0, [sp, 0x4] ldr r0, _080583D4 str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _080583C0 movs r2, 0x1 _080583C0: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080583D0: .4byte 0x000003e7 _080583D4: .4byte 0x000001ff thumb_func_end sub_805836C thumb_func_start sub_80583D8 sub_80583D8: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805841C movs r7, 0x1 ldr r0, _08058428 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805841C ldr r0, _0805842C ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805841C: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058428: .4byte gUnknown_80F4DC2 _0805842C: .4byte gUnknown_8106A50 thumb_func_end sub_80583D8 thumb_func_start sub_8058430 sub_8058430: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805846A movs r7, 0x1 ldr r0, _08058474 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805846A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805846A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058474: .4byte gUnknown_80F4DEE thumb_func_end sub_8058430 thumb_func_start sub_8058478 sub_8058478: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080584B2 movs r7, 0x1 ldr r0, _080584BC movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080584B2 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _080584B2: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080584BC: .4byte gUnknown_80F4DE6 thumb_func_end sub_8058478 thumb_func_start sub_80584C0 sub_80584C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] mov r0, r9 ldr r2, [r0, 0x70] ldr r0, [r1, 0x70] movs r3, 0xE ldrsh r1, [r0, r3] movs r3, 0xE ldrsh r0, [r2, r3] subs r5, r1, r0 cmp r5, 0 bge _080584F0 movs r5, 0 _080584F0: adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 mov r1, r10 adds r2, r5, 0 movs r3, 0 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08058532 movs r2, 0x1 _08058532: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80584C0 thumb_func_start sub_8058548 sub_8058548: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 movs r5, 0x80 lsls r5, 1 ldr r0, [r4, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0 beq _08058560 ldr r0, _0805857C ldr r5, [r0] _08058560: str r3, [sp] adds r0, r4, 0 adds r3, r5, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805857C: .4byte gUnknown_80F4F6C thumb_func_end sub_8058548 thumb_func_start sub_8058580 sub_8058580: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080585BC movs r7, 0x1 ldr r0, _080585C8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080585BC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 _080585BC: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080585C8: .4byte gUnknown_80F4DD4 thumb_func_end sub_8058580 thumb_func_start sub_80585CC sub_80585CC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 mov r8, r2 adds r7, r3, 0 movs r6, 0 ldr r0, [r4, 0x70] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x1 beq _080585EC cmp r0, 0x3 bne _08058602 _080585EC: ldr r0, _08058620 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 adds r0, r5, 0 adds r1, r4, 0 bl sub_807A4C8 movs r6, 0x1 _08058602: movs r3, 0x80 lsls r3, 1 str r7, [sp] adds r0, r5, 0 adds r1, r4, 0 mov r2, r8 bl sub_8055640 cmp r0, 0 beq _08058624 movs r0, 0x1 orrs r0, r6 lsls r0, 24 b _08058626 .align 2, 0 _08058620: .4byte gUnknown_80FD104 _08058624: lsls r0, r6, 24 _08058626: lsrs r0, 24 adds r6, r0, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80585CC thumb_func_start sub_8058638 sub_8058638: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058670 movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058670 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 _08058670: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8058638 thumb_func_start sub_805867C sub_805867C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _080586B8 ldr r0, _080586B4 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _080586CC .align 2, 0 _080586B4: .4byte gUnknown_80F4F54 _080586B8: ldr r0, _080586D8 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x5 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _080586CC: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080586D8: .4byte gUnknown_80FACA4 thumb_func_end sub_805867C thumb_func_start sub_80586DC sub_80586DC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r5, r3, 0 adds r0, r4, 0 movs r1, 0x3A bl HasAbility lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r3, 0x80 lsls r3, 1 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8055640 adds r4, r0, 0 negs r0, r4 orrs r0, r4 lsrs r5, r0, 31 cmp r5, 0 beq _08058762 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058762 lsrs r0, r4, 31 adds r0, r4, r0 asrs r2, r0, 1 ldr r0, [r7, 0x70] movs r5, 0x1 cmp r2, 0 bgt _08058734 movs r2, 0x1 _08058734: adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08058740 strb r5, [r1] _08058740: mov r0, r8 cmp r0, 0 beq _08058756 movs r3, 0xFD lsls r3, 1 adds r0, r7, 0 adds r1, r2, 0 movs r2, 0xD bl sub_806F324 b _08058762 _08058756: str r5, [sp] adds r0, r7, 0 adds r1, r7, 0 movs r3, 0 bl HealTargetHP _08058762: adds r0, r5, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80586DC thumb_func_start sub_8058770 sub_8058770: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r2, [r4, 0x70] movs r0, 0x10 ldrsh r3, [r2, r0] adds r0, r3, 0 cmp r3, 0 bge _0805878A adds r0, r3, 0x3 _0805878A: movs r7, 0xE ldrsh r1, [r2, r7] asrs r0, 2 cmp r1, r0 bgt _08058798 movs r3, 0 b _080587BE _08058798: movs r0, 0xE ldrsh r1, [r2, r0] lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 cmp r1, r0 bgt _080587AA movs r3, 0x1 b _080587BE _080587AA: lsls r0, r3, 1 adds r0, r3 cmp r0, 0 bge _080587B4 adds r0, 0x3 _080587B4: asrs r0, 2 movs r3, 0x3 cmp r1, r0 bgt _080587BE movs r3, 0x2 _080587BE: ldr r1, _080587E4 lsls r0, r3, 2 adds r0, r1 ldr r3, [r0] str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 mov r2, r12 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080587E4: .4byte gUnknown_80F51A4 thumb_func_end sub_8058770 thumb_func_start sub_80587E8 sub_80587E8: push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 adds r1, r3, 0 ldr r0, [r5, 0x70] adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _0805881A movs r3, 0x80 lsls r3, 2 str r1, [sp] adds r0, r6, 0 adds r1, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r6, 0 adds r1, r5, 0 bl sub_807A290 b _0805882E _0805881A: movs r3, 0x80 lsls r3, 1 str r1, [sp] adds r0, r6, 0 adds r1, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _0805882E: adds r0, r4, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80587E8 thumb_func_start sub_8058838 sub_8058838: push {lr} sub sp, 0x8 ldr r2, _08058854 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x3 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _08058854: .4byte gUnknown_8106A50 thumb_func_end sub_8058838 thumb_func_start sub_8058858 sub_8058858: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 ldr r0, _08058898 ldr r5, [r0] movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076E20 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 mov r1, r8 adds r2, r5, 0 movs r3, 0x1 bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058898: .4byte gUnknown_8106A4C thumb_func_end sub_8058858 thumb_func_start sub_805889C sub_805889C: push {lr} bl sub_80769CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805889C thumb_func_start sub_80588A8 sub_80588A8: push {lr} movs r2, 0x1 bl sub_8079E34 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80588A8 thumb_func_start sub_80588B8 sub_80588B8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080588E4 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080588E4 ldr r0, _080588F0 strb r6, [r0] _080588E4: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080588F0: .4byte gUnknown_202F219 thumb_func_end sub_80588B8 thumb_func_start sub_80588F4 sub_80588F4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r0, [r5, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] bl GetLowKickDmg adds r3, r0, 0 str r4, [sp] adds r0, r6, 0 adds r1, r5, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80588F4 thumb_func_start sub_8058930 sub_8058930: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 movs r0, 0 mov r8, r0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r0, r7, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080589B8 movs r2, 0x1 mov r8, r2 ldr r0, _080589C8 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080589B8 ldr r6, [r7, 0x70] adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0x1 bl sub_8077910 ldr r0, _080589CC ldr r5, [r0] adds r0, r7, 0 adds r1, r7, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8077084 ldr r0, _080589D0 ldr r4, [r0] adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r7, 0 adds r1, r7, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8077160 adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 adds r6, 0xFB ldrb r0, [r6] cmp r0, 0 bne _080589B8 mov r0, r8 strb r0, [r6] _080589B8: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080589C8: .4byte gUnknown_80F4DD6 _080589CC: .4byte gUnknown_8106A4C _080589D0: .4byte gUnknown_8106A50 thumb_func_end sub_8058930 thumb_func_start sub_80589D4 sub_80589D4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08058A04 bl GetWeather lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl HealTargetHP movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058A04: .4byte gUnknown_80F500A thumb_func_end sub_80589D4 thumb_func_start sub_8058A08 sub_8058A08: push {lr} movs r2, 0 movs r3, 0x1 bl sub_8077910 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058A08 thumb_func_start sub_8058A18 sub_8058A18: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058A44 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058A44 ldr r0, _08058A50 strb r6, [r0] _08058A44: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058A50: .4byte gUnknown_202F21A thumb_func_end sub_8058A18 thumb_func_start sub_8058A54 sub_8058A54: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _08058A78 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_80781DC movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08058A78: .4byte gUnknown_80F4EB8 thumb_func_end sub_8058A54 thumb_func_start sub_8058A7C sub_8058A7C: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _08058AA4 ldr r2, [r0] adds r0, r4, 0 movs r3, 0x1 bl sub_8077160 ldr r0, _08058AA8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08058AA4: .4byte gUnknown_8106A4C _08058AA8: .4byte gUnknown_8106A50 thumb_func_end sub_8058A7C thumb_func_start SkyAttackMoveAction SkyAttackMoveAction: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _08058B14 ldr r0, _08058B0C ldr r3, [r0] str r7, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08058B04 movs r1, 0x1 mov r8, r1 ldr r0, _08058B10 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058B04 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _08058B04: adds r0, r4, 0 bl sub_8079764 b _08058B2A .align 2, 0 _08058B0C: .4byte gUnknown_80F4F4C _08058B10: .4byte gUnknown_80F4DF4 _08058B14: ldr r0, _08058B38 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x3 adds r3, r5, 0 bl sub_8079618 movs r0, 0x1 mov r8, r0 _08058B2A: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058B38: .4byte gUnknown_80FACC4 thumb_func_end SkyAttackMoveAction thumb_func_start sub_8058B3C sub_8058B3C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058B76 movs r7, 0x1 ldr r0, _08058B80 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058B76 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80767B0 _08058B76: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058B80: .4byte gUnknown_80F4DBC thumb_func_end sub_8058B3C thumb_func_start sub_8058B84 sub_8058B84: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058BCC movs r6, 0x1 ldr r0, _08058BD8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058BCC ldr r4, [r5, 0x70] ldr r0, _08058BDC ldr r2, [r0] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0x1 bl sub_8077084 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08058BCC strb r6, [r4] _08058BCC: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058BD8: .4byte gUnknown_80F4DD0 _08058BDC: .4byte gUnknown_8106A4C thumb_func_end sub_8058B84 thumb_func_start sub_8058BE0 sub_8058BE0: push {lr} adds r1, r0, 0 bl sub_8079C24 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058BE0 thumb_func_start sub_8058BF0 sub_8058BF0: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058BF0 thumb_func_start sub_8058C00 sub_8058C00: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058C3A movs r7, 0x1 ldr r0, _08058C44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058C3A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _08058C3A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058C44: .4byte gUnknown_80F4DF8 thumb_func_end sub_8058C00 thumb_func_start sub_8058C48 sub_8058C48: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 adds r5, r3, 0 movs r1, 0xC0 lsls r1, 1 movs r0, 0x80 bl sub_808411C adds r3, r0, 0 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x9] muls r0, r3 cmp r0, 0 bge _08058C6C adds r0, 0xFF _08058C6C: asrs r3, r0, 8 cmp r3, 0 bge _08058C74 movs r3, 0x1 _08058C74: cmp r3, 0xC7 ble _08058C7A movs r3, 0xC7 _08058C7A: str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r7, 0 bl sub_8055864 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8058C48 thumb_func_start sub_8058C98 sub_8058C98: push {r4-r7,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r7, r3, 0 ldr r0, [sp, 0x1C] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058CDE movs r6, 0x1 ldr r0, _08058CE8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058CDE str r6, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8076F80 _08058CDE: adds r0, r6, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058CE8: .4byte gUnknown_80F4DC0 thumb_func_end sub_8058C98 thumb_func_start sub_8058CEC sub_8058CEC: push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058D28 movs r6, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058D28 ldr r0, _08058D34 ldr r2, [r0] movs r0, 0 str r0, [sp] str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0x2 bl sub_8076E20 _08058D28: adds r0, r6, 0 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058D34: .4byte gUnknown_8106A50 thumb_func_end sub_8058CEC thumb_func_start sub_8058D38 sub_8058D38: push {lr} bl sub_8075FCC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058D38 thumb_func_start sub_8058D44 sub_8058D44: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r2, [r4, 0x70] movs r0, 0x10 ldrsh r3, [r2, r0] adds r0, r3, 0 cmp r3, 0 bge _08058D5E adds r0, r3, 0x3 _08058D5E: movs r7, 0xE ldrsh r1, [r2, r7] asrs r0, 2 cmp r1, r0 bgt _08058D6C movs r3, 0 b _08058D92 _08058D6C: movs r0, 0xE ldrsh r1, [r2, r0] lsrs r0, r3, 31 adds r0, r3, r0 asrs r0, 1 cmp r1, r0 bgt _08058D7E movs r3, 0x1 b _08058D92 _08058D7E: lsls r0, r3, 1 adds r0, r3 cmp r0, 0 bge _08058D88 adds r0, 0x3 _08058D88: asrs r0, 2 movs r3, 0x3 cmp r1, r0 bgt _08058D92 movs r3, 0x2 _08058D92: ldr r1, _08058DB8 lsls r0, r3, 2 adds r0, r1 ldr r3, [r0] str r5, [sp] adds r0, r4, 0 adds r1, r6, 0 mov r2, r12 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058DB8: .4byte gUnknown_80F51B4 thumb_func_end sub_8058D44 thumb_func_start sub_8058DBC sub_8058DBC: push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 ldr r5, [r7, 0x70] ldr r4, [r6, 0x70] adds r0, r6, 0 bl nullsub_92 movs r3, 0 _08058DCE: lsls r2, r3, 1 adds r1, r5, 0 adds r1, 0x1C adds r1, r2 adds r0, r4, 0 adds r0, 0x1C adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r1, r5, 0 adds r1, 0x20 adds r1, r2 adds r0, r4, 0 adds r0, 0x20 adds r0, r2 ldrh r0, [r0] strh r0, [r1] adds r1, r5, 0 adds r1, 0x24 adds r1, r2 adds r0, r4, 0 adds r0, 0x24 adds r0, r2 ldrh r0, [r0] strh r0, [r1] lsls r2, r3, 2 adds r1, r5, 0 adds r1, 0x2C adds r1, r2 adds r0, r4, 0 adds r0, 0x2C adds r0, r2 ldr r0, [r0] str r0, [r1] adds r1, r5, 0 adds r1, 0x34 adds r1, r2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r0, [r0] str r0, [r1] adds r3, 0x1 cmp r3, 0x1 ble _08058DCE ldr r0, _08058E54 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08058E58 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl sub_80522F4 adds r1, r5, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08058E4C movs r0, 0x1 strb r0, [r1] _08058E4C: movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058E54: .4byte gAvailablePokemonNames _08058E58: .4byte gUnknown_80FBD58 thumb_func_end sub_8058DBC thumb_func_start sub_8058E5C sub_8058E5C: push {r4-r7,lr} sub sp, 0x18 adds r5, r0, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058ED0 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08058ED0 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _08058E8C adds r2, 0x7 _08058E8C: asrs r6, r2, 3 cmp r6, 0 bne _08058E94 movs r6, 0x1 _08058E94: movs r7, 0x1 adds r0, r5, 0 movs r1, 0x7 bl HasAbility lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08058ED0 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08058ED0 str r4, [sp] str r4, [sp, 0x4] ldr r0, _08058EDC str r0, [sp, 0x8] movs r0, 0x14 str r0, [sp, 0xC] str r7, [sp, 0x10] str r4, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl sub_806F370 _08058ED0: adds r0, r7, 0 add sp, 0x18 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058EDC: .4byte 0x000001fd thumb_func_end sub_8058E5C thumb_func_start sub_8058EE0 sub_8058EE0: push {lr} sub sp, 0x4 ldr r2, [r1, 0x70] movs r3, 0x10 ldrsh r2, [r2, r3] lsrs r3, r2, 31 adds r2, r3 asrs r2, 1 movs r3, 0x1 str r3, [sp] movs r3, 0 bl HealTargetHP movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8058EE0 thumb_func_start sub_8058F04 sub_8058F04: push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 mov r12, r2 adds r5, r3, 0 ldr r3, [r4, 0x70] movs r6, 0x1 ldr r0, _08058F50 ldr r1, [r0] movs r0, 0xC1 lsls r0, 9 adds r2, r1, r0 movs r0, 0xC str r0, [r2] ldr r0, _08058F54 adds r1, r0 movs r0, 0 str r0, [r1] adds r3, 0xC0 ldrb r0, [r3] cmp r0, 0xA bne _08058F34 movs r6, 0x2 _08058F34: lsls r3, r6, 8 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 mov r2, r12 bl sub_8055640 cmp r0, 0 beq _08058F48 movs r0, 0x1 _08058F48: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058F50: .4byte gDungeonGlobalData _08058F54: .4byte 0x00018204 thumb_func_end sub_8058F04 thumb_func_start sub_8058F58 sub_8058F58: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 mov r8, r3 ldr r0, _08058FB0 ldr r0, [r0] ldr r1, _08058FB4 adds r0, r1 movs r1, 0 ldrsh r5, [r0, r1] cmp r5, 0 bge _08058F78 movs r5, 0 _08058F78: cmp r5, 0x4A ble _08058F7E movs r5, 0x4A _08058F7E: ldr r4, _08058FB8 lsls r5, 3 adds r0, r5, r4 ldrh r1, [r0] mov r0, sp bl InitPokemonMove adds r4, 0x4 adds r5, r4 ldr r4, [r5] adds r0, r6, 0 adds r1, r7, 0 mov r2, sp mov r3, r8 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08058FB0: .4byte gDungeonGlobalData _08058FB4: .4byte 0x00003a0e _08058FB8: .4byte gUnknown_80F5D10 thumb_func_end sub_8058F58 thumb_func_start sub_8058FBC sub_8058FBC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08058FF6 movs r7, 0x1 ldr r0, _08059000 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08058FF6 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08058FF6: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059000: .4byte gUnknown_80F4DE4 thumb_func_end sub_8058FBC thumb_func_start sub_8059004 sub_8059004: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 mov r2, r8 adds r2, 0x4 str r4, [sp] str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r3, 0x1 bl sub_807DF38 movs r0, 0x1 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8059004 thumb_func_start sub_8059050 sub_8059050: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059050 thumb_func_start sub_8059060 sub_8059060: push {lr} sub sp, 0x4 adds r3, r2, 0 ldr r2, _0805907C ldr r2, [r2] str r2, [sp] movs r2, 0xB bl sub_8079618 movs r0, 0x1 add sp, 0x4 pop {r1} bx r1 .align 2, 0 _0805907C: .4byte gUnknown_80FAD6C thumb_func_end sub_8059060 thumb_func_start sub_8059080 sub_8059080: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080590BA movs r7, 0x1 ldr r0, _080590C4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080590BA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _080590BA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080590C4: .4byte gUnknown_80F4DE8 thumb_func_end sub_8059080 thumb_func_start sub_80590C8 sub_80590C8: push {lr} bl sub_80798B0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80590C8 thumb_func_start sub_80590D4 sub_80590D4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r9, r0 add r0, sp, 0x18 mov r1, r9 strb r1, [r0] adds r0, r5, 0 bl GetMoveType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r6, 0 movs r1, 0x37 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0805911C movs r4, 0 _0805911C: cmp r4, 0 bne _08059134 ldr r0, _08059130 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _0805917A .align 2, 0 _08059130: .4byte gUnknown_80FEB88 _08059134: adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _0805918C add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r0, [sp, 0x14] mov r0, r8 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059178 movs r2, 0x1 _08059178: strb r2, [r1] _0805917A: add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805918C: .4byte 0x0000270f thumb_func_end sub_80590D4 thumb_func_start sub_8059190 sub_8059190: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080591CA movs r7, 0x1 ldr r0, _080591D4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080591CA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _080591CA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080591D4: .4byte gUnknown_80F4DEA thumb_func_end sub_8059190 thumb_func_start sub_80591D8 sub_80591D8: push {lr} bl sub_8079834 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80591D8 thumb_func_start sub_80591E4 sub_80591E4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r5, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 movs r1, 0x3A bl HasAbility lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r3, 0x80 lsls r3, 1 str r5, [sp] adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8055640 adds r1, r0, 0 cmp r1, 0 beq _0805927E lsrs r0, r1, 31 adds r0, r1, r0 asrs r4, r0, 1 cmp r4, 0 bgt _0805922A movs r4, 0x1 _0805922A: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805927E ldr r0, [r7, 0x70] movs r1, 0x1 mov r8, r1 adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805924A mov r0, r8 strb r0, [r1] _0805924A: adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805927E mov r1, r9 cmp r1, 0 beq _0805926E movs r3, 0xFD lsls r3, 1 adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD bl sub_806F324 b _0805927E _0805926E: mov r0, r8 str r0, [sp] adds r0, r7, 0 adds r1, r7, 0 adds r2, r4, 0 movs r3, 0 bl HealTargetHP _0805927E: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80591E4 thumb_func_start SkillSwapMoveAction SkillSwapMoveAction: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r6, r1, 0 ldr r7, [r4, 0x70] ldr r5, [r6, 0x70] adds r0, r6, 0 movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 bne _080592BA adds r0, r4, 0 movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 beq _080592D0 _080592BA: ldr r0, _080592CC ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805932E .align 2, 0 _080592CC: .4byte gUnknown_80FC8C0 _080592D0: movs r0, 0x5E adds r0, r5 mov r12, r0 ldrb r3, [r0] mov r8, r3 adds r1, r5, 0 adds r1, 0x5F ldrb r2, [r1] adds r5, r7, 0 adds r5, 0x5E ldrb r0, [r5] mov r3, r12 strb r0, [r3] movs r0, 0x5F adds r0, r7 mov r12, r0 ldrb r0, [r0] strb r0, [r1] mov r3, r8 strb r3, [r5] mov r0, r12 strb r2, [r0] ldr r0, _08059338 ldr r0, [r0] movs r5, 0x1 strb r5, [r0, 0xC] ldr r0, _0805933C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 adds r1, r7, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805931C strb r5, [r1] _0805931C: adds r0, r4, 0 adds r1, r4, 0 bl sub_806ABAC adds r0, r4, 0 adds r1, r6, 0 bl sub_806ABAC movs r0, 0x1 _0805932E: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059338: .4byte gDungeonGlobalData _0805933C: .4byte gUnknown_80FC888 thumb_func_end SkillSwapMoveAction thumb_func_start SketchMoveAction SketchMoveAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 movs r0, 0 mov r10, r0 ldr r1, [r6, 0x70] str r1, [sp] ldr r0, [r7, 0x70] movs r2, 0 mov r12, r2 movs r4, 0 movs r1, 0x8C lsls r1, 1 adds r3, r0, r1 adds r1, r0, 0 movs r2, 0x1 mov r9, r2 movs r0, 0x10 mov r8, r0 _08059372: ldrb r2, [r3] mov r0, r9 ands r0, r2 cmp r0, 0 beq _08059384 mov r0, r8 ands r0, r2 cmp r0, 0 bne _080593A8 _08059384: adds r3, 0x8 adds r1, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _08059372 movs r0, 0 cmp r0, 0 bne _080593B2 ldr r0, _080593A4 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 movs r0, 0 b _0805940A .align 2, 0 _080593A4: .4byte gUnknown_80FE3BC _080593A8: movs r2, 0x8D lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] mov r12, r0 _080593B2: mov r0, r12 cmp r0, 0 bne _080593CC ldr r0, _080593C8 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 b _08059408 .align 2, 0 _080593C8: .4byte gUnknown_80FE3BC _080593CC: adds r0, r5, 0 mov r1, r12 bl InitPokemonMove ldr r0, _0805941C adds r1, r5, 0 movs r2, 0 bl sub_80928C0 ldrb r1, [r5, 0x1] movs r0, 0x4 orrs r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] ldr r0, _08059420 ldr r2, [r0] adds r0, r6, 0 adds r1, r7, 0 bl sub_80522F4 ldr r1, [sp] adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _08059404 movs r0, 0x1 strb r0, [r1] _08059404: movs r1, 0x1 mov r10, r1 _08059408: mov r0, r10 _0805940A: 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 _0805941C: .4byte gUnknown_202DE58 _08059420: .4byte gUnknown_80FE38C thumb_func_end SketchMoveAction thumb_func_start sub_8059424 sub_8059424: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805945E movs r7, 0x1 ldr r0, _08059468 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805945E adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805945E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059468: .4byte gUnknown_80F4DF0 thumb_func_end sub_8059424 thumb_func_start sub_805946C sub_805946C: push {r4-r6,lr} sub sp, 0x18 adds r5, r0, 0 movs r6, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080594D2 movs r6, 0x1 adds r0, r5, 0 movs r1, 0x7 bl HasAbility lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080594D2 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _080594D2 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _080594B0 adds r2, 0x7 _080594B0: asrs r2, 3 cmp r2, 0 bne _080594B8 movs r2, 0x1 _080594B8: str r4, [sp] str r4, [sp, 0x4] ldr r0, _080594DC str r0, [sp, 0x8] movs r0, 0x14 str r0, [sp, 0xC] str r6, [sp, 0x10] str r4, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 movs r3, 0 bl sub_806F370 _080594D2: adds r0, r6, 0 add sp, 0x18 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080594DC: .4byte 0x000001fd thumb_func_end sub_805946C thumb_func_start sub_80594E0 sub_80594E0: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _08059518 ldr r0, [r0] ldr r1, _0805951C ldrh r1, [r1] ldr r2, _08059520 adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _0805950E ldr r0, _08059524 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805950E: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08059518: .4byte gDungeonGlobalData _0805951C: .4byte gUnknown_80F4F42 _08059520: .4byte 0x0000e269 _08059524: .4byte gUnknown_80FCF78 thumb_func_end sub_80594E0 thumb_func_start sub_8059528 sub_8059528: push {lr} ldr r2, _0805953C ldr r2, [r2] movs r3, 0x1 bl sub_80775DC movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805953C: .4byte gUnknown_8106A4C thumb_func_end sub_8059528 thumb_func_start sub_8059540 sub_8059540: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805957A movs r7, 0x1 ldr r0, _08059584 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805957A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _0805957A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059584: .4byte gUnknown_80F4DC4 thumb_func_end sub_8059540 thumb_func_start sub_8059588 sub_8059588: push {lr} ldr r2, _0805959C ldr r2, [r2] movs r3, 0x1 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805959C: .4byte gUnknown_8106A50 thumb_func_end sub_8059588 thumb_func_start sub_80595A0 sub_80595A0: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080595DC movs r7, 0x1 ldr r0, _080595E8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080595DC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _080595DC: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080595E8: .4byte gUnknown_80F4DE0 thumb_func_end sub_80595A0 thumb_func_start sub_80595EC sub_80595EC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r9, r0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] adds r0, r5, 0 bl GetMoveType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 cmp r0, 0 bne _08059630 ldr r0, _0805962C ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _08059678 .align 2, 0 _0805962C: .4byte gUnknown_80FEB8C _08059630: adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _08059688 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059672 movs r2, 0x1 _08059672: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] _08059678: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059688: .4byte 0x0000270f thumb_func_end sub_80595EC thumb_func_start sub_805968C sub_805968C: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r5, r0, 0 mov r8, r1 adds r6, r2, 0 adds r7, r3, 0 bl GetWeather lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _080596B6 adds r0, r5, 0 adds r1, r6, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _080596EC _080596B6: ldr r0, _080596E8 ldr r3, [r0] cmp r4, 0x2 beq _080596C6 cmp r4, 0x4 beq _080596C6 cmp r4, 0x5 bne _080596CC _080596C6: lsrs r0, r3, 31 adds r0, r3, r0 asrs r3, r0, 1 _080596CC: str r7, [sp] adds r0, r5, 0 mov r1, r8 adds r2, r6, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _08059700 .align 2, 0 _080596E8: .4byte gUnknown_80F4F48 _080596EC: ldr r0, _08059710 ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x2 adds r3, r6, 0 bl sub_8079618 movs r4, 0x1 _08059700: adds r0, r4, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059710: .4byte gUnknown_80FACE4 thumb_func_end sub_805968C thumb_func_start sub_8059714 sub_8059714: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805978C movs r3, 0 ldrsh r2, [r1, r3] add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059774 movs r2, 0x1 _08059774: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805978C: .4byte gUnknown_80F4F7C thumb_func_end sub_8059714 thumb_func_start sub_8059790 sub_8059790: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _080597CC ldr r0, _080597C8 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _080597E0 .align 2, 0 _080597C8: .4byte gUnknown_80F4F5C _080597CC: ldr r0, _080597EC ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x7 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _080597E0: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080597EC: .4byte gUnknown_80FACFC thumb_func_end sub_8059790 thumb_func_start sub_80597F0 sub_80597F0: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 mov r9, r0 mov r8, r1 adds r5, r2, 0 adds r6, r3, 0 adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 mov r2, r8 adds r2, 0x4 str r4, [sp] str r0, [sp, 0x4] mov r0, r9 mov r1, r8 movs r3, 0x2 bl sub_807DF38 movs r0, 0x1 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80597F0 thumb_func_start DiveMoveAction DiveMoveAction: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 adds r5, r2, 0 mov r8, r3 movs r6, 0 bl GetMapEntityForDungeonEntity bl IsTileWater lsls r0, 24 cmp r0, 0 beq _08059870 ldr r0, _0805986C ldr r2, [r0] adds r0, r4, 0 adds r1, r7, 0 bl sub_80522F4 b _080598B8 .align 2, 0 _0805986C: .4byte gUnknown_80FD128 _08059870: adds r0, r4, 0 adds r1, r5, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _080598A4 ldr r0, _080598A0 ldr r3, [r0] mov r0, r8 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 adds r0, r4, 0 bl sub_8079764 b _080598B8 .align 2, 0 _080598A0: .4byte gUnknown_80F4F64 _080598A4: ldr r0, _080598C8 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x9 adds r3, r5, 0 bl sub_8079618 movs r6, 0x1 _080598B8: adds r0, r6, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080598C8: .4byte gUnknown_80FAD2C thumb_func_end DiveMoveAction thumb_func_start sub_80598CC sub_80598CC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805990A movs r7, 0x1 ldr r0, _08059914 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805990A ldr r0, _08059918 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _0805990A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059914: .4byte gUnknown_80F4E00 _08059918: .4byte gUnknown_8106A4C thumb_func_end sub_80598CC thumb_func_start sub_805991C sub_805991C: push {lr} bl sub_80787E4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805991C thumb_func_start sub_8059928 sub_8059928: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 adds r1, r3, 0 movs r3, 0x1 movs r6, 0 ldr r0, [r4, 0x70] adds r0, 0xC0 ldrb r0, [r0] subs r0, 0x7 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08059948 movs r3, 0x2 _08059948: lsls r3, 8 str r1, [sp] adds r0, r5, 0 adds r1, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059978 movs r6, 0x1 ldr r0, _08059984 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r4, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059978 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_80776C0 _08059978: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059984: .4byte gUnknown_80F4DEC thumb_func_end sub_8059928 thumb_func_start sub_8059988 sub_8059988: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _080599A8 movs r7, 0x1 ldr r0, _080599E0 strb r7, [r0] _080599A8: ldr r0, _080599E0 ldrb r0, [r0] cmp r0, 0 beq _080599D6 ldr r0, _080599E4 ldr r0, [r0] cmp r0, 0x2 bne _080599D6 ldr r0, _080599E8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _080599D6 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _080599D6: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080599E0: .4byte gUnknown_202F218 _080599E4: .4byte gUnknown_202F214 _080599E8: .4byte gUnknown_80F4DC8 thumb_func_end sub_8059988 thumb_func_start sub_80599EC sub_80599EC: push {r4,lr} sub sp, 0x4 adds r3, r0, 0 ldr r0, [r1, 0x70] movs r4, 0x10 ldrsh r2, [r0, r4] cmp r2, 0 bge _080599FE adds r2, 0x3 _080599FE: asrs r2, 2 movs r0, 0x1 str r0, [sp] adds r0, r3, 0 movs r3, 0 bl HealTargetHP movs r0, 0x1 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80599EC thumb_func_start sub_8059A18 sub_8059A18: push {lr} ldr r2, _08059A28 ldr r2, [r2] bl sub_8077540 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059A28: .4byte gUnknown_8106A50 thumb_func_end sub_8059A18 thumb_func_start sub_8059A2C sub_8059A2C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r9, r0 adds r7, r1, 0 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] mov r1, r9 ldr r0, [r1, 0x70] ldrb r0, [r0, 0x9] mov r10, r0 adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 adds r1, r7, 0 mov r2, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059A90 movs r2, 0x1 _08059A90: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059A2C thumb_func_start sub_8059AA8 sub_8059AA8: push {lr} movs r2, 0x1 bl sub_8077AE4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059AA8 thumb_func_start sub_8059AB8 sub_8059AB8: push {lr} bl sub_8078758 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059AB8 thumb_func_start sub_8059AC4 sub_8059AC4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08059AF4 bl GetWeather lsls r0, 24 lsrs r0, 23 adds r0, r4 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl HealTargetHP movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059AF4: .4byte gUnknown_80F501A thumb_func_end sub_8059AC4 thumb_func_start sub_8059AF8 sub_8059AF8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C mov r9, r0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 movs r7, 0 add r0, sp, 0x18 strb r7, [r0] adds r0, r5, 0 bl GetMoveType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_806F4A4 lsls r0, 24 cmp r0, 0 bne _08059B3C ldr r0, _08059B38 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _08059B82 .align 2, 0 _08059B38: .4byte gUnknown_80FEB90 _08059B3C: adds r0, r5, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _08059B90 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r7, [sp, 0xC] str r7, [sp, 0x10] str r7, [sp, 0x14] mov r0, r9 adds r1, r6, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _08059B7C movs r2, 0x1 _08059B7C: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] _08059B82: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059B90: .4byte 0x0000270f thumb_func_end sub_8059AF8 thumb_func_start sub_8059B94 sub_8059B94: push {lr} ldr r2, _08059BA8 ldr r2, [r2] movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059BA8: .4byte gUnknown_8106A4C thumb_func_end sub_8059B94 thumb_func_start sub_8059BAC sub_8059BAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 adds r5, r1, 0 movs r0, 0 mov r8, r0 ldr r7, [r5, 0x70] adds r0, r5, 0 movs r1, 0x25 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08059BD8 ldr r0, _08059BD4 b _08059C5E .align 2, 0 _08059BD4: .4byte gPtrForecastPreventsTypeSwitchMessage _08059BD8: movs r1, 0x8C lsls r1, 1 adds r4, r7, r1 mov r9, sp movs r6, 0x3 _08059BE2: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08059C08 adds r0, r5, 0 adds r1, r4, 0 bl GetMoveTypeForPokemon lsls r0, 24 cmp r0, 0 beq _08059C08 mov r0, r9 adds r0, 0x4 mov r9, r0 subs r0, 0x4 stm r0!, {r4} movs r1, 0x1 add r8, r1 _08059C08: adds r4, 0x8 subs r6, 0x1 cmp r6, 0 bge _08059BE2 mov r0, r8 cmp r0, 0 beq _08059C5C bl DungeonRandomCapped lsls r0, 2 mov r1, sp adds r4, r1, r0 ldr r1, [r4] adds r0, r5, 0 bl GetMoveTypeForPokemon adds r1, r7, 0 adds r1, 0x5C movs r2, 0 strb r0, [r1] adds r0, r7, 0 adds r0, 0x5D strb r2, [r0] adds r1, 0x9A movs r0, 0x1 strb r0, [r1] ldr r0, _08059C54 ldr r1, [r4] bl sub_80928C0 ldr r0, _08059C58 ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _08059C6A .align 2, 0 _08059C54: .4byte gUnknown_202DE58 _08059C58: .4byte gUnknown_80FE330 _08059C5C: ldr r0, _08059C7C _08059C5E: ldr r2, [r0] mov r0, r10 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 _08059C6A: 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 _08059C7C: .4byte gUnknown_80FE36C thumb_func_end sub_8059BAC thumb_func_start sub_8059C80 sub_8059C80: push {lr} bl sub_8079D1C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059C80 thumb_func_start HelpingHandMoveAction HelpingHandMoveAction: push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 cmp r5, r4 bne _08059CA8 ldr r0, _08059CA4 ldr r2, [r0] adds r0, r4, 0 bl sub_80522F4 b _08059CC6 .align 2, 0 _08059CA4: .4byte gUnknown_80FEB60 _08059CA8: ldr r0, _08059CD0 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8077084 ldr r0, _08059CD4 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8077084 movs r6, 0x1 _08059CC6: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059CD0: .4byte gUnknown_8106A4C _08059CD4: .4byte gUnknown_8106A50 thumb_func_end HelpingHandMoveAction thumb_func_start sub_8059CD8 sub_8059CD8: push {lr} ldr r2, _08059CEC ldr r2, [r2] movs r3, 0x2 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08059CEC: .4byte gUnknown_8106A4C thumb_func_end sub_8059CD8 thumb_func_start sub_8059CF0 sub_8059CF0: push {lr} movs r2, 0 movs r3, 0 bl sub_807D148 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059CF0 thumb_func_start sub_8059D00 sub_8059D00: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059D3A movs r7, 0x1 ldr r0, _08059D44 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059D3A adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059D3A: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059D44: .4byte gUnknown_80F4DE2 thumb_func_end sub_8059D00 thumb_func_start sub_8059D48 sub_8059D48: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059D48 thumb_func_start sub_8059D58 sub_8059D58: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059D8E movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059D8E adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059D8E: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8059D58 thumb_func_start sub_8059D98 sub_8059D98: push {lr} bl sub_80769CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059D98 thumb_func_start sub_8059DA4 sub_8059DA4: push {lr} movs r2, 0x1 bl sub_80763F8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059DA4 thumb_func_start sub_8059DB4 sub_8059DB4: push {lr} movs r2, 0x1 bl sub_80765E0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8059DB4 thumb_func_start sub_8059DC4 sub_8059DC4: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059DFE movs r7, 0x1 ldr r0, _08059E08 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059DFE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80765E0 _08059DFE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059E08: .4byte gUnknown_80F4DCA thumb_func_end sub_8059DC4 thumb_func_start sub_8059E0C sub_8059E0C: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _08059E46 movs r7, 0x1 ldr r0, _08059E50 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059E46 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _08059E46: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059E50: .4byte gUnknown_80F4DBE thumb_func_end sub_8059E0C thumb_func_start sub_8059E54 sub_8059E54: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x2C adds r6, r0, 0 mov r8, r1 adds r7, r2, 0 adds r1, r3, 0 ldr r0, [sp, 0x48] lsls r0, 24 movs r2, 0 mov r9, r2 cmp r0, 0 bne _08059E8A movs r3, 0x80 lsls r3, 1 str r1, [sp] adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r9, r1 _08059E8A: mov r0, r9 cmp r0, 0 bne _08059F1A adds r0, r6, 0 adds r1, r7, 0 bl GetMoveTypeForPokemon adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 bl CalculateMovePower adds r5, r0, 0 adds r0, r7, 0 bl GetMoveCriticalHitChance str r0, [sp] add r2, sp, 0x18 str r2, [sp, 0x4] movs r0, 0x80 lsls r0, 1 str r0, [sp, 0x8] ldrh r0, [r7, 0x2] str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl sub_806EAF4 ldr r0, _08059F2C ldr r1, [r6, 0x70] movs r2, 0 bl SetMessageArgument_2 ldr r0, _08059F30 ldr r2, [r0] adds r0, r6, 0 mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0x18] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x18] cmp r0, 0 bne _08059EF6 movs r0, 0x1 str r0, [sp, 0x18] _08059EF6: ldr r2, [sp, 0x18] add r0, sp, 0x28 str r0, [sp] mov r0, r9 str r0, [sp, 0x4] ldr r0, _08059F34 str r0, [sp, 0x8] movs r0, 0x13 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] mov r0, r9 str r0, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 movs r3, 0 bl sub_806F370 _08059F1A: mov r0, r9 add sp, 0x2C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059F2C: .4byte gAvailablePokemonNames _08059F30: .4byte gUnknown_80FC7C8 _08059F34: .4byte 0x000001f7 thumb_func_end sub_8059E54 thumb_func_start sub_8059F38 sub_8059F38: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 adds r1, r5, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _08059FA0 ldr r0, _08059F98 ldr r3, [r0] str r7, [sp] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _08059F90 movs r1, 0x1 mov r8, r1 ldr r0, _08059F9C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _08059F90 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _08059F90: adds r0, r4, 0 bl sub_8079764 b _08059FB6 .align 2, 0 _08059F98: .4byte gUnknown_80F4F60 _08059F9C: .4byte gUnknown_80F4DCC _08059FA0: ldr r0, _08059FC4 ldr r0, [r0] str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x8 adds r3, r5, 0 bl sub_8079618 movs r0, 0x1 mov r8, r0 _08059FB6: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08059FC4: .4byte gUnknown_80FAD10 thumb_func_end sub_8059F38 thumb_func_start sub_8059FC8 sub_8059FC8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x2C adds r6, r0, 0 mov r8, r1 adds r7, r2, 0 adds r1, r3, 0 ldr r0, [sp, 0x48] lsls r0, 24 movs r2, 0 mov r9, r2 cmp r0, 0 bne _08059FFE movs r3, 0x80 lsls r3, 2 str r1, [sp] adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r1, 31 mov r9, r1 _08059FFE: mov r0, r9 cmp r0, 0 bne _0805A090 adds r0, r6, 0 adds r1, r7, 0 bl GetMoveTypeForPokemon adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r7, 0 bl CalculateMovePower adds r5, r0, 0 adds r0, r7, 0 bl GetMoveCriticalHitChance str r0, [sp] add r2, sp, 0x18 str r2, [sp, 0x4] movs r0, 0x80 lsls r0, 2 str r0, [sp, 0x8] ldrh r0, [r7, 0x2] str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 adds r3, r5, 0 bl sub_806EAF4 ldr r0, _0805A0A0 ldr r1, [r6, 0x70] movs r2, 0 bl SetMessageArgument_2 ldr r0, _0805A0A4 ldr r2, [r0] adds r0, r6, 0 mov r1, r8 bl sub_80522F4 ldr r0, [sp, 0x18] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 str r0, [sp, 0x18] cmp r0, 0 bne _0805A06A movs r0, 0x1 str r0, [sp, 0x18] _0805A06A: ldr r2, [sp, 0x18] add r0, sp, 0x28 str r0, [sp] mov r0, r9 str r0, [sp, 0x4] movs r0, 0xFC lsls r0, 1 str r0, [sp, 0x8] movs r0, 0x13 str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] mov r0, r9 str r0, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 movs r3, 0 bl sub_806F370 _0805A090: mov r0, r9 add sp, 0x2C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A0A0: .4byte gAvailablePokemonNames _0805A0A4: .4byte gUnknown_80FC7C8 thumb_func_end sub_8059FC8 thumb_func_start sub_805A0A8 sub_805A0A8: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A114 movs r7, 0x1 ldr r0, _0805A0F8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A114 movs r0, 0x3 bl DungeonRandomCapped cmp r0, 0x1 beq _0805A0FC cmp r0, 0x1 ble _0805A0EA cmp r0, 0x2 beq _0805A10A _0805A0EA: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 b _0805A114 .align 2, 0 _0805A0F8: .4byte gUnknown_80F4DFC _0805A0FC: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_8076210 b _0805A114 _0805A10A: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80767B0 _0805A114: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A0A8 thumb_func_start sub_805A120 sub_805A120: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 movs r0, 0 mov r10, r0 ldr r1, [r6, 0x70] mov r9, r1 mov r7, r9 ldr r2, [r5, 0x70] mov r8, r2 mov r0, r8 str r0, [sp] ldr r4, _0805A16C adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r5, 0 movs r1, 0x2C bl HasAbility lsls r0, 24 cmp r0, 0 beq _0805A174 ldr r0, _0805A170 b _0805A1B8 .align 2, 0 _0805A16C: .4byte gAvailablePokemonNames _0805A170: .4byte gUnknown_80FCCE4 _0805A174: adds r0, r5, 0 movs r1, 0x24 bl HasItem lsls r0, 24 cmp r0, 0 beq _0805A18C ldr r0, _0805A188 b _0805A1B8 .align 2, 0 _0805A188: .4byte gUnknown_80FD578 _0805A18C: mov r0, r9 adds r0, 0x60 mov r2, r8 adds r2, 0x60 ldrb r1, [r0] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805A1A2 mov r10, r4 _0805A1A2: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805A1B0 movs r1, 0x1 mov r10, r1 _0805A1B0: mov r2, r10 cmp r2, 0 beq _0805A1CC ldr r0, _0805A1C8 _0805A1B8: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 b _0805A1FC .align 2, 0 _0805A1C8: .4byte gUnknown_80FC7AC _0805A1CC: ldr r0, [r7, 0x60] ldr r2, [sp] ldr r1, [r2, 0x60] str r1, [r7, 0x60] str r0, [r2, 0x60] adds r0, r6, 0 bl sub_806A6E8 adds r0, r5, 0 bl sub_806A6E8 adds r1, r7, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805A1EE strb r4, [r1] _0805A1EE: ldr r0, _0805A20C ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 _0805A1FC: 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 _0805A20C: .4byte gUnknown_80FC790 thumb_func_end sub_805A120 thumb_func_start sub_805A210 sub_805A210: push {r4,r5,lr} sub sp, 0x4 adds r5, r3, 0 ldr r4, _0805A238 ldr r3, [r4] adds r3, 0x1 str r3, [r4] lsls r3, 8 str r5, [sp] bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A238: .4byte gUnknown_202F210 thumb_func_end sub_805A210 thumb_func_start sub_805A23C sub_805A23C: push {lr} ldrh r0, [r2, 0x2] cmp r0, 0xD4 bne _0805A24C movs r0, 0 bl sub_807EA30 b _0805A252 _0805A24C: movs r0, 0x1 bl sub_807EA30 _0805A252: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A23C thumb_func_start sub_805A258 sub_805A258: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A292 movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A292 ldr r0, _0805A29C ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC _0805A292: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A29C: .4byte gUnknown_8106A4C thumb_func_end sub_805A258 thumb_func_start sub_805A2A0 sub_805A2A0: push {lr} bl sub_805BA50 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_805A2A0 thumb_func_start sub_805A2B0 sub_805A2B0: push {lr} ldr r2, _0805A2C4 ldr r2, [r2] movs r3, 0x2 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805A2C4: .4byte gUnknown_8106A50 thumb_func_end sub_805A2B0 thumb_func_start sub_805A2C8 sub_805A2C8: push {lr} sub sp, 0x8 ldr r2, _0805A2E4 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] bl sub_8076E20 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805A2E4: .4byte gUnknown_8106A4C thumb_func_end sub_805A2C8 thumb_func_start sub_805A2E8 sub_805A2E8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 ldr r0, [r1, 0x70] adds r0, 0xC0 ldrb r0, [r0] movs r4, 0x80 lsls r4, 1 cmp r0, 0x9 bne _0805A302 movs r4, 0x80 lsls r4, 2 _0805A302: str r3, [sp] adds r0, r5, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A312 movs r6, 0x1 _0805A312: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805A2E8 thumb_func_start sub_805A31C sub_805A31C: push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r4, [r5, 0x70] ldr r7, [r6, 0x70] adds r0, r6, 0 movs r1, 0x35 bl HasAbility lsls r0, 24 cmp r0, 0 beq _0805A348 ldr r0, _0805A344 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805A386 .align 2, 0 _0805A344: .4byte gUnknown_80FC854 _0805A348: adds r0, r7, 0 adds r0, 0x5E ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x5E strb r0, [r1] adds r0, r7, 0 adds r0, 0x5F ldrb r0, [r0] adds r1, 0x1 strb r0, [r1] ldr r0, _0805A38C ldr r0, [r0] movs r2, 0x1 strb r2, [r0, 0xC] adds r1, 0x9C ldrb r0, [r1] cmp r0, 0 bne _0805A370 strb r2, [r1] _0805A370: ldr r0, _0805A390 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 adds r0, r5, 0 adds r1, r5, 0 bl sub_806ABAC movs r0, 0x1 _0805A386: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A38C: .4byte gDungeonGlobalData _0805A390: .4byte gUnknown_80FC81C thumb_func_end sub_805A31C thumb_func_start sub_805A394 sub_805A394: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805A3CC ldr r0, [r0] ldr r1, _0805A3D0 ldrh r1, [r1] ldr r2, _0805A3D4 adds r0, r2 strb r1, [r0] movs r0, 0x1 movs r1, 0 bl sub_807EAA0 lsls r0, 24 cmp r0, 0 bne _0805A3C2 ldr r0, _0805A3D8 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805A3C2: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A3CC: .4byte gDungeonGlobalData _0805A3D0: .4byte gUnknown_80F4F42 _0805A3D4: .4byte 0x0000e268 _0805A3D8: .4byte gUnknown_80FCF7C thumb_func_end sub_805A394 thumb_func_start sub_805A3DC sub_805A3DC: push {lr} sub sp, 0x8 ldr r2, _0805A3F8 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] bl sub_8076F80 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805A3F8: .4byte gUnknown_8106A4C thumb_func_end sub_805A3DC thumb_func_start sub_805A3FC sub_805A3FC: push {lr} bl sub_807992C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A3FC thumb_func_start sub_805A408 sub_805A408: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A442 movs r7, 0x1 ldr r0, _0805A44C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A442 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 _0805A442: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A44C: .4byte gUnknown_80F4DF2 thumb_func_end sub_805A408 thumb_func_start sub_805A450 sub_805A450: push {lr} ldr r2, _0805A460 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805A460: .4byte gUnknown_80FC730 thumb_func_end sub_805A450 thumb_func_start sub_805A464 sub_805A464: push {r4-r7,lr} sub sp, 0xC adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A4B4 movs r7, 0x1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805A4B4 adds r0, r6, 0 bl EntityExists lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805A4B4 str r0, [sp, 0x8] add r0, sp, 0x4 movs r1, 0x69 movs r2, 0x2 bl sub_8045C28 add r3, sp, 0x8 adds r0, r5, 0 adds r1, r6, 0 add r2, sp, 0x4 bl sub_805A7D4 _0805A4B4: adds r0, r7, 0 add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A464 thumb_func_start sub_805A4C0 sub_805A4C0: push {lr} ldr r2, _0805A4D0 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805A4D0: .4byte gUnknown_80FC74C thumb_func_end sub_805A4C0 thumb_func_start sub_805A4D4 sub_805A4D4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805A4F8 adds r0, r4, 0 movs r2, 0 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 bl sub_8075E74 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A4F8: .4byte gUnknown_80F4E94 thumb_func_end sub_805A4D4 thumb_func_start sub_805A4FC sub_805A4FC: push {lr} bl sub_8076AA4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A4FC thumb_func_start sub_805A508 sub_805A508: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r3, r1, 0 ldr r0, [r3, 0x70] movs r1, 0x89 lsls r1, 1 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _0805A540 ldr r1, _0805A53C lsls r0, 2 adds r0, r1 ldr r2, [r0] movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r3, 0 movs r3, 0 bl HealTargetHP movs r0, 0 strb r0, [r4] b _0805A54C .align 2, 0 _0805A53C: .4byte gUnknown_80F51D4 _0805A540: ldr r0, _0805A558 ldr r2, [r0] adds r0, r5, 0 adds r1, r3, 0 bl sub_80522F4 _0805A54C: movs r0, 0x1 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A558: .4byte gUnknown_80FC770 thumb_func_end sub_805A508 thumb_func_start sub_805A55C sub_805A55C: push {lr} bl sub_8078594 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805A55C thumb_func_start sub_805A568 sub_805A568: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805A568 thumb_func_start sub_805A588 sub_805A588: push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A5D8 movs r7, 0x1 adds r0, r6, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A5D8 ldr r0, _0805A5E4 ldr r5, [r0] movs r4, 0 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076E20 str r4, [sp] str r4, [sp, 0x4] adds r0, r6, 0 adds r1, r6, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_8076F80 _0805A5D8: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A5E4: .4byte gUnknown_8106A4C thumb_func_end sub_805A588 thumb_func_start sub_805A5E8 sub_805A5E8: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r3, 0 ldr r0, [sp, 0x18] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805A632 movs r6, 0x1 ldr r0, _0805A63C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A632 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8077160 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _0805A632 strb r6, [r4] _0805A632: adds r0, r6, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A63C: .4byte gUnknown_80F4DD2 thumb_func_end sub_805A5E8 thumb_func_start SpitUpMoveAction SpitUpMoveAction: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r1, r3, 0 ldr r0, [r5, 0x70] movs r3, 0x89 lsls r3, 1 adds r4, r0, r3 ldrb r0, [r4] cmp r0, 0 beq _0805A66C adds r3, r0, 0 lsls r3, 8 str r1, [sp] adds r0, r5, 0 adds r1, r6, 0 bl sub_8055640 movs r0, 0 strb r0, [r4] b _0805A678 _0805A66C: ldr r0, _0805A684 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 _0805A678: movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805A684: .4byte gUnknown_80FCA3C thumb_func_end SpitUpMoveAction thumb_func_start sub_805A688 sub_805A688: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805A6BE movs r7, 0x1 adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805A6BE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _0805A6BE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805A688 thumb_func_start sub_805A6C8 sub_805A6C8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 ldr r0, [r6, 0x70] mov r9, r0 ldr r7, [r5, 0x70] mov r8, r7 ldr r4, _0805A708 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r5, 0 movs r1, 0x2C bl HasAbility lsls r0, 24 cmp r0, 0 beq _0805A710 ldr r0, _0805A70C b _0805A73A .align 2, 0 _0805A708: .4byte gAvailablePokemonNames _0805A70C: .4byte gUnknown_80FCCE8 _0805A710: adds r0, r5, 0 movs r1, 0x24 bl HasItem lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _0805A728 ldr r0, _0805A724 b _0805A73A .align 2, 0 _0805A724: .4byte gUnknown_80FD57C _0805A728: ldr r0, [r7, 0x60] str r0, [sp] mov r0, sp ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805A74C ldr r0, _0805A748 _0805A73A: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 b _0805A7B4 .align 2, 0 _0805A748: .4byte gUnknown_80FD18C _0805A74C: mov r0, r8 adds r0, 0x60 strb r2, [r0, 0x2] strb r2, [r0, 0x1] strb r2, [r0] ldr r0, _0805A7C4 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 ldr r4, _0805A7C8 mov r3, r9 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r2, [r0] ldr r0, _0805A7CC ldr r1, [sp, 0x4] ands r1, r0 orrs r1, r2 str r1, [sp, 0x4] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] lsls r0, 16 ldr r2, _0805A7D0 ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] add r3, sp, 0x4 adds r0, r6, 0 adds r1, r5, 0 mov r2, sp bl sub_805A7D4 adds r1, r5, 0x4 adds r0, r5, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0805A7B2 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0805A7B2: movs r0, 0x1 _0805A7B4: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A7C4: .4byte gUnknown_80FD170 _0805A7C8: .4byte gAdjacentTileOffsets _0805A7CC: .4byte 0xffff0000 _0805A7D0: .4byte 0x0000ffff thumb_func_end sub_805A6C8 thumb_func_start sub_805A7D4 sub_805A7D4: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x78 mov r8, r0 adds r4, r1, 0 adds r6, r2, 0 movs r0, 0x3 str r0, [sp, 0x4] add r0, sp, 0x28 movs r5, 0 strb r5, [r0] add r1, sp, 0x24 movs r0, 0x1 strb r0, [r1] mov r0, sp adds r0, 0x26 strb r5, [r0] str r6, [sp, 0x74] add r1, sp, 0x4 ldrh r0, [r3] ldrh r2, [r4, 0x4] adds r0, r2 strh r0, [r1, 0x4] ldrh r0, [r3, 0x2] ldrh r2, [r4, 0x6] adds r0, r2 strh r0, [r1, 0x6] movs r1, 0x4 ldrsh r0, [r4, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x4 lsls r1, 8 movs r2, 0x6 ldrsh r0, [r4, r2] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r2, 0x4 lsls r2, 8 add r0, sp, 0x4 bl sub_8045394 add r0, sp, 0x4 strh r5, [r0, 0x26] ldr r0, _0805A858 add r1, sp, 0x4 movs r2, 0 bl SetMessageArgument str r5, [sp] mov r0, r8 add r1, sp, 0x4 adds r2, r6, 0 movs r3, 0x1 bl sub_804652C add sp, 0x78 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805A858: .4byte gUnknown_202DE58 thumb_func_end sub_805A7D4 thumb_func_start sub_805A85C sub_805A85C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 mov r8, r0 adds r6, r1, 0 mov r10, r2 str r3, [sp, 0x24] ldr r0, [r6, 0x4] str r0, [sp, 0x18] adds r0, r6, 0 movs r1, 0xA movs r2, 0x8 bl sub_806CDD4 movs r5, 0 _0805A880: movs r0, 0x3 bl DungeonRandomCapped adds r4, r0, 0 movs r0, 0x3 bl DungeonRandomCapped adds r2, r0, 0 subs r4, 0x1 subs r2, 0x1 cmp r4, 0 bne _0805A89C cmp r2, 0 beq _0805A8BC _0805A89C: ldrh r0, [r6, 0x4] adds r0, r4 lsls r0, 16 ldrh r1, [r6, 0x6] adds r1, r2 lsls r1, 16 lsrs r0, 16 orrs r0, r1 str r0, [sp, 0x18] adds r0, r6, 0 add r1, sp, 0x18 bl sub_80705F0 lsls r0, 24 cmp r0, 0 beq _0805A8C2 _0805A8BC: adds r5, 0x1 cmp r5, 0x27 ble _0805A880 _0805A8C2: cmp r5, 0x28 bne _0805A8DC ldr r0, _0805A8D8 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 b _0805AAB8 .align 2, 0 _0805A8D8: .4byte gUnknown_80FEBDC _0805A8DC: add r0, sp, 0x18 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0xC0 lsls r3, 4 adds r0, r3 ldr r1, [r6, 0xC] subs r0, r1 movs r1, 0xC bl __divsi3 str r0, [sp, 0x28] add r0, sp, 0x18 movs r2, 0x2 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r3, 0x80 lsls r3, 5 adds r0, r3 ldr r1, [r6, 0x10] subs r0, r1 movs r1, 0xC bl __divsi3 str r0, [sp, 0x2C] adds r4, r6, 0x4 adds r0, r4, 0 bl sub_803F428 lsls r0, 24 mov r9, r4 cmp r0, 0 bne _0805A934 add r0, sp, 0x18 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0805A94C _0805A934: movs r5, 0xB _0805A936: adds r0, r6, 0 ldr r1, [sp, 0x28] ldr r2, [sp, 0x2C] bl sub_804539C movs r0, 0x2C bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _0805A936 _0805A94C: add r0, sp, 0x18 movs r1, 0 ldrsh r0, [r0, r1] add r4, sp, 0x18 movs r2, 0x2 ldrsh r1, [r4, r2] bl GetMapEntity ldr r5, [r0, 0x10] cmp r5, 0 beq _0805AA4C adds r0, r5, 0 bl GetEntityType adds r7, r0, 0 cmp r7, 0x1 bne _0805A9FE add r4, sp, 0x1C ldr r1, _0805AA44 adds r0, r4, 0 bl InitPokemonMove adds r0, r5, 0 adds r1, r4, 0 bl sub_80571F0 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805A9B0 mov r0, r10 ldr r1, [sp, 0x24] bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805AA48 movs r3, 0 ldrsh r2, [r1, r3] str r4, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r4, [sp, 0xC] str r7, [sp, 0x10] str r4, [sp, 0x14] mov r0, r8 adds r1, r5, 0 movs r3, 0 bl sub_806F370 _0805A9B0: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0805AAB6 mov r0, r8 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805AAB6 ldr r0, _0805AA48 movs r1, 0 ldrsh r2, [r0, r1] str r4, [sp] str r4, [sp, 0x4] movs r0, 0xFF lsls r0, 1 str r0, [sp, 0x8] str r4, [sp, 0xC] str r4, [sp, 0x10] str r4, [sp, 0x14] mov r0, r8 mov r1, r8 movs r3, 0 bl sub_806F370 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0805AAB6 mov r0, r8 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805AAB6 _0805A9FE: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805AAB6 mov r0, r9 bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _0805AA22 add r0, sp, 0x18 bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _0805AA5E _0805AA22: ldr r2, [sp, 0x28] negs r7, r2 ldr r3, [sp, 0x2C] negs r4, r3 movs r5, 0xB _0805AA2C: adds r0, r6, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_804539C movs r0, 0x2C bl sub_803E46C subs r5, 0x1 cmp r5, 0 bge _0805AA2C b _0805AA5E .align 2, 0 _0805AA44: .4byte 0x00000163 _0805AA48: .4byte gUnknown_80F4F82 _0805AA4C: add r0, sp, 0x18 movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0x2 ldrsh r2, [r4, r3] adds r0, r6, 0 movs r3, 0 bl sub_80694C0 _0805AA5E: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805AAB6 adds r0, r6, 0 movs r1, 0 bl sub_804535C mov r1, r9 adds r0, r6, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _0805AA8C mov r0, r8 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _0805AA8C: ldr r0, [r6, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805AAA0 mov r0, r9 bl sub_804AC20 movs r0, 0 bl sub_807EC28 _0805AAA0: adds r0, r6, 0 bl sub_806A5B8 ldr r0, _0805AAC8 ldr r0, [r0] ldr r1, _0805AACC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_8075900 _0805AAB6: movs r0, 0x1 _0805AAB8: add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AAC8: .4byte gDungeonGlobalData _0805AACC: .4byte 0x00003a08 thumb_func_end sub_805A85C thumb_func_start sub_805AAD0 sub_805AAD0: push {lr} adds r1, r0, 0 bl sub_80782CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805AAD0 thumb_func_start sub_805AAE0 sub_805AAE0: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 ldr r0, [r4, 0x70] movs r7, 0 movs r1, 0x9E lsls r1, 1 adds r5, r0, r1 ldr r0, [r5] bl RoundUpFixedPoint cmp r0, 0x1 ble _0805AB20 ldr r0, _0805AB1C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 movs r3, 0x63 bl sub_8077084 mov r0, sp movs r1, 0x1 bl sub_80943A0 ldr r0, [sp] str r0, [r5] movs r7, 0x1 b _0805AB36 .align 2, 0 _0805AB1C: .4byte gUnknown_8106A4C _0805AB20: ldr r0, _0805AB40 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0805AB44 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 _0805AB36: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AB40: .4byte gAvailablePokemonNames _0805AB44: .4byte gUnknown_80FC5CC thumb_func_end sub_805AAE0 thumb_func_start sub_805AB48 sub_805AB48: push {lr} bl sub_8079A24 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805AB48 thumb_func_start sub_805AB54 sub_805AB54: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 bne _0805AB70 b _0805AC86 _0805AB70: movs r7, 0x1 ldr r0, _0805ABA8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 bne _0805AB88 b _0805AC86 _0805AB88: ldr r1, _0805ABAC ldr r0, _0805ABB0 ldr r0, [r0] ldr r2, _0805ABB4 adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _0805AC7C lsls r0, 2 ldr r1, _0805ABB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805ABA8: .4byte gUnknown_80F4E06 _0805ABAC: .4byte gUnknown_80F5978 _0805ABB0: .4byte gDungeonGlobalData _0805ABB4: .4byte 0x00003a0e _0805ABB8: .4byte _0805ABBC .align 2, 0 _0805ABBC: .4byte _0805ABE0 .4byte _0805ABEC .4byte _0805AC08 .4byte _0805AC16 .4byte _0805AC34 .4byte _0805AC50 .4byte _0805AC64 .4byte _0805AC70 .4byte _0805AC7C _0805ABE0: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 b _0805AC86 _0805ABEC: ldr r1, _0805AC04 adds r0, r6, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_8075C58 b _0805AC86 .align 2, 0 _0805AC04: .4byte gUnknown_80F4E74 _0805AC08: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl sub_80779F0 b _0805AC86 _0805AC16: ldr r0, _0805AC30 ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076E20 b _0805AC86 .align 2, 0 _0805AC30: .4byte gUnknown_8106A4C _0805AC34: ldr r0, _0805AC4C ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 b _0805AC86 .align 2, 0 _0805AC4C: .4byte gUnknown_8106A4C _0805AC50: ldr r0, _0805AC60 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0 bl sub_80775DC b _0805AC86 .align 2, 0 _0805AC60: .4byte gUnknown_8106A4C _0805AC64: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 b _0805AC86 _0805AC70: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80776C0 b _0805AC86 _0805AC7C: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077780 _0805AC86: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805AB54 thumb_func_start sub_805AC90 sub_805AC90: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805ACCA movs r7, 0x1 ldr r0, _0805ACD4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805ACCA adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_8077AE4 _0805ACCA: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805ACD4: .4byte gUnknown_80F4DFA thumb_func_end sub_805AC90 thumb_func_start sub_805ACD8 sub_805ACD8: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _0805AD00 ldr r4, [r0] adds r0, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805AD00: .4byte gUnknown_8106A4C thumb_func_end sub_805ACD8 thumb_func_start sub_805AD04 sub_805AD04: push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805AD30 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r3, r0, 0 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8076090 movs r0, 0x1 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805AD30: .4byte gUnknown_80F4EE0 thumb_func_end sub_805AD04 thumb_func_start sub_805AD34 sub_805AD34: push {lr} sub sp, 0x8 ldr r2, _0805AD50 ldr r2, [r2] movs r3, 0x1 str r3, [sp] str r3, [sp, 0x4] movs r3, 0x2 bl sub_8076E20 movs r0, 0x1 add sp, 0x8 pop {r1} bx r1 .align 2, 0 _0805AD50: .4byte gUnknown_8106A4C thumb_func_end sub_805AD34 thumb_func_start sub_805AD54 sub_805AD54: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 mov r9, r1 movs r0, 0 mov r10, r0 ldr r1, [r5, 0x70] mov r8, r1 ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805AD88 ldr r0, _0805AD80 ldr r0, [r0] ldr r1, _0805AD84 adds r7, r0, r1 movs r0, 0x10 b _0805AD92 .align 2, 0 _0805AD80: .4byte gDungeonGlobalData _0805AD84: .4byte 0x0001358c _0805AD88: ldr r0, _0805AD98 ldr r0, [r0] ldr r1, _0805AD9C adds r7, r0, r1 movs r0, 0x4 _0805AD92: str r0, [sp] movs r6, 0 b _0805AE0E .align 2, 0 _0805AD98: .4byte gDungeonGlobalData _0805AD9C: .4byte 0x0001357c _0805ADA0: lsls r0, r6, 2 adds r0, r7 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805AE0C cmp r5, r4 beq _0805AE0C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl CanTarget lsls r0, 24 cmp r0, 0 bne _0805AE0C ldr r1, [r4, 0x70] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _0805AE0C adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0805ADE2 cmp r0, 0x47 bne _0805ADE6 _0805ADE2: movs r0, 0x1 b _0805ADE8 _0805ADE6: movs r0, 0 _0805ADE8: cmp r0, 0 bne _0805AE0C adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 mov r3, r9 adds r3, 0x4 bl sub_807D148 movs r0, 0x1 mov r10, r0 mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805AE0C mov r0, r10 strb r0, [r1] _0805AE0C: adds r6, 0x1 _0805AE0E: ldr r1, [sp] cmp r6, r1 blt _0805ADA0 mov r0, r10 cmp r0, 0 bne _0805AE26 ldr r0, _0805AE38 ldr r2, [r0] adds r0, r5, 0 mov r1, r9 bl sub_80522F4 _0805AE26: mov r0, r10 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 _0805AE38: .4byte gUnknown_81004EC thumb_func_end sub_805AD54 thumb_func_start sub_805AE3C sub_805AE3C: push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 2 str r4, [sp] adds r0, r5, 0 adds r1, r6, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805AE3C thumb_func_start sub_805AE74 sub_805AE74: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805AEB8 movs r7, 0x1 ldr r0, _0805AEC4 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805AEB8 ldr r0, _0805AEC8 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805AEB8: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AEC4: .4byte gUnknown_80F4DDA _0805AEC8: .4byte gUnknown_8106A4C thumb_func_end sub_805AE74 thumb_func_start sub_805AECC sub_805AECC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r6, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r4, r3, 0 movs r0, 0 mov r8, r0 adds r0, r6, 0 bl sub_807A9D8 movs r3, 0x80 lsls r3, 1 str r4, [sp] adds r0, r6, 0 adds r1, r7, 0 adds r2, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805AF1E movs r1, 0x1 mov r8, r1 ldr r0, _0805AF2C movs r1, 0 ldrsh r2, [r0, r1] adds r0, r6, 0 adds r1, r7, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805AF1E adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_8076210 _0805AF1E: mov r0, r8 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AF2C: .4byte gUnknown_80F4DFE thumb_func_end sub_805AECC thumb_func_start sub_805AF30 sub_805AF30: push {r4-r7,lr} sub sp, 0x4 adds r7, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r4, r3, 0 movs r0, 0x64 bl DungeonRandomCapped adds r1, r0, 0 cmp r0, 0x9 bgt _0805AF54 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x78 b _0805AF92 _0805AF54: cmp r0, 0x1D bgt _0805AF78 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _0805AF64 adds r2, 0x3 _0805AF64: asrs r2, 2 movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 movs r3, 0 bl HealTargetHP movs r0, 0x1 b _0805AF9C _0805AF78: cmp r1, 0x3B bgt _0805AF88 str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x50 b _0805AF92 _0805AF88: str r4, [sp] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0x28 _0805AF92: bl sub_8055864 negs r1, r0 orrs r1, r0 lsrs r0, r1, 31 _0805AF9C: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805AF30 thumb_func_start sub_805AFA4 sub_805AFA4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 adds r6, r3, 0 bl sub_807A9D8 ldr r3, [r4, 0x70] movs r0, 0x10 ldrsh r2, [r3, r0] adds r0, r2, 0 cmp r2, 0 bge _0805AFC6 adds r0, r2, 0x3 _0805AFC6: movs r7, 0xE ldrsh r1, [r3, r7] asrs r0, 2 cmp r1, r0 bgt _0805AFD4 movs r2, 0 b _0805AFFA _0805AFD4: movs r0, 0xE ldrsh r1, [r3, r0] lsrs r0, r2, 31 adds r0, r2, r0 asrs r0, 1 cmp r1, r0 bgt _0805AFE6 movs r2, 0x1 b _0805AFFA _0805AFE6: lsls r0, r2, 1 adds r0, r2 cmp r0, 0 bge _0805AFF0 adds r0, 0x3 _0805AFF0: asrs r0, 2 movs r2, 0x3 cmp r1, r0 bgt _0805AFFA movs r2, 0x2 _0805AFFA: ldr r1, _0805B024 lsls r0, r2, 2 adds r0, r1 ldr r3, [r0] str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 mov r2, r8 bl sub_8055640 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B024: .4byte gUnknown_80F51C4 thumb_func_end sub_805AFA4 thumb_func_start sub_805B028 sub_805B028: push {lr} movs r2, 0x1 bl sub_8077780 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B028 thumb_func_start TransformMoveAction TransformMoveAction: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 bl IsBossBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _0805B05A strb r0, [r4, 0x4] adds r0, r5, 0 adds r1, r6, 0 bl sub_8078E18 movs r0, 0x1 b _0805B068 _0805B05A: ldr r0, _0805B070 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_80522F4 movs r0, 0 _0805B068: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B070: .4byte gUnknown_80FEFF4 thumb_func_end TransformMoveAction thumb_func_start sub_805B074 sub_805B074: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B0AE movs r7, 0x1 ldr r0, _0805B0B8 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B0AE adds r0, r5, 0 adds r1, r6, 0 movs r2, 0 bl sub_80763F8 _0805B0AE: adds r0, r7, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B0B8: .4byte gUnknown_80F4DC6 thumb_func_end sub_805B074 thumb_func_start sub_805B0BC sub_805B0BC: push {lr} ldr r2, [r0, 0x70] adds r2, 0x46 ldrb r2, [r2] bl sub_807CD9C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B0BC thumb_func_start sub_805B0D0 sub_805B0D0: push {r4-r7,lr} adds r7, r0, 0 adds r5, r1, 0 ldr r4, [r5, 0x70] ldr r1, _0805B134 ldr r0, _0805B138 ldr r0, [r0] ldr r2, _0805B13C adds r0, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r0, r1 ldrb r6, [r0] adds r0, r5, 0 movs r1, 0x25 bl HasAbility lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805B14C adds r0, r4, 0 adds r0, 0x5C strb r6, [r0] adds r0, 0x1 strb r1, [r0] adds r1, r4, 0 adds r1, 0xF6 movs r0, 0x1 strb r0, [r1] ldr r0, _0805B140 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r6, 0 bl GetUnformattedTypeString adds r1, r0, 0 ldr r0, _0805B144 bl strcpy ldr r0, _0805B148 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _0805B15A .align 2, 0 _0805B134: .4byte gDungeonCamouflageTypes _0805B138: .4byte gDungeonGlobalData _0805B13C: .4byte 0x00003a0e _0805B140: .4byte gUnknown_202DFE8 _0805B144: .4byte gUnknown_202DE58 _0805B148: .4byte gUnknown_80FEB08 _0805B14C: ldr r0, _0805B160 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0 _0805B15A: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B160: .4byte gPtrForecastPreventsTypeSwitchMessage thumb_func_end sub_805B0D0 thumb_func_start sub_805B164 sub_805B164: push {lr} ldr r2, _0805B178 ldr r2, [r2] movs r3, 0x2 bl sub_8077084 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805B178: .4byte gUnknown_8106A50 thumb_func_end sub_805B164 thumb_func_start sub_805B17C sub_805B17C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 movs r0, 0 mov r9, r0 ldrh r1, [r7, 0x2] ldr r0, _0805B1A8 cmp r1, r0 bne _0805B1AC adds r0, r4, 0 adds r1, r5, 0 bl sub_807A9D8 movs r6, 0x9E lsls r6, 1 b _0805B1BA .align 2, 0 _0805B1A8: .4byte 0x00000123 _0805B1AC: movs r6, 0x75 cmp r1, 0x45 beq _0805B1BA movs r6, 0xF1 cmp r1, 0x7D bne _0805B1BA movs r6, 0x7E _0805B1BA: movs r3, 0x80 lsls r3, 1 mov r1, r8 str r1, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r2, r7, 0 bl sub_8055640 cmp r0, 0 beq _0805B1F4 movs r0, 0x1 mov r9, r0 ldr r0, _0805B204 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r4, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B1F4 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0 bl sub_80768DC _0805B1F4: mov r0, r9 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B204: .4byte gUnknown_80F4E08 thumb_func_end sub_805B17C thumb_func_start sub_805B208 sub_805B208: push {lr} bl sub_80788E8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B208 thumb_func_start sub_805B214 sub_805B214: push {lr} bl sub_8076B48 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B214 thumb_func_start TrapperOrbAction TrapperOrbAction: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 movs r6, 0 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x6] movs r2, 0x1 cmp r0, 0 beq _0805B234 movs r2, 0x2 _0805B234: adds r0, r4, 0x4 movs r1, 0x13 bl sub_807FCD4 lsls r0, 24 cmp r0, 0 beq _0805B246 movs r6, 0x1 b _0805B252 _0805B246: ldr r0, _0805B260 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl sub_80522F4 _0805B252: bl sub_8049ED4 adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B260: .4byte gUnknown_80FC5A8 thumb_func_end TrapperOrbAction thumb_func_start sub_805B264 sub_805B264: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 mov r9, r2 mov r12, r3 ldr r4, [r7, 0x70] ldr r0, _0805B2D0 ldr r3, [r0] movs r6, 0 ldr r0, _0805B2D4 ldr r1, [r0] movs r0, 0xC1 lsls r0, 9 adds r5, r1, r0 ldr r2, _0805B2D8 lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] str r0, [r5] ldr r0, _0805B2DC adds r1, r0 str r6, [r1] ldr r0, _0805B2E0 lsls r3, 1 adds r3, r0 movs r0, 0 ldrsh r3, [r3, r0] adds r4, 0xC0 ldrb r0, [r4] cmp r0, 0xA bne _0805B2AC lsls r3, 1 _0805B2AC: mov r0, r12 str r0, [sp] mov r0, r8 adds r1, r7, 0 mov r2, r9 bl sub_8055864 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 adds r0, r6, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B2D0: .4byte gUnknown_202F224 _0805B2D4: .4byte gDungeonGlobalData _0805B2D8: .4byte gUnknown_8106A8C _0805B2DC: .4byte 0x00018204 _0805B2E0: .4byte gUnknown_80F4F94 thumb_func_end sub_805B264 thumb_func_start sub_805B2E4 sub_805B2E4: push {lr} bl sub_80799A8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B2E4 thumb_func_start sub_805B2F0 sub_805B2F0: push {lr} bl sub_8079B1C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B2F0 thumb_func_start sub_805B2FC sub_805B2FC: push {lr} ldr r2, _0805B310 ldr r2, [r2] movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805B310: .4byte gUnknown_8106A4C thumb_func_end sub_805B2FC thumb_func_start sub_805B314 sub_805B314: push {lr} movs r2, 0x1 bl sub_80783C4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B314 thumb_func_start sub_805B324 sub_805B324: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B368 movs r7, 0x1 ldr r0, _0805B374 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B368 ldr r0, _0805B378 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076E20 _0805B368: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B374: .4byte gUnknown_80F4DD8 _0805B378: .4byte gUnknown_8106A50 thumb_func_end sub_805B324 thumb_func_start sub_805B37C sub_805B37C: push {lr} bl sub_80780E4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B37C thumb_func_start sub_805B388 sub_805B388: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B39E movs r0, 0x1 _0805B39E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B388 thumb_func_start sub_805B3A8 sub_805B3A8: push {lr} bl sub_8079BA8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B3A8 thumb_func_start sub_805B3B4 sub_805B3B4: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _0805B3DC ldr r4, [r0] adds r0, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_8077160 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B3DC: .4byte gUnknown_8106A50 thumb_func_end sub_805B3B4 thumb_func_start sub_805B3E0 sub_805B3E0: push {r4,lr} sub sp, 0x4 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 movs r0, 0x1 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B3E0 thumb_func_start sub_805B3FC sub_805B3FC: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r3, 0 ldr r0, [sp, 0x18] movs r6, 0 movs r3, 0x80 lsls r3, 1 str r0, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805B446 movs r6, 0x1 ldr r0, _0805B450 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r5, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B446 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 adds r2, r7, 0 movs r3, 0x1 bl sub_8077084 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _0805B446 strb r6, [r4] _0805B446: adds r0, r6, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B450: .4byte gUnknown_80F4DCE thumb_func_end sub_805B3FC thumb_func_start sub_805B454 sub_805B454: push {lr} movs r2, 0x1 bl sub_807614C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B454 thumb_func_start MimicMoveAction MimicMoveAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r9, r1 movs r0, 0 str r0, [sp] ldr r1, [r6, 0x70] mov r8, r1 mov r1, r9 ldr r0, [r1, 0x70] movs r5, 0 ldr r1, _0805B50C mov r10, r1 subs r1, 0x2F adds r4, r0, r1 movs r7, 0x3 _0805B48C: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B4D4 ldrh r1, [r4, 0x2] adds r0, r6, 0 bl sub_805755C lsls r0, 24 cmp r0, 0 bne _0805B4D4 ldrh r2, [r4, 0x2] adds r0, r2, 0 cmp r0, r10 beq _0805B4D4 cmp r0, 0xE5 beq _0805B4D4 cmp r0, 0x8A beq _0805B4D4 cmp r0, 0x28 beq _0805B4D4 cmp r0, 0x11 beq _0805B4D4 ldrb r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0805B4D4 lsls r1, r5, 1 movs r0, 0xBD lsls r0, 1 add r0, r8 adds r0, r1 strh r2, [r0] adds r5, 0x1 _0805B4D4: adds r4, 0x8 subs r7, 0x1 cmp r7, 0 bge _0805B48C ldr r0, _0805B510 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument cmp r5, 0 beq _0805B518 mov r1, r8 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B4F8 movs r0, 0x1 strb r0, [r1] _0805B4F8: ldr r0, _0805B514 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 movs r0, 0x1 str r0, [sp] b _0805B524 .align 2, 0 _0805B50C: .4byte 0x00000147 _0805B510: .4byte gAvailablePokemonNames _0805B514: .4byte gUnknown_80FDCE4 _0805B518: ldr r0, _0805B538 ldr r2, [r0] adds r0, r6, 0 mov r1, r9 bl sub_80522F4 _0805B524: ldr r0, [sp] 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 _0805B538: .4byte gUnknown_80FDD00 thumb_func_end MimicMoveAction thumb_func_start sub_805B53C sub_805B53C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r10, r0 mov r9, r1 adds r6, r2, 0 mov r8, r3 movs r0, 0 add r1, sp, 0x18 strb r0, [r1] mov r0, r10 ldr r1, [r0, 0x70] movs r5, 0x1 movs r2, 0 ldr r4, _0805B580 movs r3, 0 ldrsh r0, [r4, r3] cmp r0, 0 blt _0805B598 movs r7, 0xC ldrsh r3, [r1, r7] adds r1, r4, 0 ldr r4, _0805B584 _0805B570: movs r7, 0 ldrsh r0, [r1, r7] cmp r3, r0 bge _0805B588 movs r0, 0x2 ldrsh r5, [r1, r0] b _0805B598 .align 2, 0 _0805B580: .4byte gUnknown_80F55EC _0805B584: .4byte 0x000003e6 _0805B588: adds r1, 0x4 adds r2, 0x1 cmp r2, r4 bgt _0805B598 movs r7, 0 ldrsh r0, [r1, r7] cmp r0, 0 bge _0805B570 _0805B598: adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r1, [sp, 0x14] mov r0, r10 mov r1, r9 adds r2, r5, 0 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805B5DC movs r2, 0x1 _0805B5DC: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805B53C thumb_func_start sub_805B5F4 sub_805B5F4: push {r4,lr} adds r4, r0, 0 movs r2, 0x1 bl sub_8077F40 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B60E movs r0, 0x1 strb r0, [r1] _0805B60E: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_805B5F4 thumb_func_start sub_805B618 sub_805B618: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 mov r9, r3 ldr r0, _0805B660 ldr r4, [r0] ldr r5, _0805B664 lsls r4, 3 adds r0, r4, r5 ldrh r1, [r0] mov r0, sp bl InitPokemonMove adds r5, 0x4 adds r4, r5 ldr r4, [r4] adds r0, r6, 0 mov r1, r8 mov r2, sp mov r3, r9 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B660: .4byte gUnknown_202F228 _0805B664: .4byte gUnknown_80F59C8 thumb_func_end sub_805B618 thumb_func_start sub_805B668 sub_805B668: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 adds r7, r2, 0 adds r6, r3, 0 movs r0, 0 mov r8, r0 adds r0, r4, 0 movs r1, 0x3A bl HasAbility lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r4, 0 bl IsSleeping lsls r0, 24 cmp r0, 0 beq _0805B712 movs r3, 0x80 lsls r3, 1 str r6, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl sub_8055640 adds r1, r0, 0 cmp r1, 0 beq _0805B71E movs r0, 0x1 mov r8, r0 lsrs r0, r1, 31 adds r0, r1, r0 asrs r4, r0, 1 cmp r4, 0 bgt _0805B6BE movs r4, 0x1 _0805B6BE: adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B71E ldr r0, [r5, 0x70] adds r1, r0, 0 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805B6DC mov r0, r8 strb r0, [r1] _0805B6DC: adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B71E mov r0, r9 cmp r0, 0 beq _0805B700 movs r3, 0xFD lsls r3, 1 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xD bl sub_806F324 b _0805B71E _0805B700: mov r0, r8 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl HealTargetHP b _0805B71E _0805B712: ldr r0, _0805B730 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0805B71E: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B730: .4byte gPtrSleepingTargetOnlyMessage thumb_func_end sub_805B668 thumb_func_start sub_805B734 sub_805B734: push {lr} bl sub_8078678 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B734 thumb_func_start sub_805B740 sub_805B740: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 adds r6, r1, 0 ldr r5, [r6, 0x70] movs r7, 0 ldrb r0, [r5, 0x6] cmp r0, 0 bne _0805B7C2 movs r4, 0 movs r0, 0x60 adds r0, r5 mov r8, r0 _0805B75E: lsls r1, r4, 2 ldr r0, _0805B7D4 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B790 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805B790 ldrb r0, [r2, 0x2] cmp r0, 0x7C bne _0805B790 ldrb r1, [r2, 0x1] adds r1, 0x7D lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 movs r2, 0 bl xxx_init_itemslot_8090A8C movs r7, 0x1 _0805B790: adds r4, 0x1 cmp r4, 0x13 ble _0805B75E mov r0, r8 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805B7C2 adds r0, r5, 0 adds r0, 0x62 ldrb r0, [r0] cmp r0, 0x7C bne _0805B7C2 adds r0, r5, 0 adds r0, 0x61 ldrb r1, [r0] adds r1, 0x7D lsls r1, 24 lsrs r1, 24 mov r0, r8 movs r2, 0 bl xxx_init_itemslot_8090A8C movs r7, 0x1 _0805B7C2: cmp r7, 0 beq _0805B7DC ldr r0, _0805B7D8 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 b _0805B7E8 .align 2, 0 _0805B7D4: .4byte gTeamInventory_203B460 _0805B7D8: .4byte gUnknown_80FDC9C _0805B7DC: ldr r0, _0805B7F8 ldr r2, [r0] mov r0, r9 adds r1, r6, 0 bl sub_80522F4 _0805B7E8: adds r0, r7, 0 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B7F8: .4byte gUnknown_80FDCA0 thumb_func_end sub_805B740 thumb_func_start sub_805B7FC sub_805B7FC: push {lr} bl sub_8079AA0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805B7FC thumb_func_start sub_805B808 sub_805B808: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r1, _0805B880 movs r3, 0 ldrsh r2, [r1, r3] add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805B868 movs r2, 0x1 _0805B868: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B880: .4byte gUnknown_80F4F7E thumb_func_end sub_805B808 thumb_func_start sub_805B884 sub_805B884: push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805B8AC ldr r2, [r0] adds r0, r4, 0 movs r3, 0x1 bl sub_8077084 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_8077910 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805B8AC: .4byte gUnknown_8106A4C thumb_func_end sub_805B884 thumb_func_start SkullBashMoveAction SkullBashMoveAction: push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 adds r6, r3, 0 adds r1, r4, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _0805B8EC ldr r0, _0805B8E8 ldr r3, [r0] str r6, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r4, 0 bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r5, 0 bl sub_8079764 b _0805B900 .align 2, 0 _0805B8E8: .4byte gUnknown_80F4F58 _0805B8EC: ldr r0, _0805B90C ldr r0, [r0] str r0, [sp] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x6 adds r3, r4, 0 bl sub_8079618 movs r4, 0x1 _0805B900: adds r0, r4, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B90C: .4byte gUnknown_80FAFF0 thumb_func_end SkullBashMoveAction thumb_func_start sub_805B910 sub_805B910: push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805B954 movs r7, 0x1 ldr r0, _0805B960 movs r1, 0 ldrsh r2, [r0, r1] adds r0, r5, 0 adds r1, r6, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805B954 ldr r0, _0805B964 ldr r2, [r0] str r7, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r6, 0 movs r3, 0x1 bl sub_8076F80 _0805B954: adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B960: .4byte gUnknown_80F4DDC _0805B964: .4byte gUnknown_8106A50 thumb_func_end sub_805B910 thumb_func_start sub_805B968 sub_805B968: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r5, r0, 0 adds r6, r2, 0 adds r7, r3, 0 movs r0, 0 mov r8, r0 movs r3, 0x80 lsls r3, 1 str r7, [sp] adds r0, r5, 0 bl sub_8055640 cmp r0, 0 beq _0805B9D8 movs r1, 0x1 mov r8, r1 adds r0, r5, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _0805B9D8 ldr r0, [r5, 0x70] movs r1, 0x10 ldrsh r2, [r0, r1] cmp r2, 0 bge _0805B9A8 adds r2, 0x3 _0805B9A8: asrs r4, r2, 2 cmp r4, 0 bgt _0805B9B0 movs r4, 0x1 _0805B9B0: adds r0, r6, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] mov r0, r8 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r0, r5, 0 adds r1, r5, 0 adds r2, r4, 0 movs r3, 0 bl sub_806F370 _0805B9D8: mov r0, r8 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805B968 thumb_func_start sub_805B9E8 sub_805B9E8: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r6, 0 mov r0, sp bl sub_8069D18 lsls r0, 24 cmp r0, 0 beq _0805BA08 ldr r0, _0805BA04 b _0805BA18 .align 2, 0 _0805BA04: .4byte gUnknown_80FD430 _0805BA08: mov r0, sp bl sub_804AD34 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0805BA28 ldr r0, _0805BA24 _0805BA18: ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 b _0805BA34 .align 2, 0 _0805BA24: .4byte gUnknown_80FD3F0 _0805BA28: ldr r0, _0805BA40 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 _0805BA34: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805BA40: .4byte gUnknown_80FD40C thumb_func_end sub_805B9E8 thumb_func_start sub_805BA44 sub_805BA44: push {lr} bl sub_807D3CC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BA44 thumb_func_start sub_805BA50 sub_805BA50: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 movs r0, 0 mov r9, r0 movs r4, 0x80 lsls r4, 1 str r3, [sp] adds r0, r6, 0 adds r3, r4, 0 bl sub_8055640 cmp r0, 0 beq _0805BB4C movs r1, 0x1 mov r9, r1 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0 bl sub_805727C lsls r0, 24 cmp r0, 0 beq _0805BB4C ldr r0, [r6, 0x70] mov r8, r0 mov r10, r8 ldr r7, [r5, 0x70] str r7, [sp, 0x4] ldr r4, _0805BAC0 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r5, 0 movs r1, 0x2C bl HasAbility lsls r0, 24 cmp r0, 0 beq _0805BAC4 movs r0, 0x1 b _0805BB4E .align 2, 0 _0805BAC0: .4byte gAvailablePokemonNames _0805BAC4: adds r0, r5, 0 movs r1, 0x24 bl HasItem lsls r0, 24 cmp r0, 0 beq _0805BADC ldr r0, _0805BAD8 b _0805BB04 .align 2, 0 _0805BAD8: .4byte gUnknown_80FD574 _0805BADC: mov r0, r8 adds r0, 0x60 adds r3, r7, 0 adds r3, 0x60 ldrb r0, [r0] mov r2, r9 ands r2, r0 cmp r2, 0 beq _0805BAF8 ldr r0, _0805BAF4 b _0805BB04 .align 2, 0 _0805BAF4: .4byte gUnknown_80FC654 _0805BAF8: ldrb r1, [r3] mov r0, r9 ands r0, r1 cmp r0, 0 bne _0805BB18 ldr r0, _0805BB14 _0805BB04: ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 movs r0, 0x1 b _0805BB4E .align 2, 0 _0805BB14: .4byte gUnknown_80FC678 _0805BB18: ldr r1, [sp, 0x4] ldr r0, [r1, 0x60] mov r1, r10 str r0, [r1, 0x60] strb r2, [r3, 0x2] strb r2, [r3, 0x1] strb r2, [r3] adds r0, r6, 0 bl sub_806A6E8 adds r0, r5, 0 bl sub_806A6E8 mov r1, r10 adds r1, 0xFB ldrb r0, [r1] cmp r0, 0 bne _0805BB40 mov r0, r9 strb r0, [r1] _0805BB40: ldr r0, _0805BB60 ldr r2, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_80522F4 _0805BB4C: mov r0, r9 _0805BB4E: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805BB60: .4byte gUnknown_80FC614 thumb_func_end sub_805BA50 thumb_func_start sub_805BB64 sub_805BB64: push {lr} movs r2, 0xA bl sub_80797A0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB64 thumb_func_start sub_805BB74 sub_805BB74: push {lr} adds r3, r0, 0 ldr r0, [r3, 0x70] adds r2, r0, 0 adds r2, 0xFB ldrb r0, [r2] cmp r0, 0 bne _0805BB88 movs r0, 0x1 strb r0, [r2] _0805BB88: adds r0, r3, 0 movs r2, 0x1 bl sub_807E254 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB74 thumb_func_start sub_805BB98 sub_805BB98: push {lr} movs r2, 0x1 movs r3, 0 bl sub_807D148 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BB98 thumb_func_start CleanseOrbAction CleanseOrbAction: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r6, r1, 0 ldr r0, [r6, 0x70] movs r7, 0 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0805BC30 movs r5, 0 ldr r3, _0805BC44 _0805BBC0: lsls r1, r5, 2 ldr r0, [r3] adds r1, r0 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0805BBE8 movs r0, 0x2 ands r0, r2 cmp r0, 0 bne _0805BBE8 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0805BBE8 movs r0, 0xF7 ands r0, r2 strb r0, [r1] movs r7, 0x1 _0805BBE8: adds r5, 0x1 cmp r5, 0x13 ble _0805BBC0 movs r5, 0 _0805BBF0: ldr r0, _0805BC48 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0805BC4C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805BC2A ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805BC2A movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805BC2A movs r0, 0xF7 ands r0, r1 strb r0, [r2] movs r7, 0x1 _0805BC2A: adds r5, 0x1 cmp r5, 0x3 ble _0805BBF0 _0805BC30: cmp r7, 0 beq _0805BC54 ldr r0, _0805BC50 ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 b _0805BC60 .align 2, 0 _0805BC44: .4byte gTeamInventory_203B460 _0805BC48: .4byte gDungeonGlobalData _0805BC4C: .4byte 0x0001357c _0805BC50: .4byte gUnknown_80FC8F0 _0805BC54: ldr r0, _0805BC6C ldr r2, [r0] mov r0, r8 adds r1, r6, 0 bl sub_80522F4 _0805BC60: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805BC6C: .4byte gUnknown_80FC920 thumb_func_end CleanseOrbAction thumb_func_start sub_805BC70 sub_805BC70: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805BC94 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805BC94: .4byte gUnknown_80F4E74 thumb_func_end sub_805BC70 thumb_func_start sub_805BC98 sub_805BC98: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r6, r0, 0 mov r8, r1 mov r10, r2 str r3, [sp, 0x1C] movs r5, 0 add r0, sp, 0x18 strb r5, [r0] mov r7, sp adds r7, 0x19 strb r5, [r7] ldr r0, [r6, 0x70] mov r9, r0 ldr r0, [r1, 0x70] movs r1, 0xE ldrsh r0, [r0, r1] subs r4, r0, 0x1 cmp r4, 0 bge _0805BCCA movs r4, 0 _0805BCCA: mov r0, r10 ldr r1, [sp, 0x1C] bl sub_8057600 lsls r0, 16 asrs r0, 16 add r2, sp, 0x18 str r2, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 mov r1, r8 adds r2, r4, 0 movs r3, 0 bl sub_806F370 mov r1, r9 movs r2, 0xE ldrsh r0, [r1, r2] lsrs r1, r0, 31 adds r0, r1 asrs r4, r0, 1 cmp r4, 0 bge _0805BD02 movs r4, 0 _0805BD02: mov r0, r10 ldr r1, [sp, 0x1C] bl sub_8057600 lsls r0, 16 asrs r0, 16 str r7, [sp] str r5, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] str r5, [sp, 0x14] adds r0, r6, 0 adds r1, r6, 0 adds r2, r4, 0 movs r3, 0 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805BD34 movs r2, 0x1 _0805BD34: strb r2, [r1] movs r1, 0 ldrb r0, [r7] cmp r0, 0 bne _0805BD40 movs r1, 0x1 _0805BD40: strb r1, [r7] movs r2, 0 add r0, sp, 0x18 ldrb r0, [r0] cmp r0, 0 bne _0805BD50 cmp r1, 0 beq _0805BD52 _0805BD50: movs r2, 0x1 _0805BD52: adds r0, r2, 0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805BC98 thumb_func_start sub_805BD64 sub_805BD64: push {lr} bl sub_8078D8C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD64 thumb_func_start sub_805BD70 sub_805BD70: push {lr} bl sub_8077DDC movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD70 thumb_func_start sub_805BD7C sub_805BD7C: push {lr} bl sub_8077ED0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BD7C thumb_func_start TransferOrbAction TransferOrbAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 adds r7, r1, 0 movs r0, 0 str r0, [sp] ldr r1, [r7, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805BE60 mov r9, r1 movs r2, 0x2 ldrsh r5, [r1, r2] mov r8, r5 ldr r0, _0805BDD0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument mov r0, r9 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0 beq _0805BDD8 ldr r0, _0805BDD4 ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 movs r0, 0 b _0805BE78 .align 2, 0 _0805BDD0: .4byte gAvailablePokemonNames _0805BDD4: .4byte gUnknown_80FD450 _0805BDD8: movs r6, 0 b _0805BDDE _0805BDDC: adds r6, 0x1 _0805BDDE: cmp r6, 0x1D bgt _0805BE14 movs r0, 0 bl sub_803D970 lsls r0, 16 asrs r5, r0, 16 adds r0, r5, 0 movs r1, 0 bl sub_806AA0C lsls r0, 24 cmp r0, 0 beq _0805BDDC cmp r8, r5 beq _0805BDDC mov r0, r8 bl GetPokemonSize adds r4, r0, 0 adds r0, r5, 0 bl GetPokemonSize lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0805BDDC _0805BE14: cmp r6, 0x1E beq _0805BE22 mov r1, r9 movs r2, 0x2 ldrsh r0, [r1, r2] cmp r0, r5 bne _0805BE34 _0805BE22: ldr r0, _0805BE30 ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 b _0805BE76 .align 2, 0 _0805BE30: .4byte gUnknown_80FD450 _0805BE34: ldr r0, _0805BE58 adds r1, r5, 0 bl CopyCyanSpeciesNametoBuffer ldr r0, _0805BE5C ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 adds r0, r7, 0 adds r1, r5, 0 bl sub_806BB6C movs r0, 0x1 str r0, [sp] b _0805BE76 .align 2, 0 _0805BE58: .4byte gUnknown_202DFE8 _0805BE5C: .4byte gUnknown_80FD434 _0805BE60: ldr r0, _0805BE88 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0805BE8C ldr r2, [r0] mov r0, r10 adds r1, r7, 0 bl sub_80522F4 _0805BE76: ldr r0, [sp] _0805BE78: 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 _0805BE88: .4byte gAvailablePokemonNames _0805BE8C: .4byte gUnknown_80FD450 thumb_func_end TransferOrbAction thumb_func_start sub_805BE90 sub_805BE90: push {lr} movs r2, 0x1 movs r3, 0x1 bl sub_80779F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BE90 thumb_func_start LuminousOrbAction LuminousOrbAction: push {lr} bl HandleLuminousOrbAction movs r0, 0x1 pop {r1} bx r1 thumb_func_end LuminousOrbAction thumb_func_start sub_805BEAC sub_805BEAC: push {lr} bl sub_8076D10 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEAC thumb_func_start sub_805BEB8 sub_805BEB8: push {lr} movs r2, 0x8 bl sub_807DA14 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEB8 thumb_func_start sub_805BEC8 sub_805BEC8: push {lr} bl sub_807D510 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BEC8 thumb_func_start EscapeOrbAction EscapeOrbAction: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, _0805BF00 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r5, _0805BF04 ldr r0, [r5] ldr r1, _0805BF08 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805BF10 ldr r0, _0805BF0C ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 b _0805BF26 .align 2, 0 _0805BF00: .4byte gAvailablePokemonNames _0805BF04: .4byte gDungeonGlobalData _0805BF08: .4byte 0x0000066e _0805BF0C: .4byte gUnknown_80FD4DC _0805BF10: ldr r0, _0805BF30 ldr r2, [r0] adds r0, r4, 0 adds r1, r6, 0 bl sub_80522F4 ldr r0, [r5] movs r1, 0x1 strb r1, [r0, 0x4] ldr r0, [r5] strb r1, [r0, 0x11] _0805BF26: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805BF30: .4byte gUnknown_80FD4C4 thumb_func_end EscapeOrbAction thumb_func_start sub_805BF34 sub_805BF34: push {lr} bl sub_807DB74 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805BF34 thumb_func_start TrapbustOrbAction TrapbustOrbAction: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 str r0, [sp, 0x10] adds r0, r1, 0 bl GetMapEntityForDungeonEntity adds r4, r0, 0 bl IsBossBattle lsls r0, 24 cmp r0, 0 beq _0805BF78 ldr r0, _0805BF74 ldr r1, [r0] ldr r0, [sp, 0x4] bl SendMessage movs r0, 0 b _0805C06A .align 2, 0 _0805BF74: .4byte gUnknown_80FD1EC _0805BF78: ldrb r0, [r4, 0x9] cmp r0, 0xFF bne _0805BFAC ldr r2, [sp, 0x8] movs r3, 0x4 ldrsh r1, [r2, r3] ldr r0, _0805BFA4 ldr r0, [r0] ldr r4, _0805BFA8 adds r0, r4 ldrb r0, [r0] subs r2, r1, r0 ldr r3, [sp, 0x8] movs r4, 0x6 ldrsh r1, [r3, r4] subs r1, r0 str r1, [sp, 0xC] adds r1, r2, r0 mov r10, r1 ldr r3, [sp, 0xC] adds r7, r3, r0 b _0805BFDA .align 2, 0 _0805BFA4: .4byte gDungeonGlobalData _0805BFA8: .4byte 0x00018209 _0805BFAC: ldr r2, _0805C050 ldrb r1, [r4, 0x9] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r4, _0805C054 adds r0, r4 ldr r1, [r2] adds r1, r0 movs r2, 0x2 ldrsh r0, [r1, r2] subs r2, r0, 0x1 movs r3, 0x4 ldrsh r0, [r1, r3] subs r0, 0x1 str r0, [sp, 0xC] movs r4, 0x6 ldrsh r0, [r1, r4] adds r0, 0x1 mov r10, r0 movs r3, 0x8 ldrsh r0, [r1, r3] adds r7, r0, 0x1 _0805BFDA: adds r6, r2, 0 cmp r6, r10 bgt _0805C034 _0805BFE0: ldr r5, [sp, 0xC] adds r4, r6, 0x1 mov r9, r4 cmp r5, r7 bgt _0805C02E lsls r0, r6, 16 lsrs r0, 16 mov r8, r0 _0805BFF0: adds r0, r6, 0 adds r1, r5, 0 bl GetMapEntity ldr r4, [r0, 0x14] cmp r4, 0 beq _0805C028 adds r0, r4, 0 bl GetEntityType cmp r0, 0x2 bne _0805C028 adds r0, r4, 0 bl GetTrapData ldrb r0, [r0] cmp r0, 0x11 beq _0805C028 lsls r0, r5, 16 mov r1, r8 orrs r0, r1 str r0, [sp] mov r0, sp movs r1, 0 bl sub_807FE04 movs r2, 0x1 str r2, [sp, 0x10] _0805C028: adds r5, 0x1 cmp r5, r7 ble _0805BFF0 _0805C02E: mov r6, r9 cmp r6, r10 ble _0805BFE0 _0805C034: ldr r3, [sp, 0x10] cmp r3, 0 beq _0805C05C ldr r0, _0805C058 ldr r2, [r0] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] bl sub_80522F4 bl sub_8040A84 bl sub_8049ED4 b _0805C068 .align 2, 0 _0805C050: .4byte gDungeonGlobalData _0805C054: .4byte 0x000104c4 _0805C058: .4byte gUnknown_80FD1B0 _0805C05C: ldr r0, _0805C07C ldr r2, [r0] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] bl sub_80522F4 _0805C068: ldr r0, [sp, 0x10] _0805C06A: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C07C: .4byte gUnknown_80FD1CC thumb_func_end TrapbustOrbAction thumb_func_start sub_805C080 sub_805C080: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 mov r9, r1 movs r0, 0 mov r8, r0 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0805C0AC ldr r0, _0805C0A4 ldr r0, [r0] ldr r1, _0805C0A8 adds r0, r1 movs r1, 0x10 b _0805C0BA .align 2, 0 _0805C0A4: .4byte gDungeonGlobalData _0805C0A8: .4byte 0x0001358c _0805C0AC: ldr r0, _0805C11C ldr r0, [r0] ldr r1, _0805C120 adds r0, r1 movs r1, 0x4 cmp r1, 0 beq _0805C0FA _0805C0BA: adds r6, r0, 0 adds r7, r1, 0 _0805C0BE: ldr r4, [r6] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805C0F2 cmp r5, r4 beq _0805C0F2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 cmp r0, 0 bne _0805C0F2 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x2 adds r3, r5, 0x4 bl sub_807D148 movs r0, 0x1 mov r8, r0 _0805C0F2: adds r6, 0x4 subs r7, 0x1 cmp r7, 0 bne _0805C0BE _0805C0FA: mov r1, r8 cmp r1, 0 bne _0805C10C ldr r0, _0805C124 ldr r2, [r0] adds r0, r5, 0 mov r1, r9 bl sub_80522F4 _0805C10C: mov r0, r8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C11C: .4byte gDungeonGlobalData _0805C120: .4byte 0x0001357c _0805C124: .4byte gUnknown_81004F0 thumb_func_end sub_805C080 thumb_func_start sub_805C128 sub_805C128: push {lr} adds r1, r0, 0 bl sub_807885C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C128 thumb_func_start sub_805C138 sub_805C138: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x1C mov r9, r0 mov r10, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 ldr r2, _0805C1AC add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] mov r0, r9 mov r1, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805C194 movs r2, 0x1 _0805C194: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805C1AC: .4byte 0x0000270f thumb_func_end sub_805C138 thumb_func_start sub_805C1B0 sub_805C1B0: push {lr} bl sub_80790C8 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C1B0 thumb_func_start sub_805C1BC sub_805C1BC: push {r4,r5,lr} sub sp, 0x4 ldr r4, _0805C1E0 movs r5, 0 ldrsh r4, [r4, r5] str r3, [sp] adds r3, r4, 0 bl sub_8055864 adds r1, r0, 0 negs r0, r1 orrs r0, r1 lsrs r0, 31 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805C1E0: .4byte gUnknown_80F4F80 thumb_func_end sub_805C1BC thumb_func_start sub_805C1E4 sub_805C1E4: push {lr} ldr r2, _0805C1F4 ldr r2, [r2] bl sub_80522F4 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805C1F4: .4byte gUnknown_80FD454 thumb_func_end sub_805C1E4 thumb_func_start sub_805C1F8 sub_805C1F8: push {lr} movs r2, 0x1 bl sub_8077BB4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C1F8 thumb_func_start sub_805C208 sub_805C208: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 mov r9, r1 adds r6, r2, 0 mov r8, r3 movs r5, 0 add r0, sp, 0x18 strb r5, [r0] ldr r0, [r1, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] bl GetSizeOrbDmg mov r10, r0 adds r0, r6, 0 bl GetMoveType adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 mov r1, r8 bl sub_8057600 lsls r0, 16 asrs r0, 16 add r1, sp, 0x18 str r1, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] str r5, [sp, 0x14] adds r0, r7, 0 mov r1, r9 mov r2, r10 movs r3, 0x1 bl sub_806F370 add r1, sp, 0x18 movs r2, 0 adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0 bne _0805C270 movs r2, 0x1 _0805C270: strb r2, [r1] add r0, sp, 0x18 ldrb r0, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805C208 thumb_func_start sub_805C288 sub_805C288: push {lr} ldr r2, _0805C29C movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0 bl sub_8078A58 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805C29C: .4byte gUnknown_80F4FC6 thumb_func_end sub_805C288 thumb_func_start sub_805C2A0 sub_805C2A0: push {lr} bl sub_807DC68 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C2A0 thumb_func_start FillInOrbAction FillInOrbAction: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r0 adds r7, r1, 0 movs r0, 0 mov r9, r0 ldr r5, [r7, 0x70] bl IsBossBattle lsls r0, 24 cmp r0, 0 beq _0805C2DC ldr r0, _0805C2D8 ldr r1, [r0] mov r0, r8 bl SendMessage movs r0, 0 b _0805C3CA .align 2, 0 _0805C2D8: .4byte gUnknown_80FD0B8 _0805C2DC: ldr r4, _0805C3A0 adds r3, r5, 0 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] ldrh r1, [r7, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _0805C3A4 ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] ldrh r2, [r7, 0x6] adds r0, r2 lsls r0, 16 ldr r2, _0805C3A8 ands r1, r2 orrs r1, r0 str r1, [sp] mov r4, sp mov r0, sp bl sub_8042A54 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl GetMapEntity adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0805C36C ldr r0, _0805C3AC ands r0, r1 movs r1, 0x1 orrs r0, r1 strh r0, [r2] movs r5, 0x1 negs r5, r5 mov r6, sp _0805C344: movs r4, 0x1 negs r4, r4 _0805C348: movs r1, 0 ldrsh r0, [r6, r1] adds r0, r4 movs r2, 0x2 ldrsh r1, [r6, r2] adds r1, r5 bl sub_80498A8 adds r4, 0x1 cmp r4, 0x1 ble _0805C348 adds r5, 0x1 cmp r5, 0x1 ble _0805C344 movs r0, 0x1 mov r9, r0 bl sub_806CF60 _0805C36C: movs r5, 0 _0805C36E: movs r4, 0 adds r6, r5, 0x1 _0805C372: adds r0, r4, 0 adds r1, r5, 0 bl sub_8049BB0 adds r4, 0x1 cmp r4, 0x37 ble _0805C372 adds r5, r6, 0 cmp r5, 0x1F ble _0805C36E mov r1, r9 cmp r1, 0 beq _0805C3B4 mov r0, sp bl sub_8042A64 ldr r0, _0805C3B0 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 b _0805C3C0 .align 2, 0 _0805C3A0: .4byte gAdjacentTileOffsets _0805C3A4: .4byte 0xffff0000 _0805C3A8: .4byte 0x0000ffff _0805C3AC: .4byte 0x0000fffc _0805C3B0: .4byte gUnknown_80FD0B4 _0805C3B4: ldr r0, _0805C3D8 ldr r2, [r0] mov r0, r8 adds r1, r7, 0 bl sub_80522F4 _0805C3C0: bl sub_8040A84 bl sub_8049ED4 mov r0, r9 _0805C3CA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805C3D8: .4byte gUnknown_80FD0B8 thumb_func_end FillInOrbAction thumb_func_start sub_805C3DC sub_805C3DC: push {lr} ldr r0, [r1, 0x70] ldrb r0, [r0, 0x6] movs r2, 0x1 cmp r0, 0 beq _0805C3EA movs r2, 0x2 _0805C3EA: adds r0, r1, 0x4 movs r1, 0x14 bl sub_807FC3C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C3DC thumb_func_start sub_805C3F8 sub_805C3F8: push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r0, [r4, 0x4] str r0, [sp, 0x4] ldr r0, [r4, 0x70] adds r0, 0xA4 ldrb r1, [r0] cmp r1, 0 bne _0805C442 adds r0, r4, 0 adds r0, 0x20 strb r1, [r0] movs r0, 0 bl sub_803D73C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0 bl sub_8045C28 add r1, sp, 0x4 adds r0, r5, 0 mov r2, sp bl sub_80464C8 movs r1, 0x86 lsls r1, 2 adds r0, r4, 0 adds r2, r5, 0 bl sub_8068FE0 movs r0, 0x1 b _0805C450 _0805C442: ldr r0, _0805C458 ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl sub_80522F4 movs r0, 0 _0805C450: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805C458: .4byte gUnknown_80FF678 thumb_func_end sub_805C3F8 thumb_func_start sub_805C45C sub_805C45C: push {lr} bl sub_807F43C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C45C thumb_func_start sub_805C468 sub_805C468: push {lr} bl sub_8078F50 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C468 thumb_func_start sub_805C474 sub_805C474: push {lr} bl sub_8077E4C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C474 thumb_func_start sub_805C480 sub_805C480: push {lr} bl sub_8079570 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C480 thumb_func_start sub_805C48C sub_805C48C: push {lr} bl sub_80795C4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_805C48C thumb_func_start CanUseWithStatusChecker CanUseWithStatusChecker: push {r4-r6,lr} adds r5, r0, 0 ldr r2, [r5, 0x70] ldrh r0, [r1, 0x2] subs r1, r0, 0x7 ldr r0, _0805C4B8 cmp r1, r0 bls _0805C4AC bl _0805CEA8 _0805C4AC: lsls r0, r1, 2 ldr r1, _0805C4BC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805C4B8: .4byte 0x0000018f _0805C4BC: .4byte _0805C4C0 .align 2, 0 _0805C4C0: .4byte _0805CDE8 .4byte _0805CCE4 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC70 .4byte _0805CEA8 .4byte _0805CB00 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB0C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB12 .4byte _0805CEA8 .4byte _0805CB18 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD48 .4byte _0805CEA8 .4byte _0805CB12 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CD8A .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB46 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB4C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB56 .4byte _0805CB5C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CEA8 .4byte _0805CB62 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB72 .4byte _0805CEA8 .4byte _0805CB80 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC94 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC7C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD90 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCD8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD64 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB94 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD96 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDF4 .4byte _0805CE00 .4byte _0805CB40 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD20 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDD2 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC88 .4byte _0805CEA8 .4byte _0805CD9C .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCC2 .4byte _0805CB9A .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBBA .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBD0 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBDA .4byte _0805CB24 .4byte _0805CB40 .4byte _0805CB8E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CBE0 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDB0 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CBF0 .4byte _0805CEA8 .4byte _0805CC18 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDBC .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC54 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC62 .4byte _0805CB40 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CC62 .4byte _0805CEA8 .4byte _0805CD34 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC1E .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC24 .4byte _0805CBDA .4byte _0805CEA8 .4byte _0805CDCA .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB1E .4byte _0805CDDC .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC32 .4byte _0805CEA8 .4byte _0805CB46 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CC38 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CB56 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CCB6 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD74 .4byte _0805CEA8 .4byte _0805CD50 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CD06 .4byte _0805CEA8 .4byte _0805CC9A .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CEA8 .4byte _0805CDE8 _0805CB00: adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 b _0805CC5A _0805CB0C: adds r0, r2, 0 adds r0, 0xC0 b _0805CDF8 _0805CB12: adds r0, r2, 0 adds r0, 0xC4 b _0805CCAC _0805CB18: adds r0, r2, 0 adds r0, 0xC4 b _0805CB76 _0805CB1E: movs r1, 0x1C ldrsh r0, [r2, r1] b _0805CDD6 _0805CB24: movs r3, 0x1C ldrsh r0, [r2, r3] cmp r0, 0x13 bgt _0805CB6E movs r1, 0x9E lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0 ble _0805CB3E b _0805CEA8 _0805CB3E: b _0805CB6E _0805CB40: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDD6 _0805CB46: adds r0, r2, 0 adds r0, 0xC0 b _0805CC9E _0805CB4C: ldr r0, [r5, 0x70] movs r2, 0x82 lsls r2, 1 adds r0, r2 b _0805CC4A _0805CB56: adds r0, r2, 0 adds r0, 0xDC b _0805CC9E _0805CB5C: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDCE _0805CB62: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x9 beq _0805CB6E b _0805CEA8 _0805CB6E: movs r0, 0 b _0805CEAA _0805CB72: adds r0, r2, 0 adds r0, 0xC0 _0805CB76: ldrb r0, [r0] cmp r0, 0xB beq _0805CB7E b _0805CEA8 _0805CB7E: b _0805CB6E _0805CB80: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0xE beq _0805CB8C b _0805CEA8 _0805CB8C: b _0805CB6E _0805CB8E: adds r0, r2, 0 adds r0, 0xC4 b _0805CDE0 _0805CB94: movs r3, 0x26 ldrsh r0, [r2, r3] b _0805CDD6 _0805CB9A: adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x5 beq _0805CB6E movs r1, 0x10 ldrsh r0, [r2, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r3, 0xE ldrsh r1, [r2, r3] cmp r0, r1 blt _0805CBB8 b _0805CEA8 _0805CBB8: b _0805CB6E _0805CBBA: movs r0, 0x10 ldrsh r1, [r2, r0] movs r3, 0xE ldrsh r0, [r2, r3] cmp r1, r0 ble _0805CB6E movs r1, 0x89 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] b _0805CDC4 _0805CBD0: movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] b _0805CDC4 _0805CBDA: adds r0, r2, 0 adds r0, 0xDC b _0805CDE0 _0805CBE0: movs r1, 0x1C ldrsh r0, [r2, r1] cmp r0, 0x13 bgt _0805CBEA b _0805CEA8 _0805CBEA: movs r3, 0x20 ldrsh r0, [r2, r3] b _0805CDD6 _0805CBF0: ldr r1, _0805CC0C ldr r0, _0805CC10 ldr r0, [r0] ldr r2, _0805CC14 adds r0, r2 movs r3, 0 ldrsh r0, [r0, r3] adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl HasType b _0805CDEC .align 2, 0 _0805CC0C: .4byte gDungeonCamouflageTypes _0805CC10: .4byte gDungeonGlobalData _0805CC14: .4byte 0x00003a0e _0805CC18: movs r1, 0x1E ldrsh r0, [r2, r1] b _0805CDD6 _0805CC1E: adds r0, r2, 0 adds r0, 0xD0 b _0805CDB4 _0805CC24: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x8 beq _0805CC30 b _0805CEA8 _0805CC30: b _0805CB6E _0805CC32: adds r0, r2, 0 adds r0, 0xC4 b _0805CC9E _0805CC38: movs r3, 0x1C ldrsh r0, [r2, r3] cmp r0, 0x13 bgt _0805CC42 b _0805CEA8 _0805CC42: ldr r0, [r5, 0x70] movs r1, 0x82 lsls r1, 1 adds r0, r1 _0805CC4A: ldr r0, [r0] cmp r0, 0x3 bgt _0805CC52 b _0805CEA8 _0805CC52: b _0805CB6E _0805CC54: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] _0805CC5A: cmp r0, 0x5 beq _0805CC60 b _0805CEA8 _0805CC60: b _0805CB6E _0805CC62: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 beq _0805CC6E b _0805CEA8 _0805CC6E: b _0805CB6E _0805CC70: adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 b _0805CCAE _0805CC7C: adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 b _0805CDB6 _0805CC88: adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 b _0805CCA0 _0805CC94: adds r0, r2, 0 adds r0, 0xC4 b _0805CDB4 _0805CC9A: adds r0, r2, 0 adds r0, 0xE4 _0805CC9E: ldrb r0, [r0] _0805CCA0: cmp r0, 0x1 beq _0805CCA6 b _0805CEA8 _0805CCA6: b _0805CB6E _0805CCA8: adds r0, r2, 0 adds r0, 0xDC _0805CCAC: ldrb r0, [r0] _0805CCAE: cmp r0, 0x4 beq _0805CCB4 b _0805CEA8 _0805CCB4: b _0805CB6E _0805CCB6: adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 b _0805CDEE _0805CCC2: adds r0, r5, 0 bl HasQuarterHPOrLess lsls r0, 24 cmp r0, 0 beq _0805CCD0 b _0805CEA8 _0805CCD0: adds r0, r5, 0 bl HasNegativeStatus b _0805CDC2 _0805CCD8: adds r0, r5, 0 bl GetMapEntityForDungeonEntity bl IsTileWater b _0805CDEC _0805CCE4: adds r0, r5, 0 bl GetMapEntityForDungeonEntity adds r4, r0, 0 bl IsTileWater lsls r0, 24 cmp r0, 0 bne _0805CCF8 b _0805CB6E _0805CCF8: ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0805CD04 b _0805CEA8 _0805CD04: b _0805CB6E _0805CD06: adds r0, r5, 0 bl GetMapEntityForDungeonEntity ldr r0, [r0, 0x14] cmp r0, 0 bne _0805CD14 b _0805CB6E _0805CD14: bl GetEntityType cmp r0, 0x2 bne _0805CD1E b _0805CEA8 _0805CD1E: b _0805CB6E _0805CD20: ldr r0, _0805CD2C ldr r0, [r0] ldr r2, _0805CD30 adds r0, r2 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD2C: .4byte gDungeonGlobalData _0805CD30: .4byte 0x0000e277 _0805CD34: ldr r0, _0805CD40 ldr r0, [r0] ldr r3, _0805CD44 adds r0, r3 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD40: .4byte gDungeonGlobalData _0805CD44: .4byte 0x0000e278 _0805CD48: adds r0, r2, 0 adds r0, 0xF4 ldrb r0, [r0] b _0805CDEE _0805CD50: ldr r0, _0805CD5C ldr r0, [r0] ldr r1, _0805CD60 adds r0, r1 ldrb r0, [r0] b _0805CDEE .align 2, 0 _0805CD5C: .4byte gDungeonGlobalData _0805CD60: .4byte 0x000037fc _0805CD64: movs r3, 0x89 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x2 bhi _0805CD72 b _0805CEA8 _0805CD72: b _0805CB6E _0805CD74: adds r0, r2, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805CD84 b _0805CEA8 _0805CD84: movs r0, 0x8 ands r0, r1 b _0805CDC4 _0805CD8A: movs r1, 0x26 ldrsh r0, [r2, r1] b _0805CDD6 _0805CD90: movs r3, 0x1E ldrsh r0, [r2, r3] b _0805CDD6 _0805CD96: movs r1, 0x1C ldrsh r0, [r2, r1] b _0805CDD6 _0805CD9C: ldrb r0, [r2, 0x6] cmp r0, 0 beq _0805CDA4 b _0805CB6E _0805CDA4: adds r0, r2, 0 adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x6 bne _0805CEA8 b _0805CB6E _0805CDB0: adds r0, r2, 0 adds r0, 0xE4 _0805CDB4: ldrb r0, [r0] _0805CDB6: cmp r0, 0x2 bne _0805CEA8 b _0805CB6E _0805CDBC: adds r0, r5, 0x4 bl CanLayTrap _0805CDC2: lsls r0, 24 _0805CDC4: cmp r0, 0 bne _0805CEA8 b _0805CB6E _0805CDCA: movs r3, 0x1E ldrsh r0, [r2, r3] _0805CDCE: cmp r0, 0x13 ble _0805CEA8 _0805CDD2: movs r1, 0x22 ldrsh r0, [r2, r1] _0805CDD6: cmp r0, 0x13 ble _0805CEA8 b _0805CB6E _0805CDDC: adds r0, r2, 0 adds r0, 0xC8 _0805CDE0: ldrb r0, [r0] cmp r0, 0x3 bne _0805CEA8 b _0805CB6E _0805CDE8: bl IsBossBattle _0805CDEC: lsls r0, 24 _0805CDEE: cmp r0, 0 beq _0805CEA8 b _0805CB6E _0805CDF4: adds r0, r2, 0 adds r0, 0xC4 _0805CDF8: ldrb r0, [r0] cmp r0, 0xC bne _0805CEA8 b _0805CB6E _0805CE00: ldrb r0, [r2, 0x6] cmp r0, 0 beq _0805CE5C movs r6, 0 _0805CE08: ldr r0, _0805CE54 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805CE58 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805CE46 cmp r4, r5 beq _0805CE46 adds r0, r5, 0 adds r1, r4, 0 bl CanSee lsls r0, 24 cmp r0, 0 beq _0805CE46 ldr r1, [r4, 0x70] movs r3, 0x1C ldrsh r0, [r1, r3] cmp r0, 0x13 bgt _0805CE46 movs r2, 0x1E ldrsh r0, [r1, r2] cmp r0, 0x13 ble _0805CE4C _0805CE46: adds r6, 0x1 cmp r6, 0xF ble _0805CE08 _0805CE4C: cmp r6, 0x10 bne _0805CEA8 b _0805CB6E .align 2, 0 _0805CE54: .4byte gDungeonGlobalData _0805CE58: .4byte 0x0001358c _0805CE5C: movs r6, 0 _0805CE5E: ldr r0, _0805CEB0 ldr r0, [r0] lsls r1, r6, 2 ldr r3, _0805CEB4 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805CE9C cmp r4, r5 beq _0805CE9C adds r0, r5, 0 adds r1, r4, 0 bl CanSee lsls r0, 24 cmp r0, 0 beq _0805CE9C ldr r1, [r4, 0x70] movs r2, 0x1C ldrsh r0, [r1, r2] cmp r0, 0x13 bgt _0805CE9C movs r3, 0x1E ldrsh r0, [r1, r3] cmp r0, 0x13 ble _0805CEA2 _0805CE9C: adds r6, 0x1 cmp r6, 0x3 ble _0805CE5E _0805CEA2: cmp r6, 0x4 bne _0805CEA8 b _0805CB6E _0805CEA8: movs r0, 0x1 _0805CEAA: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805CEB0: .4byte gDungeonGlobalData _0805CEB4: .4byte 0x0001357c thumb_func_end CanUseWithStatusChecker thumb_func_start CanUseWithStatusChecker_2 CanUseWithStatusChecker_2: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 adds r6, r1, 0 adds r7, r2, 0 ldr r5, [r0, 0x70] ldr r4, [r6, 0x70] adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x1 bne _0805CEE0 adds r0, r7, 0 bl MoveCannotHitFrozen lsls r0, 24 cmp r0, 0 beq _0805CEE0 b _0805D540 _0805CEE0: ldrh r0, [r7, 0x2] subs r2, r0, 0x3 ldr r0, _0805CEF8 cmp r2, r0 bls _0805CEEE bl _0805D802 _0805CEEE: lsls r0, r2, 2 ldr r1, _0805CEFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805CEF8: .4byte 0x0000017b _0805CEFC: .4byte _0805CF00 .align 2, 0 _0805CF00: .4byte _0805D4FA .4byte _0805D4F0 .4byte _0805D50E .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D516 .4byte _0805D51C .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D520 .4byte _0805D802 .4byte _0805D802 .4byte _0805D52C .4byte _0805D532 .4byte _0805D544 .4byte _0805D55A .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D566 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D56A .4byte _0805D4F0 .4byte _0805D570 .4byte _0805D802 .4byte _0805D57E .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D584 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D596 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D59C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5D0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5E2 .4byte _0805D4F0 .4byte _0805D5E8 .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D5FE .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D55A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D662 .4byte _0805D802 .4byte _0805D802 .4byte _0805D668 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5DC .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7AC .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D70A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D5F8 .4byte _0805D802 .4byte _0805D7E4 .4byte _0805D7DC .4byte _0805D802 .4byte _0805D7E4 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D716 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D740 .4byte _0805D802 .4byte _0805D802 .4byte _0805D74A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5DC .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D4F0 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D75C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D734 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D782 .4byte _0805D740 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D704 .4byte _0805D7F6 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D5C8 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7A0 .4byte _0805D7CA .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D78A .4byte _0805D59C .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7BE .4byte _0805D7AC .4byte _0805D802 .4byte _0805D794 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D55A .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D802 .4byte _0805D782 .4byte _0805D802 .4byte _0805D802 .4byte _0805D7F6 _0805D4F0: adds r0, r6, 0 bl IsSleeping lsls r0, 24 b _0805D7A6 _0805D4FA: adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x4 beq _0805D540 adds r0, r6, 0 bl IsSleeping lsls r0, 24 b _0805D7A6 _0805D50E: adds r0, r4, 0 adds r0, 0xA8 ldrb r0, [r0] b _0805D7F0 _0805D516: movs r1, 0x26 ldrsh r0, [r4, r1] b _0805D744 _0805D51C: ldr r0, [r4, 0x2C] b _0805D58E _0805D520: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x6 beq _0805D540 b _0805D7AC _0805D52C: movs r3, 0xE ldrsh r0, [r4, r3] b _0805D78E _0805D532: movs r7, 0xE ldrsh r1, [r4, r7] movs r2, 0xE ldrsh r0, [r5, r2] cmp r1, r0 ble _0805D540 b _0805D802 _0805D540: movs r0, 0 b _0805D804 _0805D544: movs r3, 0x8C lsls r3, 1 adds r4, r3 adds r0, r4, 0 bl HasDisabledMove lsls r0, 24 cmp r0, 0 bne _0805D540 adds r0, r4, 0 b _0805D7B2 _0805D55A: ldr r0, [r6, 0x70] movs r7, 0x82 lsls r7, 1 adds r0, r7 ldr r0, [r0] b _0805D744 _0805D566: ldr r0, [r4, 0x34] b _0805D58E _0805D56A: movs r1, 0x22 ldrsh r0, [r4, r1] b _0805D744 _0805D570: movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 bl LastMoveOutOfPP lsls r0, 24 b _0805D7A6 _0805D57E: adds r0, r4, 0 adds r0, 0xDC b _0805D7FA _0805D584: ldr r0, [r4, 0x2C] cmp r0, 0x3E ble _0805D58C b _0805D802 _0805D58C: ldr r0, [r4, 0x30] _0805D58E: cmp r0, 0x3E ble _0805D594 b _0805D802 _0805D594: b _0805D540 _0805D596: adds r0, r4, 0 adds r0, 0xAC b _0805D798 _0805D59C: adds r0, r4, 0 adds r0, 0x5C ldrb r0, [r0] cmp r0, 0xE beq _0805D5B0 adds r0, r4, 0 adds r0, 0x5D ldrb r0, [r0] cmp r0, 0xE bne _0805D5BC _0805D5B0: adds r0, r4, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0805D5BC b _0805D802 _0805D5BC: movs r3, 0x26 ldrsh r0, [r4, r3] cmp r0, 0xA ble _0805D5C6 b _0805D802 _0805D5C6: b _0805D540 _0805D5C8: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] b _0805D7D6 _0805D5D0: movs r7, 0xE ldrsh r0, [r4, r7] movs r2, 0xE ldrsh r1, [r5, r2] subs r0, r1 b _0805D744 _0805D5DC: movs r3, 0x20 ldrsh r0, [r4, r3] b _0805D744 _0805D5E2: movs r7, 0x22 ldrsh r0, [r4, r7] b _0805D744 _0805D5E8: movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0 ble _0805D5F2 b _0805D802 _0805D5F2: movs r2, 0x20 ldrsh r0, [r4, r2] b _0805D744 _0805D5F8: adds r0, r4, 0 adds r0, 0xB0 b _0805D7FA _0805D5FE: movs r6, 0 adds r2, r4, 0 adds r2, 0x1C movs r3, 0x1C ldrsh r0, [r4, r3] cmp r0, 0x9 ble _0805D6FC adds r1, r4, 0 adds r1, 0x20 movs r7, 0x20 ldrsh r0, [r4, r7] cmp r0, 0x9 ble _0805D6FC adds r3, r1, 0 movs r5, 0 _0805D61C: adds r0, r4, 0 adds r0, 0x24 adds r0, r5 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x9 ble _0805D6FC lsls r1, r6, 2 adds r0, r4, 0 adds r0, 0x2C adds r0, r1 ldr r0, [r0] cmp r0, 0xFF ble _0805D6FC adds r0, r4, 0 adds r0, 0x34 adds r0, r1 ldr r0, [r0] cmp r0, 0xFF ble _0805D6FC adds r3, 0x2 adds r2, 0x2 adds r5, 0x2 adds r6, 0x1 cmp r6, 0x1 bgt _0805D6FC movs r7, 0 ldrsh r0, [r2, r7] cmp r0, 0x9 ble _0805D6FC movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0x9 bgt _0805D61C b _0805D6FC _0805D662: adds r0, r4, 0 adds r0, 0xA8 b _0805D7FA _0805D668: movs r6, 0 adds r3, r5, 0 adds r3, 0x1C adds r2, r4, 0 adds r2, 0x1C movs r7, 0x1C ldrsh r1, [r5, r7] movs r7, 0x1C ldrsh r0, [r4, r7] cmp r1, r0 blt _0805D6FC mov r12, r2 mov r8, r3 movs r3, 0 _0805D684: adds r1, r5, 0 adds r1, 0x20 adds r1, r3 adds r0, r4, 0 adds r0, 0x20 adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r7, 0 ldrsh r0, [r0, r7] cmp r1, r0 blt _0805D6FC adds r1, r5, 0 adds r1, 0x24 adds r1, r3 adds r0, r4, 0 adds r0, 0x24 adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r7, 0 ldrsh r0, [r0, r7] cmp r1, r0 blt _0805D6FC lsls r2, r6, 2 adds r1, r5, 0 adds r1, 0x2C adds r1, r2 adds r0, r4, 0 adds r0, 0x2C adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 blt _0805D6FC adds r1, r5, 0 adds r1, 0x34 adds r1, r2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 blt _0805D6FC movs r0, 0x2 add r12, r0 add r8, r0 adds r3, 0x2 adds r6, 0x1 cmp r6, 0x1 bgt _0805D6FC mov r2, r8 movs r7, 0 ldrsh r1, [r2, r7] mov r2, r12 movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _0805D684 _0805D6FC: cmp r6, 0x2 beq _0805D702 b _0805D802 _0805D702: b _0805D540 _0805D704: movs r1, 0x24 ldrsh r0, [r4, r1] b _0805D744 _0805D70A: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x5 bne _0805D802 b _0805D540 _0805D716: adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0805D728 b _0805D540 _0805D728: adds r0, r4, 0 adds r0, 0x60 ldrb r1, [r0] adds r0, r2, 0 ands r0, r1 b _0805D7B8 _0805D734: adds r0, r4, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 b _0805D7B8 _0805D740: movs r2, 0x1C ldrsh r0, [r4, r2] _0805D744: cmp r0, 0 bgt _0805D802 b _0805D540 _0805D74A: adds r0, r5, 0 adds r0, 0x5E adds r1, r4, 0 adds r1, 0x5E ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bne _0805D802 b _0805D540 _0805D75C: mov r0, r8 movs r1, 0xE bl HasType lsls r0, 24 cmp r0, 0 beq _0805D770 adds r0, r4, 0 adds r0, 0xC8 b _0805D798 _0805D770: movs r3, 0x1C ldrsh r0, [r5, r3] cmp r0, 0x13 ble _0805D802 movs r7, 0x20 ldrsh r0, [r5, r7] cmp r0, 0x13 ble _0805D802 b _0805D540 _0805D782: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] b _0805D7F0 _0805D78A: movs r1, 0xE ldrsh r0, [r4, r1] _0805D78E: cmp r0, 0x1 bgt _0805D802 b _0805D540 _0805D794: adds r0, r4, 0 adds r0, 0xD0 _0805D798: ldrb r0, [r0] cmp r0, 0x1 bne _0805D802 b _0805D540 _0805D7A0: adds r0, r4, 0 adds r0, 0xFD ldrb r0, [r0] _0805D7A6: cmp r0, 0 beq _0805D802 b _0805D540 _0805D7AC: movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 _0805D7B2: bl HasLastUsedMove lsls r0, 24 _0805D7B8: cmp r0, 0 bne _0805D802 b _0805D540 _0805D7BE: adds r0, r4, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x7 bne _0805D802 b _0805D540 _0805D7CA: adds r0, r4, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x3 bne _0805D7D6 b _0805D540 _0805D7D6: cmp r0, 0x4 bne _0805D802 b _0805D540 _0805D7DC: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] b _0805D7F0 _0805D7E4: adds r0, r4, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x2 bne _0805D7F0 b _0805D540 _0805D7F0: cmp r0, 0x3 bne _0805D802 b _0805D540 _0805D7F6: adds r0, r4, 0 adds r0, 0xBC _0805D7FA: ldrb r0, [r0] cmp r0, 0x2 bne _0805D802 b _0805D540 _0805D802: movs r0, 0x1 _0805D804: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end CanUseWithStatusChecker_2 thumb_func_start HasDisabledMove HasDisabledMove: push {r4-r6,lr} adds r4, r0, 0 movs r3, 0 movs r6, 0x1 movs r5, 0x20 adds r2, r4, 0 _0805D81C: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805D82E adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805D848 _0805D82E: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D81C adds r0, r4, 0 adds r0, 0x20 ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0805D848 movs r0, 0 b _0805D84A _0805D848: movs r0, 0x1 _0805D84A: pop {r4-r6} pop {r1} bx r1 thumb_func_end HasDisabledMove thumb_func_start LastMoveOutOfPP LastMoveOutOfPP: push {r4,r5,lr} movs r3, 0 movs r5, 0x1 adds r2, r0, 0 movs r4, 0x10 _0805D85A: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0805D876 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805D876 ldrb r0, [r2, 0x4] cmp r0, 0 bne _0805D876 movs r0, 0x1 b _0805D880 _0805D876: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D85A movs r0, 0 _0805D880: pop {r4,r5} pop {r1} bx r1 thumb_func_end LastMoveOutOfPP thumb_func_start HasLastUsedMove HasLastUsedMove: push {r4-r6,lr} adds r4, r0, 0 movs r3, 0 movs r6, 0x1 movs r5, 0x10 adds r2, r4, 0 _0805D894: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0805D8A6 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805D8C0 _0805D8A6: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805D894 adds r0, r4, 0 adds r0, 0x20 ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0805D8C0 movs r0, 0 b _0805D8C2 _0805D8C0: movs r0, 0x1 _0805D8C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end HasLastUsedMove thumb_func_start sub_805D8C8 sub_805D8C8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r4, _0805D90C ldr r1, [r4] ldr r0, _0805D910 adds r0, r1, r0 str r0, [sp, 0x10] movs r2, 0x3 str r2, [sp, 0xC] movs r5, 0 movs r0, 0 strh r0, [r1, 0x12] bl GetLeaderEntity movs r1, 0x1 bl sub_806A2BC bl GetLeaderEntity bl sub_80701A4 lsls r0, 24 cmp r0, 0 beq _0805D928 movs r0, 0x3C movs r1, 0x10 bl sub_803E708 bl _0805E2B0 .align 2, 0 _0805D90C: .4byte gDungeonGlobalData _0805D910: .4byte 0x000181e8 _0805D914: mov r1, r8 adds r1, 0x44 movs r2, 0 movs r0, 0x2 strh r0, [r1] mov r0, r8 adds r0, 0x48 strb r2, [r0] bl _0805E2B0 _0805D928: ldr r0, [r4] ldr r3, _0805D9D4 adds r0, r3 strb r5, [r0] bl sub_8040A78 ldr r1, [r4] ldrb r0, [r1, 0x1] cmp r0, 0 beq _0805D976 strb r5, [r1, 0x1] bl GetLeaderEntity movs r1, 0x1 bl ShouldAvoidEnemiesAndShowEffect lsls r0, 24 cmp r0, 0 bne _0805D976 movs r0, 0x1 bl sub_8044C10 bl sub_805E804 bl GetLeaderEntity bl sub_80647F0 bl ResetRepeatTimers bl ResetUnusedInputStruct bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _0805D976 bl _0805E2B0 _0805D976: movs r0, 0x1 movs r1, 0x1 movs r2, 0x1 bl sub_806A914 _0805D980: bl GetLeaderEntity mov r10, r0 ldr r5, [r0, 0x70] mov r8, r5 movs r1, 0x2 ldrsh r0, [r5, r1] bl sub_80978C8 ldr r2, _0805D9D8 ldr r0, [r2] ldr r3, _0805D9DC adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _0805D9AE bl sub_805E874 lsls r0, 24 cmp r0, 0 bne _0805D914 bl sub_805E804 _0805D9AE: ldr r0, _0805D9E0 movs r1, 0 strb r1, [r0] ldr r0, _0805D9E4 strb r1, [r0] ldr r5, _0805D9D8 ldr r0, [r5] movs r1, 0xB8 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0805D9CA b _0805DAE8 _0805D9CA: ldr r0, _0805D9E8 ands r6, r0 movs r2, 0x1 orrs r6, r2 b _0805DAEC .align 2, 0 _0805D9D4: .4byte 0x00000673 _0805D9D8: .4byte gDungeonGlobalData _0805D9DC: .4byte 0x0000066c _0805D9E0: .4byte gUnknown_202F22D _0805D9E4: .4byte gUnknown_202F22C _0805D9E8: .4byte 0xffffff00 _0805D9EC: movs r0, 0x1 bl sub_8044C50 ldr r3, _0805DA00 ldr r0, [r3] ldr r5, _0805DA04 adds r0, r5 strb r4, [r0] b _0805E1AE .align 2, 0 _0805DA00: .4byte gDungeonGlobalData _0805DA04: .4byte 0x00000673 _0805DA08: ldr r0, _0805DA14 ldr r1, [r0] mov r0, r10 bl SendMessage b _0805DBDA .align 2, 0 _0805DA14: .4byte gUnknown_80FD4B0 _0805DA18: ldr r0, _0805DA1C b _0805DCBC .align 2, 0 _0805DA1C: .4byte gUnknown_80F8A28 _0805DA20: ldr r0, [sp, 0x1C] movs r1, 0x17 bl SetAction b _0805E1AE _0805DA2A: ldr r0, _0805DA38 ands r6, r0 movs r3, 0x1 orrs r6, r3 ldr r0, _0805DA3C ands r6, r0 b _0805DAD6 .align 2, 0 _0805DA38: .4byte 0xffffff00 _0805DA3C: .4byte 0xffff00ff _0805DA40: ldr r5, _0805DA58 ldr r0, [r5] movs r2, 0xB8 lsls r2, 3 adds r0, r2 str r1, [r0] ldr r0, _0805DA5C ands r6, r0 movs r3, 0x1 orrs r6, r3 b _0805DAA8 .align 2, 0 _0805DA58: .4byte gDungeonGlobalData _0805DA5C: .4byte 0xffffff00 _0805DA60: ldr r5, _0805DA78 ldr r0, [r5] movs r1, 0xB8 lsls r1, 3 adds r0, r1 movs r2, 0x1 str r2, [r0] ldr r0, _0805DA7C ands r6, r0 orrs r6, r2 b _0805DAA8 .align 2, 0 _0805DA78: .4byte gDungeonGlobalData _0805DA7C: .4byte 0xffffff00 _0805DA80: ldr r3, _0805DA98 ldr r0, [r3] movs r5, 0xB8 lsls r5, 3 adds r0, r5 str r2, [r0] ldr r0, _0805DA9C ands r6, r0 movs r0, 0x1 orrs r6, r0 b _0805DAA8 .align 2, 0 _0805DA98: .4byte gDungeonGlobalData _0805DA9C: .4byte 0xffffff00 _0805DAA0: ldr r0, _0805DAB8 ands r6, r0 movs r1, 0x1 orrs r6, r1 _0805DAA8: ldr r0, _0805DABC ands r6, r0 ldr r0, _0805DAC0 ands r6, r0 movs r0, 0x80 lsls r0, 9 orrs r6, r0 b _0805E1AE .align 2, 0 _0805DAB8: .4byte 0xffffff00 _0805DABC: .4byte 0xffff00ff _0805DAC0: .4byte 0xff00ffff _0805DAC4: ldr r0, _0805DADC ands r6, r0 movs r2, 0x1 orrs r6, r2 ldr r0, _0805DAE0 ands r6, r0 movs r0, 0x80 lsls r0, 1 orrs r6, r0 _0805DAD6: ldr r0, _0805DAE4 ands r6, r0 b _0805E1AE .align 2, 0 _0805DADC: .4byte 0xffffff00 _0805DAE0: .4byte 0xffff00ff _0805DAE4: .4byte 0xff00ffff _0805DAE8: ldr r0, _0805DB3C ands r6, r0 _0805DAEC: ldr r0, _0805DB40 ands r6, r0 ldr r0, _0805DB44 ands r6, r0 movs r3, 0 str r3, [sp, 0x8] movs r0, 0 bl sub_8044C50 ldr r0, _0805DB48 mov r5, sp ldrb r5, [r5, 0x8] strb r5, [r0] ldr r0, _0805DB4C mov r1, sp ldrb r1, [r1, 0x8] strb r1, [r0] lsls r0, r6, 24 mov r2, r8 adds r2, 0x44 str r2, [sp, 0x1C] str r0, [sp, 0x14] ldr r3, [sp, 0x10] adds r3, 0x32 str r3, [sp, 0x18] cmp r0, 0 beq _0805DB24 b _0805E1AE _0805DB24: ldr r0, _0805DB50 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] ldr r5, [sp, 0x18] ldrb r0, [r5] cmp r0, 0 beq _0805DB54 movs r0, 0 str r0, [sp, 0x8] b _0805DB5A .align 2, 0 _0805DB3C: .4byte 0xffffff00 _0805DB40: .4byte 0xffff00ff _0805DB44: .4byte 0xff00ffff _0805DB48: .4byte gUnknown_202F230 _0805DB4C: .4byte gUnknown_202F231 _0805DB50: .4byte gUnknown_202F22E _0805DB54: ldr r1, [sp, 0x8] adds r1, 0x1 str r1, [sp, 0x8] _0805DB5A: ldr r2, [sp, 0xC] cmp r2, 0 beq _0805DB6E subs r2, 0x1 str r2, [sp, 0xC] cmp r2, 0 bne _0805DB6E movs r0, 0 bl sub_8075680 _0805DB6E: mov r0, r10 bl sub_805E2C4 movs r7, 0 movs r1, 0 add r0, sp, 0x4 _0805DB7A: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _0805DB7A ldr r0, _0805DBEC ldrh r1, [r0] movs r4, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DBAA movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DBAA movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0 beq _0805DBAA b _0805D9EC _0805DBAA: movs r3, 0 mov r9, r3 ldr r4, _0805DBEC ldrh r1, [r4, 0x2] movs r5, 0x1 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805DBBE b _0805DD02 _0805DBBE: ldrh r1, [r4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DBF8 movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0 bne _0805DBDA b _0805DD02 _0805DBDA: movs r0, 0x1 bl sub_8044C50 ldr r1, _0805DBF0 ldr r0, [r1] ldr r2, _0805DBF4 adds r0, r2 strb r5, [r0] b _0805E1AE .align 2, 0 _0805DBEC: .4byte gRealInputs _0805DBF0: .4byte gDungeonGlobalData _0805DBF4: .4byte 0x00000673 _0805DBF8: mov r0, r10 movs r1, 0x1 bl ShouldAvoidEnemiesAndShowEffect lsls r0, 24 cmp r0, 0 beq _0805DC08 b _0805DA08 _0805DC08: ldrh r0, [r4] movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _0805DCE8 movs r4, 0 movs r2, 0x8C lsls r2, 1 add r2, r8 movs r3, 0x8 _0805DC20: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DC32 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805DC3A _0805DC32: adds r2, 0x8 adds r4, 0x1 cmp r4, 0x3 ble _0805DC20 _0805DC3A: cmp r4, 0x4 bne _0805DC40 b _0805DA18 _0805DC40: movs r3, 0 movs r5, 0x8C lsls r5, 1 movs r7, 0x1 mov r2, r8 _0805DC4A: lsls r0, r3, 3 add r0, r8 adds r0, r5 ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0805DC66 movs r1, 0x8E lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _0805DC6E _0805DC66: adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 ble _0805DC4A _0805DC6E: cmp r3, 0x4 bne _0805DC74 b _0805DA20 _0805DC74: movs r7, 0 adds r3, r4, 0 cmp r4, 0x3 bgt _0805DCB6 lsls r0, r4, 3 adds r2, r0, 0 add r2, r8 mov r12, r2 movs r5, 0x8E lsls r5, 1 adds r0, r5 mov r1, r8 adds r2, r0, r1 movs r5, 0x2 _0805DC90: ldrb r0, [r2] cmp r0, 0 bne _0805DCCC movs r0, 0x8 add r12, r0 adds r2, 0x8 adds r3, 0x1 cmp r3, 0x3 bgt _0805DCB6 cmp r3, r4 beq _0805DC90 movs r0, 0x8C lsls r0, 1 add r0, r12 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0805DC90 _0805DCB6: cmp r7, 0 bne _0805DCCC ldr r0, _0805DCC8 _0805DCBC: ldr r1, [r0] mov r0, r10 bl SendMessage b _0805E1AE .align 2, 0 _0805DCC8: .4byte gUnknown_80F8A4C _0805DCCC: ldr r0, [sp, 0x1C] movs r1, 0x14 bl SetAction mov r0, r10 bl sub_8045B60 mov r1, r8 adds r1, 0x48 strb r0, [r1] mov r0, r8 adds r0, 0x50 strb r4, [r0] b _0805E1AE _0805DCE8: mov r0, r10 mov r1, r8 bl sub_805EF60 lsls r0, 24 cmp r0, 0 beq _0805DCF8 b _0805E1AE _0805DCF8: ldr r0, [sp, 0x1C] movs r1, 0x32 bl SetAction b _0805E1AE _0805DD02: ldr r3, _0805DDC8 ldrh r1, [r3, 0x6] movs r2, 0x2 adds r0, r2, 0 ands r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0805DD16 b _0805DA2A _0805DD16: mov r0, sp ldrb r0, [r0, 0x1] cmp r0, 0 beq _0805DD20 b _0805DA40 _0805DD20: mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _0805DD2A b _0805DA60 _0805DD2A: mov r0, sp ldrb r0, [r0, 0x3] cmp r0, 0 beq _0805DD34 b _0805DA80 _0805DD34: mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0 beq _0805DD3E b _0805DAA0 _0805DD3E: ldr r0, _0805DDCC ldr r1, [sp, 0x8] cmp r1, r0 ble _0805DD48 b _0805DAC4 _0805DD48: ldr r0, _0805DDD0 ldr r0, [r0] ldrb r4, [r0, 0x9] cmp r4, 0 bne _0805DD7E ldrh r1, [r3, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0805DD66 cmp r7, 0 bne _0805DD7E movs r2, 0 cmp r2, 0 beq _0805DD7E _0805DD66: ldr r3, [sp, 0x18] ldrb r0, [r3] cmp r0, 0 beq _0805DD7E bl sub_804AA60 ldr r0, _0805DDD4 strb r4, [r0] bl ResetRepeatTimers bl ResetUnusedInputStruct _0805DD7E: ldr r2, _0805DDC8 ldrh r0, [r2] movs r5, 0x80 lsls r5, 2 adds r1, r5, 0 ands r0, r1 cmp r0, 0 beq _0805DDA4 ldrh r1, [r2, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DDA4 bl sub_80532B4 bl ResetRepeatTimers bl ResetUnusedInputStruct _0805DDA4: movs r4, 0 ldr r0, _0805DDC8 ldrh r0, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0805DDFA ldr r1, _0805DDD8 ldrb r0, [r1] cmp r0, 0 bne _0805DDC2 ldr r0, _0805DDDC strh r4, [r0] _0805DDC2: movs r3, 0x1 strb r3, [r1] b _0805DDFE .align 2, 0 _0805DDC8: .4byte gRealInputs _0805DDCC: .4byte 0x00000707 _0805DDD0: .4byte gUnknown_203B46C _0805DDD4: .4byte gUnknown_202F22D _0805DDD8: .4byte gUnknown_202F22C _0805DDDC: .4byte gUnknown_202F22E _0805DDE0: movs r0, 0xB bl sub_8044C50 adds r2, r4, 0x1 mov r0, r8 adds r0, 0x48 movs r1, 0 strb r2, [r0] adds r0, 0x4 strh r1, [r0] adds r0, 0x2 strh r1, [r0] b _0805DE92 _0805DDFA: ldr r0, _0805DEF8 strb r4, [r0] _0805DDFE: movs r3, 0 ldr r0, _0805DEFC ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0 bne _0805DE2C ldr r2, _0805DF00 ldrh r0, [r2, 0x6] movs r5, 0x80 lsls r5, 1 adds r1, r5, 0 ands r0, r1 cmp r0, 0 bne _0805DE2A mov r0, r9 cmp r0, 0 bne _0805DE2A ldrh r1, [r2, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805DE2C _0805DE2A: movs r3, 0x1 _0805DE2C: cmp r3, 0 beq _0805DE54 mov r0, r10 bl sub_805E738 ldr r0, _0805DF04 movs r1, 0x1 strb r1, [r0] mov r0, r8 adds r0, 0x46 ldrb r0, [r0] ldr r1, [sp, 0x10] adds r1, 0x33 strb r0, [r1] ldr r1, [sp, 0x10] adds r1, 0x34 movs r0, 0xFF strb r0, [r1] bl ResetRepeatTimers _0805DE54: ldr r0, _0805DF00 ldr r1, [r0] ldr r0, _0805DF08 ands r1, r0 cmp r1, r0 bne _0805DE62 movs r4, 0x1 _0805DE62: mov r0, sp ldrb r0, [r0] cmp r0, 0 beq _0805DE6C movs r4, 0x1 _0805DE6C: cmp r4, 0 beq _0805DE9C movs r4, 0 ldr r0, _0805DF0C ldr r2, [r0] movs r3, 0x10 _0805DE78: ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DE8A adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _0805DDE0 _0805DE8A: adds r2, 0x4 adds r4, 0x1 cmp r4, 0x13 ble _0805DE78 _0805DE92: ldr r2, [sp, 0x1C] ldrh r0, [r2] cmp r0, 0 beq _0805DE9C b _0805E1AE _0805DE9C: ldr r5, _0805DF10 ldr r3, [r5] ldr r1, _0805DF14 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _0805DF82 ldr r0, _0805DEFC ldr r2, [r0] ldrb r0, [r2, 0x4] cmp r0, 0x6 beq _0805DF82 ldr r0, _0805DF00 ldrh r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805DF82 ldrb r4, [r2, 0x4] ldr r0, _0805DF18 movs r2, 0x1 strb r2, [r0] ldr r5, _0805DF1C adds r0, r3, r5 strb r2, [r0] bl sub_8094C48 lsls r0, 24 cmp r0, 0 bne _0805DEDC bl sub_8094C88 _0805DEDC: movs r0, 0x1 bl sub_8052210 bl sub_8040A84 movs r0, 0x1E bl SetBGOBJEnableFlags movs r0, 0xA movs r1, 0x2F bl sub_803E708 b _0805DF3A .align 2, 0 _0805DEF8: .4byte gUnknown_202F22C _0805DEFC: .4byte gUnknown_203B46C _0805DF00: .4byte gRealInputs _0805DF04: .4byte gUnknown_202F22D _0805DF08: .4byte 0x01000200 _0805DF0C: .4byte gTeamInventory_203B460 _0805DF10: .4byte gDungeonGlobalData _0805DF14: .4byte 0x0001820a _0805DF18: .4byte gUnknown_202EE00 _0805DF1C: .4byte 0x00018214 _0805DF20: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805DF3A ldr r2, _0805DFA0 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _0805DF34 movs r1, 0x1 _0805DF34: strb r1, [r2] bl sub_8040A84 _0805DF3A: movs r0, 0x2F bl sub_803E46C ldr r0, _0805DFA4 ldrh r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0805DF54 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805DF20 _0805DF54: ldr r1, _0805DFA8 ldr r0, [r1] ldr r2, _0805DFAC adds r0, r2 movs r1, 0 strb r1, [r0] ldr r0, _0805DFB0 ldr r0, [r0] strb r4, [r0, 0x4] ldr r0, _0805DFA0 movs r3, 0x1 strb r3, [r0] bl sub_8040A84 movs r0, 0 bl SetBGOBJEnableFlags movs r0, 0x2F bl sub_803E46C movs r0, 0x2F bl sub_803E46C _0805DF82: ldr r5, _0805DFA8 ldr r0, [r5] ldr r1, _0805DFB4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805DFBC ldr r0, _0805DFB8 ldrb r0, [r0] cmp r0, 0 bne _0805DFBC ldr r0, _0805DFA4 ldrh r2, [r0, 0x2] adds r1, r2, 0 b _0805DFCC .align 2, 0 _0805DFA0: .4byte gUnknown_202EE00 _0805DFA4: .4byte gRealInputs _0805DFA8: .4byte gDungeonGlobalData _0805DFAC: .4byte 0x00018214 _0805DFB0: .4byte gUnknown_203B46C _0805DFB4: .4byte 0x0000066d _0805DFB8: .4byte gUnknown_202F22C _0805DFBC: ldr r3, _0805E05C ldrh r1, [r3] ldr r2, [sp, 0x18] ldrb r0, [r2] adds r2, r1, 0 cmp r0, 0 beq _0805DFCC ldrh r2, [r3, 0x2] _0805DFCC: movs r0, 0xF0 ands r1, r0 ands r2, r0 movs r5, 0x1 negs r5, r5 cmp r1, 0x50 bne _0805DFDC movs r5, 0x3 _0805DFDC: cmp r1, 0x60 bne _0805DFE2 movs r5, 0x5 _0805DFE2: cmp r1, 0x90 bne _0805DFE8 movs r5, 0x1 _0805DFE8: cmp r1, 0xA0 bne _0805DFEE movs r5, 0x7 _0805DFEE: cmp r2, 0x40 bne _0805DFF4 movs r5, 0x4 _0805DFF4: cmp r2, 0x80 bne _0805DFFA movs r5, 0 _0805DFFA: cmp r2, 0x10 bne _0805E000 movs r5, 0x2 _0805E000: cmp r2, 0x20 bne _0805E006 movs r5, 0x6 _0805E006: cmp r5, 0 bge _0805E00C b _0805E1A0 _0805E00C: ldr r0, _0805E060 ldrb r0, [r0] cmp r0, 0 beq _0805E020 adds r0, r5, 0 movs r3, 0x1 ands r0, r3 cmp r0, 0 bne _0805E020 b _0805E1A0 _0805E020: mov r2, r8 adds r2, 0x46 ldrb r1, [r2] eors r1, r5 negs r0, r1 orrs r0, r1 lsrs r7, r0, 31 movs r1, 0x7 adds r0, r5, 0 ands r0, r1 strb r0, [r2] ldr r0, _0805E064 ldrb r0, [r0] cmp r0, 0 beq _0805E068 ldr r0, [sp, 0x10] adds r0, 0x33 strb r5, [r0] mov r0, r10 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r10 adds r2, r5, 0 bl sub_806CDD4 b _0805E1A0 .align 2, 0 _0805E05C: .4byte gRealInputs _0805E060: .4byte gUnknown_202F22C _0805E064: .4byte gUnknown_202F22D _0805E068: movs r4, 0 movs r3, 0 mov r0, r10 movs r1, 0x1 str r3, [sp, 0x20] bl sub_805EC4C lsls r0, 24 ldr r3, [sp, 0x20] cmp r0, 0 beq _0805E080 b _0805E1AE _0805E080: mov r0, r8 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 bne _0805E094 ldr r0, _0805E090 b _0805E0BE .align 2, 0 _0805E090: .4byte gUnknown_80F8A84 _0805E094: cmp r0, 0x7 bne _0805E0A0 ldr r0, _0805E09C b _0805E0BE .align 2, 0 _0805E09C: .4byte gUnknown_80F8A6C _0805E0A0: cmp r0, 0x5 bne _0805E0AC ldr r0, _0805E0A8 b _0805E0BE .align 2, 0 _0805E0A8: .4byte gUnknown_80F8AB0 _0805E0AC: cmp r0, 0x3 bne _0805E0B8 ldr r0, _0805E0B4 b _0805E0BE .align 2, 0 _0805E0B4: .4byte gUnknown_80F8ADC _0805E0B8: cmp r0, 0x4 bne _0805E0C2 ldr r0, _0805E128 _0805E0BE: ldr r3, [r0] movs r4, 0x1 _0805E0C2: mov r0, r10 adds r1, r5, 0 str r3, [sp, 0x20] bl CanMoveInDirection lsls r0, 24 ldr r3, [sp, 0x20] cmp r0, 0 bne _0805E0D8 movs r0, 0x2 orrs r4, r0 _0805E0D8: cmp r7, 0 beq _0805E0F4 mov r0, r10 str r3, [sp, 0x20] bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r10 adds r2, r5, 0 bl sub_806CDD4 ldr r3, [sp, 0x20] _0805E0F4: movs r7, 0x2 adds r0, r4, 0 ands r0, r7 cmp r0, 0 bne _0805E192 movs r5, 0x1 mov r9, r5 ands r5, r4 cmp r5, 0 beq _0805E134 cmp r3, 0 beq _0805E114 mov r0, r10 adds r1, r3, 0 bl SendMessage _0805E114: movs r0, 0x1 bl sub_8044C50 ldr r1, _0805E12C ldr r0, [r1] ldr r2, _0805E130 adds r0, r2 mov r3, r9 strb r3, [r0] b _0805E1AE .align 2, 0 _0805E128: .4byte gUnknown_80F8B0C _0805E12C: .4byte gDungeonGlobalData _0805E130: .4byte 0x00000673 _0805E134: movs r0, 0x2 bl sub_8044C50 ldr r0, _0805E17C ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0805E14C movs r0, 0 cmp r0, 0 beq _0805E188 _0805E14C: movs r0, 0x9E lsls r0, 1 add r0, r8 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0 beq _0805E188 mov r1, r10 ldr r0, [r1, 0x70] adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805E174 ldr r2, _0805E180 ldr r0, [r2] ldr r3, _0805E184 adds r0, r3 mov r1, r9 strb r1, [r0] _0805E174: mov r0, r8 adds r0, 0x48 strb r5, [r0] b _0805E1AE .align 2, 0 _0805E17C: .4byte gRealInputs _0805E180: .4byte gDungeonGlobalData _0805E184: .4byte 0x0000066c _0805E188: mov r0, r8 adds r0, 0x48 movs r2, 0x1 strb r2, [r0] b _0805E1AE _0805E192: movs r3, 0x1 ands r4, r3 cmp r4, 0 beq _0805E1A0 movs r0, 0x23 bl sub_803E724 _0805E1A0: movs r0, 0xF bl sub_803E46C ldr r5, [sp, 0x14] cmp r5, 0 bne _0805E1AE b _0805DB24 _0805E1AE: ldr r1, [sp, 0x18] ldrb r0, [r1] cmp r0, 0 beq _0805E1BA bl sub_804AA60 _0805E1BA: ldr r4, [sp, 0x1C] ldrh r0, [r4] cmp r0, 0x2D beq _0805E1C6 cmp r0, 0x13 bne _0805E1E0 _0805E1C6: mov r0, r10 bl sub_8067510 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _0805E2B0 movs r0, 0 bl sub_8044C50 bl _0805D980 _0805E1E0: lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E222 ldr r2, _0805E210 ldr r0, [r2] ldr r3, _0805E214 adds r0, r3 strb r1, [r0] ldrh r0, [r4] cmp r0, 0 beq _0805E218 mov r0, r10 movs r1, 0 bl IsNotAttacking lsls r0, 24 cmp r0, 0 bne _0805E2B0 movs r0, 0xF bl sub_803E46C b _0805E2B0 .align 2, 0 _0805E210: .4byte gDungeonGlobalData _0805E214: .4byte 0x0000066d _0805E218: movs r0, 0xF bl sub_803E46C bl _0805D980 _0805E222: movs r0, 0xF bl sub_803E46C bl sub_8047158 movs r2, 0 lsrs r0, r6, 8 lsls r0, 24 cmp r0, 0 bne _0805E238 movs r2, 0x1 _0805E238: lsrs r1, r6, 16 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl ShowFieldMenu bl ResetRepeatTimers bl ResetUnusedInputStruct ldr r1, _0805E294 movs r0, 0 strb r0, [r1] movs r0, 0 ldr r5, [sp, 0x18] strb r0, [r5] bl sub_804AA60 bl sub_8044B28 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E2B0 ldrh r0, [r4] cmp r0, 0 beq _0805E29C cmp r0, 0x2B bne _0805E27E ldr r2, _0805E298 ldr r0, [r2] movs r3, 0x1 strb r3, [r0, 0x4] ldr r0, [r2] strb r3, [r0, 0x3] _0805E27E: ldr r5, [sp, 0x1C] ldrh r0, [r5] cmp r0, 0x2E bne _0805E2B0 ldr r2, _0805E298 ldr r0, [r2] movs r3, 0x1 strb r3, [r0, 0x4] ldr r0, [r2] strb r1, [r0, 0x3] b _0805E2B0 .align 2, 0 _0805E294: .4byte gUnknown_202F22D _0805E298: .4byte gDungeonGlobalData _0805E29C: movs r0, 0xF bl sub_803E46C ldr r5, _0805E2C0 ldr r0, [r5] ldrb r0, [r0, 0x4] cmp r0, 0 bne _0805E2B0 bl _0805D980 _0805E2B0: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805E2C0: .4byte gDungeonGlobalData thumb_func_end sub_805D8C8 thumb_func_start sub_805E2C4 sub_805E2C4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 str r0, [sp, 0x10] ldr r0, _0805E47C ldr r1, [r0] ldr r0, _0805E480 adds r0, r1, r0 str r0, [sp, 0x14] ldr r0, _0805E484 ldrb r0, [r0] cmp r0, 0 bne _0805E2E6 b _0805E4C4 _0805E2E6: movs r1, 0 str r1, [sp, 0x18] mov r7, sp ldr r2, _0805E488 mov r10, r2 _0805E2F0: ldrh r0, [r7] ldr r3, _0805E48C adds r1, r3, 0 ands r1, r0 ldr r0, [sp] mov r4, r10 ands r0, r4 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r0, [r7] ldr r5, _0805E490 adds r1, r5, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r2, [r7] mov r1, r10 ands r1, r0 orrs r1, r2 str r1, [sp] ldrh r2, [r7] ldr r0, _0805E494 ands r0, r2 mov r3, r10 ands r3, r1 orrs r3, r0 str r3, [sp] ldrh r1, [r7] movs r0, 0x80 lsls r0, 3 orrs r0, r1 movs r6, 0 orrs r0, r6 mov r2, r10 ands r2, r3 orrs r2, r0 str r2, [sp] ldrh r0, [r7] ldr r3, _0805E498 adds r1, r3, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r0, [r7] ldr r4, _0805E49C adds r1, r4, 0 ands r1, r0 mov r0, r10 ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r1, [r7] mov r2, r10 ands r2, r0 orrs r2, r1 str r2, [sp] ldrh r1, [r7] ldr r0, _0805E4A0 ands r0, r1 mov r1, r10 ands r1, r2 orrs r1, r0 str r1, [sp] ldrh r2, [r7] mov r0, r10 ands r0, r1 orrs r0, r2 str r0, [sp] ldr r1, _0805E4A4 ldr r5, [sp, 0x18] lsls r0, r5, 3 adds r0, r1 mov r12, r0 ldrb r1, [r0, 0x4] negs r0, r1 orrs r0, r1 asrs r1, r0, 31 movs r0, 0x8 ands r1, r0 mov r6, r12 ldrb r0, [r6, 0x5] cmp r0, 0 beq _0805E3B4 adds r1, 0x10 _0805E3B4: movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r3, [r7, 0x2] ldr r2, _0805E4A8 adds r0, r2, 0 ands r3, r0 orrs r3, r1 ldr r4, _0805E4A0 ands r3, r4 strh r3, [r7, 0x2] ldr r2, _0805E4AC ldrh r0, [r7, 0x4] movs r5, 0xFC lsls r5, 8 adds r1, r5, 0 ands r0, r1 orrs r0, r2 movs r6, 0 orrs r0, r6 movs r1, 0x80 lsls r1, 4 ldr r2, _0805E494 ands r0, r2 orrs r0, r1 orrs r0, r6 ldr r4, _0805E4B0 mov r9, r4 ands r0, r4 strh r0, [r7, 0x4] ldrh r4, [r7, 0x6] ldr r5, _0805E4B4 adds r0, r5, 0 ands r4, r0 ldr r6, _0805E4B8 adds r0, r6, 0 ands r4, r0 strh r4, [r7, 0x6] mov r0, r12 movs r1, 0 ldrsh r5, [r0, r1] lsls r2, r5, 2 adds r2, r5 lsls r2, 1 ldr r6, _0805E4BC mov r8, r6 movs r1, 0 ldrsh r0, [r6, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 movs r6, 0x7 ands r0, r6 muls r0, r5 adds r0, r2 adds r0, 0x74 ldr r1, _0805E4C0 ands r0, r1 movs r2, 0xFE lsls r2, 8 adds r1, r2, 0 ands r3, r1 orrs r3, r0 strh r3, [r7, 0x2] mov r5, r12 movs r0, 0x2 ldrsh r3, [r5, r0] lsls r2, r3, 2 adds r2, r3 lsls r2, 1 mov r1, r8 movs r5, 0 ldrsh r0, [r1, r5] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 ands r0, r6 muls r0, r3 adds r0, r2 adds r0, 0x52 mov r6, r9 ands r0, r6 lsls r0, 4 movs r1, 0xF ands r4, r1 orrs r4, r0 strh r4, [r7, 0x6] mov r0, sp adds r1, 0xF1 movs r2, 0 movs r3, 0 bl AddSprite ldr r2, [sp, 0x18] adds r2, 0x1 str r2, [sp, 0x18] cmp r2, 0x3 bgt _0805E47A b _0805E2F0 _0805E47A: b _0805E6AC .align 2, 0 _0805E47C: .4byte gDungeonGlobalData _0805E480: .4byte 0x000181e8 _0805E484: .4byte gUnknown_202F22C _0805E488: .4byte 0xffff0000 _0805E48C: .4byte 0x0000feff _0805E490: .4byte 0x0000fdff _0805E494: .4byte 0x0000f3ff _0805E498: .4byte 0x0000efff _0805E49C: .4byte 0x0000dfff _0805E4A0: .4byte 0x00003fff _0805E4A4: .4byte gUnknown_8106AC8 _0805E4A8: .4byte 0x0000c1ff _0805E4AC: .4byte 0x00000213 _0805E4B0: .4byte 0x00000fff _0805E4B4: .4byte 0x0000fffe _0805E4B8: .4byte 0x0000fffd _0805E4BC: .4byte gUnknown_202F22E _0805E4C0: .4byte 0x000001ff _0805E4C4: ldr r3, _0805E6E4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0805E4D0 b _0805E6AC _0805E4D0: ldr r4, _0805E6E8 adds r0, r1, r4 ldrb r0, [r0] str r0, [sp, 0x1C] cmp r0, 0x7 bls _0805E4DE b _0805E6AC _0805E4DE: ldr r0, _0805E6EC ldrb r0, [r0] movs r7, 0x1 cmp r0, 0 beq _0805E4F2 ldr r0, _0805E6F0 ldrb r0, [r0] cmp r0, 0 beq _0805E4F2 movs r7, 0x3 _0805E4F2: ldr r5, _0805E6F4 mov r12, r5 ldr r6, [sp, 0x1C] lsls r5, r6, 1 adds r3, r5, r6 lsls r3, 2 add r3, r12 movs r0, 0 ldrsh r4, [r3, r0] lsls r1, r4, 2 adds r1, r4 lsls r1, 1 ldr r0, _0805E6F8 movs r6, 0 ldrsh r2, [r0, r6] lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 movs r0, 0x7 ands r2, r0 adds r0, r4, 0 muls r0, r2 adds r0, r1 adds r0, 0x74 str r0, [sp, 0x20] movs r1, 0x2 ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 1 muls r0, r2 adds r0, r1 adds r0, 0x52 mov r10, r0 str r5, [sp, 0x24] cmp r7, 0 bne _0805E53E b _0805E6AC _0805E53E: add r6, sp, 0x8 ldr r2, _0805E6FC mov r8, r2 mov r9, r7 _0805E546: ldrh r0, [r6] ldr r3, _0805E700 adds r1, r3, 0 ands r1, r0 ldr r0, [sp, 0x8] mov r4, r8 ands r0, r4 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r0, [r6] ldr r5, _0805E704 adds r1, r5, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r2, [r6] mov r1, r8 ands r1, r0 orrs r1, r2 str r1, [sp, 0x8] ldrh r2, [r6] ldr r0, _0805E708 ands r0, r2 mov r3, r8 ands r3, r1 orrs r3, r0 str r3, [sp, 0x8] ldrh r1, [r6] movs r0, 0x80 lsls r0, 3 orrs r0, r1 movs r1, 0 orrs r0, r1 mov r2, r8 ands r2, r3 orrs r2, r0 str r2, [sp, 0x8] ldrh r0, [r6] ldr r3, _0805E70C adds r1, r3, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r0, [r6] ldr r4, _0805E710 adds r1, r4, 0 ands r1, r0 mov r0, r8 ands r0, r2 orrs r0, r1 str r0, [sp, 0x8] ldrh r1, [r6] mov r2, r8 ands r2, r0 orrs r2, r1 str r2, [sp, 0x8] ldrh r1, [r6] ldr r0, _0805E714 ands r0, r1 mov r1, r8 ands r1, r2 orrs r1, r0 str r1, [sp, 0x8] ldrh r2, [r6] mov r0, r8 ands r0, r1 orrs r0, r2 str r0, [sp, 0x8] ldr r5, [sp, 0x24] ldr r1, [sp, 0x1C] adds r0, r5, r1 lsls r2, r0, 2 ldr r3, _0805E6F4 adds r7, r2, r3 ldrb r1, [r7, 0x8] negs r0, r1 orrs r0, r1 asrs r1, r0, 31 movs r0, 0x8 ands r1, r0 ldrb r0, [r7, 0x9] cmp r0, 0 beq _0805E60A adds r1, 0x10 _0805E60A: movs r0, 0x1F ands r1, r0 lsls r1, 9 ldrh r3, [r6, 0x2] ldr r4, _0805E718 adds r0, r4, 0 ands r3, r0 orrs r3, r1 ldr r5, _0805E714 ands r3, r5 strh r3, [r6, 0x2] ldr r1, _0805E71C adds r0, r2, r1 ldr r2, [r0] ldr r0, _0805E720 ands r2, r0 ldrh r0, [r6, 0x4] movs r4, 0xFC lsls r4, 8 adds r1, r4, 0 ands r0, r1 orrs r0, r2 movs r1, 0x80 lsls r1, 4 ldr r5, _0805E708 ands r0, r5 orrs r0, r1 movs r1, 0 orrs r0, r1 movs r2, 0xF mov r12, r2 ldr r4, _0805E724 ands r0, r4 strh r0, [r6, 0x4] ldrh r1, [r6, 0x6] ldr r5, _0805E728 adds r0, r5, 0 ands r1, r0 ldr r2, _0805E72C adds r0, r2, 0 ands r1, r0 ldr r0, _0805E730 ldr r5, [sp, 0x20] ands r0, r5 movs r5, 0xFE lsls r5, 8 adds r2, r5, 0 ands r3, r2 orrs r3, r0 strh r3, [r6, 0x2] mov r0, r10 ands r0, r4 lsls r0, 4 mov r2, r12 ands r1, r2 orrs r1, r0 strh r1, [r6, 0x6] adds r0, r6, 0 movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite movs r3, 0 ldrsh r0, [r7, r3] lsls r0, 2 ldr r4, [sp, 0x20] adds r4, r0 str r4, [sp, 0x20] movs r5, 0x2 ldrsh r0, [r7, r5] lsls r0, 2 add r10, r0 movs r0, 0x1 negs r0, r0 add r9, r0 mov r1, r9 cmp r1, 0 beq _0805E6AC b _0805E546 _0805E6AC: ldr r4, _0805E734 ldrb r0, [r4] cmp r0, 0 beq _0805E6D4 ldr r2, [sp, 0x14] adds r2, 0x34 ldr r3, [sp, 0x14] adds r3, 0x33 ldrb r1, [r3] ldrb r0, [r2] cmp r0, r1 beq _0805E6D4 strb r1, [r2] ldr r0, [sp, 0x10] adds r0, 0x4 ldrb r1, [r3] ldrb r3, [r4] movs r2, 0 bl sub_804A728 _0805E6D4: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805E6E4: .4byte 0x0001821a _0805E6E8: .4byte 0x0001821b _0805E6EC: .4byte gUnknown_202F231 _0805E6F0: .4byte gUnknown_202F230 _0805E6F4: .4byte gUnknown_8106AE8 _0805E6F8: .4byte gUnknown_202F22E _0805E6FC: .4byte 0xffff0000 _0805E700: .4byte 0x0000feff _0805E704: .4byte 0x0000fdff _0805E708: .4byte 0x0000f3ff _0805E70C: .4byte 0x0000efff _0805E710: .4byte 0x0000dfff _0805E714: .4byte 0x00003fff _0805E718: .4byte 0x0000c1ff _0805E71C: .4byte gUnknown_8106AEC _0805E720: .4byte 0x000003ff _0805E724: .4byte 0x00000fff _0805E728: .4byte 0x0000fffe _0805E72C: .4byte 0x0000fffd _0805E730: .4byte 0x000001ff _0805E734: .4byte gUnknown_202F22D thumb_func_end sub_805E2C4 thumb_func_start sub_805E738 sub_805E738: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 ldr r1, [r6, 0x70] adds r0, r1, 0 adds r0, 0xE8 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0805E7F6 movs r0, 0 mov r8, r0 adds r1, 0x46 mov r10, r1 _0805E75E: movs r1, 0 mov r9, r1 mov r3, r10 ldrb r5, [r3] adds r5, 0x1 movs r7, 0x1 _0805E76A: movs r0, 0x7 ands r5, r0 movs r1, 0x4 ldrsh r0, [r6, r1] ldr r1, _0805E7E8 lsls r2, r5, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r6, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, [r4, 0x10] cmp r0, 0 beq _0805E7B8 bl GetEntityType cmp r0, 0x1 bne _0805E7B8 ldr r1, [r4, 0x10] ldr r4, [r1, 0x70] adds r0, r6, 0 bl CanSee lsls r0, 24 cmp r0, 0 beq _0805E7B8 mov r0, r8 cmp r0, 0 bne _0805E7C6 ldrb r0, [r4, 0x6] cmp r0, 0 bne _0805E7C6 _0805E7B8: adds r7, 0x1 adds r5, 0x1 cmp r7, 0x7 ble _0805E76A mov r1, r9 cmp r1, 0 beq _0805E7EC _0805E7C6: ldr r1, [r6, 0x70] movs r2, 0x7 adds r0, r5, 0 ands r0, r2 adds r1, 0x46 strb r0, [r1] adds r0, r6, 0 bl sub_806CEBC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r5, 0 bl sub_806CDD4 b _0805E7F6 .align 2, 0 _0805E7E8: .4byte gAdjacentTileOffsets _0805E7EC: movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0 ble _0805E75E _0805E7F6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805E738 thumb_func_start sub_805E804 sub_805E804: push {r4,r5,lr} ldr r2, _0805E864 ldr r1, [r2] ldr r5, _0805E868 adds r3, r1, r5 ldr r4, _0805E86C adds r1, r4 ldrb r0, [r3] ldrb r1, [r1] orrs r0, r1 movs r1, 0 strb r0, [r3] ldr r0, [r2] adds r0, r4 strb r1, [r0] ldr r0, [r2] adds r0, r5 ldrb r0, [r0] cmp r0, 0 beq _0805E85C ldr r0, _0805E870 ldrh r1, [r0] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0805E85C adds r4, r2, 0 _0805E83E: movs r0, 0x54 bl sub_803E46C ldr r0, _0805E864 ldr r0, [r0] ldr r1, _0805E868 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805E85C ldr r0, _0805E870 ldrh r0, [r0] ands r0, r4 cmp r0, 0 bne _0805E83E _0805E85C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805E864: .4byte gDungeonGlobalData _0805E868: .4byte 0x0000066d _0805E86C: .4byte 0x0000066c _0805E870: .4byte gRealInputs thumb_func_end sub_805E804 thumb_func_start sub_805E874 sub_805E874: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r0, _0805E90C ldr r4, [r0] bl GetLeaderEntity mov r9, r0 ldr r0, [r0, 0x70] adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0x18] mov r0, r9 movs r1, 0x4 ldrsh r0, [r0, r1] mov r10, r0 mov r2, r9 movs r3, 0x6 ldrsh r2, [r2, r3] str r2, [sp, 0x1C] adds r1, r2, 0 bl GetMapTileAtPosition adds r5, r0, 0 ldr r1, _0805E910 ldr r2, [sp, 0x18] lsls r0, r2, 2 adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] mov r2, r10 adds r7, r2, r1 movs r3, 0x2 ldrsh r0, [r0, r3] ldr r1, [sp, 0x1C] adds r6, r1, r0 ldr r2, _0805E914 adds r4, r2 ldrb r0, [r4] cmp r0, 0 beq _0805E906 ldr r0, [r5, 0x14] cmp r0, 0 bne _0805E906 mov r0, r9 mov r1, r10 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 cmp r0, 0 bne _0805E906 mov r0, r9 ldr r1, [sp, 0x18] bl sub_8070F14 lsls r0, 24 cmp r0, 0 beq _0805E906 ldrb r3, [r5, 0x9] str r3, [sp, 0x20] cmp r3, 0xFF bne _0805E918 adds r0, r7, 0 adds r1, r6, 0 bl GetMapTileAtPosition ldrb r0, [r0, 0x9] cmp r0, 0xFF beq _0805E922 _0805E906: movs r0, 0 b _0805EC1A .align 2, 0 _0805E90C: .4byte gDungeonGlobalData _0805E910: .4byte gAdjacentTileOffsets _0805E914: .4byte 0x0000066c _0805E918: ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0805E906 _0805E922: movs r4, 0x1 negs r4, r4 ldr r7, _0805EA54 movs r5, 0x80 lsls r5, 2 adds r6, r5, 0 _0805E92E: ldr r0, [sp, 0x18] adds r1, r0, r4 movs r5, 0x7 ands r1, r5 lsls r1, 2 adds r1, r7 movs r2, 0 ldrsh r0, [r1, r2] add r0, r10 movs r3, 0x2 ldrsh r1, [r1, r3] ldr r2, [sp, 0x1C] adds r1, r2, r1 bl GetMapTileAtPosition adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, 0 bne _0805E906 ldrh r0, [r1] ands r0, r6 cmp r0, 0 bne _0805E906 adds r4, 0x1 cmp r4, 0x1 ble _0805E92E ldr r4, _0805EA54 ldr r3, [sp, 0x18] adds r3, 0x3 ands r3, r5 lsls r3, 2 adds r3, r4 movs r1, 0 ldrsh r0, [r3, r1] add r0, r10 str r0, [sp] ldr r2, [sp, 0x18] adds r2, 0x4 ands r2, r5 lsls r2, 2 adds r2, r4 movs r1, 0 ldrsh r0, [r2, r1] add r0, r10 str r0, [sp, 0x4] ldr r1, [sp, 0x18] adds r1, 0x5 ands r1, r5 lsls r1, 2 adds r1, r4 movs r4, 0 ldrsh r0, [r1, r4] add r0, r10 str r0, [sp, 0x8] add r4, sp, 0xC movs r5, 0x2 ldrsh r0, [r3, r5] ldr r3, [sp, 0x1C] adds r0, r3, r0 str r0, [sp, 0xC] movs r5, 0x2 ldrsh r0, [r2, r5] adds r0, r3, r0 str r0, [r4, 0x4] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, r3, r0 str r0, [r4, 0x8] movs r3, 0x1 negs r3, r3 mov r8, r3 _0805E9BC: movs r4, 0x1 negs r4, r4 mov r7, r10 add r7, r8 ldr r6, [sp, 0x1C] subs r6, 0x1 _0805E9C8: adds r0, r7, 0 adds r1, r6, 0 bl GetMapTileAtPosition adds r5, r0, 0 ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA14 movs r2, 0 ldr r0, [sp] cmp r7, r0 bne _0805E9E6 ldr r0, [sp, 0xC] cmp r6, r0 beq _0805EA04 _0805E9E6: adds r2, 0x1 cmp r2, 0x2 bgt _0805EA04 lsls r1, r2, 2 mov r3, sp adds r0, r3, r1 ldr r0, [r0] cmp r7, r0 bne _0805E9E6 mov r0, sp adds r0, r1 adds r0, 0xC ldr r0, [r0] cmp r6, r0 bne _0805E9E6 _0805EA04: cmp r2, 0x3 bne _0805EA14 ldr r0, [r5, 0x14] bl GetEntityType cmp r0, 0x3 bne _0805EA14 b _0805E906 _0805EA14: movs r0, 0x1 ldr r1, [sp, 0x18] ands r0, r1 cmp r0, 0 beq _0805EA60 ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _0805EA42 b _0805E906 _0805EA42: ldr r0, _0805EA58 ldr r0, [r0] ldr r2, _0805EA5C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0805EA94 b _0805E906 .align 2, 0 _0805EA54: .4byte gAdjacentTileOffsets _0805EA58: .4byte gDungeonGlobalData _0805EA5C: .4byte 0x0001820f _0805EA60: mov r3, r8 cmp r3, 0 beq _0805EA6A cmp r4, 0 bne _0805EA94 _0805EA6A: ldr r0, [r5, 0x14] cmp r0, 0 beq _0805EA94 bl GetEntityType cmp r0, 0x2 bne _0805EA94 ldr r0, [r5, 0x14] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _0805EA84 b _0805E906 _0805EA84: ldr r0, _0805EAA0 ldr r0, [r0] ldr r1, _0805EAA4 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805EA94 b _0805E906 _0805EA94: mov r2, r8 cmp r2, 0 beq _0805EAA8 cmp r4, 0 bne _0805EAD6 b _0805EAAC .align 2, 0 _0805EAA0: .4byte gDungeonGlobalData _0805EAA4: .4byte 0x0001820f _0805EAA8: cmp r4, 0 beq _0805EAD6 _0805EAAC: ldr r0, [sp, 0x4] cmp r0, r7 bne _0805EAB8 ldr r0, [sp, 0x10] cmp r0, r6 beq _0805EAD6 _0805EAB8: mov r0, r9 adds r1, r7, 0 adds r2, r6, 0 bl sub_805EC2C lsls r0, 24 cmp r0, 0 bne _0805EAD6 ldr r3, [sp, 0x20] cmp r3, 0xFF beq _0805EAD6 ldrb r5, [r5, 0x9] cmp r3, r5 beq _0805EAD6 b _0805E906 _0805EAD6: adds r6, 0x1 adds r4, 0x1 cmp r4, 0x1 bgt _0805EAE0 b _0805E9C8 _0805EAE0: movs r4, 0x1 add r8, r4 mov r5, r8 cmp r5, 0x1 bgt _0805EAEC b _0805E9BC _0805EAEC: movs r0, 0x1 ldr r1, [sp, 0x18] ands r0, r1 cmp r0, 0 beq _0805EAF8 b _0805EC18 _0805EAF8: cmp r1, 0 beq _0805EB00 cmp r1, 0x4 bne _0805EB8C _0805EB00: mov r4, r10 subs r4, 0x1 ldr r6, [sp, 0x1C] subs r6, 0x1 mov r0, r9 adds r1, r4, 0 adds r2, r6, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 adds r1, r4, 0 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 ldr r5, [sp, 0x1C] adds r5, 0x1 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 adds r2, r6, 0 cmp r7, 0 bne _0805EB4C mov r3, r8 cmp r3, 0 beq _0805EB46 b _0805E906 _0805EB46: cmp r7, r0 beq _0805EB4C b _0805E906 _0805EB4C: mov r4, r10 adds r4, 0x1 mov r0, r9 adds r1, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 adds r1, r4, 0 ldr r2, [sp, 0x1C] bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 cmp r7, 0 bne _0805EC18 mov r4, r8 cmp r4, 0 beq _0805EB86 b _0805E906 _0805EB86: cmp r7, r0 beq _0805EC18 b _0805E906 _0805EB8C: mov r6, r10 subs r6, 0x1 ldr r4, [sp, 0x1C] subs r4, 0x1 mov r0, r9 adds r1, r6, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 mov r1, r10 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r5, r10 adds r5, 0x1 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 cmp r7, 0 bne _0805EBD8 mov r2, r8 cmp r2, 0 beq _0805EBD2 b _0805E906 _0805EBD2: cmp r7, r0 beq _0805EBD8 b _0805E906 _0805EBD8: ldr r4, [sp, 0x1C] adds r4, 0x1 mov r0, r9 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 mov r1, r10 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 adds r1, r5, 0 adds r2, r4, 0 bl sub_805EC2C lsls r0, 24 lsrs r0, 24 cmp r7, 0 bne _0805EC18 mov r3, r8 cmp r3, 0 beq _0805EC12 b _0805E906 _0805EC12: cmp r7, r0 beq _0805EC18 b _0805E906 _0805EC18: movs r0, 0x1 _0805EC1A: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805E874 thumb_func_start sub_805EC2C sub_805EC2C: push {lr} sub sp, 0x4 lsls r1, 16 lsls r2, 16 lsrs r1, 16 orrs r1, r2 str r1, [sp] mov r1, sp bl sub_8070564 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_805EC2C thumb_func_start sub_805EC4C sub_805EC4C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r7, [r5, 0x70] ldr r1, _0805ECC8 adds r0, r7, 0 adds r0, 0x46 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r3, [r5, 0x4] adds r1, r3 lsls r1, 16 ldrh r0, [r0, 0x2] ldrh r3, [r5, 0x6] adds r0, r3 lsls r0, 16 lsrs r2, r1, 16 orrs r2, r0 lsls r0, r2, 16 asrs r0, 16 asrs r1, r2, 16 bl GetMapTileAtPosition ldr r0, [r0, 0x10] mov r8, r0 cmp r0, 0 bne _0805EC94 b _0805ED96 _0805EC94: mov r0, r8 bl GetEntityType cmp r0, 0x1 bne _0805ED96 mov r0, r8 ldr r6, [r0, 0x70] ldrb r0, [r6, 0x6] cmp r0, 0 beq _0805ECDC ldrb r0, [r6, 0x8] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0805ECDC adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0805ECC2 cmp r0, 0x47 bne _0805ECCC _0805ECC2: movs r0, 0x1 b _0805ECCE .align 2, 0 _0805ECC8: .4byte gAdjacentTileOffsets _0805ECCC: movs r0, 0 _0805ECCE: cmp r0, 0 bne _0805ECDC adds r0, r6, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _0805ED96 _0805ECDC: adds r0, r7, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 cmp r0, 0x1 beq _0805ED96 cmp r0, 0x7 beq _0805ED96 cmp r0, 0x5 beq _0805ED96 cmp r0, 0x3 beq _0805ED96 cmp r0, 0x4 beq _0805ED96 adds r0, r6, 0 adds r0, 0xB0 ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 cmp r0, 0x1 beq _0805ED96 cmp r0, 0x7 beq _0805ED96 cmp r0, 0x5 beq _0805ED96 cmp r0, 0x3 beq _0805ED96 cmp r0, 0x4 beq _0805ED96 adds r0, r7, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805ED96 adds r0, r6, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _0805ED3E cmp r0, 0x2 beq _0805ED3E cmp r0, 0x4 bne _0805ED96 _0805ED3E: adds r0, r7, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 beq _0805ED50 cmp r0, 0x2 beq _0805ED50 cmp r0, 0x4 bne _0805ED96 _0805ED50: mov r0, r8 movs r1, 0 bl IsCharging lsls r0, 24 cmp r0, 0 bne _0805ED96 adds r4, r7, 0 adds r4, 0x46 ldrb r1, [r4] adds r0, r5, 0 bl sub_8070F80 lsls r0, 24 mov r9, r4 cmp r0, 0 beq _0805ED96 mov r1, r10 cmp r1, 0 beq _0805EDA0 adds r1, r5, 0x4 mov r0, r8 bl sub_807049C lsls r0, 24 cmp r0, 0 beq _0805EDA0 ldr r0, _0805ED9C ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0 bne _0805EDA0 _0805ED96: movs r0, 0 b _0805EE1E .align 2, 0 _0805ED9C: .4byte gUnknown_8100208 _0805EDA0: adds r0, r7, 0 adds r0, 0x44 movs r1, 0x2 bl SetAction ldr r0, _0805EDC0 ldrh r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805EDC4 adds r1, r7, 0 adds r1, 0x48 movs r0, 0 b _0805EDCA .align 2, 0 _0805EDC0: .4byte gRealInputs _0805EDC4: adds r1, r7, 0 adds r1, 0x48 movs r0, 0x1 _0805EDCA: strb r0, [r1] ldrh r0, [r7] movs r2, 0x80 lsls r2, 8 adds r5, r2, 0 movs r4, 0 orrs r0, r5 strh r0, [r7] adds r0, r6, 0 adds r0, 0x44 movs r1, 0x2 bl SetAction adds r0, r6, 0 adds r0, 0x48 strb r4, [r0] mov r3, r9 ldrb r0, [r3] adds r0, 0x4 movs r1, 0x7 ands r0, r1 adds r1, r6, 0 adds r1, 0x46 strb r0, [r1] ldrh r0, [r6] orrs r0, r5 strh r0, [r6] mov r0, r8 ldrh r1, [r0, 0x4] movs r2, 0xB6 lsls r2, 1 adds r0, r6, r2 strh r1, [r0] mov r3, r8 ldrh r0, [r3, 0x6] adds r2, 0x2 adds r1, r6, r2 strh r0, [r1] ldr r0, _0805EE2C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xE] _0805EE1E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805EE2C: .4byte gDungeonGlobalData thumb_func_end sub_805EC4C thumb_func_start sub_805EE30 sub_805EE30: push {r4-r7,lr} mov r7, r8 push {r7} bl GetLeaderEntity adds r5, r0, 0 cmp r5, 0 bne _0805EE42 b _0805EF52 _0805EE42: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0805EE4E b _0805EF52 _0805EE4E: adds r0, r5, 0 bl GetMapEntityForDungeonEntity adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xD bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _0805EE82 ldr r0, [r5, 0x70] adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x3 beq _0805EE82 adds r0, r5, 0 movs r1, 0x9 bl HasItem lsls r0, 24 cmp r0, 0 bne _0805EE82 adds r0, r5, 0x4 bl sub_804AE84 _0805EE82: ldrh r1, [r4] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _0805EE96 ldr r0, _0805EEB0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x1] _0805EE96: ldr r4, [r4, 0x14] cmp r4, 0 beq _0805EF52 adds r0, r4, 0 bl GetEntityType cmp r0, 0x5 bhi _0805EF52 lsls r0, 2 ldr r1, _0805EEB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805EEB0: .4byte gDungeonGlobalData _0805EEB4: .4byte _0805EEB8 .align 2, 0 _0805EEB8: .4byte _0805EF52 .4byte _0805EF52 .4byte _0805EED0 .4byte _0805EF2A .4byte _0805EF52 .4byte _0805EF52 _0805EED0: adds r0, r4, 0 bl GetTrapData adds r6, r0, 0 movs r0, 0 mov r8, r0 movs r7, 0 adds r0, r5, 0 movs r1, 0x13 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _0805EF00 adds r1, r4, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _0805EF00 movs r0, 0x1 strb r0, [r1] bl sub_8049ED4 movs r7, 0x1 _0805EF00: ldrb r0, [r6, 0x1] cmp r0, 0 beq _0805EF18 cmp r0, 0x1 beq _0805EF52 cmp r0, 0x2 bne _0805EF12 movs r1, 0x1 mov r8, r1 _0805EF12: mov r0, r8 cmp r0, 0 beq _0805EF52 _0805EF18: cmp r7, 0 bne _0805EF52 adds r1, r5, 0x4 adds r0, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_807FE9C b _0805EF52 _0805EF2A: adds r0, r4, 0 bl GetItemData ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805EF44 adds r0, r5, 0x4 movs r1, 0x1 bl sub_8045DB4 b _0805EF52 _0805EF44: ldr r0, _0805EF5C ldr r0, [r0] movs r1, 0xB8 lsls r1, 3 adds r0, r1 movs r1, 0x4 str r1, [r0] _0805EF52: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805EF5C: .4byte gDungeonGlobalData thumb_func_end sub_805EE30 thumb_func_start sub_805EF60 sub_805EF60: push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 bl sub_80696A8 adds r4, r0, 0 cmp r4, 0 beq _0805EF9E adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 bne _0805EF9E adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _0805EF9E ldr r1, [r4, 0x70] ldrb r0, [r1, 0x6] cmp r0, 0 beq _0805EFA2 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _0805EFA2 ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _0805EFA2 _0805EF9E: movs r0, 0 b _0805EFAE _0805EFA2: adds r0, r6, 0 adds r0, 0x44 movs r1, 0x13 bl SetAction movs r0, 0x1 _0805EFAE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805EF60 thumb_func_start sub_805EFB4 sub_805EFB4: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 bl sub_8083654 adds r6, r0, 0 cmp r7, 0 beq _0805EFE2 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x4 bne _0805EFE2 adds r0, r6, 0 adds r0, 0x46 ldrb r1, [r0] adds r1, 0x4 movs r2, 0x7 ands r1, r2 strb r1, [r0] b _0805F020 _0805EFE2: adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 bne _0805F020 movs r0, 0x8 bl DungeonRandomCapped adds r4, r0, 0 movs r5, 0 _0805EFF6: cmp r7, 0 bne _0805F008 mov r0, r8 adds r1, r4, 0 bl CanMoveInDirection lsls r0, 24 cmp r0, 0 beq _0805F014 _0805F008: movs r0, 0x7 ands r4, r0 adds r0, r6, 0 adds r0, 0x46 strb r4, [r0] b _0805F020 _0805F014: adds r4, 0x1 movs r0, 0x7 ands r4, r0 adds r5, 0x1 cmp r5, 0x7 ble _0805EFF6 _0805F020: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_805EFB4 thumb_func_start sub_805F02C sub_805F02C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r5, _0805F058 ldr r0, [r5] adds r0, 0xBC ldr r7, [r0] bl GetLeaderEntity mov r9, r0 ldr r0, [r7, 0x70] mov r8, r0 mov r1, r9 ldr r4, [r1, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805F060 ldr r0, _0805F05C b _0805F08E .align 2, 0 _0805F058: .4byte gDungeonGlobalData _0805F05C: .4byte gUnknown_80F9BD8 _0805F060: movs r0, 0x2 bl sub_8047084 lsls r0, 24 cmp r0, 0 bne _0805F076 bl sub_807EF48 lsls r0, 24 cmp r0, 0 beq _0805F080 _0805F076: ldr r0, _0805F07C b _0805F08E .align 2, 0 _0805F07C: .4byte gUnknown_80F9C08 _0805F080: ldr r2, [r5] ldr r3, _0805F098 adds r0, r2, r3 ldrb r1, [r0] cmp r1, 0 beq _0805F0A0 ldr r0, _0805F09C _0805F08E: ldr r1, [r0] adds r0, r7, 0 bl sub_805239C b _0805F184 .align 2, 0 _0805F098: .4byte 0x0000066e _0805F09C: .4byte gUnknown_80F9C2C _0805F0A0: ldr r5, _0805F114 adds r0, r2, r5 strb r1, [r0] movs r0, 0x1 mov r2, r8 strb r0, [r2, 0x7] strb r1, [r4, 0x7] movs r6, 0 movs r3, 0x44 add r3, r8 mov r10, r3 adds r5, r4, 0 adds r5, 0x44 str r5, [sp] adds r2, 0x64 str r2, [sp, 0x4] adds r4, 0x64 str r4, [sp, 0x8] ldr r3, _0805F118 movs r2, 0x1 _0805F0C8: movs r0, 0x64 muls r0, r6 ldr r1, _0805F11C adds r0, r1 ldr r1, [r3] adds r4, r1, r0 movs r5, 0 ldrb r1, [r4] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _0805F12A movs r1, 0xA ldrsh r0, [r4, r1] str r2, [sp, 0xC] str r3, [sp, 0x10] bl sub_806A538 lsls r0, 24 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] cmp r0, 0 bne _0805F102 movs r5, 0xA ldrsh r1, [r4, r5] movs r0, 0x58 muls r1, r0 ldr r0, [r3] adds r5, r0, r1 _0805F102: mov r0, r8 ldrb r0, [r0, 0xA] cmp r6, r0 bne _0805F120 strb r2, [r4, 0x2] cmp r5, 0 beq _0805F12A strb r2, [r5, 0x2] b _0805F12A .align 2, 0 _0805F114: .4byte 0x00000679 _0805F118: .4byte gRecruitedPokemonRef _0805F11C: .4byte 0x00008df8 _0805F120: movs r0, 0 strb r0, [r4, 0x2] cmp r5, 0 beq _0805F12A strb r0, [r5, 0x2] _0805F12A: adds r6, 0x1 cmp r6, 0x3 ble _0805F0C8 ldr r0, _0805F194 movs r4, 0 str r4, [r0] mov r1, r10 ldr r0, [sp] ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} adds r0, r7, 0 bl sub_803F508 mov r0, r9 bl sub_8041AD0 bl GetLeaderEntity bl sub_8041AE0 ldr r0, _0805F198 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _0805F19C ldr r1, [r0] adds r0, r7, 0 bl SendMessage movs r0, 0 bl sub_807EC28 ldr r0, [sp, 0x4] strb r4, [r0] ldr r1, [sp, 0x8] strb r4, [r1] mov r0, r9 bl sub_806A6E8 adds r0, r7, 0 bl sub_806A6E8 _0805F184: 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 _0805F194: .4byte gLeaderPokemon _0805F198: .4byte gAvailablePokemonNames _0805F19C: .4byte gUnknown_80F9BB0 thumb_func_end sub_805F02C thumb_func_start sub_805F1A0 sub_805F1A0: push {lr} bl sub_8083654 adds r0, 0x44 pop {r1} bx r1 thumb_func_end sub_805F1A0 thumb_func_start sub_805F1AC sub_805F1AC: push {lr} bl sub_8083654 adds r0, 0x44 ldrh r0, [r0] pop {r1} bx r1 thumb_func_end sub_805F1AC thumb_func_start ShowFieldMenu ShowFieldMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsrs r0, 24 str r0, [sp, 0xC] ldr r0, _0805F208 ldr r1, [r0] movs r0, 0xB8 lsls r0, 3 adds r1, r0 ldr r3, [r1] mov r10, r3 movs r0, 0 str r0, [sp, 0x10] mvns r0, r3 lsrs r0, 31 str r0, [sp, 0x14] movs r0, 0x1 negs r0, r0 str r0, [r1] cmp r3, 0 blt _0805F1F8 mov r1, r10 str r1, [sp, 0x10] _0805F1F8: cmp r2, 0 beq _0805F23C ldr r0, _0805F20C movs r1, 0x80 lsls r1, 1 bl sub_800C074 b _0805F240 .align 2, 0 _0805F208: .4byte gDungeonGlobalData _0805F20C: .4byte 0x00000137 _0805F210: bl GetLeaderEntity movs r1, 0x1 bl sub_806675C b _0805F226 _0805F21C: bl GetLeaderEntity movs r1, 0x1 bl sub_806684C _0805F226: movs r0, 0x1 bl sub_8044C10 movs r0, 0x50 movs r1, 0x4D bl sub_803E708 movs r0, 0 bl sub_8052210 b _0805F92A _0805F23C: bl sub_8083D44 _0805F240: mov r2, r10 cmp r2, 0 bge _0805F2FA movs r0, 0x1 bl sub_8044C10 ldr r0, _0805F388 movs r1, 0x1 negs r1, r1 str r1, [r0] ldr r0, [sp, 0xC] bl DrawFieldMenu bl GetLeaderEntity movs r1, 0 bl sub_806A2BC ldr r4, _0805F38C ldr r5, _0805F390 adds r6, r4, 0 adds r6, 0x2A _0805F26C: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1D bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805F290 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0805F290: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0805F2A8 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _0805F2A8: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805F2BC adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0805F2D0 _0805F2BC: ldr r0, _0805F394 movs r3, 0x18 ldrsh r1, [r4, r3] adds r1, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0x7 beq _0805F3A8 bl sub_8083D30 _0805F2D0: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0805F2E0 ldrb r0, [r6] cmp r0, 0 beq _0805F26C _0805F2E0: bl sub_8083D30 movs r0, 0x1 negs r0, r0 _0805F2E8: str r0, [sp, 0x10] ldr r0, _0805F38C bl AddMenuCursorSprite movs r0, 0x1D bl sub_803E46C movs r1, 0x1 str r1, [sp, 0xC] _0805F2FA: ldr r2, [sp, 0x10] mov r10, r2 cmp r2, 0x1 beq _0805F304 b _0805F428 _0805F304: movs r0, 0x1 bl sub_8044C10 ldr r1, _0805F398 ldr r0, [sp, 0x4] ands r0, r1 ldr r1, _0805F39C ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0805F3A0 ands r0, r1 ldr r1, _0805F3A4 ands r0, r1 str r0, [sp, 0x4] bl GetLeaderEntity add r1, sp, 0x4 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F33A movs r3, 0x1 negs r3, r3 mov r10, r3 _0805F33A: add r0, sp, 0x4 bl sub_805FD3C lsls r0, 24 cmp r0, 0 beq _0805F35C bl GetLeaderEntity add r1, sp, 0x4 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F35C movs r0, 0x1 bl sub_8044C10 _0805F35C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0xC bne _0805F3B2 bl GetLeaderEntity movs r1, 0 movs r2, 0xC bl sub_8044D90 ldrb r2, [r0] movs r1, 0x4 orrs r1, r2 strb r1, [r0] bl sub_805F1A0 bl sub_8060D24 b _0805F412 .align 2, 0 _0805F388: .4byte gUnknown_202F260 _0805F38C: .4byte gUnknown_202EE10 _0805F390: .4byte gRealInputs _0805F394: .4byte gUnknown_202749A _0805F398: .4byte 0xffffff00 _0805F39C: .4byte 0xffff00ff _0805F3A0: .4byte 0xff00ffff _0805F3A4: .4byte 0x00ffffff _0805F3A8: bl sub_8083D08 movs r1, 0x18 ldrsh r0, [r4, r1] b _0805F2E8 _0805F3B2: cmp r0, 0x35 bne _0805F3D0 bl GetLeaderEntity movs r1, 0 movs r2, 0xD bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048A68 b _0805F40A _0805F3D0: cmp r0, 0x10 bne _0805F3EE bl GetLeaderEntity movs r1, 0 movs r2, 0xE bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048950 b _0805F40A _0805F3EE: cmp r0, 0x2C bne _0805F41A bl GetLeaderEntity movs r1, 0 movs r2, 0xF bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048B9C _0805F40A: lsls r0, 24 cmp r0, 0 beq _0805F412 b _0805F72C _0805F412: movs r0, 0x1 bl sub_8044C10 b _0805F72C _0805F41A: cmp r0, 0x3C bne _0805F420 b _0805F210 _0805F420: cmp r0, 0x3D bne _0805F426 b _0805F21C _0805F426: b _0805F72C _0805F428: ldr r2, [sp, 0x10] cmp r2, 0x2 beq _0805F430 b _0805F52E _0805F430: movs r0, 0x1 bl sub_8044C10 bl GetLeaderEntity bl sub_8060E38 lsls r0, 24 cmp r0, 0 beq _0805F44A movs r3, 0x1 negs r3, r3 mov r10, r3 _0805F44A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1B bne _0805F45E bl sub_805F1A0 movs r1, 0 b _0805F4B2 _0805F45E: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1C bne _0805F474 bl sub_805F1A0 bl sub_806752C b _0805F4B6 _0805F474: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x34 bne _0805F48A bl sub_805F1A0 bl sub_8067768 b _0805F4B6 _0805F48A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1A bne _0805F4A0 bl sub_805F1A0 bl sub_80615E8 b _0805F4B6 _0805F4A0: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x30 bne _0805F4BE bl sub_805F1A0 movs r1, 0x1 _0805F4B2: bl sub_8061A38 _0805F4B6: movs r0, 0x1 bl sub_8044C10 b _0805F72C _0805F4BE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x19 beq _0805F4CC b _0805F72C _0805F4CC: bl sub_805F1A0 bl sub_8062D8C movs r6, 0 movs r4, 0 _0805F4D8: ldr r0, _0805F518 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _0805F51C adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805F526 bl sub_805F1A0 ldrb r0, [r0, 0x4] cmp r4, r0 bne _0805F524 ldr r0, _0805F520 str r6, [r0] bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F50C b _0805F72C _0805F50C: adds r0, r5, 0 movs r1, 0 bl sub_806A2BC b _0805F72C .align 2, 0 _0805F518: .4byte gDungeonGlobalData _0805F51C: .4byte 0x0001357c _0805F520: .4byte gUnknown_202F260 _0805F524: adds r6, 0x1 _0805F526: adds r4, 0x1 cmp r4, 0x3 ble _0805F4D8 b _0805F72C _0805F52E: ldr r3, [sp, 0x10] cmp r3, 0 beq _0805F536 b _0805F73A _0805F536: movs r7, 0 movs r0, 0x1 bl sub_8044C10 movs r5, 0 b _0805F544 _0805F542: adds r5, 0x1 _0805F544: cmp r5, 0x3 bgt _0805F56C ldr r0, _0805F600 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _0805F604 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805F542 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0805F542 adds r7, r5, 0 _0805F56C: movs r0, 0 bl sub_8044C10 _0805F572: movs r6, 0 mov r9, r6 mov r8, r6 movs r5, 0 _0805F57A: ldr r0, _0805F600 ldr r0, [r0] lsls r1, r5, 2 ldr r3, _0805F604 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F5A0 cmp r5, r7 bne _0805F59C mov r9, r8 adds r6, r4, 0 _0805F59C: movs r0, 0x1 add r8, r0 _0805F5A0: adds r5, 0x1 cmp r5, 0x3 ble _0805F57A cmp r6, 0 bne _0805F5B0 bl GetLeaderEntity adds r6, r0, 0 _0805F5B0: adds r0, r6, 0 movs r1, 0 bl sub_806A2BC adds r0, r6, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 bl sub_8083654 adds r0, 0x48 strb r7, [r0] movs r0, 0 bl sub_8044C10 mov r1, r8 str r1, [sp] adds r0, r6, 0 movs r1, 0 movs r2, 0x1 mov r3, r9 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _0805F5EE movs r2, 0x1 negs r2, r2 mov r10, r2 _0805F5EE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bne _0805F63C adds r4, r7, 0 movs r5, 0 b _0805F60A .align 2, 0 _0805F600: .4byte gDungeonGlobalData _0805F604: .4byte 0x0001357c _0805F608: adds r5, 0x1 _0805F60A: cmp r5, 0x3 bgt _0805F676 adds r7, 0x1 cmp r7, 0x3 ble _0805F616 movs r7, 0 _0805F616: ldr r0, _0805F634 ldr r0, [r0] lsls r1, r7, 2 ldr r3, _0805F638 adds r0, r3 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F608 b _0805F676 .align 2, 0 _0805F634: .4byte gDungeonGlobalData _0805F638: .4byte 0x0001357c _0805F63C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _0805F694 adds r4, r7, 0 movs r5, 0 b _0805F650 _0805F64E: adds r5, 0x1 _0805F650: cmp r5, 0x3 bgt _0805F676 subs r7, 0x1 cmp r7, 0 bge _0805F65C movs r7, 0x3 _0805F65C: ldr r0, _0805F68C ldr r0, [r0] lsls r1, r7, 2 ldr r2, _0805F690 adds r0, r2 adds r0, r1 ldr r6, [r0] adds r0, r6, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _0805F64E _0805F676: bl sub_8083654 adds r0, 0x48 strb r7, [r0] cmp r4, r7 bne _0805F684 b _0805F572 _0805F684: movs r0, 0 bl sub_8083CE0 b _0805F572 .align 2, 0 _0805F68C: .4byte gDungeonGlobalData _0805F690: .4byte 0x0001357c _0805F694: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bne _0805F6AA bl sub_805F1A0 bl sub_80637E8 b _0805F56C _0805F6AA: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E beq _0805F6C2 bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x33 bne _0805F6CE _0805F6C2: bl sub_805F1A0 movs r1, 0 bl sub_8063A70 b _0805F56C _0805F6CE: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bne _0805F6E4 bl sub_805F1A0 bl sub_8063B54 b _0805F56C _0805F6E4: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x20 bne _0805F6FA bl sub_805F1A0 bl sub_8063BB4 b _0805F56C _0805F6FA: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x21 bne _0805F712 bl sub_805F1A0 movs r1, 0 bl sub_8063CF0 b _0805F56C _0805F712: bl GetLeaderEntity movs r1, 0 bl sub_806A2BC bl GetLeaderEntity adds r0, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _0805F72C: bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _0805F738 b _0805F92A _0805F738: b _0805F904 _0805F73A: ldr r3, [sp, 0x10] cmp r3, 0x4 beq _0805F742 b _0805F8E0 _0805F742: bl GetLeaderEntity movs r1, 0x4 ldrsh r2, [r0, r1] movs r3, 0x6 ldrsh r1, [r0, r3] adds r0, r2, 0 bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 bne _0805F75C b _0805F88C _0805F75C: adds r0, r4, 0 bl GetEntityType cmp r0, 0x3 beq _0805F768 b _0805F872 _0805F768: movs r0, 0x1 bl sub_8044C10 ldr r1, _0805F7F0 ldr r0, [sp, 0x8] ands r0, r1 ldr r1, _0805F7F4 ands r0, r1 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldr r1, _0805F7F8 ands r0, r1 movs r1, 0x80 lsls r1, 9 orrs r0, r1 ldr r1, _0805F7FC ands r0, r1 adds r1, 0x1 orrs r0, r1 str r0, [sp, 0x8] bl GetLeaderEntity add r4, sp, 0x8 adds r1, r4, 0 bl sub_805FD74 lsls r0, 24 adds r0, r4, 0 bl sub_805FD3C lsls r0, 24 cmp r0, 0 beq _0805F7C2 bl GetLeaderEntity adds r1, r4, 0 bl sub_805FD74 lsls r0, 24 cmp r0, 0 beq _0805F7C2 movs r0, 0x1 bl sub_8044C10 _0805F7C2: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0xC bne _0805F800 bl GetLeaderEntity movs r1, 0 movs r2, 0x10 bl sub_8044D90 ldrb r2, [r0] movs r1, 0x4 orrs r1, r2 strb r1, [r0] bl sub_805F1A0 bl sub_8060D24 b _0805F840 .align 2, 0 _0805F7F0: .4byte 0xffffff00 _0805F7F4: .4byte 0xffff00ff _0805F7F8: .4byte 0xff00ffff _0805F7FC: .4byte 0x00ffffff _0805F800: cmp r0, 0x35 bne _0805F81E bl GetLeaderEntity movs r1, 0 movs r2, 0x11 bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048A68 b _0805F83A _0805F81E: cmp r0, 0x10 bne _0805F848 bl GetLeaderEntity movs r1, 0 movs r2, 0x12 bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048950 _0805F83A: lsls r0, 24 cmp r0, 0 bne _0805F8A8 _0805F840: movs r0, 0x1 bl sub_8044C10 b _0805F8A8 _0805F848: cmp r1, 0x2C bne _0805F8A8 bl GetLeaderEntity movs r1, 0 movs r2, 0x13 bl sub_8044D90 adds r4, r0, 0 bl GetLeaderEntity adds r1, r4, 0 bl sub_8048B9C lsls r0, 24 cmp r0, 0 bne _0805F8A8 movs r0, 0x1 bl sub_8044C10 b _0805F8A8 _0805F872: adds r0, r4, 0 bl GetEntityType cmp r0, 0x2 bne _0805F8CE movs r0, 0x1 bl sub_8044C10 bl GetLeaderEntity bl sub_80643AC b _0805F8A8 _0805F88C: ldrh r0, [r0] movs r2, 0x80 lsls r2, 2 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _0805F8B4 movs r0, 0x1 bl sub_8044C10 bl GetLeaderEntity bl sub_80647F0 _0805F8A8: bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F92A b _0805F8CE _0805F8B4: bl GetLeaderEntity adds r1, r0, 0 ldr r0, _0805F8D8 movs r2, 0 bl SetMessageArgument ldr r0, _0805F8DC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0805F8CE: movs r3, 0x1 negs r3, r3 mov r10, r3 b _0805F904 .align 2, 0 _0805F8D8: .4byte gAvailablePokemonNames _0805F8DC: .4byte gUnknown_80FDE18 _0805F8E0: ldr r0, [sp, 0x10] cmp r0, 0x3 bne _0805F904 bl sub_8064BE0 ldr r0, _0805F91C ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _0805F92A bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _0805F92A movs r1, 0x1 negs r1, r1 mov r10, r1 _0805F904: ldr r2, [sp, 0x10] cmp r2, 0 blt _0805F92A ldr r3, [sp, 0x14] cmp r3, 0 bne _0805F920 bl ResetRepeatTimers bl ResetUnusedInputStruct b _0805F240 .align 2, 0 _0805F91C: .4byte gDungeonGlobalData _0805F920: bl GetLeaderEntity movs r1, 0 bl sub_806A2BC _0805F92A: movs r0, 0 movs r1, 0 bl sub_803EAF0 bl ResetRepeatTimers bl ResetUnusedInputStruct 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 ShowFieldMenu thumb_func_start DrawFieldMenu DrawFieldMenu: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _0805F994 movs r0, 0 strh r0, [r4, 0x18] movs r1, 0x5 strh r1, [r4, 0x1A] strh r1, [r4, 0x1C] strh r0, [r4, 0x1E] strh r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x6] strh r0, [r4, 0xC] strh r0, [r4, 0xE] str r0, [r4] strh r0, [r4, 0x14] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0x38 bl sub_80137B0 cmp r5, 0 beq _0805F998 movs r0, 0x7 movs r1, 0 bl sub_803EAF0 b _0805F9A0 .align 2, 0 _0805F994: .4byte gUnknown_202EE10 _0805F998: movs r0, 0x6 movs r1, 0 bl sub_803EAF0 _0805F9A0: movs r0, 0 bl sub_80073B8 bl GetLeaderEntity movs r1, 0x1 bl ShouldAvoidEnemiesAndShowEffect lsls r0, 24 cmp r0, 0 beq _0805F9CC ldr r0, _0805F9C8 movs r2, 0x2 strb r2, [r0, 0x1] strb r2, [r0, 0x2] strb r2, [r0, 0x3] movs r1, 0x7 strb r1, [r0, 0x4] strb r2, [r0, 0x5] b _0805F9DA .align 2, 0 _0805F9C8: .4byte gUnknown_202749A _0805F9CC: ldr r1, _0805FBA0 movs r0, 0x7 strb r0, [r1, 0x1] strb r0, [r1, 0x2] strb r0, [r1, 0x3] strb r0, [r1, 0x4] strb r0, [r1, 0x5] _0805F9DA: ldr r4, _0805FBA4 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBA8 ldr r2, [r0] movs r6, 0 str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBAC ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB0 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB4 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _0805FBB8 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 cmp r5, 0 bne _0805FA62 b _0805FB92 _0805FA62: bl GetLeaderEntity ldr r7, [r0, 0x70] bl sub_805317C adds r5, r0, 0 bl sub_8008ED0 movs r4, 0x88 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 movs r0, 0x1 bl sub_80073B8 str r6, [sp] adds r0, r4, 0 movs r1, 0x2 adds r2, r5, 0 movs r3, 0x1 bl xxx_call_draw_string movs r0, 0x1 bl sub_80073E0 movs r0, 0x2 bl sub_80073B8 ldr r0, _0805FBBC ldr r0, [r0] add r2, sp, 0x8 add r3, sp, 0xC add r1, sp, 0x4 bl DeconstructPlayTime movs r1, 0x9E lsls r1, 1 adds r0, r7, r1 ldr r0, [r0] bl RoundUpFixedPoint ldr r4, _0805FBC0 str r0, [r4] movs r2, 0xA0 lsls r2, 1 adds r0, r7, r2 ldr r0, [r0] bl RoundUpFixedPoint str r0, [r4, 0x4] ldr r0, _0805FBC4 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0 movs r3, 0x2 bl xxx_format_and_draw ldr r0, _0805FBC8 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] str r0, [r4] ldr r0, _0805FBCC ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0xC movs r3, 0x2 bl xxx_format_and_draw ldr r5, _0805FBD0 movs r0, 0 bl GetWeather adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl GetWeatherName ldr r0, _0805FBD4 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0x18 movs r3, 0x2 bl xxx_format_and_draw ldr r0, [sp, 0x4] str r0, [r4] ldr r0, [sp, 0x8] str r0, [r4, 0x4] ldr r0, [sp, 0xC] str r0, [r4, 0x8] ldr r0, _0805FBD8 ldr r2, [r0] str r6, [sp] movs r0, 0x73 movs r1, 0x24 movs r3, 0x2 bl xxx_format_and_draw movs r7, 0 mov r8, r4 _0805FB3A: ldr r0, _0805FBDC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805FBE0 adds r0, r2 adds r0, r1 ldr r5, [r0] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _0805FB86 ldr r4, [r5, 0x70] ldr r0, _0805FBD0 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument movs r1, 0xE ldrsh r0, [r4, r1] mov r2, r8 str r0, [r2] movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2, 0x4] ldr r0, _0805FBE4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 adds r1, r7, 0 movs r3, 0x2 bl xxx_format_and_draw adds r7, 0xC cmp r7, 0x2F bgt _0805FB8C _0805FB86: adds r6, 0x1 cmp r6, 0x3 ble _0805FB3A _0805FB8C: movs r0, 0x2 bl sub_80073E0 _0805FB92: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805FBA0: .4byte gUnknown_202749A _0805FBA4: .4byte gUnknown_202EE10 _0805FBA8: .4byte gFieldMenuMovesPtr _0805FBAC: .4byte gFieldMenuItemsPtr _0805FBB0: .4byte gFieldMenuTeamPtr _0805FBB4: .4byte gFieldMenuOthersPtr _0805FBB8: .4byte gFieldMenuGroundPtr _0805FBBC: .4byte gPlayTimeRef _0805FBC0: .4byte gUnknown_202DE30 _0805FBC4: .4byte gUnknown_80F9174 _0805FBC8: .4byte gTeamInventory_203B460 _0805FBCC: .4byte gUnknown_80F9190 _0805FBD0: .4byte gAvailablePokemonNames _0805FBD4: .4byte gUnknown_80F91A8 _0805FBD8: .4byte gUnknown_80F91C8 _0805FBDC: .4byte gDungeonGlobalData _0805FBE0: .4byte 0x0001357c _0805FBE4: .4byte gUnknown_80F91E0 thumb_func_end DrawFieldMenu thumb_func_start sub_805FBE8 sub_805FBE8: push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x8 adds r1, r5, 0 bl sub_803EAF0 _0805FBF4: movs r0, 0xE bl sub_803E46C bl xxx_draw_string_80144C4 bl sub_8016080 adds r4, r0, 0 cmp r4, 0 beq _0805FBF4 bl sub_80160D8 movs r0, 0xE bl sub_803E46C movs r0, 0 movs r1, 0 bl sub_803EAF0 cmp r4, 0x3 bne _0805FC28 ldrb r0, [r5] cmp r0, 0 beq _0805FC28 movs r0, 0x1 b _0805FC2A _0805FC28: movs r0, 0 _0805FC2A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FBE8 thumb_func_start sub_805FC30 sub_805FC30: push {r4-r6,lr} sub sp, 0x78 adds r4, r0, 0 adds r6, r1, 0 add r5, sp, 0x4 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r3, 0x3 str r3, [sp, 0x8] str r3, [sp, 0x20] movs r2, 0 movs r0, 0x16 strh r0, [r5, 0x20] movs r1, 0x4 strh r1, [r5, 0x22] movs r0, 0x6 strh r0, [r5, 0x24] strh r1, [r5, 0x26] strh r1, [r5, 0x28] str r3, [sp, 0x38] str r3, [sp, 0x50] add r0, sp, 0x4 ldm r4!, {r1,r3,r5} stm r0!, {r1,r3,r5} ldm r4!, {r1,r3,r5} stm r0!, {r1,r3,r5} add r1, sp, 0x4 movs r0, 0x80 strb r0, [r1] ldr r4, _0805FD30 strh r2, [r4, 0x18] ldr r5, _0805FD34 ldr r0, [r5] strh r0, [r4, 0x1C] strh r0, [r4, 0x1A] strh r2, [r4, 0x1E] strh r2, [r4, 0x20] strh r2, [r4, 0x4] strh r2, [r4, 0x6] movs r0, 0x1 str r0, [r4] strh r2, [r4, 0xC] strh r2, [r4, 0xE] ldr r0, [r4, 0x8] str r0, [r4, 0x14] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r6, [r0, 0x20] adds r1, r0, 0 movs r0, 0x1C subs r0, r6 strh r0, [r1, 0x24] movs r1, 0x1C ldrsh r0, [r4, r1] movs r1, 0 bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 strh r0, [r1, 0x28] strh r0, [r2, 0x26] adds r0, r1, 0 movs r1, 0 bl sub_803ECB4 add r0, sp, 0x4 movs r2, 0x26 ldrsh r1, [r0, r2] lsls r1, 3 adds r0, r4, 0 bl sub_80137B0 movs r0, 0x1 bl sub_80073B8 movs r6, 0 ldr r0, [r5] cmp r6, r0 bge _0805FD20 add r5, sp, 0x64 _0805FCDC: adds r0, r6, 0 bl sub_8044F3C lsls r0, 24 movs r4, 0x2 cmp r0, 0 beq _0805FCEC movs r4, 0x7 _0805FCEC: adds r0, r6, 0 bl sub_8044EC8 adds r3, r0, 0 adds r0, r5, 0 ldr r1, _0805FD38 adds r2, r4, 0 bl ExpandPlaceholdersBuffer ldr r0, _0805FD30 adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 movs r0, 0 str r0, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0x1 bl xxx_call_draw_string adds r6, 0x1 ldr r0, _0805FD34 ldr r0, [r0] cmp r6, r0 blt _0805FCDC _0805FD20: movs r0, 0x1 bl sub_80073E0 add sp, 0x78 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805FD30: .4byte gUnknown_202EE10 _0805FD34: .4byte gUnknown_202EE6C _0805FD38: .4byte gUnknown_8106B50 thumb_func_end sub_805FC30 thumb_func_start sub_805FD3C sub_805FD3C: push {r4,lr} adds r4, r0, 0 bl sub_805F1AC lsls r0, 16 lsrs r0, 16 adds r2, r0, 0 movs r1, 0 strb r1, [r4] strb r1, [r4, 0x1] strb r1, [r4, 0x2] strb r1, [r4, 0x3] cmp r2, 0xA bne _0805FD5E movs r0, 0x1 strb r0, [r4] strb r0, [r4, 0x3] _0805FD5E: cmp r2, 0x3E bne _0805FD6A movs r0, 0x1 strb r0, [r4] strb r1, [r4, 0x1] strb r0, [r4, 0x3] _0805FD6A: ldrb r0, [r4] pop {r4} pop {r1} bx r1 thumb_func_end sub_805FD3C thumb_func_start sub_805FD74 sub_805FD74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 mov r10, r0 adds r7, r1, 0 movs r0, 0 mov r9, r0 movs r1, 0x1 str r1, [sp, 0xD0] movs r2, 0 str r2, [sp, 0xD4] movs r5, 0 str r5, [sp, 0xD8] str r0, [sp, 0xDC] mov r1, r10 ldr r1, [r1, 0x70] str r1, [sp, 0xE0] add r4, sp, 0x68 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x6C] add r0, sp, 0x70 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x74 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x76 movs r1, 0x10 strh r1, [r0] add r0, sp, 0x78 strh r1, [r0] add r5, sp, 0xC8 str r5, [sp, 0x7C] movs r1, 0x3 str r1, [sp, 0x84] add r0, sp, 0x98 str r1, [r0, 0x4] add r0, sp, 0xB0 str r1, [r0, 0x4] add r0, sp, 0x8 adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _0805FE40 strb r6, [r0] mov r2, r9 strh r2, [r0, 0x4] strh r2, [r0, 0x6] cmp r7, 0 beq _0805FE18 ldrb r1, [r7] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD8] ldrb r1, [r7, 0x1] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD0] ldrb r1, [r7, 0x2] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xD4] ldrb r1, [r7, 0x3] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xDC] _0805FE18: ldr r0, _0805FE44 mov r5, r10 str r5, [sp] ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD0] ldr r3, [sp, 0xDC] bl sub_8060D64 ldr r1, _0805FE48 str r0, [r1] cmp r0, 0 bne _0805FEA6 ldr r0, _0805FE4C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage movs r0, 0x1 b _080603BE .align 2, 0 _0805FE40: .4byte gUnknown_202F238 _0805FE44: .4byte gUnknown_202F248 _0805FE48: .4byte gUnknown_202F258 _0805FE4C: .4byte gUnknown_80F8B24 _0805FE50: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 mov r9, r0 b _0806039C _0805FE5E: ldr r0, [sp, 0xE0] adds r0, 0x44 movs r1, 0xC bl SetAction ldr r0, _0805FE78 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0xE0] str r0, [r2, 0x48] str r1, [r2, 0x4C] b _0805FE88 .align 2, 0 _0805FE78: .4byte gUnknown_202F238 _0805FE7C: ldr r0, _0805FE98 ldr r1, [r0, 0x4] ldr r0, [r0] ldr r2, [sp, 0xE0] str r0, [r2, 0x50] str r1, [r2, 0x54] _0805FE88: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r5, 0 mov r9, r5 b _0806039C .align 2, 0 _0805FE98: .4byte gUnknown_202F238 _0805FE9C: ldr r1, [r1] ldr r0, [sp, 0xE0] adds r0, 0x50 strb r1, [r0] b _0806033C _0805FEA6: movs r1, 0 mov r8, r1 ldr r0, _0805FFA8 mov r2, r9 str r2, [r0] _0805FEB0: movs r5, 0 mov r9, r5 movs r4, 0 ldr r6, _0805FFAC _0805FEB8: lsls r1, r4, 2 ldr r0, [r6] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FEEC movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805FEEC movs r0, 0xFB ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0xA bl __divsi3 mov r8, r0 adds r0, r4, 0 movs r1, 0xA bl __modsi3 ldr r1, _0805FFA8 str r0, [r1] _0805FEEC: adds r4, 0x1 cmp r4, 0x13 ble _0805FEB8 movs r6, 0 _0805FEF4: ldr r0, _0805FFB0 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _0805FFB4 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 adds r5, r6, 0x1 mov r12, r5 cmp r0, 0 beq _0805FF66 ldr r0, [r4, 0x70] adds r2, r0, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805FF66 movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0805FF66 movs r0, 0xFB ands r0, r1 strb r0, [r2] movs r4, 0 ldr r0, _0805FFB8 ldr r1, [r0] adds r5, r0, 0 ldr r7, _0805FFA8 cmp r4, r1 bge _0805FF62 ldr r0, _0805FFBC movs r2, 0 ldrsh r1, [r0, r2] adds r3, r0, 0 adds r2, r6, 0x4 cmp r1, r2 beq _0805FF60 _0805FF4C: adds r4, 0x1 ldr r0, [r5] cmp r4, r0 bge _0805FF62 lsls r0, r4, 1 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, r2 bne _0805FF4C _0805FF60: mov r8, r4 _0805FF62: movs r0, 0 str r0, [r7] _0805FF66: mov r6, r12 cmp r6, 0x3 ble _0805FEF4 add r2, sp, 0x8 str r2, [sp] add r5, sp, 0xC8 str r5, [sp, 0x4] mov r0, r8 mov r1, r10 ldr r2, [sp, 0xD8] ldr r3, [sp, 0xD4] bl CreateFieldItemMenu ldr r1, _0805FFBC ldr r0, _0805FFC0 movs r2, 0x1E ldrsh r0, [r0, r2] lsls r0, 1 adds r0, r1 movs r5, 0 ldrsh r2, [r0, r5] cmp r2, 0x3 ble _0805FFE6 ldr r0, _0805FFB0 ldr r1, [r0] subs r0, r2, 0x4 lsls r0, 2 ldr r2, _0805FFB4 adds r1, r2 adds r1, r0 ldr r4, [r1] b _0805FFE8 .align 2, 0 _0805FFA8: .4byte gUnknown_202F240 _0805FFAC: .4byte gTeamInventory_203B460 _0805FFB0: .4byte gDungeonGlobalData _0805FFB4: .4byte 0x0001357c _0805FFB8: .4byte gUnknown_202F258 _0805FFBC: .4byte gUnknown_202F248 _0805FFC0: .4byte gUnknown_202EE10 _0805FFC4: bl sub_8083D44 mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r5, 0x3 mov r9, r5 b _08060200 _0805FFD6: bl sub_8083D08 ldr r0, [sp, 0xE0] adds r0, 0x44 bl sub_8060CE8 movs r0, 0 b _080602F0 _0805FFE6: mov r4, r10 _0805FFE8: adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r0, r4, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 ldr r6, _08060050 adds r7, r6, 0 adds r7, 0x2B _08060002: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r1, [sp, 0xD4] cmp r1, 0 beq _08060016 b _080601F4 _08060016: ldr r4, _08060054 ldr r0, [r4] cmp r0, 0x1 ble _0806008C ldr r0, _08060058 ldrh r1, [r0, 0x2] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08060034 adds r0, r6, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _0806005C _08060034: movs r0, 0 bl sub_8083CE0 movs r2, 0x1 negs r2, r2 add r8, r2 mov r5, r8 cmp r5, 0 bge _0806007E ldr r0, [r4] subs r0, 0x1 mov r8, r0 b _0806007E .align 2, 0 _08060050: .4byte gUnknown_202EE10 _08060054: .4byte gUnknown_202F258 _08060058: .4byte gRealInputs _0806005C: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0806006A ldrb r0, [r7] cmp r0, 0 beq _0806008C _0806006A: movs r0, 0 bl sub_8083CE0 movs r2, 0x1 add r8, r2 ldr r0, [r4] cmp r8, r0 bne _0806007E movs r5, 0 mov r8, r5 _0806007E: ldr r0, [sp, 0xD4] ldr r1, _08060088 str r0, [r1] b _08060200 .align 2, 0 _08060088: .4byte gUnknown_202F240 _0806008C: ldr r0, _08060134 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080600B2 mov r0, r8 bl sub_8060860 lsls r0, 24 cmp r0, 0 beq _080600B2 movs r0, 0x1 bl sub_8083CE0 ldr r0, _08060138 movs r1, 0x1 bl sub_80136E0 _080600B2: ldr r0, _08060134 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080600D8 mov r0, r8 bl sub_8060860 lsls r0, 24 cmp r0, 0 beq _080600D8 movs r0, 0x1 bl sub_8083CE0 ldr r0, _08060138 movs r1, 0x1 bl sub_8013744 _080600D8: ldr r0, _08060134 ldrh r2, [r0, 0x2] movs r1, 0x4 ands r1, r2 adds r2, r0, 0 cmp r1, 0 beq _080601A0 ldr r4, _0806013C mov r5, r8 lsls r0, r5, 1 adds r0, r4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bgt _080601A0 movs r7, 0x1 movs r0, 0x99 lsls r0, 1 bl PlaySoundEffect bl sub_8047158 bl ConvertMoneyItemToMoney movs r0, 0 ldr r2, _08060140 str r0, [r2] mov r5, r10 str r5, [sp] add r0, sp, 0x68 ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD0] ldr r3, [sp, 0xDC] bl sub_8060D64 adds r3, r0, 0 ldr r0, _08060144 ldr r0, [r0] cmp r0, r3 bne _08060164 movs r6, 0 cmp r6, r3 bge _0806015E add r2, sp, 0x68 b _08060152 .align 2, 0 _08060134: .4byte gRealInputs _08060138: .4byte gUnknown_202EE10 _0806013C: .4byte gUnknown_202F248 _08060140: .4byte gUnknown_202F240 _08060144: .4byte gUnknown_202F258 _08060148: adds r4, 0x2 adds r2, 0x2 adds r6, 0x1 cmp r6, r3 bge _0806015E _08060152: movs r0, 0 ldrsh r1, [r2, r0] movs r5, 0 ldrsh r0, [r4, r5] cmp r1, r0 beq _08060148 _0806015E: cmp r6, r3 bne _08060164 movs r7, 0 _08060164: cmp r7, 0 beq _08060200 movs r0, 0 mov r8, r0 ldr r1, _08060194 str r0, [r1] ldr r0, _08060198 str r3, [r0] movs r6, 0 adds r5, r0, 0 cmp r6, r3 bge _08060200 adds r3, r5, 0 add r1, sp, 0x68 ldr r2, _0806019C _08060182: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 adds r6, 0x1 ldr r0, [r3] cmp r6, r0 blt _08060182 b _08060200 .align 2, 0 _08060194: .4byte gUnknown_202F240 _08060198: .4byte gUnknown_202F258 _0806019C: .4byte gUnknown_202F248 _080601A0: ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080601B6 ldr r2, _080601C8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080601CC _080601B6: bl sub_8083D08 mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r2, 0x1 mov r9, r2 b _08060200 .align 2, 0 _080601C8: .4byte gUnknown_202EE10 _080601CC: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080601D6 b _0805FFC4 _080601D6: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080601EA adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080601EA b _08060002 _080601EA: bl sub_8083D30 movs r5, 0x2 mov r9, r5 b _08060200 _080601F4: mov r0, r10 adds r0, 0x4 bl sub_8060890 movs r0, 0x1 mov r9, r0 _08060200: ldr r4, _0806034C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r1, _08060350 movs r2, 0x1E ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 movs r5, 0 ldrsh r0, [r0, r5] cmp r0, 0x1 bgt _08060232 ldr r0, _08060354 ldr r0, [r0] ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060232 movs r0, 0x2 mov r9, r0 _08060232: mov r1, r9 cmp r1, 0x2 bne _0806023A b _0805FE50 _0806023A: cmp r1, 0 bne _08060240 b _0805FEB0 _08060240: cmp r1, 0x3 bne _08060246 b _0805FE5E _08060246: ldr r4, _0806034C movs r2, 0x18 ldrsh r0, [r4, r2] ldr r5, _08060358 str r0, [r5] ldr r0, [sp, 0xD8] cmp r0, 0 beq _08060258 b _0805FE7C _08060258: mov r0, r10 bl sub_8060900 movs r2, 0x1E ldrsh r1, [r4, r2] add r0, sp, 0xC8 bl sub_8060800 add r0, sp, 0x8 movs r1, 0x16 bl sub_805FC30 ldr r6, _0806035C adds r7, r4, 0 adds r7, 0x2A _08060276: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806029A movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0806029A: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080602B2 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _080602B2: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080602C6 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080602DA _080602C6: movs r5, 0x18 ldrsh r0, [r4, r5] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _080602D6 b _0805FFD6 _080602D6: bl sub_8083D30 _080602DA: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080602EA ldrb r0, [r7] cmp r0, 0 beq _08060276 _080602EA: bl sub_8083D30 movs r0, 0x1 _080602F0: mov r9, r0 ldr r0, _0806034C bl AddMenuCursorSprite movs r0, 0x14 bl sub_803E46C ldr r0, _08060360 ldr r0, [r0] ldr r1, _08060364 adds r0, r1 movs r1, 0 strb r1, [r0] mov r2, r9 cmp r2, 0x1 bne _08060318 ldr r5, [sp, 0xD4] cmp r5, 0 bne _08060318 b _0805FEB0 _08060318: ldr r0, [sp, 0xE0] adds r0, 0x44 ldrh r1, [r0] adds r0, r1, 0 subs r0, 0x37 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08060330 adds r0, r1, 0 cmp r0, 0x3E bne _0806036C _08060330: ldr r0, _08060368 ldrb r0, [r0] subs r0, 0x90 ldr r1, [sp, 0xE0] adds r1, 0x48 strb r0, [r1] _0806033C: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0 mov r9, r0 b _0806039C .align 2, 0 _0806034C: .4byte gUnknown_202EE10 _08060350: .4byte gUnknown_202F248 _08060354: .4byte gTeamInventory_203B460 _08060358: .4byte gUnknown_202F240 _0806035C: .4byte gRealInputs _08060360: .4byte gDungeonGlobalData _08060364: .4byte 0x00018212 _08060368: .4byte gUnknown_202F238 _0806036C: cmp r0, 0x36 bne _08060390 add r0, sp, 0xCC movs r1, 0x2 bl DrawFieldGiveItemMenu add r1, sp, 0xCC cmp r0, 0 beq _08060380 b _0805FE9C _08060380: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 bl sub_8044C10 b _0805FEB0 _08060390: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r1, 0 mov r9, r1 _0806039C: ldr r0, _080603D0 ldr r0, [r0] ldr r2, _080603D4 adds r0, r2 movs r1, 0 strb r1, [r0] movs r0, 0x2 movs r1, 0x61 bl sub_803E708 bl sub_804AA60 movs r0, 0x2 movs r1, 0x61 bl sub_803E708 mov r0, r9 _080603BE: add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080603D0: .4byte gDungeonGlobalData _080603D4: .4byte 0x00018212 thumb_func_end sub_805FD74 thumb_func_start CreateFieldItemMenu CreateFieldItemMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x78 adds r7, r0, 0 mov r9, r1 ldr r6, [sp, 0x98] ldr r0, [sp, 0x9C] mov r8, r0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x6C] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x70] add r1, sp, 0x4 ldr r0, _08060478 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} mov r0, r9 ldr r0, [r0, 0x70] str r0, [sp, 0x74] mov r0, r8 adds r1, r7, 0 bl sub_8060800 mov r10, r0 ldr r5, _0806047C ldr r0, _08060480 ldr r0, [r0] movs r4, 0 movs r1, 0 strh r0, [r5, 0x18] strh r1, [r5, 0x1A] strh r7, [r5, 0x1E] ldr r0, _08060484 ldr r0, [r0] strh r0, [r5, 0x20] strh r1, [r5, 0x4] str r1, [r5] strh r1, [r5, 0x14] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C ldr r3, _08060488 ldr r0, [r3] ldr r2, _0806048C adds r0, r2 strb r4, [r0] ldr r1, _08060490 lsls r0, r7, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x2 beq _08060494 cmp r0, 0x2 bgt _080604AA cmp r0, 0 blt _080604AA movs r1, 0x10 strh r1, [r6, 0x10] strh r1, [r6, 0xE] movs r0, 0xC mov r4, r8 strb r0, [r4, 0x2] strh r1, [r5, 0x6] movs r0, 0xA strh r0, [r5, 0x1C] ldr r0, [r3] adds r0, r2 movs r1, 0x1 strb r1, [r0] b _080604C0 .align 2, 0 _08060478: .4byte gUnknown_8106B6C _0806047C: .4byte gUnknown_202EE10 _08060480: .4byte gUnknown_202F240 _08060484: .4byte gUnknown_202F258 _08060488: .4byte gDungeonGlobalData _0806048C: .4byte 0x00018212 _08060490: .4byte gUnknown_202F248 _08060494: movs r0, 0x4 strh r0, [r6, 0x10] strh r0, [r6, 0xE] movs r0, 0x6 mov r1, r8 strb r0, [r1, 0x2] movs r0, 0x12 strh r0, [r5, 0x6] movs r0, 0x1 strh r0, [r5, 0x1C] b _080604C0 _080604AA: movs r0, 0x4 strh r0, [r6, 0x10] strh r0, [r6, 0xE] movs r0, 0xC mov r2, r8 strb r0, [r2, 0x2] ldr r1, _080604DC movs r0, 0x12 strh r0, [r1, 0x6] movs r0, 0x1 strh r0, [r1, 0x1C] _080604C0: ldr r3, [sp, 0x6C] cmp r3, 0 beq _080604E0 ldr r1, _080604DC ldrh r0, [r1, 0xC] adds r0, 0x40 strh r0, [r1, 0xC] movs r0, 0xA strh r0, [r6, 0x8] adds r1, r6, 0 adds r1, 0x18 add r0, sp, 0x4 b _080604EC .align 2, 0 _080604DC: .4byte gUnknown_202EE10 _080604E0: movs r0, 0x2 strh r0, [r6, 0x8] adds r1, r6, 0 adds r1, 0x18 adds r0, r6, 0 adds r0, 0x48 _080604EC: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} adds r0, r6, 0 movs r1, 0x1 bl sub_803ECB4 ldr r1, _0806054C ldr r5, _08060550 movs r4, 0 ldrsh r0, [r1, r4] adds r0, 0x10 lsls r0, 3 movs r2, 0 mov r8, r2 strh r0, [r5, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] adds r0, r5, 0 movs r1, 0x70 bl sub_80137B0 movs r0, 0 bl sub_80073B8 mov r4, r10 subs r0, r7, r4 lsls r0, 3 adds r6, r0, 0 adds r6, 0xC ldr r0, _08060554 lsls r1, r7, 1 adds r0, r1, r0 movs r2, 0 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x1 beq _080605CC cmp r0, 0x1 bgt _08060558 cmp r0, 0 beq _08060564 b _08060718 .align 2, 0 _0806054C: .4byte gUnknown_2027370 _08060550: .4byte gUnknown_202EE10 _08060554: .4byte gUnknown_202F248 _08060558: cmp r0, 0x2 beq _0806063C cmp r0, 0x3 bne _08060562 b _080606B0 _08060562: b _08060718 _08060564: ldr r0, _080605C0 ldr r2, [r0] mov r3, r8 str r3, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl xxx_format_and_draw movs r4, 0 adds r6, r5, 0 movs r7, 0 add r5, sp, 0x1C _0806057E: lsls r1, r4, 2 ldr r0, _080605C4 ldr r0, [r0] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060592 b _08060794 _08060592: ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] adds r0, r5, 0 adds r1, r2, 0 ldr r2, _080605C8 bl sub_8090E14 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 str r7, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl xxx_format_and_draw adds r4, 0x1 cmp r4, 0x9 ble _0806057E b _08060794 .align 2, 0 _080605C0: .4byte gTeamToolboxAPtr _080605C4: .4byte gTeamInventory_203B460 _080605C8: .4byte gUnknown_8106B60 _080605CC: ldr r0, _08060630 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl xxx_format_and_draw movs r4, 0 adds r6, r5, 0 movs r7, 0 add r5, sp, 0x1C _080605E6: lsls r3, r4, 2 ldr r0, _08060634 ldr r2, [r0] adds r0, r3, r2 adds r0, 0x28 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080605FC b _08060794 _080605FC: ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] adds r1, r3, 0 adds r1, 0x28 adds r1, r2, r1 adds r0, r5, 0 ldr r2, _08060638 bl sub_8090E14 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 str r7, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl xxx_format_and_draw adds r4, 0x1 cmp r4, 0x9 ble _080605E6 b _08060794 .align 2, 0 _08060630: .4byte gTeamToolboxBPtr _08060634: .4byte gTeamInventory_203B460 _08060638: .4byte gUnknown_8106B60 _0806063C: mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] bl GetMapTileAtPosition ldr r0, [r0, 0x14] bl GetItemData adds r7, r0, 0 ldr r0, _080606A8 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060698 ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] add r4, sp, 0x1C ldr r2, _080606AC adds r0, r4, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r5, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r4, 0 movs r3, 0 bl xxx_format_and_draw _08060698: ldr r1, [sp, 0x70] cmp r1, 0 beq _08060794 mov r2, r8 strh r2, [r5, 0xA] strh r2, [r5, 0x8] b _08060794 .align 2, 0 _080606A8: .4byte gFieldItemMenuGroundTextPtr _080606AC: .4byte gUnknown_8106B60 _080606B0: mov r3, r9 ldr r0, [r3, 0x70] adds r7, r0, 0 adds r7, 0x60 ldr r0, _0806070C ldr r1, [sp, 0x74] movs r2, 0 bl SetMessageArgument_2 ldr r0, _08060710 ldr r2, [r0] mov r4, r8 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060794 ldrh r0, [r5, 0x1A] adds r0, 0x1 strh r0, [r5, 0x1A] add r4, sp, 0x1C ldr r2, _08060714 adds r0, r4, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r5, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r4, 0 movs r3, 0 bl xxx_format_and_draw b _08060794 .align 2, 0 _0806070C: .4byte gAvailablePokemonNames _08060710: .4byte gUnknown_80FE940 _08060714: .4byte gUnknown_8106B60 _08060718: ldr r0, _080607E0 ldr r1, [r0] ldr r0, _080607E4 adds r0, r2, r0 movs r2, 0 ldrsh r0, [r0, r2] subs r0, 0x4 lsls r0, 2 ldr r3, _080607E8 adds r1, r3 adds r1, r0 ldr r4, [r1] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08060794 ldr r1, [r4, 0x70] adds r7, r1, 0 adds r7, 0x60 ldr r0, _080607EC movs r2, 0 bl SetMessageArgument_2 ldr r0, _080607F0 ldr r2, [r0] movs r4, 0 mov r8, r4 str r4, [sp] adds r0, r6, 0 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060794 ldr r4, _080607F4 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] add r5, sp, 0x1C ldr r2, _080607F8 adds r0, r5, 0 adds r1, r7, 0 bl sub_8090E14 adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 mov r0, r8 str r0, [sp] movs r0, 0x8 adds r2, r5, 0 movs r3, 0 bl xxx_format_and_draw _08060794: ldr r2, _080607F4 movs r3, 0x18 ldrsh r1, [r2, r3] movs r4, 0x1A ldrsh r0, [r2, r4] cmp r1, r0 blt _080607A6 movs r0, 0 strh r0, [r2, 0x18] _080607A6: movs r0, 0 bl sub_80073E0 ldr r0, [sp, 0x6C] cmp r0, 0 beq _080607D0 movs r0, 0x1 bl sub_80073B8 ldr r0, _080607FC ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x2 movs r3, 0x1 bl xxx_format_and_draw movs r0, 0x1 bl sub_80073E0 _080607D0: add sp, 0x78 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080607E0: .4byte gDungeonGlobalData _080607E4: .4byte gUnknown_202F248 _080607E8: .4byte 0x0001357c _080607EC: .4byte gAvailablePokemonNames _080607F0: .4byte gUnknown_80FE940 _080607F4: .4byte gUnknown_202EE10 _080607F8: .4byte gUnknown_8106B60 _080607FC: .4byte gWhichTextPtr1 thumb_func_end CreateFieldItemMenu thumb_func_start sub_8060800 sub_8060800: push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 ldr r0, _0806083C ldr r2, [r0] mov r12, r0 ldr r6, _08060840 cmp r1, r2 bge _08060828 adds r3, r6, 0 _08060816: movs r7, 0 ldrsh r0, [r3, r7] cmp r0, 0x1 bgt _08060820 adds r1, 0x1 _08060820: adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bne _08060816 _08060828: lsls r0, r4, 1 adds r0, r6 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x1 bgt _08060844 adds r3, r4, 0 adds r2, r1, 0 movs r1, 0 b _0806084C .align 2, 0 _0806083C: .4byte gUnknown_202F258 _08060840: .4byte gUnknown_202F248 _08060844: subs r3, r4, r1 mov r7, r12 ldr r0, [r7] subs r2, r0, r1 _0806084C: cmp r5, 0 beq _08060858 movs r0, 0 strb r2, [r5] strb r3, [r5, 0x1] strb r0, [r5, 0x3] _08060858: adds r0, r1, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8060800 thumb_func_start sub_8060860 sub_8060860: push {lr} adds r1, r0, 0 ldr r0, _08060880 movs r2, 0x1A ldrsh r0, [r0, r2] cmp r0, 0x1 ble _0806087C ldr r0, _08060884 lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0x1 ble _08060888 _0806087C: movs r0, 0 b _0806088A .align 2, 0 _08060880: .4byte gUnknown_202EE10 _08060884: .4byte gUnknown_202F248 _08060888: movs r0, 0x1 _0806088A: pop {r1} bx r1 thumb_func_end sub_8060860 thumb_func_start sub_8060890 sub_8060890: push {r4,lr} adds r3, r0, 0 ldr r1, _080608B4 ldr r2, _080608B8 movs r4, 0x1E ldrsh r0, [r2, r4] lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080608D0 cmp r0, 0x1 bgt _080608BC cmp r0, 0 beq _080608C2 b _080608E8 .align 2, 0 _080608B4: .4byte gUnknown_202F248 _080608B8: .4byte gUnknown_202EE10 _080608BC: cmp r0, 0x2 beq _080608DC b _080608E8 _080608C2: ldr r1, _080608CC ldrb r0, [r2, 0x18] adds r0, 0x1 b _080608EC .align 2, 0 _080608CC: .4byte gUnknown_202F238 _080608D0: ldr r1, _080608D8 ldrb r0, [r2, 0x18] adds r0, 0xB b _080608EC .align 2, 0 _080608D8: .4byte gUnknown_202F238 _080608DC: ldr r1, _080608E4 movs r0, 0x80 b _080608EC .align 2, 0 _080608E4: .4byte gUnknown_202F238 _080608E8: ldr r1, _080608FC subs r0, 0x74 _080608EC: strb r0, [r1] ldrh r0, [r3] strh r0, [r1, 0x4] ldrh r0, [r3, 0x2] strh r0, [r1, 0x6] pop {r4} pop {r0} bx r0 .align 2, 0 _080608FC: .4byte gUnknown_202F238 thumb_func_end sub_8060890 thumb_func_start sub_8060900 sub_8060900: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 ldr r4, _08060964 adds r1, r4, 0 movs r2, 0xA bl sub_8044CC8 adds r7, r0, 0 mov r0, r9 ldr r0, [r0, 0x70] mov r10, r0 ldr r1, _08060968 movs r0, 0 str r0, [r1] ldrb r0, [r4] cmp r0, 0x8F bls _0806092C b _08060BD0 _0806092C: cmp r0, 0x80 bne _080609B0 ldrb r1, [r7, 0x2] movs r0, 0x9 bl sub_8044F5C ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08060992 movs r2, 0 ldr r0, _0806096C ldr r0, [r0] ldr r1, _08060970 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08060978 ldr r0, _08060974 ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] movs r2, 0x1 ands r2, r0 b _08060988 .align 2, 0 _08060964: .4byte gUnknown_202F238 _08060968: .4byte gUnknown_202EE6C _0806096C: .4byte gDungeonGlobalData _08060970: .4byte 0x0000065b _08060974: .4byte gTeamInventory_203B460 _08060978: mov r0, r10 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060988 movs r2, 0x1 _08060988: cmp r2, 0 beq _08060992 movs r0, 0x9 bl sub_8044FF0 _08060992: ldr r0, _08060A20 ldrb r0, [r0] cmp r0, 0x80 bne _080609B0 ldr r0, _08060A24 ldr r0, [r0] ldr r2, _08060A28 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080609B0 ldrb r1, [r7, 0x2] movs r0, 0xA bl sub_8044F5C _080609B0: adds r0, r7, 0 bl sub_8044DC8 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080609E8 ldrb r1, [r7, 0x2] adds r0, r4, 0 bl sub_8044F5C ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080609D6 adds r0, r4, 0 bl sub_8044FF0 _080609D6: adds r0, r7, 0 bl sub_8046F00 lsls r0, 24 cmp r0, 0 bne _080609E8 adds r0, r4, 0 bl sub_8044FF0 _080609E8: ldr r0, _08060A20 ldrb r0, [r0] cmp r0, 0x14 bhi _08060A6C ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 beq _08060A0A ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08060A6C _08060A0A: ldrb r1, [r7] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08060A3A ldrb r1, [r7, 0x2] movs r0, 0x3D bl sub_8044F5C b _08060A42 .align 2, 0 _08060A20: .4byte gUnknown_202F238 _08060A24: .4byte gDungeonGlobalData _08060A28: .4byte 0x0000065b _08060A2C: movs r0, 0x3C bl sub_8044FF0 movs r0, 0x3D bl sub_8044FF0 b _08060A6C _08060A3A: ldrb r1, [r7, 0x2] movs r0, 0x3C bl sub_8044F5C _08060A42: movs r3, 0 ldr r0, _08060AD4 ldr r2, [r0] movs r4, 0x1 _08060A4A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08060A64 movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08060A64 movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08060A2C _08060A64: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x13 ble _08060A4A _08060A6C: ldr r0, _08060AD8 ldrb r0, [r0] cmp r0, 0x81 beq _08060AE8 cmp r0, 0x80 beq _08060B3C movs r3, 0 mov r8, r3 ldrb r1, [r7, 0x2] movs r0, 0x36 bl sub_8044F5C movs r6, 0 _08060A86: ldr r0, _08060ADC ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08060AE0 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08060ABE ldr r0, [r4, 0x70] ldr r3, _08060AE4 adds r5, r0, r3 movs r0, 0 strb r0, [r5] adds r0, r4, 0 bl CannotUseItems lsls r0, 24 cmp r0, 0 bne _08060ABE movs r0, 0x1 mov r8, r0 mov r1, r8 strb r1, [r5] _08060ABE: adds r6, 0x1 cmp r6, 0x3 ble _08060A86 mov r2, r8 cmp r2, 0 bne _08060B3C movs r0, 0x36 bl sub_8044FF0 b _08060B3C .align 2, 0 _08060AD4: .4byte gTeamInventory_203B460 _08060AD8: .4byte gUnknown_202F238 _08060ADC: .4byte gDungeonGlobalData _08060AE0: .4byte 0x0001357c _08060AE4: .4byte 0x00000157 _08060AE8: ldr r0, _08060B10 ldr r0, [r0] ldr r3, _08060B14 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _08060B3C ldr r0, _08060B18 ldr r0, [r0] adds r0, 0x4C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060B1C ldrb r1, [r7, 0x2] movs r0, 0x3E bl sub_8044F5C b _08060B24 .align 2, 0 _08060B10: .4byte gDungeonGlobalData _08060B14: .4byte 0x0000065b _08060B18: .4byte gTeamInventory_203B460 _08060B1C: ldrb r1, [r7, 0x2] movs r0, 0x37 bl sub_8044F5C _08060B24: mov r0, r9 bl CannotUseItems lsls r0, 24 cmp r0, 0 beq _08060B3C movs r0, 0x37 bl sub_8044FF0 movs r0, 0x3E bl sub_8044FF0 _08060B3C: ldr r0, _08060B64 ldrb r0, [r0] cmp r0, 0x14 bhi _08060B78 mov r1, r9 movs r2, 0x4 ldrsh r0, [r1, r2] movs r3, 0x6 ldrsh r1, [r1, r3] bl GetMapTileAtPosition ldr r0, [r0, 0x14] cmp r0, 0 bne _08060B68 ldrb r1, [r7, 0x2] movs r0, 0x8 bl sub_8044F5C b _08060B78 .align 2, 0 _08060B64: .4byte gUnknown_202F238 _08060B68: bl GetEntityType cmp r0, 0x3 bne _08060B78 ldrb r1, [r7, 0x2] movs r0, 0x3A bl sub_8044F5C _08060B78: ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 bne _08060B8E ldrb r1, [r7, 0x2] movs r0, 0x27 bl sub_8044F5C b _08060BAE _08060B8E: ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08060BA6 ldrb r1, [r7, 0x2] movs r0, 0x41 bl sub_8044F5C b _08060BAE _08060BA6: ldrb r1, [r7, 0x2] movs r0, 0xB bl sub_8044F5C _08060BAE: mov r0, r10 bl ToolboxEnabled lsls r0, 24 cmp r0, 0 beq _08060BBC b _08060CCC _08060BBC: movs r0, 0x27 bl sub_8044FF0 movs r0, 0x41 bl sub_8044FF0 movs r0, 0xB bl sub_8044FF0 b _08060CCC _08060BD0: ldrb r1, [r4] subs r1, 0x90 ldr r0, _08060C50 mov r9, r0 ldr r0, [r0] lsls r1, 2 ldr r2, _08060C54 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08060CCC ldr r3, [r4, 0x70] mov r8, r3 movs r5, 0 adds r0, r4, 0 bl CannotUseItems lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r6, r1, 31 ldr r0, _08060C58 ldr r0, [r0] adds r0, 0x4C ldrb r0, [r0] movs r4, 0x1 ands r4, r0 ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08060C22 movs r5, 0x1 _08060C22: ldrb r0, [r7, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bne _08060C32 movs r5, 0x1 _08060C32: mov r1, r9 ldr r0, [r1] ldr r2, _08060C5C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08060C78 cmp r4, 0 beq _08060C60 ldrb r1, [r7, 0x2] movs r0, 0x3E bl sub_8044F5C b _08060C68 .align 2, 0 _08060C50: .4byte gDungeonGlobalData _08060C54: .4byte 0x0001357c _08060C58: .4byte gTeamInventory_203B460 _08060C5C: .4byte 0x0000065b _08060C60: ldrb r1, [r7, 0x2] movs r0, 0x37 bl sub_8044F5C _08060C68: cmp r6, 0 beq _08060C78 movs r0, 0x37 bl sub_8044FF0 movs r0, 0x3E bl sub_8044FF0 _08060C78: mov r3, r8 ldrb r0, [r3, 0x7] cmp r0, 0 beq _08060CBA adds r0, r7, 0 bl sub_8044DC8 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08060CCC ldrb r1, [r7, 0x2] adds r0, r4, 0 bl sub_8044F5C ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08060CA6 adds r0, r4, 0 bl sub_8044FF0 _08060CA6: adds r0, r7, 0 bl sub_8046F00 lsls r0, 24 cmp r0, 0 bne _08060CCC adds r0, r4, 0 bl sub_8044FF0 b _08060CCC _08060CBA: ldrb r1, [r7, 0x2] movs r0, 0x38 bl sub_8044F5C cmp r5, 0 beq _08060CCC movs r0, 0x38 bl sub_8044FF0 _08060CCC: ldrb r1, [r7, 0x2] movs r0, 0xC bl sub_8044F5C bl sub_8045064 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8060900 thumb_func_start sub_8060CE8 sub_8060CE8: push {r4,lr} adds r4, r0, 0 ldr r1, _08060D18 ldr r0, _08060D1C movs r2, 0x18 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl SetAction ldr r0, _08060D20 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r4, 0x4] str r1, [r4, 0x8] movs r0, 0 strb r0, [r4, 0xC] strh r0, [r4, 0x10] strh r0, [r4, 0x12] pop {r4} pop {r0} bx r0 .align 2, 0 _08060D18: .4byte gUnknown_202EE44 _08060D1C: .4byte gUnknown_202EE10 _08060D20: .4byte gUnknown_202F238 thumb_func_end sub_8060CE8 thumb_func_start sub_8060D24 sub_8060D24: push {r4,lr} bl GetLeaderEntity movs r1, 0 movs r2, 0xB bl sub_8044D90 adds r4, r0, 0 movs r0, 0 movs r1, 0 bl sub_803ECB4 adds r0, r4, 0 bl sub_801B3C0 _08060D42: movs r0, 0x16 bl sub_803E46C bl sub_801B410 cmp r0, 0 beq _08060D42 bl sub_801B450 movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r4} pop {r0} bx r0 thumb_func_end sub_8060D24 thumb_func_start sub_8060D64 sub_8060D64: push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r7, 0 ldr r0, _08060E28 ldr r0, [r0] ldr r1, _08060E2C adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08060DB8 cmp r6, 0 bne _08060DB8 ldr r5, _08060E30 ldr r0, [r5] ldrb r1, [r0] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08060DA2 strh r7, [r4] movs r7, 0x1 _08060DA2: ldr r0, [r5] adds r0, 0x28 ldrb r1, [r0] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08060DB8 lsls r0, r7, 1 adds r0, r4 strh r3, [r0] adds r7, 0x1 _08060DB8: cmp r2, 0 beq _08060DD4 ldr r0, [sp, 0x18] adds r0, 0x4 bl sub_804ACE4 lsls r0, 24 cmp r0, 0 beq _08060DD4 lsls r0, r7, 1 adds r0, r4 movs r1, 0x2 strh r1, [r0] adds r7, 0x1 _08060DD4: cmp r6, 0 bne _08060E1A mov r2, r8 cmp r2, 0 bne _08060E1A movs r5, 0 lsls r0, r7, 1 adds r6, r0, r4 _08060DE4: ldr r0, _08060E28 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08060E34 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08060E14 ldr r0, [r4, 0x70] adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08060E14 adds r0, r5, 0x4 strh r0, [r6] adds r6, 0x2 adds r7, 0x1 _08060E14: adds r5, 0x1 cmp r5, 0x3 ble _08060DE4 _08060E1A: adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08060E28: .4byte gDungeonGlobalData _08060E2C: .4byte 0x0000065b _08060E30: .4byte gTeamInventory_203B460 _08060E34: .4byte 0x0001357c thumb_func_end sub_8060D64 thumb_func_start sub_8060E38 sub_8060E38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C str r0, [sp, 0x78] add r4, sp, 0x18 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r0, 0x2 strh r0, [r4, 0x8] strh r0, [r4, 0xA] movs r0, 0xE strh r0, [r4, 0xC] movs r0, 0x10 strh r0, [r4, 0xE] strh r0, [r4, 0x10] ldr r0, _08061018 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r5, 0 mov r9, r4 add r0, sp, 0x4 mov r8, r0 _08060E7A: ldr r6, _0806101C ldr r0, [r6] lsls r1, r5, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08060E9E ldr r0, [r4, 0x70] ldr r2, _08061024 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _08060E9E: adds r5, 0x1 cmp r5, 0x3 ble _08060E7A ldr r0, [r6] ldr r1, _08061028 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08060EBC movs r0, 0x3 mov r2, r9 str r0, [r2, 0x4] ldrh r0, [r2, 0xA] adds r0, 0x1 strh r0, [r2, 0xA] _08060EBC: ldr r6, _0806102C _08060EBE: movs r7, 0 mov r0, sp mov r1, r9 movs r2, 0x1 bl DrawFieldTeamMenu movs r0, 0 mov r10, r0 _08060ECE: movs r1, 0x18 ldrsh r0, [r6, r1] lsls r0, 2 add r0, r8 ldr r1, [r0] cmp r1, 0 blt _08060F00 ldr r0, _0806101C ldr r0, [r0] lsls r1, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r4, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08060F00: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldr r4, _08061030 ldrh r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08060F26 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08060F26: ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08060F3E movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08060F3E: ldrh r1, [r4, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08060F5A movs r1, 0x18 ldrsh r0, [r6, r1] add r1, sp, 0x14 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08061046 bl sub_8083D30 _08060F5A: ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08060F6C ldr r2, _08061034 ldrb r0, [r2] cmp r0, 0 beq _08060F7E _08060F6C: movs r1, 0x18 ldrsh r0, [r6, r1] add r1, sp, 0x14 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08061040 bl sub_8083D30 _08060F7E: ldr r0, _08061030 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08060F92 ldr r2, _08061038 ldrb r0, [r2] cmp r0, 0 beq _08060ECE _08060F92: bl sub_8083D30 movs r7, 0x1 _08060F98: ldr r5, _0806102C movs r1, 0x18 ldrsh r0, [r5, r1] lsls r0, 2 add r0, r8 ldr r1, [r0] cmp r1, 0 blt _08060FCC ldr r0, _0806101C ldr r0, [r0] lsls r1, 2 ldr r2, _08061020 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r4, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08060FCC: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C bl sub_804AA60 cmp r7, 0 beq _08060FE2 b _0806110C _08060FE2: movs r1, 0x18 ldrsh r0, [r5, r1] str r0, [sp] ldr r1, _0806103C movs r2, 0x18 ldrsh r0, [r5, r2] str r0, [r1] mov r0, sp bl sub_806145C mov r0, r10 cmp r0, 0 beq _08061064 ldr r1, [sp, 0x78] ldr r4, [r1, 0x70] adds r0, r4, 0 adds r0, 0x44 movs r1, 0x1B bl SetAction ldr r0, [sp] lsls r0, 2 add r0, r8 ldr r0, [r0] adds r4, 0x48 strb r0, [r4] b _08061116 .align 2, 0 _08061018: .4byte gUnknown_202F270 _0806101C: .4byte gDungeonGlobalData _08061020: .4byte 0x0001357c _08061024: .4byte 0x00000157 _08061028: .4byte 0x0000065b _0806102C: .4byte gUnknown_202EE10 _08061030: .4byte gRealInputs _08061034: .4byte gUnknown_202EE39 _08061038: .4byte gUnknown_202EE3A _0806103C: .4byte gUnknown_202F260 _08061040: bl sub_8083D08 b _08060F98 _08061046: bl sub_8083D44 movs r2, 0x1 mov r10, r2 b _08060F98 _08061050: ldr r1, [sp, 0x78] ldr r0, [r1, 0x70] adds r0, 0x44 mov r1, sp bl sub_80615B4 bl sub_8083D08 movs r4, 0 b _080610EA _08061064: mov r0, r9 movs r1, 0x12 bl sub_805FC30 adds r4, r5, 0 ldr r5, _08061100 adds r7, r4, 0 adds r7, 0x2A _08061074: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061098 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08061098: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080610B0 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _080610B0: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080610C2 ldr r2, _08061104 ldrb r0, [r2] cmp r0, 0 beq _080610D4 _080610C2: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _08061050 bl sub_8083D30 _080610D4: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080610E4 ldrb r0, [r7] cmp r0, 0 beq _08061074 _080610E4: bl sub_8083D30 movs r4, 0x1 _080610EA: ldr r0, _08061108 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C cmp r4, 0x1 bne _080610FC b _08060EBE _080610FC: movs r7, 0 b _08061116 .align 2, 0 _08061100: .4byte gRealInputs _08061104: .4byte gUnknown_202EE39 _08061108: .4byte gUnknown_202EE10 _0806110C: bl GetLeaderEntity movs r1, 0 bl sub_806A2BC _08061116: movs r0, 0 movs r1, 0 bl sub_803EAF0 adds r0, r7, 0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8060E38 thumb_func_start DrawFieldTeamMenu DrawFieldTeamMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 mov r8, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x8] movs r7, 0 movs r1, 0 mov r2, r8 ldr r0, [r2, 0x4] cmp r0, 0x6 bne _08061154 movs r1, 0x1 _08061154: mov r10, r1 bl GetLeaderEntity adds r1, r0, 0 add r0, sp, 0x4 bl sub_8069D18 movs r6, 0 _08061164: ldr r0, _08061318 ldr r0, [r0] lsls r1, r6, 2 ldr r3, _0806131C adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080611AC lsls r1, r7, 2 mov r0, r9 adds r0, 0x4 adds r0, r1 str r6, [r0] ldr r0, [r4, 0x70] mov r1, r9 adds r1, 0x14 adds r1, r7 ldr r5, _08061320 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, [sp, 0x4] ldr r0, [r4, 0x4] cmp r1, r0 bne _080611AA ldr r1, _08061324 ldr r0, [r1] cmp r0, 0 bge _080611AA str r7, [r1] _080611AA: adds r7, 0x1 _080611AC: adds r6, 0x1 cmp r6, 0x3 ble _08061164 ldr r0, _08061324 ldr r1, [r0] adds r5, r0, 0 cmp r1, r7 blt _080611C0 subs r0, r7, 0x1 str r0, [r5] _080611C0: ldr r0, [r5] cmp r0, 0 bge _080611CA movs r0, 0 str r0, [r5] _080611CA: adds r6, r7, 0 mov r0, r10 negs r3, r0 cmp r7, 0x3 bgt _080611F4 movs r1, 0x1 negs r1, r1 mov r12, r1 mov r2, r9 adds r2, 0x14 movs r4, 0 lsls r0, r7, 2 adds r1, r0, 0x4 add r1, r9 _080611E6: mov r0, r12 stm r1!, {r0} adds r0, r2, r6 strb r4, [r0] adds r6, 0x1 cmp r6, 0x3 ble _080611E6 _080611F4: ldr r1, _08061328 movs r4, 0 movs r0, 0x1 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r0, _0806132C ldr r1, [r5] strh r1, [r0, 0x18] strh r7, [r0, 0x1A] strh r7, [r0, 0x1C] strh r4, [r0, 0x1E] strh r4, [r0, 0x20] strh r4, [r0, 0x4] mov r1, r10 orrs r3, r1 asrs r1, r3, 31 movs r2, 0x10 ands r1, r2 strh r1, [r0, 0x6] strh r4, [r0, 0xC] strh r4, [r0, 0xE] strh r4, [r0, 0x14] str r4, [r0] adds r0, 0x28 bl sub_801317C adds r0, r7, 0 movs r1, 0 bl sub_80095E4 mov r2, r10 cmp r2, 0 beq _0806123A adds r0, 0x2 _0806123A: mov r3, r8 strh r0, [r3, 0x10] strh r0, [r3, 0xE] movs r0, 0x8 ldr r5, _08061328 strb r0, [r5, 0x2] ldr r0, [sp, 0x8] cmp r0, 0 beq _0806125C mov r1, r8 adds r1, 0x18 mov r0, r8 adds r0, 0x48 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _0806125C: mov r0, r8 movs r1, 0x1 bl sub_803ECB4 ldr r0, _0806132C movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 mov r0, r10 cmp r0, 0 beq _08061286 ldr r2, _08061330 str r4, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_format_and_draw _08061286: movs r6, 0 cmp r6, r7 blt _0806128E b _08061440 _0806128E: lsls r1, r6, 2 mov r0, r9 adds r0, 0x4 adds r0, r1 ldr r1, [r0] cmp r1, 0 bge _0806129E b _08061438 _0806129E: ldr r0, _08061318 ldr r0, [r0] lsls r1, 2 ldr r2, _0806131C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _080612BA b _08061438 _080612BA: ldr r5, [r4, 0x70] mov r0, r9 adds r0, 0x14 adds r0, r6 ldrb r0, [r0] movs r2, 0x2 cmp r0, 0 beq _080612CC movs r2, 0x6 _080612CC: ldr r4, _08061334 adds r0, r4, 0 adds r1, r5, 0 bl sub_8070968 ldr r0, _08061338 ldr r1, [r0] ldrb r2, [r5, 0xA] movs r0, 0x64 muls r0, r2 adds r1, r0 ldr r3, _0806133C adds r1, r3 movs r2, 0 ldrsh r0, [r1, r2] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08061388 movs r3, 0x10 ldrsh r2, [r5, r3] adds r1, r2, 0 cmp r2, 0 bge _08061300 adds r1, r2, 0x3 _08061300: movs r3, 0xE ldrsh r0, [r5, r3] asrs r1, 2 cmp r0, r1 bgt _08061344 adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061340 bl strcpy b _080613EE .align 2, 0 _08061318: .4byte gDungeonGlobalData _0806131C: .4byte 0x0001357c _08061320: .4byte 0x00000157 _08061324: .4byte gUnknown_202F260 _08061328: .4byte gUnknown_202F270 _0806132C: .4byte gUnknown_202EE10 _08061330: .4byte gUnknown_8106BB0 _08061334: .4byte gAvailablePokemonNames _08061338: .4byte gRecruitedPokemonRef _0806133C: .4byte 0x00008e02 _08061340: .4byte gUnknown_8106BB4 _08061344: movs r0, 0xE ldrsh r3, [r5, r0] lsls r0, r1, 1 cmp r3, r0 bgt _08061360 adds r0, r4, 0 adds r0, 0x50 ldr r1, _0806135C bl strcpy b _080613EE .align 2, 0 _0806135C: .4byte gUnknown_8106BB8 _08061360: adds r0, r1 cmp r3, r0 bgt _08061378 adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061374 bl strcpy b _080613EE .align 2, 0 _08061374: .4byte gUnknown_8106BBC _08061378: adds r0, r4, 0 adds r0, 0x50 ldr r1, _08061384 bl strcpy b _080613EE .align 2, 0 _08061384: .4byte gUnknown_8106BC0 _08061388: movs r1, 0x10 ldrsh r2, [r5, r1] adds r1, r2, 0 cmp r2, 0 bge _08061394 adds r1, r2, 0x3 _08061394: movs r3, 0xE ldrsh r0, [r5, r3] asrs r1, 2 cmp r0, r1 bgt _080613B0 adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613AC bl strcpy b _080613EE .align 2, 0 _080613AC: .4byte gUnknown_8106BC4 _080613B0: movs r0, 0xE ldrsh r3, [r5, r0] lsls r0, r1, 1 cmp r3, r0 bgt _080613CC adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613C8 bl strcpy b _080613EE .align 2, 0 _080613C8: .4byte gUnknown_8106BC8 _080613CC: adds r0, r1 cmp r3, r0 bgt _080613E4 adds r0, r4, 0 adds r0, 0x50 ldr r1, _080613E0 bl strcpy b _080613EE .align 2, 0 _080613E0: .4byte gUnknown_8106BCC _080613E4: adds r0, r4, 0 adds r0, 0x50 ldr r1, _0806141C bl strcpy _080613EE: ldr r0, _08061420 movs r2, 0xE ldrsh r1, [r5, r2] str r1, [r0] movs r3, 0x10 ldrsh r1, [r5, r3] str r1, [r0, 0x4] ldr r0, _08061424 adds r1, r6, 0 bl sub_8013800 adds r1, r0, 0 ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806142C movs r0, 0 str r0, [sp] movs r0, 0x9 ldr r2, _08061428 movs r3, 0 bl xxx_format_and_draw b _08061438 .align 2, 0 _0806141C: .4byte gUnknown_8106BD0 _08061420: .4byte gUnknown_202DE30 _08061424: .4byte gUnknown_202EE10 _08061428: .4byte gUnknown_8106BD4 _0806142C: str r0, [sp] movs r0, 0x9 ldr r2, _08061458 movs r3, 0 bl xxx_format_and_draw _08061438: adds r6, 0x1 cmp r6, r7 bge _08061440 b _0806128E _08061440: movs r0, 0 bl sub_80073E0 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 _08061458: .4byte gUnknown_8106BE0 thumb_func_end DrawFieldTeamMenu thumb_func_start sub_806145C sub_806145C: push {r4-r6,lr} ldr r2, _08061560 movs r1, 0 str r1, [r2] ldr r5, _08061564 ldr r2, [r5] ldr r1, _08061568 movs r3, 0x18 ldrsh r1, [r1, r3] lsls r1, 2 adds r0, 0x4 adds r0, r1 ldr r0, [r0] lsls r0, 2 ldr r1, _0806156C adds r2, r1 adds r2, r0 ldr r6, [r2] ldr r4, [r6, 0x70] movs r0, 0x1B movs r1, 0 bl sub_8044F5C movs r0, 0x19 movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _080614C8 ldr r2, [r5] ldr r3, _08061570 adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080614C0 adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080614B8 ldr r1, _08061574 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080614C0 _080614B8: movs r0, 0x34 movs r1, 0 bl sub_8044F5C _080614C0: movs r0, 0x1C movs r1, 0 bl sub_8044F5C _080614C8: movs r0, 0x30 movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _0806154C movs r0, 0x1A movs r1, 0 bl sub_8044F5C ldrb r0, [r4, 0x7] cmp r0, 0 bne _0806154C ldr r0, _08061564 ldr r1, [r0] ldr r2, _08061574 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0806154C ldr r3, _08061578 adds r0, r1, r3 ldrb r0, [r0] bl sub_8090158 lsls r0, 24 cmp r0, 0 beq _0806154C movs r0, 0x3B movs r1, 0 bl sub_8044F5C movs r5, 0x1 ldrb r0, [r4, 0xA] cmp r0, 0x3 bhi _08061530 ldr r2, _0806157C ldrb r1, [r4, 0xA] movs r0, 0x64 muls r1, r0 ldr r0, _08061580 adds r1, r0 ldr r0, [r2] adds r0, r1 movs r1, 0xA ldrsh r0, [r0, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08061532 _08061530: movs r5, 0 _08061532: adds r0, r6, 0 movs r1, 0 bl CannotMove lsls r0, 24 cmp r0, 0 beq _08061542 movs r5, 0 _08061542: cmp r5, 0 bne _0806154C movs r0, 0x3B bl sub_8044FF0 _0806154C: adds r0, r4, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _0806155A cmp r0, 0x47 bne _08061584 _0806155A: movs r0, 0x1 b _08061586 .align 2, 0 _08061560: .4byte gUnknown_202EE6C _08061564: .4byte gDungeonGlobalData _08061568: .4byte gUnknown_202EE10 _0806156C: .4byte 0x0001357c _08061570: .4byte 0x0000065d _08061574: .4byte 0x0000065c _08061578: .4byte 0x00000644 _0806157C: .4byte gRecruitedPokemonRef _08061580: .4byte 0x00008df8 _08061584: movs r0, 0 _08061586: cmp r0, 0 beq _080615A8 movs r0, 0x19 bl sub_8044FF0 movs r0, 0x3B bl sub_8044FF0 movs r0, 0x1A bl sub_8044FF0 movs r0, 0x30 bl sub_8044FF0 movs r0, 0x34 bl sub_8044FF0 _080615A8: bl sub_8045064 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806145C thumb_func_start sub_80615B4 sub_80615B4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldr r1, _080615E0 ldr r0, _080615E4 movs r2, 0x18 ldrsh r0, [r0, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r5, 0 bl SetAction ldm r4!, {r0} lsls r0, 2 adds r4, r0 ldr r0, [r4] strb r0, [r5, 0x4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080615E0: .4byte gUnknown_202EE44 _080615E4: .4byte gUnknown_202EE10 thumb_func_end sub_80615B4 thumb_func_start sub_80615E8 sub_80615E8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C adds r5, r0, 0 mov r4, sp mov r0, sp movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _08061720 str r0, [sp, 0x14] movs r0, 0x3 str r0, [sp, 0x1C] str r0, [sp, 0x34] str r0, [sp, 0x4C] ldr r0, _08061724 ldr r1, [r0] ldrb r0, [r5, 0x4] lsls r0, 2 ldr r2, _08061728 adds r1, r2 adds r1, r0 ldr r1, [r1] str r1, [sp, 0x74] ldr r0, [r1, 0x70] mov r8, r0 movs r1, 0 str r1, [sp, 0x70] movs r2, 0 str r2, [sp, 0x6C] add r0, sp, 0x60 mov r10, r0 _08061646: movs r1, 0x1 str r1, [sp, 0x78] movs r7, 0 ldr r0, _08061720 strb r1, [r0] strb r7, [r0, 0x1] movs r1, 0xA strb r1, [r0, 0x2] strb r7, [r0, 0x3] mov r0, sp movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x6C] mov r1, r10 mov r2, r8 movs r3, 0 bl sub_806195C movs r2, 0 mov r1, r10 ldrb r0, [r1] cmp r0, 0xB beq _08061684 _08061676: adds r2, 0x1 cmp r2, 0x7 bgt _08061684 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xB bne _08061676 _08061684: ldr r4, _0806172C movs r1, 0 strh r2, [r4, 0x1A] movs r0, 0x8 strh r0, [r4, 0x1C] strh r1, [r4, 0x1E] strh r1, [r4, 0x20] strh r1, [r4, 0x4] movs r0, 0x10 strh r0, [r4, 0x6] strh r1, [r4, 0xC] strh r1, [r4, 0xE] strh r1, [r4, 0x14] str r1, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0 bl sub_80137B0 add r2, sp, 0x70 ldrh r2, [r2] strh r2, [r4, 0x18] mov r9, r4 mov r6, r10 _080616BA: mov r0, r9 bl AddMenuCursorSprite ldrb r0, [r6, 0x8] cmp r0, 0xB beq _080616CA bl sub_80623B0 _080616CA: ldr r0, [sp, 0x6C] cmp r0, 0 beq _080616D4 bl sub_8062230 _080616D4: movs r0, 0x3D bl sub_803E46C ldr r0, _08061730 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061740 movs r0, 0x1 bl sub_8083CE0 mov r1, r9 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061738 ldrb r0, [r6, 0x8] cmp r0, 0xB beq _0806171A ldr r5, [sp, 0x6C] adds r5, 0x1 ldr r6, _08061734 movs r4, 0x5 _08061704: ldr r1, [r6] movs r0, 0 bl _call_via_r1 movs r0, 0x3D bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061704 str r5, [sp, 0x6C] _0806171A: movs r0, 0x7 str r0, [sp, 0x70] b _08061926 .align 2, 0 _08061720: .4byte gUnknown_202F270 _08061724: .4byte gDungeonGlobalData _08061728: .4byte 0x0001357c _0806172C: .4byte gUnknown_202EE10 _08061730: .4byte gRealInputs _08061734: .4byte gUnknown_203B080 _08061738: mov r0, r9 movs r1, 0 bl sub_80136E0 _08061740: ldr r0, _08061788 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806179C movs r0, 0x1 bl sub_8083CE0 ldr r1, _0806178C movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061794 ldr r0, [sp, 0x6C] cmp r0, 0 beq _08061780 adds r5, r0, 0 subs r5, 0x1 ldr r6, _08061790 movs r4, 0x5 _0806176A: ldr r1, [r6] movs r0, 0 bl _call_via_r1 movs r0, 0x3D bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0806176A str r5, [sp, 0x6C] _08061780: movs r1, 0 str r1, [sp, 0x70] b _08061926 .align 2, 0 _08061788: .4byte gRealInputs _0806178C: .4byte gUnknown_202EE10 _08061790: .4byte gUnknown_203B084 _08061794: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _0806179C: ldr r4, _080617C8 ldrh r1, [r4, 0x2] movs r0, 0x8 ands r0, r1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 beq _080617DE mov r2, r9 movs r1, 0x18 ldrsh r0, [r2, r1] mov r2, r10 adds r1, r2, r0 ldrb r4, [r1] str r0, [sp, 0x70] bl sub_8083D44 adds r0, r4, 0 bl sub_8062748 _080617C4: movs r7, 0 b _08061926 .align 2, 0 _080617C8: .4byte gRealInputs _080617CC: bl sub_8083D08 mov r0, r9 movs r1, 0x18 ldrsh r4, [r0, r1] cmp r4, 0 beq _080617DC b _08061900 _080617DC: b _080618C4 _080617DE: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080617F4 ldr r2, _080618BC adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 bne _080617F4 b _0806190C _080617F4: mov r2, r9 movs r0, 0x18 ldrsh r1, [r2, r0] mov r2, r10 adds r0, r2, r1 ldrb r7, [r0] str r1, [sp, 0x70] bl sub_8062D68 bl sub_8083D08 ldr r0, _080618C0 str r5, [r0] movs r0, 0x2F movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C ldr r0, [sp, 0x74] movs r1, 0x1 bl CannotMove lsls r0, 24 cmp r0, 0 beq _08061832 movs r0, 0x2F bl sub_8044FF0 _08061832: mov r0, sp movs r1, 0x16 bl sub_805FC30 ldr r5, _080618BC adds r6, r4, 0 adds r4, r5, 0 adds r4, 0x2A _08061842: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x3D bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061866 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08061866: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806187E movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _0806187E: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08061892 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080618A4 _08061892: movs r1, 0x18 ldrsh r0, [r5, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080617CC bl sub_8083D30 _080618A4: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080618B4 ldrb r0, [r4] cmp r0, 0 beq _08061842 _080618B4: bl sub_8083D30 b _080617C4 .align 2, 0 _080618BC: .4byte gUnknown_202EE10 _080618C0: .4byte gUnknown_202EE6C _080618C4: ldr r0, _080618FC bl PlaySoundEffect mov r0, r8 adds r0, 0x94 strb r7, [r0] mov r1, r8 adds r1, 0x78 movs r0, 0x6 strb r0, [r1] mov r0, r8 adds r0, 0x80 str r4, [r0] adds r0, 0x4 str r4, [r0] subs r0, 0x8 strh r4, [r0] mov r2, r8 ldrb r0, [r2, 0x7] cmp r0, 0 beq _080618F0 b _080617C4 _080618F0: ldr r0, [sp, 0x74] movs r1, 0x1 bl MoveIfPossible b _080617C4 .align 2, 0 _080618FC: .4byte 0x00000133 _08061900: adds r0, r7, 0 bl sub_8062748 movs r0, 0 str r0, [sp, 0x78] b _080617C4 _0806190C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08061920 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _08061920 b _080616BA _08061920: bl sub_8083D30 movs r7, 0x1 _08061926: ldr r1, [sp, 0x78] cmp r1, 0 beq _08061932 ldr r0, _08061958 bl AddMenuCursorSprite _08061932: movs r0, 0x3D bl sub_803E46C cmp r7, 0 bne _0806193E b _08061646 _0806193E: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08061958: .4byte gUnknown_202EE10 thumb_func_end sub_80615E8 thumb_func_start sub_806195C sub_806195C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r5, r0, 0 mov r9, r1 str r2, [sp, 0x10] adds r7, r3, 0 subs r5, 0x1 adds r0, r7, 0 bl sub_80073B8 ldr r0, _080619B4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r1, 0 adds r3, r7, 0 bl xxx_call_draw_string movs r0, 0x14 mov r8, r0 movs r1, 0xB mov r0, r9 adds r0, 0x8 _08061994: strb r1, [r0] subs r0, 0x1 cmp r0, r9 bge _08061994 bl sub_8083654 ldrb r1, [r0, 0x9] add r0, sp, 0x4 bl GetAvailTacticsforLvl movs r6, 0x1 negs r6, r6 movs r1, 0 mov r10, r1 b _080619FC .align 2, 0 _080619B4: .4byte gUnknown_80FE954 _080619B8: ldr r0, _080619DC adds r1, r4, 0 bl CopyTacticsNameToBuffer ldr r0, [sp, 0x10] adds r0, 0x94 ldrb r0, [r0] cmp r0, r4 bne _080619E4 mov r0, r10 str r0, [sp] movs r0, 0x10 mov r1, r8 ldr r2, _080619E0 adds r3, r7, 0 bl xxx_format_and_draw b _080619F4 .align 2, 0 _080619DC: .4byte gAvailablePokemonNames _080619E0: .4byte gUnknown_8106BEC _080619E4: mov r1, r10 str r1, [sp] movs r0, 0x10 mov r1, r8 ldr r2, _08061A34 adds r3, r7, 0 bl xxx_format_and_draw _080619F4: adds r6, 0x1 movs r0, 0xC add r8, r0 adds r5, 0x1 _080619FC: cmp r6, 0x9 bgt _08061A1E cmp r5, 0 blt _080619F4 cmp r5, 0xB bgt _080619F4 mov r0, sp adds r0, r5 adds r0, 0x4 ldrb r4, [r0] cmp r6, 0x8 bhi _08061A1A mov r1, r9 adds r0, r1, r6 strb r4, [r0] _08061A1A: cmp r4, 0xB bne _080619B8 _08061A1E: adds r0, r7, 0 bl sub_80073E0 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 _08061A34: .4byte gUnknown_8106BF4 thumb_func_end sub_806195C thumb_func_start sub_8061A38 sub_8061A38: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x130 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 add r4, sp, 0xB0 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _08061AA4 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r0, 0 str r0, [sp, 0x114] mov r8, r0 ldr r0, _08061AA8 ldr r1, [r0] ldrb r0, [r5, 0x4] lsls r0, 2 ldr r2, _08061AAC adds r1, r2 adds r1, r0 ldr r1, [r1] str r1, [sp, 0x110] ldr r0, [r1, 0x70] str r0, [sp, 0x11C] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08061AA0 cmp r0, 0x47 bne _08061AB0 _08061AA0: movs r0, 0x1 b _08061AB2 .align 2, 0 _08061AA4: .4byte gUnknown_202F270 _08061AA8: .4byte gDungeonGlobalData _08061AAC: .4byte 0x0001357c _08061AB0: movs r0, 0 _08061AB2: adds r1, r0, 0 cmp r1, 0 beq _08061ACE movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] str r0, [sp, 0x14] str r0, [sp, 0x18] movs r1, 0x1 str r1, [sp, 0x118] b _08061AFE _08061ACE: cmp r6, 0 beq _08061AE6 movs r0, 0x4 str r0, [sp, 0x4] str r1, [sp, 0x8] str r1, [sp, 0xC] str r1, [sp, 0x10] str r1, [sp, 0x14] str r1, [sp, 0x18] movs r2, 0x1 str r2, [sp, 0x118] b _08061AFE _08061AE6: movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0x5 str r0, [sp, 0x10] str r6, [sp, 0x14] str r6, [sp, 0x18] movs r0, 0x4 str r0, [sp, 0x118] _08061AFE: add r2, sp, 0x5C movs r0, 0 strh r0, [r2] mov r1, sp adds r1, 0x72 strh r0, [r1] ldr r3, _08061BB4 strh r0, [r3, 0x18] subs r1, 0x56 str r1, [sp, 0x12C] add r2, sp, 0x80 mov r9, r2 adds r7, r3, 0 _08061B18: movs r0, 0 mov r10, r0 movs r1, 0 str r1, [sp, 0x120] movs r2, 0 str r2, [sp, 0x124] movs r0, 0x1 str r0, [sp, 0x128] ldr r4, _08061BB8 ldr r1, _08061BBC add r2, sp, 0x118 ldrb r2, [r2] strb r2, [r1] add r0, sp, 0x114 ldrb r0, [r0] strb r0, [r1, 0x1] movs r0, 0xA strb r0, [r1, 0x2] mov r2, r10 strb r2, [r1, 0x3] add r0, sp, 0xB0 movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x12C] ldr r1, [sp, 0x110] bl sub_8069844 ldr r1, [sp, 0x114] lsls r0, r1, 2 mov r5, sp adds r5, r0 adds r5, 0x4 ldr r0, [r5] mov r2, r10 str r2, [sp] ldr r2, [sp, 0x12C] add r3, sp, 0x80 bl CreatePokemonInfoTabScreen add r0, sp, 0x114 ldrh r0, [r0] strh r0, [r7, 0x1E] add r1, sp, 0x118 ldrh r1, [r1] strh r1, [r7, 0x20] movs r2, 0 ldrsh r0, [r4, r2] adds r0, 0xF lsls r0, 3 strh r0, [r7, 0xC] movs r1, 0x2 ldrsh r0, [r4, r1] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r7, 0xE] mov r2, r10 strh r2, [r7, 0x14] strh r2, [r7, 0x4] movs r0, 0x10 strh r0, [r7, 0x6] mov r0, r10 str r0, [r7] adds r0, r7, 0 adds r0, 0x28 bl sub_801317C mov r1, r10 strh r1, [r7, 0x18] strh r1, [r7, 0x1A] strh r1, [r7, 0x1C] ldr r5, [r5] cmp r5, 0x1 bne _08061C10 movs r2, 0 add r1, sp, 0x8C b _08061BC8 .align 2, 0 _08061BB4: .4byte gUnknown_202EE10 _08061BB8: .4byte gUnknown_2027370 _08061BBC: .4byte gUnknown_202F270 _08061BC0: adds r1, 0x4 adds r2, 0x1 cmp r2, 0x7 bgt _08061BCE _08061BC8: ldr r0, [r1] cmp r0, 0 bne _08061BC0 _08061BCE: cmp r2, 0 beq _08061C44 movs r0, 0x1 str r0, [sp, 0x124] strh r2, [r7, 0x1A] b _08061C38 _08061BDA: movs r0, 0x18 ldrsh r2, [r7, r0] lsls r1, r2, 2 add r0, sp, 0x8C adds r0, r1 ldr r4, [r0] mov r8, r2 bl sub_8083D44 adds r0, r4, 0 bl sub_806285C movs r1, 0 str r1, [sp, 0x128] b _080621E4 _08061BF8: movs r2, 0x18 ldrsh r0, [r7, r2] mov r2, r9 adds r1, r2, r0 ldrb r4, [r1] mov r8, r0 bl sub_8083D44 adds r0, r4, 0 bl sub_806262C b _08062082 _08061C10: cmp r5, 0x4 bne _08061C48 movs r1, 0 add r2, sp, 0x80 ldrb r0, [r2] cmp r0, 0 beq _08061C2E mov r2, r9 _08061C20: adds r1, 0x1 cmp r1, 0x7 bgt _08061C2E adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _08061C20 _08061C2E: cmp r1, 0 beq _08061C44 movs r0, 0x1 str r0, [sp, 0x120] strh r1, [r7, 0x1A] _08061C38: movs r0, 0x8 strh r0, [r7, 0x1C] adds r0, r7, 0 movs r1, 0 bl sub_80137B0 _08061C44: mov r1, r8 strh r1, [r7, 0x18] _08061C48: ldr r0, _08061CF8 bl AddMenuCursorSprite movs r0, 0 ldr r1, _08061CFC bl sub_8014140 adds r4, r0, 0 movs r5, 0 movs r6, 0 ldr r2, [sp, 0x120] cmp r2, 0 beq _08061C80 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061C70 movs r5, 0x1 bl sub_80623B0 _08061C70: add r1, sp, 0x5C movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08061C80 movs r6, 0x1 bl sub_8062230 _08061C80: ldr r2, [sp, 0x124] cmp r2, 0 beq _08061CA6 mov r1, r9 ldr r0, [r1, 0x2C] cmp r0, 0 beq _08061C94 movs r5, 0x1 bl sub_80623B0 _08061C94: movs r1, 0x72 add r1, sp movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08061CA6 movs r6, 0x1 bl sub_8062230 _08061CA6: movs r0, 0x1C bl sub_803E46C ldr r0, _08061D00 ldrb r0, [r0] cmp r0, 0x1 bls _08061D4E bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _08061D4E ldr r0, _08061D04 ldrh r1, [r0, 0x2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08061CD6 ldr r2, _08061CF8 adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08061D08 _08061CD6: movs r0, 0 bl sub_8083CE0 ldr r2, [sp, 0x114] adds r2, 0x1 str r2, [sp, 0x114] lsls r0, r2, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] cmp r0, 0 beq _08061CF0 b _080621E6 _08061CF0: movs r0, 0 str r0, [sp, 0x114] b _080621E6 .align 2, 0 _08061CF8: .4byte gUnknown_202EE10 _08061CFC: .4byte gUnknown_8106B8C _08061D00: .4byte gUnknown_202F270 _08061D04: .4byte gRealInputs _08061D08: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08061D1A adds r0, r2, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08061D4E _08061D1A: movs r0, 0 bl sub_8083CE0 ldr r1, [sp, 0x114] subs r1, 0x1 str r1, [sp, 0x114] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08061D30 b _080621E6 _08061D30: movs r2, 0x5 str r2, [sp, 0x114] ldr r0, [sp, 0x18] cmp r0, 0 beq _08061D3C b _080621E6 _08061D3C: add r1, sp, 0x18 _08061D3E: subs r1, 0x4 ldr r0, [sp, 0x114] subs r0, 0x1 str r0, [sp, 0x114] ldr r0, [r1] cmp r0, 0 beq _08061D3E b _080621E6 _08061D4E: ldr r1, [sp, 0x124] cmp r1, 0 bne _08061D56 b _08061E8A _08061D56: cmp r4, 0x2 bne _08061D98 cmp r5, 0 beq _08061D98 movs r0, 0 bl sub_8083CE0 mov r2, r9 ldr r0, [r2, 0x2C] cmp r0, 0 beq _08061D8E ldr r5, _08061D94 movs r4, 0x5 _08061D70: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061D70 movs r1, 0x72 add r1, sp ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08061D8E: movs r2, 0x7 mov r8, r2 b _080621E6 .align 2, 0 _08061D94: .4byte gUnknown_203B080 _08061D98: ldr r0, _08061DDC ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061DF0 movs r0, 0 bl sub_8083CE0 ldr r1, _08061DE0 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061DE8 mov r1, r9 ldr r0, [r1, 0x2C] cmp r0, 0 bne _08061DBE b _08061F04 _08061DBE: ldr r5, _08061DE4 movs r4, 0x5 _08061DC2: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061DC2 movs r2, 0x72 add r2, sp b _08061EFE .align 2, 0 _08061DDC: .4byte gRealInputs _08061DE0: .4byte gUnknown_202EE10 _08061DE4: .4byte gUnknown_203B080 _08061DE8: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08061DF0: cmp r4, 0x1 bne _08061E28 cmp r6, 0 beq _08061E28 movs r2, 0x72 add r2, sp movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 bne _08061E06 b _08061F96 _08061E06: ldr r5, _08061E24 movs r4, 0x5 _08061E0A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061E0A movs r1, 0x72 add r1, sp b _08061F90 .align 2, 0 _08061E24: .4byte gUnknown_203B084 _08061E28: ldr r0, _08061E74 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08061E36 b _08061FB0 _08061E36: movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061E78 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061E80 movs r2, 0x72 add r2, sp movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 bne _08061E54 b _08061F96 _08061E54: ldr r5, _08061E7C movs r4, 0x5 _08061E58: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061E58 movs r1, 0x72 add r1, sp b _08061F90 .align 2, 0 _08061E74: .4byte gRealInputs _08061E78: .4byte gUnknown_202EE10 _08061E7C: .4byte gUnknown_203B084 _08061E80: adds r0, r1, 0 movs r1, 0 bl sub_8013744 b _08061FB0 _08061E8A: ldr r0, [sp, 0x120] cmp r0, 0 bne _08061E92 b _08061FB0 _08061E92: cmp r4, 0x2 bne _08061EC0 cmp r5, 0 beq _08061EC0 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061F04 ldr r5, _08061EBC movs r4, 0x5 _08061EA6: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061EA6 b _08061EFC .align 2, 0 _08061EBC: .4byte gUnknown_203B080 _08061EC0: ldr r0, _08061F0C ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08061F20 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061F10 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08061F18 mov r1, r9 ldrb r0, [r1, 0x8] cmp r0, 0 beq _08061F04 ldr r5, _08061F14 movs r4, 0x5 _08061EE8: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061EE8 _08061EFC: add r2, sp, 0x5C _08061EFE: ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] _08061F04: movs r0, 0x7 mov r8, r0 b _080621E6 .align 2, 0 _08061F0C: .4byte gRealInputs _08061F10: .4byte gUnknown_202EE10 _08061F14: .4byte gUnknown_203B080 _08061F18: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08061F20: cmp r4, 0x1 bne _08061F50 cmp r6, 0 beq _08061F50 add r2, sp, 0x5C movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 beq _08061F96 ldr r5, _08061F4C movs r4, 0x5 _08061F36: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061F36 b _08061F8E .align 2, 0 _08061F4C: .4byte gUnknown_203B084 _08061F50: ldr r0, _08061F9C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08061FB0 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08061FA0 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08061FA8 add r2, sp, 0x5C movs r1, 0 ldrsh r0, [r2, r1] cmp r0, 0 beq _08061F96 ldr r5, _08061FA4 movs r4, 0x5 _08061F7A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08061F7A _08061F8E: add r1, sp, 0x5C _08061F90: ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _08061F96: movs r2, 0 mov r8, r2 b _080621E6 .align 2, 0 _08061F9C: .4byte gRealInputs _08061FA0: .4byte gUnknown_202EE10 _08061FA4: .4byte gUnknown_203B084 _08061FA8: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _08061FB0: bl sub_80048C8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08061FBE b _08061C48 _08061FBE: ldr r5, _0806208C ldrh r1, [r5, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08061FDA ldr r0, [sp, 0x124] cmp r0, 0 beq _08061FD2 b _08061BDA _08061FD2: ldr r2, [sp, 0x120] cmp r2, 0 beq _08061FDA b _08061BF8 _08061FDA: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08061FF0 ldr r2, _08062090 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 bne _08061FF0 b _080621CA _08061FF0: ldr r0, [sp, 0x124] cmp r0, 0 beq _080620BC movs r1, 0x18 ldrsh r2, [r7, r1] lsls r1, r2, 2 add r0, sp, 0x8C adds r0, r1 ldr r6, [r0] mov r8, r2 bl sub_8062D68 ldr r0, _08062094 str r4, [r0] bl sub_8083D08 movs r0, 0xC movs r1, 0 bl sub_8044F5C add r0, sp, 0xB0 movs r1, 0x16 bl sub_805FC30 ldr r4, _08062090 movs r2, 0x2A adds r2, r4 mov r10, r2 _08062028: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1C bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806204C movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _0806204C: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08062064 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08062064: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062078 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062098 _08062078: bl sub_8083D08 adds r0, r6, 0 bl sub_806285C _08062082: movs r0, 0 str r0, [sp, 0x128] mov r10, r0 b _080621E6 .align 2, 0 _0806208C: .4byte gRealInputs _08062090: .4byte gUnknown_202EE10 _08062094: .4byte gUnknown_202EE6C _08062098: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080620A8 mov r1, r10 ldrb r0, [r1] cmp r0, 0 beq _08062028 _080620A8: bl sub_8083D30 b _080621BA _080620AE: bl sub_8083D08 movs r1, 0x18 ldrsh r0, [r7, r1] cmp r0, 0 bne _080621B0 b _08062198 _080620BC: ldr r2, [sp, 0x120] cmp r2, 0 bne _080620C4 b _080621C0 _080620C4: movs r0, 0x18 ldrsh r1, [r7, r0] mov r2, r9 adds r0, r2, r1 ldrb r6, [r0] mov r8, r1 bl sub_8062D68 ldr r0, _08062190 ldr r1, [sp, 0x124] str r1, [r0] bl sub_8083D08 movs r0, 0x28 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C ldr r0, [sp, 0x110] movs r1, 0x1 bl CannotMove lsls r0, 24 cmp r0, 0 beq _08062102 movs r0, 0x28 bl sub_8044FF0 _08062102: add r0, sp, 0xB0 movs r1, 0x16 bl sub_805FC30 ldr r4, _08062194 movs r2, 0x2A adds r2, r4 mov r10, r2 _08062112: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1C bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08062136 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08062136: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806214E movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _0806214E: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062162 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062174 _08062162: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080620AE bl sub_8083D30 _08062174: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062186 mov r2, r10 ldrb r0, [r2] cmp r0, 0 beq _08062112 _08062186: bl sub_8083D30 movs r0, 0 mov r10, r0 b _080621E6 .align 2, 0 _08062190: .4byte gUnknown_202EE6C _08062194: .4byte gUnknown_202EE10 _08062198: ldr r0, _080621AC bl PlaySoundEffect ldr r0, [sp, 0x11C] adds r0, 0x8C adds r1, r6, 0 bl ToggleIQSkill b _080621BA .align 2, 0 _080621AC: .4byte 0x00000133 _080621B0: adds r0, r6, 0 bl sub_806262C movs r1, 0 str r1, [sp, 0x128] _080621BA: movs r2, 0 mov r10, r2 b _080621E6 _080621C0: bl sub_8083D08 movs r0, 0x1 mov r10, r0 b _080621E6 _080621CA: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080621DE adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080621DE b _08061C48 _080621DE: bl sub_8083D30 movs r1, 0x1 _080621E4: mov r10, r1 _080621E6: ldr r2, [sp, 0x128] cmp r2, 0 beq _08062204 ldr r0, [sp, 0x120] cmp r0, 0 bne _080621F8 ldr r1, [sp, 0x124] cmp r1, 0 beq _080621FE _080621F8: ldr r0, _0806222C bl AddMenuCursorSprite _080621FE: movs r0, 0x1C bl sub_803E46C _08062204: mov r2, r10 cmp r2, 0 bne _0806220C b _08061B18 _0806220C: movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x110] bl LoadIQSkills add sp, 0x130 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806222C: .4byte gUnknown_202EE10 thumb_func_end sub_8061A38 thumb_func_start sub_8062230 sub_8062230: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _08062380 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _08062248 b _08062372 _08062248: ldr r0, _08062384 mov r9, r0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _08062388 ands r1, r0 ldr r3, _0806238C ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08062390 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r6, _08062394 mov r8, r6 mov r0, r8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08062398 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _0806239C ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r6, _080623A0 adds r0, r6, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] movs r1, 0x80 lsls r1, 6 mov r5, sp ldrh r0, [r5, 0x2] ldr r2, _080623A4 ands r2, r0 orrs r2, r1 ands r2, r6 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 mov r1, r8 ands r0, r1 movs r3, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080623A8 ands r0, r4 orrs r0, r1 strh r0, [r5, 0x4] mov r6, r9 movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x8 ands r0, r4 lsls r0, 4 ldrh r1, [r5, 0x6] ands r3, r1 orrs r3, r0 strh r3, [r5, 0x6] movs r3, 0 ldrsh r0, [r6, r3] lsls r0, 3 adds r0, 0x40 ldr r1, _080623AC ands r0, r1 movs r1, 0xFE lsls r1, 8 ands r2, r1 orrs r2, r0 strh r2, [r5, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08062372: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08062380: .4byte gUnknown_202EDCC _08062384: .4byte gUnknown_2027370 _08062388: .4byte 0x0000feff _0806238C: .4byte 0xffff0000 _08062390: .4byte 0x0000fdff _08062394: .4byte 0x0000f3ff _08062398: .4byte 0x0000efff _0806239C: .4byte 0x0000dfff _080623A0: .4byte 0x00003fff _080623A4: .4byte 0x0000c1ff _080623A8: .4byte 0x00000fff _080623AC: .4byte 0x000001ff thumb_func_end sub_8062230 thumb_func_start sub_80623B0 sub_80623B0: push {r4-r6,lr} sub sp, 0x8 ldr r0, _080624D4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080623C2 b _080624CA _080623C2: ldr r6, _080624D8 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _080624DC ands r1, r0 ldr r3, _080624E0 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624E4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080624E8 adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624EC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080624F0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _080624F4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080624F8 ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x70 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x40 ldr r1, _080624FC ands r0, r1 strh r0, [r3, 0x2] subs r1, 0xFF mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _080624CA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080624D4: .4byte gUnknown_202EDCC _080624D8: .4byte gUnknown_2027370 _080624DC: .4byte 0x0000feff _080624E0: .4byte 0xffff0000 _080624E4: .4byte 0x0000fdff _080624E8: .4byte 0x0000f3ff _080624EC: .4byte 0x0000efff _080624F0: .4byte 0x0000dfff _080624F4: .4byte 0x00003fff _080624F8: .4byte 0x00000fff _080624FC: .4byte 0x000001ff thumb_func_end sub_80623B0 thumb_func_start sub_8062500 sub_8062500: push {r4,r5,lr} ldr r0, _0806257C ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _08062574 ldr r5, _08062580 ldr r0, _08062584 ldrh r2, [r0] ldr r1, _08062588 ands r1, r2 ldr r2, _0806258C ands r1, r2 ldr r4, _08062590 ands r1, r4 ldr r2, _08062594 ands r1, r2 ldr r2, _08062598 ands r1, r2 movs r3, 0x80 lsls r3, 7 ldr r2, _0806259C ands r1, r2 orrs r1, r3 strh r1, [r0] movs r3, 0xFC lsls r3, 2 ldrh r2, [r0, 0x4] movs r1, 0xFC lsls r1, 8 ands r1, r2 orrs r1, r3 ands r1, r4 movs r3, 0xF movs r2, 0xF0 lsls r2, 8 ldr r4, _080625A0 ands r1, r4 orrs r1, r2 strh r1, [r0, 0x4] movs r2, 0x2 ldrsh r1, [r5, r2] lsls r1, 3 adds r1, 0x60 ands r1, r4 lsls r1, 4 ldrh r2, [r0, 0x6] ands r3, r2 orrs r3, r1 strh r3, [r0, 0x6] movs r1, 0x70 strh r1, [r0, 0x2] adds r1, 0x90 movs r2, 0 movs r3, 0 bl AddSprite _08062574: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806257C: .4byte gUnknown_202EDCC _08062580: .4byte gUnknown_2027370 _08062584: .4byte gUnknown_202F268 _08062588: .4byte 0x0000feff _0806258C: .4byte 0x0000fdff _08062590: .4byte 0x0000f3ff _08062594: .4byte 0x0000efff _08062598: .4byte 0x0000dfff _0806259C: .4byte 0x00003fff _080625A0: .4byte 0x00000fff thumb_func_end sub_8062500 thumb_func_start sub_80625A4 sub_80625A4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r7, r0, 0 mov r9, r1 mov r0, sp bl sub_801317C movs r4, 0 cmp r4, r7 bge _0806261A subs r0, r7, 0x1 mov r8, r0 mov r5, sp _080625C4: lsls r0, r4, 2 add r0, r9 ldr r0, [r0] mov r1, sp bl sub_80639E4 adds r6, r4, 0x1 b _080625E8 _080625D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080625E2 ldrb r0, [r5, 0x2] cmp r0, 0 beq _080625E8 _080625E2: bl sub_8083D30 b _08062614 _080625E8: cmp r4, r8 bge _080625F0 bl sub_8062500 _080625F0: mov r0, sp movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08062628 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062610 ldrb r0, [r5, 0x1] cmp r0, 0 beq _080625D4 _08062610: bl sub_8083D08 _08062614: adds r4, r6, 0 cmp r4, r7 blt _080625C4 _0806261A: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062628: .4byte gRealInputs thumb_func_end sub_80625A4 thumb_func_start sub_806262C sub_806262C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x88 lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r0, sp adds r0, 0x70 str r0, [sp, 0x84] add r0, sp, 0x10 mov r8, r0 movs r0, 0 mov r9, r0 add r7, sp, 0x4 add r6, sp, 0x80 _08062650: add r0, sp, 0x4 bl sub_801317C mov r0, r8 bl sub_80140B4 mov r0, r8 str r6, [r0, 0x14] movs r1, 0x1 add r0, sp, 0x80 strb r1, [r0] mov r0, r9 strb r0, [r6, 0x1] movs r0, 0x10 strb r0, [r6, 0x2] mov r0, r9 strb r0, [r6, 0x3] mov r0, r8 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 mov r0, r10 bl GetIQSkillName adds r1, r0, 0 ldr r0, _080626CC bl strcpy ldr r0, _080626D0 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw mov r0, r10 bl GetIQSkillDescription adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 mov r0, r10 bl GetIQSkillDescription ldr r1, [sp, 0x84] bl sub_8097DF0 adds r5, r0, 0 b _080626EA .align 2, 0 _080626CC: .4byte gUnknown_202DE58 _080626D0: .4byte gUnknown_80FE95C _080626D4: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080626E2 ldrb r0, [r7, 0x2] cmp r0, 0 beq _080626EA _080626E2: movs r4, 0x1 bl sub_8083D30 b _08062718 _080626EA: cmp r5, 0 beq _080626F2 bl sub_8062500 _080626F2: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _0806272C ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062712 ldrb r0, [r7, 0x1] cmp r0, 0 beq _080626D4 _08062712: movs r4, 0 bl sub_8083D08 _08062718: cmp r4, 0 bne _08062730 cmp r5, 0 beq _08062730 adds r0, r5, 0 ldr r1, [sp, 0x84] bl sub_80625A4 b _08062650 .align 2, 0 _0806272C: .4byte gRealInputs _08062730: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0x88 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806262C thumb_func_start sub_8062748 sub_8062748: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x88 lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r0, sp adds r0, 0x70 str r0, [sp, 0x84] add r0, sp, 0x10 mov r8, r0 movs r0, 0 mov r9, r0 add r7, sp, 0x4 add r6, sp, 0x80 _0806276C: add r0, sp, 0x4 bl sub_801317C mov r0, r8 bl sub_80140B4 mov r0, r8 str r6, [r0, 0x14] movs r1, 0x1 add r0, sp, 0x80 strb r1, [r0] mov r0, r9 strb r0, [r6, 0x1] movs r0, 0x10 strb r0, [r6, 0x2] mov r0, r9 strb r0, [r6, 0x3] mov r0, r8 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 ldr r0, _080627E0 mov r1, r10 bl CopyTacticsNameToBuffer ldr r0, _080627E4 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw mov r0, r10 bl GetTacticsDescription adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 mov r0, r10 bl GetTacticsDescription ldr r1, [sp, 0x84] bl sub_8097DF0 adds r5, r0, 0 b _080627FE .align 2, 0 _080627E0: .4byte gUnknown_202DE58 _080627E4: .4byte gUnknown_80FE960 _080627E8: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080627F6 ldrb r0, [r7, 0x2] cmp r0, 0 beq _080627FE _080627F6: movs r4, 0x1 bl sub_8083D30 b _0806282C _080627FE: cmp r5, 0 beq _08062806 bl sub_8062500 _08062806: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x3E bl sub_803E46C ldr r0, _08062840 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062826 ldrb r0, [r7, 0x1] cmp r0, 0 beq _080627E8 _08062826: movs r4, 0 bl sub_8083D08 _0806282C: cmp r4, 0 bne _08062844 cmp r5, 0 beq _08062844 adds r0, r5, 0 ldr r1, [sp, 0x84] bl sub_80625A4 b _0806276C .align 2, 0 _08062840: .4byte gRealInputs _08062844: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0x88 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8062748 thumb_func_start sub_806285C sub_806285C: push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xD4 mov r10, r0 add r0, sp, 0x10 mov r8, r0 add r5, sp, 0x70 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r1, sp, 0x78 movs r6, 0 movs r0, 0 mov r9, r0 movs r0, 0x2 strh r0, [r1] strh r0, [r1, 0x2] add r1, sp, 0x7C movs r0, 0x1A strh r0, [r1] mov r0, sp adds r0, 0x7E movs r1, 0xC strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r0, sp, 0x84 add r4, sp, 0xD0 str r4, [r0] add r0, sp, 0x88 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xA0 str r1, [r0, 0x4] add r0, sp, 0xB8 str r1, [r0, 0x4] mov r0, r8 adds r1, r5, 0 movs r2, 0x60 bl memcpy add r0, sp, 0x4 bl sub_801317C movs r0, 0x1 strb r0, [r4] strb r6, [r4, 0x1] movs r0, 0x10 strb r0, [r4, 0x2] strb r6, [r4, 0x3] mov r0, r8 movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 mov r0, r10 bl sub_808E4FC adds r1, r0, 0 ldr r0, _0806291C bl strcpy ldr r0, _08062920 ldr r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw mov r0, r10 bl sub_808E51C adds r2, r0, 0 mov r0, r9 str r0, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 add r4, sp, 0x4 b _08062938 .align 2, 0 _0806291C: .4byte gUnknown_202DE58 _08062920: .4byte gUnknown_80FE964 _08062924: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062932 ldrb r0, [r4, 0x2] cmp r0, 0 beq _08062938 _08062932: bl sub_8083D30 b _0806295C _08062938: add r0, sp, 0x4 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08062974 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062958 ldrb r0, [r4, 0x1] cmp r0, 0 beq _08062924 _08062958: bl sub_8083D08 _0806295C: movs r0, 0x4 movs r1, 0x3E bl sub_803E708 add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08062974: .4byte gRealInputs thumb_func_end sub_806285C thumb_func_start DrawFieldGiveItemMenu DrawFieldGiveItemMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x80 mov r8, r0 adds r6, r1, 0 add r4, sp, 0x1C ldr r1, _080629AC adds r0, r4, 0 movs r2, 0x60 bl memcpy movs r0, 0 str r0, [sp, 0x7C] mov r1, r8 cmp r1, 0 beq _080629A2 subs r0, 0x1 str r0, [r1] _080629A2: cmp r6, 0x1 bne _080629BA add r1, sp, 0x4C ldr r0, _080629B0 b _080629C2 .align 2, 0 _080629AC: .4byte gUnknown_8106C30 _080629B0: .4byte gUnknown_8106C00 _080629B4: bl sub_8083D08 b _08062AF4 _080629BA: cmp r6, 0x2 bne _080629CA add r1, sp, 0x4C ldr r0, _08062A38 _080629C2: ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _080629CA: add r0, sp, 0x4 adds r1, r4, 0 movs r2, 0 bl DrawFieldTeamMenu movs r0, 0x1 bl sub_80073B8 ldr r0, _08062A3C ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0x3 movs r3, 0x1 bl xxx_call_draw_string movs r0, 0x1 bl sub_80073E0 ldr r0, _08062A40 mov r9, r0 add r7, sp, 0x8 ldr r1, _08062A44 mov r10, r1 _080629FC: mov r2, r10 movs r3, 0x18 ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r7, r0 ldr r5, [r0] cmp r5, 0 blt _08062A70 ldr r0, _08062A48 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062A4C adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08062A5A cmp r9, r5 beq _08062A5A cmp r6, 0x1 bne _08062A50 adds r0, r4, 0 bl sub_8062B74 b _08062A5A .align 2, 0 _08062A38: .4byte gUnknown_8106C18 _08062A3C: .4byte gWhichTextPtr2 _08062A40: .4byte 0xfffffc27 _08062A44: .4byte gUnknown_202EE10 _08062A48: .4byte gDungeonGlobalData _08062A4C: .4byte 0x0001357c _08062A50: cmp r6, 0x2 bne _08062A5A adds r0, r4, 0 bl sub_8062CA8 _08062A5A: mov r9, r5 adds r0, r4, 0 movs r1, 0 bl sub_806A2BC adds r0, r4, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08062A70: ldr r5, _08062B40 adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldr r4, _08062B44 ldrh r1, [r4, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08062A98 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08062A98: ldrh r1, [r4, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08062AB0 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08062AB0: ldrh r1, [r4, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062AC4 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08062AD8 _08062AC4: movs r3, 0x18 ldrsh r0, [r5, r3] add r1, sp, 0x18 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _08062AD4 b _080629B4 _08062AD4: bl sub_8083D30 _08062AD8: ldr r0, _08062B44 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08062AEC ldr r5, _08062B48 ldrb r0, [r5] cmp r0, 0 beq _080629FC _08062AEC: bl sub_8083D30 movs r0, 0x1 str r0, [sp, 0x7C] _08062AF4: ldr r4, _08062B40 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C bl sub_804AA60 bl GetLeaderEntity movs r1, 0 bl sub_806A2BC movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x4 movs r1, 0x3E bl sub_803E708 ldr r1, [sp, 0x7C] cmp r1, 0 bne _08062B3C movs r2, 0x18 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r7, r0 ldr r5, [r0] mov r3, r8 cmp r3, 0 beq _08062B38 str r5, [r3] _08062B38: cmp r5, 0 bge _08062B4C _08062B3C: movs r0, 0 b _08062B5A .align 2, 0 _08062B40: .4byte gUnknown_202EE10 _08062B44: .4byte gRealInputs _08062B48: .4byte gUnknown_202EE3A _08062B4C: ldr r0, _08062B6C ldr r0, [r0] lsls r1, r5, 2 ldr r5, _08062B70 adds r0, r5 adds r0, r1 ldr r0, [r0] _08062B5A: add sp, 0x80 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08062B6C: .4byte gDungeonGlobalData _08062B70: .4byte 0x0001357c thumb_func_end DrawFieldGiveItemMenu thumb_func_start sub_8062B74 sub_8062B74: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r0 ldr r0, [r0, 0x70] mov r9, r0 movs r0, 0x2 bl sub_8008C54 movs r0, 0x2 bl sub_80073B8 ldr r0, _08062BD0 mov r1, r10 movs r2, 0 bl SetMessageArgument ldr r0, _08062BD4 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0x2 bl xxx_format_and_draw movs r1, 0x10 mov r8, r1 mov r0, r9 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08062BDE mov r0, r9 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08062BCA cmp r0, 0x47 bne _08062BD8 _08062BCA: movs r0, 0x1 b _08062BDA .align 2, 0 _08062BD0: .4byte gAvailablePokemonNames _08062BD4: .4byte gUnknown_80FE978 _08062BD8: movs r0, 0 _08062BDA: cmp r0, 0 beq _08062BF4 _08062BDE: ldr r2, _08062BF0 movs r0, 0 str r0, [sp] movs r0, 0xC mov r1, r8 movs r3, 0x2 bl xxx_format_and_draw b _08062C8A .align 2, 0 _08062BF0: .4byte gUnknown_8106C90 _08062BF4: movs r7, 0 movs r4, 0x8C lsls r4, 1 add r4, r9 adds r5, r4, 0 _08062BFE: add r0, sp, 0x4 movs r1, 0 movs r2, 0xC bl memset movs r0, 0x6A str r0, [sp, 0x8] ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08062C80 mov r1, r9 ldrb r0, [r1, 0x7] cmp r0, 0 beq _08062C22 movs r0, 0x2 b _08062C24 _08062C22: movs r0, 0x4 _08062C24: str r0, [sp, 0x4] mov r0, r10 adds r1, r5, 0 movs r2, 0x1 bl IsMoveUsable_2 add r1, sp, 0x4 movs r2, 0 lsls r0, 24 cmp r0, 0 bne _08062C3C movs r2, 0x1 _08062C3C: strb r2, [r1, 0x8] ldr r0, _08062CA0 adds r1, r5, 0 add r2, sp, 0x4 bl sub_80928C0 ldrb r1, [r4] movs r0, 0x2 ands r0, r1 movs r6, 0xD cmp r0, 0 bne _08062C6C movs r6, 0x8 cmp r7, 0 beq _08062C6C mov r2, r8 subs r2, 0x2 movs r0, 0x7 str r0, [sp] movs r0, 0x2 movs r1, 0xC movs r3, 0x78 bl sub_80078A4 _08062C6C: movs r0, 0 str r0, [sp] adds r0, r6, 0 mov r1, r8 ldr r2, _08062CA4 movs r3, 0x2 bl xxx_format_and_draw movs r0, 0xC add r8, r0 _08062C80: adds r4, 0x8 adds r5, 0x8 adds r7, 0x1 cmp r7, 0x3 ble _08062BFE _08062C8A: movs r0, 0x2 bl sub_80073E0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062CA0: .4byte gUnknown_202DE58 _08062CA4: .4byte gUnknown_8106C98 thumb_func_end sub_8062B74 thumb_func_start sub_8062CA8 sub_8062CA8: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r5, [r4, 0x70] movs r0, 0x2 bl sub_8008C54 movs r0, 0x2 bl sub_80073B8 ldr r0, _08062CF8 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08062CFC ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0x2 bl xxx_format_and_draw movs r7, 0x8 movs r6, 0x12 adds r0, r5, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 beq _08062D08 adds r0, r5, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A beq _08062CF4 cmp r0, 0x47 bne _08062D00 _08062CF4: movs r0, 0x1 b _08062D02 .align 2, 0 _08062CF8: .4byte gAvailablePokemonNames _08062CFC: .4byte gUnknown_80FE940 _08062D00: movs r0, 0 _08062D02: adds r4, r0, 0 cmp r4, 0 beq _08062D18 _08062D08: ldr r2, _08062D14 movs r0, 0 str r0, [sp] movs r0, 0x8 b _08062D2C .align 2, 0 _08062D14: .4byte gUnknown_8106C90 _08062D18: adds r2, r5, 0 adds r2, 0x60 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08062D3C ldr r2, _08062D38 str r4, [sp] adds r0, r7, 0 _08062D2C: adds r1, r6, 0 movs r3, 0x2 bl xxx_format_and_draw b _08062D52 .align 2, 0 _08062D38: .4byte gUnknown_8106C9C _08062D3C: ldr r0, _08062D60 adds r1, r2, 0 bl sub_8045C18 ldr r2, _08062D64 str r4, [sp] adds r0, r7, 0 adds r1, r6, 0 movs r3, 0x2 bl xxx_format_and_draw _08062D52: movs r0, 0x2 bl sub_80073E0 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08062D60: .4byte gUnknown_202DE58 _08062D64: .4byte gUnknown_8106C98 thumb_func_end sub_8062CA8 thumb_func_start sub_8062D68 sub_8062D68: push {lr} ldr r0, _08062D84 movs r1, 0 strh r1, [r0, 0x1E] strh r1, [r0, 0x20] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x14] adds r0, 0x28 bl sub_801317C pop {r0} bx r0 .align 2, 0 _08062D84: .4byte gUnknown_202EE10 thumb_func_end sub_8062D68 thumb_func_start sub_8062D88 sub_8062D88: movs r0, 0x1 bx lr thumb_func_end sub_8062D88 thumb_func_start sub_8062D8C sub_8062D8C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r10, r0 ldrb r5, [r0, 0x4] ldr r0, _08062E24 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062E28 adds r0, r2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x4] adds r7, r0, 0 _08062DAE: movs r0, 0 mov r9, r0 movs r6, 0 movs r4, 0 adds r2, r7, 0x4 mov r8, r2 _08062DBA: ldr r0, _08062E24 ldr r0, [r0] lsls r1, r4, 2 ldr r2, _08062E28 adds r0, r2 adds r0, r1 ldr r0, [r0] bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062DDA cmp r4, r5 bne _08062DD8 mov r9, r6 _08062DD8: adds r6, 0x1 _08062DDA: adds r4, 0x1 cmp r4, 0x3 ble _08062DBA adds r0, r7, 0 movs r1, 0 bl sub_806A2BC mov r0, r8 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 movs r0, 0x1 bl sub_8044C10 str r6, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x1 mov r3, r9 bl sub_8062F90 lsls r0, 24 cmp r0, 0 beq _08062E10 b _08062F80 _08062E10: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bne _08062E6C adds r6, r5, 0 movs r4, 0 b _08062E2E .align 2, 0 _08062E24: .4byte gDungeonGlobalData _08062E28: .4byte 0x0001357c _08062E2C: adds r4, 0x1 _08062E2E: cmp r4, 0x3 bgt _08062E54 adds r5, 0x1 cmp r5, 0x3 ble _08062E3A movs r5, 0 _08062E3A: ldr r0, _08062E64 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062E68 adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062E2C _08062E54: mov r0, r10 strb r5, [r0, 0x4] cmp r6, r5 beq _08062F32 movs r0, 0 bl sub_8083CE0 b _08062F32 .align 2, 0 _08062E64: .4byte gDungeonGlobalData _08062E68: .4byte 0x0001357c _08062E6C: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bne _08062EC0 adds r6, r5, 0 movs r4, 0 b _08062E80 _08062E7E: adds r4, 0x1 _08062E80: cmp r4, 0x3 bgt _08062EA6 subs r5, 0x1 cmp r5, 0 bge _08062E8C movs r5, 0x3 _08062E8C: ldr r0, _08062EB8 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _08062EBC adds r0, r2 adds r0, r1 ldr r7, [r0] adds r0, r7, 0 bl sub_8071A8C lsls r0, 24 cmp r0, 0 beq _08062E7E _08062EA6: mov r0, r10 strb r5, [r0, 0x4] cmp r6, r5 beq _08062F32 movs r0, 0 bl sub_8083CE0 b _08062F32 .align 2, 0 _08062EB8: .4byte gDungeonGlobalData _08062EBC: .4byte 0x0001357c _08062EC0: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bne _08062ED6 bl sub_805F1A0 bl sub_80637E8 b _08062F32 _08062ED6: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bne _08062EF6 movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0x1 bl sub_8063A70 b _08062F32 _08062EF6: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x33 bne _08062F16 movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0 bl sub_8063A70 b _08062F32 _08062F16: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1F bne _08062F3A movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 bl sub_8063B54 _08062F32: movs r0, 0x1 bl sub_8044C10 b _08062F5E _08062F3A: bl sub_805F1AC lsls r0, 16 lsrs r0, 16 cmp r0, 0x21 bne _08062F5E movs r0, 0 movs r1, 0 bl sub_803EAF0 bl sub_805F1A0 movs r1, 0x1 bl sub_8063CF0 movs r0, 0x1 bl sub_8044C10 _08062F5E: bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _08062F6A b _08062DAE _08062F6A: ldr r0, [sp, 0x4] movs r1, 0 bl sub_806A2BC ldr r0, [sp, 0x4] adds r0, 0x4 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_804A728 _08062F80: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8062D8C thumb_func_start sub_8062F90 sub_8062F90: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE8 mov r8, r0 str r3, [sp, 0xDC] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xD4] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xD8] ldr r0, [r0, 0x70] mov r9, r0 bl GetLeaderEntity ldr r0, [r0, 0x70] str r0, [sp, 0xE4] add r4, sp, 0x70 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r0, sp, 0x78 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x7C movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x7E movs r1, 0x10 strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r5, sp, 0xD0 str r5, [sp, 0x84] movs r1, 0x3 str r1, [sp, 0x8C] add r0, sp, 0xA0 str r1, [r0, 0x4] add r0, sp, 0xB8 str r1, [r0, 0x4] add r0, sp, 0x10 adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _080630A4 str r6, [r0] movs r3, 0 ldr r7, [sp, 0xE4] adds r7, 0x44 _08063008: lsls r0, r3, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 mov r1, r9 adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063032 ldrb r1, [r2, 0x1] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063032 movs r0, 0xFD ands r0, r1 strb r0, [r2, 0x1] ldr r0, _080630A4 str r3, [r0] _08063032: adds r3, 0x1 cmp r3, 0x3 ble _08063008 _08063038: movs r5, 0 movs r2, 0 str r2, [sp, 0xE0] mov r10, r2 add r0, sp, 0xD0 str r0, [sp] add r1, sp, 0x70 str r1, [sp, 0x4] ldr r2, [sp, 0xDC] str r2, [sp, 0x8] ldr r0, [sp, 0x108] str r0, [sp, 0xC] mov r0, r8 mov r1, r9 ldr r2, [sp, 0xD4] add r3, sp, 0x10 bl sub_80633E4 _0806305C: ldr r0, _080630A8 add r1, sp, 0x70 bl AddMenuCursorSprite_ movs r0, 0x1E bl sub_803E46C ldr r2, _080630AC ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080630DE ldrh r0, [r2] lsrs r0, 8 movs r1, 0x1 ands r0, r1 ldr r1, _080630A8 movs r2, 0x18 ldrsh r6, [r1, r2] cmp r0, 0 beq _080630BA movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092F80 ldr r1, _080630A4 str r0, [r1] cmp r6, r0 beq _080630B0 movs r0, 0 bl sub_8083CE0 b _080630B4 .align 2, 0 _080630A4: .4byte gUnknown_202F2D8 _080630A8: .4byte gUnknown_202EE10 _080630AC: .4byte gRealInputs _080630B0: bl sub_8083D30 _080630B4: movs r0, 0x1 mov r10, r0 b _080631F4 _080630BA: movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092D80 adds r1, r0, 0 ldr r0, _08063118 bl sub_8013780 ldr r1, _08063118 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r6, r0 beq _080630DE movs r0, 0 bl sub_8083CE0 _080630DE: ldr r2, _0806311C ldrh r1, [r2, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063150 ldrh r0, [r2] lsrs r0, 8 movs r1, 0x1 ands r0, r1 ldr r4, _08063118 movs r1, 0x18 ldrsh r6, [r4, r1] cmp r0, 0 beq _0806312E movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8093130 ldr r1, _08063120 str r0, [r1] cmp r6, r0 beq _08063124 movs r0, 0 bl sub_8083CE0 b _08063128 .align 2, 0 _08063118: .4byte gUnknown_202EE10 _0806311C: .4byte gRealInputs _08063120: .4byte gUnknown_202F2D8 _08063124: bl sub_8083D30 _08063128: movs r2, 0x1 mov r10, r2 b _080631F4 _0806312E: movs r0, 0x8C lsls r0, 1 add r0, r9 adds r1, r6, 0 bl sub_8092DB8 adds r1, r0, 0 adds r0, r4, 0 bl sub_8013780 movs r1, 0x18 ldrsh r0, [r4, r1] cmp r6, r0 beq _08063150 movs r0, 0 bl sub_8083CE0 _08063150: ldr r4, _08063174 ldrh r1, [r4, 0x4] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08063168 ldr r6, _08063178 adds r0, r6, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _0806317C _08063168: adds r0, r7, 0 movs r1, 0x6 bl SetAction b _080631F4 .align 2, 0 _08063174: .4byte gRealInputs _08063178: .4byte gUnknown_202EE10 _0806317C: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0806318E adds r0, r6, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08063198 _0806318E: adds r0, r7, 0 movs r1, 0x7 bl SetAction b _080631F4 _08063198: bl sub_8062D88 ldrh r1, [r4, 0x2] ands r0, r1 cmp r0, 0 bne _080631AE adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080631C8 _080631AE: ldr r2, [sp, 0xD4] cmp r2, 0 beq _080631C2 ldrh r0, [r4] lsrs r0, 8 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080631C2 movs r5, 0x3 _080631C2: bl sub_8083D08 b _080631F4 _080631C8: movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806321C movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08063214 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080631EC adds r0, r6, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080631EC b _0806305C _080631EC: bl sub_8083D30 movs r0, 0x1 str r0, [sp, 0xE0] _080631F4: ldr r4, _08063210 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C ldrh r0, [r7] subs r0, 0x6 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08063224 b _080633CC .align 2, 0 _08063210: .4byte gUnknown_202EE10 _08063214: movs r5, 0x2 bl sub_8083D44 b _080631F4 _0806321C: movs r5, 0x1 bl sub_8083D44 b _080631F4 _08063224: mov r1, r10 cmp r1, 0 beq _0806322C b _08063038 _0806322C: ldr r2, [sp, 0xE0] cmp r2, 0 beq _08063234 b _080633B6 _08063234: ldr r6, _08063270 movs r1, 0x18 ldrsh r0, [r4, r1] str r0, [r6] cmp r5, 0x1 bne _08063274 adds r0, r7, 0 movs r1, 0x1D bl SetAction mov r0, r8 adds r0, 0x24 ldrb r1, [r0] ldr r0, [sp, 0xE4] adds r0, 0x48 strb r1, [r0] ldr r1, [r6] ldr r0, [sp, 0xE4] adds r0, 0x50 strb r1, [r0] movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1B bl sub_803E708 b _080633B6 .align 2, 0 _08063270: .4byte gUnknown_202F2D8 _08063274: mov r0, r8 ldr r1, [sp, 0xD4] ldr r2, [sp, 0xD8] bl sub_8063698 cmp r5, 0x3 bne _08063298 movs r0, 0x20 bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080632CC movs r0, 0x21 b _080632BC _08063298: cmp r5, 0x2 bne _080632DE mov r2, r9 ldrb r0, [r2, 0x7] cmp r0, 0 beq _080632BA movs r0, 0x1E bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _080632CC movs r0, 0x33 b _080632BC _080632BA: movs r0, 0x1F _080632BC: bl sub_8044FB4 adds r6, r0, 0 bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _080632DE _080632CC: mov r0, r8 bl sub_8045B60 adds r2, r0, 0 adds r0, r7, 0 adds r1, r6, 0 bl sub_80637BC b _080633B6 _080632DE: movs r0, 0x2 bl sub_8009524 add r0, sp, 0x10 movs r1, 0x16 bl sub_805FC30 ldr r6, _0806337C ldr r5, _08063380 movs r0, 0x2A adds r0, r6 mov r10, r0 adds r4, r7, 0 _080632F8: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806331C movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _0806331C: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063334 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08063334: bl sub_8062D88 ldrh r1, [r5, 0x2] ands r1, r0 cmp r1, 0 bne _0806334A adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08063388 _0806334A: movs r1, 0x18 ldrsh r0, [r6, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08063384 mov r0, r8 bl sub_8045B60 adds r1, r0, 0 adds r0, r4, 0 bl sub_80637A4 ldrh r0, [r4] subs r0, 0x14 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08063376 bl sub_8083D08 _08063376: movs r6, 0 b _080633A0 .align 2, 0 _0806337C: .4byte gUnknown_202EE10 _08063380: .4byte gRealInputs _08063384: bl sub_8083D30 _08063388: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806339A mov r2, r10 ldrb r0, [r2] cmp r0, 0 beq _080632F8 _0806339A: bl sub_8083D30 movs r6, 0x1 _080633A0: ldr r0, _080633E0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C cmp r6, 0x1 bne _080633B2 b _08063038 _080633B2: movs r0, 0 str r0, [sp, 0xE0] _080633B6: movs r0, 0x1 cmp r0, 0 beq _080633CC movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1E bl sub_803E708 _080633CC: ldr r0, [sp, 0xE0] add sp, 0xE8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080633E0: .4byte gUnknown_202EE10 thumb_func_end sub_8062F90 thumb_func_start sub_80633E4 sub_80633E4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r0, [sp, 0x20] adds r7, r1, 0 adds r4, r3, 0 ldr r0, [sp, 0x44] mov r8, r0 lsls r2, 24 lsrs r2, 24 mov r10, r2 add r1, sp, 0x8 ldr r0, _08063508 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r0, 0 add r5, sp, 0x50 ldrb r6, [r5] mov r5, r8 strb r6, [r5] add r6, sp, 0x4C ldrb r6, [r6] strb r6, [r5, 0x1] strb r0, [r5, 0x3] movs r6, 0 ldr r5, _0806350C ldr r0, _08063510 mov r9, r0 movs r1, 0x1 mov r12, r1 movs r3, 0x8C lsls r3, 1 adds r2, r7, r3 movs r3, 0x3 _08063432: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _0806343E adds r6, 0x1 _0806343E: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08063432 movs r3, 0x4 mov r1, r9 ldr r0, [r1] movs r1, 0 strh r0, [r5, 0x18] strh r6, [r5, 0x1A] strh r3, [r5, 0x1C] add r2, sp, 0x4C ldrh r2, [r2] strh r2, [r5, 0x1E] add r3, sp, 0x50 ldrh r3, [r3] strh r3, [r5, 0x20] strh r1, [r5, 0x4] movs r0, 0x10 strh r0, [r5, 0x6] strh r1, [r5, 0x14] str r1, [r5] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x4 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 strh r0, [r4, 0x10] strh r0, [r4, 0xE] movs r0, 0xD mov r6, r8 strb r0, [r6, 0x2] movs r0, 0x2 strh r0, [r4, 0x8] adds r1, r4, 0 adds r1, 0x18 adds r0, r4, 0 adds r0, 0x48 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} adds r1, r4, 0 adds r1, 0x30 add r0, sp, 0x8 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} adds r0, r4, 0 movs r1, 0x1 bl sub_803ECB4 adds r0, r5, 0 movs r1, 0 bl sub_80137B0 ldr r1, _08063514 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x10 lsls r0, 3 strh r0, [r5, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] ldr r0, _08063518 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument_2 movs r3, 0 movs r5, 0x1 _080634DE: lsls r1, r3, 3 movs r4, 0x8C lsls r4, 1 adds r1, r4 adds r1, r7, r1 ldr r6, [sp, 0x48] adds r4, r6, r3 movs r0, 0 strb r0, [r4] ldrb r1, [r1] adds r2, r5, 0 ands r2, r1 cmp r2, 0 bne _0806351C ldr r1, _0806350C movs r4, 0x18 ldrsh r0, [r1, r4] cmp r0, r3 bne _08063526 strh r2, [r1, 0x18] b _08063526 .align 2, 0 _08063508: .4byte gUnknown_8106CAC _0806350C: .4byte gUnknown_202EE10 _08063510: .4byte gUnknown_202F2D8 _08063514: .4byte gUnknown_2027370 _08063518: .4byte gAvailablePokemonNames _0806351C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063526 strb r5, [r4] _08063526: adds r3, 0x1 cmp r3, 0x3 ble _080634DE movs r5, 0x8C lsls r5, 1 adds r2, r7, r5 mov r6, r10 str r6, [sp] ldr r0, [sp, 0x4C] str r0, [sp, 0x4] movs r0, 0x4 ldr r1, [sp, 0x20] movs r3, 0 bl sub_8063578 movs r0, 0x2 bl sub_80073B8 ldr r0, _08063574 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x4 movs r1, 0 movs r3, 0x2 bl xxx_format_and_draw movs r0, 0x2 bl sub_80073E0 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063574: .4byte gUnknown_80FDFE8 thumb_func_end sub_80633E4 thumb_func_start sub_8063578 sub_8063578: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r0, [sp, 0x10] str r1, [sp, 0x14] adds r5, r2, 0 mov r8, r3 ldr r0, [sp, 0x40] ldr r4, [sp, 0x44] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] ldr r0, [r1, 0x70] str r0, [sp, 0x1C] mov r0, r8 bl sub_80073B8 ldr r0, _080635FC ldr r1, [sp, 0x14] movs r2, 0 bl SetMessageArgument lsls r4, 3 adds r4, 0xA ldr r0, _08063600 ldr r2, [r0] movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 mov r3, r8 bl xxx_format_and_draw movs r1, 0 mov r9, r1 ldr r0, [sp, 0x10] cmp r9, r0 bge _08063676 add r1, sp, 0x4 mov r10, r1 adds r7, r5, 0 _080635D0: movs r0, 0 str r0, [sp, 0x4] movs r0, 0x6A str r0, [sp, 0x8] movs r0, 0 mov r1, r10 strb r0, [r1, 0x8] mov r1, sp ldrb r0, [r1, 0x18] mov r1, r10 strb r0, [r1, 0x9] ldrb r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063668 ldr r1, [sp, 0x1C] ldrb r0, [r1, 0x7] cmp r0, 0 beq _08063604 movs r0, 0x2 b _08063606 .align 2, 0 _080635FC: .4byte gAvailablePokemonNames _08063600: .4byte gUnknown_80FE978 _08063604: movs r0, 0x4 _08063606: str r0, [sp, 0x4] ldr r0, [sp, 0x14] adds r1, r5, 0 movs r2, 0x1 bl IsMoveUsable_2 add r1, sp, 0x4 movs r2, 0 lsls r0, 24 cmp r0, 0 bne _0806361E movs r2, 0x1 _0806361E: strb r2, [r1, 0x8] ldr r0, _0806368C adds r1, r5, 0 add r2, sp, 0x4 bl sub_80928C0 ldr r0, _08063690 mov r1, r9 bl sub_8013800 adds r4, r0, 0 ldrb r1, [r7] movs r0, 0x2 ands r0, r1 movs r6, 0xD cmp r0, 0 bne _08063658 movs r6, 0x8 mov r0, r9 cmp r0, 0 beq _08063658 subs r2, r4, 0x2 movs r0, 0x7 str r0, [sp] mov r0, r8 movs r1, 0xC movs r3, 0x78 bl sub_80078A4 _08063658: movs r1, 0 str r1, [sp] adds r0, r6, 0 adds r1, r4, 0 ldr r2, _08063694 mov r3, r8 bl xxx_format_and_draw _08063668: adds r7, 0x8 adds r5, 0x8 movs r0, 0x1 add r9, r0 ldr r1, [sp, 0x10] cmp r9, r1 blt _080635D0 _08063676: mov r0, r8 bl sub_80073E0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806368C: .4byte gUnknown_202DE58 _08063690: .4byte gUnknown_202EE10 _08063694: .4byte gUnknown_8106CC4 thumb_func_end sub_8063578 thumb_func_start sub_8063698 sub_8063698: push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r4, [r0, 0x70] ldr r0, _080636E8 ldr r0, [r0] lsls r0, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r5, r4, r0 ldr r1, _080636EC movs r0, 0 str r0, [r1] ldrb r0, [r4, 0x7] cmp r0, 0 beq _080636FA cmp r7, 0 beq _080636D0 movs r0, 0x14 movs r1, 0 bl sub_8044F5C _080636D0: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063702 movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080636F0 movs r0, 0x33 b _080636F2 .align 2, 0 _080636E8: .4byte gUnknown_202F2D8 _080636EC: .4byte gUnknown_202EE6C _080636F0: movs r0, 0x1E _080636F2: movs r1, 0 bl sub_8044F5C b _08063702 _080636FA: movs r0, 0x1F movs r1, 0 bl sub_8044F5C _08063702: cmp r6, 0 beq _08063716 movs r0, 0x20 movs r1, 0 bl sub_8044F5C movs r0, 0x21 movs r1, 0 bl sub_8044F5C _08063716: movs r0, 0x1D movs r1, 0 bl sub_8044F5C cmp r6, 0 bne _0806372A movs r0, 0x20 bl sub_8044FF0 b _08063754 _0806372A: ldr r5, _080637A0 ldr r1, [r5] adds r0, r4, 0 bl sub_8063C88 lsls r0, 24 cmp r0, 0 bne _08063740 movs r0, 0x20 bl sub_8044FF0 _08063740: ldr r1, [r5] adds r0, r4, 0 bl sub_8063DD4 lsls r0, 24 cmp r0, 0 bne _08063754 movs r0, 0x21 bl sub_8044FF0 _08063754: ldr r5, _080637A0 ldr r1, [r5] adds r0, r4, 0 bl sub_8063DD4 lsls r0, 24 cmp r0, 0 bne _0806376A movs r0, 0x21 bl sub_8044FF0 _0806376A: cmp r7, 0 beq _08063792 movs r0, 0 ldr r1, [r5] cmp r1, 0x3 bgt _08063788 mov r0, r8 movs r2, 0x1 bl IsMoveUsable lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r0, r1, 31 _08063788: cmp r0, 0 bne _08063792 movs r0, 0x14 bl sub_8044FF0 _08063792: bl sub_8045064 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080637A0: .4byte gUnknown_202F2D8 thumb_func_end sub_8063698 thumb_func_start sub_80637A4 sub_80637A4: push {lr} adds r2, r1, 0 ldr r1, _080637B8 movs r3, 0x18 ldrsh r1, [r1, r3] bl sub_80637BC pop {r0} bx r0 .align 2, 0 _080637B8: .4byte gUnknown_202EE10 thumb_func_end sub_80637A4 thumb_func_start sub_80637BC sub_80637BC: push {r4,r5,lr} adds r4, r0, 0 adds r5, r2, 0 ldr r0, _080637E0 lsls r1, 2 adds r1, r0 ldrh r1, [r1] adds r0, r4, 0 bl SetAction strb r5, [r4, 0x4] ldr r0, _080637E4 ldr r0, [r0] strb r0, [r4, 0xC] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080637E0: .4byte gUnknown_202EE44 _080637E4: .4byte gUnknown_202F2D8 thumb_func_end sub_80637BC thumb_func_start sub_80637E8 sub_80637E8: push {lr} adds r3, r0, 0 ldr r0, _08063828 ldr r1, [r0] ldrb r0, [r3, 0x4] lsls r0, 2 ldr r2, _0806382C adds r1, r2 adds r1, r0 ldr r0, [r1] ldr r0, [r0, 0x70] ldrb r1, [r3, 0xC] lsls r1, 3 adds r1, r0, r1 ldr r2, _08063830 adds r2, r1 mov r12, r2 ldrb r2, [r2] movs r1, 0x2 orrs r1, r2 mov r2, r12 strb r1, [r2] movs r1, 0x8C lsls r1, 1 adds r0, r1 ldrb r1, [r3, 0xC] movs r2, 0x4 bl sub_8063834 pop {r0} bx r0 .align 2, 0 _08063828: .4byte gDungeonGlobalData _0806382C: .4byte 0x0001357c _08063830: .4byte 0x00000119 thumb_func_end sub_80637E8 thumb_func_start sub_8063834 sub_8063834: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x7C str r0, [sp, 0x74] str r1, [sp, 0x78] adds r4, r2, 0 mov r0, sp bl sub_80140B4 add r0, sp, 0x70 str r0, [sp, 0x14] movs r1, 0x1 mov r9, r1 ldr r3, [sp, 0x78] adds r3, 0x1 add r2, sp, 0x60 mov r10, r2 cmp r3, r4 bge _08063894 lsls r0, r3, 3 ldr r1, [sp, 0x74] adds r2, r0, r1 ldrb r1, [r2] mov r0, r9 ands r0, r1 cmp r0, 0 beq _08063894 movs r6, 0x2 movs r5, 0x1 _08063874: ldrb r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08063894 movs r0, 0x1 add r9, r0 adds r2, 0x8 adds r3, 0x1 cmp r3, r4 bge _08063894 ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08063874 _08063894: movs r4, 0 ldr r6, _0806393C _08063898: movs r7, 0 mov r1, r9 add r2, sp, 0x70 strb r1, [r2] adds r1, r2, 0 strb r4, [r1, 0x1] movs r0, 0xC strb r0, [r1, 0x2] strb r7, [r1, 0x3] strh r4, [r6, 0x1E] mov r0, r9 strh r0, [r6, 0x20] ldr r1, _08063940 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x17 lsls r0, 3 strh r0, [r6, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] strh r7, [r6, 0x14] strh r7, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] str r7, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C strh r7, [r6, 0x18] strh r7, [r6, 0x1A] strh r7, [r6, 0x1C] mov r0, sp movs r1, 0x1 bl sub_803ECB4 ldr r0, [sp, 0x78] adds r1, r0, r4 lsls r1, 3 ldr r2, [sp, 0x74] adds r1, r2, r1 adds r0, r4, 0 movs r2, 0 mov r3, r10 bl sub_8093DE8 mov r8, r0 _080638FE: mov r0, r8 cmp r0, 0 beq _08063908 bl sub_8062500 _08063908: ldr r5, _08063944 adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x1C bl sub_803E46C bl sub_8062D88 ldr r1, _08063948 ldrh r1, [r1, 0x2] ands r0, r1 cmp r0, 0 bne _0806392C ldrb r0, [r5, 0x1] cmp r0, 0 beq _0806394C _0806392C: bl sub_8083D08 movs r7, 0x1 mov r1, r8 cmp r1, 0 beq _080639AE movs r7, 0x2 b _080639AE .align 2, 0 _0806393C: .4byte gUnknown_202EE10 _08063940: .4byte gUnknown_2027370 _08063944: .4byte gUnknown_202EE38 _08063948: .4byte gRealInputs _0806394C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806395A ldrb r0, [r5, 0x2] cmp r0, 0 beq _08063962 _0806395A: bl sub_8083D30 movs r7, 0x1 b _080639AE _08063962: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08063970 ldrb r0, [r5, 0x4] cmp r0, 0 beq _08063986 _08063970: adds r0, r4, 0 cmp r4, 0 bne _08063978 mov r4, r9 _08063978: subs r4, 0x1 cmp r0, r4 beq _080639AE movs r0, 0 bl sub_8083CE0 b _080639AE _08063986: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08063994 ldrb r0, [r5, 0x3] cmp r0, 0 beq _080638FE _08063994: adds r1, r4, 0 mov r0, r9 subs r0, 0x1 cmp r4, r0 bne _080639A2 movs r4, 0 b _080639A4 _080639A2: adds r4, 0x1 _080639A4: cmp r1, r4 beq _080639AE movs r0, 0 bl sub_8083CE0 _080639AE: cmp r7, 0x1 beq _080639CA cmp r7, 0 bne _080639B8 b _08063898 _080639B8: mov r2, r8 cmp r2, 0 bne _080639C0 b _08063898 _080639C0: mov r0, r8 mov r1, r10 bl sub_80625A4 b _08063898 _080639CA: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x7C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8063834 thumb_func_start sub_80639E4 sub_80639E4: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r4, _08063A5C adds r0, r4, 0 bl sub_80140B4 ldr r0, _08063A60 str r0, [r4, 0x14] adds r0, r4, 0 movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 ldr r0, _08063A64 ldr r1, [r5] bl strcpy ldr r2, _08063A68 movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldr r2, [r5, 0x4] str r4, [sp] movs r0, 0x4 movs r1, 0x10 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 ldr r0, _08063A6C strh r4, [r0, 0x1E] strh r4, [r0, 0x20] strh r4, [r0, 0xC] strh r4, [r0, 0xE] strh r4, [r0, 0x14] strh r4, [r0, 0x4] movs r1, 0x10 strh r1, [r0, 0x6] str r4, [r0] strh r4, [r0, 0x18] strh r4, [r0, 0x1A] strh r4, [r0, 0x1C] adds r0, r6, 0 bl sub_801317C add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08063A5C: .4byte gUnknown_202F278 _08063A60: .4byte gUnknown_8106CC8 _08063A64: .4byte gAvailablePokemonNames _08063A68: .4byte gUnknown_8106CCC _08063A6C: .4byte gUnknown_202EE10 thumb_func_end sub_80639E4 thumb_func_start sub_8063A70 sub_8063A70: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r1, _08063B1C ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063B20 adds r2, r3 adds r2, r1 ldr r6, [r2] ldr r5, [r6, 0x70] ldrb r0, [r0, 0xC] lsls r0, 3 movs r2, 0x8C lsls r2, 1 adds r0, r2 adds r4, r5, r0 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r0, 31 mov r8, r0 ldr r0, _08063B24 mov r9, r0 movs r1, 0x1 mov r12, r1 adds r2, r5, r2 movs r7, 0xF7 movs r3, 0x3 _08063ABC: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08063ACC adds r0, r7, 0 ands r0, r1 strb r0, [r2] _08063ACC: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08063ABC mov r0, r9 adds r1, r4, 0 movs r2, 0 bl sub_80928C0 mov r3, r8 cmp r3, 0 bne _08063AEC ldrb r1, [r4] movs r0, 0x8 orrs r0, r1 strb r0, [r4] _08063AEC: movs r1, 0x8C lsls r1, 1 adds r0, r5, r1 bl sub_80936D8 ldrb r1, [r4, 0x1] movs r0, 0x2 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _08063B28 bl PlaySoundEffect mov r3, r10 cmp r3, 0 beq _08063B42 mov r0, r8 cmp r0, 0 bne _08063B30 ldr r0, _08063B2C ldr r1, [r0] adds r0, r6, 0 bl SendMessage b _08063B3A .align 2, 0 _08063B1C: .4byte gDungeonGlobalData _08063B20: .4byte 0x0001357c _08063B24: .4byte gUnknown_202DE58 _08063B28: .4byte 0x00000133 _08063B2C: .4byte gUnknown_80F8B40 _08063B30: ldr r0, _08063B50 ldr r1, [r0] adds r0, r6, 0 bl SendMessage _08063B3A: movs r0, 0x78 movs r1, 0x1F bl sub_803E708 _08063B42: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063B50: .4byte gUnknown_80F8B64 thumb_func_end sub_8063A70 thumb_func_start sub_8063B54 sub_8063B54: push {r4-r6,lr} ldr r1, _08063BA4 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063BA8 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r5, [r1, 0x70] ldrb r4, [r0, 0xC] lsls r4, 3 movs r6, 0x8C lsls r6, 1 adds r4, r6 adds r4, r5, r4 ldr r0, _08063BAC adds r1, r4, 0 movs r2, 0 bl sub_80928C0 ldrb r0, [r4] movs r1, 0x4 eors r0, r1 strb r0, [r4] adds r5, r6 adds r0, r5, 0 bl sub_80936D8 ldrb r1, [r4, 0x1] movs r0, 0x2 orrs r0, r1 strb r0, [r4, 0x1] ldr r0, _08063BB0 bl PlaySoundEffect pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08063BA4: .4byte gDungeonGlobalData _08063BA8: .4byte 0x0001357c _08063BAC: .4byte gUnknown_202DE58 _08063BB0: .4byte 0x00000133 thumb_func_end sub_8063B54 thumb_func_start sub_8063BB4 sub_8063BB4: push {r4-r7,lr} ldr r1, _08063C70 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063C74 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r6, [r1, 0x70] ldrb r5, [r0, 0xC] ldr r0, _08063C78 lsls r4, r5, 3 movs r7, 0x8C lsls r7, 1 adds r1, r4, r7 adds r1, r6, r1 movs r2, 0 bl sub_80928C0 adds r4, r6, r4 ldr r0, _08063C7C adds r2, r4, r0 ldrb r1, [r2] movs r0, 0x2 orrs r0, r1 strb r0, [r2] movs r3, 0 adds r5, 0x1 cmp r5, 0x3 bgt _08063C2C lsls r2, r5, 3 adds r0, r2, r6 adds r1, r7, 0 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063C2C adds r0, r2, r7 adds r2, r0, r6 movs r4, 0x2 _08063C0A: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08063C2C adds r3, 0x1 cmp r3, 0x3 bgt _08063C2C adds r2, 0x8 adds r5, 0x1 cmp r5, 0x3 bgt _08063C2C ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08063C0A _08063C2C: lsls r0, r5, 3 adds r0, r6 movs r4, 0x8C lsls r4, 1 adds r0, r4 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08063C42 movs r5, 0x4 _08063C42: cmp r5, 0x3 bgt _08063C5C lsls r1, r5, 3 adds r1, r4 adds r1, r6, r1 ldrb r2, [r1] movs r0, 0x2 orrs r0, r2 strb r0, [r1] ldr r0, _08063C80 movs r2, 0 bl sub_80928C0 _08063C5C: adds r0, r6, r4 bl sub_80936D8 ldr r0, _08063C84 bl PlaySoundEffect pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063C70: .4byte gDungeonGlobalData _08063C74: .4byte 0x0001357c _08063C78: .4byte gUnknown_202DE58 _08063C7C: .4byte 0x00000119 _08063C80: .4byte gUnknown_202DEA8 _08063C84: .4byte 0x00000133 thumb_func_end sub_8063BB4 thumb_func_start sub_8063C88 sub_8063C88: push {r4-r7,lr} adds r4, r0, 0 movs r7, 0 adds r5, r1, 0 lsls r0, r5, 3 adds r0, r4, r0 movs r1, 0x8D lsls r1, 1 adds r0, r1 ldrh r0, [r0] bl DoesMoveCharge lsls r0, 24 cmp r0, 0 beq _08063CAE _08063CA6: movs r0, 0 b _08063CEA _08063CAA: movs r7, 0x1 b _08063CE8 _08063CAE: adds r5, 0x1 movs r6, 0 lsls r0, r5, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 adds r4, r0, r4 _08063CBC: ldrh r0, [r4, 0x2] bl DoesMoveCharge lsls r0, 24 cmp r0, 0 bne _08063CA6 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08063CE8 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063CAA adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 bgt _08063CE8 adds r6, 0x1 cmp r6, 0x3 ble _08063CBC _08063CE8: adds r0, r7, 0 _08063CEA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063C88 thumb_func_start sub_8063CF0 sub_8063CF0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r1, _08063D98 ldr r2, [r1] ldrb r1, [r0, 0x4] lsls r1, 2 ldr r3, _08063D9C adds r2, r3 adds r2, r1 ldr r7, [r2] ldr r6, [r7, 0x70] ldrb r5, [r0, 0xC] movs r0, 0 mov r8, r0 ldr r0, _08063DA0 lsls r4, r5, 3 movs r1, 0x8C lsls r1, 1 mov r9, r1 adds r1, r4, r1 adds r1, r6, r1 movs r2, 0 bl sub_80928C0 adds r4, r6, r4 ldr r3, _08063DA4 adds r2, r4, r3 ldrb r1, [r2] movs r0, 0x2 orrs r0, r1 strb r0, [r2] adds r5, 0x1 movs r3, 0 cmp r5, 0x3 bgt _08063D70 movs r0, 0x2 mov r12, r0 lsls r0, r5, 3 add r0, r9 adds r2, r0, r6 movs r4, 0xFD _08063D4E: ldrb r1, [r2] mov r0, r12 ands r0, r1 cmp r0, 0 beq _08063D70 adds r0, r4, 0 ands r0, r1 strb r0, [r2] movs r1, 0x1 mov r8, r1 adds r2, 0x8 adds r5, 0x1 adds r3, 0x1 cmp r3, 0x3 bgt _08063D70 cmp r5, 0x3 ble _08063D4E _08063D70: movs r2, 0x8C lsls r2, 1 adds r0, r6, r2 bl sub_80936D8 ldr r0, _08063DA8 bl PlaySoundEffect mov r3, r10 cmp r3, 0 beq _08063DC2 mov r0, r8 cmp r0, 0 beq _08063DB0 ldr r0, _08063DAC ldr r1, [r0] adds r0, r7, 0 bl SendMessage b _08063DBA .align 2, 0 _08063D98: .4byte gDungeonGlobalData _08063D9C: .4byte 0x0001357c _08063DA0: .4byte gUnknown_202DE58 _08063DA4: .4byte 0x00000119 _08063DA8: .4byte 0x00000133 _08063DAC: .4byte gUnknown_80F8B88 _08063DB0: ldr r0, _08063DD0 ldr r1, [r0] adds r0, r7, 0 bl SendMessage _08063DBA: movs r0, 0x78 movs r1, 0x1F bl sub_803E708 _08063DC2: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08063DD0: .4byte gUnknown_80F8BB4 thumb_func_end sub_8063CF0 thumb_func_start sub_8063DD4 sub_8063DD4: push {r4-r7,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 adds r2, 0x1 movs r4, 0 cmp r2, 0x3 bgt _08063E20 lsls r0, r2, 3 movs r6, 0x8C lsls r6, 1 adds r0, r6 adds r0, r3, r0 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08063E20 movs r5, 0x1 adds r2, 0x1 movs r7, 0x2 lsls r0, r2, 3 adds r0, r6 adds r3, r0, r3 _08063E04: adds r4, 0x1 cmp r4, 0x3 bgt _08063E20 cmp r2, 0x3 bgt _08063E20 ldrb r1, [r3] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08063E20 movs r5, 0x1 adds r3, 0x8 adds r2, 0x1 b _08063E04 _08063E20: cmp r5, 0 bne _08063E28 movs r0, 0 b _08063E2A _08063E28: movs r0, 0x1 _08063E2A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063DD4 thumb_func_start sub_8063E30 sub_8063E30: push {r4-r7,lr} adds r5, r0, 0 adds r1, 0x1 movs r4, 0 cmp r1, 0x7 bgt _08063E62 movs r7, 0x2 movs r6, 0xFD lsls r0, r1, 3 adds r3, r0, r5 _08063E44: ldrb r2, [r3] adds r0, r7, 0 ands r0, r2 cmp r0, 0 beq _08063E62 adds r0, r6, 0 ands r0, r2 strb r0, [r3] adds r3, 0x8 adds r1, 0x1 adds r4, 0x1 cmp r4, 0x7 bgt _08063E62 cmp r1, 0x7 ble _08063E44 _08063E62: adds r0, r5, 0 bl sub_80936F4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8063E30 thumb_func_start sub_8063E70 sub_8063E70: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD0 str r0, [sp, 0xC4] adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC8] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xCC] add r4, sp, 0x60 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] add r0, sp, 0x68 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x6C movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x6E movs r1, 0x10 strh r1, [r0] add r0, sp, 0x70 strh r1, [r0] add r5, sp, 0xC0 str r5, [sp, 0x74] movs r1, 0x3 str r1, [sp, 0x7C] add r0, sp, 0x90 str r1, [r0, 0x4] add r0, sp, 0xA8 str r1, [r0, 0x4] mov r0, sp adds r1, r4, 0 movs r2, 0x60 bl memcpy ldr r0, _08063F80 str r6, [r0] ldr r1, _08063F84 mov r8, r1 mov r9, r0 ldr r2, _08063F88 mov r10, r2 _08063EE0: ldr r0, [sp, 0xC4] adds r1, r7, 0 mov r2, sp add r3, sp, 0xC0 bl sub_8064228 _08063EEC: mov r0, r8 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C mov r0, r10 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08063F2A mov r1, r8 movs r2, 0x18 ldrsh r4, [r1, r2] adds r0, r7, 0 adds r1, r4, 0 bl sub_8092E1C adds r1, r0, 0 mov r0, r8 bl sub_8013780 mov r1, r8 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r4, r0 beq _08063F2A movs r0, 0 bl sub_8083CE0 _08063F2A: mov r0, r10 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08063F5C mov r1, r8 movs r2, 0x18 ldrsh r4, [r1, r2] adds r0, r7, 0 adds r1, r4, 0 bl sub_8092E8C adds r1, r0, 0 mov r0, r8 bl sub_8013780 mov r1, r8 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r4, r0 beq _08063F5C movs r0, 0 bl sub_8083CE0 _08063F5C: bl sub_8062D88 mov r2, r10 ldrh r1, [r2, 0x2] ands r0, r1 cmp r0, 0 bne _08063F76 ldr r2, _08063F84 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08063F8C _08063F76: bl sub_8083D08 movs r4, 0 b _08063FB2 .align 2, 0 _08063F80: .4byte gUnknown_202F2D8 _08063F84: .4byte gUnknown_202EE10 _08063F88: .4byte gRealInputs _08063F8C: movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08063FD4 ldr r0, [sp, 0xCC] cmp r0, 0 beq _08063EEC movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08063FAC adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08063EEC _08063FAC: bl sub_8083D30 movs r4, 0x1 _08063FB2: ldr r5, _08063FD0 adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x1E bl sub_803E46C cmp r4, 0x1 bne _08063FDC movs r0, 0x1 negs r0, r0 mov r1, r9 str r0, [r1] b _080640FA .align 2, 0 _08063FD0: .4byte gUnknown_202EE10 _08063FD4: bl sub_8083D44 movs r4, 0x2 b _08063FB2 _08063FDC: ldr r6, _08064004 movs r2, 0x18 ldrsh r0, [r5, r2] str r0, [r6] cmp r4, 0x2 bne _08064008 movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x8 movs r1, 0x1B bl sub_803E708 ldr r1, [r6] adds r0, r7, 0 movs r2, 0x4 bl sub_8063834 b _08063EE0 .align 2, 0 _08064004: .4byte gUnknown_202F2D8 _08064008: adds r0, r7, 0 bl sub_8064310 mov r0, sp movs r1, 0x16 bl sub_805FC30 adds r4, r5, 0 ldr r6, _0806408C adds r5, 0x2A _0806401C: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064040 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064040: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064058 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064058: bl sub_8062D88 ldrh r1, [r6, 0x2] ands r1, r0 cmp r1, 0 bne _0806406E adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0806409C _0806406E: movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08064098 movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0x2 bne _08064090 bl sub_8083D08 b _08064094 .align 2, 0 _0806408C: .4byte gRealInputs _08064090: bl sub_8083D1C _08064094: movs r4, 0 b _080640B2 _08064098: bl sub_8083D30 _0806409C: ldrh r1, [r6, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080640AC ldrb r0, [r5] cmp r0, 0 beq _0806401C _080640AC: bl sub_8083D30 movs r4, 0x1 _080640B2: ldr r6, _080640E4 adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x1B bl sub_803E46C movs r0, 0 movs r1, 0 bl sub_803EAF0 cmp r4, 0x1 bne _080640CE b _08063EE0 _080640CE: movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0x1 bne _080640E8 mov r2, r9 ldr r1, [r2] adds r0, r7, 0 bl sub_8063E30 b _08063EE0 .align 2, 0 _080640E4: .4byte gUnknown_202EE10 _080640E8: cmp r0, 0x2 bne _080640FA mov r0, r9 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x8 bl sub_8063834 b _08063EE0 _080640FA: ldr r1, _08064140 ldr r2, [r1] cmp r2, 0 bge _08064104 b _08064214 _08064104: ldr r0, [sp, 0xC8] cmp r0, 0 beq _08064160 movs r4, 0 lsls r0, r2, 3 adds r1, r7, r0 adds r0, r2, 0x1 cmp r0, 0x7 bgt _08064130 lsls r0, 3 adds r0, r7 ldrb r2, [r0] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08064130 movs r0, 0x2 ands r0, r2 lsls r0, 24 lsrs r0, 24 negs r0, r0 lsrs r4, r0, 31 _08064130: ldr r0, _08064144 movs r2, 0 bl sub_80928C0 cmp r4, 0 beq _0806414C ldr r0, _08064148 b _0806414E .align 2, 0 _08064140: .4byte gUnknown_202F2D8 _08064144: .4byte gUnknown_202DE58 _08064148: .4byte gUnknown_80FDF00 _0806414C: ldr r0, _0806415C _0806414E: ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r3, r0, 0 b _08064162 .align 2, 0 _0806415C: .4byte gUnknown_80FDF70 _08064160: movs r3, 0x1 _08064162: cmp r3, 0x1 beq _08064168 b _08063EE0 _08064168: mov r1, r9 ldr r0, [r1] lsls r0, 3 adds r0, r7 movs r1, 0 strb r1, [r0] mov r2, r9 ldr r0, [r2] adds r2, r0, 0x1 cmp r2, 0x7 bgt _080641BC lsls r0, r2, 3 adds r4, r7, r0 ldrb r1, [r4] ands r3, r1 cmp r3, 0 beq _080641BC movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080641BC movs r0, 0 mov r12, r0 movs r6, 0x1 adds r3, r4, 0 movs r5, 0x2 _0806419C: mov r1, r12 strb r1, [r4] adds r3, 0x8 adds r2, 0x1 cmp r2, 0x7 bgt _080641BC adds r4, r3, 0 ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080641BC adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0806419C _080641BC: movs r4, 0 movs r6, 0x1 adds r3, r7, 0 add r5, sp, 0x60 movs r2, 0x7 _080641C6: ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080641D8 ldr r0, [r3] ldr r1, [r3, 0x4] stm r5!, {r0,r1} adds r4, 0x1 _080641D8: adds r3, 0x8 subs r2, 0x1 cmp r2, 0 bge _080641C6 cmp r4, 0x7 bgt _080641F4 movs r1, 0 _080641E6: lsls r0, r4, 3 add r0, sp adds r0, 0x60 strb r1, [r0] adds r4, 0x1 cmp r4, 0x7 ble _080641E6 _080641F4: add r4, sp, 0x60 adds r3, r7, 0 movs r2, 0x7 _080641FA: ldm r4!, {r0,r1} stm r3!, {r0,r1} subs r2, 0x1 cmp r2, 0 bge _080641FA ldr r2, _08064210 ldr r0, [r2] cmp r0, 0 blt _08064214 movs r0, 0x1 b _08064216 .align 2, 0 _08064210: .4byte gUnknown_202F2D8 _08064214: movs r0, 0 _08064216: add sp, 0xD0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8063E70 thumb_func_start sub_8064228 sub_8064228: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r9, r0 mov r10, r1 adds r5, r2, 0 adds r7, r3, 0 movs r1, 0 movs r0, 0x1 strb r0, [r7] strb r1, [r7, 0x1] strb r1, [r7, 0x3] mov r8, r1 ldr r6, _08064304 ldr r0, _08064308 mov r12, r0 movs r4, 0x1 mov r2, r10 movs r3, 0x7 _08064254: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08064262 movs r1, 0x1 add r8, r1 _08064262: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _08064254 mov r2, r12 ldr r0, [r2] movs r4, 0 strh r0, [r6, 0x18] mov r3, r8 strh r3, [r6, 0x1A] strh r3, [r6, 0x1C] strh r4, [r6, 0x1E] strh r4, [r6, 0x20] strh r4, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] strh r4, [r6, 0xC] strh r4, [r6, 0xE] strh r4, [r6, 0x14] str r4, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C mov r0, r8 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 strh r0, [r5, 0x10] strh r0, [r5, 0xE] movs r0, 0xE strb r0, [r7, 0x2] movs r0, 0x2 strh r0, [r5, 0x8] adds r1, r5, 0 adds r1, 0x18 adds r0, r5, 0 adds r0, 0x48 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r1, r5, 0 adds r1, 0x30 adds r0, r5, 0 adds r0, 0x48 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r5, 0 movs r1, 0x1 bl sub_803ECB4 adds r0, r6, 0 movs r1, 0 bl sub_80137B0 ldr r0, _0806430C mov r7, r9 ldr r1, [r7, 0x70] movs r2, 0 bl SetMessageArgument_2 str r4, [sp] str r4, [sp, 0x4] mov r0, r8 mov r1, r9 mov r2, r10 movs r3, 0 bl sub_8063578 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064304: .4byte gUnknown_202EE10 _08064308: .4byte gUnknown_202F2D8 _0806430C: .4byte gAvailablePokemonNames thumb_func_end sub_8064228 thumb_func_start sub_8064310 sub_8064310: push {r4,lr} adds r4, r0, 0 ldr r1, _08064350 movs r0, 0 str r0, [r1] movs r0, 0x22 movs r1, 0 bl sub_8044F5C movs r0, 0x21 movs r1, 0 bl sub_8044F5C ldr r0, _08064354 ldr r1, [r0] adds r0, r4, 0 bl sub_8064358 lsls r0, 24 cmp r0, 0 bne _08064340 movs r0, 0x21 bl sub_8044FF0 _08064340: movs r0, 0x1D movs r1, 0 bl sub_8044F5C pop {r4} pop {r0} bx r0 .align 2, 0 _08064350: .4byte gUnknown_202EE6C _08064354: .4byte gUnknown_202F2D8 thumb_func_end sub_8064310 thumb_func_start sub_8064358 sub_8064358: push {r4-r6,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 adds r2, 0x1 movs r4, 0 cmp r2, 0x7 bgt _0806439C lsls r0, r2, 3 adds r0, r3, r0 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806439C movs r5, 0x1 adds r2, 0x1 movs r6, 0x2 lsls r0, r2, 3 adds r3, r0, r3 _08064380: adds r4, 0x1 cmp r4, 0x7 bgt _0806439C cmp r2, 0x7 bgt _0806439C ldrb r1, [r3] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0806439C movs r5, 0x1 adds r3, 0x8 adds r2, 0x1 b _08064380 _0806439C: cmp r5, 0 bne _080643A4 movs r0, 0 b _080643A6 _080643A4: movs r0, 0x1 _080643A6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8064358 thumb_func_start sub_80643AC sub_80643AC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 adds r7, r0, 0 add r0, sp, 0x68 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD0] mov r2, sp adds r2, 0x6E str r2, [sp, 0xD4] mov r0, sp adds r0, 0x70 str r0, [sp, 0xD8] adds r1, 0xC str r1, [sp, 0xDC] adds r2, 0x22 str r2, [sp, 0xE0] adds r0, 0x38 str r0, [sp, 0xC8] subs r1, 0x18 str r1, [sp, 0xC4] add r2, sp, 0xC0 mov r10, r2 ldr r5, _080644C8 adds r0, r7, 0x4 str r0, [sp, 0xCC] ldr r1, _080644CC mov r8, r1 movs r6, 0 _080643F0: movs r4, 0 ldr r0, [sp, 0xC4] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] movs r0, 0x2 mov r2, r9 strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x12 ldr r1, [sp, 0xD0] strh r0, [r1] movs r0, 0x4 ldr r2, [sp, 0xD4] strh r0, [r2] movs r0, 0x10 ldr r1, [sp, 0xD8] strh r0, [r1] mov r2, r10 str r2, [sp, 0x74] movs r0, 0x3 ldr r1, [sp, 0xDC] str r0, [r1, 0x4] ldr r2, [sp, 0xE0] str r0, [r2, 0x4] ldr r1, [sp, 0xC8] str r0, [r1, 0x4] mov r0, sp ldr r1, [sp, 0xC4] movs r2, 0x60 bl memcpy bl sub_8083D44 adds r0, r7, 0x4 mov r1, sp mov r2, r10 bl sub_806455C movs r0, 0x2D bl sub_803E46C adds r0, r7, 0 bl sub_80645D4 strh r4, [r5, 0x8] strh r4, [r5, 0xA] mov r0, sp movs r1, 0x16 bl sub_805FC30 _0806445C: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x2D bl sub_803E46C mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064482 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08064482: mov r0, r8 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0806449C movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _0806449C: mov r2, r8 ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080644B2 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064510 _080644B2: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _080644D0 bl sub_8083D08 ldr r0, [sp, 0xCC] bl sub_80645F8 movs r4, 0x2 b _0806452A .align 2, 0 _080644C8: .4byte gUnknown_202EE10 _080644CC: .4byte gRealInputs _080644D0: movs r2, 0x18 ldrsh r0, [r5, r2] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _0806450C ldr r4, [r7, 0x70] adds r4, 0x44 ldr r1, _08064508 movs r2, 0x18 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl SetAction bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] strh r6, [r4, 0xA] strb r6, [r4, 0xC] strh r6, [r4, 0x10] strh r6, [r4, 0x12] movs r4, 0 b _0806452A .align 2, 0 _08064508: .4byte gUnknown_202EE44 _0806450C: bl sub_8083D30 _08064510: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064524 ldr r1, _08064554 ldrb r0, [r1] cmp r0, 0 beq _0806445C _08064524: bl sub_8083D30 movs r4, 0x1 _0806452A: ldr r0, _08064558 bl AddMenuCursorSprite movs r0, 0x2D bl sub_803E46C cmp r4, 0x2 bne _0806453C b _080643F0 _0806453C: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064554: .4byte gUnknown_202EE3A _08064558: .4byte gUnknown_202EE10 thumb_func_end sub_80643AC thumb_func_start sub_806455C sub_806455C: push {r4,r5,lr} sub sp, 0x54 adds r4, r0, 0 adds r0, r1, 0 movs r5, 0 movs r1, 0x1 strb r1, [r2] strb r5, [r2, 0x1] movs r1, 0xC strb r1, [r2, 0x2] strb r5, [r2, 0x3] movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl GetMapTileAtPosition adds r4, r0, 0 ldr r0, _080645D0 ldr r2, [r0] str r5, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_call_draw_string ldr r0, [r4, 0x14] bl EntityExists lsls r0, 24 cmp r0, 0 beq _080645C0 ldr r1, [r4, 0x14] add r0, sp, 0x4 movs r2, 0 bl SetMessageArgument str r5, [sp] movs r0, 0x8 movs r1, 0x12 add r2, sp, 0x4 movs r3, 0 bl xxx_call_draw_string _080645C0: movs r0, 0 bl sub_80073E0 add sp, 0x54 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080645D0: .4byte gUnknown_80FE708 thumb_func_end sub_806455C thumb_func_start sub_80645D4 sub_80645D4: push {lr} ldr r1, _080645F4 movs r0, 0 str r0, [r1] movs r0, 0x25 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C bl sub_8045064 pop {r0} bx r0 .align 2, 0 _080645F4: .4byte gUnknown_202EE6C thumb_func_end sub_80645D4 thumb_func_start sub_80645F8 sub_80645F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x110 str r0, [sp, 0xE4] mov r0, sp adds r0, 0x84 str r0, [sp, 0xF4] mov r1, sp adds r1, 0x88 str r1, [sp, 0xF8] mov r2, sp adds r2, 0x8C str r2, [sp, 0xFC] mov r3, sp adds r3, 0x8E str r3, [sp, 0x100] adds r0, 0xC str r0, [sp, 0x104] adds r1, 0xC str r1, [sp, 0x108] adds r2, 0xC str r2, [sp, 0x10C] adds r3, 0x22 str r3, [sp, 0xEC] adds r0, 0x38 str r0, [sp, 0xF0] add r6, sp, 0x14 subs r1, 0x74 str r1, [sp, 0xE8] add r2, sp, 0x80 mov r10, r2 add r3, sp, 0xE0 mov r9, r3 _08064640: movs r7, 0 mov r0, r10 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 ldr r1, [sp, 0xF4] str r0, [r1] movs r0, 0x2 ldr r2, [sp, 0xF8] strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x1A ldr r3, [sp, 0xFC] strh r0, [r3] movs r0, 0xC ldr r1, [sp, 0x100] strh r0, [r1] ldr r2, [sp, 0x104] strh r0, [r2] mov r3, r9 ldr r0, [sp, 0x108] str r3, [r0] movs r0, 0x3 ldr r1, [sp, 0x10C] str r0, [r1, 0x4] ldr r2, [sp, 0xEC] str r0, [r2, 0x4] ldr r3, [sp, 0xF0] str r0, [r3, 0x4] ldr r0, [sp, 0xE8] mov r1, r10 movs r2, 0x60 bl memcpy adds r0, r6, 0 bl sub_801317C movs r1, 0x1 add r0, sp, 0xE0 strb r1, [r0] movs r1, 0 mov r0, r9 strb r1, [r0, 0x1] movs r0, 0x10 mov r2, r9 strb r0, [r2, 0x2] strb r1, [r2, 0x3] ldr r3, [sp, 0xE4] movs r1, 0 ldrsh r0, [r3, r1] movs r2, 0x2 ldrsh r1, [r3, r2] bl GetMapTileAtPosition ldr r4, [r0, 0x14] cmp r4, 0 bne _080646B8 b _080647D8 _080646B8: adds r0, r4, 0 bl GetEntityType cmp r0, 0x2 beq _080646C4 b _080647D8 _080646C4: ldr r0, [sp, 0xE8] movs r1, 0 bl sub_803ECB4 adds r0, r4, 0 bl GetTrapData adds r4, r0, 0 ldrb r1, [r4] mov r0, r10 bl GetTrapName movs r0, 0 bl sub_80073B8 str r7, [sp] movs r0, 0x10 movs r1, 0 mov r2, r10 movs r3, 0 bl xxx_call_draw_string ldr r5, _08064720 ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r1, 0x18 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r0, [r0] add r1, sp, 0x4 bl sub_8097DF0 adds r5, r0, 0 b _08064738 .align 2, 0 _08064720: .4byte gTrapDescriptions _08064724: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064732 ldrb r0, [r6, 0x2] cmp r0, 0 beq _08064738 _08064732: bl sub_8083D30 b _080647D8 _08064738: cmp r5, 0 beq _08064740 bl sub_8062500 _08064740: adds r0, r6, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064788 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064760 ldrb r0, [r6, 0x1] cmp r0, 0 beq _08064724 _08064760: bl sub_8083D08 cmp r5, 0 beq _080647D8 movs r4, 0 cmp r4, r5 blt _08064770 b _08064640 _08064770: subs r3, r5, 0x1 mov r8, r3 _08064774: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] adds r1, r6, 0 bl sub_80639E4 adds r7, r4, 0x1 b _080647A0 .align 2, 0 _08064788: .4byte gRealInputs _0806478C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806479A ldrb r0, [r6, 0x2] cmp r0, 0 beq _080647A0 _0806479A: bl sub_8083D30 b _080647CC _080647A0: cmp r4, r8 bge _080647A8 bl sub_8062500 _080647A8: adds r0, r6, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _080647D4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080647C8 ldrb r0, [r6, 0x1] cmp r0, 0 beq _0806478C _080647C8: bl sub_8083D08 _080647CC: adds r4, r7, 0 cmp r4, r5 blt _08064774 b _08064640 .align 2, 0 _080647D4: .4byte gRealInputs _080647D8: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x110 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80645F8 thumb_func_start sub_80647F0 sub_80647F0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE4 adds r7, r0, 0 add r0, sp, 0x68 mov r9, r0 mov r1, sp adds r1, 0x6C str r1, [sp, 0xD0] mov r2, sp adds r2, 0x6E str r2, [sp, 0xD4] mov r0, sp adds r0, 0x70 str r0, [sp, 0xD8] adds r1, 0xC str r1, [sp, 0xDC] adds r2, 0x22 str r2, [sp, 0xE0] adds r0, 0x38 str r0, [sp, 0xC8] subs r1, 0x18 str r1, [sp, 0xC4] add r2, sp, 0xC0 mov r10, r2 ldr r5, _0806490C adds r0, r7, 0x4 str r0, [sp, 0xCC] ldr r1, _08064910 mov r8, r1 movs r6, 0 _08064834: movs r4, 0 ldr r0, [sp, 0xC4] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x64] movs r0, 0x2 mov r2, r9 strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0x12 ldr r1, [sp, 0xD0] strh r0, [r1] movs r0, 0x4 ldr r2, [sp, 0xD4] strh r0, [r2] movs r0, 0x10 ldr r1, [sp, 0xD8] strh r0, [r1] mov r2, r10 str r2, [sp, 0x74] movs r0, 0x3 ldr r1, [sp, 0xDC] str r0, [r1, 0x4] ldr r2, [sp, 0xE0] str r0, [r2, 0x4] ldr r1, [sp, 0xC8] str r0, [r1, 0x4] mov r0, sp ldr r1, [sp, 0xC4] movs r2, 0x60 bl memcpy bl sub_8083D44 adds r0, r7, 0x4 mov r1, sp mov r2, r10 bl sub_80649A0 movs r0, 0x2E bl sub_803E46C adds r0, r7, 0 bl sub_8064A18 strh r4, [r5, 0x8] strh r4, [r5, 0xA] mov r0, sp movs r1, 0x16 bl sub_805FC30 _080648A0: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x2E bl sub_803E46C mov r2, r8 ldrh r1, [r2, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080648C6 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _080648C6: mov r0, r8 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080648E0 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _080648E0: mov r2, r8 ldrh r1, [r2, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080648F6 adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064954 _080648F6: movs r1, 0x18 ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08064914 bl sub_8083D08 ldr r0, [sp, 0xCC] bl sub_8064A3C movs r4, 0x2 b _0806496E .align 2, 0 _0806490C: .4byte gUnknown_202EE10 _08064910: .4byte gRealInputs _08064914: movs r2, 0x18 ldrsh r0, [r5, r2] bl sub_8044F3C lsls r0, 24 cmp r0, 0 beq _08064950 ldr r4, [r7, 0x70] adds r4, 0x44 ldr r1, _0806494C movs r2, 0x18 ldrsh r0, [r5, r2] lsls r0, 2 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl SetAction bl sub_8083D08 strb r6, [r4, 0x4] strh r6, [r4, 0x8] strh r6, [r4, 0xA] strb r6, [r4, 0xC] strh r6, [r4, 0x10] strh r6, [r4, 0x12] movs r4, 0 b _0806496E .align 2, 0 _0806494C: .4byte gUnknown_202EE44 _08064950: bl sub_8083D30 _08064954: mov r0, r8 ldrh r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064968 ldr r1, _08064998 ldrb r0, [r1] cmp r0, 0 beq _080648A0 _08064968: bl sub_8083D30 movs r4, 0x1 _0806496E: ldr r0, _0806499C bl AddMenuCursorSprite movs r0, 0x2E bl sub_803E46C cmp r4, 0x2 bne _08064980 b _08064834 _08064980: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064998: .4byte gUnknown_202EE3A _0806499C: .4byte gUnknown_202EE10 thumb_func_end sub_80647F0 thumb_func_start sub_80649A0 sub_80649A0: push {r4,r5,lr} sub sp, 0x4 adds r0, r1, 0 movs r3, 0 movs r1, 0x1 strb r1, [r2] strb r3, [r2, 0x1] movs r1, 0xB strb r1, [r2, 0x2] strb r3, [r2, 0x3] movs r1, 0x1 bl sub_803ECB4 movs r0, 0 bl sub_80073B8 bl sub_8043D10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080649E4 cmp r0, 0x1 ble _080649D4 cmp r0, 0x2 beq _080649DC _080649D4: ldr r0, _080649D8 b _080649E6 .align 2, 0 _080649D8: .4byte gUnknown_80FE70C _080649DC: ldr r0, _080649E0 b _080649E6 .align 2, 0 _080649E0: .4byte gUnknown_80FE720 _080649E4: ldr r0, _08064A14 _080649E6: ldr r5, [r0] movs r4, 0 str r4, [sp] movs r0, 0xC movs r1, 0 adds r2, r5, 0 movs r3, 0 bl xxx_call_draw_string str r4, [sp] movs r0, 0x8 movs r1, 0x12 adds r2, r5, 0 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064A14: .4byte gUnknown_80FE724 thumb_func_end sub_80649A0 thumb_func_start sub_8064A18 sub_8064A18: push {lr} ldr r1, _08064A38 movs r0, 0 str r0, [r1] movs r0, 0x26 movs r1, 0 bl sub_8044F5C movs r0, 0xC movs r1, 0 bl sub_8044F5C bl sub_8045064 pop {r0} bx r0 .align 2, 0 _08064A38: .4byte gUnknown_202EE6C thumb_func_end sub_8064A18 thumb_func_start sub_8064A3C sub_8064A3C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xE8 mov r0, sp adds r0, 0x20 str r0, [sp, 0xE4] add r1, sp, 0x80 mov r10, r1 add r0, sp, 0xE0 mov r9, r0 add r5, sp, 0x14 _08064A58: mov r0, r10 movs r1, 0 movs r2, 0x60 bl memset add r1, sp, 0x84 movs r0, 0x6 str r0, [r1] add r0, sp, 0x88 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r1, sp, 0x8C movs r0, 0x1A strh r0, [r1] mov r0, sp adds r0, 0x8E movs r1, 0xC strh r1, [r0] add r0, sp, 0x90 strh r1, [r0] add r0, sp, 0x94 mov r1, r9 str r1, [r0] add r0, sp, 0x98 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xB0 str r1, [r0, 0x4] add r0, sp, 0xC8 str r1, [r0, 0x4] ldr r0, [sp, 0xE4] mov r1, r10 movs r2, 0x60 bl memcpy add r0, sp, 0x14 bl sub_801317C movs r0, 0x1 mov r1, r9 strb r0, [r1] movs r0, 0 strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] movs r0, 0 strb r0, [r1, 0x3] ldr r0, [sp, 0xE4] movs r1, 0 bl sub_803ECB4 bl sub_8043D10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80073B8 ldr r0, _08064B0C lsls r4, 2 adds r0, r4, r0 ldr r2, [r0] movs r1, 0 str r1, [sp] movs r0, 0x10 movs r3, 0 bl xxx_call_draw_string ldr r0, _08064B10 adds r4, r0 ldr r4, [r4] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x18 adds r2, r4, 0 movs r3, 0 bl xxx_call_draw_string movs r0, 0 bl sub_80073E0 adds r0, r4, 0 add r1, sp, 0x4 bl sub_8097DF0 adds r6, r0, 0 b _08064B28 .align 2, 0 _08064B0C: .4byte gUnknown_80F8104 _08064B10: .4byte gUnknown_80F7F70 _08064B14: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064B22 ldrb r0, [r5, 0x2] cmp r0, 0 beq _08064B28 _08064B22: bl sub_8083D30 b _08064BC8 _08064B28: cmp r6, 0 beq _08064B30 bl sub_8062500 _08064B30: adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064B78 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064B50 ldrb r0, [r5, 0x1] cmp r0, 0 beq _08064B14 _08064B50: bl sub_8083D08 cmp r6, 0 beq _08064BC8 movs r4, 0 cmp r4, r6 blt _08064B60 b _08064A58 _08064B60: subs r1, r6, 0x1 mov r8, r1 _08064B64: lsls r0, r4, 2 add r0, sp adds r0, 0x4 ldr r0, [r0] adds r1, r5, 0 bl sub_80639E4 adds r7, r4, 0x1 b _08064B90 .align 2, 0 _08064B78: .4byte gRealInputs _08064B7C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064B8A ldrb r0, [r5, 0x2] cmp r0, 0 beq _08064B90 _08064B8A: bl sub_8083D30 b _08064BBC _08064B90: cmp r4, r8 bge _08064B98 bl sub_8062500 _08064B98: adds r0, r5, 0 movs r1, 0 bl nullsub_34 movs r0, 0x16 bl sub_803E46C ldr r0, _08064BC4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064BB8 ldrb r0, [r5, 0x1] cmp r0, 0 beq _08064B7C _08064BB8: bl sub_8083D08 _08064BBC: adds r4, r7, 0 cmp r4, r6 blt _08064B64 b _08064A58 .align 2, 0 _08064BC4: .4byte gRealInputs _08064BC8: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0xE8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8064A3C thumb_func_start sub_8064BE0 sub_8064BE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _08064C94 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] movs r1, 0x4 mov r9, r1 cmp r0, 0 beq _08064C02 movs r0, 0x5 mov r9, r0 _08064C02: ldr r1, _08064C98 movs r0, 0 str r0, [r1] mov r10, r0 ldr r6, _08064C9C ldr r7, _08064CA0 movs r1, 0x2A adds r1, r6 mov r8, r1 _08064C14: movs r5, 0 bl sub_8065250 _08064C1A: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064C3E movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08064C3E: ldrh r1, [r7, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064C56 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08064C56: ldrh r1, [r7, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064C6A adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064CAA _08064C6A: movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0x4 bne _08064C8C ldr r0, _08064C94 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08064CA4 bl IsBossBattle lsls r0, 24 cmp r0, 0 bne _08064CA4 _08064C8C: bl sub_8083D08 b _08064CC0 .align 2, 0 _08064C94: .4byte gDungeonGlobalData _08064C98: .4byte gUnknown_202F2E0 _08064C9C: .4byte gUnknown_202EE10 _08064CA0: .4byte gRealInputs _08064CA4: bl sub_8083D30 b _08064CC0 _08064CAA: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064CBA mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08064C1A _08064CBA: bl sub_8083D30 movs r5, 0x1 _08064CC0: ldr r4, _08064D68 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C mov r0, r10 cmp r0, 0 bne _08064C14 cmp r5, 0 bne _08064D4C ldr r5, _08064D6C movs r1, 0x18 ldrsh r0, [r4, r1] str r0, [r5] cmp r0, 0 bne _08064CE8 bl sub_8064D74 _08064CE8: ldr r0, [r5] cmp r0, 0x1 bne _08064CF2 bl sub_80650C0 _08064CF2: ldr r0, [r5] cmp r0, 0x2 bne _08064CFC bl sub_80532B4 _08064CFC: ldr r0, [r5] cmp r0, 0x3 bne _08064D06 bl sub_806519C _08064D06: ldr r0, _08064D70 ldr r0, [r0] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08064D2A bl IsBossBattle lsls r0, 24 cmp r0, 0 bne _08064D2A ldr r0, [r5] cmp r0, 0x4 bne _08064D2A bl sub_8065FB4 _08064D2A: ldr r0, _08064D6C ldr r0, [r0] cmp r0, r9 bne _08064D36 bl sub_8065BF4 _08064D36: ldr r0, _08064D70 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _08064D4C bl sub_805F1AC lsls r0, 16 cmp r0, 0 bne _08064D4C b _08064C14 _08064D4C: bl sub_8040A84 movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064D68: .4byte gUnknown_202EE10 _08064D6C: .4byte gUnknown_202F2E0 _08064D70: .4byte gDungeonGlobalData thumb_func_end sub_8064BE0 thumb_func_start sub_8064D74 sub_8064D74: push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _08064DE0 ldr r7, _08064DE4 movs r0, 0x2A adds r0, r6 mov r8, r0 _08064D84: movs r5, 0 bl CreateFieldGameOptionsMenu _08064D8A: adds r0, r6, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r7, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064DAE movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_80136E0 _08064DAE: ldrh r1, [r7, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064DC6 movs r0, 0x1 bl sub_8083CE0 adds r0, r6, 0 movs r1, 0x1 bl sub_8013744 _08064DC6: ldrh r1, [r7, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064DDA adds r0, r6, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08064DE8 _08064DDA: bl sub_8083D08 b _08064DFE .align 2, 0 _08064DE0: .4byte gUnknown_202EE10 _08064DE4: .4byte gRealInputs _08064DE8: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08064DF8 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08064D8A _08064DF8: bl sub_8083D30 movs r5, 0x1 _08064DFE: ldr r4, _08064E2C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064E56 ldr r0, _08064E30 ldr r1, _08064E34 ldr r0, [r0] ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _08064E38 bl sub_8064E68 b _08064E40 .align 2, 0 _08064E2C: .4byte gUnknown_202EE10 _08064E30: .4byte gUnknown_203B46C _08064E34: .4byte gUnknown_202F2E8 _08064E38: cmp r0, 0x1 bne _08064E4C bl sub_8064F50 _08064E40: lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8065040 b _08064D84 _08064E4C: cmp r0, 0x2 bne _08064D84 bl sub_806509C b _08064D84 _08064E56: movs r0, 0 movs r1, 0 bl sub_803EAF0 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8064D74 thumb_func_start sub_8064E68 sub_8064E68: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08064EDC strh r7, [r0, 0x18] adds r4, r0, 0 ldr r6, _08064EE0 movs r0, 0x2A adds r0, r4 mov r8, r0 _08064E7E: movs r7, 0 movs r5, 0 bl CreateFieldDungeonMenu _08064E86: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064EAA movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064EAA: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064EC2 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064EC2: ldrh r1, [r6, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08064EE4 movs r0, 0 bl sub_8083CE0 movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8065A8C b _08064F2E .align 2, 0 _08064EDC: .4byte gUnknown_202EE10 _08064EE0: .4byte gRealInputs _08064EE4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08064EFC movs r0, 0 bl sub_8083CE0 movs r2, 0x18 ldrsh r0, [r4, r2] bl sub_8065B3C b _08064F2E _08064EFC: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064F0E mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08064F14 _08064F0E: bl sub_8083D08 b _08064F30 _08064F14: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08064F24 bl sub_8083D30 movs r7, 0x1 b _08064F30 _08064F24: bl sub_8065BEC lsls r0, 24 cmp r0, 0 beq _08064E86 _08064F2E: movs r5, 0x1 _08064F30: ldr r0, _08064F4C bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064E7E adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08064F4C: .4byte gUnknown_202EE10 thumb_func_end sub_8064E68 thumb_func_start sub_8064F50 sub_8064F50: push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 ldr r0, _08064FC8 strh r7, [r0, 0x18] adds r4, r0, 0 ldr r6, _08064FCC movs r0, 0x2A adds r0, r4 mov r8, r0 _08064F66: movs r7, 0 movs r5, 0 bl CreateFieldOthersMenu _08064F6E: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08064F92 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08064F92: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08064FAA movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08064FAA: ldrh r1, [r6, 0x4] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08064FD0 movs r0, 0 bl sub_8083CE0 movs r1, 0x18 ldrsh r0, [r4, r1] adds r0, 0x5 bl sub_8065A8C b _0806501C .align 2, 0 _08064FC8: .4byte gUnknown_202EE10 _08064FCC: .4byte gRealInputs _08064FD0: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08064FEA movs r0, 0 bl sub_8083CE0 movs r2, 0x18 ldrsh r0, [r4, r2] adds r0, 0x5 bl sub_8065B3C b _0806501C _08064FEA: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08064FFC mov r2, r8 ldrb r0, [r2] cmp r0, 0 beq _08065002 _08064FFC: bl sub_8083D08 b _0806501E _08065002: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08065012 bl sub_8083D30 movs r7, 0x1 b _0806501E _08065012: bl sub_8065BF0 lsls r0, 24 cmp r0, 0 beq _08064F6E _0806501C: movs r5, 0x1 _0806501E: ldr r0, _0806503C bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r5, 0 bne _08064F66 adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0806503C: .4byte gUnknown_202EE10 thumb_func_end sub_8064F50 thumb_func_start sub_8065040 sub_8065040: push {r4,lr} lsls r0, 24 movs r4, 0 cmp r0, 0 beq _0806505C ldr r0, _08065058 bl GameOptionsNotChange lsls r0, 24 cmp r0, 0 bne _0806505E b _08065062 .align 2, 0 _08065058: .4byte gUnknown_202F2E8 _0806505C: movs r4, 0x1 _0806505E: cmp r4, 0 beq _08065088 _08065062: ldr r0, _08065090 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08065088 ldr r0, _08065094 ldr r1, [r0] ldr r0, _08065098 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] bl sub_803E13C bl sub_8040238 _08065088: pop {r4} pop {r0} bx r0 .align 2, 0 _08065090: .4byte gUnknown_80FEBF8 _08065094: .4byte gUnknown_203B46C _08065098: .4byte gUnknown_202F2E8 thumb_func_end sub_8065040 thumb_func_start sub_806509C sub_806509C: push {lr} ldr r0, _080650BC ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _080650B8 movs r0, 0 bl InitializeGameOptions bl sub_803E13C _080650B8: pop {r0} bx r0 .align 2, 0 _080650BC: .4byte gUnknown_80FEC28 thumb_func_end sub_806509C thumb_func_start sub_80650C0 sub_80650C0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r9, r0 ldr r5, _08065134 ldr r6, _08065138 movs r1, 0x2A adds r1, r5 mov r8, r1 _080650D6: movs r7, 0 bl sub_806544C _080650DC: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08065100 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08065100: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08065118 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08065118: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806512C adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _0806513C _0806512C: bl sub_8083D08 b _08065152 .align 2, 0 _08065134: .4byte gUnknown_202EE10 _08065138: .4byte gRealInputs _0806513C: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806514C mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _080650DC _0806514C: bl sub_8083D30 movs r7, 0x1 _08065152: ldr r4, _08065178 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C mov r0, r9 cmp r0, 0 bne _080650D6 cmp r7, 0 bne _0806518E movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _0806517C bl sub_80651D0 b _08065184 .align 2, 0 _08065178: .4byte gUnknown_202EE10 _0806517C: cmp r0, 0x1 bne _08065184 bl sub_80651FC _08065184: bl sub_805F1AC lsls r0, 16 cmp r0, 0 beq _080650D6 _0806518E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80650C0 thumb_func_start sub_806519C sub_806519C: push {lr} ldr r0, _080651CC ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] subs r2, 0x34 adds r1, r2 ldrb r1, [r1] movs r2, 0 bl sub_80319A4 _080651B6: movs r0, 0x47 bl sub_803E46C bl sub_80319F8 cmp r0, 0 beq _080651B6 bl sub_8031A3C pop {r0} bx r0 .align 2, 0 _080651CC: .4byte gDungeonGlobalData thumb_func_end sub_806519C thumb_func_start sub_80651D0 sub_80651D0: push {lr} ldr r0, _080651F0 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _080651F4 bl sub_805F1A0 movs r1, 0x2B bl SetAction movs r0, 0 b _080651F6 .align 2, 0 _080651F0: .4byte gUnknown_80FDE6C _080651F4: movs r0, 0x1 _080651F6: pop {r1} bx r1 thumb_func_end sub_80651D0 thumb_func_start sub_80651FC sub_80651FC: push {r4,r5,lr} ldr r0, _08065238 ldr r1, [r0] movs r0, 0 movs r2, 0 bl sub_8052B8C adds r5, r0, 0 cmp r5, 0x1 bne _08065248 bl sub_805F1A0 movs r1, 0x2E bl SetAction ldr r4, _0806523C bl GetLeaderEntity adds r2, r0, 0 adds r0, r4, 0 movs r1, 0 bl sub_8083AB0 ldr r0, _08065240 ldr r0, [r0] ldr r1, _08065244 adds r0, r1 strb r5, [r0] movs r0, 0 b _0806524A .align 2, 0 _08065238: .4byte gUnknown_80FDEB8 _0806523C: .4byte 0x0000021b _08065240: .4byte gDungeonGlobalData _08065244: .4byte 0x00000654 _08065248: movs r0, 0x1 _0806524A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80651FC thumb_func_start sub_8065250 sub_8065250: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r5, sp, 0x64 adds r0, r5, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r7, 0 movs r1, 0x2 mov r9, r1 mov r1, r9 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x70 movs r1, 0x12 mov r10, r1 mov r1, r10 strh r1, [r0] adds r0, 0x2 movs r1, 0x10 mov r8, r1 mov r1, r8 strh r1, [r0] add r0, sp, 0x74 strh r1, [r0] add r6, sp, 0xC4 str r6, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 adds r1, r5, 0 movs r2, 0x60 bl memcpy movs r0, 0x1 strb r0, [r6] strb r4, [r6, 0x1] strb r4, [r6, 0x3] ldr r4, _080653D0 ldr r0, _080653D4 ldr r0, [r0] strh r0, [r4, 0x18] ldr r1, _080653D8 ldr r0, [r1] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] movs r5, 0x5 cmp r0, 0 beq _080652D2 movs r5, 0x6 _080652D2: strh r5, [r4, 0x1A] strh r5, [r4, 0x1C] strh r7, [r4, 0x1E] strh r7, [r4, 0x20] strh r7, [r4, 0x4] mov r0, r8 strh r0, [r4, 0x6] strh r7, [r4, 0xC] strh r7, [r4, 0xE] strh r7, [r4, 0x14] str r7, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 mov r1, r10 strh r1, [r0, 0xC] adds r0, r5, 0 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA strb r0, [r6, 0x2] adds r0, r1, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 movs r5, 0 ldr r0, _080653DC ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E0 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E4 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653E8 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw movs r5, 0x4 adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653EC ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, _080653D8 ldr r0, [r1] movs r1, 0xCB lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0806540E bl IsBossBattle lsls r0, 24 cmp r0, 0 bne _080653F4 movs r5, 0x5 adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _080653F0 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw b _0806540E .align 2, 0 _080653D0: .4byte gUnknown_202EE10 _080653D4: .4byte gUnknown_202F2E0 _080653D8: .4byte gDungeonGlobalData _080653DC: .4byte gUnknown_80FE8F8 _080653E0: .4byte gUnknown_80FE9CC _080653E4: .4byte gUnknown_80FE9E8 _080653E8: .4byte gUnknown_80FE9F8 _080653EC: .4byte gUnknown_80FEA10 _080653F0: .4byte gUnknown_80FEA28 _080653F4: movs r5, 0x5 adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 adds r1, r0, 0 ldr r0, _08065440 ldr r2, [r0] str r7, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw _0806540E: ldr r0, _08065444 adds r1, r5, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, _08065448 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065440: .4byte gUnknown_80FEA44 _08065444: .4byte gUnknown_202EE10 _08065448: .4byte gUnknown_80FEA50 thumb_func_end sub_8065250 thumb_func_start sub_806544C sub_806544C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r2, r9 strh r2, [r0] strh r2, [r0, 0x2] add r0, sp, 0x70 movs r7, 0x12 strh r7, [r0] adds r0, 0x2 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r0, sp, 0xC4 mov r8, r0 str r0, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _08065568 strh r5, [r4, 0x18] mov r2, r9 strh r2, [r4, 0x1A] strh r2, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r7, [r0, 0xC] movs r0, 0x2 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] adds r0, r2, 0 mov r2, r9 strh r2, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 ldr r0, _0806556C ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw adds r0, r4, 0 movs r1, 0 bl sub_8013800 adds r1, r0, 0 ldr r6, _08065570 movs r2, 0xAC lsls r2, 1 adds r0, r6, r2 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 adds r1, r0, 0 movs r2, 0xB8 lsls r2, 1 adds r0, r6, r2 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065568: .4byte gUnknown_202EE10 _0806556C: .4byte gUnknown_80FE8F4 _08065570: .4byte gUnknown_80F7C50 thumb_func_end sub_806544C thumb_func_start CreateFieldGameOptionsMenu CreateFieldGameOptionsMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xD4 add r0, sp, 0x10 mov r10, r0 add r7, sp, 0x70 adds r0, r7, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x74] add r0, sp, 0x78 movs r4, 0 movs r6, 0 movs r1, 0x2 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x7C movs r1, 0xC strh r1, [r0] adds r0, 0x2 movs r1, 0x10 mov r9, r1 mov r1, r9 strh r1, [r0] add r0, sp, 0x80 strh r1, [r0] add r0, sp, 0x84 add r1, sp, 0xD0 mov r8, r1 str r1, [r0] add r0, sp, 0x88 movs r5, 0x3 str r5, [r0, 0x4] add r0, sp, 0xA0 str r5, [r0, 0x4] add r0, sp, 0xB8 str r5, [r0, 0x4] mov r0, r10 adds r1, r7, 0 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _080656AC strh r6, [r4, 0x18] strh r5, [r4, 0x1A] strh r5, [r4, 0x1C] strh r6, [r4, 0x1E] strh r6, [r4, 0x20] strh r6, [r4, 0x4] mov r0, r9 strh r0, [r4, 0x6] strh r6, [r4, 0xC] strh r6, [r4, 0xE] strh r6, [r4, 0x14] str r6, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C movs r0, 0xC mov r1, r10 strh r0, [r1, 0xC] movs r0, 0x3 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r1, r10 strh r0, [r1, 0x10] strh r0, [r1, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] movs r1, 0x2 mov r0, r10 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 str r0, [sp, 0xC] movs r0, 0 bl sub_80073B8 ldr r0, _080656B0 ldr r2, [r0] str r6, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x4] ldr r0, _080656B4 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x8] ldr r0, _080656B8 ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0xC] ldr r0, _080656BC ldr r2, [r0] str r6, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 add sp, 0xD4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080656AC: .4byte gUnknown_202EE10 _080656B0: .4byte gGameOptionsTextPtr _080656B4: .4byte gOptionsDungeonTextPtr _080656B8: .4byte gOptionsOthersTextPtr _080656BC: .4byte gUnknown_80FE748 thumb_func_end CreateFieldGameOptionsMenu thumb_func_start CreateFieldDungeonMenu CreateFieldDungeonMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xDC add r0, sp, 0x18 mov r9, r0 add r7, sp, 0x78 adds r0, r7, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x7C] add r0, sp, 0x80 movs r5, 0 movs r1, 0x2 mov r10, r1 mov r2, r10 strh r2, [r0] strh r2, [r0, 0x2] add r1, sp, 0x84 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x86 movs r3, 0x10 mov r8, r3 mov r4, r8 strh r4, [r0] add r0, sp, 0x88 strh r4, [r0] add r0, sp, 0x8C add r6, sp, 0xD8 str r6, [r0] add r0, sp, 0x90 movs r1, 0x3 str r1, [r0, 0x4] add r0, sp, 0xA8 str r1, [r0, 0x4] add r0, sp, 0xC0 str r1, [r0, 0x4] mov r0, r9 adds r1, r7, 0 movs r2, 0x60 bl memcpy adds r1, r7, 0 ldr r0, _0806583C ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x1 strb r0, [r6] movs r0, 0 strb r0, [r6, 0x1] strb r0, [r6, 0x3] ldr r4, _08065840 movs r0, 0x5 strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] mov r1, r8 strh r1, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x18 mov r2, r9 strh r0, [r2, 0xC] movs r0, 0x5 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r3, r9 strh r0, [r3, 0x10] strh r0, [r3, 0xE] movs r0, 0xA strb r0, [r6, 0x2] mov r0, r10 strh r0, [r3, 0x8] mov r0, r9 movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r0, r4, 0 movs r1, 0 bl sub_8013800 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 bl sub_8013800 str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x2 bl sub_8013800 str r0, [sp, 0xC] adds r0, r4, 0 movs r1, 0x3 bl sub_8013800 str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x4 bl sub_8013800 str r0, [sp, 0x14] movs r0, 0 bl sub_80073B8 ldr r0, _08065844 ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x4] ldr r0, _08065848 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x8] ldr r0, _0806584C ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0xC] ldr r0, _08065850 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x10] ldr r0, _08065854 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r1, [sp, 0x14] ldr r0, _08065858 ldr r2, [r0] str r5, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r0, _0806585C ldrb r0, [r0] adds r4, r7, 0 cmp r0, 0 beq _08065860 ldr r2, [sp, 0x4] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x15 bl sub_80078A4 b _08065872 .align 2, 0 _0806583C: .4byte gUnknown_8106CE8 _08065840: .4byte gUnknown_202EE10 _08065844: .4byte gOptionsDungeonTextPtr _08065848: .4byte gUnknown_80FE764 _0806584C: .4byte gUnknown_80FE788 _08065850: .4byte gUnknown_80FE7A8 _08065854: .4byte gUnknown_80FE7C0 _08065858: .4byte gUnknown_80FE7E4 _0806585C: .4byte gUnknown_202F2E8 _08065860: ldr r2, [sp, 0x4] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x16 bl sub_80078A4 _08065872: ldr r0, _08065890 ldrb r0, [r0, 0x1] cmp r0, 0 beq _08065894 ldr r2, [sp, 0x8] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x16 bl sub_80078A4 b _080658A6 .align 2, 0 _08065890: .4byte gUnknown_202F2E8 _08065894: ldr r2, [sp, 0x8] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x12 bl sub_80078A4 _080658A6: ldr r0, _080658C4 ldrb r0, [r0, 0x2] cmp r0, 0 beq _080658C8 ldr r2, [sp, 0xC] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0x10 bl sub_80078A4 b _080658DA .align 2, 0 _080658C4: .4byte gUnknown_202F2E8 _080658C8: ldr r2, [sp, 0xC] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0xC bl sub_80078A4 _080658DA: ldr r0, _080658F8 ldrb r0, [r0, 0x3] cmp r0, 0 beq _080658FC ldr r2, [sp, 0x10] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x88 movs r3, 0xC bl sub_80078A4 b _0806590E .align 2, 0 _080658F8: .4byte gUnknown_202F2E8 _080658FC: ldr r2, [sp, 0x10] adds r2, 0xA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0x50 movs r3, 0x10 bl sub_80078A4 _0806590E: ldr r0, _08065944 ldrb r1, [r0, 0x4] lsls r0, r1, 2 adds r1, r0, r1 lsls r1, 3 adds r1, 0x50 ldr r2, [sp, 0x14] adds r2, 0xA adds r0, r4, r0 ldr r3, [r0] movs r0, 0x7 str r0, [sp] movs r0, 0 bl sub_80078A4 movs r0, 0 bl sub_80073E0 add sp, 0xDC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065944: .4byte gUnknown_202F2E8 thumb_func_end CreateFieldDungeonMenu thumb_func_start CreateFieldOthersMenu CreateFieldOthersMenu: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xCC add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r2, r9 strh r2, [r0] strh r2, [r0, 0x2] add r1, sp, 0x70 movs r0, 0x12 strh r0, [r1] mov r0, sp adds r0, 0x72 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r3, sp, 0xC4 mov r8, r3 str r3, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy mov r1, r10 ldr r0, _08065A78 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} movs r0, 0x1 mov r7, r8 strb r0, [r7] strb r4, [r7, 0x1] strb r4, [r7, 0x3] ldr r4, _08065A7C strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r1, sp, 0x4 movs r0, 0x18 strh r0, [r1, 0xC] movs r0, 0x1 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA strb r0, [r7, 0x2] adds r0, r1, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r4, 0 mov r7, r10 add r6, sp, 0xC8 adds r5, r6, 0 _08065A0A: ldr r0, _08065A7C adds r1, r4, 0 bl sub_8013800 stm r5!, {r0} adds r4, 0x1 cmp r4, 0 ble _08065A0A movs r0, 0 bl sub_80073B8 ldr r0, _08065A80 ldr r2, [r0] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldr r1, [r6] ldr r0, _08065A84 ldr r2, [r0] str r4, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw ldr r0, _08065A88 ldrb r1, [r0, 0x8] lsls r3, r1, 2 adds r1, r3, r1 lsls r1, 3 adds r1, 0x50 add r0, sp, 0xC8 ldr r2, [r0] adds r2, 0xA adds r3, r7, r3 ldr r3, [r3] movs r0, 0x7 str r0, [sp] movs r0, 0 bl sub_80078A4 movs r0, 0 bl sub_80073E0 add sp, 0xCC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065A78: .4byte gUnknown_8106CF4 _08065A7C: .4byte gUnknown_202EE10 _08065A80: .4byte gOptionsOthersTextPtr _08065A84: .4byte gOptionsWindowColorPtr _08065A88: .4byte gUnknown_202F2E8 thumb_func_end CreateFieldOthersMenu thumb_func_start sub_8065A8C sub_8065A8C: push {lr} cmp r0, 0x5 bhi _08065B38 lsls r0, 2 ldr r1, _08065A9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08065A9C: .4byte _08065AA0 .align 2, 0 _08065AA0: .4byte _08065AB8 .4byte _08065ACC .4byte _08065AE0 .4byte _08065AF4 .4byte _08065B08 .4byte _08065B22 _08065AB8: ldr r2, _08065AC8 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _08065AC4 movs r1, 0x1 _08065AC4: strb r1, [r2] b _08065B38 .align 2, 0 _08065AC8: .4byte gUnknown_202F2E8 _08065ACC: ldr r2, _08065ADC movs r1, 0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08065AD8 movs r1, 0x1 _08065AD8: strb r1, [r2, 0x1] b _08065B38 .align 2, 0 _08065ADC: .4byte gUnknown_202F2E8 _08065AE0: ldr r2, _08065AF0 movs r1, 0 ldrb r0, [r2, 0x2] cmp r0, 0 bne _08065AEC movs r1, 0x1 _08065AEC: strb r1, [r2, 0x2] b _08065B38 .align 2, 0 _08065AF0: .4byte gUnknown_202F2E8 _08065AF4: ldr r2, _08065B04 movs r1, 0 ldrb r0, [r2, 0x3] cmp r0, 0 bne _08065B00 movs r1, 0x1 _08065B00: strb r1, [r2, 0x3] b _08065B38 .align 2, 0 _08065B04: .4byte gUnknown_202F2E8 _08065B08: ldr r1, _08065B18 ldrb r0, [r1, 0x4] cmp r0, 0 bne _08065B1C movs r0, 0x2 strb r0, [r1, 0x4] b _08065B38 .align 2, 0 _08065B18: .4byte gUnknown_202F2E8 _08065B1C: subs r0, 0x1 strb r0, [r1, 0x4] b _08065B38 _08065B22: ldr r1, _08065B30 ldrb r0, [r1, 0x8] cmp r0, 0 bne _08065B34 movs r0, 0x2 b _08065B36 .align 2, 0 _08065B30: .4byte gUnknown_202F2E8 _08065B34: subs r0, 0x1 _08065B36: strb r0, [r1, 0x8] _08065B38: pop {r0} bx r0 thumb_func_end sub_8065A8C thumb_func_start sub_8065B3C sub_8065B3C: push {lr} cmp r0, 0x5 bhi _08065BE8 lsls r0, 2 ldr r1, _08065B4C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08065B4C: .4byte _08065B50 .align 2, 0 _08065B50: .4byte _08065B68 .4byte _08065B7C .4byte _08065B90 .4byte _08065BA4 .4byte _08065BB8 .4byte _08065BD2 _08065B68: ldr r2, _08065B78 movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _08065B74 movs r1, 0x1 _08065B74: strb r1, [r2] b _08065BE8 .align 2, 0 _08065B78: .4byte gUnknown_202F2E8 _08065B7C: ldr r2, _08065B8C movs r1, 0 ldrb r0, [r2, 0x1] cmp r0, 0 bne _08065B88 movs r1, 0x1 _08065B88: strb r1, [r2, 0x1] b _08065BE8 .align 2, 0 _08065B8C: .4byte gUnknown_202F2E8 _08065B90: ldr r2, _08065BA0 movs r1, 0 ldrb r0, [r2, 0x2] cmp r0, 0 bne _08065B9C movs r1, 0x1 _08065B9C: strb r1, [r2, 0x2] b _08065BE8 .align 2, 0 _08065BA0: .4byte gUnknown_202F2E8 _08065BA4: ldr r2, _08065BB4 movs r1, 0 ldrb r0, [r2, 0x3] cmp r0, 0 bne _08065BB0 movs r1, 0x1 _08065BB0: strb r1, [r2, 0x3] b _08065BE8 .align 2, 0 _08065BB4: .4byte gUnknown_202F2E8 _08065BB8: ldr r1, _08065BC8 ldrb r0, [r1, 0x4] cmp r0, 0x2 bne _08065BCC movs r0, 0 strb r0, [r1, 0x4] b _08065BE8 .align 2, 0 _08065BC8: .4byte gUnknown_202F2E8 _08065BCC: adds r0, 0x1 strb r0, [r1, 0x4] b _08065BE8 _08065BD2: ldr r1, _08065BE0 ldrb r0, [r1, 0x8] cmp r0, 0x2 bne _08065BE4 movs r0, 0 b _08065BE6 .align 2, 0 _08065BE0: .4byte gUnknown_202F2E8 _08065BE4: adds r0, 0x1 _08065BE6: strb r0, [r1, 0x8] _08065BE8: pop {r0} bx r0 thumb_func_end sub_8065B3C thumb_func_start sub_8065BEC sub_8065BEC: movs r0, 0 bx lr thumb_func_end sub_8065BEC thumb_func_start sub_8065BF0 sub_8065BF0: movs r0, 0 bx lr thumb_func_end sub_8065BF0 thumb_func_start sub_8065BF4 sub_8065BF4: push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, _08065C60 ldr r6, _08065C64 movs r0, 0x2A adds r0, r5 mov r8, r0 _08065C04: movs r7, 0 bl sub_8065CAC _08065C0A: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldrh r1, [r6, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08065C2E movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_80136E0 _08065C2E: ldrh r1, [r6, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08065C46 movs r0, 0x1 bl sub_8083CE0 adds r0, r5, 0 movs r1, 0x1 bl sub_8013744 _08065C46: ldrh r1, [r6, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08065C5A adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08065C68 _08065C5A: bl sub_8083D08 b _08065C7E .align 2, 0 _08065C60: .4byte gUnknown_202EE10 _08065C64: .4byte gRealInputs _08065C68: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08065C78 mov r1, r8 ldrb r0, [r1] cmp r0, 0 beq _08065C0A _08065C78: bl sub_8083D30 movs r7, 0x1 _08065C7E: ldr r4, _08065C9C adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C cmp r7, 0 bne _08065CA0 movs r1, 0x18 ldrsh r0, [r4, r1] bl sub_8065DBC b _08065C04 .align 2, 0 _08065C9C: .4byte gUnknown_202EE10 _08065CA0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8065BF4 thumb_func_start sub_8065CAC sub_8065CAC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC8 add r0, sp, 0x64 mov r10, r0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] add r0, sp, 0x6C movs r4, 0 movs r5, 0 movs r1, 0x2 mov r9, r1 mov r1, r9 strh r1, [r0] strh r1, [r0, 0x2] add r0, sp, 0x70 movs r7, 0xC strh r7, [r0] adds r0, 0x2 movs r6, 0x10 strh r6, [r0] add r0, sp, 0x74 strh r6, [r0] add r0, sp, 0xC4 mov r8, r0 str r0, [sp, 0x78] movs r1, 0x3 str r1, [sp, 0x80] add r0, sp, 0x94 str r1, [r0, 0x4] add r0, sp, 0xAC str r1, [r0, 0x4] add r0, sp, 0x4 mov r1, r10 movs r2, 0x60 bl memcpy movs r0, 0x1 mov r1, r8 strb r0, [r1] strb r4, [r1, 0x1] strb r4, [r1, 0x3] ldr r4, _08065DB0 strh r5, [r4, 0x18] movs r0, 0x7 strh r0, [r4, 0x1A] strh r0, [r4, 0x1C] strh r5, [r4, 0x1E] strh r5, [r4, 0x20] strh r5, [r4, 0x4] strh r6, [r4, 0x6] strh r5, [r4, 0xC] strh r5, [r4, 0xE] strh r5, [r4, 0x14] str r5, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x4 strh r7, [r0, 0xC] movs r0, 0x7 movs r1, 0xC bl sub_80095E4 add r2, sp, 0x4 adds r1, r2, 0 adds r0, 0x2 strh r0, [r1, 0x10] strh r0, [r2, 0xE] movs r0, 0xA mov r1, r8 strb r0, [r1, 0x2] adds r0, r2, 0 mov r1, r9 strh r1, [r0, 0x8] movs r1, 0x1 bl sub_803ECB4 adds r0, r4, 0 movs r1, 0 bl sub_80137B0 movs r0, 0 bl sub_80073B8 ldr r0, _08065DB4 ldr r2, [r0] str r5, [sp] movs r0, 0x10 movs r1, 0 movs r3, 0 bl xxx_format_and_draw movs r4, 0 ldr r5, _08065DB8 _08065D7A: ldr r0, _08065DB0 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 ldm r5!, {r2} movs r0, 0 str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_format_and_draw adds r4, 0x1 cmp r4, 0x6 ble _08065D7A movs r0, 0 bl sub_80073E0 add sp, 0xC8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065DB0: .4byte gUnknown_202EE10 _08065DB4: .4byte gUnknown_80FF770 _08065DB8: .4byte gUnknown_80FF774 thumb_func_end sub_8065CAC thumb_func_start sub_8065DBC sub_8065DBC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xEC adds r6, r0, 0 ldr r0, _08065F28 ldr r0, [r0] ldrb r1, [r0, 0x9] negs r0, r1 orrs r0, r1 lsrs r0, 31 str r0, [sp, 0xC8] mov r0, sp adds r0, 0x6C str r0, [sp, 0xD4] mov r1, sp adds r1, 0x70 str r1, [sp, 0xD8] mov r2, sp adds r2, 0x72 str r2, [sp, 0xDC] adds r0, 0x8 str r0, [sp, 0xE0] adds r1, 0xC str r1, [sp, 0xE4] adds r2, 0x22 str r2, [sp, 0xE8] adds r0, 0x38 str r0, [sp, 0xD0] subs r1, 0x18 str r1, [sp, 0xCC] movs r2, 0x10 mov r10, r2 ldr r5, _08065F2C add r0, sp, 0xC4 mov r9, r0 add r1, sp, 0x4 mov r8, r1 _08065E0C: movs r7, 0 ldr r0, [sp, 0xCC] movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [sp, 0x68] movs r0, 0x2 ldr r2, [sp, 0xD4] strh r0, [r2] strh r0, [r2, 0x2] movs r0, 0xC ldr r1, [sp, 0xD8] strh r0, [r1] mov r0, r10 ldr r2, [sp, 0xDC] strh r0, [r2] ldr r1, [sp, 0xE0] strh r0, [r1] mov r2, r9 str r2, [sp, 0x78] movs r0, 0x3 ldr r1, [sp, 0xE4] str r0, [r1, 0x4] ldr r2, [sp, 0xE8] str r0, [r2, 0x4] ldr r1, [sp, 0xD0] str r0, [r1, 0x4] add r0, sp, 0x4 ldr r1, [sp, 0xCC] movs r2, 0x60 bl memcpy movs r1, 0x7 add r0, sp, 0xC4 strb r1, [r0] mov r2, r9 strb r6, [r2, 0x1] movs r0, 0 strb r0, [r2, 0x3] strh r6, [r5, 0x1E] strh r1, [r5, 0x20] strh r7, [r5, 0x1A] strh r7, [r5, 0x18] strh r7, [r5, 0x1C] strh r7, [r5, 0x4] mov r1, r10 strh r1, [r5, 0x6] strh r7, [r5, 0x14] str r7, [r5] adds r0, r5, 0 adds r0, 0x28 bl sub_801317C movs r0, 0x18 mov r2, r8 strh r0, [r2, 0xC] movs r0, 0x8 movs r1, 0xC bl sub_80095E4 adds r0, 0x2 mov r1, r8 strh r0, [r1, 0x10] strh r0, [r1, 0xE] movs r0, 0xA mov r2, r9 strb r0, [r2, 0x2] movs r0, 0x2 strh r0, [r1, 0x8] add r0, sp, 0x4 movs r1, 0x1 bl sub_803ECB4 ldr r1, _08065F30 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x13 lsls r0, 3 strh r0, [r5, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r5, 0xE] movs r0, 0 bl sub_80073B8 lsls r0, r6, 3 adds r0, 0x10 ldr r1, _08065F34 lsls r4, r6, 2 adds r1, r4, r1 ldr r2, [r1] str r7, [sp] movs r1, 0 movs r3, 0 bl xxx_format_and_draw ldr r1, _08065F38 ldr r2, [sp, 0xC8] lsls r0, r2, 5 adds r4, r0 adds r4, r1 ldr r2, [r4] str r7, [sp] movs r0, 0x8 movs r1, 0x10 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 _08065EF4: adds r0, r5, 0 bl AddMenuCursorSprite movs r0, 0x24 bl sub_803E46C ldr r0, _08065F3C ldrh r1, [r0, 0x2] mov r0, r10 ands r0, r1 cmp r0, 0 bne _08065F16 adds r0, r5, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08065F40 _08065F16: movs r0, 0 bl sub_8083CE0 adds r6, 0x1 cmp r6, 0x7 bne _08065F64 movs r6, 0 b _08065F64 .align 2, 0 _08065F28: .4byte gUnknown_203B46C _08065F2C: .4byte gUnknown_202EE10 _08065F30: .4byte gUnknown_2027370 _08065F34: .4byte gUnknown_80FF774 _08065F38: .4byte gUnknown_80FF7EC _08065F3C: .4byte gRealInputs _08065F40: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08065F52 adds r0, r5, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _08065F68 _08065F52: movs r0, 0 bl sub_8083CE0 subs r6, 0x1 movs r0, 0x1 negs r0, r0 cmp r6, r0 bne _08065F64 movs r6, 0x6 _08065F64: movs r7, 0x1 b _08065F94 _08065F68: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08065F7A adds r0, r5, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08065F80 _08065F7A: bl sub_8083D08 b _08065F94 _08065F80: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08065F90 ldr r1, _08065FB0 ldrb r0, [r1] cmp r0, 0 beq _08065EF4 _08065F90: bl sub_8083D30 _08065F94: movs r0, 0x24 bl sub_803E46C cmp r7, 0 beq _08065FA0 b _08065E0C _08065FA0: add sp, 0xEC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08065FB0: .4byte gUnknown_202EE3A thumb_func_end sub_8065DBC thumb_func_start sub_8065FB4 sub_8065FB4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08065FE0 add sp, r4 movs r0, 0 mov r10, r0 ldr r4, _08065FE4 ldr r0, [r4] ldr r1, _08065FE8 adds r0, r1 ldrb r0, [r0] bl GetRecruitable lsls r0, 24 cmp r0, 0 bne _08065FF0 ldr r0, _08065FEC b _08065FFE .align 2, 0 _08065FE0: .4byte 0xfffff608 _08065FE4: .4byte gDungeonGlobalData _08065FE8: .4byte 0x00000644 _08065FEC: .4byte gUnknown_80FA5F4 _08065FF0: ldr r0, [r4] ldr r2, _0806600C adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _08066014 ldr r0, _08066010 _08065FFE: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08066194 .align 2, 0 _0806600C: .4byte 0x0000065d _08066010: .4byte gUnknown_80FA61C _08066014: mov r0, sp bl sub_80664FC ldr r6, _08066130 _0806601C: movs r0, 0 mov r8, r0 mov r1, r10 lsls r0, r1, 2 add r0, r10 lsls r0, 6 subs r0, r1 lsls r0, 2 add r0, sp mov r9, r0 ldr r0, _08066134 strb r1, [r0, 0x1] ldr r0, _08066138 movs r1, 0x1 bl sub_803ECB4 mov r2, r8 strh r2, [r6, 0x1A] strh r2, [r6, 0x18] strh r2, [r6, 0x1C] mov r0, r10 strh r0, [r6, 0x1E] movs r0, 0x2 strh r0, [r6, 0x20] strh r2, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] strh r2, [r6, 0x14] mov r1, r8 str r1, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C ldr r0, _0806613C mov r2, r8 str r2, [r0] movs r1, 0 ldr r0, _08066140 strb r1, [r0] mov r0, r9 mov r1, r10 bl sub_80661AC ldr r1, _08066144 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x10 lsls r0, 3 strh r0, [r6, 0xC] movs r2, 0x2 ldrsh r0, [r1, r2] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] _0806608C: movs r5, 0 ldr r0, _08066140 strb r5, [r0] movs r0, 0 ldr r1, _08066148 bl sub_8014140 adds r4, r0, 0 mov r0, r9 adds r1, r4, 0 bl sub_8066288 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 mov r0, r9 adds r1, r4, 0 bl sub_8066358 lsls r0, 24 cmp r0, 0 beq _080660BE movs r5, 0x1 _080660BE: cmp r5, 0 bne _080660CE ldr r0, _08066130 bl AddMenuCursorSprite movs r0, 0x45 bl sub_803E46C _080660CE: ldr r2, _08066140 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080660E2 movs r0, 0x1 movs r1, 0x8 bl sub_8066434 _080660E2: ldr r0, _08066140 ldrb r1, [r0] movs r7, 0x2 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080660F8 movs r0, 0 movs r1, 0x70 bl sub_8066434 _080660F8: ldr r5, _0806614C ldrh r1, [r5, 0x2] movs r0, 0x30 ands r0, r1 cmp r0, 0 bne _0806611A ldr r4, _08066130 adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 bne _0806611A adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _08066150 _0806611A: movs r0, 0 bl sub_8083CE0 movs r0, 0 mov r1, r10 cmp r1, 0 bne _0806612A movs r0, 0x1 _0806612A: mov r10, r0 b _08066184 .align 2, 0 _08066130: .4byte gUnknown_202EE10 _08066134: .4byte gUnknown_203B43C _08066138: .4byte gUnknown_8106D08 _0806613C: .4byte gUnknown_202F2F8 _08066140: .4byte gUnknown_202F2FC _08066144: .4byte gUnknown_2027370 _08066148: .4byte gUnknown_8106D68 _0806614C: .4byte gRealInputs _08066150: bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _0806608C ldrh r1, [r5, 0x2] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0806616E adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 beq _08066174 _0806616E: bl sub_8083D30 b _0806618C _08066174: movs r0, 0xC ands r0, r1 cmp r0, 0 beq _0806608C bl sub_8083D08 movs r2, 0x1 mov r8, r2 _08066184: mov r0, r8 cmp r0, 0 bne _0806618C b _0806601C _0806618C: movs r0, 0 movs r1, 0 bl sub_803EAF0 _08066194: ldr r3, _080661A8 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 _080661A8: .4byte 0x000009f8 thumb_func_end sub_8065FB4 thumb_func_start sub_80661AC sub_80661AC: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x44 adds r6, r0, 0 adds r5, r1, 0 ldr r0, _080661DC ldr r4, [r0] movs r0, 0x20 mov r8, r0 movs r0, 0 bl sub_80073B8 cmp r5, 0 bne _080661E4 ldr r0, _080661E0 ldr r2, [r0] str r5, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_call_draw_string b _080661F6 .align 2, 0 _080661DC: .4byte gUnknown_202F2F8 _080661E0: .4byte gUnknown_80FEA68 _080661E4: ldr r0, _08066254 ldr r2, [r0] movs r0, 0 str r0, [sp] movs r0, 0x14 movs r1, 0 movs r3, 0 bl xxx_call_draw_string _080661F6: movs r1, 0x9F lsls r1, 3 adds r0, r6, r1 ldr r1, [r0] cmp r1, 0 beq _08066260 movs r7, 0x7 lsls r0, r4, 1 adds r5, r0, r6 _08066208: cmp r4, 0 blt _08066244 movs r1, 0x9F lsls r1, 3 adds r0, r6, r1 ldr r0, [r0] cmp r4, r0 bge _08066244 movs r1, 0xD4 lsls r1, 2 adds r0, r6, r1 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 ldr r1, _08066258 bl ExpandPlaceholdersBuffer movs r0, 0 ldrsh r1, [r5, r0] ldr r0, _0806625C bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 mov r1, r8 add r2, sp, 0x4 movs r3, 0 bl xxx_format_and_draw _08066244: subs r7, 0x1 adds r5, 0x2 adds r4, 0x1 movs r1, 0xC add r8, r1 cmp r7, 0 bge _08066208 b _08066270 .align 2, 0 _08066254: .4byte gUnknown_80FEA80 _08066258: .4byte gUnknown_8106D8C _0806625C: .4byte gAvailablePokemonNames _08066260: ldr r0, _08066284 ldr r2, [r0] str r1, [sp] movs r0, 0x8 mov r1, r8 movs r3, 0 bl xxx_call_draw_string _08066270: movs r0, 0 bl sub_80073E0 add sp, 0x44 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066284: .4byte gUnknown_80FEA8C thumb_func_end sub_80661AC thumb_func_start sub_8066288 sub_8066288: push {r4,r5,lr} sub sp, 0x44 adds r5, r0, 0 adds r3, r1, 0 ldr r0, _080662B8 ldr r4, [r0] cmp r4, 0 beq _080662B4 subs r4, 0x1 ldr r2, _080662BC ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _080662C0 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080662C4 cmp r3, 0x1 beq _080662C4 _080662B4: movs r0, 0 b _0806633E .align 2, 0 _080662B8: .4byte gUnknown_202F2F8 _080662BC: .4byte gUnknown_202F2FC _080662C0: .4byte gRealInputs _080662C4: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x10 movs r3, 0x90 bl sub_80087EC ldr r1, _08066348 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 bl ExpandPlaceholdersBuffer ldr r0, _0806634C lsls r1, r4, 1 adds r1, r5, r1 movs r2, 0 ldrsh r1, [r1, r2] bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x14 add r2, sp, 0x4 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 movs r0, 0x45 bl sub_803E46C ldr r5, _08066350 movs r4, 0x5 _08066320: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x45 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08066320 ldr r1, _08066354 ldr r0, [r1] subs r0, 0x1 str r0, [r1] movs r0, 0x1 _0806633E: add sp, 0x44 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066348: .4byte gUnknown_8106D8C _0806634C: .4byte gAvailablePokemonNames _08066350: .4byte gUnknown_203B084 _08066354: .4byte gUnknown_202F2F8 thumb_func_end sub_8066288 thumb_func_start sub_8066358 sub_8066358: push {r4-r6,lr} sub sp, 0x44 adds r5, r0, 0 adds r3, r1, 0 ldr r0, _08066394 ldr r0, [r0] adds r4, r0, 0 adds r4, 0x8 movs r6, 0x80 movs r1, 0x9F lsls r1, 3 adds r0, r5, r1 ldr r0, [r0] cmp r0, r4 ble _08066390 ldr r2, _08066398 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, _0806639C ldrh r1, [r0, 0x4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _080663A0 cmp r3, 0x2 beq _080663A0 _08066390: movs r0, 0 b _0806641A .align 2, 0 _08066394: .4byte gUnknown_202F2F8 _08066398: .4byte gUnknown_202F2FC _0806639C: .4byte gRealInputs _080663A0: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0x48 bl sub_80087EC ldr r1, _08066424 movs r2, 0xD4 lsls r2, 2 adds r0, r5, r2 adds r0, r4 ldrb r2, [r0] add r0, sp, 0x4 bl ExpandPlaceholdersBuffer ldr r0, _08066428 lsls r1, r4, 1 adds r1, r5, r1 movs r2, 0 ldrsh r1, [r1, r2] bl sub_808D930 movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 add r2, sp, 0x4 movs r3, 0 bl xxx_format_and_draw movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _0806642C movs r4, 0x5 _080663FC: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _080663FC ldr r1, _08066430 ldr r0, [r1] adds r0, 0x1 str r0, [r1] movs r0, 0x1 _0806641A: add sp, 0x44 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08066424: .4byte gUnknown_8106D8C _08066428: .4byte gAvailablePokemonNames _0806642C: .4byte gUnknown_203B080 _08066430: .4byte gUnknown_202F2F8 thumb_func_end sub_8066358 thumb_func_start sub_8066434 sub_8066434: push {r4-r7,lr} mov r12, r1 lsls r0, 24 lsrs r2, r0, 24 ldr r7, _080664C8 ldr r0, _080664CC ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080664C0 ldr r0, _080664D0 ldrh r1, [r0] ldr r3, _080664D4 ands r3, r1 ldr r1, _080664D8 ands r3, r1 ldr r1, _080664DC ands r3, r1 ldr r1, _080664E0 ands r3, r1 ldr r1, _080664E4 ands r3, r1 negs r1, r2 orrs r1, r2 asrs r1, 31 movs r2, 0x80 lsls r2, 6 ands r2, r1 ldrh r1, [r0, 0x2] ldr r4, _080664E8 ands r4, r1 orrs r4, r2 movs r5, 0xF ldr r2, _080664EC movs r6, 0x2 ldrsh r1, [r7, r6] lsls r1, 3 add r1, r12 ands r1, r2 lsls r1, 4 ldrh r2, [r0, 0x6] ands r5, r2 orrs r5, r1 strh r5, [r0, 0x6] movs r2, 0 ldrsh r1, [r7, r2] lsls r1, 3 adds r1, 0x40 ldr r2, _080664F0 ands r1, r2 movs r2, 0xFE lsls r2, 8 ands r4, r2 orrs r4, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080664F4 ands r3, r1 orrs r3, r2 strh r3, [r0] ands r4, r1 strh r4, [r0, 0x2] ldr r1, _080664F8 strh r1, [r0, 0x4] movs r1, 0x7F movs r2, 0 movs r3, 0 bl AddSprite _080664C0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080664C8: .4byte gUnknown_2027370 _080664CC: .4byte gUnknown_202EDCC _080664D0: .4byte gUnknown_202F300 _080664D4: .4byte 0x0000feff _080664D8: .4byte 0x0000fdff _080664DC: .4byte 0x0000f3ff _080664E0: .4byte 0x0000efff _080664E4: .4byte 0x0000dfff _080664E8: .4byte 0x0000c1ff _080664EC: .4byte 0x00000fff _080664F0: .4byte 0x000001ff _080664F4: .4byte 0x00003fff _080664F8: .4byte 0x0000f3f0 thumb_func_end sub_8066434 thumb_func_start sub_80664FC sub_80664FC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C0 str r0, [sp, 0x1A8] movs r7, 0 ldr r2, _08066604 ldr r3, _08066608 movs r1, 0 _08066512: mov r4, sp adds r0, r4, r7 strb r1, [r0] adds r7, 0x1 cmp r7, r2 ble _08066512 movs r4, 0 adds r1, r3, 0 ldr r0, [r3] ldr r7, _0806660C adds r0, r7 ldr r0, [r0] cmp r4, r0 bge _08066578 ldr r6, _08066610 _08066530: movs r5, 0x1 ldr r2, [r1] lsls r0, r4, 3 adds r0, r2, r0 ldr r7, _08066614 adds r1, r0, r7 movs r7, 0 ldrsh r1, [r1, r7] movs r7, 0xD1 lsls r7, 6 adds r0, r7 movs r7, 0 ldrsh r0, [r0, r7] cmp r1, 0 bne _08066554 cmp r0, 0 beq _08066566 movs r5, 0x2 _08066554: adds r0, r2, r6 str r3, [sp, 0x1BC] bl ExtractSpeciesIndex lsls r0, 16 asrs r0, 16 add r0, sp strb r5, [r0] ldr r3, [sp, 0x1BC] _08066566: adds r6, 0x8 adds r4, 0x1 ldr r1, _08066608 ldr r0, [r1] ldr r2, _0806660C adds r0, r2 ldr r0, [r0] cmp r4, r0 blt _08066530 _08066578: ldr r0, [r3] ldr r4, _08066618 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _0806658A add r1, sp, 0x17C movs r0, 0x1 strb r0, [r1] _0806658A: movs r0, 0x5 _0806658C: subs r0, 0x1 cmp r0, 0 bge _0806658C movs r7, 0 _08066594: movs r0, 0 mov r8, r0 movs r1, 0x1 adds r2, r7, 0x1 str r2, [sp, 0x1AC] lsls r4, r7, 2 str r4, [sp, 0x1B0] _080665A2: lsls r0, r1, 16 asrs r6, r0, 16 movs r0, 0x7 mov r10, r0 movs r2, 0 mov r9, r2 mov r4, sp adds r0, r4, r6 ldrb r0, [r0] adds r1, 0x1 str r1, [sp, 0x1B4] cmp r0, 0 bne _080665BE b _08066704 _080665BE: cmp r7, 0 bne _08066620 adds r0, r6, 0 bl sub_806F9BC lsls r0, 24 cmp r0, 0 bne _080665D0 b _08066704 _080665D0: adds r0, r6, 0 bl IsExclusivePokemonUnlocked lsls r0, 24 cmp r0, 0 bne _080665DE b _08066704 _080665DE: adds r0, r6, 0 bl GetBaseRecruit lsls r0, 16 ldr r1, _0806661C cmp r0, r1 bne _080665EE b _08066704 _080665EE: cmp r6, 0x97 bne _0806669E movs r0, 0x7A bl sub_80860A8 lsls r0, 24 cmp r0, 0 bne _08066600 b _08066704 _08066600: b _0806669E .align 2, 0 _08066604: .4byte 0x000001a7 _08066608: .4byte gDungeonGlobalData _0806660C: .4byte 0x000037e4 _08066610: .4byte 0x0000343c _08066614: .4byte 0x0000343e _08066618: .4byte 0x0000066e _0806661C: .4byte 0xfc190000 _08066620: movs r5, 0 ldr r0, _080666CC ldr r2, [r0] movs r4, 0x1 movs r3, 0xCE lsls r3, 1 _0806662C: ldrb r1, [r2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0806663E movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, r6 beq _08066646 _0806663E: adds r2, 0x58 adds r5, 0x1 cmp r5, r3 ble _0806662C _08066646: ldr r0, _080666D0 cmp r5, r0 beq _08066650 movs r2, 0x1 mov r9, r2 _08066650: mov r4, r9 cmp r4, 0 bne _0806669E movs r5, 0 ldr r2, _080666CC _0806665A: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _080666D4 adds r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806668C movs r1, 0xA ldrsh r0, [r4, r1] str r2, [sp, 0x1B8] bl sub_806A564 lsls r0, 24 ldr r2, [sp, 0x1B8] cmp r0, 0 bne _0806668C movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, r6 beq _08066692 _0806668C: adds r5, 0x1 cmp r5, 0x3 ble _0806665A _08066692: cmp r5, 0x4 beq _0806669E movs r2, 0x1 mov r9, r2 movs r4, 0x6 mov r10, r4 _0806669E: cmp r7, 0 bne _080666D8 mov r1, sp adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x2 bne _080666B0 movs r2, 0x2 mov r10, r2 _080666B0: mov r4, r8 lsls r0, r4, 1 ldr r1, [sp, 0x1A8] adds r0, r1, r0 strh r6, [r0] movs r2, 0xD4 lsls r2, 2 adds r0, r1, r2 add r0, r8 mov r4, r10 strb r4, [r0] movs r0, 0x1 add r8, r0 b _08066704 .align 2, 0 _080666CC: .4byte gRecruitedPokemonRef _080666D0: .4byte 0x0000019d _080666D4: .4byte 0x00008df8 _080666D8: mov r1, r9 cmp r1, 0 beq _08066704 ldr r2, [sp, 0x1B0] adds r0, r2, r7 lsls r0, 6 subs r0, r7 lsls r0, 2 ldr r4, [sp, 0x1A8] adds r0, r4 mov r2, r8 lsls r1, r2, 1 adds r1, r0, r1 strh r6, [r1] movs r4, 0xD4 lsls r4, 2 adds r0, r4 add r0, r8 mov r1, r10 strb r1, [r0] movs r2, 0x1 add r8, r2 _08066704: ldr r1, [sp, 0x1B4] ldr r0, _08066740 cmp r1, r0 bgt _0806670E b _080665A2 _0806670E: ldr r4, [sp, 0x1B0] adds r0, r4, r7 lsls r0, 6 subs r0, r7 lsls r0, 2 ldr r7, [sp, 0x1A8] adds r0, r7 movs r1, 0x9F lsls r1, 3 adds r0, r1 mov r2, r8 str r2, [r0] ldr r7, [sp, 0x1AC] cmp r7, 0x1 bgt _0806672E b _08066594 _0806672E: add sp, 0x1C0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066740: .4byte 0x000001a3 thumb_func_end sub_80664FC thumb_func_start sub_8066744 sub_8066744: push {lr} ldr r1, [r0, 0x70] adds r1, 0x48 movs r2, 0x1 strb r2, [r1] adds r0, 0x4 movs r1, 0 bl sub_8045DB4 pop {r0} bx r0 thumb_func_end sub_8066744 thumb_func_start sub_806675C sub_806675C: push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0 movs r2, 0xFE bl sub_8044D90 adds r4, r0, 0 movs r3, 0 ldr r6, _080667C0 _08066772: lsls r1, r3, 2 ldr r0, [r6] adds r1, r0, r1 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08066798 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _08066798 movs r0, 0x8 ands r0, r2 cmp r0, 0 bne _080667EC movs r0, 0xEF ands r0, r2 strb r0, [r1] _08066798: adds r3, 0x1 cmp r3, 0x13 ble _08066772 ldr r0, _080667C4 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _080667C8 bl PlaySoundEffect cmp r7, 0 beq _08066812 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080667D0 ldr r0, _080667CC b _080667DE .align 2, 0 _080667C0: .4byte gTeamInventory_203B460 _080667C4: .4byte gUnknown_202DE58 _080667C8: .4byte 0x00000133 _080667CC: .4byte gUnknown_80F8D04 _080667D0: ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 bne _08066808 ldr r0, _080667E8 _080667DE: ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08066812 .align 2, 0 _080667E8: .4byte gUnknown_80F8CE4 _080667EC: ldr r0, _08066800 bl sub_8045BF8 ldr r0, _08066804 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08066838 .align 2, 0 _08066800: .4byte gUnknown_202DE58 _08066804: .4byte gUnknown_80F8C7C _08066808: ldr r0, _08066840 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08066812: ldrb r0, [r4] movs r1, 0x10 orrs r1, r0 strb r1, [r4] movs r0, 0x8 ands r1, r0 cmp r1, 0 beq _08066838 cmp r7, 0 beq _08066838 ldr r0, _08066844 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08066848 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08066838: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066840: .4byte gUnknown_80F8CE8 _08066844: .4byte gUnknown_202DE58 _08066848: .4byte gUnknown_80F8BE0 thumb_func_end sub_806675C thumb_func_start sub_806684C sub_806684C: push {r4-r6,lr} adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 movs r4, 0 _08066856: ldr r0, _0806688C lsls r1, r4, 2 ldr r0, [r0] adds r1, r0, r1 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080668B8 movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _080668B8 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066898 ldr r0, _08066890 bl sub_8045BF8 ldr r0, _08066894 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _080668BE .align 2, 0 _0806688C: .4byte gTeamInventory_203B460 _08066890: .4byte gUnknown_202DE58 _08066894: .4byte gUnknown_80F8C7C _08066898: movs r0, 0xEF ands r0, r2 strb r0, [r1] ldr r0, _080668C4 bl sub_8045BF8 ldr r0, _080668C8 bl PlaySoundEffect cmp r6, 0 beq _080668B8 ldr r0, _080668CC ldr r1, [r0] adds r0, r5, 0 bl SendMessage _080668B8: adds r4, 0x1 cmp r4, 0x13 ble _08066856 _080668BE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080668C4: .4byte gUnknown_202DE58 _080668C8: .4byte 0x00000133 _080668CC: .4byte gUnknown_80F8D20 thumb_func_end sub_806684C thumb_func_start sub_80668D0 sub_80668D0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r6, r0, 0 movs r1, 0x1 bl sub_8044DA4 mov r8, r0 ldr r4, [r6, 0x70] ldr r7, [r0, 0x70] adds r0, r6, 0 movs r1, 0 movs r2, 0x2 bl sub_8044D90 adds r5, r0, 0 adds r4, 0x48 ldrb r0, [r4] movs r1, 0 mov r9, r1 cmp r0, 0x80 bne _08066904 movs r2, 0x1 mov r9, r2 _08066904: mov r0, r9 cmp r0, 0 bne _08066928 ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066928 ldr r0, _08066920 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066924 b _08066950 .align 2, 0 _08066920: .4byte gUnknown_202DEA8 _08066924: .4byte gUnknown_80F8C44 _08066928: ldr r0, _0806695C mov r1, r8 movs r2, 0 bl SetMessageArgument adds r1, r7, 0 adds r1, 0x60 ldrb r2, [r1] movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _08066A04 movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066968 ldr r0, _08066960 bl sub_8045BF8 ldr r0, _08066964 _08066950: ldr r1, [r0] adds r0, r6, 0 bl SendMessage b _08066A96 .align 2, 0 _0806695C: .4byte gUnknown_202DFE8 _08066960: .4byte gUnknown_202DEA8 _08066964: .4byte gUnknown_80F8C40 _08066968: ldr r1, [r7, 0x60] str r1, [sp] ldr r2, [r5] str r2, [sp, 0x4] movs r4, 0xEF mov r0, sp ldrb r0, [r0] ands r0, r4 ldr r3, _080669A8 ands r1, r3 orrs r1, r0 str r1, [sp] add r5, sp, 0x4 ldrb r0, [r5] ands r0, r4 ands r2, r3 orrs r2, r0 str r2, [sp, 0x4] adds r0, r6, 0 movs r1, 0 movs r2, 0x64 bl sub_8044DF0 mov r1, r9 cmp r1, 0 beq _080669AC adds r0, r6, 0x4 mov r1, sp movs r2, 0x1 bl sub_80460F8 b _080669B2 .align 2, 0 _080669A8: .4byte 0xffffff00 _080669AC: mov r0, sp bl AddItemToInventory _080669B2: ldr r0, [sp, 0x4] str r0, [r7, 0x60] ldr r4, _080669F4 adds r0, r4, 0 adds r1, r5, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 mov r1, sp bl sub_8045BF8 ldr r0, _080669F8 bl PlaySoundEffect ldr r0, _080669FC ldr r1, [r0] adds r0, r6, 0 bl SendMessage add r0, sp, 0x4 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066A52 ldr r0, _08066A00 ldr r1, [r0] adds r0, r6, 0 bl SendMessage b _08066A52 .align 2, 0 _080669F4: .4byte gUnknown_202DE58 _080669F8: .4byte 0x0000014d _080669FC: .4byte gUnknown_80F8CA8 _08066A00: .4byte gUnknown_80F8BE0 _08066A04: ldr r2, [r5] str r2, [sp, 0x8] movs r1, 0xEF add r4, sp, 0x8 ldrb r0, [r4] ands r0, r1 ldr r1, _08066AA4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x8] adds r0, r6, 0 movs r1, 0 movs r2, 0x65 bl sub_8044DF0 ldr r0, [sp, 0x8] str r0, [r7, 0x60] ldr r0, _08066AA8 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08066AAC bl PlaySoundEffect ldr r0, _08066AB0 ldr r1, [r0] adds r0, r6, 0 bl SendMessage ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066A52 ldr r0, _08066AB4 ldr r1, [r0] adds r0, r6, 0 bl SendMessage _08066A52: mov r0, r8 bl sub_806A6E8 mov r1, r8 adds r1, 0x4 mov r0, r8 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066A74 adds r0, r6, 0 mov r1, r8 movs r2, 0 movs r3, 0 bl sub_807D148 _08066A74: ldrb r0, [r7, 0x7] cmp r0, 0 bne _08066A86 ldrh r1, [r7] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 strh r0, [r7] _08066A86: ldr r0, _08066AB8 ldr r0, [r0] ldr r1, _08066ABC adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_807AB38 _08066A96: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066AA4: .4byte 0xffffff00 _08066AA8: .4byte gUnknown_202DE58 _08066AAC: .4byte 0x0000014d _08066AB0: .4byte gUnknown_80F8D44 _08066AB4: .4byte gUnknown_80F8BE0 _08066AB8: .4byte gDungeonGlobalData _08066ABC: .4byte 0x00003a08 thumb_func_end sub_80668D0 thumb_func_start sub_8066AC0 sub_8066AC0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 movs r1, 0 bl sub_8044DA4 adds r6, r0, 0 ldr r2, [r6, 0x70] mov r8, r2 adds r5, r2, 0 adds r5, 0x60 ldr r0, _08066AF0 ldr r0, [r0] adds r0, 0x4C ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08066AF8 ldr r0, _08066AF4 b _08066B10 .align 2, 0 _08066AF0: .4byte gTeamInventory_203B460 _08066AF4: .4byte gUnknown_80F8D60 _08066AF8: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08066B24 ldr r0, _08066B1C adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066B20 _08066B10: ldr r1, [r0] adds r0, r7, 0 bl SendMessage b _08066BAC .align 2, 0 _08066B1C: .4byte gUnknown_202DE58 _08066B20: .4byte gUnknown_80F8BE0 _08066B24: ldr r2, [r2, 0x60] str r2, [sp] movs r1, 0xEF mov r0, sp ldrb r0, [r0] ands r0, r1 ldr r1, _08066BB8 ands r2, r1 orrs r2, r0 str r2, [sp] ldr r0, _08066BBC mov r1, sp bl sub_8045BF8 ldr r0, _08066BC0 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument strb r4, [r5, 0x2] strb r4, [r5, 0x1] strb r4, [r5] mov r0, sp bl AddItemToInventory ldr r0, _08066BC4 bl PlaySoundEffect ldr r0, _08066BC8 ldr r1, [r0] adds r0, r7, 0 bl SendMessage adds r0, r6, 0 bl sub_806A6E8 adds r1, r6, 0x4 adds r0, r6, 0 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066B86 adds r0, r7, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _08066B86: mov r1, r8 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08066B9C ldrh r1, [r1] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 mov r1, r8 strh r0, [r1] _08066B9C: ldr r0, _08066BCC ldr r0, [r0] ldr r2, _08066BD0 adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _08066BAC: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066BB8: .4byte 0xffffff00 _08066BBC: .4byte gUnknown_202DE58 _08066BC0: .4byte gAvailablePokemonNames _08066BC4: .4byte 0x0000014d _08066BC8: .4byte gUnknown_80F8D7C _08066BCC: .4byte gDungeonGlobalData _08066BD0: .4byte 0x00003a08 thumb_func_end sub_8066AC0 thumb_func_start sub_8066BD4 sub_8066BD4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 movs r1, 0 bl sub_8044DA4 mov r9, r0 ldr r0, [r0, 0x70] mov r8, r0 mov r10, r8 mov r6, r8 adds r6, 0x60 ldr r2, _08066C10 adds r0, r7, 0 movs r1, 0x1 bl sub_8044D90 adds r5, r0, 0 ldrb r2, [r6] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _08066C18 ldr r0, _08066C14 adds r1, r6, 0 b _08066C26 .align 2, 0 _08066C10: .4byte 0x00001565 _08066C14: .4byte gUnknown_202DE58 _08066C18: ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066C40 ldr r0, _08066C38 adds r1, r5, 0 _08066C26: bl sub_8045BF8 ldr r0, _08066C3C ldr r1, [r0] adds r0, r7, 0 bl SendMessage b _08066CC8 .align 2, 0 _08066C38: .4byte gUnknown_202DE58 _08066C3C: .4byte gUnknown_80F8BE0 _08066C40: movs r1, 0xEF adds r0, r1, 0 ands r0, r2 strb r0, [r6] ldrb r0, [r5] ands r1, r0 strb r1, [r5] ldr r4, _08066CD8 adds r0, r4, 0 adds r1, r6, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl sub_8045BF8 ldr r0, _08066CDC mov r1, r9 movs r2, 0 bl SetMessageArgument mov r2, r8 ldr r1, [r2, 0x60] ldr r0, [r5] str r0, [r2, 0x60] str r1, [r5] ldr r0, _08066CE0 bl PlaySoundEffect ldr r0, _08066CE4 ldr r1, [r0] adds r0, r7, 0 bl SendMessage mov r1, r9 adds r1, 0x4 mov r0, r9 bl sub_80706A4 lsls r0, 24 cmp r0, 0 beq _08066CA2 adds r0, r7, 0 mov r1, r9 movs r2, 0 movs r3, 0 bl sub_807D148 _08066CA2: mov r1, r10 ldrb r0, [r1, 0x7] cmp r0, 0 bne _08066CB8 ldrh r1, [r1] movs r2, 0x80 lsls r2, 7 adds r0, r2, 0 orrs r0, r1 mov r1, r10 strh r0, [r1] _08066CB8: ldr r0, _08066CE8 ldr r0, [r0] ldr r2, _08066CEC adds r0, r2 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _08066CC8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08066CD8: .4byte gUnknown_202DE58 _08066CDC: .4byte gUnknown_202DFE8 _08066CE0: .4byte 0x0000014d _08066CE4: .4byte gUnknown_80F8DB4 _08066CE8: .4byte gDungeonGlobalData _08066CEC: .4byte 0x00003a08 thumb_func_end sub_8066BD4 thumb_func_start sub_8066CF0 sub_8066CF0: push {lr} movs r1, 0 bl sub_8044DA4 ldr r0, [r0, 0x70] adds r0, 0xFC movs r1, 0x1 strb r1, [r0] pop {r0} bx r0 thumb_func_end sub_8066CF0 thumb_func_start sub_8066D04 sub_8066D04: push {r4-r6,lr} adds r4, r0, 0 ldr r6, [r4, 0x70] movs r1, 0 movs r2, 0x4 bl sub_8044D90 adds r5, r0, 0 ldr r0, _08066D2C adds r1, r5, 0 bl sub_8045BF8 adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 bne _08066D34 ldr r0, _08066D30 b _08066DB2 .align 2, 0 _08066D2C: .4byte gUnknown_202DE58 _08066D30: .4byte gUnknown_80F8DE0 _08066D34: cmp r0, 0x14 bhi _08066D4C ldrb r1, [r5] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066D4C ldr r0, _08066D48 b _08066DB2 .align 2, 0 _08066D48: .4byte gUnknown_80F8BE0 _08066D4C: adds r0, r6, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x81 bne _08066D68 ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066D68 ldr r0, _08066D64 b _08066DB2 .align 2, 0 _08066D64: .4byte gUnknown_80F8BE0 _08066D68: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl GetMapTileAtPosition adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _08066DB0 movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08066DB0 ldr r6, [r2, 0x14] cmp r6, 0 bne _08066DB0 ldrb r1, [r5] movs r0, 0xEF ands r0, r1 strb r0, [r5] ldr r0, _08066DBC adds r1, r5, 0 bl sub_8045BF8 adds r0, r4, 0x4 adds r1, r5, 0 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _08066DC4 _08066DB0: ldr r0, _08066DC0 _08066DB2: ldr r1, [r0] adds r0, r4, 0 bl SendMessage b _08066DF8 .align 2, 0 _08066DBC: .4byte gUnknown_202DE58 _08066DC0: .4byte gUnknown_80F8E04 _08066DC4: strb r6, [r5, 0x2] strb r6, [r5, 0x1] strb r6, [r5] bl FillInventoryGaps ldr r0, _08066E00 bl PlaySoundEffect ldr r0, _08066E04 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08066E08 ldr r1, [r0] adds r0, r4, 0 bl SendMessage ldr r0, _08066E0C ldr r0, [r0] ldr r1, _08066E10 adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_807AB38 _08066DF8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08066E00: .4byte 0x0000014d _08066E04: .4byte gAvailablePokemonNames _08066E08: .4byte gUnknown_80F8E28 _08066E0C: .4byte gDungeonGlobalData _08066E10: .4byte 0x00003a08 thumb_func_end sub_8066D04 thumb_func_start sub_8066E14 sub_8066E14: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r9, r0 ldr r0, [r0, 0x70] mov r10, r0 mov r0, r9 movs r1, 0 movs r2, 0x5 bl sub_8044D90 adds r6, r0, 0 mov r0, r9 movs r1, 0x1 movs r2, 0x6 bl sub_8044D90 adds r2, r0, 0 adds r7, r2, 0 mov r0, r10 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x80 beq _08066E54 ldr r0, _08066E50 b _08066F1E .align 2, 0 _08066E50: .4byte gUnknown_80F8E2C _08066E54: mov r0, r10 adds r0, 0x50 ldrb r1, [r0] str r0, [sp, 0x8] cmp r1, 0x14 bhi _08066E80 ldrb r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08066E80 ldr r0, _08066E78 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08066E7C b _08066F1E .align 2, 0 _08066E78: .4byte gUnknown_202DE58 _08066E7C: .4byte gUnknown_80F8BE0 _08066E80: ldr r1, [sp, 0x8] ldrb r0, [r1] cmp r0, 0x81 bne _08066EA8 adds r2, r7, 0 ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08066EA8 ldr r0, _08066EA0 adds r1, r2, 0 bl sub_8045BF8 ldr r0, _08066EA4 b _08066F1E .align 2, 0 _08066EA0: .4byte gUnknown_202DEA8 _08066EA4: .4byte gUnknown_80F8C48 _08066EA8: mov r2, r9 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl GetMapTileAtPosition ldr r0, [r0, 0x14] cmp r0, 0 beq _08066ECC bl GetEntityType cmp r0, 0x3 beq _08066ECC ldr r0, _08066EC8 b _08066F1E .align 2, 0 _08066EC8: .4byte gUnknown_80F8E54 _08066ECC: adds r0, r6, 0 ldr r5, [r0] str r5, [sp] adds r4, r7, 0 ldr r6, [r4] mov r8, sp str r6, [sp, 0x4] movs r3, 0xEF mov r0, sp ldrb r2, [r0] ands r2, r3 ldr r1, _08066F28 adds r0, r1, 0 ands r0, r5 orrs r0, r2 str r0, [sp] mov r2, r8 ldrb r0, [r2, 0x4] ands r0, r3 ands r1, r6 orrs r1, r0 str r1, [sp, 0x4] mov r5, r10 adds r5, 0x4C adds r0, r5, 0 movs r1, 0x1 bl sub_80461C8 movs r0, 0 strb r0, [r4, 0x2] strb r0, [r4, 0x1] strb r0, [r4] add r1, sp, 0x4 adds r0, r5, 0 movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _08066F30 ldr r0, _08066F2C _08066F1E: ldr r1, [r0] mov r0, r9 bl SendMessage b _08066F7E .align 2, 0 _08066F28: .4byte 0xffffff00 _08066F2C: .4byte gUnknown_80F8E78 _08066F30: ldr r3, [sp, 0x8] ldrb r0, [r3] cmp r0, 0x81 bne _08066F40 ldr r0, [sp] mov r1, r10 str r0, [r1, 0x60] b _08066F46 _08066F40: mov r0, sp bl AddItemToInventory _08066F46: bl FillInventoryGaps ldr r4, _08066F90 add r1, sp, 0x4 adds r0, r4, 0 bl sub_8045BF8 adds r4, 0x50 adds r0, r4, 0 mov r1, sp bl sub_8045BF8 ldr r0, _08066F94 bl PlaySoundEffect ldr r0, _08066F98 ldr r1, [r0] mov r0, r9 bl SendMessage ldr r0, _08066F9C ldr r0, [r0] ldr r2, _08066FA0 adds r0, r2 ldrb r1, [r0] mov r0, r9 bl sub_807AB38 _08066F7E: 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 _08066F90: .4byte gUnknown_202DE58 _08066F94: .4byte 0x0000014d _08066F98: .4byte gUnknown_80F8EAC _08066F9C: .4byte gDungeonGlobalData _08066FA0: .4byte 0x00003a08 thumb_func_end sub_8066E14 thumb_func_start sub_8066FA4 sub_8066FA4: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r7, r0, 0 ldr r0, [r7, 0x70] mov r9, r0 movs r1, 0x4 ldrsh r0, [r7, r1] movs r2, 0x6 ldrsh r1, [r7, r2] bl GetMapTileAtPosition mov r10, r0 adds r0, r7, 0 movs r1, 0 movs r2, 0x7 bl sub_8044D90 adds r4, r0, 0 adds r5, r4, 0 ldr r0, _08067000 mov r8, r0 adds r1, r4, 0 bl sub_8045BF8 mov r0, r9 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x14 bhi _08067008 ldrb r1, [r4] movs r0, 0x18 ands r0, r1 cmp r0, 0x18 bne _08067008 mov r0, r8 adds r0, 0x50 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _08067004 b _0806709E .align 2, 0 _08067000: .4byte gUnknown_202DE58 _08067004: .4byte gUnknown_80F8C48 _08067008: mov r0, r9 adds r0, 0x48 ldrb r1, [r0] str r0, [sp, 0x8] cmp r1, 0x81 bne _08067028 adds r0, r5, 0 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08067028 ldr r0, _08067024 b _0806709E .align 2, 0 _08067024: .4byte gUnknown_80F8C44 _08067028: mov r1, r10 ldr r0, [r1, 0x14] cmp r0, 0 beq _08067040 bl GetEntityType cmp r0, 0x3 beq _08067040 ldr r0, _0806703C b _0806709E .align 2, 0 _0806703C: .4byte gUnknown_80F8E54 _08067040: mov r2, r10 ldr r0, [r2, 0x14] bl GetItemData adds r4, r0, 0 ldr r0, _080670A8 adds r1, r4, 0 bl sub_8045BF8 ldr r6, [r5] str r6, [sp] ldr r4, [r4] mov r8, sp str r4, [sp, 0x4] movs r3, 0xEF mov r0, sp ldrb r2, [r0] ands r2, r3 ldr r1, _080670AC adds r0, r1, 0 ands r0, r6 orrs r0, r2 str r0, [sp] mov r2, r8 ldrb r0, [r2, 0x4] ands r0, r3 ands r1, r4 orrs r1, r0 str r1, [sp, 0x4] adds r4, r7, 0x4 adds r0, r4, 0 movs r1, 0x1 bl sub_80461C8 movs r0, 0 strb r0, [r5, 0x2] strb r0, [r5, 0x1] strb r0, [r5] adds r0, r4, 0 mov r1, sp movs r2, 0x1 bl sub_80460F8 lsls r0, 24 cmp r0, 0 bne _080670B4 ldr r0, _080670B0 _0806709E: ldr r1, [r0] adds r0, r7, 0 bl SendMessage b _080670EE .align 2, 0 _080670A8: .4byte gUnknown_202DEA8 _080670AC: .4byte 0xffffff00 _080670B0: .4byte gUnknown_80F8E78 _080670B4: ldr r1, [sp, 0x8] ldrb r0, [r1] cmp r0, 0x81 bne _080670C4 ldr r0, [sp, 0x4] mov r2, r9 str r0, [r2, 0x60] b _080670CA _080670C4: add r0, sp, 0x4 bl AddItemToInventory _080670CA: bl FillInventoryGaps ldr r0, _08067100 bl PlaySoundEffect ldr r0, _08067104 ldr r1, [r0] adds r0, r7, 0 bl SendMessage ldr r0, _08067108 ldr r0, [r0] ldr r1, _0806710C adds r0, r1 ldrb r1, [r0] adds r0, r7, 0 bl sub_807AB38 _080670EE: 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 _08067100: .4byte 0x0000014d _08067104: .4byte gUnknown_80F8EAC _08067108: .4byte gDungeonGlobalData _0806710C: .4byte 0x00003a08 thumb_func_end sub_8066FA4 thumb_func_start sub_8067110 sub_8067110: push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 ldr r4, [r5, 0x70] movs r1, 0 movs r2, 0x8 bl sub_8044D90 adds r6, r0, 0 ldr r0, _08067190 adds r1, r6, 0 bl sub_8045BF8 ldr r0, _08067194 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument_2 adds r0, r5, 0 adds r1, r6, 0 bl sub_8048D50 lsls r0, 24 cmp r0, 0 beq _08067188 adds r0, r6, 0 bl sub_80464AC adds r1, r0, 0 adds r0, r5, 0 bl SendMessage ldr r0, [r6] str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r2, 0x66 bl sub_8044DF0 movs r0, 0x1E movs r1, 0x11 bl sub_803E708 str r5, [sp] add r0, sp, 0x8 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 adds r3, r5, 0 bl sub_80479B8 ldr r0, _08067198 ldr r0, [r0] ldr r1, _0806719C adds r0, r1 ldrb r1, [r0] adds r0, r5, 0 bl sub_807AB38 _08067188: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08067190: .4byte gUnknown_202DE58 _08067194: .4byte gAvailablePokemonNames _08067198: .4byte gDungeonGlobalData _0806719C: .4byte 0x00003a08 thumb_func_end sub_8067110 thumb_func_start sub_80671A0 sub_80671A0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 ldr r0, [r6, 0x70] mov r8, r0 adds r0, r6, 0 movs r1, 0 movs r2, 0x9 bl sub_8044D90 adds r4, r0, 0 mov r0, r8 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0x81 bne _080671E8 ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080671E8 ldr r0, _080671E0 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _080671E4 b _08067230 .align 2, 0 _080671E0: .4byte gUnknown_202DE58 _080671E4: .4byte gUnknown_80F8BE0 _080671E8: ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 beq _08067202 ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067220 _08067202: ldrb r1, [r4] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08067220 ldr r0, _08067218 adds r1, r4, 0 bl sub_8045BF8 ldr r0, _0806721C b _08067230 .align 2, 0 _08067218: .4byte gUnknown_202DE58 _0806721C: .4byte gUnknown_80F8BE0 _08067220: adds r0, r6, 0 movs r1, 0x1 bl ShouldAvoidEnemiesAndShowEffect lsls r0, 24 cmp r0, 0 beq _08067248 ldr r0, _08067244 _08067230: ldr r1, [r0] adds r0, r6, 0 bl SendMessage movs r0, 0x14 movs r1, 0x4C bl sub_803E708 b _080674F8 .align 2, 0 _08067244: .4byte gUnknown_80FF76C _08067248: ldr r2, [r4] str r2, [sp, 0x4] movs r1, 0xEF add r0, sp, 0x4 ldrb r0, [r0] ands r0, r1 ldr r1, _080672C0 ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] mov r0, r8 adds r0, 0x48 ldrb r1, [r0] adds r5, r0, 0 cmp r1, 0x80 bne _08067272 movs r4, 0 adds r0, 0x4 movs r1, 0x1 bl sub_80461C8 _08067272: movs r7, 0x1 ldr r0, [sp, 0x4] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl GetItemType lsls r0, 24 cmp r0, 0 beq _0806729A ldr r0, [sp, 0x4] lsrs r0, 16 lsls r0, 24 lsrs r0, 24 bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080672A8 _0806729A: ldr r0, [sp, 0x4] lsrs r0, 8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080672A8 movs r7, 0 _080672A8: cmp r7, 0 beq _080672C4 ldrb r0, [r5] cmp r0, 0x80 beq _080672F6 movs r0, 0 strb r0, [r4, 0x2] strb r0, [r4, 0x1] strb r0, [r4] bl FillInventoryGaps b _080672F6 .align 2, 0 _080672C0: .4byte 0xffffff00 _080672C4: ldrb r0, [r5] cmp r0, 0x80 bne _080672F0 ldr r2, [sp, 0x4] lsrs r0, r2, 8 subs r0, 0x1 lsls r0, 24 lsrs r0, 16 ldr r1, _080672EC ands r2, r1 orrs r2, r0 str r2, [sp, 0x4] mov r0, r8 adds r0, 0x4C add r1, sp, 0x4 movs r2, 0x1 bl sub_80460F8 b _080672F6 .align 2, 0 _080672EC: .4byte 0xffff00ff _080672F0: ldrb r0, [r4, 0x1] subs r0, 0x1 strb r0, [r4, 0x1] _080672F6: adds r0, r6, 0 movs r1, 0x29 bl HasItem lsls r0, 24 cmp r0, 0 beq _08067310 movs r0, 0x8 bl DungeonRandomCapped mov r1, r8 adds r1, 0x46 strb r0, [r1] _08067310: adds r0, r6, 0 bl sub_8045888 lsls r0, 24 movs r1, 0xE0 add r1, r8 mov r10, r1 adds r1, r6, 0x4 str r1, [sp, 0x10] add r1, sp, 0xC mov r9, r1 cmp r0, 0 beq _08067364 mov r0, r8 adds r0, 0x46 ldrb r4, [r0] movs r1, 0xB2 lsls r1, 1 adds r0, r6, 0 bl sub_80421C0 movs r7, 0x7 movs r5, 0x7 _0806733E: subs r4, 0x1 ands r4, r7 adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 bl sub_806CDD4 movs r0, 0x2 movs r1, 0x15 bl sub_803E708 subs r5, 0x1 cmp r5, 0 bge _0806733E movs r1, 0xB3 lsls r1, 1 add r1, r8 movs r0, 0x4 strb r0, [r1] _08067364: add r4, sp, 0x4 ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 beq _08067380 ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067384 _08067380: movs r0, 0x1 strb r0, [r4, 0x1] _08067384: ldr r0, _080673B0 add r4, sp, 0x4 adds r1, r4, 0 bl sub_8045C08 ldr r0, _080673B4 mov r1, r8 movs r2, 0 bl SetMessageArgument_2 ldrb r0, [r4, 0x2] bl GetItemType lsls r0, 24 cmp r0, 0 bne _080673BC ldr r0, _080673B8 ldr r1, [r0] adds r0, r6, 0 bl SendMessage b _080673C6 .align 2, 0 _080673B0: .4byte gUnknown_202DE58 _080673B4: .4byte gAvailablePokemonNames _080673B8: .4byte gUnknown_80F8EC8 _080673BC: ldr r0, _080673F8 ldr r1, [r0] adds r0, r6, 0 bl SendMessage _080673C6: add r0, sp, 0x4 ldrb r0, [r0, 0x2] bl GetItemType adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8042208 adds r0, r6, 0 movs r1, 0x27 bl HasItem lsls r0, 24 cmp r0, 0 beq _08067400 ldr r0, _080673FC ldr r1, [sp, 0xC] ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0xC] b _08067408 .align 2, 0 _080673F8: .4byte gUnknown_80F8EC4 _080673FC: .4byte 0xffff00ff _08067400: ldr r1, _0806741C ldr r0, [sp, 0xC] ands r0, r1 str r0, [sp, 0xC] _08067408: mov r1, r10 ldrb r0, [r1] cmp r0, 0x1 beq _08067440 cmp r0, 0x1 bgt _08067420 cmp r0, 0 beq _08067426 b _08067462 .align 2, 0 _0806741C: .4byte 0xffff00ff _08067420: cmp r0, 0x2 beq _0806744C b _08067462 _08067426: ldr r1, _08067438 ldr r0, [sp, 0xC] ands r0, r1 ldr r1, _0806743C ands r0, r1 movs r1, 0xA0 lsls r1, 12 b _0806745E .align 2, 0 _08067438: .4byte 0xffffff00 _0806743C: .4byte 0x0000ffff _08067440: ldr r1, _08067448 ldr r0, [sp, 0xC] ands r0, r1 b _08067456 .align 2, 0 _08067448: .4byte 0xffffff00 _0806744C: ldr r1, _080674B4 ldr r0, [sp, 0xC] ands r0, r1 movs r1, 0x1 orrs r0, r1 _08067456: ldr r1, _080674B8 ands r0, r1 movs r1, 0xC6 lsls r1, 15 _0806745E: orrs r0, r1 str r0, [sp, 0xC] _08067462: adds r0, r6, 0 movs r1, 0xF bl HasItem lsls r0, 24 cmp r0, 0 beq _08067486 ldr r1, _080674B4 ldr r0, [sp, 0xC] ands r0, r1 movs r1, 0x1 orrs r0, r1 ldr r1, _080674B8 ands r0, r1 movs r1, 0xC6 lsls r1, 15 orrs r0, r1 str r0, [sp, 0xC] _08067486: add r0, sp, 0x4 ldrb r0, [r0, 0x2] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080674BC add r4, sp, 0x8 adds r0, r4, 0 adds r1, r6, 0 bl sub_8083904 mov r0, r9 str r0, [sp] adds r0, r6, 0 add r1, sp, 0x4 ldr r2, [sp, 0x10] adds r3, r4, 0 bl sub_80475C4 b _080674D0 .align 2, 0 _080674B4: .4byte 0xffffff00 _080674B8: .4byte 0x0000ffff _080674BC: mov r0, r8 adds r0, 0x46 ldrb r3, [r0] mov r1, r9 str r1, [sp] adds r0, r6, 0 add r1, sp, 0x4 ldr r2, [sp, 0x10] bl sub_8047190 _080674D0: adds r0, r6, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080674F8 mov r0, r8 adds r0, 0x46 ldrb r1, [r0] adds r0, r6, 0 bl sub_806CE68 ldr r0, _08067508 ldr r0, [r0] ldr r1, _0806750C adds r0, r1 ldrb r1, [r0] adds r0, r6, 0 bl sub_807AB38 _080674F8: 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 _08067508: .4byte gDungeonGlobalData _0806750C: .4byte 0x00003a08 thumb_func_end sub_80671A0 thumb_func_start sub_8067510 sub_8067510: push {r4,lr} adds r4, r0, 0 bl sub_806773C adds r1, r0, 0 movs r2, 0x1 negs r2, r2 adds r0, r4, 0 bl sub_8067558 pop {r4} pop {r0} bx r0 thumb_func_end sub_8067510 thumb_func_start sub_806752C sub_806752C: push {r4,lr} ldr r1, _08067550 ldr r1, [r1] ldrb r0, [r0, 0x4] lsls r0, 2 ldr r2, _08067554 adds r1, r2 adds r1, r0 ldr r4, [r1] bl GetLeaderEntity adds r1, r4, 0 movs r2, 0 bl sub_8067558 pop {r4} pop {r0} bx r0 .align 2, 0 _08067550: .4byte gDungeonGlobalData _08067554: .4byte 0x0001357c thumb_func_end sub_806752C thumb_func_start sub_8067558 sub_8067558: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x12C adds r6, r0, 0 adds r5, r1, 0 mov r9, r2 ldr r0, [r6, 0x70] mov r8, r0 cmp r5, 0 bne _0806757C ldr r0, _08067578 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067578: .4byte gUnknown_80F8EE4 _0806757C: adds r0, r6, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 bne _08067594 ldr r0, _08067590 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067590: .4byte gUnknown_80F8EE4 _08067594: adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080675AA b _0806771E _080675AA: adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080675C0 b _0806771E _080675C0: ldr r7, [r5, 0x70] ldr r4, _08067608 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument_2 adds r4, 0x50 adds r0, r4, 0 mov r1, r8 movs r2, 0x7 bl SetMessageArgument_2 bl sub_8084778 adds r0, r6, 0 adds r1, r5, 0 bl sub_807A96C adds r0, r5, 0 bl sub_8070BC0 lsls r0, 24 cmp r0, 0 beq _08067600 adds r0, r5, 0 movs r1, 0x1 bl CannotMove lsls r0, 24 cmp r0, 0 beq _08067610 _08067600: ldr r0, _0806760C ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067608: .4byte gAvailablePokemonNames _0806760C: .4byte gUnknown_80FE008 _08067610: adds r0, r6, 0x4 adds r1, r5, 0x4 bl CalculateFacingDir adds r1, r0, 0 adds r0, r6, 0 bl sub_806CEFC mov r1, r9 cmp r1, 0 blt _0806762E adds r0, r5, 0 bl sub_806CEFC b _0806763C _0806762E: mov r0, r8 adds r0, 0x46 ldrb r1, [r0] adds r1, 0x4 adds r0, r5, 0 bl sub_806CEFC _0806763C: ldrb r0, [r7, 0x8] cmp r0, 0x1 bne _08067648 bl sub_807EF84 b _0806772A _08067648: adds r0, r7, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x1 bne _08067694 ldr r0, _08067668 ldr r1, [r0] ldr r2, _0806766C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _08067674 ldr r0, _08067670 ldr r1, [r0] movs r0, 0 b _08067716 .align 2, 0 _08067668: .4byte gDungeonGlobalData _0806766C: .4byte 0x0000066e _08067670: .4byte gUnknown_80FF674 _08067674: ldr r3, _08067688 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 beq _0806768C adds r0, r5, 0 bl sub_80845E0 b _0806772A .align 2, 0 _08067688: .4byte 0x00000677 _0806768C: adds r0, r5, 0 bl sub_8084448 b _0806772A _08067694: movs r0, 0x4 ldrsh r5, [r7, r0] movs r6, 0 adds r0, r7, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x4A bne _080676AA movs r5, 0xD2 lsls r5, 1 b _080676CC _080676AA: cmp r0, 0x47 bne _080676B8 ldr r5, _080676B4 b _080676CC .align 2, 0 _080676B4: .4byte 0x000001a5 _080676B8: cmp r0, 0x41 bne _080676CC ldr r0, _080676E8 ldr r0, [r0] ldr r1, _080676EC adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080676CC movs r6, 0x1 _080676CC: movs r3, 0x10 ldrsh r2, [r7, r3] adds r0, r2, 0 cmp r2, 0 bge _080676D8 adds r0, r2, 0x3 _080676D8: movs r3, 0xE ldrsh r1, [r7, r3] asrs r0, 2 cmp r1, r0 bgt _080676F0 movs r2, 0x2 b _08067708 .align 2, 0 _080676E8: .4byte gDungeonGlobalData _080676EC: .4byte 0x0000065c _080676F0: movs r0, 0xE ldrsh r4, [r7, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 1 movs r1, 0xA bl __divsi3 movs r2, 0 cmp r4, r0 bgt _08067708 movs r2, 0x1 _08067708: mov r0, sp adds r1, r5, 0 adds r3, r6, 0 bl sub_806A3D4 movs r0, 0 mov r1, sp _08067716: movs r2, 0x1 bl PrintFieldMessage b _0806772A _0806771E: ldr r0, _08067738 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _0806772A: add sp, 0x12C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067738: .4byte gUnknown_80F8EE4 thumb_func_end sub_8067558 thumb_func_start sub_806773C sub_806773C: push {r4,r5,lr} adds r5, r0, 0 bl sub_80696A8 adds r4, r0, 0 cmp r4, 0 beq _08067760 adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 bne _08067760 ldr r0, [r5, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _08067760 adds r0, r4, 0 b _08067762 _08067760: movs r0, 0 _08067762: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806773C thumb_func_start sub_8067768 sub_8067768: push {r4,lr} ldr r1, _0806778C ldr r1, [r1] ldrb r0, [r0, 0x4] lsls r0, 2 ldr r2, _08067790 adds r1, r2 adds r1, r0 ldr r4, [r1] bl GetLeaderEntity adds r1, r4, 0 movs r2, 0 bl sub_8067794 pop {r4} pop {r0} bx r0 .align 2, 0 _0806778C: .4byte gDungeonGlobalData _08067790: .4byte 0x0001357c thumb_func_end sub_8067768 thumb_func_start sub_8067794 sub_8067794: push {r4-r7,lr} sub sp, 0x40 adds r7, r1, 0 ldr r4, [r7, 0x70] cmp r7, 0 bne _080677B4 ldr r0, _080677B0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _0806786C .align 2, 0 _080677B0: .4byte gUnknown_80F8F08 _080677B4: ldr r0, _080677F0 adds r1, r7, 0 movs r2, 0 bl SetMessageArgument ldr r0, _080677F4 ldr r5, [r0] ldr r0, _080677F8 ldr r6, [r0] ldrb r2, [r4, 0xA] cmp r2, 0 blt _08067834 ldr r1, _080677FC movs r0, 0x64 muls r0, r2 ldr r2, _08067800 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A564 lsls r0, 24 cmp r0, 0 beq _0806780C ldr r0, _08067804 ldr r5, [r0] ldr r0, _08067808 b _08067832 .align 2, 0 _080677F0: .4byte gAvailablePokemonNames _080677F4: .4byte gUnknown_80F9094 _080677F8: .4byte gUnknown_80F913C _080677FC: .4byte gRecruitedPokemonRef _08067800: .4byte 0x00008df8 _08067804: .4byte gUnknown_80F9114 _08067808: .4byte gUnknown_80F9154 _0806780C: movs r2, 0xA ldrsh r0, [r4, r2] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08067834 bl sub_8044210 lsls r0, 24 cmp r0, 0 beq _0806782C ldr r0, _08067828 b _0806782E .align 2, 0 _08067828: .4byte gUnknown_80F90DC _0806782C: ldr r0, _08067874 _0806782E: ldr r5, [r0] ldr r0, _08067878 _08067832: ldr r6, [r0] _08067834: movs r0, 0 adds r1, r5, 0 movs r2, 0 bl sub_8052B8C cmp r0, 0x1 bne _0806786C ldr r4, _0806787C mov r0, sp adds r1, r4, 0 movs r2, 0x40 bl strncpy ldr r1, _08067880 adds r0, r7, 0 movs r2, 0 bl sub_8068FE0 adds r0, r4, 0 mov r1, sp movs r2, 0x40 bl strncpy movs r0, 0 adds r1, r6, 0 movs r2, 0x1 bl PrintFieldMessage _0806786C: add sp, 0x40 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067874: .4byte gUnknown_80F90C8 _08067878: .4byte gUnknown_80F9150 _0806787C: .4byte gAvailablePokemonNames _08067880: .4byte 0x0000021d thumb_func_end sub_8067794 thumb_func_start sub_8067884 sub_8067884: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 b _0806789A _0806788E: ldr r1, _08067900 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080678C6 adds r6, 0x1 _0806789A: adds r0, r5, 0 movs r1, 0x1 bl sub_8070828 cmp r6, r0 bge _080678C6 ldr r4, [r5, 0x70] adds r0, r4, 0 adds r0, 0x50 ldrb r1, [r0] movs r0, 0 str r0, [sp] adds r0, r5, 0 movs r2, 0x1 movs r3, 0 bl sub_8055A00 bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0806788E _080678C6: adds r0, r5, 0 movs r1, 0x1 bl sub_8057588 bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080678F6 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080678F0 ldr r0, [r5, 0x70] adds r0, 0x50 ldrb r1, [r0] adds r0, r5, 0 bl sub_806A9B4 _080678F0: adds r0, r5, 0 bl sub_806A1B0 _080678F6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08067900: .4byte 0x00000159 thumb_func_end sub_8067884 thumb_func_start sub_8067904 sub_8067904: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r5, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r6, [r5, 0x70] ldr r1, _08067940 movs r0, 0 str r0, [r1] add r0, sp, 0x8 mov r1, r9 bl InitPokemonMove adds r0, r6, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 bne _0806794C ldr r0, _08067944 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08067948 b _08067962 .align 2, 0 _08067940: .4byte gUnknown_202F208 _08067944: .4byte gAvailablePokemonNames _08067948: .4byte gUnknown_80F8F20 _0806794C: adds r0, r6, 0 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _08067974 ldr r0, _0806796C adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08067970 _08067962: ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08067A56 .align 2, 0 _0806796C: .4byte gAvailablePokemonNames _08067970: .4byte gUnknown_80F8F38 _08067974: movs r0, 0xB0 lsls r0, 1 movs r1, 0 mov r10, r1 cmp r9, r0 bne _08067984 movs r2, 0x1 mov r10, r2 _08067984: movs r0, 0 mov r8, r0 movs r7, 0 add r4, sp, 0x8 b _080679D2 _0806798E: movs r1, 0xBC lsls r1, 1 adds r0, r6, r1 strh r7, [r0] ldrb r0, [r4] movs r1, 0x8 orrs r0, r1 orrs r0, r7 movs r1, 0x4 orrs r0, r1 strb r0, [r4] movs r0, 0xA strb r0, [r4, 0x4] str r7, [sp] str r4, [sp, 0x4] adds r0, r5, 0 mov r1, r10 movs r2, 0 movs r3, 0 bl sub_8055FA0 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080679DE ldr r2, _08067A68 adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _080679DE movs r0, 0x1 add r8, r0 _080679D2: adds r0, r5, 0 movs r1, 0x1 bl sub_8070828 cmp r8, r0 blt _0806798E _080679DE: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08067A56 movs r0, 0xB0 lsls r0, 1 cmp r9, r0 bne _08067A04 ldr r0, _08067A6C ldr r0, [r0] cmp r0, 0 bne _08067A04 ldr r0, _08067A70 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08067A04: ldrb r0, [r6, 0x7] cmp r0, 0 beq _08067A50 movs r0, 0xB0 lsls r0, 1 cmp r9, r0 beq _08067A50 ldr r4, _08067A74 adds r3, r6, 0 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0] ldrh r1, [r5, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _08067A78 ldr r1, [sp, 0x10] ands r1, r2 orrs r1, r0 str r1, [sp, 0x10] ldrb r0, [r3] lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x2] ldrh r2, [r5, 0x6] adds r0, r2 lsls r0, 16 ldr r2, _08067A7C ands r1, r2 orrs r1, r0 str r1, [sp, 0x10] add r0, sp, 0x10 movs r1, 0x1 bl sub_807FE44 _08067A50: adds r0, r5, 0 bl sub_8071DA4 _08067A56: 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 _08067A68: .4byte 0x00000159 _08067A6C: .4byte gUnknown_202F208 _08067A70: .4byte gUnknown_80FC690 _08067A74: .4byte gAdjacentTileOffsets _08067A78: .4byte 0xffff0000 _08067A7C: .4byte 0x0000ffff thumb_func_end sub_8067904 thumb_func_start sub_8067A80 sub_8067A80: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x6C str r1, [sp, 0x68] mov r8, r2 mov r9, r3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x64] ldr r1, _08067AC8 add r0, sp, 0x4 movs r2, 0x60 bl memcpy ldr r1, _08067ACC movs r0, 0 str r0, [r1] mov r10, r0 cmp r10, r8 blt _08067AB0 b _08067ED8 _08067AB0: ldr r5, _08067AD0 mov r4, r9 mov r3, r8 _08067AB6: ldm r4!, {r2} ldrh r1, [r2] adds r0, r5, 0 ands r0, r1 strh r0, [r2] subs r3, 0x1 cmp r3, 0 bne _08067AB6 b _08067ED8 .align 2, 0 _08067AC8: .4byte gUnknown_8106DC8 _08067ACC: .4byte gUnknown_202F30C _08067AD0: .4byte 0x00007fff _08067AD4: movs r7, 0 ldr r1, _08067B98 movs r0, 0x1 strb r0, [r1] strb r7, [r1, 0x1] movs r0, 0xE strb r0, [r1, 0x2] strb r7, [r1, 0x3] add r0, sp, 0x4 movs r1, 0x1 bl sub_803ECB4 ldr r5, _08067B9C ldr r2, [r5] ldr r0, [sp, 0x68] str r0, [sp] ldr r0, [sp, 0x64] mov r1, r9 mov r3, r8 bl sub_8067F00 ldr r4, _08067BA0 mov r0, r8 cmp r0, 0x8 ble _08067B08 movs r0, 0x8 _08067B08: strh r0, [r4, 0x1A] mov r1, r10 strh r1, [r4, 0x18] movs r0, 0x8 strh r0, [r4, 0x1C] strh r7, [r4, 0x1E] strh r7, [r4, 0x20] strh r7, [r4, 0x4] movs r0, 0x12 strh r0, [r4, 0x6] strh r7, [r4, 0xC] strh r7, [r4, 0xE] strh r7, [r4, 0x14] str r7, [r4] adds r0, r4, 0 adds r0, 0x28 bl sub_801317C adds r0, r4, 0 movs r1, 0 bl sub_80137B0 adds r6, r5, 0 _08067B36: ldr r0, _08067BA0 bl AddMenuCursorSprite movs r5, 0 movs r7, 0 ldr r0, [r6] mov r2, r8 subs r0, r2, r0 cmp r0, 0x8 ble _08067B50 movs r5, 0x1 bl sub_80684C4 _08067B50: ldr r0, [r6] cmp r0, 0 beq _08067B5C movs r7, 0x1 bl sub_8068344 _08067B5C: movs r0, 0 ldr r1, _08067BA4 bl sub_8014140 adds r4, r0, 0 movs r0, 0x37 bl sub_803E46C cmp r4, 0x2 bne _08067BAC cmp r5, 0 beq _08067BAC ldr r0, [r6] mov r3, r8 subs r0, r3, r0 cmp r0, 0x8 ble _08067BF0 ldr r5, _08067BA8 movs r4, 0x5 _08067B82: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067B82 b _08067BEA .align 2, 0 _08067B98: .4byte gUnknown_202F308 _08067B9C: .4byte gUnknown_202F30C _08067BA0: .4byte gUnknown_202EE10 _08067BA4: .4byte gUnknown_8106DA4 _08067BA8: .4byte gUnknown_203B080 _08067BAC: ldr r0, _08067BF8 ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08067C0C movs r0, 0x1 bl sub_8083CE0 ldr r1, _08067BFC movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0x7 bne _08067C04 ldr r0, [r6] mov r3, r8 subs r0, r3, r0 cmp r0, 0x8 ble _08067BF0 ldr r5, _08067C00 movs r4, 0x5 _08067BD6: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067BD6 _08067BEA: ldr r0, [r6] adds r0, 0x1 str r0, [r6] _08067BF0: movs r7, 0 movs r0, 0x7 mov r10, r0 b _08067CF6 .align 2, 0 _08067BF8: .4byte gRealInputs _08067BFC: .4byte gUnknown_202EE10 _08067C00: .4byte gUnknown_203B080 _08067C04: adds r0, r1, 0 movs r1, 0 bl sub_80136E0 _08067C0C: cmp r4, 0x1 bne _08067C44 cmp r7, 0 beq _08067C44 ldr r0, [r6] cmp r0, 0 beq _08067C38 ldr r5, _08067C40 movs r4, 0x5 _08067C1E: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067C1E ldr r0, [r6] subs r0, 0x1 str r0, [r6] _08067C38: movs r7, 0 movs r1, 0 mov r10, r1 b _08067CF6 .align 2, 0 _08067C40: .4byte gUnknown_203B084 _08067C44: ldr r0, _08067C8C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08067CA0 movs r0, 0x1 bl sub_8083CE0 ldr r1, _08067C90 movs r2, 0x18 ldrsh r0, [r1, r2] cmp r0, 0 bne _08067C98 ldr r0, [r6] cmp r0, 0 beq _08067C84 ldr r5, _08067C94 movs r4, 0x5 _08067C6A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x37 bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08067C6A ldr r0, [r6] subs r0, 0x1 str r0, [r6] _08067C84: movs r7, 0 movs r3, 0 mov r10, r3 b _08067CF6 .align 2, 0 _08067C8C: .4byte gRealInputs _08067C90: .4byte gUnknown_202EE10 _08067C94: .4byte gUnknown_203B084 _08067C98: adds r0, r1, 0 movs r1, 0 bl sub_8013744 _08067CA0: bl sub_80048C8 lsls r0, 24 cmp r0, 0 beq _08067CAC b _08067B36 _08067CAC: ldr r0, _08067CD4 ldrh r1, [r0, 0x2] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08067D40 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08067CCC ldr r2, _08067CD8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08067CDC _08067CCC: bl sub_8083D08 movs r7, 0x1 b _08067CF6 .align 2, 0 _08067CD4: .4byte gRealInputs _08067CD8: .4byte gUnknown_202EE10 _08067CDC: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08067CF0 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _08067CF0 b _08067B36 _08067CF0: bl sub_8083D30 movs r7, 0x2 _08067CF6: ldr r4, _08067D34 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C cmp r7, 0 bne _08067D0A b _08067AD4 _08067D0A: cmp r7, 0x2 bne _08067D48 movs r1, 0x18 ldrsh r0, [r4, r1] mov r10, r0 ldr r0, _08067D38 ldr r0, [r0] ldr r2, [sp, 0x68] cmp r0, r2 bge _08067D20 b _08067AD4 _08067D20: ldr r0, _08067D3C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08067D32 b _08067ED8 _08067D32: b _08067AD4 .align 2, 0 _08067D34: .4byte gUnknown_202EE10 _08067D38: .4byte gUnknown_202F310 _08067D3C: .4byte gUnknown_80FDFB8 _08067D40: bl sub_8083D1C movs r7, 0x3 b _08067CF6 _08067D48: cmp r7, 0x3 bne _08067D64 movs r0, 0x18 ldrsh r3, [r4, r0] mov r10, r3 ldr r0, _08067D60 ldr r0, [r0] add r0, r10 lsls r0, 2 add r0, r9 b _08067ED0 .align 2, 0 _08067D60: .4byte gUnknown_202F30C _08067D64: movs r2, 0x18 ldrsh r1, [r4, r2] mov r10, r1 ldr r0, _08067DAC ldr r0, [r0] adds r4, r0, r1 ldr r1, _08067DB0 movs r0, 0 str r0, [r1] movs r0, 0x29 movs r1, 0 bl sub_8044F5C movs r0, 0x2A movs r1, 0 bl sub_8044F5C movs r0, 0x40 movs r1, 0 bl sub_8044F5C lsls r0, r4, 2 add r0, r9 ldr r0, [r0] ldrh r0, [r0] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _08067DBC movs r0, 0x29 bl sub_8044FF0 b _08067DC2 .align 2, 0 _08067DAC: .4byte gUnknown_202F30C _08067DB0: .4byte gUnknown_202EE6C _08067DB4: bl sub_8083D08 movs r7, 0x1 b _08067E6E _08067DBC: movs r0, 0x2A bl sub_8044FF0 _08067DC2: lsls r0, r4, 2 mov r2, r9 adds r1, r0, r2 ldr r2, [r1] ldrb r1, [r2, 0x2] adds r6, r0, 0 cmp r1, 0 bne _08067DDC ldrb r1, [r2, 0x4] cmp r1, 0x40 beq _08067DDC cmp r1, 0x41 bne _08067DE2 _08067DDC: movs r0, 0x29 bl sub_8044FF0 _08067DE2: bl sub_8045064 add r0, sp, 0x4 movs r1, 0x15 bl sub_805FC30 ldr r4, _08067EA0 ldr r5, _08067EA4 adds r7, r4, 0 adds r7, 0x2A _08067DF6: adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C ldrh r1, [r5, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08067E1A movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_80136E0 _08067E1A: ldrh r1, [r5, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08067E32 movs r0, 0x1 bl sub_8083CE0 adds r0, r4, 0 movs r1, 0x1 bl sub_8013744 _08067E32: ldrh r1, [r5, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08067E46 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _08067E58 _08067E46: movs r3, 0x18 ldrsh r0, [r4, r3] bl sub_8044F3C lsls r0, 24 cmp r0, 0 bne _08067DB4 bl sub_8083D30 _08067E58: ldrh r1, [r5, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08067E68 ldrb r0, [r7] cmp r0, 0 beq _08067DF6 _08067E68: bl sub_8083D30 movs r7, 0 _08067E6E: ldr r4, _08067EA0 adds r0, r4, 0 bl AddMenuCursorSprite movs r0, 0x37 bl sub_803E46C cmp r7, 0 bne _08067E82 b _08067AD4 _08067E82: movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0 bne _08067EA8 mov r2, r9 adds r0, r6, r2 ldr r1, [r0] ldrh r2, [r1] movs r3, 0x80 lsls r3, 8 adds r0, r3, 0 orrs r0, r2 strh r0, [r1] b _08067EBC .align 2, 0 _08067EA0: .4byte gUnknown_202EE10 _08067EA4: .4byte gRealInputs _08067EA8: cmp r0, 0x1 bne _08067ECC mov r1, r9 adds r0, r6, r1 ldr r2, [r0] ldrh r0, [r2] ldr r3, _08067EC8 adds r1, r3, 0 ands r0, r1 strh r0, [r2] _08067EBC: mov r0, r8 mov r1, r9 bl sub_8068310 b _08067AD4 .align 2, 0 _08067EC8: .4byte 0x00007fff _08067ECC: mov r1, r9 adds r0, r6, r1 _08067ED0: ldr r0, [r0] bl sub_806806C b _08067AD4 _08067ED8: mov r0, r8 mov r1, r9 bl sub_8068310 ldr r0, _08067EFC ldr r0, [r0] ldr r2, [sp, 0x68] cmp r0, r2 bge _08067EEC b _08067AD4 _08067EEC: add sp, 0x6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08067EFC: .4byte gUnknown_202F310 thumb_func_end sub_8067A80 thumb_func_start sub_8067F00 sub_8067F00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 mov r9, r1 str r3, [sp, 0x4] lsls r4, 24 lsrs r4, 24 subs r7, r2, 0x1 movs r0, 0x16 mov r8, r0 movs r0, 0 bl sub_80073B8 ldr r0, _08067F44 adds r1, r4, 0 movs r2, 0 bl sub_8092578 ldr r2, _08067F48 movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 movs r3, 0 bl xxx_format_and_draw movs r1, 0 mov r10, r1 b _08067FF6 .align 2, 0 _08067F44: .4byte gAvailablePokemonNames _08067F48: .4byte gUnknown_8106E28 _08067F4C: ldr r4, _08067F8C lsls r6, r7, 2 mov r0, r9 adds r5, r6, r0 ldr r1, [r5] adds r0, r4, 0 movs r2, 0 bl PrintColoredPokeNameToBuffer adds r4, 0x50 ldr r0, [r5] movs r2, 0x8 ldrsh r1, [r0, r2] adds r0, r4, 0 bl sub_808D930 ldr r1, _08067F90 adds r0, r7, 0x1 str r0, [r1] ldr r0, [r5] ldrh r1, [r0] movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08067F9C ldr r0, _08067F94 ldr r1, _08067F98 bl strcpy b _08067FA4 .align 2, 0 _08067F8C: .4byte gAvailablePokemonNames _08067F90: .4byte gUnknown_202DE30 _08067F94: .4byte gUnknown_202DE58 _08067F98: .4byte gUnknown_8106E2C _08067F9C: ldr r0, _08067FCC ldr r1, _08067FD0 bl strcpy _08067FA4: mov r1, r9 adds r0, r6, r1 ldr r0, [r0] ldrh r1, [r0] movs r0, 0x80 lsls r0, 7 ands r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _08067FD8 ldr r2, _08067FD4 movs r0, 0 str r0, [sp] movs r0, 0x7 mov r1, r8 movs r3, 0 bl xxx_format_and_draw b _08067FE6 .align 2, 0 _08067FCC: .4byte gUnknown_202DE58 _08067FD0: .4byte gUnknown_8106E30 _08067FD4: .4byte gUnknown_8106E34 _08067FD8: ldr r2, _08068028 str r0, [sp] movs r0, 0x7 mov r1, r8 movs r3, 0 bl xxx_format_and_draw _08067FE6: movs r2, 0x1 add r10, r2 movs r0, 0xC add r8, r0 adds r7, 0x1 mov r1, r10 cmp r1, 0x9 bgt _08068000 _08067FF6: cmp r7, 0 blt _08067FE6 ldr r2, [sp, 0x4] cmp r7, r2 blt _08067F4C _08068000: movs r0, 0 bl sub_80073E0 movs r0, 0x1 bl sub_80073B8 ldr r0, _0806802C ldr r0, [r0] ldr r1, [sp, 0x28] cmp r0, r1 blt _08068034 ldr r2, _08068030 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x2 movs r3, 0x1 bl xxx_format_and_draw b _0806804C .align 2, 0 _08068028: .4byte gUnknown_8106E48 _0806802C: .4byte gUnknown_202F310 _08068030: .4byte gUnknown_8106E5C _08068034: ldr r1, _08068064 ldr r2, [sp, 0x28] subs r0, r2, r0 str r0, [r1] ldr r2, _08068068 movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0x2 movs r3, 0x1 bl xxx_format_and_draw _0806804C: movs r0, 0x1 bl sub_80073E0 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068064: .4byte gUnknown_202DE30 _08068068: .4byte gUnknown_8106E6C thumb_func_end sub_8067F00 thumb_func_start sub_806806C sub_806806C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x110 str r0, [sp, 0x108] add r4, sp, 0x98 adds r0, r4, 0 movs r1, 0 movs r2, 0x60 bl memset movs r0, 0x6 str r0, [r4, 0x4] movs r1, 0x2 strh r1, [r4, 0x8] strh r1, [r4, 0xA] movs r2, 0x12 strh r2, [r4, 0xC] movs r0, 0xE strh r0, [r4, 0xE] strh r2, [r4, 0x10] strh r1, [r4, 0x12] ldr r0, _080681B4 str r0, [r4, 0x14] movs r0, 0x3 str r0, [r4, 0x1C] str r0, [r4, 0x34] str r0, [r4, 0x4C] movs r7, 0 add r1, sp, 0x44 strh r7, [r1] mov r0, sp adds r0, 0x5A strh r7, [r0] ldr r0, _080681B8 strh r7, [r0, 0x18] mov r9, r1 adds r1, 0xB4 str r1, [sp, 0x10C] add r2, sp, 0x68 mov r10, r2 adds r6, r0, 0 _080680C4: movs r3, 0 mov r8, r3 add r1, sp, 0xF8 ldr r0, _080681BC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] ldr r1, _080681B4 movs r2, 0x4 strb r2, [r1] strb r7, [r1, 0x1] movs r0, 0xA strb r0, [r1, 0x2] mov r4, r8 strb r4, [r1, 0x3] strh r7, [r6, 0x1E] strh r2, [r6, 0x20] mov r0, r8 strh r0, [r6, 0x1A] strh r0, [r6, 0x18] strh r0, [r6, 0x1C] strh r0, [r6, 0x4] movs r0, 0x10 strh r0, [r6, 0x6] mov r1, r8 strh r1, [r6, 0x14] mov r2, r8 str r2, [r6] adds r0, r6, 0 adds r0, 0x28 bl sub_801317C add r0, sp, 0x98 movs r1, 0x1 bl sub_803ECB4 ldr r0, _080681C0 ldr r0, [r0] ldr r3, _080681C4 adds r0, r3 ldrb r2, [r0] add r0, sp, 0x4 ldr r1, [sp, 0x108] bl sub_808FF20 lsls r4, r7, 2 mov r0, sp adds r0, r4 adds r0, 0xF8 ldr r0, [r0] mov r1, r8 str r1, [sp] adds r1, r7, 0 add r2, sp, 0x4 mov r3, r10 bl CreatePokemonInfoTabScreen ldr r1, _080681C8 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0xF lsls r0, 3 strh r0, [r6, 0xC] movs r3, 0x2 ldrsh r0, [r1, r3] adds r0, 0x1 lsls r0, 3 subs r0, 0x2 strh r0, [r6, 0xE] _08068150: ldr r0, _080681B8 bl AddMenuCursorSprite ldr r1, [sp, 0x10C] adds r0, r1, r4 ldr r0, [r0] cmp r0, 0x4 bne _0806817A mov r2, r10 ldrb r0, [r2, 0x8] cmp r0, 0 beq _0806816C bl sub_80684C4 _0806816C: mov r3, r9 movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 beq _0806817A bl sub_8068344 _0806817A: movs r0, 0 ldr r1, _080681CC bl sub_8014140 adds r5, r0, 0 movs r0, 0x1C bl sub_803E46C ldr r3, _080681D0 ldrh r1, [r3, 0x2] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080681A2 ldr r2, _080681B8 adds r0, r2, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0 beq _080681D4 _080681A2: movs r0, 0 bl sub_8083CE0 adds r7, 0x1 cmp r7, 0x4 beq _080681B0 b _080682E8 _080681B0: movs r7, 0 b _080682E8 .align 2, 0 _080681B4: .4byte gUnknown_202F308 _080681B8: .4byte gUnknown_202EE10 _080681BC: .4byte gUnknown_8106E80 _080681C0: .4byte gDungeonGlobalData _080681C4: .4byte 0x0000065a _080681C8: .4byte gUnknown_2027370 _080681CC: .4byte gUnknown_8106DA4 _080681D0: .4byte gRealInputs _080681D4: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080681E6 adds r0, r2, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _080681FA _080681E6: movs r0, 0 bl sub_8083CE0 subs r7, 0x1 movs r0, 0x1 negs r0, r0 cmp r7, r0 bne _080682E8 movs r7, 0x3 b _080682E8 _080681FA: ldr r2, [sp, 0x10C] adds r0, r2, r4 ldr r0, [r0] cmp r0, 0x4 bne _08068294 ldrh r1, [r3, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08068212 cmp r5, 0x2 bne _08068248 _08068212: mov r3, r10 ldrb r0, [r3, 0x8] cmp r0, 0 beq _08068248 movs r0, 0 bl sub_8083CE0 ldr r5, _08068244 movs r4, 0x5 _08068224: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08068224 mov r4, r9 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080682E8 .align 2, 0 _08068244: .4byte gUnknown_203B080 _08068248: ldr r0, _0806828C ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08068258 cmp r5, 0x1 bne _08068294 _08068258: mov r1, r9 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _08068294 movs r0, 0 bl sub_8083CE0 ldr r5, _08068290 movs r4, 0x5 _0806826C: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0x1C bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0806826C mov r3, r9 ldrh r0, [r3] subs r0, 0x1 strh r0, [r3] b _080682E8 .align 2, 0 _0806828C: .4byte gRealInputs _08068290: .4byte gUnknown_203B084 _08068294: bl sub_80048C8 lsls r0, 24 cmp r0, 0 beq _080682A0 b _08068150 _080682A0: ldr r0, _080682C4 ldrh r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080682B8 ldr r2, _080682C8 adds r0, r2, 0 adds r0, 0x29 ldrb r0, [r0] cmp r0, 0 beq _080682CC _080682B8: bl sub_8083D08 movs r4, 0x1 mov r8, r4 b _080682E8 .align 2, 0 _080682C4: .4byte gRealInputs _080682C8: .4byte gUnknown_202EE10 _080682CC: movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080682E0 adds r0, r2, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, 0 bne _080682E0 b _08068150 _080682E0: bl sub_8083D30 movs r0, 0x1 mov r8, r0 _080682E8: movs r0, 0x37 bl sub_803E46C mov r1, r8 cmp r1, 0 bne _080682F6 b _080680C4 _080682F6: movs r0, 0 movs r1, 0 bl sub_803EAF0 add sp, 0x110 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806806C thumb_func_start sub_8068310 sub_8068310: push {r4-r6,lr} movs r4, 0 ldr r6, _08068340 cmp r4, r0 bge _08068338 movs r5, 0x80 lsls r5, 8 adds r3, r1, 0 adds r2, r0, 0 _08068322: ldr r0, [r3] ldrh r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068330 adds r4, 0x1 _08068330: adds r3, 0x4 subs r2, 0x1 cmp r2, 0 bne _08068322 _08068338: str r4, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068340: .4byte gUnknown_202F310 thumb_func_end sub_8068310 thumb_func_start sub_8068344 sub_8068344: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 ldr r0, _08068494 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _0806835C b _08068486 _0806835C: ldr r0, _08068498 mov r9, r0 movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _0806849C ands r1, r0 ldr r3, _080684A0 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684A4 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r6, _080684A8 mov r8, r6 mov r0, r8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684AC ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080684B0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r6, _080684B4 adds r0, r6, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] movs r1, 0x80 lsls r1, 6 mov r5, sp ldrh r0, [r5, 0x2] ldr r2, _080684B8 ands r2, r0 orrs r2, r1 ands r2, r6 movs r3, 0xFC lsls r3, 2 ldrh r1, [r5, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r3 mov r1, r8 ands r0, r1 movs r3, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _080684BC ands r0, r4 orrs r0, r1 strh r0, [r5, 0x4] mov r6, r9 movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x8 ands r0, r4 lsls r0, 4 ldrh r1, [r5, 0x6] ands r3, r1 orrs r3, r0 strh r3, [r5, 0x6] movs r3, 0 ldrsh r0, [r6, r3] lsls r0, 3 adds r0, 0x40 ldr r1, _080684C0 ands r0, r1 movs r1, 0xFE lsls r1, 8 ands r2, r1 orrs r2, r0 strh r2, [r5, 0x2] movs r1, 0x80 lsls r1, 1 mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _08068486: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068494: .4byte gUnknown_202EDCC _08068498: .4byte gUnknown_2027370 _0806849C: .4byte 0x0000feff _080684A0: .4byte 0xffff0000 _080684A4: .4byte 0x0000fdff _080684A8: .4byte 0x0000f3ff _080684AC: .4byte 0x0000efff _080684B0: .4byte 0x0000dfff _080684B4: .4byte 0x00003fff _080684B8: .4byte 0x0000c1ff _080684BC: .4byte 0x00000fff _080684C0: .4byte 0x000001ff thumb_func_end sub_8068344 thumb_func_start sub_80684C4 sub_80684C4: push {r4-r6,lr} sub sp, 0x8 ldr r0, _080685E8 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080684D6 b _080685DE _080684D6: ldr r6, _080685EC movs r0, 0 movs r1, 0 str r0, [sp] str r1, [sp, 0x4] mov r0, sp ldrh r0, [r0] ldr r1, _080685F0 ands r1, r0 ldr r3, _080685F4 ldr r0, [sp] ands r0, r3 orrs r0, r1 str r0, [sp] mov r1, sp ldrh r1, [r1] adds r2, r3, 0 ands r2, r0 orrs r2, r1 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _080685F8 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r5, _080685FC adds r0, r5, 0 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08068600 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] mov r0, sp ldrh r1, [r0] ldr r0, _08068604 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] adds r2, r3, 0 ands r2, r1 orrs r2, r0 str r2, [sp] movs r4, 0x80 lsls r4, 7 mov r0, sp ldrh r1, [r0] ldr r0, _08068608 ands r0, r1 adds r1, r3, 0 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp ldrh r0, [r0] orrs r4, r0 ands r3, r1 orrs r3, r4 str r3, [sp] mov r3, sp movs r2, 0xFC lsls r2, 2 ldrh r1, [r3, 0x4] movs r0, 0xFC lsls r0, 8 ands r0, r1 orrs r0, r2 ands r0, r5 movs r2, 0xF movs r1, 0xF0 lsls r1, 8 ldr r4, _0806860C ands r0, r4 orrs r0, r1 strh r0, [r3, 0x4] movs r1, 0x2 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x70 ands r0, r4 lsls r0, 4 ldrh r1, [r3, 0x6] ands r2, r1 orrs r2, r0 strh r2, [r3, 0x6] movs r1, 0 ldrsh r0, [r6, r1] lsls r0, 3 adds r0, 0x40 ldr r1, _08068610 ands r0, r1 strh r0, [r3, 0x2] subs r1, 0xFF mov r0, sp movs r2, 0 movs r3, 0 bl AddSprite _080685DE: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080685E8: .4byte gUnknown_202EDCC _080685EC: .4byte gUnknown_2027370 _080685F0: .4byte 0x0000feff _080685F4: .4byte 0xffff0000 _080685F8: .4byte 0x0000fdff _080685FC: .4byte 0x0000f3ff _08068600: .4byte 0x0000efff _08068604: .4byte 0x0000dfff _08068608: .4byte 0x00003fff _0806860C: .4byte 0x00000fff _08068610: .4byte 0x000001ff thumb_func_end sub_80684C4 thumb_func_start sub_8068614 sub_8068614: push {lr} ldr r0, _0806862C ldr r1, _08068630 bl OpenFileAndGetFileDataPtr ldr r1, _08068634 ldr r1, [r1] ldr r2, _08068638 adds r1, r2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0806862C: .4byte gUnknown_8106E98 _08068630: .4byte gMonsterFileArchive _08068634: .4byte gDungeonGlobalData _08068638: .4byte 0x000181e4 thumb_func_end sub_8068614 thumb_func_start sub_806863C sub_806863C: push {lr} ldr r0, _08068650 ldr r0, [r0] ldr r1, _08068654 adds r0, r1 ldr r0, [r0] bl CloseFile pop {r0} bx r0 .align 2, 0 _08068650: .4byte gDungeonGlobalData _08068654: .4byte 0x000181e4 thumb_func_end sub_806863C thumb_func_start sub_8068658 sub_8068658: push {r4-r6,lr} movs r4, 0 ldr r6, _08068740 ldr r5, _08068744 ldr r3, _08068748 movs r2, 0 _08068664: ldr r0, [r5] lsls r1, r4, 2 adds r0, r3 adds r0, r1 str r2, [r0] adds r4, 0x1 cmp r4, r6 ble _08068664 ldr r0, _0806874C movs r1, 0x1 bl sub_8068838 movs r4, 0 ldr r1, _08068744 ldr r0, [r1] ldr r2, _08068750 adds r0, r2 ldr r0, [r0] cmp r4, r0 bge _080686B2 adds r6, r1, 0 ldr r5, _08068754 _08068690: ldr r0, [r6] adds r0, r5 bl ExtractSpeciesIndex lsls r0, 16 asrs r0, 16 movs r1, 0x1 bl sub_8068838 adds r5, 0x8 adds r4, 0x1 ldr r0, [r6] ldr r1, _08068750 adds r0, r1 ldr r0, [r0] cmp r4, r0 blt _08068690 _080686B2: ldr r0, _08068744 ldr r0, [r0] movs r2, 0xD1 lsls r2, 3 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080686CA movs r1, 0x1 bl sub_8068838 _080686CA: movs r4, 0 ldr r6, _08068758 movs r5, 0x1 _080686D0: movs r0, 0x64 muls r0, r4 ldr r1, _0806875C adds r0, r1 ldr r1, [r6] adds r1, r0 ldrh r2, [r1] adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _080686F8 lsrs r0, r2, 1 ands r0, r5 cmp r0, 0 beq _080686F8 movs r2, 0xE ldrsh r0, [r1, r2] movs r1, 0 bl sub_8068838 _080686F8: adds r4, 0x1 cmp r4, 0x3 ble _080686D0 ldr r0, _08068744 ldr r0, [r0] ldr r1, _08068760 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0x31 bne _08068738 movs r4, 0 ldr r5, _08068758 _08068712: movs r0, 0x58 muls r0, r4 ldr r1, _08068764 adds r0, r1 ldr r1, [r5] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068732 movs r1, 0x8 ldrsh r0, [r2, r1] movs r1, 0x1 bl sub_8068838 _08068732: adds r4, 0x1 cmp r4, 0x3 ble _08068712 _08068738: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068740: .4byte 0x000001a7 _08068744: .4byte gDungeonGlobalData _08068748: .4byte 0x00017b44 _0806874C: .4byte 0x000001a5 _08068750: .4byte 0x000037e4 _08068754: .4byte 0x0000343c _08068758: .4byte gRecruitedPokemonRef _0806875C: .4byte 0x00008df8 _08068760: .4byte 0x00003a14 _08068764: .4byte 0x00008f88 thumb_func_end sub_8068658 thumb_func_start sub_8068768 sub_8068768: push {r4,r5,lr} movs r5, 0 _0806876C: ldr r0, _080687A4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080687A8 adds r0, r2 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _08068796 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08068796 ldr r0, [r4, 0x70] movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0 bl sub_8068838 _08068796: adds r5, 0x1 cmp r5, 0x13 ble _0806876C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080687A4: .4byte gDungeonGlobalData _080687A8: .4byte 0x000135cc thumb_func_end sub_8068768 thumb_func_start sub_80687AC sub_80687AC: ldr r0, _080687C4 ldr r1, [r0] ldr r0, _080687C8 adds r2, r1, r0 movs r0, 0x80 lsls r0, 3 str r0, [r2] ldr r0, _080687CC adds r1, r0 movs r0, 0xA str r0, [r1] bx lr .align 2, 0 _080687C4: .4byte gDungeonGlobalData _080687C8: .4byte 0x000037f0 _080687CC: .4byte 0x000037f4 thumb_func_end sub_80687AC thumb_func_start sub_80687D0 sub_80687D0: lsls r0, 16 ldr r1, _080687E4 ldr r1, [r1] asrs r0, 14 ldr r2, _080687E8 adds r1, r2 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _080687E4: .4byte gDungeonGlobalData _080687E8: .4byte 0x00017b44 thumb_func_end sub_80687D0 thumb_func_start sub_80687EC sub_80687EC: push {r4,r5,lr} sub sp, 0xC lsls r0, 16 asrs r2, r0, 16 ldr r5, _08068828 ldr r0, [r5] lsls r4, r2, 2 ldr r1, _0806882C adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 bne _08068820 ldr r1, _08068830 mov r0, sp bl sprintf ldr r1, _08068834 mov r0, sp bl OpenFileAndGetFileDataPtr ldr r1, [r5] ldr r2, _0806882C adds r1, r2 adds r1, r4 str r0, [r1] _08068820: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08068828: .4byte gDungeonGlobalData _0806882C: .4byte 0x00017b44 _08068830: .4byte gUnknown_8106EA0 _08068834: .4byte gMonsterFileArchive thumb_func_end sub_80687EC thumb_func_start sub_8068838 sub_8068838: push {r4,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 24 cmp r1, 0 bne _08068864 movs r0, 0xCF lsls r0, 1 cmp r4, r0 beq _0806885E adds r0, 0x3 cmp r4, r0 beq _0806885E adds r0, 0x1 cmp r4, r0 beq _0806885E adds r0, 0x1 cmp r4, r0 bne _08068864 _0806885E: bl sub_80688B0 b _0806887A _08068864: adds r0, r4, 0 bl sub_80687EC ldr r1, _08068880 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _0806887A bl sub_8068884 _0806887A: pop {r4} pop {r0} bx r0 .align 2, 0 _08068880: .4byte 0xfffffe88 thumb_func_end sub_8068838 thumb_func_start sub_8068884 sub_8068884: push {lr} movs r0, 0xBC lsls r0, 1 bl sub_80687EC ldr r0, _080688A8 bl sub_80687EC movs r0, 0xBD lsls r0, 1 bl sub_80687EC ldr r0, _080688AC bl sub_80687EC pop {r0} bx r0 .align 2, 0 _080688A8: .4byte 0x00000179 _080688AC: .4byte 0x0000017b thumb_func_end sub_8068884 thumb_func_start sub_80688B0 sub_80688B0: push {lr} ldr r0, _080688C8 ldr r0, [r0] movs r1, 0xE0 lsls r1, 6 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bl sub_80687EC pop {r0} bx r0 .align 2, 0 _080688C8: .4byte gDungeonGlobalData thumb_func_end sub_80688B0 thumb_func_start sub_80688CC sub_80688CC: push {r4-r6,lr} movs r5, 0 ldr r6, _08068900 _080688D2: ldr r0, [r6] lsls r4, r5, 2 ldr r1, _08068904 adds r0, r1 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _080688F2 bl CloseFile ldr r0, [r6] ldr r1, _08068904 adds r0, r1 adds r0, r4 movs r1, 0 str r1, [r0] _080688F2: adds r5, 0x1 ldr r0, _08068908 cmp r5, r0 ble _080688D2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08068900: .4byte gDungeonGlobalData _08068904: .4byte 0x00017b44 _08068908: .4byte 0x000001a7 thumb_func_end sub_80688CC thumb_func_start sub_806890C sub_806890C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x64 movs r0, 0 mov r8, r0 mov r10, r0 ldr r6, _08068A60 add r5, sp, 0x8 _08068922: movs r0, 0x58 mov r1, r10 muls r1, r0 adds r0, r1, 0 ldr r2, [r6] adds r7, r2, r0 ldrh r1, [r7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068A1C lsrs r0, r1, 1 movs r3, 0x1 ands r0, r3 cmp r0, 0 beq _08068A1C movs r0, 0x64 mov r4, r8 muls r4, r0 ldr r0, _08068A64 adds r0, r4 mov r9, r0 adds r0, r2, r0 mov r1, r10 bl xxx_pokemonstruct_index_to_pokemon2_808DE30 ldr r0, _08068A68 ldr r0, [r0] ldr r1, _08068A6C adds r0, r1 ldrb r0, [r0] bl GetLevelCondition lsls r0, 24 cmp r0, 0 beq _08068A06 movs r0, 0x80 lsls r0, 1 str r0, [sp, 0x60] movs r2, 0x8 ldrsh r1, [r7, r2] add r0, sp, 0x60 str r0, [sp] movs r3, 0 str r3, [sp, 0x4] add r0, sp, 0x8 movs r2, 0 bl sub_808CFD0 ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x3] ldr r2, _08068A70 adds r0, r2 strb r1, [r0] ldr r1, [r6] adds r1, r4 ldrh r2, [r5, 0x14] movs r3, 0x8E lsls r3, 8 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, 0x16] adds r3, 0x8 adds r0, r1, r3 strh r2, [r0] ldrh r2, [r5, 0x16] adds r3, 0x2 adds r0, r1, r3 strh r2, [r0] ldrb r0, [r5, 0x18] ldr r2, _08068A74 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x19] adds r3, 0x3 adds r0, r3 strb r1, [r0] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x1A] adds r2, 0x2 adds r0, r2 strb r1, [r0] ldr r0, [r6] adds r0, r4 ldrb r1, [r5, 0x1B] adds r3, 0x2 adds r0, r3 strb r1, [r0] ldr r2, [r6] ldr r1, _08068A78 adds r0, r2, r1 adds r0, r4 ldr r1, [sp, 0x24] str r1, [r0] adds r2, r4 adds r3, 0x35 adds r1, r2, r3 ldr r0, [sp, 0x28] str r0, [r1] add r0, sp, 0x2C ldrb r0, [r0] ldr r1, _08068A7C adds r2, r1 strb r0, [r2] ldr r0, [r6] add r0, r9 adds r0, 0x1C add r1, sp, 0x34 bl sub_8093F50 _08068A06: ldr r0, [r6] adds r0, r4 ldr r2, _08068A80 adds r0, r2 mov r3, r8 strh r3, [r0] movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x4 beq _08068A2A _08068A1C: movs r2, 0x1 add r10, r2 movs r0, 0xCE lsls r0, 1 cmp r10, r0 bgt _08068A2A b _08068922 _08068A2A: mov r3, r8 cmp r3, 0x3 bgt _08068A50 ldr r4, _08068A60 ldr r3, _08068A64 movs r2, 0 movs r0, 0x64 mov r1, r8 muls r1, r0 _08068A3C: ldr r0, [r4] adds r0, r1 adds r0, r3 strh r2, [r0] adds r1, 0x64 movs r0, 0x1 add r8, r0 mov r0, r8 cmp r0, 0x3 ble _08068A3C _08068A50: add sp, 0x64 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068A60: .4byte gRecruitedPokemonRef _08068A64: .4byte 0x00008df8 _08068A68: .4byte gDungeonGlobalData _08068A6C: .4byte 0x00000644 _08068A70: .4byte 0x00008dfb _08068A74: .4byte 0x00008e0c _08068A78: .4byte 0x00008e10 _08068A7C: .4byte 0x00008e48 _08068A80: .4byte 0x00008e04 thumb_func_end sub_806890C thumb_func_start sub_8068A84 sub_8068A84: push {r4-r7,lr} adds r6, r0, 0 movs r4, 0 movs r5, 0 ldr r7, _08068AE0 _08068A8E: movs r0, 0x64 muls r0, r5 ldr r1, _08068AE4 adds r0, r1 ldr r1, [r7] adds r2, r1, r0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068AB2 movs r1, 0xE ldrsh r0, [r2, r1] bl GetPokemonSize lsls r0, 24 lsrs r0, 24 adds r4, r0 _08068AB2: adds r5, 0x1 cmp r5, 0x3 ble _08068A8E movs r1, 0x8 ldrsh r0, [r6, r1] bl GetPokemonSize lsls r0, 24 lsrs r0, 24 adds r4, r0 cmp r4, 0x6 ble _08068B04 ldr r0, _08068AE8 adds r1, r6, 0 movs r2, 0 bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068AF0 ldr r0, _08068AEC b _08068BB2 .align 2, 0 _08068AE0: .4byte gRecruitedPokemonRef _08068AE4: .4byte 0x00008df8 _08068AE8: .4byte gAvailablePokemonNames _08068AEC: .4byte gUnknown_80FE0F4 _08068AF0: cmp r0, 0x47 bne _08068AFC ldr r0, _08068AF8 b _08068BB2 .align 2, 0 _08068AF8: .4byte gUnknown_80FE0F8 _08068AFC: ldr r0, _08068B00 b _08068BB2 .align 2, 0 _08068B00: .4byte gUnknown_80FE0AC _08068B04: movs r5, 0 ldr r2, _08068B6C _08068B08: movs r0, 0x64 muls r0, r5 ldr r1, _08068B70 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08068B80 adds r0, r4, 0 adds r1, r6, 0 ldr r2, _08068B74 bl xxx_pokemonstruct_to_pokemon2_808DE50 ldrh r0, [r4] movs r1, 0x1 movs r2, 0 orrs r1, r0 strh r1, [r4] movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x19 bgt _08068B3E movs r0, 0x1A strh r0, [r4, 0x8] _08068B3E: ldrh r0, [r4] movs r1, 0x2 orrs r0, r1 strh r0, [r4] strh r5, [r4, 0xC] adds r0, r4, 0 adds r0, 0x40 strb r2, [r0, 0x2] strb r2, [r0, 0x1] strb r2, [r0] ldr r0, _08068B78 adds r1, r6, 0 movs r2, 0x6 bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A beq _08068BB0 cmp r0, 0x47 beq _08068BD0 ldr r0, _08068B7C b _08068BB2 .align 2, 0 _08068B6C: .4byte gRecruitedPokemonRef _08068B70: .4byte 0x00008df8 _08068B74: .4byte 0x000055aa _08068B78: .4byte gAvailablePokemonNames _08068B7C: .4byte gUnknown_80FE134 _08068B80: adds r5, 0x1 cmp r5, 0x3 ble _08068B08 ldr r0, _08068B9C adds r1, r6, 0 movs r2, 0x6 bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068BA4 ldr r0, _08068BA0 b _08068BB2 .align 2, 0 _08068B9C: .4byte gAvailablePokemonNames _08068BA0: .4byte gUnknown_80FE0F4 _08068BA4: cmp r0, 0x47 bne _08068BC4 ldr r0, _08068BAC b _08068BB2 .align 2, 0 _08068BAC: .4byte gUnknown_80FE0F8 _08068BB0: ldr r0, _08068BC0 _08068BB2: ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08068BD0 .align 2, 0 _08068BC0: .4byte gUnknown_80FE168 _08068BC4: ldr r0, _08068BD8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08068BD0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068BD8: .4byte gUnknown_80FE0AC thumb_func_end sub_8068A84 thumb_func_start sub_8068BDC sub_8068BDC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _08068CC4 add sp, r4 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x220] movs r1, 0 mov r0, sp adds r0, 0x39 _08068BF6: strb r1, [r0] subs r0, 0x1 cmp r0, sp bge _08068BF6 movs r6, 0 ldr r0, _08068CC8 mov r8, r0 movs r7, 0x1 _08068C06: movs r0, 0x64 muls r0, r6 ldr r1, _08068CCC adds r0, r1 mov r2, r8 ldr r1, [r2] adds r4, r1, r0 ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08068C50 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A564 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08068C50 adds r4, 0x40 ldrb r1, [r4] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08068C50 ldrb r0, [r4, 0x2] cmp r0, 0x69 bne _08068C50 adds r0, r4, 0 bl GetMoneyValue bl AddToTeamMoney strb r5, [r4, 0x2] strb r5, [r4, 0x1] strb r5, [r4] _08068C50: adds r6, 0x1 cmp r6, 0x3 ble _08068C06 movs r6, 0 movs r5, 0x1 _08068C5A: ldr r1, _08068CC8 movs r0, 0x64 muls r0, r6 ldr r2, _08068CCC adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r1, [r4] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068CFE movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A564 lsls r0, 24 cmp r0, 0 bne _08068CFE ldr r1, _08068CD0 adds r0, r1, 0 ldrh r2, [r4, 0xE] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _08068C96 movs r0, 0xBC lsls r0, 1 strh r0, [r4, 0xE] _08068C96: movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08068CE8 ldr r0, _08068CD4 ldr r0, [r0] ldr r1, _08068CD8 adds r0, r1 ldrb r0, [r0] bl GetLevelCondition lsls r0, 24 cmp r0, 0 beq _08068CDC movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl sub_808DFDC b _08068CFE .align 2, 0 _08068CC4: .4byte 0xfffffdd8 _08068CC8: .4byte gRecruitedPokemonRef _08068CCC: .4byte 0x00008df8 _08068CD0: .4byte 0xfffffe87 _08068CD4: .4byte gDungeonGlobalData _08068CD8: .4byte 0x00000644 _08068CDC: movs r3, 0xA ldrsh r0, [r4, r3] adds r1, r4, 0 bl xxx_pokemon2_to_pokemonstruct_index_808DF2C b _08068CFE _08068CE8: ldr r0, [sp, 0x220] cmp r0, 0 beq _08068CFE movs r1, 0xE ldrsh r0, [r4, r1] bl GetFriendArea lsls r0, 24 lsrs r0, 24 add r0, sp strb r5, [r0] _08068CFE: adds r6, 0x1 cmp r6, 0x3 ble _08068C5A movs r1, 0 _08068D06: lsls r0, r1, 24 lsrs r0, 24 mov r8, r0 mov r0, sp add r0, r8 ldrb r0, [r0] adds r1, 0x1 str r1, [sp, 0x224] cmp r0, 0 bne _08068D1C b _08068F08 _08068D1C: mov r0, r8 add r1, sp, 0x1F0 movs r2, 0x1 movs r3, 0x1 bl sub_8092404 mov r0, r8 add r1, sp, 0x214 movs r2, 0 movs r3, 0 bl sub_8092638 movs r7, 0 add r1, sp, 0x1F0 ldrh r0, [r1] ldr r2, _08068E10 cmp r0, r2 beq _08068D60 ldr r0, _08068E14 ldr r3, [r0] adds r5, r2, 0 add r2, sp, 0x3C movs r4, 0x58 _08068D4A: ldrh r0, [r1] muls r0, r4 adds r0, r3, r0 stm r2!, {r0} adds r1, 0x2 adds r7, 0x1 cmp r7, 0x14 bgt _08068D60 ldrh r0, [r1] cmp r0, r5 bne _08068D4A _08068D60: movs r6, 0 ldr r2, _08068E14 mov r10, r2 movs r3, 0 mov r9, r3 _08068D6A: movs r0, 0x64 muls r0, r6 ldr r1, _08068E18 adds r0, r1 mov r2, r10 ldr r1, [r2] adds r5, r1, r0 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068DD6 movs r3, 0xA ldrsh r0, [r5, r3] bl sub_806A5A4 lsls r0, 24 cmp r0, 0 beq _08068DD6 movs r1, 0xE ldrsh r0, [r5, r1] bl GetFriendArea lsls r0, 24 lsrs r0, 24 cmp r0, r8 bne _08068DD6 ldr r2, [sp, 0x220] cmp r2, 0 beq _08068DD6 add r4, sp, 0x3C lsls r0, r7, 2 adds r4, r0 add r0, sp, 0x90 movs r1, 0x58 muls r1, r6 adds r0, r1 str r0, [r4] adds r1, r5, 0 bl xxx_pokemon2_to_pokemonstruct_808DF44 ldr r2, [r4] ldrh r0, [r2] movs r3, 0x80 lsls r3, 7 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] ldr r0, [r4] mov r1, r9 strb r1, [r0, 0xC] ldr r0, [r4] strb r1, [r0, 0x10] adds r7, 0x1 _08068DD6: adds r6, 0x1 cmp r6, 0x3 ble _08068D6A add r0, sp, 0x214 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bgt _08068E1C cmp r7, 0 bgt _08068DEC b _08068F08 _08068DEC: add r5, sp, 0x3C movs r3, 0x80 lsls r3, 7 adds r6, r3, 0 adds r4, r7, 0 _08068DF6: ldr r1, [r5] ldrh r0, [r1] ands r0, r6 cmp r0, 0 beq _08068E06 adds r0, r1, 0 bl sub_808D1DC _08068E06: adds r5, 0x4 subs r4, 0x1 cmp r4, 0 bne _08068DF6 b _08068F08 .align 2, 0 _08068E10: .4byte 0x0000ffff _08068E14: .4byte gRecruitedPokemonRef _08068E18: .4byte 0x00008df8 _08068E1C: ldr r0, _08068E78 mov r1, r8 movs r2, 0 bl sub_8092578 ldr r0, _08068E7C ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage add r4, sp, 0x3C _08068E34: add r0, sp, 0x214 movs r2, 0 ldrsh r1, [r0, r2] subs r1, r7, r1 mov r0, r8 adds r2, r7, 0 adds r3, r4, 0 bl sub_8067A80 movs r6, 0 cmp r6, r7 bge _08068E8E movs r5, 0x80 lsls r5, 8 adds r3, r4, 0 _08068E52: ldr r2, [r3] ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068E86 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08068E86 ldrb r0, [r2, 0x4] subs r0, 0x44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08068E80 movs r0, 0x1 b _08068E82 .align 2, 0 _08068E78: .4byte gUnknown_202DE58 _08068E7C: .4byte gUnknown_80FE1A4 _08068E80: movs r0, 0 _08068E82: cmp r0, 0 bne _08068E8E _08068E86: adds r3, 0x4 adds r6, 0x1 cmp r6, r7 blt _08068E52 _08068E8E: cmp r6, r7 beq _08068EA2 ldr r0, _08068F24 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C cmp r0, 0x1 bne _08068E34 _08068EA2: cmp r7, 0 ble _08068ED4 movs r3, 0x80 lsls r3, 8 mov r9, r3 adds r3, r4, 0 movs r0, 0x1 mov r8, r0 movs r5, 0 adds r6, r7, 0 _08068EB6: ldr r2, [r3] ldrh r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 beq _08068ECC mov r0, r9 ands r0, r1 cmp r0, 0 beq _08068ECC strh r5, [r2] _08068ECC: adds r3, 0x4 subs r6, 0x1 cmp r6, 0 bne _08068EB6 _08068ED4: cmp r7, 0 ble _08068F08 movs r1, 0x80 lsls r1, 7 adds r5, r1, 0 adds r6, r7, 0 _08068EE0: ldr r2, [r4] ldrh r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068F00 adds r0, r1, 0 ands r0, r5 cmp r0, 0 beq _08068F00 adds r0, r2, 0 bl sub_808D1DC ldr r1, [r4] movs r0, 0 strh r0, [r1] _08068F00: adds r4, 0x4 subs r6, 0x1 cmp r6, 0 bne _08068EE0 _08068F08: ldr r1, [sp, 0x224] cmp r1, 0x39 bgt _08068F10 b _08068D06 _08068F10: movs r3, 0x8A 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 _08068F24: .4byte gUnknown_80FE20C thumb_func_end sub_8068BDC thumb_func_start sub_8068F28 sub_8068F28: push {r4-r7,lr} movs r6, 0 ldr r7, _08068F5C _08068F2E: movs r0, 0x64 muls r0, r6 ldr r1, _08068F60 adds r0, r1 ldr r1, [r7] adds r4, r1, r0 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068F74 movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A564 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08068F64 movs r0, 0 strh r0, [r4] b _08068F74 .align 2, 0 _08068F5C: .4byte gRecruitedPokemonRef _08068F60: .4byte 0x00008df8 _08068F64: movs r1, 0xA ldrsh r0, [r4, r1] bl sub_806A538 lsls r0, 24 cmp r0, 0 beq _08068F74 strh r5, [r4] _08068F74: adds r6, 0x1 cmp r6, 0x3 ble _08068F2E pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8068F28 thumb_func_start sub_8068F80 sub_8068F80: push {r4,r5,lr} bl GetLeaderEntity adds r5, r0, 0 ldr r0, _08068FD4 ldr r4, [r0] ldr r1, _08068FD8 adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, _08068FDC adds r0, r4, r2 strb r1, [r0] adds r2, 0x6 adds r0, r4, r2 strb r1, [r0] adds r0, r4, 0 adds r0, 0xC0 str r1, [r0] cmp r5, 0 beq _08068FCC adds r0, r5, 0 bl GetMapEntityForDungeonEntity ldrh r0, [r0] lsrs r0, 5 movs r1, 0x1 ands r0, r1 movs r2, 0xD3 lsls r2, 3 adds r1, r4, r2 strb r0, [r1] adds r2, 0x1 adds r1, r4, r2 strb r0, [r1] adds r0, r5, 0x4 bl sub_804AC20 _08068FCC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08068FD4: .4byte gDungeonGlobalData _08068FD8: .4byte 0x0000066c _08068FDC: .4byte 0x0000066d thumb_func_end sub_8068F80 thumb_func_start sub_8068FE0 sub_8068FE0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 mov r8, r0 str r2, [sp, 0x74] lsls r1, 16 asrs r1, 16 mov r9, r1 ldr r7, [r0, 0x70] bl GetMapEntityForDungeonEntity adds r4, r0, 0 ldr r0, [sp, 0x74] cmp r0, 0 bne _0806900E mov r0, sp bl sub_80457DC mov r1, sp str r1, [sp, 0x74] _0806900E: ldr r0, [r4, 0x10] cmp r0, r8 bne _08069018 movs r0, 0 str r0, [r4, 0x10] _08069018: mov r2, r8 movs r3, 0x4 ldrsh r0, [r2, r3] movs r3, 0x6 ldrsh r1, [r2, r3] bl sub_80402AC movs r5, 0 adds r6, r7, 0 adds r6, 0xC8 movs r0, 0xB0 adds r0, r7 mov r10, r0 mov r1, r8 adds r1, 0x22 str r1, [sp, 0x80] mov r2, r8 adds r2, 0x20 str r2, [sp, 0x7C] adds r3, r7, 0 adds r3, 0x40 str r3, [sp, 0x78] _08069044: ldr r0, _080690E4 ldr r0, [r0] lsls r1, r5, 2 ldr r2, _080690E8 adds r0, r2 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _08069072 adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08069072 ldr r0, [r4, 0x70] adds r1, r0, 0 adds r1, 0x80 ldr r0, [r1] cmp r0, r8 bne _08069072 movs r0, 0 str r0, [r1] _08069072: adds r5, 0x1 cmp r5, 0x13 ble _08069044 ldrb r0, [r6] cmp r0, 0x2 bne _0806908A ldr r0, _080690E4 ldr r0, [r0] ldr r3, _080690EC adds r0, r3 movs r1, 0 strb r1, [r0] _0806908A: mov r1, r10 ldrb r0, [r1] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080690A2 adds r0, r7, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _080690A2: mov r0, r8 bl sub_8078084 movs r0, 0 ldr r2, [sp, 0x80] strb r0, [r2] ldr r3, [sp, 0x7C] strb r0, [r3] ldr r1, _080690F0 str r0, [r1] ldr r1, [sp, 0x78] ldrb r0, [r1] cmp r0, 0x41 bne _080690FC ldr r3, _080690E4 ldr r2, [r3] ldr r1, _080690F4 adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0 bne _080690FC movs r0, 0x1 strb r0, [r2, 0x10] strh r1, [r7, 0xE] ldr r0, [r3] ldr r2, _080690F8 adds r0, r2 mov r1, r8 movs r2, 0 bl SetMessageArgument b _08069484 .align 2, 0 _080690E4: .4byte gDungeonGlobalData _080690E8: .4byte 0x000135cc _080690EC: .4byte 0x000037fc _080690F0: .4byte gLeaderPokemon _080690F4: .4byte 0x0000065c _080690F8: .4byte 0x000005f4 _080690FC: ldrb r0, [r7, 0x7] cmp r0, 0 bne _08069104 b _0806928E _08069104: movs r0, 0x3C movs r1, 0x49 bl sub_803E708 bl sub_80532B4 ldr r5, _08069198 ldr r2, [r5] ldrb r0, [r2, 0x6] cmp r0, 0 bne _080691C8 ldr r3, _0806919C adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0 bne _080691E0 movs r0, 0x87 lsls r0, 2 cmp r9, r0 beq _080691E0 adds r0, 0x6 cmp r9, r0 beq _080691E0 subs r0, 0x4 cmp r9, r0 beq _080691E0 ldr r1, _080691A0 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080691E0 ldr r6, _080691A4 adds r0, r2, r6 movs r1, 0 ldrsb r1, [r0, r1] cmp r1, 0 blt _080691E0 adds r3, 0xA adds r0, r2, r3 ldrb r0, [r0] cmp r0, 0x1 beq _080691E0 cmp r1, 0 ble _080691B4 ldr r0, _080691A8 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl sub_8052B8C adds r4, r0, 0 cmp r4, 0x1 bne _080691E0 ldr r0, _080691AC ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage ldr r0, [r5] strb r4, [r0, 0x4] ldr r0, [r5] strb r4, [r0, 0x6] ldr r0, [r5] ldr r1, _080691B0 adds r0, r1 strb r4, [r0] ldr r1, [r5] adds r1, r6 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] b _08069484 .align 2, 0 _08069198: .4byte gDungeonGlobalData _0806919C: .4byte 0x0000066e _080691A0: .4byte 0x00003a0d _080691A4: .4byte 0x0000067b _080691A8: .4byte gUnknown_80FE268 _080691AC: .4byte gUnknown_80FE28C _080691B0: .4byte 0x00000654 _080691B4: ldr r0, _080691C4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _080691E0 .align 2, 0 _080691C4: .4byte gUnknown_80FE2D0 _080691C8: movs r1, 0x1 strb r1, [r2, 0x4] ldr r0, [r5] strb r1, [r0, 0x6] ldr r0, [r5] ldr r2, _080691DC adds r0, r2 strb r1, [r0] b _08069484 .align 2, 0 _080691DC: .4byte 0x00000654 _080691E0: mov r0, r9 ldr r1, [sp, 0x74] mov r2, r8 bl sub_8083AB0 ldr r0, _080691F8 cmp r9, r0 bne _0806928E movs r6, 0 movs r5, 0 b _080691FE .align 2, 0 _080691F8: .4byte 0x0000021f _080691FC: adds r5, 0x1 _080691FE: cmp r5, 0x3 bgt _08069228 ldr r0, _080692C4 ldr r0, [r0] lsls r1, r5, 2 ldr r3, _080692C8 adds r0, r3 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080691FC ldr r6, [r4, 0x70] adds r0, r6, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x41 bne _080691FC _08069228: cmp r6, 0 beq _0806928E ldr r5, _080692CC ldrb r0, [r6, 0xA] movs r1, 0x64 muls r1, r0 ldr r2, _080692D0 adds r1, r2 ldr r2, [r5] adds r4, r2, r1 adds r1, r6, 0 bl sub_806C264 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _0806928A ldr r0, _080692C4 ldr r0, [r0] ldr r1, _080692D4 adds r0, r1 ldrb r0, [r0] bl GetLevelCondition lsls r0, 24 cmp r0, 0 bne _0806926E movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl xxx_pokemon2_to_pokemonstruct_index_808DF2C _0806926E: bl sub_8044210 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0806928A movs r3, 0xA ldrsh r1, [r4, r3] movs r0, 0x58 muls r0, r1 ldr r1, [r5] adds r0, r1 adds r0, 0x28 strb r2, [r0] _0806928A: movs r0, 0 strh r0, [r4] _0806928E: ldrb r0, [r7, 0x6] cmp r0, 0 beq _080692DC movs r5, 0 movs r1, 0xB4 lsls r1, 1 adds r0, r7, r1 movs r2, 0x98 adds r2, r7 mov r10, r2 ldrb r3, [r0] cmp r5, r3 bge _0806930A ldr r4, _080692D8 subs r1, 0x1 adds r2, r7, r1 movs r3, 0 adds r1, r0, 0 _080692B2: ldrb r0, [r2] adds r0, r5 adds r0, r4 strb r3, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _080692B2 b _0806930A .align 2, 0 _080692C4: .4byte gDungeonGlobalData _080692C8: .4byte 0x0001357c _080692CC: .4byte gRecruitedPokemonRef _080692D0: .4byte 0x00008df8 _080692D4: .4byte 0x00000644 _080692D8: .4byte gUnknown_202EE76 _080692DC: movs r5, 0 movs r1, 0xB4 lsls r1, 1 adds r0, r7, r1 movs r2, 0x98 adds r2, r7 mov r10, r2 ldrb r3, [r0] cmp r5, r3 bge _0806930A ldr r4, _0806932C subs r1, 0x1 adds r2, r7, r1 movs r3, 0 adds r1, r0, 0 _080692FA: ldrb r0, [r2] adds r0, r5 adds r0, r4 strb r3, [r0] adds r5, 0x1 ldrb r0, [r1] cmp r5, r0 blt _080692FA _0806930A: ldr r1, [sp, 0x78] ldrb r0, [r1] cmp r0, 0x4A bne _08069338 ldr r2, _08069330 ldr r1, [r2] movs r0, 0x2 strb r0, [r1, 0x10] ldr r0, [r2] ldr r2, _08069334 adds r0, r2 mov r1, r8 movs r2, 0 bl SetMessageArgument b _08069352 .align 2, 0 _0806932C: .4byte gUnknown_202EE70 _08069330: .4byte gDungeonGlobalData _08069334: .4byte 0x000005f4 _08069338: cmp r0, 0x47 bne _08069352 ldr r2, _08069494 ldr r1, [r2] movs r0, 0x3 strb r0, [r1, 0x10] ldr r0, [r2] ldr r3, _08069498 adds r0, r3 mov r1, r8 movs r2, 0 bl SetMessageArgument _08069352: bl GetLeaderEntity cmp r0, 0 beq _080693C6 movs r0, 0x87 lsls r0, 2 cmp r9, r0 beq _080693C6 ldrb r0, [r7, 0x7] cmp r0, 0 bne _080693C6 ldr r4, _08069494 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0 bne _080693C6 adds r0, r7, 0 adds r0, 0xA4 ldrb r1, [r0] movs r2, 0 movs r0, 0xFA lsls r0, 1 cmp r9, r0 bne _08069384 movs r2, 0x1 _08069384: mov r0, r8 bl sub_8084E00 ldr r1, _0806949C adds r0, r1, 0 ldrh r2, [r7, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _080693C6 bl IsBossBattle lsls r0, 24 cmp r0, 0 bne _080693C6 ldrb r0, [r7, 0x6] cmp r0, 0 beq _080693CC ldr r0, [r4] ldr r3, _080694A0 adds r0, r3 movs r1, 0x1 strb r1, [r0] ldr r0, _080694A4 ldr r1, [r0] mov r0, r8 bl sub_805239C bl sub_803E178 bl sub_8049ED4 _080693C6: ldrb r0, [r7, 0x6] cmp r0, 0 bne _08069466 _080693CC: ldr r6, _080694A8 ldrb r0, [r7, 0xA] movs r1, 0x64 muls r1, r0 ldr r2, _080694AC adds r1, r2 ldr r2, [r6] adds r4, r2, r1 adds r1, r7, 0 bl sub_806C264 movs r3, 0xA ldrsh r0, [r4, r3] bl sub_806A58C lsls r0, 24 cmp r0, 0 beq _08069462 ldr r5, _08069494 ldr r0, [r5] ldr r1, _080694B0 adds r0, r1 ldrb r0, [r0] bl GetLevelCondition lsls r0, 24 cmp r0, 0 bne _0806940E movs r2, 0xA ldrsh r0, [r4, r2] adds r1, r4, 0 bl xxx_pokemon2_to_pokemonstruct_index_808DF2C _0806940E: bl sub_8044210 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0806942A movs r3, 0xA ldrsh r1, [r4, r3] movs r0, 0x58 muls r0, r1 ldr r1, [r6] adds r0, r1 adds r0, 0x28 strb r2, [r0] _0806942A: ldrb r1, [r7, 0x7] negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 ldr r0, [r5] ldr r2, _080694B4 adds r0, r2 ldrb r0, [r0] cmp r0, 0 bne _08069448 ldr r3, [sp, 0x78] ldrb r0, [r3] cmp r0, 0x41 bne _08069448 movs r1, 0x1 _08069448: cmp r1, 0 bne _08069462 movs r0, 0xA ldrsh r1, [r4, r0] movs r0, 0x58 muls r1, r0 ldr r0, _080694A8 ldr r0, [r0] adds r1, r0 ldrh r2, [r1] ldr r0, _080694B8 ands r0, r2 strh r0, [r1] _08069462: movs r0, 0 strh r0, [r4] _08069466: mov r1, r10 ldr r0, [r1] bl DeletePokemonDungeonSprite ldr r0, _080694BC movs r2, 0 str r2, [r0] ldr r0, _08069494 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xC] mov r3, r8 str r2, [r3] bl sub_8045ACC _08069484: add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069494: .4byte gDungeonGlobalData _08069498: .4byte 0x000005f4 _0806949C: .4byte 0xfffffe5f _080694A0: .4byte 0x000037fe _080694A4: .4byte gUnknown_80FA580 _080694A8: .4byte gRecruitedPokemonRef _080694AC: .4byte 0x00008df8 _080694B0: .4byte 0x00000644 _080694B4: .4byte 0x0000065c _080694B8: .4byte 0x0000fffd _080694BC: .4byte gLeaderPokemon thumb_func_end sub_8068FE0 thumb_func_start sub_80694C0 sub_80694C0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 adds r0, r7, 0 mov r1, r8 bl GetMapEntity mov r10, r0 ldr r5, [r4, 0x70] adds r6, r5, 0 adds r6, 0xB0 ldrb r0, [r6] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080694FC adds r0, r5, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _080694FC: ldrb r0, [r6] cmp r0, 0x7 beq _0806950A cmp r0, 0x5 beq _0806950A cmp r0, 0x2 bne _08069512 _0806950A: adds r0, r4, 0 adds r1, r4, 0 bl SendImmobilizeEndMessage _08069512: movs r0, 0x4 ldrsh r2, [r4, r0] cmp r7, r2 bne _08069522 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r8, r0 beq _080695DE _08069522: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 blt _08069552 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 blt _08069552 adds r1, r0, 0 adds r0, r2, 0 bl GetMapEntity adds r1, r0, 0 ldr r0, [r1, 0x10] cmp r0, r4 bne _08069546 movs r0, 0 str r0, [r1, 0x10] _08069546: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl sub_80402AC _08069552: ldrh r0, [r4, 0x4] strh r0, [r4, 0x8] ldrh r0, [r4, 0x6] strh r0, [r4, 0xA] strh r7, [r4, 0x4] mov r0, r8 strh r0, [r4, 0x6] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0806956E ldr r0, _0806959C strh r7, [r0] mov r1, r8 strh r1, [r0, 0x2] _0806956E: mov r2, r10 str r4, [r2, 0x10] ldrb r0, [r5, 0x7] cmp r0, 0 beq _08069588 ldr r0, _080695A0 strh r7, [r0] mov r1, r8 strh r1, [r0, 0x2] ldr r0, _080695A4 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x1] _08069588: adds r0, r7, 0 mov r1, r8 bl sub_80402AC mov r2, r9 cmp r2, 0 beq _080695A8 cmp r2, 0x1 beq _080695C4 b _080695CE .align 2, 0 _0806959C: .4byte gUnknown_203B410 _080695A0: .4byte gUnknown_202EE0C _080695A4: .4byte gDungeonGlobalData _080695A8: ldr r0, [r5, 0x70] str r0, [r5, 0x74] ldr r0, [r5, 0x6C] str r0, [r5, 0x70] ldr r0, [r5, 0x68] str r0, [r5, 0x6C] adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _080695CE ldr r0, [r4, 0x8] str r0, [r5, 0x68] b _080695CE _080695C4: ldr r0, [r4, 0x4] str r0, [r5, 0x68] str r0, [r5, 0x6C] str r0, [r5, 0x70] str r0, [r5, 0x74] _080695CE: mov r1, r10 ldrb r0, [r1, 0x9] adds r1, r4, 0 adds r1, 0x25 strb r0, [r1] adds r0, r4, 0 bl sub_806CF98 _080695DE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80694C0 thumb_func_start sub_80695EC sub_80695EC: push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r1, [r4, 0x70] adds r5, r1, 0 adds r0, r1, 0 adds r0, 0xB0 ldrb r0, [r0] subs r0, 0x3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08069612 adds r0, r1, 0 adds r0, 0x9C ldr r0, [r0] bl sub_8076CB4 _08069612: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r6, r0 bne _08069622 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r7, r0 beq _08069658 _08069622: ldrh r0, [r4, 0x4] strh r0, [r4, 0x8] ldrh r0, [r4, 0x6] strh r0, [r4, 0xA] strh r6, [r4, 0x4] strh r7, [r4, 0x6] ldr r0, [r5, 0x70] str r0, [r5, 0x74] ldr r0, [r5, 0x6C] str r0, [r5, 0x70] ldr r0, [r5, 0x68] str r0, [r5, 0x6C] adds r0, r5, 0 adds r0, 0xE4 ldrb r0, [r0] cmp r0, 0x1 beq _08069648 ldr r0, [r4, 0x8] str r0, [r5, 0x68] _08069648: adds r0, r6, 0 adds r1, r7, 0 bl GetMapTileAtPosition ldrb r1, [r0, 0x9] adds r0, r4, 0 adds r0, 0x25 strb r1, [r0] _08069658: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80695EC thumb_func_start sub_8069660 sub_8069660: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 adds r5, 0x46 ldrb r1, [r5] adds r0, r4, 0 bl sub_8070F80 lsls r0, 24 cmp r0, 0 bne _0806967C movs r0, 0 b _0806969E _0806967C: movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _080696A4 ldrb r2, [r5] lsls r2, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl GetMapTileAtPosition ldr r0, [r0, 0x10] _0806969E: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080696A4: .4byte gAdjacentTileOffsets thumb_func_end sub_8069660 thumb_func_start sub_80696A8 sub_80696A8: push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x70] adds r5, r0, 0 adds r5, 0x46 ldrb r1, [r5] adds r0, r4, 0 bl CanAttackInFront lsls r0, 24 cmp r0, 0 beq _080696F4 movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, _080696F0 ldrb r2, [r5] lsls r2, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r4, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl GetMapTileAtPosition ldr r1, [r0, 0x10] cmp r1, 0 beq _080696F4 ldr r0, [r1] cmp r0, 0x1 bne _080696F4 adds r0, r1, 0 b _080696F6 .align 2, 0 _080696F0: .4byte gAdjacentTileOffsets _080696F4: movs r0, 0 _080696F6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80696A8 thumb_func_start sub_80696FC sub_80696FC: push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldr r3, [r4, 0x70] ldr r5, _08069764 adds r3, 0x46 ldrb r0, [r3] lsls r0, 2 adds r0, r5 ldrh r0, [r0] ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08069768 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrb r0, [r3] lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 ldr r1, _0806976C ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl GetMapTileAtPosition adds r5, r0, 0 adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069770 ldr r1, [r5, 0x10] cmp r1, 0 beq _08069770 ldr r0, [r1] cmp r0, 0x1 bne _08069770 adds r0, r1, 0 b _08069772 .align 2, 0 _08069764: .4byte gAdjacentTileOffsets _08069768: .4byte 0xffff0000 _0806976C: .4byte 0x0000ffff _08069770: movs r0, 0 _08069772: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80696FC thumb_func_start sub_806977C sub_806977C: push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, [r4, 0x70] ldr r7, _0806982C adds r5, r0, 0 adds r5, 0x46 ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldrh r0, [r0] ldrh r1, [r4, 0x4] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08069830 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] ldrb r0, [r5] lsls r0, 2 adds r0, r7 ldrh r0, [r0, 0x2] ldrh r1, [r4, 0x6] adds r0, r1 lsls r0, 16 ldr r1, _08069834 ands r1, r2 orrs r1, r0 str r1, [sp] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl GetMapTileAtPosition mov r6, sp adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069838 ldrb r0, [r5] lsls r0, 2 adds r0, r7 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 1 ldrh r2, [r4, 0x4] adds r0, r2 mov r1, sp strh r0, [r1] ldrb r0, [r5] lsls r0, 2 adds r0, r7 movs r1, 0x2 ldrsh r0, [r0, r1] lsls r0, 1 ldrh r2, [r4, 0x6] adds r0, r2 strh r0, [r6, 0x2] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl GetMapTileAtPosition adds r5, r0, 0 adds r0, r4, 0 mov r1, sp bl sub_80705F0 lsls r0, 24 cmp r0, 0 bne _08069838 ldr r1, [r5, 0x10] cmp r1, 0 beq _08069838 ldr r0, [r1] cmp r0, 0x1 bne _08069838 adds r0, r1, 0 b _0806983A .align 2, 0 _0806982C: .4byte gAdjacentTileOffsets _08069830: .4byte 0xffff0000 _08069834: .4byte 0x0000ffff _08069838: movs r0, 0 _0806983A: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806977C thumb_func_start sub_8069844 sub_8069844: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r1 ldr r5, [r1, 0x70] adds r0, r6, 0x2 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument_2 ldrh r0, [r5, 0x2] strh r0, [r6] movs r1, 0xE ldrsh r0, [r5, r1] str r0, [r6, 0x24] movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r6, 0x28] ldrb r0, [r5, 0x9] str r0, [r6, 0x2C] ldr r0, [r5, 0x18] str r0, [r6, 0x30] movs r2, 0 _08069874: adds r1, r6, 0 adds r1, 0x34 adds r1, r2 adds r0, r5, 0 adds r0, 0x14 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x36 adds r1, r2 adds r0, r5, 0 adds r0, 0x16 adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x16 adds r1, r2 adds r0, r5, 0 adds r0, 0x5C adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r1, r6, 0 adds r1, 0x18 adds r1, r2 adds r0, r5, 0 adds r0, 0x5E adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x1 ble _08069874 ldrb r2, [r5, 0x7] adds r1, r6, 0 adds r1, 0x38 movs r0, 0 strb r2, [r1] adds r2, r6, 0 adds r2, 0x39 strb r0, [r2] adds r3, r6, 0 adds r3, 0x3A strb r0, [r3] adds r4, r6, 0 adds r4, 0x3B strb r0, [r4] movs r7, 0x3C adds r7, r6 mov r12, r7 strb r0, [r7] adds r0, r5, 0 adds r0, 0x60 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806995C movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0806995C adds r1, r5, 0 adds r1, 0x62 ldrb r0, [r1] cmp r0, 0x13 bne _08069908 ldr r0, _080699A4 ldrb r0, [r0] ldrb r7, [r2] adds r0, r7 strb r0, [r2] _08069908: ldrb r0, [r1] cmp r0, 0x2B bne _08069918 ldr r0, _080699A8 ldrb r0, [r0] ldrb r7, [r2] adds r0, r7 strb r0, [r2] _08069918: ldrb r0, [r1] cmp r0, 0x21 bne _08069928 ldr r0, _080699AC ldrb r0, [r0] ldrb r2, [r3] adds r0, r2 strb r0, [r3] _08069928: ldrb r0, [r1] cmp r0, 0x2B bne _08069938 ldr r0, _080699A8 ldrb r0, [r0] ldrb r7, [r3] adds r0, r7 strb r0, [r3] _08069938: ldrb r0, [r1] cmp r0, 0x1E bne _08069948 ldr r0, _080699B0 ldrb r0, [r0] ldrb r2, [r4] adds r0, r2 strb r0, [r4] _08069948: ldrb r0, [r1] cmp r0, 0x22 bne _0806995C ldr r0, _080699B4 ldrb r0, [r0] mov r7, r12 ldrb r7, [r7] adds r0, r7 mov r1, r12 strb r0, [r1] _0806995C: adds r0, r5, 0 adds r0, 0x94 ldrb r1, [r0] adds r0, r6, 0 adds r0, 0x54 strb r1, [r0] ldr r0, [r5, 0x60] str r0, [r6, 0x20] ldrh r0, [r5, 0xC] movs r1, 0 strh r0, [r6, 0x3E] ldr r0, [r5, 0x40] str r0, [r6, 0x1C] adds r0, r6, 0 adds r0, 0x44 strb r1, [r0] adds r0, 0x4 strb r1, [r0] adds r0, r5, 0 adds r0, 0x8C ldr r0, [r0] str r0, [r6, 0x50] ldr r0, _080699B8 ldr r0, [r0] ldr r2, _080699BC adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080699C0 adds r0, r5, 0 bl sub_806A4DC adds r1, r6, 0 adds r1, 0x4C b _080699C6 .align 2, 0 _080699A4: .4byte gUnknown_810AC60 _080699A8: .4byte gUnknown_810AC68 _080699AC: .4byte gUnknown_810AC62 _080699B0: .4byte gUnknown_810AC64 _080699B4: .4byte gUnknown_810AC66 _080699B8: .4byte gDungeonGlobalData _080699BC: .4byte 0x0000065a _080699C0: adds r1, r6, 0 adds r1, 0x4C movs r0, 0x3 _080699C6: strb r0, [r1] movs r4, 0 movs r7, 0x10 ldrsh r0, [r5, r7] cmp r0, 0 bge _080699D4 adds r0, 0x3 _080699D4: movs r2, 0xE ldrsh r1, [r5, r2] asrs r0, 2 cmp r1, r0 bgt _080699E8 adds r1, r6, 0 adds r1, 0x58 movs r0, 0x6 strb r0, [r1] movs r4, 0x1 _080699E8: ldr r0, _08069A24 ldr r0, [r0] ldr r7, _08069A28 adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _08069A02 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0xB strb r1, [r0] adds r4, 0x1 _08069A02: movs r1, 0x9E lsls r1, 1 adds r0, r5, r1 ldr r0, [r0] bl RoundUpFixedPoint cmp r0, 0 bne _08069A38 ldrb r0, [r5, 0x7] cmp r0, 0 beq _08069A2C adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x13 b _08069A34 .align 2, 0 _08069A24: .4byte gDungeonGlobalData _08069A28: .4byte 0x00000676 _08069A2C: adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x3B _08069A34: strb r1, [r0] adds r4, 0x1 _08069A38: mov r2, r8 ldr r0, [r2, 0x70] movs r7, 0x82 lsls r7, 1 adds r2, r0, r7 ldr r0, [r2] cmp r0, 0x1 ble _08069A54 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x1B strb r1, [r0] adds r4, 0x1 _08069A54: ldr r0, [r2] cmp r0, 0 bgt _08069A66 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x28 strb r1, [r0] adds r4, 0x1 _08069A66: ldr r0, [r5, 0x2C] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x30] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x34] cmp r0, 0xFF ble _08069AAE ldr r0, [r5, 0x38] cmp r0, 0xFF ble _08069AAE movs r1, 0x1C ldrsh r0, [r5, r1] cmp r0, 0x9 ble _08069AAE movs r2, 0x1E ldrsh r0, [r5, r2] cmp r0, 0x9 ble _08069AAE movs r7, 0x20 ldrsh r0, [r5, r7] cmp r0, 0x9 ble _08069AAE movs r1, 0x22 ldrsh r0, [r5, r1] cmp r0, 0x9 ble _08069AAE movs r2, 0x24 ldrsh r0, [r5, r2] cmp r0, 0x9 ble _08069AAE movs r7, 0x26 ldrsh r0, [r5, r7] cmp r0, 0x9 bgt _08069ABA _08069AAE: adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x37 strb r1, [r0] adds r4, 0x1 _08069ABA: adds r0, r5, 0 adds r0, 0xA8 ldrb r1, [r0] cmp r1, 0 beq _08069AD2 cmp r4, 0xB bgt _08069AD2 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 strb r1, [r0] adds r4, 0x1 _08069AD2: adds r0, r5, 0 adds r0, 0xAC ldrb r1, [r0] cmp r1, 0 beq _08069AEC cmp r4, 0xB bgt _08069AEC adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x6 strb r1, [r0] adds r4, 0x1 _08069AEC: adds r0, r5, 0 adds r0, 0xB0 ldrb r1, [r0] cmp r1, 0 beq _08069B06 cmp r4, 0xB bgt _08069B06 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0xB strb r1, [r0] adds r4, 0x1 _08069B06: adds r0, r5, 0 adds r0, 0xBC ldrb r1, [r0] cmp r1, 0 beq _08069B20 cmp r4, 0xB bgt _08069B20 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x13 strb r1, [r0] adds r4, 0x1 _08069B20: adds r0, r5, 0 adds r0, 0xC0 ldrb r1, [r0] cmp r1, 0 beq _08069B3A cmp r4, 0xB bgt _08069B3A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x1B strb r1, [r0] adds r4, 0x1 _08069B3A: adds r0, r5, 0 adds r0, 0xC4 ldrb r1, [r0] cmp r1, 0 beq _08069B54 cmp r4, 0xB bgt _08069B54 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x28 strb r1, [r0] adds r4, 0x1 _08069B54: adds r0, r5, 0 adds r0, 0xC8 ldrb r1, [r0] cmp r1, 0 beq _08069B6E cmp r4, 0xB bgt _08069B6E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x37 strb r1, [r0] adds r4, 0x1 _08069B6E: adds r0, r5, 0 adds r0, 0xD0 ldrb r1, [r0] cmp r1, 0 beq _08069B88 cmp r4, 0xB bgt _08069B88 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x3B strb r1, [r0] adds r4, 0x1 _08069B88: adds r0, r5, 0 adds r0, 0xDC ldrb r1, [r0] cmp r1, 0 beq _08069BA2 cmp r4, 0xB bgt _08069BA2 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x3E strb r1, [r0] adds r4, 0x1 _08069BA2: adds r0, r5, 0 adds r0, 0xE0 ldrb r1, [r0] cmp r1, 0 beq _08069BBC cmp r4, 0xB bgt _08069BBC adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x43 strb r1, [r0] adds r4, 0x1 _08069BBC: adds r0, r5, 0 adds r0, 0xE4 ldrb r1, [r0] cmp r1, 0 beq _08069BD6 cmp r4, 0xB bgt _08069BD6 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x46 strb r1, [r0] adds r4, 0x1 _08069BD6: adds r0, r5, 0 adds r0, 0xE8 ldrb r1, [r0] cmp r1, 0 beq _08069BF0 cmp r4, 0xB bgt _08069BF0 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x4A strb r1, [r0] adds r4, 0x1 _08069BF0: adds r0, r5, 0 adds r0, 0xEC ldrb r1, [r0] cmp r1, 0 beq _08069C0A cmp r4, 0xB bgt _08069C0A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 adds r1, 0x4E strb r1, [r0] adds r4, 0x1 _08069C0A: movs r1, 0x89 lsls r1, 1 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 beq _08069C26 cmp r4, 0xB bgt _08069C26 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x50 strb r1, [r0] adds r4, 0x1 _08069C26: adds r0, r5, 0 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0 beq _08069C40 cmp r4, 0xB bgt _08069C40 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x51 strb r1, [r0] adds r4, 0x1 _08069C40: adds r0, r5, 0 adds r0, 0xF1 ldrb r0, [r0] cmp r0, 0 beq _08069C5A cmp r4, 0xB bgt _08069C5A adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x52 strb r1, [r0] adds r4, 0x1 _08069C5A: adds r0, r5, 0 adds r0, 0xF4 ldrb r0, [r0] cmp r0, 0 beq _08069C74 cmp r4, 0xB bgt _08069C74 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x53 strb r1, [r0] adds r4, 0x1 _08069C74: adds r0, r5, 0 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _08069C8E cmp r4, 0xB bgt _08069C8E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x54 strb r1, [r0] adds r4, 0x1 _08069C8E: mov r0, r8 bl ShouldAvoidEnemies lsls r0, 24 cmp r0, 0 beq _08069CAA cmp r4, 0xB bgt _08069CAA adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x55 strb r1, [r0] adds r4, 0x1 _08069CAA: adds r0, r5, 0 adds r0, 0xFD ldrb r0, [r0] cmp r0, 0 beq _08069CC4 cmp r4, 0xB bgt _08069CC4 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x56 strb r1, [r0] adds r4, 0x1 _08069CC4: mov r0, r8 movs r1, 0 bl sub_8070828 cmp r0, 0x1 ble _08069CE0 cmp r4, 0xB bgt _08069CE0 adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x57 strb r1, [r0] adds r4, 0x1 _08069CE0: adds r0, r5, 0 adds r0, 0xF2 ldrb r0, [r0] cmp r0, 0 beq _08069CFA cmp r4, 0xB bgt _08069D0E adds r0, r6, 0 adds r0, 0x58 adds r0, r4 movs r1, 0x58 strb r1, [r0] adds r4, 0x1 _08069CFA: cmp r4, 0xB bgt _08069D0E adds r1, r6, 0 adds r1, 0x58 movs r2, 0 _08069D04: adds r0, r1, r4 strb r2, [r0] adds r4, 0x1 cmp r4, 0xB ble _08069D04 _08069D0E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8069844 thumb_func_start sub_8069D18 sub_8069D18: push {r4,r5,lr} ldr r3, [r1, 0x70] ldr r4, _08069D48 adds r3, 0x46 ldrb r2, [r3] lsls r2, 2 adds r2, r4 ldrh r2, [r2] ldrh r5, [r1, 0x4] adds r2, r5 strh r2, [r0] ldrb r2, [r3] lsls r2, 2 adds r2, r4 ldrh r2, [r2, 0x2] ldrh r1, [r1, 0x6] adds r2, r1 strh r2, [r0, 0x2] ldrb r1, [r3] movs r0, 0x1 ands r0, r1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08069D48: .4byte gAdjacentTileOffsets thumb_func_end sub_8069D18 thumb_func_start sub_8069D4C sub_8069D4C: push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 ldr r4, [r1, 0x70] ldrh r0, [r4, 0x2] strh r0, [r5] ldr r0, [r1, 0x4] str r0, [r5, 0x4] adds r0, r4, 0 adds r0, 0xF7 ldrb r0, [r0] cmp r0, 0 beq _08069D6A ldrh r0, [r4, 0x12] b _08069D6C _08069D6A: ldrh r0, [r4, 0x10] _08069D6C: strh r0, [r5, 0x8] ldrb r0, [r4, 0x9] strh r0, [r5, 0xE] movs r0, 0x2 ldrsh r1, [r4, r0] ldrb r2, [r4, 0x9] mov r0, sp bl GetPokemonLevelData ldr r0, [sp] str r0, [r5, 0x10] ldrb r0, [r4, 0x14] strb r0, [r5, 0xA] ldrb r0, [r4, 0x15] strb r0, [r5, 0xB] ldrb r0, [r4, 0x16] strb r0, [r5, 0xC] ldrb r0, [r4, 0x17] strb r0, [r5, 0xD] ldr r0, [r4, 0x60] str r0, [r5, 0x1C] adds r1, r5, 0 adds r1, 0x20 movs r2, 0x8C lsls r2, 1 adds r0, r4, r2 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} movs r3, 0x9E lsls r3, 1 adds r0, r4, r3 ldr r0, [r0] str r0, [r5, 0x14] movs r6, 0xA0 lsls r6, 1 adds r0, r4, r6 ldr r0, [r0] str r0, [r5, 0x18] ldr r0, [r4, 0x3C] str r0, [r5, 0x44] add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8069D4C .align 2, 0