#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_80523A8 sub_80523A8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 adds r3, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r0, _080523D0 ldr r1, [r0] adds r2, r0, 0 cmp r1, r3 beq _080523D8 movs r7, 0x1 ldr r1, _080523D4 b _080523DE .align 2, 0 _080523D0: .4byte gUnknown_202F1E8 _080523D4: .4byte gUnknown_203B434 _080523D8: ldr r0, _080523F0 ldrb r7, [r0] adds r1, r0, 0 _080523DE: movs r0, 0x1 mov r8, r0 str r3, [r2] movs r0, 0 strb r0, [r1] movs r1, 0 mov r9, r1 b _080523FA .align 2, 0 _080523F0: .4byte gUnknown_203B434 _080523F4: movs r0, 0 bl sub_803E46C _080523FA: ldr r6, _0805249C ldr r2, [r6] ldr r3, _080524A0 adds r0, r2, r3 movs r3, 0 ldrsh r1, [r0, r3] adds r1, 0x1 cmp r1, 0xA bne _0805240E movs r1, 0 _0805240E: ldr r3, _080524A4 adds r0, r2, r3 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 beq _080523F4 ldrb r0, [r4] cmp r0, 0 beq _080524B0 ldr r5, _080524A0 adds r0, r2, r5 movs r3, 0 ldrsh r1, [r0, r3] ldr r3, _080524A8 adds r0, r2, r3 adds r0, r1 strb r7, [r0] adds r0, r4, 0 mov r1, sp mov r2, sp adds r2, 0x3E movs r3, 0x80 bl xxx_format_string adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xD bne _08052448 adds r4, 0x1 _08052448: ldrb r0, [r4] cmp r0, 0xA bne _08052450 adds r4, 0x1 _08052450: mov r0, sp adds r1, r7, 0 mov r2, r8 bl sub_8053210 movs r7, 0 movs r0, 0 mov r8, r0 mov r1, r10 cmp r1, 0 beq _080523FA movs r2, 0x1 mov r9, r2 ldr r1, [r6] adds r0, r1, r5 movs r3, 0 ldrsh r0, [r0, r3] lsls r0, 6 adds r0, r1 ldr r1, _080524AC adds r0, r1 mov r1, sp movs r2, 0x40 bl strncpy ldr r0, [r6] adds r1, r0, r5 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _080523FA mov r2, r8 strh r2, [r1] b _080523FA .align 2, 0 _0805249C: .4byte gDungeonGlobalData _080524A0: .4byte 0x0001c060 _080524A4: .4byte 0x0001c062 _080524A8: .4byte 0x0001c054 _080524AC: .4byte 0x0001bdd4 _080524B0: mov r3, r9 cmp r3, 0 beq _080524D4 ldr r0, _080524E4 ldr r2, [r0] ldr r3, _080524E8 adds r1, r2, r3 movs r0, 0xF0 strh r0, [r1] ldr r0, _080524EC adds r2, r0 ldr r0, [r2] cmp r0, 0 bne _080524D0 movs r0, 0x1 str r0, [r2] _080524D0: bl sub_805E804 _080524D4: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080524E4: .4byte gDungeonGlobalData _080524E8: .4byte 0x0001c064 _080524EC: .4byte 0x0001c06c thumb_func_end sub_80523A8 thumb_func_start xxx_draw_string_80524F0 xxx_draw_string_80524F0: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x3C ldr r0, _0805251C ldr r0, [r0] ldr r1, _08052520 adds r7, r0, r1 ldr r2, _08052524 adds r5, r0, r2 ldr r1, [r5] cmp r1, 0x1 beq _08052528 cmp r1, 0x1 bcs _08052510 b _0805267C _08052510: cmp r1, 0x2 beq _0805253C cmp r1, 0x3 bne _0805251A b _0805265C _0805251A: b _0805267C .align 2, 0 _0805251C: .4byte gDungeonGlobalData _08052520: .4byte 0x0001bdd4 _08052524: .4byte 0x0001c06c _08052528: bl sub_800EC74 lsls r0, 24 cmp r0, 0 beq _08052534 b _0805267C _08052534: movs r0, 0x3 movs r1, 0 bl sub_803EAF0 _0805253C: ldr r3, _08052560 adds r0, r7, r3 movs r1, 0 ldrsh r4, [r0, r1] movs r2, 0xA3 lsls r2, 2 adds r0, r7, r2 movs r3, 0 ldrsh r0, [r0, r3] cmp r4, r0 bne _08052564 movs r0, 0xA6 lsls r0, 2 adds r1, r7, r0 movs r0, 0 str r0, [r1] b _0805267C .align 2, 0 _08052560: .4byte 0x0000028e _08052564: lsls r0, r4, 6 adds r5, r7, r0 add r1, sp, 0x4 movs r0, 0x4 strh r0, [r1] ldr r2, _080525B0 adds r6, r7, r2 ldrh r0, [r6] strh r0, [r1, 0x2] movs r3, 0x7 mov r8, r3 str r3, [sp, 0x14] movs r0, 0 bl sub_80073B8 movs r1, 0xA0 lsls r1, 2 adds r0, r7, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080525AA movs r2, 0 ldrsh r0, [r6, r2] cmp r0, 0x7 ble _080525AA adds r2, r0, 0 subs r2, 0x1 mov r0, r8 str r0, [sp] movs r0, 0 movs r1, 0 movs r3, 0xE0 bl sub_80078A4 _080525AA: adds r6, r4, 0x1 b _080525F2 .align 2, 0 _080525B0: .4byte 0x00000292 _080525B4: add r1, sp, 0x38 adds r0, r5, 0 bl xxx_get_next_char_from_string adds r5, r0, 0 ldr r4, [sp, 0x38] cmp r4, 0x60 bne _080525D0 add r1, sp, 0x4 adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x6 strh r0, [r1] b _080525F2 _080525D0: add r0, sp, 0x4 movs r1, 0 ldrsh r0, [r0, r1] add r1, sp, 0x4 movs r2, 0x2 ldrsh r1, [r1, r2] ldr r3, [sp, 0x14] movs r2, 0 str r2, [sp] adds r2, r4, 0 bl xxx_call_draw_char add r2, sp, 0x4 adds r1, r2, 0 ldrh r1, [r1] adds r1, r0 strh r1, [r2] _080525F2: adds r0, r5, 0 add r1, sp, 0x4 bl sub_8009190 adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _0805260A cmp r0, 0xD beq _0805260A cmp r0, 0xA bne _080525B4 _0805260A: movs r0, 0 bl sub_80073E0 movs r3, 0xA4 lsls r3, 2 adds r1, r7, r3 movs r0, 0xF0 strh r0, [r1] adds r4, r6, 0 cmp r4, 0xA bne _08052622 movs r4, 0 _08052622: ldr r1, _08052654 adds r0, r7, r1 strh r4, [r0] ldr r2, _08052658 adds r1, r7, r2 ldrh r0, [r1] adds r0, 0xB strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2F ble _0805267C movs r0, 0x25 strh r0, [r1] movs r3, 0xA5 lsls r3, 2 adds r1, r7, r3 movs r0, 0 strh r0, [r1] movs r0, 0xA6 lsls r0, 2 adds r1, r7, r0 movs r0, 0x3 str r0, [r1] b _0805267C .align 2, 0 _08052654: .4byte 0x0000028e _08052658: .4byte 0x00000292 _0805265C: ldr r1, _080526C4 adds r4, r0, r1 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r0, _080526C8 ldr r1, [r0] movs r0, 0 bl _call_via_r1 movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0xA ble _0805267C movs r0, 0x2 str r0, [r5] _0805267C: ldr r3, _080526CC adds r0, r7, r3 ldrb r0, [r0] cmp r0, 0 bne _080526B8 movs r0, 0xA4 lsls r0, 2 adds r1, r7, r0 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _080526B8 subs r0, r2, 0x1 strh r0, [r1] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 bne _080526B8 movs r2, 0xA6 lsls r2, 2 adds r0, r7, r2 str r1, [r0] movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 _080526B8: add sp, 0x3C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080526C4: .4byte 0x0001c068 _080526C8: .4byte gUnknown_203B08C _080526CC: .4byte 0x0000028a thumb_func_end xxx_draw_string_80524F0 thumb_func_start sub_80526D0 sub_80526D0: push {r4,r5,lr} adds r5, r0, 0 ldr r0, _0805272C ldr r1, [r0] ldr r0, _08052730 adds r4, r1, r0 ldr r2, _08052734 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _080526FA ldr r3, _08052738 adds r0, r1, r3 subs r2, 0xA adds r1, r2 movs r3, 0 ldrsh r2, [r0, r3] movs r3, 0 ldrsh r0, [r1, r3] cmp r2, r0 beq _08052724 _080526FA: adds r0, r5, 0 bl sub_803E46C movs r1, 0xA6 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] cmp r0, 0 bne _080526FA ldr r0, _0805272C ldr r0, [r0] ldr r2, _08052738 adds r1, r0, r2 ldr r3, _0805273C adds r0, r3 movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _080526FA _08052724: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805272C: .4byte gDungeonGlobalData _08052730: .4byte 0x0001bdd4 _08052734: .4byte 0x0001c06c _08052738: .4byte 0x0001c060 _0805273C: .4byte 0x0001c062 thumb_func_end sub_80526D0 thumb_func_start sub_8052740 sub_8052740: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r0, _080527B0 ldr r4, [r0] ldr r0, _080527B4 adds r7, r4, r0 adds r0, r5, 0 bl sub_80526D0 movs r6, 0 ldr r1, _080527B8 adds r4, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0xB3 ble _080527A4 ldr r2, _080527BC ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0x3 beq _080527A4 adds r4, r2, 0 ldr r0, _080527C0 mov r8, r0 _08052776: ldrh r0, [r4, 0x2] mov r1, r8 ands r0, r1 cmp r0, 0 bne _080527A4 adds r0, r5, 0 bl sub_803E46C adds r6, 0x1 cmp r6, 0xEF bgt _080527A4 movs r1, 0xA4 lsls r1, 2 adds r0, r7, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0xB3 ble _080527A4 ldrh r1, [r4] movs r0, 0x3 ands r0, r1 cmp r0, 0x3 bne _08052776 _080527A4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080527B0: .4byte gDungeonGlobalData _080527B4: .4byte 0x0001bdd4 _080527B8: .4byte 0x0001c064 _080527BC: .4byte gRealInputs _080527C0: .4byte 0x0000030f thumb_func_end sub_8052740 thumb_func_start PrintFieldMessage PrintFieldMessage: push {r4-r7,lr} sub sp, 0x28 adds r4, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _08052858 ldrb r0, [r0] cmp r0, 0 beq _080527DE movs r0, 0xA bl sub_8052740 _080527DE: movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp, 0x14] str r5, [sp, 0x18] ldr r0, _0805285C ldr r1, [r0] ldr r2, _08052860 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052844 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052844 cmp r4, 0 beq _08052844 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl IsPokemonDialogueSpriteAvail lsls r0, 24 cmp r0, 0 beq _08052844 movs r2, 0 ldrsh r0, [r4, r2] bl GetDialogueSpriteDataPtr str r0, [sp, 0x14] ldr r0, [r0, 0x4] str r0, [sp, 0x18] add r1, sp, 0x14 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] adds r0, r1, 0 strb r2, [r0, 0xD] strb r2, [r0, 0xE] adds r5, r0, 0 _08052844: movs r1, 0 str r1, [sp] movs r0, 0x3 str r0, [sp, 0x4] str r1, [sp, 0x8] str r5, [sp, 0xC] cmp r6, 0 beq _08052868 ldr r0, _08052864 b _0805286C .align 2, 0 _08052858: .4byte gUnknown_203B40C _0805285C: .4byte gDungeonGlobalData _08052860: .4byte 0x0001820a _08052864: .4byte 0x00000701 _08052868: movs r0, 0x80 lsls r0, 3 _0805286C: str r0, [sp, 0x10] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8014248 ldr r0, _080528D0 ldr r0, [r0] ldr r1, _080528D4 adds r0, r1 movs r1, 0x1 strb r1, [r0] add r4, sp, 0x24 _08052888: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 adds r1, r0, 0 cmp r1, 0 bne _08052888 ldr r0, _080528D0 ldr r0, [r0] ldr r2, _080528D4 adds r0, r2 strb r1, [r0] ldr r0, [sp, 0x14] cmp r0, 0 beq _080528B2 bl CloseFile _080528B2: cmp r6, 0 beq _080528E4 bl sub_805E804 bl sub_8040238 ldr r0, _080528D8 ldrb r0, [r0] cmp r0, 0 beq _080528DC movs r0, 0 movs r1, 0 bl sub_803EAF0 b _080528E4 .align 2, 0 _080528D0: .4byte gDungeonGlobalData _080528D4: .4byte 0x0001c05f _080528D8: .4byte gUnknown_202EE01 _080528DC: movs r0, 0x1 movs r1, 0 bl sub_803EAF0 _080528E4: movs r0, 0x8 movs r1, 0x9 bl sub_803E708 add sp, 0x28 pop {r4-r7} pop {r0} bx r0 thumb_func_end PrintFieldMessage thumb_func_start sub_80528F4 sub_80528F4: push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80528F4 thumb_func_start DisplayDungeonDialogue DisplayDungeonDialogue: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r6, r0, 0 bl xxx_call_GetLeaderEntity adds r4, r0, 0 bl GetPartnerEntity adds r5, r0, 0 movs r0, 0 mov r9, r0 cmp r4, 0 beq _0805295C ldr r4, [r4, 0x70] ldr r2, _08052950 ldrb r1, [r4, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08052954 adds r0, r1 ldr r1, [r2] adds r1, r0 ldr r0, _08052958 bl sub_808DA0C movs r2, 0x4 ldrsh r7, [r4, r2] b _08052966 .align 2, 0 _08052950: .4byte gRecruitedPokemonRef _08052954: .4byte 0x00008df8 _08052958: .4byte gAvailablePokemonNames _0805295C: movs r7, 0 ldr r0, _08052988 ldr r1, _0805298C bl strcpy _08052966: cmp r5, 0 beq _0805299C ldr r4, [r5, 0x70] ldr r2, _08052990 ldrb r1, [r4, 0xA] movs r0, 0x64 muls r0, r1 ldr r1, _08052994 adds r0, r1 ldr r1, [r2] adds r1, r0 ldr r0, _08052998 bl sub_808DA0C movs r2, 0x4 ldrsh r4, [r4, r2] b _080529A6 .align 2, 0 _08052988: .4byte gAvailablePokemonNames _0805298C: .4byte gUnknown_80F7AF8 _08052990: .4byte gRecruitedPokemonRef _08052994: .4byte 0x00008df8 _08052998: .4byte gUnknown_202DFE8 _0805299C: movs r4, 0 ldr r0, _080529C0 ldr r1, _080529C4 bl strcpy _080529A6: movs r0, 0x4 ldrsh r1, [r6, r0] movs r0, 0xD5 lsls r0, 1 cmp r1, r0 beq _080529F0 cmp r1, r0 bgt _080529C8 subs r0, 0x1 cmp r1, r0 beq _080529D4 b _08052A1C .align 2, 0 _080529C0: .4byte gUnknown_202DFE8 _080529C4: .4byte gUnknown_80F7AF8 _080529C8: ldr r0, _080529D0 cmp r1, r0 beq _08052A08 b _08052A1C .align 2, 0 _080529D0: .4byte 0x000001ab _080529D4: adds r4, r7, 0 ldr r0, _080529E4 ldr r1, _080529E8 ldr r2, _080529EC bl sprintf_2 b _08052A28 .align 2, 0 _080529E4: .4byte gUnknown_202E5D8 _080529E8: .4byte gUnknown_80F7AFC _080529EC: .4byte gAvailablePokemonNames _080529F0: ldr r0, _080529FC ldr r1, _08052A00 ldr r2, _08052A04 bl sprintf_2 b _08052A28 .align 2, 0 _080529FC: .4byte gUnknown_202E5D8 _08052A00: .4byte gUnknown_80F7AFC _08052A04: .4byte gUnknown_202DFE8 _08052A08: movs r4, 0 ldr r0, _08052A14 ldr r1, _08052A18 bl strcpy b _08052A28 .align 2, 0 _08052A14: .4byte gUnknown_202E5D8 _08052A18: .4byte gUnknown_80F7B04 _08052A1C: movs r1, 0x4 ldrsh r4, [r6, r1] ldr r0, _08052A48 adds r1, r4, 0 bl CopyYellowSpeciesNametoBuffer _08052A28: ldrh r0, [r6] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08052A3C ldr r0, _08052A48 ldr r1, _08052A4C bl strcpy _08052A3C: movs r2, 0x6 ldrsh r0, [r6, r2] ldr r2, _08052A50 add r7, sp, 0x10 b _08052A8E .align 2, 0 _08052A48: .4byte gUnknown_202E5D8 _08052A4C: .4byte gUnknown_80F7B04 _08052A50: .4byte gDungeonGlobalData _08052A54: movs r0, 0x6 ldrsh r1, [r6, r0] cmp r1, 0x1 bne _08052A78 cmp r4, 0x1 beq _08052A9E cmp r4, 0x9B beq _08052A9E ldr r0, _08052B08 cmp r4, r0 beq _08052A9E cmp r4, 0x19 beq _08052A9E cmp r4, 0x4 beq _08052A9E subs r0, 0x6 cmp r4, r0 beq _08052A9E _08052A78: movs r0, 0x8C lsls r0, 1 cmp r1, r0 bne _08052A88 cmp r4, r1 beq _08052A9E cmp r4, 0x98 beq _08052A9E _08052A88: adds r6, 0xC movs r1, 0x6 ldrsh r0, [r6, r1] _08052A8E: cmp r0, 0 beq _08052A9E cmp r0, 0x7 bne _08052A54 cmp r4, 0x7 beq _08052A9E cmp r4, 0x9E bne _08052A54 _08052A9E: ldr r1, [r2] ldr r2, _08052B0C adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052B14 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] mov r8, r0 cmp r0, 0 bne _08052B14 ldrh r0, [r6] cmp r0, 0x4 beq _08052B14 ldrb r0, [r6, 0x2] cmp r0, 0x80 beq _08052B14 cmp r4, 0 beq _08052B14 ldrb r0, [r6, 0x3] bl sub_808CDB0 adds r5, r0, 0 mov r9, sp adds r0, r4, 0 bl GetDialogueSpriteDataPtr str r0, [sp] cmp r0, 0 beq _08052B10 ldr r0, [r0, 0x4] str r0, [sp, 0x4] mov r1, r8 mov r0, r9 strb r1, [r0, 0xE] ldrb r0, [r6, 0x2] mov r2, r9 strb r0, [r2, 0xC] ldrb r0, [r5, 0x4] strb r0, [r2, 0xD] ldrh r0, [r5] strh r0, [r2, 0x8] ldrh r0, [r5, 0x2] strh r0, [r2, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _08052B14 movs r0, 0x2 strh r0, [r2, 0xA] b _08052B14 .align 2, 0 _08052B08: .4byte 0x0000011b _08052B0C: .4byte 0x0001820a _08052B10: movs r0, 0 mov r9, r0 _08052B14: movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 ldr r0, [r6, 0x8] ldr r2, _08052B88 ldrh r1, [r6] lsls r1, 1 adds r1, r2 ldrh r3, [r1] movs r1, 0 mov r2, r9 bl sub_80141B4 _08052B3C: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r7, 0 bl sub_80144A4 cmp r0, 0 bne _08052B3C mov r1, r9 cmp r1, 0 beq _08052B5C ldr r0, [r1] bl CloseFile _08052B5C: ldrh r0, [r6] cmp r0, 0x1 beq _08052B72 cmp r0, 0x3 beq _08052B72 bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 _08052B72: movs r0, 0x8 movs r1, 0x9 bl sub_803E708 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052B88: .4byte gUnknown_80F7AEA thumb_func_end DisplayDungeonDialogue thumb_func_start sub_8052B8C sub_8052B8C: push {r4-r7,lr} sub sp, 0x14 adds r4, r0, 0 adds r6, r1, 0 adds r7, r2, 0 movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp] str r5, [sp, 0x4] ldr r0, _08052C14 ldr r1, [r0] ldr r2, _08052C18 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052C02 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052C02 cmp r4, 0 beq _08052C02 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl IsPokemonDialogueSpriteAvail lsls r0, 24 cmp r0, 0 beq _08052C02 movs r2, 0 ldrsh r0, [r4, r2] bl GetDialogueSpriteDataPtr str r0, [sp] ldr r0, [r0, 0x4] str r0, [sp, 0x4] mov r1, sp movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] mov r0, sp strb r2, [r0, 0xD] strb r2, [r0, 0xE] mov r5, sp _08052C02: cmp r7, 0x1 bne _08052C1C movs r2, 0xC0 lsls r2, 2 adds r0, r6, 0 adds r1, r5, 0 bl sub_80141E0 b _08052C28 .align 2, 0 _08052C14: .4byte gDungeonGlobalData _08052C18: .4byte 0x0001820a _08052C1C: movs r2, 0xC0 lsls r2, 2 adds r0, r6, 0 adds r1, r5, 0 bl sub_8014214 _08052C28: add r4, sp, 0x10 _08052C2A: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 cmp r0, 0 bne _08052C2A ldr r0, [sp] cmp r0, 0 beq _08052C48 bl CloseFile _08052C48: bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x10] cmp r0, 0x1 beq _08052C5E movs r0, 0 b _08052C60 _08052C5E: movs r0, 0x1 _08052C60: add sp, 0x14 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8052B8C thumb_func_start sub_8052C68 sub_8052C68: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 adds r4, r0, 0 adds r7, r1, 0 mov r8, r2 lsls r3, 16 lsrs r6, r3, 16 movs r0, 0xA bl sub_8052740 movs r0, 0x2 movs r1, 0 bl sub_803EAF0 movs r0, 0 bl sub_8052210 movs r5, 0 str r5, [sp, 0x14] str r5, [sp, 0x18] ldr r0, _08052D3C ldr r1, [r0] ldr r2, _08052D40 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052CE6 adds r2, 0x6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _08052CE6 cmp r4, 0 beq _08052CE6 movs r1, 0 ldrsh r0, [r4, r1] ldrb r1, [r4, 0x2] bl IsPokemonDialogueSpriteAvail lsls r0, 24 cmp r0, 0 beq _08052CE6 movs r2, 0 ldrsh r0, [r4, r2] bl GetDialogueSpriteDataPtr str r0, [sp, 0x14] ldr r0, [r0, 0x4] str r0, [sp, 0x18] add r1, sp, 0x14 movs r2, 0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x9 strh r0, [r1, 0xA] ldrb r0, [r4, 0x2] strb r0, [r1, 0xC] adds r0, r1, 0 strb r2, [r0, 0xD] strb r2, [r0, 0xE] adds r5, r0, 0 _08052CE6: movs r2, 0x1 negs r2, r2 movs r1, 0 str r1, [sp] movs r0, 0x3 str r0, [sp, 0x4] str r1, [sp, 0x8] str r5, [sp, 0xC] str r6, [sp, 0x10] adds r0, r7, 0 mov r3, r8 bl sub_8014248 add r4, sp, 0x24 _08052D02: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C adds r0, r4, 0 bl sub_80144A4 cmp r0, 0 bne _08052D02 ldr r0, [sp, 0x14] cmp r0, 0 beq _08052D20 bl CloseFile _08052D20: bl sub_8040238 movs r0, 0 movs r1, 0 bl sub_803EAF0 ldr r0, [sp, 0x24] add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08052D3C: .4byte gDungeonGlobalData _08052D40: .4byte 0x0001820a thumb_func_end sub_8052C68 thumb_func_start sub_8052D44 sub_8052D44: push {r4-r7,lr} adds r7, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 bl EntityExists lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _08052D70 ldr r0, _08052D6C adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, [r4, 0x70] ldrh r0, [r0, 0x4] strh r0, [r7] b _08052D7A .align 2, 0 _08052D6C: .4byte gAvailablePokemonNames _08052D70: ldr r0, _08052D9C ldr r1, _08052DA0 bl strcpy strh r5, [r7] _08052D7A: adds r0, r6, 0 bl EntityExists lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08052DA8 ldr r0, _08052DA4 adds r1, r6, 0 movs r2, 0 bl SetMessageArgument ldr r0, [r6, 0x70] ldrh r0, [r0, 0x4] strh r0, [r7, 0x2] b _08052DB2 .align 2, 0 _08052D9C: .4byte gAvailablePokemonNames _08052DA0: .4byte gUnknown_80F7AF8 _08052DA4: .4byte gUnknown_202DFE8 _08052DA8: ldr r0, _08052DB8 ldr r1, _08052DBC bl strcpy strh r4, [r7, 0x2] _08052DB2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052DB8: .4byte gUnknown_202DFE8 _08052DBC: .4byte gUnknown_80F7AF8 thumb_func_end sub_8052D44 thumb_func_start sub_8052DC0 sub_8052DC0: push {lr} bl sub_8045888 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8052DC0 thumb_func_start sub_8052DD0 sub_8052DD0: push {r4-r6,lr} bl GetLeaderEntity adds r5, r0, 0 ldr r6, _08052E68 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E6C ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E70 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r0, _08052E74 ldr r0, [r0] ldr r1, _08052E78 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08052EB6 ldr r6, _08052E7C ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E80 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 beq _08052E46 ldr r6, _08052E84 ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052E88 _08052E46: adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r4, [r6, 0x4] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 b _08052EB6 .align 2, 0 _08052E68: .4byte gUnknown_80FF020 _08052E6C: .4byte gUnknown_80FF080 _08052E70: .4byte gUnknown_80FF0D8 _08052E74: .4byte gDungeonGlobalData _08052E78: .4byte 0x00000644 _08052E7C: .4byte gUnknown_80FF13C _08052E80: .4byte gUnknown_80FF1B4 _08052E84: .4byte gUnknown_80FF22C _08052E88: ldr r6, _08052EBC ldr r4, [r6] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052EB6 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r4, [r6, 0x4] movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl PrintFieldMessage adds r0, r5, 0 adds r1, r4, 0 bl sub_80522E8 _08052EB6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08052EBC: .4byte gUnknown_80FF290 thumb_func_end sub_8052DD0 thumb_func_start sub_8052EC0 sub_8052EC0: push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08052EE0 ldr r5, _08052EDC b _08052F22 .align 2, 0 _08052EDC: .4byte gUnknown_80FF310 _08052EE0: cmp r4, 0x37 bne _08052EEC ldr r5, _08052EE8 b _08052F22 .align 2, 0 _08052EE8: .4byte gUnknown_80FF394 _08052EEC: cmp r4, 0x43 bne _08052EF8 ldr r5, _08052EF4 b _08052F22 .align 2, 0 _08052EF4: .4byte gUnknown_80FF3E8 _08052EF8: cmp r4, 0x48 bne _08052F04 ldr r5, _08052F00 b _08052F22 .align 2, 0 _08052F00: .4byte gUnknown_80FF440 _08052F04: cmp r4, 0x7 bne _08052F10 ldr r5, _08052F0C b _08052F22 .align 2, 0 _08052F0C: .4byte gUnknown_80FF4A0 _08052F10: cmp r4, 0x42 bne _08052F1C ldr r5, _08052F18 b _08052F22 .align 2, 0 _08052F18: .4byte gUnknown_80FF518 _08052F1C: cmp r4, 0x45 bne _08052F4C ldr r5, _08052F48 _08052F22: ldr r4, [r5] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052F74 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r1, [r5, 0x4] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08052F74 .align 2, 0 _08052F48: .4byte gUnknown_80FF57C _08052F4C: cmp r5, 0x69 bne _08052F74 ldr r5, _08052F7C ldr r4, [r5] adds r0, r4, 0 bl sub_80981A0 lsls r0, 24 cmp r0, 0 bne _08052F74 adds r0, r4, 0 bl sub_8098170 bl sub_8083E28 ldr r1, [r5, 0x4] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08052F74: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08052F7C: .4byte gUnknown_80FF5E8 thumb_func_end sub_8052EC0 thumb_func_start sub_8052F80 sub_8052F80: push {lr} ldr r0, _08052F9C ldr r0, [r0] ldrb r0, [r0, 0xA] cmp r0, 0 beq _08052FA4 ldr r0, _08052FA0 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage b _08052FB0 .align 2, 0 _08052F9C: .4byte gDungeonGlobalData _08052FA0: .4byte gUnknown_80FF6F8 _08052FA4: ldr r0, _08052FB4 ldr r1, [r0] movs r0, 0 movs r2, 0x1 bl PrintFieldMessage _08052FB0: pop {r0} bx r0 .align 2, 0 _08052FB4: .4byte gUnknown_80FF6A4 thumb_func_end sub_8052F80 thumb_func_start sub_8052FB8 sub_8052FB8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r3, r0, 0 movs r0, 0 mov r8, r0 ldr r0, _08053030 movs r2, 0 adds r0, 0x2 movs r1, 0x1C _08052FD2: strh r2, [r0] adds r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _08052FD2 movs r0, 0 str r0, [sp] movs r1, 0x2 str r1, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] movs r0, 0x30 str r0, [sp, 0x10] adds r0, r3, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_8014248 movs r1, 0 mov r9, r1 ldr r7, _08053034 ldr r2, _08053038 mov r10, r2 _08053002: mov r3, r8 cmp r3, 0x3D bgt _08053040 movs r4, 0x1 add r8, r4 movs r5, 0 mov r1, r8 lsrs r0, r1, 31 adds r6, r1, r0 ldr r4, _0805303C _08053016: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 asrs r2, r6, 1 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _08053016 b _080530CA .align 2, 0 _08053030: .4byte gUnknown_202B038 _08053034: .4byte gUnknown_202F1F0 _08053038: .4byte 0x0000f3ff _0805303C: .4byte gUnknown_202D038 _08053040: movs r2, 0x1 add r9, r2 movs r0, 0x8 mov r3, r9 ands r0, r3 cmp r0, 0 beq _080530BE ldrh r0, [r7] ldr r4, _080530D8 adds r1, r4, 0 ands r0, r1 ldr r2, _080530DC adds r1, r2, 0 ands r0, r1 mov r3, r10 ands r0, r3 ldr r4, _080530E0 adds r1, r4, 0 ands r0, r1 ldr r2, _080530E4 adds r1, r2, 0 ands r0, r1 ldr r3, _080530E8 ands r0, r3 movs r4, 0x80 lsls r4, 7 orrs r0, r4 strh r0, [r7] movs r2, 0xFC lsls r2, 2 ldrh r0, [r7, 0x4] movs r3, 0xFC lsls r3, 8 adds r1, r3, 0 ands r0, r1 orrs r0, r2 movs r4, 0 orrs r0, r4 mov r1, r10 ands r0, r1 movs r2, 0xF movs r3, 0xF0 lsls r3, 8 ldr r4, _080530EC adds r1, r4, 0 ands r0, r1 orrs r0, r3 strh r0, [r7, 0x4] movs r1, 0xF0 lsls r1, 3 ldrh r0, [r7, 0x6] ands r2, r0 orrs r2, r1 strh r2, [r7, 0x6] movs r0, 0x70 strh r0, [r7, 0x2] adds r0, r7, 0 movs r1, 0x80 lsls r1, 1 movs r2, 0 movs r3, 0 bl AddSprite _080530BE: ldr r0, _080530F0 ldrh r1, [r0, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080530F4 _080530CA: bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C b _08053002 .align 2, 0 _080530D8: .4byte 0x0000feff _080530DC: .4byte 0x0000fdff _080530E0: .4byte 0x0000efff _080530E4: .4byte 0x0000dfff _080530E8: .4byte 0x00003fff _080530EC: .4byte 0x00000fff _080530F0: .4byte gRealInputs _080530F4: mov r0, r8 cmp r0, 0 blt _08053134 ldr r1, _08053178 mov r9, r1 _080530FE: movs r5, 0 mov r7, r8 subs r7, 0x1 mov r2, r8 lsrs r0, r2, 31 adds r6, r2, r0 mov r4, r9 _0805310C: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 asrs r2, r6, 1 movs r3, 0 bl SetBGPaletteBufferColorRGB adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _0805310C bl xxx_draw_string_80144C4 movs r0, 0x9 bl sub_803E46C mov r8, r7 mov r3, r8 cmp r3, 0 bge _080530FE _08053134: movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C movs r0, 0x9 bl sub_803E46C bl sub_8040238 movs r5, 0 ldr r4, _08053178 _0805314C: adds r0, r5, 0 adds r0, 0xF0 adds r1, r4, 0 bl SetBGPaletteBufferColorArray adds r4, 0x4 adds r5, 0x1 cmp r5, 0x7 ble _0805314C movs r0, 0x8 movs r1, 0x9 bl sub_803E708 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 _08053178: .4byte gUnknown_202D038 thumb_func_end sub_8052FB8 thumb_func_start sub_805317C sub_805317C: push {lr} ldr r0, _08053198 ldr r1, [r0] movs r2, 0xCF lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _0805319C subs r2, 0x34 adds r0, r1, r2 ldrb r0, [r0] b _0805319E .align 2, 0 _08053198: .4byte gDungeonGlobalData _0805319C: movs r0, 0x3F _0805319E: bl GetDungeonName1 pop {r1} bx r1 thumb_func_end sub_805317C thumb_func_start sub_80531A8 sub_80531A8: push {r4-r6,lr} ldr r2, _080531F0 ldr r1, [r2] movs r0, 0 strh r0, [r1, 0x16] movs r0, 0x1 strb r0, [r1, 0xB] movs r4, 0 movs r3, 0 ldr r5, _080531F4 _080531BC: ldr r0, [r2] lsls r1, r4, 6 adds r0, r1 adds r0, r5 strb r3, [r0] ldr r0, [r2] adds r0, r1 ldr r6, _080531F8 adds r0, r6 strb r3, [r0] ldr r0, [r2] adds r0, r1 adds r6, 0x1 adds r0, r6 strb r3, [r0] ldr r0, [r2] adds r0, r1 ldr r1, _080531FC adds r0, r1 strb r3, [r0] adds r4, 0x1 cmp r4, 0x13 ble _080531BC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080531F0: .4byte gDungeonGlobalData _080531F4: .4byte 0x0001c073 _080531F8: .4byte 0x0001c070 _080531FC: .4byte 0x0001c072 thumb_func_end sub_80531A8 thumb_func_start sub_8053200 sub_8053200: ldr r0, _0805320C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0xB] bx lr .align 2, 0 _0805320C: .4byte gDungeonGlobalData thumb_func_end sub_8053200 thumb_func_start sub_8053210 sub_8053210: push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldr r0, _08053264 mov r12, r0 ldr r3, [r0] movs r0, 0x16 ldrsh r4, [r3, r0] lsls r4, 6 ldr r5, _08053268 adds r0, r4, r5 adds r0, r3, r0 adds r7, r0, 0x3 adds r0, 0x3E mov r8, r0 adds r3, r4 adds r3, r5 movs r0, 0x1 strb r0, [r3] mov r4, r12 ldr r3, [r4] movs r4, 0x16 ldrsh r0, [r3, r4] lsls r0, 6 adds r3, r0 ldr r0, _0805326C adds r3, r0 strb r1, [r3] mov r3, r12 ldr r1, [r3] movs r4, 0x16 ldrsh r0, [r1, r4] lsls r0, 6 adds r1, r0 ldr r0, _08053270 adds r1, r0 strb r2, [r1] ldrb r2, [r6] adds r0, r2, 0 mov r1, r12 b _08053282 .align 2, 0 _08053264: .4byte gDungeonGlobalData _08053268: .4byte 0x0001c070 _0805326C: .4byte 0x0001c071 _08053270: .4byte 0x0001c072 _08053274: cmp r7, r8 bcs _0805327C strb r2, [r7] adds r7, 0x1 _0805327C: adds r6, 0x1 ldrb r2, [r6] adds r0, r2, 0 _08053282: cmp r0, 0 beq _0805328A cmp r0, 0xD bne _08053274 _0805328A: movs r0, 0 strb r0, [r7] ldr r2, [r1] ldrh r0, [r2, 0x16] adds r0, 0x1 strh r0, [r2, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080532A2 movs r0, 0 strh r0, [r2, 0x16] _080532A2: ldr r1, [r1] movs r0, 0x1 strb r0, [r1, 0xB] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8053210 thumb_func_start sub_80532B4 sub_80532B4: push {r4-r6,lr} sub sp, 0xC mov r0, sp bl sub_801317C movs r0, 0x9 movs r1, 0 bl sub_803EAF0 _080532C6: movs r0, 0xD bl sub_803E46C movs r0, 0 bl sub_8008D8C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080532C6 ldr r0, _08053374 str r1, [r0] ldr r4, _08053378 strb r1, [r4] bl sub_80533A4 adds r6, r4, 0 _080532E8: movs r5, 0 strb r5, [r6] mov r0, sp movs r1, 0 bl nullsub_34 movs r0, 0 ldr r1, _0805337C bl sub_8014140 adds r4, r0, 0 bl sub_8053430 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r5, r1, 31 adds r0, r4, 0 bl sub_8053540 lsls r0, 24 cmp r0, 0 beq _0805331A movs r5, 0x1 _0805331A: cmp r5, 0 bne _08053324 movs r0, 0xD bl sub_803E46C _08053324: ldrb r1, [r6] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0805333A movs r0, 0x1 movs r1, 0x8 negs r1, r1 bl sub_805363C _0805333A: ldrb r1, [r6] movs r4, 0x2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0805334E movs r0, 0 movs r1, 0x72 bl sub_805363C _0805334E: bl sub_80048C8 lsls r0, 24 cmp r0, 0 bne _080532E8 ldr r0, _08053380 ldrh r1, [r0, 0x2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _0805336C mov r0, sp ldrb r0, [r0, 0x2] cmp r0, 0 beq _08053384 _0805336C: bl sub_8083D30 b _08053390 .align 2, 0 _08053374: .4byte gUnknown_202F1F8 _08053378: .4byte gUnknown_202F1FC _0805337C: .4byte gUnknown_8106990 _08053380: .4byte gRealInputs _08053384: adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080532E8 bl sub_8083D08 _08053390: movs r0, 0 movs r1, 0 bl sub_803EAF0 movs r0, 0x1 add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80532B4 thumb_func_start sub_80533A4 sub_80533A4: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r5, _08053428 ldr r0, [r5] movs r1, 0x16 ldrsh r4, [r0, r1] movs r6, 0x10 subs r4, 0x8 cmp r4, 0 bge _080533BE adds r4, 0x14 _080533BE: movs r0, 0 bl sub_80073B8 mov r8, r5 movs r7, 0x7 _080533C8: lsls r0, r4, 6 ldr r2, _0805342C adds r0, r2 mov r2, r8 ldr r1, [r2] adds r5, r1, r0 ldrb r0, [r5] cmp r0, 0 beq _08053402 ldrb r0, [r5, 0x1] cmp r0, 0 beq _080533F0 movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0xE0 bl sub_80078A4 _080533F0: adds r1, r6, 0x3 adds r2, r5, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string adds r6, 0xE _08053402: adds r4, 0x1 cmp r4, 0x13 ble _0805340A movs r4, 0 _0805340A: subs r7, 0x1 cmp r7, 0 bge _080533C8 movs r0, 0 bl sub_80073E0 movs r0, 0 bl sub_8007334 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053428: .4byte gDungeonGlobalData _0805342C: .4byte 0x0001c070 thumb_func_end sub_80533A4 thumb_func_start sub_8053430 sub_8053430: push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 ldr r3, _08053454 ldr r0, [r3] movs r2, 0x16 ldrsh r1, [r0, r2] ldr r2, _08053458 ldr r0, [r2] adds r1, r0 movs r6, 0x2 subs r1, 0x9 cmp r1, 0 bge _0805345E _0805344C: adds r1, 0x14 cmp r1, 0 blt _0805344C b _0805345E .align 2, 0 _08053454: .4byte gDungeonGlobalData _08053458: .4byte gUnknown_202F1F8 _0805345C: subs r1, 0x14 _0805345E: cmp r1, 0x13 bgt _0805345C ldr r0, [r3] lsls r1, 6 adds r0, r1 ldr r3, _0805349C adds r0, r3 ldrb r0, [r0] adds r4, r1, 0 cmp r0, 0 beq _08053498 ldr r1, [r2] movs r0, 0xC negs r0, r0 cmp r1, r0 ble _08053498 ldr r2, _080534A0 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _080534A4 ldrh r1, [r0, 0x4] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080534A8 cmp r5, 0x1 beq _080534A8 _08053498: movs r0, 0 b _08053528 .align 2, 0 _0805349C: .4byte 0x0001c070 _080534A0: .4byte gUnknown_202F1FC _080534A4: .4byte gRealInputs _080534A8: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 ldr r0, _08053530 ldr r2, _08053534 adds r1, r4, r2 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080534FA movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xD0 bl sub_80087EC ldrb r0, [r4, 0x1] cmp r0, 0 beq _080534EA movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r6, 0 movs r3, 0xE0 bl sub_80078A4 _080534EA: adds r1, r6, 0x3 adds r2, r4, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string _080534FA: movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _08053538 movs r4, 0x6 _0805350A: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _0805350A ldr r1, _0805353C ldr r0, [r1] subs r0, 0x1 str r0, [r1] movs r0, 0x1 _08053528: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08053530: .4byte gDungeonGlobalData _08053534: .4byte 0x0001c070 _08053538: .4byte gUnknown_203B084 _0805353C: .4byte gUnknown_202F1F8 thumb_func_end sub_8053430 thumb_func_start sub_8053540 sub_8053540: push {r4,r5,lr} sub sp, 0x4 adds r3, r0, 0 ldr r0, _08053564 ldr r0, [r0] movs r1, 0x16 ldrsh r2, [r0, r1] ldr r1, _08053568 ldr r0, [r1] adds r4, r2, r0 movs r5, 0x80 cmp r4, 0 bge _0805356E _0805355A: adds r4, 0x14 cmp r4, 0 blt _0805355A b _0805356E .align 2, 0 _08053564: .4byte gDungeonGlobalData _08053568: .4byte gUnknown_202F1F8 _0805356C: subs r4, 0x14 _0805356E: cmp r4, 0x13 bgt _0805356C ldr r0, [r1] cmp r0, 0 bge _08053592 ldr r2, _08053598 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, _0805359C ldrh r1, [r0, 0x4] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080535A0 cmp r3, 0x2 beq _080535A0 _08053592: movs r0, 0 b _08053622 .align 2, 0 _08053598: .4byte gUnknown_202F1FC _0805359C: .4byte gRealInputs _080535A0: movs r0, 0 bl sub_8083CE0 movs r0, 0 bl sub_80073B8 ldr r1, _0805362C lsls r0, r4, 6 ldr r2, _08053630 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0 beq _080535F4 movs r0, 0x10 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r5, 0 movs r3, 0x68 bl sub_80087EC ldrb r0, [r4, 0x1] cmp r0, 0 beq _080535E4 movs r0, 0x7 str r0, [sp] movs r0, 0 movs r1, 0 adds r2, r5, 0 movs r3, 0xE0 bl sub_80078A4 _080535E4: adds r1, r5, 0x3 adds r2, r4, 0x3 movs r0, 0xD str r0, [sp] movs r0, 0x8 movs r3, 0 bl xxx_call_draw_string _080535F4: movs r0, 0 bl sub_80073E0 movs r0, 0xD bl sub_803E46C ldr r5, _08053634 movs r4, 0x6 _08053604: ldr r1, [r5] movs r0, 0 bl _call_via_r1 movs r0, 0xD bl sub_803E46C subs r4, 0x1 cmp r4, 0 bge _08053604 ldr r1, _08053638 ldr r0, [r1] adds r0, 0x1 str r0, [r1] movs r0, 0x1 _08053622: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805362C: .4byte gDungeonGlobalData _08053630: .4byte 0x0001c070 _08053634: .4byte gUnknown_203B080 _08053638: .4byte gUnknown_202F1F8 thumb_func_end sub_8053540 thumb_func_start sub_805363C sub_805363C: push {r4-r7,lr} mov r12, r1 lsls r0, 24 lsrs r2, r0, 24 ldr r7, _080536D0 ldr r0, _080536D4 ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080536C8 ldr r0, _080536D8 ldrh r1, [r0] ldr r3, _080536DC ands r3, r1 ldr r1, _080536E0 ands r3, r1 ldr r1, _080536E4 ands r3, r1 ldr r1, _080536E8 ands r3, r1 ldr r1, _080536EC 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, _080536F0 ands r4, r1 orrs r4, r2 movs r5, 0xF ldr r2, _080536F4 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, 0x5C ldr r2, _080536F8 ands r1, r2 movs r2, 0xFE lsls r2, 8 ands r4, r2 orrs r4, r1 movs r2, 0x80 lsls r2, 7 ldr r1, _080536FC ands r3, r1 orrs r3, r2 strh r3, [r0] ands r4, r1 strh r4, [r0, 0x2] ldr r1, _08053700 strh r1, [r0, 0x4] movs r1, 0x7F movs r2, 0 movs r3, 0 bl AddSprite _080536C8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080536D0: .4byte gUnknown_2027370 _080536D4: .4byte gUnknown_202EDCC _080536D8: .4byte gUnknown_202F200 _080536DC: .4byte 0x0000feff _080536E0: .4byte 0x0000fdff _080536E4: .4byte 0x0000f3ff _080536E8: .4byte 0x0000efff _080536EC: .4byte 0x0000dfff _080536F0: .4byte 0x0000c1ff _080536F4: .4byte 0x00000fff _080536F8: .4byte 0x000001ff _080536FC: .4byte 0x00003fff _08053700: .4byte 0x0000f3f0 thumb_func_end sub_805363C thumb_func_start sub_8053704 sub_8053704: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x48 str r0, [sp, 0x10] adds r7, r1, 0 mov r8, r2 mov r9, r3 movs r0, 0 str r0, [sp, 0x14] ldrh r1, [r2, 0x2] str r1, [sp, 0x18] bl _08055570 _08053724: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08053734 bl _0805556A _08053734: str r7, [sp, 0x1C] ldr r2, [r5, 0x70] str r2, [sp, 0x24] movs r3, 0xAD lsls r3, 1 adds r0, r2, r3 add r1, sp, 0x20 ldrb r1, [r1] strb r1, [r0] ldr r0, [sp, 0x18] bl MoveTargetsUser lsls r0, 24 cmp r0, 0 beq _080537B4 ldr r6, _080537A4 ldr r0, [r6] ldr r2, _080537A8 adds r0, r2 ldr r4, [r0] cmp r4, 0 beq _080537B4 adds r0, r4, 0 bl GetEntityType cmp r0, 0x1 beq _0805376C b _08053A1C _0805376C: cmp r4, r7 bne _08053772 b _08053A1C _08053772: ldr r1, [r4, 0x70] adds r1, 0x98 ldr r0, [r6] ldr r3, _080537AC adds r0, r3 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _08053786 b _08053A1C _08053786: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _08053792 b _08053A1C _08053792: ldr r0, _080537B0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r5, r4, 0 b _08053A1C .align 2, 0 _080537A4: .4byte gDungeonGlobalData _080537A8: .4byte 0x00017b30 _080537AC: .4byte 0x00017b3c _080537B0: .4byte gUnknown_80FCD28 _080537B4: adds r0, r7, 0 mov r1, r8 bl GetMoveTypeForPokemon lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08053854 ldr r2, _08053844 ldr r0, [r2] ldr r1, _08053848 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08053854 adds r4, r0, 0 str r2, [sp, 0x44] bl GetEntityType ldr r2, [sp, 0x44] cmp r0, 0x1 beq _080537E2 b _08053A1C _080537E2: ldr r6, [r4, 0x70] adds r1, r6, 0 adds r1, 0x98 ldr r0, [r2] ldr r2, _0805384C adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _080537F8 b _08053A1C _080537F8: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0805380E b _08053A1C _0805380E: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 bne _08053822 adds r0, r6, 0 adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _08053828 _08053822: cmp r5, r4 beq _08053828 b _08053A1C _08053828: adds r0, r4, 0 bl sub_8042930 ldr r0, _08053850 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r5, r4, 0 movs r3, 0x1 str r3, [sp, 0x2C] b _08053A1C .align 2, 0 _08053844: .4byte gDungeonGlobalData _08053848: .4byte 0x00017b2c _0805384C: .4byte 0x00017b38 _08053850: .4byte gUnknown_80FCD0C _08053854: adds r0, r5, 0 movs r1, 0x2C bl HasItem lsls r0, 24 cmp r0, 0 bne _08053864 b _08053A1C _08053864: adds r0, r5, 0 movs r1, 0 bl CannotAttack lsls r0, 24 cmp r0, 0 beq _08053874 b _08053A1C _08053874: adds r0, r7, 0 mov r1, r8 movs r2, 0 bl GetMoveTargetingFlagsForPokemon movs r1, 0xF0 ands r1, r0 cmp r1, 0 beq _08053888 b _08053A1C _08053888: ldr r1, [sp, 0x24] movs r2, 0x9E lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] bl RoundUpFixedPoint ldr r1, _080538C4 movs r3, 0 ldrsh r1, [r1, r3] cmp r0, r1 bge _080538A2 b _08053A1C _080538A2: ldr r0, [sp, 0x24] adds r0, 0xFF ldrb r0, [r0] cmp r0, 0 beq _080538AE b _08053A1C _080538AE: ldr r0, [sp, 0x24] adds r0, 0x46 ldrb r4, [r0] mov r10, r4 bl IsBossBattle lsls r0, 24 cmp r0, 0 beq _080538CC ldr r0, _080538C8 b _080539FA .align 2, 0 _080538C4: .4byte gUnknown_80F5006 _080538C8: .4byte gUnknown_80FDD88 _080538CC: movs r0, 0 str r0, [sp, 0x34] movs r2, 0x9E lsls r2, 1 ldr r1, [sp, 0x24] adds r2, r1, r2 str r2, [sp, 0x3C] _080538DA: movs r3, 0x1 add r10, r3 movs r0, 0x7 mov r1, r10 ands r1, r0 mov r10, r1 movs r2, 0x4 ldrsh r0, [r5, r2] ldr r1, _080539B4 mov r3, r10 lsls r2, r3, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] adds r0, r1 movs r3, 0x6 ldrsh r1, [r5, r3] movs r3, 0x2 ldrsh r2, [r2, r3] adds r1, r2 bl GetMapTile_1 ldr r0, [r0, 0x10] str r0, [sp, 0x38] bl EntityExists lsls r0, 24 cmp r0, 0 beq _080539DC ldr r0, [sp, 0x38] bl GetEntityType cmp r0, 0x1 bne _080539DC adds r0, r5, 0 bl sub_8045888 lsls r0, 24 mov r1, sp adds r1, 0xC str r1, [sp, 0x40] cmp r0, 0 beq _0805397C movs r6, 0x17 _08053932: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 adds r4, 0x1 movs r2, 0x7 ands r4, r2 subs r6, 0x1 cmp r6, 0 bge _08053932 cmp r4, r10 beq _0805396C movs r6, 0x7 _08053954: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 adds r4, 0x1 ands r4, r6 cmp r4, r10 bne _08053954 _0805396C: adds r0, r5, 0 adds r1, r4, 0 bl sub_806CE68 movs r0, 0x2 movs r1, 0x43 bl sub_803E708 _0805397C: ldr r3, [sp, 0x3C] ldr r4, [r3] ldr r0, _080539B8 movs r2, 0 ldrsh r1, [r0, r2] add r0, sp, 0x8 bl sub_80943A0 ldr r2, [sp, 0x8] ldr r0, [sp, 0x40] adds r1, r4, 0 bl sub_80942C0 ldr r0, [sp, 0xC] ldr r3, [sp, 0x3C] str r0, [r3] mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _080539BC cmp r1, r0 bne _080539C4 ldr r0, _080539C0 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _080539D0 .align 2, 0 _080539B4: .4byte gAdjacentTileOffsets _080539B8: .4byte gUnknown_80F5006 _080539BC: .4byte 0x00000163 _080539C0: .4byte gUnknown_80FDDA8 _080539C4: ldr r0, _080539D8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _080539D0: str r5, [sp, 0x20] ldr r5, [sp, 0x38] b _080539E8 .align 2, 0 _080539D8: .4byte gUnknown_80FDD20 _080539DC: ldr r1, [sp, 0x34] adds r1, 0x1 str r1, [sp, 0x34] cmp r1, 0x7 bgt _080539E8 b _080538DA _080539E8: ldr r2, [sp, 0x34] cmp r2, 0x8 bne _08053A1C mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053A08 cmp r1, r0 bne _08053A10 ldr r0, _08053A0C _080539FA: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08053A1C .align 2, 0 _08053A08: .4byte 0x00000163 _08053A0C: .4byte gUnknown_80FDDAC _08053A10: ldr r0, _08053AD8 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08053A1C: ldr r1, _08053ADC ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r1, _08053AE0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r0, [r5, 0x70] str r0, [sp, 0x24] movs r6, 0xAD lsls r6, 1 adds r1, r0, r6 movs r0, 0 strb r0, [r1] ldr r1, [sp, 0x24] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08053A4C movs r2, 0xB6 lsls r2, 1 adds r1, r2 ldr r0, [r7, 0x4] str r0, [r1] _08053A4C: adds r0, r5, 0 bl sub_806A1E8 adds r0, r7, 0 adds r1, r5, 0 bl sub_807A96C movs r4, 0 adds r0, r7, 0 mov r1, r8 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 bne _08053A7E mov r3, r8 ldrh r1, [r3, 0x2] adds r0, r7, 0 bl sub_805755C lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 _08053A7E: ldr r0, [sp, 0x2C] cmp r0, 0 beq _08053A86 b _08053BAE _08053A86: ldr r0, [sp, 0x24] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x5 bne _08053AE8 ldr r0, [sp, 0x18] bl MoveAffectedByMagicCoat lsls r0, 24 cmp r0, 0 beq _08053B5C adds r0, r7, 0 adds r1, r5, 0 bl sub_8055988 lsls r0, 24 cmp r0, 0 beq _08053B5C ldr r0, _08053AE4 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_8041B48 adds r0, r5, 0 adds r1, r7, 0 bl sub_80559DC adds r5, r7, 0 ldr r1, [r7, 0x70] str r1, [sp, 0x24] adds r0, r1, r6 add r2, sp, 0x2C ldrb r2, [r2] strb r2, [r0] movs r3, 0x1 str r3, [sp, 0x30] b _08053B5C .align 2, 0 _08053AD8: .4byte gUnknown_80FDD48 _08053ADC: .4byte gUnknown_202F208 _08053AE0: .4byte gUnknown_202F20C _08053AE4: .4byte gUnknown_80FC52C _08053AE8: cmp r0, 0xB bne _08053B5C adds r0, r7, 0 mov r1, r8 movs r2, 0 bl GetMoveTargetingFlagsForPokemon lsls r0, 16 asrs r1, r0, 16 ldr r0, _08053C88 ldr r2, [sp, 0x18] cmp r2, r0 beq _08053B5C adds r0, 0x32 cmp r2, r0 beq _08053B5C cmp r4, 0 bne _08053B5C movs r0, 0xF ands r0, r1 cmp r0, 0 beq _08053B20 cmp r0, 0x4 beq _08053B20 cmp r0, 0x5 beq _08053B20 cmp r0, 0x2 bne _08053B5C _08053B20: adds r0, r7, 0 adds r1, r5, 0 bl sub_8055988 lsls r0, 24 cmp r0, 0 beq _08053B5C ldr r0, _08053C8C ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 adds r0, r5, 0 bl sub_8041BA8 adds r0, r5, 0 adds r1, r7, 0 bl sub_80559DC adds r5, r7, 0 ldr r3, [r7, 0x70] str r3, [sp, 0x24] movs r0, 0xAD lsls r0, 1 adds r1, r3, r0 movs r0, 0 strb r0, [r1] movs r1, 0x1 str r1, [sp, 0x30] _08053B5C: ldr r2, [sp, 0x2C] cmp r2, 0 bne _08053BAE ldr r0, [sp, 0x24] adds r0, 0xC4 ldrb r0, [r0] cmp r0, 0x7 bne _08053BAE adds r0, r7, 0 mov r1, r8 movs r2, 0 bl GetMoveTargetingFlagsForPokemon lsls r0, 16 movs r1, 0xF0 lsls r1, 12 ands r1, r0 asrs r1, 16 cmp r1, 0 beq _08053B90 cmp r1, 0x4 beq _08053B90 cmp r1, 0x5 beq _08053B90 cmp r1, 0x2 bne _08053BAE _08053B90: cmp r4, 0 bne _08053BAE ldr r0, _08053C90 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08053C94 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r3, 0 str r3, [sp, 0x28] _08053BAE: adds r0, r5, 0 mov r1, r8 bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _08053BC0 movs r0, 0 str r0, [sp, 0x28] _08053BC0: ldr r1, [sp, 0x28] cmp r1, 0 beq _08053C4A adds r0, r5, 0 movs r1, 0x3C bl HasAbility lsls r0, 24 cmp r0, 0 beq _08053BFA mov r0, r8 bl IsBlockedBySoundproof lsls r0, 24 cmp r0, 0 beq _08053BFA ldr r0, _08053C90 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08053C98 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 movs r2, 0 str r2, [sp, 0x28] _08053BFA: ldr r3, [sp, 0x28] cmp r3, 0 beq _08053C4A movs r0, 0 ldr r1, [sp, 0x30] cmp r1, 0 bne _08053C0A movs r0, 0x1 _08053C0A: adds r2, r0, 0 mov r3, r8 ldrh r1, [r3, 0x2] cmp r1, 0x68 beq _08053C20 ldr r0, _08053C9C cmp r1, r0 beq _08053C20 subs r0, 0x4 cmp r1, r0 bne _08053C22 _08053C20: movs r2, 0 _08053C22: str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 bl sub_8056B34 lsls r0, 24 cmp r0, 0 bne _08053C3A movs r0, 0 str r0, [sp, 0x28] _08053C3A: ldr r1, [sp, 0x28] cmp r1, 0 beq _08053C4A ldr r2, [sp, 0x2C] cmp r2, 0 beq _08053C4A movs r3, 0 str r3, [sp, 0x28] _08053C4A: adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08053C6A movs r0, 0x4 movs r1, 0x4A bl sub_803E708 adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 bl sub_8041168 _08053C6A: ldr r0, [sp, 0x28] cmp r0, 0 beq _08053C72 b _08053D72 _08053C72: ldr r0, [r7, 0x70] ldrb r0, [r0, 0x7] cmp r0, 0 beq _08053CA0 movs r1, 0xAB lsls r1, 1 adds r0, r7, 0 bl sub_80421C0 b _08053CA8 .align 2, 0 _08053C88: .4byte 0x00000163 _08053C8C: .4byte gUnknown_80FC558 _08053C90: .4byte gUnknown_202DFE8 _08053C94: .4byte gUnknown_80FC574 _08053C98: .4byte gUnknown_8100524 _08053C9C: .4byte 0x00000131 _08053CA0: ldr r1, _08053CC4 adds r0, r7, 0 bl sub_80421C0 _08053CA8: ldr r0, _08053CC8 ldr r1, [r5, 0x70] movs r2, 0 bl SetMessageArgument_2 cmp r7, r5 bne _08053CD0 ldr r0, _08053CCC ldr r2, [r0] adds r0, r7, 0 adds r1, r7, 0 bl sub_80522F4 b _08053D10 .align 2, 0 _08053CC4: .4byte 0x00000157 _08053CC8: .4byte gUnknown_202DFE8 _08053CCC: .4byte gUnknown_80F9380 _08053CD0: adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 cmp r0, 0 bne _08053CEC ldr r0, _08053CE8 b _08053CF4 .align 2, 0 _08053CE8: .4byte gUnknown_80F9384 _08053CEC: ldr r1, [sp, 0x2C] cmp r1, 0 beq _08053D04 ldr r0, _08053D00 _08053CF4: ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 b _08053D10 .align 2, 0 _08053D00: .4byte gUnknown_80F93A4 _08053D04: ldr r0, _08053D48 ldr r2, [r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80522F4 _08053D10: adds r0, r5, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08053D2A ldr r0, _08053D4C movs r3, 0x1 negs r3, r3 adds r1, r5, 0 movs r2, 0x1 bl sub_803ED30 _08053D2A: ldr r2, [sp, 0x18] cmp r2, 0xCC beq _08053D50 cmp r2, 0xCE bne _08053D60 movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059FC8 b _08053D60 .align 2, 0 _08053D48: .4byte gUnknown_80F9364 _08053D4C: .4byte 0x0000270f _08053D50: movs r0, 0x1 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E54 _08053D60: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _08053D6E bl _080555A2 _08053D6E: bl _08055568 _08053D72: ldr r0, [sp, 0x24] adds r0, 0xFB ldrb r3, [r0] mov r10, r3 ldr r2, [sp, 0x24] ldrb r1, [r2, 0x6] adds r6, r0, 0 cmp r1, 0 beq _08053DA8 mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053E88 cmp r1, r0 beq _08053D9E mov r0, r9 cmp r0, 0 bne _08053D9E mov r1, r10 cmp r1, 0 bne _08053D9E movs r0, 0x1 strb r0, [r6] _08053D9E: ldr r2, [sp, 0x68] cmp r2, 0x1 bne _08053DA8 movs r0, 0x2 strb r0, [r6] _08053DA8: ldr r3, [sp, 0x24] movs r0, 0xB2 lsls r0, 1 adds r4, r3, r0 ldrb r0, [r4] cmp r0, 0xFF bne _08053DCE adds r0, r5, 0 movs r1, 0xE3 bl sub_80717A4 lsls r0, 24 cmp r0, 0 beq _08053DCE adds r0, r5, 0x4 adds r1, r7, 0x4 bl CalculateFacingDir strb r0, [r4] _08053DCE: ldr r1, [sp, 0x24] ldr r2, _08053E8C adds r4, r1, r2 ldrb r0, [r4] cmp r0, 0xFF bne _08053DF2 adds r0, r5, 0 movs r1, 0x19 bl sub_80717A4 lsls r0, 24 cmp r0, 0 beq _08053DF2 adds r0, r5, 0x4 adds r1, r7, 0x4 bl CalculateFacingDir strb r0, [r4] _08053DF2: adds r0, r5, 0 movs r1, 0x39 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08053E4A adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053E4A mov r3, r8 ldrh r1, [r3, 0x2] ldr r0, _08053E88 cmp r1, r0 beq _08053E4A subs r0, 0x3 cmp r1, r0 beq _08053E4A mov r0, r9 cmp r0, 0 bne _08053E4A ldrb r0, [r3, 0x4] cmp r0, 0 beq _08053E4A ldrb r1, [r3, 0x1] movs r4, 0x10 movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08053E42 adds r0, r7, 0 bl sub_8042950 _08053E42: mov r1, r8 ldrb r0, [r1, 0x1] orrs r0, r4 strb r0, [r1, 0x1] _08053E4A: adds r0, r7, 0 mov r1, r8 movs r2, 0 bl GetMoveTargetingFlagsForPokemon movs r1, 0xF ands r1, r0 cmp r1, 0 bne _08053E64 adds r0, r7, 0 adds r1, r5, 0 bl SetShopkeeperAggression _08053E64: ldr r2, [sp, 0x24] movs r3, 0xAC lsls r3, 1 adds r0, r2, r3 movs r1, 0x1 strb r1, [r0] movs r0, 0xCE lsls r0, 1 ldr r1, [sp, 0x18] cmp r1, r0 bls _08053E7E bl _080554C0 _08053E7E: lsls r0, r1, 2 ldr r1, _08053E90 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08053E88: .4byte 0x00000163 _08053E8C: .4byte 0x00000165 _08053E90: .4byte _08053E94 .align 2, 0 _08053E94: .4byte _08054520 .4byte _08054DB8 .4byte _08054C18 .4byte _08054888 .4byte _08054878 .4byte _08054D80 .4byte _08054D8E .4byte _08054FB0 .4byte _08054FE8 .4byte _08054508 .4byte _08054FF6 .4byte _08055270 .4byte _08055190 .4byte _080548C8 .4byte _080552B6 .4byte _08054E1A .4byte _0805527E .4byte _080551F2 .4byte _08054508 .4byte _080549C8 .4byte _08054EEC .4byte _08054968 .4byte _08054EDE .4byte _0805528C .4byte _08054B18 .4byte _08055422 .4byte _08054E1A .4byte _08054AB8 .4byte _08054508 .4byte _0805529A .4byte _080547A8 .4byte _08055200 .4byte _0805460A .4byte _08054948 .4byte _08054878 .4byte _0805519E .4byte _080545AE .4byte _0805514A .4byte _08054CD4 .4byte _08054508 .4byte _08055396 .4byte _08054EB4 .4byte _08054A68 .4byte _08054C28 .4byte _08054A58 .4byte _08054E8A .4byte _080547A8 .4byte _08054DD4 .4byte _080553DC .4byte _0805504A .4byte _080554A0 .4byte _08054CD4 .4byte _0805455E .4byte _0805456E .4byte _080552D2 .4byte _080549B8 .4byte _08055004 .4byte _0805453E .4byte _08054F94 .4byte _08054818 .4byte _08054D56 .4byte _08054CE2 .4byte _080547B8 .4byte _08054788 .4byte _08054868 .4byte _08054868 .4byte _08054F16 .4byte _08055112 .4byte _080545AE .4byte _080545FA .4byte _08054F94 .4byte _080546D8 .4byte _08054F86 .4byte _08054928 .4byte _0805459E .4byte _08054D64 .4byte _08054AD8 .4byte _080550DA .4byte _08054E52 .4byte _08054878 .4byte _08054AD8 .4byte _080545AE .4byte _080546E8 .4byte _08054ED0 .4byte _08054878 .4byte _080550CC .4byte _0805462A .4byte _080545AE .4byte _08054E28 .4byte _0805462A .4byte _080545AE .4byte _08054B78 .4byte _08055120 .4byte _080546E8 .4byte _08054C48 .4byte _08054CC6 .4byte _080551D6 .4byte _08054928 .4byte _08054FA2 .4byte _08054A38 .4byte _08054B58 .4byte _0805457E .4byte _08055090 .4byte _080547E8 .4byte _08055238 .4byte _08054C18 .4byte _08054A88 .4byte _080546F8 .4byte _08054DF0 .4byte _0805464A .4byte _08054A78 .4byte _08054878 .4byte _08054B98 .4byte _0805512E .4byte _080546F8 .4byte _08055414 .4byte _08054AF8 .4byte _08054C78 .4byte _0805452E .4byte _0805536C .4byte _08054768 .4byte _080550DA .4byte _08054DC6 .4byte _080550E8 .4byte _08054858 .4byte _080545FA .4byte _08054508 .4byte _080547B8 .4byte _08055104 .4byte _08054898 .4byte _08054BF8 .4byte _080545CA .4byte _08054508 .4byte _08054778 .4byte _08054BE8 .4byte _08054B08 .4byte _08054508 .4byte _080553B2 .4byte _08055388 .4byte _08054798 .4byte _08054AE8 .4byte _08054BD8 .4byte _08054EA6 .4byte _080545FA .4byte _08054768 .4byte _08054508 .4byte _08054EA6 .4byte _08054738 .4byte _080549F8 .4byte _08054748 .4byte _080545DA .4byte _08054B48 .4byte _08054838 .4byte _08054FBE .4byte _08054508 .4byte _080550F6 .4byte _08054FDA .4byte _0805456E .4byte _08054508 .4byte _08054A48 .4byte _08055166 .4byte _08054508 .4byte _080546C8 .4byte _08054508 .4byte _08054B38 .4byte _08054C38 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _08054988 .4byte _08054AC8 .4byte _080548C8 .4byte _080550BE .4byte _08054C58 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _080548B8 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _080549D8 .4byte _08054508 .4byte _080553C0 .4byte _08055468 .4byte _08055246 .4byte _08054A28 .4byte _08054F5C .4byte _08054758 .4byte _08054508 .4byte _08054508 .4byte _080548C8 .4byte _080548E8 .4byte _08054908 .4byte _080548A8 .4byte _080549B8 .4byte _080548D8 .4byte _08054EC2 .4byte _08054BA8 .4byte _080548D8 .4byte _0805463A .4byte _08054508 .4byte _08054A28 .4byte _08054AF8 .4byte _0805509E .4byte _08054FCC .4byte _08054D28 .4byte _080547D8 .4byte _08054508 .4byte _08054C98 .4byte _08054B28 .4byte _08054508 .4byte _08054DAA .4byte _08054E98 .4byte _08054CB8 .4byte _08054A08 .4byte _08054AC8 .4byte _08054A98 .4byte _08054C78 .4byte _0805461A .4byte _080553A4 .4byte _08054788 .4byte _08054508 .4byte _0805520E .4byte _08054DC6 .4byte _08054E7C .4byte _08054828 .4byte _08054D0C .4byte _0805521C .4byte _08055066 .4byte _0805456E .4byte _08054878 .4byte _08054C68 .4byte _08054DE2 .4byte _080546F8 .4byte _08054768 .4byte _08055182 .4byte _08054D1A .4byte _0805458E .4byte _0805458E .4byte _08054508 .4byte _08054508 .4byte _0805458E .4byte _08054918 .4byte _0805469C .4byte _08055174 .4byte _08054938 .4byte _080545DA .4byte _08054508 .4byte _08055012 .4byte _08054508 .4byte _080545AE .4byte _08054F24 .4byte _08054B78 .4byte _080552E0 .4byte _080546D8 .4byte _08055074 .4byte _08055254 .4byte _08054A28 .4byte _08054C08 .4byte _08054508 .4byte _08054778 .4byte _0805456E .4byte _0805535E .4byte _080547C8 .4byte _080549A8 .4byte _08055326 .4byte _08054AA8 .4byte _08054958 .4byte _0805530A .4byte _0805457E .4byte _08054788 .4byte _08054D3A .4byte _08054EA6 .4byte _080548C8 .4byte _08054728 .4byte _080547F8 .4byte _08054BB8 .4byte _0805513C .4byte _0805463A .4byte _0805463A .4byte _080548F8 .4byte _080552A8 .4byte _080546B8 .4byte _08054958 .4byte _08054508 .4byte _080553F8 .4byte _08054CB8 .4byte _08054978 .4byte _08054778 .4byte _08054508 .4byte _080545FA .4byte _0805456E .4byte _080551C8 .4byte _08054B88 .4byte _08054E0C .4byte _08054E60 .4byte _08054508 .4byte _08054D72 .4byte _08054928 .4byte _08054508 .4byte _080550B0 .4byte _08054A18 .4byte _08054788 .4byte _08055090 .4byte _080550B0 .4byte _08054508 .4byte _08054DAA .4byte _08054508 .4byte _08054708 .4byte _080547C8 .4byte _08054508 .4byte _08054508 .4byte _080551E4 .4byte _08054EFA .4byte _080552D2 .4byte _080551BA .4byte _08055074 .4byte _08054C38 .4byte _080549E8 .4byte _08054AD8 .4byte _08054508 .4byte _08054508 .4byte _08054508 .4byte _08054D48 .4byte _08054680 .4byte _08054808 .4byte _08055492 .4byte _08055406 .4byte _08054DFE .4byte _0805544C .4byte _08054F32 .4byte _08054664 .4byte _080549B8 .4byte _080553EA .4byte _08054718 .4byte _080545AE .4byte _08055430 .4byte _08054BC8 .4byte _08054E1A .4byte _08054CE2 .4byte _08054848 .4byte _08054768 .4byte _08054998 .4byte _0805457E .4byte _0805457E .4byte _08054508 .4byte _08054508 .4byte _08054E6E .4byte _08054FA2 .4byte _08054508 .4byte _08054A88 .4byte _0805454E .4byte _08054508 .4byte _08054AF8 .4byte _08054512 .4byte _080554C0 .4byte _08054CF0 .4byte _080554C0 .4byte _080554C0 .4byte _08054508 .4byte _0805529A .4byte _08054508 .4byte _08055158 .4byte _08054CA8 .4byte _08055318 .4byte _08054508 .4byte _08054F24 .4byte _08054958 .4byte _08054F5C .4byte _080552EE .4byte _08054B68 .4byte _08054CC6 .4byte _08054F40 .4byte _08055058 .4byte _080552FC .4byte _08055476 .4byte _08055484 .4byte _080553CE .4byte _08055326 .4byte _08055090 .4byte _08054E44 .4byte _080548C8 .4byte _08054F08 .4byte _0805543E .4byte _08055350 .4byte _08054C88 .4byte _08054E36 .4byte _08054F6A .4byte _08055020 .4byte _08055334 .4byte _080551AC .4byte _080545EA .4byte _0805545A .4byte _08054D9C .4byte _08055342 .4byte _08055082 .4byte _080554AE .4byte _08055262 .4byte _0805522A .4byte _08054F4E .4byte _08054CFE .4byte _080554C0 .4byte _0805537A .4byte _080554C0 .4byte _080554C0 .4byte _080554A0 .4byte _080552C4 .4byte _080554C0 .4byte _08054F78 .4byte _0805502E .4byte _080554C0 .4byte _0805503C _08054508: movs r3, 0x80 lsls r3, 1 mov r2, r9 str r2, [sp] b _080545B6 _08054512: mov r3, r9 str r3, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0x80 b _080545BC _08054520: mov r0, r9 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 movs r3, 0 b _080545BC _0805452E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058F04 bl _080554BA _0805453E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058270 bl _080554BA _0805454E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B968 bl _080554BA _0805455E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805816C bl _080554BA _0805456E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80581D0 bl _080554BA _0805457E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058B3C bl _080554BA _0805458E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A568 bl _080554BA _0805459E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E1C bl _080554BA _080545AE: movs r3, 0x80 lsls r3, 1 mov r1, r9 str r1, [sp] _080545B6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 _080545BC: bl sub_8055640 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 bl _080554C2 _080545CA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80590D4 bl _080554BA _080545DA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80595EC bl _080554BA _080545EA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C138 bl _080554BA _080545FA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B17C bl _080554BA _0805460A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D20 bl _080554BA _0805461A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2E8 bl _080554BA _0805462A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805889C bl _080554BA _0805463A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E0C bl _080554BA _0805464A: ldr r0, _08054660 ldr r3, [r0] mov r2, r9 str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8058C98 bl _080554BA .align 2, 0 _08054660: .4byte gUnknown_8106A50 _08054664: ldr r0, _0805467C ldr r3, [r0] mov r0, r9 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8058C98 bl _080554BA .align 2, 0 _0805467C: .4byte gUnknown_8106A4C _08054680: ldr r0, _08054698 ldr r3, [r0] mov r1, r9 str r1, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_805B3FC bl _080554BA .align 2, 0 _08054698: .4byte gUnknown_8106A4C _0805469C: ldr r0, _080546B4 ldr r3, [r0] mov r2, r9 str r2, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_805A5E8 bl _080554BA .align 2, 0 _080546B4: .4byte gUnknown_8106A4C _080546B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B074 bl _080554BA _080546C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059928 bl _080554BA _080546D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058580 bl _080554BA _080546E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058930 bl _080554BA _080546F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058C00 bl _080554BA _08054708: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B324 bl _080554BA _08054718: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B910 bl _080554BA _08054728: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AE74 bl _080554BA _08054738: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059540 bl _080554BA _08054748: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80595A0 bl _080554BA _08054758: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D00 bl _080554BA _08054768: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058FBC bl _080554BA _08054778: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059190 bl _080554BA _08054788: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058430 bl _080554BA _08054798: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059424 bl _080554BA _080547A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057C88 bl _080554BA _080547B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80583D8 bl _080554BA _080547C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AC90 bl _080554BA _080547D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A0A8 bl _080554BA _080547E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058B84 bl _080554BA _080547F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AECC bl _080554BA _08054808: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B454 bl _080554BA _08054818: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582C4 bl _080554BA _08054828: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A408 bl _080554BA _08054838: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059714 bl _080554BA _08054848: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B808 bl _080554BA _08054858: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059050 bl _080554BA _08054868: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058478 bl _080554BA _08054878: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80576F8 bl _080554BA _08054888: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80576D0 bl _080554BA _08054898: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059080 bl _080554BA _080548A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D98 bl _080554BA _080548B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AF8 bl _080554BA _080548C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AA8 bl _080554BA _080548D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DA4 bl _080554BA _080548E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D48 bl _080554BA _080548F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B028 bl _080554BA _08054908: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059D58 bl _080554BA _08054918: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A588 bl _080554BA _08054928: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058638 bl _080554BA _08054938: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A688 bl _080554BA _08054948: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D7C bl _080554BA _08054958: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B0BC bl _080554BA _08054968: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057A0C bl _080554BA _08054978: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B164 bl _080554BA _08054988: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059A18 bl _080554BA _08054998: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B884 bl _080554BA _080549A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805ACD8 bl _080554BA _080549B8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582D4 bl _080554BA _080549C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057954 bl _080554BA _080549D8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059B94 bl _080554BA _080549E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3B4 bl _080554BA _080549F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059588 bl _080554BA _08054A08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2B0 bl _080554BA _08054A18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2FC bl _080554BA _08054A28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059CD8 bl _080554BA _08054A38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A7C bl _080554BA _08054A48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80598CC bl _080554BA _08054A58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057F7C bl _080554BA _08054A68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057ED0 bl _080554BA _08054A78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058CEC bl _080554BA _08054A88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058BF0 bl _080554BA _08054A98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2C8 bl _080554BA _08054AA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD34 bl _080554BA _08054AB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057C68 bl _080554BA _08054AC8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059A2C bl _080554BA _08054AD8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80586DC bl _080554BA _08054AE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805946C bl _080554BA _08054AF8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058E5C bl _080554BA _08054B08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80591E4 bl _080554BA _08054B18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BC4 bl _080554BA _08054B28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A210 bl _080554BA _08054B38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059988 bl _080554BA _08054B48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805968C bl _080554BA _08054B58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl SkyAttackMoveAction bl _080554BA _08054B68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BE90 bl _080554BA _08054B78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588B8 bl _080554BA _08054B88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B214 bl _080554BA _08054B98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058D38 bl _080554BA _08054BA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DC4 bl _080554BA _08054BB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AF30 bl _080554BA _08054BC8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B7FC bl _080554BA _08054BD8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80594E0 bl _080554BA _08054BE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80591D8 bl _080554BA _08054BF8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80590C8 bl _080554BA _08054C08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AB48 bl _080554BA _08054C18: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805768C bl _080554BA _08054C28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057F24 bl _080554BA _08054C38: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80599EC bl _080554BA _08054C48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80589D4 bl _080554BA _08054C58: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AC4 bl _080554BA _08054C68: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4D4 bl _080554BA _08054C78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058EE0 bl _080554BA _08054C88: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD70 bl _080554BA _08054C98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A120 bl _080554BA _08054CA8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BA50 bl _080554BA _08054CB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A2A0 b _080554BA _08054CC6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A08 b _080554BA _08054CD4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805815C b _080554BA _08054CE2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805834C b _080554BA _08054CF0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805836C b _080554BA _08054CFE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C3DC b _080554BA _08054D0C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A450 b _080554BA _08054D1A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A55C b _080554BA _08054D28: movs r0, 0 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059FC8 b _080554BA _08054D3A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AE3C b _080554BA _08054D48: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3E0 b _080554BA _08054D56: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582EC b _080554BA _08054D64: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805867C b _080554BA _08054D72: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2E4 b _080554BA _08054D80: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057720 b _080554BA _08054D8E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057748 b _080554BA _08054D9C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1BC b _080554BA _08054DAA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A23C b _080554BA _08054DB8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057634 b _080554BA _08054DC6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A3DC b _080554BA _08054DD4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057FF4 b _080554BA _08054DE2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4FC b _080554BA _08054DF0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058C48 b _080554BA _08054DFE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B5F4 b _080554BA _08054E0C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl TrapperOrbAction b _080554BA _08054E1A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578EC b _080554BA _08054E28: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588A8 b _080554BA _08054E36: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD7C b _080554BA _08054E44: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BC70 b _080554BA _08054E52: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80587E8 b _080554BA _08054E60: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B264 b _080554BA _08054E6E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl SkullBashMoveAction b _080554BA _08054E7C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A3FC b _080554BA _08054E8A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057FCC b _080554BA _08054E98: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A258 b _080554BA _08054EA6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059528 b _080554BA _08054EB4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E6C b _080554BA _08054EC2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059DB4 b _080554BA _08054ED0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058838 b _080554BA _08054EDE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl TormentMoveAction b _080554BA _08054EEC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057974 b _080554BA _08054EFA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B388 b _080554BA _08054F08: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BC98 b _080554BA _08054F16: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80584C0 b _080554BA _08054F24: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB74 b _080554BA _08054F32: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B668 b _080554BA _08054F40: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl LuminousOrbAction b _080554BA _08054F4E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl FillInOrbAction b _080554BA _08054F5C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059CF0 b _080554BA _08054F6A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BF34 b _080554BA _08054F78: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C474 b _080554BA _08054F86: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80585CC b _080554BA _08054F94: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80582AC b _080554BA _08054FA2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A54 b _080554BA _08054FB0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805777C b _080554BA _08054FBE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059790 b _080554BA _08054FCC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059F38 b _080554BA _08054FDA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl DiveMoveAction b _080554BA _08054FE8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057788 b _080554BA _08054FF6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057824 b _080554BA _08055004: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805825C b _080554BA _08055012: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A6C8 b _080554BA _08055020: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl TrapbustOrbAction b _080554BA _0805502E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C480 b _080554BA _0805503C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C48C b _080554BA _0805504A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl GrudgeMoveAction b _080554BA _08055058: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEAC b _080554BA _08055066: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A4C0 b _080554BA _08055074: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AAD0 b _080554BA _08055082: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1F8 b _080554BA _08055090: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B314 b _080554BA _0805509E: movs r0, 0 str r0, [sp] adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059E54 b _080554BA _080550B0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B2F0 b _080554BA _080550BE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059AB8 b _080554BA _080550CC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058858 b _080554BA _080550DA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058770 b _080554BA _080550E8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059004 b _080554BA _080550F6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80597F0 b _080554BA _08055104: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059060 b _080554BA _08055112: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058548 b _080554BA _08055120: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80588F4 b _080554BA _0805512E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058D44 b _080554BA _0805513C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AFA4 b _080554BA _0805514A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E28 b _080554BA _08055158: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BA44 b _080554BA _08055166: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805991C b _080554BA _08055174: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl SpitUpMoveAction b _080554BA _08055182: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A508 b _080554BA _08055190: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805785C b _080554BA _0805519E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057D9C b _080554BA _080551AC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C128 b _080554BA _080551BA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B3A8 b _080554BA _080551C8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B208 b _080554BA _080551D6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058A18 b _080554BA _080551E4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B37C b _080554BA _080551F2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057948 b _080554BA _08055200: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057CD0 b _080554BA _0805520E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A394 b _080554BA _0805521C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A464 b _080554BA _0805522A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C2A0 b _080554BA _08055238: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058BE0 b _080554BA _08055246: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl HelpingHandMoveAction b _080554BA _08055254: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AAE0 b _080554BA _08055262: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C288 b _080554BA _08055270: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805783C b _080554BA _0805527E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578FC b _080554BA _0805528C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BB4 b _080554BA _0805529A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B9E8 b _080554BA _080552A8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl TransformMoveAction b _080554BA _080552B6: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_80578A4 b _080554BA _080552C4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C468 b _080554BA _080552D2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058234 b _080554BA _080552E0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A85C b _080554BA _080552EE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl TransferOrbAction b _080554BA _080552FC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB98 b _080554BA _0805530A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD54 b _080554BA _08055318: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BB64 b _080554BA _08055326: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AD04 b _080554BA _08055334: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C080 b _080554BA _08055342: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1E4 b _080554BA _08055350: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl EscapeOrbAction b _080554BA _0805535E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805AB54 b _080554BA _0805536C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058F58 b _080554BA _0805537A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C3F8 b _080554BA _08055388: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl SketchMoveAction b _080554BA _08055396: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057E50 b _080554BA _080553A4: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805A31C b _080554BA _080553B2: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl SkillSwapMoveAction b _080554BA _080553C0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059BAC b _080554BA _080553CE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl CleanseOrbAction b _080554BA _080553DC: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805805C b _080554BA _080553EA: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B734 b _080554BA _080553F8: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B0D0 b _080554BA _08055406: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B53C b _080554BA _08055414: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8058DBC b _080554BA _08055422: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8057BEC b _080554BA _08055430: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B740 b _080554BA _0805543E: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BD64 b _080554BA _0805544C: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805B618 b _080554BA _0805545A: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C1B0 b _080554BA _08055468: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8059C80 b _080554BA _08055476: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEB8 b _080554BA _08055484: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805BEC8 b _080554BA _08055492: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl MimicMoveAction b _080554BA _080554A0: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C45C b _080554BA _080554AE: adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_805C208 _080554BA: lsls r0, 24 lsrs r4, r0, 24 b _080554C2 _080554C0: movs r4, 0 _080554C2: bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _080555A2 ldr r0, [sp, 0x20] bl EntityExists lsls r0, 24 cmp r0, 0 beq _080554E6 ldr r3, [sp, 0x20] ldr r0, [r3, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r3, 0 bl sub_806CE68 _080554E6: cmp r4, 0 bne _08055510 adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055530 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055530 ldr r1, [sp, 0x24] ldrb r0, [r1, 0x6] cmp r0, 0 beq _08055530 mov r2, r10 strb r2, [r6] b _08055530 _08055510: mov r0, r8 bl sub_8057088 lsls r0, 24 cmp r0, 0 beq _08055530 adds r0, r7, 0 movs r1, 0 bl sub_8057308 lsls r0, 24 cmp r0, 0 beq _08055530 ldr r1, _08055614 movs r0, 0x1 strb r0, [r1] _08055530: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055548 ldr r3, [sp, 0x24] movs r0, 0xAC lsls r0, 1 adds r1, r3, r0 movs r0, 0x1 strb r0, [r1] _08055548: ldr r1, [sp, 0x18] cmp r1, 0x89 beq _08055568 adds r0, r7, 0 bl sub_8055DDC adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_8069F9C adds r0, r7, 0 adds r1, r5, 0 mov r2, r8 bl sub_806A120 _08055568: ldr r7, [sp, 0x1C] _0805556A: ldr r2, [sp, 0x14] adds r2, 0x1 str r2, [sp, 0x14] _08055570: ldr r3, [sp, 0x14] cmp r3, 0x3F bgt _080555A2 movs r0, 0 str r0, [sp, 0x20] lsls r0, r3, 2 ldr r1, [sp, 0x10] adds r0, r1 ldr r5, [r0] movs r2, 0x1 str r2, [sp, 0x28] movs r3, 0 str r3, [sp, 0x2C] movs r0, 0 str r0, [sp, 0x30] cmp r5, 0 beq _080555A2 adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080555A2 bl _08053724 _080555A2: bl sub_8044B28 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08055604 adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080555D6 ldr r0, [r7, 0x70] movs r2, 0xAA lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _080555D6 strb r4, [r1] adds r0, r7, 0 adds r1, r7, 0 movs r2, 0 movs r3, 0 bl sub_807D148 _080555D6: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055604 ldr r0, [r7, 0x70] ldr r3, _08055618 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 beq _08055604 movs r0, 0 strb r0, [r1] ldr r1, _0805561C ldr r2, [r1] str r0, [sp] str r0, [sp, 0x4] adds r0, r7, 0 adds r1, r7, 0 movs r3, 0x2 bl sub_8076E20 _08055604: add sp, 0x48 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055614: .4byte gUnknown_202F222 _08055618: .4byte 0x00000155 _0805561C: .4byte gUnknown_8106A50 thumb_func_end sub_8053704 thumb_func_start sub_8055620 sub_8055620: 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 _08055636 movs r0, 0x1 _08055636: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8055620 thumb_func_start sub_8055640 sub_8055640: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r6, r0, 0 mov r10, r1 adds r5, r2, 0 mov r9, r3 ldr r7, [sp, 0x44] adds r1, r5, 0 bl GetMoveTypeForPokemon adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 bl CalculateMovePower mov r8, r0 adds r0, r5, 0 bl GetMoveCriticalHitChance str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] ldrh r0, [r5, 0x2] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r10 adds r2, r4, 0 mov r3, r8 bl sub_806EAF4 adds r0, r5, 0 adds r1, r7, 0 bl sub_8057600 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r6, 0 mov r1, r10 adds r2, r5, 0 add r3, sp, 0x14 bl sub_8055728 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_8055640 thumb_func_start sub_80556BC sub_80556BC: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x24 adds r6, r0, 0 mov r9, r1 adds r4, r2, 0 adds r5, r3, 0 ldr r7, [sp, 0x40] lsls r4, 24 lsrs r4, 24 adds r1, r5, 0 bl CalculateMovePower mov r8, r0 adds r0, r5, 0 bl GetMoveCriticalHitChance str r0, [sp] add r0, sp, 0x14 str r0, [sp, 0x4] str r7, [sp, 0x8] ldrh r0, [r5, 0x2] str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 mov r1, r9 adds r2, r4, 0 mov r3, r8 bl sub_806EAF4 adds r0, r5, 0 ldr r1, [sp, 0x44] bl sub_8057600 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r6, 0 mov r1, r9 adds r2, r5, 0 add r3, sp, 0x14 bl sub_8055728 add sp, 0x24 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80556BC thumb_func_start sub_8055728 sub_8055728: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r8, r3 ldr r0, [sp, 0x30] lsls r0, 16 asrs r0, 16 mov r9, r0 movs r7, 0x1 str r7, [sp] adds r0, r6, 0 movs r3, 0x1 bl sub_8056B34 lsls r0, 24 cmp r0, 0 beq _080557C0 movs r0, 0 mov r10, r0 ldrh r1, [r5, 0x2] movs r0, 0x9D lsls r0, 1 cmp r1, r0 bne _08055768 movs r1, 0x1 mov r10, r1 _08055768: adds r0, r4, 0 movs r1, 0x2E bl HasAbility lsls r0, 24 cmp r0, 0 beq _08055790 ldr r0, _080557AC ldr r1, [r0] ldr r0, _080557B0 adds r2, r1, r0 ldr r0, _080557B4 strh r0, [r2] ldr r2, _080557B8 adds r0, r1, r2 str r4, [r0] ldr r0, _080557BC adds r1, r0 ldrh r0, [r4, 0x26] str r0, [r1] _08055790: str r7, [sp] mov r1, r9 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r6, 0 adds r1, r4, 0 mov r2, r8 mov r3, r10 bl sub_806D010 b _08055826 .align 2, 0 _080557AC: .4byte gDungeonGlobalData _080557B0: .4byte 0x00000662 _080557B4: .4byte 0x000003e7 _080557B8: .4byte 0x00017b34 _080557BC: .4byte 0x00017b40 _080557C0: ldr r0, _08055808 ldr r1, [r4, 0x70] movs r2, 0 bl SetMessageArgument_2 adds r0, r6, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08055814 adds r0, r4, 0 bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _08055814 ldr r0, _0805580C movs r3, 0x1 negs r3, r3 adds r1, r4, 0 movs r2, 0x1 bl sub_803ED30 ldr r0, _08055810 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_805232C adds r0, r6, 0 adds r1, r4, 0 bl sub_8042238 b _08055820 .align 2, 0 _08055808: .4byte gUnknown_202DFE8 _0805580C: .4byte 0x0000270f _08055810: .4byte gUnknown_80F9688 _08055814: ldr r0, _08055834 ldr r2, [r0] adds r0, r6, 0 adds r1, r4, 0 bl sub_80522F4 _08055820: movs r0, 0x1 mov r2, r8 strb r0, [r2, 0xF] _08055826: mov r1, r8 ldrb r0, [r1, 0xF] cmp r0, 0 beq _08055838 movs r0, 0 b _08055854 .align 2, 0 _08055834: .4byte gUnknown_80F9688 _08055838: adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055850 ldr r0, [r4, 0x70] movs r2, 0xAD lsls r2, 1 adds r1, r0, r2 movs r0, 0x1 strb r0, [r1] _08055850: mov r1, r8 ldr r0, [r1] _08055854: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8055728 thumb_func_start sub_8055864 sub_8055864: push {r4-r7,lr} sub sp, 0x20 adds r4, r0, 0 adds r7, r1, 0 adds r5, r2, 0 adds r6, r3, 0 adds r1, r5, 0 bl GetMoveTypeForPokemon adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 add r0, sp, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r7, 0 adds r3, r6, 0 bl sub_806F2BC adds r0, r5, 0 ldr r1, [sp, 0x34] bl sub_8057600 lsls r0, 16 asrs r0, 16 movs r5, 0x1 str r5, [sp] str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] adds r0, r4, 0 adds r1, r7, 0 add r2, sp, 0x10 movs r3, 0 bl sub_806D010 add r0, sp, 0x10 ldrb r0, [r0, 0xF] cmp r0, 0 beq _080558BA movs r0, 0 b _080558D2 _080558BA: adds r0, r7, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _080558D0 ldr r0, [r7, 0x70] movs r1, 0xAD lsls r1, 1 adds r0, r1 strb r5, [r0] _080558D0: ldr r0, [sp, 0x10] _080558D2: add sp, 0x20 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8055864 thumb_func_start sub_80558DC sub_80558DC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r4, 0x1 movs r2, 0 mov r9, r2 ldr r1, [r1, 0x70] mov r10, r1 bl GetMoveType lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _08055902 cmp r1, 0x7 bne _08055906 _08055902: movs r5, 0x1 mov r9, r5 _08055906: ldr r6, _08055944 mov r8, r6 mov r3, r10 adds r3, 0x5C ldr r7, _08055948 mov r12, r7 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 str r0, [sp, 0x10] adds r2, r3, 0 _0805591C: mov r0, sp mov r1, r8 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r1] str r1, [r0] mov r0, r9 cmp r0, 0 beq _0805594C ldrb r0, [r2] cmp r0, 0xE bne _0805594C mov r0, r10 adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 bne _0805594C movs r0, 0 b _0805595A .align 2, 0 _08055944: .4byte gUnknown_81069BC _08055948: .4byte gTypeEffectivenessChart _0805594C: ldrb r0, [r2] lsls r0, 1 ldr r1, [sp, 0x10] adds r0, r1 add r0, r12 movs r5, 0 ldrsh r0, [r0, r5] _0805595A: lsls r0, 2 add r0, sp ldr r0, [r0] muls r4, r0 cmp r4, 0 beq _0805596E adds r2, 0x1 adds r0, r3, 0x1 cmp r2, r0 ble _0805591C _0805596E: adds r0, r4, 0 cmp r0, 0 beq _08055976 movs r0, 0x1 _08055976: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80558DC thumb_func_start sub_8055988 sub_8055988: push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 cmp r2, r4 beq _080559D4 movs r0, 0x4 ldrsh r1, [r2, r0] movs r3, 0x4 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _080559A2 negs r1, r1 _080559A2: cmp r1, 0x1 bgt _080559D4 movs r0, 0x6 ldrsh r1, [r2, r0] movs r3, 0x6 ldrsh r0, [r4, r3] subs r1, r0 cmp r1, 0 bge _080559B6 negs r1, r1 _080559B6: cmp r1, 0x1 bgt _080559D4 adds r0, r4, 0x4 adds r1, r2, 0x4 bl CalculateFacingDir adds r1, r0, 0 adds r0, r4, 0 bl CanAttackInFront lsls r0, 24 cmp r0, 0 beq _080559D4 movs r0, 0x1 b _080559D6 _080559D4: movs r0, 0 _080559D6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8055988 thumb_func_start sub_80559DC sub_80559DC: push {r4,r5,lr} adds r5, r0, 0 ldr r4, [r5, 0x70] adds r0, r5, 0x4 adds r1, 0x4 bl CalculateFacingDir adds r1, r0, 0 movs r2, 0x7 ands r0, r2 adds r4, 0x46 strb r0, [r4] adds r0, r5, 0 bl sub_806CE68 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80559DC thumb_func_start sub_8055A00 sub_8055A00: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 adds r5, r0, 0 mov r9, r1 str r2, [sp, 0x20] str r3, [sp, 0x24] ldr r0, [r5, 0x70] mov r10, r0 mov r7, r9 cmp r7, 0x3 ble _08055A22 movs r0, 0 b _08055DB4 _08055A22: movs r0, 0xBC lsls r0, 1 add r0, r10 movs r1, 0 movs r2, 0 strh r2, [r0] ldr r0, _08055A4C add r0, r10 strb r1, [r0] mov r0, r10 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x1 bne _08055A58 ldr r0, _08055A50 adds r1, r5, 0 bl SetMessageArgument ldr r0, _08055A54 b _08055A8A .align 2, 0 _08055A4C: .4byte 0x00000159 _08055A50: .4byte gAvailablePokemonNames _08055A54: .4byte gUnknown_80FC714 _08055A58: cmp r0, 0x7 bne _08055A74 ldr r0, _08055A6C adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08055A70 b _08055A8A .align 2, 0 _08055A6C: .4byte gAvailablePokemonNames _08055A70: .4byte gUnknown_80FC718 _08055A74: mov r0, r10 adds r0, 0xAC ldrb r0, [r0] cmp r0, 0x4 bne _08055AA0 ldr r0, _08055A98 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08055A9C _08055A8A: ldr r1, [r0] adds r0, r5, 0 bl SendMessage movs r0, 0 b _08055DB4 .align 2, 0 _08055A98: .4byte gAvailablePokemonNames _08055A9C: .4byte gUnknown_80FC6A8 _08055AA0: ldr r0, _08055B24 strb r1, [r0] ldr r0, _08055B28 str r2, [r0] ldr r0, _08055B2C strb r1, [r0] adds r0, r7, 0x1 movs r2, 0 movs r6, 0x3 movs r1, 0xC0 lsls r1, 1 add r1, r10 _08055AB8: strh r2, [r1] subs r1, 0x2 subs r6, 0x1 cmp r6, 0 bge _08055AB8 movs r6, 0 movs r3, 0x1 adds r7, r0, 0 cmp r7, 0x3 bgt _08055B06 lsls r2, r7, 3 mov r1, r10 adds r0, r1, r2 movs r4, 0x8C lsls r4, 1 adds r0, r4 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055B06 movs r0, 0x2 mov r8, r0 adds r0, r2, r4 mov r1, r10 adds r2, r0, r1 _08055AEC: adds r6, 0x1 cmp r6, 0x3 bgt _08055B06 adds r3, 0x1 adds r2, 0x8 adds r7, 0x1 cmp r7, 0x3 bgt _08055B06 ldrb r1, [r2] mov r0, r8 ands r0, r1 cmp r0, 0 bne _08055AEC _08055B06: movs r0, 0 str r0, [sp, 0x28] cmp r3, 0x1 ble _08055B12 movs r1, 0x1 str r1, [sp, 0x28] _08055B12: mov r7, r9 lsls r0, r7, 3 movs r1, 0x8C lsls r1, 1 adds r0, r1 add r0, r10 mov r8, r0 b _08055CB4 .align 2, 0 _08055B24: .4byte gUnknown_202F222 _08055B28: .4byte gUnknown_202F208 _08055B2C: .4byte gUnknown_202F221 _08055B30: mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x19 beq _08055B3C cmp r0, 0xE3 bne _08055B4E _08055B3C: adds r0, r5, 0 bl IsSleeping lsls r0, 24 cmp r0, 0 bne _08055B5E adds r0, r5, 0 movs r1, 0x1 b _08055B52 _08055B4E: adds r0, r5, 0 movs r1, 0 _08055B52: bl CannotAttack lsls r0, 24 cmp r0, 0 beq _08055B5E b _08055CCE _08055B5E: ldr r0, _08055B9C ldrb r0, [r0] cmp r0, 0 beq _08055B68 b _08055CCE _08055B68: ldrb r1, [r6] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08055B74 b _08055C82 _08055B74: movs r2, 0x1 movs r0, 0 str r0, [sp, 0x2C] adds r0, r5, 0 adds r1, r6, 0 str r2, [sp, 0x30] bl MoveMatchesChargingStatus lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6, 0x4] ldr r2, [sp, 0x30] cmp r0, 0 beq _08055BA0 cmp r4, 0 bne _08055BBA movs r1, 0x1 str r1, [sp, 0x2C] b _08055BBA .align 2, 0 _08055B9C: .4byte gUnknown_202F221 _08055BA0: cmp r4, 0 bne _08055BBA ldr r0, _08055C08 adds r1, r6, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08055C0C ldr r1, [r0] adds r0, r5, 0 bl SendMessage movs r2, 0 _08055BBA: cmp r2, 0 beq _08055C82 ldr r0, _08055C10 ldr r0, [r0] mov r9, r0 ldr r0, _08055C14 add r0, r10 strb r4, [r0] ldrh r0, [r6, 0x2] cmp r0, 0xE5 bne _08055C20 ldr r0, [r6] ldr r1, [r6, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] adds r0, r5, 0 bl sub_8057144 lsls r0, 16 ldr r2, _08055C18 ldr r1, [sp, 0x8] ands r1, r2 orrs r1, r0 str r1, [sp, 0x8] ldr r0, _08055C08 add r1, sp, 0x8 movs r2, 0 bl sub_80928C0 ldr r0, _08055C1C ldr r1, [r0] adds r0, r5, 0 bl SendMessage ldr r0, [sp, 0x28] str r0, [sp] add r1, sp, 0x8 str r1, [sp, 0x4] b _08055C26 .align 2, 0 _08055C08: .4byte gUnknown_202DE58 _08055C0C: .4byte gUnknown_80F93C8 _08055C10: .4byte gUnknown_202F208 _08055C14: .4byte 0x00000159 _08055C18: .4byte 0x0000ffff _08055C1C: .4byte gUnknown_80FD2DC _08055C20: ldr r0, [sp, 0x28] str r0, [sp] str r6, [sp, 0x4] _08055C26: adds r0, r5, 0 ldr r1, [sp, 0x20] ldr r2, [sp, 0x24] ldr r3, [sp, 0x54] bl sub_8055FA0 lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x2C] cmp r1, 0 beq _08055C56 cmp r0, 0 beq _08055C56 ldrb r1, [r6, 0x1] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08055C50 movs r0, 0xFB ands r0, r1 b _08055C54 _08055C50: movs r0, 0x8 orrs r0, r1 _08055C54: strb r0, [r6, 0x1] _08055C56: ldr r0, _08055C70 ldr r0, [r0] cmp r9, r0 bne _08055C82 ldr r0, [sp, 0x24] cmp r0, 0 bne _08055C78 ldr r0, _08055C74 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08055C82 .align 2, 0 _08055C70: .4byte gUnknown_202F208 _08055C74: .4byte gUnknown_80FC690 _08055C78: ldr r0, _08055DC4 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08055C82: movs r0, 0x1 bl sub_804178C adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055CCE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08055CCE movs r1, 0x8 add r8, r1 adds r7, 0x1 cmp r7, 0x3 bgt _08055CCE mov r0, r8 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055CCE _08055CB4: mov r6, r8 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055CCE bl sub_8044B28 lsls r0, 24 cmp r0, 0 bne _08055CCE b _08055B30 _08055CCE: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055D54 movs r6, 0 _08055CDC: lsls r0, r6, 1 movs r1, 0xBD lsls r1, 1 add r1, r10 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08055D4E add r4, sp, 0x10 adds r1, r0, 0 adds r0, r4, 0 bl sub_8092AA8 ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08055D48 ldrh r0, [r4, 0x2] cmp r0, 0xE5 bne _08055D36 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] str r1, [sp, 0x1C] adds r0, r5, 0 bl sub_8057144 lsls r0, 16 ldr r2, _08055DC8 ldr r1, [sp, 0x18] ands r1, r2 orrs r1, r0 str r1, [sp, 0x18] add r4, sp, 0x18 ldr r0, _08055DCC adds r1, r4, 0 movs r2, 0 bl sub_80928C0 ldr r0, _08055DD0 ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08055D36: ldr r1, [sp, 0x28] str r1, [sp] str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0 ldr r2, [sp, 0x24] ldr r3, [sp, 0x54] bl sub_8055FA0 _08055D48: movs r0, 0x1 bl sub_804178C _08055D4E: adds r6, 0x1 cmp r6, 0x3 ble _08055CDC _08055D54: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055DB2 adds r0, r5, 0 bl sub_8071DA4 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055DB2 ldr r1, _08055DD4 ldrb r0, [r1] cmp r0, 0 beq _08055DB2 movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08055DB2 ldr r4, [r5, 0x70] ldr r1, _08055DD8 adds r0, r5, 0 movs r2, 0x1 bl sub_808417C adds r3, r0, 0 movs r0, 0 str r0, [sp] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_8076090 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08055DB2 movs r0, 0x1 strb r0, [r4] _08055DB2: movs r0, 0x1 _08055DB4: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08055DC4: .4byte gUnknown_80FC6A4 _08055DC8: .4byte 0x0000ffff _08055DCC: .4byte gUnknown_202DE58 _08055DD0: .4byte gUnknown_80FD2DC _08055DD4: .4byte gUnknown_202F222 _08055DD8: .4byte gUnknown_80F4E70 thumb_func_end sub_8055A00 thumb_func_start sub_8055DDC sub_8055DDC: push {r4-r7,lr} adds r4, r0, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _08055DEC b _08055F62 _08055DEC: ldr r6, [r4, 0x70] movs r7, 0xBC lsls r7, 1 adds r5, r6, r7 ldrh r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08055E10 ldr r0, _08055F68 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E10: ldrh r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055E2C ldr r0, _08055F6C ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E2C: ldrh r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08055E48 ldr r0, _08055F70 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 bl sub_80769CC _08055E48: ldrh r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08055E66 ldr r0, _08055F74 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8077780 _08055E66: ldrh r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08055E84 ldr r0, _08055F78 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_8077780 _08055E84: ldrh r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08055EA2 ldr r0, _08055F7C ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80763F8 _08055EA2: ldrh r1, [r5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08055EC0 ldr r0, _08055F80 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_80763F8 _08055EC0: ldrh r1, [r5] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08055EEA ldr r0, _08055F84 ldr r1, [r0] adds r0, r4, 0 bl SendMessage ldr r1, _08055F88 adds r0, r4, 0 movs r2, 0x1 bl sub_808417C adds r2, r0, 0 adds r0, r4, 0 adds r1, r4, 0 movs r3, 0x1 bl sub_8075C58 _08055EEA: ldrh r1, [r5] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08055F0C ldr r0, _08055F8C ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8076210 _08055F0C: ldrh r1, [r5] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08055F2C ldr r0, _08055F90 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_807614C _08055F2C: adds r5, r6, r7 ldrh r1, [r5] movs r0, 0x80 lsls r0, 3 ands r0, r1 cmp r0, 0 beq _08055F5E ldr r0, _08055F94 adds r1, r4, 0 movs r2, 0 bl SetMessageArgument ldr r0, _08055F98 ldr r1, [r0] adds r0, r4, 0 bl SendMessage adds r0, r4, 0 bl sub_80428A0 ldr r0, _08055F9C ldrh r1, [r0] adds r0, r6, 0 adds r0, 0xFA strb r1, [r0] _08055F5E: movs r0, 0 strh r0, [r5] _08055F62: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055F68: .4byte gUnknown_80FEEA4 _08055F6C: .4byte gUnknown_80FEEC8 _08055F70: .4byte gUnknown_80FEEEC _08055F74: .4byte gUnknown_80FEF0C _08055F78: .4byte gUnknown_80FEF30 _08055F7C: .4byte gUnknown_80FEF4C _08055F80: .4byte gUnknown_80FEF50 _08055F84: .4byte gUnknown_80FEF54 _08055F88: .4byte gUnknown_80F4E74 _08055F8C: .4byte gUnknown_80FEF74 _08055F90: .4byte gUnknown_80FEF98 _08055F94: .4byte gAvailablePokemonNames _08055F98: .4byte gUnknown_80FEFD0 _08055F9C: .4byte gUnknown_80F5004 thumb_func_end sub_8055DDC thumb_func_start sub_8055FA0 sub_8055FA0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x130 adds r5, r0, 0 adds r6, r1, 0 mov r10, r2 str r3, [sp, 0x120] ldr r7, [sp, 0x154] movs r0, 0 mov r8, r0 str r0, [sp, 0xC] movs r0, 0x1 bl sub_804178C ldrh r1, [r7, 0x2] movs r0, 0xA5 lsls r0, 1 cmp r1, r0 bne _08056010 movs r0, 0x69 bl DungeonRandomCapped ldr r1, _08056004 str r0, [r1] add r4, sp, 0x110 ldr r1, _08056008 lsls r0, 3 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl InitPokemonMove ldrb r1, [r7] add r0, sp, 0x110 strb r1, [r0] ldrb r0, [r7, 0x1] strb r0, [r4, 0x1] ldr r0, _0805600C ldr r2, [r0] mov r1, r10 str r1, [sp] movs r0, 0x1 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] b _08056056 .align 2, 0 _08056004: .4byte gUnknown_202F228 _08056008: .4byte gUnknown_80F59C8 _0805600C: .4byte gUnknown_80FECBC _08056010: cmp r1, 0x77 bne _08056068 ldr r0, _08056108 ldr r0, [r0] ldr r1, _0805610C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 bge _08056026 movs r0, 0 _08056026: cmp r0, 0x4A ble _0805602C movs r0, 0x4A _0805602C: add r4, sp, 0x118 ldr r1, _08056110 lsls r0, 3 adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 bl InitPokemonMove ldrb r1, [r7] add r0, sp, 0x118 strb r1, [r0] ldrb r0, [r7, 0x1] strb r0, [r4, 0x1] ldr r0, _08056114 ldr r2, [r0] mov r0, r10 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] _08056056: adds r0, r5, 0 adds r1, r7, 0 add r3, sp, 0xC bl sub_8056468 movs r0, 0x1 bl sub_804178C adds r7, r4, 0 _08056068: movs r2, 0 str r2, [sp, 0x128] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl GetMoveTargetingFlagsForPokemon movs r4, 0xF0 adds r1, r4, 0 ands r1, r0 cmp r1, 0x50 bne _08056084 movs r0, 0xA str r0, [sp, 0x128] _08056084: adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl GetMoveTargetingFlagsForPokemon adds r1, r4, 0 ands r1, r0 cmp r1, 0x80 bne _080560CC movs r1, 0x1 str r1, [sp, 0x128] ldrh r0, [r7, 0x2] cmp r0, 0x97 bne _080560AE adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080560CC _080560AE: ldrh r0, [r7, 0x2] bl DoesMoveCharge lsls r0, 24 cmp r0, 0 beq _080560CC adds r0, r5, 0 adds r1, r7, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 bne _080560CC movs r2, 0 str r2, [sp, 0x128] _080560CC: ldr r0, _08056118 ldr r1, [r5, 0x70] movs r2, 0 bl SetMessageArgument_2 ldr r0, _0805611C adds r1, r7, 0 movs r2, 0 bl sub_80928C0 adds r0, r5, 0 adds r1, r7, 0 bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 beq _08056124 ldr r0, _08056120 ldr r0, [r0] mov r8, r0 ldr r0, [r5, 0x70] adds r0, 0xFF movs r1, 0 strb r1, [r0] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl sub_805744C b _08056142 .align 2, 0 _08056108: .4byte gDungeonGlobalData _0805610C: .4byte 0x00003a0e _08056110: .4byte gUnknown_80F5D10 _08056114: .4byte gUnknown_80FECE0 _08056118: .4byte gAvailablePokemonNames _0805611C: .4byte gUnknown_202DE58 _08056120: .4byte gUnknown_80FC72C _08056124: mov r0, r10 cmp r0, 0 bne _08056132 ldrh r0, [r7, 0x2] bl GetMoveUseText b _08056136 _08056132: ldr r0, _08056194 ldr r0, [r0] _08056136: mov r8, r0 adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 bl IsMoveUsable _08056142: lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08056156 cmp r6, 0 beq _08056156 adds r0, r5, 0 adds r1, r7, 0 bl sub_806ACE8 _08056156: ldr r0, [r5, 0x70] adds r0, 0xEC ldrb r0, [r0] cmp r0, 0x1 bne _080561A0 ldrh r0, [r7, 0x2] bl MoveAffectedByMuzzled lsls r0, 24 cmp r0, 0 beq _080561A0 ldr r0, _08056198 adds r1, r5, 0 movs r2, 0 bl SetMessageArgument adds r0, r5, 0 mov r1, r8 bl SendMessage movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _0805619C _08056188: ldr r1, [r0] adds r0, r5, 0 bl SendMessage _08056190: movs r0, 0 b _08056446 .align 2, 0 _08056194: .4byte gUnknown_80F9158 _08056198: .4byte gAvailablePokemonNames _0805619C: .4byte gUnknown_80FC710 _080561A0: cmp r4, 0 bne _08056214 ldr r0, _080561D4 ldr r1, [r5, 0x70] movs r2, 0 bl SetMessageArgument_2 mov r1, r10 cmp r1, 0 bne _080561E0 ldr r0, _080561D8 adds r1, r7, 0 movs r2, 0 bl sub_80928C0 adds r0, r5, 0 mov r1, r8 bl SendMessage movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _080561DC b _08056188 .align 2, 0 _080561D4: .4byte gAvailablePokemonNames _080561D8: .4byte gUnknown_202DE58 _080561DC: .4byte gUnknown_80FC6D0 _080561E0: ldr r0, _0805620C mov r2, r10 lsls r1, r2, 24 lsrs r1, 24 movs r2, 0 bl sub_8090DC4 adds r0, r5, 0 mov r1, r8 bl SendMessage movs r0, 0xA movs r1, 0x3F bl sub_803E708 ldr r0, _08056210 ldr r1, [r0] adds r0, r5, 0 bl SendMessage b _08056190 .align 2, 0 _0805620C: .4byte gUnknown_202DE58 _08056210: .4byte gUnknown_80FC6FC _08056214: ldr r0, _0805625C movs r1, 0 str r1, [r0] ldr r0, _08056260 str r1, [r0] ldr r0, _08056264 str r1, [r0] ldr r0, _08056268 strb r1, [r0] ldr r0, _0805626C strb r1, [r0] ldr r0, _08056270 strb r1, [r0] ldr r0, _08056274 str r1, [r0] ldr r0, _08056278 strb r1, [r0] ldr r0, [sp, 0x150] cmp r0, 0 beq _0805624C ldr r0, [r5, 0x70] ldr r2, _0805627C adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x3 bhi _0805624C adds r0, 0x1 strb r0, [r1] _0805624C: adds r0, r7, 0 bl sub_8057070 str r0, [sp, 0x124] movs r0, 0 mov r9, r0 b _080563E4 .align 2, 0 _0805625C: .4byte gUnknown_202F214 _08056260: .4byte gUnknown_202F20C _08056264: .4byte gUnknown_202F210 _08056268: .4byte gUnknown_202F218 _0805626C: .4byte gUnknown_202F219 _08056270: .4byte gUnknown_202F21A _08056274: .4byte gUnknown_202F21C _08056278: .4byte gUnknown_202F220 _0805627C: .4byte 0x00000153 _08056280: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 bne _0805628E b _08056444 _0805628E: bl sub_8044B28 lsls r0, 24 cmp r0, 0 beq _0805629A b _08056444 _0805629A: ldr r4, [r5, 0x70] ldr r0, [sp, 0x120] cmp r0, 0 bne _080562AC ldrh r0, [r7, 0x2] cmp r0, 0x19 beq _080562AC cmp r0, 0xE3 bne _080562BE _080562AC: adds r0, r5, 0 bl IsSleeping lsls r0, 24 cmp r0, 0 bne _080562CE adds r0, r5, 0 movs r1, 0x1 b _080562C2 _080562BE: adds r0, r5, 0 movs r1, 0 _080562C2: bl CannotAttack lsls r0, 24 cmp r0, 0 beq _080562CE b _08056400 _080562CE: movs r1, 0xA5 lsls r1, 1 adds r0, r4, r1 movs r6, 0 strb r6, [r0] ldrh r0, [r7, 0x2] cmp r0, 0x9 bne _080562F4 ldr r4, [r5, 0x70] movs r0, 0x8 bl DungeonRandomCapped adds r4, 0x46 strb r0, [r4] adds r0, r5, 0 bl TargetTileInFront movs r2, 0 str r2, [sp, 0x12C] _080562F4: ldr r0, _080563A0 str r6, [r0] str r6, [sp, 0xC] ldr r0, [sp, 0x128] cmp r0, 0x1 bhi _08056324 add r0, sp, 0xC adds r1, r5, 0 adds r2, r7, 0 bl sub_8056CE8 add r0, sp, 0xC adds r1, r5, 0 bl sub_80574C4 mov r1, r9 cmp r1, 0 beq _08056324 ldr r2, [sp, 0x12C] cmp r2, 0 beq _08056324 ldr r0, [sp, 0xC] cmp r0, 0 beq _08056400 _08056324: mov r0, r10 str r0, [sp] movs r0, 0 mov r1, r9 cmp r1, 0 bne _08056332 movs r0, 0x1 _08056332: str r0, [sp, 0x4] ldr r2, [sp, 0x128] str r2, [sp, 0x8] adds r0, r5, 0 adds r1, r7, 0 mov r2, r8 add r3, sp, 0xC bl sub_8056468 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 mov r8, r0 ldr r0, _080563A0 ldr r0, [r0] cmp r0, 0 beq _08056358 bl sub_806A1E8 _08056358: ldr r1, [r5, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _0805637C cmp r0, 0x4 beq _0805637C movs r2, 0xB6 lsls r2, 1 adds r0, r1, r2 mov r2, r8 strh r2, [r0] movs r2, 0xB7 lsls r2, 1 adds r0, r1, r2 mov r1, r8 strh r1, [r0] _0805637C: ldr r1, _080563A4 ldr r0, [r1] adds r0, 0x1 str r0, [r1] ldr r2, [sp, 0x128] cmp r2, 0 beq _080563A8 mov r0, r10 str r0, [sp] ldr r1, [sp, 0x150] str r1, [sp, 0x4] adds r0, r5, 0 adds r1, r7, 0 adds r3, r4, 0 bl sub_80566F8 b _080563B8 .align 2, 0 _080563A0: .4byte gUnknown_203B438 _080563A4: .4byte gUnknown_202F214 _080563A8: ldr r2, [sp, 0x150] str r2, [sp] add r0, sp, 0xC adds r1, r5, 0 adds r2, r7, 0 mov r3, r10 bl sub_8053704 _080563B8: adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08056400 adds r0, r5, 0 bl sub_806CF18 ldr r0, [r5, 0x70] movs r2, 0xA5 lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _080563E0 strb r0, [r1] adds r0, r5, 0 bl sub_8079764 _080563E0: movs r0, 0x1 add r9, r0 _080563E4: ldr r1, [sp, 0x124] cmp r9, r1 bge _08056400 movs r2, 0x1 str r2, [sp, 0x12C] ldr r0, _08056458 ldrb r0, [r0] cmp r0, 0 bne _08056400 ldr r0, _0805645C ldrb r0, [r0] cmp r0, 0 bne _08056400 b _08056280 _08056400: ldr r0, _08056460 ldrb r0, [r0] cmp r0, 0 beq _08056418 adds r0, r5, 0 adds r1, r5, 0 bl SendImmobilizeEndMessage adds r0, r5, 0 adds r1, r5, 0 bl sub_807A6C8 _08056418: ldr r0, _08056464 ldrb r0, [r0] cmp r0, 0 beq _08056444 adds r0, r5, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08056444 ldr r4, [r5, 0x70] adds r0, r5, 0 adds r1, r5, 0 movs r2, 0 bl sub_8077AE4 adds r4, 0xFB ldrb r0, [r4] cmp r0, 0 bne _08056444 movs r0, 0x1 strb r0, [r4] _08056444: movs r0, 0x1 _08056446: add sp, 0x130 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08056458: .4byte gUnknown_202F220 _0805645C: .4byte gUnknown_202F221 _08056460: .4byte gUnknown_202F21A _08056464: .4byte gUnknown_202F219 thumb_func_end sub_8055FA0 thumb_func_start sub_8056468 sub_8056468: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 mov r9, r2 adds r4, r3, 0 ldr r0, [sp, 0x28] lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 mov r10, r0 adds r0, r6, 0 bl sub_8045888 lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r7, r1, 31 mov r2, r9 cmp r2, 0 beq _08056518 movs r5, 0 b _080564A6 _080564A2: adds r4, 0x4 adds r5, 0x1 _080564A6: cmp r5, 0x40 bgt _080564BC ldr r0, [r4] cmp r0, 0 beq _080564BC bl sub_8045888 lsls r0, 24 cmp r0, 0 beq _080564A2 movs r7, 0x1 _080564BC: cmp r7, 0 beq _080564F2 ldr r0, _080564DC ldr r1, [r6, 0x70] movs r2, 0 bl SetMessageArgument_2 ldr r0, [sp, 0x24] cmp r0, 0 bne _080564E4 ldr r0, _080564E0 mov r1, r8 movs r2, 0 bl sub_80928C0 b _080564F2 .align 2, 0 _080564DC: .4byte gAvailablePokemonNames _080564E0: .4byte gUnknown_202DE58 _080564E4: ldr r0, _08056508 ldr r2, [sp, 0x24] lsls r1, r2, 24 lsrs r1, 24 movs r2, 0 bl sub_8090DC4 _080564F2: mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _0805650C cmp r1, r0 beq _08056510 adds r0, r6, 0 mov r1, r9 bl sub_805239C b _08056518 .align 2, 0 _08056508: .4byte gUnknown_202DE58 _0805650C: .4byte 0x00000163 _08056510: adds r0, r6, 0 mov r1, r9 bl sub_80522E8 _08056518: cmp r7, 0 beq _08056544 ldr r2, [sp] cmp r2, 0 beq _0805652A adds r0, r6, 0 mov r1, r8 movs r2, 0x1 b _08056530 _0805652A: adds r0, r6, 0 mov r1, r8 movs r2, 0 _08056530: bl sub_8040BB0 lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r6, 0 mov r1, r8 bl sub_8040DA0 b _08056550 _08056544: ldr r0, [r6, 0x70] adds r0, 0x46 ldrb r1, [r0] adds r0, r6, 0 bl sub_806CE68 _08056550: 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 thumb_func_end sub_8056468 thumb_func_start sub_8056564 sub_8056564: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 adds r4, r3, 0 ldr r0, [r6, 0x70] mov r8, r0 ldr r0, _08056680 ldr r0, [r0] ldr r1, _08056684 adds r0, r1 ldrb r0, [r0] mov r9, r0 cmp r0, 0 beq _0805658C b _080566E4 _0805658C: mov r2, r8 movs r1, 0x4 ldrsh r0, [r2, r1] bl GetPokemonSize lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _080565A4 cmp r4, 0x1 bne _080565A4 b _080566E4 _080565A4: ldrh r4, [r7, 0x2] adds r0, r6, 0 bl GetWeather adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800ECB8 movs r2, 0x6 ldrsh r4, [r0, r2] movs r1, 0 ldrsh r0, [r5, r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 11 movs r0, 0x2 ldrsh r2, [r5, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 11 movs r2, 0x80 lsls r2, 5 adds r3, r0, r2 movs r2, 0xC0 lsls r2, 4 adds r0, r1, r2 cmp r0, 0 bge _080565EC adds r0, 0xFF _080565EC: lsls r0, 8 lsrs r0, 16 ldr r1, _08056688 ldr r2, [sp, 0x14] ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] adds r0, r3, 0 cmp r0, 0 bge _08056602 adds r0, 0xFF _08056602: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _0805668C ands r2, r1 orrs r2, r0 str r2, [sp, 0x14] cmp r4, 0 beq _080566E4 ldrh r4, [r7, 0x2] adds r0, r6, 0 bl GetWeather adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 lsls r0, 16 lsrs r0, 16 bl sub_800EF10 bl sub_800EF64 movs r0, 0x5E bl sub_803E46C mov r0, r8 movs r1, 0x4 ldrsh r5, [r0, r1] ldrh r4, [r7, 0x2] adds r0, r6, 0 bl GetWeather adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_800E710 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08056690 add r0, sp, 0x8 adds r1, r6, 0 adds r1, 0x28 lsls r2, 24 lsrs r2, 24 bl sub_800569C b _08056694 .align 2, 0 _08056680: .4byte gDungeonGlobalData _08056684: .4byte 0x0001820a _08056688: .4byte 0xffff0000 _0805668C: .4byte 0x0000ffff _08056690: mov r2, r9 str r2, [sp, 0x8] _08056694: ldrh r4, [r7, 0x2] adds r0, r6, 0 bl GetWeather adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_80412E0 mov r1, sp strh r0, [r1] mov r2, r8 ldrh r0, [r2, 0x4] strh r0, [r1, 0x2] ldr r0, [r6, 0xC] cmp r0, 0 bge _080566BC adds r0, 0xFF _080566BC: asrs r0, 8 strh r0, [r1, 0x4] mov r1, sp ldr r0, [r6, 0x10] cmp r0, 0 bge _080566CA adds r0, 0xFF _080566CA: asrs r0, 8 strh r0, [r1, 0x6] mov r0, r8 adds r0, 0x46 ldrb r0, [r0] str r0, [sp, 0xC] movs r0, 0 str r0, [sp, 0x10] add r1, sp, 0x14 mov r0, sp bl sub_800E308 b _080566E8 _080566E4: movs r0, 0x1 negs r0, r0 _080566E8: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056564 thumb_func_start sub_80566F8 sub_80566F8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x54 mov r10, r0 str r1, [sp, 0x1C] str r2, [sp, 0x20] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x24] movs r0, 0 str r0, [sp, 0x34] movs r7, 0 mov r1, r10 ldr r6, [r1, 0x70] ldr r2, [sp, 0x1C] ldrh r0, [r2, 0x2] bl sub_800ED20 movs r1, 0x2 str r1, [sp, 0x44] cmp r0, 0x1 beq _08056736 movs r2, 0x6 str r2, [sp, 0x44] cmp r0, 0x2 bne _08056736 movs r0, 0x3 str r0, [sp, 0x44] _08056736: mov r1, r10 ldrh r0, [r1, 0x6] lsls r0, 16 ldrh r3, [r1, 0x4] orrs r3, r0 str r3, [sp, 0xC] ldr r1, _08056814 adds r2, r6, 0 adds r2, 0x46 ldrb r0, [r2] lsls r0, 2 adds r0, r1 movs r1, 0 ldrsh r6, [r0, r1] str r6, [sp, 0x28] movs r1, 0x2 ldrsh r6, [r0, r1] str r6, [sp, 0x2C] movs r6, 0 str r6, [sp, 0x30] mov r8, r2 ldr r0, [sp, 0x20] cmp r6, r0 bge _080567EC add r0, sp, 0xC movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 blt _080567EC asrs r0, r3, 16 cmp r0, 0 blt _080567EC cmp r1, 0x37 bgt _080567EC cmp r0, 0x1F bgt _080567EC add r6, sp, 0xC _08056780: ldrh r0, [r6] ldr r1, [sp, 0x28] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r2, _08056818 ands r2, r3 orrs r2, r0 asrs r0, r2, 16 ldr r1, [sp, 0x2C] adds r0, r1 lsls r0, 16 ldr r1, _0805681C ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] adds r7, 0x1 movs r2, 0 ldrsh r0, [r6, r2] asrs r1, 16 bl GetMapTile_1 adds r2, r0, 0 ldrh r1, [r2] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080567EC ldr r0, [r2, 0x10] cmp r0, 0 beq _080567C6 bl GetEntityType cmp r0, 0x1 beq _080567EC _080567C6: ldr r0, [sp, 0x30] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 bge _080567EC movs r0, 0 ldrsh r2, [r6, r0] cmp r2, 0 blt _080567EC ldr r0, [sp, 0xC] asrs r1, r0, 16 adds r3, r0, 0 cmp r1, 0 blt _080567EC cmp r2, 0x37 bgt _080567EC cmp r1, 0x1F ble _08056780 _080567EC: ldr r2, [sp, 0x1C] ldrh r1, [r2, 0x2] mov r0, r10 bl sub_805755C lsls r0, 24 cmp r0, 0 beq _08056820 mov r0, r10 ldr r1, [sp, 0x1C] bl MoveMatchesChargingStatus lsls r0, 24 cmp r0, 0 bne _08056820 movs r6, 0x1 negs r6, r6 str r6, [sp, 0x40] b _0805682E .align 2, 0 _08056814: .4byte gAdjacentTileOffsets _08056818: .4byte 0xffff0000 _0805681C: .4byte 0x0000ffff _08056820: mov r0, r10 add r1, sp, 0xC ldr r2, [sp, 0x1C] ldr r3, [sp, 0x20] bl sub_8056564 str r0, [sp, 0x40] _0805682E: mov r0, r10 ldrh r1, [r0, 0x4] add r0, sp, 0xC strh r1, [r0] mov r2, r10 ldrh r1, [r2, 0x6] strh r1, [r0, 0x2] ldr r1, _08056874 mov r6, r8 ldrb r0, [r6] lsls r0, 2 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] str r1, [sp, 0x28] movs r1, 0x2 ldrsh r6, [r0, r1] str r6, [sp, 0x2C] movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 adds r1, r7, 0 muls r1, r0 ldr r2, [sp, 0x20] cmp r2, 0x1 ble _08056878 adds r6, r1, 0 adds r6, 0x8 str r6, [sp, 0x38] cmp r6, 0x3F ble _0805687C movs r0, 0x40 str r0, [sp, 0x38] b _0805687C .align 2, 0 _08056874: .4byte gAdjacentTileOffsets _08056878: movs r2, 0x20 str r2, [sp, 0x38] _0805687C: movs r6, 0 mov r9, r6 movs r0, 0x80 lsls r0, 12 bl __divsi3 str r0, [sp, 0x48] ldr r1, _0805696C mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x3C] ldr r0, _08056970 ldr r0, [r0] ldr r6, _08056974 adds r0, r6 movs r1, 0x1 strb r1, [r0] movs r0, 0 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 blt _080568B0 b _08056AB6 _080568B0: add r0, sp, 0xC movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bge _080568BC b _08056AB6 _080568BC: ldrh r0, [r0, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 bge _080568C8 b _08056AB6 _080568C8: cmp r1, 0x37 ble _080568CE b _08056AB6 _080568CE: cmp r0, 0x1F ble _080568D4 b _08056AB6 _080568D4: add r7, sp, 0xC _080568D6: ldr r6, [sp, 0xC] ldrh r0, [r7] ldr r1, [sp, 0x28] adds r0, r1 strh r0, [r7] ldrh r0, [r7, 0x2] ldr r2, [sp, 0x2C] adds r0, r2 strh r0, [r7, 0x2] add r0, sp, 0xC bl sub_803F428 lsls r0, 24 cmp r0, 0 bne _080568F6 b _08056A00 _080568F6: ldr r0, _08056970 ldr r0, [r0] ldr r1, _08056978 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08056906 b _08056A00 _08056906: lsls r1, r6, 16 asrs r1, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r2, 0xC0 lsls r2, 4 adds r4, r0, r2 asrs r1, r6, 16 lsls r0, r1, 1 adds r0, r1 lsls r0, 11 movs r6, 0x80 lsls r6, 5 adds r5, r0, r6 ldr r1, [sp, 0x28] lsls r0, r1, 8 ldr r6, [sp, 0x44] adds r2, r6, 0 muls r2, r0 str r2, [sp, 0x4C] ldr r1, [sp, 0x2C] lsls r0, r1, 8 adds r2, r6, 0 muls r2, r0 str r2, [sp, 0x50] movs r6, 0 movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 mov r8, r0 cmp r6, r8 bge _08056A0E _0805694A: ldr r0, [sp, 0x40] cmp r0, 0 blt _080569D4 ldr r1, [sp, 0x24] cmp r1, 0 beq _0805697C mov r0, r9 cmp r0, 0 bge _0805695E adds r0, 0xFF _0805695E: asrs r0, 8 bl sub_8009C7C ldr r2, [sp, 0x38] adds r3, r0, 0 muls r3, r2 b _0805697E .align 2, 0 _0805696C: .4byte gUnknown_81069D4 _08056970: .4byte gDungeonGlobalData _08056974: .4byte 0x0001c05e _08056978: .4byte 0x0001820a _0805697C: movs r3, 0 _0805697E: adds r0, r4, 0 cmp r4, 0 bge _08056986 adds r0, 0xFF _08056986: lsls r0, 8 lsrs r0, 16 ldr r1, _080569F0 ldr r2, [sp, 0x10] ands r2, r1 orrs r2, r0 str r2, [sp, 0x10] subs r0, r5, r3 cmp r0, 0 bge _0805699C adds r0, 0xFF _0805699C: lsls r0, 8 lsrs r0, 16 lsls r0, 16 ldr r1, _080569F4 ands r2, r1 orrs r2, r0 str r2, [sp, 0x10] adds r2, r5, 0 cmp r2, 0 bge _080569B2 adds r2, 0xFF _080569B2: asrs r2, 8 ldr r0, _080569F8 ldr r0, [r0] ldr r1, _080569FC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] subs r2, r0 lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 ldr r0, [sp, 0x3C] adds r2, r0 ldr r0, [sp, 0x40] add r1, sp, 0x10 bl sub_800E3AC _080569D4: movs r0, 0x30 bl sub_803E46C ldr r1, [sp, 0x4C] adds r4, r1 ldr r2, [sp, 0x50] adds r5, r2 ldr r0, [sp, 0x48] add r9, r0 adds r6, 0x1 cmp r6, r8 blt _0805694A b _08056A0E .align 2, 0 _080569F0: .4byte 0xffff0000 _080569F4: .4byte 0x0000ffff _080569F8: .4byte gDungeonGlobalData _080569FC: .4byte 0x000181f2 _08056A00: movs r0, 0x18 ldr r1, [sp, 0x44] bl __divsi3 ldr r1, [sp, 0x48] muls r0, r1 add r9, r0 _08056A0E: movs r2, 0 ldrsh r0, [r7, r2] movs r6, 0x2 ldrsh r1, [r7, r6] bl GetMapTile_1 adds r6, r0, 0 ldrh r1, [r6] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08056AB6 ldr r0, [r6, 0x10] cmp r0, 0 beq _08056A8E bl GetEntityType cmp r0, 0x1 bne _08056A8E ldr r0, [r6, 0x10] ldr r1, [sp, 0x1C] bl sub_80571F0 lsls r0, 24 cmp r0, 0 bne _08056A8E ldr r0, [sp, 0x34] cmp r0, 0 bgt _08056AB6 movs r4, 0 mov r2, r10 ldr r1, [r2, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r2, [r0] cmp r2, 0x2 beq _08056A64 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0x1 beq _08056A64 cmp r2, 0x4 bne _08056A66 _08056A64: movs r4, 0x1 _08056A66: mov r0, r10 ldr r1, [sp, 0x1C] movs r2, 0 bl GetMoveTargetingFlagsForPokemon adds r2, r0, 0 lsls r2, 16 asrs r2, 16 ldr r0, [r6, 0x10] str r0, [sp] ldr r6, [sp, 0x1C] str r6, [sp, 0x4] str r4, [sp, 0x8] ldr r0, [sp, 0x34] add r1, sp, 0x14 mov r3, r10 bl sub_8056F80 str r0, [sp, 0x34] b _08056AB6 _08056A8E: ldr r0, [sp, 0x30] adds r0, 0x1 str r0, [sp, 0x30] ldr r1, [sp, 0x20] cmp r0, r1 bge _08056AB6 movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 blt _08056AB6 ldrh r0, [r7, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0 blt _08056AB6 cmp r1, 0x37 bgt _08056AB6 cmp r0, 0x1F bgt _08056AB6 b _080568D6 _08056AB6: ldr r6, [sp, 0x40] cmp r6, 0 blt _08056AC2 adds r0, r6, 0 bl sub_800DC14 _08056AC2: movs r0, 0x1 bl sub_804178C ldr r0, _08056AF4 ldr r0, [r0] ldr r1, _08056AF8 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r6, [sp, 0x34] cmp r6, 0 ble _08056AFC lsls r1, r6, 2 add r0, sp, 0x14 adds r1, r0 str r2, [r1] ldr r1, [sp, 0x78] str r1, [sp] mov r1, r10 ldr r2, [sp, 0x1C] ldr r3, [sp, 0x74] bl sub_8053704 b _08056B22 .align 2, 0 _08056AF4: .4byte gDungeonGlobalData _08056AF8: .4byte 0x0001c05e _08056AFC: ldr r0, [sp, 0x20] cmp r0, 0x1 bne _08056B22 add r0, sp, 0xC bl sub_803F428 lsls r0, 24 cmp r0, 0 beq _08056B22 movs r0, 0x1 movs r1, 0x4A bl sub_803E708 mov r0, r10 movs r1, 0 ldr r2, [sp, 0x1C] add r3, sp, 0xC bl sub_8041168 _08056B22: add sp, 0x54 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80566F8 thumb_func_start sub_8056B34 sub_8056B34: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r7, r0, 0 adds r6, r1, 0 mov r8, r2 adds r1, r3, 0 ldr r4, [sp, 0x24] lsls r4, 24 lsrs r4, 24 mov r0, r8 bl GetMoveAccuracy adds r5, r0, 0 movs r0, 0x64 bl DungeonRandomCapped str r0, [sp] ldr r0, [r7, 0x70] mov r9, r0 ldr r1, [r6, 0x70] mov r10, r1 cmp r4, 0 beq _08056B70 cmp r7, r6 bne _08056B70 b _08056CD4 _08056B70: mov r0, r8 ldrh r1, [r0, 0x2] ldr r0, _08056CC4 cmp r1, r0 bne _08056B8A adds r0, r7, 0 movs r1, 0x4 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08056B8A b _08056CD4 _08056B8A: mov r0, r9 adds r0, 0xDC ldrb r0, [r0] cmp r0, 0x1 bne _08056B96 b _08056CD4 _08056B96: cmp r0, 0x2 bne _08056B9C b _08056CBE _08056B9C: cmp r5, 0x64 ble _08056BA2 b _08056CD4 _08056BA2: adds r0, r6, 0 movs r1, 0x23 bl HasItem lsls r0, 24 cmp r0, 0 beq _08056BB6 ldr r0, _08056CC8 ldr r0, [r0] subs r5, r0 _08056BB6: adds r0, r6, 0 movs r1, 0x5 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08056BCA ldr r0, _08056CCC ldr r0, [r0] subs r5, r0 _08056BCA: mov r1, r9 movs r0, 0x24 ldrsh r4, [r1, r0] adds r0, r7, 0 movs r1, 0x33 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08056BE0 adds r4, 0x2 _08056BE0: mov r1, r8 ldrh r0, [r1, 0x2] cmp r0, 0x40 bne _08056BFC adds r0, r7, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08056CD4 cmp r0, 0x1 bne _08056BFC subs r4, 0x2 _08056BFC: cmp r4, 0 bge _08056C02 movs r4, 0 _08056C02: cmp r4, 0x14 ble _08056C08 movs r4, 0x14 _08056C08: ldr r1, _08056CD0 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _08056C16 movs r0, 0 _08056C16: movs r1, 0xC8 lsls r1, 7 cmp r0, r1 ble _08056C20 adds r0, r1, 0 _08056C20: muls r5, r0 adds r0, r5, 0 cmp r5, 0 bge _08056C2A adds r0, 0xFF _08056C2A: asrs r5, r0, 8 mov r0, r10 movs r1, 0x26 ldrsh r4, [r0, r1] adds r0, 0xF5 ldrb r0, [r0] cmp r0, 0 beq _08056C3C movs r4, 0xA _08056C3C: adds r0, r6, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08056C5A adds r0, r6, 0 movs r1, 0x1D bl HasAbility lsls r0, 24 cmp r0, 0 beq _08056C5A adds r4, 0x2 _08056C5A: adds r0, r7, 0 movs r1, 0x30 bl HasAbility lsls r0, 24 cmp r0, 0 beq _08056C86 mov r0, r8 bl GetMoveType lsls r0, 24 lsrs r0, 24 bl sub_8092354 movs r1, 0 lsls r0, 24 cmp r0, 0 bne _08056C80 movs r1, 0x1 _08056C80: cmp r1, 0 bne _08056C86 adds r4, 0x2 _08056C86: cmp r4, 0 bge _08056C8C movs r4, 0 _08056C8C: cmp r4, 0x14 ble _08056C92 movs r4, 0x14 _08056C92: ldr r0, _08056CD0 lsls r1, r4, 2 adds r0, 0x54 adds r1, r0 ldr r0, [r1] cmp r0, 0 bge _08056CA2 movs r0, 0 _08056CA2: movs r1, 0xC8 lsls r1, 7 cmp r0, r1 ble _08056CAC adds r0, r1, 0 _08056CAC: muls r5, r0 adds r0, r5, 0 cmp r5, 0 bge _08056CB6 adds r0, 0xFF _08056CB6: asrs r5, r0, 8 ldr r0, [sp] cmp r0, r5 blt _08056CD4 _08056CBE: movs r0, 0 b _08056CD6 .align 2, 0 _08056CC4: .4byte 0x00000163 _08056CC8: .4byte gUnknown_80F519C _08056CCC: .4byte gUnknown_80F51A0 _08056CD0: .4byte gUnknown_80F50F4 _08056CD4: movs r0, 0x1 _08056CD6: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056B34 thumb_func_start sub_8056CE8 sub_8056CE8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 str r0, [sp, 0x10] adds r5, r1, 0 mov r8, r2 movs r0, 0 mov r9, r0 movs r3, 0 ldr r1, [r5, 0x70] adds r0, r1, 0 adds r0, 0xBC ldrb r2, [r0] cmp r2, 0x2 beq _08056D18 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0x1 beq _08056D18 cmp r2, 0x4 bne _08056D1A _08056D18: movs r3, 0x1 _08056D1A: mov r10, r3 movs r1, 0 ldr r0, [r5, 0x70] adds r0, 0xBC ldrb r0, [r0] cmp r0, 0x2 beq _08056D2C cmp r0, 0x4 bne _08056D2E _08056D2C: movs r1, 0x1 _08056D2E: str r1, [sp, 0x14] adds r0, r5, 0 movs r1, 0x7 bl HasIQSkill lsls r0, 24 cmp r0, 0 beq _08056D44 movs r1, 0 str r1, [sp, 0x14] mov r10, r1 _08056D44: adds r0, r5, 0 mov r1, r8 movs r2, 0 bl GetMoveTargetingFlagsForPokemon lsls r0, 16 asrs r7, r0, 16 movs r0, 0xF ands r0, r7 cmp r0, 0x4 bne _08056D86 adds r0, r5, 0 mov r1, r8 bl MoveMatchesChargingStatus lsls r0, 24 lsrs r4, r0, 24 mov r2, r8 ldrh r0, [r2, 0x2] cmp r0, 0x97 bne _08056D7E adds r0, r5, 0 bl GetWeather lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08056D7E movs r4, 0x1 _08056D7E: movs r7, 0x73 cmp r4, 0 beq _08056D86 movs r7, 0 _08056D86: movs r1, 0xF0 ands r1, r7 cmp r1, 0 bne _08056DA6 adds r0, r5, 0 bl sub_80696A8 cmp r0, 0 bne _08056D9A b _08056F64 _08056D9A: str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] b _08056F56 _08056DA6: cmp r1, 0x10 beq _08056DAE cmp r1, 0x20 bne _08056E34 _08056DAE: ldr r0, [r5, 0x70] cmp r1, 0x20 bne _08056DBC adds r0, 0x46 ldrb r4, [r0] movs r0, 0x8 b _08056DCA _08056DBC: adds r0, 0x46 ldrb r0, [r0] subs r4, r0, 0x1 movs r0, 0x3 cmp r0, 0 bne _08056DCA b _08056F64 _08056DCA: adds r6, r0, 0 _08056DCC: movs r0, 0x7 ands r4, r0 ldr r0, _08056E28 lsls r3, r4, 2 adds r3, r0 ldrh r0, [r3] ldrh r2, [r5, 0x4] adds r0, r2 lsls r0, 16 lsrs r0, 16 ldr r2, _08056E2C ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] ldrh r2, [r3, 0x2] ldrh r0, [r5, 0x6] adds r2, r0 lsls r2, 16 ldr r0, _08056E30 ands r1, r0 orrs r1, r2 str r1, [sp, 0xC] add r0, sp, 0xC bl sub_804AD0C cmp r0, 0 beq _08056E1C str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056E1C: subs r6, 0x1 adds r4, 0x1 cmp r6, 0 bne _08056DCC b _08056F64 .align 2, 0 _08056E28: .4byte gAdjacentTileOffsets _08056E2C: .4byte 0xffff0000 _08056E30: .4byte 0x0000ffff _08056E34: cmp r1, 0x30 bne _08056E9C movs r6, 0 _08056E3A: ldr r0, _08056E74 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08056E78 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08056E94 adds r0, r5, 0 adds r1, r4, 0 bl sub_8045A70 lsls r0, 24 cmp r0, 0 beq _08056E94 cmp r4, r5 bne _08056E7C str r5, [sp] mov r0, r8 str r0, [sp, 0x4] ldr r1, [sp, 0x14] str r1, [sp, 0x8] b _08056E86 .align 2, 0 _08056E74: .4byte gDungeonGlobalData _08056E78: .4byte 0x000135cc _08056E7C: str r4, [sp] mov r2, r8 str r2, [sp, 0x4] mov r0, r10 str r0, [sp, 0x8] _08056E86: mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056E94: adds r6, 0x1 cmp r6, 0x13 ble _08056E3A b _08056F64 _08056E9C: cmp r1, 0x40 bne _08056EEA movs r4, 0 adds r0, r5, 0 bl sub_80696FC cmp r0, 0 beq _08056ED0 mov r4, r9 str r0, [sp] mov r1, r8 str r1, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] adds r0, r4, 0 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 mov r1, r9 eors r1, r4 negs r0, r1 orrs r0, r1 lsrs r4, r0, 31 _08056ED0: cmp r4, 0 bne _08056F64 adds r0, r5, 0 bl sub_806977C cmp r0, 0 beq _08056F64 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] b _08056F56 _08056EEA: cmp r1, 0x50 beq _08056F64 cmp r1, 0x80 bne _08056F00 adds r0, r5, 0 bl sub_80696FC cmp r0, 0 beq _08056F64 str r0, [sp] b _08056F4E _08056F00: cmp r1, 0x60 bne _08056F48 movs r6, 0 _08056F06: ldr r0, _08056F40 ldr r0, [r0] lsls r1, r6, 2 ldr r2, _08056F44 adds r0, r2 adds r0, r1 ldr r4, [r0] adds r0, r4, 0 bl EntityExists lsls r0, 24 cmp r0, 0 beq _08056F38 str r4, [sp] mov r0, r8 str r0, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056F38: adds r6, 0x1 cmp r6, 0x13 ble _08056F06 b _08056F64 .align 2, 0 _08056F40: .4byte gDungeonGlobalData _08056F44: .4byte 0x000135cc _08056F48: cmp r1, 0x70 bne _08056F64 str r5, [sp] _08056F4E: mov r2, r8 str r2, [sp, 0x4] mov r0, r10 str r0, [sp, 0x8] _08056F56: mov r0, r9 ldr r1, [sp, 0x10] adds r2, r7, 0 adds r3, r5, 0 bl sub_8056F80 mov r9, r0 _08056F64: mov r1, r9 lsls r0, r1, 2 ldr r2, [sp, 0x10] adds r0, r2 movs r1, 0 str r1, [r0] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8056CE8 thumb_func_start sub_8056F80 sub_8056F80: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 adds r4, r3, 0 ldr r7, [sp, 0x18] ldr r0, [sp, 0x20] lsls r2, 16 asrs r2, 16 lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r6, 0 ldr r1, [r7, 0x70] ldr r3, [sp, 0x1C] ldrh r0, [r3, 0x2] cmp r0, 0xFC bne _08056FAA cmp r4, r7 beq _08057060 _08056FAA: ldrb r0, [r1, 0x8] cmp r0, 0x1 beq _08057060 adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] cmp r0, 0x4 beq _08057060 cmp r0, 0x1 beq _08057060 mov r0, r12 cmp r0, 0 bne _0805702C movs r0, 0xF ands r0, r2 cmp r0, 0 beq _08056FD0 cmp r0, 0x4 bne _08056FE6 _08056FD0: adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805702E b _0805702C _08056FE6: cmp r0, 0x1 bne _08056FFE adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 cmp r0, 0 bne _0805702E b _0805702C _08056FFE: cmp r0, 0x2 beq _0805702C cmp r0, 0x5 bne _0805700C cmp r4, r7 beq _0805702E b _0805702C _0805700C: cmp r0, 0x6 bne _08057028 adds r0, r4, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0 bl CanTarget lsls r0, 24 cmp r0, 0 bne _0805702E cmp r4, r7 beq _0805702E b _0805702C _08057028: cmp r0, 0x3 bne _0805702E _0805702C: movs r6, 0x1 _0805702E: adds r0, r7, 0 ldr r1, [sp, 0x1C] bl sub_80571F0 lsls r0, 24 cmp r0, 0 beq _0805703E movs r6, 0 _0805703E: cmp r6, 0 beq _08057060 cmp r5, 0x3F bgt _08057060 lsls r0, r5, 2 add r0, r8 str r7, [r0] ldr r0, [r7, 0x70] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0805705E ldr r1, _0805706C ldr r0, [r1] cmp r0, 0 bne _0805705E str r7, [r1] _0805705E: adds r5, 0x1 _08057060: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805706C: .4byte gUnknown_203B438 thumb_func_end sub_8056F80 thumb_func_start sub_8057070 sub_8057070: push {lr} bl GetMoveHitCount cmp r0, 0 bne _08057082 movs r0, 0x2 movs r1, 0x6 bl sub_808411C _08057082: pop {r1} bx r1 thumb_func_end sub_8057070 thumb_func_start sub_8057088 sub_8057088: push {lr} ldrh r1, [r0, 0x2] cmp r1, 0xEE beq _080570A4 cmp r1, 0xEF beq _080570A4 cmp r1, 0xF2 beq _080570A4 movs r0, 0x88 lsls r0, 1 cmp r1, r0 beq _080570A4 movs r0, 0 b _080570A6 _080570A4: movs r0, 0x1 _080570A6: pop {r1} bx r1 thumb_func_end sub_8057088 .align 2, 0