.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_805D4F4 sub_805D4F4: @ 805D4F4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805D510 @ =gMapObjects adds r0, r2 ldr r2, _0805D514 @ =sub_805D518 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D510: .4byte gMapObjects _0805D514: .4byte sub_805D518 thumb_func_end sub_805D4F4 thumb_func_start sub_805D518 sub_805D518: @ 805D518 push {r4,lr} ldr r3, _0805D534 @ =gUnknown_083752E4 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D534: .4byte gUnknown_083752E4 thumb_func_end sub_805D518 thumb_func_start sub_805D538 sub_805D538: @ 805D538 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805D538 thumb_func_start sub_805D54C sub_805D54C: @ 805D54C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D54C thumb_func_start sub_805D578 sub_805D578: @ 805D578 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D5AE ldr r4, _0805D5B8 @ =gUnknown_0837520C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805D5AE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D5B8: .4byte gUnknown_0837520C thumb_func_end sub_805D578 thumb_func_start sub_805D5BC sub_805D5BC: @ 805D5BC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805D5DA adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805D5E2 _0805D5DA: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805D5E4 _0805D5E2: movs r0, 0 _0805D5E4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D5BC thumb_func_start sub_805D5EC sub_805D5EC: @ 805D5EC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805D630 @ =gUnknown_083752A0 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x1 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805D61C bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805D61C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D630: .4byte gUnknown_083752A0 thumb_func_end sub_805D5EC thumb_func_start sub_805D634 sub_805D634: @ 805D634 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805D650 @ =gMapObjects adds r0, r2 ldr r2, _0805D654 @ =sub_805D658 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D650: .4byte gMapObjects _0805D654: .4byte sub_805D658 thumb_func_end sub_805D634 thumb_func_start sub_805D658 sub_805D658: @ 805D658 push {r4,lr} ldr r3, _0805D674 @ =gUnknown_083752F8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D674: .4byte gUnknown_083752F8 thumb_func_end sub_805D658 thumb_func_start sub_805D678 sub_805D678: @ 805D678 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805D678 thumb_func_start sub_805D68C sub_805D68C: @ 805D68C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D68C thumb_func_start sub_805D6B8 sub_805D6B8: @ 805D6B8 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D6EE ldr r4, _0805D6F8 @ =gUnknown_0837520C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805D6EE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D6F8: .4byte gUnknown_0837520C thumb_func_end sub_805D6B8 thumb_func_start sub_805D6FC sub_805D6FC: @ 805D6FC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805D71A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805D722 _0805D71A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805D724 _0805D722: movs r0, 0 _0805D724: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D6FC thumb_func_start sub_805D72C sub_805D72C: @ 805D72C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805D770 @ =gUnknown_083752C0 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x2 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805D75C bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805D75C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D770: .4byte gUnknown_083752C0 thumb_func_end sub_805D72C thumb_func_start sub_805D774 sub_805D774: @ 805D774 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805D790 @ =gMapObjects adds r0, r2 ldr r2, _0805D794 @ =sub_805D798 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D790: .4byte gMapObjects _0805D794: .4byte sub_805D798 thumb_func_end sub_805D774 thumb_func_start sub_805D798 sub_805D798: @ 805D798 push {r4,lr} ldr r3, _0805D7B4 @ =gUnknown_0837530C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D7B4: .4byte gUnknown_0837530C thumb_func_end sub_805D798 thumb_func_start sub_805D7B8 sub_805D7B8: @ 805D7B8 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805D7B8 thumb_func_start sub_805D7CC sub_805D7CC: @ 805D7CC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D7CC thumb_func_start sub_805D7F8 sub_805D7F8: @ 805D7F8 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D82E ldr r4, _0805D838 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805D82E: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D838: .4byte gUnknown_0837521C thumb_func_end sub_805D7F8 thumb_func_start sub_805D83C sub_805D83C: @ 805D83C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805D85A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805D862 _0805D85A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805D864 _0805D862: movs r0, 0 _0805D864: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D83C thumb_func_start sub_805D86C sub_805D86C: @ 805D86C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805D8B0 @ =gUnknown_08375320 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x3 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805D89C bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805D89C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D8B0: .4byte gUnknown_08375320 thumb_func_end sub_805D86C thumb_func_start sub_805D8B4 sub_805D8B4: @ 805D8B4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805D8D0 @ =gMapObjects adds r0, r2 ldr r2, _0805D8D4 @ =sub_805D8D8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D8D0: .4byte gMapObjects _0805D8D4: .4byte sub_805D8D8 thumb_func_end sub_805D8B4 thumb_func_start sub_805D8D8 sub_805D8D8: @ 805D8D8 push {r4,lr} ldr r3, _0805D8F4 @ =gUnknown_08375324 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D8F4: .4byte gUnknown_08375324 thumb_func_end sub_805D8D8 thumb_func_start sub_805D8F8 sub_805D8F8: @ 805D8F8 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805D8F8 thumb_func_start sub_805D90C sub_805D90C: @ 805D90C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D90C thumb_func_start sub_805D938 sub_805D938: @ 805D938 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D96E ldr r4, _0805D978 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805D96E: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D978: .4byte gUnknown_0837521C thumb_func_end sub_805D938 thumb_func_start sub_805D97C sub_805D97C: @ 805D97C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805D99A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805D9A2 _0805D99A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805D9A4 _0805D9A2: movs r0, 0 _0805D9A4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D97C thumb_func_start sub_805D9AC sub_805D9AC: @ 805D9AC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805D9F0 @ =gUnknown_08375338 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x4 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805D9DC bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805D9DC: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805D9F0: .4byte gUnknown_08375338 thumb_func_end sub_805D9AC thumb_func_start sub_805D9F4 sub_805D9F4: @ 805D9F4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805DA10 @ =gMapObjects adds r0, r2 ldr r2, _0805DA14 @ =sub_805DA18 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DA10: .4byte gMapObjects _0805DA14: .4byte sub_805DA18 thumb_func_end sub_805D9F4 thumb_func_start sub_805DA18 sub_805DA18: @ 805DA18 push {r4,lr} ldr r3, _0805DA34 @ =gUnknown_0837533C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805DA34: .4byte gUnknown_0837533C thumb_func_end sub_805DA18 thumb_func_start sub_805DA38 sub_805DA38: @ 805DA38 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805DA38 thumb_func_start sub_805DA4C sub_805DA4C: @ 805DA4C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DA4C thumb_func_start sub_805DA78 sub_805DA78: @ 805DA78 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805DAAE ldr r4, _0805DAB8 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805DAAE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805DAB8: .4byte gUnknown_0837521C thumb_func_end sub_805DA78 thumb_func_start sub_805DABC sub_805DABC: @ 805DABC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805DADA adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805DAE2 _0805DADA: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805DAE4 _0805DAE2: movs r0, 0 _0805DAE4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DABC thumb_func_start sub_805DAEC sub_805DAEC: @ 805DAEC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805DB30 @ =gUnknown_08375350 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x5 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805DB1C bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805DB1C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805DB30: .4byte gUnknown_08375350 thumb_func_end sub_805DAEC thumb_func_start sub_805DB34 sub_805DB34: @ 805DB34 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805DB50 @ =gMapObjects adds r0, r2 ldr r2, _0805DB54 @ =sub_805DB58 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DB50: .4byte gMapObjects _0805DB54: .4byte sub_805DB58 thumb_func_end sub_805DB34 thumb_func_start sub_805DB58 sub_805DB58: @ 805DB58 push {r4,lr} ldr r3, _0805DB74 @ =gUnknown_08375354 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805DB74: .4byte gUnknown_08375354 thumb_func_end sub_805DB58 thumb_func_start sub_805DB78 sub_805DB78: @ 805DB78 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805DB78 thumb_func_start sub_805DB8C sub_805DB8C: @ 805DB8C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DB8C thumb_func_start sub_805DBB8 sub_805DBB8: @ 805DBB8 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805DBEE ldr r4, _0805DBF8 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805DBEE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805DBF8: .4byte gUnknown_0837521C thumb_func_end sub_805DBB8 thumb_func_start sub_805DBFC sub_805DBFC: @ 805DBFC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805DC1A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805DC22 _0805DC1A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805DC24 _0805DC22: movs r0, 0 _0805DC24: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DBFC thumb_func_start sub_805DC2C sub_805DC2C: @ 805DC2C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805DC70 @ =gUnknown_08375368 mov r0, sp movs r2, 0x2 bl memcpy adds r0, r4, 0 movs r1, 0x6 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805DC5C bl Random movs r1, 0x1 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805DC5C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805DC70: .4byte gUnknown_08375368 thumb_func_end sub_805DC2C thumb_func_start sub_805DC74 sub_805DC74: @ 805DC74 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805DC90 @ =gMapObjects adds r0, r2 ldr r2, _0805DC94 @ =sub_805DC98 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DC90: .4byte gMapObjects _0805DC94: .4byte sub_805DC98 thumb_func_end sub_805DC74 thumb_func_start sub_805DC98 sub_805DC98: @ 805DC98 push {r4,lr} ldr r3, _0805DCB4 @ =gUnknown_0837536C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805DCB4: .4byte gUnknown_0837536C thumb_func_end sub_805DC98 thumb_func_start sub_805DCB8 sub_805DCB8: @ 805DCB8 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805DCB8 thumb_func_start sub_805DCCC sub_805DCCC: @ 805DCCC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DCCC thumb_func_start sub_805DCF8 sub_805DCF8: @ 805DCF8 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805DD2E ldr r4, _0805DD38 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805DD2E: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805DD38: .4byte gUnknown_0837521C thumb_func_end sub_805DCF8 thumb_func_start sub_805DD3C sub_805DD3C: @ 805DD3C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805DD5A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805DD62 _0805DD5A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805DD64 _0805DD62: movs r0, 0 _0805DD64: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DD3C thumb_func_start sub_805DD6C sub_805DD6C: @ 805DD6C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805DDB0 @ =gUnknown_08375380 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 movs r1, 0x7 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805DD9C bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805DD9C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805DDB0: .4byte gUnknown_08375380 thumb_func_end sub_805DD6C thumb_func_start sub_805DDB4 sub_805DDB4: @ 805DDB4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805DDD0 @ =gMapObjects adds r0, r2 ldr r2, _0805DDD4 @ =sub_805DDD8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DDD0: .4byte gMapObjects _0805DDD4: .4byte sub_805DDD8 thumb_func_end sub_805DDB4 thumb_func_start sub_805DDD8 sub_805DDD8: @ 805DDD8 push {r4,lr} ldr r3, _0805DDF4 @ =gUnknown_08375384 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805DDF4: .4byte gUnknown_08375384 thumb_func_end sub_805DDD8 thumb_func_start sub_805DDF8 sub_805DDF8: @ 805DDF8 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805DDF8 thumb_func_start sub_805DE0C sub_805DE0C: @ 805DE0C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DE0C thumb_func_start sub_805DE38 sub_805DE38: @ 805DE38 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805DE6E ldr r4, _0805DE78 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805DE6E: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805DE78: .4byte gUnknown_0837521C thumb_func_end sub_805DE38 thumb_func_start sub_805DE7C sub_805DE7C: @ 805DE7C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805DE9A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805DEA2 _0805DE9A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805DEA4 _0805DEA2: movs r0, 0 _0805DEA4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DE7C thumb_func_start sub_805DEAC sub_805DEAC: @ 805DEAC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805DEF0 @ =gUnknown_08375398 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 movs r1, 0x8 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805DEDC bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805DEDC: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805DEF0: .4byte gUnknown_08375398 thumb_func_end sub_805DEAC thumb_func_start sub_805DEF4 sub_805DEF4: @ 805DEF4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805DF10 @ =gMapObjects adds r0, r2 ldr r2, _0805DF14 @ =sub_805DF18 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DF10: .4byte gMapObjects _0805DF14: .4byte sub_805DF18 thumb_func_end sub_805DEF4 thumb_func_start sub_805DF18 sub_805DF18: @ 805DF18 push {r4,lr} ldr r3, _0805DF34 @ =gUnknown_0837539C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805DF34: .4byte gUnknown_0837539C thumb_func_end sub_805DF18 thumb_func_start sub_805DF38 sub_805DF38: @ 805DF38 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805DF38 thumb_func_start sub_805DF4C sub_805DF4C: @ 805DF4C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DF4C thumb_func_start sub_805DF78 sub_805DF78: @ 805DF78 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805DFAE ldr r4, _0805DFB8 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805DFAE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805DFB8: .4byte gUnknown_0837521C thumb_func_end sub_805DF78 thumb_func_start sub_805DFBC sub_805DFBC: @ 805DFBC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805DFDA adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805DFE2 _0805DFDA: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805DFE4 _0805DFE2: movs r0, 0 _0805DFE4: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805DFBC thumb_func_start sub_805DFEC sub_805DFEC: @ 805DFEC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E030 @ =gUnknown_083753B0 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 movs r1, 0x9 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E01C bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805E01C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E030: .4byte gUnknown_083753B0 thumb_func_end sub_805DFEC thumb_func_start sub_805E034 sub_805E034: @ 805E034 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E050 @ =gMapObjects adds r0, r2 ldr r2, _0805E054 @ =sub_805E058 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E050: .4byte gMapObjects _0805E054: .4byte sub_805E058 thumb_func_end sub_805E034 thumb_func_start sub_805E058 sub_805E058: @ 805E058 push {r4,lr} ldr r3, _0805E074 @ =gUnknown_083753B4 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E074: .4byte gUnknown_083753B4 thumb_func_end sub_805E058 thumb_func_start sub_805E078 sub_805E078: @ 805E078 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805E078 thumb_func_start sub_805E08C sub_805E08C: @ 805E08C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E08C thumb_func_start sub_805E0B8 sub_805E0B8: @ 805E0B8 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805E0EE ldr r4, _0805E0F8 @ =gUnknown_0837521C bl Random movs r5, 0x3 adds r1, r5, 0 ands r1, r0 lsls r1, 1 adds r1, r4 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r7, 0 bl sub_8064820 ldrb r1, [r6] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r6] strh r5, [r7, 0x30] _0805E0EE: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805E0F8: .4byte gUnknown_0837521C thumb_func_end sub_805E0B8 thumb_func_start sub_805E0FC sub_805E0FC: @ 805E0FC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805E11A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805E122 _0805E11A: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805E124 _0805E122: movs r0, 0 _0805E124: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E0FC thumb_func_start sub_805E12C sub_805E12C: @ 805E12C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E170 @ =gUnknown_083753C8 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 movs r1, 0xA bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E15C bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805E15C: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x30] add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E170: .4byte gUnknown_083753C8 thumb_func_end sub_805E12C thumb_func_start sub_805E174 sub_805E174: @ 805E174 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E190 @ =gMapObjects adds r0, r2 ldr r2, _0805E194 @ =sub_805E198 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E190: .4byte gMapObjects _0805E194: .4byte sub_805E198 thumb_func_end sub_805E174 thumb_func_start sub_805E198 sub_805E198: @ 805E198 push {r4,lr} ldr r3, _0805E1B4 @ =gUnknown_083753CC movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E1B4: .4byte gUnknown_083753CC thumb_func_end sub_805E198 thumb_func_start sub_805E1B8 sub_805E1B8: @ 805E1B8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E1B8 thumb_func_start sub_805E1E4 sub_805E1E4: @ 805E1E4 push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805E1FE adds r0, r4, 0 movs r1, 0x30 bl sub_8064820 movs r0, 0x2 strh r0, [r4, 0x30] _0805E1FE: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_805E1E4 thumb_func_start sub_805E208 sub_805E208: @ 805E208 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805E226 adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805E22A _0805E226: movs r0, 0x3 strh r0, [r5, 0x30] _0805E22A: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E208 thumb_func_start sub_805E234 sub_805E234: @ 805E234 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E274 @ =gUnknown_083753DC mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 movs r1, 0 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E260 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] _0805E260: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0 strh r0, [r5, 0x30] movs r0, 0x1 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E274: .4byte gUnknown_083753DC thumb_func_end sub_805E234 thumb_func_start sub_805E278 sub_805E278: @ 805E278 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E294 @ =gMapObjects adds r0, r2 ldr r2, _0805E298 @ =sub_805E29C bl meta_step pop {r0} bx r0 .align 2, 0 _0805E294: .4byte gMapObjects _0805E298: .4byte sub_805E29C thumb_func_end sub_805E278 thumb_func_start sub_805E29C sub_805E29C: @ 805E29C push {r4,lr} ldr r3, _0805E2B8 @ =gUnknown_083753E4 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E2B8: .4byte gUnknown_083753E4 thumb_func_end sub_805E29C thumb_func_start sub_805E2BC sub_805E2BC: @ 805E2BC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E2BC thumb_func_start sub_805E2E8 sub_805E2E8: @ 805E2E8 push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805E302 adds r0, r4, 0 movs r1, 0x30 bl sub_8064820 movs r0, 0x2 strh r0, [r4, 0x30] _0805E302: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_805E2E8 thumb_func_start sub_805E30C sub_805E30C: @ 805E30C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805E32A adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805E32E _0805E32A: movs r0, 0x3 strh r0, [r5, 0x30] _0805E32E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E30C thumb_func_start sub_805E338 sub_805E338: @ 805E338 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E378 @ =gUnknown_083753F4 mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 movs r1, 0 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805E364 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 add r0, sp ldrb r1, [r0] _0805E364: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0 strh r0, [r5, 0x30] movs r0, 0x1 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E378: .4byte gUnknown_083753F4 thumb_func_end sub_805E338 thumb_func_start sub_805E37C sub_805E37C: @ 805E37C push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E398 @ =gMapObjects adds r0, r2 ldr r2, _0805E39C @ =sub_805E3A0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E398: .4byte gMapObjects _0805E39C: .4byte sub_805E3A0 thumb_func_end sub_805E37C thumb_func_start sub_805E3A0 sub_805E3A0: @ 805E3A0 push {r4,lr} ldr r3, _0805E3BC @ =gUnknown_083753FC movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E3BC: .4byte gUnknown_083753FC thumb_func_end sub_805E3A0 thumb_func_start sub_805E3C0 sub_805E3C0: @ 805E3C0 push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805E3C0 thumb_func_start sub_805E3D4 sub_805E3D4: @ 805E3D4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0805E408 @ =gUnknown_0836DC09 ldrb r1, [r4, 0x6] adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 adds r0, 0x21 ldrb r0, [r0] cmp r0, 0 beq _0805E3F6 adds r0, r1, 0 bl GetOppositeDirection lsls r0, 24 lsrs r1, r0, 24 _0805E3F6: adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E408: .4byte gUnknown_0836DC09 thumb_func_end sub_805E3D4 thumb_func_start sub_805E40C sub_805E40C: @ 805E40C push {r4-r7,lr} adds r4, r0, 0 adds r7, r1, 0 adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0 beq _0805E43C ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bne _0805E43C movs r0, 0 strb r0, [r2] ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetOppositeDirection adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetDirection _0805E43C: ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl sub_805FF20 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId lsls r0, 24 lsrs r6, r0, 24 cmp r5, 0x1 bne _0805E492 adds r1, r4, 0 adds r1, 0x21 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetOppositeDirection adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetDirection ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId lsls r0, 24 lsrs r6, r0, 24 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl sub_805FF20 lsls r0, 24 lsrs r5, r0, 24 _0805E492: cmp r5, 0 beq _0805E4A4 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay16AnimId lsls r0, 24 lsrs r6, r0, 24 _0805E4A4: adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl FieldObjectSetRegularAnim ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x3 strh r0, [r7, 0x30] movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805E40C thumb_func_start sub_805E4C4 sub_805E4C4: @ 805E4C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805E4E2 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805E4E2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E4C4 thumb_func_start sub_805E4EC sub_805E4EC: @ 805E4EC push {r4,lr} adds r4, r1, 0 bl npc_reset movs r0, 0x1 strh r0, [r4, 0x30] pop {r4} pop {r1} bx r1 thumb_func_end sub_805E4EC thumb_func_start MoveFieldObjectInNextDirectionInSequence MoveFieldObjectInNextDirectionInSequence: @ 805E500 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 mov r8, r1 adds r7, r2, 0 adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x3 bne _0805E522 ldr r1, [r4, 0xC] ldr r0, [r4, 0x10] cmp r1, r0 bne _0805E522 movs r0, 0 strb r0, [r2] _0805E522: adds r5, r4, 0 adds r5, 0x21 ldrb r0, [r5] adds r0, r7, r0 ldrb r1, [r0] adds r0, r4, 0 bl FieldObjectSetDirection ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId lsls r0, 24 lsrs r6, r0, 24 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl sub_805FF20 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805E57C ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldrb r0, [r5] adds r0, r7, r0 ldrb r1, [r0] adds r0, r4, 0 bl FieldObjectSetDirection ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId lsls r0, 24 lsrs r6, r0, 24 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl sub_805FF20 lsls r0, 24 lsrs r0, 24 _0805E57C: cmp r0, 0 beq _0805E58E ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay16AnimId lsls r0, 24 lsrs r6, r0, 24 _0805E58E: adds r0, r4, 0 mov r1, r8 adds r2, r6, 0 bl FieldObjectSetRegularAnim ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 mov r1, r8 strh r0, [r1, 0x30] movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end MoveFieldObjectInNextDirectionInSequence thumb_func_start sub_805E5B4 sub_805E5B4: @ 805E5B4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805E5D2 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805E5D2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805E5B4 thumb_func_start sub_805E5DC sub_805E5DC: @ 805E5DC push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E5F8 @ =gMapObjects adds r0, r2 ldr r2, _0805E5FC @ =sub_805E600 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E5F8: .4byte gMapObjects _0805E5FC: .4byte sub_805E600 thumb_func_end sub_805E5DC thumb_func_start sub_805E600 sub_805E600: @ 805E600 push {r4,lr} ldr r3, _0805E61C @ =gUnknown_0837540C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E61C: .4byte gUnknown_0837540C thumb_func_end sub_805E600 thumb_func_start sub_805E620 sub_805E620: @ 805E620 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E664 @ =gUnknown_08375418 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805E64C movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E64C movs r0, 0x3 strb r0, [r2] _0805E64C: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E664: .4byte gUnknown_08375418 thumb_func_end sub_805E620 thumb_func_start sub_805E668 sub_805E668: @ 805E668 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E684 @ =gMapObjects adds r0, r2 ldr r2, _0805E688 @ =sub_805E68C bl meta_step pop {r0} bx r0 .align 2, 0 _0805E684: .4byte gMapObjects _0805E688: .4byte sub_805E68C thumb_func_end sub_805E668 thumb_func_start sub_805E68C sub_805E68C: @ 805E68C push {r4,lr} ldr r3, _0805E6A8 @ =gUnknown_0837541C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E6A8: .4byte gUnknown_0837541C thumb_func_end sub_805E68C thumb_func_start sub_805E6AC sub_805E6AC: @ 805E6AC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E6F0 @ =gUnknown_08375428 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805E6D8 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E6D8 movs r0, 0x2 strb r0, [r2] _0805E6D8: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E6F0: .4byte gUnknown_08375428 thumb_func_end sub_805E6AC thumb_func_start sub_805E6F4 sub_805E6F4: @ 805E6F4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E710 @ =gMapObjects adds r0, r2 ldr r2, _0805E714 @ =sub_805E718 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E710: .4byte gMapObjects _0805E714: .4byte sub_805E718 thumb_func_end sub_805E6F4 thumb_func_start sub_805E718 sub_805E718: @ 805E718 push {r4,lr} ldr r3, _0805E734 @ =gUnknown_0837542C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E734: .4byte gUnknown_0837542C thumb_func_end sub_805E718 thumb_func_start sub_805E738 sub_805E738: @ 805E738 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E77C @ =gUnknown_08375438 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805E764 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E764 movs r0, 0x2 strb r0, [r2] _0805E764: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E77C: .4byte gUnknown_08375438 thumb_func_end sub_805E738 thumb_func_start sub_805E780 sub_805E780: @ 805E780 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E79C @ =gMapObjects adds r0, r2 ldr r2, _0805E7A0 @ =sub_805E7A4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E79C: .4byte gMapObjects _0805E7A0: .4byte sub_805E7A4 thumb_func_end sub_805E780 thumb_func_start sub_805E7A4 sub_805E7A4: @ 805E7A4 push {r4,lr} ldr r3, _0805E7C0 @ =gUnknown_0837543C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E7C0: .4byte gUnknown_0837543C thumb_func_end sub_805E7A4 thumb_func_start sub_805E7C4 sub_805E7C4: @ 805E7C4 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E808 @ =gUnknown_08375448 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805E7F0 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E7F0 movs r0, 0x3 strb r0, [r2] _0805E7F0: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E808: .4byte gUnknown_08375448 thumb_func_end sub_805E7C4 thumb_func_start sub_805E80C sub_805E80C: @ 805E80C push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E828 @ =gMapObjects adds r0, r2 ldr r2, _0805E82C @ =sub_805E830 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E828: .4byte gMapObjects _0805E82C: .4byte sub_805E830 thumb_func_end sub_805E80C thumb_func_start sub_805E830 sub_805E830: @ 805E830 push {r4,lr} ldr r3, _0805E84C @ =gUnknown_0837544C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E84C: .4byte gUnknown_0837544C thumb_func_end sub_805E830 thumb_func_start sub_805E850 sub_805E850: @ 805E850 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E894 @ =gUnknown_08375458 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805E87C movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E87C movs r0, 0x3 strb r0, [r2] _0805E87C: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E894: .4byte gUnknown_08375458 thumb_func_end sub_805E850 thumb_func_start sub_805E898 sub_805E898: @ 805E898 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E8B4 @ =gMapObjects adds r0, r2 ldr r2, _0805E8B8 @ =sub_805E8BC bl meta_step pop {r0} bx r0 .align 2, 0 _0805E8B4: .4byte gMapObjects _0805E8B8: .4byte sub_805E8BC thumb_func_end sub_805E898 thumb_func_start sub_805E8BC sub_805E8BC: @ 805E8BC push {r4,lr} ldr r3, _0805E8D8 @ =gUnknown_0837545C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E8D8: .4byte gUnknown_0837545C thumb_func_end sub_805E8BC thumb_func_start sub_805E8DC sub_805E8DC: @ 805E8DC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E920 @ =gUnknown_08375468 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805E908 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E908 movs r0, 0x2 strb r0, [r2] _0805E908: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E920: .4byte gUnknown_08375468 thumb_func_end sub_805E8DC thumb_func_start sub_805E924 sub_805E924: @ 805E924 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E940 @ =gMapObjects adds r0, r2 ldr r2, _0805E944 @ =sub_805E948 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E940: .4byte gMapObjects _0805E944: .4byte sub_805E948 thumb_func_end sub_805E924 thumb_func_start sub_805E948 sub_805E948: @ 805E948 push {r4,lr} ldr r3, _0805E964 @ =gUnknown_0837546C movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E964: .4byte gUnknown_0837546C thumb_func_end sub_805E948 thumb_func_start sub_805E968 sub_805E968: @ 805E968 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805E9AC @ =gUnknown_08375240 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805E994 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805E994 movs r0, 0x2 strb r0, [r2] _0805E994: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805E9AC: .4byte gUnknown_08375240 thumb_func_end sub_805E968 thumb_func_start sub_805E9B0 sub_805E9B0: @ 805E9B0 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805E9CC @ =gMapObjects adds r0, r2 ldr r2, _0805E9D0 @ =sub_805E9D4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E9CC: .4byte gMapObjects _0805E9D0: .4byte sub_805E9D4 thumb_func_end sub_805E9B0 thumb_func_start sub_805E9D4 sub_805E9D4: @ 805E9D4 push {r4,lr} ldr r3, _0805E9F0 @ =gUnknown_08375478 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805E9F0: .4byte gUnknown_08375478 thumb_func_end sub_805E9D4 thumb_func_start sub_805E9F4 sub_805E9F4: @ 805E9F4 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EA38 @ =gUnknown_08375484 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EA20 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EA20 movs r0, 0x3 strb r0, [r2] _0805EA20: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EA38: .4byte gUnknown_08375484 thumb_func_end sub_805E9F4 thumb_func_start sub_805EA3C sub_805EA3C: @ 805EA3C push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EA58 @ =gMapObjects adds r0, r2 ldr r2, _0805EA5C @ =sub_805EA60 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EA58: .4byte gMapObjects _0805EA5C: .4byte sub_805EA60 thumb_func_end sub_805EA3C thumb_func_start sub_805EA60 sub_805EA60: @ 805EA60 push {r4,lr} ldr r3, _0805EA7C @ =gUnknown_08375488 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EA7C: .4byte gUnknown_08375488 thumb_func_end sub_805EA60 thumb_func_start sub_805EA80 sub_805EA80: @ 805EA80 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EAC4 @ =gUnknown_08375494 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EAAC movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EAAC movs r0, 0x3 strb r0, [r2] _0805EAAC: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EAC4: .4byte gUnknown_08375494 thumb_func_end sub_805EA80 thumb_func_start sub_805EAC8 sub_805EAC8: @ 805EAC8 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EAE4 @ =gMapObjects adds r0, r2 ldr r2, _0805EAE8 @ =sub_805EAEC bl meta_step pop {r0} bx r0 .align 2, 0 _0805EAE4: .4byte gMapObjects _0805EAE8: .4byte sub_805EAEC thumb_func_end sub_805EAC8 thumb_func_start sub_805EAEC sub_805EAEC: @ 805EAEC push {r4,lr} ldr r3, _0805EB08 @ =gUnknown_08375498 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EB08: .4byte gUnknown_08375498 thumb_func_end sub_805EAEC thumb_func_start sub_805EB0C sub_805EB0C: @ 805EB0C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EB50 @ =gUnknown_083754A4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805EB38 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EB38 movs r0, 0x2 strb r0, [r2] _0805EB38: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EB50: .4byte gUnknown_083754A4 thumb_func_end sub_805EB0C thumb_func_start sub_805EB54 sub_805EB54: @ 805EB54 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EB70 @ =gMapObjects adds r0, r2 ldr r2, _0805EB74 @ =sub_805EB78 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EB70: .4byte gMapObjects _0805EB74: .4byte sub_805EB78 thumb_func_end sub_805EB54 thumb_func_start sub_805EB78 sub_805EB78: @ 805EB78 push {r4,lr} ldr r3, _0805EB94 @ =gUnknown_083754A8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EB94: .4byte gUnknown_083754A8 thumb_func_end sub_805EB78 thumb_func_start sub_805EB98 sub_805EB98: @ 805EB98 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EBDC @ =gUnknown_083754B4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805EBC4 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EBC4 movs r0, 0x2 strb r0, [r2] _0805EBC4: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EBDC: .4byte gUnknown_083754B4 thumb_func_end sub_805EB98 thumb_func_start sub_805EBE0 sub_805EBE0: @ 805EBE0 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EBFC @ =gMapObjects adds r0, r2 ldr r2, _0805EC00 @ =sub_805EC04 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EBFC: .4byte gMapObjects _0805EC00: .4byte sub_805EC04 thumb_func_end sub_805EBE0 thumb_func_start sub_805EC04 sub_805EC04: @ 805EC04 push {r4,lr} ldr r3, _0805EC20 @ =gUnknown_083754B8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EC20: .4byte gUnknown_083754B8 thumb_func_end sub_805EC04 thumb_func_start sub_805EC24 sub_805EC24: @ 805EC24 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EC68 @ =gUnknown_083754C4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EC50 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EC50 movs r0, 0x3 strb r0, [r2] _0805EC50: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EC68: .4byte gUnknown_083754C4 thumb_func_end sub_805EC24 thumb_func_start sub_805EC6C sub_805EC6C: @ 805EC6C push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EC88 @ =gMapObjects adds r0, r2 ldr r2, _0805EC8C @ =sub_805EC90 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EC88: .4byte gMapObjects _0805EC8C: .4byte sub_805EC90 thumb_func_end sub_805EC6C thumb_func_start sub_805EC90 sub_805EC90: @ 805EC90 push {r4,lr} ldr r3, _0805ECAC @ =gUnknown_083754C8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805ECAC: .4byte gUnknown_083754C8 thumb_func_end sub_805EC90 thumb_func_start sub_805ECB0 sub_805ECB0: @ 805ECB0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805ECF4 @ =gUnknown_083754D4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805ECDC movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805ECDC movs r0, 0x3 strb r0, [r2] _0805ECDC: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805ECF4: .4byte gUnknown_083754D4 thumb_func_end sub_805ECB0 thumb_func_start sub_805ECF8 sub_805ECF8: @ 805ECF8 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805ED14 @ =gMapObjects adds r0, r2 ldr r2, _0805ED18 @ =sub_805ED1C bl meta_step pop {r0} bx r0 .align 2, 0 _0805ED14: .4byte gMapObjects _0805ED18: .4byte sub_805ED1C thumb_func_end sub_805ECF8 thumb_func_start sub_805ED1C sub_805ED1C: @ 805ED1C push {r4,lr} ldr r3, _0805ED38 @ =gUnknown_083754D8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805ED38: .4byte gUnknown_083754D8 thumb_func_end sub_805ED1C thumb_func_start sub_805ED3C sub_805ED3C: @ 805ED3C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805ED80 @ =gUnknown_083754E4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805ED68 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805ED68 movs r0, 0x2 strb r0, [r2] _0805ED68: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805ED80: .4byte gUnknown_083754E4 thumb_func_end sub_805ED3C thumb_func_start sub_805ED84 sub_805ED84: @ 805ED84 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EDA0 @ =gMapObjects adds r0, r2 ldr r2, _0805EDA4 @ =sub_805EDA8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EDA0: .4byte gMapObjects _0805EDA4: .4byte sub_805EDA8 thumb_func_end sub_805ED84 thumb_func_start sub_805EDA8 sub_805EDA8: @ 805EDA8 push {r4,lr} ldr r3, _0805EDC4 @ =gUnknown_083754E8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EDC4: .4byte gUnknown_083754E8 thumb_func_end sub_805EDA8 thumb_func_start sub_805EDC8 sub_805EDC8: @ 805EDC8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EE0C @ =gUnknown_083754F4 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x1 bne _0805EDF4 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EDF4 movs r0, 0x2 strb r0, [r2] _0805EDF4: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EE0C: .4byte gUnknown_083754F4 thumb_func_end sub_805EDC8 thumb_func_start sub_805EE10 sub_805EE10: @ 805EE10 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EE2C @ =gMapObjects adds r0, r2 ldr r2, _0805EE30 @ =sub_805EE34 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EE2C: .4byte gMapObjects _0805EE30: .4byte sub_805EE34 thumb_func_end sub_805EE10 thumb_func_start sub_805EE34 sub_805EE34: @ 805EE34 push {r4,lr} ldr r3, _0805EE50 @ =gUnknown_083754F8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EE50: .4byte gUnknown_083754F8 thumb_func_end sub_805EE34 thumb_func_start sub_805EE54 sub_805EE54: @ 805EE54 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EE98 @ =gUnknown_08375504 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EE80 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EE80 movs r0, 0x3 strb r0, [r2] _0805EE80: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EE98: .4byte gUnknown_08375504 thumb_func_end sub_805EE54 thumb_func_start sub_805EE9C sub_805EE9C: @ 805EE9C push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EEB8 @ =gMapObjects adds r0, r2 ldr r2, _0805EEBC @ =sub_805EEC0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EEB8: .4byte gMapObjects _0805EEBC: .4byte sub_805EEC0 thumb_func_end sub_805EE9C thumb_func_start sub_805EEC0 sub_805EEC0: @ 805EEC0 push {r4,lr} ldr r3, _0805EEDC @ =gUnknown_08375508 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EEDC: .4byte gUnknown_08375508 thumb_func_end sub_805EEC0 thumb_func_start sub_805EEE0 sub_805EEE0: @ 805EEE0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EF24 @ =gUnknown_08375514 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EF0C movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EF0C movs r0, 0x3 strb r0, [r2] _0805EF0C: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EF24: .4byte gUnknown_08375514 thumb_func_end sub_805EEE0 thumb_func_start sub_805EF28 sub_805EF28: @ 805EF28 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EF44 @ =gMapObjects adds r0, r2 ldr r2, _0805EF48 @ =sub_805EF4C bl meta_step pop {r0} bx r0 .align 2, 0 _0805EF44: .4byte gMapObjects _0805EF48: .4byte sub_805EF4C thumb_func_end sub_805EF28 thumb_func_start sub_805EF4C sub_805EF4C: @ 805EF4C push {r4,lr} ldr r3, _0805EF68 @ =gUnknown_08375518 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EF68: .4byte gUnknown_08375518 thumb_func_end sub_805EF4C thumb_func_start sub_805EF6C sub_805EF6C: @ 805EF6C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805EFB0 @ =gUnknown_08375524 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805EF98 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805EF98 movs r0, 0x3 strb r0, [r2] _0805EF98: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805EFB0: .4byte gUnknown_08375524 thumb_func_end sub_805EF6C thumb_func_start sub_805EFB4 sub_805EFB4: @ 805EFB4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805EFD0 @ =gMapObjects adds r0, r2 ldr r2, _0805EFD4 @ =sub_805EFD8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EFD0: .4byte gMapObjects _0805EFD4: .4byte sub_805EFD8 thumb_func_end sub_805EFB4 thumb_func_start sub_805EFD8 sub_805EFD8: @ 805EFD8 push {r4,lr} ldr r3, _0805EFF4 @ =gUnknown_08375528 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805EFF4: .4byte gUnknown_08375528 thumb_func_end sub_805EFD8 thumb_func_start sub_805EFF8 sub_805EFF8: @ 805EFF8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F03C @ =gUnknown_08375534 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F024 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F024 movs r0, 0x3 strb r0, [r2] _0805F024: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F03C: .4byte gUnknown_08375534 thumb_func_end sub_805EFF8 thumb_func_start sub_805F040 sub_805F040: @ 805F040 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F05C @ =gMapObjects adds r0, r2 ldr r2, _0805F060 @ =sub_805F064 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F05C: .4byte gMapObjects _0805F060: .4byte sub_805F064 thumb_func_end sub_805F040 thumb_func_start sub_805F064 sub_805F064: @ 805F064 push {r4,lr} ldr r3, _0805F080 @ =gUnknown_08375538 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F080: .4byte gUnknown_08375538 thumb_func_end sub_805F064 thumb_func_start sub_805F084 sub_805F084: @ 805F084 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F0C8 @ =gUnknown_08375544 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F0B0 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F0B0 movs r0, 0x3 strb r0, [r2] _0805F0B0: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F0C8: .4byte gUnknown_08375544 thumb_func_end sub_805F084 thumb_func_start sub_805F0CC sub_805F0CC: @ 805F0CC push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F0E8 @ =gMapObjects adds r0, r2 ldr r2, _0805F0EC @ =sub_805F0F0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F0E8: .4byte gMapObjects _0805F0EC: .4byte sub_805F0F0 thumb_func_end sub_805F0CC thumb_func_start sub_805F0F0 sub_805F0F0: @ 805F0F0 push {r4,lr} ldr r3, _0805F10C @ =gUnknown_08375548 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F10C: .4byte gUnknown_08375548 thumb_func_end sub_805F0F0 thumb_func_start sub_805F110 sub_805F110: @ 805F110 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F154 @ =gUnknown_08375554 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F13C movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F13C movs r0, 0x3 strb r0, [r2] _0805F13C: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F154: .4byte gUnknown_08375554 thumb_func_end sub_805F110 thumb_func_start sub_805F158 sub_805F158: @ 805F158 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F174 @ =gMapObjects adds r0, r2 ldr r2, _0805F178 @ =sub_805F17C bl meta_step pop {r0} bx r0 .align 2, 0 _0805F174: .4byte gMapObjects _0805F178: .4byte sub_805F17C thumb_func_end sub_805F158 thumb_func_start sub_805F17C sub_805F17C: @ 805F17C push {r4,lr} ldr r3, _0805F198 @ =gUnknown_08375558 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F198: .4byte gUnknown_08375558 thumb_func_end sub_805F17C thumb_func_start sub_805F19C sub_805F19C: @ 805F19C push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F1E0 @ =gUnknown_08375564 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F1C8 movs r0, 0xE ldrsh r1, [r4, r0] movs r3, 0x12 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F1C8 movs r0, 0x3 strb r0, [r2] _0805F1C8: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F1E0: .4byte gUnknown_08375564 thumb_func_end sub_805F19C thumb_func_start sub_805F1E4 sub_805F1E4: @ 805F1E4 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F200 @ =gMapObjects adds r0, r2 ldr r2, _0805F204 @ =sub_805F208 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F200: .4byte gMapObjects _0805F204: .4byte sub_805F208 thumb_func_end sub_805F1E4 thumb_func_start sub_805F208 sub_805F208: @ 805F208 push {r4,lr} ldr r3, _0805F224 @ =gUnknown_08375568 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F224: .4byte gUnknown_08375568 thumb_func_end sub_805F208 thumb_func_start sub_805F228 sub_805F228: @ 805F228 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F26C @ =gUnknown_08375574 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F254 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F254 movs r0, 0x3 strb r0, [r2] _0805F254: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F26C: .4byte gUnknown_08375574 thumb_func_end sub_805F228 thumb_func_start sub_805F270 sub_805F270: @ 805F270 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F28C @ =gMapObjects adds r0, r2 ldr r2, _0805F290 @ =sub_805F294 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F28C: .4byte gMapObjects _0805F290: .4byte sub_805F294 thumb_func_end sub_805F270 thumb_func_start sub_805F294 sub_805F294: @ 805F294 push {r4,lr} ldr r3, _0805F2B0 @ =gUnknown_08375578 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F2B0: .4byte gUnknown_08375578 thumb_func_end sub_805F294 thumb_func_start sub_805F2B4 sub_805F2B4: @ 805F2B4 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805F2F8 @ =gUnknown_08375584 mov r0, sp movs r2, 0x4 bl memcpy adds r2, r4, 0 adds r2, 0x21 ldrb r0, [r2] cmp r0, 0x2 bne _0805F2E0 movs r0, 0xC ldrsh r1, [r4, r0] movs r3, 0x10 ldrsh r0, [r4, r3] cmp r1, r0 bne _0805F2E0 movs r0, 0x3 strb r0, [r2] _0805F2E0: adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl MoveFieldObjectInNextDirectionInSequence lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F2F8: .4byte gUnknown_08375584 thumb_func_end sub_805F2B4 thumb_func_start sub_805F2FC sub_805F2FC: @ 805F2FC push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F318 @ =gMapObjects adds r0, r2 ldr r2, _0805F31C @ =sub_805F320 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F318: .4byte gMapObjects _0805F31C: .4byte sub_805F320 thumb_func_end sub_805F2FC thumb_func_start sub_805F320 sub_805F320: @ 805F320 push {r4,lr} ldr r3, _0805F33C @ =gUnknown_08375588 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F33C: .4byte gUnknown_08375588 thumb_func_end sub_805F320 thumb_func_start mss_npc_reset_oampriv3_1_unk2_unk3 mss_npc_reset_oampriv3_1_unk2_unk3: @ 805F340 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset adds r4, 0x21 ldrb r0, [r4] cmp r0, 0 bne _0805F358 bl player_get_direction_lower_nybble strb r0, [r4] _0805F358: movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end mss_npc_reset_oampriv3_1_unk2_unk3 thumb_func_start sub_805F364 sub_805F364: @ 805F364 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 ldr r2, _0805F388 @ =gMapObjects ldr r3, _0805F38C @ =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1C] cmp r0, 0xFF beq _0805F384 ldrb r0, [r3, 0x3] cmp r0, 0x2 bne _0805F390 _0805F384: movs r0, 0 b _0805F3B8 .align 2, 0 _0805F388: .4byte gMapObjects _0805F38C: .4byte gPlayerAvatar _0805F390: ldr r5, _0805F3C0 @ =gUnknown_08375594 bl player_get_x22 adds r4, r0, 0 lsls r4, 24 lsrs r4, 22 adds r4, r5 bl player_get_direction_upper_nybble adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r4, [r4] adds r0, r6, 0 adds r1, r7, 0 movs r3, 0 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 _0805F3B8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F3C0: .4byte gUnknown_08375594 thumb_func_end sub_805F364 thumb_func_start sub_805F3C4 sub_805F3C4: @ 805F3C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805F3E2 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805F3E2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805F3C4 thumb_func_start sub_805F3EC sub_805F3EC: @ 805F3EC movs r0, 0 bx lr thumb_func_end sub_805F3EC thumb_func_start sub_805F3F0 sub_805F3F0: @ 805F3F0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r1, _0805F434 @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] bl state_to_direction bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F434: .4byte gUnknown_0836DC09 thumb_func_end sub_805F3F0 thumb_func_start sub_805F438 sub_805F438: @ 805F438 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F4EC @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 mov r5, sp adds r5, 0x2 adds r0, r4, 0 adds r1, r6, 0 mov r2, sp adds r3, r5, 0 bl FieldObjectMoveDestCoords adds r0, r6, 0 bl GetGoSpeed0AnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F4BE mov r1, r8 cmp r1, 0 beq _0805F4D2 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F4D2 _0805F4BE: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F4D2: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F4EC: .4byte gUnknown_0836DC09 thumb_func_end sub_805F438 thumb_func_start sub_805F4F0 sub_805F4F0: @ 805F4F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F5A4 @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 mov r5, sp adds r5, 0x2 adds r0, r4, 0 adds r1, r6, 0 mov r2, sp adds r3, r5, 0 bl FieldObjectMoveDestCoords adds r0, r6, 0 bl sub_8060744 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F576 mov r1, r8 cmp r1, 0 beq _0805F58A mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F58A _0805F576: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F58A: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F5A4: .4byte gUnknown_0836DC09 thumb_func_end sub_805F4F0 thumb_func_start sub_805F5A8 sub_805F5A8: @ 805F5A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F65C @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 mov r5, sp adds r5, 0x2 adds r0, r4, 0 adds r1, r6, 0 mov r2, sp adds r3, r5, 0 bl FieldObjectMoveDestCoords adds r0, r6, 0 bl sub_806079C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F62E mov r1, r8 cmp r1, 0 beq _0805F642 mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F642 _0805F62E: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F642: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F65C: .4byte gUnknown_0836DC09 thumb_func_end sub_805F5A8 thumb_func_start sub_805F660 sub_805F660: @ 805F660 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F714 @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 mov r5, sp adds r5, 0x2 adds r0, r4, 0 adds r1, r6, 0 mov r2, sp adds r3, r5, 0 bl FieldObjectMoveDestCoords adds r0, r6, 0 bl sub_80607C8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F6E6 mov r1, r8 cmp r1, 0 beq _0805F6FA mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F6FA _0805F6E6: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F6FA: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F714: .4byte gUnknown_0836DC09 thumb_func_end sub_805F660 thumb_func_start cph_IM_DIFFERENT cph_IM_DIFFERENT: @ 805F718 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r1, _0805F75C @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] bl state_to_direction bl sub_806084C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805F75C: .4byte gUnknown_0836DC09 thumb_func_end cph_IM_DIFFERENT thumb_func_start sub_805F760 sub_805F760: @ 805F760 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F814 @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 mov r5, sp adds r5, 0x2 adds r0, r4, 0 adds r1, r6, 0 mov r2, sp adds r3, r5, 0 bl FieldObjectMoveDestCoords adds r0, r6, 0 bl sub_80608A4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F7E6 mov r1, r8 cmp r1, 0 beq _0805F7FA mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F7FA _0805F7E6: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F7FA: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F814: .4byte gUnknown_0836DC09 thumb_func_end sub_805F760 thumb_func_start oac_hopping oac_hopping: @ 805F818 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 adds r7, r1, 0 mov r8, r3 lsls r2, 24 lsrs r6, r2, 24 ldr r1, _0805F8DC @ =gUnknown_0836DC09 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] adds r1, r4, 0 adds r1, 0x21 ldrb r1, [r1] adds r2, r6, 0 bl state_to_direction adds r6, r0, 0 ldrh r1, [r4, 0x10] add r0, sp, 0x4 strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x6 strh r0, [r5] movs r0, 0x2 str r0, [sp] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 movs r3, 0x2 bl sub_8060320 adds r0, r6, 0 bl GetJumpLedgeAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim add r0, sp, 0x4 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] adds r0, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805F8AC mov r1, r8 cmp r1, 0 beq _0805F8C0 add r0, sp, 0x4 movs r2, 0 ldrsh r0, [r0, r2] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl _call_via_r8 lsls r0, 24 cmp r0, 0 bne _0805F8C0 _0805F8AC: adds r0, r6, 0 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r7, 0 bl FieldObjectSetRegularAnim _0805F8C0: ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] movs r0, 0x2 strh r0, [r7, 0x30] movs r0, 0x1 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F8DC: .4byte gUnknown_0836DC09 thumb_func_end oac_hopping thumb_func_start sub_805F8E0 sub_805F8E0: @ 805F8E0 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805F8FC @ =gMapObjects adds r0, r2 ldr r2, _0805F900 @ =sub_805F904 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F8FC: .4byte gMapObjects _0805F900: .4byte sub_805F904 thumb_func_end sub_805F8E0 thumb_func_start sub_805F904 sub_805F904: @ 805F904 push {r4,lr} ldr r3, _0805F920 @ =gUnknown_083755C0 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805F920: .4byte gUnknown_083755C0 thumb_func_end sub_805F904 thumb_func_start mss_08062EA4 mss_08062EA4: @ 805F924 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 ldr r2, _0805F948 @ =gMapObjects ldr r3, _0805F94C @ =gPlayerAvatar ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1C] cmp r0, 0xFF beq _0805F944 ldrb r0, [r3, 0x3] cmp r0, 0x2 bne _0805F950 _0805F944: movs r0, 0 b _0805F978 .align 2, 0 _0805F948: .4byte gMapObjects _0805F94C: .4byte gPlayerAvatar _0805F950: ldr r5, _0805F980 @ =gUnknown_08375594 bl player_get_x22 adds r4, r0, 0 lsls r4, 24 lsrs r4, 22 adds r4, r5 bl player_get_direction_upper_nybble adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r3, _0805F984 @ =MetatileBehavior_IsPokeGrass ldr r4, [r4] adds r0, r6, 0 adds r1, r7, 0 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 _0805F978: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805F980: .4byte gUnknown_08375594 _0805F984: .4byte MetatileBehavior_IsPokeGrass thumb_func_end mss_08062EA4 thumb_func_start FieldObjectCB_TreeDisguise FieldObjectCB_TreeDisguise: @ 805F988 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805F9EC @ =gMapObjects adds r4, r1, r0 adds r6, r4, 0 adds r6, 0x21 ldrb r0, [r6] cmp r0, 0 beq _0805F9B0 cmp r0, 0x1 bne _0805F9D0 movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 bne _0805F9D0 _0805F9B0: ldr r1, _0805F9F0 @ =gUnknown_0202FF84 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 adds r0, r4, 0 bl FieldObjectGetLocalIdAndMap movs r0, 0x1C bl FieldEffectStart strb r0, [r4, 0x1A] movs r0, 0x1 strb r0, [r6] ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] _0805F9D0: movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805F9EC @ =gMapObjects adds r0, r1 ldr r2, _0805F9F4 @ =sub_805F9F8 adds r1, r5, 0 bl meta_step pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805F9EC: .4byte gMapObjects _0805F9F0: .4byte gUnknown_0202FF84 _0805F9F4: .4byte sub_805F9F8 thumb_func_end FieldObjectCB_TreeDisguise thumb_func_start sub_805F9F8 sub_805F9F8: @ 805F9F8 push {lr} bl npc_reset movs r0, 0 pop {r1} bx r1 thumb_func_end sub_805F9F8 thumb_func_start FieldObjectCB_MountainDisguise FieldObjectCB_MountainDisguise: @ 805FA04 push {r4-r6,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805FA68 @ =gMapObjects adds r4, r1, r0 adds r6, r4, 0 adds r6, 0x21 ldrb r0, [r6] cmp r0, 0 beq _0805FA2C cmp r0, 0x1 bne _0805FA4C movs r1, 0x3C ldrsh r0, [r5, r1] cmp r0, 0 bne _0805FA4C _0805FA2C: ldr r1, _0805FA6C @ =gUnknown_0202FF84 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 adds r0, r4, 0 bl FieldObjectGetLocalIdAndMap movs r0, 0x1D bl FieldEffectStart strb r0, [r4, 0x1A] movs r0, 0x1 strb r0, [r6] ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] _0805FA4C: movs r0, 0x2E ldrsh r1, [r5, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805FA68 @ =gMapObjects adds r0, r1 ldr r2, _0805FA70 @ =sub_805F9F8 adds r1, r5, 0 bl meta_step pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805FA68: .4byte gMapObjects _0805FA6C: .4byte gUnknown_0202FF84 _0805FA70: .4byte sub_805F9F8 thumb_func_end FieldObjectCB_MountainDisguise thumb_func_start FieldObjectCB_Hidden1 FieldObjectCB_Hidden1: @ 805FA74 push {r4,lr} adds r3, r0, 0 movs r1, 0x3C ldrsh r0, [r3, r1] ldr r4, _0805FAD0 @ =gMapObjects cmp r0, 0 bne _0805FAB4 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x3] movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x3] adds r2, r3, 0 adds r2, 0x42 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldrb r0, [r3, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r3, 0x5] ldrh r0, [r3, 0x3C] adds r0, 0x1 strh r0, [r3, 0x3C] _0805FAB4: movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r2, _0805FAD4 @ =sub_805FAD8 adds r1, r3, 0 bl meta_step pop {r4} pop {r0} bx r0 .align 2, 0 _0805FAD0: .4byte gMapObjects _0805FAD4: .4byte sub_805FAD8 thumb_func_end FieldObjectCB_Hidden1 thumb_func_start sub_805FAD8 sub_805FAD8: @ 805FAD8 push {r4,lr} ldr r3, _0805FAF4 @ =gUnknown_083755CC movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805FAF4: .4byte gUnknown_083755CC thumb_func_end sub_805FAD8 thumb_func_start sub_805FAF8 sub_805FAF8: @ 805FAF8 push {lr} bl npc_reset movs r0, 0 pop {r1} bx r1 thumb_func_end sub_805FAF8 thumb_func_start sub_805FB04 sub_805FB04: @ 805FB04 push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805FB16 movs r0, 0 strh r0, [r4, 0x30] _0805FB16: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_805FB04 thumb_func_start sub_805FB20 sub_805FB20: @ 805FB20 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805FB3C @ =gMapObjects adds r0, r2 ldr r2, _0805FB40 @ =sub_805FB44 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FB3C: .4byte gMapObjects _0805FB40: .4byte sub_805FB44 thumb_func_end sub_805FB20 thumb_func_start sub_805FB44 sub_805FB44: @ 805FB44 push {r4,lr} ldr r3, _0805FB60 @ =gUnknown_083755D0 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805FB60: .4byte gUnknown_083755D0 thumb_func_end sub_805FB44 thumb_func_start sub_805FB64 sub_805FB64: @ 805FB64 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay16AnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FB64 thumb_func_start sub_805FB90 sub_805FB90: @ 805FB90 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805FBAC @ =gMapObjects adds r0, r2 ldr r2, _0805FBB0 @ =sub_805FBB4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FBAC: .4byte gMapObjects _0805FBB0: .4byte sub_805FBB4 thumb_func_end sub_805FB90 thumb_func_start sub_805FBB4 sub_805FBB4: @ 805FBB4 push {r4,lr} ldr r3, _0805FBD0 @ =gUnknown_083755D8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805FBD0: .4byte gUnknown_083755D8 thumb_func_end sub_805FBB4 thumb_func_start sub_805FBD4 sub_805FBD4: @ 805FBD4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay8AnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FBD4 thumb_func_start sub_805FC00 sub_805FC00: @ 805FC00 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805FC1C @ =gMapObjects adds r0, r2 ldr r2, _0805FC20 @ =sub_805FC24 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FC1C: .4byte gMapObjects _0805FC20: .4byte sub_805FC24 thumb_func_end sub_805FC00 thumb_func_start sub_805FC24 sub_805FC24: @ 805FC24 push {r4,lr} ldr r3, _0805FC40 @ =gUnknown_083755E0 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805FC40: .4byte gUnknown_083755E0 thumb_func_end sub_805FC24 thumb_func_start sub_805FC44 sub_805FC44: @ 805FC44 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetStepInPlaceDelay4AnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FC44 thumb_func_start sub_805FC70 sub_805FC70: @ 805FC70 push {lr} adds r1, r0, 0 movs r0, 0x2E ldrsh r2, [r1, r0] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805FC8C @ =gMapObjects adds r0, r2 ldr r2, _0805FC90 @ =sub_805FC94 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FC8C: .4byte gMapObjects _0805FC90: .4byte sub_805FC94 thumb_func_end sub_805FC70 thumb_func_start sub_805FC94 sub_805FC94: @ 805FC94 push {r4,lr} ldr r3, _0805FCB0 @ =gUnknown_083755E8 movs r4, 0x30 ldrsh r2, [r1, r4] lsls r2, 2 adds r2, r3 ldr r2, [r2] bl _call_via_r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _0805FCB0: .4byte gUnknown_083755E8 thumb_func_end sub_805FC94 thumb_func_start sub_805FCB4 sub_805FCB4: @ 805FCB4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetRegularAnim ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1 strh r0, [r5, 0x30] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805FCB4 thumb_func_start sub_805FCE8 sub_805FCE8: @ 805FCE8 push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 bne _0805FCFA movs r0, 0 b _0805FD00 _0805FCFA: movs r0, 0x2 strh r0, [r4, 0x30] movs r0, 0x1 _0805FD00: pop {r4} pop {r1} bx r1 thumb_func_end sub_805FCE8 thumb_func_start sub_805FD08 sub_805FD08: @ 805FD08 ldrb r2, [r0] movs r1, 0x3 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0 bx lr .align 2, 0 thumb_func_end sub_805FD08 .section .text_805fd18 thumb_func_start sub_805FE28 sub_805FE28: @ 805FE28 push {r4,lr} adds r3, r1, 0 lsls r2, 24 lsrs r2, 24 ldrb r0, [r0, 0x1] lsls r0, 27 lsrs r4, r0, 31 cmp r4, 0 bne _0805FE5E adds r0, r3, 0 adds r0, 0x2A strb r2, [r0] adds r0, 0x1 ldrb r2, [r0] adds r1, r0, 0 cmp r2, 0x1 bne _0805FE50 movs r0, 0x2 strb r0, [r1] b _0805FE56 _0805FE50: cmp r2, 0x3 bne _0805FE56 strb r4, [r1] _0805FE56: ldrb r1, [r1] adds r0, r3, 0 bl SeekSpriteAnim _0805FE5E: pop {r4} pop {r0} bx r0 thumb_func_end sub_805FE28 thumb_func_start sub_805FE64 sub_805FE64: @ 805FE64 push {lr} lsls r2, 24 lsrs r2, 24 ldrb r0, [r0, 0x1] lsls r0, 27 cmp r0, 0 blt _0805FE8C adds r0, r1, 0 adds r0, 0x2A strb r2, [r0] movs r2, 0x3 adds r0, 0x1 ldrb r0, [r0] cmp r0, 0x1 bhi _0805FE84 movs r2, 0x1 _0805FE84: adds r0, r1, 0 adds r1, r2, 0 bl SeekSpriteAnim _0805FE8C: pop {r0} bx r0 thumb_func_end sub_805FE64 thumb_func_start sub_805FE90 sub_805FE90: @ 805FE90 push {lr} lsls r1, 16 lsrs r1, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 asrs r0, 16 lsls r2, 16 asrs r2, 16 cmp r0, r2 ble _0805FEAA movs r0, 0x3 b _0805FEC0 _0805FEAA: cmp r0, r2 bge _0805FEB2 movs r0, 0x4 b _0805FEC0 _0805FEB2: lsls r1, 16 lsls r0, r3, 16 cmp r1, r0 bgt _0805FEBE movs r0, 0x1 b _0805FEC0 _0805FEBE: movs r0, 0x2 _0805FEC0: pop {r1} bx r1 thumb_func_end sub_805FE90 thumb_func_start npc_set_running_behaviour_etc npc_set_running_behaviour_etc: @ 805FEC4 push {r4,lr} mov r12, r0 lsls r1, 24 lsrs r1, 24 movs r3, 0 strb r1, [r0, 0x6] adds r0, 0x21 strb r3, [r0] adds r0, 0x1 strb r3, [r0] ldr r4, _0805FF08 @ =gSprites mov r0, r12 ldrb r2, [r0, 0x4] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r2, r4, 0 adds r2, 0x1C adds r0, r2 ldr r2, _0805FF0C @ =gUnknown_0836DA88 lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [r0] mov r0, r12 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _0805FF08: .4byte gSprites _0805FF0C: .4byte gUnknown_0836DA88 thumb_func_end npc_set_running_behaviour_etc thumb_func_start npc_running_behaviour_by_direction npc_running_behaviour_by_direction: @ 805FF10 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FF1C @ =gUnknown_0837567B adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FF1C: .4byte gUnknown_0837567B thumb_func_end npc_running_behaviour_by_direction thumb_func_start sub_805FF20 sub_805FF20: @ 805FF20 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 lsls r5, r1, 24 lsrs r5, 24 ldrh r1, [r6, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r6, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] adds r0, r5, 0 mov r1, sp adds r2, r4, 0 bl MoveCoords mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r4, r0] adds r0, r6, 0 adds r3, r5, 0 bl npc_block_way lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805FF20 thumb_func_start npc_block_way npc_block_way: @ 805FF60 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r6, r0, 0 lsls r1, 16 lsls r2, 16 lsls r3, 24 lsrs r7, r3, 24 mov r8, r7 lsrs r0, r1, 16 mov r9, r0 asrs r5, r1, 16 lsrs r0, r2, 16 mov r10, r0 asrs r4, r2, 16 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl IsCoordOutsideFieldObjectMovementRect lsls r0, 24 cmp r0, 0 beq _0805FF96 movs r0, 0x1 b _08060016 _0805FF96: adds r0, r5, 0 adds r1, r4, 0 bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _0805FFD8 adds r0, r5, 0 adds r1, r4, 0 bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0805FFD8 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 adds r3, r7, 0 bl IsMetatileDirectionallyImpassable lsls r0, 24 cmp r0, 0 bne _0805FFD8 ldrb r0, [r6, 0x1] lsrs r0, 7 cmp r0, 0 beq _0805FFDC mov r0, r8 bl CanCameraMoveInDirection cmp r0, 0 bne _0805FFDC _0805FFD8: movs r0, 0x2 b _08060016 _0805FFDC: ldrb r0, [r6, 0xB] lsls r0, 28 lsrs r0, 28 mov r2, r9 lsls r1, r2, 16 asrs r5, r1, 16 mov r2, r10 lsls r1, r2, 16 asrs r4, r1, 16 adds r1, r5, 0 adds r2, r4, 0 bl IsZCoordMismatchAt lsls r0, 24 cmp r0, 0 beq _08060000 movs r0, 0x3 b _08060016 _08060000: adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl CheckForCollisionBetweenFieldObjects lsls r0, 24 cmp r0, 0 bne _08060014 movs r0, 0 b _08060016 _08060014: movs r0, 0x4 _08060016: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end npc_block_way thumb_func_start sub_8060024 sub_8060024: @ 8060024 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 lsls r1, 16 lsls r2, 16 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsrs r0, r1, 16 mov r9, r0 asrs r6, r1, 16 lsrs r0, r2, 16 mov r10, r0 asrs r5, r2, 16 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl IsCoordOutsideFieldObjectMovementRect lsls r0, 24 lsrs r0, 24 negs r1, r0 orrs r1, r0 lsrs r4, r1, 31 adds r0, r6, 0 adds r1, r5, 0 bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 bne _0806009C adds r0, r6, 0 adds r1, r5, 0 bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0806009C adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 mov r3, r8 bl IsMetatileDirectionallyImpassable lsls r0, 24 cmp r0, 0 bne _0806009C ldrb r0, [r7, 0x1] lsrs r0, 7 cmp r0, 0 beq _080600A0 mov r0, r8 bl CanCameraMoveInDirection cmp r0, 0 bne _080600A0 _0806009C: movs r0, 0x2 orrs r4, r0 _080600A0: ldrb r0, [r7, 0xB] lsls r0, 28 lsrs r0, 28 mov r2, r9 lsls r1, r2, 16 asrs r6, r1, 16 mov r2, r10 lsls r1, r2, 16 asrs r5, r1, 16 adds r1, r6, 0 adds r2, r5, 0 bl IsZCoordMismatchAt lsls r0, 24 cmp r0, 0 beq _080600C8 movs r0, 0x4 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _080600C8: adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl CheckForCollisionBetweenFieldObjects lsls r0, 24 cmp r0, 0 beq _080600E0 movs r0, 0x8 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _080600E0: adds r0, r4, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8060024 thumb_func_start IsCoordOutsideFieldObjectMovementRect IsCoordOutsideFieldObjectMovementRect: @ 80600F0 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r5, r2, 16 ldrb r1, [r4, 0x19] movs r0, 0xF ands r0, r1 cmp r0, 0 beq _08060128 lsls r1, 28 lsrs r2, r1, 28 ldrh r0, [r4, 0xC] subs r2, r0, r2 lsrs r1, 28 adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 lsls r2, 16 lsls r0, r3, 16 asrs r3, r0, 16 cmp r2, r0 bgt _08060154 lsls r0, r1, 16 asrs r0, 16 cmp r0, r3 blt _08060154 _08060128: ldrb r1, [r4, 0x19] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _08060158 lsls r1, 24 lsrs r2, r1, 28 ldrh r0, [r4, 0xE] subs r2, r0, r2 lsrs r1, 28 adds r0, r1 lsls r0, 16 lsrs r1, r0, 16 lsls r2, 16 lsls r0, r5, 16 asrs r3, r0, 16 cmp r2, r0 bgt _08060154 lsls r0, r1, 16 asrs r0, 16 cmp r0, r3 bge _08060158 _08060154: movs r0, 0x1 b _0806015A _08060158: movs r0, 0 _0806015A: pop {r4,r5} pop {r1} bx r1 thumb_func_end IsCoordOutsideFieldObjectMovementRect thumb_func_start IsMetatileDirectionallyImpassable IsMetatileDirectionallyImpassable: @ 8060160 push {r4-r7,lr} lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r7, r2, 16 lsls r3, 24 ldr r1, _080601A8 @ =gUnknown_08375684 lsrs r3, 22 subs r5, r3, 0x4 adds r1, r5, r1 ldrb r0, [r0, 0x1E] ldr r1, [r1] bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080601A2 ldr r4, _080601AC @ =gUnknown_08375694 adds r4, r5, r4 lsls r0, r6, 16 asrs r0, 16 lsls r1, r7, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 ldr r1, [r4] bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _080601B0 _080601A2: movs r0, 0x1 b _080601B2 .align 2, 0 _080601A8: .4byte gUnknown_08375684 _080601AC: .4byte gUnknown_08375694 _080601B0: movs r0, 0 _080601B2: pop {r4-r7} pop {r1} bx r1 thumb_func_end IsMetatileDirectionallyImpassable thumb_func_start CheckForCollisionBetweenFieldObjects CheckForCollisionBetweenFieldObjects: @ 80601B8 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 16 lsrs r7, r1, 16 movs r4, 0 lsls r2, 16 asrs r5, r2, 16 _080601C6: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 ldr r1, _0806021C @ =gMapObjects adds r2, r0, r1 ldrb r0, [r2] lsls r0, 31 cmp r0, 0 beq _08060220 cmp r2, r6 beq _08060220 movs r0, 0x10 ldrsh r1, [r2, r0] lsls r0, r7, 16 asrs r3, r0, 16 cmp r1, r3 bne _080601F0 movs r1, 0x12 ldrsh r0, [r2, r1] cmp r0, r5 beq _08060200 _080601F0: movs r1, 0x14 ldrsh r0, [r2, r1] cmp r0, r3 bne _08060220 movs r1, 0x16 ldrsh r0, [r2, r1] cmp r0, r5 bne _08060220 _08060200: ldrb r0, [r6, 0xB] lsls r0, 28 lsrs r0, 28 ldrb r1, [r2, 0xB] lsls r1, 28 lsrs r1, 28 bl AreZCoordsCompatible lsls r0, 24 cmp r0, 0 beq _08060220 movs r0, 0x1 b _0806022C .align 2, 0 _0806021C: .4byte gMapObjects _08060220: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _080601C6 movs r0, 0 _0806022C: pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckForCollisionBetweenFieldObjects thumb_func_start sub_8060234 sub_8060234: @ 8060234 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08060280 ldr r3, _08060278 @ =gSprites ldr r2, _0806027C @ =gMapObjects mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x3C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08060280 movs r0, 0x1 b _08060282 .align 2, 0 _08060278: .4byte gSprites _0806027C: .4byte gMapObjects _08060280: movs r0, 0 _08060282: add sp, 0x4 pop {r1} bx r1 thumb_func_end sub_8060234 thumb_func_start sub_8060288 sub_8060288: @ 8060288 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _080602C6 ldr r3, _080602CC @ =gSprites ldr r2, _080602D0 @ =gMapObjects mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x3C] movs r0, 0x4 orrs r0, r2 strh r0, [r1, 0x3C] _080602C6: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080602CC: .4byte gSprites _080602D0: .4byte gMapObjects thumb_func_end sub_8060288 thumb_func_start MoveCoords MoveCoords: @ 80602D4 push {r4,lr} lsls r0, 24 ldr r3, _080602F4 @ =gDirectionToVector lsrs r0, 22 adds r0, r3 ldrh r3, [r0] ldrh r4, [r1] adds r3, r4 strh r3, [r1] ldrh r0, [r0, 0x2] ldrh r1, [r2] adds r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _080602F4: .4byte gDirectionToVector thumb_func_end MoveCoords thumb_func_start unref_sub_80602F8 unref_sub_80602F8: @ 80602F8 push {r4,lr} lsls r0, 24 ldr r3, _0806031C @ =gDirectionToVector lsrs r0, 22 adds r0, r3 ldrh r3, [r0] lsls r3, 4 ldrh r4, [r1] adds r3, r4 strh r3, [r1] ldrh r0, [r0, 0x2] lsls r0, 4 ldrh r1, [r2] adds r0, r1 strh r0, [r2] pop {r4} pop {r0} bx r0 .align 2, 0 _0806031C: .4byte gDirectionToVector thumb_func_end unref_sub_80602F8 thumb_func_start sub_8060320 sub_8060320: @ 8060320 push {r4-r7,lr} adds r4, r1, 0 ldr r1, [sp, 0x14] lsls r0, 24 lsls r3, 16 lsrs r3, 16 adds r7, r3, 0 lsls r1, 16 lsrs r6, r1, 16 mov r12, r6 ldr r1, _08060384 @ =gDirectionToVector lsrs r0, 22 adds r5, r0, r1 movs r0, 0 ldrsh r1, [r5, r0] cmp r1, 0 ble _0806034C lsls r0, r3, 16 asrs r0, 16 ldrh r3, [r4] adds r0, r3 strh r0, [r4] _0806034C: cmp r1, 0 bge _0806035A ldrh r1, [r4] lsls r0, r7, 16 asrs r0, 16 subs r1, r0 strh r1, [r4] _0806035A: movs r0, 0x2 ldrsh r1, [r5, r0] cmp r1, 0 ble _0806036C lsls r0, r6, 16 asrs r0, 16 ldrh r3, [r2] adds r0, r3 strh r0, [r2] _0806036C: cmp r1, 0 bge _0806037C ldrh r1, [r2] mov r3, r12 lsls r0, r3, 16 asrs r0, 16 subs r1, r0 strh r1, [r2] _0806037C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08060384: .4byte gDirectionToVector thumb_func_end sub_8060320 thumb_func_start sub_8060388 sub_8060388: @ 8060388 push {r4,r5,lr} ldr r5, _080603C0 @ =gSaveBlock1 ldrh r4, [r5] lsls r0, 16 asrs r0, 16 subs r0, r4 lsls r0, 4 strh r0, [r2] ldrh r0, [r5, 0x2] lsls r1, 16 asrs r1, 16 subs r1, r0 lsls r1, 4 strh r1, [r3] ldr r1, _080603C4 @ =gUnknown_0300489C ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r1, _080603C8 @ =gUnknown_03004898 ldrh r0, [r3] ldrh r1, [r1] subs r0, r1 strh r0, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080603C0: .4byte gSaveBlock1 _080603C4: .4byte gUnknown_0300489C _080603C8: .4byte gUnknown_03004898 thumb_func_end sub_8060388 thumb_func_start sub_80603CC sub_80603CC: @ 80603CC push {r4-r7,lr} adds r7, r2, 0 mov r12, r3 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 ldr r0, _0806045C @ =gUnknown_0300489C ldrh r0, [r0] negs r0, r0 ldr r1, _08060460 @ =gUnknown_03004880 ldr r2, [r1, 0x10] subs r0, r2 lsls r0, 16 lsrs r3, r0, 16 ldr r0, _08060464 @ =gUnknown_03004898 ldrh r0, [r0] negs r0, r0 ldr r1, [r1, 0x14] subs r0, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r2, 0 ble _08060406 lsls r0, r3, 16 movs r3, 0x80 lsls r3, 13 adds r0, r3 lsrs r3, r0, 16 _08060406: cmp r2, 0 bge _08060412 lsls r0, r3, 16 ldr r2, _08060468 @ =0xfff00000 adds r0, r2 lsrs r3, r0, 16 _08060412: cmp r1, 0 ble _08060420 lsls r0, r4, 16 movs r2, 0x80 lsls r2, 13 adds r0, r2 lsrs r4, r0, 16 _08060420: cmp r1, 0 bge _0806042C lsls r0, r4, 16 ldr r1, _08060468 @ =0xfff00000 adds r0, r1 lsrs r4, r0, 16 _0806042C: ldr r2, _0806046C @ =gSaveBlock1 ldrh r1, [r2] lsls r0, r5, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 lsls r1, r3, 16 asrs r1, 16 adds r1, r0 strh r1, [r7] ldrh r1, [r2, 0x2] lsls r0, r6, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 lsls r1, r4, 16 asrs r1, 16 adds r1, r0 mov r2, r12 strh r1, [r2] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806045C: .4byte gUnknown_0300489C _08060460: .4byte gUnknown_03004880 _08060464: .4byte gUnknown_03004898 _08060468: .4byte 0xfff00000 _0806046C: .4byte gSaveBlock1 thumb_func_end sub_80603CC thumb_func_start sub_8060470 sub_8060470: @ 8060470 push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 mov r8, r1 adds r4, r2, 0 adds r5, r3, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 movs r1, 0 ldrsh r0, [r6, r1] mov r2, r8 movs r3, 0 ldrsh r1, [r2, r3] adds r2, r6, 0 mov r3, r8 bl sub_80603CC lsls r4, 16 asrs r4, 16 ldrh r0, [r6] adds r4, r0 strh r4, [r6] lsls r5, 16 asrs r5, 16 mov r1, r8 ldrh r1, [r1] adds r5, r1 mov r2, r8 strh r5, [r2] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8060470 thumb_func_start GetFieldObjectMovingCameraOffset GetFieldObjectMovingCameraOffset: @ 80604BC push {lr} adds r2, r0, 0 movs r0, 0 strh r0, [r2] strh r0, [r1] ldr r3, _080604F8 @ =gUnknown_03004880 ldr r0, [r3, 0x10] cmp r0, 0 ble _080604D2 movs r0, 0x1 strh r0, [r2] _080604D2: ldr r0, [r3, 0x10] cmp r0, 0 bge _080604DE ldrh r0, [r2] subs r0, 0x1 strh r0, [r2] _080604DE: ldr r2, [r3, 0x14] cmp r2, 0 ble _080604EA ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080604EA: cmp r2, 0 bge _080604F4 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _080604F4: pop {r0} bx r0 .align 2, 0 _080604F8: .4byte gUnknown_03004880 thumb_func_end GetFieldObjectMovingCameraOffset thumb_func_start FieldObjectMoveDestCoords FieldObjectMoveDestCoords: @ 80604FC push {r4,lr} lsls r1, 24 lsrs r1, 24 ldrh r4, [r0, 0x10] strh r4, [r2] ldrh r0, [r0, 0x12] strh r0, [r3] adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 bl MoveCoords pop {r4} pop {r0} bx r0 thumb_func_end FieldObjectMoveDestCoords thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 806051C push {lr} ldrb r1, [r0] movs r0, 0x42 ands r0, r1 cmp r0, 0 bne _0806052C movs r0, 0 b _0806052E _0806052C: movs r0, 0x1 _0806052E: pop {r1} bx r1 thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive thumb_func_start FieldObjectIsSpecialAnimActive FieldObjectIsSpecialAnimActive: @ 8060534 push {lr} adds r1, r0, 0 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 bge _0806054A ldrb r0, [r1, 0x1C] cmp r0, 0xFF beq _0806054A movs r0, 0x1 b _0806054C _0806054A: movs r0, 0 _0806054C: pop {r1} bx r1 thumb_func_end FieldObjectIsSpecialAnimActive thumb_func_start FieldObjectSetSpecialAnim FieldObjectSetSpecialAnim: @ 8060550 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08060590 adds r0, r4, 0 bl UnfreezeMapObject strb r5, [r4, 0x1C] ldrb r0, [r4] movs r1, 0x40 orrs r0, r1 movs r1, 0x7F ands r0, r1 strb r0, [r4] ldr r2, _0806058C @ =gSprites ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x32] movs r0, 0 b _08060592 .align 2, 0 _0806058C: .4byte gSprites _08060590: movs r0, 0x1 _08060592: pop {r4-r6} pop {r1} bx r1 thumb_func_end FieldObjectSetSpecialAnim thumb_func_start FieldObjectForceSetSpecialAnim FieldObjectForceSetSpecialAnim: @ 8060598 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 bl FieldObjectClearAnimIfSpecialAnimActive adds r0, r5, 0 adds r1, r4, 0 bl FieldObjectSetSpecialAnim pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldObjectForceSetSpecialAnim thumb_func_start FieldObjectClearAnimIfSpecialAnimActive FieldObjectClearAnimIfSpecialAnimActive: @ 80605B4 push {lr} adds r1, r0, 0 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 bge _080605C6 adds r0, r1, 0 bl FieldObjectClearAnim _080605C6: pop {r0} bx r0 thumb_func_end FieldObjectClearAnimIfSpecialAnimActive thumb_func_start FieldObjectClearAnim FieldObjectClearAnim: @ 80605CC movs r1, 0xFF strb r1, [r0, 0x1C] ldrb r2, [r0] movs r1, 0x41 negs r1, r1 ands r1, r2 movs r2, 0x7F ands r1, r2 strb r1, [r0] ldr r3, _080605FC @ =gSprites ldrb r2, [r0, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 movs r2, 0 strh r2, [r1, 0x30] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x32] bx lr .align 2, 0 _080605FC: .4byte gSprites thumb_func_end FieldObjectClearAnim thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8060600 push {lr} ldrb r1, [r0] lsls r0, r1, 25 cmp r0, 0 blt _0806060E movs r0, 0x10 b _08060610 _0806060E: lsrs r0, r1, 7 _08060610: pop {r1} bx r1 thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished FieldObjectClearAnimIfSpecialAnimFinished: @ 8060614 push {r4,r5,lr} adds r5, r0, 0 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _0806062E cmp r4, 0x10 beq _0806062E adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimActive _0806062E: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished thumb_func_start FieldObjectGetSpecialAnim FieldObjectGetSpecialAnim: @ 8060638 push {lr} adds r1, r0, 0 ldrb r0, [r1] lsls r0, 25 cmp r0, 0 blt _08060648 movs r0, 0xFF b _0806064A _08060648: ldrb r0, [r1, 0x1C] _0806064A: pop {r1} bx r1 thumb_func_end FieldObjectGetSpecialAnim thumb_func_start meta_step meta_step: @ 8060650 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl DoGroundEffects_OnSpawn adds r0, r4, 0 adds r1, r5, 0 bl sub_80634A0 adds r0, r4, 0 bl FieldObjectIsSpecialAnimActive lsls r0, 24 cmp r0, 0 beq _0806067A adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectExecSpecialAnim b _08060690 _0806067A: ldrb r0, [r4, 0x1] lsls r0, 31 cmp r0, 0 bne _08060690 _08060682: adds r0, r4, 0 adds r1, r5, 0 bl _call_via_r6 lsls r0, 24 cmp r0, 0 bne _08060682 _08060690: adds r0, r4, 0 adds r1, r5, 0 bl DoGroundEffects_OnBeginStep adds r0, r4, 0 adds r1, r5, 0 bl DoGroundEffects_OnFinishStep adds r0, r4, 0 adds r1, r5, 0 bl npc_obj_transfer_image_anim_pause_flag adds r0, r4, 0 adds r1, r5, 0 bl sub_80634D0 adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectUpdateSubpriority pop {r4-r6} pop {r0} bx r0 thumb_func_end meta_step thumb_func_start GetFaceDirectionAnimId GetFaceDirectionAnimId: @ 80606C0 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080606E8 @ =gUnknown_083756C8 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080606D8 movs r4, 0 _080606D8: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080606E8: .4byte gUnknown_083756C8 thumb_func_end GetFaceDirectionAnimId thumb_func_start GetSimpleGoAnimId GetSimpleGoAnimId: @ 80606EC push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060714 @ =gUnknown_083756CD mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060704 movs r4, 0 _08060704: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060714: .4byte gUnknown_083756CD thumb_func_end GetSimpleGoAnimId thumb_func_start GetGoSpeed0AnimId GetGoSpeed0AnimId: @ 8060718 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060740 @ =gUnknown_083756D2 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060730 movs r4, 0 _08060730: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060740: .4byte gUnknown_083756D2 thumb_func_end GetGoSpeed0AnimId thumb_func_start sub_8060744 sub_8060744: @ 8060744 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0806076C @ =gUnknown_083756D7 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _0806075C movs r4, 0 _0806075C: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0806076C: .4byte gUnknown_083756D7 thumb_func_end sub_8060744 thumb_func_start d2s_08064034 d2s_08064034: @ 8060770 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060798 @ =gUnknown_083756DC mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060788 movs r4, 0 _08060788: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060798: .4byte gUnknown_083756DC thumb_func_end d2s_08064034 thumb_func_start sub_806079C sub_806079C: @ 806079C push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080607C4 @ =gUnknown_083756E1 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080607B4 movs r4, 0 _080607B4: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080607C4: .4byte gUnknown_083756E1 thumb_func_end sub_806079C thumb_func_start sub_80607C8 sub_80607C8: @ 80607C8 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080607F0 @ =gUnknown_083756E6 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080607E0 movs r4, 0 _080607E0: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080607F0: .4byte gUnknown_083756E6 thumb_func_end sub_80607C8 thumb_func_start sub_80607F4 sub_80607F4: @ 80607F4 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0806081C @ =gUnknown_083756EB mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _0806080C movs r4, 0 _0806080C: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0806081C: .4byte gUnknown_083756EB thumb_func_end sub_80607F4 thumb_func_start GetJumpLedgeAnimId GetJumpLedgeAnimId: @ 8060820 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060848 @ =gUnknown_083756F0 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060838 movs r4, 0 _08060838: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060848: .4byte gUnknown_083756F0 thumb_func_end GetJumpLedgeAnimId thumb_func_start sub_806084C sub_806084C: @ 806084C push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060874 @ =gUnknown_083756F5 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060864 movs r4, 0 _08060864: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060874: .4byte gUnknown_083756F5 thumb_func_end sub_806084C thumb_func_start sub_8060878 sub_8060878: @ 8060878 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080608A0 @ =gUnknown_083756FA mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060890 movs r4, 0 _08060890: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080608A0: .4byte gUnknown_083756FA thumb_func_end sub_8060878 thumb_func_start sub_80608A4 sub_80608A4: @ 80608A4 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080608CC @ =gUnknown_083756FF mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080608BC movs r4, 0 _080608BC: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080608CC: .4byte gUnknown_083756FF thumb_func_end sub_80608A4 thumb_func_start sub_80608D0 sub_80608D0: @ 80608D0 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080608F8 @ =gUnknown_08375704 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080608E8 movs r4, 0 _080608E8: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080608F8: .4byte gUnknown_08375704 thumb_func_end sub_80608D0 thumb_func_start GetStepInPlaceDelay32AnimId GetStepInPlaceDelay32AnimId: @ 80608FC push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060924 @ =gUnknown_08375709 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060914 movs r4, 0 _08060914: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060924: .4byte gUnknown_08375709 thumb_func_end GetStepInPlaceDelay32AnimId thumb_func_start GetStepInPlaceDelay16AnimId GetStepInPlaceDelay16AnimId: @ 8060928 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060950 @ =gUnknown_0837570E mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060940 movs r4, 0 _08060940: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060950: .4byte gUnknown_0837570E thumb_func_end GetStepInPlaceDelay16AnimId thumb_func_start GetStepInPlaceDelay8AnimId GetStepInPlaceDelay8AnimId: @ 8060954 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0806097C @ =gUnknown_08375713 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _0806096C movs r4, 0 _0806096C: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0806097C: .4byte gUnknown_08375713 thumb_func_end GetStepInPlaceDelay8AnimId thumb_func_start GetStepInPlaceDelay4AnimId GetStepInPlaceDelay4AnimId: @ 8060980 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _080609A8 @ =gUnknown_08375718 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060998 movs r4, 0 _08060998: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _080609A8: .4byte gUnknown_08375718 thumb_func_end GetStepInPlaceDelay4AnimId thumb_func_start FieldObjectFaceOppositeDirection FieldObjectFaceOppositeDirection: @ 80609AC push {r4,lr} adds r4, r0, 0 lsls r0, r1, 24 lsrs r0, 24 bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end FieldObjectFaceOppositeDirection thumb_func_start sub_80609D8 sub_80609D8: @ 80609D8 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060A00 @ =gUnknown_0837571D mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _080609F0 movs r4, 0 _080609F0: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060A00: .4byte gUnknown_0837571D thumb_func_end sub_80609D8 thumb_func_start sub_8060A04 sub_8060A04: @ 8060A04 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060A2C @ =gUnknown_08375722 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060A1C movs r4, 0 _08060A1C: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060A2C: .4byte gUnknown_08375722 thumb_func_end sub_8060A04 thumb_func_start sub_8060A30 sub_8060A30: @ 8060A30 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060A58 @ =gUnknown_08375727 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060A48 movs r4, 0 _08060A48: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060A58: .4byte gUnknown_08375727 thumb_func_end sub_8060A30 thumb_func_start sub_8060A5C sub_8060A5C: @ 8060A5C push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060A84 @ =gUnknown_0837572C mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060A74 movs r4, 0 _08060A74: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060A84: .4byte gUnknown_0837572C thumb_func_end sub_8060A5C thumb_func_start sub_8060A88 sub_8060A88: @ 8060A88 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060AB0 @ =gUnknown_08375731 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060AA0 movs r4, 0 _08060AA0: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060AB0: .4byte gUnknown_08375731 thumb_func_end sub_8060A88 thumb_func_start sub_8060AB4 sub_8060AB4: @ 8060AB4 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060ADC @ =gUnknown_08375736 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060ACC movs r4, 0 _08060ACC: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060ADC: .4byte gUnknown_08375736 thumb_func_end sub_8060AB4 thumb_func_start sub_8060AE0 sub_8060AE0: @ 8060AE0 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060B08 @ =gUnknown_0837573B mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060AF8 movs r4, 0 _08060AF8: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060B08: .4byte gUnknown_0837573B thumb_func_end sub_8060AE0 thumb_func_start sub_8060B0C sub_8060B0C: @ 8060B0C push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060B34 @ =gUnknown_08375740 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060B24 movs r4, 0 _08060B24: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060B34: .4byte gUnknown_08375740 thumb_func_end sub_8060B0C thumb_func_start sub_8060B38 sub_8060B38: @ 8060B38 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060B60 @ =gUnknown_08375745 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060B50 movs r4, 0 _08060B50: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060B60: .4byte gUnknown_08375745 thumb_func_end sub_8060B38 thumb_func_start sub_8060B64 sub_8060B64: @ 8060B64 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060B8C @ =gUnknown_0837574A mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x4 bls _08060B7C movs r4, 0 _08060B7C: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _08060B8C: .4byte gUnknown_0837574A thumb_func_end sub_8060B64 thumb_func_start GetOppositeDirection GetOppositeDirection: @ 8060B90 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08060BB4 @ =gUnknown_0837574F mov r0, sp movs r2, 0x8 bl memcpy subs r1, r4, 0x1 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x7 bhi _08060BB8 mov r2, sp adds r0, r2, r1 ldrb r0, [r0] b _08060BBA .align 2, 0 _08060BB4: .4byte gUnknown_0837574F _08060BB8: adds r0, r4, 0 _08060BBA: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end GetOppositeDirection thumb_func_start zffu_offset_calc zffu_offset_calc: @ 8060BC4 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _08060BD8 @ =gUnknown_08375757 lsrs r0, 22 subs r0, 0x5 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .align 2, 0 _08060BD8: .4byte gUnknown_08375757 thumb_func_end zffu_offset_calc thumb_func_start state_to_direction state_to_direction: @ 8060BDC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r1, 0 beq _08060BFC cmp r2, 0 beq _08060BFC cmp r1, 0x4 bhi _08060BFC cmp r2, 0x4 bls _08060C00 _08060BFC: movs r0, 0 b _08060C12 _08060C00: adds r1, r2, 0 bl zffu_offset_calc ldr r2, _08060C18 @ =gUnknown_08375767 lsls r1, r4, 2 subs r1, 0x5 adds r0, r1 adds r0, r2 ldrb r0, [r0] _08060C12: pop {r4} pop {r1} bx r1 .align 2, 0 _08060C18: .4byte gUnknown_08375767 thumb_func_end state_to_direction thumb_func_start FieldObjectExecSpecialAnim FieldObjectExecSpecialAnim: @ 8060C1C push {r4,lr} adds r4, r0, 0 ldr r2, _08060C50 @ =gUnknown_08375778 ldrb r0, [r4, 0x1C] lsls r0, 2 adds r0, r2 movs r3, 0x32 ldrsh r2, [r1, r3] ldr r0, [r0] lsls r2, 2 adds r2, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 beq _08060C48 ldrb r0, [r4] movs r1, 0x80 orrs r0, r1 strb r0, [r4] _08060C48: pop {r4} pop {r0} bx r0 .align 2, 0 _08060C50: .4byte gUnknown_08375778 thumb_func_end FieldObjectExecSpecialAnim thumb_func_start FieldObjectExecRegularAnim FieldObjectExecRegularAnim: @ 8060C54 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, _08060C80 @ =gUnknown_08375778 ldrb r0, [r4, 0x1C] lsls r0, 2 adds r0, r1 movs r2, 0x32 ldrsh r1, [r5, r2] ldr r0, [r0] lsls r1, 2 adds r1, r0 ldr r2, [r1] adds r0, r4, 0 adds r1, r5, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _08060C84 movs r0, 0 b _08060C8E .align 2, 0 _08060C80: .4byte gUnknown_08375778 _08060C84: movs r0, 0xFF strb r0, [r4, 0x1C] movs r0, 0 strh r0, [r5, 0x32] movs r0, 0x1 _08060C8E: pop {r4,r5} pop {r1} bx r1 thumb_func_end FieldObjectExecRegularAnim thumb_func_start FieldObjectSetRegularAnim FieldObjectSetRegularAnim: @ 8060C94 movs r3, 0 strb r2, [r0, 0x1C] strh r3, [r1, 0x32] bx lr thumb_func_end FieldObjectSetRegularAnim thumb_func_start an_look_any an_look_any: @ 8060C9C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r1, r2, 24 lsrs r1, 24 bl FieldObjectSetDirection adds r0, r4, 0 bl npc_coords_shift_still ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl get_go_image_anim_num adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE64 adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r5, 0x32] pop {r4,r5} pop {r0} bx r0 thumb_func_end an_look_any thumb_func_start sub_8060CE0 sub_8060CE0: @ 8060CE0 push {lr} movs r2, 0x1 bl an_look_any movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8060CE0 thumb_func_start sub_8060CF0 sub_8060CF0: @ 8060CF0 push {lr} movs r2, 0x2 bl an_look_any movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8060CF0 thumb_func_start sub_8060D00 sub_8060D00: @ 8060D00 push {lr} movs r2, 0x3 bl an_look_any movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8060D00 thumb_func_start sub_8060D10 sub_8060D10: @ 8060D10 push {lr} movs r2, 0x4 bl an_look_any movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8060D10 thumb_func_start sub_8060D20 sub_8060D20: @ 8060D20 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r8, r0 mov r9, r1 adds r4, r2, 0 adds r6, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 ldrh r1, [r0, 0x10] mov r0, sp strh r1, [r0] mov r1, r8 ldrh r0, [r1, 0x12] mov r5, sp adds r5, 0x2 strh r0, [r5] mov r0, r8 adds r1, r4, 0 bl FieldObjectSetDirection adds r0, r4, 0 mov r1, sp adds r2, r5, 0 bl MoveCoords mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r5, r0] mov r0, r8 bl npc_coords_shift mov r0, r9 adds r1, r4, 0 adds r2, r6, 0 bl oamt_npc_ministep_reset mov r2, r9 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] mov r1, r8 ldrb r0, [r1] movs r1, 0x4 orrs r0, r1 mov r2, r8 strb r0, [r2] movs r0, 0x1 mov r1, r9 strh r0, [r1, 0x32] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8060D20 thumb_func_start do_go_anim do_go_anim: @ 8060DA4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r5, r0, 0 mov r8, r1 adds r4, r3, 0 lsls r2, 24 lsrs r2, 24 lsls r4, 24 lsrs r4, 24 mov r1, sp ldr r0, _08060DFC @ =gUnknown_083759C0 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6} stm r1!, {r3,r6} adds r0, r5, 0 mov r1, r8 adds r3, r4, 0 bl sub_8060D20 lsls r4, 2 mov r7, sp adds r1, r7, r4 ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 ldr r1, [r1] bl _call_via_r1 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 mov r1, r8 bl sub_805FE28 add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08060DFC: .4byte gUnknown_083759C0 thumb_func_end do_go_anim thumb_func_start do_run_anim do_run_anim: @ 8060E00 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 movs r3, 0x1 bl sub_8060D20 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl get_run_image_anim_num adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE28 pop {r4,r5} pop {r0} bx r0 thumb_func_end do_run_anim thumb_func_start npc_obj_ministep_stop_on_arrival npc_obj_ministep_stop_on_arrival: @ 8060E30 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl obj_npc_ministep lsls r0, 24 cmp r0, 0 bne _08060E46 movs r0, 0 b _08060E62 _08060E46: adds r0, r4, 0 bl npc_coords_shift_still ldrb r0, [r4] movs r1, 0x8 orrs r0, r1 strb r0, [r4] adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x1 _08060E62: pop {r4,r5} pop {r1} bx r1 thumb_func_end npc_obj_ministep_stop_on_arrival thumb_func_start sub_8060E68 sub_8060E68: @ 8060E68 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r6, r0, 0 mov r8, r1 lsls r5, r2, 24 lsrs r5, 24 ldrh r1, [r6, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r6, 0x12] mov r4, sp adds r4, 0x2 strh r0, [r4] adds r0, r6, 0 adds r1, r5, 0 bl FieldObjectSetDirection adds r0, r5, 0 mov r1, sp adds r2, r4, 0 bl MoveCoords mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0 ldrsh r2, [r4, r0] adds r0, r6, 0 bl npc_coords_shift mov r0, r8 adds r1, r5, 0 bl sub_806467C mov r2, r8 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] movs r0, 0x1 mov r1, r8 strh r0, [r1, 0x32] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8060E68 thumb_func_start sub_8060ED8 sub_8060ED8: @ 8060ED8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 bl sub_8060E68 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl get_go_image_anim_num adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE28 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8060ED8 thumb_func_start an_walk_any_2 an_walk_any_2: @ 8060F04 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl sub_806468C lsls r0, 24 cmp r0, 0 bne _08060F1A movs r0, 0 b _08060F36 _08060F1A: adds r0, r4, 0 bl npc_coords_shift_still ldrb r0, [r4] movs r1, 0x8 orrs r0, r1 strb r0, [r4] adds r2, r5, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x1 _08060F36: pop {r4,r5} pop {r1} bx r1 thumb_func_end an_walk_any_2 thumb_func_start sub_8060F3C sub_8060F3C: @ 8060F3C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8060ED8 adds r0, r4, 0 adds r1, r5, 0 bl sub_8060F5C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8060F3C thumb_func_start sub_8060F5C sub_8060F5C: @ 8060F5C push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _08060F6E movs r0, 0 b _08060F74 _08060F6E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08060F74: pop {r4} pop {r1} bx r1 thumb_func_end sub_8060F5C thumb_func_start sub_8060F7C sub_8060F7C: @ 8060F7C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 bl sub_8060ED8 adds r0, r4, 0 adds r1, r5, 0 bl sub_8060F9C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8060F7C thumb_func_start sub_8060F9C sub_8060F9C: @ 8060F9C push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _08060FAE movs r0, 0 b _08060FB4 _08060FAE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08060FB4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8060F9C thumb_func_start sub_8060FBC sub_8060FBC: @ 8060FBC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 bl sub_8060ED8 adds r0, r4, 0 adds r1, r5, 0 bl sub_8060FDC lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8060FBC thumb_func_start sub_8060FDC sub_8060FDC: @ 8060FDC push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _08060FEE movs r0, 0 b _08060FF4 _08060FEE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08060FF4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8060FDC thumb_func_start sub_8060FFC sub_8060FFC: @ 8060FFC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8060ED8 adds r0, r4, 0 adds r1, r5, 0 bl sub_806101C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8060FFC thumb_func_start sub_806101C sub_806101C: @ 806101C push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _0806102E movs r0, 0 b _08061034 _0806102E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061034: pop {r4} pop {r1} bx r1 thumb_func_end sub_806101C thumb_func_start sub_806103C sub_806103C: @ 806103C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_806105C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806103C thumb_func_start sub_806105C sub_806105C: @ 806105C push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806106E movs r0, 0 b _08061074 _0806106E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061074: pop {r4} pop {r1} bx r1 thumb_func_end sub_806105C thumb_func_start sub_806107C sub_806107C: @ 806107C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_806109C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806107C thumb_func_start sub_806109C sub_806109C: @ 806109C push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080610AE movs r0, 0 b _080610B4 _080610AE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080610B4: pop {r4} pop {r1} bx r1 thumb_func_end sub_806109C thumb_func_start sub_80610BC sub_80610BC: @ 80610BC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_80610DC lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80610BC thumb_func_start sub_80610DC sub_80610DC: @ 80610DC push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080610EE movs r0, 0 b _080610F4 _080610EE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080610F4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80610DC thumb_func_start sub_80610FC sub_80610FC: @ 80610FC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_806111C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80610FC thumb_func_start sub_806111C sub_806111C: @ 806111C push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806112E movs r0, 0 b _08061134 _0806112E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061134: pop {r4} pop {r1} bx r1 thumb_func_end sub_806111C thumb_func_start sub_806113C sub_806113C: @ 806113C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r7, r0, 0 mov r10, r1 adds r4, r2, 0 mov r8, r3 ldr r0, [sp, 0x30] lsls r4, 24 lsrs r4, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080611F4 @ =gUnknown_08375A34 add r0, sp, 0x4 movs r2, 0x6 bl memcpy add r5, sp, 0xC movs r0, 0 strh r0, [r5] mov r6, sp adds r6, 0xE strh r0, [r6] adds r0, r7, 0 adds r1, r4, 0 bl FieldObjectSetDirection mov r1, r8 lsls r0, r1, 1 add r0, sp adds r0, 0x4 movs r1, 0 ldrsh r3, [r0, r1] str r3, [sp] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_8060320 ldrh r1, [r5] ldrh r0, [r7, 0x10] adds r1, r0 lsls r1, 16 asrs r1, 16 ldrh r2, [r6] ldrh r0, [r7, 0x12] adds r2, r0 lsls r2, 16 asrs r2, 16 adds r0, r7, 0 bl npc_coords_shift mov r0, r10 adds r1, r4, 0 mov r2, r8 mov r3, r9 bl sub_80646E4 movs r0, 0x1 mov r1, r10 strh r0, [r1, 0x32] movs r0, 0x2C add r10, r0 mov r0, r10 ldrb r1, [r0] movs r0, 0x41 negs r0, r0 ands r0, r1 mov r1, r10 strb r0, [r1] ldrb r0, [r7] movs r1, 0x4 orrs r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r7] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080611F4: .4byte gUnknown_08375A34 thumb_func_end sub_806113C thumb_func_start maybe_shadow_1 maybe_shadow_1: @ 80611F8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r0, [sp, 0x10] lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r4, 0 bl sub_806113C ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl get_go_image_anim_num adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE28 adds r0, r4, 0 bl DoShadowFieldEffect add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end maybe_shadow_1 thumb_func_start sub_806123C sub_806123C: @ 806123C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r6, r0, 0 adds r7, r1, 0 adds r4, r2, 0 ldr r1, _080612C8 @ =gUnknown_08375A3A add r0, sp, 0x4 movs r2, 0x6 bl memcpy adds r0, r7, 0 bl _call_via_r4 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bne _080612CC movs r1, 0x36 ldrsh r0, [r7, r1] lsls r0, 1 add r0, sp adds r0, 0x4 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _080612CC add r4, sp, 0xC movs r0, 0 strh r0, [r4] mov r5, sp adds r5, 0xE strh r0, [r5] ldrb r0, [r6, 0x18] lsrs r0, 4 movs r2, 0x36 ldrsh r1, [r7, r2] lsls r1, 1 add r1, sp adds r1, 0x4 movs r2, 0 ldrsh r3, [r1, r2] str r3, [sp] adds r1, r4, 0 adds r2, r5, 0 bl sub_8060320 ldrh r1, [r4] ldrh r0, [r6, 0x10] adds r1, r0 lsls r1, 16 asrs r1, 16 ldrh r2, [r5] ldrh r0, [r6, 0x12] adds r2, r0 lsls r2, 16 asrs r2, 16 adds r0, r6, 0 bl npc_coords_shift ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r6] b _080612F0 .align 2, 0 _080612C8: .4byte gUnknown_08375A3A _080612CC: mov r1, r8 cmp r1, 0xFF bne _080612F0 adds r0, r6, 0 bl npc_coords_shift_still ldrb r0, [r6] movs r1, 0x8 orrs r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r6] adds r2, r7, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] _080612F0: mov r0, r8 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806123C thumb_func_start sub_8061300 sub_8061300: @ 8061300 push {lr} ldr r2, _08061310 @ =sub_8064704 bl sub_806123C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08061310: .4byte sub_8064704 thumb_func_end sub_8061300 thumb_func_start sub_8061314 sub_8061314: @ 8061314 push {lr} ldr r2, _08061324 @ =sub_806478C bl sub_806123C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08061324: .4byte sub_806478C thumb_func_end sub_8061314 thumb_func_start sub_8061328 sub_8061328: @ 8061328 push {lr} bl sub_8061300 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0806133A movs r0, 0 b _0806133C _0806133A: movs r0, 0x1 _0806133C: pop {r1} bx r1 thumb_func_end sub_8061328 thumb_func_start sub_8061340 sub_8061340: @ 8061340 push {lr} bl sub_8061314 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08061352 movs r0, 0 b _08061354 _08061352: movs r0, 0x1 _08061354: pop {r1} bx r1 thumb_func_end sub_8061340 thumb_func_start sub_8061358 sub_8061358: @ 8061358 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061300 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08061372 cmp r0, 0xFF bne _0806139E movs r0, 0x1 b _080613A0 _08061372: ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetOppositeDirection adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetDirection ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl get_go_image_anim_num adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE64 _0806139E: movs r0, 0 _080613A0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061358 thumb_func_start sub_80613A8 sub_80613A8: @ 80613A8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x2 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80613D4 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80613A8 thumb_func_start sub_80613D4 sub_80613D4: @ 80613D4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _080613E8 movs r0, 0 b _080613F8 _080613E8: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080613F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80613D4 thumb_func_start sub_8061400 sub_8061400: @ 8061400 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_806142C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061400 thumb_func_start sub_806142C sub_806142C: @ 806142C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08061440 movs r0, 0 b _08061450 _08061440: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08061450: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806142C thumb_func_start sub_8061458 sub_8061458: @ 8061458 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0x2 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8061484 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061458 thumb_func_start sub_8061484 sub_8061484: @ 8061484 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08061498 movs r0, 0 b _080614A8 _08061498: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080614A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061484 thumb_func_start sub_80614B0 sub_80614B0: @ 80614B0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0x2 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80614DC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80614B0 thumb_func_start sub_80614DC sub_80614DC: @ 80614DC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _080614F0 movs r0, 0 b _08061500 _080614F0: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08061500: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80614DC thumb_func_start sub_8061508 sub_8061508: @ 8061508 movs r2, 0x1 strh r2, [r0, 0x32] strh r1, [r0, 0x34] bx lr thumb_func_end sub_8061508 thumb_func_start sub_8061510 sub_8061510: @ 8061510 push {lr} ldrh r0, [r1, 0x34] subs r0, 0x1 strh r0, [r1, 0x34] lsls r0, 16 cmp r0, 0 beq _08061522 movs r0, 0 b _08061528 _08061522: movs r0, 0x2 strh r0, [r1, 0x32] movs r0, 0x1 _08061528: pop {r1} bx r1 thumb_func_end sub_8061510 thumb_func_start sub_806152C sub_806152C: @ 806152C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x1 bl sub_8061508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8061510 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806152C thumb_func_start sub_806154C sub_806154C: @ 806154C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x2 bl sub_8061508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8061510 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806154C thumb_func_start sub_806156C sub_806156C: @ 806156C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x4 bl sub_8061508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8061510 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806156C thumb_func_start sub_806158C sub_806158C: @ 806158C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x8 bl sub_8061508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8061510 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806158C thumb_func_start sub_80615AC sub_80615AC: @ 80615AC push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x10 bl sub_8061508 adds r0, r5, 0 adds r1, r4, 0 bl sub_8061510 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80615AC thumb_func_start sub_80615CC sub_80615CC: @ 80615CC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x1 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_80615EC lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80615CC thumb_func_start sub_80615EC sub_80615EC: @ 80615EC push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080615FE movs r0, 0 b _08061604 _080615FE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061604: pop {r4} pop {r1} bx r1 thumb_func_end sub_80615EC thumb_func_start sub_806160C sub_806160C: @ 806160C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x1 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_806162C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806160C thumb_func_start sub_806162C sub_806162C: @ 806162C push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806163E movs r0, 0 b _08061644 _0806163E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061644: pop {r4} pop {r1} bx r1 thumb_func_end sub_806162C thumb_func_start sub_806164C sub_806164C: @ 806164C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x1 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_806166C lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806164C thumb_func_start sub_806166C sub_806166C: @ 806166C push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806167E movs r0, 0 b _08061684 _0806167E: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061684: pop {r4} pop {r1} bx r1 thumb_func_end sub_806166C thumb_func_start sub_806168C sub_806168C: @ 806168C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x1 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_80616AC lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806168C thumb_func_start sub_80616AC sub_80616AC: @ 80616AC push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080616BE movs r0, 0 b _080616C4 _080616BE: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080616C4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80616AC thumb_func_start sub_80616CC sub_80616CC: @ 80616CC push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r6, r1, 0 adds r1, r2, 0 adds r4, r3, 0 ldr r5, [sp, 0x14] lsls r1, 24 lsrs r1, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 16 lsrs r5, 16 bl FieldObjectSetDirection mov r0, r8 adds r1, r6, 0 adds r2, r4, 0 bl sub_805FE28 adds r2, r6, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r6, 0x32] strh r5, [r6, 0x34] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80616CC thumb_func_start sub_8061714 sub_8061714: @ 8061714 push {lr} ldrh r0, [r1, 0x34] subs r0, 0x1 strh r0, [r1, 0x34] lsls r0, 16 cmp r0, 0 beq _08061726 movs r0, 0 b _08061738 _08061726: movs r0, 0x2 strh r0, [r1, 0x32] adds r2, r1, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x1 _08061738: pop {r1} bx r1 thumb_func_end sub_8061714 thumb_func_start sub_806173C sub_806173C: @ 806173C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrh r1, [r4, 0x34] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08061766 adds r3, r4, 0 adds r3, 0x2C ldrb r2, [r3] lsls r1, r2, 26 lsrs r1, 26 adds r1, 0x1 movs r0, 0x3F ands r1, r0 movs r0, 0x40 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08061766: adds r0, r5, 0 adds r1, r4, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806173C thumb_func_start sub_8061778 sub_8061778: @ 8061778 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x20 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_806173C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061778 thumb_func_start sub_80617B0 sub_80617B0: @ 80617B0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x20 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_806173C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80617B0 thumb_func_start sub_80617E8 sub_80617E8: @ 80617E8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x20 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_806173C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80617E8 thumb_func_start sub_8061820 sub_8061820: @ 8061820 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x20 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_806173C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061820 thumb_func_start sub_8061858 sub_8061858: @ 8061858 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061858 thumb_func_start sub_8061890 sub_8061890: @ 8061890 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061890 thumb_func_start sub_80618C8 sub_80618C8: @ 80618C8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80618C8 thumb_func_start sub_8061900 sub_8061900: @ 8061900 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl get_go_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x10 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061900 thumb_func_start sub_8061938 sub_8061938: @ 8061938 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl get_go_fast_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061938 thumb_func_start sub_8061970 sub_8061970: @ 8061970 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl get_go_fast_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061970 thumb_func_start sub_80619A8 sub_80619A8: @ 80619A8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl get_go_fast_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80619A8 thumb_func_start sub_80619E0 sub_80619E0: @ 80619E0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl get_go_fast_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80619E0 thumb_func_start sub_8061A18 sub_8061A18: @ 8061A18 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl get_go_faster_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x4 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061A18 thumb_func_start sub_8061A50 sub_8061A50: @ 8061A50 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl get_go_faster_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x4 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061A50 thumb_func_start sub_8061A88 sub_8061A88: @ 8061A88 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl get_go_faster_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x4 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061A88 thumb_func_start sub_8061AC0 sub_8061AC0: @ 8061AC0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl get_go_faster_image_anim_num adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x4 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061AC0 thumb_func_start sub_8061AF8 sub_8061AF8: @ 8061AF8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x2 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061B18 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061AF8 thumb_func_start sub_8061B18 sub_8061B18: @ 8061B18 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061B2A movs r0, 0 b _08061B30 _08061B2A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061B30: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061B18 thumb_func_start sub_8061B38 sub_8061B38: @ 8061B38 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x2 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061B58 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061B38 thumb_func_start sub_8061B58 sub_8061B58: @ 8061B58 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061B6A movs r0, 0 b _08061B70 _08061B6A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061B70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061B58 thumb_func_start sub_8061B78 sub_8061B78: @ 8061B78 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x2 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061B98 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061B78 thumb_func_start sub_8061B98 sub_8061B98: @ 8061B98 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061BAA movs r0, 0 b _08061BB0 _08061BAA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061BB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061B98 thumb_func_start sub_8061BB8 sub_8061BB8: @ 8061BB8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x2 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061BD8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061BB8 thumb_func_start sub_8061BD8 sub_8061BD8: @ 8061BD8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061BEA movs r0, 0 b _08061BF0 _08061BEA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061BF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061BD8 thumb_func_start sub_8061BF8 sub_8061BF8: @ 8061BF8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x3 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061C18 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061BF8 thumb_func_start sub_8061C18 sub_8061C18: @ 8061C18 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061C2A movs r0, 0 b _08061C30 _08061C2A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061C30: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061C18 thumb_func_start sub_8061C38 sub_8061C38: @ 8061C38 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x3 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061C58 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061C38 thumb_func_start sub_8061C58 sub_8061C58: @ 8061C58 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061C6A movs r0, 0 b _08061C70 _08061C6A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061C70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061C58 thumb_func_start sub_8061C78 sub_8061C78: @ 8061C78 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x3 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061C98 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061C78 thumb_func_start sub_8061C98 sub_8061C98: @ 8061C98 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061CAA movs r0, 0 b _08061CB0 _08061CAA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061CB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061C98 thumb_func_start sub_8061CB8 sub_8061CB8: @ 8061CB8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x3 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061CD8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061CB8 thumb_func_start sub_8061CD8 sub_8061CD8: @ 8061CD8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061CEA movs r0, 0 b _08061CF0 _08061CEA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061CF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061CD8 thumb_func_start sub_8061CF8 sub_8061CF8: @ 8061CF8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x4 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061D18 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061CF8 thumb_func_start sub_8061D18 sub_8061D18: @ 8061D18 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061D2A movs r0, 0 b _08061D30 _08061D2A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061D30: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061D18 thumb_func_start sub_8061D38 sub_8061D38: @ 8061D38 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x4 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061D58 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061D38 thumb_func_start sub_8061D58 sub_8061D58: @ 8061D58 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061D6A movs r0, 0 b _08061D70 _08061D6A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061D70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061D58 thumb_func_start sub_8061D78 sub_8061D78: @ 8061D78 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x4 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061D98 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061D78 thumb_func_start sub_8061D98 sub_8061D98: @ 8061D98 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061DAA movs r0, 0 b _08061DB0 _08061DAA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061DB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061D98 thumb_func_start sub_8061DB8 sub_8061DB8: @ 8061DB8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x4 bl do_go_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061DD8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061DB8 thumb_func_start sub_8061DD8 sub_8061DD8: @ 8061DD8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061DEA movs r0, 0 b _08061DF0 _08061DEA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061DF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061DD8 thumb_func_start do_run_south_anim do_run_south_anim: @ 8061DF8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl do_run_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061E18 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end do_run_south_anim thumb_func_start sub_8061E18 sub_8061E18: @ 8061E18 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061E2A movs r0, 0 b _08061E30 _08061E2A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061E30: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061E18 thumb_func_start do_run_north_anim do_run_north_anim: @ 8061E38 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 bl do_run_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061E58 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end do_run_north_anim thumb_func_start sub_8061E58 sub_8061E58: @ 8061E58 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061E6A movs r0, 0 b _08061E70 _08061E6A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061E70: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061E58 thumb_func_start do_run_west_anim do_run_west_anim: @ 8061E78 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 bl do_run_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061E98 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end do_run_west_anim thumb_func_start sub_8061E98 sub_8061E98: @ 8061E98 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061EAA movs r0, 0 b _08061EB0 _08061EAA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061EB0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061E98 thumb_func_start do_run_east_anim do_run_east_anim: @ 8061EB8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl do_run_anim adds r0, r4, 0 adds r1, r5, 0 bl sub_8061ED8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end do_run_east_anim thumb_func_start sub_8061ED8 sub_8061ED8: @ 8061ED8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08061EEA movs r0, 0 b _08061EF0 _08061EEA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061EF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061ED8 thumb_func_start npc_set_direction_and_anim__an_proceed npc_set_direction_and_anim__an_proceed: @ 8061EF8 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 adds r1, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 movs r2, 0 bl obj_anim_image_set_and_seek adds r0, r6, 0 adds r1, r4, 0 bl FieldObjectSetDirection movs r0, 0x1 strh r0, [r5, 0x32] pop {r4-r6} pop {r0} bx r0 thumb_func_end npc_set_direction_and_anim__an_proceed thumb_func_start sub_8061F24 sub_8061F24: @ 8061F24 push {lr} ldrb r2, [r0, 0x18] lsrs r2, 4 adds r3, r1, 0 adds r3, 0x2A ldrb r3, [r3] bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8061F24 thumb_func_start sub_8061F3C sub_8061F3C: @ 8061F3C push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064864 lsls r0, 24 cmp r0, 0 bne _08061F50 movs r0, 0 b _08061F56 _08061F50: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08061F56: pop {r4} pop {r1} bx r1 thumb_func_end sub_8061F3C thumb_func_start sub_8061F5C sub_8061F5C: @ 8061F5C push {r4,r5,lr} sub sp, 0x4 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 movs r1, 0 str r1, [sp] adds r1, r5, 0 adds r2, r4, 0 movs r3, 0x1 bl sub_806113C adds r0, r4, 0 bl sub_805FD88 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8061F5C thumb_func_start sub_8061F90 sub_8061F90: @ 8061F90 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 bl sub_8061F5C adds r0, r4, 0 adds r1, r5, 0 bl sub_8061FB0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061F90 thumb_func_start sub_8061FB0 sub_8061FB0: @ 8061FB0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061340 lsls r0, 24 cmp r0, 0 bne _08061FC4 movs r0, 0 b _08061FD2 _08061FC4: movs r0, 0x2 strh r0, [r5, 0x32] ldrb r1, [r4] subs r0, 0x23 ands r0, r1 strb r0, [r4] movs r0, 0x1 _08061FD2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061FB0 thumb_func_start sub_8061FD8 sub_8061FD8: @ 8061FD8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 bl sub_8061F5C adds r0, r4, 0 adds r1, r5, 0 bl sub_8061FF8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061FD8 thumb_func_start sub_8061FF8 sub_8061FF8: @ 8061FF8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061340 lsls r0, 24 cmp r0, 0 bne _0806200C movs r0, 0 b _0806201A _0806200C: movs r0, 0x2 strh r0, [r5, 0x32] ldrb r1, [r4] subs r0, 0x23 ands r0, r1 strb r0, [r4] movs r0, 0x1 _0806201A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8061FF8 thumb_func_start sub_8062020 sub_8062020: @ 8062020 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 bl sub_8061F5C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062040 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062020 thumb_func_start sub_8062040 sub_8062040: @ 8062040 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061340 lsls r0, 24 cmp r0, 0 bne _08062054 movs r0, 0 b _08062062 _08062054: movs r0, 0x2 strh r0, [r5, 0x32] ldrb r1, [r4] subs r0, 0x23 ands r0, r1 strb r0, [r4] movs r0, 0x1 _08062062: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062040 thumb_func_start sub_8062068 sub_8062068: @ 8062068 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 bl sub_8061F5C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062088 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062068 thumb_func_start sub_8062088 sub_8062088: @ 8062088 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061340 lsls r0, 24 cmp r0, 0 bne _0806209C movs r0, 0 b _080620AA _0806209C: movs r0, 0x2 strh r0, [r5, 0x32] ldrb r1, [r4] subs r0, 0x23 ands r0, r1 strb r0, [r4] movs r0, 0x1 _080620AA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062088 thumb_func_start sub_80620B0 sub_80620B0: @ 80620B0 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r0, 0xFF movs r1, 0 movs r2, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _080620FA movs r1, 0x10 ldrsh r0, [r5, r1] movs r2, 0x12 ldrsh r1, [r5, r2] ldr r4, _08062108 @ =gMapObjects mov r2, sp ldrb r2, [r2] lsls r3, r2, 3 adds r3, r2 lsls r3, 2 adds r3, r4 movs r4, 0x10 ldrsh r2, [r3, r4] movs r4, 0x12 ldrsh r3, [r3, r4] bl sub_805FE90 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r6, 0 bl an_look_any _080620FA: movs r0, 0x1 strh r0, [r6, 0x32] add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08062108: .4byte gMapObjects thumb_func_end sub_80620B0 thumb_func_start sub_806210C sub_806210C: @ 806210C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 movs r0, 0xFF movs r1, 0 movs r2, 0 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0806215E movs r1, 0x10 ldrsh r0, [r5, r1] movs r2, 0x12 ldrsh r1, [r5, r2] ldr r4, _0806216C @ =gMapObjects mov r2, sp ldrb r2, [r2] lsls r3, r2, 3 adds r3, r2 lsls r3, 2 adds r3, r4 movs r4, 0x10 ldrsh r2, [r3, r4] movs r4, 0x12 ldrsh r3, [r3, r4] bl sub_805FE90 lsls r0, 24 lsrs r0, 24 bl GetOppositeDirection adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r6, 0 bl an_look_any _0806215E: movs r0, 0x1 strh r0, [r6, 0x32] add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806216C: .4byte gMapObjects thumb_func_end sub_806210C thumb_func_start sub_8062170 sub_8062170: @ 8062170 ldrb r2, [r0, 0x1] movs r3, 0x2 orrs r2, r3 strb r2, [r0, 0x1] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_8062170 thumb_func_start sub_8062180 sub_8062180: @ 8062180 ldrb r3, [r0, 0x1] movs r2, 0x3 negs r2, r2 ands r2, r3 strb r2, [r0, 0x1] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_8062180 thumb_func_start sub_8062190 sub_8062190: @ 8062190 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x1 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80621BC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062190 thumb_func_start sub_80621BC sub_80621BC: @ 80621BC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _080621D0 movs r0, 0 b _080621E0 _080621D0: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080621E0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80621BC thumb_func_start sub_80621E8 sub_80621E8: @ 80621E8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x1 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8062214 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80621E8 thumb_func_start sub_8062214 sub_8062214: @ 8062214 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062228 movs r0, 0 b _08062238 _08062228: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062238: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062214 thumb_func_start sub_8062240 sub_8062240: @ 8062240 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0x1 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_806226C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062240 thumb_func_start sub_806226C sub_806226C: @ 806226C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062280 movs r0, 0 b _08062290 _08062280: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062290: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806226C thumb_func_start sub_8062298 sub_8062298: @ 8062298 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0x1 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80622C4 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062298 thumb_func_start sub_80622C4 sub_80622C4: @ 80622C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _080622D8 movs r0, 0 b _080622E8 _080622D8: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080622E8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80622C4 thumb_func_start sub_80622F0 sub_80622F0: @ 80622F0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_806231C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80622F0 thumb_func_start sub_806231C sub_806231C: @ 806231C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062330 movs r0, 0 b _08062340 _08062330: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062340: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806231C thumb_func_start sub_8062348 sub_8062348: @ 8062348 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8062374 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062348 thumb_func_start sub_8062374 sub_8062374: @ 8062374 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062388 movs r0, 0 b _08062398 _08062388: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062398: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062374 thumb_func_start sub_80623A0 sub_80623A0: @ 80623A0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80623CC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80623A0 thumb_func_start sub_80623CC sub_80623CC: @ 80623CC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _080623E0 movs r0, 0 b _080623F0 _080623E0: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080623F0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80623CC thumb_func_start sub_80623F8 sub_80623F8: @ 80623F8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8062424 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80623F8 thumb_func_start sub_8062424 sub_8062424: @ 8062424 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062438 movs r0, 0 b _08062448 _08062438: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062448: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062424 thumb_func_start sub_8062450 sub_8062450: @ 8062450 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_806247C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062450 thumb_func_start sub_806247C sub_806247C: @ 806247C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061358 lsls r0, 24 cmp r0, 0 bne _08062490 movs r0, 0 b _080624A0 _08062490: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080624A0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806247C thumb_func_start sub_80624A8 sub_80624A8: @ 80624A8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_80624D4 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80624A8 thumb_func_start sub_80624D4 sub_80624D4: @ 80624D4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061358 lsls r0, 24 cmp r0, 0 bne _080624E8 movs r0, 0 b _080624F8 _080624E8: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080624F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80624D4 thumb_func_start sub_8062500 sub_8062500: @ 8062500 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_806252C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062500 thumb_func_start sub_806252C sub_806252C: @ 806252C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061358 lsls r0, 24 cmp r0, 0 bne _08062540 movs r0, 0 b _08062550 _08062540: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062550: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806252C thumb_func_start sub_8062558 sub_8062558: @ 8062558 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0 bl maybe_shadow_1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8062584 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062558 thumb_func_start sub_8062584 sub_8062584: @ 8062584 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061358 lsls r0, 24 cmp r0, 0 bne _08062598 movs r0, 0 b _080625A8 _08062598: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080625A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062584 thumb_func_start sub_80625B0 sub_80625B0: @ 80625B0 push {lr} ldr r3, _080625C4 @ =gUnknown_0836DC09 ldrb r2, [r0, 0x6] adds r2, r3 ldrb r2, [r2] bl an_look_any movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080625C4: .4byte gUnknown_0836DC09 thumb_func_end sub_80625B0 thumb_func_start sub_80625C8 sub_80625C8: @ 80625C8 push {lr} movs r2, 0x1 movs r3, 0x14 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80625C8 thumb_func_start sub_80625D8 sub_80625D8: @ 80625D8 ldrb r3, [r0, 0x3] movs r2, 0x3 negs r2, r2 ands r2, r3 strb r2, [r0, 0x3] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_80625D8 thumb_func_start sub_80625E8 sub_80625E8: @ 80625E8 ldrb r2, [r0, 0x3] movs r3, 0x2 orrs r2, r3 strb r2, [r0, 0x3] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_80625E8 thumb_func_start sub_80625F8 sub_80625F8: @ 80625F8 ldrb r2, [r0, 0x1] movs r3, 0x10 orrs r2, r3 strb r2, [r0, 0x1] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_80625F8 thumb_func_start sub_8062608 sub_8062608: @ 8062608 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r0, 0xC] lsls r1, 25 lsrs r1, 31 lsls r1, 4 ldrb r2, [r4, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x1 strh r0, [r5, 0x32] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062608 thumb_func_start sub_8062634 sub_8062634: @ 8062634 ldrb r2, [r0, 0x1] movs r3, 0x20 orrs r2, r3 strb r2, [r0, 0x1] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_8062634 thumb_func_start sub_8062644 sub_8062644: @ 8062644 ldrb r3, [r0, 0x1] movs r2, 0x21 negs r2, r2 ands r2, r3 strb r2, [r0, 0x1] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_8062644 thumb_func_start do_exclamation_mark_bubble_1 do_exclamation_mark_bubble_1: @ 8062654 push {r4,lr} adds r4, r1, 0 ldr r1, _08062674 @ =gUnknown_0202FF84 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 bl FieldObjectGetLocalIdAndMap movs r0, 0 bl FieldEffectStart movs r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r1} bx r1 .align 2, 0 _08062674: .4byte gUnknown_0202FF84 thumb_func_end do_exclamation_mark_bubble_1 thumb_func_start do_exclamation_mark_bubble_2 do_exclamation_mark_bubble_2: @ 8062678 push {r4,lr} adds r4, r1, 0 ldr r1, _08062698 @ =gUnknown_0202FF84 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 bl FieldObjectGetLocalIdAndMap movs r0, 0x21 bl FieldEffectStart movs r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r1} bx r1 .align 2, 0 _08062698: .4byte gUnknown_0202FF84 thumb_func_end do_exclamation_mark_bubble_2 thumb_func_start do_heart_bubble do_heart_bubble: @ 806269C push {r4,lr} adds r4, r1, 0 ldr r1, _080626BC @ =gUnknown_0202FF84 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 bl FieldObjectGetLocalIdAndMap movs r0, 0x2E bl FieldEffectStart movs r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r1} bx r1 .align 2, 0 _080626BC: .4byte gUnknown_0202FF84 thumb_func_end do_heart_bubble thumb_func_start sub_80626C0 sub_80626C0: @ 80626C0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x6] cmp r0, 0x3F bne _080626D6 adds r0, r4, 0 bl sub_8084794 movs r0, 0 b _080626FE _080626D6: subs r0, 0x39 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080626F8 adds r0, r4, 0 bl sub_812869C movs r0, 0x1 strh r0, [r5, 0x32] adds r0, r4, 0 adds r1, r5, 0 bl sub_8062704 lsls r0, 24 lsrs r0, 24 b _080626FE _080626F8: movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _080626FE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80626C0 thumb_func_start sub_8062704 sub_8062704: @ 8062704 push {r4,lr} adds r4, r1, 0 bl sub_81286C4 lsls r0, 24 cmp r0, 0 bne _08062716 movs r0, 0 b _0806271C _08062716: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _0806271C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8062704 thumb_func_start sub_8062724 sub_8062724: @ 8062724 push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl obj_anim_image_set_and_seek movs r0, 0x1 strh r0, [r4, 0x32] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8062724 thumb_func_start sub_8062740 sub_8062740: @ 8062740 push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064864 lsls r0, 24 cmp r0, 0 beq _0806275C adds r0, r4, 0 movs r1, 0x20 bl sub_8064820 movs r0, 0x2 strh r0, [r4, 0x32] _0806275C: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8062740 thumb_func_start sub_8062764 sub_8062764: @ 8062764 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r2, [r4, 0x1] lsls r1, r2, 26 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 5 subs r0, 0x22 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 beq _08062796 ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x3 strh r0, [r5, 0x32] _08062796: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062764 thumb_func_start sub_80627A0 sub_80627A0: @ 80627A0 push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl obj_anim_image_set_and_seek movs r0, 0x1 strh r0, [r4, 0x32] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80627A0 thumb_func_start sub_80627BC sub_80627BC: @ 80627BC push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064864 lsls r0, 24 cmp r0, 0 beq _080627D8 adds r0, r4, 0 movs r1, 0x20 bl sub_8064820 movs r0, 0x2 strh r0, [r4, 0x32] _080627D8: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80627BC thumb_func_start sub_80627E0 sub_80627E0: @ 80627E0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r2, [r4, 0x1] lsls r1, r2, 26 lsrs r1, 31 movs r0, 0x1 eors r1, r0 lsls r1, 5 subs r0, 0x22 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r5, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 beq _08062812 ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] movs r0, 0x3 strh r0, [r5, 0x32] _08062812: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80627E0 thumb_func_start sub_806281C sub_806281C: @ 806281C ldrb r2, [r0, 0x3] movs r3, 0x4 orrs r2, r3 strb r2, [r0, 0x3] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_806281C thumb_func_start sub_806282C sub_806282C: @ 806282C ldrb r3, [r0, 0x3] movs r2, 0x5 negs r2, r2 ands r2, r3 strb r2, [r0, 0x3] movs r0, 0x1 strh r0, [r1, 0x32] bx lr thumb_func_end sub_806282C thumb_func_start sub_806283C sub_806283C: @ 806283C push {r4,lr} adds r4, r1, 0 ldrb r0, [r4, 0x1] movs r1, 0x3 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 bl InitSpriteAffineAnim adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] adds r4, 0x42 ldrb r1, [r4] movs r0, 0x3F ands r0, r1 strb r0, [r4] movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_806283C thumb_func_start sub_806286C sub_806286C: @ 806286C push {r4,lr} adds r4, r1, 0 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldrb r0, [r4, 0x1] movs r1, 0x4 negs r1, r1 ands r1, r0 strb r1, [r4, 0x1] lsrs r1, 6 ldrb r2, [r4, 0x3] lsrs r2, 6 movs r3, 0 adds r0, r4, 0 bl CalcCenterToCornerVec movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_806286C thumb_func_start sub_806289C sub_806289C: @ 806289C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8060ED8 adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0 bl StartSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_80628D0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806289C thumb_func_start sub_80628D0 sub_80628D0: @ 80628D0 push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _080628E2 movs r0, 0 b _080628F4 _080628E2: adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080628F4: pop {r4} pop {r1} bx r1 thumb_func_end sub_80628D0 thumb_func_start sub_80628FC sub_80628FC: @ 80628FC push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r2, 0x1 bl sub_8060ED8 adds r2, r4, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] adds r0, r4, 0 movs r1, 0x1 bl ChangeSpriteAffineAnimIfDifferent adds r0, r5, 0 adds r1, r4, 0 bl sub_8062930 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80628FC thumb_func_start sub_8062930 sub_8062930: @ 8062930 push {r4,lr} adds r4, r1, 0 bl an_walk_any_2 lsls r0, 24 cmp r0, 0 bne _08062942 movs r0, 0 b _08062954 _08062942: adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08062954: pop {r4} pop {r1} bx r1 thumb_func_end sub_8062930 thumb_func_start sub_806295C sub_806295C: @ 806295C push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r4, r2, 24 lsrs r4, 24 adds r1, r4, 0 bl FieldObjectSetDirection adds r0, r5, 0 bl npc_coords_shift_still adds r0, r4, 0 bl sub_805FDD8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_805FE64 adds r2, r6, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r6, 0x32] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806295C thumb_func_start sub_806299C sub_806299C: @ 806299C push {lr} movs r2, 0x1 bl sub_806295C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_806299C thumb_func_start sub_80629AC sub_80629AC: @ 80629AC push {lr} movs r2, 0x2 bl sub_806295C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80629AC thumb_func_start sub_80629BC sub_80629BC: @ 80629BC push {lr} movs r2, 0x3 bl sub_806295C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80629BC thumb_func_start sub_80629CC sub_80629CC: @ 80629CC push {lr} movs r2, 0x4 bl sub_806295C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80629CC thumb_func_start sub_80629DC sub_80629DC: @ 80629DC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl sub_805FD98 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80629DC thumb_func_start sub_8062A00 sub_8062A00: @ 8062A00 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl sub_805FD98 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062A00 thumb_func_start sub_8062A24 sub_8062A24: @ 8062A24 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl sub_805FD98 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062A24 thumb_func_start sub_8062A48 sub_8062A48: @ 8062A48 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl sub_805FD98 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062A48 thumb_func_start sub_8062A6C sub_8062A6C: @ 8062A6C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl sub_805FDB8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062A6C thumb_func_start sub_8062A90 sub_8062A90: @ 8062A90 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl sub_805FDB8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062A90 thumb_func_start sub_8062AB4 sub_8062AB4: @ 8062AB4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl sub_805FDB8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062AB4 thumb_func_start sub_8062AD8 sub_8062AD8: @ 8062AD8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl sub_805FDB8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062AD8 thumb_func_start sub_8062AFC sub_8062AFC: @ 8062AFC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl sub_805FDC8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062AFC thumb_func_start sub_8062B20 sub_8062B20: @ 8062B20 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl sub_805FDC8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062B20 thumb_func_start sub_8062B44 sub_8062B44: @ 8062B44 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl sub_805FDC8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062B44 thumb_func_start sub_8062B68 sub_8062B68: @ 8062B68 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl sub_805FDC8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl npc_set_direction_and_anim__an_proceed movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062B68 thumb_func_start sub_8062B8C sub_8062B8C: @ 8062B8C push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 ldr r0, [sp, 0x14] lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 str r0, [sp] adds r0, r6, 0 adds r2, r4, 0 bl sub_806113C adds r0, r4, 0 bl sub_805FD98 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnimIfDifferent adds r0, r6, 0 bl DoShadowFieldEffect add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8062B8C thumb_func_start sub_8062BD0 sub_8062BD0: @ 8062BD0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062BFC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062BD0 thumb_func_start sub_8062BFC sub_8062BFC: @ 8062BFC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062C10 movs r0, 0 b _08062C20 _08062C10: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062C20: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062BFC thumb_func_start sub_8062C28 sub_8062C28: @ 8062C28 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062C54 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062C28 thumb_func_start sub_8062C54 sub_8062C54: @ 8062C54 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062C68 movs r0, 0 b _08062C78 _08062C68: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062C78: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062C54 thumb_func_start sub_8062C80 sub_8062C80: @ 8062C80 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062CAC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062C80 thumb_func_start sub_8062CAC sub_8062CAC: @ 8062CAC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062CC0 movs r0, 0 b _08062CD0 _08062CC0: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062CD0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062CAC thumb_func_start sub_8062CD8 sub_8062CD8: @ 8062CD8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062D04 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062CD8 thumb_func_start sub_8062D04 sub_8062D04: @ 8062D04 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062D18 movs r0, 0 b _08062D28 _08062D18: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062D28: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062D04 thumb_func_start sub_8062D30 sub_8062D30: @ 8062D30 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062D5C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062D30 thumb_func_start sub_8062D5C sub_8062D5C: @ 8062D5C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062D70 movs r0, 0 b _08062D80 _08062D70: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062D80: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062D5C thumb_func_start sub_8062D88 sub_8062D88: @ 8062D88 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x1 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062DB4 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062D88 thumb_func_start sub_8062DB4 sub_8062DB4: @ 8062DB4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062DC8 movs r0, 0 b _08062DD8 _08062DC8: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062DD8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062DB4 thumb_func_start sub_8062DE0 sub_8062DE0: @ 8062DE0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0x1 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062E0C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062DE0 thumb_func_start sub_8062E0C sub_8062E0C: @ 8062E0C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062E20 movs r0, 0 b _08062E30 _08062E20: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062E30: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062E0C thumb_func_start sub_8062E38 sub_8062E38: @ 8062E38 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0x1 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062E64 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062E38 thumb_func_start sub_8062E64 sub_8062E64: @ 8062E64 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062E78 movs r0, 0 b _08062E88 _08062E78: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062E88: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062E64 thumb_func_start sub_8062E90 sub_8062E90: @ 8062E90 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x2 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062EBC lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062E90 thumb_func_start sub_8062EBC sub_8062EBC: @ 8062EBC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062ED0 movs r0, 0 b _08062EE0 _08062ED0: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062EE0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062EBC thumb_func_start sub_8062EE8 sub_8062EE8: @ 8062EE8 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062F14 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062EE8 thumb_func_start sub_8062F14 sub_8062F14: @ 8062F14 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062F28 movs r0, 0 b _08062F38 _08062F28: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062F38: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062F14 thumb_func_start sub_8062F40 sub_8062F40: @ 8062F40 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x3 movs r3, 0x2 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062F6C lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062F40 thumb_func_start sub_8062F6C sub_8062F6C: @ 8062F6C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062F80 movs r0, 0 b _08062F90 _08062F80: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062F90: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062F6C thumb_func_start sub_8062F98 sub_8062F98: @ 8062F98 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r2, 0x4 movs r3, 0x2 bl sub_8062B8C adds r0, r4, 0 adds r1, r5, 0 bl sub_8062FC4 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062F98 thumb_func_start sub_8062FC4 sub_8062FC4: @ 8062FC4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_8061328 lsls r0, 24 cmp r0, 0 bne _08062FD8 movs r0, 0 b _08062FE8 _08062FD8: ldrb r0, [r4, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r0 strb r1, [r4, 0x2] movs r0, 0x2 strh r0, [r5, 0x32] movs r0, 0x1 _08062FE8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062FC4 thumb_func_start sub_8062FF0 sub_8062FF0: @ 8062FF0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 bl sub_805FDD8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8062FF0 thumb_func_start sub_8063028 sub_8063028: @ 8063028 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x2 bl sub_805FDD8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063028 thumb_func_start sub_8063060 sub_8063060: @ 8063060 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x3 bl sub_805FDD8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063060 thumb_func_start sub_8063098 sub_8063098: @ 8063098 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x4 bl sub_805FDD8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x8 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x4 bl sub_80616CC adds r0, r4, 0 adds r1, r5, 0 bl sub_8061714 lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063098 thumb_func_start sub_80630D0 sub_80630D0: @ 80630D0 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 bl sub_8060D20 ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_805FD98 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80630D0 thumb_func_start sub_8063108 sub_8063108: @ 8063108 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_80630D0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063128 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063108 thumb_func_start sub_8063128 sub_8063128: @ 8063128 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806313A movs r0, 0 b _08063140 _0806313A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063140: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063128 thumb_func_start sub_8063148 sub_8063148: @ 8063148 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_80630D0 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063168 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063148 thumb_func_start sub_8063168 sub_8063168: @ 8063168 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806317A movs r0, 0 b _08063180 _0806317A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063180: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063168 thumb_func_start sub_8063188 sub_8063188: @ 8063188 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_80630D0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80631A8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063188 thumb_func_start sub_80631A8 sub_80631A8: @ 80631A8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080631BA movs r0, 0 b _080631C0 _080631BA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080631C0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80631A8 thumb_func_start sub_80631C8 sub_80631C8: @ 80631C8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x1 bl sub_80630D0 adds r0, r4, 0 adds r1, r5, 0 bl sub_80631E8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80631C8 thumb_func_start sub_80631E8 sub_80631E8: @ 80631E8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080631FA movs r0, 0 b _08063200 _080631FA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063200: pop {r4} pop {r1} bx r1 thumb_func_end sub_80631E8 thumb_func_start sub_8063208 sub_8063208: @ 8063208 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 bl sub_8060D20 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_805FDD8 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_805FE28 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8063208 thumb_func_start sub_8063238 sub_8063238: @ 8063238 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8063208 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063258 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063238 thumb_func_start sub_8063258 sub_8063258: @ 8063258 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806326A movs r0, 0 b _08063270 _0806326A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063270: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063258 thumb_func_start sub_8063278 sub_8063278: @ 8063278 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_8063208 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063298 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063278 thumb_func_start sub_8063298 sub_8063298: @ 8063298 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080632AA movs r0, 0 b _080632B0 _080632AA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080632B0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063298 thumb_func_start sub_80632B8 sub_80632B8: @ 80632B8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_8063208 adds r0, r4, 0 adds r1, r5, 0 bl sub_80632D8 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80632B8 thumb_func_start sub_80632D8 sub_80632D8: @ 80632D8 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080632EA movs r0, 0 b _080632F0 _080632EA: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080632F0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80632D8 thumb_func_start sub_80632F8 sub_80632F8: @ 80632F8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x1 bl sub_8063208 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063318 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80632F8 thumb_func_start sub_8063318 sub_8063318: @ 8063318 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _0806332A movs r0, 0 b _08063330 _0806332A: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063330: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063318 thumb_func_start sub_8063338 sub_8063338: @ 8063338 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 bl sub_8060D20 ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_805FDB8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0 bl SeekSpriteAnim pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8063338 thumb_func_start sub_8063370 sub_8063370: @ 8063370 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x1 movs r3, 0x1 bl sub_8063338 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063390 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063370 thumb_func_start sub_8063390 sub_8063390: @ 8063390 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080633A2 movs r0, 0 b _080633A8 _080633A2: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080633A8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063390 thumb_func_start sub_80633B0 sub_80633B0: @ 80633B0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x2 movs r3, 0x1 bl sub_8063338 adds r0, r4, 0 adds r1, r5, 0 bl sub_80633D0 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80633B0 thumb_func_start sub_80633D0 sub_80633D0: @ 80633D0 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _080633E2 movs r0, 0 b _080633E8 _080633E2: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _080633E8: pop {r4} pop {r1} bx r1 thumb_func_end sub_80633D0 thumb_func_start sub_80633F0 sub_80633F0: @ 80633F0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x3 movs r3, 0x1 bl sub_8063338 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063410 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80633F0 thumb_func_start sub_8063410 sub_8063410: @ 8063410 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08063422 movs r0, 0 b _08063428 _08063422: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063428: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063410 thumb_func_start sub_8063430 sub_8063430: @ 8063430 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r2, 0x4 movs r3, 0x1 bl sub_8063338 adds r0, r4, 0 adds r1, r5, 0 bl sub_8063450 lsls r0, 24 lsrs r0, 24 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8063430 thumb_func_start sub_8063450 sub_8063450: @ 8063450 push {r4,lr} adds r4, r1, 0 bl npc_obj_ministep_stop_on_arrival lsls r0, 24 cmp r0, 0 bne _08063462 movs r0, 0 b _08063468 _08063462: movs r0, 0x2 strh r0, [r4, 0x32] movs r0, 0x1 _08063468: pop {r4} pop {r1} bx r1 thumb_func_end sub_8063450 thumb_func_start sub_8063470 sub_8063470: @ 8063470 movs r0, 0x1 bx lr thumb_func_end sub_8063470 thumb_func_start sub_8063474 sub_8063474: @ 8063474 adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 strb r0, [r1] movs r0, 0x1 bx lr thumb_func_end sub_8063474 thumb_func_start npc_obj_transfer_image_anim_pause_flag npc_obj_transfer_image_anim_pause_flag: @ 8063484 push {lr} ldrb r0, [r0, 0x1] lsls r0, 29 cmp r0, 0 bge _0806349A adds r0, r1, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] _0806349A: pop {r0} bx r0 thumb_func_end npc_obj_transfer_image_anim_pause_flag thumb_func_start sub_80634A0 sub_80634A0: @ 80634A0 push {r4,lr} adds r4, r0, 0 ldrb r3, [r4, 0x1] lsls r0, r3, 28 cmp r0, 0 bge _080634C8 adds r2, r1, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 movs r1, 0x9 negs r1, r1 ands r0, r1 strb r0, [r4, 0x1] _080634C8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80634A0 thumb_func_start sub_80634D0 sub_80634D0: @ 80634D0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80634E8 adds r0, r4, 0 adds r1, r5, 0 bl npc_update_obj_anim_flag pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80634D0 thumb_func_start sub_80634E8 sub_80634E8: @ 80634E8 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r1, [r5, 0x1] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo adds r6, r0, 0 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806354C ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r2, _08063544 @ =gSpriteCoordOffsetX adds r0, r1 ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r3, r0, 16 ldrh r1, [r4, 0x26] ldrh r0, [r4, 0x22] adds r1, r0 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldr r2, _08063548 @ =gSpriteCoordOffsetY adds r0, r1 ldrh r2, [r2] adds r0, r2 b _08063574 .align 2, 0 _08063544: .4byte gSpriteCoordOffsetX _08063548: .4byte gSpriteCoordOffsetY _0806354C: ldrh r1, [r4, 0x24] ldrh r0, [r4, 0x20] adds r1, r0 adds r0, r4, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 lsls r0, 16 lsrs r3, r0, 16 ldrh r1, [r4, 0x26] ldrh r0, [r4, 0x22] adds r1, r0 adds r0, r4, 0 adds r0, 0x29 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r0, r1 _08063574: lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r6, 0x8] adds r0, r3 lsls r0, 16 lsrs r1, r0, 16 ldrh r0, [r6, 0xA] adds r0, r2 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r3, 16 asrs r0, 16 cmp r0, 0xFF bgt _0806359C lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080635A4 _0806359C: ldrb r0, [r5, 0x1] movs r1, 0x40 orrs r0, r1 strb r0, [r5, 0x1] _080635A4: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xAF bgt _080635B8 lsls r0, r4, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _080635C0 _080635B8: ldrb r0, [r5, 0x1] movs r1, 0x40 orrs r0, r1 strb r0, [r5, 0x1] _080635C0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80634E8 thumb_func_start npc_update_obj_anim_flag npc_update_obj_anim_flag: @ 80635C8 push {lr} adds r2, r1, 0 adds r2, 0x3E ldrb r1, [r2] movs r3, 0x5 negs r3, r3 ands r3, r1 strb r3, [r2] ldrb r1, [r0, 0x1] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080635EA movs r1, 0x4 adds r0, r3, 0 orrs r0, r1 strb r0, [r2] _080635EA: pop {r0} bx r0 thumb_func_end npc_update_obj_anim_flag .align 2, 0 @ Don't pad with nop.