.include "asm/macros.s" .syntax unified .text thumb_func_start write_word_to_mem write_word_to_mem: @ 8052D00 strb r0, [r1] lsrs r2, r0, 8 strb r2, [r1, 0x1] lsrs r2, r0, 16 strb r2, [r1, 0x2] lsrs r0, 24 strb r0, [r1, 0x3] bx lr thumb_func_end write_word_to_mem thumb_func_start sub_8052D10 sub_8052D10: @ 8052D10 push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 movs r2, 0 _08052D18: adds r0, r4, r2 adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _08052D18 pop {r4} pop {r0} bx r0 thumb_func_end sub_8052D10 thumb_func_start set_player_trainer_id set_player_trainer_id: @ 8052D2C push {r4,lr} bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsls r0, 16 lsrs r0, 16 orrs r4, r0 ldr r1, _08052D50 adds r0, r4, 0 bl write_word_to_mem pop {r4} pop {r0} bx r0 .align 2, 0 _08052D50: .4byte 0x02024eae thumb_func_end set_player_trainer_id thumb_func_start sub_8052D54 sub_8052D54: @ 8052D54 ldr r2, _08052D74 movs r0, 0x1 strb r0, [r2, 0x14] ldrb r1, [r2, 0x15] subs r0, 0x3 ands r0, r1 movs r1, 0x3 negs r1, r1 ands r0, r1 subs r1, 0x2 ands r0, r1 subs r1, 0x4 ands r0, r1 strb r0, [r2, 0x15] bx lr .align 2, 0 _08052D74: .4byte 0x02024ea4 thumb_func_end sub_8052D54 thumb_func_start sub_8052D78 sub_8052D78: @ 8052D78 push {r4,lr} ldr r0, _08052DA0 movs r1, 0 strb r1, [r0] ldr r4, _08052DA4 adds r0, r4, 0 movs r1, 0 movs r2, 0x34 bl memset adds r4, 0x34 adds r0, r4, 0 movs r1, 0 movs r2, 0x34 bl memset pop {r4} pop {r0} bx r0 .align 2, 0 _08052DA0: .4byte 0x03005ce8 _08052DA4: .4byte 0x02024ecc thumb_func_end sub_8052D78 thumb_func_start sub_8052DA8 sub_8052DA8: @ 8052DA8 push {r4-r7,lr} bl sub_80B2D1C ldr r0, _08052DD8 ldr r4, _08052DDC ldr r1, _08052DE0 adds r3, r0, r1 movs r2, 0x4 _08052DB8: adds r1, r3, 0 adds r0, r4, 0 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5,r6} stm r1!, {r5,r6} adds r3, 0x20 subs r2, 0x1 cmp r2, 0 bge _08052DB8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08052DD8: .4byte 0x02025734 _08052DDC: .4byte gUnknown_08216604 _08052DE0: .4byte 0x00002efc thumb_func_end sub_8052DA8 thumb_func_start sub_8052DE4 sub_8052DE4: @ 8052DE4 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _08052DFC ldr r2, _08052E00 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08052DFC: .4byte 0x02024f4c _08052E00: .4byte 0x050001fa thumb_func_end sub_8052DE4 thumb_func_start sub_8052E04 sub_8052E04: @ 8052E04 push {lr} sub sp, 0x4 movs r3, 0x1 negs r3, r3 str r3, [sp] movs r0, 0x19 movs r1, 0x28 adds r2, r3, 0 bl warp1_set bl warp_in add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8052E04 thumb_func_start ClearSav2 ClearSav2: @ 8052E24 push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _08052E44 ldr r2, _08052E48 mov r0, sp bl CpuSet bl sub_8052D54 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08052E44: .4byte 0x02024ea4 _08052E48: .4byte 0x01000448 thumb_func_end ClearSav2 thumb_func_start sub_8052E4C sub_8052E4C: @ 8052E4C push {lr} ldr r1, _08052E68 movs r0, 0 strb r0, [r1] bl sub_808C0A0 bl zero_player_party_data bl zero_enemy_party_data bl sub_80A3684 pop {r0} bx r0 .align 2, 0 _08052E68: .4byte 0x020297ec thumb_func_end sub_8052E4C thumb_func_start NewGameInitData NewGameInitData: @ 8052E6C push {r4,r5,lr} ldr r0, _08052F3C ldrh r0, [r0] cmp r0, 0 beq _08052E7A cmp r0, 0x2 bne _08052E7E _08052E7A: bl RtcReset _08052E7E: ldr r1, _08052F40 movs r0, 0x1 strb r0, [r1] bl zero_player_party_data bl zero_enemy_party_data bl sub_808C02C bl sub_8052DE4 ldr r4, _08052F44 movs r2, 0xEB lsls r2, 6 adds r0, r4, 0 movs r1, 0 bl memset bl sub_80A2B18 ldr r0, _08052F48 movs r5, 0 strb r5, [r0, 0x9] bl set_player_trainer_id bl PlayTimeCounter_Reset bl sub_8052D78 bl sub_8069030 bl sub_80BD7A8 bl sub_80BDAB4 bl sub_80BB5B4 bl sub_80B4A90 movs r0, 0x92 lsls r0, 3 adds r1, r4, r0 ldr r0, _08052F4C str r0, [r1] bl sub_80AB1B0 bl sub_80530AC bl sub_8052DA8 bl GameFreakRTC_Reset bl sub_80C5B84 bl sub_80C5BDC ldr r0, _08052F50 strb r5, [r0] bl zero_player_party_data bl sub_80961D8 bl sub_81341F8 bl sub_813420C ldr r0, _08052F54 adds r4, r0 strh r5, [r4] bl sub_80A3714 bl sub_8139C18 bl sub_810C994 bl sub_8133F80 bl sub_80E6764 bl sub_80F7AA4 bl sub_80FA17C bl sub_810FA54 bl sub_8145A78 bl sub_8052E04 ldr r0, _08052F58 bl script_env_2_execute_new_script pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08052F3C: .4byte 0x03005eb8 _08052F40: .4byte 0x020297ec _08052F44: .4byte 0x02025734 _08052F48: .4byte 0x02024ea4 _08052F4C: .4byte 0x00000bb8 _08052F50: .4byte 0x03004350 _08052F54: .4byte 0x00000496 _08052F58: .4byte gUnknown_0819FA81 thumb_func_end NewGameInitData thumb_func_start sub_8052F5C sub_8052F5C: @ 8052F5C push {lr} ldr r0, _08052F88 bl script_env_2_execute_new_script ldr r1, _08052F8C movs r0, 0x92 lsls r0, 3 adds r1, r0 ldr r0, [r1] lsrs r0, 1 str r0, [r1] bl sp000_heal_pokemon bl sub_8053050 bl sub_8053570 bl warp_in pop {r0} bx r0 .align 2, 0 _08052F88: .4byte gUnknown_0819FC74 _08052F8C: .4byte 0x02025734 thumb_func_end sub_8052F5C thumb_func_start flag_var_implications_of_teleport_ flag_var_implications_of_teleport_: @ 8052F90 push {lr} bl player_avatar_init_params_reset ldr r0, _08052FB8 bl FlagReset ldr r0, _08052FBC bl FlagReset ldr r0, _08052FC0 bl FlagReset ldr r0, _08052FC4 bl FlagReset ldr r0, _08052FC8 bl FlagReset pop {r0} bx r0 .align 2, 0 _08052FB8: .4byte 0x0000082b _08052FBC: .4byte 0x0000082d _08052FC0: .4byte 0x0000082c _08052FC4: .4byte 0x00000829 _08052FC8: .4byte 0x00000828 thumb_func_end flag_var_implications_of_teleport_ thumb_func_start new_game new_game: @ 8052FCC push {lr} bl player_avatar_init_params_reset ldr r0, _08052FFC bl FlagReset ldr r0, _08053000 bl FlagReset ldr r0, _08053004 bl FlagReset ldr r0, _08053008 bl FlagReset ldr r0, _0805300C bl FlagReset ldr r0, _08053010 bl script_env_2_execute_new_script pop {r0} bx r0 .align 2, 0 _08052FFC: .4byte 0x0000082b _08053000: .4byte 0x0000082d _08053004: .4byte 0x0000082c _08053008: .4byte 0x00000829 _0805300C: .4byte 0x00000828 _08053010: .4byte gUnknown_0819FC9F thumb_func_end new_game thumb_func_start sub_8053014 sub_8053014: @ 8053014 push {lr} bl player_avatar_init_params_reset ldr r0, _0805303C bl FlagReset ldr r0, _08053040 bl FlagReset ldr r0, _08053044 bl FlagReset ldr r0, _08053048 bl FlagReset ldr r0, _0805304C bl FlagReset pop {r0} bx r0 .align 2, 0 _0805303C: .4byte 0x0000082b _08053040: .4byte 0x0000082d _08053044: .4byte 0x0000082c _08053048: .4byte 0x00000829 _0805304C: .4byte 0x00000828 thumb_func_end sub_8053014 thumb_func_start sub_8053050 sub_8053050: @ 8053050 push {lr} bl player_avatar_init_params_reset ldr r0, _08053078 bl FlagReset ldr r0, _0805307C bl FlagReset ldr r0, _08053080 bl FlagReset ldr r0, _08053084 bl FlagReset ldr r0, _08053088 bl FlagReset pop {r0} bx r0 .align 2, 0 _08053078: .4byte 0x0000082b _0805307C: .4byte 0x0000082d _08053080: .4byte 0x0000082c _08053084: .4byte 0x00000829 _08053088: .4byte 0x00000828 thumb_func_end sub_8053050 thumb_func_start sub_805308C sub_805308C: @ 805308C push {lr} ldr r0, _080530A8 bl FlagReset bl sub_8054164 bl wild_pokemon_reroll bl mapnumbers_history_shift_sav1_0_2_4_out bl sub_8134348 pop {r0} bx r0 .align 2, 0 _080530A8: .4byte 0x0000082c thumb_func_end sub_805308C thumb_func_start sub_80530AC sub_80530AC: @ 80530AC push {lr} ldr r0, _080530C8 movs r2, 0 movs r1, 0x31 ldr r3, _080530CC adds r0, r3 _080530B8: str r2, [r0] subs r0, 0x4 subs r1, 0x1 cmp r1, 0 bge _080530B8 pop {r0} bx r0 .align 2, 0 _080530C8: .4byte 0x02025734 _080530CC: .4byte 0x00001604 thumb_func_end sub_80530AC thumb_func_start sav12_xor_increment sav12_xor_increment: @ 80530D0 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x31 bhi _08053100 ldr r0, _080530F4 lsls r1, 2 movs r2, 0xAA lsls r2, 5 adds r0, r2 adds r1, r0 ldr r2, [r1] ldr r0, _080530F8 cmp r2, r0 bhi _080530FC adds r0, r2, 0x1 b _080530FE .align 2, 0 _080530F4: .4byte 0x02025734 _080530F8: .4byte 0x00fffffe _080530FC: ldr r0, _08053104 _080530FE: str r0, [r1] _08053100: pop {r0} bx r0 .align 2, 0 _08053104: .4byte 0x00ffffff thumb_func_end sav12_xor_increment thumb_func_start sub_8053108 sub_8053108: @ 8053108 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x31 bhi _08053128 ldr r0, _08053124 lsls r1, 2 movs r2, 0xAA lsls r2, 5 adds r0, r2 adds r1, r0 ldr r0, [r1] b _0805312A .align 2, 0 _08053124: .4byte 0x02025734 _08053128: movs r0, 0 _0805312A: pop {r1} bx r1 thumb_func_end sub_8053108 thumb_func_start sav12_xor_set sav12_xor_set: @ 8053130 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x31 bhi _0805314A ldr r0, _08053150 lsls r1, 2 movs r3, 0xAA lsls r3, 5 adds r0, r3 adds r1, r0 str r2, [r1] _0805314A: pop {r0} bx r0 .align 2, 0 _08053150: .4byte 0x02025734 thumb_func_end sav12_xor_set thumb_func_start sub_8053154 sub_8053154: @ 8053154 push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r4, _0805318C ldr r2, _08053190 mov r0, sp adds r1, r4, 0 bl CpuSet ldr r0, _08053194 ldr r1, [r0, 0x4] ldr r0, [r1, 0x4] ldrb r1, [r1] lsls r2, r1, 1 adds r2, r1 lsls r2, 1 movs r1, 0x80 lsls r1, 19 orrs r2, r1 adds r1, r4, 0 bl CpuSet add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805318C: .4byte 0x02026354 _08053190: .4byte 0x05000180 _08053194: .4byte 0x0202e828 thumb_func_end sub_8053154 thumb_func_start sub_8053198 sub_8053198: @ 8053198 push {lr} ldr r0, _080531B8 ldr r0, [r0, 0x4] ldr r1, [r0, 0x4] ldr r3, _080531BC movs r2, 0x3F _080531A4: ldr r0, [r1, 0x10] str r0, [r3, 0x10] adds r1, 0x18 adds r3, 0x18 subs r2, 0x1 cmp r2, 0 bge _080531A4 pop {r0} bx r0 .align 2, 0 _080531B8: .4byte 0x0202e828 _080531BC: .4byte 0x02026354 thumb_func_end sub_8053198 thumb_func_start update_saveblock1_field_object_coords update_saveblock1_field_object_coords: @ 80531C0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 movs r1, 0 ldr r3, _080531E0 _080531D2: ldrb r0, [r3] cmp r0, r5 bne _080531E4 strh r4, [r3, 0x4] strh r2, [r3, 0x6] b _080531EC .align 2, 0 _080531E0: .4byte 0x02026354 _080531E4: adds r3, 0x18 adds r1, 0x1 cmp r1, 0x3F ble _080531D2 _080531EC: pop {r4,r5} pop {r0} bx r0 thumb_func_end update_saveblock1_field_object_coords thumb_func_start update_saveblock1_field_object_movement_behavior update_saveblock1_field_object_movement_behavior: @ 80531F4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 movs r3, 0 ldr r2, _0805320C _08053202: ldrb r0, [r2] cmp r0, r4 bne _08053210 strb r1, [r2, 0x9] b _08053218 .align 2, 0 _0805320C: .4byte 0x02026354 _08053210: adds r2, 0x18 adds r3, 0x1 cmp r3, 0x3F ble _08053202 _08053218: pop {r4} pop {r0} bx r0 thumb_func_end update_saveblock1_field_object_movement_behavior thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw mapdata_load_assets_to_gpu_and_full_redraw: @ 8053220 push {r4,lr} bl move_tilemap_camera_to_upper_left_corner ldr r4, _08053244 ldr r0, [r4] bl copy_map_tileset1_tileset2_to_vram ldr r0, [r4] bl apply_map_tileset1_tileset2_palette bl DrawWholeMapView bl cur_mapheader_run_tileset_funcs_after_some_cpuset pop {r4} pop {r0} bx r0 .align 2, 0 _08053244: .4byte 0x0202e828 thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw thumb_func_start get_mapdata_header get_mapdata_header: @ 8053248 push {lr} ldr r0, _08053258 ldrh r1, [r0, 0x32] cmp r1, 0 bne _0805325C movs r0, 0 b _08053266 .align 2, 0 _08053258: .4byte 0x02025734 _0805325C: ldr r0, _0805326C subs r1, 0x1 lsls r1, 2 adds r1, r0 ldr r0, [r1] _08053266: pop {r1} bx r1 .align 2, 0 _0805326C: .4byte gUnknown_08304F18 thumb_func_end get_mapdata_header thumb_func_start warp_shift warp_shift: @ 8053270 ldr r2, _0805329C ldr r3, _080532A0 ldr r0, [r3, 0x4] ldr r1, [r3, 0x8] str r0, [r2] str r1, [r2, 0x4] ldr r0, _080532A4 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r3, 0x4] str r1, [r3, 0x8] ldr r2, _080532A8 ldr r0, _080532AC ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] ldr r2, _080532B0 str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _0805329C: .4byte 0x020297f0 _080532A0: .4byte 0x02025734 _080532A4: .4byte 0x020297f8 _080532A8: .4byte 0x02029800 _080532AC: .4byte gUnknown_08216624 _080532B0: .4byte 0x02029808 thumb_func_end warp_shift thumb_func_start warp_set warp_set: @ 80532B4 push {r4,r5,lr} ldr r4, [sp, 0xC] ldr r5, [sp, 0x10] strb r1, [r0] strb r2, [r0, 0x1] strb r3, [r0, 0x2] lsls r4, 24 asrs r4, 24 strh r4, [r0, 0x4] lsls r5, 24 asrs r5, 24 strh r5, [r0, 0x6] pop {r4,r5} pop {r0} bx r0 thumb_func_end warp_set thumb_func_start warp_data_is_not_neg_1 warp_data_is_not_neg_1: @ 80532D4 push {lr} adds r1, r0, 0 movs r2, 0 ldrsb r2, [r1, r2] movs r0, 0x1 negs r0, r0 cmp r2, r0 bne _08053308 movs r0, 0x1 ldrsb r0, [r1, r0] cmp r0, r2 bne _08053308 movs r2, 0x2 ldrsb r2, [r1, r2] cmp r2, r0 bne _08053308 movs r0, 0x4 ldrsh r3, [r1, r0] cmp r3, r2 bne _08053308 movs r2, 0x6 ldrsh r0, [r1, r2] cmp r0, r3 bne _08053308 movs r0, 0x1 b _0805330A _08053308: movs r0, 0 _0805330A: pop {r1} bx r1 thumb_func_end warp_data_is_not_neg_1 thumb_func_start get_mapheader_by_bank_and_number get_mapheader_by_bank_and_number: @ 8053310 lsls r0, 16 lsls r1, 16 ldr r2, _08053324 lsrs r0, 14 adds r0, r2 ldr r0, [r0] lsrs r1, 14 adds r1, r0 ldr r0, [r1] bx lr .align 2, 0 _08053324: .4byte gUnknown_08308588 thumb_func_end get_mapheader_by_bank_and_number thumb_func_start warp1_get_mapheader warp1_get_mapheader: @ 8053328 push {lr} ldr r1, _08053348 movs r0, 0 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number pop {r1} bx r1 .align 2, 0 _08053348: .4byte 0x020297f8 thumb_func_end warp1_get_mapheader thumb_func_start set_current_map_header_from_sav1_save_old_name set_current_map_header_from_sav1_save_old_name: @ 805334C push {r4-r6,lr} ldr r5, _08053384 ldr r4, _08053388 movs r0, 0x4 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x5 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r5, 0 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] ldrh r0, [r5, 0x12] strh r0, [r4, 0x32] bl get_mapdata_header str r0, [r5] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08053384: .4byte 0x0202e828 _08053388: .4byte 0x02025734 thumb_func_end set_current_map_header_from_sav1_save_old_name thumb_func_start sub_805338C sub_805338C: @ 805338C push {r4,r5,lr} ldr r4, _080533C4 ldr r1, _080533C8 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r4, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] bl get_mapdata_header str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080533C4: .4byte 0x0202e828 _080533C8: .4byte 0x02025734 thumb_func_end sub_805338C thumb_func_start sub_80533CC sub_80533CC: @ 80533CC push {r4,lr} ldr r0, _080533FC movs r1, 0x6 ldrsb r1, [r0, r1] adds r3, r0, 0 cmp r1, 0 blt _08053404 movs r1, 0x6 ldrsb r1, [r3, r1] ldr r0, _08053400 ldr r2, [r0, 0x4] ldrb r0, [r2, 0x1] cmp r1, r0 bge _08053404 ldr r0, [r2, 0x8] lsls r1, 3 adds r0, r1, r0 ldrh r0, [r0] strh r0, [r3] ldr r0, [r2, 0x8] adds r1, r0 ldrh r0, [r1, 0x2] b _08053434 .align 2, 0 _080533FC: .4byte 0x02025734 _08053400: .4byte 0x0202e828 _08053404: ldrh r2, [r3, 0x8] movs r1, 0x8 ldrsh r0, [r3, r1] cmp r0, 0 blt _0805341E ldrh r1, [r3, 0xA] movs r4, 0xA ldrsh r0, [r3, r4] cmp r0, 0 blt _0805341E strh r2, [r3] strh r1, [r3, 0x2] b _08053436 _0805341E: ldr r0, _0805343C ldr r2, [r0] ldr r0, [r2] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r3] ldr r0, [r2, 0x4] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 _08053434: strh r0, [r3, 0x2] _08053436: pop {r4} pop {r0} bx r0 .align 2, 0 _0805343C: .4byte 0x0202e828 thumb_func_end sub_80533CC thumb_func_start warp_in warp_in: @ 8053440 push {lr} bl warp_shift bl set_current_map_header_from_sav1_save_old_name bl sub_80533CC pop {r0} bx r0 thumb_func_end warp_in thumb_func_start warp1_set warp1_set: @ 8053454 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _0805348C lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 lsls r3, 24 asrs r3, 24 str r3, [sp] lsls r1, 24 asrs r1, 24 str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl warp_set add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805348C: .4byte 0x020297f8 thumb_func_end warp1_set thumb_func_start warp1_set_2 warp1_set_2: @ 8053490 push {lr} sub sp, 0x4 lsls r0, 24 asrs r0, 24 lsls r1, 24 asrs r1, 24 lsls r2, 24 asrs r2, 24 movs r3, 0x1 negs r3, r3 str r3, [sp] bl warp1_set add sp, 0x4 pop {r0} bx r0 thumb_func_end warp1_set_2 thumb_func_start saved_warp2_set saved_warp2_set: @ 80534B0 push {r4,r5,lr} sub sp, 0x8 ldr r0, _080534E8 lsls r1, 24 asrs r1, 24 lsls r2, 24 asrs r2, 24 lsls r3, 24 asrs r3, 24 movs r4, 0x14 negs r4, r4 adds r4, r0 mov r12, r4 ldrb r4, [r4] lsls r4, 24 asrs r4, 24 str r4, [sp] mov r5, r12 movs r4, 0x2 ldrsb r4, [r5, r4] str r4, [sp, 0x4] bl warp_set add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080534E8: .4byte 0x02025748 thumb_func_end saved_warp2_set thumb_func_start saved_warp2_set_2 saved_warp2_set_2: @ 80534EC push {r4,r5,lr} sub sp, 0x8 ldr r4, [sp, 0x14] ldr r5, [sp, 0x18] ldr r0, _0805351C lsls r1, 24 asrs r1, 24 lsls r2, 24 asrs r2, 24 lsls r3, 24 asrs r3, 24 lsls r4, 24 asrs r4, 24 str r4, [sp] lsls r5, 24 asrs r5, 24 str r5, [sp, 0x4] bl warp_set add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805351C: .4byte 0x02025748 thumb_func_end saved_warp2_set_2 thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1 copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8053520 ldr r2, _08053530 ldr r0, _08053534 ldr r1, [r0, 0x18] ldr r0, [r0, 0x14] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _08053530: .4byte 0x020297f8 _08053534: .4byte 0x02025734 thumb_func_end copy_saved_warp2_bank_and_enter_x_to_warp1 thumb_func_start sub_8053538 sub_8053538: @ 8053538 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 bl sub_80FA8CC adds r4, r0, 0 cmp r4, 0 beq _08053566 movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x1 ldrsb r1, [r4, r1] movs r2, 0x1 negs r2, r2 movs r3, 0x2 ldrsb r3, [r4, r3] ldrb r4, [r4, 0x4] lsls r4, 24 asrs r4, 24 str r4, [sp] bl warp1_set _08053566: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8053538 thumb_func_start sub_8053570 sub_8053570: @ 8053570 ldr r2, _08053580 ldr r0, _08053584 ldr r1, [r0, 0x20] ldr r0, [r0, 0x1C] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _08053580: .4byte 0x020297f8 _08053584: .4byte 0x02025734 thumb_func_end sub_8053570 thumb_func_start sub_8053588 sub_8053588: @ 8053588 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 bl sub_80FA8CC adds r5, r0, 0 cmp r5, 0 beq _080535B8 ldr r0, _080535C0 movs r1, 0 ldrsb r1, [r5, r1] movs r2, 0x1 ldrsb r2, [r5, r2] movs r3, 0x1 negs r3, r3 movs r4, 0x2 ldrsb r4, [r5, r4] str r4, [sp] movs r4, 0x4 ldrsb r4, [r5, r4] str r4, [sp, 0x4] bl warp_set _080535B8: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080535C0: .4byte 0x02025750 thumb_func_end sub_8053588 thumb_func_start sub_80535C4 sub_80535C4: @ 80535C4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r7, r1, 16 bl sav1_map_get_light_level adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08053634 movs r0, 0 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x1] lsls r1, 24 asrs r1, 24 bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 bl is_light_level_1_2_3_5_or_6 lsls r0, 24 cmp r0, 0 beq _0805362A adds r0, r5, 0 bl is_light_level_1_2_3_5_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0805362A ldr r1, _08053638 movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 subs r3, r6, 0x7 lsls r3, 24 asrs r3, 24 subs r4, r7, 0x6 lsls r4, 24 asrs r4, 24 str r4, [sp] bl sub_805363C _0805362A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053634: .4byte 0x020297f8 _08053638: .4byte 0x02025734 thumb_func_end sub_80535C4 thumb_func_start sub_805363C sub_805363C: @ 805363C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _08053674 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 lsls r3, 24 asrs r3, 24 str r3, [sp] lsls r1, 24 asrs r1, 24 str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl warp_set add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08053674: .4byte 0x02025758 thumb_func_end sub_805363C thumb_func_start sub_8053678 sub_8053678: @ 8053678 ldr r2, _08053688 ldr r0, _0805368C ldr r1, [r0, 0x28] ldr r0, [r0, 0x24] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _08053688: .4byte 0x020297f8 _0805368C: .4byte 0x02025734 thumb_func_end sub_8053678 thumb_func_start sub_8053690 sub_8053690: @ 8053690 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _080536C8 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 lsls r3, 24 asrs r3, 24 str r3, [sp] lsls r1, 24 asrs r1, 24 str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl warp_set add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080536C8: .4byte 0x02029800 thumb_func_end sub_8053690 thumb_func_start warp1_set_to_warp2 warp1_set_to_warp2: @ 80536CC ldr r2, _080536DC ldr r0, _080536E0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _080536DC: .4byte 0x020297f8 _080536E0: .4byte 0x02029800 thumb_func_end warp1_set_to_warp2 thumb_func_start sub_80536E4 sub_80536E4: @ 80536E4 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _0805371C lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 lsls r3, 24 asrs r3, 24 str r3, [sp] lsls r1, 24 asrs r1, 24 str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl warp_set add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805371C: .4byte 0x02029808 thumb_func_end sub_80536E4 thumb_func_start sub_8053720 sub_8053720: @ 8053720 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 ldr r4, _08053748 adds r0, r4, 0 bl warp_data_is_not_neg_1 cmp r0, 0x1 bne _08053754 ldr r2, _0805374C ldr r0, _08053750 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] b _0805376E .align 2, 0 _08053748: .4byte 0x02029808 _0805374C: .4byte 0x020297f8 _08053750: .4byte 0x020297f0 _08053754: movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x1 ldrsb r1, [r4, r1] movs r2, 0x1 negs r2, r2 lsls r3, r5, 24 asrs r3, 24 lsls r4, r6, 24 asrs r4, 24 str r4, [sp] bl warp1_set _0805376E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8053720 thumb_func_start sub_8053778 sub_8053778: @ 8053778 ldr r2, _08053788 ldr r0, _0805378C ldr r1, [r0, 0x10] ldr r0, [r0, 0xC] str r0, [r2] str r1, [r2, 0x4] bx lr .align 2, 0 _08053788: .4byte 0x020297f8 _0805378C: .4byte 0x02025734 thumb_func_end sub_8053778 thumb_func_start unref_sub_8053790 unref_sub_8053790: @ 8053790 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] ldr r0, _080537C8 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 lsls r6, 24 asrs r6, 24 lsls r3, 24 asrs r3, 24 str r3, [sp] lsls r1, 24 asrs r1, 24 str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl warp_set add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080537C8: .4byte 0x02025740 thumb_func_end unref_sub_8053790 thumb_func_start sub_80537CC sub_80537CC: @ 80537CC push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 bl sub_80FA8CC adds r5, r0, 0 cmp r5, 0 beq _080537FC ldr r0, _08053804 movs r1, 0 ldrsb r1, [r5, r1] movs r2, 0x1 ldrsb r2, [r5, r2] movs r3, 0x1 negs r3, r3 movs r4, 0x2 ldrsb r4, [r5, r4] str r4, [sp] movs r4, 0x4 ldrsb r4, [r5, r4] str r4, [sp, 0x4] bl warp_set _080537FC: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08053804: .4byte 0x02025740 thumb_func_end sub_80537CC thumb_func_start gpu_sync_bg_hide gpu_sync_bg_hide: @ 8053808 ldr r2, _08053814 ldr r0, [r2, 0x14] ldr r1, [r2, 0x18] str r0, [r2, 0xC] str r1, [r2, 0x10] bx lr .align 2, 0 _08053814: .4byte 0x02025734 thumb_func_end gpu_sync_bg_hide thumb_func_start sub_8053818 sub_8053818: @ 8053818 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0805382C ldr r0, [r0, 0xC] ldr r3, [r0] ldr r1, [r0, 0x4] cmp r1, 0 bne _08053834 b _08053848 .align 2, 0 _0805382C: .4byte 0x0202e828 _08053830: adds r0, r1, 0 b _0805384A _08053834: movs r2, 0 cmp r2, r3 bge _08053848 _0805383A: ldrb r0, [r1] cmp r0, r4 beq _08053830 adds r2, 0x1 adds r1, 0xC cmp r2, r3 blt _0805383A _08053848: movs r0, 0 _0805384A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8053818 thumb_func_start sub_8053850 sub_8053850: @ 8053850 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r5, r2, 16 bl sub_8053818 adds r1, r0, 0 cmp r1, 0 beq _08053888 movs r0, 0x8 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x9] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 lsls r3, r4, 24 asrs r3, 24 lsls r4, r5, 24 asrs r4, 24 str r4, [sp] bl warp1_set b _080538A4 _08053888: bl mapheader_run_script_with_tag_x6 ldr r0, _0805389C bl warp_data_is_not_neg_1 cmp r0, 0 beq _080538A0 movs r0, 0 b _080538A6 .align 2, 0 _0805389C: .4byte 0x02029800 _080538A0: bl warp1_set_to_warp2 _080538A4: movs r0, 0x1 _080538A6: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8053850 thumb_func_start sub_80538B0 sub_80538B0: @ 80538B0 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 16 lsrs r3, 16 lsls r2, 16 lsrs r2, 16 movs r0, 0x6 adds r1, r3, 0 bl sub_8053850 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80538B0 thumb_func_start sub_80538D0 sub_80538D0: @ 80538D0 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 16 lsrs r3, 16 lsls r2, 16 lsrs r2, 16 movs r0, 0x5 adds r1, r3, 0 bl sub_8053850 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80538D0 thumb_func_start sub_80538F0 sub_80538F0: @ 80538F0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsls r1, 24 lsrs r5, r0, 24 asrs r0, 24 lsrs r4, r1, 24 asrs r1, 24 movs r3, 0x1 negs r3, r3 str r3, [sp] adds r2, r3, 0 bl warp1_set bl sub_8053F0C bl warp_shift bl set_current_map_header_from_sav1_save_old_name bl sub_8053154 bl sub_806906C bl wild_pokemon_reroll bl prev_quest_postbuffer_cursor_backup_reset adds r0, r5, 0 adds r1, r4, 0 bl sub_8082BD0 bl InTrainerHill bl sub_80806E4 bl sub_8054164 bl sub_8053C98 bl sav1_reset_battle_music_maybe bl mapheader_run_script_with_tag_x3 bl not_trainer_hill_battle_pyramid ldr r4, _08053990 ldr r0, [r4] bl sub_8056D38 ldr r0, [r4] bl apply_map_tileset2_palette movs r4, 0x6 _0805395C: lsls r0, r4, 24 lsrs r0, 24 bl sub_807D874 adds r4, 0x1 cmp r4, 0xB ble _0805395C bl sub_8072ED0 bl mapnumbers_history_shift_sav1_0_2_4_out bl sub_8134394 bl sub_808073C bl wild_encounter_reset_coro_args bl mapheader_run_script_with_tag_x5 bl AddMapNamePopUpWindowTask add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08053990: .4byte 0x0202e828 thumb_func_end sub_80538F0 thumb_func_start sub_8053994 sub_8053994: @ 8053994 push {r4-r6,lr} adds r6, r0, 0 bl set_current_map_header_from_sav1_save_old_name bl sub_8053154 ldr r4, _08053A2C ldrb r0, [r4, 0x17] bl is_light_level_1_2_3_5_or_6 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4, 0x17] bl is_light_level_8_or_9 lsls r0, 24 lsrs r4, r0, 24 bl sub_806906C bl wild_pokemon_reroll bl prev_quest_postbuffer_cursor_backup_reset ldr r1, _08053A30 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl sub_8082BD0 cmp r6, 0x1 beq _080539E2 bl InTrainerHill _080539E2: bl sub_80806E4 bl sub_8054164 cmp r5, 0 beq _080539F4 ldr r0, _08053A34 bl FlagReset _080539F4: bl sub_8053C98 bl sav1_reset_battle_music_maybe bl mapheader_run_script_with_tag_x3 bl mapnumbers_history_shift_sav1_0_2_4_out bl sub_8134348 bl not_trainer_hill_battle_pyramid cmp r6, 0x1 beq _08053A24 cmp r4, 0 beq _08053A24 ldr r1, _08053A38 ldr r0, [r1] ldr r1, [r1, 0x4] bl UpdateTVScreensOnMap movs r0, 0x1 bl sub_80BBCCC _08053A24: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08053A2C: .4byte 0x0202e828 _08053A30: .4byte 0x02025734 _08053A34: .4byte 0x00000828 _08053A38: .4byte 0x03004870 thumb_func_end sub_8053994 thumb_func_start player_avatar_init_params_reset player_avatar_init_params_reset: @ 8053A3C ldr r1, _08053A48 movs r0, 0x1 strb r0, [r1, 0x1] strb r0, [r1] bx lr .align 2, 0 _08053A48: .4byte 0x02029810 thumb_func_end player_avatar_init_params_reset thumb_func_start walkrun_find_lowest_active_bit_in_bitfield walkrun_find_lowest_active_bit_in_bitfield: @ 8053A4C push {r4,lr} bl player_get_direction_lower_nybble ldr r4, _08053A68 strb r0, [r4, 0x1] movs r0, 0x2 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053A6C movs r0, 0x2 b _08053A9E .align 2, 0 _08053A68: .4byte 0x02029810 _08053A6C: movs r0, 0x4 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053A7C movs r0, 0x4 b _08053A9E _08053A7C: movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053A8C movs r0, 0x8 b _08053A9E _08053A8C: movs r0, 0x10 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053A9C movs r0, 0x10 b _08053A9E _08053A9C: movs r0, 0x1 _08053A9E: strb r0, [r4] pop {r4} pop {r0} bx r0 thumb_func_end walkrun_find_lowest_active_bit_in_bitfield thumb_func_start sub_8053AA8 sub_8053AA8: @ 8053AA8 push {r4-r7,lr} bl sav1_map_get_light_level adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 bl cur_mapdata_block_role_at_screen_center_acc_to_sav1 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r6, _08053AF4 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_8053B00 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08053AF8 ands r7, r0 orrs r7, r1 adds r0, r6, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_8053B60 lsls r0, 24 lsrs r0, 16 ldr r1, _08053AFC ands r7, r1 orrs r7, r0 str r7, [r6] adds r0, r6, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08053AF4: .4byte 0x02029810 _08053AF8: .4byte 0xffffff00 _08053AFC: .4byte 0xffff00ff thumb_func_end sub_8053AA8 thumb_func_start sub_8053B00 sub_8053B00: @ 8053B00 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0x8 beq _08053B1C ldr r0, _08053B24 bl FlagGet lsls r0, 24 cmp r0, 0 bne _08053B56 _08053B1C: cmp r4, 0x5 bne _08053B28 movs r0, 0x10 b _08053B58 .align 2, 0 _08053B24: .4byte 0x0000082d _08053B28: lsls r0, r5, 24 lsrs r0, 24 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053B3C movs r0, 0x8 b _08053B58 _08053B3C: bl sub_8053C44 cmp r0, 0x1 bne _08053B56 ldrb r0, [r6] cmp r0, 0x2 bne _08053B4E movs r0, 0x2 b _08053B58 _08053B4E: cmp r0, 0x4 bne _08053B56 movs r0, 0x4 b _08053B58 _08053B56: movs r0, 0x1 _08053B58: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8053B00 thumb_func_start sub_8053B60 sub_8053B60: @ 8053B60 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 24 lsrs r5, r3, 24 ldr r0, _08053BC0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08053B80 cmp r5, 0x6 beq _08053BE0 _08053B80: lsls r4, 24 lsrs r5, r4, 24 adds r0, r5, 0 bl sub_8056F24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053BBC adds r0, r5, 0 bl sub_8056F08 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053C16 adds r0, r5, 0 bl sub_8056EAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053C16 adds r0, r5, 0 bl MetatileBehavior_IsSouthArrowWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053BC4 _08053BBC: movs r0, 0x2 b _08053C1C .align 2, 0 _08053BC0: .4byte 0x0000082d _08053BC4: adds r0, r5, 0 bl MetatileBehavior_IsNorthArrowWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053C16 adds r0, r5, 0 bl MetatileBehavior_IsWestArrowWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053BE4 _08053BE0: movs r0, 0x4 b _08053C1C _08053BE4: adds r0, r5, 0 bl MetatileBehavior_IsEastArrowWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08053BF6 movs r0, 0x3 b _08053C1C _08053BF6: ldrb r0, [r6] cmp r0, 0x10 bne _08053C00 cmp r7, 0x8 beq _08053C1A _08053C00: cmp r0, 0x8 bne _08053C08 cmp r7, 0x10 beq _08053C1A _08053C08: lsrs r0, r4, 24 bl MetatileBehavior_IsLadder lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053C1A _08053C16: movs r0, 0x1 b _08053C1C _08053C1A: ldrb r0, [r6, 0x1] _08053C1C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8053B60 thumb_func_start cur_mapdata_block_role_at_screen_center_acc_to_sav1 cur_mapdata_block_role_at_screen_center_acc_to_sav1: @ 8053C24 push {lr} ldr r1, _08053C40 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x7 movs r2, 0x2 ldrsh r1, [r1, r2] adds r1, 0x7 bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _08053C40: .4byte 0x02025734 thumb_func_end cur_mapdata_block_role_at_screen_center_acc_to_sav1 thumb_func_start sub_8053C44 sub_8053C44: @ 8053C44 push {lr} ldr r0, _08053C80 movs r1, 0x4 ldrsb r1, [r0, r1] adds r2, r0, 0 cmp r1, 0x1D bne _08053C5E ldrb r0, [r2, 0x5] subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08053C7C _08053C5E: ldr r0, _08053C84 ldrb r0, [r0, 0x17] cmp r0, 0x8 beq _08053C90 cmp r0, 0x9 beq _08053C90 cmp r0, 0x5 beq _08053C90 ldrh r1, [r2, 0x4] ldr r0, _08053C88 cmp r1, r0 beq _08053C90 ldr r0, _08053C8C cmp r1, r0 beq _08053C90 _08053C7C: movs r0, 0x1 b _08053C92 .align 2, 0 _08053C80: .4byte 0x02025734 _08053C84: .4byte 0x0202e828 _08053C88: .4byte 0x00002418 _08053C8C: .4byte 0x00002a18 _08053C90: movs r0, 0 _08053C92: pop {r1} bx r1 thumb_func_end sub_8053C44 thumb_func_start sub_8053C98 sub_8053C98: @ 8053C98 push {lr} ldr r0, _08053CA8 ldrb r1, [r0, 0x15] cmp r1, 0 bne _08053CB0 ldr r0, _08053CAC b _08053CD2 .align 2, 0 _08053CA8: .4byte 0x0202e828 _08053CAC: .4byte 0x02025734 _08053CB0: ldr r0, _08053CC4 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08053CCC ldr r0, _08053CC8 adds r0, 0x30 movs r1, 0x1 b _08053CD4 .align 2, 0 _08053CC4: .4byte 0x00000828 _08053CC8: .4byte 0x02025734 _08053CCC: ldr r0, _08053CDC ldr r1, _08053CE0 ldr r1, [r1] _08053CD2: adds r0, 0x30 _08053CD4: strb r1, [r0] pop {r0} bx r0 .align 2, 0 _08053CDC: .4byte 0x02025734 _08053CE0: .4byte gUnknown_0839ACE8 thumb_func_end sub_8053C98 thumb_func_start sub_8053CE4 sub_8053CE4: @ 8053CE4 push {lr} adds r1, r0, 0 cmp r1, 0 blt _08053CF4 ldr r0, _08053D00 ldr r0, [r0] cmp r1, r0 ble _08053CF6 _08053CF4: movs r1, 0 _08053CF6: ldr r0, _08053D04 adds r0, 0x30 strb r1, [r0] pop {r0} bx r0 .align 2, 0 _08053D00: .4byte gUnknown_0839ACE8 _08053D04: .4byte 0x02025734 thumb_func_end sub_8053CE4 thumb_func_start sav1_get_flash_used_on_map sav1_get_flash_used_on_map: @ 8053D08 ldr r0, _08053D10 adds r0, 0x30 ldrb r0, [r0] bx lr .align 2, 0 _08053D10: .4byte 0x02025734 thumb_func_end sav1_get_flash_used_on_map thumb_func_start sub_8053D14 sub_8053D14: @ 8053D14 push {lr} ldr r1, _08053D28 strh r0, [r1, 0x32] bl get_mapdata_header ldr r1, _08053D2C str r0, [r1] pop {r0} bx r0 .align 2, 0 _08053D28: .4byte 0x02025734 _08053D2C: .4byte 0x0202e828 thumb_func_end sub_8053D14 thumb_func_start sub_8053D30 sub_8053D30: @ 8053D30 push {r4,lr} adds r4, r0, 0 ldr r0, _08053D60 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08053D64 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _08053D64 movs r0, 0x1 ldrsb r0, [r4, r0] cmp r0, 0x5 blt _08053D64 cmp r0, 0x8 ble _08053D5C cmp r0, 0x2B bgt _08053D64 cmp r0, 0x27 blt _08053D64 _08053D5C: movs r0, 0x1 b _08053D66 .align 2, 0 _08053D60: .4byte 0x0000082a _08053D64: movs r0, 0 _08053D66: pop {r4} pop {r1} bx r1 thumb_func_end sub_8053D30 thumb_func_start sub_8053D6C sub_8053D6C: @ 8053D6C push {r4,lr} adds r4, r0, 0 ldr r0, _08053D90 bl VarGet lsls r0, 16 cmp r0, 0 bne _08053D8A movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x20 bne _08053D8A ldrb r0, [r4, 0x1] cmp r0, 0x1 bls _08053D94 _08053D8A: movs r0, 0 b _08053D96 .align 2, 0 _08053D90: .4byte 0x000040b3 _08053D94: movs r0, 0x1 _08053D96: pop {r4} pop {r1} bx r1 thumb_func_end sub_8053D6C thumb_func_start sub_8053D9C sub_8053D9C: @ 8053D9C push {r4,lr} adds r4, r0, 0 bl sub_8053D30 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _08053DB2 .ifdef SAPPHIRE ldr r0, _sub_8053D9C_LegendaryMusic .else movs r0, 0xDE lsls r0, 1 .endif b _08053DDC .ifdef SAPPHIRE .align 2, 0 _sub_8053D9C_LegendaryMusic: .4byte 443 @ OOAME (Kyogre's Heavy Rain theme) .endif _08053DB2: adds r0, r4, 0 bl sub_8053D6C lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _08053DD8 movs r0, 0 ldrsb r0, [r4, r0] lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ldrsb r1, [r4, r1] lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrh r0, [r0, 0x10] b _08053DDC _08053DD8: movs r0, 0xCB lsls r0, 1 _08053DDC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8053D9C thumb_func_start sav1_map_get_music sav1_map_get_music: @ 8053DE4 push {r4,lr} ldr r0, _08053E04 ldrh r1, [r0, 0x4] movs r0, 0xD0 lsls r0, 5 cmp r1, r0 bne _08053E0C bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bne _08053E0C ldr r0, _08053E08 b _08053E40 .align 2, 0 _08053E04: .4byte 0x02025734 _08053E08: .4byte 0x00000199 _08053E0C: ldr r4, _08053E24 adds r0, r4, 0 bl sub_8053D9C lsls r0, 16 lsrs r1, r0, 16 ldr r0, _08053E28 cmp r1, r0 beq _08053E2C adds r0, r1, 0 b _08053E40 .align 2, 0 _08053E24: .4byte 0x02025738 _08053E28: .4byte 0x00007fff _08053E2C: subs r0, r4, 0x4 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x17 ble _08053E3C movs r0, 0xC9 lsls r0, 1 b _08053E40 _08053E3C: movs r0, 0xB4 lsls r0, 1 _08053E40: pop {r4} pop {r1} bx r1 thumb_func_end sav1_map_get_music thumb_func_start warp1_target_get_music warp1_target_get_music: @ 8053E48 push {lr} ldr r0, _08053E60 bl sub_8053D9C lsls r0, 16 lsrs r1, r0, 16 ldr r0, _08053E64 cmp r1, r0 beq _08053E68 adds r0, r1, 0 b _08053E80 .align 2, 0 _08053E60: .4byte 0x020297f8 _08053E64: .4byte 0x00007fff _08053E68: ldr r0, _08053E78 ldrh r1, [r0, 0x4] movs r0, 0x80 lsls r0, 2 cmp r1, r0 beq _08053E7C subs r0, 0x6E b _08053E80 .align 2, 0 _08053E78: .4byte 0x02025734 _08053E7C: movs r0, 0xB4 lsls r0, 1 _08053E80: pop {r1} bx r1 thumb_func_end warp1_target_get_music thumb_func_start call_map_music_set_to_zero call_map_music_set_to_zero: @ 8053E84 push {lr} bl map_music_set_to_zero pop {r0} bx r0 thumb_func_end call_map_music_set_to_zero thumb_func_start sub_8053E90 sub_8053E90: @ 8053E90 push {r4,lr} bl sav1_map_get_music lsls r0, 16 lsrs r4, r0, 16 .ifdef SAPPHIRE ldr r0, _sub_8053E90_LegendaryMusic .else movs r0, 0xDE lsls r0, 1 .endif cmp r4, r0 beq _08053ED6 ldr r1, _08053EB0 ldrh r0, [r1, 0x2C] cmp r0, 0 beq _08053EB4 adds r4, r0, 0 b _08053ED6 .align 2, 0 .ifdef SAPPHIRE _sub_8053E90_LegendaryMusic: .4byte 443 @ OOAME (Kyogre's Heavy Rain theme) .endif _08053EB0: .4byte 0x02025734 _08053EB4: bl sav1_map_get_light_level lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08053EC8 ldr r4, _08053EC4 b _08053ED6 .align 2, 0 _08053EC4: .4byte 0x0000019b _08053EC8: movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053ED6 ldr r4, _08053EF0 _08053ED6: bl current_map_music_get lsls r0, 16 lsrs r0, 16 cmp r4, r0 beq _08053EE8 adds r0, r4, 0 bl current_map_music_set _08053EE8: pop {r4} pop {r0} bx r0 .align 2, 0 _08053EF0: .4byte 0x0000016d thumb_func_end sub_8053E90 thumb_func_start sav1_set_battle_music_maybe sav1_set_battle_music_maybe: @ 8053EF4 ldr r1, _08053EFC strh r0, [r1, 0x2C] bx lr .align 2, 0 _08053EFC: .4byte 0x02025734 thumb_func_end sav1_set_battle_music_maybe thumb_func_start sav1_reset_battle_music_maybe sav1_reset_battle_music_maybe: @ 8053F00 ldr r1, _08053F08 movs r0, 0 strh r0, [r1, 0x2C] bx lr .align 2, 0 _08053F08: .4byte 0x02025734 thumb_func_end sav1_reset_battle_music_maybe thumb_func_start sub_8053F0C sub_8053F0C: @ 8053F0C push {r4-r6,lr} ldr r0, _08053F6C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053F7C bl warp1_target_get_music lsls r0, 16 lsrs r5, r0, 16 bl current_map_music_get lsls r0, 16 lsrs r4, r0, 16 .ifdef SAPPHIRE ldr r0, _sub_8053F0C_LegendaryMusic .else movs r0, 0xDE lsls r0, 1 .endif cmp r5, r0 beq _08053F4E .ifdef SAPPHIRE subs r0, 0x20 .else subs r0, 0x21 .endif cmp r4, r0 beq _08053F7C ldr r6, _08053F70 cmp r4, r6 beq _08053F7C movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053F4E adds r5, r6, 0 _08053F4E: cmp r5, r4 beq _08053F7C movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08053F74 adds r0, r5, 0 movs r1, 0x4 movs r2, 0x4 bl sub_8074D94 b _08053F7C .align 2, 0 _08053F6C: .4byte 0x00004001 .ifdef SAPPHIRE _sub_8053F0C_LegendaryMusic: .4byte 443 @ OOAME (Kyogre's Heavy Rain theme) .endif _08053F70: .4byte 0x0000016d _08053F74: adds r0, r5, 0 movs r1, 0x8 bl sub_8074D60 _08053F7C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8053F0C thumb_func_start sub_8053F84 sub_8053F84: @ 8053F84 push {r4,lr} bl current_map_music_get adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sav1_map_get_music lsls r0, 16 lsrs r0, 16 cmp r4, r0 beq _08053FAA bl sav1_map_get_music lsls r0, 16 lsrs r0, 16 movs r1, 0x8 bl sub_8074D60 _08053FAA: pop {r4} pop {r0} bx r0 thumb_func_end sub_8053F84 thumb_func_start sub_8053FB0 sub_8053FB0: @ 8053FB0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 bl current_map_music_get lsls r0, 16 lsrs r1, r0, 16 cmp r1, r4 beq _08053FD2 .ifdef SAPPHIRE ldr r0, _sub_8053FB0_LegendaryMusic .else movs r0, 0xDE lsls r0, 1 .endif cmp r1, r0 beq _08053FD2 adds r0, r4, 0 movs r1, 0x8 bl sub_8074D60 _08053FD2: pop {r4} pop {r0} bx r0 .ifdef SAPPHIRE .align 2, 0 _sub_8053FB0_LegendaryMusic: .4byte 443 @ OOAME (Kyogre's Heavy Rain theme) .endif thumb_func_end sub_8053FB0 thumb_func_start is_warp1_light_level_8_or_9 is_warp1_light_level_8_or_9: @ 8053FD8 push {lr} bl warp1_get_mapheader ldrb r0, [r0, 0x17] bl is_light_level_8_or_9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08053FF0 movs r0, 0x4 b _08053FF2 _08053FF0: movs r0, 0x2 _08053FF2: pop {r1} bx r1 thumb_func_end is_warp1_light_level_8_or_9 thumb_func_start sub_8053FF8 sub_8053FF8: @ 8053FF8 push {r4,lr} bl warp1_target_get_music lsls r0, 16 lsrs r4, r0, 16 ldr r0, _08054030 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08054028 bl current_map_music_get lsls r0, 16 lsrs r0, 16 cmp r4, r0 beq _08054028 bl is_warp1_light_level_8_or_9 lsls r0, 24 lsrs r0, 24 bl sub_8074D28 _08054028: pop {r4} pop {r0} bx r0 .align 2, 0 _08054030: .4byte 0x00004001 thumb_func_end sub_8053FF8 thumb_func_start sub_8054034 sub_8054034: @ 8054034 push {lr} bl sub_8074E14 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8054034 thumb_func_start sub_8054044 sub_8054044: @ 8054044 push {lr} movs r0, 0x4 bl sub_8074D28 pop {r0} bx r0 thumb_func_end sub_8054044 thumb_func_start sub_8054050 sub_8054050: @ 8054050 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords ldr r0, _080540C8 ldrb r0, [r0] cmp r0, 0x1 bne _08054084 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 beq _080540C0 _08054084: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x58 bl __umodsi3 adds r4, r0, 0 adds r4, 0xD4 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1E bl __umodsi3 adds r2, r0, 0 adds r2, 0x32 ldr r0, _080540CC ldrh r0, [r0] lsls r4, 24 asrs r4, 24 lsls r2, 24 asrs r2, 24 adds r1, r4, 0 movs r3, 0x1 bl sub_8075090 _080540C0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080540C8: .4byte 0x02029816 _080540CC: .4byte 0x02029814 thumb_func_end sub_8054050 thumb_func_start sub_80540D0 sub_80540D0: @ 80540D0 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x4 bhi _0805415E lsls r0, 2 ldr r1, _080540E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080540E8: .4byte _080540EC .align 2, 0 _080540EC: .4byte _08054100 .4byte _08054114 .4byte _08054130 .4byte _0805414A .4byte _0805415E _08054100: ldr r0, _0805410C ldrh r0, [r0] cmp r0, 0 bne _08054110 movs r0, 0x4 b _0805415C .align 2, 0 _0805410C: .4byte 0x02029814 _08054110: movs r0, 0x1 b _0805415C _08054114: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x96 lsls r1, 4 bl __umodsi3 movs r1, 0x96 lsls r1, 3 adds r0, r1 strh r0, [r5] movs r0, 0x3 b _0805415C _08054130: bl Random lsls r0, 16 lsrs r0, 16 movs r4, 0x96 lsls r4, 3 adds r1, r4, 0 bl __umodsi3 adds r0, r4 strh r0, [r5] movs r0, 0x3 b _0805415C _0805414A: ldrh r0, [r5] subs r0, 0x1 strh r0, [r5] lsls r0, 16 cmp r0, 0 bne _0805415E bl sub_8054050 movs r0, 0x2 _0805415C: strh r0, [r6] _0805415E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80540D0 thumb_func_start sub_8054164 sub_8054164: @ 8054164 push {lr} ldr r0, _08054188 ldrh r1, [r0, 0x4] movs r0, 0xB4 lsls r0, 6 cmp r1, r0 bne _08054190 bl sub_810D32C lsls r0, 24 cmp r0, 0 bne _08054190 ldr r1, _0805418C movs r0, 0x1 strb r0, [r1] bl sub_8085514 b _08054196 .align 2, 0 _08054188: .4byte 0x02025734 _0805418C: .4byte 0x02029816 _08054190: ldr r0, _080541A0 bl wild_pokemon_rand_for_map _08054196: ldr r1, _080541A4 strh r0, [r1] pop {r0} bx r0 .align 2, 0 _080541A0: .4byte 0x02029816 _080541A4: .4byte 0x02029814 thumb_func_end sub_8054164 thumb_func_start get_map_light_level_by_bank_and_number get_map_light_level_by_bank_and_number: @ 80541A8 push {lr} lsls r0, 24 asrs r0, 8 lsrs r0, 16 lsls r1, 24 asrs r1, 8 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x17] pop {r1} bx r1 thumb_func_end get_map_light_level_by_bank_and_number thumb_func_start get_map_light_level_from_warp get_map_light_level_from_warp: @ 80541C0 push {lr} movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0x1 ldrsb r1, [r0, r1] adds r0, r2, 0 bl get_map_light_level_by_bank_and_number lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end get_map_light_level_from_warp thumb_func_start sav1_map_get_light_level sav1_map_get_light_level: @ 80541D8 push {lr} ldr r0, _080541E8 bl get_map_light_level_from_warp lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080541E8: .4byte 0x02025738 thumb_func_end sav1_map_get_light_level thumb_func_start get_map_light_from_warp0 get_map_light_from_warp0: @ 80541EC push {lr} ldr r0, _080541FC bl get_map_light_level_from_warp lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080541FC: .4byte 0x020297f0 thumb_func_end get_map_light_from_warp0 thumb_func_start is_light_level_1_2_3_5_or_6 is_light_level_1_2_3_5_or_6: @ 8054200 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0805421A cmp r0, 0x1 beq _0805421A cmp r0, 0x5 beq _0805421A cmp r0, 0x2 beq _0805421A cmp r0, 0x6 bne _0805421E _0805421A: movs r0, 0x1 b _08054220 _0805421E: movs r0, 0 _08054220: pop {r1} bx r1 thumb_func_end is_light_level_1_2_3_5_or_6 thumb_func_start is_light_level_1_2_3_or_6 is_light_level_1_2_3_or_6: @ 8054224 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0805423A cmp r0, 0x1 beq _0805423A cmp r0, 0x6 beq _0805423A cmp r0, 0x2 bne _0805423E _0805423A: movs r0, 0x1 b _08054240 _0805423E: movs r0, 0 _08054240: pop {r1} bx r1 thumb_func_end is_light_level_1_2_3_or_6 thumb_func_start is_light_level_8_or_9 is_light_level_8_or_9: @ 8054244 push {lr} lsls r0, 24 movs r1, 0xF8 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bls _08054258 movs r0, 0 b _0805425A _08054258: movs r0, 0x1 _0805425A: pop {r1} bx r1 thumb_func_end is_light_level_8_or_9 thumb_func_start unref_sub_8054260 unref_sub_8054260: @ 8054260 push {lr} ldr r1, _08054280 movs r0, 0x14 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x15] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] pop {r1} bx r1 .align 2, 0 _08054280: .4byte 0x02025734 thumb_func_end unref_sub_8054260 thumb_func_start sav1_map_get_name sav1_map_get_name: @ 8054284 push {lr} ldr r1, _080542A4 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] pop {r1} bx r1 .align 2, 0 _080542A4: .4byte 0x02025734 thumb_func_end sav1_map_get_name thumb_func_start sav1_map_get_battletype sav1_map_get_battletype: @ 80542A8 push {lr} ldr r1, _080542C8 movs r0, 0x4 ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x1B] pop {r1} bx r1 .align 2, 0 _080542C8: .4byte 0x02025734 thumb_func_end sav1_map_get_battletype thumb_func_start ResetSafariZoneFlag_ ResetSafariZoneFlag_: @ 80542CC push {lr} bl ResetSafariZoneFlag pop {r0} bx r0 thumb_func_end ResetSafariZoneFlag_ thumb_func_start is_c1_link_related_active is_c1_link_related_active: @ 80542D8 push {lr} ldr r0, _080542E8 ldr r1, [r0] ldr r0, _080542EC cmp r1, r0 beq _080542F0 movs r0, 0 b _080542F2 .align 2, 0 _080542E8: .4byte 0x03001770 _080542EC: .4byte sub_8055354 _080542F0: movs r0, 0x1 _080542F2: pop {r1} bx r1 thumb_func_end is_c1_link_related_active thumb_func_start c1_overworld_normal c1_overworld_normal: @ 80542F8 push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 adds r5, r0, 0 lsls r1, 16 lsrs r1, 16 adds r4, r1, 0 bl sub_8059204 mov r6, sp mov r0, sp bl sub_8067EEC mov r0, sp adds r1, r5, 0 adds r2, r4, 0 bl process_overworld_input bl script_env_2_is_enabled lsls r0, 24 cmp r0, 0 bne _08054346 mov r0, sp bl sub_8068024 cmp r0, 0x1 bne _0805433C bl script_env_2_enable bl HideMapNamePopUpWindow b _08054346 _0805433C: ldrb r0, [r6, 0x2] adds r1, r5, 0 adds r2, r4, 0 bl player_step _08054346: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end c1_overworld_normal thumb_func_start c1_overworld c1_overworld: @ 8054350 push {lr} ldr r2, _08054368 ldr r1, [r2, 0x4] ldr r0, _0805436C cmp r1, r0 bne _08054364 ldrh r0, [r2, 0x2E] ldrh r1, [r2, 0x2C] bl c1_overworld_normal _08054364: pop {r0} bx r0 .align 2, 0 _08054368: .4byte 0x03001770 _0805436C: .4byte c2_overworld thumb_func_end c1_overworld thumb_func_start c2_overworld_basic c2_overworld_basic: @ 8054370 push {lr} bl script_env_2_run_current_script bl RunTasks bl AnimateSprites bl CameraUpdate bl UpdateCameraPanning bl BuildOamBuffer bl UpdatePaletteFade bl sub_8072EDC pop {r0} bx r0 thumb_func_end c2_overworld_basic thumb_func_start sub_8054398 sub_8054398: @ 8054398 push {lr} bl c2_overworld_basic pop {r0} bx r0 thumb_func_end sub_8054398 thumb_func_start c2_overworld c2_overworld: @ 80543A4 push {r4,lr} ldr r0, _080543CC ldrb r0, [r0, 0x7] lsrs r0, 7 adds r4, r0, 0 cmp r4, 0 beq _080543B8 movs r0, 0 bl SetVBlankCallback _080543B8: bl c2_overworld_basic cmp r4, 0 beq _080543C4 bl SetFieldVBlankCallback _080543C4: pop {r4} pop {r0} bx r0 .align 2, 0 _080543CC: .4byte 0x0202f388 thumb_func_end c2_overworld thumb_func_start set_callback1 set_callback1: @ 80543D0 ldr r1, _080543D8 str r0, [r1] bx lr .align 2, 0 _080543D8: .4byte 0x03001770 thumb_func_end set_callback1 thumb_func_start sub_80543DC sub_80543DC: @ 80543DC ldr r1, _080543E4 str r0, [r1] bx lr .align 2, 0 _080543E4: .4byte 0x03000584 thumb_func_end sub_80543DC thumb_func_start sub_80543E8 sub_80543E8: @ 80543E8 push {lr} ldr r0, _080543F8 ldr r0, [r0] cmp r0, 0 beq _080543FC bl _call_via_r0 b _08054400 .align 2, 0 _080543F8: .4byte 0x0300485c _080543FC: bl mapldr_default _08054400: ldr r1, _0805440C movs r0, 0 str r0, [r1] pop {r0} bx r0 .align 2, 0 _0805440C: .4byte 0x0300485c thumb_func_end sub_80543E8 thumb_func_start c2_load_new_map_2 c2_load_new_map_2: @ 8054410 push {lr} bl sub_80547A8 bl sub_8074D08 bl ResetSafariZoneFlag_ bl NewGameInitData bl player_avatar_init_params_reset bl PlayTimeCounter_Start bl script_env_1_init bl script_env_2_disable ldr r1, _08054454 ldr r0, _08054458 str r0, [r1] ldr r0, _0805445C bl do_load_map_stuff_loop bl SetFieldVBlankCallback ldr r0, _08054460 bl set_callback1 ldr r0, _08054464 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08054454: .4byte 0x0300485c _08054458: .4byte sub_80C76A0 _0805445C: .4byte 0x03001bac _08054460: .4byte c1_overworld _08054464: .4byte c2_overworld thumb_func_end c2_load_new_map_2 thumb_func_start c2_whiteout c2_whiteout: @ 8054468 push {lr} sub sp, 0x4 ldr r1, _080544C4 ldr r0, _080544C8 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 bls _080544BE bl sub_80547A8 bl sub_8074D08 bl ResetSafariZoneFlag_ bl sub_8052F5C bl player_avatar_init_params_reset bl script_env_1_init bl script_env_2_disable ldr r1, _080544CC ldr r0, _080544D0 str r0, [r1] mov r1, sp movs r0, 0 strb r0, [r1] mov r0, sp bl do_load_map_stuff_loop bl SetFieldVBlankCallback ldr r0, _080544D4 bl set_callback1 ldr r0, _080544D8 bl SetMainCallback2 _080544BE: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080544C4: .4byte 0x03001770 _080544C8: .4byte 0x0000043c _080544CC: .4byte 0x0300485c _080544D0: .4byte sub_8080B60 _080544D4: .4byte c1_overworld _080544D8: .4byte c2_overworld thumb_func_end c2_whiteout thumb_func_start c2_load_new_map c2_load_new_map: @ 80544DC push {lr} bl sub_80547A8 bl script_env_1_init bl script_env_2_disable movs r0, 0 bl set_callback1 ldr r0, _08054500 bl SetMainCallback2 ldr r1, _08054504 ldr r0, _08054508 str r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _08054500: .4byte sub_810CC80 _08054504: .4byte 0x03001770 _08054508: .4byte CB2_NewGame thumb_func_end c2_load_new_map thumb_func_start CB2_NewGame CB2_NewGame: @ 805450C push {lr} ldr r0, _08054528 bl do_load_map_stuff_loop bl SetFieldVBlankCallback ldr r0, _0805452C bl set_callback1 ldr r0, _08054530 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08054528: .4byte 0x03001bac _0805452C: .4byte c1_overworld _08054530: .4byte c2_overworld thumb_func_end CB2_NewGame thumb_func_start sub_8054534 sub_8054534: @ 8054534 push {r4,lr} ldr r0, _08054578 ldr r1, _0805457C adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 bne _08054554 bl sub_80547A8 bl script_env_1_init bl script_env_2_disable movs r0, 0 bl set_callback1 _08054554: adds r0, r4, 0 movs r1, 0x1 bl sub_805493C cmp r0, 0 beq _08054570 bl SetFieldVBlankCallback ldr r0, _08054580 bl set_callback1 ldr r0, _08054584 bl SetMainCallback2 _08054570: pop {r4} pop {r0} bx r0 .align 2, 0 _08054578: .4byte 0x03001770 _0805457C: .4byte 0x0000043c _08054580: .4byte c1_overworld _08054584: .4byte c2_overworld thumb_func_end sub_8054534 thumb_func_start sub_8054588 sub_8054588: @ 8054588 push {lr} bl sub_80547A8 ldr r0, _080545A0 ldr r1, _080545A4 str r1, [r0] ldr r0, _080545A8 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _080545A0: .4byte 0x0300485c _080545A4: .4byte sub_8080AC4 _080545A8: .4byte c2_80567AC thumb_func_end sub_8054588 thumb_func_start c2_80567AC c2_80567AC: @ 80545AC push {lr} ldr r0, _080545D4 bl sub_805483C cmp r0, 0 beq _080545CE bl SetFieldVBlankCallback ldr r0, _080545D8 bl set_callback1 ldr r0, _080545DC bl sub_80543DC ldr r0, _080545E0 bl SetMainCallback2 _080545CE: pop {r0} bx r0 .align 2, 0 _080545D4: .4byte 0x03001bac _080545D8: .4byte sub_8055354 _080545DC: .4byte sub_8055390 _080545E0: .4byte c2_overworld thumb_func_end c2_80567AC thumb_func_start c2_exit_to_overworld_2_switch c2_exit_to_overworld_2_switch: @ 80545E4 push {lr} bl is_c1_link_related_active cmp r0, 0x1 bne _080545FC ldr r0, _080545F8 bl SetMainCallback2 b _08054606 .align 2, 0 _080545F8: .4byte c2_exit_to_overworld_2_link _080545FC: bl sub_80547A8 ldr r0, _0805460C bl SetMainCallback2 _08054606: pop {r0} bx r0 .align 2, 0 _0805460C: .4byte c2_exit_to_overworld_2_local thumb_func_end c2_exit_to_overworld_2_switch thumb_func_start c2_exit_to_overworld_2_local c2_exit_to_overworld_2_local: @ 8054610 push {lr} ldr r0, _0805462C bl sub_8054A4C cmp r0, 0 beq _08054626 bl SetFieldVBlankCallback ldr r0, _08054630 bl SetMainCallback2 _08054626: pop {r0} bx r0 .align 2, 0 _0805462C: .4byte 0x03001bac _08054630: .4byte c2_overworld thumb_func_end c2_exit_to_overworld_2_local thumb_func_start c2_exit_to_overworld_2_link c2_exit_to_overworld_2_link: @ 8054634 push {lr} bl sub_8055870 cmp r0, 0 bne _0805464E ldr r0, _08054654 bl sub_8054A9C cmp r0, 0 beq _0805464E ldr r0, _08054658 bl SetMainCallback2 _0805464E: pop {r0} bx r0 .align 2, 0 _08054654: .4byte 0x03001bac _08054658: .4byte c2_overworld thumb_func_end c2_exit_to_overworld_2_link thumb_func_start sub_805465C sub_805465C: @ 805465C push {lr} bl sub_80547A8 bl sub_8074D08 bl sub_8054F70 ldr r0, _0805468C bl set_callback1 ldr r0, _08054690 bl sub_80543DC ldr r1, _08054694 ldr r0, _08054698 str r0, [r1] bl script_env_1_init bl script_env_2_disable bl c2_exit_to_overworld_2_switch pop {r0} bx r0 .align 2, 0 _0805468C: .4byte sub_8055354 _08054690: .4byte sub_8055390 _08054694: .4byte 0x0300485c _08054698: .4byte sub_8080A3C thumb_func_end sub_805465C thumb_func_start sub_805469C sub_805469C: @ 805469C push {lr} bl sub_80547A8 ldr r1, _080546B0 ldr r0, _080546B4 str r0, [r1] bl c2_exit_to_overworld_2_switch pop {r0} bx r0 .align 2, 0 _080546B0: .4byte 0x0300485c _080546B4: .4byte atk17_seteffectuser thumb_func_end sub_805469C thumb_func_start sub_80546B8 sub_80546B8: @ 80546B8 push {lr} bl sub_80547A8 ldr r1, _080546CC ldr r0, _080546D0 str r0, [r1] bl c2_exit_to_overworld_2_switch pop {r0} bx r0 .align 2, 0 _080546CC: .4byte 0x0300485c _080546D0: .4byte sub_80809B0 thumb_func_end sub_80546B8 thumb_func_start c2_exit_to_overworld_1_continue_scripts_restart_music c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80546D4 push {lr} bl sub_80547A8 ldr r1, _080546E8 ldr r0, _080546EC str r0, [r1] bl c2_exit_to_overworld_2_switch pop {r0} bx r0 .align 2, 0 _080546E8: .4byte 0x0300485c _080546EC: .4byte sub_8080990 thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_start sub_80546F0 sub_80546F0: @ 80546F0 push {lr} bl sub_80547A8 ldr r1, _08054704 ldr r0, _08054708 str r0, [r1] bl c2_exit_to_overworld_2_switch pop {r0} bx r0 .align 2, 0 _08054704: .4byte 0x0300485c _08054708: .4byte sub_8080B60 thumb_func_end sub_80546F0 thumb_func_start sub_805470C sub_805470C: @ 805470C push {lr} ldr r0, _08054730 ldrb r0, [r0, 0x1A] cmp r0, 0x1 bne _08054726 bl sub_80BBB24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08054726 bl AddMapNamePopUpWindowTask _08054726: bl sub_8080B60 pop {r0} bx r0 .align 2, 0 _08054730: .4byte 0x0202e828 thumb_func_end sub_805470C thumb_func_start CB2_ContinueSavedGame CB2_ContinueSavedGame: @ 8054734 push {lr} bl sub_80547A8 bl sub_8074D08 bl ResetSafariZoneFlag_ bl sub_805338C bl sub_8053198 bl sub_806451C bl InTrainerHill bl sub_805308C bl sub_8055FC0 bl PlayTimeCounter_Start bl script_env_1_init bl script_env_2_disable bl sub_80479F8 cmp r0, 0x1 bne _08054788 bl sub_8047A04 bl sub_8053778 bl warp_in ldr r0, _08054784 bl SetMainCallback2 b _08054798 .align 2, 0 _08054784: .4byte c2_load_new_map _08054788: ldr r0, _0805479C ldr r1, _080547A0 str r1, [r0] ldr r0, _080547A4 bl set_callback1 bl c2_exit_to_overworld_2_switch _08054798: pop {r0} bx r0 .align 2, 0 _0805479C: .4byte 0x0300485c _080547A0: .4byte sub_805470C _080547A4: .4byte c1_overworld thumb_func_end CB2_ContinueSavedGame thumb_func_start sub_80547A8 sub_80547A8: @ 80547A8 push {r4,lr} ldr r4, _080547D8 ldrh r3, [r4] movs r0, 0 strh r0, [r4] ldr r2, _080547DC ldrh r1, [r2] ldr r0, _080547E0 ands r0, r1 strh r0, [r2] ldrh r0, [r2] movs r1, 0x1 orrs r0, r1 strh r0, [r2] strh r3, [r4] movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r4} pop {r0} bx r0 .align 2, 0 _080547D8: .4byte 0x04000208 _080547DC: .4byte 0x04000200 _080547E0: .4byte 0x0000fffd thumb_func_end sub_80547A8 thumb_func_start SetFieldVBlankCallback SetFieldVBlankCallback: @ 80547E4 push {lr} ldr r0, _080547F0 bl SetVBlankCallback pop {r0} bx r0 .align 2, 0 _080547F0: .4byte VBlankCB_Field thumb_func_end SetFieldVBlankCallback thumb_func_start VBlankCB_Field VBlankCB_Field: @ 80547F4 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl sub_8089668 bl sub_8057A58 bl TransferPlttBuffer bl sub_8072E74 pop {r0} bx r0 thumb_func_end VBlankCB_Field thumb_func_start sub_8054814 sub_8054814: @ 8054814 push {lr} bl sav1_get_flash_used_on_map lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08054832 bl sub_80815E0 ldr r2, _08054838 ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_80895F8 _08054832: pop {r0} bx r0 .align 2, 0 _08054838: .4byte gUnknown_08216694 thumb_func_end sub_8054814 thumb_func_start sub_805483C sub_805483C: @ 805483C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xD bhi _08054934 lsls r0, 2 ldr r1, _08054850 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08054850: .4byte _08054854 .align 2, 0 _08054854: .4byte _0805488C .4byte _080548A2 .4byte _080548AA .4byte _080548B2 .4byte _080548C4 .4byte _080548E4 .4byte _080548EA .4byte _080548F8 .4byte _08054908 .4byte _08054918 .4byte _0805491E .4byte _08054928 .4byte _08054924 .4byte _08054930 _0805488C: bl sub_80547A8 bl script_env_1_init bl script_env_2_disable bl sub_8054F70 bl sub_8054BA8 b _08054928 _080548A2: movs r0, 0x1 bl sub_8053994 b _08054928 _080548AA: movs r0, 0x1 bl sub_8054D4C b _08054928 _080548B2: bl sub_8054E98 bl sub_8054D90 bl sub_8054EC8 bl sub_8054E60 b _08054928 _080548C4: bl sub_8054814 bl sub_8054C54 ldr r0, _080548DC bl SetUpWindowConfig ldr r0, _080548E0 bl sub_8071C4C b _08054928 .align 2, 0 _080548DC: .4byte gWindowConfig_81E6C3C _080548E0: .4byte gWindowConfig_81E6CE4 _080548E4: bl move_tilemap_camera_to_upper_left_corner b _08054928 _080548EA: ldr r0, _080548F4 ldr r0, [r0] bl sub_8056D28 b _08054928 .align 2, 0 _080548F4: .4byte 0x0202e828 _080548F8: ldr r0, _08054904 ldr r0, [r0] bl sub_8056D38 b _08054928 .align 2, 0 _08054904: .4byte 0x0202e828 _08054908: ldr r0, _08054914 ldr r0, [r0] bl apply_map_tileset1_tileset2_palette b _08054928 .align 2, 0 _08054914: .4byte 0x0202e828 _08054918: bl DrawWholeMapView b _08054928 _0805491E: bl cur_mapheader_run_tileset_funcs_after_some_cpuset b _08054928 _08054924: bl sub_80543E8 _08054928: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08054934 _08054930: movs r0, 0x1 b _08054936 _08054934: movs r0, 0 _08054936: pop {r4} pop {r1} bx r1 thumb_func_end sub_805483C thumb_func_start sub_805493C sub_805493C: @ 805493C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] cmp r0, 0xD bls _0805494A b _08054A44 _0805494A: lsls r0, 2 ldr r1, _08054954 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08054954: .4byte _08054958 .align 2, 0 _08054958: .4byte _08054990 .4byte _0805499C .4byte _080549A2 .4byte _080549AA .4byte _080549B4 .4byte _080549D4 .4byte _080549DA .4byte _080549E8 .4byte _080549F8 .4byte _08054A08 .4byte _08054A0E .4byte _08054A14 .4byte _08054A34 .4byte _08054A40 _08054990: bl sub_80547A8 adds r0, r5, 0 bl sub_8053994 b _08054A38 _0805499C: bl sub_8054BA8 b _08054A38 _080549A2: adds r0, r5, 0 bl sub_8054D4C b _08054A38 _080549AA: bl mli4_mapscripts_and_other bl sub_8054E34 b _08054A38 _080549B4: bl sub_8054814 bl sub_8054C54 ldr r0, _080549CC bl SetUpWindowConfig ldr r0, _080549D0 bl sub_8071C4C b _08054A38 .align 2, 0 _080549CC: .4byte gWindowConfig_81E6C3C _080549D0: .4byte gWindowConfig_81E6CE4 _080549D4: bl move_tilemap_camera_to_upper_left_corner b _08054A38 _080549DA: ldr r0, _080549E4 ldr r0, [r0] bl sub_8056D28 b _08054A38 .align 2, 0 _080549E4: .4byte 0x0202e828 _080549E8: ldr r0, _080549F4 ldr r0, [r0] bl sub_8056D38 b _08054A38 .align 2, 0 _080549F4: .4byte 0x0202e828 _080549F8: ldr r0, _08054A04 ldr r0, [r0] bl apply_map_tileset1_tileset2_palette b _08054A38 .align 2, 0 _08054A04: .4byte 0x0202e828 _08054A08: bl DrawWholeMapView b _08054A38 _08054A0E: bl cur_mapheader_run_tileset_funcs_after_some_cpuset b _08054A38 _08054A14: ldr r0, _08054A30 ldrb r0, [r0, 0x1A] cmp r0, 0x1 bne _08054A38 bl sub_80BBB24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08054A38 bl AddMapNamePopUpWindowTask b _08054A38 .align 2, 0 _08054A30: .4byte 0x0202e828 _08054A34: bl sub_80543E8 _08054A38: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08054A44 _08054A40: movs r0, 0x1 b _08054A46 _08054A44: movs r0, 0 _08054A46: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805493C thumb_func_start sub_8054A4C sub_8054A4C: @ 8054A4C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x1 beq _08054A7E cmp r0, 0x1 bgt _08054A60 cmp r0, 0 beq _08054A6A b _08054A94 _08054A60: cmp r0, 0x2 beq _08054A84 cmp r0, 0x3 beq _08054A90 b _08054A94 _08054A6A: bl sub_8054BA8 movs r0, 0 bl sub_8054D4C bl sub_8054E20 bl sub_8054E34 b _08054A88 _08054A7E: bl sub_8054C2C b _08054A88 _08054A84: bl sub_80543E8 _08054A88: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08054A94 _08054A90: movs r0, 0x1 b _08054A96 _08054A94: movs r0, 0 _08054A96: pop {r4} pop {r1} bx r1 thumb_func_end sub_8054A4C thumb_func_start sub_8054A9C sub_8054A9C: @ 8054A9C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xD bhi _08054B86 lsls r0, 2 ldr r1, _08054AB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08054AB0: .4byte _08054AB4 .align 2, 0 _08054AB4: .4byte _08054AEC .4byte _08054AF6 .4byte _08054AFE .4byte _08054B0C .4byte _08054B2C .4byte _08054B32 .4byte _08054B40 .4byte _08054B50 .4byte _08054B60 .4byte _08054B66 .4byte _08054B70 .4byte _08054B70 .4byte _08054B6C .4byte _08054B78 _08054AEC: bl sub_80547A8 bl sub_8054BA8 b _08054B70 _08054AF6: movs r0, 0x1 bl sub_8054D4C b _08054B70 _08054AFE: bl sub_8054F48 bl sub_8054E20 bl sub_8054E7C b _08054B70 _08054B0C: bl sub_8054814 bl sub_8054C54 ldr r0, _08054B24 bl SetUpWindowConfig ldr r0, _08054B28 bl sub_8071C4C b _08054B70 .align 2, 0 _08054B24: .4byte gWindowConfig_81E6C3C _08054B28: .4byte gWindowConfig_81E6CE4 _08054B2C: bl move_tilemap_camera_to_upper_left_corner b _08054B70 _08054B32: ldr r0, _08054B3C ldr r0, [r0] bl sub_8056D28 b _08054B70 .align 2, 0 _08054B3C: .4byte 0x0202e828 _08054B40: ldr r0, _08054B4C ldr r0, [r0] bl sub_8056D38 b _08054B70 .align 2, 0 _08054B4C: .4byte 0x0202e828 _08054B50: ldr r0, _08054B5C ldr r0, [r0] bl apply_map_tileset1_tileset2_palette b _08054B70 .align 2, 0 _08054B5C: .4byte 0x0202e828 _08054B60: bl DrawWholeMapView b _08054B70 _08054B66: bl cur_mapheader_run_tileset_funcs_after_some_cpuset b _08054B70 _08054B6C: bl sub_80543E8 _08054B70: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08054B86 _08054B78: bl SetFieldVBlankCallback ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 b _08054B88 _08054B86: movs r0, 0 _08054B88: pop {r4} pop {r1} bx r1 thumb_func_end sub_8054A9C thumb_func_start do_load_map_stuff_loop do_load_map_stuff_loop: @ 8054B90 push {r4,lr} adds r4, r0, 0 _08054B94: adds r0, r4, 0 movs r1, 0 bl sub_805493C cmp r0, 0 beq _08054B94 pop {r4} pop {r0} bx r0 thumb_func_end do_load_map_stuff_loop thumb_func_start sub_8054BA8 sub_8054BA8: @ 8054BA8 push {r4-r7,lr} sub sp, 0x4 movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] bl remove_some_task ldr r2, _08054C1C mov r0, sp strh r4, [r0] ldr r1, _08054C20 str r0, [r1] str r2, [r1, 0x4] ldr r0, _08054C24 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, _08054C28 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08054BE2: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _08054BE2 strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 movs r1, 0x80 bl ResetOamRange bl LoadOam add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08054C1C: .4byte 0x05000002 _08054C20: .4byte 0x040000d4 _08054C24: .4byte 0x810001ff _08054C28: .4byte 0x81000800 thumb_func_end sub_8054BA8 thumb_func_start sub_8054C2C sub_8054C2C: @ 8054C2C push {lr} bl sub_8054814 bl sub_8054C54 ldr r0, _08054C4C bl SetUpWindowConfig ldr r0, _08054C50 bl sub_8071C4C bl mapdata_load_assets_to_gpu_and_full_redraw pop {r0} bx r0 .align 2, 0 _08054C4C: .4byte gWindowConfig_81E6C3C _08054C50: .4byte gWindowConfig_81E6CE4 thumb_func_end sub_8054C2C thumb_func_start sub_8054C54 sub_8054C54: @ 8054C54 push {r4-r6,lr} ldr r0, _08054D08 movs r3, 0 strh r3, [r0] ldr r1, _08054D0C ldr r2, _08054D10 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r4, _08054D14 adds r0, r4, 0 strh r0, [r1] ldr r0, _08054D18 movs r1, 0xFF strh r1, [r0] adds r0, 0x4 strh r1, [r0] subs r0, 0x2 ldr r6, _08054D1C adds r1, r6, 0 strh r1, [r0] adds r0, 0x4 strh r1, [r0] ldr r4, _08054D20 ldr r1, _08054D24 ldrh r0, [r1, 0x2] ldrh r2, [r1, 0x4] orrs r0, r2 ldrh r1, [r1, 0x6] orrs r0, r1 movs r2, 0x82 lsls r2, 5 adds r1, r2, 0 orrs r0, r1 strh r0, [r4] ldr r1, _08054D28 ldr r4, _08054D2C adds r0, r4, 0 strh r0, [r1] ldr r5, _08054D30 ldr r0, [r5] strh r3, [r0] ldr r4, _08054D34 ldr r0, [r4] strh r3, [r0] ldr r2, _08054D38 ldr r0, [r2] strh r3, [r0] ldr r0, [r5, 0x4] strh r3, [r0] ldr r0, [r4, 0x4] strh r3, [r0] ldr r1, [r2, 0x4] ldr r6, _08054D3C adds r0, r6, 0 strh r0, [r1] ldr r0, [r5, 0x8] strh r3, [r0] ldr r0, [r4, 0x8] strh r3, [r0] ldr r1, [r2, 0x8] subs r6, 0xFF adds r0, r6, 0 strh r0, [r1] ldr r0, [r5, 0xC] strh r3, [r0] ldr r0, [r4, 0xC] strh r3, [r0] ldr r1, [r2, 0xC] ldr r2, _08054D40 adds r0, r2, 0 strh r0, [r1] movs r3, 0x80 lsls r3, 19 ldr r2, _08054D44 ldrh r0, [r2, 0x2] ldr r4, _08054D48 adds r1, r4, 0 orrs r0, r1 ldrh r1, [r2, 0x4] orrs r0, r1 ldrh r1, [r2] orrs r0, r1 ldrh r1, [r2, 0x6] orrs r0, r1 strh r0, [r3] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08054D08: .4byte 0x0400004c _08054D0C: .4byte 0x04000048 _08054D10: .4byte 0x00001f1f _08054D14: .4byte 0x00000101 _08054D18: .4byte 0x04000040 _08054D1C: .4byte 0x0000ffff _08054D20: .4byte 0x04000050 _08054D24: .4byte gUnknown_081E29E0 _08054D28: .4byte 0x04000052 _08054D2C: .4byte 0x0000070d _08054D30: .4byte gBGHOffsetRegs _08054D34: .4byte gBGVOffsetRegs _08054D38: .4byte gBGControlRegs _08054D3C: .4byte 0x00001d41 _08054D40: .4byte 0x00001e43 _08054D44: .4byte gUnknown_081E29D8 _08054D48: .4byte 0x00007060 thumb_func_end sub_8054C54 thumb_func_start sub_8054D4C sub_8054D4C: @ 8054D4C push {r4,lr} adds r4, r0, 0 bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl dp12_8087EA4 bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback movs r0, 0 bl sub_805C7C4 bl FieldEffectActiveListClear bl sub_8064A74 bl sub_807C828 bl sub_8080750 cmp r4, 0 bne _08054D86 bl overworld_ensure_per_step_coros_running _08054D86: bl mapheader_run_script_with_tag_x5 pop {r4} pop {r0} bx r0 thumb_func_end sub_8054D4C thumb_func_start sub_8054D90 sub_8054D90: @ 8054D90 push {lr} ldr r0, _08054DB0 movs r1, 0 strh r1, [r0] ldr r0, _08054DB4 strh r1, [r0] bl sub_805AA98 movs r0, 0 movs r1, 0 bl sub_805B55C bl mapheader_run_first_tag4_script_list_match pop {r0} bx r0 .align 2, 0 _08054DB0: .4byte 0x0300489c _08054DB4: .4byte 0x03004898 thumb_func_end sub_8054D90 thumb_func_start mli4_mapscripts_and_other mli4_mapscripts_and_other: @ 8054DB8 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08054E14 movs r1, 0 strh r1, [r0] ldr r0, _08054E18 strh r1, [r0] bl sub_805AA98 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sav1_camera_get_focus_coords bl sub_8053AA8 adds r5, r0, 0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldrb r2, [r5, 0x1] ldr r3, _08054E1C ldrb r3, [r3, 0x8] bl InitPlayerAvatar ldrb r0, [r5] bl SetPlayerAvatarTransitionFlags bl player_avatar_init_params_reset movs r0, 0 movs r1, 0 bl sub_805B55C bl ResetBerryTreeSparkleFlags bl mapheader_run_first_tag4_script_list_match add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08054E14: .4byte 0x0300489c _08054E18: .4byte 0x03004898 _08054E1C: .4byte 0x02024ea4 thumb_func_end mli4_mapscripts_and_other thumb_func_start sub_8054E20 sub_8054E20: @ 8054E20 push {lr} movs r0, 0 movs r1, 0 bl sub_805B710 bl sub_80C8080 pop {r0} bx r0 thumb_func_end sub_8054E20 thumb_func_start sub_8054E34 sub_8054E34: @ 8054E34 push {lr} ldr r2, _08054E58 ldr r3, _08054E5C ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x1] ldrb r0, [r3, 0x4] bl InitCameraUpdateCallback pop {r0} bx r0 .align 2, 0 _08054E58: .4byte 0x030048a0 _08054E5C: .4byte 0x0202e858 thumb_func_end sub_8054E34 thumb_func_start sub_8054E60 sub_8054E60: @ 8054E60 push {lr} ldr r0, _08054E78 ldrb r0, [r0] bl sub_8055AE8 lsls r0, 24 lsrs r0, 24 bl InitCameraUpdateCallback pop {r0} bx r0 .align 2, 0 _08054E78: .4byte 0x03004860 thumb_func_end sub_8054E60 thumb_func_start sub_8054E7C sub_8054E7C: @ 8054E7C push {lr} ldr r0, _08054E94 ldrb r0, [r0] bl sub_8055AE8 lsls r0, 24 lsrs r0, 24 bl InitCameraUpdateCallback pop {r0} bx r0 .align 2, 0 _08054E94: .4byte 0x03004860 thumb_func_end sub_8054E7C thumb_func_start sub_8054E98 sub_8054E98: @ 8054E98 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sav1_camera_get_focus_coords mov r2, sp ldr r0, _08054EC4 ldrb r1, [r0] ldrh r0, [r2] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] bl sub_8056C50 add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08054EC4: .4byte 0x03004860 thumb_func_end sub_8054E98 thumb_func_start sub_8054EC8 sub_8054EC8: @ 8054EC8 push {r4-r7,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sav1_camera_get_focus_coords mov r3, sp mov r2, sp ldr r0, _08054F38 ldrb r1, [r0] ldrh r0, [r2] subs r0, r1 strh r0, [r3] movs r5, 0 ldr r0, _08054F3C adds r7, r4, 0 ldrb r0, [r0] cmp r5, r0 bcs _08054F2A ldr r6, _08054F40 _08054EF4: lsls r4, r5, 24 lsrs r4, 24 mov r0, sp ldrh r1, [r0] adds r1, r5, r1 lsls r1, 16 asrs r1, 16 movs r0, 0 ldrsh r2, [r7, r0] lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r6 ldrb r3, [r0, 0x13] adds r0, r4, 0 bl sub_8055980 adds r0, r4, 0 bl sub_8055E5C adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _08054F3C ldrb r0, [r0] cmp r5, r0 bcc _08054EF4 _08054F2A: ldr r0, _08054F44 bl sub_8055340 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08054F38: .4byte 0x03004860 _08054F3C: .4byte 0x03004864 _08054F40: .4byte 0x03002970 _08054F44: .4byte 0x03002910 thumb_func_end sub_8054EC8 thumb_func_start sub_8054F48 sub_8054F48: @ 8054F48 push {r4,lr} movs r4, 0 b _08054F5C _08054F4E: lsls r0, r4, 24 lsrs r0, 24 bl sub_8055E5C adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _08054F5C: ldr r0, _08054F6C ldrb r0, [r0] cmp r4, r0 bcc _08054F4E pop {r4} pop {r0} bx r0 .align 2, 0 _08054F6C: .4byte 0x03004864 thumb_func_end sub_8054F48 thumb_func_start sub_8054F70 sub_8054F70: @ 8054F70 push {lr} ldr r1, _08054F84 movs r2, 0x80 adds r0, r1, 0x3 _08054F78: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _08054F78 pop {r0} bx r0 .align 2, 0 _08054F84: .4byte 0x03000580 thumb_func_end sub_8054F70 thumb_func_start sub_8054F88 sub_8054F88: @ 8054F88 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, _08054FA8 ldrb r2, [r0] movs r1, 0 cmp r1, r2 bge _08054FB6 ldr r4, _08054FAC _08054F9A: adds r0, r1, r4 ldrb r0, [r0] cmp r0, r3 beq _08054FB0 movs r0, 0 b _08054FB8 .align 2, 0 _08054FA8: .4byte 0x03004864 _08054FAC: .4byte 0x03000580 _08054FB0: adds r1, 0x1 cmp r1, r2 blt _08054F9A _08054FB6: movs r0, 0x1 _08054FB8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8054F88 thumb_func_start sub_8054FC0 sub_8054FC0: @ 8054FC0 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, _08054FE0 ldrb r2, [r0] movs r1, 0 cmp r1, r2 bge _08054FEE ldr r4, _08054FE4 _08054FD2: adds r0, r1, r4 ldrb r0, [r0] cmp r0, r3 bne _08054FE8 movs r0, 0x1 b _08054FF0 .align 2, 0 _08054FE0: .4byte 0x03004864 _08054FE4: .4byte 0x03000580 _08054FE8: adds r1, 0x1 cmp r1, r2 blt _08054FD2 _08054FEE: movs r0, 0 _08054FF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8054FC0 thumb_func_start sub_8054FF8 sub_8054FF8: @ 8054FF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r6, r2, 0 mov r9, r3 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldr r0, _08055048 adds r5, r7, r0 ldrb r0, [r5] cmp r0, 0x80 beq _08055018 b _08055192 _08055018: adds r0, r6, 0 bl sub_8055648 adds r4, r0, 0 cmp r4, 0 beq _08055050 bl sub_8055758 mov r1, r9 strh r0, [r1] movs r0, 0x81 strb r0, [r5] ldrb r0, [r6, 0x1] cmp r0, 0 bne _08055038 b _08055206 _08055038: ldr r0, _0805504C bl sub_80543DC adds r0, r4, 0 bl sub_8055808 b _08055206 .align 2, 0 _08055048: .4byte 0x03000580 _0805504C: .4byte sub_80553E4 _08055050: movs r0, 0x83 bl sub_8054FC0 cmp r0, 0x1 bne _08055078 movs r0, 0x81 strb r0, [r5] ldrb r0, [r6, 0x1] cmp r0, 0 bne _08055066 b _08055206 _08055066: ldr r0, _08055074 bl sub_80543DC bl sub_805585C b _08055206 .align 2, 0 _08055074: .4byte sub_80553E4 _08055078: mov r0, r8 subs r0, 0x12 cmp r0, 0xA bls _08055082 b _08055192 _08055082: lsls r0, 2 ldr r1, _0805508C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0805508C: .4byte _08055090 .align 2, 0 _08055090: .4byte _080550E8 .4byte _08055192 .4byte _08055192 .4byte _08055192 .4byte _08055192 .4byte _08055192 .4byte _080550BC .4byte _08055114 .4byte _08055192 .4byte _08055144 .4byte _08055170 _080550BC: adds r0, r6, 0 bl sub_8055630 cmp r0, 0 beq _08055192 ldr r0, _080550E0 adds r0, r7, r0 movs r1, 0x81 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055192 ldr r0, _080550E4 bl sub_80543DC bl sub_80557F4 b _08055192 .align 2, 0 _080550E0: .4byte 0x03000580 _080550E4: .4byte sub_80553E4 _080550E8: adds r0, r6, 0 bl sub_8055660 cmp r0, 0x1 bne _08055192 ldr r0, _0805510C adds r0, r7, r0 movs r1, 0x81 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055192 ldr r0, _08055110 bl sub_80543DC bl sub_8055824 b _08055192 .align 2, 0 _0805510C: .4byte 0x03000580 _08055110: .4byte sub_80553E4 _08055114: adds r0, r6, 0 bl sub_805568C adds r4, r0, 0 cmp r4, 0 beq _08055192 ldr r0, _0805513C adds r0, r7, r0 movs r1, 0x81 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055192 ldr r0, _08055140 bl sub_80543DC adds r0, r4, 0 bl sub_8055840 b _08055192 .align 2, 0 _0805513C: .4byte 0x03000580 _08055140: .4byte sub_80553E4 _08055144: adds r0, r6, 0 bl sub_8055618 cmp r0, 0 beq _08055192 ldr r0, _08055168 adds r0, r7, r0 movs r1, 0x81 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055192 ldr r0, _0805516C bl sub_80543DC bl sub_80557E8 b _08055192 .align 2, 0 _08055168: .4byte 0x03000580 _0805516C: .4byte sub_8055408 _08055170: adds r0, r6, 0 bl sub_8055618 cmp r0, 0 beq _08055192 ldr r0, _080551A4 adds r0, r7, r0 movs r1, 0x81 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055192 ldr r0, _080551A8 bl sub_80543DC bl sub_80557E8 _08055192: mov r0, r8 cmp r0, 0x17 beq _080551B8 cmp r0, 0x17 bgt _080551AC cmp r0, 0x16 beq _080551C8 b _08055206 .align 2, 0 _080551A4: .4byte 0x03000580 _080551A8: .4byte sub_8055438 _080551AC: mov r1, r8 cmp r1, 0x1A beq _080551D8 cmp r1, 0x1D beq _080551F8 b _08055206 _080551B8: ldr r0, _080551C4 adds r0, r7, r0 movs r1, 0x83 strb r1, [r0] b _08055206 .align 2, 0 _080551C4: .4byte 0x03000580 _080551C8: ldr r0, _080551D4 adds r0, r7, r0 movs r1, 0x82 strb r1, [r0] b _08055206 .align 2, 0 _080551D4: .4byte 0x03000580 _080551D8: ldr r0, _080551F0 adds r0, r7, r0 movs r1, 0x80 strb r1, [r0] ldrb r0, [r6, 0x1] cmp r0, 0 beq _08055206 ldr r0, _080551F4 bl sub_80543DC b _08055206 .align 2, 0 _080551F0: .4byte 0x03000580 _080551F4: .4byte sub_8055390 _080551F8: ldr r0, _08055214 adds r1, r7, r0 ldrb r0, [r1] cmp r0, 0x82 bne _08055206 movs r0, 0x81 strb r0, [r1] _08055206: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055214: .4byte 0x03000580 thumb_func_end sub_8054FF8 thumb_func_start sub_8055218 sub_8055218: @ 8055218 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r8, r1 movs r6, 0 add r4, sp, 0x10 mov r9, r4 adds r7, r0, 0 _0805522C: ldrh r5, [r7] movs r0, 0 strh r0, [r4] adds r0, r6, 0 mov r1, r8 mov r2, sp bl sub_80555B0 adds r0, r6, 0 adds r1, r5, 0 mov r2, sp adds r3, r4, 0 bl sub_8054FF8 ldr r0, _0805527C adds r0, r6, r0 ldrb r0, [r0] cmp r0, 0x80 bne _0805525C adds r0, r5, 0 bl sub_805530C mov r1, r9 strh r0, [r1] _0805525C: lsls r0, r6, 24 lsrs r0, 24 ldrb r1, [r4] bl sub_8055BFC adds r7, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0805522C add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805527C: .4byte 0x03000580 thumb_func_end sub_8055218 thumb_func_start sub_8055280 sub_8055280: @ 8055280 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r2, _08055298 adds r0, r2 lsrs r0, 16 cmp r0, 0xC bhi _080552A0 ldr r0, _0805529C strh r1, [r0] b _080552A6 .align 2, 0 _08055298: .4byte 0xffef0000 _0805529C: .4byte 0x03004858 _080552A0: ldr r1, _080552AC movs r0, 0x11 strh r0, [r1] _080552A6: pop {r0} bx r0 .align 2, 0 _080552AC: .4byte 0x03004858 thumb_func_end sub_8055280 thumb_func_start sub_80552B0 sub_80552B0: @ 80552B0 push {lr} ldr r2, _080552C4 ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080552C8 movs r0, 0x13 b _08055308 .align 2, 0 _080552C4: .4byte 0x03001770 _080552C8: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080552D4 movs r0, 0x12 b _08055308 _080552D4: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080552E0 movs r0, 0x14 b _08055308 _080552E0: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080552EC movs r0, 0x15 b _08055308 _080552EC: ldrh r1, [r2, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080552FA movs r0, 0x18 b _08055308 _080552FA: movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08055306 movs r0, 0x11 b _08055308 _08055306: movs r0, 0x19 _08055308: pop {r1} bx r1 thumb_func_end sub_80552B0 thumb_func_start sub_805530C sub_805530C: @ 805530C push {lr} lsls r0, 16 lsrs r0, 16 adds r1, r0, 0 cmp r0, 0x13 beq _08055332 cmp r0, 0x13 bgt _08055322 cmp r0, 0x12 beq _08055336 b _0805533A _08055322: cmp r1, 0x14 beq _0805532E cmp r1, 0x15 bne _0805533A movs r0, 0x4 b _0805533C _0805532E: movs r0, 0x3 b _0805533C _08055332: movs r0, 0x1 b _0805533C _08055336: movs r0, 0x2 b _0805533C _0805533A: movs r0, 0 _0805533C: pop {r1} bx r1 thumb_func_end sub_805530C thumb_func_start sub_8055340 sub_8055340: @ 8055340 push {lr} movs r2, 0x11 adds r1, r0, 0x6 _08055346: strh r2, [r1] subs r1, 0x2 cmp r1, r0 bge _08055346 pop {r0} bx r0 thumb_func_end sub_8055340 thumb_func_start sub_8055354 sub_8055354: @ 8055354 push {r4,r5,lr} ldr r0, _08055384 ldrb r4, [r0] ldr r5, _08055388 adds r0, r5, 0 adds r1, r4, 0 bl sub_8055218 ldr r0, _0805538C ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 16 lsrs r0, 16 bl sub_8055280 adds r0, r5, 0 bl sub_8055340 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08055384: .4byte 0x03004860 _08055388: .4byte 0x03002910 _0805538C: .4byte 0x03000584 thumb_func_end sub_8055354 thumb_func_start sub_8055390 sub_8055390: @ 8055390 push {r4,lr} adds r4, r0, 0 bl script_env_2_is_enabled lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080553A4 movs r0, 0x11 b _080553DA _080553A4: ldr r1, _080553B4 ldr r2, _080553B8 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x4 bls _080553BC movs r0, 0x1B b _080553DA .align 2, 0 _080553B4: .4byte 0x03003070 _080553B8: .4byte 0x00000fbd _080553BC: ldr r2, _080553CC adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x4 bls _080553D0 movs r0, 0x1C b _080553DA .align 2, 0 _080553CC: .4byte 0x00000339 _080553D0: adds r0, r4, 0 bl sub_80552B0 lsls r0, 16 lsrs r0, 16 _080553DA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8055390 thumb_func_start sub_80553E0 sub_80553E0: @ 80553E0 movs r0, 0x11 bx lr thumb_func_end sub_80553E0 thumb_func_start sub_80553E4 sub_80553E4: @ 80553E4 push {r4,lr} bl script_env_2_is_enabled lsls r0, 24 lsrs r0, 24 movs r4, 0x11 cmp r0, 0x1 beq _080553FC movs r4, 0x1A ldr r0, _08055404 bl sub_80543DC _080553FC: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08055404: .4byte sub_80553E0 thumb_func_end sub_80553E4 thumb_func_start sub_8055408 sub_8055408: @ 8055408 push {r4,lr} ldr r0, _0805542C ldr r1, _08055430 adds r0, r1 ldrb r0, [r0] movs r4, 0x11 cmp r0, 0x2 bhi _08055424 movs r4, 0x1A bl script_env_2_disable ldr r0, _08055434 bl sub_80543DC _08055424: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805542C: .4byte 0x03003070 _08055430: .4byte 0x00000fbd _08055434: .4byte sub_80553E0 thumb_func_end sub_8055408 thumb_func_start sub_8055438 sub_8055438: @ 8055438 push {r4,lr} ldr r0, _0805545C ldr r1, _08055460 adds r0, r1 ldrb r0, [r0] movs r4, 0x11 cmp r0, 0x2 bhi _08055454 movs r4, 0x1A bl script_env_2_disable ldr r0, _08055464 bl sub_80543DC _08055454: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805545C: .4byte 0x03003070 _08055460: .4byte 0x00000339 _08055464: .4byte sub_80553E0 thumb_func_end sub_8055438 thumb_func_start sub_8055468 sub_8055468: @ 8055468 movs r0, 0x11 bx lr thumb_func_end sub_8055468 thumb_func_start sub_805546C sub_805546C: @ 805546C push {lr} ldr r1, _08055490 adds r0, r1 ldrb r0, [r0] cmp r0, 0x82 bne _0805549C ldr r0, _08055494 ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0805549C ldr r0, _08055498 bl sub_80543DC movs r0, 0x1D b _0805549E .align 2, 0 _08055490: .4byte 0x03000580 _08055494: .4byte 0x03001770 _08055498: .4byte sub_8055468 _0805549C: movs r0, 0x11 _0805549E: pop {r1} bx r1 thumb_func_end sub_805546C thumb_func_start sub_80554A4 sub_80554A4: @ 80554A4 push {lr} ldr r0, _080554B4 bl sub_80543DC movs r0, 0x16 pop {r1} bx r1 .align 2, 0 _080554B4: .4byte sub_805546C thumb_func_end sub_80554A4 thumb_func_start sub_80554B8 sub_80554B8: @ 80554B8 movs r0, 0x11 bx lr thumb_func_end sub_80554B8 thumb_func_start sub_80554BC sub_80554BC: @ 80554BC push {lr} movs r0, 0x83 bl sub_8054F88 cmp r0, 0x1 bne _080554D4 ldr r0, _080554DC bl script_env_1_execute_new_script ldr r0, _080554E0 bl sub_80543DC _080554D4: movs r0, 0x11 pop {r1} bx r1 .align 2, 0 _080554DC: .4byte gUnknown_081A4508 _080554E0: .4byte sub_80554B8 thumb_func_end sub_80554BC thumb_func_start sub_80554E4 sub_80554E4: @ 80554E4 push {lr} ldr r0, _080554F4 bl sub_80543DC movs r0, 0x17 pop {r1} bx r1 .align 2, 0 _080554F4: .4byte sub_80554BC thumb_func_end sub_80554E4 thumb_func_start sub_80554F8 sub_80554F8: @ 80554F8 push {lr} movs r0, 0x83 bl sub_8054FC0 cmp r0, 0x1 beq _0805554A ldr r0, _08055524 ldr r2, [r0] ldr r1, _08055528 adds r3, r0, 0 cmp r2, r1 bne _08055534 ldr r1, _0805552C ldr r0, _08055530 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0x82 beq _08055534 movs r0, 0 b _08055562 .align 2, 0 _08055524: .4byte 0x03000584 _08055528: .4byte sub_805546C _0805552C: .4byte 0x03000580 _08055530: .4byte 0x03004860 _08055534: ldr r1, [r3] ldr r0, _08055550 cmp r1, r0 bne _0805555C ldr r1, _08055554 ldr r0, _08055558 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0x81 bne _0805555C _0805554A: movs r0, 0x2 b _08055562 .align 2, 0 _08055550: .4byte sub_8055468 _08055554: .4byte 0x03000580 _08055558: .4byte 0x03004860 _0805555C: movs r0, 0x82 bl sub_8054F88 _08055562: pop {r1} bx r1 thumb_func_end sub_80554F8 thumb_func_start unref_sub_8055568 unref_sub_8055568: @ 8055568 push {lr} movs r0, 0x83 bl sub_8054FC0 pop {r1} bx r1 thumb_func_end unref_sub_8055568 thumb_func_start sub_8055574 sub_8055574: @ 8055574 push {lr} ldr r0, _08055584 bl sub_80543DC movs r0, 0 pop {r1} bx r1 .align 2, 0 _08055584: .4byte sub_80554A4 thumb_func_end sub_8055574 thumb_func_start sub_8055588 sub_8055588: @ 8055588 push {lr} ldr r0, _08055598 bl sub_80543DC movs r0, 0 pop {r1} bx r1 .align 2, 0 _08055598: .4byte sub_80553E4 thumb_func_end sub_8055588 thumb_func_start sub_805559C sub_805559C: @ 805559C push {lr} ldr r0, _080555AC bl sub_80543DC movs r0, 0 pop {r1} bx r1 .align 2, 0 _080555AC: .4byte sub_80554E4 thumb_func_end sub_805559C thumb_func_start sub_80555B0 sub_80555B0: @ 80555B0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 strb r4, [r6] movs r0, 0 cmp r4, r1 bne _080555C2 movs r0, 0x1 _080555C2: strb r0, [r6, 0x1] ldr r1, _08055614 lsls r0, r4, 2 adds r0, r1 ldrb r0, [r0, 0x3] strb r0, [r6, 0x2] lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8055B30 strb r0, [r6, 0x3] mov r5, sp adds r5, 0x2 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 bl sub_8055B08 mov r0, sp ldrh r0, [r0] strh r0, [r6, 0x4] ldrh r0, [r5] strh r0, [r6, 0x6] adds r0, r4, 0 bl sub_8055B50 strb r0, [r6, 0x8] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt strh r0, [r6, 0xC] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08055614: .4byte 0x02029818 thumb_func_end sub_80555B0 thumb_func_start sub_8055618 sub_8055618: @ 8055618 push {lr} ldrb r0, [r0, 0x2] cmp r0, 0x2 beq _08055624 cmp r0, 0 bne _08055628 _08055624: movs r0, 0x1 b _0805562A _08055628: movs r0, 0 _0805562A: pop {r1} bx r1 thumb_func_end sub_8055618 thumb_func_start sub_8055630 sub_8055630: @ 8055630 push {lr} ldrb r0, [r0, 0x2] cmp r0, 0x2 beq _0805563C cmp r0, 0 bne _08055640 _0805563C: movs r0, 0x1 b _08055642 _08055640: movs r0, 0 _08055642: pop {r1} bx r1 thumb_func_end sub_8055630 thumb_func_start sub_8055648 sub_8055648: @ 8055648 push {lr} adds r1, r0, 0 ldrb r0, [r1, 0x2] cmp r0, 0x2 bne _0805565A adds r0, r1, 0x4 bl sub_8068E24 b _0805565C _0805565A: movs r0, 0 _0805565C: pop {r1} bx r1 thumb_func_end sub_8055648 thumb_func_start sub_8055660 sub_8055660: @ 8055660 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _0805566E cmp r0, 0 bne _08055684 _0805566E: ldrb r0, [r4, 0xC] bl MetatileBehavior_IsSouthArrowWarp lsls r0, 24 cmp r0, 0 beq _08055684 ldrb r0, [r4, 0x3] cmp r0, 0x1 bne _08055684 movs r0, 0x1 b _08055686 _08055684: movs r0, 0 _08055686: pop {r4} pop {r1} bx r1 thumb_func_end sub_8055660 thumb_func_start sub_805568C sub_805568C: @ 805568C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldrb r0, [r4, 0x2] cmp r0, 0 beq _080556A0 cmp r0, 0x2 beq _080556A0 movs r0, 0 b _0805574E _080556A0: ldr r0, [r4, 0x4] ldr r1, [r4, 0x8] str r0, [sp] str r1, [sp, 0x4] ldr r3, _08055710 ldrb r0, [r4, 0x3] lsls r0, 3 adds r0, r3 ldr r0, [r0] mov r1, sp ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r0, 16 ldr r1, _08055714 ldr r2, [sp] ands r2, r1 orrs r2, r0 str r2, [sp] asrs r1, r2, 16 ldrb r0, [r4, 0x3] lsls r0, 3 adds r3, 0x4 adds r0, r3 ldr r0, [r0] adds r0, r1 lsls r0, 16 ldr r1, _08055718 ands r1, r2 orrs r1, r0 str r1, [sp] ldr r2, _0805571C ldr r0, [sp, 0x4] ands r0, r2 str r0, [sp, 0x4] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] asrs r1, 16 bl sub_8055B9C lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r1, 0x4 beq _08055744 ldrb r0, [r4, 0x1] cmp r0, 0 beq _0805570C ldr r0, _08055720 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x80 beq _08055728 _0805570C: ldr r0, _08055724 b _0805574E .align 2, 0 _08055710: .4byte gUnknown_0821664C _08055714: .4byte 0xffff0000 _08055718: .4byte 0x0000ffff _0805571C: .4byte 0xffffff00 _08055720: .4byte 0x03000580 _08055724: .4byte gUnknown_081A4495 _08055728: adds r0, r2, 0 bl sub_8083BF4 cmp r0, 0 bne _0805573C ldr r0, _08055738 b _0805574E .align 2, 0 _08055738: .4byte gUnknown_081A4479 _0805573C: ldr r0, _08055740 b _0805574E .align 2, 0 _08055740: .4byte gUnknown_081A4487 _08055744: ldrb r1, [r4, 0xC] ldrb r2, [r4, 0x3] mov r0, sp bl sub_80682A8 _0805574E: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_805568C thumb_func_start sub_8055758 sub_8055758: @ 8055758 push {lr} adds r1, r0, 0 ldr r0, _080557A4 cmp r1, r0 beq _0805579E ldr r0, _080557A8 cmp r1, r0 beq _080557E0 ldr r0, _080557AC cmp r1, r0 beq _0805579E ldr r0, _080557B0 cmp r1, r0 beq _080557E0 ldr r0, _080557B4 cmp r1, r0 beq _0805579E ldr r0, _080557B8 cmp r1, r0 beq _080557E0 ldr r0, _080557BC cmp r1, r0 beq _0805579E ldr r0, _080557C0 cmp r1, r0 beq _080557E0 ldr r0, _080557C4 cmp r1, r0 beq _0805579E ldr r0, _080557C8 cmp r1, r0 beq _080557E0 ldr r0, _080557CC cmp r1, r0 bne _080557D0 _0805579E: movs r0, 0xA b _080557E2 .align 2, 0 _080557A4: .4byte gUnknown_081A4383 _080557A8: .4byte gUnknown_081A439E _080557AC: .4byte gUnknown_081A43B9 _080557B0: .4byte gUnknown_081A43D4 _080557B4: .4byte gUnknown_081A4418 _080557B8: .4byte gUnknown_081A442D _080557BC: .4byte gUnknown_081A4442 _080557C0: .4byte gUnknown_081A4457 _080557C4: .4byte gUnknown_081A436F _080557C8: .4byte gUnknown_081A4379 _080557CC: .4byte gUnknown_081A43F0 _080557D0: ldr r0, _080557DC cmp r1, r0 beq _080557E0 movs r0, 0 b _080557E2 .align 2, 0 _080557DC: .4byte gUnknown_081A43FA _080557E0: movs r0, 0x9 _080557E2: pop {r1} bx r1 thumb_func_end sub_8055758 thumb_func_start sub_80557E8 sub_80557E8: @ 80557E8 push {lr} bl script_env_2_enable pop {r0} bx r0 thumb_func_end sub_80557E8 thumb_func_start sub_80557F4 sub_80557F4: @ 80557F4 push {lr} movs r0, 0x6 bl audio_play bl sub_8071310 bl script_env_2_enable pop {r0} bx r0 thumb_func_end sub_80557F4 thumb_func_start sub_8055808 sub_8055808: @ 8055808 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl script_env_1_execute_new_script bl script_env_2_enable pop {r4} pop {r0} bx r0 thumb_func_end sub_8055808 thumb_func_start sub_8055824 sub_8055824: @ 8055824 push {lr} movs r0, 0x6 bl audio_play ldr r0, _0805583C bl script_env_1_execute_new_script bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0805583C: .4byte gUnknown_081A44E5 thumb_func_end sub_8055824 thumb_func_start sub_8055840 sub_8055840: @ 8055840 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl script_env_1_execute_new_script bl script_env_2_enable pop {r4} pop {r0} bx r0 thumb_func_end sub_8055840 thumb_func_start sub_805585C sub_805585C: @ 805585C push {lr} ldr r0, _0805586C bl script_env_1_execute_new_script bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0805586C: .4byte gUnknown_081A44FE thumb_func_end sub_805585C thumb_func_start sub_8055870 sub_8055870: @ 8055870 push {lr} bl is_c1_link_related_active cmp r0, 0 bne _0805587E movs r0, 0 b _080558A4 _0805587E: ldr r0, _08055890 ldr r1, _08055894 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bls _0805589C ldr r1, _08055898 movs r0, 0x1 b _080558A0 .align 2, 0 _08055890: .4byte 0x03003070 _08055894: .4byte 0x00000fbd _08055898: .4byte 0x03000588 _0805589C: ldr r1, _080558A8 movs r0, 0 _080558A0: strb r0, [r1] ldrb r0, [r1] _080558A4: pop {r1} bx r1 .align 2, 0 _080558A8: .4byte 0x03000588 thumb_func_end sub_8055870 thumb_func_start sub_80558AC sub_80558AC: @ 80558AC push {lr} bl is_c1_link_related_active cmp r0, 0x1 bne _08055908 bl sub_8007B24 cmp r0, 0x1 bne _08055908 ldr r0, _080558F4 ldr r1, [r0] ldr r0, _080558F8 cmp r1, r0 beq _080558F0 ldr r0, _080558FC cmp r1, r0 bne _08055908 ldr r0, _08055900 ldrb r2, [r0] movs r1, 0 strb r1, [r0] cmp r2, 0x1 beq _080558F0 ldr r2, _08055904 ldrb r1, [r2, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08055908 ldrb r1, [r2, 0xA] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08055908 _080558F0: movs r0, 0x1 b _0805590A .align 2, 0 _080558F4: .4byte 0x03000584 _080558F8: .4byte sub_8055408 _080558FC: .4byte sub_80553E4 _08055900: .4byte 0x03000588 _08055904: .4byte 0x0202f388 _08055908: movs r0, 0 _0805590A: pop {r1} bx r1 thumb_func_end sub_80558AC thumb_func_start sub_8055910 sub_8055910: @ 8055910 push {lr} bl is_c1_link_related_active cmp r0, 0x1 bne _0805592C bl sub_8007B24 cmp r0, 0x1 bne _0805592C ldr r0, _08055930 ldr r1, [r0] ldr r0, _08055934 cmp r1, r0 beq _08055938 _0805592C: movs r0, 0 b _0805593A .align 2, 0 _08055930: .4byte 0x03000584 _08055934: .4byte sub_8055438 _08055938: movs r0, 0x1 _0805593A: pop {r1} bx r1 thumb_func_end sub_8055910 thumb_func_start sub_8055940 sub_8055940: @ 8055940 push {lr} bl sub_8007B24 cmp r0, 0 beq _0805594E movs r0, 0x1 b _08055950 _0805594E: movs r0, 0 _08055950: pop {r1} bx r1 thumb_func_end sub_8055940 thumb_func_start sub_8055954 sub_8055954: @ 8055954 movs r1, 0 str r1, [r0] bx lr thumb_func_end sub_8055954 thumb_func_start strange_npc_table_clear strange_npc_table_clear: @ 805595C push {lr} ldr r0, _0805596C movs r1, 0 movs r2, 0x10 bl memset pop {r0} bx r0 .align 2, 0 _0805596C: .4byte 0x02029818 thumb_func_end strange_npc_table_clear thumb_func_start sub_8055970 sub_8055970: @ 8055970 push {lr} movs r1, 0 movs r2, 0x24 bl memset pop {r0} bx r0 thumb_func_end sub_8055970 thumb_func_start sub_8055980 sub_8055980: @ 8055980 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r1 mov r10, r2 mov r8, r3 lsls r0, 24 lsrs r7, r0, 24 mov r0, r9 lsls r0, 16 lsrs r0, 16 mov r9, r0 mov r1, r10 lsls r1, 16 lsrs r1, 16 mov r10, r1 mov r2, r8 lsls r2, 24 lsrs r2, 24 mov r8, r2 bl sub_805AB54 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r4, r7, 2 ldr r0, _08055A24 adds r4, r0 lsls r5, r6, 3 adds r5, r6 lsls r5, 2 ldr r0, _08055A28 adds r5, r0 adds r0, r4, 0 bl sub_8055954 adds r0, r5, 0 bl sub_8055970 movs r2, 0 movs r1, 0x1 movs r0, 0x1 strb r0, [r4] strb r7, [r4, 0x1] strb r6, [r4, 0x2] strb r2, [r4, 0x3] ldrb r0, [r5] orrs r0, r1 mov r2, r8 ands r2, r1 lsls r2, 1 movs r1, 0x3 negs r1, r1 ands r0, r1 orrs r0, r2 strb r0, [r5] movs r0, 0x2 strb r0, [r5, 0x19] movs r0, 0x40 strb r0, [r5, 0x4] mov r0, r9 lsls r0, 16 asrs r0, 16 mov r9, r0 mov r1, r10 lsls r1, 16 asrs r1, 16 mov r10, r1 adds r0, r5, 0 mov r1, r9 mov r2, r10 bl sub_8055A2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08055A24: .4byte 0x02029818 _08055A28: .4byte 0x030048a0 thumb_func_end sub_8055980 thumb_func_start sub_8055A2C sub_8055A2C: @ 8055A2C push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 adds r1, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 strh r0, [r4, 0x10] strh r1, [r4, 0x12] strh r0, [r4, 0x14] strh r1, [r4, 0x16] lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0xC adds r3, r4, 0 adds r3, 0xE bl sub_80603CC ldrh r0, [r4, 0xC] adds r0, 0x8 strh r0, [r4, 0xC] adds r0, r4, 0 bl FieldObjectUpdateZCoord pop {r4} pop {r0} bx r0 thumb_func_end sub_8055A2C thumb_func_start unref_sub_8055A6C unref_sub_8055A6C: @ 8055A6C push {lr} lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 ldr r1, _08055A94 lsrs r0, 22 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0 beq _08055A8E ldrb r0, [r1, 0x2] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08055A98 adds r1, r0 strb r2, [r1, 0x19] _08055A8E: pop {r0} bx r0 .align 2, 0 _08055A94: .4byte 0x02029818 _08055A98: .4byte 0x030048a0 thumb_func_end unref_sub_8055A6C thumb_func_start unref_sub_8055A9C unref_sub_8055A9C: @ 8055A9C push {r4,r5,lr} lsls r0, 24 lsrs r0, 22 ldr r1, _08055ADC adds r5, r0, r1 ldrb r1, [r5, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055AE0 adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0x40 beq _08055AC8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08055AE4 adds r0, r1 bl DestroySprite _08055AC8: movs r0, 0 strb r0, [r5] ldrb r1, [r4] subs r0, 0x2 ands r0, r1 strb r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08055ADC: .4byte 0x02029818 _08055AE0: .4byte 0x030048a0 _08055AE4: .4byte 0x02020004 thumb_func_end unref_sub_8055A9C thumb_func_start sub_8055AE8 sub_8055AE8: @ 8055AE8 lsls r0, 24 ldr r1, _08055B00 lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055B04 adds r0, r1 ldrb r0, [r0, 0x4] bx lr .align 2, 0 _08055B00: .4byte 0x02029818 _08055B04: .4byte 0x030048a0 thumb_func_end sub_8055AE8 thumb_func_start sub_8055B08 sub_8055B08: @ 8055B08 lsls r0, 24 ldr r3, _08055B28 lsrs r0, 22 adds r0, r3 ldrb r3, [r0, 0x2] lsls r0, r3, 3 adds r0, r3 lsls r0, 2 ldr r3, _08055B2C adds r0, r3 ldrh r3, [r0, 0x10] strh r3, [r1] ldrh r0, [r0, 0x12] strh r0, [r2] bx lr .align 2, 0 _08055B28: .4byte 0x02029818 _08055B2C: .4byte 0x030048a0 thumb_func_end sub_8055B08 thumb_func_start sub_8055B30 sub_8055B30: @ 8055B30 lsls r0, 24 ldr r1, _08055B48 lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055B4C adds r0, r1 ldrb r0, [r0, 0x19] bx lr .align 2, 0 _08055B48: .4byte 0x02029818 _08055B4C: .4byte 0x030048a0 thumb_func_end sub_8055B30 thumb_func_start sub_8055B50 sub_8055B50: @ 8055B50 lsls r0, 24 ldr r1, _08055B6C lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055B70 adds r0, r1 ldrb r0, [r0, 0xB] lsls r0, 28 lsrs r0, 28 bx lr .align 2, 0 _08055B6C: .4byte 0x02029818 _08055B70: .4byte 0x030048a0 thumb_func_end sub_8055B50 thumb_func_start unref_sub_8055B74 unref_sub_8055B74: @ 8055B74 lsls r0, 24 ldr r1, _08055B94 lsrs r0, 22 adds r0, r1 ldrb r1, [r0, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055B98 adds r0, r1 adds r0, 0x21 movs r1, 0 ldrsb r1, [r0, r1] movs r0, 0x10 subs r0, r1 bx lr .align 2, 0 _08055B94: .4byte 0x02029818 _08055B98: .4byte 0x030048a0 thumb_func_end unref_sub_8055B74 thumb_func_start sub_8055B9C sub_8055B9C: @ 8055B9C push {r4-r6,lr} movs r2, 0 ldr r5, _08055BE0 lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r3, r1, 16 _08055BAA: lsls r0, r2, 2 adds r1, r0, r5 ldrb r0, [r1] cmp r0, 0 beq _08055BE8 ldrb r0, [r1, 0x3] cmp r0, 0 beq _08055BBE cmp r0, 0x2 bne _08055BE8 _08055BBE: ldrb r1, [r1, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055BE4 adds r1, r0, r1 movs r6, 0x10 ldrsh r0, [r1, r6] cmp r0, r4 bne _08055BE8 movs r6, 0x12 ldrsh r0, [r1, r6] cmp r0, r3 bne _08055BE8 adds r0, r2, 0 b _08055BF4 .align 2, 0 _08055BE0: .4byte 0x02029818 _08055BE4: .4byte 0x030048a0 _08055BE8: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _08055BAA movs r0, 0x4 _08055BF4: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8055B9C thumb_func_start sub_8055BFC sub_8055BFC: @ 8055BFC push {r4-r6,lr} lsls r0, 24 lsls r1, 24 lsrs r3, r1, 24 adds r2, r3, 0 lsrs r0, 22 ldr r1, _08055C2C adds r5, r0, r1 ldrb r1, [r5, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055C30 adds r6, r0, r1 ldrb r0, [r5] cmp r0, 0 beq _08055C58 cmp r3, 0xA bls _08055C34 ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] b _08055C58 .align 2, 0 _08055C2C: .4byte 0x02029818 _08055C30: .4byte 0x030048a0 _08055C34: ldr r4, _08055C60 ldr r1, _08055C64 ldrb r0, [r5, 0x3] lsls r0, 2 adds r0, r1 ldr r3, [r0] adds r0, r5, 0 adds r1, r6, 0 bl _call_via_r3 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r2, [r0] adds r0, r5, 0 adds r1, r6, 0 bl _call_via_r2 _08055C58: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08055C60: .4byte gUnknown_082166D8 _08055C64: .4byte gUnknown_082166A0 thumb_func_end sub_8055BFC thumb_func_start sub_8055C68 sub_8055C68: @ 8055C68 push {r4,lr} lsls r2, 24 lsrs r2, 24 ldr r4, _08055C84 lsls r3, r2, 2 adds r3, r4 ldr r3, [r3] bl _call_via_r3 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08055C84: .4byte gUnknown_082166AC thumb_func_end sub_8055C68 thumb_func_start sub_8055C88 sub_8055C88: @ 8055C88 movs r0, 0x1 bx lr thumb_func_end sub_8055C88 thumb_func_start sub_8055C8C sub_8055C8C: @ 8055C8C push {r4,lr} lsls r2, 24 lsrs r2, 24 ldr r4, _08055CA8 lsls r3, r2, 2 adds r3, r4 ldr r3, [r3] bl _call_via_r3 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08055CA8: .4byte gUnknown_082166AC thumb_func_end sub_8055C8C thumb_func_start sub_8055CAC sub_8055CAC: @ 8055CAC movs r0, 0 bx lr thumb_func_end sub_8055CAC thumb_func_start sub_8055CB0 sub_8055CB0: @ 8055CB0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 24 lsrs r0, 24 ldrb r1, [r5, 0x19] bl npc_something3 strb r0, [r5, 0x19] ldrb r1, [r5, 0x19] mov r6, sp adds r6, 0x2 adds r0, r5, 0 mov r2, sp adds r3, r6, 0 bl FieldObjectMoveDestCoords ldrb r0, [r4, 0x2] ldrb r1, [r5, 0x19] mov r2, sp movs r3, 0 ldrsh r2, [r2, r3] movs r4, 0 ldrsh r3, [r6, r4] bl npc_080587EC lsls r0, 24 cmp r0, 0 bne _08055D0E adds r1, r5, 0 adds r1, 0x21 movs r0, 0x10 strb r0, [r1] mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r3, 0 ldrsh r2, [r6, r3] adds r0, r5, 0 bl npc_coords_shift adds r0, r5, 0 bl FieldObjectUpdateZCoord movs r0, 0x1 b _08055D10 _08055D0E: movs r0, 0 _08055D10: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8055CB0 thumb_func_start sub_8055D18 sub_8055D18: @ 8055D18 push {r4,lr} adds r4, r1, 0 lsls r0, r2, 24 lsrs r0, 24 ldrb r1, [r4, 0x19] bl npc_something3 strb r0, [r4, 0x19] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8055D18 thumb_func_start sub_8055D30 sub_8055D30: @ 8055D30 movs r1, 0 strb r1, [r0, 0x3] bx lr thumb_func_end sub_8055D30 thumb_func_start sub_8055D38 sub_8055D38: @ 8055D38 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r4, 0 adds r5, 0x21 ldrb r0, [r5] subs r0, 0x1 strb r0, [r5] movs r0, 0x1 strb r0, [r6, 0x3] ldrb r0, [r4, 0x19] adds r1, 0xC adds r2, r4, 0 adds r2, 0xE bl MoveCoords ldrb r0, [r5] cmp r0, 0 bne _08055D68 adds r0, r4, 0 bl npc_coords_shift_still movs r0, 0x2 strb r0, [r6, 0x3] _08055D68: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8055D38 thumb_func_start npc_something3 npc_something3: @ 8055D70 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r2, r1, 24 subs r0, 0x1 cmp r0, 0x9 bhi _08055DC8 lsls r0, 2 ldr r1, _08055D8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08055D8C: .4byte _08055D90 .align 2, 0 _08055D90: .4byte _08055DB8 .4byte _08055DBC .4byte _08055DC0 .4byte _08055DC4 .4byte _08055DC8 .4byte _08055DC8 .4byte _08055DB8 .4byte _08055DBC .4byte _08055DC0 .4byte _08055DC4 _08055DB8: movs r0, 0x2 b _08055DCA _08055DBC: movs r0, 0x1 b _08055DCA _08055DC0: movs r0, 0x3 b _08055DCA _08055DC4: movs r0, 0x4 b _08055DCA _08055DC8: adds r0, r2, 0 _08055DCA: pop {r1} bx r1 thumb_func_end npc_something3 thumb_func_start npc_080587EC npc_080587EC: @ 8055DD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 16 lsrs r2, 16 mov r12, r2 lsls r3, 16 movs r4, 0 ldr r0, _08055E34 mov r9, r0 lsrs r2, r3, 16 mov r10, r2 asrs r6, r3, 16 _08055DF4: mov r7, r12 lsls r3, r7, 16 mov r0, r10 lsls r5, r0, 16 cmp r4, r8 beq _08055E38 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 mov r2, r9 adds r1, r0, r2 movs r7, 0x10 ldrsh r0, [r1, r7] asrs r2, r3, 16 cmp r0, r2 bne _08055E1C movs r7, 0x12 ldrsh r0, [r1, r7] cmp r0, r6 beq _08055E2E _08055E1C: movs r7, 0x14 ldrsh r0, [r1, r7] cmp r0, r2 bne _08055E38 movs r0, 0x16 ldrsh r1, [r1, r0] asrs r0, r5, 16 cmp r1, r0 bne _08055E38 _08055E2E: movs r0, 0x1 b _08055E4E .align 2, 0 _08055E34: .4byte 0x030048a0 _08055E38: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08055DF4 asrs r0, r3, 16 asrs r1, r5, 16 bl MapGridIsImpassableAt lsls r0, 24 lsrs r0, 24 _08055E4E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end npc_080587EC thumb_func_start sub_8055E5C sub_8055E5C: @ 8055E5C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r2, r5, 2 ldr r0, _08055EC8 adds r2, r0 ldrb r1, [r2, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055ECC adds r4, r0, r1 ldrb r0, [r2] cmp r0, 0 beq _08055EBE ldrb r1, [r4] lsls r1, 30 lsrs r1, 31 movs r0, 0 bl sub_805983C lsls r0, 24 lsrs r0, 24 ldr r1, _08055ED0 movs r2, 0 str r2, [sp] movs r3, 0 bl AddPseudoFieldObject strb r0, [r4, 0x4] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08055ED4 adds r0, r1 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x2 orrs r1, r2 strb r1, [r3] strh r5, [r0, 0x2E] ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4] _08055EBE: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08055EC8: .4byte 0x02029818 _08055ECC: .4byte 0x030048a0 _08055ED0: .4byte sub_8055ED8 _08055ED4: .4byte 0x02020004 thumb_func_end sub_8055E5C thumb_func_start sub_8055ED8 sub_8055ED8: @ 8055ED8 push {r4-r6,lr} adds r5, r0, 0 movs r0, 0x2E ldrsh r4, [r5, r0] lsls r4, 2 ldr r0, _08055F3C adds r4, r0 ldrb r1, [r4, 0x2] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08055F40 adds r6, r0, r1 ldrh r0, [r6, 0xC] strh r0, [r5, 0x20] ldrh r0, [r6, 0xE] strh r0, [r5, 0x22] ldrb r0, [r6, 0xB] lsrs r0, 4 adds r1, r5, 0 movs r2, 0x1 bl SetObjectSubpriorityByZCoord ldrb r0, [r6, 0xB] lsrs r0, 4 bl ZCoordToPriority movs r1, 0x3 ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] ldrb r0, [r4, 0x3] cmp r0, 0 bne _08055F44 ldrb r0, [r6, 0x19] bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim b _08055F56 .align 2, 0 _08055F3C: .4byte 0x02029818 _08055F40: .4byte 0x030048a0 _08055F44: ldrb r0, [r6, 0x19] bl get_go_image_anim_num adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnimIfDifferent _08055F56: adds r0, r5, 0 movs r1, 0 bl sub_806487C ldrb r0, [r6] lsls r0, 29 cmp r0, 0 bge _08055F88 ldrh r0, [r5, 0x3C] movs r1, 0x4 ands r1, r0 lsls r1, 16 adds r3, r5, 0 adds r3, 0x3E lsrs r1, 18 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] _08055F88: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8055ED8 thumb_func_start mapconnection_get_mapheader mapconnection_get_mapheader: @ 8055F90 push {lr} ldrb r2, [r0, 0x8] ldrb r1, [r0, 0x9] adds r0, r2, 0 bl get_mapheader_by_bank_and_number pop {r1} bx r1 thumb_func_end mapconnection_get_mapheader thumb_func_start not_trainer_hill_battle_pyramid not_trainer_hill_battle_pyramid: @ 8055FA0 push {r4,lr} ldr r4, _08055FBC adds r0, r4, 0 bl mapheader_copy_mapdata_with_padding ldr r0, [r4, 0x4] bl sub_80BB970 bl mapheader_run_script_with_tag_x1 pop {r4} pop {r0} bx r0 .align 2, 0 _08055FBC: .4byte 0x0202e828 thumb_func_end not_trainer_hill_battle_pyramid thumb_func_start sub_8055FC0 sub_8055FC0: @ 8055FC0 push {r4,lr} ldr r4, _08055FF0 adds r0, r4, 0 bl mapheader_copy_mapdata_with_padding movs r0, 0 bl sub_80BBCCC ldr r0, [r4, 0x4] bl sub_80BB970 bl sub_8056670 bl mapheader_run_script_with_tag_x1 ldr r1, _08055FF4 ldr r0, [r1] ldr r1, [r1, 0x4] bl UpdateTVScreensOnMap pop {r4} pop {r0} bx r0 .align 2, 0 _08055FF0: .4byte 0x0202e828 _08055FF4: .4byte 0x03004870 thumb_func_end sub_8055FC0 thumb_func_start mapheader_copy_mapdata_with_padding mapheader_copy_mapdata_with_padding: @ 8055FF8 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldr r5, [r6] ldr r0, _08056044 str r0, [sp] ldr r4, _08056048 ldr r2, _0805604C mov r0, sp adds r1, r4, 0 bl CpuFastSet ldr r2, _08056050 str r4, [r2, 0x8] ldr r1, [r5] adds r1, 0xF str r1, [r2] ldr r0, [r5, 0x4] adds r0, 0xE str r0, [r2, 0x4] muls r1, r0 movs r0, 0xA0 lsls r0, 6 cmp r1, r0 bgt _0805603A ldr r0, [r5, 0xC] ldrh r1, [r5] ldrh r2, [r5, 0x4] bl map_copy_with_padding adds r0, r6, 0 bl sub_80560AC _0805603A: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08056044: .4byte 0x03ff03ff _08056048: .4byte 0x02029828 _0805604C: .4byte 0x01001400 _08056050: .4byte 0x03004870 thumb_func_end mapheader_copy_mapdata_with_padding thumb_func_start map_copy_with_padding map_copy_with_padding: @ 8056054 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 16 lsrs r2, 16 ldr r0, _080560A8 ldr r4, [r0, 0x8] ldr r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, 0xE adds r4, r0 cmp r2, 0 beq _0805609C mov r0, r8 lsls r6, r0, 1 adds r5, r2, 0 movs r0, 0x1E adds r0, r6 mov r9, r0 _08056088: adds r0, r7, 0 adds r1, r4, 0 mov r2, r8 bl CpuSet add r4, r9 adds r7, r6 subs r5, 0x1 cmp r5, 0 bne _08056088 _0805609C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080560A8: .4byte 0x03004870 thumb_func_end map_copy_with_padding thumb_func_start sub_80560AC sub_80560AC: @ 80560AC push {r4-r7,lr} adds r6, r0, 0 ldr r0, [r6, 0xC] ldr r1, [r0] ldr r5, [r0, 0x4] ldr r2, _080560E0 ldr r0, _080560E4 ldr r0, [r0] str r0, [r2] cmp r1, 0 ble _0805612C adds r4, r2, 0 adds r7, r1, 0 _080560C6: adds r0, r5, 0 bl mapconnection_get_mapheader adds r1, r0, 0 ldr r2, [r5, 0x4] ldrb r0, [r5] cmp r0, 0x2 beq _080560FE cmp r0, 0x2 bgt _080560E8 cmp r0, 0x1 beq _080560F2 b _08056124 .align 2, 0 _080560E0: .4byte 0x0202e850 _080560E4: .4byte gUnknown_08308E28 _080560E8: cmp r0, 0x3 beq _0805610A cmp r0, 0x4 beq _08056116 b _08056124 _080560F2: adds r0, r6, 0 bl sub_8056198 ldrb r0, [r4] movs r1, 0x1 b _08056120 _080560FE: adds r0, r6, 0 bl sub_8056200 ldrb r0, [r4] movs r1, 0x2 b _08056120 _0805610A: adds r0, r6, 0 bl sub_8056260 ldrb r0, [r4] movs r1, 0x4 b _08056120 _08056116: adds r0, r6, 0 bl sub_80562C0 ldrb r0, [r4] movs r1, 0x8 _08056120: orrs r0, r1 strb r0, [r4] _08056124: subs r7, 0x1 adds r5, 0xC cmp r7, 0 bne _080560C6 _0805612C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80560AC thumb_func_start sub_8056134 sub_8056134: @ 8056134 push {r4-r7,lr} mov r7, r8 push {r7} ldr r5, [sp, 0x18] ldr r4, [r2] ldr r7, [r4] adds r2, r7, 0 muls r2, r5 adds r2, r3 lsls r2, 1 ldr r3, [r4, 0xC] adds r6, r3, r2 ldr r3, _08056190 ldr r2, [r3] muls r1, r2 adds r1, r0 lsls r1, 1 ldr r0, [r3, 0x8] adds r5, r0, r1 ldr r0, [sp, 0x20] cmp r0, 0 ble _08056186 adds r4, r0, 0 ldr r3, _08056194 mov r8, r3 _08056166: adds r0, r6, 0 adds r1, r5, 0 ldr r2, [sp, 0x1C] mov r3, r8 ands r2, r3 bl CpuSet ldr r0, _08056190 ldr r0, [r0] lsls r0, 1 adds r5, r0 lsls r0, r7, 1 adds r6, r0 subs r4, 0x1 cmp r4, 0 bne _08056166 _08056186: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08056190: .4byte 0x03004870 _08056194: .4byte 0x001fffff thumb_func_end sub_8056134 thumb_func_start sub_8056198 sub_8056198: @ 8056198 push {r4-r7,lr} sub sp, 0xC adds r3, r0, 0 adds r5, r1, 0 cmp r5, 0 beq _080561F2 ldr r0, [r5] ldr r4, [r0] adds r2, 0x7 ldr r0, [r3] ldr r0, [r0, 0x4] adds r7, r0, 0x7 cmp r2, 0 bge _080561CC negs r6, r2 adds r2, r4 ldr r0, _080561C8 ldr r3, [r0] cmp r2, r3 bge _080561C2 adds r3, r2, 0 _080561C2: movs r2, 0 b _080561DC .align 2, 0 _080561C8: .4byte 0x03004870 _080561CC: movs r6, 0 adds r0, r2, r4 ldr r1, _080561FC ldr r1, [r1] subs r3, r1, r2 cmp r0, r1 bge _080561DC adds r3, r4, 0 _080561DC: movs r0, 0 str r0, [sp] str r3, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] adds r0, r2, 0 adds r1, r7, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8056134 _080561F2: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080561FC: .4byte 0x03004870 thumb_func_end sub_8056198 thumb_func_start sub_8056200 sub_8056200: @ 8056200 push {r4-r7,lr} sub sp, 0xC adds r5, r1, 0 cmp r5, 0 beq _08056254 ldr r0, [r5] ldr r4, [r0] ldr r0, [r0, 0x4] adds r2, 0x7 subs r7, r0, 0x7 cmp r2, 0 bge _08056230 negs r6, r2 adds r2, r4 ldr r0, _0805622C ldr r3, [r0] cmp r2, r3 bge _08056226 adds r3, r2, 0 _08056226: movs r2, 0 b _08056240 .align 2, 0 _0805622C: .4byte 0x03004870 _08056230: movs r6, 0 adds r0, r2, r4 ldr r1, _0805625C ldr r1, [r1] subs r3, r1, r2 cmp r0, r1 bge _08056240 adds r3, r4, 0 _08056240: str r7, [sp] str r3, [sp, 0x4] movs r0, 0x7 str r0, [sp, 0x8] adds r0, r2, 0 movs r1, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8056134 _08056254: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805625C: .4byte 0x03004870 thumb_func_end sub_8056200 thumb_func_start sub_8056260 sub_8056260: @ 8056260 push {r4-r7,lr} sub sp, 0xC adds r5, r1, 0 cmp r5, 0 beq _080562B4 ldr r0, [r5] ldr r1, [r0] ldr r4, [r0, 0x4] adds r2, 0x7 subs r7, r1, 0x7 cmp r2, 0 bge _08056290 negs r6, r2 adds r1, r2, r4 ldr r0, _0805628C ldr r3, [r0, 0x4] cmp r1, r3 bge _08056286 adds r3, r1, 0 _08056286: movs r2, 0 b _080562A0 .align 2, 0 _0805628C: .4byte 0x03004870 _08056290: movs r6, 0 adds r0, r2, r4 ldr r1, _080562BC ldr r1, [r1, 0x4] subs r3, r1, r2 cmp r0, r1 bge _080562A0 adds r3, r4, 0 _080562A0: str r6, [sp] movs r0, 0x7 str r0, [sp, 0x4] str r3, [sp, 0x8] movs r0, 0 adds r1, r2, 0 adds r2, r5, 0 adds r3, r7, 0 bl sub_8056134 _080562B4: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080562BC: .4byte 0x03004870 thumb_func_end sub_8056260 thumb_func_start sub_80562C0 sub_80562C0: @ 80562C0 push {r4-r7,lr} sub sp, 0xC adds r3, r0, 0 adds r5, r1, 0 cmp r5, 0 beq _08056318 ldr r0, [r5] ldr r4, [r0, 0x4] ldr r0, [r3] ldr r0, [r0] adds r7, r0, 0x7 adds r2, 0x7 cmp r2, 0 bge _080562F4 negs r6, r2 adds r1, r2, r4 ldr r0, _080562F0 ldr r3, [r0, 0x4] cmp r1, r3 bge _080562EA adds r3, r1, 0 _080562EA: movs r2, 0 b _08056304 .align 2, 0 _080562F0: .4byte 0x03004870 _080562F4: movs r6, 0 adds r0, r2, r4 ldr r1, _08056320 ldr r1, [r1, 0x4] subs r3, r1, r2 cmp r0, r1 bge _08056304 adds r3, r4, 0 _08056304: str r6, [sp] movs r0, 0x8 str r0, [sp, 0x4] str r3, [sp, 0x8] adds r0, r7, 0 adds r1, r2, 0 adds r2, r5, 0 movs r3, 0 bl sub_8056134 _08056318: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08056320: .4byte 0x03004870 thumb_func_end sub_80562C0 thumb_func_start MapGridGetZCoordAt MapGridGetZCoordAt: @ 8056324 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 cmp r2, 0 blt _08056354 ldr r1, _08056350 ldr r3, [r1] cmp r2, r3 bge _08056354 cmp r4, 0 blt _08056354 ldr r0, [r1, 0x4] cmp r4, r0 bge _08056354 adds r0, r3, 0 muls r0, r4 adds r0, r2, r0 ldr r1, [r1, 0x8] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _08056376 .align 2, 0 _08056350: .4byte 0x03004870 _08056354: ldr r0, _08056380 ldr r3, [r0] adds r1, r2, 0x1 movs r2, 0x1 ands r1, r2 adds r0, r4, 0x1 ands r0, r2 lsls r0, 1 adds r1, r0 ldr r0, [r3, 0x8] lsls r1, 1 adds r1, r0 ldrh r1, [r1] movs r2, 0xC0 lsls r2, 4 adds r0, r2, 0 orrs r1, r0 _08056376: ldr r0, _08056384 cmp r1, r0 beq _08056388 lsrs r0, r1, 12 b _0805638A .align 2, 0 _08056380: .4byte 0x0202e828 _08056384: .4byte 0x000003ff _08056388: movs r0, 0 _0805638A: pop {r4} pop {r1} bx r1 thumb_func_end MapGridGetZCoordAt thumb_func_start MapGridIsImpassableAt MapGridIsImpassableAt: @ 8056390 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 cmp r2, 0 blt _080563C0 ldr r1, _080563BC ldr r3, [r1] cmp r2, r3 bge _080563C0 cmp r4, 0 blt _080563C0 ldr r0, [r1, 0x4] cmp r4, r0 bge _080563C0 adds r0, r3, 0 muls r0, r4 adds r0, r2, r0 ldr r1, [r1, 0x8] lsls r0, 1 adds r0, r1 ldrh r1, [r0] b _080563E2 .align 2, 0 _080563BC: .4byte 0x03004870 _080563C0: ldr r0, _080563F4 ldr r3, [r0] adds r1, r2, 0x1 movs r2, 0x1 ands r1, r2 adds r0, r4, 0x1 ands r0, r2 lsls r0, 1 adds r1, r0 ldr r0, [r3, 0x8] lsls r1, 1 adds r1, r0 ldrh r1, [r1] movs r2, 0xC0 lsls r2, 4 adds r0, r2, 0 orrs r1, r0 _080563E2: ldr r0, _080563F8 cmp r1, r0 beq _080563FC movs r0, 0xC0 lsls r0, 4 ands r1, r0 lsrs r0, r1, 10 b _080563FE .align 2, 0 _080563F4: .4byte 0x0202e828 _080563F8: .4byte 0x000003ff _080563FC: movs r0, 0x1 _080563FE: pop {r4} pop {r1} bx r1 thumb_func_end MapGridIsImpassableAt thumb_func_start MapGridGetMetatileIdAt MapGridGetMetatileIdAt: @ 8056404 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 cmp r5, 0 blt _08056434 ldr r1, _08056430 ldr r2, [r1] cmp r5, r2 bge _08056434 cmp r6, 0 blt _08056434 ldr r0, [r1, 0x4] cmp r6, r0 bge _08056434 adds r0, r2, 0 muls r0, r6 adds r0, r5, r0 ldr r1, [r1, 0x8] lsls r0, 1 adds r0, r1 ldrh r4, [r0] b _08056458 .align 2, 0 _08056430: .4byte 0x03004870 _08056434: ldr r0, _08056464 ldr r3, [r0] adds r1, r5, 0x1 movs r2, 0x1 ands r1, r2 adds r0, r6, 0x1 ands r0, r2 lsls r0, 1 adds r1, r0 ldr r0, [r3, 0x8] lsls r1, 1 adds r1, r0 ldrh r1, [r1] movs r2, 0xC0 lsls r2, 4 adds r0, r2, 0 adds r4, r0, 0 orrs r4, r1 _08056458: ldr r0, _08056468 cmp r4, r0 beq _0805646C ands r4, r0 adds r0, r4, 0 b _08056490 .align 2, 0 _08056464: .4byte 0x0202e828 _08056468: .4byte 0x000003ff _0805646C: ldr r0, _08056498 ldr r3, [r0] adds r1, r5, 0x1 movs r2, 0x1 ands r1, r2 adds r0, r6, 0x1 ands r0, r2 lsls r0, 1 adds r1, r0 ldr r0, [r3, 0x8] lsls r1, 1 adds r1, r0 ldrh r0, [r1] movs r2, 0xC0 lsls r2, 4 adds r1, r2, 0 orrs r0, r1 ands r0, r4 _08056490: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08056498: .4byte 0x0202e828 thumb_func_end MapGridGetMetatileIdAt thumb_func_start MapGridGetMetatileBehaviorAt MapGridGetMetatileBehaviorAt: @ 805649C push {lr} bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId adds r1, r0, 0 movs r0, 0xFF ands r0, r1 pop {r1} bx r1 thumb_func_end MapGridGetMetatileBehaviorAt thumb_func_start MapGridGetMetatileLayerTypeAt MapGridGetMetatileLayerTypeAt: @ 80564B4 push {lr} bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r0, 16 bl GetBehaviorByMetatileId adds r1, r0, 0 movs r0, 0xF0 lsls r0, 8 ands r0, r1 lsrs r0, 12 pop {r1} bx r1 thumb_func_end MapGridGetMetatileLayerTypeAt thumb_func_start MapGridSetMetatileIdAt MapGridSetMetatileIdAt: @ 80564D0 push {r4,r5,lr} adds r3, r0, 0 lsls r2, 16 lsrs r5, r2, 16 cmp r3, 0 blt _08056508 ldr r2, _08056510 ldr r4, [r2] cmp r3, r4 bge _08056508 cmp r1, 0 blt _08056508 ldr r0, [r2, 0x4] cmp r1, r0 bge _08056508 muls r1, r4 adds r1, r3, r1 ldr r0, [r2, 0x8] lsls r1, 1 adds r1, r0 ldrh r0, [r1] movs r2, 0xF0 lsls r2, 8 ands r2, r0 ldr r0, _08056514 ands r0, r5 orrs r2, r0 strh r2, [r1] _08056508: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08056510: .4byte 0x03004870 _08056514: .4byte 0x00000fff thumb_func_end MapGridSetMetatileIdAt thumb_func_start MapGridSetMetatileEntryAt MapGridSetMetatileEntryAt: @ 8056518 push {r4,r5,lr} adds r3, r0, 0 lsls r2, 16 lsrs r5, r2, 16 cmp r3, 0 blt _08056544 ldr r2, _0805654C ldr r4, [r2] cmp r3, r4 bge _08056544 cmp r1, 0 blt _08056544 ldr r0, [r2, 0x4] cmp r1, r0 bge _08056544 adds r0, r4, 0 muls r0, r1 adds r0, r3, r0 ldr r1, [r2, 0x8] lsls r0, 1 adds r0, r1 strh r5, [r0] _08056544: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805654C: .4byte 0x03004870 thumb_func_end MapGridSetMetatileEntryAt thumb_func_start GetBehaviorByMetatileId GetBehaviorByMetatileId: @ 8056550 push {lr} lsls r0, 16 lsrs r2, r0, 16 adds r3, r2, 0 ldr r0, _0805656C cmp r2, r0 bhi _08056574 ldr r0, _08056570 ldr r0, [r0] ldr r0, [r0, 0x10] ldr r1, [r0, 0x10] lsls r0, r2, 1 b _08056592 .align 2, 0 _0805656C: .4byte 0x000001ff _08056570: .4byte 0x0202e828 _08056574: ldr r0, _08056580 cmp r2, r0 bls _08056584 movs r0, 0xFF b _08056596 .align 2, 0 _08056580: .4byte 0x000003ff _08056584: ldr r0, _0805659C ldr r0, [r0] ldr r0, [r0, 0x14] ldr r1, [r0, 0x10] lsls r0, r3, 1 adds r0, r1 ldr r1, _080565A0 _08056592: adds r0, r1 ldrh r0, [r0] _08056596: pop {r1} bx r1 .align 2, 0 _0805659C: .4byte 0x0202e828 _080565A0: .4byte 0xfffffc00 thumb_func_end GetBehaviorByMetatileId thumb_func_start save_serialize_map save_serialize_map: @ 80565A4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, _0805660C ldr r0, _08056610 ldr r0, [r0] mov r8, r0 adds r0, r5, 0 subs r0, 0x34 movs r1, 0 ldrsh r6, [r0, r1] movs r2, 0x2 ldrsh r0, [r0, r2] adds r1, r0, 0 adds r1, 0xE cmp r0, r1 bge _080565FE mov r12, r1 ldr r1, _08056614 mov r9, r1 lsls r7, r6, 1 _080565D0: adds r1, r6, 0 adds r3, r1, 0 adds r3, 0xF adds r4, r0, 0x1 cmp r1, r3 bge _080565F8 mov r2, r8 muls r2, r0 adds r0, r2, 0 lsls r0, 1 add r0, r9 adds r2, r7, r0 subs r1, r3, r1 _080565EA: ldrh r0, [r2] strh r0, [r5] adds r5, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bne _080565EA _080565F8: adds r0, r4, 0 cmp r0, r12 blt _080565D0 _080565FE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805660C: .4byte 0x02025768 _08056610: .4byte 0x03004870 _08056614: .4byte 0x02029828 thumb_func_end save_serialize_map thumb_func_start sub_8056618 sub_8056618: @ 8056618 push {r4,lr} movs r2, 0 movs r1, 0 ldr r4, _0805663C ldr r3, _08056640 _08056622: lsls r0, r1, 1 adds r0, r4 ldrh r0, [r0] orrs r2, r0 adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08056622 cmp r2, 0 beq _08056644 movs r0, 0 b _08056646 .align 2, 0 _0805663C: .4byte 0x02025768 _08056640: .4byte 0x000001ff _08056644: movs r0, 0x1 _08056646: pop {r4} pop {r1} bx r1 thumb_func_end sub_8056618 thumb_func_start sav2_mapdata_clear sav2_mapdata_clear: @ 805664C push {lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _08056668 ldr r2, _0805666C mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08056668: .4byte 0x02025768 _0805666C: .4byte 0x01000100 thumb_func_end sav2_mapdata_clear thumb_func_start sub_8056670 sub_8056670: @ 8056670 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, _080566E4 bl sub_8056618 cmp r0, 0 bne _080566D6 ldr r0, _080566E8 ldr r0, [r0] mov r8, r0 adds r0, r5, 0 subs r0, 0x34 movs r1, 0 ldrsh r6, [r0, r1] movs r2, 0x2 ldrsh r0, [r0, r2] adds r1, r0, 0 adds r1, 0xE cmp r0, r1 bge _080566D2 mov r12, r1 ldr r1, _080566EC mov r9, r1 lsls r7, r6, 1 _080566A4: adds r1, r6, 0 adds r3, r1, 0 adds r3, 0xF adds r4, r0, 0x1 cmp r1, r3 bge _080566CC mov r2, r8 muls r2, r0 adds r0, r2, 0 lsls r0, 1 add r0, r9 adds r2, r7, r0 subs r1, r3, r1 _080566BE: ldrh r0, [r5] strh r0, [r2] adds r5, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bne _080566BE _080566CC: adds r0, r4, 0 cmp r0, r12 blt _080566A4 _080566D2: bl sav2_mapdata_clear _080566D6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080566E4: .4byte 0x02025768 _080566E8: .4byte 0x03004870 _080566EC: .4byte 0x02029828 thumb_func_end sub_8056670 thumb_func_start sub_80566F0 sub_80566F0: @ 80566F0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 ldr r0, _08056734 mov r10, r0 ldr r0, _08056738 ldr r0, [r0] str r0, [sp] movs r3, 0 mov r9, r3 mov r8, r3 mov r0, r10 subs r0, 0x34 movs r6, 0 ldrsh r4, [r0, r6] str r4, [sp, 0x4] movs r3, 0x2 ldrsh r5, [r0, r3] movs r7, 0xF movs r4, 0xE mov r12, r4 cmp r1, 0x2 beq _08056746 cmp r1, 0x2 bgt _0805673C cmp r1, 0x1 beq _0805674E b _08056766 .align 2, 0 _08056734: .4byte 0x02025768 _08056738: .4byte 0x03004870 _0805673C: cmp r2, 0x3 beq _08056758 cmp r2, 0x4 beq _08056760 b _08056766 _08056746: adds r5, 0x1 movs r6, 0xD mov r12, r6 b _08056766 _0805674E: movs r0, 0x1 mov r8, r0 movs r1, 0xD mov r12, r1 b _08056766 _08056758: ldr r3, [sp, 0x4] adds r3, 0x1 str r3, [sp, 0x4] b _08056764 _08056760: movs r4, 0x1 mov r9, r4 _08056764: movs r7, 0xE _08056766: movs r1, 0 cmp r1, r12 bge _080567A8 _0805676C: adds r4, r1, 0x1 cmp r7, 0 beq _080567A2 adds r0, r1, r5 ldr r6, [sp] adds r2, r6, 0 muls r2, r0 add r1, r8 lsls r0, r1, 4 subs r0, r1 add r0, r9 ldr r1, [sp, 0x4] adds r2, r1, r2 adds r3, r7, 0 lsls r2, 1 ldr r6, _080567BC adds r2, r6 lsls r0, 1 mov r6, r10 adds r1, r0, r6 _08056794: ldrh r0, [r1] strh r0, [r2] adds r1, 0x2 adds r2, 0x2 subs r3, 0x1 cmp r3, 0 bne _08056794 _080567A2: adds r1, r4, 0 cmp r1, r12 blt _0805676C _080567A8: bl sav2_mapdata_clear add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080567BC: .4byte 0x02029828 thumb_func_end sub_80566F0 thumb_func_start GetMapBorderIdAt GetMapBorderIdAt: @ 80567C0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 cmp r4, 0 blt _080567FC ldr r1, _080567F4 ldr r2, [r1] cmp r4, r2 bge _080567FC cmp r5, 0 blt _080567FC ldr r0, [r1, 0x4] cmp r5, r0 bge _080567FC adds r0, r2, 0 muls r0, r5 adds r0, r4, r0 ldr r1, [r1, 0x8] lsls r0, 1 adds r0, r1 ldrh r1, [r0] ldr r0, _080567F8 cmp r1, r0 beq _08056894 b _08056824 .align 2, 0 _080567F4: .4byte 0x03004870 _080567F8: .4byte 0x000003ff _080567FC: ldr r0, _08056840 ldr r3, [r0] adds r1, r4, 0x1 movs r2, 0x1 ands r1, r2 adds r0, r5, 0x1 ands r0, r2 lsls r0, 1 adds r1, r0 ldr r0, [r3, 0x8] lsls r1, 1 adds r1, r0 ldrh r1, [r1] movs r2, 0xC0 lsls r2, 4 adds r0, r2, 0 orrs r0, r1 ldr r1, _08056844 cmp r0, r1 beq _08056894 _08056824: ldr r1, _08056848 ldr r0, [r1] subs r0, 0x8 cmp r4, r0 blt _08056850 ldr r0, _0805684C ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08056894 movs r0, 0x4 b _080568A6 .align 2, 0 _08056840: .4byte 0x0202e828 _08056844: .4byte 0x000003ff _08056848: .4byte 0x03004870 _0805684C: .4byte 0x0202e850 _08056850: cmp r4, 0x6 bgt _08056868 ldr r0, _08056864 ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08056894 movs r0, 0x3 b _080568A6 .align 2, 0 _08056864: .4byte 0x0202e850 _08056868: ldr r0, [r1, 0x4] subs r0, 0x7 cmp r5, r0 blt _08056884 ldr r0, _08056880 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08056894 movs r0, 0x1 b _080568A6 .align 2, 0 _08056880: .4byte 0x0202e850 _08056884: cmp r5, 0x6 bgt _080568A4 ldr r0, _0805689C ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080568A0 _08056894: movs r0, 0x1 negs r0, r0 b _080568A6 .align 2, 0 _0805689C: .4byte 0x0202e850 _080568A0: movs r0, 0x2 b _080568A6 _080568A4: movs r0, 0 _080568A6: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetMapBorderIdAt thumb_func_start GetPostCameraMoveMapBorderId GetPostCameraMoveMapBorderId: @ 80568AC push {r4,lr} adds r3, r1, 0 ldr r1, _080568D0 movs r4, 0 ldrsh r2, [r1, r4] adds r0, 0x7 adds r2, r0 movs r0, 0x2 ldrsh r1, [r1, r0] adds r3, 0x7 adds r1, r3 adds r0, r2, 0 bl GetMapBorderIdAt pop {r4} pop {r1} bx r1 .align 2, 0 _080568D0: .4byte 0x02025734 thumb_func_end GetPostCameraMoveMapBorderId thumb_func_start CanCameraMoveInDirection CanCameraMoveInDirection: @ 80568D4 push {r4,r5,lr} ldr r4, _08056908 movs r1, 0 ldrsh r3, [r4, r1] ldr r2, _0805690C lsls r0, 3 adds r1, r0, r2 ldr r1, [r1] adds r1, 0x7 adds r3, r1 movs r5, 0x2 ldrsh r1, [r4, r5] adds r2, 0x4 adds r0, r2 ldr r0, [r0] adds r0, 0x7 adds r1, r0 adds r0, r3, 0 bl GetMapBorderIdAt movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _08056910 movs r0, 0x1 b _08056912 .align 2, 0 _08056908: .4byte 0x02025734 _0805690C: .4byte gUnknown_0821664C _08056910: movs r0, 0 _08056912: pop {r4,r5} pop {r1} bx r1 thumb_func_end CanCameraMoveInDirection thumb_func_start sub_8056918 sub_8056918: @ 8056918 push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r7, r3, 0 bl mapconnection_get_mapheader adds r3, r0, 0 cmp r4, 0x2 beq _08056978 cmp r4, 0x2 bgt _08056936 cmp r4, 0x1 beq _08056964 b _08056988 _08056936: cmp r4, 0x3 beq _08056950 cmp r4, 0x4 bne _08056988 ldr r1, _0805694C negs r0, r6 strh r0, [r1] ldr r2, [r5, 0x4] ldrh r0, [r1, 0x2] subs r0, r2 b _08056986 .align 2, 0 _0805694C: .4byte 0x02025734 _08056950: ldr r1, _08056960 ldr r0, [r3] ldr r0, [r0] strh r0, [r1] ldr r2, [r5, 0x4] ldrh r0, [r1, 0x2] subs r0, r2 b _08056986 .align 2, 0 _08056960: .4byte 0x02025734 _08056964: ldr r1, _08056974 ldr r2, [r5, 0x4] ldrh r0, [r1] subs r0, r2 strh r0, [r1] negs r0, r7 b _08056986 .align 2, 0 _08056974: .4byte 0x02025734 _08056978: ldr r1, _08056990 ldr r2, [r5, 0x4] ldrh r0, [r1] subs r0, r2 strh r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x4] _08056986: strh r0, [r1, 0x2] _08056988: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08056990: .4byte 0x02025734 thumb_func_end sub_8056918 thumb_func_start CameraMove CameraMove: @ 8056994 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 str r1, [sp] ldr r1, _080569D4 ldrb r0, [r1] movs r1, 0x2 negs r1, r1 ands r1, r0 ldr r2, _080569D4 strb r1, [r2] mov r0, r10 ldr r1, [sp] bl GetPostCameraMoveMapBorderId adds r7, r0, 0 adds r0, r7, 0x1 cmp r0, 0x1 bhi _080569DC ldr r0, _080569D8 ldrh r1, [r0] add r1, r10 strh r1, [r0] ldrh r1, [r0, 0x2] ldr r2, [sp] adds r1, r2 strh r1, [r0, 0x2] b _08056A42 .align 2, 0 _080569D4: .4byte 0x0202e844 _080569D8: .4byte 0x02025734 _080569DC: bl save_serialize_map ldr r5, _08056A5C movs r0, 0 ldrsh r6, [r5, r0] movs r2, 0x2 ldrsh r1, [r5, r2] mov r8, r1 lsls r0, r7, 24 lsrs r0, 24 mov r9, r0 adds r1, r6, 0 mov r2, r8 bl sub_8056A64 adds r4, r0, 0 adds r1, r7, 0 mov r2, r10 ldr r3, [sp] bl sub_8056918 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] bl sub_80538F0 ldr r1, _08056A60 ldrb r0, [r1] movs r1, 0x1 orrs r0, r1 ldr r2, _08056A60 strb r0, [r2] movs r1, 0 ldrsh r0, [r5, r1] subs r6, r0 str r6, [r2, 0x4] movs r2, 0x2 ldrsh r0, [r5, r2] mov r1, r8 subs r1, r0 ldr r2, _08056A60 str r1, [r2, 0x8] ldrh r0, [r5] add r0, r10 strh r0, [r5] ldrh r0, [r5, 0x2] ldr r1, [sp] adds r0, r1 strh r0, [r5, 0x2] mov r0, r9 bl sub_80566F0 _08056A42: ldr r0, _08056A60 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08056A5C: .4byte 0x02025734 _08056A60: .4byte 0x0202e844 thumb_func_end CameraMove thumb_func_start sub_8056A64 sub_8056A64: @ 8056A64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 mov r8, r2 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _08056AA0 ldr r0, [r0, 0xC] ldr r7, [r0] ldr r4, [r0, 0x4] movs r5, 0 cmp r5, r7 bge _08056AAC _08056A82: ldrb r0, [r4] cmp r0, r6 bne _08056AA4 adds r0, r6, 0 mov r1, r9 mov r2, r8 adds r3, r4, 0 bl sub_8056ABC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08056AA4 adds r0, r4, 0 b _08056AAE .align 2, 0 _08056AA0: .4byte 0x0202e828 _08056AA4: adds r5, 0x1 adds r4, 0xC cmp r5, r7 blt _08056A82 _08056AAC: movs r0, 0 _08056AAE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056A64 thumb_func_start sub_8056ABC sub_8056ABC: @ 8056ABC push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r1, 0 mov r8, r2 adds r5, r3, 0 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 adds r0, r5, 0 bl mapconnection_get_mapheader adds r2, r0, 0 cmp r4, 0x1 blt _08056B14 cmp r4, 0x2 bgt _08056AF4 ldr r0, _08056AF0 ldr r0, [r0] ldr r1, [r0] ldr r0, [r2] ldr r2, [r0] ldr r3, [r5, 0x4] adds r0, r7, 0 b _08056B06 .align 2, 0 _08056AF0: .4byte 0x0202e828 _08056AF4: cmp r6, 0x4 bgt _08056B14 ldr r0, _08056B10 ldr r0, [r0] ldr r1, [r0, 0x4] ldr r0, [r2] ldr r2, [r0, 0x4] ldr r3, [r5, 0x4] mov r0, r8 _08056B06: bl sub_8056B20 lsls r0, 24 lsrs r0, 24 b _08056B16 .align 2, 0 _08056B10: .4byte 0x0202e828 _08056B14: movs r0, 0 _08056B16: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056ABC thumb_func_start sub_8056B20 sub_8056B20: @ 8056B20 push {r4,lr} adds r4, r0, 0 adds r0, r2, 0 adds r2, r3, 0 cmp r3, 0 bge _08056B2E movs r3, 0 _08056B2E: adds r2, r0, r2 cmp r2, r1 bge _08056B36 adds r1, r2, 0 _08056B36: cmp r3, r4 bgt _08056B42 cmp r4, r1 bgt _08056B42 movs r0, 0x1 b _08056B44 _08056B42: movs r0, 0 _08056B44: pop {r4} pop {r1} bx r1 thumb_func_end sub_8056B20 thumb_func_start sub_8056B4C sub_8056B4C: @ 8056B4C push {lr} cmp r0, 0 blt _08056B5A cmp r0, r1 bge _08056B5A movs r0, 0x1 b _08056B5C _08056B5A: movs r0, 0 _08056B5C: pop {r1} bx r1 thumb_func_end sub_8056B4C thumb_func_start sub_8056B60 sub_8056B60: @ 8056B60 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl mapconnection_get_mapheader adds r1, r0, 0 ldrb r0, [r4] cmp r0, 0x1 blt _08056B98 cmp r0, 0x2 bgt _08056B86 ldr r0, [r4, 0x4] subs r0, r5, r0 ldr r1, [r1] ldr r1, [r1] bl sub_8056B4C b _08056B9A _08056B86: cmp r0, 0x4 bgt _08056B98 ldr r0, [r4, 0x4] subs r0, r6, r0 ldr r1, [r1] ldr r1, [r1, 0x4] bl sub_8056B4C b _08056B9A _08056B98: movs r0, 0 _08056B9A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8056B60 thumb_func_start sub_8056BA0 sub_8056BA0: @ 8056BA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r1, 16 ldr r2, _08056BC0 ldr r0, [r2, 0xC] cmp r0, 0 bne _08056BC8 b _08056C3E .align 2, 0 _08056BC0: .4byte 0x0202e828 _08056BC4: adds r0, r4, 0 b _08056C40 _08056BC8: ldr r7, [r0] ldr r4, [r0, 0x4] movs r6, 0 cmp r6, r7 bge _08056C3E lsls r0, r1, 16 asrs r5, r0, 16 mov r9, r2 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r10, r0 _08056BE0: ldrb r1, [r4] adds r3, r1, 0 subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _08056C36 cmp r1, 0x2 bne _08056BF6 cmp r5, 0x6 bgt _08056C36 _08056BF6: cmp r1, 0x1 bne _08056C06 mov r2, r9 ldr r0, [r2] ldr r0, [r0, 0x4] adds r0, 0x7 cmp r5, r0 blt _08056C36 _08056C06: mov r0, r8 lsls r2, r0, 16 cmp r1, 0x3 bne _08056C14 mov r1, r10 cmp r1, 0x6 bgt _08056C36 _08056C14: cmp r3, 0x4 bne _08056C26 asrs r1, r2, 16 mov r3, r9 ldr r0, [r3] ldr r0, [r0] adds r0, 0x7 cmp r1, r0 blt _08056C36 _08056C26: asrs r1, r2, 16 subs r1, 0x7 adds r0, r4, 0 subs r2, r5, 0x7 bl sub_8056B60 cmp r0, 0x1 beq _08056BC4 _08056C36: adds r6, 0x1 adds r4, 0xC cmp r6, r7 blt _08056BE0 _08056C3E: movs r0, 0 _08056C40: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8056BA0 thumb_func_start sub_8056C50 sub_8056C50: @ 8056C50 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 ldr r2, _08056C64 subs r0, 0x7 strh r0, [r2] subs r1, 0x7 strh r1, [r2, 0x2] bx lr .align 2, 0 _08056C64: .4byte 0x02025734 thumb_func_end sub_8056C50 thumb_func_start sav1_camera_get_focus_coords sav1_camera_get_focus_coords: @ 8056C68 ldr r3, _08056C78 ldrh r2, [r3] adds r2, 0x7 strh r2, [r0] ldrh r0, [r3, 0x2] adds r0, 0x7 strh r0, [r1] bx lr .align 2, 0 _08056C78: .4byte 0x02025734 thumb_func_end sav1_camera_get_focus_coords thumb_func_start unref_sub_8056C7C unref_sub_8056C7C: @ 8056C7C ldr r2, _08056C84 strh r0, [r2] strh r1, [r2, 0x2] bx lr .align 2, 0 _08056C84: .4byte 0x02025734 thumb_func_end unref_sub_8056C7C thumb_func_start GetCameraCoords GetCameraCoords: @ 8056C88 ldr r3, _08056C94 ldrh r2, [r3] strh r2, [r0] ldrh r0, [r3, 0x2] strh r0, [r1] bx lr .align 2, 0 _08056C94: .4byte 0x02025734 thumb_func_end GetCameraCoords thumb_func_start sub_8056C98 sub_8056C98: @ 8056C98 push {lr} adds r2, r0, 0 cmp r2, 0 beq _08056CB8 ldrb r0, [r2] cmp r0, 0 bne _08056CB2 ldr r0, [r2, 0x4] movs r2, 0x80 lsls r2, 5 bl CpuFastSet b _08056CB8 _08056CB2: ldr r0, [r2, 0x4] bl LZ77UnCompVram _08056CB8: pop {r0} bx r0 thumb_func_end sub_8056C98 thumb_func_start sub_8056CBC sub_8056CBC: @ 8056CBC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 cmp r4, 0 beq _08056D1E ldrb r1, [r4, 0x1] cmp r1, 0 bne _08056CEE mov r0, sp strh r1, [r0] lsls r1, r5, 16 lsrs r1, 16 movs r2, 0x2 bl LoadPalette ldr r0, [r4, 0x8] adds r0, 0x2 adds r1, r5, 0x1 lsls r1, 16 lsrs r1, 16 subs r2, r6, 0x2 lsls r2, 16 b _08056CFC _08056CEE: cmp r1, 0x1 bne _08056D04 ldr r0, [r4, 0x8] adds r0, 0xC0 lsls r1, r5, 16 lsrs r1, 16 lsls r2, r6, 16 _08056CFC: lsrs r2, 16 bl LoadPalette b _08056D1E _08056D04: ldr r0, [r4, 0x8] movs r4, 0x80 lsls r4, 18 adds r1, r4, 0 bl LZ77UnCompVram lsls r1, r5, 16 lsrs r1, 16 lsls r2, r6, 16 lsrs r2, 16 adds r0, r4, 0 bl LoadPalette _08056D1E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8056CBC thumb_func_start sub_8056D28 sub_8056D28: @ 8056D28 push {lr} movs r1, 0xC0 lsls r1, 19 ldr r0, [r0, 0x10] bl sub_8056C98 pop {r0} bx r0 thumb_func_end sub_8056D28 thumb_func_start sub_8056D38 sub_8056D38: @ 8056D38 push {lr} ldr r1, _08056D48 ldr r0, [r0, 0x14] bl sub_8056C98 pop {r0} bx r0 .align 2, 0 _08056D48: .4byte 0x06004000 thumb_func_end sub_8056D38 thumb_func_start apply_map_tileset1_palette apply_map_tileset1_palette: @ 8056D4C push {lr} ldr r0, [r0, 0x10] movs r1, 0 movs r2, 0xC0 bl sub_8056CBC pop {r0} bx r0 thumb_func_end apply_map_tileset1_palette thumb_func_start apply_map_tileset2_palette apply_map_tileset2_palette: @ 8056D5C push {lr} ldr r0, [r0, 0x14] movs r1, 0x60 movs r2, 0xC0 bl sub_8056CBC pop {r0} bx r0 thumb_func_end apply_map_tileset2_palette thumb_func_start copy_map_tileset1_tileset2_to_vram copy_map_tileset1_tileset2_to_vram: @ 8056D6C push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08056D7E bl sub_8056D28 adds r0, r4, 0 bl sub_8056D38 _08056D7E: pop {r4} pop {r0} bx r0 thumb_func_end copy_map_tileset1_tileset2_to_vram thumb_func_start apply_map_tileset1_tileset2_palette apply_map_tileset1_tileset2_palette: @ 8056D84 push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08056D96 bl apply_map_tileset1_palette adds r0, r4, 0 bl apply_map_tileset2_palette _08056D96: pop {r4} pop {r0} bx r0 thumb_func_end apply_map_tileset1_tileset2_palette thumb_func_start sub_8056D9C sub_8056D9C: @ 8056D9C movs r0, 0x1 bx lr thumb_func_end sub_8056D9C thumb_func_start sub_8056DA0 sub_8056DA0: @ 8056DA0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08056DB8 adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08056DBC movs r0, 0 b _08056DBE .align 2, 0 _08056DB8: .4byte gUnknown_08308E2C _08056DBC: movs r0, 0x1 _08056DBE: pop {r1} bx r1 thumb_func_end sub_8056DA0 thumb_func_start MetatileBehavior_IsJumpEast MetatileBehavior_IsJumpEast: @ 8056DC4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x38 beq _08056DD2 movs r0, 0 b _08056DD4 _08056DD2: movs r0, 0x1 _08056DD4: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsJumpEast thumb_func_start MetatileBehavior_IsJumpWest MetatileBehavior_IsJumpWest: @ 8056DD8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x39 beq _08056DE6 movs r0, 0 b _08056DE8 _08056DE6: movs r0, 0x1 _08056DE8: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsJumpWest thumb_func_start MetatileBehavior_IsJumpNorth MetatileBehavior_IsJumpNorth: @ 8056DEC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3A beq _08056DFA movs r0, 0 b _08056DFC _08056DFA: movs r0, 0x1 _08056DFC: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsJumpNorth thumb_func_start MetatileBehavior_IsJumpSouth MetatileBehavior_IsJumpSouth: @ 8056E00 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B beq _08056E0E movs r0, 0 b _08056E10 _08056E0E: movs r0, 0x1 _08056E10: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsJumpSouth thumb_func_start sub_8056E14 sub_8056E14: @ 8056E14 push {lr} lsls r0, 24 movs r1, 0xFE lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bls _08056E28 movs r0, 0 b _08056E2A _08056E28: movs r0, 0x1 _08056E2A: pop {r1} bx r1 thumb_func_end sub_8056E14 thumb_func_start MetatileBehavior_IsSandOrDeepSand MetatileBehavior_IsSandOrDeepSand: @ 8056E30 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x21 beq _08056E3E cmp r0, 0x6 bne _08056E42 _08056E3E: movs r0, 0x1 b _08056E44 _08056E42: movs r0, 0 _08056E44: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSandOrDeepSand thumb_func_start MetatileBehavior_IsDeepSand MetatileBehavior_IsDeepSand: @ 8056E48 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _08056E56 movs r0, 0 b _08056E58 _08056E56: movs r0, 0x1 _08056E58: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsDeepSand thumb_func_start MetatileBehavior_IsReflective MetatileBehavior_IsReflective: @ 8056E5C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _08056E7A cmp r0, 0x16 beq _08056E7A cmp r0, 0x1A beq _08056E7A cmp r0, 0x20 beq _08056E7A cmp r0, 0x14 beq _08056E7A cmp r0, 0x2B bne _08056E7E _08056E7A: movs r0, 0x1 b _08056E80 _08056E7E: movs r0, 0 _08056E80: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsReflective thumb_func_start MetatileBehavior_IsIce MetatileBehavior_IsIce: @ 8056E84 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x20 beq _08056E92 movs r0, 0 b _08056E94 _08056E92: movs r0, 0x1 _08056E94: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsIce thumb_func_start is_tile_x69_2_warp_door is_tile_x69_2_warp_door: @ 8056E98 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x69 beq _08056EA6 movs r0, 0 b _08056EA8 _08056EA6: movs r0, 0x1 _08056EA8: pop {r1} bx r1 thumb_func_end is_tile_x69_2_warp_door thumb_func_start sub_8056EAC sub_8056EAC: @ 8056EAC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x8D beq _08056EBA cmp r0, 0x69 bne _08056EBE _08056EBA: movs r0, 0x1 b _08056EC0 _08056EBE: movs r0, 0 _08056EC0: pop {r1} bx r1 thumb_func_end sub_8056EAC thumb_func_start MetatileBehavior_IsEscalator MetatileBehavior_IsEscalator: @ 8056EC4 push {lr} lsls r0, 24 movs r1, 0x96 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bls _08056ED8 movs r0, 0 b _08056EDA _08056ED8: movs r0, 0x1 _08056EDA: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsEscalator thumb_func_start unref_sub_8056EE0 unref_sub_8056EE0: @ 8056EE0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _08056EEE movs r0, 0 b _08056EF0 _08056EEE: movs r0, 0x1 _08056EF0: pop {r1} bx r1 thumb_func_end unref_sub_8056EE0 thumb_func_start MetatileBehavior_IsLadder MetatileBehavior_IsLadder: @ 8056EF4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x61 beq _08056F02 movs r0, 0 b _08056F04 _08056F02: movs r0, 0x1 _08056F04: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsLadder thumb_func_start sub_8056F08 sub_8056F08: @ 8056F08 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x60 beq _08056F1A cmp r0, 0x6C beq _08056F1A cmp r0, 0x6E bne _08056F1E _08056F1A: movs r0, 0x1 b _08056F20 _08056F1E: movs r0, 0 _08056F20: pop {r1} bx r1 thumb_func_end sub_8056F08 thumb_func_start sub_8056F24 sub_8056F24: @ 8056F24 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x6E beq _08056F32 movs r0, 0 b _08056F34 _08056F32: movs r0, 0x1 _08056F34: pop {r1} bx r1 thumb_func_end sub_8056F24 thumb_func_start MetatileBehavior_IsSurfableWaterOrUnderwater MetatileBehavior_IsSurfableWaterOrUnderwater: @ 8056F38 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08056F50 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08056F54 movs r0, 0 b _08056F56 .align 2, 0 _08056F50: .4byte gUnknown_08308E2C _08056F54: movs r0, 0x1 _08056F56: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSurfableWaterOrUnderwater thumb_func_start MetatileBehavior_IsEastArrowWarp MetatileBehavior_IsEastArrowWarp: @ 8056F5C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x62 beq _08056F6A movs r0, 0 b _08056F6C _08056F6A: movs r0, 0x1 _08056F6C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsEastArrowWarp thumb_func_start MetatileBehavior_IsWestArrowWarp MetatileBehavior_IsWestArrowWarp: @ 8056F70 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x63 beq _08056F7E movs r0, 0 b _08056F80 _08056F7E: movs r0, 0x1 _08056F80: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWestArrowWarp thumb_func_start MetatileBehavior_IsNorthArrowWarp MetatileBehavior_IsNorthArrowWarp: @ 8056F84 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x64 beq _08056F92 cmp r0, 0x1B bne _08056F96 _08056F92: movs r0, 0x1 b _08056F98 _08056F96: movs r0, 0 _08056F98: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsNorthArrowWarp thumb_func_start MetatileBehavior_IsSouthArrowWarp MetatileBehavior_IsSouthArrowWarp: @ 8056F9C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x65 beq _08056FAE cmp r0, 0x6D beq _08056FAE cmp r0, 0x1C bne _08056FB2 _08056FAE: movs r0, 0x1 b _08056FB4 _08056FB2: movs r0, 0 _08056FB4: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSouthArrowWarp thumb_func_start unref_sub_8056FB8 unref_sub_8056FB8: @ 8056FB8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 adds r0, r4, 0 bl MetatileBehavior_IsEastArrowWarp lsls r0, 24 cmp r0, 0 bne _08056FF0 adds r0, r4, 0 bl MetatileBehavior_IsWestArrowWarp lsls r0, 24 cmp r0, 0 bne _08056FF0 adds r0, r4, 0 bl MetatileBehavior_IsNorthArrowWarp lsls r0, 24 cmp r0, 0 bne _08056FF0 adds r0, r4, 0 bl MetatileBehavior_IsSouthArrowWarp lsls r0, 24 cmp r0, 0 beq _08056FF2 _08056FF0: movs r5, 0x1 _08056FF2: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end unref_sub_8056FB8 thumb_func_start sub_8056FFC sub_8056FFC: @ 8056FFC push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xC0 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x8 bls _08057032 adds r0, r1, 0 subs r0, 0x50 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08057032 cmp r1, 0xD0 beq _08057032 cmp r1, 0xD2 beq _08057032 cmp r1, 0x13 beq _08057032 cmp r1, 0x20 beq _08057032 cmp r1, 0xBB beq _08057032 cmp r1, 0xBC bne _08057036 _08057032: movs r0, 0x1 b _08057038 _08057036: movs r0, 0 _08057038: pop {r1} bx r1 thumb_func_end sub_8056FFC thumb_func_start MetatileBehavior_IsIce_2 MetatileBehavior_IsIce_2: @ 805703C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x20 beq _0805704A movs r0, 0 b _0805704C _0805704A: movs r0, 0x1 _0805704C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsIce_2 thumb_func_start MetatileBehavior_IsTrickHouseSlipperyFloor MetatileBehavior_IsTrickHouseSlipperyFloor: @ 8057050 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x48 beq _0805705E movs r0, 0 b _08057060 _0805705E: movs r0, 0x1 _08057060: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsTrickHouseSlipperyFloor thumb_func_start MetatileBehavior_0x05 MetatileBehavior_0x05: @ 8057064 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _08057072 movs r0, 0 b _08057074 _08057072: movs r0, 0x1 _08057074: pop {r1} bx r1 thumb_func_end MetatileBehavior_0x05 thumb_func_start MetatileBehavior_IsWalkNorth MetatileBehavior_IsWalkNorth: @ 8057078 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x42 beq _08057086 movs r0, 0 b _08057088 _08057086: movs r0, 0x1 _08057088: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWalkNorth thumb_func_start MetatileBehavior_IsWalkSouth MetatileBehavior_IsWalkSouth: @ 805708C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x43 beq _0805709A movs r0, 0 b _0805709C _0805709A: movs r0, 0x1 _0805709C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWalkSouth thumb_func_start MetatileBehavior_IsWalkWest MetatileBehavior_IsWalkWest: @ 80570A0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x41 beq _080570AE movs r0, 0 b _080570B0 _080570AE: movs r0, 0x1 _080570B0: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWalkWest thumb_func_start MetatileBehavior_IsWalkEast MetatileBehavior_IsWalkEast: @ 80570B4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _080570C2 movs r0, 0 b _080570C4 _080570C2: movs r0, 0x1 _080570C4: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWalkEast thumb_func_start MetatileBehavior_IsNorthwardCurrent MetatileBehavior_IsNorthwardCurrent: @ 80570C8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x52 beq _080570D6 movs r0, 0 b _080570D8 _080570D6: movs r0, 0x1 _080570D8: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsNorthwardCurrent thumb_func_start MetatileBehavior_IsSouthwardCurrent MetatileBehavior_IsSouthwardCurrent: @ 80570DC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x53 beq _080570EA movs r0, 0 b _080570EC _080570EA: movs r0, 0x1 _080570EC: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSouthwardCurrent thumb_func_start MetatileBehavior_IsWestwardCurrent MetatileBehavior_IsWestwardCurrent: @ 80570F0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x51 beq _080570FE movs r0, 0 b _08057100 _080570FE: movs r0, 0x1 _08057100: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWestwardCurrent thumb_func_start MetatileBehavior_IsEastwardCurrent MetatileBehavior_IsEastwardCurrent: @ 8057104 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x50 beq _08057112 movs r0, 0 b _08057114 _08057112: movs r0, 0x1 _08057114: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsEastwardCurrent thumb_func_start MetatileBehavior_IsSlideNorth MetatileBehavior_IsSlideNorth: @ 8057118 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x46 beq _08057126 movs r0, 0 b _08057128 _08057126: movs r0, 0x1 _08057128: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSlideNorth thumb_func_start MetatileBehavior_IsSlideSouth MetatileBehavior_IsSlideSouth: @ 805712C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x47 beq _0805713A movs r0, 0 b _0805713C _0805713A: movs r0, 0x1 _0805713C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSlideSouth thumb_func_start MetatileBehavior_IsSlideWest MetatileBehavior_IsSlideWest: @ 8057140 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x45 beq _0805714E movs r0, 0 b _08057150 _0805714E: movs r0, 0x1 _08057150: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSlideWest thumb_func_start MetatileBehavior_IsSlideEast MetatileBehavior_IsSlideEast: @ 8057154 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x44 beq _08057162 movs r0, 0 b _08057164 _08057162: movs r0, 0x1 _08057164: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSlideEast thumb_func_start MetatileBehavior_IsCounter MetatileBehavior_IsCounter: @ 8057168 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x80 beq _08057176 movs r0, 0 b _08057178 _08057176: movs r0, 0x1 _08057178: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsCounter thumb_func_start MetatileBehavior_IsPlayerFacingTVScreen MetatileBehavior_IsPlayerFacingTVScreen: @ 805717C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x2 bne _0805718E cmp r0, 0x86 beq _08057192 _0805718E: movs r0, 0 b _08057194 _08057192: movs r0, 0x1 _08057194: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsPlayerFacingTVScreen thumb_func_start MetatileBehavior_IsPC MetatileBehavior_IsPC: @ 8057198 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x83 beq _080571A6 movs r0, 0 b _080571A8 _080571A6: movs r0, 0x1 _080571A8: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsPC thumb_func_start is_tile_x84 is_tile_x84: @ 80571AC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x84 beq _080571BA movs r0, 0 b _080571BC _080571BA: movs r0, 0x1 _080571BC: pop {r1} bx r1 thumb_func_end is_tile_x84 thumb_func_start sub_80571C0 sub_80571C0: @ 80571C0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x91 beq _080571E2 cmp r0, 0x93 beq _080571E2 cmp r0, 0x95 beq _080571E2 cmp r0, 0x97 beq _080571E2 cmp r0, 0x99 beq _080571E2 cmp r0, 0x9B beq _080571E2 cmp r0, 0x9D bne _080571E6 _080571E2: movs r0, 0x1 b _080571E8 _080571E6: movs r0, 0 _080571E8: pop {r1} bx r1 thumb_func_end sub_80571C0 thumb_func_start sub_80571EC sub_80571EC: @ 80571EC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x90 beq _08057202 cmp r0, 0x92 beq _08057202 cmp r0, 0x94 beq _08057202 cmp r0, 0x9A bne _08057206 _08057202: movs r0, 0x1 b _08057208 _08057206: movs r0, 0 _08057208: pop {r1} bx r1 thumb_func_end sub_80571EC thumb_func_start sub_805720C sub_805720C: @ 805720C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x96 beq _0805721A cmp r0, 0x9C bne _0805721E _0805721A: movs r0, 0x1 b _08057220 _0805721E: movs r0, 0 _08057220: pop {r1} bx r1 thumb_func_end sub_805720C thumb_func_start is_tile_x98 is_tile_x98: @ 8057224 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x98 beq _08057232 movs r0, 0 b _08057234 _08057232: movs r0, 0x1 _08057234: pop {r1} bx r1 thumb_func_end is_tile_x98 thumb_func_start sub_8057238 sub_8057238: @ 8057238 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB0 beq _08057246 movs r0, 0 b _08057248 _08057246: movs r0, 0x1 _08057248: pop {r1} bx r1 thumb_func_end sub_8057238 thumb_func_start sub_805724C sub_805724C: @ 805724C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB1 beq _0805725A movs r0, 0 b _0805725C _0805725A: movs r0, 0x1 _0805725C: pop {r1} bx r1 thumb_func_end sub_805724C thumb_func_start unref_sub_8057260 unref_sub_8057260: @ 8057260 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB2 beq _0805726E movs r0, 0 b _08057270 _0805726E: movs r0, 0x1 _08057270: pop {r1} bx r1 thumb_func_end unref_sub_8057260 thumb_func_start sub_8057274 sub_8057274: @ 8057274 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB3 beq _08057282 movs r0, 0 b _08057284 _08057282: movs r0, 0x1 _08057284: pop {r1} bx r1 thumb_func_end sub_8057274 thumb_func_start sub_8057288 sub_8057288: @ 8057288 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB9 beq _08057296 movs r0, 0 b _08057298 _08057296: movs r0, 0x1 _08057298: pop {r1} bx r1 thumb_func_end sub_8057288 thumb_func_start sub_805729C sub_805729C: @ 805729C push {lr} lsls r0, 24 cmp r0, 0 beq _080572A8 movs r0, 0 b _080572AA _080572A8: movs r0, 0x1 _080572AA: pop {r1} bx r1 thumb_func_end sub_805729C thumb_func_start sub_80572B0 sub_80572B0: @ 80572B0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB7 beq _080572BE movs r0, 0 b _080572C0 _080572BE: movs r0, 0x1 _080572C0: pop {r1} bx r1 thumb_func_end sub_80572B0 thumb_func_start unref_sub_80572C4 unref_sub_80572C4: @ 80572C4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB2 beq _080572D2 movs r0, 0 b _080572D4 _080572D2: movs r0, 0x1 _080572D4: pop {r1} bx r1 thumb_func_end unref_sub_80572C4 thumb_func_start sub_80572D8 sub_80572D8: @ 80572D8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB5 beq _080572E6 movs r0, 0 b _080572E8 _080572E6: movs r0, 0x1 _080572E8: pop {r1} bx r1 thumb_func_end sub_80572D8 thumb_func_start sub_80572EC sub_80572EC: @ 80572EC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xC3 beq _080572FA movs r0, 0 b _080572FC _080572FA: movs r0, 0x1 _080572FC: pop {r1} bx r1 thumb_func_end sub_80572EC thumb_func_start sub_8057300 sub_8057300: @ 8057300 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xC2 beq _0805730E movs r0, 0 b _08057310 _0805730E: movs r0, 0x1 _08057310: pop {r1} bx r1 thumb_func_end sub_8057300 thumb_func_start sub_8057314 sub_8057314: @ 8057314 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB8 beq _08057322 movs r0, 0 b _08057324 _08057322: movs r0, 0x1 _08057324: pop {r1} bx r1 thumb_func_end sub_8057314 thumb_func_start sub_8057328 sub_8057328: @ 8057328 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBE beq _08057336 movs r0, 0 b _08057338 _08057336: movs r0, 0x1 _08057338: pop {r1} bx r1 thumb_func_end sub_8057328 thumb_func_start sub_805733C sub_805733C: @ 805733C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBD beq _0805734A movs r0, 0 b _0805734C _0805734A: movs r0, 0x1 _0805734C: pop {r1} bx r1 thumb_func_end sub_805733C thumb_func_start sub_8057350 sub_8057350: @ 8057350 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBA beq _0805735E movs r0, 0 b _08057360 _0805735E: movs r0, 0x1 _08057360: pop {r1} bx r1 thumb_func_end sub_8057350 thumb_func_start sub_8057364 sub_8057364: @ 8057364 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBF beq _08057372 movs r0, 0 b _08057374 _08057372: movs r0, 0x1 _08057374: pop {r1} bx r1 thumb_func_end sub_8057364 thumb_func_start sub_8057378 sub_8057378: @ 8057378 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xC4 beq _08057386 movs r0, 0 b _08057388 _08057386: movs r0, 0x1 _08057388: pop {r1} bx r1 thumb_func_end sub_8057378 thumb_func_start sub_805738C sub_805738C: @ 805738C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xC5 beq _0805739A movs r0, 0 b _0805739C _0805739A: movs r0, 0x1 _0805739C: pop {r1} bx r1 thumb_func_end sub_805738C thumb_func_start MetatileBehavior_HasRipples MetatileBehavior_HasRipples: @ 80573A0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _080573B2 cmp r0, 0x16 beq _080573B2 cmp r0, 0x14 bne _080573B6 _080573B2: movs r0, 0x1 b _080573B8 _080573B6: movs r0, 0 _080573B8: pop {r1} bx r1 thumb_func_end MetatileBehavior_HasRipples thumb_func_start MetatileBehavior_IsPuddle MetatileBehavior_IsPuddle: @ 80573BC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x16 beq _080573CA movs r0, 0 b _080573CC _080573CA: movs r0, 0x1 _080573CC: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsPuddle thumb_func_start MetatileBehavior_IsTallGrass MetatileBehavior_IsTallGrass: @ 80573D0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080573DE movs r0, 0 b _080573E0 _080573DE: movs r0, 0x1 _080573E0: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsTallGrass thumb_func_start MetatileBehavior_IsLongGrass MetatileBehavior_IsLongGrass: @ 80573E4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _080573F2 movs r0, 0 b _080573F4 _080573F2: movs r0, 0x1 _080573F4: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsLongGrass thumb_func_start MetatileBehavior_IsBerryTreeSoil MetatileBehavior_IsBerryTreeSoil: @ 80573F8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xA0 beq _08057406 movs r0, 0 b _08057408 _08057406: movs r0, 0x1 _08057408: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsBerryTreeSoil thumb_func_start MetatileBehavior_IsAsh MetatileBehavior_IsAsh: @ 805740C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x24 beq _0805741A movs r0, 0 b _0805741C _0805741A: movs r0, 0x1 _0805741C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsAsh thumb_func_start MetatileBehavior_IsUnusedFootprintMetatile MetatileBehavior_IsUnusedFootprintMetatile: @ 8057420 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x25 beq _0805742E movs r0, 0 b _08057430 _0805742E: movs r0, 0x1 _08057430: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsUnusedFootprintMetatile thumb_func_start sub_8057434 sub_8057434: @ 8057434 push {lr} lsls r0, 24 movs r1, 0x90 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x3 bls _08057448 movs r0, 0 b _0805744A _08057448: movs r0, 0x1 _0805744A: pop {r1} bx r1 thumb_func_end sub_8057434 thumb_func_start sub_8057450 sub_8057450: @ 8057450 push {lr} lsls r0, 24 movs r1, 0x90 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x3 bls _08057462 movs r0, 0 _08057462: pop {r1} bx r1 thumb_func_end sub_8057450 thumb_func_start sub_8057468 sub_8057468: @ 8057468 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 bne _0805748C adds r0, r4, 0 bl sub_8056DA0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805748C movs r0, 0x1 b _0805748E _0805748C: movs r0, 0 _0805748E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8057468 thumb_func_start sub_8057494 sub_8057494: @ 8057494 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080574BA adds r0, r4, 0 bl sub_8056DA0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080574BA movs r0, 0x1 b _080574BC _080574BA: movs r0, 0 _080574BC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8057494 thumb_func_start sub_80574C4 sub_80574C4: @ 80574C4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xB beq _080574D2 movs r0, 0 b _080574D4 _080574D2: movs r0, 0x1 _080574D4: pop {r1} bx r1 thumb_func_end sub_80574C4 thumb_func_start sub_80574D8 sub_80574D8: @ 80574D8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xC beq _080574E6 movs r0, 0 b _080574E8 _080574E6: movs r0, 0x1 _080574E8: pop {r1} bx r1 thumb_func_end sub_80574D8 thumb_func_start sub_80574EC sub_80574EC: @ 80574EC push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xEF lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x1 bls _08057502 cmp r1, 0x14 bne _08057506 _08057502: movs r0, 0x1 b _08057508 _08057506: movs r0, 0 _08057508: pop {r1} bx r1 thumb_func_end sub_80574EC thumb_func_start sub_805750C sub_805750C: @ 805750C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x19 beq _0805751A cmp r0, 0x2A bne _0805751E _0805751A: movs r0, 0x1 b _08057520 _0805751E: movs r0, 0 _08057520: pop {r1} bx r1 thumb_func_end sub_805750C thumb_func_start MetatileBehavior_IsShallowFlowingWater MetatileBehavior_IsShallowFlowingWater: @ 8057524 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x17 beq _08057536 cmp r0, 0x1B beq _08057536 cmp r0, 0x1C bne _0805753A _08057536: movs r0, 0x1 b _0805753C _0805753A: movs r0, 0 _0805753C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsShallowFlowingWater thumb_func_start sub_8057540 sub_8057540: @ 8057540 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x26 beq _0805754E movs r0, 0 b _08057550 _0805754E: movs r0, 0x1 _08057550: pop {r1} bx r1 thumb_func_end sub_8057540 thumb_func_start sub_8057554 sub_8057554: @ 8057554 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x27 beq _08057562 movs r0, 0 b _08057564 _08057562: movs r0, 0x1 _08057564: pop {r1} bx r1 thumb_func_end sub_8057554 thumb_func_start sub_8057568 sub_8057568: @ 8057568 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 beq _0805757A cmp r0, 0x11 beq _0805757A cmp r0, 0x12 bne _0805757E _0805757A: movs r0, 0x1 b _08057580 _0805757E: movs r0, 0 _08057580: pop {r1} bx r1 thumb_func_end sub_8057568 thumb_func_start unref_sub_8057584 unref_sub_8057584: @ 8057584 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x18 beq _08057592 cmp r0, 0x1A bne _08057596 _08057592: movs r0, 0x1 b _08057598 _08057596: movs r0, 0 _08057598: pop {r1} bx r1 thumb_func_end unref_sub_8057584 thumb_func_start sub_805759C sub_805759C: @ 805759C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 beq _080575BE adds r0, r4, 0 bl MetatileBehavior_IsWaterfall lsls r0, 24 cmp r0, 0 bne _080575BE movs r0, 0x1 b _080575C0 _080575BE: movs r0, 0 _080575C0: pop {r4} pop {r1} bx r1 thumb_func_end sub_805759C thumb_func_start MetatileBehavior_IsEastBlocked MetatileBehavior_IsEastBlocked: @ 80575C8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x30 beq _080575E2 cmp r0, 0x34 beq _080575E2 cmp r0, 0x36 beq _080575E2 cmp r0, 0xC1 beq _080575E2 cmp r0, 0xBE bne _080575E6 _080575E2: movs r0, 0x1 b _080575E8 _080575E6: movs r0, 0 _080575E8: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsEastBlocked thumb_func_start MetatileBehavior_IsWestBlocked MetatileBehavior_IsWestBlocked: @ 80575EC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x31 beq _08057606 cmp r0, 0x35 beq _08057606 cmp r0, 0x37 beq _08057606 cmp r0, 0xC1 beq _08057606 cmp r0, 0xBE bne _0805760A _08057606: movs r0, 0x1 b _0805760C _0805760A: movs r0, 0 _0805760C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWestBlocked thumb_func_start MetatileBehavior_IsNorthBlocked MetatileBehavior_IsNorthBlocked: @ 8057610 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x32 beq _08057626 cmp r0, 0x34 beq _08057626 cmp r0, 0x35 beq _08057626 cmp r0, 0xC0 bne _0805762A _08057626: movs r0, 0x1 b _0805762C _0805762A: movs r0, 0 _0805762C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsNorthBlocked thumb_func_start MetatileBehavior_IsSouthBlocked MetatileBehavior_IsSouthBlocked: @ 8057630 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x33 beq _08057646 cmp r0, 0x36 beq _08057646 cmp r0, 0x37 beq _08057646 cmp r0, 0xC0 bne _0805764A _08057646: movs r0, 0x1 b _0805764C _0805764A: movs r0, 0 _0805764C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSouthBlocked thumb_func_start MetatileBehavior_IsShortGrass MetatileBehavior_IsShortGrass: @ 8057650 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 beq _0805765E movs r0, 0 b _08057660 _0805765E: movs r0, 0x1 _08057660: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsShortGrass thumb_func_start MetatileBehavior_IsHotSprings MetatileBehavior_IsHotSprings: @ 8057664 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x28 beq _08057672 movs r0, 0 b _08057674 _08057672: movs r0, 0x1 _08057674: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsHotSprings thumb_func_start MetatileBehavior_IsWaterfall MetatileBehavior_IsWaterfall: @ 8057678 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 beq _08057686 movs r0, 0 b _08057688 _08057686: movs r0, 0x1 _08057688: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsWaterfall thumb_func_start MetatileBehavior_IsFortreeBridge MetatileBehavior_IsFortreeBridge: @ 805768C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x78 beq _0805769A movs r0, 0 b _0805769C _0805769A: movs r0, 0x1 _0805769C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsFortreeBridge thumb_func_start sub_80576A0 sub_80576A0: @ 80576A0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x74 beq _080576AE movs r0, 0 b _080576B0 _080576AE: movs r0, 0x1 _080576B0: pop {r1} bx r1 thumb_func_end sub_80576A0 thumb_func_start sub_80576B4 sub_80576B4: @ 80576B4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x75 beq _080576C2 movs r0, 0 b _080576C4 _080576C2: movs r0, 0x1 _080576C4: pop {r1} bx r1 thumb_func_end sub_80576B4 thumb_func_start sub_80576C8 sub_80576C8: @ 80576C8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x76 beq _080576D6 movs r0, 0 b _080576D8 _080576D6: movs r0, 0x1 _080576D8: pop {r1} bx r1 thumb_func_end sub_80576C8 thumb_func_start sub_80576DC sub_80576DC: @ 80576DC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 beq _080576EA movs r0, 0 b _080576EC _080576EA: movs r0, 0x1 _080576EC: pop {r1} bx r1 thumb_func_end sub_80576DC thumb_func_start MetatileBehavior_IsPacifidlogLog MetatileBehavior_IsPacifidlogLog: @ 80576F0 push {lr} lsls r0, 24 movs r1, 0x8C lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x3 bls _08057704 movs r0, 0 b _08057706 _08057704: movs r0, 0x1 _08057706: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsPacifidlogLog thumb_func_start is_tile_x8C is_tile_x8C: @ 805770C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x8C beq _0805771A movs r0, 0 b _0805771C _0805771A: movs r0, 0x1 _0805771C: pop {r1} bx r1 thumb_func_end is_tile_x8C thumb_func_start is_tile_x85 is_tile_x85: @ 8057720 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x85 beq _0805772E movs r0, 0 b _08057730 _0805772E: movs r0, 0x1 _08057730: pop {r1} bx r1 thumb_func_end is_tile_x85 thumb_func_start is_tile_x8B is_tile_x8B: @ 8057734 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x8B beq _08057742 movs r0, 0 b _08057744 _08057742: movs r0, 0x1 _08057744: pop {r1} bx r1 thumb_func_end is_tile_x8B thumb_func_start is_tile_x8A is_tile_x8A: @ 8057748 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x8A beq _08057756 movs r0, 0 b _08057758 _08057756: movs r0, 0x1 _08057758: pop {r1} bx r1 thumb_func_end is_tile_x8A thumb_func_start is_tile_x87 is_tile_x87: @ 805775C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x87 beq _0805776A movs r0, 0 b _0805776C _0805776A: movs r0, 0x1 _0805776C: pop {r1} bx r1 thumb_func_end is_tile_x87 thumb_func_start MetatileBehavior_0xBB MetatileBehavior_0xBB: @ 8057770 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBB beq _0805777E movs r0, 0 b _08057780 _0805777E: movs r0, 0x1 _08057780: pop {r1} bx r1 thumb_func_end MetatileBehavior_0xBB thumb_func_start MetatileBehavior_0xBC MetatileBehavior_0xBC: @ 8057784 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xBC beq _08057792 movs r0, 0 b _08057794 _08057792: movs r0, 0x1 _08057794: pop {r1} bx r1 thumb_func_end MetatileBehavior_0xBC thumb_func_start sub_8057798 sub_8057798: @ 8057798 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x29 beq _080577A6 movs r0, 0 b _080577A8 _080577A6: movs r0, 0x1 _080577A8: pop {r1} bx r1 thumb_func_end sub_8057798 thumb_func_start is_role_x68 is_role_x68: @ 80577AC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x68 beq _080577BA movs r0, 0 b _080577BC _080577BA: movs r0, 0x1 _080577BC: pop {r1} bx r1 thumb_func_end is_role_x68 thumb_func_start MetatileBehavior_IsAquaHideoutWarp MetatileBehavior_IsAquaHideoutWarp: @ 80577C0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x67 beq _080577CE movs r0, 0 b _080577D0 _080577CE: movs r0, 0x1 _080577D0: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsAquaHideoutWarp thumb_func_start MetatileBehavior_IsSurfableFishableWater MetatileBehavior_IsSurfableFishableWater: @ 80577D4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _080577F8 cmp r0, 0x15 beq _080577F8 cmp r0, 0x11 beq _080577F8 cmp r0, 0x12 beq _080577F8 cmp r0, 0x14 beq _080577F8 subs r0, 0x50 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _080577FC _080577F8: movs r0, 0x1 b _080577FE _080577FC: movs r0, 0 _080577FE: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSurfableFishableWater thumb_func_start sub_8057804 sub_8057804: @ 8057804 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xF beq _08057812 movs r0, 0 b _08057814 _08057812: movs r0, 0x1 _08057814: pop {r1} bx r1 thumb_func_end sub_8057804 thumb_func_start sub_8057818 sub_8057818: @ 8057818 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x66 beq _08057826 movs r0, 0 b _08057828 _08057826: movs r0, 0x1 _08057828: pop {r1} bx r1 thumb_func_end sub_8057818 thumb_func_start sub_805782C sub_805782C: @ 805782C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD2 beq _0805783A movs r0, 0 b _0805783C _0805783A: movs r0, 0x1 _0805783C: pop {r1} bx r1 thumb_func_end sub_805782C thumb_func_start MetatileBehavior_IsMuddySlope MetatileBehavior_IsMuddySlope: @ 8057840 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD0 beq _0805784E movs r0, 0 b _08057850 _0805784E: movs r0, 0x1 _08057850: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsMuddySlope thumb_func_start MetatileBehavior_IsBumpySlope MetatileBehavior_IsBumpySlope: @ 8057854 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD1 beq _08057862 movs r0, 0 b _08057864 _08057862: movs r0, 0x1 _08057864: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsBumpySlope thumb_func_start MetatileBehavior_IsIsolatedVerticalRail MetatileBehavior_IsIsolatedVerticalRail: @ 8057868 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD3 beq _08057876 movs r0, 0 b _08057878 _08057876: movs r0, 0x1 _08057878: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsIsolatedVerticalRail thumb_func_start MetatileBehavior_IsIsolatedHorizontalRail MetatileBehavior_IsIsolatedHorizontalRail: @ 805787C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD4 beq _0805788A movs r0, 0 b _0805788C _0805788A: movs r0, 0x1 _0805788C: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsIsolatedHorizontalRail thumb_func_start MetatileBehavior_IsVerticalRail MetatileBehavior_IsVerticalRail: @ 8057890 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD5 beq _0805789E movs r0, 0 b _080578A0 _0805789E: movs r0, 0x1 _080578A0: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsVerticalRail thumb_func_start MetatileBehavior_IsHorizontalRail MetatileBehavior_IsHorizontalRail: @ 80578A4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xD6 beq _080578B2 movs r0, 0 b _080578B4 _080578B2: movs r0, 0x1 _080578B4: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsHorizontalRail thumb_func_start MetatileBehavior_IsSeaweed MetatileBehavior_IsSeaweed: @ 80578B8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x22 beq _080578C6 cmp r0, 0x2A bne _080578CA _080578C6: movs r0, 0x1 b _080578CC _080578CA: movs r0, 0 _080578CC: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsSeaweed thumb_func_start MetatileBehavior_IsRunningDisallowed MetatileBehavior_IsRunningDisallowed: @ 80578D0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xA beq _080578EC cmp r0, 0x3 beq _080578EC cmp r0, 0x28 beq _080578EC bl MetatileBehavior_IsPacifidlogLog lsls r0, 24 cmp r0, 0 beq _080578F0 _080578EC: movs r0, 0x1 b _080578F2 _080578F0: movs r0, 0 _080578F2: pop {r1} bx r1 thumb_func_end MetatileBehavior_IsRunningDisallowed thumb_func_start sub_80578F8 sub_80578F8: @ 80578F8 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xFE lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x1 bls _08057912 cmp r1, 0x24 beq _08057912 cmp r1, 0x9 bne _08057916 _08057912: movs r0, 0x1 b _08057918 _08057916: movs r0, 0 _08057918: pop {r1} bx r1 thumb_func_end sub_80578F8 thumb_func_start sub_805791C sub_805791C: @ 805791C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x8E beq _0805792A movs r0, 0 b _0805792C _0805792A: movs r0, 0x1 _0805792C: pop {r1} bx r1 thumb_func_end sub_805791C thumb_func_start sub_8057930 sub_8057930: @ 8057930 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE0 beq _0805793E movs r0, 0 b _08057940 _0805793E: movs r0, 0x1 _08057940: pop {r1} bx r1 thumb_func_end sub_8057930 thumb_func_start sub_8057944 sub_8057944: @ 8057944 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE1 beq _08057952 movs r0, 0 b _08057954 _08057952: movs r0, 0x1 _08057954: pop {r1} bx r1 thumb_func_end sub_8057944 thumb_func_start sub_8057958 sub_8057958: @ 8057958 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE2 beq _08057966 movs r0, 0 b _08057968 _08057966: movs r0, 0x1 _08057968: pop {r1} bx r1 thumb_func_end sub_8057958 thumb_func_start sub_805796C sub_805796C: @ 805796C push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE3 beq _0805797A movs r0, 0 b _0805797C _0805797A: movs r0, 0x1 _0805797C: pop {r1} bx r1 thumb_func_end sub_805796C thumb_func_start sub_8057980 sub_8057980: @ 8057980 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE4 beq _0805798E movs r0, 0 b _08057990 _0805798E: movs r0, 0x1 _08057990: pop {r1} bx r1 thumb_func_end sub_8057980 thumb_func_start sub_8057994 sub_8057994: @ 8057994 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE5 beq _080579A2 movs r0, 0 b _080579A4 _080579A2: movs r0, 0x1 _080579A4: pop {r1} bx r1 thumb_func_end sub_8057994 thumb_func_start sub_80579A8 sub_80579A8: @ 80579A8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xE6 beq _080579B6 movs r0, 0 b _080579B8 _080579B6: movs r0, 0x1 _080579B8: pop {r1} bx r1 thumb_func_end sub_80579A8 thumb_func_start move_tilemap_camera_to_upper_left_corner_ move_tilemap_camera_to_upper_left_corner_: @ 80579BC movs r1, 0 strb r1, [r0, 0x2] strb r1, [r0, 0x3] strb r1, [r0] strb r1, [r0, 0x1] movs r1, 0x1 strb r1, [r0, 0x4] bx lr thumb_func_end move_tilemap_camera_to_upper_left_corner_ thumb_func_start tilemap_move_something tilemap_move_something: @ 80579CC ldrb r3, [r0, 0x2] adds r3, r1 strb r3, [r0, 0x2] ldrb r1, [r0, 0x2] movs r3, 0x1F ands r1, r3 strb r1, [r0, 0x2] ldrb r1, [r0, 0x3] adds r1, r2 strb r1, [r0, 0x3] ldrb r1, [r0, 0x3] ands r1, r3 strb r1, [r0, 0x3] bx lr thumb_func_end tilemap_move_something thumb_func_start coords8_add coords8_add: @ 80579E8 ldrb r3, [r0] adds r3, r1 strb r3, [r0] ldrb r1, [r0, 0x1] adds r1, r2 strb r1, [r0, 0x1] bx lr thumb_func_end coords8_add thumb_func_start move_tilemap_camera_to_upper_left_corner move_tilemap_camera_to_upper_left_corner: @ 80579F8 push {r4-r6,lr} sub sp, 0x8 ldr r0, _08057A44 bl move_tilemap_camera_to_upper_left_corner_ mov r0, sp movs r6, 0 strh r6, [r0] ldr r4, _08057A48 ldr r5, _08057A4C adds r1, r4, 0 adds r2, r5, 0 bl CpuSet mov r0, sp adds r0, 0x2 strh r6, [r0] ldr r2, _08057A50 adds r1, r4, r2 adds r2, r5, 0 bl CpuSet add r0, sp, 0x4 ldr r2, _08057A54 adds r1, r2, 0 strh r1, [r0] movs r1, 0x80 lsls r1, 4 adds r4, r1 adds r1, r4, 0 adds r2, r5, 0 bl CpuSet add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08057A44: .4byte 0x03000590 _08057A48: .4byte 0x020221cc _08057A4C: .4byte 0x01000400 _08057A50: .4byte 0xfffff800 _08057A54: .4byte 0x00003014 thumb_func_end move_tilemap_camera_to_upper_left_corner thumb_func_start sub_8057A58 sub_8057A58: @ 8057A58 push {r4-r7,lr} ldr r5, _08057AE8 ldr r1, [r5, 0x4] ldr r6, _08057AEC ldr r4, _08057AF0 ldrh r0, [r4] ldrb r2, [r6] adds r0, r2 strh r0, [r1] ldr r3, _08057AF4 ldr r1, [r3, 0x4] ldr r2, _08057AF8 ldrh r0, [r2] ldrb r7, [r6, 0x1] adds r0, r7 adds r0, 0x8 strh r0, [r1] ldr r1, [r5, 0x8] ldrh r0, [r4] ldrb r7, [r6] adds r0, r7 strh r0, [r1] ldr r1, [r3, 0x8] ldrh r0, [r2] ldrb r7, [r6, 0x1] adds r0, r7 adds r0, 0x8 strh r0, [r1] ldr r1, [r5, 0xC] ldrh r0, [r4] ldrb r4, [r6] adds r0, r4 strh r0, [r1] ldr r1, [r3, 0xC] ldrh r0, [r2] ldrb r7, [r6, 0x1] adds r0, r7 adds r0, 0x8 strh r0, [r1] ldrb r0, [r6, 0x4] cmp r0, 0 beq _08057AE0 ldr r0, _08057AFC ldr r2, _08057B00 str r2, [r0] ldr r1, _08057B04 str r1, [r0, 0x4] ldr r3, _08057B08 str r3, [r0, 0x8] ldr r1, [r0, 0x8] movs r4, 0x80 lsls r4, 4 adds r1, r2, r4 str r1, [r0] ldr r1, _08057B0C str r1, [r0, 0x4] str r3, [r0, 0x8] ldr r1, [r0, 0x8] movs r7, 0x80 lsls r7, 5 adds r2, r7 str r2, [r0] ldr r1, _08057B10 str r1, [r0, 0x4] str r3, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0 strb r0, [r6, 0x4] _08057AE0: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057AE8: .4byte gBGHOffsetRegs _08057AEC: .4byte 0x03000590 _08057AF0: .4byte 0x03000598 _08057AF4: .4byte gBGVOffsetRegs _08057AF8: .4byte 0x0300059a _08057AFC: .4byte 0x040000d4 _08057B00: .4byte 0x020219cc _08057B04: .4byte 0x0600e800 _08057B08: .4byte 0x80000400 _08057B0C: .4byte 0x0600e000 _08057B10: .4byte 0x0600f000 thumb_func_end sub_8057A58 thumb_func_start sub_8057B14 sub_8057B14: @ 8057B14 push {r4,lr} ldr r3, _08057B34 ldr r2, _08057B38 ldrh r2, [r2] ldrb r4, [r3] adds r2, r4 strh r2, [r0] ldr r0, _08057B3C ldrh r0, [r0] ldrb r3, [r3, 0x1] adds r0, r3 adds r0, 0x8 strh r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08057B34: .4byte 0x03000590 _08057B38: .4byte 0x03000598 _08057B3C: .4byte 0x0300059a thumb_func_end sub_8057B14 thumb_func_start DrawWholeMapView DrawWholeMapView: @ 8057B40 push {lr} ldr r1, _08057B60 movs r2, 0 ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] ldr r2, _08057B64 ldr r2, [r2] bl DrawWholeMapViewInternal ldr r1, _08057B68 movs r0, 0x1 strb r0, [r1, 0x4] pop {r0} bx r0 .align 2, 0 _08057B60: .4byte 0x02025734 _08057B64: .4byte 0x0202e828 _08057B68: .4byte 0x03000590 thumb_func_end DrawWholeMapView thumb_func_start DrawWholeMapViewInternal DrawWholeMapViewInternal: @ 8057B6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 mov r9, r1 mov r8, r2 movs r1, 0 _08057B80: ldr r2, _08057BEC ldrb r0, [r2, 0x3] adds r0, r1, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057B94 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057B94: lsls r6, r0, 5 movs r4, 0 adds r7, r1, 0x2 str r7, [sp] lsrs r5, r1, 1 _08057B9E: ldr r1, _08057BEC ldrb r0, [r1, 0x2] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057BB2 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057BB2: adds r1, r6, r0 lsls r1, 16 lsrs r1, 16 lsrs r2, r4, 1 add r2, r10 mov r0, r8 mov r7, r9 adds r3, r7, r5 bl DrawMetatileAt adds r0, r4, 0x2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08057B9E ldr r1, [sp] lsls r0, r1, 24 lsrs r1, r0, 24 cmp r1, 0x1F bls _08057B80 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057BEC: .4byte 0x03000590 thumb_func_end DrawWholeMapViewInternal thumb_func_start RedrawMapSlicesForCameraUpdate RedrawMapSlicesForCameraUpdate: @ 8057BF0 push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 adds r7, r2, 0 ldr r0, _08057C38 ldr r4, [r0] cmp r6, 0 ble _08057C08 adds r0, r5, 0 adds r1, r4, 0 bl sub_8057D48 _08057C08: cmp r6, 0 bge _08057C14 adds r0, r5, 0 adds r1, r4, 0 bl RedrawMapSliceEast _08057C14: cmp r7, 0 ble _08057C20 adds r0, r5, 0 adds r1, r4, 0 bl sub_8057C3C _08057C20: cmp r7, 0 bge _08057C2C adds r0, r5, 0 adds r1, r4, 0 bl RedrawMapSliceSouth _08057C2C: movs r0, 0x1 strb r0, [r5, 0x4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057C38: .4byte 0x0202e828 thumb_func_end RedrawMapSlicesForCameraUpdate thumb_func_start sub_8057C3C sub_8057C3C: @ 8057C3C push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 ldrb r0, [r5, 0x3] adds r0, 0x1C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057C58 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057C58: lsls r7, r0, 5 movs r4, 0 ldr r6, _08057CA0 _08057C5E: ldrb r0, [r5, 0x2] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057C70 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057C70: adds r1, r7, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0 ldrsh r2, [r6, r0] lsrs r0, r4, 1 adds r2, r0 movs r0, 0x2 ldrsh r3, [r6, r0] adds r3, 0xE mov r0, r8 bl DrawMetatileAt adds r0, r4, 0x2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08057C5E pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057CA0: .4byte 0x02025734 thumb_func_end sub_8057C3C thumb_func_start RedrawMapSliceSouth RedrawMapSliceSouth: @ 8057CA4 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 ldrb r0, [r5, 0x3] lsls r7, r0, 5 movs r4, 0 ldr r6, _08057CF0 _08057CB6: ldrb r0, [r5, 0x2] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057CC8 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057CC8: adds r1, r7, r0 movs r0, 0 ldrsh r2, [r6, r0] lsrs r0, r4, 1 adds r2, r0 movs r0, 0x2 ldrsh r3, [r6, r0] mov r0, r8 bl DrawMetatileAt adds r0, r4, 0x2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08057CB6 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057CF0: .4byte 0x02025734 thumb_func_end RedrawMapSliceSouth thumb_func_start RedrawMapSliceEast RedrawMapSliceEast: @ 8057CF4 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r1 ldrb r6, [r5, 0x2] movs r4, 0 _08057D02: ldrb r0, [r5, 0x3] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057D14 subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057D14: lsls r1, r0, 5 adds r1, r6 lsls r1, 16 lsrs r1, 16 ldr r0, _08057D44 movs r3, 0 ldrsh r2, [r0, r3] movs r7, 0x2 ldrsh r3, [r0, r7] lsrs r0, r4, 1 adds r3, r0 mov r0, r8 bl DrawMetatileAt adds r0, r4, 0x2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08057D02 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057D44: .4byte 0x02025734 thumb_func_end RedrawMapSliceEast thumb_func_start sub_8057D48 sub_8057D48: @ 8057D48 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 mov r8, r1 ldrb r0, [r6, 0x2] adds r0, 0x1C lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1F bls _08057D66 adds r0, r5, 0 subs r0, 0x20 lsls r0, 24 lsrs r5, r0, 24 _08057D66: movs r4, 0 ldr r7, _08057DAC _08057D6A: ldrb r0, [r6, 0x3] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bls _08057D7C subs r0, 0x20 lsls r0, 24 lsrs r0, 24 _08057D7C: lsls r1, r0, 5 adds r1, r5 lsls r1, 16 lsrs r1, 16 movs r0, 0 ldrsh r2, [r7, r0] adds r2, 0xE movs r0, 0x2 ldrsh r3, [r7, r0] lsrs r0, r4, 1 adds r3, r0 mov r0, r8 bl DrawMetatileAt adds r0, r4, 0x2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1F bls _08057D6A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057DAC: .4byte 0x02025734 thumb_func_end sub_8057D48 thumb_func_start CurrentMapDrawMetatileAt CurrentMapDrawMetatileAt: @ 8057DB0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r6, _08057DE4 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl MapPosToBgTilemapOffset adds r1, r0, 0 cmp r1, 0 blt _08057DDC ldr r0, _08057DE8 ldr r0, [r0] lsls r1, 16 lsrs r1, 16 adds r2, r4, 0 adds r3, r5, 0 bl DrawMetatileAt movs r0, 0x1 strb r0, [r6, 0x4] _08057DDC: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08057DE4: .4byte 0x03000590 _08057DE8: .4byte 0x0202e828 thumb_func_end CurrentMapDrawMetatileAt thumb_func_start DrawDoorMetatileAt DrawDoorMetatileAt: @ 8057DEC push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 ldr r6, _08057E1C adds r0, r6, 0 adds r1, r3, 0 adds r2, r4, 0 bl MapPosToBgTilemapOffset cmp r0, 0 blt _08057E14 lsls r2, r0, 16 lsrs r2, 16 movs r0, 0x1 adds r1, r5, 0 bl DrawMetatile movs r0, 0x1 strb r0, [r6, 0x4] _08057E14: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08057E1C: .4byte 0x03000590 thumb_func_end DrawDoorMetatileAt thumb_func_start DrawMetatileAt DrawMetatileAt: @ 8057E20 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r2, 0 adds r7, r3, 0 lsls r1, 16 lsrs r1, 16 mov r8, r1 adds r0, r6, 0 adds r1, r7, 0 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x80 lsls r0, 3 cmp r4, r0 bls _08057E48 movs r4, 0 _08057E48: ldr r0, _08057E54 cmp r4, r0 bhi _08057E58 ldr r0, [r5, 0x10] ldr r5, [r0, 0xC] b _08057E64 .align 2, 0 _08057E54: .4byte 0x000001ff _08057E58: ldr r0, [r5, 0x14] ldr r5, [r0, 0xC] ldr r1, _08057E84 adds r0, r4, r1 lsls r0, 16 lsrs r4, r0, 16 _08057E64: adds r0, r6, 0 adds r1, r7, 0 bl MapGridGetMetatileLayerTypeAt lsls r0, 24 lsrs r0, 24 lsls r1, r4, 4 adds r1, r5, r1 mov r2, r8 bl DrawMetatile pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08057E84: .4byte 0xfffffe00 thumb_func_end DrawMetatileAt thumb_func_start DrawMetatile DrawMetatile: @ 8057E88 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r1, 0 lsls r2, 16 lsrs r6, r2, 16 cmp r0, 0x1 beq _08057F28 cmp r0, 0x1 bgt _08057EA6 cmp r0, 0 bne _08057EA4 b _08057FA0 _08057EA4: b _08058010 _08057EA6: cmp r0, 0x2 beq _08057EAC b _08058010 _08057EAC: ldr r0, _08057F24 mov r12, r0 lsls r1, r6, 1 mov r9, r1 movs r5, 0xC0 lsls r5, 5 add r5, r12 adds r1, r5 ldrh r0, [r7] movs r2, 0 mov r8, r2 strh r0, [r1] adds r4, r6, 0x1 lsls r4, 1 adds r1, r4, r5 ldrh r0, [r7, 0x2] strh r0, [r1] adds r3, r6, 0 adds r3, 0x20 lsls r3, 1 adds r1, r3, r5 ldrh r0, [r7, 0x4] strh r0, [r1] adds r2, r6, 0 adds r2, 0x21 lsls r2, 1 adds r5, r2, r5 ldrh r0, [r7, 0x6] strh r0, [r5] movs r1, 0x80 lsls r1, 5 add r1, r12 mov r5, r9 adds r0, r5, r1 mov r5, r8 strh r5, [r0] adds r0, r4, r1 strh r5, [r0] adds r0, r3, r1 strh r5, [r0] adds r1, r2, r1 strh r5, [r1] movs r5, 0x80 lsls r5, 4 add r5, r12 add r9, r5 ldrh r0, [r7, 0x8] mov r1, r9 strh r0, [r1] adds r4, r5 ldrh r0, [r7, 0xA] strh r0, [r4] adds r3, r5 ldrh r0, [r7, 0xC] strh r0, [r3] adds r2, r5 ldrh r0, [r7, 0xE] strh r0, [r2] b _08058010 .align 2, 0 _08057F24: .4byte 0x020211cc _08057F28: ldr r2, _08057F98 mov r12, r2 lsls r3, r6, 1 mov r8, r3 movs r2, 0xC0 lsls r2, 5 add r2, r12 adds r1, r3, r2 ldrh r0, [r7] movs r5, 0 mov r9, r5 strh r0, [r1] adds r5, r6, 0x1 lsls r5, 1 adds r1, r5, r2 ldrh r0, [r7, 0x2] strh r0, [r1] adds r4, r6, 0 adds r4, 0x20 lsls r4, 1 adds r1, r4, r2 ldrh r0, [r7, 0x4] strh r0, [r1] adds r3, r6, 0 adds r3, 0x21 lsls r3, 1 adds r2, r3, r2 ldrh r0, [r7, 0x6] strh r0, [r2] movs r1, 0x80 lsls r1, 5 add r1, r12 mov r0, r8 adds r2, r0, r1 ldrh r0, [r7, 0x8] strh r0, [r2] adds r2, r5, r1 ldrh r0, [r7, 0xA] strh r0, [r2] adds r2, r4, r1 ldrh r0, [r7, 0xC] strh r0, [r2] adds r1, r3, r1 ldrh r0, [r7, 0xE] strh r0, [r1] ldr r1, _08057F9C add r8, r1 mov r0, r9 mov r2, r8 strh r0, [r2] adds r5, r1 strh r0, [r5] adds r4, r1 strh r0, [r4] adds r3, r1 b _0805800E .align 2, 0 _08057F98: .4byte 0x020211cc _08057F9C: .4byte 0x020219cc _08057FA0: ldr r1, _0805801C mov r9, r1 lsls r2, r6, 1 mov r8, r2 movs r1, 0xC0 lsls r1, 5 add r1, r9 adds r0, r2, r1 ldr r2, _08058020 strh r2, [r0] adds r5, r6, 0x1 lsls r5, 1 adds r0, r5, r1 strh r2, [r0] adds r4, r6, 0 adds r4, 0x20 lsls r4, 1 adds r0, r4, r1 strh r2, [r0] adds r3, r6, 0 adds r3, 0x21 lsls r3, 1 adds r1, r3, r1 strh r2, [r1] movs r1, 0x80 lsls r1, 5 add r1, r9 mov r0, r8 adds r2, r0, r1 ldrh r0, [r7] strh r0, [r2] adds r2, r5, r1 ldrh r0, [r7, 0x2] strh r0, [r2] adds r2, r4, r1 ldrh r0, [r7, 0x4] strh r0, [r2] adds r1, r3, r1 ldrh r0, [r7, 0x6] strh r0, [r1] movs r2, 0x80 lsls r2, 4 add r2, r9 add r8, r2 ldrh r0, [r7, 0x8] mov r1, r8 strh r0, [r1] adds r5, r2 ldrh r0, [r7, 0xA] strh r0, [r5] adds r4, r2 ldrh r0, [r7, 0xC] strh r0, [r4] adds r3, r2 ldrh r0, [r7, 0xE] _0805800E: strh r0, [r3] _08058010: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805801C: .4byte 0x020211cc _08058020: .4byte 0x00003014 thumb_func_end DrawMetatile thumb_func_start MapPosToBgTilemapOffset MapPosToBgTilemapOffset: @ 8058024 push {r4,r5,lr} adds r3, r0, 0 ldr r4, _08058054 movs r5, 0 ldrsh r0, [r4, r5] subs r1, r0 lsls r1, 1 cmp r1, 0x1F bhi _0805804C ldrb r0, [r3, 0x2] adds r1, r0 cmp r1, 0x1F ble _08058040 subs r1, 0x20 _08058040: movs r5, 0x2 ldrsh r0, [r4, r5] subs r0, r2, r0 lsls r2, r0, 1 cmp r2, 0x1F bls _08058058 _0805804C: movs r0, 0x1 negs r0, r0 b _08058066 .align 2, 0 _08058054: .4byte 0x02025734 _08058058: ldrb r0, [r3, 0x3] adds r2, r0 cmp r2, 0x1F ble _08058062 subs r2, 0x20 _08058062: lsls r0, r2, 5 adds r0, r1 _08058066: pop {r4,r5} pop {r1} bx r1 thumb_func_end MapPosToBgTilemapOffset thumb_func_start CameraUpdateCallback CameraUpdateCallback: @ 805806C push {lr} adds r3, r0, 0 ldr r2, [r3, 0x4] cmp r2, 0 beq _0805808C ldr r1, _08058090 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r2, 0x32 ldrsh r1, [r0, r2] str r1, [r3, 0x8] movs r1, 0x34 ldrsh r0, [r0, r1] str r0, [r3, 0xC] _0805808C: pop {r0} bx r0 .align 2, 0 _08058090: .4byte 0x02020004 thumb_func_end CameraUpdateCallback thumb_func_start ResetCameraUpdateInfo ResetCameraUpdateInfo: @ 8058094 ldr r1, _080580A8 movs r0, 0 str r0, [r1, 0x8] str r0, [r1, 0xC] str r0, [r1, 0x10] str r0, [r1, 0x14] str r0, [r1, 0x4] str r0, [r1] bx lr .align 2, 0 _080580A8: .4byte 0x03004880 thumb_func_end ResetCameraUpdateInfo thumb_func_start InitCameraUpdateCallback InitCameraUpdateCallback: @ 80580AC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080580E0 ldr r1, [r4, 0x4] cmp r1, 0 beq _080580C8 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080580E4 adds r0, r1 bl DestroySprite _080580C8: adds r0, r5, 0 bl AddCameraObject lsls r0, 24 lsrs r0, 24 str r0, [r4, 0x4] ldr r0, _080580E8 str r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080580E0: .4byte 0x03004880 _080580E4: .4byte 0x02020004 _080580E8: .4byte CameraUpdateCallback thumb_func_end InitCameraUpdateCallback thumb_func_start CameraUpdate CameraUpdate: @ 80580EC push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, _080581EC ldr r1, [r6] cmp r1, 0 beq _08058100 adds r0, r6, 0 bl _call_via_r1 _08058100: ldr r7, [r6, 0x8] ldr r0, [r6, 0xC] mov r8, r0 movs r4, 0 movs r5, 0 ldr r1, [r6, 0x10] ldr r0, [r6, 0x14] cmp r1, 0 bne _0805811E cmp r7, 0 beq _0805811E subs r4, 0x1 cmp r7, 0 ble _0805811E movs r4, 0x1 _0805811E: cmp r0, 0 bne _08058132 mov r2, r8 cmp r2, 0 beq _08058132 movs r5, 0x1 negs r5, r5 cmp r2, 0 ble _08058132 movs r5, 0x1 _08058132: cmp r1, 0 beq _08058144 cmn r1, r7 bne _08058144 movs r4, 0x1 negs r4, r4 cmp r7, 0 ble _08058144 movs r4, 0x1 _08058144: cmp r0, 0 beq _08058158 mov r3, r8 cmn r0, r3 bne _08058158 movs r4, 0x1 negs r4, r4 cmp r3, 0 ble _08058158 movs r4, 0x1 _08058158: ldr r2, _080581EC ldr r0, [r2, 0x10] adds r1, r0, r7 str r1, [r2, 0x10] adds r0, r1, 0 cmp r1, 0 bge _08058168 adds r0, 0xF _08058168: asrs r0, 4 lsls r0, 4 subs r0, r1, r0 str r0, [r2, 0x10] ldr r0, [r2, 0x14] mov r3, r8 adds r1, r0, r3 str r1, [r2, 0x14] adds r0, r1, 0 cmp r1, 0 bge _08058180 adds r0, 0xF _08058180: asrs r0, 4 lsls r0, 4 subs r0, r1, r0 str r0, [r2, 0x14] cmp r4, 0 bne _08058190 cmp r5, 0 beq _080581C6 _08058190: adds r0, r4, 0 adds r1, r5, 0 bl CameraMove adds r0, r4, 0 adds r1, r5, 0 bl UpdateFieldObjectsForCameraUpdate adds r0, r4, 0 adds r1, r5, 0 bl RotatingGatePuzzleCameraUpdate bl ResetBerryTreeSparkleFlags ldr r6, _080581F0 lsls r4, 1 lsls r5, 1 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl tilemap_move_something adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl RedrawMapSlicesForCameraUpdate _080581C6: ldr r0, _080581F0 adds r1, r7, 0 mov r2, r8 bl coords8_add ldr r1, _080581F4 ldrh r0, [r1] subs r0, r7 strh r0, [r1] ldr r1, _080581F8 ldrh r0, [r1] mov r2, r8 subs r0, r2 strh r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080581EC: .4byte 0x03004880 _080581F0: .4byte 0x03000590 _080581F4: .4byte 0x0300489c _080581F8: .4byte 0x03004898 thumb_func_end CameraUpdate thumb_func_start camera_move_and_redraw camera_move_and_redraw: @ 80581FC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl CameraMove lsls r0, r4, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 bl UpdateFieldObjectsForCameraUpdate bl DrawWholeMapView ldr r1, _08058230 lsls r4, 4 ldrh r0, [r1] subs r0, r4 strh r0, [r1] ldr r1, _08058234 lsls r5, 4 ldrh r0, [r1] subs r0, r5 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08058230: .4byte 0x0300489c _08058234: .4byte 0x03004898 thumb_func_end camera_move_and_redraw thumb_func_start SetCameraPanningCallback SetCameraPanningCallback: @ 8058238 ldr r1, _08058240 str r0, [r1] bx lr .align 2, 0 _08058240: .4byte 0x030005a0 thumb_func_end SetCameraPanningCallback thumb_func_start SetCameraPanning SetCameraPanning: @ 8058244 ldr r2, _08058254 strh r0, [r2] ldr r0, _08058258 lsls r1, 16 asrs r1, 16 adds r1, 0x20 strh r1, [r0] bx lr .align 2, 0 _08058254: .4byte 0x03000598 _08058258: .4byte 0x0300059a thumb_func_end SetCameraPanning thumb_func_start InstallCameraPanAheadCallback InstallCameraPanAheadCallback: @ 805825C ldr r1, _08058278 ldr r0, _0805827C str r0, [r1] ldr r1, _08058280 movs r0, 0 strb r0, [r1] ldr r1, _08058284 movs r0, 0 strh r0, [r1] ldr r1, _08058288 movs r0, 0x20 strh r0, [r1] bx lr .align 2, 0 _08058278: .4byte 0x030005a0 _0805827C: .4byte CameraPanningCB_PanAhead _08058280: .4byte 0x0300059c _08058284: .4byte 0x03000598 _08058288: .4byte 0x0300059a thumb_func_end InstallCameraPanAheadCallback thumb_func_start UpdateCameraPanning UpdateCameraPanning: @ 805828C push {lr} ldr r0, _080582BC ldr r0, [r0] cmp r0, 0 beq _0805829A bl _call_via_r0 _0805829A: ldr r2, _080582C0 ldr r0, _080582C4 ldr r1, _080582C8 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r2, _080582CC ldr r0, _080582D0 ldr r1, _080582D4 ldrh r0, [r0] ldrh r1, [r1] subs r0, r1 subs r0, 0x8 strh r0, [r2] pop {r0} bx r0 .align 2, 0 _080582BC: .4byte 0x030005a0 _080582C0: .4byte 0x030024d0 _080582C4: .4byte 0x0300489c _080582C8: .4byte 0x03000598 _080582CC: .4byte 0x030027e0 _080582D0: .4byte 0x03004898 _080582D4: .4byte 0x0300059a thumb_func_end UpdateCameraPanning thumb_func_start CameraPanningCB_PanAhead CameraPanningCB_PanAhead: @ 80582D8 push {lr} ldr r0, _080582E8 ldrb r0, [r0] cmp r0, 0 bne _080582EC bl InstallCameraPanAheadCallback b _08058374 .align 2, 0 _080582E8: .4byte 0x0202e854 _080582EC: ldr r0, _08058304 ldrb r0, [r0, 0x3] cmp r0, 0x1 bne _0805830C ldr r0, _08058308 ldrb r1, [r0] movs r2, 0x1 eors r1, r2 strb r1, [r0] cmp r1, 0 beq _08058374 b _08058312 .align 2, 0 _08058304: .4byte 0x0202e858 _08058308: .4byte 0x0300059c _0805830C: ldr r1, _08058334 movs r0, 0 strb r0, [r1] _08058312: bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805833C ldr r2, _08058338 ldrh r3, [r2] movs r0, 0 ldrsh r1, [r2, r0] movs r0, 0x8 negs r0, r0 cmp r1, r0 ble _08058374 subs r0, r3, 0x2 b _08058372 .align 2, 0 _08058334: .4byte 0x0300059c _08058338: .4byte 0x0300059a _0805833C: cmp r0, 0x1 bne _08058358 ldr r1, _08058354 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x47 bgt _08058374 adds r0, r2, 0x2 strh r0, [r1] b _08058374 .align 2, 0 _08058354: .4byte 0x0300059a _08058358: ldr r2, _08058368 ldrh r0, [r2] movs r3, 0 ldrsh r1, [r2, r3] cmp r1, 0x1F bgt _0805836C adds r0, 0x2 b _08058372 .align 2, 0 _08058368: .4byte 0x0300059a _0805836C: cmp r1, 0x20 ble _08058374 subs r0, 0x2 _08058372: strh r0, [r2] _08058374: pop {r0} bx r0 thumb_func_end CameraPanningCB_PanAhead thumb_func_start sub_8058378 sub_8058378: @ 8058378 push {lr} ldr r1, _08058388 movs r2, 0x40 bl CpuFastSet pop {r0} bx r0 .align 2, 0 _08058388: .4byte 0x06007f00 thumb_func_end sub_8058378 thumb_func_start door_build_blockdef door_build_blockdef: @ 805838C push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 adds r1, r6, 0 _08058398: ldrb r0, [r2] lsls r0, 28 lsrs r3, r0, 16 adds r2, 0x1 adds r0, r5, r4 orrs r3, r0 strh r3, [r1] adds r1, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _08058398 cmp r4, 0x7 bgt _080583C6 lsls r0, r4, 1 adds r1, r0, r6 _080583B6: ldrb r0, [r2] lsls r3, r0, 12 adds r2, 0x1 strh r3, [r1] adds r1, 0x2 adds r4, 0x1 cmp r4, 0x7 ble _080583B6 _080583C6: pop {r4-r6} pop {r0} bx r0 thumb_func_end door_build_blockdef thumb_func_start sub_80583CC sub_80583CC: @ 80583CC push {r4-r6,lr} sub sp, 0x10 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 movs r1, 0xFE lsls r1, 2 mov r0, sp bl door_build_blockdef subs r1, r6, 0x1 adds r0, r5, 0 mov r2, sp bl DrawDoorMetatileAt movs r1, 0xFF lsls r1, 2 adds r4, 0x4 mov r0, sp adds r2, r4, 0 bl door_build_blockdef adds r0, r5, 0 adds r1, r6, 0 mov r2, sp bl DrawDoorMetatileAt add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80583CC thumb_func_start sub_805840C sub_805840C: @ 805840C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 subs r1, r5, 0x1 bl CurrentMapDrawMetatileAt adds r0, r4, 0 adds r1, r5, 0 bl CurrentMapDrawMetatileAt pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_805840C thumb_func_start sub_8058428 sub_8058428: @ 8058428 push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 adds r7, r3, 0 ldrh r1, [r4, 0x2] ldr r0, _08058444 cmp r1, r0 bne _08058448 adds r0, r6, 0 adds r1, r7, 0 bl sub_805840C b _0805845C .align 2, 0 _08058444: .4byte 0x0000ffff _08058448: ldrh r1, [r4, 0x2] ldr r0, [r5, 0x4] adds r0, r1 bl sub_8058378 ldr r2, [r5, 0x8] adds r0, r6, 0 adds r1, r7, 0 bl sub_80583CC _0805845C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8058428 thumb_func_start sub_8058464 sub_8058464: @ 8058464 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _0805848A movs r2, 0x8 ldrsh r1, [r4, r2] lsls r1, 2 adds r1, r5, r1 movs r0, 0xC ldrsh r2, [r4, r0] movs r0, 0xE ldrsh r3, [r4, r0] adds r0, r6, 0 bl sub_8058428 _0805848A: movs r2, 0xA ldrsh r1, [r4, r2] movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r5 ldrb r0, [r0] cmp r1, r0 bne _080584B8 movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldrb r0, [r0] cmp r0, 0 bne _080584BE movs r0, 0 b _080584C0 _080584B8: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] _080584BE: movs r0, 0x1 _080584C0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8058464 thumb_func_start task50_overworld_door task50_overworld_door: @ 80584C8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r2, r4, 2 adds r2, r4 lsls r2, 3 ldr r0, _080584FC adds r2, r0 ldrh r1, [r2] lsls r1, 16 ldrh r0, [r2, 0x2] orrs r1, r0 ldrh r0, [r2, 0x4] lsls r0, 16 ldrh r3, [r2, 0x6] orrs r0, r3 bl sub_8058464 cmp r0, 0 bne _080584F6 adds r0, r4, 0 bl DestroyTask _080584F6: pop {r4} pop {r0} bx r0 .align 2, 0 _080584FC: .4byte 0x03004b28 thumb_func_end task50_overworld_door thumb_func_start door_frame_last door_frame_last: @ 8058500 push {lr} adds r1, r0, 0 b _08058508 _08058506: adds r1, 0x4 _08058508: ldrb r0, [r1] cmp r0, 0 bne _08058506 subs r0, r1, 0x4 pop {r1} bx r1 thumb_func_end door_frame_last thumb_func_start door_find door_find: @ 8058514 push {lr} adds r2, r0, 0 lsls r1, 16 lsrs r1, 16 b _0805852A _0805851E: ldrh r0, [r2] cmp r0, r1 bne _08058528 adds r0, r2, 0 b _08058532 _08058528: adds r2, 0xC _0805852A: ldr r0, [r2, 0x4] cmp r0, 0 bne _0805851E movs r0, 0 _08058532: pop {r1} bx r1 thumb_func_end door_find thumb_func_start task_overworld_door_add_if_inactive task_overworld_door_add_if_inactive: @ 8058538 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 mov r8, r3 ldr r4, _08058584 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0805858C adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, _08058588 adds r1, r2 strh r7, [r1, 0xC] mov r2, r8 strh r2, [r1, 0xE] strh r5, [r1, 0x2] lsrs r2, r5, 16 strh r2, [r1] strh r6, [r1, 0x6] lsrs r2, r6, 16 strh r2, [r1, 0x4] lsls r0, 24 asrs r0, 24 b _08058590 .align 2, 0 _08058584: .4byte task50_overworld_door _08058588: .4byte 0x03004b28 _0805858C: movs r0, 0x1 negs r0, r0 _08058590: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end task_overworld_door_add_if_inactive thumb_func_start sub_805859C sub_805859C: @ 805859C push {lr} adds r0, r1, 0 adds r1, r2, 0 bl sub_805840C pop {r0} bx r0 thumb_func_end sub_805859C thumb_func_start sub_80585AC sub_80585AC: @ 80585AC push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl door_find adds r4, r0, 0 cmp r4, 0 beq _080585E2 ldr r1, _080585E8 adds r0, r1, 0 bl door_frame_last adds r1, r0, 0 adds r0, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl sub_8058428 _080585E2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080585E8: .4byte gUnknown_0830F87C thumb_func_end sub_80585AC thumb_func_start sub_80585EC sub_80585EC: @ 80585EC push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl door_find cmp r0, 0 beq _08058620 ldr r1, _0805861C adds r2, r5, 0 adds r3, r6, 0 bl task_overworld_door_add_if_inactive lsls r0, 24 asrs r0, 24 b _08058624 .align 2, 0 _0805861C: .4byte gUnknown_0830F87C _08058620: movs r0, 0x1 negs r0, r0 _08058624: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80585EC thumb_func_start sub_805862C sub_805862C: @ 805862C push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r0, r5, 0 adds r1, r6, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl door_find cmp r0, 0 beq _08058660 ldr r1, _0805865C adds r2, r5, 0 adds r3, r6, 0 bl task_overworld_door_add_if_inactive lsls r0, 24 asrs r0, 24 b _08058664 .align 2, 0 _0805865C: .4byte gUnknown_0830F890 _08058660: movs r0, 0x1 negs r0, r0 _08058664: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805862C thumb_func_start cur_mapdata_get_door_x2_at cur_mapdata_get_door_x2_at: @ 805866C push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 adds r1, r2, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl door_find cmp r0, 0 beq _08058690 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 b _08058694 _08058690: movs r0, 0x1 negs r0, r0 _08058694: pop {r4} pop {r1} bx r1 thumb_func_end cur_mapdata_get_door_x2_at thumb_func_start unref_sub_805869C unref_sub_805869C: @ 805869C push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080586B0 adds r1, r3, 0 bl sub_80585EC pop {r0} bx r0 .align 2, 0 _080586B0: .4byte gDoorAnimGraphicsTable thumb_func_end unref_sub_805869C thumb_func_start sub_80586B4 sub_80586B4: @ 80586B4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8056EAC lsls r0, 24 cmp r0, 0 beq _080586D6 ldr r0, _080586DC adds r1, r4, 0 adds r2, r5, 0 bl sub_80585AC _080586D6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080586DC: .4byte gDoorAnimGraphicsTable thumb_func_end sub_80586B4 thumb_func_start sub_80586E0 sub_80586E0: @ 80586E0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8056EAC lsls r0, 24 cmp r0, 0 beq _08058702 ldr r0, _08058708 adds r1, r4, 0 adds r2, r5, 0 bl sub_805859C _08058702: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08058708: .4byte gDoorAnimGraphicsTable thumb_func_end sub_80586E0 thumb_func_start sub_805870C sub_805870C: @ 805870C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8056EAC lsls r0, 24 cmp r0, 0 beq _08058738 ldr r0, _08058734 adds r1, r4, 0 adds r2, r5, 0 bl sub_805862C lsls r0, 24 asrs r0, 24 b _0805873C .align 2, 0 _08058734: .4byte gDoorAnimGraphicsTable _08058738: movs r0, 0x1 negs r0, r0 _0805873C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805870C thumb_func_start task_overworld_door_add_if_role_69_for_opening_door_at task_overworld_door_add_if_role_69_for_opening_door_at: @ 8058744 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8056EAC lsls r0, 24 cmp r0, 0 beq _08058770 ldr r0, _0805876C adds r1, r4, 0 adds r2, r5, 0 bl sub_80585EC lsls r0, 24 asrs r0, 24 b _08058774 .align 2, 0 _0805876C: .4byte gDoorAnimGraphicsTable _08058770: movs r0, 0x1 negs r0, r0 _08058774: pop {r4,r5} pop {r1} bx r1 thumb_func_end task_overworld_door_add_if_role_69_for_opening_door_at thumb_func_start sub_805877C sub_805877C: @ 805877C push {lr} ldr r0, _0805878C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0805878C: .4byte task50_overworld_door thumb_func_end sub_805877C thumb_func_start sub_8058790 sub_8058790: @ 8058790 push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080587A8 adds r1, r3, 0 bl cur_mapdata_get_door_x2_at lsls r0, 24 cmp r0, 0 beq _080587AC movs r0, 0x12 b _080587AE .align 2, 0 _080587A8: .4byte gDoorAnimGraphicsTable _080587AC: movs r0, 0x8 _080587AE: pop {r1} bx r1 thumb_func_end sub_8058790 thumb_func_start sub_80587B4 sub_80587B4: @ 80587B4 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, _080587D0 adds r0, r2 ldr r2, _080587D4 bl meta_step pop {r0} bx r0 .align 2, 0 _080587D0: .4byte 0x030048a0 _080587D4: .4byte sub_80587D8 thumb_func_end sub_80587B4 thumb_func_start sub_80587D8 sub_80587D8: @ 80587D8 movs r0, 0 bx lr thumb_func_end sub_80587D8 thumb_func_start player_step player_step: @ 80587DC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r6, r2, 16 ldr r4, _0805884C ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08058850 adds r5, r0, r1 adds r0, r5, 0 bl sub_8059D60 ldrb r0, [r4, 0x6] cmp r0, 0 bne _08058842 adds r0, r7, 0 adds r1, r6, 0 bl sub_80E5B38 adds r0, r5, 0 mov r1, r8 bl sub_8058854 lsls r0, 24 cmp r0, 0 bne _08058842 adds r0, r5, 0 bl npc_clear_strange_bits bl DoPlayerAvatarTransition bl TryDoMetatileBehaviorForcedMovment lsls r0, 24 cmp r0, 0 bne _08058842 mov r0, r8 adds r1, r7, 0 adds r2, r6, 0 bl MovePlayerAvatarUsingKeypadInput bl PlayerAllowForcedMovementIfMovingSameDirection _08058842: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805884C: .4byte 0x0202e858 _08058850: .4byte 0x030048a0 thumb_func_end player_step thumb_func_start sub_8058854 sub_8058854: @ 8058854 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _0805889E adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 bne _0805889E adds r0, r4, 0 bl FieldObjectGetSpecialAnim lsls r0, 24 movs r1, 0xE7 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x3 bhi _0805889A cmp r5, 0 beq _0805889A ldrb r0, [r4, 0x18] lsrs r0, 4 cmp r0, r5 beq _0805889A adds r0, r4, 0 bl FieldObjectClearAnim b _0805889E _0805889A: movs r0, 0x1 b _080588A0 _0805889E: movs r0, 0 _080588A0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8058854 thumb_func_start npc_clear_strange_bits npc_clear_strange_bits: @ 80588A8 ldrb r2, [r0, 0x1] movs r1, 0x11 negs r1, r1 ands r1, r2 movs r2, 0x5 negs r2, r2 ands r1, r2 adds r2, 0x2 ands r1, r2 strb r1, [r0, 0x1] ldr r2, _080588C8 ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] bx lr .align 2, 0 _080588C8: .4byte 0x0202e858 thumb_func_end npc_clear_strange_bits thumb_func_start MovePlayerAvatarUsingKeypadInput MovePlayerAvatarUsingKeypadInput: @ 80588CC push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _080588F0 ldrb r1, [r0] movs r0, 0x6 ands r0, r1 cmp r0, 0 beq _080588F4 adds r0, r3, 0 adds r1, r4, 0 bl MovePlayerOnBike b _080588FC .align 2, 0 _080588F0: .4byte 0x0202e858 _080588F4: adds r0, r3, 0 adds r1, r2, 0 bl MovePlayerNotOnBike _080588FC: pop {r4} pop {r0} bx r0 thumb_func_end MovePlayerAvatarUsingKeypadInput thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection PlayerAllowForcedMovementIfMovingSameDirection: @ 8058904 push {lr} ldr r2, _0805891C ldrb r0, [r2, 0x2] cmp r0, 0x2 bne _08058916 ldrb r1, [r2] movs r0, 0xDF ands r0, r1 strb r0, [r2] _08058916: pop {r0} bx r0 .align 2, 0 _0805891C: .4byte 0x0202e858 thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection thumb_func_start TryDoMetatileBehaviorForcedMovment TryDoMetatileBehaviorForcedMovment: @ 8058920 push {r4,lr} ldr r4, _08058940 bl GetForcedMovementByMetatileBehavior lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08058940: .4byte gUnknown_0830FBA0 thumb_func_end TryDoMetatileBehaviorForcedMovment thumb_func_start GetForcedMovementByMetatileBehavior GetForcedMovementByMetatileBehavior: @ 8058944 push {r4-r6,lr} ldr r3, _08058980 ldrb r1, [r3] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _08058996 ldr r2, _08058984 ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r5, [r0, 0x1E] movs r4, 0 ldr r6, _08058988 _08058964: lsls r0, r4, 2 adds r0, r6 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _0805898C adds r0, r4, 0x1 lsls r0, 24 lsrs r0, 24 b _08058998 .align 2, 0 _08058980: .4byte 0x0202e858 _08058984: .4byte 0x030048a0 _08058988: .4byte gUnknown_0830FB58 _0805898C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x11 bls _08058964 _08058996: movs r0, 0 _08058998: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetForcedMovementByMetatileBehavior thumb_func_start ForcedMovement_None ForcedMovement_None: @ 80589A0 push {r4,lr} ldr r4, _080589E4 ldrb r1, [r4] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080589DA ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080589E8 adds r0, r1 ldrb r2, [r0, 0x1] movs r1, 0x3 negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x1] ldrb r1, [r0, 0x18] lsls r1, 28 lsrs r1, 28 bl FieldObjectSetDirection ldrb r1, [r4] movs r0, 0xBF ands r0, r1 strb r0, [r4] _080589DA: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080589E4: .4byte 0x0202e858 _080589E8: .4byte 0x030048a0 thumb_func_end ForcedMovement_None thumb_func_start DoForcedMovement DoForcedMovement: @ 80589EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r1 lsls r0, 24 lsrs r5, r0, 24 ldr r6, _08058A2C adds r0, r5, 0 bl CheckForPlayerAvatarCollision lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 ldrb r0, [r6] movs r1, 0x40 mov r10, r1 movs r1, 0 mov r8, r1 mov r1, r10 orrs r0, r1 strb r0, [r6] cmp r4, 0 beq _08058A48 bl ForcedMovement_None cmp r4, 0x4 bhi _08058A30 movs r0, 0 b _08058A54 .align 2, 0 _08058A2C: .4byte 0x0202e858 _08058A30: cmp r7, 0x6 bne _08058A3A adds r0, r5, 0 bl PlayerJumpLedge _08058A3A: ldrb r0, [r6] mov r1, r10 orrs r0, r1 strb r0, [r6] movs r0, 0x2 strb r0, [r6, 0x2] b _08058A52 _08058A48: movs r0, 0x2 strb r0, [r6, 0x2] adds r0, r5, 0 bl _call_via_r9 _08058A52: movs r0, 0x1 _08058A54: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end DoForcedMovement thumb_func_start DoForcedMovementInCurrentDirection DoForcedMovementInCurrentDirection: @ 8058A64 push {lr} adds r1, r0, 0 ldr r0, _08058A90 ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _08058A94 adds r0, r2 ldrb r2, [r0, 0x1] movs r3, 0x4 orrs r2, r3 strb r2, [r0, 0x1] ldrb r0, [r0, 0x18] lsrs r0, 4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058A90: .4byte 0x0202e858 _08058A94: .4byte 0x030048a0 thumb_func_end DoForcedMovementInCurrentDirection thumb_func_start ForcedMovement_Slip ForcedMovement_Slip: @ 8058A98 push {lr} ldr r0, _08058AA8 bl DoForcedMovementInCurrentDirection lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058AA8: .4byte sub_80593C4 thumb_func_end ForcedMovement_Slip thumb_func_start sub_8058AAC sub_8058AAC: @ 8058AAC push {lr} ldr r1, _08058AC0 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058AC0: .4byte PlayerGoSpeed0 thumb_func_end sub_8058AAC thumb_func_start sub_8058AC4 sub_8058AC4: @ 8058AC4 push {lr} ldr r1, _08058AD8 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058AD8: .4byte PlayerGoSpeed0 thumb_func_end sub_8058AC4 thumb_func_start sub_8058ADC sub_8058ADC: @ 8058ADC push {lr} ldr r1, _08058AF0 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058AF0: .4byte PlayerGoSpeed0 thumb_func_end sub_8058ADC thumb_func_start sub_8058AF4 sub_8058AF4: @ 8058AF4 push {lr} ldr r1, _08058B08 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058B08: .4byte PlayerGoSpeed0 thumb_func_end sub_8058AF4 thumb_func_start sub_8058B0C sub_8058B0C: @ 8058B0C push {lr} ldr r1, _08058B20 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058B20: .4byte npc_use_some_d2s thumb_func_end sub_8058B0C thumb_func_start sub_8058B24 sub_8058B24: @ 8058B24 push {lr} ldr r1, _08058B38 movs r0, 0x2 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058B38: .4byte npc_use_some_d2s thumb_func_end sub_8058B24 thumb_func_start sub_8058B3C sub_8058B3C: @ 8058B3C push {lr} ldr r1, _08058B50 movs r0, 0x3 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058B50: .4byte npc_use_some_d2s thumb_func_end sub_8058B3C thumb_func_start sub_8058B54 sub_8058B54: @ 8058B54 push {lr} ldr r1, _08058B68 movs r0, 0x4 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058B68: .4byte npc_use_some_d2s thumb_func_end sub_8058B54 thumb_func_start ForcedMovement_Slide ForcedMovement_Slide: @ 8058B6C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08058B9C ldrb r3, [r2, 0x5] lsls r2, r3, 3 adds r2, r3 lsls r2, 2 ldr r3, _08058BA0 adds r2, r3 ldrb r3, [r2, 0x1] movs r4, 0x4 orrs r3, r4 movs r4, 0x2 orrs r3, r4 strb r3, [r2, 0x1] bl DoForcedMovement lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .align 2, 0 _08058B9C: .4byte 0x0202e858 _08058BA0: .4byte 0x030048a0 thumb_func_end ForcedMovement_Slide thumb_func_start ForcedMovement_SlideSouth ForcedMovement_SlideSouth: @ 8058BA4 push {lr} ldr r1, _08058BB8 movs r0, 0x1 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058BB8: .4byte sub_80593C4 thumb_func_end ForcedMovement_SlideSouth thumb_func_start ForcedMovement_SlideNorth ForcedMovement_SlideNorth: @ 8058BBC push {lr} ldr r1, _08058BD0 movs r0, 0x2 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058BD0: .4byte sub_80593C4 thumb_func_end ForcedMovement_SlideNorth thumb_func_start ForcedMovement_SlideWest ForcedMovement_SlideWest: @ 8058BD4 push {lr} ldr r1, _08058BE8 movs r0, 0x3 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058BE8: .4byte sub_80593C4 thumb_func_end ForcedMovement_SlideWest thumb_func_start ForcedMovement_SlideEast ForcedMovement_SlideEast: @ 8058BEC push {lr} ldr r1, _08058C00 movs r0, 0x4 bl ForcedMovement_Slide lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08058C00: .4byte sub_80593C4 thumb_func_end ForcedMovement_SlideEast thumb_func_start sub_8058C04 sub_8058C04: @ 8058C04 push {lr} bl sub_8059F94 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058C04 thumb_func_start sub_8058C10 sub_8058C10: @ 8058C10 push {lr} bl sub_805A06C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8058C10 thumb_func_start ForcedMovement_MuddySlope ForcedMovement_MuddySlope: @ 8058C1C push {r4,lr} ldr r0, _08058C60 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08058C64 adds r4, r0, r1 ldrb r1, [r4, 0x18] movs r0, 0xF0 ands r0, r1 cmp r0, 0x20 bne _08058C42 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x3 bgt _08058C6C _08058C42: movs r0, 0 bl sub_80E6010 ldrb r0, [r4, 0x1] movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x1] ldr r1, _08058C68 movs r0, 0x1 bl DoForcedMovement lsls r0, 24 lsrs r0, 24 b _08058C6E .align 2, 0 _08058C60: .4byte 0x0202e858 _08058C64: .4byte 0x030048a0 _08058C68: .4byte sub_80593C4 _08058C6C: movs r0, 0 _08058C6E: pop {r4} pop {r1} bx r1 thumb_func_end ForcedMovement_MuddySlope thumb_func_start MovePlayerNotOnBike MovePlayerNotOnBike: @ 8058C74 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 16 lsrs r5, 16 ldr r6, _08058CA0 adds r0, r4, 0 bl CheckMovementInputNotOnBike lsls r0, 24 lsrs r0, 22 adds r0, r6 ldr r2, [r0] adds r0, r4, 0 adds r1, r5, 0 bl _call_via_r2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08058CA0: .4byte gUnknown_0830FBEC thumb_func_end MovePlayerNotOnBike thumb_func_start CheckMovementInputNotOnBike CheckMovementInputNotOnBike: @ 8058CA4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08058CBC ldr r0, _08058CB8 strb r4, [r0, 0x2] movs r0, 0 b _08058CDE .align 2, 0 _08058CB8: .4byte 0x0202e858 _08058CBC: bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _08058CD8 ldr r1, _08058CD4 ldrb r0, [r1, 0x2] cmp r0, 0x2 beq _08058CD8 movs r0, 0x1 b _08058CDC .align 2, 0 _08058CD4: .4byte 0x0202e858 _08058CD8: ldr r1, _08058CE4 movs r0, 0x2 _08058CDC: strb r0, [r1, 0x2] _08058CDE: pop {r4} pop {r1} bx r1 .align 2, 0 _08058CE4: .4byte 0x0202e858 thumb_func_end CheckMovementInputNotOnBike thumb_func_start PlayerNotOnBikeNotMoving PlayerNotOnBikeNotMoving: @ 8058CE8 push {lr} bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection pop {r0} bx r0 thumb_func_end PlayerNotOnBikeNotMoving thumb_func_start PlayerNotOnBikeTurningInPlace PlayerNotOnBikeTurningInPlace: @ 8058CFC push {lr} lsls r0, 24 lsrs r0, 24 bl PlayerTurnInPlace pop {r0} bx r0 thumb_func_end PlayerNotOnBikeTurningInPlace thumb_func_start sub_8058D0C sub_8058D0C: @ 8058D0C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r4, r1, 16 adds r0, r5, 0 bl CheckForPlayerAvatarCollision lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0 beq _08058D44 cmp r0, 0x6 bne _08058D32 adds r0, r5, 0 bl PlayerJumpLedge b _08058DAE _08058D32: subs r0, r1, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _08058DAE adds r0, r5, 0 bl PlayerNotOnBikeCollide b _08058DAE _08058D44: ldr r6, _08058D58 ldrb r1, [r6] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08058D5C adds r0, r5, 0 bl sub_80593C4 b _08058DAE .align 2, 0 _08058D58: .4byte 0x0202e858 _08058D5C: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08058DA8 movs r0, 0x2 ands r4, r0 cmp r4, 0 beq _08058DA8 movs r0, 0x86 lsls r0, 4 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08058DA8 ldr r2, _08058DA4 ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1E] bl sub_80E5DEC lsls r0, 24 cmp r0, 0 bne _08058DA8 adds r0, r5, 0 bl sub_805940C ldrb r1, [r6] movs r0, 0x80 orrs r0, r1 strb r0, [r6] b _08058DAE .align 2, 0 _08058DA4: .4byte 0x030048a0 _08058DA8: adds r0, r5, 0 bl PlayerGoSpeed0 _08058DAE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8058D0C thumb_func_start CheckForPlayerAvatarCollision CheckForPlayerAvatarCollision: @ 8058DB4 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, _08058E18 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08058E1C adds r4, r0 ldrh r1, [r4, 0x10] add r0, sp, 0x4 strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x6 strh r0, [r5] adds r0, r6, 0 add r1, sp, 0x4 adds r2, r5, 0 bl MoveCoords add r0, sp, 0x4 movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 add r1, sp, 0x4 movs r3, 0 ldrsh r1, [r1, r3] movs r3, 0 ldrsh r2, [r5, r3] str r0, [sp] adds r0, r4, 0 adds r3, r6, 0 bl CheckForFieldObjectCollision lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08058E18: .4byte 0x0202e858 _08058E1C: .4byte 0x030048a0 thumb_func_end CheckForPlayerAvatarCollision thumb_func_start CheckForFieldObjectCollision CheckForFieldObjectCollision: @ 8058E20 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] lsls r1, 16 lsls r2, 16 lsls r3, 24 lsrs r6, r3, 24 lsls r4, 24 lsrs r4, 24 mov r10, r4 lsrs r7, r1, 16 asrs r5, r1, 16 lsrs r1, r2, 16 mov r9, r1 asrs r4, r2, 16 adds r1, r5, 0 adds r2, r4, 0 adds r3, r6, 0 bl npc_block_way lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] cmp r0, 0x3 bne _08058E70 adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8058EF0 lsls r0, 24 cmp r0, 0 beq _08058E70 movs r0, 0x5 b _08058EDE _08058E70: lsls r5, r7, 16 asrs r0, r5, 16 mov r8, r0 mov r1, r9 lsls r4, r1, 16 asrs r7, r4, 16 adds r1, r7, 0 adds r2, r6, 0 bl ShouldJumpLedge lsls r0, 24 cmp r0, 0 beq _08058E94 movs r0, 0x2B bl sav12_xor_increment movs r0, 0x6 b _08058EDE _08058E94: mov r0, sp ldrb r0, [r0] cmp r0, 0x4 bne _08058EB0 mov r0, r8 adds r1, r7, 0 adds r2, r6, 0 bl sub_8058F6C lsls r0, 24 cmp r0, 0 beq _08058EB0 movs r0, 0x7 b _08058EDE _08058EB0: mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _08058EDA asrs r5, 16 asrs r4, 16 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl CheckForRotatingGatePuzzleCollision cmp r0, 0 beq _08058ECE movs r0, 0x8 b _08058EDE _08058ECE: adds r0, r5, 0 adds r1, r4, 0 mov r2, r10 mov r3, sp bl check_acro_bike_metatile _08058EDA: mov r0, sp ldrb r0, [r0] _08058EDE: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end CheckForFieldObjectCollision thumb_func_start sub_8058EF0 sub_8058EF0: @ 8058EF0 push {r4-r6,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _08058F3C ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08058F40 lsls r5, r3, 16 asrs r0, r5, 16 lsls r4, 16 asrs r1, r4, 16 bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08058F40 lsrs r0, r5, 16 lsrs r1, r4, 16 movs r2, 0x3 bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 bne _08058F40 adds r0, r6, 0 bl sub_805A20C movs r0, 0x1 b _08058F42 .align 2, 0 _08058F3C: .4byte 0x0202e858 _08058F40: movs r0, 0 _08058F42: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8058EF0 thumb_func_start ShouldJumpLedge ShouldJumpLedge: @ 8058F48 push {lr} lsls r2, 24 lsrs r2, 24 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl GetLedgeJumpDirection lsls r0, 24 cmp r0, 0 bne _08058F64 movs r0, 0 b _08058F66 _08058F64: movs r0, 0x1 _08058F66: pop {r1} bx r1 thumb_func_end ShouldJumpLedge thumb_func_start sub_8058F6C sub_8058F6C: @ 8058F6C push {r4-r7,lr} sub sp, 0x4 mov r3, sp strh r0, [r3] mov r5, sp adds r5, 0x2 strh r1, [r5] lsls r2, 24 lsrs r7, r2, 24 ldr r0, _08059004 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0805900C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl GetFieldObjectIdByXY lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x10 beq _0805900C ldr r0, _08059008 lsls r1, r6, 3 adds r1, r6 lsls r1, 2 adds r4, r1, r0 ldrb r0, [r4, 0x5] cmp r0, 0x57 bne _0805900C ldrh r1, [r4, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r4, 0x12] strh r0, [r5] adds r0, r7, 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] adds r0, r4, 0 adds r3, r7, 0 bl npc_block_way lsls r0, 24 cmp r0, 0 bne _0805900C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl sub_8056F08 lsls r0, 24 cmp r0, 0 bne _0805900C adds r0, r6, 0 adds r1, r7, 0 bl task_add_bump_boulder movs r0, 0x1 b _0805900E .align 2, 0 _08059004: .4byte 0x00000829 _08059008: .4byte 0x030048a0 _0805900C: movs r0, 0 _0805900E: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8058F6C thumb_func_start check_acro_bike_metatile check_acro_bike_metatile: @ 8059018 push {r4-r7,lr} adds r6, r3, 0 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 ldr r7, _08059040 _08059024: lsls r0, r4, 2 adds r0, r7 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _08059048 ldr r0, _08059044 adds r0, r4, r0 ldrb r0, [r0] strb r0, [r6] b _08059052 .align 2, 0 _08059040: .4byte gUnknown_0830FBF8 _08059044: .4byte gUnknown_0830FC0C _08059048: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08059024 _08059052: pop {r4-r7} pop {r0} bx r0 thumb_func_end check_acro_bike_metatile thumb_func_start SetPlayerAvatarTransitionFlags SetPlayerAvatarTransitionFlags: @ 8059058 push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, _08059070 ldrb r1, [r2, 0x1] orrs r0, r1 strb r0, [r2, 0x1] bl DoPlayerAvatarTransition pop {r0} bx r0 .align 2, 0 _08059070: .4byte 0x0202e858 thumb_func_end SetPlayerAvatarTransitionFlags thumb_func_start DoPlayerAvatarTransition DoPlayerAvatarTransition: @ 8059074 push {r4,r5,lr} ldr r0, _080590BC ldrb r4, [r0, 0x1] cmp r4, 0 beq _080590B4 movs r5, 0 _08059080: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _080590A2 ldr r0, _080590C0 lsls r2, r5, 2 adds r2, r0 ldr r0, _080590BC ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080590C4 adds r0, r1 ldr r1, [r2] bl _call_via_r1 _080590A2: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsrs r4, 1 cmp r5, 0x7 bls _08059080 ldr r1, _080590BC movs r0, 0 strb r0, [r1, 0x1] _080590B4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080590BC: .4byte 0x0202e858 _080590C0: .4byte gUnknown_0830FC14 _080590C4: .4byte 0x030048a0 thumb_func_end DoPlayerAvatarTransition thumb_func_start nullsub_49 nullsub_49: @ 80590C8 bx lr thumb_func_end nullsub_49 thumb_func_start PlayerAvatarTransition_Normal PlayerAvatarTransition_Normal: @ 80590CC push {r4,lr} adds r4, r0, 0 movs r0, 0 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn movs r0, 0x1 bl SetPlayerAvatarStateMask pop {r4} pop {r0} bx r0 thumb_func_end PlayerAvatarTransition_Normal thumb_func_start PlayerAvatarTransition_MachBike PlayerAvatarTransition_MachBike: @ 80590F8 push {r4,lr} adds r4, r0, 0 movs r0, 0x1 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn movs r0, 0x2 bl SetPlayerAvatarStateMask movs r0, 0 movs r1, 0 bl sub_80E5FCC pop {r4} pop {r0} bx r0 thumb_func_end PlayerAvatarTransition_MachBike thumb_func_start PlayerAvatarTransition_AcroBike PlayerAvatarTransition_AcroBike: @ 805912C push {r4,lr} adds r4, r0, 0 movs r0, 0x2 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn movs r0, 0x4 bl SetPlayerAvatarStateMask movs r0, 0 movs r1, 0 bl sub_80E5FCC bl sub_80E6084 pop {r4} pop {r0} bx r0 thumb_func_end PlayerAvatarTransition_AcroBike thumb_func_start PlayerAvatarTransition_Surfing PlayerAvatarTransition_Surfing: @ 8059164 push {r4,lr} adds r4, r0, 0 movs r0, 0x3 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn movs r0, 0x8 bl SetPlayerAvatarStateMask ldr r1, _080591B8 movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] str r0, [r1, 0x4] ldr r0, _080591BC ldrb r0, [r0, 0x5] str r0, [r1, 0x8] movs r0, 0x8 bl FieldEffectStart lsls r0, 24 lsrs r0, 24 strb r0, [r4, 0x1A] movs r1, 0x1 bl sub_8127ED0 pop {r4} pop {r0} bx r0 .align 2, 0 _080591B8: .4byte 0x0202ff84 _080591BC: .4byte 0x0202e858 thumb_func_end PlayerAvatarTransition_Surfing thumb_func_start PlayerAvatarTransition_Underwater PlayerAvatarTransition_Underwater: @ 80591C0 push {r4,lr} adds r4, r0, 0 movs r0, 0x4 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn movs r0, 0x10 bl SetPlayerAvatarStateMask ldrb r0, [r4, 0x4] bl sub_8128124 strb r0, [r4, 0x1A] pop {r4} pop {r0} bx r0 thumb_func_end PlayerAvatarTransition_Underwater thumb_func_start sub_80591F4 sub_80591F4: @ 80591F4 ldr r2, _08059200 ldrb r1, [r2] movs r0, 0x20 orrs r0, r1 strb r0, [r2] bx lr .align 2, 0 _08059200: .4byte 0x0202e858 thumb_func_end sub_80591F4 thumb_func_start sub_8059204 sub_8059204: @ 8059204 push {r4,lr} ldr r4, _08059230 movs r0, 0 strb r0, [r4, 0x3] bl PlayerIsAnimActive lsls r0, 24 cmp r0, 0 beq _08059242 bl PlayerCheckIfAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 bne _08059234 bl player_is_anim_in_certain_ranges lsls r0, 24 cmp r0, 0 bne _08059242 movs r0, 0x1 b _08059240 .align 2, 0 _08059230: .4byte 0x0202e858 _08059234: bl sub_80592A4 lsls r0, 24 cmp r0, 0 bne _08059242 movs r0, 0x2 _08059240: strb r0, [r4, 0x3] _08059242: pop {r4} pop {r0} bx r0 thumb_func_end sub_8059204 thumb_func_start player_is_anim_in_certain_ranges player_is_anim_in_certain_ranges: @ 8059248 push {lr} ldr r2, _08059294 ldr r0, _08059298 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x1C] cmp r1, 0x3 bls _0805928E adds r0, r1, 0 subs r0, 0x10 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _0805928E adds r0, r1, 0 subs r0, 0x19 lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0805928E adds r0, r1, 0 subs r0, 0x62 lsls r0, 24 lsrs r0, 24 cmp r0, 0xB bls _0805928E adds r0, r1, 0 subs r0, 0x7A lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _0805929C _0805928E: movs r0, 0x1 b _0805929E .align 2, 0 _08059294: .4byte 0x030048a0 _08059298: .4byte 0x0202e858 _0805929C: movs r0, 0 _0805929E: pop {r1} bx r1 thumb_func_end player_is_anim_in_certain_ranges thumb_func_start sub_80592A4 sub_80592A4: @ 80592A4 push {lr} bl player_is_anim_in_certain_ranges lsls r0, 24 cmp r0, 0 beq _080592C0 ldr r0, _080592BC ldrb r0, [r0, 0x2] cmp r0, 0x1 beq _080592C0 movs r0, 0x1 b _080592C2 .align 2, 0 _080592BC: .4byte 0x0202e858 _080592C0: movs r0, 0 _080592C2: pop {r1} bx r1 thumb_func_end sub_80592A4 thumb_func_start PlayerIsAnimActive PlayerIsAnimActive: @ 80592C8 push {lr} ldr r0, _080592E4 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080592E8 adds r0, r1 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080592E4: .4byte 0x0202e858 _080592E8: .4byte 0x030048a0 thumb_func_end PlayerIsAnimActive thumb_func_start PlayerCheckIfAnimFinishedOrInactive PlayerCheckIfAnimFinishedOrInactive: @ 80592EC push {lr} ldr r0, _08059308 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805930C adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08059308: .4byte 0x0202e858 _0805930C: .4byte 0x030048a0 thumb_func_end PlayerCheckIfAnimFinishedOrInactive thumb_func_start player_set_x22 player_set_x22: @ 8059310 ldr r3, _08059324 ldr r1, _08059328 ldrb r2, [r1, 0x5] lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r3 adds r1, 0x22 strb r0, [r1] bx lr .align 2, 0 _08059324: .4byte 0x030048a0 _08059328: .4byte 0x0202e858 thumb_func_end player_set_x22 thumb_func_start player_get_x22 player_get_x22: @ 805932C ldr r2, _08059340 ldr r0, _08059344 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] bx lr .align 2, 0 _08059340: .4byte 0x030048a0 _08059344: .4byte 0x0202e858 thumb_func_end player_get_x22 thumb_func_start sub_8059348 sub_8059348: @ 8059348 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08059368 ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805936C adds r0, r2 bl FieldObjectForceSetSpecialAnim pop {r0} bx r0 .align 2, 0 _08059368: .4byte 0x0202e858 _0805936C: .4byte 0x030048a0 thumb_func_end sub_8059348 thumb_func_start player_npc_set_state_and_x22_etc player_npc_set_state_and_x22_etc: @ 8059370 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl PlayerIsAnimActive lsls r0, 24 cmp r0, 0 bne _0805939E adds r0, r4, 0 bl player_set_x22 ldr r0, _080593A4 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080593A8 adds r0, r1 adds r1, r5, 0 bl FieldObjectSetSpecialAnim _0805939E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080593A4: .4byte 0x0202e858 _080593A8: .4byte 0x030048a0 thumb_func_end player_npc_set_state_and_x22_etc thumb_func_start PlayerGoSpeed0 PlayerGoSpeed0: @ 80593AC push {lr} lsls r0, 24 lsrs r0, 24 bl GetGoSpeed0AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end PlayerGoSpeed0 thumb_func_start sub_80593C4 sub_80593C4: @ 80593C4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060744 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_80593C4 thumb_func_start npc_use_some_d2s npc_use_some_d2s: @ 80593DC push {lr} lsls r0, 24 lsrs r0, 24 bl d2s_08064034 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end npc_use_some_d2s thumb_func_start sub_80593F4 sub_80593F4: @ 80593F4 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_806079C lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_80593F4 thumb_func_start sub_805940C sub_805940C: @ 805940C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80607F4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_805940C thumb_func_start PlayerOnBikeCollide PlayerOnBikeCollide: @ 8059424 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl PlayCollisionSoundIfNotFacingWarp adds r0, r4, 0 bl GetStepInPlaceDelay16AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end PlayerOnBikeCollide thumb_func_start PlayerNotOnBikeCollide PlayerNotOnBikeCollide: @ 8059448 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl PlayCollisionSoundIfNotFacingWarp adds r0, r4, 0 bl GetStepInPlaceDelay32AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end PlayerNotOnBikeCollide thumb_func_start PlayerFaceDirection PlayerFaceDirection: @ 805946C push {lr} lsls r0, 24 lsrs r0, 24 bl GetFaceDirectionAnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end PlayerFaceDirection thumb_func_start PlayerTurnInPlace PlayerTurnInPlace: @ 8059484 push {lr} lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay8AnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end PlayerTurnInPlace thumb_func_start PlayerJumpLedge PlayerJumpLedge: @ 805949C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0xA bl audio_play adds r0, r4, 0 bl GetJumpLedgeAnimId lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end PlayerJumpLedge thumb_func_start sub_80594C0 sub_80594C0: @ 80594C0 push {r4,lr} ldr r4, _080594FC ldrb r0, [r4, 0x3] cmp r0, 0x2 beq _080594CE cmp r0, 0 bne _080594F6 _080594CE: bl player_should_look_direction_be_enforced_upon_movement lsls r0, 24 cmp r0, 0 beq _080594F6 ldr r2, _08059500 ldrb r1, [r4, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId lsls r0, 24 lsrs r0, 24 bl sub_8059348 _080594F6: pop {r4} pop {r0} bx r0 .align 2, 0 _080594FC: .4byte 0x0202e858 _08059500: .4byte 0x030048a0 thumb_func_end sub_80594C0 thumb_func_start sub_8059504 sub_8059504: @ 8059504 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_80609D8 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_8059504 thumb_func_start sub_805951C sub_805951C: @ 805951C push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060A04 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_805951C thumb_func_start sub_8059534 sub_8059534: @ 8059534 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060A30 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_8059534 thumb_func_start sub_805954C sub_805954C: @ 805954C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 bl audio_play adds r0, r4, 0 bl sub_8060A5C lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end sub_805954C thumb_func_start sub_8059570 sub_8059570: @ 8059570 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 bl audio_play adds r0, r4, 0 bl sub_8060A88 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end sub_8059570 thumb_func_start sub_8059594 sub_8059594: @ 8059594 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 bl audio_play adds r0, r4, 0 bl sub_8060AB4 lsls r0, 24 lsrs r0, 24 movs r1, 0x8 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end sub_8059594 thumb_func_start sub_80595B8 sub_80595B8: @ 80595B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x22 bl audio_play adds r0, r4, 0 bl sub_8060878 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end sub_80595B8 thumb_func_start sub_80595DC sub_80595DC: @ 80595DC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x7 bl audio_play adds r0, r4, 0 bl sub_8060AE0 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r4} pop {r0} bx r0 thumb_func_end sub_80595DC thumb_func_start sub_8059600 sub_8059600: @ 8059600 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060B0C lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_8059600 thumb_func_start sub_8059618 sub_8059618: @ 8059618 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060B38 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_8059618 thumb_func_start sub_8059630 sub_8059630: @ 8059630 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8060B64 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl player_npc_set_state_and_x22_etc pop {r0} bx r0 thumb_func_end sub_8059630 thumb_func_start PlayCollisionSoundIfNotFacingWarp PlayCollisionSoundIfNotFacingWarp: @ 8059648 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r2, _080596B8 ldr r0, _080596BC ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1E] ldr r2, _080596C0 subs r1, r4, 0x1 lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _080596B0 cmp r4, 0x2 bne _080596AA mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords movs r0, 0x2 mov r1, sp adds r2, r4, 0 bl MoveCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl is_tile_x69_2_warp_door lsls r0, 24 cmp r0, 0 bne _080596B0 _080596AA: movs r0, 0x7 bl audio_play _080596B0: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080596B8: .4byte 0x030048a0 _080596BC: .4byte 0x0202e858 _080596C0: .4byte gUnknown_0830FC34 thumb_func_end PlayCollisionSoundIfNotFacingWarp thumb_func_start GetXYCoordsOneStepInFrontOfPlayer GetXYCoordsOneStepInFrontOfPlayer: @ 80596C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r3, _08059700 ldr r2, _08059704 ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x10] strh r0, [r4] ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x12] strh r0, [r5] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl MoveCoords pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059700: .4byte 0x030048a0 _08059704: .4byte 0x0202e858 thumb_func_end GetXYCoordsOneStepInFrontOfPlayer thumb_func_start PlayerGetDestCoords PlayerGetDestCoords: @ 8059708 push {r4,r5,lr} ldr r5, _08059730 ldr r4, _08059734 ldrb r3, [r4, 0x5] lsls r2, r3, 3 adds r2, r3 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x10] strh r2, [r0] ldrb r2, [r4, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x12] strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059730: .4byte 0x030048a0 _08059734: .4byte 0x0202e858 thumb_func_end PlayerGetDestCoords thumb_func_start player_get_direction_lower_nybble player_get_direction_lower_nybble: @ 8059738 ldr r2, _08059750 ldr r0, _08059754 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsls r0, 28 lsrs r0, 28 bx lr .align 2, 0 _08059750: .4byte 0x030048a0 _08059754: .4byte 0x0202e858 thumb_func_end player_get_direction_lower_nybble thumb_func_start player_get_direction_upper_nybble player_get_direction_upper_nybble: @ 8059758 ldr r2, _0805976C ldr r0, _08059770 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x18] lsrs r0, 4 bx lr .align 2, 0 _0805976C: .4byte 0x030048a0 _08059770: .4byte 0x0202e858 thumb_func_end player_get_direction_upper_nybble thumb_func_start PlayerGetZCoord PlayerGetZCoord: @ 8059774 ldr r2, _08059788 ldr r0, _0805978C ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0xB] lsrs r0, 4 bx lr .align 2, 0 _08059788: .4byte 0x030048a0 _0805978C: .4byte 0x0202e858 thumb_func_end PlayerGetZCoord thumb_func_start unref_sub_8059790 unref_sub_8059790: @ 8059790 push {lr} adds r3, r0, 0 adds r2, r1, 0 ldr r0, _080597B8 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _080597BC adds r0, r1 lsls r3, 16 asrs r3, 16 lsls r2, 16 asrs r2, 16 adds r1, r3, 0 bl sub_805C058 pop {r0} bx r0 .align 2, 0 _080597B8: .4byte 0x0202e858 _080597BC: .4byte 0x030048a0 thumb_func_end unref_sub_8059790 thumb_func_start TestPlayerAvatarFlags TestPlayerAvatarFlags: @ 80597C0 ldr r1, _080597CC ldrb r1, [r1] ands r1, r0 adds r0, r1, 0 bx lr .align 2, 0 _080597CC: .4byte 0x0202e858 thumb_func_end TestPlayerAvatarFlags thumb_func_start sub_80597D0 sub_80597D0: @ 80597D0 ldr r0, _080597D8 ldrb r0, [r0] bx lr .align 2, 0 _080597D8: .4byte 0x0202e858 thumb_func_end sub_80597D0 thumb_func_start GetPlayerAvatarObjectId GetPlayerAvatarObjectId: @ 80597DC ldr r0, _080597E4 ldrb r0, [r0, 0x4] bx lr .align 2, 0 _080597E4: .4byte 0x0202e858 thumb_func_end GetPlayerAvatarObjectId thumb_func_start sub_80597E8 sub_80597E8: @ 80597E8 push {lr} bl ForcedMovement_None pop {r0} bx r0 thumb_func_end sub_80597E8 thumb_func_start sub_80597F4 sub_80597F4: @ 80597F4 push {r4,lr} ldr r0, _08059834 ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08059838 adds r4, r0 adds r0, r4, 0 bl npc_clear_strange_bits ldrb r1, [r4, 0x18] lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 bl FieldObjectSetDirection movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805982C bl sub_80E6084 movs r0, 0 bl sub_80E6010 _0805982C: pop {r4} pop {r0} bx r0 .align 2, 0 _08059834: .4byte 0x0202e858 _08059838: .4byte 0x030048a0 thumb_func_end sub_80597F4 thumb_func_start sub_805983C sub_805983C: @ 805983C lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _08059850 lsrs r0, 23 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .align 2, 0 _08059850: .4byte gUnknown_0830FC44 thumb_func_end sub_805983C thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 8059854 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _08059868 lsrs r0, 23 adds r1, r0 adds r1, r2 ldrb r0, [r1] bx lr .align 2, 0 _08059868: .4byte gUnknown_0830FC54 thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender thumb_func_start GetPlayerAvatarGraphicsIdByStateId GetPlayerAvatarGraphicsIdByStateId: @ 805986C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _08059884 ldrb r1, [r1, 0x7] bl GetPlayerAvatarGraphicsIdByStateIdAndGender lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08059884: .4byte 0x0202e858 thumb_func_end GetPlayerAvatarGraphicsIdByStateId thumb_func_start unref_sub_8059888 unref_sub_8059888: @ 8059888 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x70 beq _080598AA cmp r0, 0x70 bgt _080598A2 cmp r0, 0x6D bgt _080598AE cmp r0, 0x69 blt _080598AE b _080598AA _080598A2: cmp r1, 0x8A beq _080598AA cmp r1, 0xC0 bne _080598AE _080598AA: movs r0, 0x1 b _080598B0 _080598AE: movs r0, 0 _080598B0: pop {r1} bx r1 thumb_func_end unref_sub_8059888 thumb_func_start GetPlayerAvatarGenderByGraphicsId GetPlayerAvatarGenderByGraphicsId: @ 80598B4 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x70 beq _080598D6 cmp r0, 0x70 bgt _080598CE cmp r0, 0x5D bgt _080598DA cmp r0, 0x59 blt _080598DA b _080598D6 _080598CE: cmp r1, 0x8A beq _080598D6 cmp r1, 0xC0 bne _080598DA _080598D6: movs r0, 0x1 b _080598DC _080598DA: movs r0, 0 _080598DC: pop {r1} bx r1 thumb_func_end GetPlayerAvatarGenderByGraphicsId thumb_func_start PartyHasMonWithSurf PartyHasMonWithSurf: @ 80598E0 push {r4,r5,lr} movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _08059924 movs r5, 0 b _0805990A _080598F2: adds r0, r4, 0 movs r1, 0x39 bl pokemon_has_move lsls r0, 24 cmp r0, 0 beq _08059904 movs r0, 0x1 b _08059926 _08059904: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0805990A: cmp r5, 0x5 bhi _08059924 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0805992C adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 bne _080598F2 _08059924: movs r0, 0 _08059926: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805992C: .4byte 0x03004360 thumb_func_end PartyHasMonWithSurf thumb_func_start IsPlayerSurfingNorth IsPlayerSurfingNorth: @ 8059930 push {lr} bl player_get_direction_upper_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805994E movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805994E movs r0, 0x1 b _08059950 _0805994E: movs r0, 0 _08059950: pop {r1} bx r1 thumb_func_end IsPlayerSurfingNorth thumb_func_start IsPlayerFacingSurfableFishableWater IsPlayerFacingSurfableFishableWater: @ 8059954 push {r4,r5,lr} sub sp, 0x4 ldr r0, _080599CC ldrb r0, [r0, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _080599D0 adds r4, r0 ldrh r1, [r4, 0x10] mov r0, sp strh r1, [r0] ldrh r0, [r4, 0x12] mov r5, sp adds r5, 0x2 strh r0, [r5] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 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] ldrb r3, [r4, 0x18] lsls r3, 28 lsrs r3, 28 adds r0, r4, 0 bl npc_block_way lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080599D4 bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080599D4 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsSurfableFishableWater lsls r0, 24 cmp r0, 0 beq _080599D4 movs r0, 0x1 b _080599D6 .align 2, 0 _080599CC: .4byte 0x0202e858 _080599D0: .4byte 0x030048a0 _080599D4: movs r0, 0 _080599D6: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end IsPlayerFacingSurfableFishableWater thumb_func_start ClearPlayerAvatarInfo ClearPlayerAvatarInfo: @ 80599E0 push {lr} ldr r0, _080599F0 movs r1, 0 movs r2, 0x24 bl memset pop {r0} bx r0 .align 2, 0 _080599F0: .4byte 0x0202e858 thumb_func_end ClearPlayerAvatarInfo thumb_func_start SetPlayerAvatarStateMask SetPlayerAvatarStateMask: @ 80599F4 lsls r0, 24 lsrs r0, 24 ldr r3, _08059A08 ldrb r2, [r3] movs r1, 0xE0 ands r1, r2 orrs r0, r1 strb r0, [r3] bx lr .align 2, 0 _08059A08: .4byte 0x0202e858 thumb_func_end SetPlayerAvatarStateMask thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId GetPlayerAvatarStateTransitionByGraphicsId: @ 8059A0C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 movs r2, 0 ldr r3, _08059A34 lsls r0, r1, 2 adds r0, r1 lsls r4, r0, 1 adds r6, r3, 0x1 _08059A22: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r5 bne _08059A38 adds r0, r1, r6 ldrb r0, [r0] b _08059A44 .align 2, 0 _08059A34: .4byte gUnknown_0830FC64 _08059A38: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _08059A22 movs r0, 0x1 _08059A44: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState GetPlayerAvatarGraphicsIdByCurrentState: @ 8059A4C push {r4-r6,lr} ldr r0, _08059A74 ldrb r5, [r0] movs r2, 0 ldr r3, _08059A78 ldrb r1, [r0, 0x7] lsls r0, r1, 2 adds r0, r1 lsls r4, r0, 1 adds r6, r3, 0x1 _08059A60: lsls r0, r2, 1 adds r1, r0, r4 adds r0, r1, r6 ldrb r0, [r0] ands r0, r5 cmp r0, 0 beq _08059A7C adds r0, r1, r3 ldrb r0, [r0] b _08059A88 .align 2, 0 _08059A74: .4byte 0x0202e858 _08059A78: .4byte gUnknown_0830FC64 _08059A7C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _08059A60 movs r0, 0 _08059A88: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState thumb_func_start SetPlayerAvatarExtraStateTransition SetPlayerAvatarExtraStateTransition: @ 8059A90 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 ldr r5, _08059ABC ldrb r1, [r5, 0x7] bl GetPlayerAvatarStateTransitionByGraphicsId lsls r0, 24 lsrs r0, 24 orrs r0, r4 ldrb r1, [r5, 0x1] orrs r0, r1 strb r0, [r5, 0x1] bl DoPlayerAvatarTransition pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059ABC: .4byte 0x0202e858 thumb_func_end SetPlayerAvatarExtraStateTransition thumb_func_start InitPlayerAvatar InitPlayerAvatar: @ 8059AC0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x18 adds r4, r0, 0 adds r5, r1, 0 mov r9, r2 mov r8, r3 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r1, sp movs r0, 0xFF strb r0, [r1] movs r0, 0 mov r1, r8 bl GetPlayerAvatarGraphicsIdByStateIdAndGender mov r1, sp movs r3, 0 strb r0, [r1, 0x1] mov r0, sp lsls r4, 16 asrs r4, 16 subs r4, 0x7 movs r6, 0 strh r4, [r0, 0x4] lsls r5, 16 asrs r5, 16 subs r5, 0x7 strh r5, [r0, 0x6] strb r6, [r0, 0x8] movs r0, 0xB strb r0, [r1, 0x9] mov r2, sp ldrb r1, [r2, 0xA] subs r0, 0x1B ands r0, r1 strb r0, [r2, 0xA] mov r0, sp strb r6, [r0, 0xA] strh r3, [r0, 0xC] strh r3, [r0, 0xE] str r3, [sp, 0x10] strh r3, [r0, 0x14] bl SpawnSpecialFieldObject adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 3 adds r4, r5 lsls r4, 2 ldr r0, _08059B80 adds r4, r0 ldrb r0, [r4, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x2] bl sub_8126B54 strb r0, [r4, 0x1B] adds r0, r4, 0 mov r1, r9 bl FieldObjectTurn bl ClearPlayerAvatarInfo ldr r0, _08059B84 strb r6, [r0, 0x2] strb r6, [r0, 0x3] strb r5, [r0, 0x5] ldrb r1, [r4, 0x4] strb r1, [r0, 0x4] mov r1, r8 strb r1, [r0, 0x7] movs r0, 0x21 bl SetPlayerAvatarStateMask add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059B80: .4byte 0x030048a0 _08059B84: .4byte 0x0202e858 thumb_func_end InitPlayerAvatar thumb_func_start sub_8059B88 sub_8059B88: @ 8059B88 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, _08059BE8 ldr r5, _08059BEC ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r6 movs r0, 0x1 ands r4, r0 lsls r3, r4, 5 ldrb r2, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x1] movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _08059BE0 ldr r2, _08059BF0 ldrb r1, [r5, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x1A] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E lsls r3, r4, 2 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1] _08059BE0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059BE8: .4byte 0x030048a0 _08059BEC: .4byte 0x0202e858 _08059BF0: .4byte 0x02020004 thumb_func_end sub_8059B88 thumb_func_start sub_8059BF4 sub_8059BF4: @ 8059BF4 push {r4,r5,lr} ldr r5, _08059C30 ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08059C34 adds r4, r0 movs r0, 0x5 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08059C38 adds r0, r1 movs r1, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059C30: .4byte 0x0202e858 _08059C34: .4byte 0x030048a0 _08059C38: .4byte 0x02020004 thumb_func_end sub_8059BF4 thumb_func_start sub_8059C3C sub_8059C3C: @ 8059C3C push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _08059C88 ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08059C8C adds r4, r0 movs r0, 0x6 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08059C90 adds r4, r0 adds r0, r5, 0 bl sub_805FDE8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059C88: .4byte 0x0202e858 _08059C8C: .4byte 0x030048a0 _08059C90: .4byte 0x02020004 thumb_func_end sub_8059C3C thumb_func_start sub_8059C94 sub_8059C94: @ 8059C94 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _08059CFC ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08059D00 adds r4, r0 movs r0, 0x2 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08059D04 mov r8, r0 add r4, r8 adds r0, r5, 0 bl sub_805FD98 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x1 bl SeekSpriteAnim pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059CFC: .4byte 0x0202e858 _08059D00: .4byte 0x030048a0 _08059D04: .4byte 0x02020004 thumb_func_end sub_8059C94 thumb_func_start sub_8059D08 sub_8059D08: @ 8059D08 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _08059D54 ldrb r0, [r6, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _08059D58 adds r4, r0 movs r0, 0x7 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _08059D5C adds r4, r0 adds r0, r5, 0 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059D54: .4byte 0x0202e858 _08059D58: .4byte 0x030048a0 _08059D5C: .4byte 0x02020004 thumb_func_end sub_8059D08 thumb_func_start sub_8059D60 sub_8059D60: @ 8059D60 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 ldrb r0, [r5, 0x1E] mov r8, r0 movs r1, 0 mov r0, sp strh r1, [r0] movs r6, 0x1 ldr r1, _08059DC4 mov r9, r1 mov r4, sp mov r7, sp adds r7, 0x2 _08059D82: movs r1, 0 ldrsh r0, [r4, r1] lsls r0, 2 add r0, r9 ldr r1, [r0] mov r0, r8 bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _08059DC8 ldrb r0, [r5, 0x18] lsrs r0, 4 cmp r6, r0 bne _08059DC8 ldrh r0, [r5, 0x10] strh r0, [r4] ldrh r0, [r5, 0x12] strh r0, [r7] adds r0, r6, 0 mov r1, sp adds r2, r7, 0 bl MoveCoords ldrb r0, [r5, 0x1B] movs r1, 0 ldrsh r2, [r4, r1] movs r1, 0 ldrsh r3, [r7, r1] adds r1, r6, 0 bl sub_8126BC4 b _08059DE2 .align 2, 0 _08059DC4: .4byte gUnknown_0830FC78 _08059DC8: ldrh r1, [r4] adds r1, 0x1 strh r1, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 asrs r1, 16 cmp r1, 0x3 ble _08059D82 ldrb r0, [r5, 0x1B] bl objid_set_invisible _08059DE2: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8059D60 thumb_func_start task_add_bump_boulder task_add_bump_boulder: @ 8059DF0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _08059E24 adds r0, r6, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _08059E28 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xA] strh r5, [r1, 0xC] bl _call_via_r6 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059E24: .4byte sub_8059E2C _08059E28: .4byte 0x03004b20 thumb_func_end task_add_bump_boulder thumb_func_start sub_8059E2C sub_8059E2C: @ 8059E2C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r6, _08059E74 ldr r2, _08059E78 ldr r5, _08059E7C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08059E40: movs r0, 0x8 ldrsh r3, [r4, r0] lsls r3, 2 adds r3, r6 ldr r0, _08059E80 ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r5 movs r2, 0xA ldrsh r0, [r4, r2] lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r2, r5 ldr r3, [r3] adds r0, r4, 0 bl _call_via_r3 lsls r0, 24 cmp r0, 0 bne _08059E40 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08059E74: .4byte gUnknown_0830FC88 _08059E78: .4byte 0x03004b20 _08059E7C: .4byte 0x030048a0 _08059E80: .4byte 0x0202e858 thumb_func_end sub_8059E2C thumb_func_start sub_8059E84 sub_8059E84: @ 8059E84 push {r4,lr} adds r4, r0, 0 bl script_env_2_enable ldr r1, _08059EA0 movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08059EA0: .4byte 0x0202e858 thumb_func_end sub_8059E84 thumb_func_start sub_8059EA4 sub_8059EA4: @ 8059EA4 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 adds r0, r5, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 bne _08059F2E adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 bne _08059F2E adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished ldrb r0, [r6, 0xC] bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim ldrb r0, [r6, 0xC] bl GetSimpleGoAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldr r2, _08059F38 movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] movs r1, 0x12 ldrsh r0, [r4, r1] str r0, [r2, 0x4] ldrb r0, [r4, 0xB] lsrs r0, 4 str r0, [r2, 0x8] ldr r3, _08059F3C ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r2, 0xC] movs r0, 0xA bl FieldEffectStart movs r0, 0xD6 bl audio_play ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _08059F2E: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08059F38: .4byte 0x0202ff84 _08059F3C: .4byte 0x02020004 thumb_func_end sub_8059EA4 thumb_func_start sub_8059F40 sub_8059F40: @ 8059F40 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 adds r0, r4, 0 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 beq _08059F82 adds r0, r5, 0 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 cmp r0, 0 beq _08059F82 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished ldr r1, _08059F8C movs r0, 0 strb r0, [r1, 0x6] bl script_env_2_disable ldr r0, _08059F90 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _08059F82: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08059F8C: .4byte 0x0202e858 _08059F90: .4byte sub_8059E2C thumb_func_end sub_8059F40 thumb_func_start sub_8059F94 sub_8059F94: @ 8059F94 push {r4,lr} ldr r4, _08059FB0 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _08059FB0: .4byte sub_8059FB4 thumb_func_end sub_8059F94 thumb_func_start sub_8059FB4 sub_8059FB4: @ 8059FB4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _08059FF0 ldr r2, _08059FF4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _08059FC6: movs r0, 0x8 ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 ldr r0, _08059FF8 ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _08059FFC adds r1, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _08059FC6 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08059FF0: .4byte gUnknown_0830FC94 _08059FF4: .4byte 0x03004b20 _08059FF8: .4byte 0x0202e858 _08059FFC: .4byte 0x030048a0 thumb_func_end sub_8059FB4 thumb_func_start sub_805A000 sub_805A000: @ 805A000 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 ldr r5, _0805A064 movs r0, 0x1 strb r0, [r5, 0x6] adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A05C movs r0, 0xA bl audio_play ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_806084C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim ldrh r0, [r6, 0xA] adds r0, 0x1 strh r0, [r6, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0805A05C movs r0, 0 strb r0, [r5, 0x6] ldrb r0, [r5, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] ldr r0, _0805A068 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805A05C: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805A064: .4byte 0x0202e858 _0805A068: .4byte sub_8059FB4 thumb_func_end sub_805A000 thumb_func_start sub_805A06C sub_805A06C: @ 805A06C push {r4,lr} ldr r4, _0805A088 adds r0, r4, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805A088: .4byte sub_805A08C thumb_func_end sub_805A06C thumb_func_start sub_805A08C sub_805A08C: @ 805A08C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805A0C8 ldr r2, _0805A0CC lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805A09E: movs r0, 0x8 ldrsh r2, [r4, r0] lsls r2, 2 adds r2, r5 ldr r0, _0805A0D0 ldrb r0, [r0, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805A0D4 adds r1, r0 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 lsls r0, 24 cmp r0, 0 bne _0805A09E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805A0C8: .4byte gUnknown_0830FC98 _0805A0CC: .4byte 0x03004b20 _0805A0D0: .4byte 0x0202e858 _0805A0D4: .4byte 0x030048a0 thumb_func_end sub_805A08C thumb_func_start sub_805A0D8 sub_805A0D8: @ 805A0D8 push {lr} ldrh r2, [r0, 0x8] adds r2, 0x1 strh r2, [r0, 0x8] ldrb r1, [r1, 0x18] lsrs r1, 4 strh r1, [r0, 0xA] ldr r1, _0805A0FC movs r0, 0x1 strb r0, [r1, 0x6] bl script_env_2_enable movs r0, 0x2D bl audio_play movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0805A0FC: .4byte 0x0202e858 thumb_func_end sub_805A0D8 thumb_func_start sub_805A100 sub_805A100: @ 805A100 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805A174 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A168 ldrb r0, [r5, 0x18] lsrs r0, 4 subs r0, 0x1 add r0, sp ldrb r6, [r0] adds r0, r6, 0 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim ldrb r0, [r4, 0xA] cmp r6, r0 bne _0805A146 ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0805A146: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r1, 0xC ldrsh r0, [r4, r1] cmp r0, 0x3 ble _0805A168 ldrb r0, [r4, 0xA] bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0805A168 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0805A168: movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805A174: .4byte gUnknown_0830FCA8 thumb_func_end sub_805A100 thumb_func_start sub_805A178 sub_805A178: @ 805A178 push {r4,r5,lr} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 ldr r1, _0805A1B4 mov r0, sp movs r2, 0x5 bl memcpy adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A1A8 movs r1, 0xC ldrsh r0, [r5, r1] add r0, sp ldrb r1, [r0] adds r0, r4, 0 bl FieldObjectSetSpecialAnim movs r0, 0x1 strh r0, [r5, 0x8] _0805A1A8: movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A1B4: .4byte gUnknown_0830FCAC thumb_func_end sub_805A178 thumb_func_start sub_805A1B8 sub_805A1B8: @ 805A1B8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A1FC ldrb r0, [r4, 0xA] bl GetOppositeDirection lsls r0, 24 lsrs r0, 24 bl GetSimpleGoAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim bl script_env_2_disable ldr r1, _0805A204 movs r0, 0 strb r0, [r1, 0x6] ldr r0, _0805A208 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805A1FC: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A204: .4byte 0x0202e858 _0805A208: .4byte sub_805A08C thumb_func_end sub_805A1B8 thumb_func_start sub_805A20C sub_805A20C: @ 805A20C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl script_env_2_enable bl sav1_reset_battle_music_maybe bl sub_8053F84 ldr r2, _0805A258 ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] movs r0, 0x1 strb r0, [r2, 0x6] ldr r5, _0805A25C adds r0, r5, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805A260 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805A258: .4byte 0x0202e858 _0805A25C: .4byte taskFF_0805D1D4 _0805A260: .4byte 0x03004b20 thumb_func_end sub_805A20C thumb_func_start taskFF_0805D1D4 taskFF_0805D1D4: @ 805A264 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0805A2C0 ldrb r1, [r0, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805A2C4 adds r5, r0, r1 adds r0, r5, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 beq _0805A290 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A2B8 _0805A290: ldrb r0, [r5, 0x1A] movs r1, 0x2 bl sub_8127ED0 ldr r0, _0805A2C8 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x8] bl sub_80608D0 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl FieldObjectSetSpecialAnim ldr r0, _0805A2CC str r0, [r4] _0805A2B8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805A2C0: .4byte 0x0202e858 _0805A2C4: .4byte 0x030048a0 _0805A2C8: .4byte 0x03004b20 _0805A2CC: .4byte sub_805A2D0 thumb_func_end taskFF_0805D1D4 thumb_func_start sub_805A2D0 sub_805A2D0: @ 805A2D0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _0805A33C ldrb r1, [r6, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805A340 adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 beq _0805A336 movs r0, 0 bl GetPlayerAvatarGraphicsIdByStateId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl GetFaceDirectionAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim movs r0, 0 strb r0, [r6, 0x6] bl script_env_2_disable ldrb r1, [r4, 0x1A] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805A344 adds r0, r1 bl DestroySprite adds r0, r5, 0 bl DestroyTask _0805A336: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805A33C: .4byte 0x0202e858 _0805A340: .4byte 0x030048a0 _0805A344: .4byte 0x02020004 thumb_func_end sub_805A2D0 thumb_func_start StartFishing StartFishing: @ 805A348 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0805A374 adds r0, r5, 0 movs r1, 0xFF bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0805A378 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x26] bl _call_via_r5 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805A374: .4byte sub_805A37C _0805A378: .4byte 0x03004b20 thumb_func_end StartFishing thumb_func_start sub_805A37C sub_805A37C: @ 805A37C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805A3AC ldr r2, _0805A3B0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _0805A38E: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _0805A38E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805A3AC: .4byte gUnknown_0830FCB4 _0805A3B0: .4byte 0x03004b20 thumb_func_end sub_805A37C thumb_func_start sub_805A3B4 sub_805A3B4: @ 805A3B4 push {r4,lr} adds r4, r0, 0 bl script_env_2_enable ldr r1, _0805A3D0 movs r0, 0x1 strb r0, [r1, 0x6] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805A3D0: .4byte 0x0202e858 thumb_func_end sub_805A3B4 thumb_func_start fish1 fish1: @ 805A3D4 push {r4-r6,lr} sub sp, 0x10 adds r5, r0, 0 ldr r1, _0805A45C mov r0, sp movs r2, 0x6 bl memcpy add r4, sp, 0x8 ldr r1, _0805A460 adds r0, r4, 0 movs r2, 0x6 bl memcpy movs r0, 0 strh r0, [r5, 0x20] bl Random movs r2, 0x26 ldrsh r1, [r5, r2] lsls r1, 1 mov r2, sp adds r6, r2, r1 lsls r0, 16 lsrs r0, 16 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] bl __modsi3 ldrh r1, [r6] adds r1, r0 strh r1, [r5, 0x22] ldr r3, _0805A464 ldr r2, _0805A468 ldrb r1, [r2, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] strh r0, [r5, 0x24] ldrb r0, [r2, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r3 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimActive ldrb r0, [r4, 0x1] movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x1] ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 bl sub_8059C3C ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805A45C: .4byte gUnknown_0830FCF4 _0805A460: .4byte gUnknown_0830FCFA _0805A464: .4byte 0x030048a0 _0805A468: .4byte 0x0202e858 thumb_func_end fish1 thumb_func_start fish2 fish2: @ 805A46C push {r4,lr} adds r4, r0, 0 bl sub_805A954 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3B ble _0805A488 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0805A488: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end fish2 thumb_func_start fish3 fish3: @ 805A490 push {r4,lr} adds r4, r0, 0 bl sub_8071FFC ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] strh r1, [r4, 0xC] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 adds r0, r1, 0x1 strh r0, [r4, 0xE] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0 bne _0805A4C4 adds r0, r1, 0x4 strh r0, [r4, 0xE] _0805A4C4: movs r1, 0xE ldrsh r0, [r4, r1] cmp r0, 0x9 ble _0805A4D0 movs r0, 0xA strh r0, [r4, 0xE] _0805A4D0: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end fish3 thumb_func_start fish4 fish4: @ 805A4D8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _0805A514 mov r0, sp movs r2, 0x2 bl memcpy bl sub_805A954 ldrh r0, [r4, 0xA] adds r2, r0, 0x1 strh r2, [r4, 0xA] ldr r0, _0805A518 ldrh r0, [r0, 0x2E] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0805A51C movs r0, 0xB strh r0, [r4, 0x8] movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0 beq _0805A50E movs r0, 0xC strh r0, [r4, 0x8] _0805A50E: movs r0, 0x1 b _0805A564 .align 2, 0 _0805A514: .4byte gUnknown_0830FD00 _0805A518: .4byte 0x03001770 _0805A51C: lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x13 ble _0805A562 strh r1, [r4, 0xA] ldrh r2, [r4, 0xC] movs r3, 0xC ldrsh r1, [r4, r3] movs r3, 0xE ldrsh r0, [r4, r3] cmp r1, r0 blt _0805A54E ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] ldrh r2, [r4, 0x20] movs r3, 0x20 ldrsh r0, [r4, r3] cmp r0, 0 beq _0805A548 adds r0, r1, 0x1 strh r0, [r4, 0x8] _0805A548: adds r0, r2, 0x1 strh r0, [r4, 0x20] b _0805A562 _0805A54E: adds r1, r2, 0x4 lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0xF bl Print ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] _0805A562: movs r0, 0 _0805A564: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end fish4 thumb_func_start party_menu_update_status_condition_object party_menu_update_status_condition_object: @ 805A56C push {r4,lr} adds r4, r0, 0 bl sub_805A954 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] bl GetFishingWildMonListHeader lsls r0, 24 cmp r0, 0 beq _0805A590 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0805A596 _0805A590: movs r0, 0xB strh r0, [r4, 0x8] b _0805A5BC _0805A596: ldr r0, _0805A5C4 ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0805A5C8 adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_805FE08 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _0805A5BC: movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0805A5C4: .4byte 0x0202e858 _0805A5C8: .4byte 0x02020004 thumb_func_end party_menu_update_status_condition_object thumb_func_start sub_805A5CC sub_805A5CC: @ 805A5CC push {r4,lr} adds r4, r0, 0 bl sub_805A954 ldr r0, _0805A5F0 movs r1, 0x4 movs r2, 0x11 bl Print ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805A5F0: .4byte gUnknown_0842C5BB thumb_func_end sub_805A5CC thumb_func_start fish7 fish7: @ 805A5F4 push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldr r1, _0805A628 mov r0, sp movs r2, 0x6 bl memcpy bl sub_805A954 ldrh r1, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0xA] movs r2, 0x26 ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp lsls r1, 16 asrs r1, 16 movs r2, 0 ldrsh r0, [r0, r2] cmp r1, r0 blt _0805A62C movs r0, 0xC b _0805A63C .align 2, 0 _0805A628: .4byte gUnknown_0830FD02 _0805A62C: ldr r0, _0805A648 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805A63E ldrh r0, [r4, 0x8] adds r0, 0x1 _0805A63C: strh r0, [r4, 0x8] _0805A63E: movs r0, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0805A648: .4byte 0x03001770 thumb_func_end fish7 thumb_func_start fish8 fish8: @ 805A64C push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldr r1, _0805A6B0 mov r0, sp movs r2, 0xC bl memcpy bl sub_805A954 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0x20 ldrsh r1, [r4, r0] movs r2, 0x22 ldrsh r0, [r4, r2] cmp r1, r0 blt _0805A6A2 cmp r1, 0x1 bgt _0805A6A6 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 movs r3, 0x20 ldrsh r2, [r4, r3] lsls r2, 1 movs r3, 0x26 ldrsh r1, [r4, r3] lsls r1, 2 adds r2, r1 mov r3, sp adds r1, r3, r2 movs r2, 0 ldrsh r1, [r1, r2] lsls r0, 16 asrs r0, 16 cmp r1, r0 ble _0805A6A6 _0805A6A2: movs r0, 0x3 strh r0, [r4, 0x8] _0805A6A6: movs r0, 0 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0805A6B0: .4byte gUnknown_0830FD08 thumb_func_end fish8 thumb_func_start sub_805A6B4 sub_805A6B4: @ 805A6B4 push {r4,lr} adds r4, r0, 0 bl sub_805A954 ldr r0, _0805A6D8 bl sub_8072044 bl sub_8071FFC ldrh r0, [r4, 0x8] adds r0, 0x1 movs r1, 0 strh r0, [r4, 0x8] strh r1, [r4, 0xA] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0805A6D8: .4byte gUnknown_0842C5C7 thumb_func_end sub_805A6B4 thumb_func_start sub_805A6DC sub_805A6DC: @ 805A6DC push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 bne _0805A780 bl sub_805A954 movs r0, 0xA ldrsh r6, [r5, r0] cmp r6, 0 bne _0805A780 bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _0805A778 ldr r7, _0805A76C ldrb r0, [r7, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r1, _0805A770 mov r8, r1 add r4, r8 ldrh r1, [r5, 0x24] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn ldrb r1, [r7] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805A746 ldrb r0, [r7, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r0, [r1, 0x1A] movs r1, 0 movs r2, 0 bl sub_8127F28 _0805A746: ldr r2, _0805A774 ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x24] ldrb r1, [r7, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x26] bl sub_8071EF4 ldrh r0, [r5, 0xA] adds r0, 0x1 strh r0, [r5, 0xA] b _0805A7A8 .align 2, 0 _0805A76C: .4byte 0x0202e858 _0805A770: .4byte 0x030048a0 _0805A774: .4byte 0x02020004 _0805A778: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 beq _0805A7A8 _0805A780: ldr r1, _0805A7B4 movs r0, 0 strb r0, [r1, 0x6] bl script_env_2_disable ldrh r0, [r5, 0x26] lsls r0, 24 lsrs r0, 24 bl sub_808541C movs r0, 0x1 bl sub_80BE97C ldr r0, _0805A7B8 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805A7A8: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A7B4: .4byte 0x0202e858 _0805A7B8: .4byte sub_805A37C thumb_func_end sub_805A6DC thumb_func_start sub_805A7BC sub_805A7BC: @ 805A7BC push {r4,r5,lr} adds r5, r0, 0 bl sub_805A954 ldr r0, _0805A7FC ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0805A800 adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_805FDF8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _0805A804 bl sub_8072044 movs r0, 0xD strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A7FC: .4byte 0x0202e858 _0805A800: .4byte 0x02020004 _0805A804: .4byte gUnknown_0842C5E2 thumb_func_end sub_805A7BC thumb_func_start sub_805A808 sub_805A808: @ 805A808 push {r4,r5,lr} adds r5, r0, 0 bl sub_805A954 ldr r0, _0805A84C ldrb r0, [r0, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, _0805A850 adds r4, r0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_805FDF8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, _0805A854 bl sub_8072044 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0805A84C: .4byte 0x0202e858 _0805A850: .4byte 0x02020004 _0805A854: .4byte gUnknown_0842C5F9 thumb_func_end sub_805A808 thumb_func_start fishD fishD: @ 805A858 push {r4,lr} adds r4, r0, 0 bl sub_805A954 bl sub_8071FFC ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end fishD thumb_func_start sub_805A874 sub_805A874: @ 805A874 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 bl sub_805A954 ldr r7, _0805A908 ldr r5, _0805A90C ldrb r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3F ldrb r0, [r1] lsls r0, 27 cmp r0, 0 bge _0805A8FA ldrb r0, [r5, 0x5] lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, _0805A910 mov r8, r0 add r4, r8 ldrh r1, [r6, 0x24] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805B980 ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 bl FieldObjectTurn ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805A8DA ldrb r0, [r5, 0x5] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r0, [r1, 0x1A] movs r1, 0 movs r2, 0 bl sub_8127F28 _0805A8DA: ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 movs r2, 0 strh r2, [r0, 0x24] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] _0805A8FA: movs r0, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805A908: .4byte 0x02020004 _0805A90C: .4byte 0x0202e858 _0805A910: .4byte 0x030048a0 thumb_func_end sub_805A874 thumb_func_start fishF fishF: @ 805A914 push {lr} bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _0805A946 ldr r1, _0805A94C movs r0, 0 strb r0, [r1, 0x6] bl script_env_2_disable bl sub_806451C bl sub_8071EF4 movs r0, 0 bl sub_80BE97C ldr r0, _0805A950 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0805A946: movs r0, 0 pop {r1} bx r1 .align 2, 0 _0805A94C: .4byte 0x0202e858 _0805A950: .4byte sub_805A37C thumb_func_end fishF thumb_func_start sub_805A954 sub_805A954: @ 805A954 push {r4-r7,lr} ldr r0, _0805AA40 ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805AA44 adds r4, r0, r1 adds r0, r4, 0 bl AnimateSprite movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x2B ldrb r5, [r0] movs r0, 0x2A adds r0, r4 mov r12, r0 ldrb r0, [r0] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r6, r5, 2 adds r0, r6, r0 movs r1, 0 ldrsh r0, [r0, r1] movs r7, 0x1 negs r7, r7 cmp r0, r7 beq _0805A9C6 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] mov r1, r12 ldrb r0, [r1] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r0, [r0] adds r0, r6, r0 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, r7 bne _0805A9CC _0805A9C6: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0805A9CC: adds r0, r4, 0 adds r0, 0x2A ldrb r0, [r0] ldr r1, [r4, 0x8] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrb r5, [r0] subs r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _0805A9FE movs r0, 0x8 strh r0, [r4, 0x24] bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805A9FE ldr r0, _0805AA48 strh r0, [r4, 0x24] _0805A9FE: cmp r5, 0x5 bne _0805AA06 ldr r0, _0805AA48 strh r0, [r4, 0x26] _0805AA06: adds r0, r5, 0 subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0805AA16 movs r0, 0x8 strh r0, [r4, 0x26] _0805AA16: ldr r3, _0805AA40 ldrb r1, [r3] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0805AA3A ldr r2, _0805AA4C ldrb r1, [r3, 0x5] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1A] movs r1, 0x26 ldrsh r2, [r4, r1] movs r1, 0x1 bl sub_8127F28 _0805AA3A: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805AA40: .4byte 0x0202e858 _0805AA44: .4byte 0x02020004 _0805AA48: .4byte 0x0000fff8 _0805AA4C: .4byte 0x030048a0 thumb_func_end sub_805A954 thumb_func_start npc_clear_ids_and_state npc_clear_ids_and_state: @ 805AA50 push {r4,lr} adds r4, r0, 0 movs r1, 0 movs r2, 0x24 bl memset movs r0, 0xFF strb r0, [r4, 0x8] movs r0, 0x1 negs r0, r0 strb r0, [r4, 0x9] strb r0, [r4, 0xA] strb r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 thumb_func_end npc_clear_ids_and_state thumb_func_start npcs_clear_ids_and_state npcs_clear_ids_and_state: @ 805AA70 push {r4,r5,lr} movs r4, 0 ldr r5, _0805AA94 _0805AA76: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r0, r5 bl npc_clear_ids_and_state adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _0805AA76 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805AA94: .4byte 0x030048a0 thumb_func_end npcs_clear_ids_and_state thumb_func_start sub_805AA98 sub_805AA98: @ 805AA98 push {lr} bl strange_npc_table_clear bl npcs_clear_ids_and_state bl ClearPlayerAvatarInfo bl sub_805AAB0 pop {r0} bx r0 thumb_func_end sub_805AA98 thumb_func_start sub_805AAB0 sub_805AAB0: @ 805AAB0 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} ldr r0, _0805AB4C ldr r0, [r0, 0x54] mov r9, r0 movs r1, 0 movs r2, 0 movs r3, 0x1F bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 ldr r1, _0805AB50 mov r10, r1 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r10 ldrb r1, [r4, 0x1] movs r5, 0x4 negs r5, r5 adds r0, r5, 0 ands r0, r1 movs r1, 0x1 mov r8, r1 mov r1, r8 orrs r0, r1 strb r0, [r4, 0x1] adds r0, r4, 0 bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0 bl StartSpriteAffineAnim adds r4, 0x3E ldrb r0, [r4] movs r6, 0x4 orrs r0, r6 strb r0, [r4] mov r0, r9 movs r1, 0 movs r2, 0 movs r3, 0x1F bl CreateSpriteAtEnd lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 add r4, r10 ldrb r0, [r4, 0x1] ands r5, r0 mov r0, r8 orrs r5, r0 strb r5, [r4, 0x1] adds r0, r4, 0 bl InitSpriteAffineAnim adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim adds r4, 0x3E ldrb r0, [r4] orrs r0, r6 strb r0, [r4] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805AB4C: .4byte gFieldEffectObjectTemplatePointers _0805AB50: .4byte 0x02020004 thumb_func_end sub_805AAB0 thumb_func_start sub_805AB54 sub_805AB54: @ 805AB54 push {lr} movs r1, 0 ldr r2, _0805AB60 ldrb r0, [r2] b _0805AB78 .align 2, 0 _0805AB60: .4byte 0x030048a0 _0805AB64: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bhi _0805AB7E lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] _0805AB78: lsls r0, 31 cmp r0, 0 bne _0805AB64 _0805AB7E: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_805AB54 thumb_func_start GetFieldObjectIdByLocalIdAndMap GetFieldObjectIdByLocalIdAndMap: @ 805AB84 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r0, 0xFE bls _0805AB9C bl GetFieldObjectIdByLocalId b _0805ABA0 _0805AB9C: bl GetFieldObjectIdByLocalIdAndMapInternal _0805ABA0: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetFieldObjectIdByLocalIdAndMap thumb_func_start TryGetFieldObjectIdByLocalIdAndMap TryGetFieldObjectIdByLocalIdAndMap: @ 805ABA8 push {r4,lr} adds r4, r3, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 bl GetFieldObjectIdByLocalIdAndMap strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _0805ABCA movs r0, 0 b _0805ABCC _0805ABCA: movs r0, 0x1 _0805ABCC: pop {r4} pop {r1} bx r1 thumb_func_end TryGetFieldObjectIdByLocalIdAndMap thumb_func_start GetFieldObjectIdByXY GetFieldObjectIdByXY: @ 805ABD4 push {r4-r6,lr} movs r3, 0 ldr r5, _0805AC14 lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r1, 16 _0805ABE2: lsls r0, r3, 3 adds r0, r3 lsls r0, 2 adds r2, r0, r5 ldrb r0, [r2] lsls r0, 31 cmp r0, 0 beq _0805AC02 movs r6, 0x10 ldrsh r0, [r2, r6] cmp r0, r4 bne _0805AC02 movs r6, 0x12 ldrsh r0, [r2, r6] cmp r0, r1 beq _0805AC0C _0805AC02: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _0805ABE2 _0805AC0C: adds r0, r3, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805AC14: .4byte 0x030048a0 thumb_func_end GetFieldObjectIdByXY thumb_func_start GetFieldObjectIdByLocalIdAndMapInternal GetFieldObjectIdByLocalIdAndMapInternal: @ 805AC18 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r2, 24 movs r1, 0 ldr r6, _0805AC50 _0805AC2A: lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r3, r0, r6 ldrb r0, [r3] lsls r0, 31 cmp r0, 0 beq _0805AC54 ldrb r0, [r3, 0x8] cmp r0, r5 bne _0805AC54 ldrb r0, [r3, 0x9] cmp r0, r4 bne _0805AC54 ldrb r0, [r3, 0xA] cmp r0, r2 bne _0805AC54 adds r0, r1, 0 b _0805AC60 .align 2, 0 _0805AC50: .4byte 0x030048a0 _0805AC54: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _0805AC2A movs r0, 0x10 _0805AC60: pop {r4-r6} pop {r1} bx r1 thumb_func_end GetFieldObjectIdByLocalIdAndMapInternal thumb_func_start GetFieldObjectIdByLocalId GetFieldObjectIdByLocalId: @ 805AC68 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 movs r2, 0 ldr r4, _0805AC8C _0805AC72: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _0805AC90 ldrb r0, [r1, 0x8] cmp r0, r3 bne _0805AC90 adds r0, r2, 0 b _0805AC9C .align 2, 0 _0805AC8C: .4byte 0x030048a0 _0805AC90: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _0805AC72 movs r0, 0x10 _0805AC9C: pop {r4} pop {r1} bx r1 thumb_func_end GetFieldObjectIdByLocalId thumb_func_start InitFieldObjectStateFromTemplate InitFieldObjectStateFromTemplate: @ 805ACA4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldrb r0, [r5] adds r1, r6, 0 adds r2, r7, 0 mov r3, sp bl GetAvailableFieldObjectSlot lsls r0, 24 cmp r0, 0 beq _0805ACCE movs r0, 0x10 b _0805ADC2 _0805ACCE: mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805ADD0 adds r4, r0, r1 adds r0, r4, 0 bl npc_clear_ids_and_state ldrh r3, [r5, 0x4] adds r3, 0x7 lsls r3, 16 lsrs r3, 16 ldrh r2, [r5, 0x6] adds r2, 0x7 lsls r2, 16 lsrs r2, 16 ldrb r0, [r4] movs r1, 0x1 orrs r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldrb r0, [r5, 0x1] strb r0, [r4, 0x5] ldrb r0, [r5, 0x9] strb r0, [r4, 0x6] ldrb r0, [r5] strb r0, [r4, 0x8] strb r6, [r4, 0x9] strb r7, [r4, 0xA] strh r3, [r4, 0xC] strh r2, [r4, 0xE] strh r3, [r4, 0x10] strh r2, [r4, 0x12] strh r3, [r4, 0x14] strh r2, [r4, 0x16] ldrb r0, [r5, 0x8] movs r7, 0xF adds r1, r7, 0 ands r1, r0 ldrb r2, [r4, 0xB] movs r0, 0x10 negs r0, r0 mov r8, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0xB] ldrb r1, [r5, 0x8] lsls r1, 4 ands r0, r7 orrs r0, r1 strb r0, [r4, 0xB] ldrb r1, [r5, 0xA] lsls r1, 28 movs r0, 0xF mov r9, r0 lsrs r1, 28 ldrb r2, [r4, 0x19] mov r0, r8 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x19] ldrb r1, [r5, 0xA] lsrs r1, 4 lsls r1, 4 ands r0, r7 orrs r0, r1 strb r0, [r4, 0x19] ldrh r0, [r5, 0xC] strb r0, [r4, 0x7] ldrh r0, [r5, 0xE] strb r0, [r4, 0x1D] ldr r1, _0805ADD4 ldrb r0, [r5, 0x9] adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0x20 strb r1, [r0] ldrb r1, [r0] adds r0, r4, 0 bl FieldObjectSetDirection adds r0, r4, 0 bl FieldObjectHandleDynamicGraphicsId ldr r1, _0805ADD8 ldrb r0, [r4, 0x6] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0805ADBE ldrb r2, [r4, 0x19] adds r0, r7, 0 ands r0, r2 cmp r0, 0 bne _0805ADA6 lsls r0, r2, 28 lsrs r0, 28 adds r0, 0x1 mov r1, r9 ands r0, r1 mov r1, r8 ands r1, r2 orrs r1, r0 strb r1, [r4, 0x19] _0805ADA6: ldrb r2, [r4, 0x19] movs r0, 0xF0 ands r0, r2 cmp r0, 0 bne _0805ADBE lsrs r1, r2, 4 adds r1, 0x1 lsls r1, 4 adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x19] _0805ADBE: mov r0, sp ldrb r0, [r0] _0805ADC2: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805ADD0: .4byte 0x030048a0 _0805ADD4: .4byte gUnknown_0836DC09 _0805ADD8: .4byte gUnknown_0836DBBC thumb_func_end InitFieldObjectStateFromTemplate thumb_func_start sub_805ADDC sub_805ADDC: @ 805ADDC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _0805ADF4 ldr r0, [r0, 0x4] cmp r0, 0 bne _0805AE10 b _0805AE3E .align 2, 0 _0805ADF4: .4byte 0x0202e828 _0805ADF8: ldr r1, _0805AE0C adds r0, r7, r1 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] adds r0, r4, 0 bl InitFieldObjectStateFromTemplate lsls r0, 24 lsrs r0, 24 b _0805AE40 .align 2, 0 _0805AE0C: .4byte 0xfffff3e0 _0805AE10: ldrb r6, [r0] movs r5, 0 cmp r5, r6 bcs _0805AE3E ldr r7, _0805AE4C _0805AE1A: lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r4, r0, r7 ldrb r0, [r4] cmp r0, r8 bne _0805AE34 ldrh r0, [r4, 0x14] bl FlagGet lsls r0, 24 cmp r0, 0 beq _0805ADF8 _0805AE34: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _0805AE1A _0805AE3E: movs r0, 0x10 _0805AE40: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AE4C: .4byte 0x02026354 thumb_func_end sub_805ADDC thumb_func_start GetAvailableFieldObjectSlot GetAvailableFieldObjectSlot: @ 805AE50 push {r4-r7,lr} mov r12, r3 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r2, 0 ldr r1, _0805AEAC ldrb r0, [r1] lsls r0, 31 adds r7, r1, 0 cmp r0, 0 beq _0805AEA4 adds r3, r1, 0 _0805AE70: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r1, r0, r3 ldrb r0, [r1, 0x8] cmp r0, r6 bne _0805AE8A ldrb r0, [r1, 0x9] cmp r0, r5 bne _0805AE8A ldrb r0, [r1, 0xA] cmp r0, r4 beq _0805AEA8 _0805AE8A: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bhi _0805AEA8 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r0, r7 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0805AE70 _0805AEA4: cmp r2, 0xF bls _0805AEB0 _0805AEA8: movs r0, 0x1 b _0805AEE4 .align 2, 0 _0805AEAC: .4byte 0x030048a0 _0805AEB0: mov r0, r12 strb r2, [r0] ldr r1, _0805AEEC _0805AEB6: lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r0, [r3] lsls r0, 31 cmp r0, 0 beq _0805AED8 ldrb r0, [r3, 0x8] cmp r0, r6 bne _0805AED8 ldrb r0, [r3, 0x9] cmp r0, r5 bne _0805AED8 ldrb r0, [r3, 0xA] cmp r0, r4 beq _0805AEA8 _0805AED8: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bls _0805AEB6 movs r0, 0 _0805AEE4: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805AEEC: .4byte 0x030048a0 thumb_func_end GetAvailableFieldObjectSlot thumb_func_start RemoveFieldObject RemoveFieldObject: @ 805AEF0 push {lr} ldrb r2, [r0] movs r1, 0x2 negs r1, r1 ands r1, r2 strb r1, [r0] bl RemoveFieldObjectInternal pop {r0} bx r0 thumb_func_end RemoveFieldObject thumb_func_start RemoveFieldObjectByLocalIdAndMap RemoveFieldObjectByLocalIdAndMap: @ 805AF04 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 _0805AF42 mov r0, sp ldrb r0, [r0] bl GetFieldObjectFlagIdByFieldObjectId lsls r0, 16 lsrs r0, 16 bl FlagSet mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805AF48 adds r0, r1 bl RemoveFieldObject _0805AF42: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0805AF48: .4byte 0x030048a0 thumb_func_end RemoveFieldObjectByLocalIdAndMap thumb_func_start RemoveFieldObjectInternal RemoveFieldObjectInternal: @ 805AF4C push {r4,lr} sub sp, 0x8 adds r4, r0, 0 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldrh r2, [r0, 0x6] ldr r1, _0805AF90 ldr r0, [sp, 0x4] ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] ldr r2, _0805AF94 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0xC adds r0, r1 mov r1, sp str r1, [r0] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 bl DestroySprite add sp, 0x8 pop {r4} pop {r0} bx r0 .align 2, 0 _0805AF90: .4byte 0xffff0000 _0805AF94: .4byte 0x02020004 thumb_func_end RemoveFieldObjectInternal thumb_func_start npc_hide_all_but_player npc_hide_all_but_player: @ 805AF98 push {r4,lr} movs r4, 0 _0805AF9C: ldr r0, _0805AFC4 ldrb r0, [r0, 0x5] cmp r4, r0 beq _0805AFB2 lsls r0, r4, 3 adds r0, r4 lsls r0, 2 ldr r1, _0805AFC8 adds r0, r1 bl RemoveFieldObject _0805AFB2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _0805AF9C pop {r4} pop {r0} bx r0 .align 2, 0 _0805AFC4: .4byte 0x0202e858 _0805AFC8: .4byte 0x030048a0 thumb_func_end npc_hide_all_but_player thumb_func_start sub_805AFCC sub_805AFCC: @ 805AFCC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r1, 0 adds r1, r2, 0 adds r2, r3, 0 ldr r3, [sp, 0x20] ldr r4, [sp, 0x24] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 16 lsrs r3, 16 mov r9, r3 lsls r4, 16 lsrs r4, 16 mov r10, r4 bl InitFieldObjectStateFromTemplate lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x10 bne _0805B006 movs r0, 0x10 b _0805B154 _0805B006: mov r0, r8 lsls r4, r0, 3 adds r0, r4, r0 lsls r0, 2 ldr r1, _0805B030 adds r5, r0, r1 ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo adds r6, r0, 0 ldrb r1, [r6, 0xC] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _0805B034 ldrh r0, [r6, 0x2] lsls r1, 28 lsrs r1, 28 bl npc_load_two_palettes__no_record b _0805B042 .align 2, 0 _0805B030: .4byte 0x030048a0 _0805B034: cmp r0, 0xA bne _0805B042 ldrh r0, [r6, 0x2] lsls r1, 28 lsrs r1, 28 bl npc_load_two_palettes__and_record _0805B042: ldrb r0, [r5, 0x6] cmp r0, 0x4C bne _0805B050 ldrb r0, [r5, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] _0805B050: ldr r1, _0805B084 adds r0, r1, 0 strh r0, [r7, 0x2] adds r0, r7, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x40 bne _0805B08C ldr r0, _0805B088 mov r2, r8 adds r1, r4, r2 lsls r1, 2 adds r1, r0 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1] movs r0, 0x10 b _0805B154 .align 2, 0 _0805B084: .4byte 0x0000ffff _0805B088: .4byte 0x030048a0 _0805B08C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _0805B164 adds r4, r0, r1 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 ldrh r2, [r5, 0x10] adds r0, r2 lsls r0, 16 asrs r0, 16 mov r2, r10 lsls r1, r2, 16 asrs r1, 16 ldrh r2, [r5, 0x12] adds r1, r2 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_8060388 ldrh r0, [r6, 0x8] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, r4, 0 adds r1, 0x28 strb r0, [r1] ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r2, r4, 0 adds r2, 0x29 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x8 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r1, 0x10 movs r0, 0 ldrsb r0, [r2, r0] adds r0, r1 strh r0, [r4, 0x22] ldrb r1, [r6, 0xC] lsls r1, 28 lsrs r1, 24 ldrb r2, [r4, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] mov r0, r8 strh r0, [r4, 0x2E] strb r7, [r5, 0x4] ldrb r1, [r6, 0xC] lsls r1, 25 lsrs r1, 31 lsls r1, 4 ldrb r2, [r5, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x1] lsls r0, 27 cmp r0, 0 blt _0805B13E ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _0805B13E: ldrb r0, [r5, 0xB] lsrs r0, 4 adds r1, r4, 0 movs r2, 0x1 bl SetObjectSubpriorityByZCoord adds r0, r5, 0 adds r1, r4, 0 bl sub_80634D0 mov r0, r8 _0805B154: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B164: .4byte 0x02020004 thumb_func_end sub_805AFCC thumb_func_start SpawnFieldObject SpawnFieldObject: @ 805B168 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x2C mov r9, r0 adds r6, r1, 0 mov r8, r2 adds r4, r3, 0 ldr r5, [sp, 0x48] lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 movs r0, 0 str r0, [sp, 0x20] mov r1, r9 ldrb r0, [r1, 0x1] bl GetFieldObjectGraphicsInfo adds r7, r0, 0 add r2, sp, 0x20 mov r0, r9 add r1, sp, 0x8 bl MakeObjectTemplateFromFieldObjectTemplate ldrh r3, [r7, 0x6] ldr r2, _0805B1E0 add r1, sp, 0x24 ldr r0, [r1, 0x4] ands r0, r2 orrs r0, r3 str r0, [r1, 0x4] str r1, [sp, 0x14] lsls r4, 16 asrs r4, 16 str r4, [sp] lsls r5, 16 asrs r5, 16 str r5, [sp, 0x4] mov r0, r9 add r1, sp, 0x8 adds r2, r6, 0 mov r3, r8 bl sub_805AFCC lsls r0, 24 lsrs r2, r0, 24 adds r5, r2, 0 cmp r2, 0x10 bne _0805B1E4 movs r0, 0x10 b _0805B21A .align 2, 0 _0805B1E0: .4byte 0xffff0000 _0805B1E4: ldr r4, _0805B228 ldr r1, _0805B22C lsls r0, r2, 3 adds r0, r2 lsls r0, 2 adds r3, r0, r1 ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0xC adds r0, r1 ldr r1, [r7, 0x1C] str r1, [r0] ldr r2, [sp, 0x20] cmp r2, 0 beq _0805B218 ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r1, r2, 0 bl SetSubspriteTables _0805B218: adds r0, r5, 0 _0805B21A: add sp, 0x2C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B228: .4byte 0x02020004 _0805B22C: .4byte 0x030048a0 thumb_func_end SpawnFieldObject thumb_func_start SpawnSpecialFieldObject SpawnSpecialFieldObject: @ 805B230 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 mov r4, sp adds r4, 0x6 add r0, sp, 0x4 adds r1, r4, 0 bl GetFieldObjectMovingCameraOffset ldr r0, _0805B268 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] add r0, sp, 0x4 movs r6, 0 ldrsh r3, [r0, r6] movs r6, 0 ldrsh r0, [r4, r6] str r0, [sp] adds r0, r5, 0 bl SpawnFieldObject lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B268: .4byte 0x02025734 thumb_func_end SpawnSpecialFieldObject thumb_func_start SpawnSpecialFieldObjectParametrized SpawnSpecialFieldObjectParametrized: @ 805B26C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] mov r8, r5 lsls r0, 24 lsrs r0, 24 lsls r3, 16 ldr r5, _0805B2D0 adds r3, r5 lsrs r3, 16 lsls r4, 16 adds r4, r5 lsrs r4, 16 mov r5, sp movs r6, 0 strb r2, [r5] mov r2, sp strb r0, [r2, 0x1] mov r0, sp strb r6, [r0, 0x2] movs r5, 0 strh r3, [r0, 0x4] strh r4, [r0, 0x6] mov r2, r8 strb r2, [r0, 0x8] strb r1, [r0, 0x9] mov r2, sp ldrb r1, [r2, 0xA] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r2, 0xA] mov r0, sp strb r5, [r0, 0xA] strh r6, [r0, 0xC] strh r6, [r0, 0xE] bl SpawnSpecialFieldObject lsls r0, 24 lsrs r0, 24 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B2D0: .4byte 0xfff90000 thumb_func_end SpawnSpecialFieldObjectParametrized thumb_func_start show_sprite show_sprite: @ 805B2D4 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 adds r1, r7, 0 adds r2, r6, 0 bl GetFieldObjectTemplateByLocalIdAndMap adds r5, r0, 0 cmp r5, 0 beq _0805B31A mov r4, sp adds r4, 0x6 add r0, sp, 0x4 adds r1, r4, 0 bl GetFieldObjectMovingCameraOffset add r0, sp, 0x4 movs r1, 0 ldrsh r3, [r0, r1] movs r1, 0 ldrsh r0, [r4, r1] str r0, [sp] adds r0, r5, 0 adds r1, r7, 0 adds r2, r6, 0 bl SpawnFieldObject lsls r0, 24 lsrs r0, 24 b _0805B31C _0805B31A: movs r0, 0x10 _0805B31C: add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end show_sprite thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfo MakeObjectTemplateFromFieldObjectGraphicsInfo: @ 805B324 push {r4-r6,lr} adds r5, r1, 0 adds r4, r2, 0 adds r6, r3, 0 lsls r0, 24 lsrs r0, 24 bl GetFieldObjectGraphicsInfo ldrh r1, [r0] strh r1, [r4] ldrh r1, [r0, 0x2] strh r1, [r4, 0x2] ldr r1, [r0, 0x10] str r1, [r4, 0x4] ldr r1, [r0, 0x18] str r1, [r4, 0x8] ldr r1, [r0, 0x1C] str r1, [r4, 0xC] ldr r1, [r0, 0x20] str r1, [r4, 0x10] str r5, [r4, 0x14] ldr r0, [r0, 0x14] str r0, [r6] pop {r4-r6} pop {r0} bx r0 thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfo thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 805B358 push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 ldr r4, _0805B374 lsrs r1, 14 adds r1, r4 ldr r1, [r1] bl MakeObjectTemplateFromFieldObjectGraphicsInfo pop {r4} pop {r0} bx r0 .align 2, 0 _0805B374: .4byte gUnknown_0836DA88 thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex thumb_func_start MakeObjectTemplateFromFieldObjectTemplate MakeObjectTemplateFromFieldObjectTemplate: @ 805B378 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldrb r0, [r4, 0x1] ldrb r1, [r4, 0x9] adds r2, r5, 0 bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex pop {r4,r5} pop {r0} bx r0 thumb_func_end MakeObjectTemplateFromFieldObjectTemplate thumb_func_start AddPseudoFieldObject AddPseudoFieldObject: @ 805B390 push {r4-r6,lr} sub sp, 0x1C ldr r4, [sp, 0x2C] lsls r0, 16 lsrs r0, 16 lsls r2, 16 lsrs r6, r2, 16 lsls r3, 16 lsrs r5, r3, 16 lsls r4, 24 lsrs r4, 24 add r3, sp, 0x18 mov r2, sp bl MakeObjectTemplateFromFieldObjectGraphicsInfo mov r0, sp ldrh r1, [r0, 0x2] ldr r0, _0805B408 cmp r1, r0 beq _0805B3C0 mov r0, sp ldrh r0, [r0, 0x2] bl sub_805BDF8 _0805B3C0: lsls r1, r6, 16 asrs r1, 16 lsls r2, r5, 16 asrs r2, 16 mov r0, sp adds r3, r4, 0 bl CreateSprite lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x40 beq _0805B3FC ldr r1, [sp, 0x18] cmp r1, 0 beq _0805B3FC lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r0, _0805B40C adds r4, r0 adds r0, r4, 0 bl SetSubspriteTables adds r4, 0x42 ldrb r1, [r4] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r4] _0805B3FC: adds r0, r5, 0 add sp, 0x1C pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805B408: .4byte 0x0000ffff _0805B40C: .4byte 0x02020004 thumb_func_end AddPseudoFieldObject thumb_func_start sub_805B410 sub_805B410: @ 805B410 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r5, r0, 0 ldr r0, [sp, 0x44] ldr r4, [sp, 0x48] lsls r5, 24 lsrs r5, 24 lsls r1, 24 lsrs r1, 24 mov r10, r1 add r1, sp, 0x18 mov r8, r1 strh r2, [r1] mov r6, sp adds r6, 0x1A strh r3, [r6] lsls r0, 24 lsrs r7, r0, 24 mov r9, r7 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x20] adds r0, r5, 0 bl GetFieldObjectGraphicsInfo adds r4, r0, 0 ldr r1, _0805B550 add r3, sp, 0x1C adds r0, r5, 0 mov r2, sp bl MakeObjectTemplateFromFieldObjectGraphicsInfo mov r1, sp ldr r2, _0805B554 adds r0, r2, 0 strh r0, [r1, 0x2] mov r1, r8 movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x7 strh r0, [r1] movs r1, 0 ldrsh r0, [r6, r1] adds r0, 0x7 strh r0, [r6] mov r0, r8 adds r1, r6, 0 movs r2, 0x8 movs r3, 0x10 bl sub_8060470 mov r2, r8 movs r0, 0 ldrsh r1, [r2, r0] movs r0, 0 ldrsh r2, [r6, r0] mov r0, sp movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x40 beq _0805B53C lsls r0, r6, 4 adds r0, r6 lsls r0, 2 ldr r1, _0805B558 adds r5, r0, r1 ldrh r0, [r4, 0x8] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, r5, 0 adds r1, 0x28 strb r0, [r1] ldrh r0, [r4, 0xA] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, 0x1 strb r0, [r1] movs r0, 0 ldrsb r0, [r1, r0] ldrh r1, [r5, 0x22] adds r0, r1 strh r0, [r5, 0x22] ldrb r1, [r4, 0xC] lsls r1, 28 lsrs r1, 24 ldrb r3, [r5, 0x5] movs r2, 0xF adds r0, r2, 0 ands r0, r3 orrs r0, r1 strb r0, [r5, 0x5] adds r3, r5, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x2 orrs r0, r1 strb r0, [r3] mov r0, r10 strh r0, [r5, 0x2E] strh r7, [r5, 0x30] ldrb r1, [r4, 0xC] ands r2, r1 cmp r2, 0xA bne _0805B4FC ldrh r0, [r4, 0x2] lsls r1, 28 lsrs r1, 28 bl npc_load_two_palettes__and_record _0805B4FC: ldr r1, [sp, 0x1C] cmp r1, 0 beq _0805B518 adds r0, r5, 0 bl SetSubspriteTables adds r2, r5, 0 adds r2, 0x42 ldrb r0, [r2] movs r1, 0x3F ands r1, r0 movs r0, 0x80 orrs r1, r0 strb r1, [r2] _0805B518: adds r0, r5, 0 mov r1, r9 bl InitObjectPriorityByZCoord mov r0, r9 adds r1, r5, 0 movs r2, 0x1 bl SetObjectSubpriorityByZCoord ldr r0, [sp, 0x20] bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim _0805B53C: adds r0, r6, 0 add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805B550: .4byte sub_8064970 _0805B554: .4byte 0x0000ffff _0805B558: .4byte 0x02020004 thumb_func_end sub_805B410 thumb_func_start sub_805B55C sub_805B55C: @ 805B55C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x4] ldr r0, _0805B628 ldr r5, [r0, 0x4] cmp r5, 0 beq _0805B618 ldr r4, _0805B62C ldrh r0, [r4] subs r1, r0, 0x2 lsls r1, 16 lsrs r1, 16 adds r0, 0x11 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldrh r2, [r4, 0x2] adds r0, r2, 0 adds r0, 0x10 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] ldrb r6, [r5] movs r5, 0 cmp r5, r6 bcs _0805B618 lsls r0, r2, 16 asrs r0, 16 mov r10, r0 adds r7, r4, 0 lsls r0, r1, 16 asrs r0, 16 mov r9, r0 lsls r3, 16 mov r8, r3 _0805B5B2: lsls r0, r5, 1 adds r0, r5 lsls r0, 3 ldr r1, _0805B630 adds r4, r0, r1 ldrh r0, [r4, 0x4] adds r0, 0x7 lsls r0, 16 lsrs r2, r0, 16 ldrh r0, [r4, 0x6] adds r0, 0x7 lsls r0, 16 asrs r1, r0, 16 cmp r10, r1 bgt _0805B60E ldr r3, [sp, 0xC] lsls r0, r3, 16 asrs r0, 16 cmp r0, r1 blt _0805B60E lsls r0, r2, 16 asrs r1, r0, 16 cmp r9, r1 bgt _0805B60E ldr r2, [sp, 0x8] lsls r0, r2, 16 asrs r0, 16 cmp r0, r1 blt _0805B60E ldrh r0, [r4, 0x14] bl FlagGet lsls r0, 24 cmp r0, 0 bne _0805B60E ldrb r1, [r7, 0x5] ldrb r2, [r7, 0x4] ldr r3, [sp, 0x4] lsls r0, r3, 16 asrs r0, 16 str r0, [sp] adds r0, r4, 0 mov r4, r8 asrs r3, r4, 16 bl SpawnFieldObject _0805B60E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _0805B5B2 _0805B618: 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 _0805B628: .4byte 0x0202e828 _0805B62C: .4byte 0x02025734 _0805B630: .4byte 0x02026354 thumb_func_end sub_805B55C thumb_func_start RemoveFieldObjectsOutsideView RemoveFieldObjectsOutsideView: @ 805B634 push {r4-r6,lr} movs r3, 0 ldr r6, _0805B688 _0805B63A: movs r2, 0 movs r4, 0 adds r5, r3, 0x1 _0805B640: lsls r0, r2, 2 adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0 beq _0805B652 ldrb r1, [r1, 0x2] cmp r3, r1 bne _0805B652 movs r4, 0x1 _0805B652: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0805B640 cmp r4, 0 bne _0805B67A lsls r0, r3, 3 adds r0, r3 lsls r0, 2 ldr r1, _0805B68C adds r2, r0, r1 ldr r0, [r2] ldr r1, _0805B690 ands r0, r1 cmp r0, 0x1 bne _0805B67A adds r0, r2, 0 bl RemoveFieldObjectIfOutsideView _0805B67A: lsls r0, r5, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _0805B63A pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805B688: .4byte 0x02029818 _0805B68C: .4byte 0x030048a0 _0805B690: .4byte 0x00010001 thumb_func_end RemoveFieldObjectsOutsideView thumb_func_start RemoveFieldObjectIfOutsideView RemoveFieldObjectIfOutsideView: @ 805B694 push {r4-r7,lr} adds r3, r0, 0 ldr r2, _0805B70C ldrh r0, [r2] subs r1, r0, 0x2 lsls r1, 16 adds r0, 0x11 lsls r0, 16 lsrs r5, r0, 16 ldrh r4, [r2, 0x2] adds r0, r4, 0 adds r0, 0x10 lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x10 ldrsh r2, [r3, r0] lsrs r7, r1, 16 asrs r1, 16 cmp r2, r1 blt _0805B6D8 lsls r0, r5, 16 asrs r0, 16 cmp r2, r0 bgt _0805B6D8 movs r0, 0x12 ldrsh r1, [r3, r0] lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 blt _0805B6D8 lsls r0, r6, 16 asrs r0, 16 cmp r1, r0 ble _0805B706 _0805B6D8: movs r0, 0xC ldrsh r1, [r3, r0] lsls r0, r7, 16 asrs r0, 16 cmp r1, r0 blt _0805B700 lsls r0, r5, 16 asrs r0, 16 cmp r1, r0 bgt _0805B700 movs r0, 0xE ldrsh r1, [r3, r0] lsls r0, r4, 16 asrs r0, 16 cmp r1, r0 blt _0805B700 lsls r0, r6, 16 asrs r0, 16 cmp r1, r0 ble _0805B706 _0805B700: adds r0, r3, 0 bl RemoveFieldObject _0805B706: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805B70C: .4byte 0x02025734 thumb_func_end RemoveFieldObjectIfOutsideView thumb_func_start sub_805B710 sub_805B710: @ 805B710 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 bl ClearPlayerAvatarInfo movs r6, 0 ldr r7, _0805B758 lsls r4, 16 lsls r5, 16 _0805B72A: lsls r0, r6, 3 adds r0, r6 lsls r0, 2 adds r0, r7 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0805B744 adds r0, r6, 0 asrs r1, r4, 16 asrs r2, r5, 16 bl sub_805B75C _0805B744: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xF bls _0805B72A bl sub_805AAB0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805B758: .4byte 0x030048a0 thumb_func_end sub_805B710 thumb_func_start sub_805B75C sub_805B75C: @ 805B75C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 mov r10, r2 movs r7, 0 ldr r2, _0805B900 _0805B77E: lsls r0, r7, 2 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _0805B790 ldrb r1, [r1, 0x2] cmp r8, r1 bne _0805B790 b _0805B8EE _0805B790: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _0805B77E mov r1, r8 lsls r0, r1, 3 add r0, r8 lsls r0, 2 ldr r1, _0805B904 adds r6, r0, r1 movs r0, 0 str r0, [sp, 0x20] ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo adds r5, r0, 0 ldrh r2, [r5, 0x6] ldr r1, _0805B908 add r4, sp, 0x18 ldr r0, [r4, 0x4] ands r0, r1 orrs r0, r2 str r0, [r4, 0x4] ldrb r0, [r6, 0x5] ldrb r1, [r6, 0x6] add r3, sp, 0x20 mov r2, sp bl MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex str r4, [sp, 0xC] mov r0, sp ldr r2, _0805B90C adds r4, r2, 0 strh r4, [r0, 0x2] ldrb r1, [r5, 0xC] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _0805B7EA ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 bl npc_load_two_palettes__no_record _0805B7EA: ldrb r0, [r5, 0xC] lsls r1, r0, 28 lsrs r0, r1, 28 cmp r0, 0x9 bls _0805B7FC ldrh r0, [r5, 0x2] lsrs r1, 28 bl npc_load_two_palettes__and_record _0805B7FC: mov r0, sp strh r4, [r0, 0x2] movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x40 beq _0805B8EE lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, _0805B910 adds r4, r0, r1 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 ldrh r2, [r6, 0x10] adds r0, r2 lsls r0, 16 asrs r0, 16 mov r2, r10 lsls r1, r2, 16 asrs r1, 16 ldrh r2, [r6, 0x12] adds r1, r2 lsls r1, 16 asrs r1, 16 adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_8060388 ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, r4, 0 adds r1, 0x28 strb r0, [r1] ldrh r0, [r5, 0xA] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r2, r4, 0 adds r2, 0x29 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x8 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r1, 0x10 movs r0, 0 ldrsb r0, [r2, r0] adds r0, r1 strh r0, [r4, 0x22] ldr r0, [r5, 0x1C] str r0, [r4, 0xC] ldrb r0, [r6, 0x6] cmp r0, 0xB bne _0805B88A mov r0, r8 adds r1, r7, 0 bl SetPlayerAvatarFieldObjectIdAndObjectId bl sub_8126B54 strb r0, [r6, 0x1B] _0805B88A: ldr r1, [sp, 0x20] cmp r1, 0 beq _0805B896 adds r0, r4, 0 bl SetSubspriteTables _0805B896: ldrb r1, [r5, 0xC] lsls r1, 28 lsrs r1, 24 ldrb r2, [r4, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] mov r0, r8 strh r0, [r4, 0x2E] strb r7, [r6, 0x4] ldrb r0, [r6, 0x1] lsls r0, 27 cmp r0, 0 blt _0805B8DC ldrb r0, [r6, 0x6] cmp r0, 0xB beq _0805B8DC ldrb r0, [r6, 0x18] lsls r0, 28 lsrs r0, 28 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim _0805B8DC: adds r0, r6, 0 bl sub_805B914 ldrb r0, [r6, 0xB] lsrs r0, 4 adds r1, r4, 0 movs r2, 0x1 bl SetObjectSubpriorityByZCoord _0805B8EE: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805B900: .4byte 0x02029818 _0805B904: .4byte 0x030048a0 _0805B908: .4byte 0xffff0000 _0805B90C: .4byte 0x0000ffff _0805B910: .4byte 0x02020004 thumb_func_end sub_805B75C thumb_func_start sub_805B914 sub_805B914: @ 805B914 push {lr} ldrb r2, [r0] movs r3, 0x3 negs r3, r3 adds r1, r3, 0 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r2, [r0, 0x2] movs r1, 0x41 negs r1, r1 ands r1, r2 ands r1, r3 movs r2, 0x5 negs r2, r2 ands r1, r2 subs r2, 0x4 ands r1, r2 subs r2, 0x8 ands r1, r2 subs r2, 0x10 ands r1, r2 strb r1, [r0, 0x2] bl FieldObjectClearAnim pop {r0} bx r0 thumb_func_end sub_805B914 thumb_func_start SetPlayerAvatarFieldObjectIdAndObjectId SetPlayerAvatarFieldObjectIdAndObjectId: @ 805B94C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, _0805B978 strb r0, [r5, 0x5] strb r1, [r5, 0x4] ldr r1, _0805B97C lsls r4, r0, 3 adds r4, r0 lsls r4, 2 adds r4, r1 ldrb r0, [r4, 0x5] bl GetPlayerAvatarGenderByGraphicsId strb r0, [r5, 0x7] ldrb r0, [r4, 0x5] movs r1, 0x20 bl SetPlayerAvatarExtraStateTransition pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805B978: .4byte 0x0202e858 _0805B97C: .4byte 0x030048a0 thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId thumb_func_start sub_805B980 sub_805B980: @ 805B980 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r0, r8 bl GetFieldObjectGraphicsInfo adds r5, r0, 0 ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805BA7C adds r4, r0, r1 ldrb r1, [r5, 0xC] movs r7, 0xF adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _0805B9B8 ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 bl pal_patch_for_npc _0805B9B8: ldrb r1, [r5, 0xC] adds r0, r7, 0 ands r0, r1 cmp r0, 0xA bne _0805B9CC ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 bl npc_load_two_palettes__and_record _0805B9CC: ldr r0, [r5, 0x10] ldrb r2, [r0, 0x1] lsrs r2, 6 lsls r2, 6 ldrb r3, [r4, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r3 orrs r0, r2 strb r0, [r4, 0x1] ldr r0, [r5, 0x10] ldrb r0, [r0, 0x3] lsrs r0, 6 lsls r0, 6 ldrb r2, [r4, 0x3] ands r1, r2 orrs r1, r0 strb r1, [r4, 0x3] ldr r0, [r5, 0x1C] str r0, [r4, 0xC] ldr r0, [r5, 0x18] str r0, [r4, 0x8] ldr r0, [r5, 0x14] str r0, [r4, 0x18] ldrb r1, [r5, 0xC] lsls r1, 28 lsrs r1, 24 ldrb r2, [r4, 0x5] adds r0, r7, 0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x5] ldrb r1, [r5, 0xC] lsls r1, 25 lsrs r1, 31 lsls r1, 4 ldrb r2, [r6, 0x1] movs r0, 0x11 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r6, 0x1] mov r0, r8 strb r0, [r6, 0x5] movs r1, 0x10 ldrsh r0, [r6, r1] movs r2, 0x12 ldrsh r1, [r6, r2] adds r2, r4, 0 adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 bl sub_80603CC ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, r4, 0 adds r1, 0x28 strb r0, [r1] ldrh r0, [r5, 0xA] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r2, r4, 0 adds r2, 0x29 strb r0, [r2] ldrh r0, [r4, 0x20] adds r0, 0x8 strh r0, [r4, 0x20] ldrh r1, [r4, 0x22] adds r1, 0x10 movs r0, 0 ldrsb r0, [r2, r0] adds r0, r1 strh r0, [r4, 0x22] ldrb r0, [r6, 0x1] lsrs r0, 7 cmp r0, 0 beq _0805BA72 bl CameraObjectReset1 _0805BA72: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805BA7C: .4byte 0x02020004 thumb_func_end sub_805B980 thumb_func_start unref_sub_805BA80 unref_sub_805BA80: @ 805BA80 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r4, r3, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805BAB4 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BABC adds r0, r1 adds r1, r4, 0 bl sub_805B980 _0805BAB4: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805BABC: .4byte 0x030048a0 thumb_func_end unref_sub_805BA80 thumb_func_start FieldObjectTurn FieldObjectTurn: @ 805BAC0 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 bl FieldObjectSetDirection ldrb r0, [r6, 0x1] lsls r0, 27 cmp r0, 0 blt _0805BB06 ldrb r0, [r6, 0x4] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _0805BB0C adds r4, r5 ldrb r0, [r6, 0x18] lsls r0, 28 lsrs r0, 28 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 bl SeekSpriteAnim _0805BB06: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805BB0C: .4byte 0x02020004 thumb_func_end FieldObjectTurn thumb_func_start FieldObjectTurnByLocalIdAndMap FieldObjectTurnByLocalIdAndMap: @ 805BB10 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r4, r3, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805BB44 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BB4C adds r0, r1 adds r1, r4, 0 bl FieldObjectTurn _0805BB44: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805BB4C: .4byte 0x030048a0 thumb_func_end FieldObjectTurnByLocalIdAndMap thumb_func_start unref_sub_805BB50 unref_sub_805BB50: @ 805BB50 push {lr} lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0x5] lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r2, _0805BB6C adds r0, r2 bl FieldObjectTurn pop {r0} bx r0 .align 2, 0 _0805BB6C: .4byte 0x030048a0 thumb_func_end unref_sub_805BB50 thumb_func_start get_berry_tree_graphics get_berry_tree_graphics: @ 805BB70 push {r4-r7,lr} adds r5, r0, 0 adds r7, r1, 0 ldrb r0, [r5, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r5, 0x1] adds r4, r7, 0 adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldrb r0, [r5, 0x1D] bl GetStageByBerryTreeId lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0805BBFC ldrb r1, [r5, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4] ldrb r0, [r5, 0x1D] bl GetBerryTypeByBerryTreeId subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 subs r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r4, 0x2B bls _0805BBC4 movs r4, 0 _0805BBC4: ldr r0, _0805BC04 lsls r4, 2 adds r0, r4, r0 ldr r0, [r0] adds r0, r6 ldrb r1, [r0] adds r0, r5, 0 bl sub_805B980 ldr r0, _0805BC08 adds r0, r4, r0 ldr r0, [r0] str r0, [r7, 0xC] ldr r0, _0805BC0C adds r4, r0 ldr r0, [r4] adds r0, r6 ldrb r1, [r0] lsls r1, 4 ldrb r2, [r7, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r7, 0x5] adds r0, r7, 0 adds r1, r6, 0 bl StartSpriteAnim _0805BBFC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805BC04: .4byte gBerryTreeGraphicsIdTablePointers _0805BC08: .4byte gBerryTreePicTablePointers _0805BC0C: .4byte gBerryTreePaletteSlotTablePointers thumb_func_end get_berry_tree_graphics thumb_func_start GetFieldObjectGraphicsInfo GetFieldObjectGraphicsInfo: @ 805BC10 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xEF bls _0805BC28 adds r0, r1, 0 adds r0, 0x10 lsls r0, 24 lsrs r0, 24 bl VarGetFieldObjectGraphicsId adds r1, r0, 0 _0805BC28: cmp r1, 0xD9 bls _0805BC2E movs r1, 0x5 _0805BC2E: ldr r0, _0805BC3C lsls r1, 2 adds r1, r0 ldr r0, [r1] pop {r1} bx r1 .align 2, 0 _0805BC3C: .4byte gMapObjectGraphicsInfoPointers thumb_func_end GetFieldObjectGraphicsInfo thumb_func_start FieldObjectHandleDynamicGraphicsId FieldObjectHandleDynamicGraphicsId: @ 805BC40 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x5] cmp r0, 0xEF bls _0805BC56 adds r0, 0x10 lsls r0, 24 lsrs r0, 24 bl VarGetFieldObjectGraphicsId strb r0, [r4, 0x5] _0805BC56: pop {r4} pop {r0} bx r0 thumb_func_end FieldObjectHandleDynamicGraphicsId thumb_func_start npc_by_local_id_and_map_set_field_1_bit_x20 npc_by_local_id_and_map_set_field_1_bit_x20: @ 805BC5C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r4, r3, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805BC9E ldr r2, _0805BCA8 mov r0, sp ldrb r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x1 adds r2, r4, 0 ands r2, r0 lsls r2, 5 ldrb r3, [r1, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x1] _0805BC9E: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805BCA8: .4byte 0x030048a0 thumb_func_end npc_by_local_id_and_map_set_field_1_bit_x20 thumb_func_start FieldObjectGetLocalIdAndMap FieldObjectGetLocalIdAndMap: @ 805BCAC push {r4,lr} ldrb r4, [r0, 0x8] strb r4, [r1] ldrb r1, [r0, 0x9] strb r1, [r2] ldrb r0, [r0, 0xA] strb r0, [r3] pop {r4} pop {r0} bx r0 thumb_func_end FieldObjectGetLocalIdAndMap thumb_func_start sub_805BCC0 sub_805BCC0: @ 805BCC0 push {lr} lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl GetFieldObjectIdByXY lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x10 beq _0805BCE8 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805BCEC adds r0, r1 ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0805BCE8: pop {r0} bx r0 .align 2, 0 _0805BCEC: .4byte 0x030048a0 thumb_func_end sub_805BCC0 thumb_func_start sub_805BCF0 sub_805BCF0: @ 805BCF0 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r4, r3, 24 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805BD36 mov r0, sp ldrb r0, [r0] lsls r2, r0, 3 adds r2, r0 lsls r2, 2 ldr r0, _0805BD40 adds r2, r0 ldrb r1, [r2, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805BD44 adds r0, r1 ldrb r1, [r2, 0x3] movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x3] adds r0, 0x43 strb r4, [r0] _0805BD36: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0805BD40: .4byte 0x030048a0 _0805BD44: .4byte 0x02020004 thumb_func_end sub_805BCF0 thumb_func_start sub_805BD48 sub_805BD48: @ 805BD48 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 _0805BD84 mov r0, sp ldrb r0, [r0] lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0805BD8C adds r1, r0 ldrb r2, [r1, 0x3] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x3] ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] _0805BD84: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0805BD8C: .4byte 0x030048a0 thumb_func_end sub_805BD48 thumb_func_start sub_805BD90 sub_805BD90: @ 805BD90 push {r4,r5,lr} sub sp, 0x4 ldr r4, [sp, 0x10] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 16 lsrs r5, r3, 16 lsls r4, 16 lsrs r4, 16 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805BDD4 ldr r2, _0805BDDC 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 ldr r1, _0805BDE0 adds r0, r1 strh r5, [r0, 0x24] strh r4, [r0, 0x26] _0805BDD4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805BDDC: .4byte 0x030048a0 _0805BDE0: .4byte 0x02020004 thumb_func_end sub_805BD90 thumb_func_start gpu_pal_allocator_reset__manage_upper_four gpu_pal_allocator_reset__manage_upper_four: @ 805BDE4 push {lr} bl FreeAllSpritePalettes ldr r1, _0805BDF4 movs r0, 0xC strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0805BDF4: .4byte 0x030028f8 thumb_func_end gpu_pal_allocator_reset__manage_upper_four thumb_func_start sub_805BDF8 sub_805BDF8: @ 805BDF8 push {lr} lsls r0, 16 lsrs r0, 16 bl FindFieldObjectPaletteIndexByTag lsls r0, 24 lsrs r1, r0, 24 ldr r0, _0805BE1C cmp r1, r0 beq _0805BE16 lsls r0, r1, 3 ldr r1, _0805BE20 adds r0, r1 bl sub_805BE58 _0805BE16: pop {r0} bx r0 .align 2, 0 _0805BE1C: .4byte 0x000011ff _0805BE20: .4byte gUnknown_0837377C thumb_func_end sub_805BDF8 thumb_func_start unref_sub_805BE24 unref_sub_805BE24: @ 805BE24 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 ldrh r0, [r5] ldr r1, _0805BE54 cmp r0, r1 beq _0805BE4E adds r6, r1, 0 _0805BE34: lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] bl sub_805BDF8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, r6 bne _0805BE34 _0805BE4E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805BE54: .4byte 0x000011ff thumb_func_end unref_sub_805BE24 thumb_func_start sub_805BE58 sub_805BE58: @ 805BE58 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x4] bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0805BE76 adds r0, r4, 0 bl LoadSpritePalette lsls r0, 24 lsrs r0, 24 b _0805BE78 _0805BE76: movs r0, 0xFF _0805BE78: pop {r4} pop {r1} bx r1 thumb_func_end sub_805BE58 thumb_func_start pal_patch_for_npc pal_patch_for_npc: @ 805BE80 push {r4,lr} adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 24 lsrs r4, 24 bl FindFieldObjectPaletteIndexByTag lsls r0, 24 ldr r1, _0805BEB4 lsrs r0, 21 adds r0, r1 ldr r0, [r0] lsls r4, 20 movs r1, 0x80 lsls r1, 17 adds r4, r1 lsrs r4, 16 adds r1, r4, 0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 .align 2, 0 _0805BEB4: .4byte gUnknown_0837377C thumb_func_end pal_patch_for_npc thumb_func_start pal_patch_for_npc_range pal_patch_for_npc_range: @ 805BEB8 push {r4-r6,lr} adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r6, r2, 24 cmp r4, r6 bcs _0805BEDC _0805BEC8: ldrh r0, [r5] adds r1, r4, 0 bl pal_patch_for_npc adds r5, 0x2 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _0805BEC8 _0805BEDC: pop {r4-r6} pop {r0} bx r0 thumb_func_end pal_patch_for_npc_range thumb_func_start FindFieldObjectPaletteIndexByTag FindFieldObjectPaletteIndexByTag: @ 805BEE4 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 movs r2, 0 ldr r0, _0805BF0C ldrh r1, [r0, 0x4] ldr r3, _0805BF10 adds r4, r0, 0 cmp r1, r3 beq _0805BF24 adds r6, r4, 0 adds r1, r3, 0 _0805BEFC: lsls r0, r2, 3 adds r0, r6 ldrh r0, [r0, 0x4] cmp r0, r5 bne _0805BF14 adds r0, r2, 0 b _0805BF26 .align 2, 0 _0805BF0C: .4byte gUnknown_0837377C _0805BF10: .4byte 0x000011ff _0805BF14: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 3 adds r0, r4 ldrh r0, [r0, 0x4] cmp r0, r1 bne _0805BEFC _0805BF24: movs r0, 0xFF _0805BF26: pop {r4-r6} pop {r1} bx r1 thumb_func_end FindFieldObjectPaletteIndexByTag thumb_func_start npc_load_two_palettes__no_record npc_load_two_palettes__no_record: @ 805BF2C push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 adds r1, r5, 0 bl pal_patch_for_npc movs r3, 0 ldr r1, _0805BF74 ldrh r0, [r1] ldr r2, _0805BF78 cmp r0, r2 beq _0805BF94 ldr r0, _0805BF7C adds r5, r0 adds r6, r2, 0 _0805BF50: lsls r2, r3, 3 adds r0, r2, r1 ldrh r0, [r0] cmp r0, r4 bne _0805BF84 adds r1, 0x4 adds r1, r2, r1 ldr r0, _0805BF80 ldrb r0, [r0] ldr r1, [r1] lsls r0, 1 adds r0, r1 ldrh r0, [r0] ldrb r1, [r5] bl pal_patch_for_npc b _0805BF94 .align 2, 0 _0805BF74: .4byte gUnknown_08373874 _0805BF78: .4byte 0x000011ff _0805BF7C: .4byte gUnknown_0830FD14 _0805BF80: .4byte 0x030005a4 _0805BF84: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 3 adds r0, r1 ldrh r0, [r0] cmp r0, r6 bne _0805BF50 _0805BF94: pop {r4-r6} pop {r0} bx r0 thumb_func_end npc_load_two_palettes__no_record thumb_func_start npc_load_two_palettes__and_record npc_load_two_palettes__and_record: @ 805BF9C push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _0805BFE8 strh r4, [r0] adds r0, r4, 0 adds r1, r5, 0 bl pal_patch_for_npc movs r3, 0 ldr r1, _0805BFEC ldrh r0, [r1] ldr r2, _0805BFF0 cmp r0, r2 beq _0805C00C ldr r0, _0805BFF4 adds r5, r0 adds r6, r2, 0 _0805BFC4: lsls r2, r3, 3 adds r0, r2, r1 ldrh r0, [r0] cmp r0, r4 bne _0805BFFC adds r1, 0x4 adds r1, r2, r1 ldr r0, _0805BFF8 ldrb r0, [r0] ldr r1, [r1] lsls r0, 1 adds r0, r1 ldrh r0, [r0] ldrb r1, [r5] bl pal_patch_for_npc b _0805C00C .align 2, 0 _0805BFE8: .4byte 0x030005a6 _0805BFEC: .4byte gUnknown_083738E4 _0805BFF0: .4byte 0x000011ff _0805BFF4: .4byte gUnknown_0830FD14 _0805BFF8: .4byte 0x030005a4 _0805BFFC: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 3 adds r0, r1 ldrh r0, [r0] cmp r0, r6 bne _0805BFC4 _0805C00C: pop {r4-r6} pop {r0} bx r0 thumb_func_end npc_load_two_palettes__and_record thumb_func_start unref_sub_805C014 unref_sub_805C014: @ 805C014 push {r4,lr} ldrh r3, [r0, 0x10] strh r3, [r0, 0x14] ldrh r4, [r0, 0x12] strh r4, [r0, 0x16] lsls r1, 16 asrs r1, 16 adds r1, r3 strh r1, [r0, 0x10] lsls r2, 16 asrs r2, 16 adds r2, r4 strh r2, [r0, 0x12] pop {r4} pop {r0} bx r0 thumb_func_end unref_sub_805C014 thumb_func_start npc_coords_shift npc_coords_shift: @ 805C034 ldrh r3, [r0, 0x10] strh r3, [r0, 0x14] ldrh r3, [r0, 0x12] strh r3, [r0, 0x16] strh r1, [r0, 0x10] strh r2, [r0, 0x12] bx lr thumb_func_end npc_coords_shift thumb_func_start npc_coords_set npc_coords_set: @ 805C044 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] strh r1, [r0, 0x10] strh r2, [r0, 0x12] bx lr thumb_func_end npc_coords_set thumb_func_start sub_805C058 sub_805C058: @ 805C058 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldrb r1, [r6, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0805C0F4 adds r7, r0, r1 ldrb r0, [r6, 0x5] bl GetFieldObjectGraphicsInfo mov r8, r0 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl npc_coords_set movs r1, 0x10 ldrsh r0, [r6, r1] movs r2, 0x12 ldrsh r1, [r6, r2] adds r2, r7, 0 adds r2, 0x20 adds r3, r7, 0 adds r3, 0x22 bl sub_80603CC mov r1, r8 ldrh r0, [r1, 0x8] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r1, r7, 0 adds r1, 0x28 strb r0, [r1] mov r2, r8 ldrh r0, [r2, 0xA] lsls r0, 16 asrs r0, 17 negs r0, r0 adds r2, r7, 0 adds r2, 0x29 strb r0, [r2] ldrh r0, [r7, 0x20] adds r0, 0x8 strh r0, [r7, 0x20] ldrh r1, [r7, 0x22] adds r1, 0x10 movs r0, 0 ldrsb r0, [r2, r0] adds r0, r1 strh r0, [r7, 0x22] adds r0, r6, 0 bl sub_805B914 ldrb r0, [r6, 0x1] lsrs r0, 7 cmp r0, 0 beq _0805C0EA bl CameraObjectReset1 _0805C0EA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0805C0F4: .4byte 0x02020004 thumb_func_end sub_805C058 thumb_func_start sub_805C0F8 sub_805C0F8: @ 805C0F8 push {r4,r5,lr} sub sp, 0x4 ldr r4, [sp, 0x10] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 16 lsrs r5, r3, 16 lsls r4, 16 lsrs r4, 16 mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _0805C140 lsls r1, r5, 16 lsls r2, r4, 16 mov r0, sp ldrb r3, [r0] lsls r0, r3, 3 adds r0, r3 lsls r0, 2 ldr r3, _0805C148 adds r0, r3 movs r3, 0xE0 lsls r3, 11 adds r1, r3 asrs r1, 16 adds r2, r3 asrs r2, 16 bl sub_805C058 _0805C140: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C148: .4byte 0x030048a0 thumb_func_end sub_805C0F8 thumb_func_start npc_coords_shift_still npc_coords_shift_still: @ 805C14C push {lr} movs r2, 0x10 ldrsh r1, [r0, r2] movs r3, 0x12 ldrsh r2, [r0, r3] bl npc_coords_shift pop {r0} bx r0 thumb_func_end npc_coords_shift_still thumb_func_start UpdateFieldObjectCoordsForCameraUpdate UpdateFieldObjectCoordsForCameraUpdate: @ 805C160 push {r4,r5,lr} ldr r2, _0805C1C0 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0805C1B8 movs r3, 0 ldr r5, _0805C1C4 movs r0, 0x4 ldrsh r4, [r2, r0] movs r0, 0x8 ldrsh r1, [r2, r0] _0805C17A: lsls r0, r3, 3 adds r0, r3 lsls r0, 2 adds r2, r0, r5 ldrb r0, [r2] lsls r0, 31 cmp r0, 0 beq _0805C1AE ldrh r0, [r2, 0xC] subs r0, r4 strh r0, [r2, 0xC] ldrh r0, [r2, 0xE] subs r0, r1 strh r0, [r2, 0xE] ldrh r0, [r2, 0x10] subs r0, r4 strh r0, [r2, 0x10] ldrh r0, [r2, 0x12] subs r0, r1 strh r0, [r2, 0x12] ldrh r0, [r2, 0x14] subs r0, r4 strh r0, [r2, 0x14] ldrh r0, [r2, 0x16] subs r0, r1 strh r0, [r2, 0x16] _0805C1AE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _0805C17A _0805C1B8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C1C0: .4byte 0x0202e844 _0805C1C4: .4byte 0x030048a0 thumb_func_end UpdateFieldObjectCoordsForCameraUpdate thumb_func_start GetFieldObjectIdByXYZ GetFieldObjectIdByXYZ: @ 805C1C8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 ldr r0, _0805C214 mov r8, r0 _0805C1E0: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 mov r2, r8 adds r1, r0, r2 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _0805C218 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, r7 bne _0805C218 movs r2, 0x12 ldrsh r0, [r1, r2] cmp r0, r6 bne _0805C218 adds r0, r1, 0 adds r1, r5, 0 bl FieldObjectDoesZCoordMatch lsls r0, 24 cmp r0, 0 beq _0805C218 adds r0, r4, 0 b _0805C224 .align 2, 0 _0805C214: .4byte 0x030048a0 _0805C218: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _0805C1E0 movs r0, 0x10 _0805C224: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end GetFieldObjectIdByXYZ thumb_func_start FieldObjectDoesZCoordMatch FieldObjectDoesZCoordMatch: @ 805C230 push {lr} lsls r1, 24 lsrs r1, 24 ldrb r2, [r0, 0xB] movs r0, 0xF ands r0, r2 cmp r0, 0 beq _0805C250 cmp r1, 0 beq _0805C250 lsls r0, r2, 28 lsrs r0, 28 cmp r0, r1 beq _0805C250 movs r0, 0 b _0805C252 _0805C250: movs r0, 0x1 _0805C252: pop {r1} bx r1 thumb_func_end FieldObjectDoesZCoordMatch thumb_func_start UpdateFieldObjectsForCameraUpdate UpdateFieldObjectsForCameraUpdate: @ 805C258 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 bl UpdateFieldObjectCoordsForCameraUpdate lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_805B55C bl RemoveFieldObjectsOutsideView pop {r4,r5} pop {r0} bx r0 thumb_func_end UpdateFieldObjectsForCameraUpdate thumb_func_start AddCameraObject AddCameraObject: @ 805C284 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0805C2C0 movs r1, 0 movs r2, 0 movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, _0805C2C4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x3E adds r2, r1 mov r12, r2 ldrb r2, [r2] movs r3, 0x4 orrs r2, r3 mov r3, r12 strb r2, [r3] strh r4, [r1, 0x2E] pop {r4} pop {r1} bx r1 .align 2, 0 _0805C2C0: .4byte gSpriteTemplate_830FD24 _0805C2C4: .4byte 0x02020004 thumb_func_end AddCameraObject thumb_func_start ObjectCB_CameraObject ObjectCB_CameraObject: @ 805C2C8 push {r4,r5,lr} sub sp, 0xC mov r2, sp ldr r1, _0805C2EC ldm r1!, {r3-r5} stm r2!, {r3-r5} movs r2, 0x30 ldrsh r1, [r0, r2] lsls r1, 2 add r1, sp ldr r1, [r1] bl _call_via_r1 add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C2EC: .4byte gUnknown_0830FD3C thumb_func_end ObjectCB_CameraObject thumb_func_start CameraObject_0 CameraObject_0: @ 805C2F0 push {lr} ldr r3, _0805C328 movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrh r1, [r1, 0x20] strh r1, [r0, 0x20] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrh r1, [r1, 0x22] strh r1, [r0, 0x22] adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] movs r1, 0x1 strh r1, [r0, 0x30] bl CameraObject_1 pop {r0} bx r0 .align 2, 0 _0805C328: .4byte 0x02020004 thumb_func_end CameraObject_0 thumb_func_start CameraObject_1 CameraObject_1: @ 805C32C push {r4,r5,lr} ldr r3, _0805C360 movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrh r3, [r1, 0x22] ldrh r2, [r0, 0x20] ldrh r4, [r1, 0x20] movs r5, 0x20 ldrsh r1, [r1, r5] subs r1, r2 strh r1, [r0, 0x32] ldrh r2, [r0, 0x22] lsls r1, r3, 16 asrs r1, 16 subs r1, r2 strh r1, [r0, 0x34] strh r4, [r0, 0x20] strh r3, [r0, 0x22] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805C360: .4byte 0x02020004 thumb_func_end CameraObject_1 thumb_func_start CameraObject_2 CameraObject_2: @ 805C364 push {r4,lr} ldr r4, _0805C390 movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x20] movs r3, 0 strh r1, [r0, 0x20] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 ldrh r1, [r1, 0x22] strh r1, [r0, 0x22] strh r3, [r0, 0x32] strh r3, [r0, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _0805C390: .4byte 0x02020004 thumb_func_end CameraObject_2 thumb_func_start FindCameraObject FindCameraObject: @ 805C394 push {r4,r5,lr} movs r3, 0 ldr r4, _0805C3C0 adds r5, r4, 0 adds r5, 0x1C _0805C39E: lsls r0, r3, 4 adds r0, r3 lsls r1, r0, 2 adds r2, r1, r4 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0805C3C8 adds r0, r1, r5 ldr r1, [r0] ldr r0, _0805C3C4 cmp r1, r0 bne _0805C3C8 adds r0, r2, 0 b _0805C3D4 .align 2, 0 _0805C3C0: .4byte 0x02020004 _0805C3C4: .4byte ObjectCB_CameraObject _0805C3C8: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3F bls _0805C39E movs r0, 0 _0805C3D4: pop {r4,r5} pop {r1} bx r1 thumb_func_end FindCameraObject thumb_func_start CameraObjectReset1 CameraObjectReset1: @ 805C3DC push {lr} bl FindCameraObject adds r2, r0, 0 cmp r2, 0 beq _0805C3F4 movs r0, 0 strh r0, [r2, 0x30] ldr r1, [r2, 0x1C] adds r0, r2, 0 bl _call_via_r1 _0805C3F4: pop {r0} bx r0 thumb_func_end CameraObjectReset1 thumb_func_start CameraObjectSetFollowedObjectId CameraObjectSetFollowedObjectId: @ 805C3F8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl FindCameraObject cmp r0, 0 beq _0805C40C strh r4, [r0, 0x2E] bl CameraObjectReset1 _0805C40C: pop {r4} pop {r0} bx r0 thumb_func_end CameraObjectSetFollowedObjectId thumb_func_start CameraObjectGetFollowedObjectId CameraObjectGetFollowedObjectId: @ 805C414 push {lr} bl FindCameraObject cmp r0, 0 beq _0805C426 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r0, 24 b _0805C428 _0805C426: movs r0, 0x40 _0805C428: pop {r1} bx r1 thumb_func_end CameraObjectGetFollowedObjectId thumb_func_start CameraObjectReset2 CameraObjectReset2: @ 805C42C push {lr} bl FindCameraObject movs r1, 0x2 strh r1, [r0, 0x30] pop {r0} bx r0 thumb_func_end CameraObjectReset2 thumb_func_start unref_sub_805C43C unref_sub_805C43C: @ 805C43C push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 16 lsrs r6, r2, 16 lsls r3, 24 lsrs r7, r3, 24 movs r5, 0 ldr r1, _0805C484 _0805C456: lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0805C488 adds r0, r4, 0 mov r1, r12 movs r2, 0x44 bl memcpy mov r0, r8 strh r0, [r4, 0x20] strh r6, [r4, 0x22] adds r0, r4, 0 adds r0, 0x43 strb r7, [r0] b _0805C492 .align 2, 0 _0805C484: .4byte 0x02020004 _0805C488: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3F bls _0805C456 _0805C492: adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end unref_sub_805C43C thumb_func_start obj_unfreeze obj_unfreeze: @ 805C4A0 push {r4-r7,lr} mov r7, r8 push {r7} mov r12, r0 lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 16 lsrs r6, r2, 16 lsls r3, 24 lsrs r7, r3, 24 movs r5, 0x3F ldr r3, _0805C4F4 movs r2, 0x1 negs r2, r2 _0805C4BE: lsls r0, r5, 16 asrs r1, r0, 16 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r3 adds r0, r4, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 31 cmp r0, 0 bne _0805C4F8 adds r0, r4, 0 mov r1, r12 movs r2, 0x44 bl memcpy mov r0, r8 strh r0, [r4, 0x20] strh r6, [r4, 0x22] adds r0, r4, 0 adds r0, 0x43 strb r7, [r0] lsls r0, r5, 24 lsrs r0, 24 b _0805C506 .align 2, 0 _0805C4F4: .4byte 0x02020004 _0805C4F8: subs r0, r1, 0x1 lsls r0, 16 lsrs r5, r0, 16 asrs r0, 16 cmp r0, r2 bgt _0805C4BE movs r0, 0x40 _0805C506: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end obj_unfreeze thumb_func_start FieldObjectSetDirection FieldObjectSetDirection: @ 805C510 push {r4,lr} adds r3, r0, 0 lsls r1, 24 lsrs r2, r1, 24 adds r4, r2, 0 ldrb r0, [r3, 0x18] lsls r0, 28 lsrs r0, 28 adds r1, r3, 0 adds r1, 0x20 strb r0, [r1] ldrb r0, [r3, 0x1] lsls r0, 30 cmp r0, 0 blt _0805C540 movs r0, 0xF adds r1, r2, 0 ands r1, r0 ldrb r2, [r3, 0x18] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x18] _0805C540: lsls r2, r4, 4 ldrb r1, [r3, 0x18] movs r0, 0xF ands r0, r1 orrs r0, r2 strb r0, [r3, 0x18] pop {r4} pop {r0} bx r0 thumb_func_end FieldObjectSetDirection thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap GetFieldObjectScriptPointerByLocalIdAndMap: @ 805C554 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 bl GetFieldObjectTemplateByLocalIdAndMap ldr r0, [r0, 0x10] pop {r1} bx r1 thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap thumb_func_start GetFieldObjectScriptPointerByFieldObjectId GetFieldObjectScriptPointerByFieldObjectId: @ 805C56C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0805C58C lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r0, [r2, 0x8] ldrb r1, [r2, 0x9] ldrb r2, [r2, 0xA] bl GetFieldObjectScriptPointerByLocalIdAndMap pop {r1} bx r1 .align 2, 0 _0805C58C: .4byte 0x030048a0 thumb_func_end GetFieldObjectScriptPointerByFieldObjectId thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap GetFieldObjectFlagIdByLocalIdAndMap: @ 805C590 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 bl GetFieldObjectTemplateByLocalIdAndMap ldrh r0, [r0, 0x14] pop {r1} bx r1 thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap thumb_func_start GetFieldObjectFlagIdByFieldObjectId GetFieldObjectFlagIdByFieldObjectId: @ 805C5A8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0805C5CC lsls r2, r0, 3 adds r2, r0 lsls r2, 2 adds r2, r1 ldrb r0, [r2, 0x8] ldrb r1, [r2, 0x9] ldrb r2, [r2, 0xA] bl GetFieldObjectFlagIdByLocalIdAndMap lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0805C5CC: .4byte 0x030048a0 thumb_func_end GetFieldObjectFlagIdByFieldObjectId thumb_func_start unref_sub_805C5D0 unref_sub_805C5D0: @ 805C5D0 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 _0805C604 ldr r2, _0805C600 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x7] b _0805C606 .align 2, 0 _0805C600: .4byte 0x030048a0 _0805C604: movs r0, 0xFF _0805C606: add sp, 0x4 pop {r1} bx r1 thumb_func_end unref_sub_805C5D0 thumb_func_start unref_sub_805C60C unref_sub_805C60C: @ 805C60C lsls r0, 24 lsrs r0, 24 ldr r2, _0805C620 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x7] bx lr .align 2, 0 _0805C620: .4byte 0x030048a0 thumb_func_end unref_sub_805C60C thumb_func_start unref_sub_805C624 unref_sub_805C624: @ 805C624 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 _0805C658 ldr r2, _0805C654 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1D] b _0805C65A .align 2, 0 _0805C654: .4byte 0x030048a0 _0805C658: movs r0, 0xFF _0805C65A: add sp, 0x4 pop {r1} bx r1 thumb_func_end unref_sub_805C624 thumb_func_start FieldObjectGetBerryTreeId FieldObjectGetBerryTreeId: @ 805C660 lsls r0, 24 lsrs r0, 24 ldr r2, _0805C674 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x1D] bx lr .align 2, 0 _0805C674: .4byte 0x030048a0 thumb_func_end FieldObjectGetBerryTreeId thumb_func_start GetFieldObjectTemplateByLocalIdAndMap GetFieldObjectTemplateByLocalIdAndMap: @ 805C678 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r2, 24 ldr r1, _0805C6A4 movs r0, 0x5 ldrsb r0, [r1, r0] cmp r0, r3 bne _0805C6AC movs r0, 0x4 ldrsb r0, [r1, r0] cmp r0, r2 bne _0805C6AC movs r0, 0xC2 lsls r0, 4 adds r1, r0 ldr r0, _0805C6A8 ldr r0, [r0, 0x4] b _0805C6B8 .align 2, 0 _0805C6A4: .4byte 0x02025734 _0805C6A8: .4byte 0x0202e828 _0805C6AC: adds r0, r2, 0 adds r1, r3, 0 bl get_mapheader_by_bank_and_number ldr r0, [r0, 0x4] ldr r1, [r0, 0x4] _0805C6B8: ldrb r2, [r0] adds r0, r4, 0 bl FindFieldObjectTemplateInArrayByLocalId pop {r4} pop {r1} bx r1 thumb_func_end GetFieldObjectTemplateByLocalIdAndMap thumb_func_start FindFieldObjectTemplateInArrayByLocalId FindFieldObjectTemplateInArrayByLocalId: @ 805C6C8 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r4, r0, 24 lsls r2, 24 lsrs r2, 24 movs r1, 0 cmp r1, r2 bcs _0805C6F6 _0805C6DA: lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0, r5 ldrb r0, [r3] cmp r0, r4 bne _0805C6EC adds r0, r3, 0 b _0805C6F8 _0805C6EC: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcc _0805C6DA _0805C6F6: movs r0, 0 _0805C6F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end FindFieldObjectTemplateInArrayByLocalId thumb_func_start sub_805C700 sub_805C700: @ 805C700 push {r4,r5,lr} adds r2, r0, 0 ldrb r1, [r2, 0x9] ldr r4, _0805C720 movs r0, 0x5 ldrsb r0, [r4, r0] adds r5, r4, 0 cmp r1, r0 bne _0805C74A ldrb r1, [r2, 0xA] movs r0, 0x4 ldrsb r0, [r5, r0] cmp r1, r0 beq _0805C72E b _0805C74A .align 2, 0 _0805C720: .4byte 0x02025734 _0805C724: movs r1, 0xC2 lsls r1, 4 adds r0, r5, r1 adds r0, r2, r0 b _0805C74C _0805C72E: movs r3, 0 ldrb r0, [r2, 0x8] movs r2, 0xC2 lsls r2, 4 adds r1, r4, r2 movs r2, 0 _0805C73A: ldrb r4, [r1] cmp r0, r4 beq _0805C724 adds r1, 0x18 adds r2, 0x18 adds r3, 0x1 cmp r3, 0x3F ble _0805C73A _0805C74A: movs r0, 0 _0805C74C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805C700 thumb_func_start sub_805C754 sub_805C754: @ 805C754 push {r4,lr} adds r4, r0, 0 bl sub_805C700 adds r1, r0, 0 cmp r1, 0 beq _0805C76E ldrh r0, [r4, 0x10] subs r0, 0x7 strh r0, [r1, 0x4] ldrh r0, [r4, 0x12] subs r0, 0x7 strh r0, [r1, 0x6] _0805C76E: pop {r4} pop {r0} bx r0 thumb_func_end sub_805C754 thumb_func_start sub_805C774 sub_805C774: @ 805C774 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 bl sub_805C700 cmp r0, 0 beq _0805C784 strb r4, [r0, 0x9] _0805C784: pop {r4} pop {r0} bx r0 thumb_func_end sub_805C774 thumb_func_start sub_805C78C sub_805C78C: @ 805C78C 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 _0805C7BA mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805C7C0 adds r0, r1 bl sub_805C754 _0805C7BA: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0805C7C0: .4byte 0x030048a0 thumb_func_end sub_805C78C thumb_func_start sub_805C7C4 sub_805C7C4: @ 805C7C4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl gpu_pal_allocator_reset__manage_upper_four ldr r1, _0805C7F4 ldr r2, _0805C7F8 adds r0, r2, 0 strh r0, [r1] ldr r0, _0805C7FC strb r4, [r0] ldr r1, _0805C800 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0xA bl pal_patch_for_npc_range pop {r4} pop {r0} bx r0 .align 2, 0 _0805C7F4: .4byte 0x030005a6 _0805C7F8: .4byte 0x000011ff _0805C7FC: .4byte 0x030005a4 _0805C800: .4byte gUnknown_0837399C thumb_func_end sub_805C7C4 thumb_func_start npc_paltag_by_palslot npc_paltag_by_palslot: @ 805C804 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x9 bhi _0805C840 ldr r1, _0805C820 ldr r0, _0805C824 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r0, r2, 1 b _0805C834 .align 2, 0 _0805C820: .4byte gUnknown_0837399C _0805C824: .4byte 0x030005a4 _0805C828: adds r1, r4, 0x4 adds r1, r2, r1 ldr r0, _0805C83C ldrb r0, [r0] ldr r1, [r1] lsls r0, 1 _0805C834: adds r0, r1 ldrh r0, [r0] b _0805C872 .align 2, 0 _0805C83C: .4byte 0x030005a4 _0805C840: movs r3, 0 ldr r0, _0805C878 ldrh r1, [r0] ldr r2, _0805C87C adds r4, r0, 0 cmp r1, r2 beq _0805C870 adds r6, r4, 0 ldr r0, _0805C880 ldrh r1, [r0] adds r5, r2, 0 _0805C856: lsls r2, r3, 3 adds r0, r2, r6 ldrh r0, [r0] cmp r0, r1 beq _0805C828 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 3 adds r0, r4 ldrh r0, [r0] cmp r0, r5 bne _0805C856 _0805C870: ldr r0, _0805C87C _0805C872: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805C878: .4byte gUnknown_083738E4 _0805C87C: .4byte 0x000011ff _0805C880: .4byte 0x030005a6 thumb_func_end npc_paltag_by_palslot thumb_func_start sub_805C884 sub_805C884: @ 805C884 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, _0805C8A0 adds r0, r2 ldr r2, _0805C8A4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805C8A0: .4byte 0x030048a0 _0805C8A4: .4byte sub_805C8A8 thumb_func_end sub_805C884 thumb_func_start sub_805C8A8 sub_805C8A8: @ 805C8A8 movs r0, 0 bx lr thumb_func_end sub_805C8A8 thumb_func_start sub_805C8AC sub_805C8AC: @ 805C8AC 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, _0805C8C8 adds r0, r2 ldr r2, _0805C8CC bl meta_step pop {r0} bx r0 .align 2, 0 _0805C8C8: .4byte 0x030048a0 _0805C8CC: .4byte sub_805C8D0 thumb_func_end sub_805C8AC thumb_func_start sub_805C8D0 sub_805C8D0: @ 805C8D0 push {r4,lr} ldr r3, _0805C8EC 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 _0805C8EC: .4byte gUnknown_08375224 thumb_func_end sub_805C8D0 thumb_func_start sub_805C8F0 sub_805C8F0: @ 805C8F0 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_805C8F0 thumb_func_start sub_805C904 sub_805C904: @ 805C904 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_805C904 thumb_func_start sub_805C930 sub_805C930: @ 805C930 push {r4-r6,lr} adds r6, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805C964 ldr r5, _0805C960 bl Random movs r4, 0x3 adds r1, r4, 0 ands r1, r0 lsls r1, 1 adds r1, r5 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r6, 0 bl sub_8064820 strh r4, [r6, 0x30] movs r0, 0x1 b _0805C966 .align 2, 0 _0805C960: .4byte gUnknown_0837520C _0805C964: movs r0, 0 _0805C966: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805C930 thumb_func_start sub_805C96C sub_805C96C: @ 805C96C push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805C980 movs r0, 0 b _0805C986 _0805C980: movs r0, 0x4 strh r0, [r4, 0x30] movs r0, 0x1 _0805C986: pop {r4} pop {r1} bx r1 thumb_func_end sub_805C96C thumb_func_start sub_805C98C sub_805C98C: @ 805C98C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r1, _0805C9D4 mov r0, sp movs r2, 0x4 bl memcpy bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r4, [r0] adds r0, r5, 0 adds r1, r4, 0 bl FieldObjectSetDirection movs r0, 0x5 strh r0, [r6, 0x30] adds r0, r5, 0 adds r1, r4, 0 bl sub_805FF20 lsls r0, 24 cmp r0, 0 beq _0805C9CA movs r0, 0x1 strh r0, [r6, 0x30] _0805C9CA: movs r0, 0x1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805C9D4: .4byte gUnknown_08375240 thumb_func_end sub_805C98C thumb_func_start sub_805C9D8 sub_805C9D8: @ 805C9D8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId 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, 0x6 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805C9D8 thumb_func_start sub_805CA08 sub_805CA08: @ 805CA08 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805CA26 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805CA26: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805CA08 thumb_func_start FieldObjectIsTrainerAndCloseToPlayer FieldObjectIsTrainerAndCloseToPlayer: @ 805CA30 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 movs r0, 0x80 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _0805CA9C ldrb r0, [r5, 0x7] cmp r0, 0x1 beq _0805CA4C cmp r0, 0x3 bne _0805CA9C _0805CA4C: mov r7, sp adds r7, 0x2 mov r0, sp adds r1, r7, 0 bl PlayerGetDestCoords ldrh r2, [r5, 0x10] ldrh r4, [r5, 0x12] ldrb r1, [r5, 0x1D] subs r3, r2, r1 subs r0, r4, r1 lsls r0, 16 lsrs r5, r0, 16 adds r2, r1, r2 lsls r2, 16 lsrs r2, 16 adds r1, r4 lsls r1, 16 lsrs r6, r1, 16 mov r0, sp lsls r3, 16 asrs r3, 16 movs r1, 0 ldrsh r4, [r0, r1] cmp r3, r4 bgt _0805CA9C lsls r0, r2, 16 asrs r0, 16 cmp r0, r4 blt _0805CA9C lsls r0, r5, 16 asrs r0, 16 movs r2, 0 ldrsh r1, [r7, r2] cmp r0, r1 bgt _0805CA9C lsls r0, r6, 16 asrs r0, 16 cmp r0, r1 bge _0805CAA0 _0805CA9C: movs r0, 0 b _0805CAA2 _0805CAA0: movs r0, 0x1 _0805CAA2: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end FieldObjectIsTrainerAndCloseToPlayer thumb_func_start sub_805CAAC sub_805CAAC: @ 805CAAC push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r0, r1, 16 lsls r2, 16 lsls r3, 16 cmp r2, r3 ble _0805CACA movs r2, 0x4 lsls r0, r4, 16 cmp r0, 0 bge _0805CAD4 movs r2, 0x3 b _0805CAD4 _0805CACA: movs r2, 0x1 lsls r0, 16 cmp r0, 0 bge _0805CAD4 movs r2, 0x2 _0805CAD4: adds r0, r2, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_805CAAC thumb_func_start sub_805CADC sub_805CADC: @ 805CADC push {lr} movs r0, 0x1 lsls r1, 16 cmp r1, 0 bge _0805CAE8 movs r0, 0x2 _0805CAE8: pop {r1} bx r1 thumb_func_end sub_805CADC thumb_func_start sub_805CAEC sub_805CAEC: @ 805CAEC push {lr} movs r1, 0x4 lsls r0, 16 cmp r0, 0 bge _0805CAF8 movs r1, 0x3 _0805CAF8: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_805CAEC thumb_func_start sub_805CB00 sub_805CB00: @ 805CB00 push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 lsls r3, 16 asrs r7, r3, 16 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805CB3C adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0805CB56 b _0805CB54 _0805CB3C: cmp r0, 0x4 bne _0805CB56 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805CB56 _0805CB54: movs r0, 0x2 _0805CB56: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CB00 thumb_func_start sub_805CB5C sub_805CB5C: @ 805CB5C push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 lsls r3, 16 asrs r7, r3, 16 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805CB98 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805CBB2 b _0805CBB0 _0805CB98: cmp r0, 0x3 bne _0805CBB2 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805CBB2 _0805CBB0: movs r0, 0x2 _0805CBB2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CB5C thumb_func_start sub_805CBB8 sub_805CBB8: @ 805CBB8 push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 lsls r3, 16 asrs r7, r3, 16 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805CBF4 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0805CC0E b _0805CC0C _0805CBF4: cmp r0, 0x4 bne _0805CC0E adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805CC0E _0805CC0C: movs r0, 0x1 _0805CC0E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CBB8 thumb_func_start sub_805CC14 sub_805CC14: @ 805CC14 push {r4-r7,lr} lsls r0, 16 asrs r4, r0, 16 lsls r1, 16 asrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 lsls r3, 16 asrs r7, r3, 16 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805CC50 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805CC6A b _0805CC68 _0805CC50: cmp r0, 0x3 bne _0805CC6A adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 adds r3, r7, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805CC6A _0805CC68: movs r0, 0x1 _0805CC6A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CC14 thumb_func_start sub_805CC70 sub_805CC70: @ 805CC70 push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 lsls r1, 16 asrs r6, r1, 16 lsls r2, 16 asrs r5, r2, 16 lsls r3, 16 asrs r4, r3, 16 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0805CCA6 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 _0805CCA6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CC70 thumb_func_start sub_805CCAC sub_805CCAC: @ 805CCAC push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 lsls r1, 16 asrs r6, r1, 16 lsls r2, 16 asrs r5, r2, 16 lsls r3, 16 asrs r4, r3, 16 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0805CCE2 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CADC lsls r0, 24 lsrs r0, 24 _0805CCE2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CCAC thumb_func_start sub_805CCE8 sub_805CCE8: @ 805CCE8 push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 lsls r1, 16 asrs r6, r1, 16 lsls r2, 16 asrs r5, r2, 16 lsls r3, 16 asrs r4, r3, 16 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0805CD1E adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 _0805CD1E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CCE8 thumb_func_start sub_805CD24 sub_805CD24: @ 805CD24 push {r4-r7,lr} lsls r0, 16 asrs r7, r0, 16 lsls r1, 16 asrs r6, r1, 16 lsls r2, 16 asrs r5, r2, 16 lsls r3, 16 asrs r4, r3, 16 adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAAC lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0805CD5A adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_805CAEC lsls r0, 24 lsrs r0, 24 _0805CD5A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_805CD24 thumb_func_start sub_805CD60 sub_805CD60: @ 805CD60 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 bne _0805CD78 movs r0, 0 b _0805CDDC _0805CD78: mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords mov r2, sp mov r0, sp ldrh r0, [r0] ldrh r1, [r4, 0x10] subs r0, r1 strh r0, [r2] ldrh r0, [r5] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r5] mov r0, sp ldrh r3, [r5] ldrh r2, [r0] movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _0805CDAC negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 _0805CDAC: lsls r0, r3, 16 asrs r0, 16 cmp r0, 0 bge _0805CDBA negs r0, r0 lsls r0, 16 lsrs r3, r0, 16 _0805CDBA: ldr r0, _0805CDE4 lsls r4, r6, 2 adds r4, r0 mov r0, sp movs r6, 0 ldrsh r0, [r0, r6] movs r6, 0 ldrsh r1, [r5, r6] lsls r2, 16 asrs r2, 16 lsls r3, 16 asrs r3, 16 ldr r4, [r4] bl _call_via_r4 lsls r0, 24 lsrs r0, 24 _0805CDDC: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0805CDE4: .4byte gUnknown_08375244 thumb_func_end sub_805CD60 thumb_func_start sub_805CDE8 sub_805CDE8: @ 805CDE8 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, _0805CE04 adds r0, r2 ldr r2, _0805CE08 bl meta_step pop {r0} bx r0 .align 2, 0 _0805CE04: .4byte 0x030048a0 _0805CE08: .4byte sub_805CE0C thumb_func_end sub_805CDE8 thumb_func_start sub_805CE0C sub_805CE0C: @ 805CE0C push {r4,lr} ldr r3, _0805CE28 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 _0805CE28: .4byte gUnknown_08375270 thumb_func_end sub_805CE0C thumb_func_start sub_805CE2C sub_805CE2C: @ 805CE2C 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_805CE2C thumb_func_start sub_805CE40 sub_805CE40: @ 805CE40 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_805CE40 thumb_func_start sub_805CE6C sub_805CE6C: @ 805CE6C push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805CEA2 ldr r4, _0805CEAC 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] _0805CEA2: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805CEAC: .4byte gUnknown_0837520C thumb_func_end sub_805CE6C thumb_func_start sub_805CEB0 sub_805CEB0: @ 805CEB0 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 _0805CECE adds r0, r4, 0 bl FieldObjectIsTrainerAndCloseToPlayer lsls r0, 24 cmp r0, 0 beq _0805CED6 _0805CECE: movs r0, 0x4 strh r0, [r5, 0x30] movs r0, 0x1 b _0805CED8 _0805CED6: movs r0, 0 _0805CED8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805CEB0 thumb_func_start sub_805CEE0 sub_805CEE0: @ 805CEE0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0805CF24 mov r0, sp movs r2, 0x4 bl memcpy adds r0, r4, 0 movs r1, 0 bl sub_805CD60 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0805CF10 bl Random movs r1, 0x3 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r1, [r0] _0805CF10: 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 _0805CF24: .4byte gUnknown_08375240 thumb_func_end sub_805CEE0 thumb_func_start sub_805CF28 sub_805CF28: @ 805CF28 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, _0805CF44 adds r0, r2 ldr r2, _0805CF48 bl meta_step pop {r0} bx r0 .align 2, 0 _0805CF44: .4byte 0x030048a0 _0805CF48: .4byte sub_805CF4C thumb_func_end sub_805CF28 thumb_func_start sub_805CF4C sub_805CF4C: @ 805CF4C push {r4,lr} ldr r3, _0805CF68 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 _0805CF68: .4byte gUnknown_08375284 thumb_func_end sub_805CF4C thumb_func_start sub_805CF6C sub_805CF6C: @ 805CF6C 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_805CF6C thumb_func_start sub_805CF80 sub_805CF80: @ 805CF80 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_805CF80 thumb_func_start sub_805CFAC sub_805CFAC: @ 805CFAC push {r4-r6,lr} adds r6, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805CFE0 ldr r5, _0805CFDC bl Random movs r4, 0x3 adds r1, r4, 0 ands r1, r0 lsls r1, 1 adds r1, r5 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r6, 0 bl sub_8064820 strh r4, [r6, 0x30] movs r0, 0x1 b _0805CFE2 .align 2, 0 _0805CFDC: .4byte gUnknown_0837520C _0805CFE0: movs r0, 0 _0805CFE2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805CFAC thumb_func_start sub_805CFE8 sub_805CFE8: @ 805CFE8 push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805CFFC movs r0, 0 b _0805D002 _0805CFFC: movs r0, 0x4 strh r0, [r4, 0x30] movs r0, 0x1 _0805D002: pop {r4} pop {r1} bx r1 thumb_func_end sub_805CFE8 thumb_func_start sub_805D008 sub_805D008: @ 805D008 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r1, _0805D050 mov r0, sp movs r2, 0x2 bl memcpy bl Random movs r7, 0x1 adds r1, r7, 0 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r4, [r0] adds r0, r5, 0 adds r1, r4, 0 bl FieldObjectSetDirection movs r0, 0x5 strh r0, [r6, 0x30] adds r0, r5, 0 adds r1, r4, 0 bl sub_805FF20 lsls r0, 24 cmp r0, 0 beq _0805D046 strh r7, [r6, 0x30] _0805D046: movs r0, 0x1 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D050: .4byte gUnknown_083752A0 thumb_func_end sub_805D008 thumb_func_start sub_805D054 sub_805D054: @ 805D054 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId 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, 0x6 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D054 thumb_func_start sub_805D084 sub_805D084: @ 805D084 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D0A2 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805D0A2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D084 thumb_func_start sub_805D0AC sub_805D0AC: @ 805D0AC 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, _0805D0C8 adds r0, r2 ldr r2, _0805D0CC bl meta_step pop {r0} bx r0 .align 2, 0 _0805D0C8: .4byte 0x030048a0 _0805D0CC: .4byte sub_805D0D0 thumb_func_end sub_805D0AC thumb_func_start sub_805D0D0 sub_805D0D0: @ 805D0D0 push {r4,lr} ldr r3, _0805D0EC 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 _0805D0EC: .4byte gUnknown_083752A4 thumb_func_end sub_805D0D0 thumb_func_start sub_805D0F0 sub_805D0F0: @ 805D0F0 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_805D0F0 thumb_func_start sub_805D104 sub_805D104: @ 805D104 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_805D104 thumb_func_start sub_805D130 sub_805D130: @ 805D130 push {r4-r6,lr} adds r6, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D164 ldr r5, _0805D160 bl Random movs r4, 0x3 adds r1, r4, 0 ands r1, r0 lsls r1, 1 adds r1, r5 movs r0, 0 ldrsh r1, [r1, r0] adds r0, r6, 0 bl sub_8064820 strh r4, [r6, 0x30] movs r0, 0x1 b _0805D166 .align 2, 0 _0805D160: .4byte gUnknown_0837520C _0805D164: movs r0, 0 _0805D166: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_805D130 thumb_func_start sub_805D16C sub_805D16C: @ 805D16C push {r4,lr} adds r4, r1, 0 adds r0, r4, 0 bl sub_8064824 lsls r0, 24 cmp r0, 0 bne _0805D180 movs r0, 0 b _0805D186 _0805D180: movs r0, 0x4 strh r0, [r4, 0x30] movs r0, 0x1 _0805D186: pop {r4} pop {r1} bx r1 thumb_func_end sub_805D16C thumb_func_start sub_805D18C sub_805D18C: @ 805D18C push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r1, _0805D1D4 mov r0, sp movs r2, 0x2 bl memcpy bl Random movs r7, 0x1 adds r1, r7, 0 ands r1, r0 mov r2, sp adds r0, r2, r1 ldrb r4, [r0] adds r0, r5, 0 adds r1, r4, 0 bl FieldObjectSetDirection movs r0, 0x5 strh r0, [r6, 0x30] adds r0, r5, 0 adds r1, r4, 0 bl sub_805FF20 lsls r0, 24 cmp r0, 0 beq _0805D1CA strh r7, [r6, 0x30] _0805D1CA: movs r0, 0x1 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0805D1D4: .4byte gUnknown_083752C0 thumb_func_end sub_805D18C thumb_func_start sub_805D1D8 sub_805D1D8: @ 805D1D8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x18] lsrs r0, 4 bl GetGoSpeed0AnimId 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, 0x6 strh r0, [r5, 0x30] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D1D8 thumb_func_start sub_805D208 sub_805D208: @ 805D208 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 beq _0805D226 ldrb r0, [r4] movs r1, 0x3 negs r1, r1 ands r1, r0 strb r1, [r4] movs r0, 0x1 strh r0, [r5, 0x30] _0805D226: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_805D208 thumb_func_start sub_805D230 sub_805D230: @ 805D230 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, _0805D24C adds r0, r2 ldr r2, _0805D250 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D24C: .4byte 0x030048a0 _0805D250: .4byte sub_805D254 thumb_func_end sub_805D230 thumb_func_start sub_805D254 sub_805D254: @ 805D254 push {r4,lr} ldr r3, _0805D270 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 _0805D270: .4byte gUnknown_083752C4 thumb_func_end sub_805D254 thumb_func_start sub_805D274 sub_805D274: @ 805D274 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_805D274 thumb_func_start sub_805D2A0 sub_805D2A0: @ 805D2A0 push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 bne _0805D2B2 movs r0, 0 b _0805D2B8 _0805D2B2: movs r0, 0x2 strh r0, [r4, 0x30] movs r0, 0x1 _0805D2B8: pop {r4} pop {r1} bx r1 thumb_func_end sub_805D2A0 thumb_func_start sub_805D2C0 sub_805D2C0: @ 805D2C0 ldrb r2, [r0] movs r1, 0x3 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0 bx lr thumb_func_end sub_805D2C0 thumb_func_start FieldObjectCB_BerryTree FieldObjectCB_BerryTree: @ 805D2D0 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0805D30C adds r5, r0, r1 ldrh r1, [r4, 0x3C] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0805D2FC adds r0, r5, 0 adds r1, r4, 0 bl get_berry_tree_graphics ldrh r1, [r4, 0x3C] movs r0, 0x1 orrs r0, r1 strh r0, [r4, 0x3C] _0805D2FC: ldr r2, _0805D310 adds r0, r5, 0 adds r1, r4, 0 bl meta_step pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805D30C: .4byte 0x030048a0 _0805D310: .4byte sub_805D314 thumb_func_end FieldObjectCB_BerryTree thumb_func_start sub_805D314 sub_805D314: @ 805D314 push {r4,lr} ldr r3, _0805D330 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 _0805D330: .4byte gUnknown_083752D0 thumb_func_end sub_805D314 thumb_func_start do_berry_tree_growth_sparkle_1 do_berry_tree_growth_sparkle_1: @ 805D334 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 bl npc_reset ldrb r0, [r4, 0x1] movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x1] adds r6, r5, 0 adds r6, 0x3E ldrb r0, [r6] movs r1, 0x4 orrs r0, r1 strb r0, [r6] ldrb r0, [r4, 0x1D] bl GetStageByBerryTreeId lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _0805D3A4 ldrh r1, [r5, 0x3C] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0805D39A subs r6, 0x14 ldrb r0, [r6] cmp r0, 0x4 bne _0805D39A ldr r1, _0805D3A0 movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] movs r2, 0x12 ldrsh r0, [r4, r2] str r0, [r1, 0x4] adds r0, r5, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r1, 0x8] ldrb r0, [r5, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r1, 0xC] movs r0, 0x17 bl FieldEffectStart strb r7, [r6] _0805D39A: movs r0, 0 b _0805D3E6 .align 2, 0 _0805D3A0: .4byte 0x0202ff84 _0805D3A4: ldrb r1, [r4, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x1] ldrb r1, [r6] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r6] subs r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 adds r0, 0x2A ldrb r0, [r0] cmp r0, r7 bne _0805D3E0 adds r0, r4, 0 adds r1, r5, 0 bl get_berry_tree_graphics adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x39 bl FieldObjectSetRegularAnim movs r0, 0x1 strh r0, [r5, 0x30] b _0805D3E6 _0805D3E0: movs r0, 0x2 strh r0, [r5, 0x30] movs r0, 0x1 _0805D3E6: pop {r4-r7} pop {r1} bx r1 thumb_func_end do_berry_tree_growth_sparkle_1 thumb_func_start sub_805D3EC sub_805D3EC: @ 805D3EC push {r4,lr} adds r4, r1, 0 bl FieldObjectExecRegularAnim lsls r0, 24 cmp r0, 0 bne _0805D3FE movs r0, 0 b _0805D404 _0805D3FE: movs r0, 0 strh r0, [r4, 0x30] movs r0, 0x1 _0805D404: pop {r4} pop {r1} bx r1 thumb_func_end sub_805D3EC thumb_func_start do_berry_tree_growth_sparkle_2 do_berry_tree_growth_sparkle_2: @ 805D40C push {r4,lr} ldrb r2, [r0] movs r3, 0x2 orrs r2, r3 strb r2, [r0] movs r3, 0 movs r2, 0x3 strh r2, [r1, 0x30] strh r3, [r1, 0x32] ldrh r3, [r1, 0x3C] movs r2, 0x2 orrs r2, r3 strh r2, [r1, 0x3C] ldr r3, _0805D454 movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] movs r2, 0x12 ldrsh r0, [r0, r2] str r0, [r3, 0x4] adds r0, r1, 0 adds r0, 0x43 ldrb r0, [r0] subs r0, 0x1 str r0, [r3, 0x8] ldrb r0, [r1, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r3, 0xC] movs r0, 0x17 bl FieldEffectStart movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0805D454: .4byte 0x0202ff84 thumb_func_end do_berry_tree_growth_sparkle_2 thumb_func_start sub_805D458 sub_805D458: @ 805D458 push {r4,lr} adds r3, r0, 0 adds r4, r1, 0 ldrh r1, [r4, 0x32] adds r1, 0x1 strh r1, [r4, 0x32] movs r0, 0x2 ands r1, r0 lsls r1, 16 lsrs r1, 17 lsls r1, 5 ldrb r2, [r3, 0x1] subs r0, 0x23 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x1] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x40 bgt _0805D490 movs r0, 0 b _0805D4A2 _0805D490: adds r0, r3, 0 adds r1, r4, 0 bl get_berry_tree_graphics movs r0, 0x4 strh r0, [r4, 0x30] movs r0, 0 strh r0, [r4, 0x32] movs r0, 0x1 _0805D4A2: pop {r4} pop {r1} bx r1 thumb_func_end sub_805D458 thumb_func_start sub_805D4A8 sub_805D4A8: @ 805D4A8 push {r4,lr} adds r4, r1, 0 ldrh r2, [r4, 0x32] adds r2, 0x1 strh r2, [r4, 0x32] movs r1, 0x2 ands r2, r1 lsls r2, 16 lsrs r2, 17 lsls r2, 5 ldrb r3, [r0, 0x1] subs r1, 0x23 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x1] adds r2, r4, 0 adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0x40 bgt _0805D4DE movs r0, 0 b _0805D4EC _0805D4DE: movs r0, 0 strh r0, [r4, 0x30] ldrh r1, [r4, 0x3C] subs r0, 0x3 ands r0, r1 strh r0, [r4, 0x3C] movs r0, 0x1 _0805D4EC: pop {r4} pop {r1} bx r1 thumb_func_end sub_805D4A8 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 adds r0, r2 ldr r2, _0805D514 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D510: .4byte 0x030048a0 _0805D514: .4byte sub_805D518 thumb_func_end sub_805D4F4 thumb_func_start sub_805D518 sub_805D518: @ 805D518 push {r4,lr} ldr r3, _0805D534 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 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 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 adds r0, r2 ldr r2, _0805D654 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D650: .4byte 0x030048a0 _0805D654: .4byte sub_805D658 thumb_func_end sub_805D634 thumb_func_start sub_805D658 sub_805D658: @ 805D658 push {r4,lr} ldr r3, _0805D674 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 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 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 adds r0, r2 ldr r2, _0805D794 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D790: .4byte 0x030048a0 _0805D794: .4byte sub_805D798 thumb_func_end sub_805D774 thumb_func_start sub_805D798 sub_805D798: @ 805D798 push {r4,lr} ldr r3, _0805D7B4 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 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 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 adds r0, r2 ldr r2, _0805D8D4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805D8D0: .4byte 0x030048a0 _0805D8D4: .4byte sub_805D8D8 thumb_func_end sub_805D8B4 thumb_func_start sub_805D8D8 sub_805D8D8: @ 805D8D8 push {r4,lr} ldr r3, _0805D8F4 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 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 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 adds r0, r2 ldr r2, _0805DA14 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DA10: .4byte 0x030048a0 _0805DA14: .4byte sub_805DA18 thumb_func_end sub_805D9F4 thumb_func_start sub_805DA18 sub_805DA18: @ 805DA18 push {r4,lr} ldr r3, _0805DA34 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 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 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 adds r0, r2 ldr r2, _0805DB54 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DB50: .4byte 0x030048a0 _0805DB54: .4byte sub_805DB58 thumb_func_end sub_805DB34 thumb_func_start sub_805DB58 sub_805DB58: @ 805DB58 push {r4,lr} ldr r3, _0805DB74 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 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 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 adds r0, r2 ldr r2, _0805DC94 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DC90: .4byte 0x030048a0 _0805DC94: .4byte sub_805DC98 thumb_func_end sub_805DC74 thumb_func_start sub_805DC98 sub_805DC98: @ 805DC98 push {r4,lr} ldr r3, _0805DCB4 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 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 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 adds r0, r2 ldr r2, _0805DDD4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DDD0: .4byte 0x030048a0 _0805DDD4: .4byte sub_805DDD8 thumb_func_end sub_805DDB4 thumb_func_start sub_805DDD8 sub_805DDD8: @ 805DDD8 push {r4,lr} ldr r3, _0805DDF4 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 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 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 adds r0, r2 ldr r2, _0805DF14 bl meta_step pop {r0} bx r0 .align 2, 0 _0805DF10: .4byte 0x030048a0 _0805DF14: .4byte sub_805DF18 thumb_func_end sub_805DEF4 thumb_func_start sub_805DF18 sub_805DF18: @ 805DF18 push {r4,lr} ldr r3, _0805DF34 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 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 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 adds r0, r2 ldr r2, _0805E054 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E050: .4byte 0x030048a0 _0805E054: .4byte sub_805E058 thumb_func_end sub_805E034 thumb_func_start sub_805E058 sub_805E058: @ 805E058 push {r4,lr} ldr r3, _0805E074 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 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 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 adds r0, r2 ldr r2, _0805E194 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E190: .4byte 0x030048a0 _0805E194: .4byte sub_805E198 thumb_func_end sub_805E174 thumb_func_start sub_805E198 sub_805E198: @ 805E198 push {r4,lr} ldr r3, _0805E1B4 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 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 adds r0, r2 ldr r2, _0805E298 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E294: .4byte 0x030048a0 _0805E298: .4byte sub_805E29C thumb_func_end sub_805E278 thumb_func_start sub_805E29C sub_805E29C: @ 805E29C push {r4,lr} ldr r3, _0805E2B8 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 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 adds r0, r2 ldr r2, _0805E39C bl meta_step pop {r0} bx r0 .align 2, 0 _0805E398: .4byte 0x030048a0 _0805E39C: .4byte sub_805E3A0 thumb_func_end sub_805E37C thumb_func_start sub_805E3A0 sub_805E3A0: @ 805E3A0 push {r4,lr} ldr r3, _0805E3BC 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 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 adds r0, r2 ldr r2, _0805E5FC bl meta_step pop {r0} bx r0 .align 2, 0 _0805E5F8: .4byte 0x030048a0 _0805E5FC: .4byte sub_805E600 thumb_func_end sub_805E5DC thumb_func_start sub_805E600 sub_805E600: @ 805E600 push {r4,lr} ldr r3, _0805E61C 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 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 adds r0, r2 ldr r2, _0805E688 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E684: .4byte 0x030048a0 _0805E688: .4byte sub_805E68C thumb_func_end sub_805E668 thumb_func_start sub_805E68C sub_805E68C: @ 805E68C push {r4,lr} ldr r3, _0805E6A8 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 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 adds r0, r2 ldr r2, _0805E714 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E710: .4byte 0x030048a0 _0805E714: .4byte sub_805E718 thumb_func_end sub_805E6F4 thumb_func_start sub_805E718 sub_805E718: @ 805E718 push {r4,lr} ldr r3, _0805E734 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 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 adds r0, r2 ldr r2, _0805E7A0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E79C: .4byte 0x030048a0 _0805E7A0: .4byte sub_805E7A4 thumb_func_end sub_805E780 thumb_func_start sub_805E7A4 sub_805E7A4: @ 805E7A4 push {r4,lr} ldr r3, _0805E7C0 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 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 adds r0, r2 ldr r2, _0805E82C bl meta_step pop {r0} bx r0 .align 2, 0 _0805E828: .4byte 0x030048a0 _0805E82C: .4byte sub_805E830 thumb_func_end sub_805E80C thumb_func_start sub_805E830 sub_805E830: @ 805E830 push {r4,lr} ldr r3, _0805E84C 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 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 adds r0, r2 ldr r2, _0805E8B8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E8B4: .4byte 0x030048a0 _0805E8B8: .4byte sub_805E8BC thumb_func_end sub_805E898 thumb_func_start sub_805E8BC sub_805E8BC: @ 805E8BC push {r4,lr} ldr r3, _0805E8D8 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 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 adds r0, r2 ldr r2, _0805E944 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E940: .4byte 0x030048a0 _0805E944: .4byte sub_805E948 thumb_func_end sub_805E924 thumb_func_start sub_805E948 sub_805E948: @ 805E948 push {r4,lr} ldr r3, _0805E964 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 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 adds r0, r2 ldr r2, _0805E9D0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805E9CC: .4byte 0x030048a0 _0805E9D0: .4byte sub_805E9D4 thumb_func_end sub_805E9B0 thumb_func_start sub_805E9D4 sub_805E9D4: @ 805E9D4 push {r4,lr} ldr r3, _0805E9F0 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 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 adds r0, r2 ldr r2, _0805EA5C bl meta_step pop {r0} bx r0 .align 2, 0 _0805EA58: .4byte 0x030048a0 _0805EA5C: .4byte sub_805EA60 thumb_func_end sub_805EA3C thumb_func_start sub_805EA60 sub_805EA60: @ 805EA60 push {r4,lr} ldr r3, _0805EA7C 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 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 adds r0, r2 ldr r2, _0805EAE8 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EAE4: .4byte 0x030048a0 _0805EAE8: .4byte sub_805EAEC thumb_func_end sub_805EAC8 thumb_func_start sub_805EAEC sub_805EAEC: @ 805EAEC push {r4,lr} ldr r3, _0805EB08 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 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 adds r0, r2 ldr r2, _0805EB74 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EB70: .4byte 0x030048a0 _0805EB74: .4byte sub_805EB78 thumb_func_end sub_805EB54 thumb_func_start sub_805EB78 sub_805EB78: @ 805EB78 push {r4,lr} ldr r3, _0805EB94 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 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 adds r0, r2 ldr r2, _0805EC00 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EBFC: .4byte 0x030048a0 _0805EC00: .4byte sub_805EC04 thumb_func_end sub_805EBE0 thumb_func_start sub_805EC04 sub_805EC04: @ 805EC04 push {r4,lr} ldr r3, _0805EC20 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 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 adds r0, r2 ldr r2, _0805EC8C bl meta_step pop {r0} bx r0 .align 2, 0 _0805EC88: .4byte 0x030048a0 _0805EC8C: .4byte sub_805EC90 thumb_func_end sub_805EC6C thumb_func_start sub_805EC90 sub_805EC90: @ 805EC90 push {r4,lr} ldr r3, _0805ECAC 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 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 adds r0, r2 ldr r2, _0805ED18 bl meta_step pop {r0} bx r0 .align 2, 0 _0805ED14: .4byte 0x030048a0 _0805ED18: .4byte sub_805ED1C thumb_func_end sub_805ECF8 thumb_func_start sub_805ED1C sub_805ED1C: @ 805ED1C push {r4,lr} ldr r3, _0805ED38 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 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 adds r0, r2 ldr r2, _0805EDA4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EDA0: .4byte 0x030048a0 _0805EDA4: .4byte sub_805EDA8 thumb_func_end sub_805ED84 thumb_func_start sub_805EDA8 sub_805EDA8: @ 805EDA8 push {r4,lr} ldr r3, _0805EDC4 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 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 adds r0, r2 ldr r2, _0805EE30 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EE2C: .4byte 0x030048a0 _0805EE30: .4byte sub_805EE34 thumb_func_end sub_805EE10 thumb_func_start sub_805EE34 sub_805EE34: @ 805EE34 push {r4,lr} ldr r3, _0805EE50 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 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 adds r0, r2 ldr r2, _0805EEBC bl meta_step pop {r0} bx r0 .align 2, 0 _0805EEB8: .4byte 0x030048a0 _0805EEBC: .4byte sub_805EEC0 thumb_func_end sub_805EE9C thumb_func_start sub_805EEC0 sub_805EEC0: @ 805EEC0 push {r4,lr} ldr r3, _0805EEDC 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 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 adds r0, r2 ldr r2, _0805EF48 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EF44: .4byte 0x030048a0 _0805EF48: .4byte sub_805EF4C thumb_func_end sub_805EF28 thumb_func_start sub_805EF4C sub_805EF4C: @ 805EF4C push {r4,lr} ldr r3, _0805EF68 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 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 adds r0, r2 ldr r2, _0805EFD4 bl meta_step pop {r0} bx r0 .align 2, 0 _0805EFD0: .4byte 0x030048a0 _0805EFD4: .4byte sub_805EFD8 thumb_func_end sub_805EFB4 thumb_func_start sub_805EFD8 sub_805EFD8: @ 805EFD8 push {r4,lr} ldr r3, _0805EFF4 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 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 adds r0, r2 ldr r2, _0805F060 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F05C: .4byte 0x030048a0 _0805F060: .4byte sub_805F064 thumb_func_end sub_805F040 thumb_func_start sub_805F064 sub_805F064: @ 805F064 push {r4,lr} ldr r3, _0805F080 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 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 adds r0, r2 ldr r2, _0805F0EC bl meta_step pop {r0} bx r0 .align 2, 0 _0805F0E8: .4byte 0x030048a0 _0805F0EC: .4byte sub_805F0F0 thumb_func_end sub_805F0CC thumb_func_start sub_805F0F0 sub_805F0F0: @ 805F0F0 push {r4,lr} ldr r3, _0805F10C 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 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 adds r0, r2 ldr r2, _0805F178 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F174: .4byte 0x030048a0 _0805F178: .4byte sub_805F17C thumb_func_end sub_805F158 thumb_func_start sub_805F17C sub_805F17C: @ 805F17C push {r4,lr} ldr r3, _0805F198 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 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 adds r0, r2 ldr r2, _0805F204 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F200: .4byte 0x030048a0 _0805F204: .4byte sub_805F208 thumb_func_end sub_805F1E4 thumb_func_start sub_805F208 sub_805F208: @ 805F208 push {r4,lr} ldr r3, _0805F224 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 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 adds r0, r2 ldr r2, _0805F290 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F28C: .4byte 0x030048a0 _0805F290: .4byte sub_805F294 thumb_func_end sub_805F270 thumb_func_start sub_805F294 sub_805F294: @ 805F294 push {r4,lr} ldr r3, _0805F2B0 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 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 adds r0, r2 ldr r2, _0805F31C bl meta_step pop {r0} bx r0 .align 2, 0 _0805F318: .4byte 0x030048a0 _0805F31C: .4byte sub_805F320 thumb_func_end sub_805F2FC thumb_func_start sub_805F320 sub_805F320: @ 805F320 push {r4,lr} ldr r3, _0805F33C 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 ldr r3, _0805F38C 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 0x030048a0 _0805F38C: .4byte 0x0202e858 _0805F390: ldr r5, _0805F3C0 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 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 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 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 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 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 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 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 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 adds r0, r2 ldr r2, _0805F900 bl meta_step pop {r0} bx r0 .align 2, 0 _0805F8FC: .4byte 0x030048a0 _0805F900: .4byte sub_805F904 thumb_func_end sub_805F8E0 thumb_func_start sub_805F904 sub_805F904: @ 805F904 push {r4,lr} ldr r3, _0805F920 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 ldr r3, _0805F94C 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 0x030048a0 _0805F94C: .4byte 0x0202e858 _0805F950: ldr r5, _0805F980 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 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 sub_8056E14 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 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 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 adds r0, r1 ldr r2, _0805F9F4 adds r1, r5, 0 bl meta_step pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805F9EC: .4byte 0x030048a0 _0805F9F0: .4byte 0x0202ff84 _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 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 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 adds r0, r1 ldr r2, _0805FA70 adds r1, r5, 0 bl meta_step pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0805FA68: .4byte 0x030048a0 _0805FA6C: .4byte 0x0202ff84 _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 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 adds r1, r3, 0 bl meta_step pop {r4} pop {r0} bx r0 .align 2, 0 _0805FAD0: .4byte 0x030048a0 _0805FAD4: .4byte sub_805FAD8 thumb_func_end FieldObjectCB_Hidden1 thumb_func_start sub_805FAD8 sub_805FAD8: @ 805FAD8 push {r4,lr} ldr r3, _0805FAF4 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 adds r0, r2 ldr r2, _0805FB40 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FB3C: .4byte 0x030048a0 _0805FB40: .4byte sub_805FB44 thumb_func_end sub_805FB20 thumb_func_start sub_805FB44 sub_805FB44: @ 805FB44 push {r4,lr} ldr r3, _0805FB60 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 adds r0, r2 ldr r2, _0805FBB0 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FBAC: .4byte 0x030048a0 _0805FBB0: .4byte sub_805FBB4 thumb_func_end sub_805FB90 thumb_func_start sub_805FBB4 sub_805FBB4: @ 805FBB4 push {r4,lr} ldr r3, _0805FBD0 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 adds r0, r2 ldr r2, _0805FC20 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FC1C: .4byte 0x030048a0 _0805FC20: .4byte sub_805FC24 thumb_func_end sub_805FC00 thumb_func_start sub_805FC24 sub_805FC24: @ 805FC24 push {r4,lr} ldr r3, _0805FC40 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 adds r0, r2 ldr r2, _0805FC90 bl meta_step pop {r0} bx r0 .align 2, 0 _0805FC8C: .4byte 0x030048a0 _0805FC90: .4byte sub_805FC94 thumb_func_end sub_805FC70 thumb_func_start sub_805FC94 sub_805FC94: @ 805FC94 push {r4,lr} ldr r3, _0805FCB0 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 thumb_func_end sub_805FD08 thumb_func_start npc_reset npc_reset: @ 805FD18 ldrb r3, [r0] movs r2, 0x3 negs r2, r2 ands r2, r3 movs r3, 0x41 negs r3, r3 ands r2, r3 movs r3, 0x7F ands r2, r3 strb r2, [r0] movs r2, 0xFF strb r2, [r0, 0x1C] movs r0, 0 strh r0, [r1, 0x30] bx lr thumb_func_end npc_reset thumb_func_start FieldObjectDirectionToImageAnimId FieldObjectDirectionToImageAnimId: @ 805FD38 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD44 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD44: .4byte gUnknown_083755F4 thumb_func_end FieldObjectDirectionToImageAnimId thumb_func_start get_go_image_anim_num get_go_image_anim_num: @ 805FD48 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD54 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD54: .4byte gUnknown_083755FD thumb_func_end get_go_image_anim_num thumb_func_start get_go_fast_image_anim_num get_go_fast_image_anim_num: @ 805FD58 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD64 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD64: .4byte gUnknown_08375606 thumb_func_end get_go_fast_image_anim_num thumb_func_start get_go_faster_image_anim_num get_go_faster_image_anim_num: @ 805FD68 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD74 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD74: .4byte gUnknown_0837560F thumb_func_end get_go_faster_image_anim_num thumb_func_start sub_805FD78 sub_805FD78: @ 805FD78 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD84 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD84: .4byte gUnknown_08375618 thumb_func_end sub_805FD78 thumb_func_start sub_805FD88 sub_805FD88: @ 805FD88 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FD94 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FD94: .4byte gUnknown_08375621 thumb_func_end sub_805FD88 thumb_func_start sub_805FD98 sub_805FD98: @ 805FD98 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDA4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDA4: .4byte gUnknown_0837562A thumb_func_end sub_805FD98 thumb_func_start unref_sub_805FDA8 unref_sub_805FDA8: @ 805FDA8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDB4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDB4: .4byte gUnknown_08375633 thumb_func_end unref_sub_805FDA8 thumb_func_start sub_805FDB8 sub_805FDB8: @ 805FDB8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDC4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDC4: .4byte gUnknown_0837563C thumb_func_end sub_805FDB8 thumb_func_start sub_805FDC8 sub_805FDC8: @ 805FDC8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDD4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDD4: .4byte gUnknown_08375645 thumb_func_end sub_805FDC8 thumb_func_start sub_805FDD8 sub_805FDD8: @ 805FDD8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDE4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDE4: .4byte gUnknown_0837564E thumb_func_end sub_805FDD8 thumb_func_start sub_805FDE8 sub_805FDE8: @ 805FDE8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FDF4 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FDF4: .4byte gUnknown_08375657 thumb_func_end sub_805FDE8 thumb_func_start sub_805FDF8 sub_805FDF8: @ 805FDF8 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FE04 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FE04: .4byte gUnknown_08375660 thumb_func_end sub_805FDF8 thumb_func_start sub_805FE08 sub_805FE08: @ 805FE08 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FE14 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FE14: .4byte gUnknown_08375669 thumb_func_end sub_805FE08 thumb_func_start get_run_image_anim_num get_run_image_anim_num: @ 805FE18 lsls r0, 24 lsrs r0, 24 ldr r1, _0805FE24 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0805FE24: .4byte gUnknown_08375672 thumb_func_end get_run_image_anim_num 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 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 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 0x02020004 _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 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 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 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 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 0x030048a0 _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 ldr r2, _0806027C 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 0x02020004 _0806027C: .4byte 0x030048a0 _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 ldr r2, _080602D0 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 0x02020004 _080602D0: .4byte 0x030048a0 thumb_func_end sub_8060288 thumb_func_start MoveCoords MoveCoords: @ 80602D4 push {r4,lr} lsls r0, 24 ldr r3, _080602F4 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 gUnknown_083756A4 thumb_func_end MoveCoords thumb_func_start unref_sub_80602F8 unref_sub_80602F8: @ 80602F8 push {r4,lr} lsls r0, 24 ldr r3, _0806031C 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 gUnknown_083756A4 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 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 gUnknown_083756A4 thumb_func_end sub_8060320 thumb_func_start sub_8060388 sub_8060388: @ 8060388 push {r4,r5,lr} ldr r5, _080603C0 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 ldrh r0, [r2] ldrh r1, [r1] subs r0, r1 strh r0, [r2] ldr r1, _080603C8 ldrh r0, [r3] ldrh r1, [r1] subs r0, r1 strh r0, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080603C0: .4byte 0x02025734 _080603C4: .4byte 0x0300489c _080603C8: .4byte 0x03004898 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 ldrh r0, [r0] negs r0, r0 ldr r1, _08060460 ldr r2, [r1, 0x10] subs r0, r2 lsls r0, 16 lsrs r3, r0, 16 ldr r0, _08060464 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 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 adds r0, r1 lsrs r4, r0, 16 _0806042C: ldr r2, _0806046C 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 0x0300489c _08060460: .4byte 0x03004880 _08060464: .4byte 0x03004898 _08060468: .4byte 0xfff00000 _0806046C: .4byte 0x02025734 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 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 0x03004880 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 npc_sync_anim_pause_bits 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 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 0x02020004 _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 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 0x02020004 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 0x030048a0 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 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 0x030048a0 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 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 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 0x0202ff84 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 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 0x0202ff84 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 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 0x0202ff84 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 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 adds r0, r1 ldrh r2, [r2] adds r0, r2 b _08063574 .align 2, 0 _08063544: .4byte 0x030024d0 _08063548: .4byte 0x030027e0 _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 thumb_func_start GetAllGroundEffectFlags_OnSpawn GetAllGroundEffectFlags_OnSpawn: @ 80635F0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectUpdateMetatileBehaviors adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Reflection adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_TallGrassOnSpawn adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_LongGrassOnSpawn adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_SandHeap adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShallowFlowingWater adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShortGrass adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_HotSprings pop {r4,r5} pop {r0} bx r0 thumb_func_end GetAllGroundEffectFlags_OnSpawn thumb_func_start GetAllGroundEffectFlags_OnBeginStep GetAllGroundEffectFlags_OnBeginStep: @ 8063638 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectUpdateMetatileBehaviors adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Reflection adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_TallGrassOnBeginStep adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_LongGrassOnBeginStep adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Tracks adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_SandHeap adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShallowFlowingWater adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Puddle adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShortGrass adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_HotSprings pop {r4,r5} pop {r0} bx r0 thumb_func_end GetAllGroundEffectFlags_OnBeginStep thumb_func_start GetAllGroundEffectFlags_OnFinishStep GetAllGroundEffectFlags_OnFinishStep: @ 8063690 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl FieldObjectUpdateMetatileBehaviors adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShallowFlowingWater adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_SandHeap adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Puddle adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Ripple adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_ShortGrass adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_HotSprings adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_Seaweed adds r0, r4, 0 adds r1, r5, 0 bl GetGroundEffectFlags_JumpLanding pop {r4,r5} pop {r0} bx r0 thumb_func_end GetAllGroundEffectFlags_OnFinishStep thumb_func_start FieldObjectUpdateMetatileBehaviors FieldObjectUpdateMetatileBehaviors: @ 80636E0 push {r4,lr} adds r4, r0, 0 movs r1, 0x14 ldrsh r0, [r4, r1] movs r2, 0x16 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt strb r0, [r4, 0x1F] movs r1, 0x10 ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt strb r0, [r4, 0x1E] pop {r4} pop {r0} bx r0 thumb_func_end FieldObjectUpdateMetatileBehaviors thumb_func_start GetGroundEffectFlags_Reflection GetGroundEffectFlags_Reflection: @ 8063708 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 ldr r0, _0806374C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] adds r0, r4, 0 bl FieldObjectCheckForReflectiveSurface lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08063750 ldrb r1, [r4, 0x2] lsls r0, r1, 30 cmp r0, 0 blt _0806375A movs r0, 0x3 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x2] subs r0, r2, 0x1 lsls r0, 2 add r0, sp ldr r1, [r5] ldr r0, [r0] orrs r1, r0 str r1, [r5] b _0806375A .align 2, 0 _0806374C: .4byte gUnknown_08376008 _08063750: ldrb r1, [r4, 0x2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] _0806375A: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_Reflection thumb_func_start GetGroundEffectFlags_TallGrassOnSpawn GetGroundEffectFlags_TallGrassOnSpawn: @ 8063764 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsTallGrass lsls r0, 24 cmp r0, 0 beq _0806377C ldr r0, [r4] movs r1, 0x1 orrs r0, r1 str r0, [r4] _0806377C: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_TallGrassOnSpawn thumb_func_start GetGroundEffectFlags_TallGrassOnBeginStep GetGroundEffectFlags_TallGrassOnBeginStep: @ 8063784 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsTallGrass lsls r0, 24 cmp r0, 0 beq _0806379C ldr r0, [r4] movs r1, 0x2 orrs r0, r1 str r0, [r4] _0806379C: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_TallGrassOnBeginStep thumb_func_start GetGroundEffectFlags_LongGrassOnSpawn GetGroundEffectFlags_LongGrassOnSpawn: @ 80637A4 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _080637BC ldr r0, [r4] movs r1, 0x4 orrs r0, r1 str r0, [r4] _080637BC: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_LongGrassOnSpawn thumb_func_start GetGroundEffectFlags_LongGrassOnBeginStep GetGroundEffectFlags_LongGrassOnBeginStep: @ 80637C4 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _080637DC ldr r0, [r4] movs r1, 0x8 orrs r0, r1 str r0, [r4] _080637DC: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_LongGrassOnBeginStep thumb_func_start GetGroundEffectFlags_Tracks GetGroundEffectFlags_Tracks: @ 80637E4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsDeepSand lsls r0, 24 cmp r0, 0 beq _080637FE ldr r0, [r5] movs r1, 0x80 lsls r1, 1 b _0806381A _080637FE: ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsSandOrDeepSand lsls r0, 24 cmp r0, 0 bne _08063816 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsUnusedFootprintMetatile lsls r0, 24 cmp r0, 0 beq _0806381E _08063816: ldr r0, [r5] movs r1, 0x80 _0806381A: orrs r0, r1 str r0, [r5] _0806381E: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_Tracks thumb_func_start GetGroundEffectFlags_SandHeap GetGroundEffectFlags_SandHeap: @ 8063824 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsDeepSand lsls r0, 24 cmp r0, 0 beq _08063862 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsDeepSand lsls r0, 24 cmp r0, 0 beq _08063862 ldrb r1, [r4, 0x2] lsls r0, r1, 27 cmp r0, 0 blt _0806386C movs r0, 0x11 negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r4, 0x2] ldr r0, [r5] movs r1, 0x80 lsls r1, 4 orrs r0, r1 str r0, [r5] b _0806386C _08063862: ldrb r1, [r4, 0x2] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] _0806386C: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_SandHeap thumb_func_start GetGroundEffectFlags_ShallowFlowingWater GetGroundEffectFlags_ShallowFlowingWater: @ 8063874 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsShallowFlowingWater lsls r0, 24 cmp r0, 0 beq _08063892 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsShallowFlowingWater lsls r0, 24 cmp r0, 0 bne _080638AA _08063892: ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsPacifidlogLog lsls r0, 24 cmp r0, 0 beq _080638C8 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsPacifidlogLog lsls r0, 24 cmp r0, 0 beq _080638C8 _080638AA: ldrb r1, [r4, 0x2] lsls r0, r1, 28 cmp r0, 0 blt _080638D2 movs r0, 0x9 negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x2] ldr r0, [r5] movs r1, 0x40 orrs r0, r1 str r0, [r5] b _080638D2 _080638C8: ldrb r1, [r4, 0x2] movs r0, 0x9 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] _080638D2: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_ShallowFlowingWater thumb_func_start GetGroundEffectFlags_Puddle GetGroundEffectFlags_Puddle: @ 80638D8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsPuddle lsls r0, 24 cmp r0, 0 beq _08063900 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsPuddle lsls r0, 24 cmp r0, 0 beq _08063900 ldr r0, [r5] movs r1, 0x80 lsls r1, 3 orrs r0, r1 str r0, [r5] _08063900: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_Puddle thumb_func_start GetGroundEffectFlags_Ripple GetGroundEffectFlags_Ripple: @ 8063908 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_HasRipples lsls r0, 24 cmp r0, 0 beq _08063922 ldr r0, [r4] movs r1, 0x80 lsls r1, 2 orrs r0, r1 str r0, [r4] _08063922: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_Ripple thumb_func_start GetGroundEffectFlags_ShortGrass GetGroundEffectFlags_ShortGrass: @ 8063928 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsShortGrass lsls r0, 24 cmp r0, 0 beq _08063966 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsShortGrass lsls r0, 24 cmp r0, 0 beq _08063966 ldrb r1, [r4, 0x2] lsls r0, r1, 29 cmp r0, 0 blt _08063970 movs r0, 0x5 negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x2] ldr r0, [r5] movs r1, 0x80 lsls r1, 10 orrs r0, r1 str r0, [r5] b _08063970 _08063966: ldrb r1, [r4, 0x2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] _08063970: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_ShortGrass thumb_func_start GetGroundEffectFlags_HotSprings GetGroundEffectFlags_HotSprings: @ 8063978 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x1E] bl MetatileBehavior_IsHotSprings lsls r0, 24 cmp r0, 0 beq _080639B6 ldrb r0, [r4, 0x1F] bl MetatileBehavior_IsHotSprings lsls r0, 24 cmp r0, 0 beq _080639B6 ldrb r1, [r4, 0x2] lsls r0, r1, 26 cmp r0, 0 blt _080639C0 movs r0, 0x21 negs r0, r0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r4, 0x2] ldr r0, [r5] movs r1, 0x80 lsls r1, 11 orrs r0, r1 str r0, [r5] b _080639C0 _080639B6: ldrb r1, [r4, 0x2] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r4, 0x2] _080639C0: pop {r4,r5} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_HotSprings thumb_func_start GetGroundEffectFlags_Seaweed GetGroundEffectFlags_Seaweed: @ 80639C8 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x1E] bl MetatileBehavior_IsSeaweed lsls r0, 24 cmp r0, 0 beq _080639E2 ldr r0, [r4] movs r1, 0x80 lsls r1, 12 orrs r0, r1 str r0, [r4] _080639E2: pop {r4} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_Seaweed thumb_func_start GetGroundEffectFlags_JumpLanding GetGroundEffectFlags_JumpLanding: @ 80639E8 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r6, r1, 0 ldr r0, [r7] ldr r1, _08063A24 ands r0, r1 cmp r0, 0x20 bne _08063A3A movs r5, 0 ldr r0, _08063A28 mov r8, r0 _08063A02: lsls r4, r5, 2 mov r0, r8 adds r1, r4, r0 ldrb r0, [r7, 0x1E] ldr r1, [r1] bl _call_via_r1 lsls r0, 24 cmp r0, 0 beq _08063A30 ldr r0, _08063A2C adds r0, r4, r0 ldr r1, [r6] ldr r0, [r0] orrs r1, r0 str r1, [r6] b _08063A3A .align 2, 0 _08063A24: .4byte 0x02000020 _08063A28: .4byte gUnknown_08376010 _08063A2C: .4byte gUnknown_08376028 _08063A30: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08063A02 _08063A3A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end GetGroundEffectFlags_JumpLanding thumb_func_start FieldObjectCheckForReflectiveSurface FieldObjectCheckForReflectiveSurface: @ 8063A44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r0, 0 ldrb r0, [r5, 0x5] bl GetFieldObjectGraphicsInfo movs r2, 0x8 ldrsh r1, [r0, r2] adds r1, 0x8 lsls r1, 12 lsrs r1, 16 str r1, [sp] movs r1, 0xA ldrsh r0, [r0, r1] adds r0, 0x8 lsls r0, 12 movs r4, 0 lsrs r2, r0, 16 str r2, [sp, 0x4] asrs r0, 16 cmp r4, r0 blt _08063A7A b _08063B80 _08063A7A: movs r0, 0x1 mov r10, r0 _08063A7E: movs r1, 0x10 ldrsh r0, [r5, r1] movs r2, 0x12 ldrsh r1, [r5, r2] add r1, r10 lsls r4, 16 asrs r6, r4, 16 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 mov r9, r4 cmp r0, 0 bne _08063B82 movs r1, 0x14 ldrsh r0, [r5, r1] movs r2, 0x16 ldrsh r1, [r5, r2] add r1, r10 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08063B82 movs r2, 0x1 ldr r1, [sp] lsls r0, r1, 16 asrs r1, r0, 16 mov r8, r0 cmp r2, r1 bge _08063B6E movs r0, 0x80 lsls r0, 9 asrs r7, r0, 16 _08063AD8: movs r1, 0x10 ldrsh r0, [r5, r1] lsls r1, r2, 16 asrs r4, r1, 16 adds r0, r4 movs r2, 0x12 ldrsh r1, [r5, r2] adds r1, r7 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08063B82 movs r1, 0x10 ldrsh r0, [r5, r1] subs r0, r4 movs r2, 0x12 ldrsh r1, [r5, r2] adds r1, r7 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08063B82 movs r1, 0x14 ldrsh r0, [r5, r1] adds r0, r4 movs r2, 0x16 ldrsh r1, [r5, r2] adds r1, r7 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08063B82 movs r1, 0x14 ldrsh r0, [r5, r1] subs r0, r4 movs r2, 0x16 ldrsh r1, [r5, r2] adds r1, r7 adds r1, r6 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl GetReflectionTypeByMetatileBehavior lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _08063B82 adds r0, r4, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r0, r8 blt _08063AD8 _08063B6E: movs r1, 0x80 lsls r1, 9 add r1, r9 lsrs r4, r1, 16 ldr r2, [sp, 0x4] lsls r0, r2, 16 cmp r1, r0 bge _08063B80 b _08063A7E _08063B80: movs r0, 0 _08063B82: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end FieldObjectCheckForReflectiveSurface thumb_func_start GetReflectionTypeByMetatileBehavior GetReflectionTypeByMetatileBehavior: @ 8063B94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsIce lsls r0, 24 cmp r0, 0 beq _08063BAA movs r0, 0x1 b _08063BBC _08063BAA: adds r0, r4, 0 bl MetatileBehavior_IsReflective lsls r0, 24 cmp r0, 0 bne _08063BBA movs r0, 0 b _08063BBC _08063BBA: movs r0, 0x2 _08063BBC: pop {r4} pop {r1} bx r1 thumb_func_end GetReflectionTypeByMetatileBehavior thumb_func_start GetLedgeJumpDirection GetLedgeJumpDirection: @ 8063BC4 push {r4,lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0 beq _08063C0A cmp r4, 0x4 bls _08063BE0 subs r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 _08063BE0: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r3, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 ldr r2, _08063C10 lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08063C14 _08063C0A: movs r0, 0 b _08063C1A .align 2, 0 _08063C10: .4byte gUnknown_08376040 _08063C14: adds r0, r4, 0x1 lsls r0, 24 lsrs r0, 24 _08063C1A: pop {r4} pop {r1} bx r1 thumb_func_end GetLedgeJumpDirection thumb_func_start FieldObjectSetSpriteOamTableForLongGrass FieldObjectSetSpriteOamTableForLongGrass: @ 8063C20 push {r4-r6,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r0, [r5] lsls r0, 27 cmp r0, 0 blt _08063C74 ldrb r0, [r5, 0x1E] bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _08063C74 ldrb r0, [r5, 0x1F] bl MetatileBehavior_IsLongGrass lsls r0, 24 cmp r0, 0 beq _08063C74 adds r4, 0x42 ldrb r1, [r4] movs r6, 0x40 negs r6, r6 adds r0, r6, 0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldrb r0, [r5, 0xB] lsrs r0, 4 bl ZCoordToPriority lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08063C74 ldrb r0, [r4] adds r1, r6, 0 ands r1, r0 movs r0, 0x5 orrs r1, r0 strb r1, [r4] _08063C74: pop {r4-r6} pop {r0} bx r0 thumb_func_end FieldObjectSetSpriteOamTableForLongGrass thumb_func_start IsZCoordMismatchAt IsZCoordMismatchAt: @ 8063C7C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r0, r1, 16 lsls r2, 16 lsrs r1, r2, 16 cmp r4, 0 beq _08063CAA lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08063CAA cmp r0, 0xF beq _08063CAA cmp r0, r4 bne _08063CAE _08063CAA: movs r0, 0 b _08063CB0 _08063CAE: movs r0, 0x1 _08063CB0: pop {r4} pop {r1} bx r1 thumb_func_end IsZCoordMismatchAt thumb_func_start FieldObjectUpdateZCoordAndPriority FieldObjectUpdateZCoordAndPriority: @ 8063CB8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x3] lsls r0, 29 cmp r0, 0 blt _08063D06 adds r0, r4, 0 bl FieldObjectUpdateZCoord ldr r1, _08063D0C ldrb r2, [r4, 0xB] lsls r2, 24 lsrs r0, r2, 28 adds r0, r1 ldrb r0, [r0] adds r4, r5, 0 adds r4, 0x42 movs r1, 0x3F ands r1, r0 ldrb r3, [r4] movs r0, 0x40 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r4] ldr r0, _08063D10 lsrs r2, 28 adds r2, r0 movs r0, 0x3 ldrb r1, [r2] ands r1, r0 lsls r1, 2 ldrb r2, [r5, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x5] _08063D06: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08063D0C: .4byte gUnknown_08376070 _08063D10: .4byte gUnknown_08376060 thumb_func_end FieldObjectUpdateZCoordAndPriority thumb_func_start InitObjectPriorityByZCoord InitObjectPriorityByZCoord: @ 8063D14 push {r4,lr} lsls r1, 24 lsrs r1, 24 ldr r2, _08063D58 adds r2, r1, r2 ldrb r2, [r2] movs r3, 0x42 adds r3, r0 mov r12, r3 movs r3, 0x3F ands r3, r2 mov r2, r12 ldrb r4, [r2] movs r2, 0x40 negs r2, r2 ands r2, r4 orrs r2, r3 mov r3, r12 strb r2, [r3] ldr r2, _08063D5C adds r1, r2 movs r3, 0x3 ldrb r2, [r1] ands r2, r3 lsls r2, 2 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] pop {r4} pop {r0} bx r0 .align 2, 0 _08063D58: .4byte gUnknown_08376070 _08063D5C: .4byte gUnknown_08376060 thumb_func_end InitObjectPriorityByZCoord thumb_func_start ZCoordToPriority ZCoordToPriority: @ 8063D60 lsls r0, 24 lsrs r0, 24 ldr r1, _08063D6C adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _08063D6C: .4byte gUnknown_08376060 thumb_func_end ZCoordToPriority thumb_func_start FieldObjectUpdateZCoord FieldObjectUpdateZCoord: @ 8063D70 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x10 ldrsh r0, [r4, r1] movs r2, 0x12 ldrsh r1, [r4, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x14 ldrsh r0, [r4, r1] movs r2, 0x16 ldrsh r1, [r4, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r5, 0xF beq _08063DBE cmp r0, 0xF beq _08063DBE movs r3, 0xF adds r0, r5, 0 ands r0, r3 ldrb r1, [r4, 0xB] movs r2, 0x10 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4, 0xB] cmp r5, 0 beq _08063DBE cmp r5, 0xF beq _08063DBE lsls r0, r5, 4 ands r2, r3 orrs r2, r0 strb r2, [r4, 0xB] _08063DBE: pop {r4,r5} pop {r0} bx r0 thumb_func_end FieldObjectUpdateZCoord thumb_func_start SetObjectSubpriorityByZCoord SetObjectSubpriorityByZCoord: @ 8063DC4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 adds r3, r1, 0 adds r3, 0x29 movs r5, 0 ldrsb r5, [r3, r5] ldrh r4, [r1, 0x22] ldr r3, _08063E04 subs r4, r5 ldrh r3, [r3] adds r4, r3 adds r4, 0x8 movs r3, 0xFF ands r4, r3 lsrs r4, 4 movs r3, 0x10 subs r3, r4 lsls r3, 17 ldr r4, _08063E08 adds r0, r4 lsrs r3, 16 ldrb r0, [r0] adds r3, r0 adds r2, r3 adds r1, 0x43 strb r2, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08063E04: .4byte 0x030027e0 _08063E08: .4byte gUnknown_08376050 thumb_func_end SetObjectSubpriorityByZCoord thumb_func_start FieldObjectUpdateSubpriority FieldObjectUpdateSubpriority: @ 8063E0C push {lr} adds r2, r0, 0 ldrb r0, [r2, 0x3] lsls r0, 29 cmp r0, 0 blt _08063E22 ldrb r0, [r2, 0xB] lsrs r0, 4 movs r2, 0x1 bl SetObjectSubpriorityByZCoord _08063E22: pop {r0} bx r0 thumb_func_end FieldObjectUpdateSubpriority thumb_func_start AreZCoordsCompatible AreZCoordsCompatible: @ 8063E28 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r0, 0 beq _08063E3E cmp r1, 0 beq _08063E3E cmp r0, r1 bne _08063E42 _08063E3E: movs r0, 0x1 b _08063E44 _08063E42: movs r0, 0 _08063E44: pop {r1} bx r1 thumb_func_end AreZCoordsCompatible thumb_func_start GroundEffect_SpawnOnTallGrass GroundEffect_SpawnOnTallGrass: @ 8063E48 push {lr} ldr r3, _08063E8C movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] movs r2, 0x12 ldrsh r1, [r0, r2] str r1, [r3, 0x4] ldrb r1, [r0, 0xB] lsrs r1, 4 str r1, [r3, 0x8] movs r1, 0x2 str r1, [r3, 0xC] ldrb r1, [r0, 0x8] lsls r1, 8 ldrb r2, [r0, 0x9] orrs r1, r2 str r1, [r3, 0x10] ldrb r0, [r0, 0xA] str r0, [r3, 0x14] ldr r1, _08063E90 ldrb r0, [r1, 0x5] lsls r0, 8 ldrb r1, [r1, 0x4] orrs r0, r1 str r0, [r3, 0x18] movs r0, 0x1 str r0, [r3, 0x1C] movs r0, 0x4 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08063E8C: .4byte 0x0202ff84 _08063E90: .4byte 0x02025734 thumb_func_end GroundEffect_SpawnOnTallGrass thumb_func_start sub_8063E94 sub_8063E94: @ 8063E94 push {lr} ldr r3, _08063ED8 movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] movs r2, 0x12 ldrsh r1, [r0, r2] str r1, [r3, 0x4] ldrb r1, [r0, 0xB] lsrs r1, 4 str r1, [r3, 0x8] movs r1, 0x2 str r1, [r3, 0xC] ldrb r1, [r0, 0x8] lsls r1, 8 ldrb r2, [r0, 0x9] orrs r1, r2 str r1, [r3, 0x10] ldrb r0, [r0, 0xA] str r0, [r3, 0x14] ldr r1, _08063EDC ldrb r0, [r1, 0x5] lsls r0, 8 ldrb r1, [r1, 0x4] orrs r0, r1 str r0, [r3, 0x18] movs r0, 0 str r0, [r3, 0x1C] movs r0, 0x4 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08063ED8: .4byte 0x0202ff84 _08063EDC: .4byte 0x02025734 thumb_func_end sub_8063E94 thumb_func_start sub_8063EE0 sub_8063EE0: @ 8063EE0 push {lr} ldr r3, _08063F24 movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] movs r2, 0x12 ldrsh r1, [r0, r2] str r1, [r3, 0x4] ldrb r1, [r0, 0xB] lsrs r1, 4 str r1, [r3, 0x8] movs r1, 0x2 str r1, [r3, 0xC] ldrb r1, [r0, 0x8] lsls r1, 8 ldrb r2, [r0, 0x9] orrs r1, r2 str r1, [r3, 0x10] ldrb r0, [r0, 0xA] str r0, [r3, 0x14] ldr r1, _08063F28 ldrb r0, [r1, 0x5] lsls r0, 8 ldrb r1, [r1, 0x4] orrs r0, r1 str r0, [r3, 0x18] movs r0, 0x1 str r0, [r3, 0x1C] movs r0, 0x11 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08063F24: .4byte 0x0202ff84 _08063F28: .4byte 0x02025734 thumb_func_end sub_8063EE0 thumb_func_start sub_8063F2C sub_8063F2C: @ 8063F2C push {lr} ldr r3, _08063F70 movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] movs r2, 0x12 ldrsh r1, [r0, r2] str r1, [r3, 0x4] ldrb r1, [r0, 0xB] lsrs r1, 4 str r1, [r3, 0x8] movs r1, 0x2 str r1, [r3, 0xC] ldrb r1, [r0, 0x8] lsls r1, 8 ldrb r2, [r0, 0x9] orrs r1, r2 str r1, [r3, 0x10] ldrb r0, [r0, 0xA] str r0, [r3, 0x14] ldr r1, _08063F74 ldrb r0, [r1, 0x5] lsls r0, 8 ldrb r1, [r1, 0x4] orrs r0, r1 str r0, [r3, 0x18] movs r0, 0 str r0, [r3, 0x1C] movs r0, 0x11 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08063F70: .4byte 0x0202ff84 _08063F74: .4byte 0x02025734 thumb_func_end sub_8063F2C thumb_func_start GroundEffect_WaterReflection GroundEffect_WaterReflection: @ 8063F78 push {lr} movs r2, 0 bl SetUpReflection pop {r0} bx r0 thumb_func_end GroundEffect_WaterReflection thumb_func_start GroundEffect_IceReflection GroundEffect_IceReflection: @ 8063F84 push {lr} movs r2, 0x1 bl SetUpReflection pop {r0} bx r0 thumb_func_end GroundEffect_IceReflection thumb_func_start GroundEffect_FlowingWater GroundEffect_FlowingWater: @ 8063F90 push {lr} adds r1, r0, 0 movs r0, 0x22 bl oe_exec_and_other_stuff pop {r0} bx r0 thumb_func_end GroundEffect_FlowingWater thumb_func_start sub_8063FA0 sub_8063FA0: @ 8063FA0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldr r1, _08063FC8 ldrb r0, [r0, 0xD] lsls r0, 2 adds r0, r1 ldr r3, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl _call_via_r3 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08063FC8: .4byte gUnknown_08376080 thumb_func_end sub_8063FA0 thumb_func_start sub_8063FCC sub_8063FCC: @ 8063FCC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldr r1, _08063FF4 ldrb r0, [r0, 0xD] lsls r0, 2 adds r0, r1 ldr r3, [r0] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x1 bl _call_via_r3 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08063FF4: .4byte gUnknown_08376080 thumb_func_end sub_8063FCC thumb_func_start nullsub_50 nullsub_50: @ 8063FF8 bx lr thumb_func_end nullsub_50 thumb_func_start DoTracksGroundEffect_Footprints DoTracksGroundEffect_Footprints: @ 8063FFC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r4, r2, 24 lsrs r4, 24 ldr r1, _08064044 mov r0, sp movs r2, 0x4 bl memcpy ldr r1, _08064048 movs r2, 0x14 ldrsh r0, [r5, r2] str r0, [r1] movs r2, 0x16 ldrsh r0, [r5, r2] str r0, [r1, 0x4] movs r0, 0x95 str r0, [r1, 0x8] movs r0, 0x2 str r0, [r1, 0xC] ldrb r0, [r5, 0x18] lsls r0, 28 lsrs r0, 28 str r0, [r1, 0x10] lsls r4, 1 mov r1, sp adds r0, r1, r4 ldrb r0, [r0] bl FieldEffectStart add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064044: .4byte gUnknown_0837608C _08064048: .4byte 0x0202ff84 thumb_func_end DoTracksGroundEffect_Footprints thumb_func_start DoTracksGroundEffect_BikeTireTracks DoTracksGroundEffect_BikeTireTracks: @ 806404C push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x10] ldr r0, [r4, 0x14] cmp r1, r0 beq _0806408E ldr r2, _08064094 movs r1, 0x14 ldrsh r0, [r4, r1] str r0, [r2] movs r1, 0x16 ldrsh r0, [r4, r1] str r0, [r2, 0x4] movs r0, 0x95 str r0, [r2, 0x8] movs r0, 0x2 str r0, [r2, 0xC] ldr r3, _08064098 ldrb r1, [r4, 0x18] lsls r1, 28 lsrs r1, 28 adds r0, r4, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 2 subs r0, 0x5 adds r1, r0 adds r1, r3 ldrb r0, [r1] str r0, [r2, 0x10] movs r0, 0x23 bl FieldEffectStart _0806408E: pop {r4} pop {r0} bx r0 .align 2, 0 _08064094: .4byte 0x0202ff84 _08064098: .4byte gUnknown_08376090 thumb_func_end DoTracksGroundEffect_BikeTireTracks thumb_func_start GroundEffect_Ripple GroundEffect_Ripple: @ 806409C push {lr} bl DoRippleFieldEffect pop {r0} bx r0 thumb_func_end GroundEffect_Ripple thumb_func_start GroundEffect_StepOnPuddle GroundEffect_StepOnPuddle: @ 80640A8 push {lr} adds r1, r0, 0 movs r0, 0xF bl oe_exec_and_other_stuff pop {r0} bx r0 thumb_func_end GroundEffect_StepOnPuddle thumb_func_start GroundEffect_SandHeap GroundEffect_SandHeap: @ 80640B8 push {lr} adds r1, r0, 0 movs r0, 0x27 bl oe_exec_and_other_stuff pop {r0} bx r0 thumb_func_end GroundEffect_SandHeap thumb_func_start GroundEffect_JumpOnTallGrass GroundEffect_JumpOnTallGrass: @ 80640C8 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldr r1, _0806411C movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] movs r4, 0x12 ldrsh r0, [r5, r4] str r0, [r1, 0x4] ldrb r0, [r5, 0xB] lsrs r0, 4 str r0, [r1, 0x8] movs r0, 0x2 str r0, [r1, 0xC] movs r0, 0xC bl FieldEffectStart ldrb r0, [r5, 0x8] ldrb r1, [r5, 0x9] ldrb r2, [r5, 0xA] movs r7, 0x10 ldrsh r3, [r5, r7] movs r7, 0x12 ldrsh r4, [r5, r7] str r4, [sp] bl sub_8126FF0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 bne _08064112 adds r0, r5, 0 adds r1, r6, 0 bl GroundEffect_SpawnOnTallGrass _08064112: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806411C: .4byte 0x0202ff84 thumb_func_end GroundEffect_JumpOnTallGrass thumb_func_start GroundEffect_JumpOnLongGrass GroundEffect_JumpOnLongGrass: @ 8064120 push {lr} ldr r2, _08064144 movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] movs r3, 0x12 ldrsh r1, [r0, r3] str r1, [r2, 0x4] ldrb r0, [r0, 0xB] lsrs r0, 4 str r0, [r2, 0x8] movs r0, 0x2 str r0, [r2, 0xC] movs r0, 0x12 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08064144: .4byte 0x0202ff84 thumb_func_end GroundEffect_JumpOnLongGrass thumb_func_start GroundEffect_JumpOnShallowWater GroundEffect_JumpOnShallowWater: @ 8064148 push {r4,lr} ldr r3, _08064174 movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] movs r4, 0x12 ldrsh r2, [r0, r4] str r2, [r3, 0x4] ldrb r0, [r0, 0xB] lsrs r0, 4 str r0, [r3, 0x8] ldrb r0, [r1, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r3, 0xC] movs r0, 0x10 bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _08064174: .4byte 0x0202ff84 thumb_func_end GroundEffect_JumpOnShallowWater thumb_func_start GroundEffect_JumpOnWater GroundEffect_JumpOnWater: @ 8064178 push {r4,lr} ldr r3, _080641A4 movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] movs r4, 0x12 ldrsh r2, [r0, r4] str r2, [r3, 0x4] ldrb r0, [r0, 0xB] lsrs r0, 4 str r0, [r3, 0x8] ldrb r0, [r1, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r3, 0xC] movs r0, 0xE bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _080641A4: .4byte 0x0202ff84 thumb_func_end GroundEffect_JumpOnWater thumb_func_start GroundEffect_JumpLandingDust GroundEffect_JumpLandingDust: @ 80641A8 push {r4,lr} ldr r3, _080641D4 movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] movs r4, 0x12 ldrsh r2, [r0, r4] str r2, [r3, 0x4] ldrb r0, [r0, 0xB] lsrs r0, 4 str r0, [r3, 0x8] ldrb r0, [r1, 0x5] lsls r0, 28 lsrs r0, 30 str r0, [r3, 0xC] movs r0, 0xA bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _080641D4: .4byte 0x0202ff84 thumb_func_end GroundEffect_JumpLandingDust thumb_func_start GroundEffect_ShortGrass GroundEffect_ShortGrass: @ 80641D8 push {lr} adds r1, r0, 0 movs r0, 0x29 bl oe_exec_and_other_stuff pop {r0} bx r0 thumb_func_end GroundEffect_ShortGrass thumb_func_start GroundEffect_HotSprings GroundEffect_HotSprings: @ 80641E8 push {lr} adds r1, r0, 0 movs r0, 0x2A bl oe_exec_and_other_stuff pop {r0} bx r0 thumb_func_end GroundEffect_HotSprings thumb_func_start GroundEffect_Seaweed GroundEffect_Seaweed: @ 80641F8 push {lr} ldr r2, _08064214 movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] movs r1, 0x12 ldrsh r0, [r0, r1] str r0, [r2, 0x4] movs r0, 0x35 bl FieldEffectStart pop {r0} bx r0 .align 2, 0 _08064214: .4byte 0x0202ff84 thumb_func_end GroundEffect_Seaweed thumb_func_start sub_8064218 sub_8064218: @ 8064218 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r6, r1, 0 adds r5, r2, 0 movs r4, 0 ldr r0, _08064258 mov r8, r0 _0806422A: movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _08064240 lsls r0, r4, 2 add r0, r8 ldr r2, [r0] adds r0, r7, 0 adds r1, r6, 0 bl _call_via_r2 _08064240: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsrs r5, 1 cmp r4, 0x13 bls _0806422A pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08064258: .4byte gUnknown_083760A0 thumb_func_end sub_8064218 thumb_func_start filters_out_some_ground_effects filters_out_some_ground_effects: @ 806425C push {lr} adds r2, r0, 0 adds r3, r1, 0 ldrb r0, [r2] lsls r0, 27 cmp r0, 0 bge _0806428A ldrb r1, [r2, 0x2] movs r0, 0x5 negs r0, r0 ands r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 adds r1, 0x8 ands r0, r1 subs r1, 0x18 ands r0, r1 strb r0, [r2, 0x2] ldr r0, [r3] ldr r1, _08064290 ands r0, r1 str r0, [r3] _0806428A: pop {r0} bx r0 .align 2, 0 _08064290: .4byte 0xfff9f7bd thumb_func_end filters_out_some_ground_effects thumb_func_start FilterOutStepOnPuddleGroundEffectIfJumping FilterOutStepOnPuddleGroundEffectIfJumping: @ 8064294 push {lr} adds r2, r1, 0 ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _080642A8 ldr r0, [r2] ldr r1, _080642AC ands r0, r1 str r0, [r2] _080642A8: pop {r0} bx r0 .align 2, 0 _080642AC: .4byte 0xfffffbff thumb_func_end FilterOutStepOnPuddleGroundEffectIfJumping thumb_func_start DoGroundEffects_OnSpawn DoGroundEffects_OnSpawn: @ 80642B0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] lsls r0, 29 cmp r0, 0 bge _080642F4 movs r0, 0 str r0, [sp] adds r0, r4, 0 bl FieldObjectUpdateZCoordAndPriority adds r0, r4, 0 mov r1, sp bl GetAllGroundEffectFlags_OnSpawn adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetSpriteOamTableForLongGrass ldr r2, [sp] adds r0, r4, 0 adds r1, r5, 0 bl sub_8064218 ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r4] _080642F4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end DoGroundEffects_OnSpawn thumb_func_start DoGroundEffects_OnBeginStep DoGroundEffects_OnBeginStep: @ 80642FC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] lsls r0, 29 cmp r0, 0 bge _08064348 movs r0, 0 str r0, [sp] adds r0, r4, 0 bl FieldObjectUpdateZCoordAndPriority adds r0, r4, 0 mov r1, sp bl GetAllGroundEffectFlags_OnBeginStep adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetSpriteOamTableForLongGrass adds r0, r4, 0 mov r1, sp bl filters_out_some_ground_effects ldr r2, [sp] adds r0, r4, 0 adds r1, r5, 0 bl sub_8064218 ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r4] _08064348: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end DoGroundEffects_OnBeginStep thumb_func_start DoGroundEffects_OnFinishStep DoGroundEffects_OnFinishStep: @ 8064350 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] lsls r0, 28 cmp r0, 0 bge _0806439C movs r0, 0 str r0, [sp] adds r0, r4, 0 bl FieldObjectUpdateZCoordAndPriority adds r0, r4, 0 mov r1, sp bl GetAllGroundEffectFlags_OnFinishStep adds r0, r4, 0 adds r1, r5, 0 bl FieldObjectSetSpriteOamTableForLongGrass adds r0, r4, 0 mov r1, sp bl FilterOutStepOnPuddleGroundEffectIfJumping ldr r2, [sp] adds r0, r4, 0 adds r1, r5, 0 bl sub_8064218 ldrb r1, [r4] movs r0, 0x9 negs r0, r0 ands r0, r1 movs r1, 0x21 negs r1, r1 ands r0, r1 strb r0, [r4] _0806439C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end DoGroundEffects_OnFinishStep thumb_func_start sub_80643A4 sub_80643A4: @ 80643A4 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5] movs r0, 0xA0 lsls r0, 1 ands r0, r1 cmp r0, 0 bne _0806442C ldrb r0, [r5, 0x1] movs r4, 0x1 orrs r0, r4 strb r0, [r5, 0x1] ldr r3, _08064428 ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] lsls r1, 25 lsrs r1, 31 lsls r1, 7 ldrb r2, [r5, 0x2] movs r0, 0x7F ands r0, r2 orrs r0, r1 strb r0, [r5, 0x2] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] lsrs r1, 7 ands r1, r4 ldrb r2, [r5, 0x3] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] movs r0, 0 b _0806442E .align 2, 0 _08064428: .4byte 0x02020004 _0806442C: movs r0, 0x1 _0806442E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80643A4 thumb_func_start player_bitmagic player_bitmagic: @ 8064434 push {r4,r5,lr} movs r4, 0 ldr r5, _08064468 _0806443A: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08064458 ldr r0, _0806446C ldrb r0, [r0, 0x5] cmp r4, r0 beq _08064458 adds r0, r1, 0 bl sub_80643A4 _08064458: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _0806443A pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064468: .4byte 0x030048a0 _0806446C: .4byte 0x0202e858 thumb_func_end player_bitmagic thumb_func_start sub_8064470 sub_8064470: @ 8064470 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r6, _080644AC _0806447A: cmp r4, r5 beq _0806449C lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r6 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _0806449C ldr r0, _080644B0 ldrb r0, [r0, 0x5] cmp r4, r0 beq _0806449C adds r0, r1, 0 bl sub_80643A4 _0806449C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _0806447A pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080644AC: .4byte 0x030048a0 _080644B0: .4byte 0x0202e858 thumb_func_end sub_8064470 thumb_func_start npc_sync_anim_pause_bits npc_sync_anim_pause_bits: @ 80644B4 push {r4,r5,lr} adds r5, r0, 0 ldrh r2, [r5] ldr r1, _08064514 adds r0, r1, 0 ands r0, r2 cmp r0, r1 bne _0806450C ldrb r1, [r5, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r5, 0x1] ldr r4, _08064518 ldrb r0, [r5, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r5, 0x2] adds r1, 0x2C lsrs r2, 7 lsls r2, 6 ldrb r3, [r1] movs r0, 0x41 negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1] ldrb r0, [r5, 0x4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r4 ldrb r1, [r5, 0x3] lsls r1, 31 lsrs r1, 31 adds r2, 0x2C lsls r1, 7 ldrb r3, [r2] movs r0, 0x7F ands r0, r3 orrs r0, r1 strb r0, [r2] _0806450C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064514: .4byte 0x00000101 _08064518: .4byte 0x02020004 thumb_func_end npc_sync_anim_pause_bits thumb_func_start sub_806451C sub_806451C: @ 806451C push {r4,r5,lr} movs r4, 0 ldr r5, _08064548 _08064522: lsls r0, r4, 3 adds r0, r4 lsls r0, 2 adds r1, r0, r5 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08064538 adds r0, r1, 0 bl npc_sync_anim_pause_bits _08064538: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _08064522 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064548: .4byte 0x030048a0 thumb_func_end sub_806451C thumb_func_start little_step little_step: @ 806454C lsls r1, 24 ldr r2, _08064568 lsrs r1, 22 adds r1, r2 ldrh r2, [r1] ldrh r3, [r0, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x2] ldrh r2, [r0, 0x22] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _08064568: .4byte gUnknown_083756A4 thumb_func_end little_step thumb_func_start sub_806456C sub_806456C: @ 806456C lsls r1, 24 ldr r2, _0806458C lsrs r1, 22 adds r1, r2 ldrh r2, [r1] lsls r2, 1 ldrh r3, [r0, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x2] lsls r1, 1 ldrh r2, [r0, 0x22] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _0806458C: .4byte gUnknown_083756A4 thumb_func_end sub_806456C thumb_func_start sub_8064590 sub_8064590: @ 8064590 lsls r1, 24 ldr r2, _080645B4 lsrs r1, 22 adds r1, r2 ldrh r2, [r1] lsls r3, r2, 1 adds r2, r3 ldrh r3, [r0, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x2] lsls r2, r1, 1 adds r1, r2 ldrh r2, [r0, 0x22] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _080645B4: .4byte gUnknown_083756A4 thumb_func_end sub_8064590 thumb_func_start sub_80645B8 sub_80645B8: @ 80645B8 lsls r1, 24 ldr r2, _080645D8 lsrs r1, 22 adds r1, r2 ldrh r2, [r1] lsls r2, 2 ldrh r3, [r0, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x2] lsls r1, 2 ldrh r2, [r0, 0x22] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _080645D8: .4byte gUnknown_083756A4 thumb_func_end sub_80645B8 thumb_func_start sub_80645DC sub_80645DC: @ 80645DC lsls r1, 24 ldr r2, _080645FC lsrs r1, 22 adds r1, r2 ldrh r2, [r1] lsls r2, 3 ldrh r3, [r0, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x2] lsls r1, 3 ldrh r2, [r0, 0x22] adds r1, r2 strh r1, [r0, 0x22] bx lr .align 2, 0 _080645FC: .4byte gUnknown_083756A4 thumb_func_end sub_80645DC thumb_func_start oamt_npc_ministep_reset oamt_npc_ministep_reset: @ 8064600 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 strh r1, [r0, 0x34] strh r2, [r0, 0x36] strh r3, [r0, 0x38] bx lr thumb_func_end oamt_npc_ministep_reset thumb_func_start obj_npc_ministep obj_npc_ministep: @ 8064614 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _0806466C movs r0, 0x36 ldrsh r2, [r4, r0] lsls r0, r2, 1 adds r0, r5 movs r3, 0x38 ldrsh r1, [r4, r3] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bge _08064674 ldr r1, _08064670 lsls r0, r2, 2 adds r0, r1 movs r1, 0x38 ldrsh r2, [r4, r1] ldr r0, [r0] lsls r2, 2 adds r2, r0 ldrh r1, [r4, 0x34] lsls r1, 24 lsrs r1, 24 ldr r2, [r2] adds r0, r4, 0 bl _call_via_r2 ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r2, 0x36 ldrsh r1, [r4, r2] lsls r1, 1 adds r1, r5 lsls r0, 16 asrs r0, 16 movs r3, 0 ldrsh r1, [r1, r3] cmp r0, r1 blt _08064674 movs r0, 0x1 b _08064676 .align 2, 0 _0806466C: .4byte gUnknown_08376194 _08064670: .4byte gUnknown_08376180 _08064674: movs r0, 0 _08064676: pop {r4,r5} pop {r1} bx r1 thumb_func_end obj_npc_ministep thumb_func_start sub_806467C sub_806467C: @ 806467C lsls r1, 24 lsrs r1, 24 movs r2, 0 strh r1, [r0, 0x34] strh r2, [r0, 0x36] strh r2, [r0, 0x38] bx lr thumb_func_end sub_806467C thumb_func_start sub_806468C sub_806468C: @ 806468C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x36] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080646AC ldrh r1, [r4, 0x34] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl little_step ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] _080646AC: ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r1, 0x38 ldrsh r0, [r4, r1] cmp r0, 0xF bgt _080646BE movs r0, 0 b _080646C0 _080646BE: movs r0, 0x1 _080646C0: pop {r4} pop {r1} bx r1 thumb_func_end sub_806468C thumb_func_start sub_80646C8 sub_80646C8: @ 80646C8 lsls r1, 24 ldr r2, _080646E0 lsrs r1, 22 adds r1, r2 lsls r0, 16 asrs r0, 16 ldr r1, [r1] adds r1, r0 movs r0, 0 ldrsb r0, [r1, r0] bx lr .align 2, 0 _080646E0: .4byte gUnknown_083761D0 thumb_func_end sub_80646C8 thumb_func_start sub_80646E4 sub_80646E4: @ 80646E4 push {r4,lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 movs r4, 0 strh r1, [r0, 0x34] strh r2, [r0, 0x36] strh r3, [r0, 0x38] strh r4, [r0, 0x3A] pop {r4} pop {r0} bx r0 thumb_func_end sub_80646E4 thumb_func_start sub_8064704 sub_8064704: @ 8064704 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 ldr r1, _08064784 mov r0, sp movs r2, 0x6 bl memcpy add r5, sp, 0x8 ldr r1, _08064788 adds r0, r5, 0 movs r2, 0x3 bl memcpy movs r6, 0 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 beq _08064736 ldrh r1, [r4, 0x34] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl little_step _08064736: movs r2, 0x3A ldrsh r0, [r4, r2] movs r2, 0x36 ldrsh r1, [r4, r2] adds r1, r5, r1 ldrb r1, [r1] asrs r0, r1 ldrh r1, [r4, 0x38] lsls r1, 24 lsrs r1, 24 bl sub_80646C8 strh r0, [r4, 0x26] ldrh r1, [r4, 0x3A] adds r1, 0x1 strh r1, [r4, 0x3A] movs r2, 0x36 ldrsh r0, [r4, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r1, 16 asrs r0, 17 cmp r1, r0 bne _08064770 movs r6, 0x1 _08064770: cmp r1, r2 blt _0806477A movs r0, 0 strh r0, [r4, 0x26] movs r6, 0xFF _0806477A: adds r0, r6, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08064784: .4byte gUnknown_083761DC _08064788: .4byte gUnknown_083761E2 thumb_func_end sub_8064704 thumb_func_start sub_806478C sub_806478C: @ 806478C push {r4-r6,lr} sub sp, 0xC adds r5, r0, 0 ldr r1, _08064818 mov r0, sp movs r2, 0x6 bl memcpy add r4, sp, 0x8 ldr r1, _0806481C adds r0, r4, 0 movs r2, 0x3 bl memcpy movs r6, 0 movs r1, 0x36 ldrsh r0, [r5, r1] cmp r0, 0 beq _080647C8 ldrh r1, [r5, 0x3A] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080647C8 ldrh r1, [r5, 0x34] lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl little_step _080647C8: movs r2, 0x3A ldrsh r0, [r5, r2] movs r2, 0x36 ldrsh r1, [r5, r2] adds r1, r4, r1 ldrb r1, [r1] asrs r0, r1 ldrh r1, [r5, 0x38] lsls r1, 24 lsrs r1, 24 bl sub_80646C8 strh r0, [r5, 0x26] ldrh r1, [r5, 0x3A] adds r1, 0x1 strh r1, [r5, 0x3A] movs r2, 0x36 ldrsh r0, [r5, r2] lsls r0, 1 add r0, sp ldrh r0, [r0] lsls r0, 16 asrs r2, r0, 16 lsls r1, 16 asrs r1, 16 asrs r0, 17 cmp r1, r0 bne _08064802 movs r6, 0x1 _08064802: cmp r1, r2 blt _0806480C movs r0, 0 strh r0, [r5, 0x26] movs r6, 0xFF _0806480C: adds r0, r6, 0 add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08064818: .4byte gUnknown_083761E6 _0806481C: .4byte gUnknown_083761EC thumb_func_end sub_806478C thumb_func_start sub_8064820 sub_8064820: @ 8064820 strh r1, [r0, 0x34] bx lr thumb_func_end sub_8064820 thumb_func_start sub_8064824 sub_8064824: @ 8064824 push {lr} ldrh r1, [r0, 0x34] subs r1, 0x1 strh r1, [r0, 0x34] lsls r1, 16 cmp r1, 0 beq _08064836 movs r0, 0 b _08064838 _08064836: movs r0, 0x1 _08064838: pop {r1} bx r1 thumb_func_end sub_8064824 thumb_func_start obj_anim_image_set_and_seek obj_anim_image_set_and_seek: @ 806483C push {r4,lr} lsls r2, 24 lsrs r2, 24 adds r3, r0, 0 adds r3, 0x2A strb r1, [r3] adds r4, r0, 0 adds r4, 0x2C ldrb r3, [r4] movs r1, 0x41 negs r1, r1 ands r1, r3 strb r1, [r4] adds r1, r2, 0 bl SeekSpriteAnim pop {r4} pop {r0} bx r0 thumb_func_end obj_anim_image_set_and_seek thumb_func_start sub_8064864 sub_8064864: @ 8064864 push {lr} adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _08064876 movs r0, 0 b _08064878 _08064876: movs r0, 0x1 _08064878: pop {r1} bx r1 thumb_func_end sub_8064864 thumb_func_start sub_806487C sub_806487C: @ 806487C push {r4-r6,lr} mov r12, r0 lsls r1, 24 lsrs r1, 24 mov r3, r12 adds r3, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _080648E4 mov r0, r12 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 mov r4, r12 adds r4, 0x28 movs r0, 0 ldrsb r0, [r4, r0] ldr r2, _080648DC adds r0, r1 ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r6, r0, 16 mov r0, r12 ldrh r1, [r0, 0x26] ldrh r2, [r0, 0x22] adds r1, r2 subs r3, 0x15 movs r0, 0 ldrsb r0, [r3, r0] ldr r2, _080648E0 adds r0, r1 ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r5, r0, 16 adds r2, r3, 0 b _08064912 .align 2, 0 _080648DC: .4byte 0x030024d0 _080648E0: .4byte 0x030027e0 _080648E4: mov r0, r12 ldrh r1, [r0, 0x24] ldrh r2, [r0, 0x20] adds r1, r2 mov r3, r12 adds r3, 0x28 movs r0, 0 ldrsb r0, [r3, r0] adds r0, r1 lsls r0, 16 lsrs r6, r0, 16 mov r0, r12 ldrh r1, [r0, 0x26] ldrh r2, [r0, 0x22] adds r1, r2 mov r2, r12 adds r2, 0x29 movs r0, 0 ldrsb r0, [r2, r0] adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 adds r4, r3, 0 _08064912: ldrb r0, [r4] lsls r0, 24 asrs r0, 25 subs r0, r6, r0 lsls r0, 16 lsrs r3, r0, 16 ldrb r0, [r2] lsls r0, 24 asrs r0, 25 subs r0, r5, r0 lsls r0, 16 lsrs r2, r0, 16 lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xFF bgt _0806493E lsls r0, r3, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _0806494A _0806493E: mov r4, r12 adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] _0806494A: lsls r0, r5, 16 asrs r0, 16 cmp r0, 0xAF bgt _0806495E lsls r0, r2, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _0806496A _0806495E: mov r0, r12 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0806496A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806487C thumb_func_start sub_8064970 sub_8064970: @ 8064970 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0x1 bl SetObjectSubpriorityByZCoord adds r0, r4, 0 movs r1, 0 bl sub_806487C pop {r4} pop {r0} bx r0 thumb_func_end sub_8064970 thumb_func_start sub_8064990 sub_8064990: @ 8064990 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r3, r1, 24 movs r2, 0 ldr r6, _080649DC _0806499E: lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r4, r0, r6 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080649E4 ldr r1, [r4, 0x1C] ldr r0, _080649E0 cmp r1, r0 bne _080649E4 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 cmp r0, r5 bne _080649E4 adds r0, r3, 0 bl FieldObjectDirectionToImageAnimId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim b _080649EE .align 2, 0 _080649DC: .4byte 0x02020004 _080649E0: .4byte sub_8064970 _080649E4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3F bls _0806499E _080649EE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8064990 thumb_func_start oe_exec_and_other_stuff oe_exec_and_other_stuff: @ 80649F4 push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _08064A18 adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 bl FieldObjectGetLocalIdAndMap adds r0, r4, 0 bl FieldEffectStart pop {r4} pop {r1} bx r1 .align 2, 0 _08064A18: .4byte 0x0202ff84 thumb_func_end oe_exec_and_other_stuff thumb_func_start DoShadowFieldEffect DoShadowFieldEffect: @ 8064A1C push {lr} adds r1, r0, 0 ldrb r2, [r1, 0x2] lsls r0, r2, 25 cmp r0, 0 blt _08064A34 movs r0, 0x40 orrs r0, r2 strb r0, [r1, 0x2] movs r0, 0x3 bl oe_exec_and_other_stuff _08064A34: pop {r0} bx r0 thumb_func_end DoShadowFieldEffect thumb_func_start DoRippleFieldEffect DoRippleFieldEffect: @ 8064A38 push {r4,lr} adds r4, r1, 0 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo ldr r2, _08064A70 movs r3, 0x20 ldrsh r1, [r4, r3] str r1, [r2] movs r3, 0x22 ldrsh r1, [r4, r3] ldrh r0, [r0, 0xA] lsls r0, 16 asrs r0, 17 adds r1, r0 subs r1, 0x2 str r1, [r2, 0x4] movs r0, 0x97 str r0, [r2, 0x8] movs r0, 0x3 str r0, [r2, 0xC] movs r0, 0x5 bl FieldEffectStart pop {r4} pop {r0} bx r0 .align 2, 0 _08064A70: .4byte 0x0202ff84 thumb_func_end DoRippleFieldEffect thumb_func_start sub_8064A74 sub_8064A74: @ 8064A74 push {lr} ldr r1, _08064A90 movs r0, 0 strb r0, [r1] ldr r0, _08064A94 ldrh r0, [r0] bl sub_80651C8 ldr r0, _08064A98 ldr r1, _08064A9C bl InitWindowFromConfig pop {r0} bx r0 .align 2, 0 _08064A90: .4byte 0x030005a8 _08064A94: .4byte 0x0202e9d2 _08064A98: .4byte 0x0202e87c _08064A9C: .4byte gWindowConfig_81E6CE4 thumb_func_end sub_8064A74 thumb_func_start sub_8064AA0 sub_8064AA0: @ 8064AA0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08064AC4 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08064ADC cmp r0, 0x1 bgt _08064AC8 cmp r0, 0 beq _08064ACE b _08064B28 .align 2, 0 _08064AC4: .4byte 0x03004b20 _08064AC8: cmp r0, 0x2 beq _08064AF0 b _08064B28 _08064ACE: ldr r0, _08064AD8 bl sub_8065348 b _08064AE2 .align 2, 0 _08064AD8: .4byte 0x0202e87c _08064ADC: ldr r0, _08064AEC bl draw_win _08064AE2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08064B28 .align 2, 0 _08064AEC: .4byte 0x0202e87c _08064AF0: ldr r0, _08064B00 ldrb r0, [r0] cmp r0, 0x2 beq _08064B04 cmp r0, 0x3 beq _08064B10 b _08064B1C .align 2, 0 _08064B00: .4byte 0x030005a8 _08064B04: ldr r0, _08064B0C bl sub_80035AC b _08064B16 .align 2, 0 _08064B0C: .4byte 0x0202e87c _08064B10: ldr r0, _08064B30 bl sub_8003778 _08064B16: lsls r0, 24 cmp r0, 0 beq _08064B28 _08064B1C: ldr r1, _08064B34 movs r0, 0 strb r0, [r1] adds r0, r5, 0 bl DestroyTask _08064B28: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064B30: .4byte 0x0202e87c _08064B34: .4byte 0x030005a8 thumb_func_end sub_8064AA0 thumb_func_start task_add_textbox task_add_textbox: @ 8064B38 push {lr} ldr r0, _08064B48 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _08064B48: .4byte sub_8064AA0 thumb_func_end task_add_textbox thumb_func_start task_del_textbox task_del_textbox: @ 8064B4C push {lr} ldr r0, _08064B64 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08064B60 bl DestroyTask _08064B60: pop {r0} bx r0 .align 2, 0 _08064B64: .4byte sub_8064AA0 thumb_func_end task_del_textbox thumb_func_start box_related_two__2 box_related_two__2: @ 8064B68 push {r4,lr} adds r1, r0, 0 ldr r4, _08064B84 ldrb r0, [r4] cmp r0, 0 bne _08064B88 adds r0, r1, 0 bl textbox_fdecode_auto_and_task_add movs r0, 0x2 strb r0, [r4] movs r0, 0x1 b _08064B8A .align 2, 0 _08064B84: .4byte 0x030005a8 _08064B88: movs r0, 0 _08064B8A: pop {r4} pop {r1} bx r1 thumb_func_end box_related_two__2 thumb_func_start box_related_two__3 box_related_two__3: @ 8064B90 push {lr} adds r1, r0, 0 ldr r2, _08064BAC ldrb r0, [r2] cmp r0, 0 bne _08064BB0 movs r0, 0x3 strb r0, [r2] adds r0, r1, 0 bl textbox_fdecode_auto_and_task_add movs r0, 0x1 b _08064BB2 .align 2, 0 _08064BAC: .4byte 0x030005a8 _08064BB0: movs r0, 0 _08064BB2: pop {r1} bx r1 thumb_func_end box_related_two__3 thumb_func_start unref_sub_8064BB8 unref_sub_8064BB8: @ 8064BB8 push {lr} ldr r2, _08064BCC movs r1, 0x3 strb r1, [r2] bl textbox_fdecode_auto_and_task_add movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08064BCC: .4byte 0x030005a8 thumb_func_end unref_sub_8064BB8 thumb_func_start unref_sub_8064BD0 unref_sub_8064BD0: @ 8064BD0 push {lr} ldr r1, _08064BE8 ldrb r0, [r1] cmp r0, 0 bne _08064BEC movs r0, 0x2 strb r0, [r1] bl textbox_auto_and_task_add movs r0, 0x1 b _08064BEE .align 2, 0 _08064BE8: .4byte 0x030005a8 _08064BEC: movs r0, 0 _08064BEE: pop {r1} bx r1 thumb_func_end unref_sub_8064BD0 thumb_func_start textbox_fdecode_auto_and_task_add textbox_fdecode_auto_and_task_add: @ 8064BF4 push {r4,lr} sub sp, 0x4 adds r1, r0, 0 ldr r4, _08064C20 adds r0, r4, 0 bl StringExpandPlaceholders ldr r0, _08064C24 ldr r1, _08064C28 ldrh r2, [r1] movs r1, 0xF str r1, [sp] adds r1, r4, 0 movs r3, 0x2 bl sub_8002EB0 bl task_add_textbox add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08064C20: .4byte 0x020234cc _08064C24: .4byte 0x0202e87c _08064C28: .4byte 0x0202e9ce thumb_func_end textbox_fdecode_auto_and_task_add thumb_func_start textbox_auto_and_task_add textbox_auto_and_task_add: @ 8064C2C push {lr} sub sp, 0x4 ldr r0, _08064C4C ldr r1, _08064C50 ldr r2, _08064C54 ldrh r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 bl task_add_textbox add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08064C4C: .4byte 0x0202e87c _08064C50: .4byte 0x020234cc _08064C54: .4byte 0x0202e9ce thumb_func_end textbox_auto_and_task_add thumb_func_start textbox_close textbox_close: @ 8064C58 push {lr} bl task_del_textbox ldr r0, _08064C70 bl sub_806536C ldr r1, _08064C74 movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08064C70: .4byte 0x0202e87c _08064C74: .4byte 0x030005a8 thumb_func_end textbox_close thumb_func_start textbox_any_visible textbox_any_visible: @ 8064C78 ldr r0, _08064C80 ldrb r0, [r0] bx lr .align 2, 0 _08064C80: .4byte 0x030005a8 thumb_func_end textbox_any_visible thumb_func_start sub_8064C84 sub_8064C84: @ 8064C84 push {lr} ldr r0, _08064C94 ldrb r0, [r0] cmp r0, 0 beq _08064C98 movs r0, 0 b _08064C9A .align 2, 0 _08064C94: .4byte 0x030005a8 _08064C98: movs r0, 0x1 _08064C9A: pop {r1} bx r1 thumb_func_end sub_8064C84 thumb_func_start unref_sub_8064CA0 unref_sub_8064CA0: @ 8064CA0 push {lr} bl task_del_textbox ldr r0, _08064CB8 bl draw_win ldr r1, _08064CBC movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08064CB8: .4byte 0x0202e87c _08064CBC: .4byte 0x030005a8 thumb_func_end unref_sub_8064CA0 thumb_func_start walkrun_is_standing_still walkrun_is_standing_still: @ 8064CC0 push {lr} ldr r0, _08064CD0 ldrb r0, [r0, 0x3] cmp r0, 0x1 beq _08064CD4 movs r0, 0x1 b _08064CD6 .align 2, 0 _08064CD0: .4byte 0x0202e858 _08064CD4: movs r0, 0 _08064CD6: pop {r1} bx r1 thumb_func_end walkrun_is_standing_still thumb_func_start sub_8064CDC sub_8064CDC: @ 8064CDC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl walkrun_is_standing_still lsls r0, 24 cmp r0, 0 beq _08064CF6 bl sub_80594C0 adds r0, r4, 0 bl DestroyTask _08064CF6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8064CDC thumb_func_start sub_8064CFC sub_8064CFC: @ 8064CFC push {lr} ldr r0, _08064D14 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08064D18 bl sub_80597F4 movs r0, 0x1 b _08064D1A .align 2, 0 _08064D14: .4byte sub_8064CDC _08064D18: movs r0, 0 _08064D1A: pop {r1} bx r1 thumb_func_end sub_8064CFC thumb_func_start sub_8064D20 sub_8064D20: @ 8064D20 push {lr} bl player_bitmagic ldr r0, _08064D34 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _08064D34: .4byte sub_8064CDC thumb_func_end sub_8064D20 thumb_func_start sub_8064D38 sub_8064D38: @ 8064D38 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08064DA8 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _08064D62 bl walkrun_is_standing_still lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _08064D62 bl sub_80594C0 strh r4, [r5, 0x8] _08064D62: movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 bne _08064D8A ldr r2, _08064DAC ldr r0, _08064DB0 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _08064D8A adds r0, r1, 0 bl sub_80643A4 movs r0, 0x1 strh r0, [r5, 0xA] _08064D8A: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 beq _08064DA0 movs r1, 0xA ldrsh r0, [r5, r1] cmp r0, 0 beq _08064DA0 adds r0, r6, 0 bl DestroyTask _08064DA0: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08064DA8: .4byte 0x03004b20 _08064DAC: .4byte 0x030048a0 _08064DB0: .4byte 0x03004ae0 thumb_func_end sub_8064D38 thumb_func_start sub_8064DB4 sub_8064DB4: @ 8064DB4 push {lr} ldr r0, _08064DCC bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08064DD0 bl sub_80597F4 movs r0, 0x1 b _08064DD2 .align 2, 0 _08064DCC: .4byte sub_8064D38 _08064DD0: movs r0, 0 _08064DD2: pop {r1} bx r1 thumb_func_end sub_8064DB4 thumb_func_start sub_8064DD8 sub_8064DD8: @ 8064DD8 push {r4,r5,lr} ldr r4, _08064E1C ldrb r0, [r4] bl sub_8064470 ldr r0, _08064E20 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r2, _08064E24 ldrb r1, [r4] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrb r0, [r1] lsls r0, 30 cmp r0, 0 blt _08064E16 adds r0, r1, 0 bl sub_80643A4 ldr r0, _08064E28 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0xA] _08064E16: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064E1C: .4byte 0x03004ae0 _08064E20: .4byte sub_8064D38 _08064E24: .4byte 0x030048a0 _08064E28: .4byte 0x03004b20 thumb_func_end sub_8064DD8 thumb_func_start sub_8064E2C sub_8064E2C: @ 8064E2C push {lr} movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08064E58 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80A2178 bl sub_806451C pop {r0} bx r0 .align 2, 0 _08064E58: .4byte 0x030048a0 thumb_func_end sub_8064E2C thumb_func_start unref_sub_8064E5C unref_sub_8064E5C: @ 8064E5C push {r4,lr} ldr r4, _08064EA4 ldr r0, _08064EA8 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08064E7A adds r0, r1, 0 bl FieldObjectClearAnimIfSpecialAnimFinished _08064E7A: movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80A2178 bl sub_806451C pop {r4} pop {r0} bx r0 .align 2, 0 _08064EA4: .4byte 0x030048a0 _08064EA8: .4byte 0x03004ae0 thumb_func_end unref_sub_8064E5C thumb_func_start sub_8064EAC sub_8064EAC: @ 8064EAC push {lr} ldr r0, _08064EC8 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08064ECC adds r0, r1 ldr r1, _08064ED0 ldrb r1, [r1] bl FieldObjectFaceOppositeDirection pop {r0} bx r0 .align 2, 0 _08064EC8: .4byte 0x03004ae0 _08064ECC: .4byte 0x030048a0 _08064ED0: .4byte 0x0202e8e0 thumb_func_end sub_8064EAC thumb_func_start sub_8064ED4 sub_8064ED4: @ 8064ED4 push {lr} ldr r0, _08064EEC ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _08064EF0 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimActive pop {r0} bx r0 .align 2, 0 _08064EEC: .4byte 0x03004ae0 _08064EF0: .4byte 0x030048a0 thumb_func_end sub_8064ED4 thumb_func_start sub_8064EF4 sub_8064EF4: @ 8064EF4 lsls r0, 16 lsrs r0, 16 ldr r1, _08064F04 strh r0, [r1] adds r0, 0x9 lsls r0, 16 lsrs r0, 16 bx lr .align 2, 0 _08064F04: .4byte 0x030005ac thumb_func_end sub_8064EF4 thumb_func_start sub_8064F08 sub_8064F08: @ 8064F08 push {r4,lr} ldr r1, [r0, 0x2C] ldr r0, _08064F30 ldrh r0, [r0] lsls r0, 5 ldr r1, [r1, 0x10] adds r1, r0 ldr r4, _08064F34 ldrb r0, [r4, 0x14] lsrs r0, 3 bl sub_8064FF8 ldrb r0, [r4, 0x14] lsrs r0, 3 movs r1, 0xE bl sub_8065014 pop {r4} pop {r0} bx r0 .align 2, 0 _08064F30: .4byte 0x030005ac _08064F34: .4byte 0x02024ea4 thumb_func_end sub_8064F08 thumb_func_start sub_8064F38 sub_8064F38: @ 8064F38 push {r4,r5,lr} lsls r5, r1, 24 lsrs r5, 24 ldr r1, [r0, 0x2C] ldr r0, _08064F64 ldrh r0, [r0] lsls r0, 5 ldr r1, [r1, 0x10] adds r1, r0 ldr r4, _08064F68 ldrb r0, [r4, 0x14] lsrs r0, 3 bl sub_8064FF8 ldrb r0, [r4, 0x14] lsrs r0, 3 adds r1, r5, 0 bl sub_8065014 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064F64: .4byte 0x030005ac _08064F68: .4byte 0x02024ea4 thumb_func_end sub_8064F38 thumb_func_start sub_8064F6C sub_8064F6C: @ 8064F6C push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 ldr r1, [r0, 0x2C] ldr r0, _08064F94 ldrh r0, [r0] lsls r0, 5 ldr r1, [r1, 0x10] adds r1, r0 adds r0, r4, 0 bl sub_8064FF8 adds r0, r4, 0 movs r1, 0xE bl sub_8065014 pop {r4} pop {r0} bx r0 .align 2, 0 _08064F94: .4byte 0x030005ac thumb_func_end sub_8064F6C thumb_func_start AddTextPrinterParametrized AddTextPrinterParametrized: @ 8064F98 push {r4,r5,lr} sub sp, 0x8 adds r4, r1, 0 adds r5, r2, 0 ldr r2, [sp, 0x14] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, [r0, 0x2C] ldr r0, [r0, 0x14] ldr r1, _08064FD0 ldrh r1, [r1] str r3, [sp] str r2, [sp, 0x4] adds r2, r4, 0 adds r3, r5, 0 bl DrawWindowInternal add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08064FD0: .4byte 0x030005ac thumb_func_end AddTextPrinterParametrized thumb_func_start sub_8064FD4 sub_8064FD4: @ 8064FD4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bhi _08064FEC lsls r0, 3 ldr r1, _08064FE8 adds r0, r1 b _08064FEE .align 2, 0 _08064FE8: .4byte gUnknown_083761F0 _08064FEC: ldr r0, _08064FF4 _08064FEE: pop {r1} bx r1 .align 2, 0 _08064FF4: .4byte gUnknown_083761F0 thumb_func_end sub_8064FD4 thumb_func_start sub_8064FF8 sub_8064FF8: @ 8064FF8 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 bl sub_8064FD4 ldr r0, [r0] adds r1, r4, 0 movs r2, 0x48 bl CpuFastSet pop {r4} pop {r0} bx r0 thumb_func_end sub_8064FF8 thumb_func_start sub_8065014 sub_8065014: @ 8065014 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl sub_8064FD4 ldr r0, [r0, 0x4] lsls r4, 4 adds r1, r4, 0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 thumb_func_end sub_8065014 thumb_func_start DrawWindowInternal DrawWindowInternal: @ 8065038 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r0, 0 ldr r0, [sp, 0x3C] ldr r4, [sp, 0x40] lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 24 lsrs r2, 24 adds r6, r2, 0 lsls r3, 24 lsrs r5, r3, 24 mov r10, r5 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 mov r8, r4 adds r1, r0, 0 cmp r0, r2 bls _0806506E adds r1, r2, 0 _0806506E: str r1, [sp] adds r1, r6, 0 cmp r6, r0 bcs _08065078 adds r1, r0, 0 _08065078: adds r6, r1, 0 adds r3, r4, 0 cmp r4, r5 bls _08065082 adds r3, r5, 0 _08065082: adds r5, r3, 0 mov r0, r10 cmp r10, r8 bcs _0806508C mov r0, r8 _0806508C: str r0, [sp, 0x4] lsls r3, r5, 5 ldr r0, [sp] adds r1, r3, r0 lsls r1, 1 adds r1, r7 movs r4, 0xE0 lsls r4, 8 adds r2, r4, 0 mov r0, r9 orrs r0, r2 strh r0, [r1] ldr r1, [sp] adds r1, 0x1 lsls r0, r1, 24 lsrs r2, r0, 24 str r1, [sp, 0x18] mov r4, r9 adds r4, 0x2 adds r5, 0x1 mov r8, r5 mov r5, r9 adds r5, 0x6 str r5, [sp, 0x10] mov r0, r9 adds r0, 0x8 str r0, [sp, 0x14] cmp r2, r6 bcs _080650E6 mov r10, r3 mov r1, r9 adds r1, 0x1 ldr r5, _080651C4 adds r0, r5, 0 orrs r1, r0 _080650D2: mov r5, r10 adds r0, r5, r2 lsls r0, 1 adds r0, r7 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcc _080650D2 _080650E6: adds r0, r3, r6 lsls r0, 1 adds r0, r7 ldr r2, _080651C4 adds r1, r2, 0 orrs r4, r1 strh r4, [r0] mov r4, r8 lsls r0, r4, 24 lsrs r3, r0, 24 ldr r5, [sp, 0x4] lsls r5, 5 mov r10, r5 ldr r0, [sp, 0x4] cmp r3, r0 bcs _0806516A movs r2, 0x3 add r2, r9 orrs r2, r1 mov r8, r2 ldr r4, [sp, 0x18] lsls r4, 24 str r4, [sp, 0x8] movs r5, 0x5 add r5, r9 orrs r5, r1 mov r12, r5 mov r0, r9 adds r0, 0x4 str r0, [sp, 0xC] _08065122: lsls r1, r3, 5 ldr r2, [sp] adds r0, r1, r2 lsls r0, 1 adds r0, r7 mov r4, r8 strh r4, [r0] ldr r5, [sp, 0x8] lsrs r2, r5, 24 adds r5, r1, 0 adds r3, 0x1 cmp r2, r6 bcs _08065156 ldr r4, _080651C4 adds r0, r4, 0 ldr r4, [sp, 0xC] orrs r4, r0 _08065144: adds r0, r1, r2 lsls r0, 1 adds r0, r7 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcc _08065144 _08065156: adds r0, r5, r6 lsls r0, 1 adds r0, r7 mov r5, r12 strh r5, [r0] lsls r0, r3, 24 lsrs r3, r0, 24 ldr r0, [sp, 0x4] cmp r3, r0 bcc _08065122 _0806516A: ldr r0, [sp] add r0, r10 lsls r0, 1 adds r0, r7 ldr r1, _080651C4 adds r4, r1, 0 ldr r2, [sp, 0x10] orrs r2, r4 strh r2, [r0] ldr r1, [sp, 0x18] lsls r0, r1, 24 lsrs r2, r0, 24 cmp r2, r6 bcs _080651A0 mov r3, r10 mov r1, r9 adds r1, 0x7 orrs r1, r4 _0806518E: adds r0, r3, r2 lsls r0, 1 adds r0, r7 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcc _0806518E _080651A0: mov r2, r10 adds r0, r2, r6 lsls r0, 1 adds r0, r7 ldr r4, _080651C4 adds r1, r4, 0 ldr r5, [sp, 0x14] orrs r5, r1 strh r5, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080651C4: .4byte 0xffffe000 thumb_func_end DrawWindowInternal thumb_func_start sub_80651C8 sub_80651C8: @ 80651C8 lsls r0, 16 lsrs r0, 16 ldr r1, _080651D8 strh r0, [r1] adds r0, 0xE lsls r0, 16 lsrs r0, 16 bx lr .align 2, 0 _080651D8: .4byte 0x030005ae thumb_func_end sub_80651C8 thumb_func_start unref_sub_80651DC unref_sub_80651DC: @ 80651DC push {lr} sub sp, 0x4 ldr r2, _080651FC ldrh r2, [r2] adds r2, 0xE lsls r2, 16 lsrs r2, 16 movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080651FC: .4byte 0x030005ae thumb_func_end unref_sub_80651DC thumb_func_start copy_textbox_border_tile_patterns_to_vram copy_textbox_border_tile_patterns_to_vram: @ 8065200 push {r4,lr} adds r4, r0, 0 bl sub_8065348 adds r0, r4, 0 bl draw_win pop {r4} pop {r0} bx r0 thumb_func_end copy_textbox_border_tile_patterns_to_vram thumb_func_start draw_win_3 draw_win_3: @ 8065214 push {r4-r6,lr} ldr r4, [sp, 0x10] lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r0, r4, 24 movs r1, 0x9 cmp r2, r0 bcc _0806523C subs r0, r2, r0 adds r0, 0x3 lsls r0, 24 lsrs r2, r0, 24 b _08065242 _0806523C: cmp r2, 0x1 bls _08065242 movs r2, 0x2 _08065242: adds r0, r3, 0x2 cmp r5, r0 blt _08065252 subs r0, r5, r0 adds r0, 0x4 lsls r0, 24 lsrs r5, r0, 24 b _08065258 _08065252: cmp r5, 0x2 bls _08065258 movs r5, 0x3 _08065258: cmp r5, 0x6 bhi _0806526E cmp r2, 0x4 bhi _0806526E ldr r1, _0806527C lsls r0, r2, 3 subs r0, r2 adds r0, r5 lsls r0, 1 adds r0, r1 ldrh r1, [r0] _0806526E: adds r0, r1, r6 lsls r0, 16 lsrs r1, r0, 16 adds r0, r1, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806527C: .4byte gUnknown_08376290 thumb_func_end draw_win_3 thumb_func_start draw_win_2 draw_win_2: @ 8065280 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C str r0, [sp, 0x4] ldr r0, [sp, 0x3C] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x8] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x10] lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, [sp, 0x4] ldrb r0, [r1, 0x6] lsls r0, 12 ldr r1, _0806532C ldrh r1, [r1] orrs r0, r1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x14] ldr r3, [sp, 0x4] ldr r0, [r3, 0x2C] ldr r0, [r0, 0x14] mov r10, r0 movs r5, 0 mov r0, r9 adds r0, 0x2 cmp r5, r0 bge _0806531C ldr r7, [sp, 0x10] adds r7, 0x6 str r0, [sp, 0x18] _080652D2: movs r4, 0 adds r0, r5, 0x1 mov r8, r0 cmp r4, r7 bge _08065310 ldr r1, [sp, 0xC] adds r0, r1, r5 lsls r6, r0, 5 _080652E2: mov r3, r9 str r3, [sp] ldr r0, [sp, 0x14] adds r1, r4, 0 adds r2, r5, 0 ldr r3, [sp, 0x10] bl draw_win_3 ldr r1, [sp, 0x8] adds r2, r1, r4 adds r2, r6, r2 lsls r2, 1 add r2, r10 ldr r3, [sp, 0x4] ldrb r1, [r3, 0x6] lsls r1, 12 orrs r1, r0 strh r1, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 blt _080652E2 _08065310: mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 ldr r3, [sp, 0x18] cmp r5, r3 blt _080652D2 _0806531C: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806532C: .4byte 0x030005ae thumb_func_end draw_win_2 thumb_func_start draw_win draw_win: @ 8065330 push {lr} sub sp, 0x4 movs r1, 0x4 str r1, [sp] movs r1, 0 movs r2, 0xE movs r3, 0x1A bl draw_win_2 add sp, 0x4 pop {r0} bx r0 thumb_func_end draw_win thumb_func_start sub_8065348 sub_8065348: @ 8065348 push {lr} ldr r0, [r0, 0x2C] ldr r1, [r0, 0x10] ldr r0, _08065364 ldr r2, _08065368 ldrh r2, [r2] lsls r2, 5 adds r1, r2 movs r2, 0x70 bl CpuFastSet pop {r0} bx r0 .align 2, 0 _08065364: .4byte gUnknown_08EA0108 _08065368: .4byte 0x030005ae thumb_func_end sub_8065348 thumb_func_start sub_806536C sub_806536C: @ 806536C push {lr} ldr r1, [r0, 0x2C] ldr r1, [r1, 0x14] movs r2, 0xE0 lsls r2, 2 adds r1, r2 ldrb r0, [r0, 0x6] lsls r0, 28 lsrs r3, r0, 16 movs r2, 0 _08065380: lsls r0, r2, 1 adds r0, r1 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xBF bls _08065380 pop {r0} bx r0 thumb_func_end sub_806536C thumb_func_start script_env_init script_env_init: @ 8065394 push {lr} adds r3, r0, 0 movs r0, 0 strb r0, [r3, 0x1] str r0, [r3, 0x8] strb r0, [r3] str r0, [r3, 0x4] str r1, [r3, 0x5C] str r2, [r3, 0x60] movs r2, 0 movs r1, 0x3 adds r0, r3, 0 adds r0, 0x70 _080653AE: str r2, [r0] subs r0, 0x4 subs r1, 0x1 cmp r1, 0 bge _080653AE adds r1, r3, 0 adds r1, 0xC movs r2, 0 adds r0, r3, 0 adds r0, 0x58 _080653C2: str r2, [r0] subs r0, 0x4 cmp r0, r1 bge _080653C2 pop {r0} bx r0 thumb_func_end script_env_init thumb_func_start script_setup_bytecode_script script_setup_bytecode_script: @ 80653D0 str r1, [r0, 0x8] movs r1, 0x1 strb r1, [r0, 0x1] movs r0, 0x1 bx lr thumb_func_end script_setup_bytecode_script thumb_func_start script_setup_asm_script script_setup_asm_script: @ 80653DC movs r2, 0x2 strb r2, [r0, 0x1] str r1, [r0, 0x4] bx lr thumb_func_end script_setup_asm_script thumb_func_start script_stop script_stop: @ 80653E4 movs r1, 0 strb r1, [r0, 0x1] str r1, [r0, 0x8] bx lr thumb_func_end script_stop thumb_func_start sub_80653EC sub_80653EC: @ 80653EC push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x1] cmp r0, 0 bne _080653FA _080653F6: movs r0, 0 b _0806546C _080653FA: ldrb r0, [r4, 0x1] cmp r0, 0x1 beq _08065432 cmp r0, 0x1 bgt _0806540A cmp r0, 0 beq _080653F6 b _0806546A _0806540A: cmp r0, 0x2 bne _0806546A ldr r0, [r4, 0x4] cmp r0, 0 beq _0806542E bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806546A strb r0, [r4, 0x1] b _0806546A _08065424: strb r2, [r4, 0x1] b _080653F6 _08065428: movs r0, 0 strb r0, [r4, 0x1] b _0806546C _0806542E: movs r0, 0x1 strb r0, [r4, 0x1] _08065432: ldr r2, [r4, 0x8] cmp r2, 0 beq _08065424 ldr r0, _08065444 ldr r0, [r0] cmp r2, r0 bne _08065448 _08065440: swi 0x2 b _08065440 .align 2, 0 _08065444: .4byte gUnknown_083762D8 _08065448: ldrb r1, [r2] adds r0, r2, 0x1 str r0, [r4, 0x8] lsls r1, 2 ldr r0, [r4, 0x5C] adds r1, r0, r1 ldr r0, [r4, 0x60] cmp r1, r0 bcs _08065428 ldr r1, [r1] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08065432 _0806546A: movs r0, 0x1 _0806546C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80653EC thumb_func_start script_stack_push script_stack_push: @ 8065474 push {lr} adds r2, r0, 0 adds r3, r1, 0 ldrb r1, [r2] adds r0, r1, 0x1 cmp r0, 0x13 bgt _08065496 lsls r0, r1, 2 adds r1, r2, 0 adds r1, 0xC adds r1, r0 str r3, [r1] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r0, 0 b _08065498 _08065496: movs r0, 0x1 _08065498: pop {r1} bx r1 thumb_func_end script_stack_push thumb_func_start script_stack_pop script_stack_pop: @ 806549C push {lr} adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0 beq _080654B8 subs r0, 0x1 strb r0, [r2] ldrb r1, [r2] lsls r1, 2 adds r0, r2, 0 adds r0, 0xC adds r0, r1 ldr r0, [r0] b _080654BA _080654B8: movs r0, 0 _080654BA: pop {r1} bx r1 thumb_func_end script_stack_pop thumb_func_start script_jump script_jump: @ 80654C0 str r1, [r0, 0x8] bx lr thumb_func_end script_jump thumb_func_start script_call script_call: @ 80654C4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, [r4, 0x8] bl script_stack_push str r5, [r4, 0x8] pop {r4,r5} pop {r0} bx r0 thumb_func_end script_call thumb_func_start script_return script_return: @ 80654D8 push {r4,lr} adds r4, r0, 0 bl script_stack_pop str r0, [r4, 0x8] pop {r4} pop {r0} bx r0 thumb_func_end script_return thumb_func_start script_read_halfword script_read_halfword: @ 80654E8 adds r3, r0, 0 ldr r2, [r3, 0x8] ldrb r0, [r2] adds r2, 0x1 str r2, [r3, 0x8] ldrb r1, [r2] lsls r1, 8 orrs r0, r1 adds r2, 0x1 str r2, [r3, 0x8] bx lr thumb_func_end script_read_halfword thumb_func_start script_read_word script_read_word: @ 8065500 push {r4-r6,lr} adds r3, r0, 0 ldr r0, [r3, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldrb r5, [r0] adds r2, r0, 0x1 str r2, [r3, 0x8] ldrb r4, [r0, 0x1] adds r1, r2, 0x1 str r1, [r3, 0x8] ldrb r0, [r2, 0x1] adds r1, 0x1 str r1, [r3, 0x8] lsls r0, 8 adds r0, r4 lsls r0, 8 adds r0, r5 lsls r0, 8 adds r0, r6 pop {r4-r6} pop {r1} bx r1 thumb_func_end script_read_word thumb_func_start script_env_2_enable script_env_2_enable: @ 8065530 ldr r1, _08065538 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _08065538: .4byte 0x030006a4 thumb_func_end script_env_2_enable thumb_func_start script_env_2_disable script_env_2_disable: @ 806553C ldr r1, _08065544 movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _08065544: .4byte 0x030006a4 thumb_func_end script_env_2_disable thumb_func_start script_env_2_is_enabled script_env_2_is_enabled: @ 8065548 ldr r0, _08065550 ldrb r0, [r0] bx lr .align 2, 0 _08065550: .4byte 0x030006a4 thumb_func_end script_env_2_is_enabled thumb_func_start script_env_1_init script_env_1_init: @ 8065554 push {lr} ldr r0, _0806556C ldr r1, _08065570 ldr r2, _08065574 bl script_env_init ldr r1, _08065578 movs r0, 0x2 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _0806556C: .4byte 0x030005b8 _08065570: .4byte gScriptCmdTable _08065574: .4byte gScriptCmdTableEnd _08065578: .4byte 0x030005b0 thumb_func_end script_env_1_init thumb_func_start script_env_2_run_current_script script_env_2_run_current_script: @ 806557C push {r4,lr} ldr r4, _080655A0 ldrb r0, [r4] cmp r0, 0x2 beq _080655B0 cmp r0, 0x1 beq _080655B0 bl script_env_2_enable ldr r0, _080655A4 bl sub_80653EC lsls r0, 24 cmp r0, 0 beq _080655A8 movs r0, 0x1 b _080655B2 .align 2, 0 _080655A0: .4byte 0x030005b0 _080655A4: .4byte 0x030005b8 _080655A8: movs r0, 0x2 strb r0, [r4] bl script_env_2_disable _080655B0: movs r0, 0 _080655B2: pop {r4} pop {r1} bx r1 thumb_func_end script_env_2_run_current_script thumb_func_start script_env_1_execute_new_script script_env_1_execute_new_script: @ 80655B8 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _080655E0 ldr r1, _080655E4 ldr r2, _080655E8 adds r0, r4, 0 bl script_env_init adds r0, r4, 0 adds r1, r5, 0 bl script_setup_bytecode_script bl script_env_2_enable ldr r1, _080655EC movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080655E0: .4byte 0x030005b8 _080655E4: .4byte gScriptCmdTable _080655E8: .4byte gScriptCmdTableEnd _080655EC: .4byte 0x030005b0 thumb_func_end script_env_1_execute_new_script thumb_func_start sub_80655F0 sub_80655F0: @ 80655F0 ldr r1, _080655F8 movs r0, 0x1 strb r0, [r1] bx lr .align 2, 0 _080655F8: .4byte 0x030005b0 thumb_func_end sub_80655F0 thumb_func_start script_env_2_enable_and_set_ctx_running script_env_2_enable_and_set_ctx_running: @ 80655FC push {lr} ldr r1, _0806560C movs r0, 0 strb r0, [r1] bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _0806560C: .4byte 0x030005b0 thumb_func_end script_env_2_enable_and_set_ctx_running thumb_func_start script_env_2_execute_new_script script_env_2_execute_new_script: @ 8065610 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0806563C ldr r1, _08065640 ldr r2, _08065644 adds r0, r4, 0 bl script_env_init adds r0, r4, 0 adds r1, r5, 0 bl script_setup_bytecode_script _08065628: ldr r0, _0806563C bl sub_80653EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08065628 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806563C: .4byte 0x03000630 _08065640: .4byte gScriptCmdTable _08065644: .4byte gScriptCmdTableEnd thumb_func_end script_env_2_execute_new_script thumb_func_start mapheader_get_tagged_pointer mapheader_get_tagged_pointer: @ 8065648 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _08065660 ldr r2, [r0, 0x8] cmp r2, 0 beq _0806565C _08065656: ldrb r0, [r2] cmp r0, 0 bne _08065664 _0806565C: movs r0, 0 b _08065682 .align 2, 0 _08065660: .4byte 0x0202e828 _08065664: cmp r0, r1 beq _0806566C adds r2, 0x5 b _08065656 _0806566C: adds r2, 0x1 ldrb r0, [r2] ldrb r1, [r2, 0x1] lsls r1, 8 adds r0, r1 ldrb r1, [r2, 0x2] lsls r1, 16 adds r0, r1 ldrb r1, [r2, 0x3] lsls r1, 24 adds r0, r1 _08065682: pop {r1} bx r1 thumb_func_end mapheader_get_tagged_pointer thumb_func_start mapheader_run_script_by_tag mapheader_run_script_by_tag: @ 8065688 push {lr} lsls r0, 24 lsrs r0, 24 bl mapheader_get_tagged_pointer cmp r0, 0 beq _0806569A bl script_env_2_execute_new_script _0806569A: pop {r0} bx r0 thumb_func_end mapheader_run_script_by_tag thumb_func_start mapheader_get_first_match_from_tagged_ptr_list mapheader_get_first_match_from_tagged_ptr_list: @ 80656A0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 bl mapheader_get_tagged_pointer adds r6, r0, 0 cmp r6, 0 beq _080656BC _080656B0: ldrb r1, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r1, r0 cmp r1, 0 bne _080656C0 _080656BC: movs r0, 0 b _080656FA _080656C0: adds r6, 0x2 ldrb r5, [r6] ldrb r0, [r6, 0x1] lsls r0, 8 orrs r5, r0 adds r6, 0x2 adds r0, r1, 0 bl VarGet adds r4, r0, 0 adds r0, r5, 0 bl VarGet lsls r4, 16 lsls r0, 16 cmp r4, r0 beq _080656E6 adds r6, 0x4 b _080656B0 _080656E6: ldrb r0, [r6] ldrb r1, [r6, 0x1] lsls r1, 8 adds r0, r1 ldrb r1, [r6, 0x2] lsls r1, 16 adds r0, r1 ldrb r1, [r6, 0x3] lsls r1, 24 adds r0, r1 _080656FA: pop {r4-r6} pop {r1} bx r1 thumb_func_end mapheader_get_first_match_from_tagged_ptr_list thumb_func_start mapheader_run_script_with_tag_x1 mapheader_run_script_with_tag_x1: @ 8065700 push {lr} movs r0, 0x1 bl mapheader_run_script_by_tag pop {r0} bx r0 thumb_func_end mapheader_run_script_with_tag_x1 thumb_func_start mapheader_run_script_with_tag_x3 mapheader_run_script_with_tag_x3: @ 806570C push {lr} movs r0, 0x3 bl mapheader_run_script_by_tag pop {r0} bx r0 thumb_func_end mapheader_run_script_with_tag_x3 thumb_func_start mapheader_run_script_with_tag_x5 mapheader_run_script_with_tag_x5: @ 8065718 push {lr} movs r0, 0x5 bl mapheader_run_script_by_tag pop {r0} bx r0 thumb_func_end mapheader_run_script_with_tag_x5 thumb_func_start mapheader_run_script_with_tag_x6 mapheader_run_script_with_tag_x6: @ 8065724 push {lr} movs r0, 0x6 bl mapheader_run_script_by_tag pop {r0} bx r0 thumb_func_end mapheader_run_script_with_tag_x6 thumb_func_start mapheader_run_first_tag2_script_list_match mapheader_run_first_tag2_script_list_match: @ 8065730 push {lr} movs r0, 0x2 bl mapheader_get_first_match_from_tagged_ptr_list cmp r0, 0 beq _08065744 bl script_env_1_execute_new_script movs r0, 0x1 b _08065746 _08065744: movs r0, 0 _08065746: pop {r1} bx r1 thumb_func_end mapheader_run_first_tag2_script_list_match thumb_func_start mapheader_run_first_tag4_script_list_match mapheader_run_first_tag4_script_list_match: @ 806574C push {lr} movs r0, 0x4 bl mapheader_get_first_match_from_tagged_ptr_list cmp r0, 0 beq _0806575C bl script_env_2_execute_new_script _0806575C: pop {r0} bx r0 thumb_func_end mapheader_run_first_tag4_script_list_match thumb_func_start sub_8065760 sub_8065760: @ 8065760 push {r4,lr} movs r2, 0 movs r1, 0 ldr r4, _08065780 ldr r3, _08065784 _0806576A: adds r0, r1, r3 ldrb r0, [r0] adds r2, r0 adds r1, 0x1 cmp r1, r4 bls _0806576A adds r0, r2, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08065780: .4byte 0x000003e7 _08065784: .4byte 0x02028dc8 thumb_func_end sub_8065760 thumb_func_start killram killram: @ 8065788 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, _080657A0 ldr r2, _080657A4 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080657A0: .4byte 0x02028dc4 _080657A4: .4byte 0x050000fb thumb_func_end killram thumb_func_start sub_80657A8 sub_80657A8: @ 80657A8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r0 ldr r0, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r0, 24 lsrs r5, r0, 24 ldr r4, _080657F4 bl killram ldr r0, _080657F8 cmp r8, r0 bhi _080657FC movs r0, 0x33 strb r0, [r4] strb r7, [r4, 0x1] strb r6, [r4, 0x2] strb r5, [r4, 0x3] adds r0, r4, 0x4 mov r1, r9 mov r2, r8 bl memcpy bl sub_8065760 subs r1, r4, 0x4 str r0, [r1] movs r0, 0x1 b _080657FE .align 2, 0 _080657F4: .4byte 0x02028dc8 _080657F8: .4byte 0x000003e3 _080657FC: movs r0, 0 _080657FE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80657A8 thumb_func_start sub_806580C sub_806580C: @ 806580C push {r4-r6,lr} adds r5, r1, 0 lsls r0, 24 lsrs r3, r0, 24 ldr r4, _08065854 ldr r6, _08065858 movs r0, 0 str r0, [r6] ldrb r0, [r4] cmp r0, 0x33 bne _08065864 ldrb r1, [r4, 0x1] ldr r0, _0806585C adds r2, r4, r0 movs r0, 0x4 ldrsb r0, [r2, r0] cmp r1, r0 bne _08065864 ldrb r1, [r4, 0x2] movs r0, 0x5 ldrsb r0, [r2, r0] cmp r1, r0 bne _08065864 ldrb r0, [r4, 0x3] cmp r0, r3 bne _08065864 bl sub_8065760 subs r1, r4, 0x4 ldr r1, [r1] cmp r0, r1 bne _08065860 str r5, [r6] adds r0, r4, 0x4 b _08065866 .align 2, 0 _08065854: .4byte 0x02028dc8 _08065858: .4byte 0x0202e8ac _0806585C: .4byte 0xffffc96c _08065860: bl killram _08065864: adds r0, r5, 0 _08065866: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_806580C thumb_func_start s00_nop s00_nop: @ 806586C movs r0, 0 bx lr thumb_func_end s00_nop thumb_func_start sub_8065870 sub_8065870: @ 8065870 movs r0, 0 bx lr thumb_func_end sub_8065870 thumb_func_start s02_end s02_end: @ 8065874 push {lr} bl script_stop movs r0, 0 pop {r1} bx r1 thumb_func_end s02_end thumb_func_start s24_execute_ASM_2 s24_execute_ASM_2: @ 8065880 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end s24_execute_ASM_2 thumb_func_start sub_8065898 sub_8065898: @ 8065898 push {lr} bl script_read_halfword lsls r0, 16 ldr r1, _080658B4 lsrs r0, 14 adds r0, r1 ldr r0, [r0] bl _call_via_r0 movs r0, 0 pop {r1} bx r1 .align 2, 0 _080658B4: .4byte gSpecials thumb_func_end sub_8065898 thumb_func_start sub_80658B8 sub_80658B8: @ 80658B8 push {r4-r6,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r6, r0, 0 ldr r4, _080658E8 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 14 adds r0, r4 ldr r0, [r0] bl _call_via_r0 strh r0, [r6] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080658E8: .4byte gSpecials thumb_func_end sub_80658B8 thumb_func_start sub_80658EC sub_80658EC: @ 80658EC push {lr} bl script_read_word bl _call_via_r0 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80658EC thumb_func_start sub_80658FC sub_80658FC: @ 80658FC push {lr} bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80658FC thumb_func_start s05_goto s05_goto: @ 8065908 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 adds r0, r4, 0 bl script_jump movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s05_goto thumb_func_start s03_return s03_return: @ 8065920 push {lr} bl script_return movs r0, 0 pop {r1} bx r1 thumb_func_end s03_return thumb_func_start s04_call s04_call: @ 806592C push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 adds r0, r4, 0 bl script_call movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s04_call thumb_func_start s06_if_jump s06_if_jump: @ 8065944 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl script_read_word adds r2, r0, 0 ldr r1, _0806597C lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08065972 adds r0, r5, 0 adds r1, r2, 0 bl script_jump _08065972: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806597C: .4byte gUnknown_083762DC thumb_func_end s06_if_jump thumb_func_start s07_if_call s07_if_call: @ 8065980 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl script_read_word adds r2, r0, 0 ldr r1, _080659B8 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080659AE adds r0, r5, 0 adds r1, r2, 0 bl script_call _080659AE: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080659B8: .4byte gUnknown_083762DC thumb_func_end s07_if_call thumb_func_start sB8_set_virtual_address sB8_set_virtual_address: @ 80659BC push {r4,lr} ldr r4, [r0, 0x8] subs r4, 0x1 bl script_read_word ldr r1, _080659D4 subs r0, r4 str r0, [r1] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080659D4: .4byte 0x0202e8b0 thumb_func_end sB8_set_virtual_address thumb_func_start sB9_virtual_jump sB9_virtual_jump: @ 80659D8 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 ldr r0, _080659F8 ldr r0, [r0] subs r1, r0 adds r0, r4, 0 bl script_jump movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080659F8: .4byte 0x0202e8b0 thumb_func_end sB9_virtual_jump thumb_func_start sBA_virtual_call sBA_virtual_call: @ 80659FC push {r4,lr} adds r4, r0, 0 bl script_read_word adds r1, r0, 0 ldr r0, _08065A1C ldr r0, [r0] subs r1, r0 adds r0, r4, 0 bl script_call movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08065A1C: .4byte 0x0202e8b0 thumb_func_end sBA_virtual_call thumb_func_start sBB_virtual_if_jump sBB_virtual_if_jump: @ 8065A20 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl script_read_word ldr r1, _08065A5C ldr r1, [r1] subs r2, r0, r1 ldr r1, _08065A60 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08065A52 adds r0, r5, 0 adds r1, r2, 0 bl script_jump _08065A52: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08065A5C: .4byte 0x0202e8b0 _08065A60: .4byte gUnknown_083762DC thumb_func_end sBB_virtual_if_jump thumb_func_start sBC_virtual_if_call sBC_virtual_if_call: @ 8065A64 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl script_read_word ldr r1, _08065AA0 ldr r1, [r1] subs r2, r0, r1 ldr r1, _08065AA4 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08065A96 adds r0, r5, 0 adds r1, r2, 0 bl script_call _08065A96: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08065AA0: .4byte 0x0202e8b0 _08065AA4: .4byte gUnknown_083762DC thumb_func_end sBC_virtual_if_call thumb_func_start s08_jumpstd s08_jumpstd: @ 8065AA8 push {lr} adds r2, r0, 0 ldr r0, [r2, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r2, 0x8] lsls r1, 2 ldr r0, _08065AD0 adds r1, r0 ldr r0, _08065AD4 cmp r1, r0 bcs _08065AC8 ldr r1, [r1] adds r0, r2, 0 bl script_jump _08065AC8: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08065AD0: .4byte gStdScripts _08065AD4: .4byte gStdScripts_End thumb_func_end s08_jumpstd thumb_func_start s09_callstd s09_callstd: @ 8065AD8 push {lr} adds r2, r0, 0 ldr r0, [r2, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r2, 0x8] lsls r1, 2 ldr r0, _08065B00 adds r1, r0 ldr r0, _08065B04 cmp r1, r0 bcs _08065AF8 ldr r1, [r1] adds r0, r2, 0 bl script_call _08065AF8: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08065B00: .4byte gStdScripts _08065B04: .4byte gStdScripts_End thumb_func_end s09_callstd thumb_func_start s0A_jumpstd_if s0A_jumpstd_if: @ 8065B08 push {r4,lr} adds r3, r0, 0 ldr r0, [r3, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldr r1, _08065B48 lsls r0, r2, 1 adds r0, r2 ldrb r2, [r3, 0x2] adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08065B40 lsls r0, r4, 2 ldr r1, _08065B4C adds r1, r0, r1 ldr r0, _08065B50 cmp r1, r0 bcs _08065B40 ldr r1, [r1] adds r0, r3, 0 bl script_jump _08065B40: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08065B48: .4byte gUnknown_083762DC _08065B4C: .4byte gStdScripts _08065B50: .4byte gStdScripts_End thumb_func_end s0A_jumpstd_if thumb_func_start s0B_callstd_if s0B_callstd_if: @ 8065B54 push {r4,lr} adds r3, r0, 0 ldr r0, [r3, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldr r1, _08065B94 lsls r0, r2, 1 adds r0, r2 ldrb r2, [r3, 0x2] adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08065B8C lsls r0, r4, 2 ldr r1, _08065B98 adds r1, r0, r1 ldr r0, _08065B9C cmp r1, r0 bcs _08065B8C ldr r1, [r1] adds r0, r3, 0 bl script_call _08065B8C: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08065B94: .4byte gUnknown_083762DC _08065B98: .4byte gStdScripts _08065B9C: .4byte gStdScripts_End thumb_func_end s0B_callstd_if thumb_func_start s0C_restore_execution_after_sCF s0C_restore_execution_after_sCF: @ 8065BA0 push {lr} ldr r1, _08065BB0 ldr r1, [r1] bl script_jump movs r0, 0 pop {r1} bx r1 .align 2, 0 _08065BB0: .4byte 0x0202e8ac thumb_func_end s0C_restore_execution_after_sCF thumb_func_start s0D_endscript_killram s0D_endscript_killram: @ 8065BB4 push {r4,lr} adds r4, r0, 0 bl killram adds r0, r4, 0 bl script_stop movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end s0D_endscript_killram thumb_func_start s0E_set_byte s0E_set_byte: @ 8065BCC push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl sub_8126160 movs r0, 0 pop {r1} bx r1 thumb_func_end s0E_set_byte thumb_func_start s0F_u32_var_to_const s0F_u32_var_to_const: @ 8065BE4 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_word lsls r5, 2 adds r4, 0x64 adds r4, r5 str r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s0F_u32_var_to_const thumb_func_start s12_u32_var_to_ptr s12_u32_var_to_ptr: @ 8065C08 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_word lsls r5, 2 adds r4, 0x64 adds r4, r5 ldrb r0, [r0] str r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s12_u32_var_to_ptr thumb_func_start s11_u8_ptr_to_const s11_u8_ptr_to_const: @ 8065C2C push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_word strb r4, [r0] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s11_u8_ptr_to_const thumb_func_start sub_8065C44 sub_8065C44: @ 8065C44 ldr r1, [r0, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r0, 0x8] lsls r3, 2 adds r2, r0, 0 adds r2, 0x64 adds r2, r3 ldrb r3, [r1] str r3, [r2] adds r1, 0x1 str r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end sub_8065C44 thumb_func_start s13_u8_var_to_ptr s13_u8_var_to_ptr: @ 8065C60 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_word lsls r5, 2 adds r4, 0x64 adds r4, r5 ldr r1, [r4] strb r1, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s13_u8_var_to_ptr thumb_func_start s14_u32_var_to_var s14_u32_var_to_var: @ 8065C84 ldr r1, [r0, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] lsls r3, 2 adds r0, 0x64 adds r3, r0, r3 lsls r2, 2 adds r0, r2 ldr r0, [r0] str r0, [r3] movs r0, 0 bx lr thumb_func_end s14_u32_var_to_var thumb_func_start s15_u8_ptr_to_ptr s15_u8_ptr_to_ptr: @ 8065CA4 push {r4,r5,lr} adds r4, r0, 0 bl script_read_word adds r5, r0, 0 adds r0, r4, 0 bl script_read_word ldrb r0, [r0] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s15_u8_ptr_to_ptr thumb_func_start s16_u16_gvar_to_const s16_u16_gvar_to_const: @ 8065CC0 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 adds r0, r5, 0 bl script_read_halfword strh r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s16_u16_gvar_to_const thumb_func_start s19_u16_gvar_gvar s19_u16_gvar_gvar: @ 8065CE4 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r0, [r0] strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s19_u16_gvar_gvar thumb_func_start s1A_u16_gvar_gvar s1A_u16_gvar_gvar: @ 8065D10 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s1A_u16_gvar_gvar thumb_func_start compare_012 compare_012: @ 8065D3C push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r0, r1 bcs _08065D4E movs r0, 0 b _08065D58 _08065D4E: cmp r0, r1 beq _08065D56 movs r0, 0x2 b _08065D58 _08065D56: movs r0, 0x1 _08065D58: pop {r1} bx r1 thumb_func_end compare_012 thumb_func_start s1B_cmp_u8_var_var s1B_cmp_u8_var_var: @ 8065D5C push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] lsls r0, 2 adds r3, r4, 0 adds r3, 0x64 adds r0, r3, r0 ldrb r0, [r0] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r3, r1 ldrb r1, [r3] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1B_cmp_u8_var_var thumb_func_start s1C_cmp_u8_var_const s1C_cmp_u8_var_const: @ 8065D8C push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r0, 0x64 adds r0, r1 ldrb r0, [r0] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1C_cmp_u8_var_const thumb_func_start s1D_cmp_u8_var_ptr s1D_cmp_u8_var_ptr: @ 8065DB4 push {r4,r5,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r0, 0x64 adds r0, r1 ldrb r5, [r0] adds r2, 0x1 str r2, [r4, 0x8] adds r0, r4, 0 bl script_read_word ldrb r1, [r0] adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s1D_cmp_u8_var_ptr thumb_func_start s1E_cmp_u8_ptr_var s1E_cmp_u8_ptr_var: @ 8065DE0 push {r4,lr} adds r4, r0, 0 bl script_read_word ldrb r0, [r0] ldr r3, [r4, 0x8] ldrb r2, [r3] lsls r2, 2 adds r1, r4, 0 adds r1, 0x64 adds r1, r2 ldrb r1, [r1] adds r3, 0x1 str r3, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1E_cmp_u8_ptr_var thumb_func_start s1F_cmp_u8_ptr_const s1F_cmp_u8_ptr_const: @ 8065E0C push {r4,lr} adds r4, r0, 0 bl script_read_word ldrb r0, [r0] ldr r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1F_cmp_u8_ptr_const thumb_func_start s20_cmp_u8_ptr_ptr s20_cmp_u8_ptr_ptr: @ 8065E2C push {r4,r5,lr} adds r4, r0, 0 bl script_read_word ldrb r5, [r0] adds r0, r4, 0 bl script_read_word ldrb r1, [r0] adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s20_cmp_u8_ptr_ptr thumb_func_start s21_cmp_u16_gvar_const s21_cmp_u16_gvar_const: @ 8065E50 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r5, [r0] adds r0, r4, 0 bl script_read_halfword adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s21_cmp_u16_gvar_const thumb_func_start s22_cmp_u16_gvar_gvar s22_cmp_u16_gvar_gvar: @ 8065E80 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r2, [r5] ldrh r1, [r0] adds r0, r2, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s22_cmp_u16_gvar_gvar thumb_func_start s17_u16_gvar_add_const s17_u16_gvar_add_const: @ 8065EB4 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 adds r0, r5, 0 bl script_read_halfword ldrh r1, [r4] adds r0, r1 strh r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s17_u16_gvar_add_const thumb_func_start sub_8065EDC sub_8065EDC: @ 8065EDC push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldrh r1, [r5] subs r1, r0 strh r1, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8065EDC thumb_func_start s8F_get_random_val s8F_get_random_val: @ 8065F0C push {r4,r5,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r5, _08065F3C bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __umodsi3 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08065F3C: .4byte 0x0202e8dc thumb_func_end s8F_get_random_val thumb_func_start sub_8065F40 sub_8065F40: @ 8065F40 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, _08065F80 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08065F80: .4byte 0x0202e8dc thumb_func_end sub_8065F40 thumb_func_start sub_8065F84 sub_8065F84: @ 8065F84 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, _08065FC4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A9538 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08065FC4: .4byte 0x0202e8dc thumb_func_end sub_8065F84 thumb_func_start sub_8065FC8 sub_8065FC8: @ 8065FC8 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, _08066008 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A9344 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066008: .4byte 0x0202e8dc thumb_func_end sub_8065FC8 thumb_func_start sub_806600C sub_806600C: @ 806600C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, _0806604C lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80A92D4 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806604C: .4byte 0x0202e8dc thumb_func_end sub_806600C thumb_func_start s48_get_item_type s48_get_item_type: @ 8066050 push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r4, _08066078 bl sub_80A9670 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08066078: .4byte 0x0202e8dc thumb_func_end s48_get_item_type thumb_func_start sub_806607C sub_806607C: @ 806607C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r5, _080660BC adds r0, r4, 0 bl sub_80A9760 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080660BC: .4byte 0x0202e8dc thumb_func_end sub_806607C thumb_func_start sub_80660C0 sub_80660C0: @ 80660C0 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r5, _08066100 adds r0, r4, 0 bl sub_80A9718 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066100: .4byte 0x0202e8dc thumb_func_end sub_80660C0 thumb_func_start sub_8066104 sub_8066104: @ 8066104 push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, _0806612C lsls r0, 24 lsrs r0, 24 bl IsThereStorageSpaceForDecoration lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0806612C: .4byte 0x0202e8dc thumb_func_end sub_8066104 thumb_func_start sub_8066130 sub_8066130: @ 8066130 push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, _08066158 lsls r0, 24 lsrs r0, 24 bl sub_81340A8 lsls r0, 24 asrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08066158: .4byte 0x0202e8dc thumb_func_end sub_8066130 thumb_func_start sub_806615C sub_806615C: @ 806615C push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, _08066184 lsls r0, 24 lsrs r0, 24 bl sub_8134074 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08066184: .4byte 0x0202e8dc thumb_func_end sub_806615C thumb_func_start sub_8066188 sub_8066188: @ 8066188 push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, _080661B0 lsls r0, 24 lsrs r0, 24 bl sub_8133FE4 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080661B0: .4byte 0x0202e8dc thumb_func_end sub_8066188 thumb_func_start s29_flag_set s29_flag_set: @ 80661B4 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl FlagSet movs r0, 0 pop {r1} bx r1 thumb_func_end s29_flag_set thumb_func_start s2A_flag_clear s2A_flag_clear: @ 80661C8 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl FlagReset movs r0, 0 pop {r1} bx r1 thumb_func_end s2A_flag_clear thumb_func_start s2B_flag_check s2B_flag_check: @ 80661DC push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl FlagGet strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s2B_flag_check thumb_func_start sC3_unknown sC3_unknown: @ 80661F8 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl sav12_xor_increment movs r0, 0 pop {r1} bx r1 thumb_func_end sC3_unknown thumb_func_start s9A_unknown s9A_unknown: @ 8066210 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl sub_8081594 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end s9A_unknown thumb_func_start sub_806622C sub_806622C: @ 806622C push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_8053CE4 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_806622C thumb_func_start sub_8066248 sub_8066248: @ 8066248 push {lr} ldr r0, _0806625C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08066260 movs r0, 0 b _08066262 .align 2, 0 _0806625C: .4byte 0x0202f388 _08066260: movs r0, 0x1 _08066262: pop {r1} bx r1 thumb_func_end sub_8066248 thumb_func_start s97_screen_special_effect s97_screen_special_effect: @ 8066268 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x8] ldrb r0, [r1] adds r1, 0x1 str r1, [r4, 0x8] movs r1, 0 bl fade_screen ldr r1, _0806628C adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0806628C: .4byte sub_8066248 thumb_func_end s97_screen_special_effect thumb_func_start sub_8066290 sub_8066290: @ 8066290 push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl fade_screen ldr r1, _080662B8 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _080662B8: .4byte sub_8066248 thumb_func_end sub_8066290 thumb_func_start s28_pause_asm s28_pause_asm: @ 80662BC push {lr} ldr r1, _080662D0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _080662D4 movs r0, 0 b _080662D6 .align 2, 0 _080662D0: .4byte 0x0202e8b4 _080662D4: movs r0, 0x1 _080662D6: pop {r1} bx r1 thumb_func_end s28_pause_asm thumb_func_start s28_pause s28_pause: @ 80662DC push {r4,lr} adds r4, r0, 0 bl script_read_halfword ldr r1, _080662F8 strh r0, [r1] ldr r1, _080662FC adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _080662F8: .4byte 0x0202e8b4 _080662FC: .4byte s28_pause_asm thumb_func_end s28_pause thumb_func_start s2C_unknown s2C_unknown: @ 8066300 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RtcInitLocalTimeOffset movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s2C_unknown thumb_func_start s2D_unknown s2D_unknown: @ 8066338 push {lr} bl InTrainerHill movs r0, 0 pop {r1} bx r1 thumb_func_end s2D_unknown thumb_func_start s2E_unknown s2E_unknown: @ 8066344 push {lr} bl RtcCalcLocalTime ldr r2, _0806636C ldr r1, _08066370 movs r0, 0x2 ldrsb r0, [r1, r0] strh r0, [r2] ldr r2, _08066374 movs r0, 0x3 ldrsb r0, [r1, r0] strh r0, [r2] ldr r2, _08066378 movs r0, 0x4 ldrsb r0, [r1, r0] strh r0, [r2] movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806636C: .4byte 0x0202e8c4 _08066370: .4byte 0x03004038 _08066374: .4byte 0x0202e8c6 _08066378: .4byte 0x0202e8c8 thumb_func_end s2E_unknown thumb_func_start sA4_set_weather_data sA4_set_weather_data: @ 806637C push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_80806B4 movs r0, 0 pop {r1} bx r1 thumb_func_end sA4_set_weather_data thumb_func_start sA3_set_standard_weather_data sA3_set_standard_weather_data: @ 8066398 push {lr} bl sub_80806E4 movs r0, 0 pop {r1} bx r1 thumb_func_end sA3_set_standard_weather_data thumb_func_start sub_80663A4 sub_80663A4: @ 80663A4 push {lr} bl sub_808073C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80663A4 thumb_func_start sA6_activate_per_step_callback_eg_ash sA6_activate_per_step_callback_eg_ash: @ 80663B0 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl activate_per_step_callback movs r0, 0 pop {r1} bx r1 thumb_func_end sA6_activate_per_step_callback_eg_ash thumb_func_start sub_80663C8 sub_80663C8: @ 80663C8 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_8053D14 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80663C8 thumb_func_start s39_warp_sfx s39_warp_sfx: @ 80663E4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_8080E88 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s39_warp_sfx thumb_func_start s3A_warp_new_music s3A_warp_new_music: @ 806646C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sp13E_warp_to_last_warp bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3A_warp_new_music thumb_func_start s3B_warp_keep_music s3B_warp_keep_music: @ 80664F4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_8080EF0 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3B_warp_keep_music thumb_func_start sub_806657C sub_806657C: @ 806657C push {r4-r6,lr} sub sp, 0x8 ldr r1, [r0, 0x8] ldrb r6, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] mov r4, sp adds r4, 0x6 add r0, sp, 0x4 adds r1, r4, 0 bl PlayerGetDestCoords cmp r6, 0xFF bne _080665BA cmp r5, 0xFF bne _080665BA add r0, sp, 0x4 ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 asrs r0, 16 ldrh r1, [r4] subs r1, 0x7 lsls r1, 16 asrs r1, 16 bl sub_8053720 b _080665DE _080665BA: lsls r0, r6, 24 asrs r0, 24 lsls r1, r5, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 add r3, sp, 0x4 ldrb r3, [r3] subs r3, 0x7 lsls r3, 24 asrs r3, 24 ldrb r4, [r4] subs r4, 0x7 lsls r4, 24 asrs r4, 24 str r4, [sp] bl warp1_set _080665DE: bl sp13F_fall_to_last_warp bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_806657C thumb_func_start s3D_warp_v4 s3D_warp_v4: @ 80665F0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_8080F68 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3D_warp_v4 thumb_func_start s3E_set_new_map s3E_set_new_map: @ 8066678 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3E_set_new_map thumb_func_start s3F_set_new_map_DMA s3F_set_new_map_DMA: @ 80666F8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 str r4, [sp] lsls r0, 24 asrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r1, r9 mov r2, r8 adds r3, r6, 0 bl saved_warp2_set_2 movs r0, 0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3F_set_new_map_DMA thumb_func_start sub_806677C sub_806677C: @ 806677C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_8053690 movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_806677C thumb_func_start sub_80667FC sub_80667FC: @ 80667FC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_80536E4 movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80667FC thumb_func_start sC4_unknown sC4_unknown: @ 806687C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_805363C movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sC4_unknown thumb_func_start sub_80668FC sub_80668FC: @ 80668FC push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldr r2, _08066930 ldrh r1, [r2] strh r1, [r5] ldrh r1, [r2, 0x2] strh r1, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066930: .4byte 0x02025734 thumb_func_end sub_80668FC thumb_func_start s43_get_player_party_count s43_get_player_party_count: @ 8066934 push {r4,lr} ldr r4, _0806694C bl calc_player_party_count lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0806694C: .4byte 0x0202e8dc thumb_func_end s43_get_player_party_count thumb_func_start s2F_music_play s2F_music_play: @ 8066950 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl audio_play movs r0, 0 pop {r1} bx r1 thumb_func_end s2F_music_play thumb_func_start s30_music_check_asm s30_music_check_asm: @ 8066964 push {lr} bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 beq _08066974 movs r0, 0 b _08066976 _08066974: movs r0, 0x1 _08066976: pop {r1} bx r1 thumb_func_end s30_music_check_asm thumb_func_start sub_806697C sub_806697C: @ 806697C push {lr} ldr r1, _0806698C bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _0806698C: .4byte s30_music_check_asm thumb_func_end sub_806697C thumb_func_start s31_fanfare_play s31_fanfare_play: @ 8066990 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl fanfare_play movs r0, 0 pop {r1} bx r1 thumb_func_end s31_fanfare_play thumb_func_start s32_fanfare_wait_asm s32_fanfare_wait_asm: @ 80669A4 push {lr} bl task_is_not_running_overworld_fanfare lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end s32_fanfare_wait_asm thumb_func_start sub_80669B4 sub_80669B4: @ 80669B4 push {lr} ldr r1, _080669C4 bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080669C4: .4byte s32_fanfare_wait_asm thumb_func_end sub_80669B4 thumb_func_start s33_play_music s33_play_music: @ 80669C8 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r2, r0, 16 adds r5, r2, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0x1 bne _080669E8 adds r0, r2, 0 bl sav1_set_battle_music_maybe _080669E8: adds r0, r5, 0 bl current_map_music_set movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s33_play_music thumb_func_start s34_unknown s34_unknown: @ 80669F8 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl sav1_set_battle_music_maybe movs r0, 0 pop {r1} bx r1 thumb_func_end s34_unknown thumb_func_start s35_fade_to_default s35_fade_to_default: @ 8066A0C push {lr} bl sub_8053F84 movs r0, 0 pop {r1} bx r1 thumb_func_end s35_fade_to_default thumb_func_start s36_fade_to_music s36_fade_to_music: @ 8066A18 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl sub_8053FB0 movs r0, 0 pop {r1} bx r1 thumb_func_end s36_fade_to_music thumb_func_start s37_fadeout s37_fadeout: @ 8066A2C push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 beq _08066A46 lsls r0, r1, 26 lsrs r0, 24 bl sub_8074FB8 b _08066A4C _08066A46: movs r0, 0x4 bl sub_8074FB8 _08066A4C: ldr r1, _08066A5C adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08066A5C: .4byte sub_8074FD0 thumb_func_end s37_fadeout thumb_func_start s38_fadein s38_fadein: @ 8066A60 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] cmp r2, 0 beq _08066A78 lsls r0, r2, 26 lsrs r0, 24 bl sub_8074FF8 b _08066A7E _08066A78: movs r0, 0x4 bl sub_8074FF8 _08066A7E: movs r0, 0 pop {r1} bx r1 thumb_func_end s38_fadein thumb_func_start s4F_execute_movement s4F_execute_movement: @ 8066A84 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_word adds r3, r0, 0 lsls r0, r4, 24 lsrs r0, 24 ldr r2, _08066ABC ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl exec_movement ldr r0, _08066AC0 strh r4, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066ABC: .4byte 0x02025734 _08066AC0: .4byte 0x0202e8b6 thumb_func_end s4F_execute_movement thumb_func_start s50_execute_movement_remote s50_execute_movement_remote: @ 8066AC4 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_word adds r3, r0, 0 ldr r0, [r5, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r5, 0x8] lsls r0, r4, 24 lsrs r0, 24 bl exec_movement ldr r0, _08066B04 strh r4, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08066B04: .4byte 0x0202e8b6 thumb_func_end s50_execute_movement_remote thumb_func_start s51a_0806B288 s51a_0806B288: @ 8066B08 push {lr} ldr r0, _08066B24 ldrb r0, [r0] ldr r1, _08066B28 ldrb r1, [r1] ldr r2, _08066B2C ldrb r2, [r2] bl sub_80A212C lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08066B24: .4byte 0x0202e8b6 _08066B28: .4byte 0x0202e8ba _08066B2C: .4byte 0x0202e8b8 thumb_func_end s51a_0806B288 thumb_func_start s51_waitmove s51_waitmove: @ 8066B30 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08066B4C ldr r0, _08066B70 strh r1, [r0] _08066B4C: ldr r1, _08066B74 ldr r2, _08066B78 movs r0, 0x4 ldrsb r0, [r2, r0] strh r0, [r1] ldr r1, _08066B7C movs r0, 0x5 ldrsb r0, [r2, r0] strh r0, [r1] ldr r1, _08066B80 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08066B70: .4byte 0x0202e8b6 _08066B74: .4byte 0x0202e8b8 _08066B78: .4byte 0x02025734 _08066B7C: .4byte 0x0202e8ba _08066B80: .4byte s51a_0806B288 thumb_func_end s51_waitmove thumb_func_start s52_waitmove_remote s52_waitmove_remote: @ 8066B84 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _08066BA0 ldr r0, _08066BC8 strh r1, [r0] _08066BA0: ldr r0, [r4, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] ldr r0, _08066BCC strh r2, [r0] ldr r0, _08066BD0 strh r1, [r0] ldr r1, _08066BD4 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08066BC8: .4byte 0x0202e8b6 _08066BCC: .4byte 0x0202e8b8 _08066BD0: .4byte 0x0202e8ba _08066BD4: .4byte s51a_0806B288 thumb_func_end s52_waitmove_remote thumb_func_start sub_8066BD8 sub_8066BD8: @ 8066BD8 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r2, _08066BFC ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl RemoveFieldObjectByLocalIdAndMap movs r0, 0 pop {r1} bx r1 .align 2, 0 _08066BFC: .4byte 0x02025734 thumb_func_end sub_8066BD8 thumb_func_start s54_hide_sprite_set_coords s54_hide_sprite_set_coords: @ 8066C00 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl RemoveFieldObjectByLocalIdAndMap movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s54_hide_sprite_set_coords thumb_func_start sub_8066C30 sub_8066C30: @ 8066C30 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r2, _08066C54 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl show_sprite movs r0, 0 pop {r1} bx r1 .align 2, 0 _08066C54: .4byte 0x02025734 thumb_func_end sub_8066C30 thumb_func_start s56_show_sprite_set_coords s56_show_sprite_set_coords: @ 8066C58 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl show_sprite movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s56_show_sprite_set_coords thumb_func_start s57_move_sprites s57_move_sprites: @ 8066C88 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r5, 24 lsrs r5, 24 ldr r2, _08066CE8 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] lsls r4, 16 asrs r4, 16 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r5, 0 adds r3, r4, 0 bl sub_805C0F8 movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08066CE8: .4byte 0x02025734 thumb_func_end s57_move_sprites thumb_func_start s63_new_sprite_location_permanent s63_new_sprite_location_permanent: @ 8066CEC push {r4-r6,lr} adds r6, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r2, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl update_saveblock1_field_object_coords movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end s63_new_sprite_location_permanent thumb_func_start s64_set_sprite_top_left_corner s64_set_sprite_top_left_corner: @ 8066D44 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r2, _08066D68 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_805C78C movs r0, 0 pop {r1} bx r1 .align 2, 0 _08066D68: .4byte 0x02025734 thumb_func_end s64_set_sprite_top_left_corner thumb_func_start s58_npc_f1_clear_x20 s58_npc_f1_clear_x20: @ 8066D6C push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 movs r3, 0 bl npc_by_local_id_and_map_set_field_1_bit_x20 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s58_npc_f1_clear_x20 thumb_func_start s59_npc_f1_set_x20 s59_npc_f1_set_x20: @ 8066D9C push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 movs r3, 0x1 bl npc_by_local_id_and_map_set_field_1_bit_x20 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s59_npc_f1_set_x20 thumb_func_start sA8_unknown sA8_unknown: @ 8066DCC push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r5, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r5, 0x8] ldrb r1, [r3] adds r4, r3, 0x1 str r4, [r5, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r5, 0x8] lsls r0, 24 lsrs r0, 24 adds r3, 0x53 lsls r3, 24 lsrs r3, 24 bl sub_805BCF0 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sA8_unknown thumb_func_start sA9_unknown sA9_unknown: @ 8066E08 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_805BD48 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sA9_unknown thumb_func_start s5A_face_player s5A_face_player: @ 8066E38 push {r4,lr} ldr r2, _08066E68 ldr r0, _08066E6C ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r4, r0, r2 ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _08066E60 bl player_get_direction_lower_nybble adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectFaceOppositeDirection _08066E60: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08066E68: .4byte 0x030048a0 _08066E6C: .4byte 0x03004ae0 thumb_func_end s5A_face_player thumb_func_start s5B_npc_set_direction s5B_npc_set_direction: @ 8066E70 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, [r4, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r4, 0x8] lsls r0, 24 lsrs r0, 24 ldr r2, _08066EA0 ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl FieldObjectTurnByLocalIdAndMap movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08066EA0: .4byte 0x02025734 thumb_func_end s5B_npc_set_direction thumb_func_start s65_set_sprite_behaviour s65_set_sprite_behaviour: @ 8066EA4 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl update_saveblock1_field_object_movement_behavior movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s65_set_sprite_behaviour thumb_func_start sAA_create_new_sprite sAA_create_new_sprite: @ 8066ECC push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r3, r0, 0 ldr r0, [r5, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r5, 0x8] lsls r4, 16 asrs r4, 16 lsls r3, 16 asrs r3, 16 str r2, [sp] str r1, [sp, 0x4] mov r0, r8 adds r1, r6, 0 adds r2, r4, 0 bl sub_805B410 movs r0, 0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sAA_create_new_sprite thumb_func_start sAB_unknown sAB_unknown: @ 8066F3C push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl sub_8064990 movs r0, 0 pop {r1} bx r1 thumb_func_end sAB_unknown thumb_func_start sub_8066F58 sub_8066F58: @ 8066F58 push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active cmp r0, 0 bne _08066F78 bl sub_8064D20 ldr r1, _08066F74 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 b _08066F7A .align 2, 0 _08066F74: .4byte sub_8064CFC _08066F78: movs r0, 0 _08066F7A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8066F58 thumb_func_start sub_8066F80 sub_8066F80: @ 8066F80 push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active cmp r0, 0 beq _08066F90 movs r0, 0 b _08066FCE _08066F90: ldr r2, _08066FB4 ldr r0, _08066FB8 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _08066FC0 bl sub_8064DD8 ldr r1, _08066FBC adds r0, r4, 0 bl script_setup_asm_script b _08066FCC .align 2, 0 _08066FB4: .4byte 0x030048a0 _08066FB8: .4byte 0x03004ae0 _08066FBC: .4byte sub_8064DB4 _08066FC0: bl sub_8064D20 ldr r1, _08066FD4 adds r0, r4, 0 bl script_setup_asm_script _08066FCC: movs r0, 0x1 _08066FCE: pop {r4} pop {r1} bx r1 .align 2, 0 _08066FD4: .4byte sub_8064CFC thumb_func_end sub_8066F80 thumb_func_start s6B_release s6B_release: @ 8066FD8 push {lr} bl textbox_close movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, _0806700C adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80A2178 bl sub_806451C movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806700C: .4byte 0x030048a0 thumb_func_end s6B_release thumb_func_start s6C_release_2 s6C_release_2: @ 8067010 push {r4,lr} bl textbox_close ldr r4, _08067060 ldr r0, _08067064 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _08067032 adds r0, r1, 0 bl FieldObjectClearAnimIfSpecialAnimFinished _08067032: movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80A2178 bl sub_806451C movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067060: .4byte 0x030048a0 _08067064: .4byte 0x03004ae0 thumb_func_end s6C_release_2 thumb_func_start s67_execute_box s67_execute_box: @ 8067068 push {r4,lr} adds r4, r0, 0 bl script_read_word cmp r0, 0 bne _08067076 ldr r0, [r4, 0x64] _08067076: bl box_related_two__2 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s67_execute_box thumb_func_start s9B_unknown s9B_unknown: @ 8067084 push {r4,lr} adds r4, r0, 0 bl script_read_word cmp r0, 0 bne _08067092 ldr r0, [r4, 0x64] _08067092: bl box_related_two__3 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s9B_unknown thumb_func_start sub_80670A0 sub_80670A0: @ 80670A0 push {lr} ldr r1, _080670B0 bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080670B0: .4byte sub_8064C84 thumb_func_end sub_80670A0 thumb_func_start s68_close_box s68_close_box: @ 80670B4 push {lr} bl textbox_close movs r0, 0 pop {r1} bx r1 thumb_func_end s68_close_box thumb_func_start sub_80670C0 sub_80670C0: @ 80670C0 push {lr} ldr r0, _080670DC ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080670E0 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080670E0 movs r0, 0 b _080670E2 .align 2, 0 _080670DC: .4byte 0x03001770 _080670E0: movs r0, 0x1 _080670E2: pop {r1} bx r1 thumb_func_end sub_80670C0 thumb_func_start sub_80670E8 sub_80670E8: @ 80670E8 push {lr} ldr r1, _080670F8 bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _080670F8: .4byte sub_80670C0 thumb_func_end sub_80670E8 thumb_func_start s6E_yes_no s6E_yes_no: @ 80670FC push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl yes_no_box lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806711E movs r0, 0 b _08067124 _0806711E: bl sub_80655F0 movs r0, 0x1 _08067124: pop {r1} bx r1 thumb_func_end s6E_yes_no thumb_func_start sub_8067128 sub_8067128: @ 8067128 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r4, r3, 0x1 str r4, [r0, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r0, 0x8] adds r0, r5, 0 bl sub_80B5054 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08067156 movs r0, 0 b _0806715C _08067156: bl sub_80655F0 movs r0, 0x1 _0806715C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8067128 thumb_func_start sub_8067164 sub_8067164: @ 8067164 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r2, [r0, 0x8] ldrb r1, [r2] mov r8, r1 adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r5, r3, 0x1 str r5, [r0, 0x8] ldrb r6, [r3, 0x1] adds r4, r5, 0x1 str r4, [r0, 0x8] ldrb r3, [r5, 0x1] adds r4, 0x1 str r4, [r0, 0x8] str r6, [sp] mov r0, r8 bl sub_80B50B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080671A2 movs r0, 0 b _080671A8 _080671A2: bl sub_80655F0 movs r0, 0x1 _080671A8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8067164 thumb_func_start sub_80671B4 sub_80671B4: @ 80671B4 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r4, r3, 0x1 str r4, [r0, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r0, 0x8] adds r0, r5, 0 bl DrawDefaultWindow movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80671B4 thumb_func_start sub_80671E0 sub_80671E0: @ 80671E0 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r2, [r0, 0x8] ldrb r1, [r2] mov r8, r1 adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r5, r3, 0x1 str r5, [r0, 0x8] ldrb r6, [r3, 0x1] adds r4, r5, 0x1 str r4, [r0, 0x8] ldrb r3, [r5, 0x1] adds r4, 0x1 str r4, [r0, 0x8] str r6, [sp] mov r0, r8 bl sub_80B5578 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806721E movs r0, 0 b _08067224 _0806721E: bl sub_80655F0 movs r0, 0x1 _08067224: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80671E0 thumb_func_start sub_8067230 sub_8067230: @ 8067230 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r4, r3, 0x1 str r4, [r0, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r0, 0x8] adds r0, r5, 0 bl Reset movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8067230 thumb_func_start s6F_multichoice s6F_multichoice: @ 806725C push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r4, r3, 0x1 str r4, [r0, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r0, 0x8] adds r0, r5, 0 bl Multichoice lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806728A movs r0, 0 b _08067290 _0806728A: bl sub_80655F0 movs r0, 0x1 _08067290: pop {r4,r5} pop {r1} bx r1 thumb_func_end s6F_multichoice thumb_func_start sub_8067298 sub_8067298: @ 8067298 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] bl sub_80B58C4 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8067298 thumb_func_start s76_close_picture_box s76_close_picture_box: @ 80672C8 push {r4,lr} adds r4, r0, 0 bl picbox_close adds r1, r0, 0 cmp r1, 0 beq _080672E0 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 b _080672E2 _080672E0: movs r0, 0 _080672E2: pop {r4} pop {r1} bx r1 thumb_func_end s76_close_picture_box thumb_func_start sub_80672E8 sub_80672E8: @ 80672E8 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] cmp r2, 0 beq _080672FC adds r0, r2, 0 bl sub_8106630 _080672FC: bl sub_80C4F10 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80672E8 thumb_func_start sub_806730C sub_806730C: @ 806730C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} bl script_read_word adds r1, r0, 0 ldrb r5, [r1] ldrb r6, [r1, 0x1] ldrb r0, [r1, 0x2] mov r8, r0 ldrb r0, [r1, 0x3] mov r9, r0 ldrb r0, [r1, 0x4] mov r10, r0 ldrb r7, [r1, 0x5] ldr r4, _08067360 adds r1, 0x6 adds r0, r4, 0 bl StringBraille adds r0, r5, 0 adds r1, r6, 0 mov r2, r8 mov r3, r9 bl DrawDefaultWindow adds r0, r4, 0 mov r1, r10 adds r2, r7, 0 bl Print movs r0, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08067360: .4byte 0x020234cc thumb_func_end sub_806730C thumb_func_start sBD_virtual_message sBD_virtual_message: @ 8067364 push {lr} bl script_read_word ldr r1, _0806737C ldr r1, [r1] subs r0, r1 bl box_related_two__2 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0806737C: .4byte 0x0202e8b0 thumb_func_end sBD_virtual_message thumb_func_start s7D_load_pokename s7D_load_pokename: @ 8067380 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, _080673B8 lsls r4, 2 adds r4, r1 ldr r2, [r4] movs r1, 0xB muls r1, r0 ldr r0, _080673BC adds r1, r0 adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080673B8: .4byte gUnknown_083762F0 _080673BC: .4byte gSpeciesNames thumb_func_end s7D_load_pokename thumb_func_start s7E_load_first_pokenames s7E_load_first_pokenames: @ 80673C0 push {r4,lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldr r0, _08067400 lsls r2, 2 adds r2, r0 ldr r4, [r2] bl sub_810F87C lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _08067404 adds r0, r1 movs r1, 0xB movs r2, 0 bl PokemonGetField movs r1, 0xB muls r1, r0 ldr r0, _08067408 adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067400: .4byte gUnknown_083762F0 _08067404: .4byte 0x03004360 _08067408: .4byte gSpeciesNames thumb_func_end s7E_load_first_pokenames thumb_func_start s7F_load_pokename_team s7F_load_pokename_team: @ 806740C push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x64 muls r0, r1 ldr r1, _0806744C adds r0, r1 ldr r1, _08067450 lsls r4, 2 adds r4, r1 ldr r4, [r4] movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField adds r0, r4, 0 bl StringGetEnd10 movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0806744C: .4byte 0x03004360 _08067450: .4byte gUnknown_083762F0 thumb_func_end s7F_load_pokename_team thumb_func_start s80_load_item_name s80_load_item_name: @ 8067454 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, _08067484 lsls r4, 2 adds r4, r1 ldr r1, [r4] bl itemid_copy_name movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067484: .4byte gUnknown_083762F0 thumb_func_end s80_load_item_name thumb_func_start sub_8067488 sub_8067488: @ 8067488 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 ldr r0, _080674BC lsls r4, 2 adds r4, r0 ldr r0, [r4] lsrs r1, 11 ldr r2, _080674C0 adds r1, r2 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080674BC: .4byte gUnknown_083762F0 _080674C0: .4byte gDecorations + 0x1 thumb_func_end sub_8067488 thumb_func_start s82_load_item_name s82_load_item_name: @ 80674C4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, _080674FC lsls r4, 2 adds r4, r1 ldr r2, [r4] movs r1, 0xD muls r1, r0 ldr r0, _08067500 adds r1, r0 adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080674FC: .4byte gUnknown_083762F0 _08067500: .4byte gMoveNames thumb_func_end s82_load_item_name thumb_func_start s83_load_textvar_var s83_load_textvar_var: @ 8067504 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_80BF0B8 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r0, _08067544 lsls r5, 2 adds r5, r0 ldr r0, [r5] adds r1, r4, 0 movs r2, 0 bl ConvertIntToDecimalStringN movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08067544: .4byte gUnknown_083762F0 thumb_func_end s83_load_textvar_var thumb_func_start s84_load_textvar_std_expression s84_load_textvar_std_expression: @ 8067548 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 ldr r1, _08067580 lsls r4, 2 adds r4, r1 ldr r2, [r4] ldr r1, _08067584 lsrs r0, 14 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067580: .4byte gUnknown_083762F0 _08067584: .4byte gUnknown_083CE048 thumb_func_end s84_load_textvar_std_expression thumb_func_start s85_load_textvar_pointer s85_load_textvar_pointer: @ 8067588 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_word adds r1, r0, 0 ldr r0, _080675AC lsls r4, 2 adds r4, r0 ldr r0, [r4] bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080675AC: .4byte gUnknown_083762F0 thumb_func_end s85_load_textvar_pointer thumb_func_start sBE_virtual_load_text sBE_virtual_load_text: @ 80675B0 push {lr} bl script_read_word adds r1, r0, 0 ldr r0, _080675CC ldr r0, [r0] subs r1, r0 ldr r0, _080675D0 bl StringExpandPlaceholders movs r0, 0 pop {r1} bx r1 .align 2, 0 _080675CC: .4byte 0x0202e8b0 _080675D0: .4byte 0x020234cc thumb_func_end sBE_virtual_load_text thumb_func_start sBF_virtual_load_textbuffer sBF_virtual_load_textbuffer: @ 80675D4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_word adds r1, r0, 0 ldr r0, _08067600 ldr r0, [r0] subs r1, r0 ldr r0, _08067604 lsls r4, 2 adds r4, r0 ldr r0, [r4] bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067600: .4byte 0x0202e8b0 _08067604: .4byte gUnknown_083762F0 thumb_func_end sBF_virtual_load_textbuffer thumb_func_start s79_give_pokemon s79_give_pokemon: @ 8067608 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, [r4, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 bl script_read_word mov r8, r0 adds r0, r4, 0 bl script_read_word ldr r1, [r4, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r4, 0x8] ldr r4, _08067684 str r0, [sp] str r2, [sp, 0x4] adds r0, r6, 0 mov r1, r9 adds r2, r5, 0 mov r3, r8 bl sub_80C5374 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08067684: .4byte 0x0202e8dc thumb_func_end s79_give_pokemon thumb_func_start s7A_create_egg s7A_create_egg: @ 8067688 push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r4, _080676B0 bl sub_80C53F8 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080676B0: .4byte 0x0202e8dc thumb_func_end s7A_create_egg thumb_func_start s7B_change_pokedata_AP s7B_change_pokedata_AP: @ 80676B4 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 adds r2, r4, 0 bl sub_80C5530 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s7B_change_pokedata_AP thumb_func_start sub_80676E0 sub_80676E0: @ 80676E0 push {r4-r7,lr} bl script_read_halfword lsls r0, 16 lsrs r7, r0, 16 ldr r1, _080676F4 movs r0, 0x6 strh r0, [r1] movs r6, 0 b _0806772E .align 2, 0 _080676F4: .4byte 0x0202e8dc _080676F8: adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _08067728 adds r0, r4, 0 adds r1, r7, 0 bl pokemon_has_move lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067728 ldr r0, _08067720 strh r6, [r0] ldr r0, _08067724 strh r5, [r0] b _0806774E .align 2, 0 _08067720: .4byte 0x0202e8dc _08067724: .4byte 0x0202e8cc _08067728: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0806772E: cmp r6, 0x5 bhi _0806774E movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, _08067758 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080676F8 _0806774E: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08067758: .4byte 0x03004360 thumb_func_end sub_80676E0 thumb_func_start sub_806775C sub_806775C: @ 806775C push {r4,lr} adds r4, r0, 0 bl script_read_word adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _0806777A ldr r0, _08067784 adds r1, r2, 0 bl sub_80B79B8 _0806777A: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067784: .4byte 0x02025bc4 thumb_func_end sub_806775C thumb_func_start sub_8067788 sub_8067788: @ 8067788 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _080677A6 ldr r0, _080677B0 adds r1, r2, 0 bl sub_80B79E0 _080677A6: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080677B0: .4byte 0x02025bc4 thumb_func_end sub_8067788 thumb_func_start s92_check_money s92_check_money: @ 80677B4 push {r4,lr} adds r4, r0, 0 bl script_read_word adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _080677E2 ldr r4, _080677EC ldr r0, _080677F0 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] adds r1, r2, 0 bl IsEnoughMoney lsls r0, 24 lsrs r0, 24 strh r0, [r4] _080677E2: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _080677EC: .4byte 0x0202e8dc _080677F0: .4byte 0x02025734 thumb_func_end s92_check_money thumb_func_start sub_80677F4 sub_80677F4: @ 80677F4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r3, [r1] adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r1, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r1, 0 bne _08067820 ldr r0, _08067828 movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] adds r1, r4, 0 adds r2, r3, 0 bl sub_80B7C14 _08067820: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067828: .4byte 0x02025734 thumb_func_end sub_80677F4 thumb_func_start sub_806782C sub_806782C: @ 806782C push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl RemoveMoneyLabelObject movs r0, 0 pop {r1} bx r1 thumb_func_end sub_806782C thumb_func_start sub_8067848 sub_8067848: @ 8067848 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r3, [r1] adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r1, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r1, 0 bne _08067874 ldr r0, _0806787C movs r1, 0x92 lsls r1, 3 adds r0, r1 ldr r0, [r0] adds r1, r4, 0 adds r2, r3, 0 bl sub_80B7BEC _08067874: movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _0806787C: .4byte 0x02025734 thumb_func_end sub_8067848 thumb_func_start sub_8067880 sub_8067880: @ 8067880 push {lr} ldr r3, [r0, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r0, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r0, 0x8] ldr r0, _080678A4 ldr r3, _080678A8 adds r0, r3 ldrh r0, [r0] bl sub_811A72C movs r0, 0 pop {r1} bx r1 .align 2, 0 _080678A4: .4byte 0x02025734 _080678A8: .4byte 0x00000494 thumb_func_end sub_8067880 thumb_func_start sub_80678AC sub_80678AC: @ 80678AC push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl sub_811A770 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_80678AC thumb_func_start sub_80678C8 sub_80678C8: @ 80678C8 push {lr} ldr r3, [r0, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r0, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r0, 0x8] ldr r0, _080678EC ldr r3, _080678F0 adds r0, r3 ldrh r0, [r0] bl sub_811A704 movs r0, 0 pop {r1} bx r1 .align 2, 0 _080678EC: .4byte 0x02025734 _080678F0: .4byte 0x00000494 thumb_func_end sub_80678C8 thumb_func_start s5C_trainer_battle_configure_and_start s5C_trainer_battle_configure_and_start: @ 80678F4 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] bl sub_80823C8 str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s5C_trainer_battle_configure_and_start thumb_func_start sub_8067908 sub_8067908: @ 8067908 push {lr} bl sub_80825E4 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8067908 thumb_func_start sub_8067914 sub_8067914: @ 8067914 push {r4,lr} adds r4, r0, 0 bl sub_80826E8 str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8067914 thumb_func_start sub_8067928 sub_8067928: @ 8067928 push {r4,lr} adds r4, r0, 0 bl sub_8082700 str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8067928 thumb_func_start s60_check_trainer_flag s60_check_trainer_flag: @ 806793C push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_check strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s60_check_trainer_flag thumb_func_start s61_set_trainer_flag s61_set_trainer_flag: @ 8067960 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_set movs r0, 0 pop {r1} bx r1 thumb_func_end s61_set_trainer_flag thumb_func_start s62_unset_trainer_flag s62_unset_trainer_flag: @ 806797C push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_clear movs r0, 0 pop {r1} bx r1 thumb_func_end s62_unset_trainer_flag thumb_func_start sB6_load_battle sB6_load_battle: @ 8067998 push {r4-r6,lr} adds r4, r0, 0 bl script_read_halfword adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r0, [r4, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl script_read_halfword adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r6, 0 bl sub_80C54D0 movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sB6_load_battle thumb_func_start sub_80679CC sub_80679CC: @ 80679CC push {lr} bl sub_8081B3C bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_80679CC thumb_func_start s86_pokemart s86_pokemart: @ 80679DC push {lr} bl script_read_word bl CreatePokemartMenu bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end s86_pokemart thumb_func_start s87_pokemartdecor s87_pokemartdecor: @ 80679F0 push {lr} bl script_read_word bl CreateDecorationShop1Menu bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end s87_pokemartdecor thumb_func_start s88_pokemartbp s88_pokemartbp: @ 8067A04 push {lr} bl script_read_word bl CreateDecorationShop2Menu bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end s88_pokemartbp thumb_func_start s89_open_casino_game1 s89_open_casino_game1: @ 8067A18 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r1, _08067A3C bl sub_81018A0 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08067A3C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end s89_open_casino_game1 thumb_func_start berry_script_cmd berry_script_cmd: @ 8067A40 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r3, [r1] adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r4, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r3, 0 bne _08067A68 adds r0, r5, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0 bl PlantBerryTree b _08067A74 _08067A68: adds r0, r5, 0 adds r1, r3, 0 adds r2, r4, 0 movs r3, 0 bl PlantBerryTree _08067A74: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end berry_script_cmd thumb_func_start sub_8067A7C sub_8067A7C: @ 8067A7C push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, _08067AA4 lsls r0, 24 lsrs r0, 24 bl GetPriceReduction lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067AA4: .4byte 0x0202e8dc thumb_func_end sub_8067A7C thumb_func_start sub_8067AA8 sub_8067AA8: @ 8067AA8 push {lr} bl sub_80F99CC bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8067AA8 thumb_func_start sub_8067AB8 sub_8067AB8: @ 8067AB8 push {lr} bl sub_80C48C8 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8067AB8 thumb_func_start sub_8067AC8 sub_8067AC8: @ 8067AC8 push {lr} bl sub_80C4940 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8067AC8 thumb_func_start sub_8067AD8 sub_8067AD8: @ 8067AD8 push {lr} ldr r0, _08067AEC ldrb r0, [r0] bl sub_80C4980 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08067AEC: .4byte 0x0203869c thumb_func_end sub_8067AD8 thumb_func_start s9C_execute_HM s9C_execute_HM: @ 8067AF0 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, _08067B14 strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl FieldEffectStart movs r0, 0 pop {r1} bx r1 .align 2, 0 _08067B14: .4byte 0x0202e8bc thumb_func_end s9C_execute_HM thumb_func_start s9D_set_HM_animation_data s9D_set_HM_animation_data: @ 8067B18 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, _08067B44 lsls r4, 2 adds r4, r1 lsls r0, 16 asrs r0, 16 str r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08067B44: .4byte 0x0202ff84 thumb_func_end s9D_set_HM_animation_data thumb_func_start sub_8067B48 sub_8067B48: @ 8067B48 push {lr} ldr r0, _08067B5C ldrb r0, [r0] bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 beq _08067B60 movs r0, 0 b _08067B62 .align 2, 0 _08067B5C: .4byte 0x0202e8bc _08067B60: movs r0, 0x1 _08067B62: pop {r1} bx r1 thumb_func_end sub_8067B48 thumb_func_start s9E_checkarray_HM_animation s9E_checkarray_HM_animation: @ 8067B68 push {r4,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, _08067B8C strh r0, [r1] ldr r1, _08067B90 adds r0, r4, 0 bl script_setup_asm_script movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _08067B8C: .4byte 0x0202e8bc _08067B90: .4byte sub_8067B48 thumb_func_end s9E_checkarray_HM_animation thumb_func_start sub_8067B94 sub_8067B94: @ 8067B94 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_8053588 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8067B94 thumb_func_start sub_8067BB0 sub_8067BB0: @ 8067BB0 ldr r0, _08067BBC ldr r1, _08067BC0 ldrb r1, [r1, 0x8] strh r1, [r0] movs r0, 0 bx lr .align 2, 0 _08067BBC: .4byte 0x0202e8dc _08067BC0: .4byte 0x02024ea4 thumb_func_end sub_8067BB0 thumb_func_start sA1_play_cry sA1_play_cry: @ 8067BC4 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_8075178 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sA1_play_cry thumb_func_start sub_8067BFC sub_8067BFC: @ 8067BFC push {lr} ldr r1, _08067C0C bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08067C0C: .4byte sub_8075374 thumb_func_end sub_8067BFC thumb_func_start sA2_setmaptile sA2_setmaptile: @ 8067C10 push {r4-r7,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r7, r0, 16 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 adds r1, r6, 0x7 lsls r1, 16 lsrs r6, r1, 16 adds r1, r5, 0x7 lsls r1, 16 lsrs r5, r1, 16 cmp r0, 0 bne _08067C74 adds r0, r6, 0 adds r1, r5, 0 adds r2, r7, 0 bl MapGridSetMetatileIdAt b _08067C86 _08067C74: movs r1, 0xC0 lsls r1, 4 adds r0, r1, 0 adds r2, r7, 0 orrs r2, r0 adds r0, r6, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _08067C86: movs r0, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sA2_setmaptile thumb_func_start sAC_open_door sAC_open_door: @ 8067C90 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 adds r5, 0x7 lsls r5, 16 lsrs r5, 16 movs r0, 0xE0 lsls r0, 11 adds r4, r0 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_8058790 lsls r0, 16 lsrs r0, 16 bl audio_play adds r0, r5, 0 adds r1, r4, 0 bl task_overworld_door_add_if_role_69_for_opening_door_at movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sAC_open_door thumb_func_start sub_8067CE8 sub_8067CE8: @ 8067CE8 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_805870C movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8067CE8 thumb_func_start sub_8067D2C sub_8067D2C: @ 8067D2C push {lr} bl sub_805877C lsls r0, 24 cmp r0, 0 beq _08067D3C movs r0, 0 b _08067D3E _08067D3C: movs r0, 0x1 _08067D3E: pop {r1} bx r1 thumb_func_end sub_8067D2C thumb_func_start sub_8067D44 sub_8067D44: @ 8067D44 push {lr} ldr r1, _08067D54 bl script_setup_asm_script movs r0, 0x1 pop {r1} bx r1 .align 2, 0 _08067D54: .4byte sub_8067D2C thumb_func_end sub_8067D44 thumb_func_start sub_8067D58 sub_8067D58: @ 8067D58 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_80586B4 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8067D58 thumb_func_start sub_8067D9C sub_8067D9C: @ 8067D9C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_80586E0 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8067D9C thumb_func_start sub_8067DE0 sub_8067DE0: @ 8067DE0 push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 ldr r0, [r6, 0x8] ldrb r1, [r0] mov r8, r1 adds r0, 0x1 str r0, [r6, 0x8] adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r3, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 mov r0, r8 adds r1, r5, 0 adds r2, r4, 0 bl sub_810E7AC movs r0, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8067DE0 thumb_func_start sub_8067E4C sub_8067E4C: @ 8067E4C push {lr} bl sub_810E824 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8067E4C thumb_func_start sB3_get_coin_amount sB3_get_coin_amount: @ 8067E5C push {r4,lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 bl GetCoins strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sB3_get_coin_amount thumb_func_start sub_8067E7C sub_8067E7C: @ 8067E7C push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_811A840 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067EA4 ldr r1, _08067EA0 movs r0, 0 b _08067EA8 .align 2, 0 _08067EA0: .4byte 0x0202e8dc _08067EA4: ldr r1, _08067EB0 movs r0, 0x1 _08067EA8: strh r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08067EB0: .4byte 0x0202e8dc thumb_func_end sub_8067E7C thumb_func_start sub_8067EB4 sub_8067EB4: @ 8067EB4 push {lr} bl script_read_halfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_811A898 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08067EDC ldr r1, _08067ED8 movs r0, 0 b _08067EE0 .align 2, 0 _08067ED8: .4byte 0x0202e8dc _08067EDC: ldr r1, _08067EE8 movs r0, 0x1 _08067EE0: strh r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08067EE8: .4byte 0x0202e8dc thumb_func_end sub_8067EB4 thumb_func_start sub_8067EEC sub_8067EEC: @ 8067EEC push {r4,r5,lr} movs r1, 0x2 negs r1, r1 movs r3, 0x3 negs r3, r3 movs r4, 0x5 negs r4, r4 movs r5, 0x9 negs r5, r5 movs r2, 0 strb r2, [r0] ldrb r2, [r0, 0x1] ands r1, r2 ands r1, r3 ands r1, r4 ands r1, r5 strb r1, [r0, 0x1] movs r1, 0 strb r1, [r0, 0x2] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8067EEC thumb_func_start process_overworld_input process_overworld_input: @ 8067F18 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r4, r0, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r0, _08067FE8 ldrb r6, [r0, 0x3] ldrb r0, [r0, 0x2] mov r9, r0 bl cur_mapdata_block_role_at_player_pos lsls r0, 24 lsrs r0, 24 bl sub_8056FFC lsls r0, 24 lsrs r7, r0, 24 cmp r6, 0x2 bne _08067F4C cmp r7, 0 beq _08067F50 _08067F4C: cmp r6, 0 bne _08067FB2 _08067F50: bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _08067F9C movs r0, 0x8 ands r0, r5 cmp r0, 0 beq _08067F6C ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] _08067F6C: movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _08067F7C ldrb r0, [r4] movs r1, 0x8 orrs r0, r1 strb r0, [r4] _08067F7C: movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _08067F8C ldrb r0, [r4] movs r1, 0x1 orrs r0, r1 strb r0, [r4] _08067F8C: movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _08067F9C ldrb r0, [r4] movs r1, 0x80 orrs r0, r1 strb r0, [r4] _08067F9C: movs r0, 0xF0 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08067FB2 ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r4] _08067FB2: cmp r7, 0 bne _08067FD8 cmp r6, 0x2 bne _08067FC8 mov r0, r9 cmp r0, 0x2 bne _08067FC8 ldrb r0, [r4] movs r1, 0x40 orrs r0, r1 strb r0, [r4] _08067FC8: cmp r7, 0 bne _08067FD8 cmp r6, 0x2 bne _08067FD8 ldrb r0, [r4] movs r1, 0x2 orrs r0, r1 strb r0, [r4] _08067FD8: movs r0, 0x40 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08067FEC movs r0, 0x2 b _08068014 .align 2, 0 _08067FE8: .4byte 0x0202e858 _08067FEC: movs r0, 0x80 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08067FFA movs r0, 0x1 b _08068014 _08067FFA: movs r0, 0x20 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08068008 movs r0, 0x3 b _08068014 _08068008: movs r0, 0x10 mov r1, r8 ands r0, r1 cmp r0, 0 beq _08068016 movs r0, 0x4 _08068014: strb r0, [r4, 0x2] _08068016: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end process_overworld_input thumb_func_start sub_8068024 sub_8068024: @ 8068024 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 bl player_get_direction_lower_nybble lsls r0, 24 lsrs r6, r0, 24 mov r4, sp mov r0, sp bl player_get_pos_to_and_height mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r4, r0, 16 bl sub_8083FBC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 bl mapheader_run_first_tag2_script_list_match lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 ldrb r1, [r5] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08068076 bl sub_80687A4 cmp r0, 0x1 beq _08068150 _08068076: ldrb r1, [r5] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08068098 movs r0, 0x5 bl sav12_xor_increment mov r0, sp adds r1, r4, 0 adds r2, r6, 0 bl sub_80687E4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 _08068098: ldrb r1, [r5] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080680B0 adds r0, r4, 0 bl is_it_battle_time_3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 _080680B0: ldrb r1, [r5] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080680D2 ldrb r0, [r5, 0x2] cmp r0, r6 bne _080680D2 mov r0, sp adds r1, r4, 0 adds r2, r6, 0 bl mapheader_run_first_tag2_script_list_match_conditionally lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 _080680D2: mov r4, sp mov r0, sp bl player_get_next_pos_and_height mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r4, r0, 16 ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08068108 mov r0, sp adds r1, r4, 0 adds r2, r6, 0 bl sub_80681F0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 _08068108: ldrb r1, [r5] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0806812A ldrb r0, [r5, 0x2] cmp r0, r6 bne _0806812A mov r0, sp adds r1, r4, 0 adds r2, r6, 0 bl map_warp_consider_2_to_inside lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068150 _0806812A: ldrb r1, [r5] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806813C bl sub_8068770 cmp r0, 0x1 beq _08068150 _0806813C: ldrb r1, [r5] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08068154 movs r0, 0x6 bl audio_play bl sub_8071310 _08068150: movs r0, 0x1 b _08068166 _08068154: movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08068164 bl sub_80A6D1C cmp r0, 0x1 beq _08068150 _08068164: movs r0, 0 _08068166: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8068024 thumb_func_start player_get_pos_to_and_height player_get_pos_to_and_height: @ 8068170 push {r4,lr} adds r4, r0, 0 adds r1, r4, 0x2 bl PlayerGetDestCoords bl PlayerGetZCoord strb r0, [r4, 0x4] pop {r4} pop {r0} bx r0 thumb_func_end player_get_pos_to_and_height thumb_func_start player_get_next_pos_and_height player_get_next_pos_and_height: @ 8068188 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r1, r5, 0x2 bl GetXYCoordsOneStepInFrontOfPlayer mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080681BA bl PlayerGetZCoord _080681BA: strb r0, [r5, 0x4] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end player_get_next_pos_and_height thumb_func_start cur_mapdata_block_role_at_player_pos cur_mapdata_block_role_at_player_pos: @ 80681C4 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r0, 16 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end cur_mapdata_block_role_at_player_pos thumb_func_start sub_80681F0 sub_80681F0: @ 80681F0 push {r4,lr} lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 bl TryGetScriptOnPressingA adds r4, r0, 0 cmp r4, 0 bne _08068208 movs r0, 0 b _08068234 _08068208: ldr r0, _0806823C cmp r4, r0 beq _0806822C ldr r0, _08068240 cmp r4, r0 beq _0806822C ldr r0, _08068244 cmp r4, r0 beq _0806822C ldr r0, _08068248 cmp r4, r0 beq _0806822C ldr r0, _0806824C cmp r4, r0 beq _0806822C movs r0, 0x5 bl audio_play _0806822C: adds r0, r4, 0 bl script_env_1_execute_new_script movs r0, 0x1 _08068234: pop {r4} pop {r1} bx r1 .align 2, 0 _0806823C: .4byte gUnknown_0815281E _08068240: .4byte gUnknown_08152C39 _08068244: .4byte gUnknown_0815F36C _08068248: .4byte gUnknown_0815F43A _0806824C: .4byte gUnknown_081A0009 thumb_func_end sub_80681F0 thumb_func_start TryGetScriptOnPressingA TryGetScriptOnPressingA: @ 8068250 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 mov r8, r5 lsls r2, 24 lsrs r4, r2, 24 adds r7, r4, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8068364 cmp r0, 0 bne _0806829C adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl TryGetInvisibleMapObjectScript cmp r0, 0 bne _0806829C adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8068500 cmp r0, 0 bne _0806829C adds r0, r6, 0 mov r1, r8 adds r2, r7, 0 bl TryGetFieldMoveScript cmp r0, 0 bne _0806829C movs r0, 0 _0806829C: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end TryGetScriptOnPressingA thumb_func_start sub_80682A8 sub_80682A8: @ 80682A8 push {r4-r6,lr} adds r4, r0, 0 lsls r2, 24 lsrs r6, r2, 24 movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsCounter lsls r0, 24 cmp r0, 0 bne _080682D0 ldrh r0, [r4] ldrh r1, [r4, 0x2] b _080682EE _080682D0: ldr r1, _08068314 lsls r2, r6, 3 adds r0, r2, r1 ldr r3, [r0] ldrh r0, [r4] adds r0, r3 lsls r0, 16 lsrs r0, 16 adds r1, 0x4 adds r2, r1 ldr r2, [r2] ldrh r1, [r4, 0x2] adds r1, r2 lsls r1, 16 lsrs r1, 16 _080682EE: ldrb r2, [r4, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x10 beq _0806830E ldr r1, _08068318 lsls r2, r3, 3 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] adds r5, r1, 0 cmp r0, 0xFF bne _0806831C _0806830E: movs r0, 0 b _0806834E .align 2, 0 _08068314: .4byte gUnknown_0821664C _08068318: .4byte 0x030048a0 _0806831C: movs r4, 0 ldr r1, _08068354 _08068320: ldrb r0, [r1] cmp r0, 0x1 bne _0806832C ldrb r0, [r1, 0x2] cmp r0, r3 beq _0806830E _0806832C: adds r1, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _08068320 ldr r0, _08068358 strb r3, [r0] ldr r1, _0806835C adds r0, r2, r3 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x8] strh r0, [r1] ldr r0, _08068360 strh r6, [r0] adds r0, r3, 0 bl GetFieldObjectScriptPointerByFieldObjectId _0806834E: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08068354: .4byte 0x02029818 _08068358: .4byte 0x03004ae0 _0806835C: .4byte 0x0202e8de _08068360: .4byte 0x0202e8e0 thumb_func_end sub_80682A8 thumb_func_start sub_8068364 sub_8068364: @ 8068364 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldrh r0, [r4] ldrh r1, [r4, 0x2] ldrb r2, [r4, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x10 beq _08068392 ldr r1, _080683E0 lsls r2, r3, 3 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] cmp r0, 0xFF bne _080683E8 _08068392: adds r0, r5, 0 bl MetatileBehavior_IsCounter lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080683DC ldr r1, _080683E4 lsls r2, r6, 3 adds r0, r2, r1 ldr r3, [r0] ldrh r0, [r4] adds r0, r3 lsls r0, 16 lsrs r0, 16 adds r1, 0x4 adds r2, r1 ldr r2, [r2] ldrh r1, [r4, 0x2] adds r1, r2 lsls r1, 16 lsrs r1, 16 ldrb r2, [r4, 0x4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x10 beq _080683DC ldr r1, _080683E0 lsls r2, r3, 3 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] cmp r0, 0xFF bne _080683E8 _080683DC: movs r0, 0 b _0806840C .align 2, 0 _080683E0: .4byte 0x030048a0 _080683E4: .4byte gUnknown_0821664C _080683E8: ldr r0, _08068414 strb r3, [r0] ldr r4, _08068418 adds r0, r2, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x8] strh r0, [r4] ldr r0, _0806841C strh r6, [r0] adds r0, r3, 0 bl GetFieldObjectScriptPointerByFieldObjectId adds r1, r0, 0 ldrb r0, [r4] bl sub_806580C adds r1, r0, 0 _0806840C: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08068414: .4byte 0x03004ae0 _08068418: .4byte 0x0202e8de _0806841C: .4byte 0x0202e8e0 thumb_func_end sub_8068364 thumb_func_start TryGetInvisibleMapObjectScript TryGetInvisibleMapObjectScript: @ 8068420 push {r4,r5,lr} lsls r2, 24 lsrs r5, r2, 24 ldr r4, _08068450 ldrh r1, [r0] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 ldrh r2, [r0, 0x2] subs r2, 0x7 lsls r2, 16 lsrs r2, 16 ldrb r3, [r0, 0x4] adds r0, r4, 0 bl FindInvisibleMapObjectByPosition cmp r0, 0 beq _08068494 ldr r2, [r0, 0x8] cmp r2, 0 bne _08068458 ldr r0, _08068454 b _080684FA .align 2, 0 _08068450: .4byte 0x0202e828 _08068454: .4byte gUnknown_081C6C02 _08068458: ldrb r0, [r0, 0x5] cmp r0, 0x8 bhi _080684F8 lsls r0, 2 ldr r1, _08068468 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08068468: .4byte _0806846C .align 2, 0 _0806846C: .4byte _080684F8 .4byte _08068490 .4byte _08068498 .4byte _0806849E .4byte _080684A4 .4byte _080684AA .4byte _080684AA .4byte _080684AA .4byte _080684D8 _08068490: cmp r5, 0x2 beq _080684F8 _08068494: movs r0, 0 b _080684FA _08068498: cmp r5, 0x1 beq _080684F8 b _08068494 _0806849E: cmp r5, 0x4 beq _080684F8 b _08068494 _080684A4: cmp r5, 0x3 beq _080684F8 b _08068494 _080684AA: ldr r1, _080684CC lsrs r0, r2, 16 movs r3, 0x96 lsls r3, 2 adds r0, r3 strh r0, [r1] ldr r0, _080684D0 strh r2, [r0] ldrh r0, [r1] bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068494 ldr r0, _080684D4 b _080684FA .align 2, 0 _080684CC: .4byte 0x0202e8cc _080684D0: .4byte 0x0202e8ce _080684D4: .4byte HiddenItemScript _080684D8: cmp r5, 0x2 bne _08068494 ldr r0, _080684F0 strh r2, [r0] bl sub_80BC050 lsls r0, 24 cmp r0, 0 beq _08068494 ldr r0, _080684F4 b _080684FA .align 2, 0 _080684F0: .4byte 0x0202e8cc _080684F4: .4byte gUnknown_081A2C51 _080684F8: adds r0, r2, 0 _080684FA: pop {r4,r5} pop {r1} bx r1 thumb_func_end TryGetInvisibleMapObjectScript thumb_func_start sub_8068500 sub_8068500: @ 8068500 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r2, 0 bl MetatileBehavior_IsPlayerFacingTVScreen lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068524 ldr r0, _08068520 b _080686EE .align 2, 0 _08068520: .4byte Event_TV _08068524: adds r0, r5, 0 bl MetatileBehavior_IsPC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806853C ldr r0, _08068538 b _080686EE .align 2, 0 _08068538: .4byte gUnknown_081A0009 _0806853C: adds r0, r5, 0 bl is_tile_x8B lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068554 ldr r0, _08068550 b _080686EE .align 2, 0 _08068550: .4byte ClosedSootopolisGymDoorScript _08068554: adds r0, r5, 0 bl is_tile_x84 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806856C ldr r0, _08068568 b _080686EE .align 2, 0 _08068568: .4byte gUnknown_081A4363 _0806856C: adds r0, r5, 0 bl is_tile_x87 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068584 ldr r0, _08068580 b _080686EE .align 2, 0 _08068580: .4byte gUnknown_081C346A _08068584: adds r0, r5, 0 bl is_tile_x8C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806859C ldr r0, _08068598 b _080686EE .align 2, 0 _08068598: .4byte gUnknown_081616E1 _0806859C: adds r0, r5, 0 bl is_tile_x85 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080685B4 ldr r0, _080685B0 b _080686EE .align 2, 0 _080685B0: .4byte Event_WorldMap _080685B4: adds r0, r5, 0 bl sub_805791C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080685CC ldr r0, _080685C8 b _080686EE .align 2, 0 _080685C8: .4byte Event_RunningShoesManual _080685CC: adds r0, r5, 0 bl sub_8057930 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080685E4 ldr r0, _080685E0 b _080686EE .align 2, 0 _080685E0: .4byte PictureBookShelfScript _080685E4: adds r0, r5, 0 bl sub_8057944 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080685FC ldr r0, _080685F8 b _080686EE .align 2, 0 _080685F8: .4byte BookshelfScript _080685FC: adds r0, r5, 0 bl sub_8057958 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068614 ldr r0, _08068610 b _080686EE .align 2, 0 _08068610: .4byte PokemonCenterBookshelfScript _08068614: adds r0, r5, 0 bl sub_805796C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806862C ldr r0, _08068628 b _080686EE .align 2, 0 _08068628: .4byte VaseScript _0806862C: adds r0, r5, 0 bl sub_8057980 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068644 ldr r0, _08068640 b _080686EE .align 2, 0 _08068640: .4byte TrashCanScript _08068644: adds r0, r5, 0 bl sub_8057994 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806865C ldr r0, _08068658 b _080686EE .align 2, 0 _08068658: .4byte ShopShelfScript _0806865C: adds r0, r5, 0 bl sub_80579A8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068674 ldr r0, _08068670 b _080686EE .align 2, 0 _08068670: .4byte BlueprintScript _08068674: movs r4, 0x4 ldrsb r4, [r6, r4] movs r1, 0 ldrsh r0, [r6, r1] movs r2, 0x2 ldrsh r1, [r6, r2] bl MapGridGetZCoordAt lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080686EC adds r0, r5, 0 bl sub_8057238 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080686A4 ldr r0, _080686A0 b _080686EE .align 2, 0 _080686A0: .4byte gUnknown_0815F36C _080686A4: adds r0, r5, 0 bl sub_805724C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080686BC ldr r0, _080686B8 b _080686EE .align 2, 0 _080686B8: .4byte gUnknown_0815F43A _080686BC: adds r0, r5, 0 bl sub_8057364 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080686D4 ldr r0, _080686D0 b _080686EE .align 2, 0 _080686D0: .4byte gUnknown_0815F523 _080686D4: adds r0, r5, 0 bl sub_8057378 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080686EC ldr r0, _080686E8 b _080686EE .align 2, 0 _080686E8: .4byte gUnknown_0815F528 _080686EC: movs r0, 0 _080686EE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8068500 thumb_func_start TryGetFieldMoveScript TryGetFieldMoveScript: @ 80686F4 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 ldr r0, _08068724 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806872C bl PartyHasMonWithSurf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806872C bl IsPlayerFacingSurfableFishableWater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806872C ldr r0, _08068728 b _0806876A .align 2, 0 _08068724: .4byte 0x0000080b _08068728: .4byte UseSurfScript _0806872C: adds r0, r4, 0 bl MetatileBehavior_IsWaterfall lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068768 ldr r0, _08068758 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068760 bl IsPlayerSurfingNorth lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068760 ldr r0, _0806875C b _0806876A .align 2, 0 _08068758: .4byte 0x0000080e _0806875C: .4byte UseWaterfallScript _08068760: ldr r0, _08068764 b _0806876A .align 2, 0 _08068764: .4byte CannotUseWaterfallScript _08068768: movs r0, 0 _0806876A: pop {r4} pop {r1} bx r1 thumb_func_end TryGetFieldMoveScript thumb_func_start sub_8068770 sub_8068770: @ 8068770 push {lr} ldr r0, _08068794 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0806879C bl sub_8068F18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0806879C ldr r0, _08068798 bl script_env_1_execute_new_script movs r0, 0x1 b _0806879E .align 2, 0 _08068794: .4byte 0x0000080d _08068798: .4byte UseDiveScript _0806879C: movs r0, 0 _0806879E: pop {r1} bx r1 thumb_func_end sub_8068770 thumb_func_start sub_80687A4 sub_80687A4: @ 80687A4 push {lr} ldr r0, _080687D0 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080687DC ldr r0, _080687D4 ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _080687DC bl sub_8068F18 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080687DC ldr r0, _080687D8 bl script_env_1_execute_new_script movs r0, 0x1 b _080687DE .align 2, 0 _080687D0: .4byte 0x0000080d _080687D4: .4byte 0x0202e828 _080687D8: .4byte UnderwaterUseDiveScript _080687DC: movs r0, 0 _080687DE: pop {r1} bx r1 thumb_func_end sub_80687A4 thumb_func_start sub_80687E4 sub_80687E4: @ 80687E4 push {r4-r6,lr} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r6, r4, 0 bl mapheader_trigger_activate_at__run_now lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068834 adds r0, r5, 0 adds r1, r4, 0 bl sub_8068A64 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068834 adds r0, r6, 0 bl sub_8068870 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068834 bl sub_8068894 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068834 bl sub_8085558 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068834 movs r0, 0 b _08068836 _08068834: movs r0, 0x1 _08068836: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80687E4 thumb_func_start mapheader_trigger_activate_at__run_now mapheader_trigger_activate_at__run_now: @ 806883C push {r4,lr} ldr r4, _08068864 ldrh r1, [r0] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 ldrh r2, [r0, 0x2] subs r2, 0x7 lsls r2, 16 lsrs r2, 16 ldrb r3, [r0, 0x4] adds r0, r4, 0 bl mapheader_trigger_activate_at cmp r0, 0 beq _08068868 bl script_env_1_execute_new_script movs r0, 0x1 b _0806886A .align 2, 0 _08068864: .4byte 0x0202e828 _08068868: movs r0, 0 _0806886A: pop {r4} pop {r1} bx r1 thumb_func_end mapheader_trigger_activate_at__run_now thumb_func_start sub_8068870 sub_8068870: @ 8068870 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_8057818 lsls r0, 24 cmp r0, 0 bne _08068884 movs r0, 0 b _0806888C _08068884: ldr r0, _08068890 bl script_env_1_execute_new_script movs r0, 0x1 _0806888C: pop {r1} bx r1 .align 2, 0 _08068890: .4byte GraniteCave_B1F_EventScript_1C6BC5 thumb_func_end sub_8068870 thumb_func_start sub_8068894 sub_8068894: @ 8068894 push {lr} bl sub_8082B78 bl happiness_algorithm_step bl overworld_poison_step lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080688B4 ldr r0, _080688B0 b _080688E8 .align 2, 0 _080688B0: .4byte gUnknown_081A14B8 _080688B4: bl sub_80422A0 lsls r0, 24 cmp r0, 0 beq _080688CC movs r0, 0xD bl sav12_xor_increment ldr r0, _080688C8 b _080688E8 .align 2, 0 _080688C8: .4byte Event_EggHatch _080688CC: bl safari_step lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080688EC movs r0, 0x1 bl sub_810D9B0 cmp r0, 0x1 beq _080688E6 movs r0, 0 b _080688EE _080688E6: ldr r0, _080688F4 _080688E8: bl script_env_1_execute_new_script _080688EC: movs r0, 0x1 _080688EE: pop {r1} bx r1 .align 2, 0 _080688F4: .4byte gUnknown_0815FD0D thumb_func_end sub_8068894 thumb_func_start unref_sub_80688F8 unref_sub_80688F8: @ 80688F8 push {lr} ldr r0, _08068908 movs r1, 0 bl VarSet pop {r0} bx r0 .align 2, 0 _08068908: .4byte 0x0000402a thumb_func_end unref_sub_80688F8 thumb_func_start happiness_algorithm_step happiness_algorithm_step: @ 806890C push {r4,r5,lr} ldr r0, _08068940 bl GetVarPointer ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] ldrh r1, [r0] movs r2, 0x7F ands r1, r2 strh r1, [r0] cmp r1, 0 bne _0806893A ldr r5, _08068944 movs r4, 0x5 _0806892A: adds r0, r5, 0 movs r1, 0x5 bl sub_803FCD4 adds r5, 0x64 subs r4, 0x1 cmp r4, 0 bge _0806892A _0806893A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08068940: .4byte 0x0000402a _08068944: .4byte 0x03004360 thumb_func_end happiness_algorithm_step thumb_func_start overworld_poison_timer_set overworld_poison_timer_set: @ 8068948 push {lr} ldr r0, _08068958 movs r1, 0 bl VarSet pop {r0} bx r0 .align 2, 0 _08068958: .4byte 0x0000402b thumb_func_end overworld_poison_timer_set thumb_func_start overworld_poison_step overworld_poison_step: @ 806895C push {lr} ldr r0, _08068994 ldrb r0, [r0, 0x17] cmp r0, 0x9 beq _0806899C ldr r0, _08068998 bl GetVarPointer ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] ldrh r1, [r0] movs r2, 0x3 ands r1, r2 strh r1, [r0] cmp r1, 0 bne _0806899C bl overworld_poison cmp r0, 0x1 beq _0806899C cmp r0, 0x1 ble _0806899C cmp r0, 0x2 bne _0806899C movs r0, 0x1 b _0806899E .align 2, 0 _08068994: .4byte 0x0202e828 _08068998: .4byte 0x0000402b _0806899C: movs r0, 0 _0806899E: pop {r1} bx r1 thumb_func_end overworld_poison_step thumb_func_start prev_quest_postbuffer_cursor_backup_reset prev_quest_postbuffer_cursor_backup_reset: @ 80689A4 ldr r1, _080689AC movs r0, 0 strb r0, [r1] bx lr .align 2, 0 _080689AC: .4byte 0x0202e8c0 thumb_func_end prev_quest_postbuffer_cursor_backup_reset thumb_func_start is_it_battle_time_3 is_it_battle_time_3: @ 80689B0 push {r4-r7,lr} lsls r0, 16 lsrs r4, r0, 16 adds r7, r4, 0 ldr r6, _080689CC ldrb r0, [r6] cmp r0, 0x3 bhi _080689D4 adds r0, 0x1 strb r0, [r6] ldr r0, _080689D0 strh r4, [r0] movs r0, 0 b _080689F8 .align 2, 0 _080689CC: .4byte 0x0202e8c0 _080689D0: .4byte 0x0202e8c2 _080689D4: ldr r5, _080689EC ldrh r1, [r5] adds r0, r4, 0 bl sub_8085104 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080689F0 strh r4, [r5] movs r0, 0 b _080689F8 .align 2, 0 _080689EC: .4byte 0x0202e8c2 _080689F0: movs r0, 0 strb r0, [r6] strh r7, [r5] movs r0, 0x1 _080689F8: pop {r4-r7} pop {r1} bx r1 thumb_func_end is_it_battle_time_3 thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally mapheader_run_first_tag2_script_list_match_conditionally: @ 8068A00 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r0, _08068A54 mov r8, r0 adds r1, r7, 0 bl map_warp_check_packed lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 adds r1, r5, 0 bl is_non_stair_warp_tile lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068A58 lsls r0, r6, 24 asrs r4, r0, 24 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08068A58 bl walkrun_find_lowest_active_bit_in_bitfield mov r0, r8 adds r1, r4, 0 adds r2, r7, 0 bl sub_8068C30 bl sub_8080E88 movs r0, 0x1 b _08068A5A .align 2, 0 _08068A54: .4byte 0x0202e828 _08068A58: movs r0, 0 _08068A5A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally thumb_func_start sub_8068A64 sub_8068A64: @ 8068A64 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r7, _08068ABC adds r0, r7, 0 adds r1, r6, 0 bl map_warp_check_packed lsls r0, 24 asrs r4, r0, 24 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08068B28 adds r0, r5, 0 bl sub_8068B30 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068B28 bl walkrun_find_lowest_active_bit_in_bitfield adds r0, r7, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_8068C30 lsls r0, r5, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl MetatileBehavior_IsEscalator lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068AC0 adds r0, r4, 0 bl sub_8080F2C movs r0, 0x1 b _08068B2A .align 2, 0 _08068ABC: .4byte 0x0202e828 _08068AC0: adds r0, r4, 0 bl sub_8057798 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068AD6 bl sub_8080F48 movs r0, 0x1 b _08068B2A _08068AD6: adds r0, r4, 0 bl is_role_x68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068AEC bl sub_8080F58 movs r0, 0x1 b _08068B2A _08068AEC: adds r0, r4, 0 bl MetatileBehavior_IsAquaHideoutWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068B02 bl sub_8080F68 movs r0, 0x1 b _08068B2A _08068B02: adds r0, r4, 0 bl sub_8057804 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068B20 ldr r0, _08068B1C bl script_env_1_execute_new_script movs r0, 0x1 b _08068B2A .align 2, 0 _08068B1C: .4byte gUnknown_081C6BDE _08068B20: bl sub_8080E88 movs r0, 0x1 b _08068B2A _08068B28: movs r0, 0 _08068B2A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8068A64 thumb_func_start sub_8068B30 sub_8068B30: @ 8068B30 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl is_tile_x69_2_warp_door lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl MetatileBehavior_IsLadder lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl MetatileBehavior_IsEscalator lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl sub_8056F08 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl sub_8057798 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl is_role_x68 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl MetatileBehavior_IsAquaHideoutWarp lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA adds r0, r4, 0 bl sub_8057804 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08068BAA movs r0, 0 b _08068BAC _08068BAA: movs r0, 0x1 _08068BAC: pop {r4} pop {r1} bx r1 thumb_func_end sub_8068B30 thumb_func_start is_non_stair_warp_tile is_non_stair_warp_tile: @ 8068BB4 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x2 beq _08068BD8 cmp r1, 0x2 bgt _08068BCE cmp r1, 0x1 beq _08068BE2 b _08068C04 _08068BCE: cmp r2, 0x3 beq _08068BEC cmp r2, 0x4 beq _08068BF6 b _08068C04 _08068BD8: lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsNorthArrowWarp b _08068BFE _08068BE2: lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsSouthArrowWarp b _08068BFE _08068BEC: lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsWestArrowWarp b _08068BFE _08068BF6: lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsEastArrowWarp _08068BFE: lsls r0, 24 lsrs r0, 24 b _08068C06 _08068C04: movs r0, 0 _08068C06: pop {r1} bx r1 thumb_func_end is_non_stair_warp_tile thumb_func_start map_warp_check_packed map_warp_check_packed: @ 8068C0C push {lr} adds r3, r1, 0 ldrh r1, [r3] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 ldrh r2, [r3, 0x2] subs r2, 0x7 lsls r2, 16 lsrs r2, 16 ldrb r3, [r3, 0x4] bl map_warp_check lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end map_warp_check_packed thumb_func_start sub_8068C30 sub_8068C30: @ 8068C30 push {r4-r7,lr} adds r5, r2, 0 ldr r0, _08068C50 ldr r0, [r0, 0x4] lsls r1, 24 asrs r7, r1, 24 lsls r6, r7, 3 ldr r0, [r0, 0x8] adds r4, r0, r6 ldrb r0, [r4, 0x6] cmp r0, 0x7F bne _08068C54 ldrb r0, [r4, 0x5] bl copy_saved_warp2_bank_and_enter_x_to_warp1 b _08068C9E .align 2, 0 _08068C50: .4byte 0x0202e828 _08068C54: movs r0, 0x7 ldrsb r0, [r4, r0] movs r1, 0x6 ldrsb r1, [r4, r1] movs r2, 0x5 ldrsb r2, [r4, r2] bl warp1_set_2 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl sub_80535C4 ldrb r0, [r4, 0x7] ldrb r1, [r4, 0x6] bl get_mapheader_by_bank_and_number ldr r1, [r0, 0x4] ldrb r0, [r4, 0x5] ldr r1, [r1, 0x8] lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x6] cmp r0, 0x7F bne _08068C9E adds r0, r6, r1 ldrb r0, [r0, 0x5] ldr r2, _08068CA4 movs r1, 0x4 ldrsb r1, [r2, r1] ldrb r2, [r2, 0x5] lsls r2, 24 asrs r2, 24 adds r3, r7, 0 bl saved_warp2_set _08068C9E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08068CA4: .4byte 0x02025734 thumb_func_end sub_8068C30 thumb_func_start map_warp_consider_2_to_inside map_warp_consider_2_to_inside: @ 8068CA8 push {r4-r7,lr} adds r5, r0, 0 lsls r1, 16 lsrs r0, r1, 16 adds r7, r0, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0x2 bne _08068D2C lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80571C0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068CE0 ldr r0, _08068CDC ldr r1, [r0, 0x4] adds r0, r5, 0 bl sub_80BC038 movs r0, 0x1 b _08068D2E .align 2, 0 _08068CDC: .4byte 0x0202e828 _08068CE0: adds r0, r4, 0 bl is_tile_x69_2_warp_door lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068D2C ldr r6, _08068D28 adds r0, r6, 0 adds r1, r5, 0 bl map_warp_check_packed lsls r0, 24 asrs r4, r0, 24 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08068D2C adds r0, r7, 0 bl sub_8068B30 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068D2C bl walkrun_find_lowest_active_bit_in_bitfield adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_8068C30 bl sub_8080EF0 movs r0, 0x1 b _08068D2E .align 2, 0 _08068D28: .4byte 0x0202e828 _08068D2C: movs r0, 0 _08068D2E: pop {r4-r7} pop {r1} bx r1 thumb_func_end map_warp_consider_2_to_inside thumb_func_start map_warp_check map_warp_check: @ 8068D34 push {r4-r6,lr} lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 lsls r3, 24 lsrs r4, r3, 24 ldr r0, [r0, 0x4] ldr r1, [r0, 0x8] ldrb r3, [r0, 0x1] movs r2, 0 cmp r2, r3 bge _08068D72 _08068D4E: ldrh r0, [r1] cmp r0, r6 bne _08068D6A ldrh r0, [r1, 0x2] cmp r0, r5 bne _08068D6A ldrb r0, [r1, 0x4] cmp r0, r4 beq _08068D64 cmp r0, 0 bne _08068D6A _08068D64: lsls r0, r2, 24 asrs r0, 24 b _08068D76 _08068D6A: adds r2, 0x1 adds r1, 0x8 cmp r2, r3 blt _08068D4E _08068D72: movs r0, 0x1 negs r0, r0 _08068D76: pop {r4-r6} pop {r1} bx r1 thumb_func_end map_warp_check thumb_func_start trigger_activate trigger_activate: @ 8068D7C push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _08068DB2 ldr r1, [r4, 0xC] cmp r1, 0 bne _08068D92 ldrb r0, [r4, 0x6] bl sub_8069408 b _08068DB2 _08068D92: ldrh r0, [r4, 0x6] cmp r0, 0 beq _08068DAC ldrh r0, [r4, 0x6] bl VarGet lsls r0, 16 lsrs r0, 16 ldrb r1, [r4, 0x8] cmp r0, r1 bne _08068DB2 ldr r0, [r4, 0xC] b _08068DB4 _08068DAC: adds r0, r1, 0 bl script_env_2_execute_new_script _08068DB2: movs r0, 0 _08068DB4: pop {r4} pop {r1} bx r1 thumb_func_end trigger_activate thumb_func_start mapheader_trigger_activate_at mapheader_trigger_activate_at: @ 8068DBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 16 lsrs r1, 16 mov r10, r1 lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 ldr r0, [r0, 0x4] ldr r1, [r0, 0xC] ldrb r7, [r0, 0x2] movs r6, 0 cmp r6, r7 bge _08068E12 adds r5, r1, 0 adds r4, r5, 0 _08068DE8: ldrh r0, [r4] cmp r0, r10 bne _08068E08 ldrh r0, [r4, 0x2] cmp r0, r9 bne _08068E08 ldrb r0, [r4, 0x4] cmp r0, r8 beq _08068DFE cmp r0, 0 bne _08068E08 _08068DFE: adds r0, r5, 0 bl trigger_activate cmp r0, 0 bne _08068E14 _08068E08: adds r4, 0x10 adds r5, 0x10 adds r6, 0x1 cmp r6, r7 blt _08068DE8 _08068E12: movs r0, 0 _08068E14: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end mapheader_trigger_activate_at thumb_func_start sub_8068E24 sub_8068E24: @ 8068E24 push {r4,lr} ldr r4, _08068E48 ldrh r1, [r0] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 ldrh r2, [r0, 0x2] subs r2, 0x7 lsls r2, 16 lsrs r2, 16 ldrb r3, [r0, 0x4] adds r0, r4, 0 bl mapheader_trigger_activate_at pop {r4} pop {r1} bx r1 .align 2, 0 _08068E48: .4byte 0x0202e828 thumb_func_end sub_8068E24 thumb_func_start FindInvisibleMapObjectByPosition FindInvisibleMapObjectByPosition: @ 8068E4C push {r4-r7,lr} lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r6, r2, 16 lsls r3, 24 lsrs r5, r3, 24 ldr r0, [r0, 0x4] ldr r4, [r0, 0x10] ldrb r3, [r0, 0x3] movs r2, 0 cmp r2, r3 bcs _08068E92 _08068E66: lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0, r4 ldrh r0, [r1] cmp r0, r7 bne _08068E88 ldrh r0, [r1, 0x2] cmp r0, r6 bne _08068E88 ldrb r0, [r1, 0x4] cmp r0, r5 beq _08068E84 cmp r0, 0 bne _08068E88 _08068E84: adds r0, r1, 0 b _08068E94 _08068E88: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _08068E66 _08068E92: movs r0, 0 _08068E94: pop {r4-r7} pop {r1} bx r1 thumb_func_end FindInvisibleMapObjectByPosition thumb_func_start dive_warp dive_warp: @ 8068E9C push {r4,r5,lr} adds r4, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r0, _08068ED0 ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _08068ED4 lsls r0, r5, 24 lsrs r0, 24 bl sub_805750C lsls r0, 24 cmp r0, 0 bne _08068ED4 ldrh r0, [r4] subs r0, 0x7 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4, 0x2] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 bl sub_80538B0 b _08068EF8 .align 2, 0 _08068ED0: .4byte 0x0202e828 _08068ED4: lsls r0, r5, 24 lsrs r0, 24 bl sub_80574EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068F10 ldrh r0, [r4] subs r0, 0x7 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4, 0x2] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 bl sub_80538D0 _08068EF8: lsls r0, 24 cmp r0, 0 beq _08068F10 bl walkrun_find_lowest_active_bit_in_bitfield bl sp13E_warp_to_last_warp movs r0, 0xE9 bl audio_play movs r0, 0x1 b _08068F12 _08068F10: movs r0, 0 _08068F12: pop {r4,r5} pop {r1} bx r1 thumb_func_end dive_warp thumb_func_start sub_8068F18 sub_8068F18: @ 8068F18 push {r4,r5,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08068F70 ldrb r0, [r0, 0x17] cmp r0, 0x5 bne _08068F74 adds r0, r5, 0 bl sub_805750C lsls r0, 24 cmp r0, 0 bne _08068F74 mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 bl sub_80538B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068FA4 movs r0, 0x1 b _08068FA6 .align 2, 0 _08068F70: .4byte 0x0202e828 _08068F74: adds r0, r5, 0 bl sub_80574EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068FA4 mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 lsrs r0, 16 ldrh r1, [r4] subs r1, 0x7 lsls r1, 16 lsrs r1, 16 bl sub_80538D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08068FA4 movs r0, 0x2 b _08068FA6 _08068FA4: movs r0, 0 _08068FA6: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8068F18 thumb_func_start GetFieldObjectScriptPointerForComparison GetFieldObjectScriptPointerForComparison: @ 8068FB0 push {r4,r5,lr} sub sp, 0x8 bl player_get_direction_upper_nybble adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r5, sp mov r0, sp bl player_get_next_pos_and_height mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp adds r2, r4, 0 bl sub_8068364 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end GetFieldObjectScriptPointerForComparison thumb_func_start sub_8068FEC sub_8068FEC: @ 8068FEC push {r4,lr} sub sp, 0x8 bl player_get_direction_upper_nybble mov r4, sp mov r0, sp bl player_get_pos_to_and_height mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt ldr r4, _0806902C adds r0, r4, 0 mov r1, sp bl map_warp_check_packed adds r1, r0, 0 lsls r1, 24 asrs r1, 24 adds r0, r4, 0 mov r2, sp bl sub_8068C30 movs r0, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .align 2, 0 _0806902C: .4byte 0x0202e828 thumb_func_end sub_8068FEC thumb_func_start sub_8069030 sub_8069030: @ 8069030 push {r4,lr} ldr r4, _08069064 movs r2, 0x90 lsls r2, 1 adds r0, r4, 0 movs r1, 0 bl memset movs r0, 0x90 lsls r0, 1 adds r4, r0 movs r2, 0x80 lsls r2, 2 adds r0, r4, 0 movs r1, 0 bl memset ldr r0, _08069068 movs r1, 0 movs r2, 0x10 bl memset pop {r4} pop {r0} bx r0 .align 2, 0 _08069064: .4byte 0x02026954 _08069068: .4byte 0x0202e8e2 thumb_func_end sub_8069030 thumb_func_start sub_806906C sub_806906C: @ 806906C push {lr} ldr r0, _080690A0 movs r1, 0 str r1, [r0] movs r1, 0x90 lsls r1, 1 adds r0, r1 movs r1, 0 movs r2, 0x20 bl memset ldr r0, _080690A4 bl FlagReset ldr r0, _080690A8 bl FlagReset ldr r0, _080690AC bl FlagReset ldr r0, _080690B0 bl FlagReset pop {r0} bx r0 .align 2, 0 _080690A0: .4byte 0x02026954 _080690A4: .4byte 0x0000084d _080690A8: .4byte 0x0000084e _080690AC: .4byte 0x00000829 _080690B0: .4byte 0x00000861 thumb_func_end sub_806906C thumb_func_start sub_80690B4 sub_80690B4: @ 80690B4 push {lr} ldr r0, _080690C4 movs r1, 0 movs r2, 0x8 bl memset pop {r0} bx r0 .align 2, 0 _080690C4: .4byte 0x02026a6c thumb_func_end sub_80690B4 thumb_func_start sub_80690C8 sub_80690C8: @ 80690C8 push {lr} ldr r0, _080690E4 bl GetVarPointer ldr r2, _080690E8 movs r1, 0 strb r1, [r2, 0x1A] strh r1, [r0] ldr r0, _080690EC bl FlagReset pop {r0} bx r0 .align 2, 0 _080690E4: .4byte 0x00004046 _080690E8: .4byte 0x02024ea4 _080690EC: .4byte 0x00000836 thumb_func_end sub_80690C8 thumb_func_start sub_80690F0 sub_80690F0: @ 80690F0 push {r4,r5,lr} ldr r0, _0806911C bl GetVarPointer ldr r4, _08069120 movs r5, 0 movs r1, 0xDA strb r1, [r4, 0x1A] ldr r2, _08069124 adds r1, r2, 0 strh r1, [r0] ldr r0, _08069128 bl FlagSet movs r0, 0x1 strb r0, [r4, 0x19] strb r5, [r4, 0x18] bl sub_808C0A0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806911C: .4byte 0x00004046 _08069120: .4byte 0x02024ea4 _08069124: .4byte 0x00000302 _08069128: .4byte 0x00000836 thumb_func_end sub_80690F0 thumb_func_start sub_806912C sub_806912C: @ 806912C push {lr} ldr r0, _08069154 ldrb r0, [r0, 0x1A] cmp r0, 0xDA bne _08069164 ldr r0, _08069158 bl VarGet lsls r0, 16 ldr r1, _0806915C cmp r0, r1 bne _08069164 ldr r0, _08069160 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08069164 movs r0, 0x1 b _08069166 .align 2, 0 _08069154: .4byte 0x02024ea4 _08069158: .4byte 0x00004046 _0806915C: .4byte 0x03020000 _08069160: .4byte 0x00000836 _08069164: movs r0, 0 _08069166: pop {r1} bx r1 thumb_func_end sub_806912C thumb_func_start unref_sub_806916C unref_sub_806916C: @ 806916C push {lr} ldr r0, _08069178 bl FlagReset pop {r0} bx r0 .align 2, 0 _08069178: .4byte 0x0000084c thumb_func_end unref_sub_806916C thumb_func_start unref_sub_806917C unref_sub_806917C: @ 806917C push {lr} ldr r0, _08069188 bl FlagSet pop {r0} bx r0 .align 2, 0 _08069188: .4byte 0x0000084c thumb_func_end unref_sub_806917C thumb_func_start sub_806918C sub_806918C: @ 806918C push {lr} ldr r0, _0806919C bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0806919C: .4byte 0x0000084c thumb_func_end sub_806918C thumb_func_start sub_80691A0 sub_80691A0: @ 80691A0 push {lr} ldr r0, _080691B4 movs r1, 0 bl VarSet ldr r0, _080691B8 bl FlagReset pop {r0} bx r0 .align 2, 0 _080691B4: .4byte 0x0000402c _080691B8: .4byte 0x00000862 thumb_func_end sub_80691A0 thumb_func_start sub_80691BC sub_80691BC: @ 80691BC push {lr} ldr r0, _080691D4 movs r1, 0x92 lsls r1, 4 bl VarSet ldr r0, _080691D8 bl FlagSet pop {r0} bx r0 .align 2, 0 _080691D4: .4byte 0x0000402c _080691D8: .4byte 0x00000862 thumb_func_end sub_80691BC thumb_func_start sub_80691DC sub_80691DC: @ 80691DC push {lr} ldr r0, _08069200 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08069208 ldr r0, _08069204 bl VarGet lsls r0, 16 movs r1, 0x92 lsls r1, 20 cmp r0, r1 bne _08069208 movs r0, 0x1 b _0806920A .align 2, 0 _08069200: .4byte 0x00000862 _08069204: .4byte 0x0000402c _08069208: movs r0, 0 _0806920A: pop {r1} bx r1 thumb_func_end sub_80691DC thumb_func_start GetVarPointer GetVarPointer: @ 8069210 push {lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 ldr r0, _08069224 cmp r1, r0 bhi _08069228 movs r0, 0 b _0806924A .align 2, 0 _08069224: .4byte 0x00003fff _08069228: lsls r0, r1, 16 cmp r0, 0 bge _08069244 ldr r0, _0806923C ldr r2, _08069240 adds r1, r2 lsls r1, 2 adds r1, r0 ldr r0, [r1] b _0806924A .align 2, 0 _0806923C: .4byte gUnknown_0814B14C _08069240: .4byte 0xffff8000 _08069244: lsls r0, r2, 1 ldr r1, _08069250 adds r0, r1 _0806924A: pop {r1} bx r1 .align 2, 0 _08069250: .4byte 0x0201ea74 thumb_func_end GetVarPointer thumb_func_start VarGet VarGet: @ 8069254 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl GetVarPointer cmp r0, 0 beq _08069268 ldrh r0, [r0] b _0806926A _08069268: adds r0, r4, 0 _0806926A: pop {r4} pop {r1} bx r1 thumb_func_end VarGet thumb_func_start VarSet VarSet: @ 8069270 push {r4,lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r4, r1, 16 bl GetVarPointer cmp r0, 0 beq _08069288 strh r4, [r0] movs r0, 0x1 b _0806928A _08069288: movs r0, 0 _0806928A: pop {r4} pop {r1} bx r1 thumb_func_end VarSet thumb_func_start VarGetFieldObjectGraphicsId VarGetFieldObjectGraphicsId: @ 8069290 push {lr} lsls r0, 24 lsrs r0, 8 ldr r1, _080692A8 adds r0, r1 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080692A8: .4byte 0x40100000 thumb_func_end VarGetFieldObjectGraphicsId thumb_func_start GetFlagPointer GetFlagPointer: @ 80692AC push {lr} lsls r2, r0, 16 lsrs r1, r2, 16 adds r3, r1, 0 cmp r1, 0 bne _080692BC movs r0, 0 b _080692E2 _080692BC: ldr r0, _080692C8 cmp r1, r0 bhi _080692D0 lsrs r0, r2, 19 ldr r1, _080692CC b _080692E0 .align 2, 0 _080692C8: .4byte 0x00003fff _080692CC: .4byte 0x02026954 _080692D0: ldr r1, _080692E8 adds r0, r3, r1 cmp r0, 0 bge _080692DC adds r1, 0x7 adds r0, r3, r1 _080692DC: asrs r0, 3 ldr r1, _080692EC _080692E0: adds r0, r1 _080692E2: pop {r1} bx r1 .align 2, 0 _080692E8: .4byte 0xffffc000 _080692EC: .4byte 0x0202e8e2 thumb_func_end GetFlagPointer thumb_func_start FlagSet FlagSet: @ 80692F0 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl GetFlagPointer adds r2, r0, 0 cmp r2, 0 beq _08069310 movs r0, 0x7 ands r0, r4 movs r1, 0x1 lsls r1, r0 ldrb r0, [r2] orrs r1, r0 strb r1, [r2] _08069310: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end FlagSet thumb_func_start FlagReset FlagReset: @ 8069318 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl GetFlagPointer adds r2, r0, 0 cmp r2, 0 beq _08069338 movs r0, 0x7 ands r0, r4 movs r1, 0x1 lsls r1, r0 ldrb r0, [r2] bics r0, r1 strb r0, [r2] _08069338: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end FlagReset thumb_func_start FlagGet FlagGet: @ 8069340 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl GetFlagPointer cmp r0, 0 beq _08069364 ldrb r0, [r0] movs r1, 0x7 ands r1, r4 asrs r0, r1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08069364 movs r0, 0x1 b _08069366 _08069364: movs r0, 0 _08069366: pop {r4} pop {r1} bx r1 thumb_func_end FlagGet thumb_func_start sub_806936C sub_806936C: @ 806936C push {lr} movs r0, 0x1 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_806936C thumb_func_start sub_8069378 sub_8069378: @ 8069378 push {lr} movs r0, 0x2 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_8069378 thumb_func_start sub_8069384 sub_8069384: @ 8069384 push {lr} movs r0, 0x3 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_8069384 thumb_func_start sub_8069390 sub_8069390: @ 8069390 push {lr} movs r0, 0x4 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_8069390 thumb_func_start sub_806939C sub_806939C: @ 806939C push {lr} movs r0, 0x5 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_806939C thumb_func_start sub_80693A8 sub_80693A8: @ 80693A8 push {lr} movs r0, 0x6 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693A8 thumb_func_start sub_80693B4 sub_80693B4: @ 80693B4 push {lr} movs r0, 0x9 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693B4 thumb_func_start sub_80693C0 sub_80693C0: @ 80693C0 push {lr} movs r0, 0x7 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693C0 thumb_func_start sub_80693CC sub_80693CC: @ 80693CC push {lr} movs r0, 0x8 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693CC thumb_func_start sub_80693D8 sub_80693D8: @ 80693D8 push {lr} movs r0, 0xB bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693D8 thumb_func_start sub_80693E4 sub_80693E4: @ 80693E4 push {lr} movs r0, 0xC bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693E4 thumb_func_start sub_80693F0 sub_80693F0: @ 80693F0 push {lr} movs r0, 0x14 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693F0 thumb_func_start sub_80693FC sub_80693FC: @ 80693FC push {lr} movs r0, 0x15 bl sub_808070C pop {r0} bx r0 thumb_func_end sub_80693FC thumb_func_start sub_8069408 sub_8069408: @ 8069408 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r2, 0 ldr r3, _08069428 _08069412: lsls r1, r2, 3 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r4 bne _0806942C adds r0, r3, 0x4 adds r0, r1, r0 ldr r0, [r0] bl _call_via_r0 b _08069436 .align 2, 0 _08069428: .4byte gUnknown_083762FC _0806942C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xC bls _08069412 _08069436: pop {r4} pop {r0} bx r0 thumb_func_end sub_8069408 thumb_func_start task_per_step_callback_manager task_per_step_callback_manager: @ 806943C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _08069460 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r1, [r1, r2] ldr r2, _08069464 lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r0} bx r0 .align 2, 0 _08069460: .4byte 0x03004b20 _08069464: .4byte gUnknown_08376364 thumb_func_end task_per_step_callback_manager thumb_func_start sub_8069468 sub_8069468: @ 8069468 push {r4,lr} adds r4, r0, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0806947A cmp r0, 0x1 beq _08069498 b _080694AC _0806947A: ldr r0, _08069494 ldr r0, [r0, 0x20] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 beq _080694AC bl InTrainerHill ldrh r0, [r4] adds r0, 0x1 b _080694AA .align 2, 0 _08069494: .4byte 0x03001770 _08069498: ldr r0, _080694B4 ldr r0, [r0, 0x20] movs r1, 0x80 lsls r1, 5 ands r0, r1 cmp r0, 0 bne _080694AC ldrh r0, [r4] subs r0, 0x1 _080694AA: strh r0, [r4] _080694AC: pop {r4} pop {r0} bx r0 .align 2, 0 _080694B4: .4byte 0x03001770 thumb_func_end sub_8069468 thumb_func_start sub_80694B8 sub_80694B8: @ 80694B8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080694E8 adds r4, r1, r0 bl script_env_2_is_enabled lsls r0, 24 cmp r0, 0 bne _080694E0 adds r0, r4, 0 bl sub_8069468 adds r0, r4, 0x2 adds r1, r4, 0x4 bl sub_80540D0 _080694E0: pop {r4} pop {r0} bx r0 .align 2, 0 _080694E8: .4byte 0x03004b28 thumb_func_end sub_80694B8 thumb_func_start overworld_ensure_per_step_coros_running overworld_ensure_per_step_coros_running: @ 80694EC push {r4,r5,lr} ldr r5, _08069548 adds r0, r5, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08069516 adds r0, r5, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0806954C lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] _08069516: ldr r4, _08069550 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0806952C adds r0, r4, 0 movs r1, 0x50 bl CreateTask _0806952C: ldr r4, _08069554 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08069542 adds r0, r4, 0 movs r1, 0x50 bl CreateTask _08069542: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069548: .4byte task_per_step_callback_manager _0806954C: .4byte 0x03004b20 _08069550: .4byte sub_806A1E8 _08069554: .4byte sub_80694B8 thumb_func_end overworld_ensure_per_step_coros_running thumb_func_start activate_per_step_callback activate_per_step_callback: @ 8069558 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _08069590 bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _0806959A lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _08069594 adds r1, r0, r1 movs r2, 0 adds r0, r1, 0 adds r0, 0x1E _0806957C: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _0806957C cmp r4, 0x7 bls _08069598 movs r0, 0 strh r0, [r1] b _0806959A .align 2, 0 _08069590: .4byte task_per_step_callback_manager _08069594: .4byte 0x03004b28 _08069598: strh r4, [r1] _0806959A: pop {r4} pop {r0} bx r0 thumb_func_end activate_per_step_callback thumb_func_start wild_encounter_reset_coro_args wild_encounter_reset_coro_args: @ 80695A0 push {lr} ldr r0, _080695D0 bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 ldr r0, _080695D4 bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _080695CA lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, _080695D8 adds r0, r1 movs r1, 0 strh r1, [r0, 0x2] strh r1, [r0, 0x4] _080695CA: pop {r0} bx r0 .align 2, 0 _080695D0: .4byte task_per_step_callback_manager _080695D4: .4byte sub_80694B8 _080695D8: .4byte 0x03004b28 thumb_func_end wild_encounter_reset_coro_args thumb_func_start nullsub_51 nullsub_51: @ 80695DC bx lr thumb_func_end nullsub_51 thumb_func_start sub_80695E0 sub_80695E0: @ 80695E0 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 adds r0, r4, 0 bl sub_80576A0 lsls r0, 24 cmp r0, 0 beq _080695F8 adds r0, r5, 0 b _08069630 _080695F8: adds r0, r4, 0 bl sub_80576B4 lsls r0, 24 cmp r0, 0 beq _0806960A adds r0, r5, 0 adds r0, 0x8 b _08069630 _0806960A: adds r0, r4, 0 bl sub_80576C8 lsls r0, 24 cmp r0, 0 beq _0806961C adds r0, r5, 0 adds r0, 0x10 b _08069630 _0806961C: adds r0, r4, 0 bl sub_80576DC lsls r0, 24 cmp r0, 0 bne _0806962C movs r0, 0 b _08069630 _0806962C: adds r0, r5, 0 adds r0, 0x18 _08069630: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80695E0 thumb_func_start sub_8069638 sub_8069638: @ 8069638 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 mov r8, r3 lsls r1, 16 asrs r6, r1, 16 lsls r2, 16 asrs r7, r2, 16 adds r0, r6, 0 adds r1, r7, 0 bl MapGridGetMetatileBehaviorAt adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_80695E0 adds r4, r0, 0 adds r5, r4, 0 cmp r4, 0 beq _080696B6 movs r0, 0 ldrsb r0, [r4, r0] adds r0, r6, r0 movs r1, 0x1 ldrsb r1, [r4, r1] adds r1, r7, r1 ldrh r2, [r4, 0x2] bl MapGridSetMetatileIdAt mov r0, r8 cmp r0, 0 beq _0806968E movs r0, 0 ldrsb r0, [r4, r0] adds r0, r6, r0 movs r1, 0x1 ldrsb r1, [r4, r1] adds r1, r7, r1 bl CurrentMapDrawMetatileAt _0806968E: movs r0, 0x4 ldrsb r0, [r5, r0] adds r0, r6, r0 movs r1, 0x5 ldrsb r1, [r5, r1] adds r1, r7, r1 ldrh r2, [r5, 0x6] bl MapGridSetMetatileIdAt mov r0, r8 cmp r0, 0 beq _080696B6 movs r0, 0x4 ldrsb r0, [r5, r0] adds r0, r6, r0 movs r1, 0x5 ldrsb r1, [r5, r1] adds r1, r7, r1 bl CurrentMapDrawMetatileAt _080696B6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8069638 thumb_func_start sub_80696C0 sub_80696C0: @ 80696C0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, _080696E0 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 bl sub_8069638 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080696E0: .4byte gUnknown_08376384 thumb_func_end sub_80696C0 thumb_func_start sub_80696E4 sub_80696E4: @ 80696E4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, _08069704 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 bl sub_8069638 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069704: .4byte gUnknown_083763A4 thumb_func_end sub_80696E4 thumb_func_start sub_8069708 sub_8069708: @ 8069708 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, _08069728 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 adds r1, r4, 0 adds r2, r5, 0 bl sub_8069638 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069728: .4byte gUnknown_083763C4 thumb_func_end sub_8069708 thumb_func_start sub_806972C sub_806972C: @ 806972C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r10, r8 lsls r1, 16 lsrs r7, r1, 16 mov r9, r7 lsls r2, 16 asrs r6, r2, 16 lsls r3, 16 asrs r5, r3, 16 adds r0, r6, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80576A0 lsls r0, 24 cmp r0, 0 beq _08069770 lsls r0, r7, 16 asrs r0, 16 cmp r0, r5 ble _080697B6 _0806976C: movs r0, 0 b _080697B8 _08069770: adds r0, r4, 0 bl sub_80576B4 lsls r0, 24 cmp r0, 0 beq _08069788 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 cmp r0, r5 bge _080697B6 b _0806976C _08069788: adds r0, r4, 0 bl sub_80576C8 lsls r0, 24 cmp r0, 0 beq _080697A0 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 cmp r0, r6 ble _080697B6 b _0806976C _080697A0: adds r0, r4, 0 bl sub_80576DC lsls r0, 24 cmp r0, 0 beq _080697B6 mov r1, r10 lsls r0, r1, 16 asrs r0, 16 cmp r0, r6 blt _0806976C _080697B6: movs r0, 0x1 _080697B8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806972C thumb_func_start sub_80697C8 sub_80697C8: @ 80697C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r2, 16 lsrs r2, 16 mov r8, r2 mov r10, r8 lsls r3, 16 lsrs r7, r3, 16 mov r9, r7 lsls r0, 16 asrs r6, r0, 16 lsls r1, 16 asrs r5, r1, 16 adds r0, r6, 0 adds r1, r5, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_80576A0 lsls r0, 24 cmp r0, 0 beq _0806980C lsls r0, r7, 16 asrs r0, 16 cmp r5, r0 bge _08069852 _08069808: movs r0, 0 b _08069854 _0806980C: adds r0, r4, 0 bl sub_80576B4 lsls r0, 24 cmp r0, 0 beq _08069824 mov r1, r9 lsls r0, r1, 16 asrs r0, 16 cmp r5, r0 ble _08069852 b _08069808 _08069824: adds r0, r4, 0 bl sub_80576C8 lsls r0, 24 cmp r0, 0 beq _0806983C mov r1, r8 lsls r0, r1, 16 asrs r0, 16 cmp r6, r0 bge _08069852 b _08069808 _0806983C: adds r0, r4, 0 bl sub_80576DC lsls r0, 24 cmp r0, 0 beq _08069852 mov r1, r10 lsls r0, r1, 16 asrs r0, 16 cmp r6, r0 bgt _08069808 _08069852: movs r0, 0x1 _08069854: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80697C8 thumb_func_start sub_8069864 sub_8069864: @ 8069864 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08069898 adds r4, r1, r0 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords movs r1, 0x2 ldrsh r0, [r4, r1] adds r6, r5, 0 cmp r0, 0x1 beq _080698BE cmp r0, 0x1 bgt _0806989C cmp r0, 0 beq _080698A2 b _080699CE .align 2, 0 _08069898: .4byte 0x03004b28 _0806989C: cmp r0, 0x2 beq _0806998C b _080699CE _080698A2: mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x4] ldrh r0, [r5] strh r0, [r4, 0x6] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r3, 0 ldrsh r1, [r5, r3] movs r2, 0x1 bl sub_80696E4 b _080699CA _080698BE: mov r0, sp movs r7, 0 ldrsh r1, [r0, r7] movs r2, 0x4 ldrsh r0, [r4, r2] cmp r1, r0 bne _080698D8 movs r3, 0 ldrsh r1, [r5, r3] movs r7, 0x6 ldrsh r0, [r4, r7] cmp r1, r0 beq _080699CE _080698D8: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r5, 0x6 ldrsh r3, [r4, r5] bl sub_806972C cmp r0, 0 beq _08069920 movs r7, 0x4 ldrsh r0, [r4, r7] movs r2, 0x6 ldrsh r1, [r4, r2] movs r2, 0x1 bl sub_80696C0 movs r3, 0x4 ldrsh r0, [r4, r3] movs r5, 0x6 ldrsh r1, [r4, r5] movs r2, 0 bl sub_8069708 ldrh r0, [r4, 0x4] strh r0, [r4, 0x8] ldrh r0, [r4, 0x6] strh r0, [r4, 0xA] movs r0, 0x2 strh r0, [r4, 0x2] movs r0, 0x8 strh r0, [r4, 0xC] b _0806992A _08069920: movs r7, 0x1 negs r7, r7 adds r0, r7, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] _0806992A: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] adds r5, r6, 0 movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 ldrsh r2, [r4, r3] movs r7, 0x6 ldrsh r3, [r4, r7] bl sub_80697C8 cmp r0, 0 beq _0806995E mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] movs r2, 0x1 bl sub_80696C0 movs r0, 0x2 strh r0, [r4, 0x2] movs r0, 0x8 strh r0, [r4, 0xC] _0806995E: mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x4] ldrh r0, [r6] strh r0, [r4, 0x6] mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r5, 0 ldrsh r1, [r6, r5] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsPacifidlogLog lsls r0, 24 cmp r0, 0 beq _080699CE movs r0, 0x46 bl audio_play b _080699CE _0806998C: ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] lsls r0, 16 cmp r0, 0 bne _080699CE mov r0, sp movs r7, 0 ldrsh r0, [r0, r7] movs r2, 0 ldrsh r1, [r5, r2] movs r2, 0x1 bl sub_80696E4 movs r3, 0x8 ldrsh r0, [r4, r3] movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _080699CA movs r5, 0xA ldrsh r0, [r4, r5] cmp r0, r1 beq _080699CA movs r7, 0x8 ldrsh r0, [r4, r7] movs r2, 0xA ldrsh r1, [r4, r2] movs r2, 0x1 bl sub_8069708 _080699CA: movs r0, 0x1 strh r0, [r4, 0x2] _080699CE: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8069864 thumb_func_start sub_80699D8 sub_80699D8: @ 80699D8 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r5, r1, 16 bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08069A32 lsls r0, r4, 16 asrs r4, r0, 16 lsls r0, r5, 16 asrs r5, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, _08069A14 cmp r1, r0 beq _08069A18 adds r0, 0x8 cmp r1, r0 beq _08069A28 b _08069A32 .align 2, 0 _08069A14: .4byte 0x0000024e _08069A18: ldr r2, _08069A24 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _08069A32 .align 2, 0 _08069A24: .4byte 0x0000024f _08069A28: ldr r2, _08069A38 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _08069A32: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069A38: .4byte 0x00000257 thumb_func_end sub_80699D8 thumb_func_start sub_8069A3C sub_8069A3C: @ 8069A3C push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r5, r1, 16 bl PlayerGetZCoord lsls r0, 24 lsrs r0, 24 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08069A96 lsls r0, r4, 16 asrs r4, r0, 16 lsls r0, r5, 16 asrs r5, r0, 16 adds r0, r4, 0 adds r1, r5, 0 bl MapGridGetMetatileIdAt adds r1, r0, 0 ldr r0, _08069A78 cmp r1, r0 beq _08069A7C adds r0, 0x8 cmp r1, r0 beq _08069A8C b _08069A96 .align 2, 0 _08069A78: .4byte 0x0000024f _08069A7C: ldr r2, _08069A88 adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt b _08069A96 .align 2, 0 _08069A88: .4byte 0x0000024e _08069A8C: ldr r2, _08069A9C adds r0, r4, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _08069A96: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069A9C: .4byte 0x00000256 thumb_func_end sub_8069A3C thumb_func_start sub_8069AA0 sub_8069AA0: @ 8069AA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08069ADC adds r6, r1, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords movs r0, 0x2 ldrsh r5, [r6, r0] mov r9, r4 cmp r5, 0x1 beq _08069B34 cmp r5, 0x1 bgt _08069AE0 cmp r5, 0 beq _08069AE8 b _08069CA6 .align 2, 0 _08069ADC: .4byte 0x03004b28 _08069AE0: cmp r5, 0x2 bne _08069AE6 b _08069C14 _08069AE6: b _08069CA6 _08069AE8: mov r0, sp ldrh r0, [r0] strh r0, [r6, 0x4] mov r1, r9 ldrh r0, [r1] strh r0, [r6, 0x6] mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] movs r3, 0 ldrsh r1, [r1, r3] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsFortreeBridge lsls r0, 24 cmp r0, 0 bne _08069B12 b _08069CA2 _08069B12: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0 ldrsh r1, [r2, r3] bl sub_80699D8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0 ldrsh r1, [r2, r3] bl CurrentMapDrawMetatileAt b _08069CA2 _08069B34: ldrh r0, [r6, 0x6] mov r8, r0 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] ldrh r2, [r6, 0x4] mov r10, r2 movs r3, 0x4 ldrsh r7, [r6, r3] cmp r0, r7 bne _08069B5C mov r0, r9 movs r2, 0 ldrsh r1, [r0, r2] mov r3, r8 lsls r0, r3, 16 asrs r0, 16 cmp r1, r0 bne _08069B5C b _08069CA6 _08069B5C: mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0 ldrsh r1, [r2, r3] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsFortreeBridge lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] mov r0, r8 lsls r4, r0, 16 asrs r1, r4, 16 adds r0, r7, 0 bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsFortreeBridge lsls r0, 24 lsrs r7, r0, 24 bl PlayerGetZCoord movs r1, 0 ands r5, r0 lsls r0, r5, 24 adds r5, r4, 0 cmp r0, 0 bne _08069BA4 movs r1, 0x1 _08069BA4: cmp r1, 0 beq _08069BB8 ldr r1, [sp, 0x4] cmp r1, 0x1 beq _08069BB2 cmp r7, 0x1 bne _08069BB8 _08069BB2: movs r0, 0x47 bl audio_play _08069BB8: cmp r7, 0 beq _08069BF4 mov r2, r10 lsls r4, r2, 16 asrs r4, 16 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 bl sub_8069A3C adds r0, r4, 0 adds r1, r5, 0 bl CurrentMapDrawMetatileAt mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] mov r2, r9 movs r3, 0 ldrsh r1, [r2, r3] bl sub_80699D8 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] mov r2, r9 movs r3, 0 ldrsh r1, [r2, r3] bl CurrentMapDrawMetatileAt _08069BF4: mov r0, r10 strh r0, [r6, 0x8] mov r1, r8 strh r1, [r6, 0xA] mov r0, sp ldrh r0, [r0] strh r0, [r6, 0x4] mov r2, r9 ldrh r0, [r2] strh r0, [r6, 0x6] cmp r7, 0 beq _08069CA6 movs r0, 0x10 strh r0, [r6, 0xC] movs r0, 0x2 strh r0, [r6, 0x2] _08069C14: ldrh r0, [r6, 0xC] subs r0, 0x1 strh r0, [r6, 0xC] ldrh r3, [r6, 0x8] mov r10, r3 ldrh r0, [r6, 0xA] mov r8, r0 movs r1, 0xC ldrsh r0, [r6, r1] movs r1, 0x7 bl __modsi3 lsls r0, 16 asrs r0, 16 cmp r0, 0x7 bhi _08069C9A lsls r0, 2 ldr r1, _08069C40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08069C40: .4byte _08069C44 .align 2, 0 _08069C44: .4byte _08069C64 .4byte _08069C9A .4byte _08069C9A .4byte _08069C9A .4byte _08069C76 .4byte _08069C9A .4byte _08069C9A .4byte _08069C9A _08069C64: mov r2, r10 lsls r0, r2, 16 asrs r0, 16 mov r3, r8 lsls r1, r3, 16 asrs r1, 16 bl CurrentMapDrawMetatileAt b _08069C9A _08069C76: mov r0, r10 lsls r5, r0, 16 asrs r5, 16 mov r1, r8 lsls r4, r1, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_80699D8 adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt adds r0, r5, 0 adds r1, r4, 0 bl sub_8069A3C _08069C9A: movs r2, 0xC ldrsh r0, [r6, r2] cmp r0, 0 bne _08069CA6 _08069CA2: movs r0, 0x1 strh r0, [r6, 0x2] _08069CA6: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8069AA0 thumb_func_start sub_8069CB8 sub_8069CB8: @ 8069CB8 push {lr} lsls r1, 16 lsrs r1, 16 lsls r0, 16 ldr r2, _08069CE8 adds r0, r2 lsrs r0, 16 cmp r0, 0xA bhi _08069CF4 lsls r0, r1, 16 asrs r1, r0, 16 ldr r2, _08069CEC adds r0, r2 lsrs r0, 16 cmp r0, 0xD bhi _08069CF4 ldr r0, _08069CF0 lsls r1, 1 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _08069CF4 movs r0, 0x1 b _08069CF6 .align 2, 0 _08069CE8: .4byte 0xfffd0000 _08069CEC: .4byte 0xfffa0000 _08069CF0: .4byte gUnknown_083763E4 _08069CF4: movs r0, 0 _08069CF6: pop {r1} bx r1 thumb_func_end sub_8069CB8 thumb_func_start sub_8069CFC sub_8069CFC: @ 8069CFC push {r4,r5,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r4, r1, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_8069CB8 cmp r0, 0 beq _08069D2A ldr r1, _08069D30 lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] bl GetVarPointer subs r2, r5, 0x3 movs r1, 0x1 lsls r1, r2 ldrh r2, [r0] orrs r1, r2 strh r1, [r0] _08069D2A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08069D30: .4byte gUnknown_083763E4 thumb_func_end sub_8069CFC thumb_func_start sub_8069D34 sub_8069D34: @ 8069D34 push {r4,r5,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r4, r1, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_8069CB8 cmp r0, 0 beq _08069D66 ldr r1, _08069D6C lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] bl VarGet lsls r0, 16 subs r2, r5, 0x3 movs r1, 0x80 lsls r1, 9 lsls r1, r2 ands r1, r0 cmp r1, 0 bne _08069D70 _08069D66: movs r0, 0 b _08069D72 .align 2, 0 _08069D6C: .4byte gUnknown_083763E4 _08069D70: movs r0, 0x1 _08069D72: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8069D34 thumb_func_start sub_8069D78 sub_8069D78: @ 8069D78 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _08069DCC ldr r0, [r0] ldr r1, [r0] mov r9, r1 ldr r7, [r0, 0x4] movs r5, 0 cmp r5, r9 bge _08069DC0 _08069D90: movs r4, 0 adds r0, r5, 0x1 mov r8, r0 cmp r4, r7 bge _08069DBA lsls r6, r5, 16 _08069D9C: lsls r1, r4, 16 asrs r1, 16 asrs r0, r6, 16 bl sub_8069D34 cmp r0, 0x1 bne _08069DB4 adds r1, r4, 0x7 adds r0, r5, 0x7 ldr r2, _08069DD0 bl MapGridSetMetatileIdAt _08069DB4: adds r4, 0x1 cmp r4, r7 blt _08069D9C _08069DBA: mov r5, r8 cmp r5, r9 blt _08069D90 _08069DC0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069DCC: .4byte 0x0202e828 _08069DD0: .4byte 0x0000020e thumb_func_end sub_8069D78 thumb_func_start sub_8069DD4 sub_8069DD4: @ 8069DD4 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08069DF8 adds r5, r1, r0 movs r1, 0x2 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08069E20 cmp r0, 0x1 bgt _08069DFC cmp r0, 0 beq _08069E08 b _08069F56 .align 2, 0 _08069DF8: .4byte 0x03004b28 _08069DFC: cmp r0, 0x2 beq _08069EB6 cmp r0, 0x3 bne _08069E06 b _08069F10 _08069E06: b _08069F56 _08069E08: mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r4] strh r0, [r5, 0x6] b _08069F52 _08069E20: mov r7, sp adds r7, 0x2 mov r0, sp adds r1, r7, 0 bl PlayerGetDestCoords mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x4 ldrsh r0, [r5, r3] cmp r1, r0 bne _08069E4A movs r0, 0 ldrsh r1, [r7, r0] movs r3, 0x6 ldrsh r0, [r5, r3] cmp r1, r0 bne _08069E4A b _08069F56 _08069E4A: strh r2, [r5, 0x4] ldrh r0, [r7] strh r0, [r5, 0x6] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r7, r2] bl MapGridGetMetatileBehaviorAt adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, _08069E8C bl GetVarPointer adds r6, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_8057540 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08069E90 ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] movs r0, 0x4 strh r0, [r5, 0xC] movs r0, 0x2 b _08069EA8 .align 2, 0 _08069E8C: .4byte 0x00004022 _08069E90: adds r0, r4, 0 bl sub_8057554 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08069F56 movs r0, 0 strh r0, [r6] movs r0, 0x4 strh r0, [r5, 0xC] movs r0, 0x3 _08069EA8: strh r0, [r5, 0x2] mov r0, sp ldrh r0, [r0] strh r0, [r5, 0x8] ldrh r0, [r7] strh r0, [r5, 0xA] b _08069F56 _08069EB6: ldrh r1, [r5, 0xC] movs r3, 0xC ldrsh r0, [r5, r3] cmp r0, 0 bne _08069F1A mov r1, sp ldrh r0, [r5, 0x8] strh r0, [r1] mov r4, sp adds r4, 0x2 ldrh r0, [r5, 0xA] strh r0, [r4] movs r0, 0x2A bl audio_play mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _08069F0C bl MapGridSetMetatileIdAt mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 asrs r0, 16 ldrh r1, [r4] subs r1, 0x7 lsls r1, 16 asrs r1, 16 bl sub_8069CFC b _08069F52 .align 2, 0 _08069F0C: .4byte 0x0000020e _08069F10: ldrh r1, [r5, 0xC] movs r3, 0xC ldrsh r0, [r5, r3] cmp r0, 0 beq _08069F20 _08069F1A: subs r0, r1, 0x1 strh r0, [r5, 0xC] b _08069F56 _08069F20: mov r1, sp ldrh r0, [r5, 0x8] strh r0, [r1] mov r4, sp adds r4, 0x2 ldrh r0, [r5, 0xA] strh r0, [r4] movs r0, 0x29 bl audio_play mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _08069F60 bl MapGridSetMetatileIdAt mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] bl CurrentMapDrawMetatileAt _08069F52: movs r0, 0x1 strh r0, [r5, 0x2] _08069F56: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08069F60: .4byte 0x00000206 thumb_func_end sub_8069DD4 thumb_func_start sub_8069F64 sub_8069F64: @ 8069F64 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08069FE8 adds r5, r1, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x2 ldrsh r0, [r5, r3] cmp r1, r0 bne _08069F9E movs r0, 0 ldrsh r1, [r4, r0] movs r3, 0x4 ldrsh r0, [r5, r3] cmp r1, r0 beq _0806A02A _08069F9E: strh r2, [r5, 0x2] ldrh r0, [r4] strh r0, [r5, 0x4] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsAsh lsls r0, 24 cmp r0, 0 beq _0806A02A mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileIdAt ldr r1, _08069FEC cmp r0, r1 bne _08069FF4 mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _08069FF0 movs r3, 0x4 bl ash b _0806A006 .align 2, 0 _08069FE8: .4byte 0x03004b28 _08069FEC: .4byte 0x0000020a _08069FF0: .4byte 0x00000212 _08069FF4: mov r0, sp movs r3, 0 ldrsh r0, [r0, r3] movs r2, 0 ldrsh r1, [r4, r2] ldr r2, _0806A034 movs r3, 0x4 bl ash _0806A006: movs r0, 0x87 lsls r0, 1 movs r1, 0x1 bl sub_80A92D4 lsls r0, 24 cmp r0, 0 beq _0806A02A ldr r0, _0806A038 bl GetVarPointer adds r2, r0, 0 ldrh r1, [r2] ldr r0, _0806A03C cmp r1, r0 bhi _0806A02A adds r0, r1, 0x1 strh r0, [r2] _0806A02A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A034: .4byte 0x00000206 _0806A038: .4byte 0x00004048 _0806A03C: .4byte 0x0000270e thumb_func_end sub_8069F64 thumb_func_start sub_806A040 sub_806A040: @ 806A040 push {r4,r5,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r4, r1, 16 adds r0, r5, 0 adds r1, r4, 0 bl MapGridGetMetatileIdAt ldr r1, _0806A074 ldr r2, _0806A078 cmp r0, r1 bne _0806A05C subs r2, 0x31 _0806A05C: adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A074: .4byte 0x0000022f _0806A078: .4byte 0x00000237 thumb_func_end sub_806A040 thumb_func_start sub_806A07C sub_806A07C: @ 806A07C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0806A164 adds r5, r1, r0 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r6, r0, 16 ldrh r1, [r5, 0x8] movs r3, 0x8 ldrsh r0, [r5, r3] adds r7, r4, 0 cmp r0, 0 beq _0806A0CE subs r0, r1, 0x1 strh r0, [r5, 0x8] lsls r0, 16 cmp r0, 0 bne _0806A0CE movs r1, 0xA ldrsh r0, [r5, r1] movs r2, 0xC ldrsh r1, [r5, r2] bl sub_806A040 _0806A0CE: ldrh r1, [r5, 0xE] movs r3, 0xE ldrsh r0, [r5, r3] cmp r0, 0 beq _0806A0EE subs r0, r1, 0x1 strh r0, [r5, 0xE] lsls r0, 16 cmp r0, 0 bne _0806A0EE movs r1, 0x10 ldrsh r0, [r5, r1] movs r2, 0x12 ldrsh r1, [r5, r2] bl sub_806A040 _0806A0EE: lsls r0, r6, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_8057818 lsls r0, 24 cmp r0, 0 beq _0806A106 ldr r0, _0806A168 movs r1, 0 bl VarSet _0806A106: mov r0, sp ldrh r2, [r0] movs r3, 0 ldrsh r1, [r0, r3] movs r3, 0x4 ldrsh r0, [r5, r3] cmp r1, r0 bne _0806A122 movs r0, 0 ldrsh r1, [r7, r0] movs r3, 0x6 ldrsh r0, [r5, r3] cmp r1, r0 beq _0806A182 _0806A122: strh r2, [r5, 0x4] adds r4, r7, 0 ldrh r0, [r4] strh r0, [r5, 0x6] adds r0, r6, 0 bl sub_805782C lsls r0, 24 cmp r0, 0 beq _0806A182 bl sub_80E6034 lsls r0, 16 asrs r0, 16 cmp r0, 0x4 beq _0806A14A ldr r0, _0806A168 movs r1, 0 bl VarSet _0806A14A: movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _0806A16C movs r0, 0x3 strh r0, [r5, 0x8] mov r0, sp ldrh r0, [r0] strh r0, [r5, 0xA] ldrh r0, [r4] strh r0, [r5, 0xC] b _0806A182 .align 2, 0 _0806A164: .4byte 0x03004b28 _0806A168: .4byte 0x00004022 _0806A16C: movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0 bne _0806A182 movs r0, 0x3 strh r0, [r5, 0xE] mov r0, sp ldrh r0, [r0] strh r0, [r5, 0x10] ldrh r0, [r7] strh r0, [r5, 0x12] _0806A182: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A07C thumb_func_start sub_806A18C sub_806A18C: @ 806A18C push {r4,r5,lr} adds r3, r0, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsrs r4, r2, 16 ldrh r0, [r3] subs r0, 0x1 strh r0, [r3] lsls r0, 16 cmp r0, 0 bne _0806A1A8 movs r2, 0xE8 b _0806A1BC _0806A1A8: ldr r1, _0806A1E4 movs r2, 0 ldrsh r0, [r3, r2] cmp r0, 0 bge _0806A1B4 adds r0, 0x7 _0806A1B4: asrs r0, 3 lsls r0, 1 adds r0, r1 ldrh r2, [r0] _0806A1BC: lsls r5, 16 asrs r5, 16 lsls r4, 16 asrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl MapGridSetMetatileIdAt adds r0, r5, 0 adds r1, r4, 0 bl CurrentMapDrawMetatileAt adds r0, r5, 0 adds r1, r4, 0 movs r2, 0xE8 bl MapGridSetMetatileIdAt pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806A1E4: .4byte gUnknown_08376418 thumb_func_end sub_806A18C thumb_func_start sub_806A1E8 sub_806A1E8: @ 806A1E8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _0806A230 adds r4, r1, r0 mov r5, sp adds r5, 0x2 mov r0, sp adds r1, r5, 0 bl PlayerGetDestCoords ldr r0, _0806A234 movs r1, 0x4 ldrsb r1, [r0, r1] lsls r1, 8 ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 orrs r0, r1 lsls r0, 16 lsrs r7, r0, 16 movs r0, 0x2 ldrsh r1, [r4, r0] mov r8, r5 cmp r1, 0 beq _0806A238 cmp r1, 0x1 beq _0806A264 b _0806A2B8 .align 2, 0 _0806A230: .4byte 0x03004b28 _0806A234: .4byte 0x02025734 _0806A238: strh r7, [r4] mov r0, sp ldrh r0, [r0] strh r0, [r4, 0x4] ldrh r0, [r5] strh r0, [r4, 0x6] movs r0, 0x1 strh r0, [r4, 0x2] strh r1, [r4, 0x8] strh r1, [r4, 0xE] strh r1, [r4, 0x14] strh r1, [r4, 0x1A] b _0806A2B8 _0806A252: movs r0, 0x20 strh r0, [r1] mov r0, sp ldrh r0, [r0] strh r0, [r1, 0x2] mov r2, r8 ldrh r0, [r2] strh r0, [r1, 0x4] b _0806A2B8 _0806A264: mov r0, sp movs r3, 0x4 ldrsh r1, [r4, r3] ldrh r2, [r0] movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bne _0806A280 movs r0, 0x6 ldrsh r1, [r4, r0] movs r3, 0 ldrsh r0, [r5, r3] cmp r1, r0 beq _0806A2B8 _0806A280: strh r2, [r4, 0x4] ldrh r0, [r5] strh r0, [r4, 0x6] mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r5, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsMuddySlope lsls r0, 24 cmp r0, 0 beq _0806A2B8 movs r6, 0x4 adds r1, r4, 0 adds r1, 0x8 _0806A2A8: movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 beq _0806A252 adds r1, 0x6 adds r6, 0x3 cmp r6, 0xD ble _0806A2A8 _0806A2B8: ldr r2, _0806A2D4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806A2D8 movs r1, 0 ldrsh r0, [r4, r1] cmp r7, r0 beq _0806A2D8 strh r7, [r4] ldrh r0, [r2, 0x4] ldrh r1, [r2, 0x8] b _0806A2DC .align 2, 0 _0806A2D4: .4byte 0x0202e844 _0806A2D8: movs r0, 0 movs r1, 0 _0806A2DC: lsls r0, 16 asrs r0, 16 mov r8, r0 lsls r0, r1, 16 asrs r7, r0, 16 adds r5, r4, 0 adds r5, 0x8 adds r4, r5, 0 movs r6, 0x9 _0806A2EE: movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 beq _0806A312 ldrh r0, [r4, 0x2] mov r3, r8 subs r0, r3 strh r0, [r4, 0x2] ldrh r0, [r4, 0x4] subs r0, r7 strh r0, [r4, 0x4] movs r0, 0x2 ldrsh r1, [r4, r0] movs r3, 0x4 ldrsh r2, [r4, r3] adds r0, r5, 0 bl sub_806A18C _0806A312: adds r4, 0x6 adds r5, 0x6 subs r6, 0x3 cmp r6, 0 bge _0806A2EE add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A1E8 thumb_func_start sub_806A328 sub_806A328: @ 806A328 push {lr} ldr r0, _0806A350 bl FlagSet bl RtcCalcLocalTime ldr r2, _0806A354 adds r2, 0xA0 ldr r3, _0806A358 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] str r1, [r2, 0x4] ldr r0, _0806A35C ldrh r1, [r3] bl VarSet pop {r0} bx r0 .align 2, 0 _0806A350: .4byte 0x00000835 _0806A354: .4byte 0x02024ea4 _0806A358: .4byte 0x03004038 _0806A35C: .4byte 0x00004040 thumb_func_end sub_806A328 thumb_func_start InTrainerHill InTrainerHill: @ 806A360 push {r4,lr} ldr r0, _0806A388 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0806A380 bl RtcCalcLocalTime ldr r4, _0806A38C adds r0, r4, 0 bl sub_806A390 adds r0, r4, 0 bl sub_806A3F4 _0806A380: pop {r4} pop {r0} bx r0 .align 2, 0 _0806A388: .4byte 0x00000835 _0806A38C: .4byte 0x03004038 thumb_func_end InTrainerHill thumb_func_start sub_806A390 sub_806A390: @ 806A390 push {r4-r6,lr} adds r5, r0, 0 ldr r0, _0806A3F0 bl GetVarPointer adds r6, r0, 0 ldrh r0, [r6] movs r2, 0 ldrsh r1, [r5, r2] cmp r0, r1 beq _0806A3EA cmp r0, r1 bgt _0806A3EA ldrh r4, [r5] subs r4, r0 lsls r4, 16 lsrs r4, 16 bl sub_80690B4 adds r0, r4, 0 bl sub_80FA220 adds r0, r4, 0 bl sub_80BE8C4 adds r0, r4, 0 bl sub_8080834 adds r0, r4, 0 bl sub_80401D8 adds r0, r4, 0 bl sub_810D2F4 adds r0, r4, 0 bl sub_810D410 adds r0, r4, 0 bl sub_810F618 adds r0, r4, 0 bl sub_8145AA4 ldrh r0, [r5] strh r0, [r6] _0806A3EA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A3F0: .4byte 0x00004040 thumb_func_end sub_806A390 thumb_func_start sub_806A3F4 sub_806A3F4: @ 806A3F4 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 mov r4, sp ldr r6, _0806A448 mov r0, sp adds r1, r6, 0 adds r2, r5, 0 bl CalcTimeDifference mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 1 adds r0, r1 lsls r1, r0, 4 subs r1, r0 lsls r1, 5 movs r2, 0x2 ldrsb r2, [r4, r2] lsls r0, r2, 4 subs r0, r2 lsls r0, 2 adds r1, r0 movs r0, 0x3 ldrsb r0, [r4, r0] adds r0, r1, r0 cmp r0, 0 beq _0806A43E cmp r0, 0 blt _0806A43E bl BerryTreeTimeUpdate ldr r0, [r5] ldr r1, [r5, 0x4] str r0, [r6] str r1, [r6, 0x4] _0806A43E: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A448: .4byte 0x02024f44 thumb_func_end sub_806A3F4 thumb_func_start sub_806A44C sub_806A44C: @ 806A44C push {lr} bl sub_806A328 ldr r0, _0806A45C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_end sub_806A44C thumb_func_start sub_806A460 sub_806A460: @ 806A460 push {lr} ldr r0, _0806A474 bl SetMainCallback2 ldr r1, _0806A478 ldr r0, _0806A47C str r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _0806A474: .4byte Cb2_StartWallClock _0806A478: .4byte 0x03001770 _0806A47C: .4byte sub_806A44C thumb_func_end sub_806A460 thumb_func_start sub_806A480 sub_806A480: @ 806A480 push {lr} adds r3, r0, 0 ldr r2, _0806A4B0 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0xC ldrsh r1, [r0, r2] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r1, r0 beq _0806A596 strh r1, [r3, 0x30] subs r0, r1, 0x1 cmp r0, 0x5 bhi _0806A596 lsls r0, 2 ldr r1, _0806A4B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806A4B0: .4byte 0x03004b20 _0806A4B4: .4byte _0806A4B8 .align 2, 0 _0806A4B8: .4byte _0806A4D0 .4byte _0806A4F4 .4byte _0806A518 .4byte _0806A53C .4byte _0806A566 .4byte _0806A590 _0806A4D0: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x35 b _0806A55E _0806A4F4: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x56 b _0806A55E _0806A518: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x6B b _0806A55E _0806A53C: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x80 _0806A55E: strh r0, [r3, 0x20] movs r0, 0x44 strh r0, [r3, 0x22] b _0806A596 _0806A566: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x2 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x42 ands r0, r1 strb r0, [r2] movs r0, 0x9B strh r0, [r3, 0x20] movs r0, 0x50 strh r0, [r3, 0x22] b _0806A596 _0806A590: adds r0, r3, 0 bl DestroySprite _0806A596: pop {r0} bx r0 thumb_func_end sub_806A480 thumb_func_start sub_806A59C sub_806A59C: @ 806A59C push {lr} adds r3, r0, 0 ldr r2, _0806A5CC movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0xC ldrsh r1, [r0, r2] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r1, r0 beq _0806A696 strh r1, [r3, 0x30] subs r0, r1, 0x1 cmp r0, 0x5 bhi _0806A696 lsls r0, 2 ldr r1, _0806A5D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806A5CC: .4byte 0x03004b20 _0806A5D0: .4byte _0806A5D4 .align 2, 0 _0806A5D4: .4byte _0806A5EC .4byte _0806A610 .4byte _0806A634 .4byte _0806A658 .4byte _0806A682 .4byte _0806A690 _0806A5EC: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x35 b _0806A67A _0806A610: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x56 b _0806A67A _0806A634: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x6B b _0806A67A _0806A658: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x80 _0806A67A: strh r0, [r3, 0x20] movs r0, 0x5C strh r0, [r3, 0x22] b _0806A696 _0806A682: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0806A696 _0806A690: adds r0, r3, 0 bl DestroySprite _0806A696: pop {r0} bx r0 thumb_func_end sub_806A59C thumb_func_start sub_806A69C sub_806A69C: @ 806A69C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0806A70C bl LoadSpritePalette ldr r0, _0806A710 mov r8, r0 movs r1, 0x35 movs r2, 0x44 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 ldr r6, _0806A714 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r6, 0 adds r4, 0x1C adds r2, r0, r4 ldr r1, _0806A718 str r1, [r2] adds r0, r6 strh r5, [r0, 0x2E] ldr r1, _0806A71C strh r1, [r0, 0x30] mov r0, r8 movs r1, 0x35 movs r2, 0x44 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r4 ldr r1, _0806A720 str r1, [r4] adds r0, r6 strh r5, [r0, 0x2E] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x30] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A70C: .4byte gUnknown_083764BC _0806A710: .4byte gSpriteTemplate_83764E8 _0806A714: .4byte 0x02020004 _0806A718: .4byte sub_806A480 _0806A71C: .4byte 0x0000ffff _0806A720: .4byte sub_806A59C thumb_func_end sub_806A69C thumb_func_start sub_806A724 sub_806A724: @ 806A724 push {lr} ldr r0, _0806A734 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _0806A734: .4byte gUnknown_083764BC thumb_func_end sub_806A724 thumb_func_start sub_806A738 sub_806A738: @ 806A738 push {lr} movs r0, 0x3 movs r1, 0x8 movs r2, 0x19 movs r3, 0xB bl Reset pop {r0} bx r0 thumb_func_end sub_806A738 thumb_func_start sub_806A74C sub_806A74C: @ 806A74C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 adds r0, r2, 0 adds r4, r3, 0 ldr r6, [sp, 0x24] ldr r2, [sp, 0x28] mov r9, r2 mov r2, r10 lsls r2, 24 lsrs r2, 24 mov r10, r2 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r0, 16 lsrs r0, 16 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r7, _0806A83C ldr r1, _0806A840 bl __umodsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0x18 bl __umodsi3 mov r8, r0 mov r2, r8 lsls r2, 24 lsrs r2, 24 mov r8, r2 adds r0, r6, 0 movs r1, 0x3C bl __umodsi3 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 mov r0, r9 movs r1, 0x3C bl __umodsi3 mov r9, r0 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _0806A844 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C44 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 ldr r1, _0806A848 bl StringCopy adds r7, r0, 0 adds r0, r4, 0 mov r1, r8 movs r2, 0x12 movs r3, 0x1 bl sub_8072C44 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 ldr r4, _0806A84C adds r1, r4, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r7, r0, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 mov r1, r9 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _0806A83C mov r1, r10 ldr r2, [sp] bl Print add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A83C: .4byte 0x020234cc _0806A840: .4byte 0x00002710 _0806A844: .4byte 0x020231cc _0806A848: .4byte gUnknown_0842D4F6 _0806A84C: .4byte gUnknown_08376500 thumb_func_end sub_806A74C thumb_func_start sub_806A850 sub_806A850: @ 806A850 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 adds r4, r2, 0 adds r5, r3, 0 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r0, 0x3 movs r1, 0x8 movs r2, 0x19 movs r3, 0xB bl DrawDefaultWindow ldr r0, _0806A8A8 movs r1, 0x14 movs r2, 0x9 bl Print str r4, [sp] str r5, [sp, 0x4] movs r0, 0x4 movs r1, 0x9 adds r2, r6, 0 mov r3, r8 bl sub_806A74C add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A8A8: .4byte gUnknown_0842D4FC thumb_func_end sub_806A850 thumb_func_start sub_806A8AC sub_806A8AC: @ 806A8AC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r3, 16 lsrs r3, 16 adds r1, r3, 0 movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _0806A8C6 ldrh r0, [r4] subs r0, 0x1 b _0806A8E0 _0806A8C6: movs r0, 0x40 ands r0, r3 cmp r0, 0 beq _0806A8D4 ldrh r0, [r4] adds r0, 0x1 b _0806A8FE _0806A8D4: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0806A8EE ldrh r0, [r4] subs r0, 0xA _0806A8E0: strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r5 bge _0806A90A strh r2, [r4] b _0806A90A _0806A8EE: movs r0, 0x10 ands r1, r0 cmp r1, 0 bne _0806A8FA movs r0, 0 b _0806A90C _0806A8FA: ldrh r0, [r4] adds r0, 0xA _0806A8FE: strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r2 ble _0806A90A strh r5, [r4] _0806A90A: movs r0, 0x1 _0806A90C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806A8AC thumb_func_start sub_806A914 sub_806A914: @ 806A914 lsls r0, 24 lsrs r0, 24 ldr r2, _0806A928 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] bx lr .align 2, 0 _0806A928: .4byte 0x03004b20 thumb_func_end sub_806A914 thumb_func_start sub_806A92C sub_806A92C: @ 806A92C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_806A738 bl sub_806A724 ldr r1, _0806A950 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806A954 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0806A950: .4byte 0x03004b20 _0806A954: .4byte sub_806A914 thumb_func_end sub_806A92C thumb_func_start sub_806A958 sub_806A958: @ 806A958 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, _0806A99C mov r8, r0 adds r5, r7, r0 ldrb r4, [r5, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 ldr r1, _0806A9A0 adds r2, r0, r1 ldr r1, _0806A9A4 ldrh r3, [r1, 0x2E] movs r0, 0x2 ands r0, r3 mov r12, r1 cmp r0, 0 beq _0806A9AC mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0806A9A8 str r1, [r0] movs r0, 0 strh r0, [r5, 0x2] movs r0, 0x6 b _0806A9CC .align 2, 0 _0806A99C: .4byte 0x03004b28 _0806A9A0: .4byte gUnknown_08376414 _0806A9A4: .4byte 0x03001770 _0806A9A8: .4byte sub_806A92C _0806A9AC: movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _0806A9BA ldrb r0, [r2, 0x7] cmp r0, 0 bne _0806A9CC _0806A9BA: mov r3, r12 ldrh r1, [r3, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0806A9D6 ldrb r0, [r2, 0x6] cmp r0, 0 beq _0806A9D6 _0806A9CC: strh r0, [r5, 0x4] movs r0, 0x5 bl audio_play b _0806AA58 _0806A9D6: cmp r4, 0x5 bne _0806AA24 mov r0, r12 ldrh r1, [r0, 0x2E] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0806AA58 ldr r1, _0806AA18 ldrh r0, [r5, 0x6] strh r0, [r1] ldrh r0, [r5, 0x8] strb r0, [r1, 0x2] ldrh r0, [r5, 0xA] strb r0, [r1, 0x3] ldrh r0, [r5, 0xC] strb r0, [r1, 0x4] movs r0, 0x5 bl audio_play ldr r1, _0806AA1C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806AA20 str r1, [r0] strh r4, [r5, 0x2] movs r0, 0x6 strh r0, [r5, 0x4] b _0806AA58 .align 2, 0 _0806AA18: .4byte 0x03004038 _0806AA1C: .4byte 0x03004b20 _0806AA20: .4byte sub_806A92C _0806AA24: ldrb r0, [r2] lsls r0, 1 adds r0, r5, r0 ldrh r1, [r2, 0x2] ldrh r2, [r2, 0x4] mov r3, r12 ldrh r4, [r3, 0x30] movs r3, 0xC0 ands r3, r4 bl sub_806A8AC cmp r0, 0 beq _0806AA58 movs r0, 0x5 bl audio_play ldrh r2, [r5, 0x6] ldrb r3, [r5, 0x8] ldrb r0, [r5, 0xA] str r0, [sp] ldrb r0, [r5, 0xC] str r0, [sp, 0x4] movs r0, 0x4 movs r1, 0x9 bl sub_806A74C _0806AA58: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806A958 thumb_func_start sub_806AA64 sub_806AA64: @ 806AA64 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r6, r5, 2 adds r6, r5 lsls r6, 3 ldr r0, _0806AACC mov r8, r0 adds r4, r6, r0 movs r0, 0 strh r0, [r4] ldr r3, _0806AAD0 ldrh r0, [r3] strh r0, [r4, 0x6] movs r1, 0x2 ldrsb r1, [r3, r1] strh r1, [r4, 0x8] movs r2, 0x3 ldrsb r2, [r3, r2] strh r2, [r4, 0xA] ldrb r3, [r3, 0x4] lsls r3, 24 asrs r3, 24 strh r3, [r4, 0xC] ldrh r0, [r4, 0x6] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 bl sub_806A850 adds r0, r5, 0 bl sub_806A69C movs r0, 0x2 strh r0, [r4, 0x4] movs r0, 0x8 negs r0, r0 add r8, r0 add r6, r8 ldr r0, _0806AAD4 str r0, [r6] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806AACC: .4byte 0x03004b28 _0806AAD0: .4byte 0x03004038 _0806AAD4: .4byte sub_806A958 thumb_func_end sub_806AA64 thumb_func_start sub_806AAD8 sub_806AAD8: @ 806AAD8 push {r4-r7,lr} sub sp, 0x4 movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] movs r0, 0 bl SetVBlankCallback movs r2, 0xA0 lsls r2, 19 mov r0, sp strh r4, [r0] ldr r1, _0806AB94 str r0, [r1] str r2, [r1, 0x4] ldr r0, _0806AB98 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, _0806AB9C movs r0, 0x81 lsls r0, 24 mov r12, r0 _0806AB16: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _0806AB16 strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 movs r1, 0x80 bl ResetOamRange bl LoadOam bl remove_some_task bl dp12_8087EA4 bl ResetSpriteData bl ResetTasks bl ResetPaletteFade ldr r4, _0806ABA0 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C movs r1, 0x80 lsls r1, 19 movs r2, 0x88 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _0806ABA4 bl SetVBlankCallback ldr r0, _0806ABA8 bl SetMainCallback2 ldr r0, _0806ABAC movs r1, 0x50 bl CreateTask add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AB94: .4byte 0x040000d4 _0806AB98: .4byte 0x81000200 _0806AB9C: .4byte 0x81000800 _0806ABA0: .4byte gWindowConfig_81E6CE4 _0806ABA4: .4byte sub_806ABC8 _0806ABA8: .4byte sub_806ABB0 _0806ABAC: .4byte sub_806ACCC thumb_func_end sub_806AAD8 thumb_func_start sub_806ABB0 sub_806ABB0: @ 806ABB0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_806ABB0 thumb_func_start sub_806ABC8 sub_806ABC8: @ 806ABC8 push {lr} bl ProcessSpriteCopyRequests bl LoadOam bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_806ABC8 thumb_func_start sub_806ABDC sub_806ABDC: @ 806ABDC push {r4,lr} adds r4, r0, 0 bl sub_8071FFC adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl Print pop {r4} pop {r0} bx r0 thumb_func_end sub_806ABDC thumb_func_start sub_806ABF4 sub_806ABF4: @ 806ABF4 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0806AC14 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0806AC18 cmp r0, 0x1 beq _0806AC80 b _0806ACC4 .align 2, 0 _0806AC14: .4byte 0x03004b28 _0806AC18: bl sub_8071EF4 movs r0, 0 movs r1, 0 movs r2, 0x14 movs r3, 0xA bl DrawDefaultWindow ldr r0, _0806AC98 movs r1, 0x1 movs r2, 0x1 bl Print ldr r0, _0806AC9C ldrh r2, [r0] ldrb r3, [r0, 0x2] ldrb r1, [r0, 0x3] str r1, [sp] ldrb r0, [r0, 0x4] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x3 bl sub_806A74C ldr r0, _0806ACA0 movs r1, 0x1 movs r2, 0x5 bl Print ldr r1, _0806ACA4 adds r0, r1, 0 adds r0, 0xA0 ldrh r2, [r0] adds r0, 0x2 ldrb r3, [r0] adds r0, 0x1 ldrb r0, [r0] str r0, [sp] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x7 bl sub_806A74C ldr r0, _0806ACA8 bl sub_806ABDC ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0806AC80: ldr r0, _0806ACAC ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806ACB0 adds r0, r5, 0 bl DestroyTask bl DoSoftReset b _0806ACC4 .align 2, 0 _0806AC98: .4byte gUnknown_08411804 _0806AC9C: .4byte 0x03004038 _0806ACA0: .4byte gUnknown_08411819 _0806ACA4: .4byte 0x02024ea4 _0806ACA8: .4byte gUnknown_084117E3 _0806ACAC: .4byte 0x03001770 _0806ACB0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806ACC4 movs r0, 0x5 bl audio_play adds r0, r5, 0 bl DestroyTask _0806ACC4: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806ABF4 thumb_func_start sub_806ACCC sub_806ACCC: @ 806ACCC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0806ACF4 adds r5, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x6 bls _0806ACE8 b _0806AEC4 _0806ACE8: lsls r0, 2 ldr r1, _0806ACF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806ACF4: .4byte 0x03004b28 _0806ACF8: .4byte _0806ACFC .align 2, 0 _0806ACFC: .4byte _0806AD18 .4byte _0806AD34 .4byte _0806AD80 .4byte _0806ADD8 .4byte _0806AE5C .4byte _0806AE8C .4byte _0806AEAE _0806AD18: movs r0, 0x1 negs r0, r0 ldr r1, _0806AD30 str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AD30: .4byte 0x0000ffff _0806AD34: ldr r0, _0806AD5C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806AD42 b _0806AEC4 _0806AD42: ldr r0, _0806AD60 ldrh r0, [r0] cmp r0, 0 beq _0806AD4E cmp r0, 0x2 bne _0806AD68 _0806AD4E: ldr r0, _0806AD64 bl sub_806ABDC movs r0, 0x5 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AD5C: .4byte 0x0202f388 _0806AD60: .4byte 0x03005eb8 _0806AD64: .4byte gUnknown_084118A0 _0806AD68: bl RtcCalcLocalTime ldr r0, _0806AD7C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x2] b _0806ADFC .align 2, 0 _0806AD7C: .4byte sub_806ABF4 _0806AD80: ldr r2, _0806ADC4 movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0x1 bne _0806AD96 b _0806AEC4 _0806AD96: bl sub_8071EF4 ldr r0, _0806ADC8 bl sub_806ABDC ldr r2, _0806ADCC ldr r0, _0806ADD0 adds r0, 0xA0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] ldr r0, _0806ADD4 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x2] movs r0, 0x3 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806ADC4: .4byte 0x03004b20 _0806ADC8: .4byte gUnknown_0841182F _0806ADCC: .4byte 0x03004038 _0806ADD0: .4byte 0x02024ea4 _0806ADD4: .4byte sub_806AA64 _0806ADD8: ldr r2, _0806AE04 movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _0806AEC4 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _0806AE08 ldrb r0, [r5, 0x2] bl DestroyTask _0806ADFC: movs r0, 0x2 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AE04: .4byte 0x03004b20 _0806AE08: ldrb r0, [r5, 0x2] bl DestroyTask bl RtcReset ldr r4, _0806AE4C movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x2 ldrsb r1, [r4, r1] movs r2, 0x3 ldrsb r2, [r4, r2] movs r3, 0x4 ldrsb r3, [r4, r3] bl RtcCalcLocalTimeOffset ldr r2, _0806AE50 adds r2, 0xA0 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [r2] str r1, [r2, 0x4] ldr r0, _0806AE54 ldrh r1, [r4] bl VarSet bl sub_80691A0 ldr r0, _0806AE58 bl sub_806ABDC movs r0, 0x4 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AE4C: .4byte 0x03004038 _0806AE50: .4byte 0x02024ea4 _0806AE54: .4byte 0x00004040 _0806AE58: .4byte gUnknown_08411846 _0806AE5C: movs r0, 0 bl sub_8125D44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806AE7C ldr r0, _0806AE78 bl sub_806ABDC movs r0, 0x49 bl audio_play b _0806AE88 .align 2, 0 _0806AE78: .4byte gUnknown_08411881 _0806AE7C: ldr r0, _0806AECC bl sub_806ABDC movs r0, 0x16 bl audio_play _0806AE88: movs r0, 0x5 strh r0, [r5] _0806AE8C: ldr r0, _0806AED0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806AEC4 movs r0, 0x1 negs r0, r0 ldr r1, _0806AED4 str r1, [sp] movs r1, 0x1 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x6 strh r0, [r5] _0806AEAE: ldr r0, _0806AED8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806AEC4 adds r0, r4, 0 bl DestroyTask bl DoSoftReset _0806AEC4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806AECC: .4byte gUnknown_08411891 _0806AED0: .4byte 0x03001770 _0806AED4: .4byte 0x0000ffff _0806AED8: .4byte 0x0202f388 thumb_func_end sub_806ACCC thumb_func_start sub_806AEDC sub_806AEDC: @ 806AEDC push {r4-r6,lr} sub sp, 0x4 bl AnimateSprites bl BuildOamBuffer ldr r0, _0806AF2C ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 ldr r1, _0806AF30 adds r5, r0, r1 movs r6, 0 _0806AEF8: ldrb r0, [r5] lsls r0, 3 ldrb r1, [r5, 0x1] lsls r1, 3 ldr r2, [r5, 0x4] lsls r3, r6, 5 movs r4, 0x80 lsls r4, 2 orrs r3, r4 str r3, [sp] movs r3, 0 bl sub_800142C adds r5, 0x8 adds r6, 0x1 cmp r6, 0x5 ble _0806AEF8 bl RunTasks bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806AF2C: .4byte 0x0202e8fa _0806AF30: .4byte gUnknown_08376BB4 thumb_func_end sub_806AEDC thumb_func_start sub_806AF34 sub_806AF34: @ 806AF34 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_806B548 pop {r0} bx r0 thumb_func_end sub_806AF34 thumb_func_start sub_806AF4C sub_806AF4C: @ 806AF4C push {r4,r5,lr} adds r4, r2, 0 lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r3, 24 lsrs r3, 24 cmp r1, 0xFF beq _0806AF64 ldr r0, _0806AF84 strh r1, [r0] _0806AF64: ldr r0, _0806AF88 movs r5, 0x96 lsls r5, 2 adds r1, r0, r5 strb r2, [r1] movs r2, 0x97 lsls r2, 2 adds r1, r0, r2 str r4, [r1] adds r5, 0x1 adds r0, r5 strb r3, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806AF84: .4byte 0x020239f8 _0806AF88: .4byte 0x0201b000 thumb_func_end sub_806AF4C thumb_func_start sub_806AF8C sub_806AF8C: @ 806AF8C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r3, 24 lsrs r3, 24 bl sub_806AF4C ldr r0, _0806AFA8 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0806AFA8: .4byte sub_806B460 thumb_func_end sub_806AF8C thumb_func_start sub_806AFAC sub_806AFAC: @ 806AFAC push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, _0806AFCC lsls r3, r0, 1 adds r3, r0 lsls r3, 2 adds r3, r2 ldr r2, [r3] ldrb r3, [r3, 0x8] bl sub_806AF8C pop {r0} bx r0 .align 2, 0 _0806AFCC: .4byte gUnknown_08376C74 thumb_func_end sub_806AFAC thumb_func_start sub_806AFD0 sub_806AFD0: @ 806AFD0 push {r4,r5,lr} ldr r1, _0806AFF0 movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 ldrsh r0, [r0, r2] adds r4, r1, 0 cmp r0, 0x9 bls _0806AFE6 b _0806B11A _0806AFE6: lsls r0, 2 ldr r1, _0806AFF4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806AFF0: .4byte 0x0201b000 _0806AFF4: .4byte _0806AFF8 .align 2, 0 _0806AFF8: .4byte _0806B020 .4byte _0806B060 .4byte _0806B066 .4byte _0806B07A .4byte _0806B0A4 .4byte _0806B0AA .4byte _0806B0BC .4byte _0806B0C2 .4byte _0806B0D4 .4byte _0806B0EC _0806B020: ldr r0, _0806B048 adds r5, r4, r0 movs r1, 0 ldrsh r3, [r5, r1] ldr r0, _0806B04C ldrb r0, [r0] cmp r3, r0 bge _0806B054 movs r2, 0x98 lsls r2, 2 adds r0, r4, r2 ldrb r0, [r0] ldrb r1, [r5] movs r2, 0x64 muls r2, r3 ldr r3, _0806B050 adds r2, r3 bl sub_806D90C b _0806B114 .align 2, 0 _0806B048: .4byte 0x00000266 _0806B04C: .4byte 0x03004350 _0806B050: .4byte 0x03004360 _0806B054: movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _0806B0E0 _0806B060: bl sub_806DA98 b _0806B0D8 _0806B066: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] bl sub_806DC34 movs r2, 0x99 lsls r2, 2 adds r1, r4, r2 b _0806B0E0 _0806B07A: movs r1, 0x98 lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] ldr r2, _0806B0A0 adds r5, r4, r2 ldrb r1, [r5] bl sub_806BD58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B114 movs r0, 0 strh r0, [r5] movs r0, 0x99 lsls r0, 2 adds r1, r4, r0 b _0806B0E0 .align 2, 0 _0806B0A0: .4byte 0x00000266 _0806B0A4: bl sub_806E334 b _0806B0D8 _0806B0AA: bl sub_806E0C4 ldr r1, _0806B0B8 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _0806B0E0 .align 2, 0 _0806B0B8: .4byte 0x0201b000 _0806B0BC: bl sub_806E53C b _0806B0D8 _0806B0C2: bl nullsub_13 ldr r1, _0806B0D0 movs r0, 0x99 lsls r0, 2 adds r1, r0 b _0806B0E0 .align 2, 0 _0806B0D0: .4byte 0x0201b000 _0806B0D4: bl sub_806E6C8 _0806B0D8: ldr r1, _0806B0E8 movs r2, 0x99 lsls r2, 2 adds r1, r2 _0806B0E0: ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0806B11A .align 2, 0 _0806B0E8: .4byte 0x0201b000 _0806B0EC: ldr r0, _0806B110 adds r5, r4, r0 ldrb r0, [r5] bl sub_806B58C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B114 movs r1, 0 strh r1, [r5] movs r2, 0x99 lsls r2, 2 adds r0, r4, r2 strh r1, [r0] movs r0, 0x1 b _0806B11C .align 2, 0 _0806B110: .4byte 0x00000266 _0806B114: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _0806B11A: movs r0, 0 _0806B11C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806AFD0 thumb_func_start sub_806B124 sub_806B124: @ 806B124 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, _0806B144 ldr r1, _0806B148 adds r0, r1 ldrb r0, [r0] cmp r0, 0x11 bls _0806B13A b _0806B450 _0806B13A: lsls r0, 2 ldr r1, _0806B14C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806B144: .4byte 0x03001770 _0806B148: .4byte 0x0000043c _0806B14C: .4byte _0806B150 .align 2, 0 _0806B150: .4byte _0806B198 .4byte _0806B240 .4byte _0806B246 .4byte _0806B27C .4byte _0806B282 .4byte _0806B2AC .4byte _0806B2B2 .4byte _0806B2D0 .4byte _0806B2EC .4byte _0806B318 .4byte _0806B344 .4byte _0806B37C .4byte _0806B382 .4byte _0806B3C0 .4byte _0806B3CC .4byte _0806B3E4 .4byte _0806B40C .4byte _0806B440 _0806B198: movs r0, 0 bl SetVBlankCallback movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r2, sp, 0x8 mov r8, r2 add r2, sp, 0x4 movs r6, 0 ldr r1, _0806B22C movs r5, 0x80 lsls r5, 5 ldr r7, _0806B230 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0806B1BC: strh r6, [r2] add r0, sp, 0x4 str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _0806B1BC strh r6, [r2] add r2, sp, 0x4 str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r3, r12 orrs r0, r3 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x8] ldr r2, _0806B22C mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 add r0, sp, 0x4 strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r2, _0806B234 ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, _0806B238 ldr r2, _0806B23C adds r1, r2 b _0806B42C .align 2, 0 _0806B22C: .4byte 0x040000d4 _0806B230: .4byte 0x81000800 _0806B234: .4byte 0x0202f388 _0806B238: .4byte 0x03001770 _0806B23C: .4byte 0x0000043c _0806B240: bl remove_some_task b _0806B426 _0806B246: bl sub_806B4A8 ldr r1, _0806B26C movs r2, 0x99 lsls r2, 2 adds r0, r1, r2 movs r2, 0 strh r2, [r0] ldr r3, _0806B270 adds r0, r1, r3 strh r2, [r0] movs r0, 0x9A lsls r0, 2 adds r1, r0 strh r2, [r1] ldr r1, _0806B274 ldr r2, _0806B278 adds r1, r2 b _0806B42C .align 2, 0 _0806B26C: .4byte 0x0201b000 _0806B270: .4byte 0x00000266 _0806B274: .4byte 0x03001770 _0806B278: .4byte 0x0000043c _0806B27C: bl ResetSpriteData b _0806B426 _0806B282: ldr r0, _0806B2A0 movs r1, 0x96 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0806B298 cmp r0, 0x5 beq _0806B298 bl ResetTasks _0806B298: ldr r1, _0806B2A4 ldr r2, _0806B2A8 adds r1, r2 b _0806B42C .align 2, 0 _0806B2A0: .4byte 0x0201b000 _0806B2A4: .4byte 0x03001770 _0806B2A8: .4byte 0x0000043c _0806B2AC: bl FreeAllSpritePalettes b _0806B426 _0806B2B2: ldr r4, _0806B2CC movs r1, 0x97 lsls r1, 2 adds r0, r4, r1 ldr r0, [r0] movs r1, 0 bl CreateTask movs r2, 0x98 lsls r2, 2 adds r1, r4, r2 strb r0, [r1] b _0806B426 .align 2, 0 _0806B2CC: .4byte 0x0201b000 _0806B2D0: ldr r0, _0806B2E0 bl SetUpWindowConfig ldr r1, _0806B2E4 ldr r0, _0806B2E8 adds r1, r0 b _0806B42C .align 2, 0 _0806B2E0: .4byte gWindowConfig_81E6C90 _0806B2E4: .4byte 0x03001770 _0806B2E8: .4byte 0x0000043c _0806B2EC: ldr r4, _0806B308 ldr r1, _0806B30C adds r0, r4, 0 bl InitWindowFromConfig adds r0, r4, 0 movs r1, 0x1 bl MultistepInitWindowTileData ldr r1, _0806B310 ldr r2, _0806B314 adds r1, r2 b _0806B42C .align 2, 0 _0806B308: .4byte 0x03004210 _0806B30C: .4byte gWindowConfig_81E6C90 _0806B310: .4byte 0x03001770 _0806B314: .4byte 0x0000043c _0806B318: bl MultistepLoadFont cmp r0, 0 bne _0806B322 b _0806B450 _0806B322: ldr r0, _0806B338 movs r3, 0x99 lsls r3, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0] ldr r1, _0806B33C ldr r0, _0806B340 adds r1, r0 b _0806B42C .align 2, 0 _0806B338: .4byte 0x0201b000 _0806B33C: .4byte 0x03001770 _0806B340: .4byte 0x0000043c _0806B344: ldr r0, _0806B368 movs r1, 0x99 lsls r1, 2 adds r4, r0, r1 ldrb r0, [r4] bl sub_806D718 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B374 movs r0, 0 strh r0, [r4] ldr r1, _0806B36C ldr r2, _0806B370 adds r1, r2 b _0806B42C .align 2, 0 _0806B368: .4byte 0x0201b000 _0806B36C: .4byte 0x03001770 _0806B370: .4byte 0x0000043c _0806B374: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0806B450 _0806B37C: bl sub_809D51C b _0806B426 _0806B382: ldr r2, _0806B3B0 ldr r0, _0806B3B4 movs r1, 0x96 lsls r1, 2 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r2, 0x4 adds r0, r2 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B450 ldr r1, _0806B3B8 ldr r2, _0806B3BC adds r1, r2 b _0806B42C .align 2, 0 _0806B3B0: .4byte gUnknown_08376C74 _0806B3B4: .4byte 0x0201b000 _0806B3B8: .4byte 0x03001770 _0806B3BC: .4byte 0x0000043c _0806B3C0: ldr r0, _0806B3C8 bl sub_8071C58 b _0806B426 .align 2, 0 _0806B3C8: .4byte gWindowConfig_81E6CC8 _0806B3CC: bl sub_8071C94 cmp r0, 0 beq _0806B450 ldr r1, _0806B3DC ldr r0, _0806B3E0 adds r1, r0 b _0806B42C .align 2, 0 _0806B3DC: .4byte 0x03001770 _0806B3E0: .4byte 0x0000043c _0806B3E4: ldr r0, _0806B3FC ldr r1, _0806B400 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_806D538 ldr r1, _0806B404 ldr r2, _0806B408 adds r1, r2 b _0806B42C .align 2, 0 _0806B3FC: .4byte 0x0201b000 _0806B400: .4byte 0x00000259 _0806B404: .4byte 0x03001770 _0806B408: .4byte 0x0000043c _0806B40C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, _0806B434 ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] _0806B426: ldr r1, _0806B438 ldr r3, _0806B43C adds r1, r3 _0806B42C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0806B450 .align 2, 0 _0806B434: .4byte 0x0202f388 _0806B438: .4byte 0x03001770 _0806B43C: .4byte 0x0000043c _0806B440: ldr r0, _0806B44C bl SetVBlankCallback movs r0, 0x1 b _0806B452 .align 2, 0 _0806B44C: .4byte sub_806AF34 _0806B450: movs r0, 0 _0806B452: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_806B124 thumb_func_start sub_806B460 sub_806B460: @ 806B460 push {lr} b _0806B470 _0806B464: bl sub_80F9344 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806B49C _0806B470: bl sub_806B124 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B464 ldr r1, _0806B4A0 movs r2, 0x96 lsls r2, 2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x5 beq _0806B496 adds r2, 0x8 adds r0, r1, r2 ldrb r0, [r0] movs r1, 0 bl sub_806BF74 _0806B496: ldr r0, _0806B4A4 bl SetMainCallback2 _0806B49C: pop {r0} bx r0 .align 2, 0 _0806B4A0: .4byte 0x0201b000 _0806B4A4: .4byte sub_806AEDC thumb_func_end sub_806B460 thumb_func_start sub_806B4A8 sub_806B4A8: @ 806B4A8 push {lr} movs r0, 0 bl SetHBlankCallback movs r1, 0x80 lsls r1, 19 movs r2, 0xFA lsls r2, 5 adds r0, r2, 0 strh r0, [r1] adds r1, 0x8 ldr r2, _0806B50C adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0806B510 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0806B514 adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 ldr r2, _0806B518 adds r0, r2, 0 strh r0, [r1] ldr r0, _0806B51C movs r1, 0 strh r1, [r0] subs r0, 0x40 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r1, [r0] ldr r2, _0806B520 strh r1, [r2] ldr r1, _0806B524 adds r0, r1, 0 strh r0, [r2] pop {r0} bx r0 .align 2, 0 _0806B50C: .4byte 0x00001e05 _0806B510: .4byte 0x00000703 _0806B514: .4byte 0x00000f08 _0806B518: .4byte 0x00000602 _0806B51C: .4byte 0x04000050 _0806B520: .4byte 0x0400001e _0806B524: .4byte 0x0000ffff thumb_func_end sub_806B4A8 thumb_func_start sub_806B528 sub_806B528: @ 806B528 push {lr} ldr r0, _0806B53C ldrh r1, [r0] movs r0, 0x4B ands r0, r1 cmp r0, 0x4B beq _0806B540 movs r0, 0 b _0806B542 .align 2, 0 _0806B53C: .4byte 0x020239f8 _0806B540: movs r0, 0x1 _0806B542: pop {r1} bx r1 thumb_func_end sub_806B528 thumb_func_start sub_806B548 sub_806B548: @ 806B548 push {r4,lr} ldr r0, _0806B574 ldr r1, _0806B578 adds r4, r0, r1 ldrb r3, [r4] cmp r3, 0 beq _0806B56E ldr r1, _0806B57C ldr r2, _0806B580 ldr r0, _0806B584 str r1, [r0] str r2, [r0, 0x4] ldr r1, _0806B588 str r1, [r0, 0x8] ldr r0, [r0, 0x8] cmp r3, 0x2 bne _0806B56E movs r0, 0 strb r0, [r4] _0806B56E: pop {r4} pop {r0} bx r0 .align 2, 0 _0806B574: .4byte 0x0201b000 _0806B578: .4byte 0x00000261 _0806B57C: .4byte 0x020221cc _0806B580: .4byte 0x06003000 _0806B584: .4byte 0x040000d4 _0806B588: .4byte 0x80000400 thumb_func_end sub_806B548 thumb_func_start sub_806B58C sub_806B58C: @ 806B58C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl battle_type_is_double lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0806B5A8 ldr r0, _0806B5A4 strb r2, [r0] b _0806B5C8 .align 2, 0 _0806B5A4: .4byte 0x0202e8fa _0806B5A8: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B5C0 ldr r1, _0806B5BC movs r0, 0x2 b _0806B5C4 .align 2, 0 _0806B5BC: .4byte 0x0202e8fa _0806B5C0: ldr r1, _0806B5E4 movs r0, 0x1 _0806B5C4: strb r0, [r1] adds r0, r1, 0 _0806B5C8: ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, _0806B5E8 adds r4, r1, r0 cmp r5, 0x8 bls _0806B5DA b _0806B900 _0806B5DA: lsls r0, r5, 2 ldr r1, _0806B5EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806B5E4: .4byte 0x0202e8fa _0806B5E8: .4byte gUnknown_083769A8 _0806B5EC: .4byte _0806B5F0 .align 2, 0 _0806B5F0: .4byte _0806B614 .4byte _0806B628 .4byte _0806B638 .4byte _0806B694 .4byte _0806B71A .4byte _0806B7A2 .4byte _0806B832 .4byte _0806B8C6 .4byte _0806B8E8 _0806B614: ldr r0, _0806B624 movs r2, 0x80 lsls r2, 4 movs r1, 0 bl memset b _0806B900 .align 2, 0 _0806B624: .4byte 0x020221cc _0806B628: ldrb r0, [r4] ldrb r1, [r4, 0x1] movs r2, 0x3 bl sub_806B9A4 adds r0, r4, 0 movs r1, 0 b _0806B8A8 _0806B638: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806B666 ldr r0, _0806B65C ldrb r0, [r0] cmp r0, 0x1 bls _0806B660 ldrb r0, [r4, 0x2] ldrb r1, [r4, 0x3] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x2 movs r1, 0x1 b _0806B8A8 .align 2, 0 _0806B65C: .4byte 0x03004350 _0806B660: ldrb r0, [r4, 0x2] ldrb r1, [r4, 0x3] b _0806B8BC _0806B666: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B684 ldrb r0, [r4, 0x2] ldrb r1, [r4, 0x3] movs r2, 0x4 bl sub_806B9A4 adds r0, r4, 0x2 movs r1, 0x1 movs r2, 0x4 b _0806B8AA _0806B684: ldrb r0, [r4, 0x2] ldrb r1, [r4, 0x3] movs r2, 0x3 bl sub_806B9A4 adds r0, r4, 0x2 movs r1, 0x1 b _0806B8A8 _0806B694: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806B6C2 ldr r0, _0806B6B8 ldrb r0, [r0] cmp r0, 0x2 bls _0806B6BC ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x4 movs r1, 0x2 b _0806B8A8 .align 2, 0 _0806B6B8: .4byte 0x03004350 _0806B6BC: ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] b _0806B8BC _0806B6C2: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B6F6 ldr r0, _0806B6EC movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B6F0 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x4 movs r1, 0x2 b _0806B8A8 .align 2, 0 _0806B6EC: .4byte 0x03004428 _0806B6F0: ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] b _0806B8BC _0806B6F6: ldr r0, _0806B710 ldrb r0, [r0] cmp r0, 0x2 bls _0806B714 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x4 movs r1, 0x2 b _0806B8A8 .align 2, 0 _0806B710: .4byte 0x03004350 _0806B714: ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] b _0806B8BC _0806B71A: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806B74A ldr r0, _0806B740 ldrb r0, [r0] cmp r0, 0x3 bls _0806B744 ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x6 movs r1, 0x3 b _0806B8A8 .align 2, 0 _0806B740: .4byte 0x03004350 _0806B744: ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] b _0806B8BC _0806B74A: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B77E ldr r0, _0806B774 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B778 ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x6 movs r1, 0x3 b _0806B8A8 .align 2, 0 _0806B774: .4byte 0x0300448c _0806B778: ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] b _0806B8BC _0806B77E: ldr r0, _0806B798 ldrb r0, [r0] cmp r0, 0x3 bls _0806B79C ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0x6 movs r1, 0x3 b _0806B8A8 .align 2, 0 _0806B798: .4byte 0x03004350 _0806B79C: ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] b _0806B8BC _0806B7A2: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806B7D2 ldr r0, _0806B7C8 ldrb r0, [r0] cmp r0, 0x4 bls _0806B7CC ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0 adds r0, 0x8 movs r1, 0x4 b _0806B8A8 .align 2, 0 _0806B7C8: .4byte 0x03004350 _0806B7CC: ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] b _0806B8BC _0806B7D2: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B80A ldr r0, _0806B800 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B804 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] movs r2, 0 movs r3, 0x4 bl sub_806BA94 adds r0, r4, 0 adds r0, 0x8 movs r1, 0x4 movs r2, 0x4 b _0806B8AA .align 2, 0 _0806B800: .4byte 0x030044f0 _0806B804: ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] b _0806B884 _0806B80A: ldr r0, _0806B828 ldrb r0, [r0] cmp r0, 0x4 bls _0806B82C ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0 adds r0, 0x8 movs r1, 0x4 b _0806B8A8 .align 2, 0 _0806B828: .4byte 0x03004350 _0806B82C: ldrb r0, [r4, 0x8] ldrb r1, [r4, 0x9] b _0806B8BC _0806B832: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806B84C ldr r0, _0806B848 ldrb r0, [r0] cmp r0, 0x5 bhi _0806B896 b _0806B8B8 .align 2, 0 _0806B848: .4byte 0x03004350 _0806B84C: bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806B88E ldr r0, _0806B87C movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B880 ldrb r0, [r4, 0xA] ldrb r1, [r4, 0xB] movs r2, 0 movs r3, 0x4 bl sub_806BA94 adds r0, r4, 0 adds r0, 0xA movs r1, 0x5 movs r2, 0x4 b _0806B8AA .align 2, 0 _0806B87C: .4byte 0x03004554 _0806B880: ldrb r0, [r4, 0xA] ldrb r1, [r4, 0xB] _0806B884: movs r2, 0x1 movs r3, 0x4 bl sub_806BA94 b _0806B900 _0806B88E: ldr r0, _0806B8B4 ldrb r0, [r0] cmp r0, 0x5 bls _0806B8B8 _0806B896: ldrb r0, [r4, 0xA] ldrb r1, [r4, 0xB] movs r2, 0 movs r3, 0x3 bl sub_806BA94 adds r0, r4, 0 adds r0, 0xA movs r1, 0x5 _0806B8A8: movs r2, 0x3 _0806B8AA: movs r3, 0 bl sub_806BF24 b _0806B900 .align 2, 0 _0806B8B4: .4byte 0x03004350 _0806B8B8: ldrb r0, [r4, 0xA] ldrb r1, [r4, 0xB] _0806B8BC: movs r2, 0x1 movs r3, 0x3 bl sub_806BA94 b _0806B900 _0806B8C6: ldr r0, _0806B8E4 movs r1, 0x96 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bne _0806B8DA movs r0, 0x1 bl sub_806BB9C _0806B8DA: movs r0, 0x1 bl sub_806BBEC b _0806B900 .align 2, 0 _0806B8E4: .4byte 0x0201b000 _0806B8E8: ldr r0, _0806B8F8 ldr r1, _0806B8FC adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0x1 b _0806B902 .align 2, 0 _0806B8F8: .4byte 0x0201b000 _0806B8FC: .4byte 0x00000261 _0806B900: movs r0, 0 _0806B902: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_806B58C thumb_func_start sub_806B908 sub_806B908: @ 806B908 push {r4,r5,lr} ldr r0, _0806B948 movs r2, 0x80 lsls r2, 4 movs r1, 0 bl memset ldr r1, _0806B94C movs r0, 0x3 strb r0, [r1] ldr r0, _0806B950 adds r4, r0, 0 adds r4, 0x24 ldr r5, _0806B954 ldrb r0, [r4] ldrb r1, [r4, 0x1] movs r2, 0x3 bl sub_806B9A4 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B958 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] movs r2, 0 movs r3, 0x3 bl sub_806BA94 b _0806B964 .align 2, 0 _0806B948: .4byte 0x020221cc _0806B94C: .4byte 0x0202e8fa _0806B950: .4byte gUnknown_083769A8 _0806B954: .4byte 0x030043c4 _0806B958: ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] movs r2, 0x1 movs r3, 0x3 bl sub_806BA94 _0806B964: adds r0, r5, 0 adds r0, 0x64 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806B980 ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] movs r2, 0 movs r3, 0x3 bl sub_806BA94 b _0806B98C _0806B980: ldrb r0, [r4, 0x6] ldrb r1, [r4, 0x7] movs r2, 0x1 movs r3, 0x3 bl sub_806BA94 _0806B98C: ldr r0, _0806B99C ldr r1, _0806B9A0 adds r0, r1 movs r1, 0x2 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806B99C: .4byte 0x0201b000 _0806B9A0: .4byte 0x00000261 thumb_func_end sub_806B908 thumb_func_start sub_806B9A4 sub_806B9A4: @ 806B9A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r2, 24 lsrs r2, 24 str r2, [sp] lsls r1, 21 lsrs r1, 16 str r1, [sp, 0x4] movs r1, 0 lsls r0, 16 mov r8, r0 asrs r0, 16 mov r10, r0 ldr r4, _0806BA2C mov r9, r4 _0806B9CA: movs r3, 0 adds r7, r1, 0x1 mov r0, r10 cmp r0, 0x1F bgt _0806BA12 mov r4, r8 asrs r2, r4, 16 lsls r0, r1, 5 ldr r4, [sp, 0x4] adds r6, r4, r0 ldr r0, _0806BA30 mov r12, r0 ldr r4, [sp] lsls r5, r4, 12 movs r0, 0xB adds r4, r1, 0 muls r4, r0 _0806B9EC: adds r0, r2, r3 cmp r0, 0 blt _0806BA02 adds r0, r6, r0 lsls r0, 1 add r0, r12 adds r1, r4, r3 add r1, r9 ldrb r1, [r1] orrs r1, r5 strh r1, [r0] _0806BA02: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xA bhi _0806BA12 adds r0, r2, r3 cmp r0, 0x1F ble _0806B9EC _0806BA12: lsls r0, r7, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _0806B9CA add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BA2C: .4byte gUnknown_083769D8 _0806BA30: .4byte 0x020221cc thumb_func_end sub_806B9A4 thumb_func_start sub_806BA34 sub_806BA34: @ 806BA34 push {r4-r7,lr} mov r7, r8 push {r7} lsls r1, 21 lsrs r1, 16 mov r8, r1 movs r1, 0 lsls r7, r0, 16 asrs r0, r7, 16 mov r12, r0 _0806BA48: movs r2, 0 adds r4, r1, 0x1 mov r5, r12 cmp r5, 0x1F bgt _0806BA7C asrs r3, r7, 16 lsls r0, r1, 5 mov r5, r8 adds r1, r5, r0 ldr r6, _0806BA90 movs r5, 0 _0806BA5E: adds r0, r3, r2 cmp r0, 0 blt _0806BA6C adds r0, r1, r0 lsls r0, 1 adds r0, r6 strh r5, [r0] _0806BA6C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bhi _0806BA7C adds r0, r3, r2 cmp r0, 0x1F ble _0806BA5E _0806BA7C: lsls r0, r4, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _0806BA48 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BA90: .4byte 0x020221cc thumb_func_end sub_806BA34 thumb_func_start sub_806BA94 sub_806BA94: @ 806BA94 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r0, r1, 16 lsls r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] ldr r1, _0806BB30 mov r9, r1 cmp r2, 0 bne _0806BABC ldr r1, _0806BB34 mov r9, r1 _0806BABC: lsls r0, 21 lsrs r0, 16 str r0, [sp, 0x4] movs r1, 0 lsls r4, 16 mov r12, r4 asrs r4, 16 mov r10, r4 _0806BACC: movs r2, 0 adds r7, r1, 0x1 mov r0, r10 cmp r0, 0x1F bgt _0806BB16 mov r4, r12 asrs r3, r4, 16 lsls r0, r1, 5 ldr r4, [sp, 0x4] adds r6, r4, r0 ldr r0, _0806BB38 mov r8, r0 ldr r4, [sp] lsls r5, r4, 12 lsls r0, r1, 2 adds r0, r1 lsls r0, 2 subs r4, r0, r1 _0806BAF0: adds r0, r3, r2 cmp r0, 0 blt _0806BB06 adds r0, r6, r0 lsls r0, 1 add r0, r8 adds r1, r4, r2 add r1, r9 ldrb r1, [r1] orrs r1, r5 strh r1, [r0] _0806BB06: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bhi _0806BB16 adds r0, r3, r2 cmp r0, 0x1F ble _0806BAF0 _0806BB16: lsls r0, r7, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _0806BACC add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BB30: .4byte gUnknown_08376A5E _0806BB34: .4byte gUnknown_08376A25 _0806BB38: .4byte 0x020221cc thumb_func_end sub_806BA94 thumb_func_start sub_806BB3C sub_806BB3C: @ 806BB3C push {r4-r7,lr} mov r7, r8 push {r7} lsls r1, 21 lsrs r1, 16 mov r8, r1 movs r1, 0 lsls r7, r0, 16 asrs r0, r7, 16 mov r12, r0 _0806BB50: movs r2, 0 adds r4, r1, 0x1 mov r5, r12 cmp r5, 0x1F bgt _0806BB84 asrs r3, r7, 16 lsls r0, r1, 5 mov r5, r8 adds r1, r5, r0 ldr r6, _0806BB98 movs r5, 0 _0806BB66: adds r0, r3, r2 cmp r0, 0 blt _0806BB74 adds r0, r1, r0 lsls r0, 1 adds r0, r6 strh r5, [r0] _0806BB74: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x12 bhi _0806BB84 adds r0, r3, r2 cmp r0, 0x1F ble _0806BB66 _0806BB84: lsls r0, r4, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _0806BB50 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BB98: .4byte 0x020221cc thumb_func_end sub_806BB3C thumb_func_start sub_806BB9C sub_806BB9C: @ 806BB9C push {r4,lr} sub sp, 0x18 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0806BBE4 mov r0, sp movs r2, 0x18 bl memcpy ldr r3, _0806BBE8 movs r2, 0 lsls r4, 12 _0806BBB6: lsls r0, r2, 1 adds r1, r0, r3 add r0, sp ldrh r0, [r0] adds r0, r4 strh r0, [r1] adds r1, 0x40 adds r0, r2, 0x6 lsls r0, 1 add r0, sp ldrh r0, [r0] adds r0, r4 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0806BBB6 add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _0806BBE4: .4byte gUnknown_08376CD4 _0806BBE8: .4byte 0x06003c30 thumb_func_end sub_806BB9C thumb_func_start sub_806BBEC sub_806BBEC: @ 806BBEC push {r4,lr} sub sp, 0x18 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0806BC34 mov r0, sp movs r2, 0x18 bl memcpy ldr r3, _0806BC38 movs r2, 0 lsls r4, 12 _0806BC06: lsls r0, r2, 1 adds r1, r0, r3 add r0, sp ldrh r0, [r0] adds r0, r4 strh r0, [r1] adds r1, 0x40 adds r0, r2, 0x6 lsls r0, 1 add r0, sp ldrh r0, [r0] adds r0, r4 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0806BC06 add sp, 0x18 pop {r4} pop {r0} bx r0 .align 2, 0 _0806BC34: .4byte gUnknown_08376CEC _0806BC38: .4byte 0x06003cb0 thumb_func_end sub_806BBEC thumb_func_start sub_806BC3C sub_806BC3C: @ 806BC3C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, _0806BCB0 bl battle_type_is_double lsls r4, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r4, r1 adds r4, r6 ldr r7, [r4] movs r6, 0 adds r0, r5, 0 movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r4, r0, 19 ldr r5, _0806BCB4 movs r0, 0x86 lsls r0, 1 adds r3, r0, 0 _0806BC7C: adds r1, r6, r4 lsls r2, r6, 1 adds r2, r7 lsls r0, r1, 1 adds r0, r5 ldrh r0, [r0] adds r0, r3, r0 strh r0, [r2] adds r2, 0x40 adds r1, 0x20 lsls r1, 1 adds r1, r5 ldrh r1, [r1] adds r0, r3, r1 strh r0, [r2] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x6 bls _0806BC7C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BCB0: .4byte gUnknown_08376918 _0806BCB4: .4byte gUnknown_08E9A300 thumb_func_end sub_806BC3C thumb_func_start unref_sub_806BCB8 unref_sub_806BCB8: @ 806BCB8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _0806BCE4 ldrb r1, [r0] cmp r4, r1 bcs _0806BCDE adds r6, r0, 0 _0806BCCA: adds r0, r4, 0 adds r1, r5, 0 bl sub_806BC3C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r6] cmp r4, r0 bcc _0806BCCA _0806BCDE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806BCE4: .4byte 0x03004350 thumb_func_end unref_sub_806BCB8 thumb_func_start sub_806BCE8 sub_806BCE8: @ 806BCE8 push {r4,r5,lr} movs r5, 0 b _0806BD46 _0806BCEE: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, _0806BD20 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0806BD38 adds r0, r4, 0 bl pokemon_get_gender lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0806BD24 cmp r0, 0xFE beq _0806BD2E adds r0, r5, 0 movs r1, 0x46 bl sub_806BC3C b _0806BD40 .align 2, 0 _0806BD20: .4byte 0x03004360 _0806BD24: adds r0, r5, 0 movs r1, 0x54 bl sub_806BC3C b _0806BD40 _0806BD2E: adds r0, r5, 0 movs r1, 0x62 bl sub_806BC3C b _0806BD40 _0806BD38: adds r0, r5, 0 movs r1, 0x46 bl sub_806BC3C _0806BD40: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0806BD46: ldr r0, _0806BD54 ldrb r0, [r0] cmp r5, r0 bcc _0806BCEE pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806BD54: .4byte 0x03004350 thumb_func_end sub_806BCE8 thumb_func_start sub_806BD58 sub_806BD58: @ 806BD58 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0806BD7C bl object_new_hidden_with_callback adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806CA18 movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0806BD7C: .4byte SpriteCallbackDummy thumb_func_end sub_806BD58 thumb_func_start sub_806BD80 sub_806BD80: @ 806BD80 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _0806BD9C ldrh r0, [r0, 0x30] cmp r0, 0x20 beq _0806BDB2 cmp r0, 0x20 bgt _0806BDA0 cmp r0, 0x10 beq _0806BDB6 b _0806BDB8 .align 2, 0 _0806BD9C: .4byte 0x03001770 _0806BDA0: cmp r0, 0x40 beq _0806BDAA cmp r0, 0x80 beq _0806BDAE b _0806BDB8 _0806BDAA: movs r4, 0xFF b _0806BDB8 _0806BDAE: movs r4, 0x1 b _0806BDB8 _0806BDB2: movs r4, 0xFE b _0806BDB8 _0806BDB6: movs r4, 0x2 _0806BDB8: lsls r0, r4, 24 cmp r0, 0 bne _0806BDDC bl sub_80F92BC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806BDD0 cmp r0, 0x2 beq _0806BDD4 b _0806BDD6 _0806BDD0: movs r4, 0xFF b _0806BDD6 _0806BDD4: movs r4, 0x1 _0806BDD6: lsls r0, r4, 24 cmp r0, 0 beq _0806BDF0 _0806BDDC: asrs r1, r0, 24 adds r0, r5, 0 bl sub_806BF74 ldr r0, _0806BDEC ldrh r0, [r0, 0x30] b _0806BE2C .align 2, 0 _0806BDEC: .4byte 0x03001770 _0806BDF0: ldr r0, _0806BE1C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806BE24 ldr r4, _0806BE20 adds r0, r5, 0 bl sub_806CA00 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x7 bne _0806BE24 movs r0, 0x2 b _0806BE2C .align 2, 0 _0806BE1C: .4byte 0x03001770 _0806BE20: .4byte 0x02020004 _0806BE24: ldr r0, _0806BE34 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 _0806BE2C: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806BE34: .4byte 0x03001770 thumb_func_end sub_806BD80 thumb_func_start sub_806BE38 sub_806BE38: @ 806BE38 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r0, _0806BE54 ldrh r1, [r0, 0x30] adds r6, r0, 0 cmp r1, 0x20 beq _0806BE6A cmp r1, 0x20 bgt _0806BE58 cmp r1, 0x10 beq _0806BE6E b _0806BE70 .align 2, 0 _0806BE54: .4byte 0x03001770 _0806BE58: cmp r1, 0x40 beq _0806BE62 cmp r1, 0x80 beq _0806BE66 b _0806BE70 _0806BE62: movs r4, 0xFF b _0806BE8E _0806BE66: movs r4, 0x1 b _0806BE8E _0806BE6A: movs r4, 0xFE b _0806BE8E _0806BE6E: movs r4, 0x2 _0806BE70: cmp r4, 0 bne _0806BE8E bl sub_80F92BC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806BE86 cmp r0, 0x2 beq _0806BE8A b _0806BE8C _0806BE86: movs r4, 0xFF b _0806BE8C _0806BE8A: movs r4, 0x1 _0806BE8C: ldr r6, _0806BEA4 _0806BE8E: ldrh r2, [r6, 0x2E] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0806BEA8 adds r0, r5, 0 bl sub_806C890 movs r0, 0x8 b _0806BEF0 .align 2, 0 _0806BEA4: .4byte 0x03001770 _0806BEA8: lsls r0, r4, 24 asrs r1, r0, 24 cmp r1, 0 beq _0806BEBA adds r0, r5, 0 bl sub_806C658 ldrh r0, [r6, 0x30] b _0806BEF0 _0806BEBA: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0806BEE8 ldr r4, _0806BEE4 adds r0, r5, 0 bl sub_806CA00 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0x7 bne _0806BEE8 movs r0, 0x2 b _0806BEF0 .align 2, 0 _0806BEE4: .4byte 0x02020004 _0806BEE8: ldr r0, _0806BEF8 ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 _0806BEF0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806BEF8: .4byte 0x03001770 thumb_func_end sub_806BE38 thumb_func_start task_pc_turn_off task_pc_turn_off: @ 806BEFC push {lr} adds r2, r0, 0 lsls r1, 24 lsrs r3, r1, 24 ldrb r0, [r2] cmp r0, 0 beq _0806BF14 ldrb r1, [r2, 0x1] movs r2, 0 bl sub_806BA94 b _0806BF1E _0806BF14: ldrb r0, [r2] ldrb r1, [r2, 0x1] adds r2, r3, 0 bl sub_806B9A4 _0806BF1E: pop {r0} bx r0 thumb_func_end task_pc_turn_off thumb_func_start sub_806BF24 sub_806BF24: @ 806BF24 push {r4-r7,lr} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r4, r2, 24 lsls r3, 24 lsrs r6, r3, 24 movs r0, 0x64 muls r1, r0 ldr r0, _0806BF70 adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806BF56 adds r0, r5, 0 movs r1, 0x39 bl PokemonGetField cmp r0, 0 bne _0806BF56 movs r4, 0x5 _0806BF56: cmp r6, 0x1 bne _0806BF60 adds r0, r4, 0x4 lsls r0, 24 lsrs r4, r0, 24 _0806BF60: adds r0, r7, 0 adds r1, r4, 0 bl task_pc_turn_off pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806BF70: .4byte 0x03004360 thumb_func_end sub_806BF24 thumb_func_start sub_806BF74 sub_806BF74: @ 806BF74 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r4, r1, 24 bl sub_806CA00 lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0806C0C4 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r5, r0, 24 mov r0, r9 adds r1, r5, 0 movs r2, 0 bl sub_806DA44 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0806BFB6 b _0806C0D8 _0806BFB6: cmp r5, 0 beq _0806BFC2 cmp r5, 0x2 beq _0806BFC2 cmp r5, 0x3 bne _0806BFD2 _0806BFC2: lsls r0, r5, 1 ldr r1, _0806C0C8 adds r0, r1 adds r1, r5, 0 movs r2, 0x3 movs r3, 0 bl sub_806BF24 _0806BFD2: cmp r5, 0x1 beq _0806BFDE cmp r5, 0x4 beq _0806BFDE cmp r5, 0x5 bne _0806BFEE _0806BFDE: lsls r0, r5, 1 ldr r1, _0806C0C8 adds r0, r1 adds r1, r5, 0 movs r2, 0x4 movs r3, 0 bl sub_806BF24 _0806BFEE: cmp r5, 0x7 bne _0806BFF8 movs r0, 0x1 bl sub_806BBEC _0806BFF8: lsls r2, r4, 24 asrs r2, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_806C490 ldr r2, _0806C0C4 lsls r1, r6, 4 adds r0, r1, r6 lsls r0, 2 adds r0, r2 movs r2, 0x2E ldrsh r0, [r0, r2] mov r8, r1 cmp r0, 0 beq _0806C020 cmp r0, 0x2 beq _0806C020 cmp r0, 0x3 bne _0806C042 _0806C020: ldr r0, _0806C0C4 mov r4, r8 adds r1, r4, r6 lsls r1, 2 adds r1, r0 movs r7, 0x2E ldrsh r0, [r1, r7] lsls r0, 1 ldr r2, _0806C0C8 adds r0, r2 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 movs r2, 0x3 movs r3, 0x1 bl sub_806BF24 _0806C042: ldr r1, _0806C0C4 mov r2, r8 adds r0, r2, r6 lsls r0, 2 adds r0, r1 movs r4, 0x2E ldrsh r0, [r0, r4] cmp r0, 0x1 beq _0806C05C cmp r0, 0x4 beq _0806C05C cmp r0, 0x5 bne _0806C07E _0806C05C: ldr r0, _0806C0C4 mov r7, r8 adds r1, r7, r6 lsls r1, 2 adds r1, r0 movs r2, 0x2E ldrsh r0, [r1, r2] lsls r0, 1 ldr r2, _0806C0C8 adds r0, r2 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 movs r2, 0x4 movs r3, 0x1 bl sub_806BF24 _0806C07E: ldr r7, _0806C0C4 mov r4, r8 adds r0, r4, r6 lsls r0, 2 adds r4, r0, r7 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x7 bne _0806C096 movs r0, 0x2 bl sub_806BBEC _0806C096: ldr r0, _0806C0CC ldr r2, _0806C0D0 adds r0, r2 movs r1, 0x2 strb r1, [r0] ldr r1, _0806C0D4 movs r2, 0x2E ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 adds r0, 0x40 ldrb r0, [r0] strh r0, [r4, 0x20] movs r2, 0x2E ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 adds r0, 0x41 ldrb r0, [r0] strh r0, [r4, 0x22] adds r0, r7, 0 b _0806C1A4 .align 2, 0 _0806C0C4: .4byte 0x02020004 _0806C0C8: .4byte gUnknown_083769C0 _0806C0CC: .4byte 0x0201b000 _0806C0D0: .4byte 0x00000261 _0806C0D4: .4byte gUnknown_083768B8 _0806C0D8: bl battle_type_is_double lsls r0, 24 lsrs r7, r0, 24 cmp r5, 0x5 bhi _0806C104 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 lsls r1, r5, 1 adds r0, r1 ldr r1, _0806C100 adds r0, r1 adds r1, r5, 0 movs r2, 0x3 movs r3, 0 bl sub_806BF24 b _0806C10A .align 2, 0 _0806C100: .4byte gUnknown_083769A8 _0806C104: movs r0, 0x1 bl sub_806BBEC _0806C10A: cmp r7, 0 bne _0806C11C lsls r2, r4, 24 asrs r2, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_806C1E4 b _0806C128 _0806C11C: lsls r2, r4, 24 asrs r2, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_806C310 _0806C128: ldr r1, _0806C160 lsls r2, r6, 4 adds r0, r2, r6 lsls r0, 2 adds r1, r0, r1 ldrh r3, [r1, 0x2E] movs r4, 0x2E ldrsh r0, [r1, r4] mov r8, r2 cmp r0, 0x5 bgt _0806C168 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 movs r2, 0x2E ldrsh r1, [r1, r2] lsls r1, 1 adds r0, r1 ldr r1, _0806C164 adds r0, r1 lsls r1, r3, 24 lsrs r1, 24 movs r2, 0x3 movs r3, 0x1 bl sub_806BF24 b _0806C16E .align 2, 0 _0806C160: .4byte 0x02020004 _0806C164: .4byte gUnknown_083769A8 _0806C168: movs r0, 0x2 bl sub_806BBEC _0806C16E: ldr r0, _0806C1D4 ldr r4, _0806C1D8 adds r0, r4 movs r1, 0x2 strb r1, [r0] ldr r4, _0806C1DC mov r0, r8 adds r1, r0, r6 lsls r1, 2 adds r1, r4 ldr r3, _0806C1E0 movs r2, 0x2E ldrsh r0, [r1, r2] lsls r0, 2 lsls r2, r7, 5 adds r0, r2 adds r0, r3 ldrb r0, [r0] strh r0, [r1, 0x20] movs r7, 0x2E ldrsh r0, [r1, r7] lsls r0, 2 adds r0, r2 adds r0, r3 ldrb r0, [r0, 0x1] strh r0, [r1, 0x22] adds r0, r4, 0 _0806C1A4: mov r1, r8 adds r4, r1, r6 lsls r4, 2 adds r4, r0 ldrh r1, [r4, 0x2E] lsls r1, 24 lsrs r1, 24 mov r0, r9 movs r2, 0x1 bl sub_806DA44 movs r2, 0x2E ldrsh r0, [r4, r2] cmp r5, r0 beq _0806C1C8 movs r0, 0x5 bl audio_play _0806C1C8: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C1D4: .4byte 0x0201b000 _0806C1D8: .4byte 0x00000261 _0806C1DC: .4byte 0x02020004 _0806C1E0: .4byte gUnknown_083768B8 thumb_func_end sub_806BF74 thumb_func_start sub_806C1E4 sub_806C1E4: @ 806C1E4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0x80 lsls r0, 18 adds r2, r0 asrs r0, r2, 24 cmp r0, 0x4 bls _0806C200 b _0806C306 _0806C200: lsls r0, 2 ldr r1, _0806C20C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806C20C: .4byte _0806C210 .align 2, 0 _0806C210: .4byte _0806C2EC .4byte _0806C238 .4byte _0806C224 .4byte _0806C25C .4byte _0806C2BC _0806C224: ldr r0, _0806C234 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x30] b _0806C306 .align 2, 0 _0806C234: .4byte 0x02020004 _0806C238: cmp r3, 0 beq _0806C266 cmp r3, 0x7 bne _0806C298 ldr r2, _0806C254 lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 adds r1, r2 ldr r0, _0806C258 ldrb r0, [r0] subs r0, 0x1 b _0806C2AA .align 2, 0 _0806C254: .4byte 0x02020004 _0806C258: .4byte 0x03004350 _0806C25C: ldr r0, _0806C278 ldrb r0, [r0] subs r0, 0x1 cmp r3, r0 bne _0806C280 _0806C266: ldr r2, _0806C27C lsls r3, r4, 4 adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0x7 strh r1, [r0, 0x2E] b _0806C2AC .align 2, 0 _0806C278: .4byte 0x03004350 _0806C27C: .4byte 0x02020004 _0806C280: cmp r3, 0x7 bne _0806C298 ldr r2, _0806C294 lsls r3, r4, 4 adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] b _0806C2AC .align 2, 0 _0806C294: .4byte 0x02020004 _0806C298: ldr r2, _0806C2B8 lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 adds r1, r2 lsls r0, r5, 24 asrs r0, 24 ldrh r5, [r1, 0x2E] adds r0, r5 _0806C2AA: strh r0, [r1, 0x2E] _0806C2AC: adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x30] b _0806C306 .align 2, 0 _0806C2B8: .4byte 0x02020004 _0806C2BC: ldr r0, _0806C2E4 ldrb r0, [r0] cmp r0, 0x1 bls _0806C306 cmp r3, 0 bne _0806C306 ldr r0, _0806C2E8 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0 bne _0806C2DE movs r0, 0x1 strh r0, [r1, 0x30] _0806C2DE: ldrh r0, [r1, 0x30] strh r0, [r1, 0x2E] b _0806C306 .align 2, 0 _0806C2E4: .4byte 0x03004350 _0806C2E8: .4byte 0x02020004 _0806C2EC: subs r0, r3, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _0806C306 ldr r0, _0806C30C lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x2E] strh r3, [r1, 0x30] _0806C306: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806C30C: .4byte 0x02020004 thumb_func_end sub_806C1E4 thumb_func_start sub_806C310 sub_806C310: @ 806C310 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r0, 0x80 lsls r0, 18 adds r2, r0 asrs r0, r2, 24 cmp r0, 0x4 bls _0806C32C b _0806C486 _0806C32C: lsls r0, 2 ldr r1, _0806C338 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806C338: .4byte _0806C33C .align 2, 0 _0806C33C: .4byte _0806C44E .4byte _0806C38C .4byte _0806C350 .4byte _0806C364 .4byte _0806C3E8 _0806C350: ldr r0, _0806C360 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x30] b _0806C486 .align 2, 0 _0806C360: .4byte 0x02020004 _0806C364: cmp r3, 0x7 bne _0806C37C ldr r2, _0806C378 lsls r3, r4, 4 adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] b _0806C3D8 .align 2, 0 _0806C378: .4byte 0x02020004 _0806C37C: ldr r0, _0806C388 ldrb r0, [r0] subs r0, 0x1 cmp r3, r0 beq _0806C390 b _0806C3C4 .align 2, 0 _0806C388: .4byte 0x03004350 _0806C38C: cmp r3, 0 bne _0806C3A4 _0806C390: ldr r2, _0806C3A0 lsls r3, r4, 4 adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0x7 strh r1, [r0, 0x2E] b _0806C3D8 .align 2, 0 _0806C3A0: .4byte 0x02020004 _0806C3A4: cmp r3, 0x7 bne _0806C3C4 ldr r2, _0806C3BC lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 adds r1, r2 ldr r0, _0806C3C0 ldrb r0, [r0] subs r0, 0x1 b _0806C3D6 .align 2, 0 _0806C3BC: .4byte 0x02020004 _0806C3C0: .4byte 0x03004350 _0806C3C4: ldr r2, _0806C3E4 lsls r3, r4, 4 adds r1, r3, r4 lsls r1, 2 adds r1, r2 lsls r0, r5, 24 asrs r0, 24 ldrh r5, [r1, 0x2E] adds r0, r5 _0806C3D6: strh r0, [r1, 0x2E] _0806C3D8: adds r0, r3, r4 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x30] b _0806C486 .align 2, 0 _0806C3E4: .4byte 0x02020004 _0806C3E8: cmp r3, 0 bne _0806C418 ldr r0, _0806C410 ldrb r0, [r0] cmp r0, 0x2 bls _0806C486 ldr r0, _0806C414 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x30] subs r0, r2, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0806C43A movs r0, 0x2 strh r0, [r1, 0x2E] b _0806C486 .align 2, 0 _0806C410: .4byte 0x03004350 _0806C414: .4byte 0x02020004 _0806C418: cmp r3, 0x1 bne _0806C486 ldr r0, _0806C440 ldrb r0, [r0] cmp r0, 0x4 bls _0806C486 ldr r0, _0806C444 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x30] subs r0, r2, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0806C448 _0806C43A: strh r2, [r1, 0x2E] b _0806C486 .align 2, 0 _0806C440: .4byte 0x03004350 _0806C444: .4byte 0x02020004 _0806C448: movs r0, 0x4 strh r0, [r1, 0x2E] b _0806C486 _0806C44E: subs r0, r3, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806C46C ldr r0, _0806C468 lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0 b _0806C482 .align 2, 0 _0806C468: .4byte 0x02020004 _0806C46C: subs r0, r3, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806C486 ldr r0, _0806C48C lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 movs r0, 0x1 _0806C482: strh r0, [r1, 0x2E] strh r3, [r1, 0x30] _0806C486: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806C48C: .4byte 0x02020004 thumb_func_end sub_806C310 thumb_func_start sub_806C490 sub_806C490: @ 806C490 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 movs r0, 0x80 lsls r0, 18 adds r2, r0 asrs r0, r2, 24 cmp r0, 0x4 bls _0806C4AA b _0806C64E _0806C4AA: lsls r0, 2 ldr r1, _0806C4B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806C4B4: .4byte _0806C4B8 .align 2, 0 _0806C4B8: .4byte _0806C618 .4byte _0806C524 .4byte _0806C4CC .4byte _0806C4E0 .4byte _0806C57C _0806C4CC: ldr r0, _0806C4DC lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x30] b _0806C64E .align 2, 0 _0806C4DC: .4byte 0x02020004 _0806C4E0: cmp r4, 0x7 bne _0806C4FC ldr r2, _0806C4F8 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] adds r1, r2, 0 adds r6, r3, 0 b _0806C566 .align 2, 0 _0806C4F8: .4byte 0x02020004 _0806C4FC: lsls r6, r5, 4 b _0806C518 _0806C500: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, _0806C520 adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 bne _0806C528 _0806C518: cmp r4, 0x5 bne _0806C500 b _0806C558 .align 2, 0 _0806C520: .4byte 0x03004360 _0806C524: lsls r6, r5, 4 b _0806C554 _0806C528: ldr r1, _0806C534 adds r0, r6, r5 lsls r0, 2 adds r0, r1 strh r4, [r0, 0x2E] b _0806C566 .align 2, 0 _0806C534: .4byte 0x02020004 _0806C538: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 beq _0806C554 movs r0, 0x64 muls r0, r4 ldr r1, _0806C574 adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 bne _0806C528 _0806C554: cmp r4, 0 bne _0806C538 _0806C558: ldr r0, _0806C578 adds r1, r6, r5 lsls r1, 2 adds r1, r0 movs r2, 0x7 strh r2, [r1, 0x2E] adds r1, r0, 0 _0806C566: adds r0, r6, r5 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x30] b _0806C64E .align 2, 0 _0806C574: .4byte 0x03004360 _0806C578: .4byte 0x02020004 _0806C57C: cmp r4, 0 bne _0806C5C8 ldr r0, _0806C5AC lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r4, r1, r0 ldrh r1, [r4, 0x30] subs r0, r1, 0x2 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0806C5E2 ldr r5, _0806C5B0 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806C5B4 movs r0, 0x2 strh r0, [r4, 0x2E] b _0806C64E .align 2, 0 _0806C5AC: .4byte 0x02020004 _0806C5B0: .4byte 0x03004428 _0806C5B4: adds r0, r5, 0 adds r0, 0x64 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806C64E movs r0, 0x3 strh r0, [r4, 0x2E] b _0806C64E _0806C5C8: cmp r4, 0x1 bne _0806C64E ldr r0, _0806C5E8 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r4, r1, r0 ldrh r1, [r4, 0x30] subs r0, r1, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _0806C5EC _0806C5E2: strh r1, [r4, 0x2E] b _0806C64E .align 2, 0 _0806C5E8: .4byte 0x02020004 _0806C5EC: ldr r5, _0806C600 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806C604 movs r0, 0x4 strh r0, [r4, 0x2E] b _0806C64E .align 2, 0 _0806C600: .4byte 0x030044f0 _0806C604: adds r0, r5, 0 adds r0, 0x64 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806C64E movs r0, 0x5 strh r0, [r4, 0x2E] b _0806C64E _0806C618: subs r0, r4, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806C634 ldr r0, _0806C630 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 movs r0, 0 b _0806C64A .align 2, 0 _0806C630: .4byte 0x02020004 _0806C634: subs r0, r4, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0806C64E ldr r0, _0806C654 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 movs r0, 0x1 _0806C64A: strh r0, [r1, 0x2E] strh r4, [r1, 0x30] _0806C64E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806C654: .4byte 0x02020004 thumb_func_end sub_806C490 thumb_func_start sub_806C658 sub_806C658: @ 806C658 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r4, r1, 24 bl sub_806CA00 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0806C6A0 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 adds r1, r6, 0 movs r2, 0 bl sub_806DA44 cmp r6, 0x5 bhi _0806C6A8 lsls r0, r6, 1 ldr r1, _0806C6A4 adds r0, r1 adds r1, r6, 0 movs r2, 0x3 movs r3, 0 bl sub_806BF24 b _0806C6BA .align 2, 0 _0806C6A0: .4byte 0x02020004 _0806C6A4: .4byte gUnknown_083769A8 _0806C6A8: cmp r6, 0x6 bne _0806C6B4 movs r0, 0x1 bl sub_806BB9C b _0806C6BA _0806C6B4: movs r0, 0x1 bl sub_806BBEC _0806C6BA: lsls r1, r4, 24 movs r2, 0x80 lsls r2, 18 adds r0, r1, r2 asrs r0, 24 lsls r4, r5, 4 adds r7, r1, 0 cmp r0, 0x4 bls _0806C6CE b _0806C7EA _0806C6CE: lsls r0, 2 ldr r1, _0806C6D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806C6D8: .4byte _0806C6DC .align 2, 0 _0806C6DC: .4byte _0806C7D0 .4byte _0806C708 .4byte _0806C6F0 .4byte _0806C740 .4byte _0806C7A0 _0806C6F0: ldr r1, _0806C704 lsls r2, r5, 4 adds r0, r2, r5 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x30] adds r4, r2, 0 b _0806C7EA .align 2, 0 _0806C704: .4byte 0x02020004 _0806C708: cmp r6, 0 bne _0806C720 ldr r2, _0806C71C lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0x7 strh r1, [r0, 0x2E] b _0806C78E .align 2, 0 _0806C71C: .4byte 0x02020004 _0806C720: cmp r6, 0x6 bne _0806C77C ldr r2, _0806C738 lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldr r0, _0806C73C ldrb r0, [r0] subs r0, 0x1 b _0806C78C .align 2, 0 _0806C738: .4byte 0x02020004 _0806C73C: .4byte 0x03004350 _0806C740: ldr r0, _0806C75C ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 bne _0806C764 ldr r2, _0806C760 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0x6 strh r1, [r0, 0x2E] b _0806C78E .align 2, 0 _0806C75C: .4byte 0x03004350 _0806C760: .4byte 0x02020004 _0806C764: cmp r6, 0x7 bne _0806C77C ldr r2, _0806C778 lsls r3, r5, 4 adds r0, r3, r5 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x2E] b _0806C78E .align 2, 0 _0806C778: .4byte 0x02020004 _0806C77C: ldr r2, _0806C79C lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 asrs r0, r7, 24 ldrh r4, [r1, 0x2E] adds r0, r4 _0806C78C: strh r0, [r1, 0x2E] _0806C78E: adds r4, r3, 0 adds r0, r4, r5 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x30] b _0806C7EA .align 2, 0 _0806C79C: .4byte 0x02020004 _0806C7A0: ldr r0, _0806C7C8 ldrb r0, [r0] lsls r4, r5, 4 cmp r0, 0x1 bls _0806C7EA cmp r6, 0 bne _0806C7EA ldr r0, _0806C7CC adds r1, r4, r5 lsls r1, 2 adds r1, r0 movs r2, 0x30 ldrsh r0, [r1, r2] cmp r0, 0 bne _0806C7C2 movs r0, 0x1 strh r0, [r1, 0x30] _0806C7C2: ldrh r0, [r1, 0x30] strh r0, [r1, 0x2E] b _0806C7EA .align 2, 0 _0806C7C8: .4byte 0x03004350 _0806C7CC: .4byte 0x02020004 _0806C7D0: subs r0, r6, 0x1 lsls r0, 24 lsrs r0, 24 lsls r4, r5, 4 cmp r0, 0x4 bhi _0806C7EA ldr r0, _0806C82C adds r1, r4, r5 lsls r1, 2 adds r1, r0 movs r0, 0 strh r0, [r1, 0x2E] strh r6, [r1, 0x30] _0806C7EA: ldr r1, _0806C82C adds r0, r4, r5 lsls r0, 2 adds r2, r0, r1 ldr r1, _0806C830 movs r3, 0x2E ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 ldrb r0, [r0] strh r0, [r2, 0x20] movs r3, 0x2E ldrsh r0, [r2, r3] lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x1] strh r0, [r2, 0x22] ldrh r3, [r2, 0x2E] movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x5 bgt _0806C838 lsls r0, 1 ldr r1, _0806C834 adds r0, r1 lsls r1, r3, 24 lsrs r1, 24 movs r2, 0x3 movs r3, 0x1 bl sub_806BF24 b _0806C84A .align 2, 0 _0806C82C: .4byte 0x02020004 _0806C830: .4byte gUnknown_083768B8 _0806C834: .4byte gUnknown_083769A8 _0806C838: cmp r0, 0x6 bne _0806C844 movs r0, 0x2 bl sub_806BB9C b _0806C84A _0806C844: movs r0, 0x2 bl sub_806BBEC _0806C84A: ldr r0, _0806C884 ldr r2, _0806C888 adds r0, r2 movs r1, 0x2 strb r1, [r0] ldr r0, _0806C88C adds r4, r5 lsls r4, 2 adds r4, r0 ldrh r1, [r4, 0x2E] lsls r1, 24 lsrs r1, 24 mov r0, r8 movs r2, 0x1 bl sub_806DA44 movs r3, 0x2E ldrsh r0, [r4, r3] cmp r6, r0 beq _0806C878 movs r0, 0x5 bl audio_play _0806C878: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806C884: .4byte 0x0201b000 _0806C888: .4byte 0x00000261 _0806C88C: .4byte 0x02020004 thumb_func_end sub_806C658 thumb_func_start sub_806C890 sub_806C890: @ 806C890 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_806CA00 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0806C8D4 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 beq _0806C914 adds r0, r6, 0 adds r1, r4, 0 movs r2, 0 bl sub_806DA44 cmp r4, 0x5 bhi _0806C8DC lsls r0, r4, 1 ldr r1, _0806C8D8 adds r0, r1 adds r1, r4, 0 movs r2, 0x3 movs r3, 0 bl sub_806BF24 b _0806C8E2 .align 2, 0 _0806C8D4: .4byte 0x02020004 _0806C8D8: .4byte gUnknown_083769A8 _0806C8DC: movs r0, 0x1 bl sub_806BBEC _0806C8E2: ldr r1, _0806C91C lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x30] movs r1, 0x6 strh r1, [r0, 0x2E] ldr r2, _0806C920 ldrb r1, [r2, 0x18] strh r1, [r0, 0x20] ldrb r1, [r2, 0x19] strh r1, [r0, 0x22] movs r0, 0x2 bl sub_806BB9C ldr r0, _0806C924 ldr r1, _0806C928 adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0x5 bl audio_play _0806C914: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806C91C: .4byte 0x02020004 _0806C920: .4byte gUnknown_083768B8 _0806C924: .4byte 0x0201b000 _0806C928: .4byte 0x00000261 thumb_func_end sub_806C890 thumb_func_start sub_806C92C sub_806C92C: @ 806C92C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0806C960 lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x2E] lsls r0, 24 lsrs r6, r0, 24 ldrh r0, [r1, 0x30] lsls r0, 24 lsrs r4, r0, 24 bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _0806C96A cmp r6, 0 bne _0806C964 cmp r4, 0 bne _0806C97C movs r4, 0x1 b _0806C97C .align 2, 0 _0806C960: .4byte 0x02020004 _0806C964: cmp r4, 0 beq _0806C97C b _0806C97A _0806C96A: cmp r6, 0x1 bhi _0806C976 cmp r4, 0x1 bhi _0806C97C movs r4, 0x2 b _0806C97C _0806C976: cmp r4, 0x1 bls _0806C97C _0806C97A: movs r4, 0 _0806C97C: ldr r1, _0806C990 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 strh r4, [r0, 0x30] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806C990: .4byte 0x02020004 thumb_func_end sub_806C92C thumb_func_start sub_806C994 sub_806C994: @ 806C994 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl sub_806CA00 lsls r0, 24 lsrs r0, 24 ldr r2, _0806C9C0 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 strh r4, [r1, 0x2E] bl sub_806C92C pop {r4} pop {r0} bx r0 .align 2, 0 _0806C9C0: .4byte 0x02020004 thumb_func_end sub_806C994 thumb_func_start sub_806C9C4 sub_806C9C4: @ 806C9C4 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl sub_806CA00 lsls r0, 24 lsrs r0, 24 ldr r3, _0806C9FC lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r3 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r1, 0x20] strh r0, [r2, 0x20] ldrh r0, [r1, 0x22] strh r0, [r2, 0x22] ldrh r0, [r1, 0x2E] strh r0, [r2, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _0806C9FC: .4byte 0x02020004 thumb_func_end sub_806C9C4 thumb_func_start sub_806CA00 sub_806CA00: @ 806CA00 lsls r0, 24 lsrs r0, 24 ldr r2, _0806CA14 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0xE] lsrs r0, 8 bx lr .align 2, 0 _0806CA14: .4byte 0x03004b20 thumb_func_end sub_806CA00 thumb_func_start sub_806CA18 sub_806CA18: @ 806CA18 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, _0806CA34 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r2, r3 ldrb r0, [r2, 0xE] lsrs r1, 16 orrs r0, r1 strh r0, [r2, 0xE] bx lr .align 2, 0 _0806CA34: .4byte 0x03004b20 thumb_func_end sub_806CA18 thumb_func_start sub_806CA38 sub_806CA38: @ 806CA38 push {lr} lsls r0, 24 lsrs r0, 24 bl sub_806CA00 lsls r0, 24 lsrs r0, 24 ldr r2, _0806CA5C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x2E] lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0806CA5C: .4byte 0x02020004 thumb_func_end sub_806CA38 thumb_func_start sub_806CA60 sub_806CA60: @ 806CA60 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0806CAD8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806CADC str r1, [r0] ldr r5, _0806CAE0 strb r4, [r5] ldr r0, _0806CAE4 movs r1, 0 bl CreateTask ldr r0, _0806CAE8 bl object_new_hidden_with_callback strb r0, [r5, 0x1] ldrb r1, [r5, 0x1] adds r0, r4, 0 bl sub_806C9C4 adds r0, r4, 0 bl sub_806CA00 strb r0, [r5, 0x2] ldr r1, _0806CAEC adds r0, r5, r1 ldrb r0, [r0] movs r1, 0 bl sub_806D538 ldr r2, _0806CAF0 ldrb r0, [r5, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r2, 0x2E ldrsh r0, [r1, r2] lsls r0, 1 ldr r2, _0806CAF4 adds r0, r2 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 movs r2, 0x6 movs r3, 0 bl sub_806BF24 ldr r0, _0806CAF8 adds r5, r0 movs r0, 0x2 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CAD8: .4byte 0x03004b20 _0806CADC: .4byte TaskDummy _0806CAE0: .4byte 0x02001000 _0806CAE4: .4byte sub_806CB74 _0806CAE8: .4byte SpriteCallbackDummy _0806CAEC: .4byte 0x0001a272 _0806CAF0: .4byte 0x02020004 _0806CAF4: .4byte gUnknown_083769A8 _0806CAF8: .4byte 0x0001a261 thumb_func_end sub_806CA60 thumb_func_start sub_806CAFC sub_806CAFC: @ 806CAFC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _0806CB48 ldrb r3, [r4, 0x1] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 ldr r3, _0806CB4C adds r5, r2, r3 ldrb r2, [r4, 0x2] lsls r4, r2, 4 adds r4, r2 lsls r4, 2 adds r4, r3 lsls r1, 24 asrs r1, 24 bl sub_806BF74 ldrh r2, [r5, 0x2E] movs r0, 0x2E ldrsh r1, [r5, r0] movs r3, 0x2E ldrsh r0, [r4, r3] cmp r1, r0 beq _0806CB54 adds r0, r1, 0 lsls r0, 1 ldr r1, _0806CB50 adds r0, r1 lsls r1, r2, 24 lsrs r1, 24 movs r2, 0x6 movs r3, 0x1 bl sub_806BF24 b _0806CB6A .align 2, 0 _0806CB48: .4byte 0x02001000 _0806CB4C: .4byte 0x02020004 _0806CB50: .4byte gUnknown_083769A8 _0806CB54: movs r3, 0x2E ldrsh r0, [r5, r3] lsls r0, 1 ldr r1, _0806CB70 adds r0, r1 lsls r1, r2, 24 lsrs r1, 24 movs r2, 0x6 movs r3, 0 bl sub_806BF24 _0806CB6A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CB70: .4byte gUnknown_083769A8 thumb_func_end sub_806CAFC thumb_func_start sub_806CB74 sub_806CB74: @ 806CB74 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806CB8C ldrh r0, [r0, 0x30] cmp r0, 0x20 beq _0806CBBC cmp r0, 0x20 bgt _0806CB90 cmp r0, 0x10 beq _0806CBD0 b _0806CBDA .align 2, 0 _0806CB8C: .4byte 0x03001770 _0806CB90: cmp r0, 0x40 beq _0806CB9A cmp r0, 0x80 beq _0806CBAC b _0806CBDA _0806CB9A: ldr r0, _0806CBA8 ldrb r0, [r0] movs r1, 0x1 negs r1, r1 bl sub_806CAFC b _0806CBDA .align 2, 0 _0806CBA8: .4byte 0x02001000 _0806CBAC: ldr r0, _0806CBB8 ldrb r0, [r0] movs r1, 0x1 bl sub_806CAFC b _0806CBDA .align 2, 0 _0806CBB8: .4byte 0x02001000 _0806CBBC: ldr r0, _0806CBCC ldrb r0, [r0] movs r1, 0x2 negs r1, r1 bl sub_806CAFC b _0806CBDA .align 2, 0 _0806CBCC: .4byte 0x02001000 _0806CBD0: ldr r0, _0806CC04 ldrb r0, [r0] movs r1, 0x2 bl sub_806CAFC _0806CBDA: ldr r0, _0806CC08 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806CC10 movs r0, 0x5 bl audio_play ldr r1, _0806CC0C lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806CC04 ldr r1, [r1, 0xC] str r1, [r0] adds r0, r4, 0 bl _call_via_r1 b _0806CC24 .align 2, 0 _0806CC04: .4byte 0x02001000 _0806CC08: .4byte 0x03001770 _0806CC0C: .4byte 0x03004b20 _0806CC10: lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0x2 bne _0806CC24 movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_806CD44 _0806CC24: pop {r4} pop {r0} bx r0 thumb_func_end sub_806CB74 thumb_func_start sub_806CC2C sub_806CC2C: @ 806CC2C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0806CC68 ldrb r1, [r5, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0806CC6C adds r0, r1 bl DestroySprite movs r0, 0 movs r1, 0 bl sub_806D538 ldr r0, _0806CC70 adds r1, r5, r0 movs r0, 0x2 strb r0, [r1] ldrb r0, [r5] bl SwitchTaskToFollowupFunc adds r0, r4, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CC68: .4byte 0x02001000 _0806CC6C: .4byte 0x02020004 _0806CC70: .4byte 0x0001a261 thumb_func_end sub_806CC2C thumb_func_start sub_806CC74 sub_806CC74: @ 806CC74 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0806CCD8 mov r8, r0 ldr r6, _0806CCDC ldrb r0, [r6, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 movs r2, 0x2E ldrsh r0, [r1, r2] lsls r0, 1 ldr r5, _0806CCE0 adds r0, r5 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 movs r2, 0x3 movs r3, 0x1 bl sub_806BF24 ldrb r0, [r6, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 movs r2, 0x2E ldrsh r0, [r1, r2] lsls r0, 1 adds r0, r5 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 movs r2, 0x3 movs r3, 0 bl sub_806BF24 adds r0, r4, 0 bl sub_806CC2C pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806CCD8: .4byte 0x02020004 _0806CCDC: .4byte 0x02001000 _0806CCE0: .4byte gUnknown_083769A8 thumb_func_end sub_806CC74 thumb_func_start sub_806CCE4 sub_806CCE4: @ 806CCE4 push {r4,r5,lr} ldr r3, _0806CD38 ldr r2, _0806CD3C ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r4, r0, 24 ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r5, r0, 24 cmp r4, 0x5 bhi _0806CD1E lsls r0, r4, 1 ldr r1, _0806CD40 adds r0, r1 adds r1, r4, 0 movs r2, 0x3 movs r3, 0 bl sub_806BF24 _0806CD1E: cmp r5, 0x5 bhi _0806CD32 lsls r0, r5, 1 ldr r1, _0806CD40 adds r0, r1 adds r1, r5, 0 movs r2, 0x3 movs r3, 0x1 bl sub_806BF24 _0806CD32: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CD38: .4byte 0x02020004 _0806CD3C: .4byte 0x02001000 _0806CD40: .4byte gUnknown_083769A8 thumb_func_end sub_806CCE4 thumb_func_start sub_806CD44 sub_806CD44: @ 806CD44 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_806CCE4 adds r0, r4, 0 bl sub_806CC2C pop {r4} pop {r0} bx r0 thumb_func_end sub_806CD44 thumb_func_start sub_806CD5C sub_806CD5C: @ 806CD5C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, _0806CDA8 ldr r6, _0806CDAC ldrb r1, [r6, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r5, r0, 24 mov r9, r5 ldrb r1, [r6, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 cmp r5, r4 beq _0806CD9E cmp r5, 0x7 beq _0806CD9E cmp r4, 0x7 bne _0806CDB0 _0806CD9E: mov r0, r8 bl sub_806CD44 b _0806CED2 .align 2, 0 _0806CDA8: .4byte 0x02020004 _0806CDAC: .4byte 0x02001000 _0806CDB0: adds r0, r5, 0 bl sub_806D5B8 adds r0, r4, 0 bl sub_806D5B8 cmp r5, r4 bls _0806CDC6 strb r4, [r6, 0x5] strb r5, [r6, 0x6] b _0806CDCC _0806CDC6: mov r0, r9 strb r0, [r6, 0x5] strb r7, [r6, 0x6] _0806CDCC: ldr r4, _0806CE1C ldrb r0, [r4] ldrb r1, [r4, 0x5] bl sub_806DDA0 strb r0, [r4, 0x3] ldrb r0, [r4] ldrb r1, [r4, 0x6] bl sub_806DDA0 strb r0, [r4, 0x4] ldrb r3, [r4, 0x5] cmp r3, 0 bne _0806CE34 ldr r2, _0806CE20 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0806CE24 strh r1, [r0, 0x2E] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _0806CE28 strh r1, [r0, 0x32] strh r3, [r4, 0x8] movs r0, 0xB strh r0, [r4, 0xA] ldr r1, _0806CE2C mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _0806CE30 b _0806CE66 .align 2, 0 _0806CE1C: .4byte 0x02001000 _0806CE20: .4byte 0x02020004 _0806CE24: .4byte 0x0000fff8 _0806CE28: .4byte 0x0000ff58 _0806CE2C: .4byte 0x03004b20 _0806CE30: .4byte sub_806D014 _0806CE34: ldr r2, _0806CEE0 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x8 strh r1, [r0, 0x2E] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0xA8 strh r1, [r0, 0x32] movs r0, 0xB strh r0, [r4, 0x8] strh r0, [r4, 0xA] ldr r1, _0806CEE4 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _0806CEE8 _0806CE66: str r1, [r0] ldr r0, _0806CEEC adds r1, r4, r0 movs r0, 0x1 strb r0, [r1] adds r6, r2, 0 ldr r4, _0806CEF0 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r0, r5 ldr r2, _0806CEF4 str r2, [r0] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x8 strh r1, [r0, 0x2E] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0xA8 strh r1, [r0, 0x32] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 str r2, [r0] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r5 adds r0, r6 ldr r1, [r1] bl _call_via_r1 ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r5, r0, r5 adds r0, r6 ldr r1, [r5] bl _call_via_r1 _0806CED2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806CEE0: .4byte 0x02020004 _0806CEE4: .4byte 0x03004b20 _0806CEE8: .4byte sub_806D118 _0806CEEC: .4byte 0x0001a261 _0806CEF0: .4byte 0x02001000 _0806CEF4: .4byte sub_806D37C thumb_func_end sub_806CD5C thumb_func_start sub_806CEF8 sub_806CEF8: @ 806CEF8 ldrh r3, [r0] ldrh r2, [r1] strh r2, [r0] strh r3, [r1] bx lr thumb_func_end sub_806CEF8 thumb_func_start sub_806CF04 sub_806CF04: @ 806CF04 push {r4,r5,lr} ldr r4, _0806CF94 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0806CF98 adds r0, r5 ldrb r2, [r4, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 bl sub_806CEF8 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r5, 0x2 adds r0, r3 ldrb r2, [r4, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 bl sub_806CEF8 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r5, 0x4 adds r0, r3 ldrb r2, [r4, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 bl sub_806CEF8 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r5, 0 adds r3, 0xE adds r0, r3 ldrb r2, [r4, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 bl sub_806CEF8 ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 subs r5, 0x4 adds r0, r5 ldr r2, _0806CF9C str r2, [r0] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 str r2, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806CF94: .4byte 0x02001000 _0806CF98: .4byte 0x02020024 _0806CF9C: .4byte sub_806D37C thumb_func_end sub_806CF04 thumb_func_start sub_806CFA0 sub_806CFA0: @ 806CFA0 push {r4-r6,lr} lsls r4, r1, 24 lsrs r4, 24 ldr r5, _0806CFDC ldrb r1, [r5, 0x6] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x8 ldrsh r0, [r5, r1] movs r1, 0x3 bl sub_806BA34 movs r1, 0xA ldrsh r0, [r5, r1] adds r1, r6, 0 bl sub_806BB3C cmp r4, 0 bne _0806CFE0 ldrh r0, [r5, 0x8] subs r0, 0x1 strh r0, [r5, 0x8] ldrh r0, [r5, 0xA] adds r0, 0x1 b _0806CFEA .align 2, 0 _0806CFDC: .4byte 0x02001000 _0806CFE0: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] ldrh r0, [r5, 0xA] subs r0, 0x1 _0806CFEA: strh r0, [r5, 0xA] ldr r4, _0806D010 movs r1, 0x8 ldrsh r0, [r4, r1] movs r1, 0x3 movs r2, 0xA bl sub_806B9A4 movs r1, 0xA ldrsh r0, [r4, r1] adds r1, r6, 0 movs r2, 0 movs r3, 0xA bl sub_806BA94 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806D010: .4byte 0x02001000 thumb_func_end sub_806CFA0 thumb_func_start sub_806D014 sub_806D014: @ 806D014 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_806CFA0 ldr r2, _0806D050 movs r0, 0x8 ldrsh r1, [r2, r0] movs r0, 0xD negs r0, r0 cmp r1, r0 bge _0806D04A movs r1, 0xA ldrsh r0, [r2, r1] cmp r0, 0x20 ble _0806D04A bl sub_806CF04 ldr r0, _0806D054 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806D058 str r0, [r1] _0806D04A: pop {r4} pop {r0} bx r0 .align 2, 0 _0806D050: .4byte 0x02001000 _0806D054: .4byte 0x03004b20 _0806D058: .4byte sub_806D05C thumb_func_end sub_806D014 thumb_func_start sub_806D05C sub_806D05C: @ 806D05C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_806CFA0 ldr r0, _0806D08C ldr r1, [r0, 0x8] movs r0, 0xB0 lsls r0, 12 cmp r1, r0 bne _0806D084 ldr r0, _0806D090 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806D094 str r0, [r1] _0806D084: pop {r4} pop {r0} bx r0 .align 2, 0 _0806D08C: .4byte 0x02001000 _0806D090: .4byte 0x03004b20 _0806D094: .4byte sub_806D198 thumb_func_end sub_806D05C thumb_func_start sub_806D098 sub_806D098: @ 806D098 push {r4-r7,lr} lsls r4, r1, 24 lsrs r4, 24 ldr r5, _0806D0E0 ldrb r1, [r5, 0x5] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r1, [r5, 0x6] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x8 ldrsh r0, [r5, r1] adds r1, r7, 0 bl sub_806BB3C movs r1, 0xA ldrsh r0, [r5, r1] adds r1, r6, 0 bl sub_806BB3C cmp r4, 0 bne _0806D0E4 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] ldrh r0, [r5, 0xA] adds r0, 0x1 b _0806D0EE .align 2, 0 _0806D0E0: .4byte 0x02001000 _0806D0E4: ldrh r0, [r5, 0x8] subs r0, 0x1 strh r0, [r5, 0x8] ldrh r0, [r5, 0xA] subs r0, 0x1 _0806D0EE: strh r0, [r5, 0xA] ldr r4, _0806D114 movs r1, 0x8 ldrsh r0, [r4, r1] adds r1, r7, 0 movs r2, 0 movs r3, 0xA bl sub_806BA94 movs r1, 0xA ldrsh r0, [r4, r1] adds r1, r6, 0 movs r2, 0 movs r3, 0xA bl sub_806BA94 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806D114: .4byte 0x02001000 thumb_func_end sub_806D098 thumb_func_start sub_806D118 sub_806D118: @ 806D118 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0 bl sub_806D098 ldr r1, _0806D150 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0x20 ble _0806D14A movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0x20 ble _0806D14A bl sub_806CF04 ldr r0, _0806D154 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806D158 str r0, [r1] _0806D14A: pop {r4} pop {r0} bx r0 .align 2, 0 _0806D150: .4byte 0x02001000 _0806D154: .4byte 0x03004b20 _0806D158: .4byte sub_806D15C thumb_func_end sub_806D118 thumb_func_start sub_806D15C sub_806D15C: @ 806D15C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_806D098 ldr r0, _0806D188 ldr r1, [r0, 0x8] ldr r0, _0806D18C cmp r1, r0 bne _0806D182 ldr r0, _0806D190 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806D194 str r0, [r1] _0806D182: pop {r4} pop {r0} bx r0 .align 2, 0 _0806D188: .4byte 0x02001000 _0806D18C: .4byte 0x000b000b _0806D190: .4byte 0x03004b20 _0806D194: .4byte sub_806D198 thumb_func_end sub_806D15C thumb_func_start sub_806D198 sub_806D198: @ 806D198 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, _0806D364 ldrb r0, [r4] ldrb r1, [r4, 0x5] ldrb r2, [r4, 0x4] bl sub_806DE50 ldrb r0, [r4] ldrb r1, [r4, 0x6] ldrb r2, [r4, 0x3] bl sub_806DE50 bl battle_type_is_double ldr r5, _0806D368 ldrb r1, [r4, 0x3] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r5 ldr r6, _0806D36C ldrb r2, [r4, 0x6] lsls r2, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r2, r1 adds r2, r6 ldrb r0, [r2] movs r1, 0 mov r8, r1 strh r0, [r3, 0x20] bl battle_type_is_double ldrb r1, [r4, 0x3] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r5 ldrb r2, [r4, 0x6] lsls r2, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r2, r1 adds r2, r6 ldrb r0, [r2, 0x1] strh r0, [r3, 0x22] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x24] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x26] ldrb r1, [r4, 0x3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 movs r1, 0x1C adds r1, r5 mov r9, r1 add r0, r9 ldr r7, _0806D370 str r7, [r0] bl battle_type_is_double ldrb r1, [r4, 0x4] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r5 ldrb r2, [r4, 0x5] lsls r2, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r2, r1 adds r2, r6 ldrb r0, [r2] strh r0, [r3, 0x20] bl battle_type_is_double ldrb r1, [r4, 0x4] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r5 ldrb r2, [r4, 0x5] lsls r2, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r2, r1 adds r2, r6 ldrb r0, [r2, 0x1] strh r0, [r3, 0x22] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x24] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x26] ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 str r7, [r0] ldrb r0, [r4] ldrb r2, [r4, 0x2] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 ldrh r1, [r1, 0x2E] lsls r1, 24 lsrs r1, 24 bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 ldr r0, _0806D374 str r0, [r1] ldrb r0, [r4, 0x5] movs r6, 0x64 muls r0, r6 ldr r5, _0806D378 adds r0, r5 ldrb r1, [r4, 0x6] muls r1, r6 adds r1, r5 bl sub_806E6F0 ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E2C0 ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E07C ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E4E8 ldrb r0, [r4, 0x5] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl nullsub_12 ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E2C0 ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E07C ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl sub_806E4E8 ldrb r0, [r4, 0x6] adds r1, r0, 0 muls r1, r6 adds r1, r5 bl nullsub_12 bl sub_806E6C8 mov r0, r10 bl sub_806CC74 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806D364: .4byte 0x02001000 _0806D368: .4byte 0x02020004 _0806D36C: .4byte gUnknown_08376678 _0806D370: .4byte sub_806DA38 _0806D374: .4byte sub_806DA0C _0806D378: .4byte 0x03004360 thumb_func_end sub_806D198 thumb_func_start sub_806D37C sub_806D37C: @ 806D37C push {r4,lr} adds r4, r0, 0 bl sub_809D638 ldrh r2, [r4, 0x24] movs r0, 0x24 ldrsh r1, [r4, r0] movs r3, 0x32 ldrsh r0, [r4, r3] cmp r1, r0 bne _0806D3A8 movs r1, 0x2E ldrsh r0, [r4, r1] negs r0, r0 movs r1, 0 strh r0, [r4, 0x2E] strh r1, [r4, 0x32] ldr r0, _0806D3A4 str r0, [r4, 0x1C] b _0806D3AE .align 2, 0 _0806D3A4: .4byte sub_806DA38 _0806D3A8: ldrh r0, [r4, 0x2E] adds r0, r2, r0 strh r0, [r4, 0x24] _0806D3AE: pop {r4} pop {r0} bx r0 thumb_func_end sub_806D37C thumb_func_start sub_806D3B4 sub_806D3B4: @ 806D3B4 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r7, r0, 24 lsls r4, 16 lsrs r4, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r6, _0806D438 ldr r1, _0806D43C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x8] ldrb r1, [r6, 0x2] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0x3] bl sub_806BA34 ldrh r0, [r5, 0x8] ldrb r1, [r6, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0x9] bl sub_806BB3C ldrh r0, [r5, 0x8] ldrb r1, [r6, 0xA] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0xB] bl sub_806BB3C ldrh r1, [r5, 0x8] subs r1, 0x1 strh r1, [r5, 0x8] ldrb r0, [r6, 0x2] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0x3] movs r2, 0x4 bl sub_806B9A4 cmp r4, 0 beq _0806D440 ldrh r0, [r5, 0x8] ldrb r1, [r6, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0x9] movs r2, 0 movs r3, 0x4 bl sub_806BA94 b _0806D454 .align 2, 0 _0806D438: .4byte gUnknown_083769C0 _0806D43C: .4byte 0x03004b20 _0806D440: ldrh r0, [r5, 0x8] ldrb r1, [r6, 0x8] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0x9] movs r2, 0x1 movs r3, 0x4 bl sub_806BA94 _0806D454: mov r0, r8 cmp r0, 0 beq _0806D480 ldr r1, _0806D47C lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] ldrb r1, [r6, 0xA] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0xB] movs r2, 0 movs r3, 0x4 bl sub_806BA94 b _0806D49E .align 2, 0 _0806D47C: .4byte 0x03004b20 _0806D480: ldr r1, _0806D4A8 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] ldrb r1, [r6, 0xA] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrb r1, [r6, 0xB] movs r2, 0x1 movs r3, 0x4 bl sub_806BA94 _0806D49E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806D4A8: .4byte 0x03004b20 thumb_func_end sub_806D3B4 thumb_func_start sub_806D4AC sub_806D4AC: @ 806D4AC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsls r2, 24 lsrs r2, 24 cmp r1, 0 beq _0806D4F6 adds r1, r2, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 ldr r2, _0806D4FC lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r4, r1, r2 ldr r0, _0806D500 strh r0, [r4, 0x2E] ldr r3, _0806D504 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r3 movs r3, 0x8 ldrsh r0, [r0, r3] lsls r0, 3 negs r0, r0 strh r0, [r4, 0x32] adds r2, 0x1C adds r1, r2 ldr r0, _0806D508 str r0, [r1] _0806D4F6: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806D4FC: .4byte 0x02020004 _0806D500: .4byte 0x0000fff8 _0806D504: .4byte 0x03004b20 _0806D508: .4byte sub_806D37C thumb_func_end sub_806D4AC thumb_func_start sub_806D50C sub_806D50C: @ 806D50C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl sub_806DDA0 ldr r2, _0806D534 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x20] adds r0, 0xF0 strh r0, [r1, 0x20] pop {r0} bx r0 .align 2, 0 _0806D534: .4byte 0x02020004 thumb_func_end sub_806D50C thumb_func_start sub_806D538 sub_806D538: @ 806D538 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 cmp r4, 0xFF beq _0806D59A cmp r1, 0x1 beq _0806D568 cmp r1, 0x1 bgt _0806D556 cmp r1, 0 beq _0806D560 b _0806D58A _0806D556: cmp r0, 0x2 beq _0806D570 cmp r0, 0x3 beq _0806D57E b _0806D58A _0806D560: movs r0, 0 movs r1, 0x10 movs r2, 0x17 b _0806D576 _0806D568: movs r0, 0 movs r1, 0x10 movs r2, 0x13 b _0806D576 _0806D570: movs r0, 0 movs r1, 0x10 movs r2, 0x16 _0806D576: movs r3, 0x13 bl DrawDefaultWindow b _0806D58A _0806D57E: movs r0, 0 movs r1, 0x10 movs r2, 0x12 movs r3, 0x13 bl DrawDefaultWindow _0806D58A: ldr r0, _0806D5A0 lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] movs r1, 0x1 movs r2, 0x11 bl Print _0806D59A: pop {r4} pop {r0} bx r0 .align 2, 0 _0806D5A0: .4byte gUnknown_08376624 thumb_func_end sub_806D538 thumb_func_start sub_806D5A4 sub_806D5A4: @ 806D5A4 push {lr} movs r0, 0 movs r1, 0x10 movs r2, 0x1D movs r3, 0x13 bl Reset pop {r0} bx r0 thumb_func_end sub_806D5A4 thumb_func_start sub_806D5B8 sub_806D5B8: @ 806D5B8 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _0806D658 bl battle_type_is_double lsls r4, r5, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1] mov r10, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1, 0x1] mov r9, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1, 0x2] mov r8, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r4, r1 adds r4, r6 ldrb r1, [r4, 0x3] ldr r0, _0806D65C str r1, [sp] mov r1, r10 mov r2, r9 mov r3, r8 bl ZeroFillWindowRect movs r0, 0 str r0, [sp, 0x4] lsls r5, 10 ldr r0, _0806D660 adds r5, r0 ldr r2, _0806D664 add r0, sp, 0x4 adds r1, r5, 0 bl CpuFastSet add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806D658: .4byte gUnknown_08376948 _0806D65C: .4byte 0x03004210 _0806D660: .4byte 0x06014000 _0806D664: .4byte 0x01000100 thumb_func_end sub_806D5B8 thumb_func_start sub_806D668 sub_806D668: @ 806D668 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, _0806D708 bl battle_type_is_double lsls r4, r5, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1] mov r10, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1, 0x1] mov r9, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r4, r1 adds r1, r6 ldrb r1, [r1, 0x2] mov r8, r1 bl battle_type_is_double lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r4, r1 adds r4, r6 ldrb r1, [r4, 0x3] ldr r0, _0806D70C str r1, [sp] mov r1, r10 mov r2, r9 mov r3, r8 bl ZeroFillWindowRect movs r0, 0 str r0, [sp, 0x4] lsls r5, 10 ldr r0, _0806D710 adds r5, r0 ldr r2, _0806D714 add r0, sp, 0x4 adds r1, r5, 0 bl CpuFastSet add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806D708: .4byte gUnknown_08376978 _0806D70C: .4byte 0x03004210 _0806D710: .4byte 0x06014300 _0806D714: .4byte 0x01000040 thumb_func_end sub_806D668 thumb_func_start sub_806D718 sub_806D718: @ 806D718 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, _0806D7C4 mov r0, sp strh r1, [r0] movs r5, 0 cmp r4, 0x1 bhi _0806D736 ldr r0, _0806D7C8 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram _0806D736: cmp r4, 0x2 beq _0806D73E cmp r4, 0 bne _0806D746 _0806D73E: ldr r0, _0806D7CC ldr r1, _0806D7D0 bl LZDecompressVram _0806D746: cmp r4, 0x3 beq _0806D74E cmp r4, 0 bne _0806D75A _0806D74E: ldr r0, _0806D7D4 movs r2, 0xB0 lsls r2, 1 movs r1, 0 bl LoadCompressedPalette _0806D75A: cmp r4, 0x4 beq _0806D762 cmp r4, 0 bne _0806D776 _0806D762: mov r0, sp movs r1, 0 movs r2, 0x2 bl LoadPalette ldr r0, _0806D7D8 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette _0806D776: cmp r4, 0x5 beq _0806D77E cmp r4, 0 bne _0806D786 _0806D77E: ldr r0, _0806D7DC ldr r1, _0806D7E0 bl LZDecompressVram _0806D786: cmp r4, 0x6 beq _0806D78E cmp r4, 0 bne _0806D796 _0806D78E: ldr r0, _0806D7E4 ldr r1, _0806D7E8 bl LZDecompressVram _0806D796: cmp r4, 0x7 beq _0806D79E cmp r4, 0 bne _0806D7A6 _0806D79E: ldr r0, _0806D7EC ldr r1, _0806D7F0 bl LZDecompressVram _0806D7A6: cmp r4, 0x8 beq _0806D7AE cmp r4, 0 bne _0806D7BA _0806D7AE: ldr r0, _0806D7F4 movs r1, 0xB0 movs r2, 0x20 bl LoadCompressedPalette movs r5, 0x1 _0806D7BA: adds r0, r5, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806D7C4: .4byte 0x00007fff _0806D7C8: .4byte gUnknown_08E71354 _0806D7CC: .4byte gUnknown_08E71788 _0806D7D0: .4byte 0x06003800 _0806D7D4: .4byte gUnknown_08E716A0 _0806D7D8: .4byte gFontDefaultPalette _0806D7DC: .4byte gUnknown_08E71894 _0806D7E0: .4byte 0x06006000 _0806D7E4: .4byte gUnknown_08E71934 _0806D7E8: .4byte 0x06006180 _0806D7EC: .4byte gUnknown_08E72860 _0806D7F0: .4byte 0x06007180 _0806D7F4: .4byte gUnknown_08E72A50 thumb_func_end sub_806D718 thumb_func_start sub_806D7F8 sub_806D7F8: @ 806D7F8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsls r2, 16 lsrs r5, r1, 16 asrs r1, 16 lsrs r4, r2, 16 asrs r2, 16 adds r0, r1, 0 adds r1, r2, 0 bl sub_8046200 lsls r0, 24 lsrs r0, 24 movs r2, 0 cmp r5, r4 beq _0806D830 movs r2, 0x1 cmp r0, 0x3 beq _0806D830 movs r2, 0x2 cmp r0, 0x2 beq _0806D830 movs r2, 0x4 cmp r0, 0x1 bne _0806D830 movs r2, 0x3 _0806D830: lsls r0, r6, 4 adds r0, r6 lsls r0, 2 ldr r1, _0806D848 adds r0, r1 adds r1, r2, 0 bl sub_809D824 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806D848: .4byte 0x02020004 thumb_func_end sub_806D7F8 thumb_func_start sub_806D84C sub_806D84C: @ 806D84C push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x3A bl PokemonGetField adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_806D7F8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806D84C thumb_func_start sub_806D880 sub_806D880: @ 806D880 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 mov r8, r3 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 lsls r2, 24 lsrs r2, 24 ldr r3, _0806D904 lsls r1, r5, 2 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r3 ldrb r0, [r1] mov r9, r0 ldrb r1, [r1, 0x1] mov r10, r1 mov r0, r8 movs r1, 0x41 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0 bl PokemonGetField ldr r1, _0806D908 movs r2, 0x5 str r2, [sp] str r0, [sp, 0x4] adds r0, r4, 0 mov r2, r9 mov r3, r10 bl sub_809D2FC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_806DE50 adds r0, r4, 0 mov r1, r8 bl sub_806D84C add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806D904: .4byte gUnknown_08376678 _0806D908: .4byte sub_809D62C thumb_func_end sub_806D880 thumb_func_start sub_806D90C sub_806D90C: @ 806D90C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r2, 0 lsls r0, 24 lsrs r6, r0, 24 mov r8, r6 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806D95A bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806D946 adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x2 adds r3, r4, 0 bl sub_806D880 b _0806D95A _0806D946: bl battle_type_is_double adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 mov r0, r8 adds r1, r7, 0 adds r3, r4, 0 bl sub_806D880 _0806D95A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806D90C thumb_func_start unref_sub_806D964 unref_sub_806D964: @ 806D964 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 b _0806D986 _0806D96E: movs r0, 0x64 adds r2, r4, 0 muls r2, r0 ldr r0, _0806D994 adds r2, r0 adds r0, r5, 0 adds r1, r4, 0 bl sub_806D90C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0806D986: ldr r0, _0806D998 ldrb r0, [r0] cmp r4, r0 bcc _0806D96E pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806D994: .4byte 0x03004360 _0806D998: .4byte 0x03004350 thumb_func_end unref_sub_806D964 thumb_func_start sub_806D99C sub_806D99C: @ 806D99C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r5, r1, 0 mov r8, r3 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 lsls r2, 24 lsrs r2, 24 ldr r3, _0806DA04 lsls r1, r5, 2 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r3 ldrb r2, [r1] ldrb r3, [r1, 0x1] mov r1, r8 ldrh r0, [r1] ldr r1, _0806DA08 movs r4, 0x5 str r4, [sp] mov r7, r8 ldr r4, [r7, 0x18] str r4, [sp, 0x4] bl sub_809D2FC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_806DE50 ldrh r1, [r7, 0x10] ldrh r2, [r7, 0x12] adds r0, r4, 0 bl sub_806D7F8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806DA04: .4byte gUnknown_08376678 _0806DA08: .4byte sub_809D62C thumb_func_end sub_806D99C thumb_func_start sub_806DA0C sub_806DA0C: @ 806DA0C push {r4,lr} adds r4, r0, 0 bl sub_809D638 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0806DA32 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0806DA30 ldr r0, _0806DA2C strh r0, [r4, 0x26] b _0806DA32 .align 2, 0 _0806DA2C: .4byte 0x0000fffd _0806DA30: strh r1, [r4, 0x26] _0806DA32: pop {r4} pop {r0} bx r0 thumb_func_end sub_806DA0C thumb_func_start sub_806DA38 sub_806DA38: @ 806DA38 push {lr} bl sub_809D638 pop {r0} bx r0 thumb_func_end sub_806DA38 thumb_func_start sub_806DA44 sub_806DA44: @ 806DA44 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r4, r2, 24 cmp r1, 0x5 bhi _0806DA8E bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 ldr r3, _0806DA7C lsls r1, r0, 4 adds r1, r0 lsls r2, r1, 2 adds r1, r2, r3 movs r0, 0 strh r0, [r1, 0x26] strh r0, [r1, 0x2E] cmp r4, 0 bne _0806DA84 adds r0, r3, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, _0806DA80 b _0806DA8C .align 2, 0 _0806DA7C: .4byte 0x02020004 _0806DA80: .4byte sub_806DA38 _0806DA84: adds r0, r3, 0 adds r0, 0x1C adds r0, r2, r0 ldr r1, _0806DA94 _0806DA8C: str r1, [r0] _0806DA8E: pop {r4} pop {r0} bx r0 .align 2, 0 _0806DA94: .4byte sub_806DA0C thumb_func_end sub_806DA44 thumb_func_start sub_806DA98 sub_806DA98: @ 806DA98 push {lr} ldr r0, _0806DAAC bl LoadSpriteSheet ldr r0, _0806DAB0 bl LoadSpritePalette pop {r0} bx r0 .align 2, 0 _0806DAAC: .4byte gUnknown_083765DC _0806DAB0: .4byte gUnknown_083765E4 thumb_func_end sub_806DA98 thumb_func_start sub_806DAB4 sub_806DAB4: @ 806DAB4 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 ldr r2, _0806DAE4 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _0806DAE8 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0806DB06 .align 2, 0 _0806DAE4: .4byte 0x02020004 _0806DAE8: adds r3, r4, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x24] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x26] ldrh r2, [r2, 0x22] adds r0, r2 strh r0, [r4, 0x22] _0806DB06: pop {r4} pop {r0} bx r0 thumb_func_end sub_806DAB4 thumb_func_start sub_806DB0C sub_806DB0C: @ 806DB0C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r6, r0, 0 mov r9, r1 lsls r6, 24 lsrs r6, 24 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, _0806DB84 mov r8, r0 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 add r0, r8 adds r0, 0x43 ldrb r3, [r0] ldr r0, _0806DB88 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r1, 0xFA movs r2, 0xAA bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 mov r0, r8 adds r5, r4, r0 movs r0, 0x4 strh r0, [r5, 0x24] movs r0, 0xA strh r0, [r5, 0x26] movs r0, 0x1C add r8, r0 add r4, r8 ldr r0, _0806DB8C str r0, [r4] strh r6, [r5, 0x3C] adds r0, r5, 0 mov r1, r9 bl StartSpriteAnim ldr r1, [r4] adds r0, r5, 0 bl _call_via_r1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806DB84: .4byte 0x02020004 _0806DB88: .4byte gSpriteTemplate_837660C _0806DB8C: .4byte sub_806DAB4 thumb_func_end sub_806DB0C thumb_func_start sub_806DB90 sub_806DB90: @ 806DB90 push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0 beq _0806DBA4 cmp r2, 0x1 beq _0806DBEC b _0806DC28 _0806DBA4: movs r5, 0 ldrb r0, [r6] cmp r5, r0 bcs _0806DC28 _0806DBAC: movs r0, 0x64 muls r0, r5 ldr r1, _0806DBE8 adds r0, r1 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0806DBD8 adds r0, r7, r5 ldrb r4, [r0] adds r0, r1, 0 bl itemid_is_mail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806DB0C _0806DBD8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrb r0, [r6] cmp r5, r0 bcc _0806DBAC b _0806DC28 .align 2, 0 _0806DBE8: .4byte 0x03004360 _0806DBEC: movs r5, 0 b _0806DC22 _0806DBF0: movs r0, 0x64 muls r0, r5 ldr r1, _0806DC30 adds r0, r1 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0806DC1C adds r0, r5, r7 ldrb r4, [r0, 0x6] adds r0, r1, 0 bl itemid_is_mail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_806DB0C _0806DC1C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _0806DC22: ldrb r0, [r6, 0x1] cmp r5, r0 bcc _0806DBF0 _0806DC28: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806DC30: .4byte 0x030045c0 thumb_func_end sub_806DB90 thumb_func_start sub_806DC34 sub_806DC34: @ 806DC34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 ldr r0, _0806DCC8 mov r9, r0 movs r1, 0x1C add r1, r9 mov r10, r1 _0806DC50: movs r0, 0x64 muls r0, r7 ldr r1, _0806DCCC adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806DCB0 mov r0, r8 adds r1, r7, 0 bl sub_806DDA0 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0806DCD0 movs r1, 0xFA movs r2, 0xAA movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 mov r1, r9 adds r6, r4, r1 movs r1, 0x4 strh r1, [r6, 0x24] movs r1, 0xA strh r1, [r6, 0x26] strh r5, [r6, 0x3C] lsls r1, r5, 4 adds r1, r5 lsls r1, 2 add r1, r9 strh r0, [r1, 0x3C] mov r0, r8 adds r1, r7, 0 bl sub_806DF60 add r4, r10 ldr r1, [r4] adds r0, r6, 0 bl _call_via_r1 _0806DCB0: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x5 bls _0806DC50 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806DCC8: .4byte 0x02020004 _0806DCCC: .4byte 0x03004360 _0806DCD0: .4byte gSpriteTemplate_837660C thumb_func_end sub_806DC34 thumb_func_start sub_806DCD4 sub_806DCD4: @ 806DCD4 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 16 lsrs r7, r2, 16 bl sub_806DDA0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0806DD2C movs r1, 0xFA movs r2, 0xAA movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 ldr r1, _0806DD30 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r5, r0, r1 movs r0, 0x4 strh r0, [r5, 0x24] movs r0, 0xA strh r0, [r5, 0x26] strh r4, [r5, 0x3C] lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r1 strh r6, [r0, 0x3C] cmp r7, 0 bne _0806DD34 adds r0, r5, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0806DD5C .align 2, 0 _0806DD2C: .4byte gSpriteTemplate_837660C _0806DD30: .4byte 0x02020004 _0806DD34: adds r0, r7, 0 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0806DD46 adds r0, r5, 0 movs r1, 0x1 b _0806DD4A _0806DD46: adds r0, r5, 0 movs r1, 0 _0806DD4A: bl StartSpriteAnim adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0806DD5C: ldr r2, _0806DD78 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r1, r0, r1 adds r0, r2 ldr r1, [r1] bl _call_via_r1 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806DD78: .4byte 0x02020004 thumb_func_end sub_806DCD4 thumb_func_start sub_806DD7C sub_806DD7C: @ 806DD7C ldrh r2, [r0, 0x3C] lsls r2, 24 lsrs r2, 24 ldr r3, _0806DD9C lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 ldrh r2, [r1, 0x24] ldrh r3, [r1, 0x20] adds r2, r3 strh r2, [r0, 0x20] ldrh r1, [r1, 0x22] strh r1, [r0, 0x22] bx lr .align 2, 0 _0806DD9C: .4byte 0x02020004 thumb_func_end sub_806DD7C thumb_func_start sub_806DDA0 sub_806DDA0: @ 806DDA0 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0x5 bhi _0806DE38 lsls r0, 2 ldr r1, _0806DDB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806DDB8: .4byte _0806DDBC .align 2, 0 _0806DDBC: .4byte _0806DE38 .4byte _0806DDD4 .4byte _0806DDE8 .4byte _0806DDFC .4byte _0806DE10 .4byte _0806DE24 _0806DDD4: ldr r0, _0806DDE4 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] b _0806DE46 .align 2, 0 _0806DDE4: .4byte 0x03004b20 _0806DDE8: ldr r0, _0806DDF8 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] b _0806DE44 .align 2, 0 _0806DDF8: .4byte 0x03004b20 _0806DDFC: ldr r0, _0806DE0C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0xA] b _0806DE46 .align 2, 0 _0806DE0C: .4byte 0x03004b20 _0806DE10: ldr r0, _0806DE20 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] b _0806DE44 .align 2, 0 _0806DE20: .4byte 0x03004b20 _0806DE24: ldr r0, _0806DE34 lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0xC] b _0806DE46 .align 2, 0 _0806DE34: .4byte 0x03004b20 _0806DE38: ldr r0, _0806DE4C lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] _0806DE44: lsrs r0, 8 _0806DE46: pop {r1} bx r1 .align 2, 0 _0806DE4C: .4byte 0x03004b20 thumb_func_end sub_806DDA0 thumb_func_start sub_806DE50 sub_806DE50: @ 806DE50 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r0, r1, 24 lsls r2, 24 lsrs r4, r2, 24 cmp r0, 0x5 bhi _0806DF24 lsls r0, 2 ldr r1, _0806DE6C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806DE6C: .4byte _0806DE70 .align 2, 0 _0806DE70: .4byte _0806DE88 .4byte _0806DEA0 .4byte _0806DEC0 .4byte _0806DED8 .4byte _0806DEF8 .4byte _0806DF10 _0806DE88: ldr r1, _0806DE9C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x8] lsls r2, r4, 8 orrs r1, r2 strh r1, [r0, 0x8] b _0806DF24 .align 2, 0 _0806DE9C: .4byte 0x03004b20 _0806DEA0: ldr r0, _0806DEB8 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0x8] ldr r0, _0806DEBC ands r0, r2 orrs r0, r4 strh r0, [r1, 0x8] b _0806DF24 .align 2, 0 _0806DEB8: .4byte 0x03004b20 _0806DEBC: .4byte 0xffffff00 _0806DEC0: ldr r1, _0806DED4 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xA] lsls r2, r4, 8 orrs r1, r2 strh r1, [r0, 0xA] b _0806DF24 .align 2, 0 _0806DED4: .4byte 0x03004b20 _0806DED8: ldr r0, _0806DEF0 lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] ldr r0, _0806DEF4 ands r0, r2 orrs r0, r4 strh r0, [r1, 0xA] b _0806DF24 .align 2, 0 _0806DEF0: .4byte 0x03004b20 _0806DEF4: .4byte 0xffffff00 _0806DEF8: ldr r1, _0806DF0C lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] lsls r2, r4, 8 orrs r1, r2 strh r1, [r0, 0xC] b _0806DF24 .align 2, 0 _0806DF0C: .4byte 0x03004b20 _0806DF10: ldr r0, _0806DF2C lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xC] ldr r0, _0806DF30 ands r0, r2 orrs r0, r4 strh r0, [r1, 0xC] _0806DF24: pop {r4} pop {r0} bx r0 .align 2, 0 _0806DF2C: .4byte 0x03004b20 _0806DF30: .4byte 0xffffff00 thumb_func_end sub_806DE50 thumb_func_start sub_806DF34 sub_806DF34: @ 806DF34 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 ldr r2, _0806DF5C lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x3C] lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0806DF5C: .4byte 0x02020004 thumb_func_end sub_806DF34 thumb_func_start sub_806DF60 sub_806DF60: @ 806DF60 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 adds r1, r4, 0 bl sub_806DF34 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 movs r0, 0x64 adds r1, r4, 0 muls r1, r0 ldr r0, _0806DFA4 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xC bl PokemonGetField cmp r0, 0 bne _0806DFAC ldr r1, _0806DFA8 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0806DFF6 .align 2, 0 _0806DFA4: .4byte 0x03004360 _0806DFA8: .4byte 0x02020004 _0806DFAC: adds r0, r4, 0 movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0806DFD8 lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r0, _0806DFD4 adds r4, r0 adds r0, r4, 0 movs r1, 0x1 b _0806DFE6 .align 2, 0 _0806DFD4: .4byte 0x02020004 _0806DFD8: lsls r4, r6, 4 adds r4, r6 lsls r4, 2 ldr r0, _0806DFFC adds r4, r0 adds r0, r4, 0 movs r1, 0 _0806DFE6: bl StartSpriteAnim adds r4, 0x3E ldrb r1, [r4] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r4] _0806DFF6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806DFFC: .4byte 0x02020004 thumb_func_end sub_806DF60 thumb_func_start box_print box_print: @ 806E000 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 str r0, [sp] ldr r5, _0806E040 ldr r2, _0806E044 mov r0, sp adds r1, r5, 0 bl CpuFastSet ldr r0, _0806E048 adds r1, r5, 0 adds r2, r6, 0 bl sub_8004E3C lsls r4, 10 ldr r0, _0806E04C adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x80 bl CpuFastSet add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E040: .4byte 0x02039360 _0806E044: .4byte 0x01000100 _0806E048: .4byte gWindowConfig_81E6CAC _0806E04C: .4byte 0x06014000 thumb_func_end box_print thumb_func_start sub_806E050 sub_806E050: @ 806E050 push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 adds r0, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r1, sp bl GetMonNickname adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl box_print add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806E050 thumb_func_start sub_806E07C sub_806E07C: @ 806E07C push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806E0BC bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E0AA adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_806E050 b _0806E0BC _0806E0AA: bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r4, 0 bl sub_806E050 _0806E0BC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E07C thumb_func_start sub_806E0C4 sub_806E0C4: @ 806E0C4 push {r4-r6,lr} movs r4, 0 movs r6, 0x64 ldr r5, _0806E0E8 _0806E0CC: adds r1, r4, 0 muls r1, r6 adds r1, r5 adds r0, r4, 0 bl sub_806E07C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0806E0CC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E0E8: .4byte 0x03004360 thumb_func_end sub_806E0C4 thumb_func_start GetMonNickname GetMonNickname: @ 806E0EC push {r4,lr} adds r4, r1, 0 movs r1, 0x2 adds r2, r4, 0 bl PokemonGetField adds r0, r4, 0 bl StringGetEnd10 pop {r4} pop {r1} bx r1 thumb_func_end GetMonNickname thumb_func_start sub_806E104 sub_806E104: @ 806E104 push {r4,r5,lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r4, _0806E15C lsrs r0, 22 lsls r3, r1, 1 adds r3, r1 lsls r3, 3 adds r0, r3 adds r0, r4 ldrb r1, [r0] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r0, [r0, 0x1] adds r0, 0x1 lsls r0, 24 lsrs r0, 19 adds r1, r0 lsls r1, 1 ldr r0, _0806E160 adds r4, r1, r0 lsls r2, 26 lsrs r2, 24 movs r3, 0 movs r0, 0xC6 lsls r0, 1 adds r2, r0 ldr r0, _0806E164 adds r5, r0, 0 _0806E142: lsls r0, r3, 1 adds r0, r4 adds r1, r2, r3 orrs r1, r5 strh r1, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0806E142 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806E15C: .4byte gUnknown_08376738 _0806E160: .4byte 0x0600f000 _0806E164: .4byte 0xffffb000 thumb_func_end sub_806E104 thumb_func_start sub_806E168 sub_806E168: @ 806E168 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E17E movs r3, 0x2 b _0806E186 _0806E17E: bl battle_type_is_double lsls r0, 24 lsrs r3, r0, 24 _0806E186: ldr r1, _0806E1C8 lsls r2, r4, 2 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r2, r0 adds r2, r1 ldrb r1, [r2] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 ldrb r0, [r2, 0x1] adds r0, 0x1 lsls r0, 24 lsrs r0, 19 adds r1, r0 lsls r1, 1 ldr r0, _0806E1CC adds r1, r0 movs r3, 0 movs r2, 0 _0806E1B0: lsls r0, r3, 1 adds r0, r1 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0806E1B0 pop {r4} pop {r0} bx r0 .align 2, 0 _0806E1C8: .4byte gUnknown_08376738 _0806E1CC: .4byte 0x0600f000 thumb_func_end sub_806E168 thumb_func_start sub_806E1D0 sub_806E1D0: @ 806E1D0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 19 adds r1, r2 lsls r1, 1 ldr r2, _0806E1F0 adds r1, r2 movs r2, 0x86 lsls r2, 1 adds r0, r2 strh r0, [r1] bx lr .align 2, 0 _0806E1F0: .4byte 0x0600f000 thumb_func_end sub_806E1D0 thumb_func_start sub_806E1F4 sub_806E1F4: @ 806E1F4 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 lsls r5, 24 lsrs r5, 24 ldr r3, _0806E278 lsls r2, r4, 2 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r2, r3 ldrb r1, [r2] ldrb r2, [r2, 0x1] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r2, 0x1 lsls r2, 24 lsrs r2, 24 movs r0, 0x40 bl sub_806E1D0 ldr r6, _0806E27C movs r0, 0xFC strb r0, [r6] movs r0, 0x12 strb r0, [r6, 0x1] movs r0, 0x8 strb r0, [r6, 0x2] adds r0, r6, 0x3 adds r1, r5, 0 bl ConvertIntToDecimalString movs r0, 0 str r0, [sp] ldr r5, _0806E280 ldr r2, _0806E284 mov r0, sp adds r1, r5, 0 bl CpuFastSet ldr r0, _0806E288 ldr r2, _0806E28C adds r1, r5, r2 adds r2, r6, 0 bl sub_8004E3C lsls r4, 10 ldr r0, _0806E290 adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x20 bl CpuFastSet add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E278: .4byte gUnknown_08376738 _0806E27C: .4byte 0x020231cc _0806E280: .4byte 0x02039460 _0806E284: .4byte 0x01000020 _0806E288: .4byte gWindowConfig_81E6CAC _0806E28C: .4byte 0xffffff00 _0806E290: .4byte 0x06014200 thumb_func_end sub_806E1F4 thumb_func_start sub_806E294 sub_806E294: @ 806E294 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r0, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r1, 0x38 bl PokemonGetField adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_806E1F4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806E294 thumb_func_start sub_806E2C0 sub_806E2C0: @ 806E2C0 push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806E32E adds r0, r5, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0806E32E adds r0, r5, 0 bl sub_80A1CD8 lsls r0, 24 lsrs r4, r0, 24 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E2FA movs r6, 0x2 b _0806E302 _0806E2FA: bl battle_type_is_double lsls r0, 24 lsrs r6, r0, 24 _0806E302: cmp r4, 0 beq _0806E31A cmp r4, 0x6 beq _0806E31A subs r2, r4, 0x1 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r6, 0 bl sub_806E104 b _0806E324 _0806E31A: adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_806E294 _0806E324: adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_806E3C0 _0806E32E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806E2C0 thumb_func_start sub_806E334 sub_806E334: @ 806E334 push {r4-r6,lr} movs r4, 0 movs r6, 0x64 ldr r5, _0806E358 _0806E33C: adds r1, r4, 0 muls r1, r6 adds r1, r5 adds r0, r4, 0 bl sub_806E2C0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0806E33C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E358: .4byte 0x03004360 thumb_func_end sub_806E334 thumb_func_start sub_806E35C sub_806E35C: @ 806E35C push {r4-r7,lr} ldr r4, [sp, 0x14] lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 adds r1, r4, 0 bl sub_8040D8C cmp r0, 0 bne _0806E3BA ldr r2, _0806E3A4 lsls r1, r6, 2 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r1, r0 adds r1, r2 ldrb r0, [r1] adds r0, 0x3 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r1, 0x1] adds r0, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r7, 0 beq _0806E3A8 cmp r7, 0xFE beq _0806E3B2 b _0806E3BA .align 2, 0 _0806E3A4: .4byte gUnknown_08376738 _0806E3A8: movs r0, 0x42 adds r1, r3, 0 bl sub_806E1D0 b _0806E3BA _0806E3B2: movs r0, 0x44 adds r1, r3, 0 bl sub_806E1D0 _0806E3BA: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806E35C thumb_func_start sub_806E3C0 sub_806E3C0: @ 806E3C0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r6, 24 lsrs r6, 24 ldr r0, _0806E41C mov r9, r0 adds r0, r5, 0 mov r1, r9 bl GetMonNickname adds r0, r5, 0 movs r1, 0x41 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl pokemon_get_gender adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r9 str r0, [sp] adds r0, r4, 0 adds r2, r6, 0 mov r3, r8 bl sub_806E35C add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E41C: .4byte 0x020231cc thumb_func_end sub_806E3C0 thumb_func_start sub_806E420 sub_806E420: @ 806E420 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r1, r2, 0 adds r5, r3, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 ldr r2, _0806E48C adds r0, r2, 0 movs r2, 0xF movs r3, 0x1 bl sub_8072C14 adds r2, r0, 0 movs r0, 0xBA strb r0, [r2] adds r2, 0x1 adds r0, r2, 0 adds r1, r5, 0 movs r2, 0x23 movs r3, 0x1 bl sub_8072C14 movs r0, 0 str r0, [sp] ldr r5, _0806E490 ldr r2, _0806E494 mov r0, sp adds r1, r5, 0 bl CpuFastSet ldr r0, _0806E498 ldr r2, _0806E49C adds r1, r5, r2 ldr r2, _0806E48C bl sub_8004E3C lsls r4, 10 ldr r0, _0806E4A0 adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x40 bl CpuFastSet add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806E48C: .4byte 0x020231cc _0806E490: .4byte 0x02039460 _0806E494: .4byte 0x01000040 _0806E498: .4byte gWindowConfig_81E6CAC _0806E49C: .4byte 0xffffff00 _0806E4A0: .4byte 0x06014300 thumb_func_end sub_806E420 thumb_func_start sub_806E4A4 sub_806E4A4: @ 806E4A4 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r8 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x3A bl PokemonGetField adds r3, r0, 0 lsls r3, 16 lsrs r3, 16 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_806E420 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E4A4 thumb_func_start sub_806E4E8 sub_806E4E8: @ 806E4E8 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806E534 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0806E534 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E522 adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_806E4A4 b _0806E534 _0806E522: bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r4, 0 bl sub_806E4A4 _0806E534: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E4E8 thumb_func_start sub_806E53C sub_806E53C: @ 806E53C push {r4-r6,lr} movs r4, 0 movs r6, 0x64 ldr r5, _0806E560 _0806E544: adds r1, r4, 0 muls r1, r6 adds r1, r5 adds r0, r4, 0 bl sub_806E4E8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0806E544 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E560: .4byte 0x03004360 thumb_func_end sub_806E53C thumb_func_start unref_sub_806E564 unref_sub_806E564: @ 806E564 bx lr thumb_func_end unref_sub_806E564 thumb_func_start unref_sub_806E568 unref_sub_806E568: @ 806E568 bx lr thumb_func_end unref_sub_806E568 thumb_func_start nullsub_12 nullsub_12: @ 806E56C bx lr thumb_func_end nullsub_12 thumb_func_start nullsub_13 nullsub_13: @ 806E570 bx lr thumb_func_end nullsub_13 thumb_func_start sub_806E574 sub_806E574: @ 806E574 push {r4-r6,lr} sub sp, 0x18 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 ldr r0, _0806E624 str r0, [sp, 0x14] str r3, [sp] str r2, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] lsls r2, 16 asrs r2, 16 lsls r3, 16 asrs r3, 16 adds r0, r2, 0 adds r1, r3, 0 bl sub_8046200 lsls r0, 24 lsrs r3, r0, 24 adds r4, r3, 0 cmp r3, 0x2 bls _0806E5BE mov r2, sp ldrb r1, [r2, 0xC] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0xC] _0806E5BE: cmp r3, 0x2 bne _0806E5D2 mov r2, sp ldrb r1, [r2, 0xC] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x5 orrs r0, r1 strb r0, [r2, 0xC] _0806E5D2: cmp r4, 0x1 bhi _0806E5E6 mov r2, sp ldrb r1, [r2, 0xC] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x6 orrs r0, r1 strb r0, [r2, 0xC] _0806E5E6: movs r0, 0x80 lsls r0, 1 str r0, [sp, 0x10] ldr r2, _0806E628 lsls r1, r6, 2 lsls r0, r5, 1 adds r0, r5 lsls r0, 3 adds r1, r0 adds r1, r2 ldr r4, [r1] add r1, sp, 0x14 mov r0, sp adds r2, r4, 0 movs r3, 0 bl sub_80460C8 subs r4, 0x4 ldr r1, _0806E62C adds r0, r1, 0 strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 strh r0, [r4, 0x2] adds r1, 0x1 adds r0, r1, 0 strh r0, [r4, 0x10] add sp, 0x18 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E624: .4byte 0xffff8000 _0806E628: .4byte gUnknown_08376858 _0806E62C: .4byte 0x00003109 thumb_func_end sub_806E574 thumb_func_start sub_806E630 sub_806E630: @ 806E630 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r8 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, r8 movs r1, 0x3A bl PokemonGetField adds r3, r0, 0 lsls r3, 16 lsrs r3, 16 adds r0, r5, 0 adds r1, r6, 0 adds r2, r4, 0 bl sub_806E574 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E630 thumb_func_start sub_806E674 sub_806E674: @ 806E674 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 adds r0, r4, 0 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0806E6C0 adds r0, r4, 0 movs r1, 0x2D bl PokemonGetField cmp r0, 0 bne _0806E6C0 bl sub_806B528 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E6AE adds r0, r5, 0 movs r1, 0x2 adds r2, r4, 0 bl sub_806E630 b _0806E6C0 _0806E6AE: bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 adds r2, r4, 0 bl sub_806E630 _0806E6C0: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E674 thumb_func_start sub_806E6C8 sub_806E6C8: @ 806E6C8 push {r4-r6,lr} movs r4, 0 movs r6, 0x64 ldr r5, _0806E6EC _0806E6D0: adds r1, r4, 0 muls r1, r6 adds r1, r5 adds r0, r4, 0 bl sub_806E674 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0806E6D0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806E6EC: .4byte 0x03004360 thumb_func_end sub_806E6C8 thumb_func_start sub_806E6F0 sub_806E6F0: @ 806E6F0 push {r4,r5,lr} sub sp, 0x64 adds r4, r0, 0 adds r5, r1, 0 mov r0, sp adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r5, 0 mov r1, sp movs r2, 0x64 bl memcpy add sp, 0x64 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806E6F0 thumb_func_start sub_806E720 sub_806E720: @ 806E720 push {r4,lr} lsls r0, 24 lsrs r0, 21 adds r0, r3 ldrb r4, [r0] lsls r4, 25 movs r3, 0x80 lsls r3, 18 adds r4, r3 lsrs r4, 24 ldrb r0, [r0, 0x1] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r3, 0x1E subs r3, r0 strb r3, [r1] movs r0, 0x14 subs r0, r4 strb r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end sub_806E720 thumb_func_start sub_806E750 sub_806E750: @ 806E750 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC adds r5, r0, 0 adds r4, r1, 0 mov r9, r2 adds r6, r3, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 movs r0, 0x9 add r0, sp mov r8, r0 adds r0, r5, 0 add r1, sp, 0x8 mov r2, r8 adds r3, r4, 0 bl sub_806E720 add r0, sp, 0x8 ldrb r0, [r0] mov r2, r8 ldrb r1, [r2] lsls r5, 3 adds r5, r4 ldrb r2, [r5, 0x1] ldrb r3, [r5] mov r4, r9 str r4, [sp] ldr r4, [r5, 0x4] str r4, [sp, 0x4] bl sub_8089C50 add r0, sp, 0x8 ldrb r1, [r0] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 mov r0, r8 ldrb r2, [r0] adds r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5] str r6, [sp] ldrb r0, [r5, 0x1] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 bl InitMenu add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E750 thumb_func_start sub_806E7D0 sub_806E7D0: @ 806E7D0 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 lsrs r4, 24 mov r5, sp adds r5, 0x1 adds r0, r4, 0 mov r1, sp adds r2, r5, 0 adds r3, r6, 0 bl sub_806E720 mov r0, sp ldrb r0, [r0] ldrb r1, [r5] lsls r4, 3 adds r4, r6 ldrb r2, [r4, 0x1] adds r2, r0, r2 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4] lsls r3, 1 adds r3, r1, r3 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 bl Reset bl sub_8072DEC add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_806E7D0 thumb_func_start sub_806E81C sub_806E81C: @ 806E81C lsls r0, 24 lsls r3, 24 lsrs r3, 24 lsrs r0, 21 adds r0, r1 ldr r0, [r0, 0x4] adds r0, r3 ldrb r0, [r0] lsls r0, 3 adds r0, r2 ldr r0, [r0, 0x4] bx lr thumb_func_end sub_806E81C thumb_func_start sub_806E834 sub_806E834: @ 806E834 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r1, _0806E878 movs r0, 0x1 strb r0, [r1] movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl DrawDefaultWindow adds r0, r5, 0 movs r1, 0x4 movs r2, 0xF bl AddTextPrinterWithCallbackForMessage ldr r0, _0806E87C movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0806E880 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806E878: .4byte 0x0202e8f6 _0806E87C: .4byte sub_806E884 _0806E880: .4byte 0x03004b20 thumb_func_end sub_806E834 thumb_func_start sub_806E884 sub_806E884: @ 806E884 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _0806E8C0 ldr r1, _0806E8C8 movs r0, 0 strb r0, [r1] ldr r1, _0806E8CC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 bne _0806E8BA movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl Reset _0806E8BA: adds r0, r5, 0 bl DestroyTask _0806E8C0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806E8C8: .4byte 0x0202e8f6 _0806E8CC: .4byte 0x03004b20 thumb_func_end sub_806E884 thumb_func_start sub_806E8D0 sub_806E8D0: @ 806E8D0 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r5, 16 lsrs r5, 16 ldr r4, _0806E8FC str r2, [r4, 0x10] strb r0, [r4, 0x4] bl sub_806CA38 strb r0, [r4, 0x5] strh r5, [r4, 0x6] ldrb r1, [r4, 0x5] movs r0, 0x64 muls r0, r1 ldr r1, _0806E900 adds r0, r1 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806E8FC: .4byte 0x0201c000 _0806E900: .4byte 0x03004360 thumb_func_end sub_806E8D0 thumb_func_start sub_806E904 sub_806E904: @ 806E904 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E93C adds r0, r5, 0 adds r1, r4, 0 bl sub_80A2BC4 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _0806E930 movs r0, 0x1 b _0806E958 _0806E930: ldr r1, _0806E938 movs r0, 0x2 b _0806E940 .align 2, 0 _0806E938: .4byte 0x0202e8f4 _0806E93C: ldr r1, _0806E960 movs r0, 0x1 _0806E940: strb r0, [r1] mov r0, sp strb r4, [r0] mov r1, sp lsrs r0, r4, 8 strb r0, [r1, 0x1] adds r0, r5, 0 movs r1, 0xC mov r2, sp bl pokemon_setattr movs r0, 0 _0806E958: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0806E960: .4byte 0x0202e8f4 thumb_func_end sub_806E904 thumb_func_start sub_806E964 sub_806E964: @ 806E964 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r2 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r5, r1, 16 mov r9, r5 ldr r2, _0806E9D4 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r2 ldr r1, _0806E9D8 str r1, [r6] adds r1, r5, 0 mov r2, r8 bl sub_806E8D0 ldr r4, _0806E9DC ldr r0, [r4] movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r2, r0, 16 adds r7, r2, 0 ldr r1, _0806E9E0 movs r0, 0 strb r0, [r1] ldr r0, _0806E9E4 mov r10, r0 movs r0, 0 mov r1, r10 strh r0, [r1] cmp r2, 0 beq _0806EA44 adds r0, r2, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806E9F0 ldr r0, _0806E9E8 movs r1, 0x1 bl sub_806E834 ldr r0, _0806E9EC movs r1, 0x5 bl CreateTask b _0806EA78 .align 2, 0 _0806E9D4: .4byte 0x03004b20 _0806E9D8: .4byte TaskDummy _0806E9DC: .4byte 0x0201c000 _0806E9E0: .4byte 0x0202e8f4 _0806E9E4: .4byte 0x0202e8f8 _0806E9E8: .4byte gUnknown_0840F17F _0806E9EC: .4byte party_menu_link_mon_held_item_object _0806E9F0: ldr r0, [r4] ldr r1, _0806EA30 bl GetMonNickname ldr r1, _0806EA34 adds r0, r7, 0 bl itemid_copy_name ldr r4, _0806EA38 ldr r1, _0806EA3C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r0, _0806EA40 movs r1, 0x5 bl CreateTask adds r0, r5, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806EA78 mov r0, r10 strh r7, [r0] b _0806EA78 .align 2, 0 _0806EA30: .4byte 0x020231cc _0806EA34: .4byte 0x020232cc _0806EA38: .4byte 0x020234cc _0806EA3C: .4byte gUnknown_0840F1CD _0806EA40: .4byte sub_806EBB8 _0806EA44: ldr r0, [r4] adds r1, r5, 0 bl sub_806E904 adds r0, r5, 0 movs r1, 0x1 bl sub_80A9538 adds r0, r5, 0 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0806EA66 mov r1, r8 str r1, [r6] b _0806EA78 _0806EA66: ldrb r0, [r4, 0x5] mov r1, r9 movs r2, 0x1 bl sub_806EBF0 ldr r0, _0806EA88 movs r1, 0x5 bl CreateTask _0806EA78: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806EA88: .4byte party_menu_link_mon_held_item_object thumb_func_end sub_806E964 thumb_func_start party_menu_link_mon_held_item_object party_menu_link_mon_held_item_object: @ 806EA8C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0806EAC0 ldrb r0, [r0] cmp r0, 0 bne _0806EABA ldr r4, _0806EAC4 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] bl sub_806DF60 ldr r2, _0806EAC8 ldrb r1, [r4, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r4, 0x10] str r1, [r0] adds r0, r5, 0 bl DestroyTask _0806EABA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806EAC0: .4byte 0x0202e8f6 _0806EAC4: .4byte 0x0201c000 _0806EAC8: .4byte 0x03004b20 thumb_func_end party_menu_link_mon_held_item_object thumb_func_start sub_806EACC sub_806EACC: @ 806EACC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0806EB74 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r4, _0806EB30 ldr r0, [r4] movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x6] movs r1, 0x1 bl sub_80A9538 adds r0, r5, 0 movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806EB5C ldr r0, [r4] ldrh r1, [r4, 0x6] bl sub_806E904 ldrh r0, [r4, 0x6] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _0806EB34 ldrb r0, [r4, 0x5] adds r1, r5, 0 movs r2, 0x1 bl sub_806EDB4 b _0806EB9A .align 2, 0 _0806EB30: .4byte 0x0201c000 _0806EB34: ldrh r0, [r4, 0x6] ldr r1, _0806EB50 bl itemid_copy_name ldr r4, _0806EB54 ldr r1, _0806EB58 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 b _0806EB9A .align 2, 0 _0806EB50: .4byte 0x020231cc _0806EB54: .4byte 0x020234cc _0806EB58: .4byte gUnknown_0840F26E _0806EB5C: ldr r0, _0806EB70 movs r1, 0 bl sub_806E834 ldrh r0, [r4, 0x6] movs r1, 0x1 bl sub_80A9424 b _0806EB9A .align 2, 0 _0806EB70: .4byte gUnknown_0840F2FC _0806EB74: cmp r1, 0x1 beq _0806EB80 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EBA8 _0806EB80: movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EB8E movs r0, 0x5 bl audio_play _0806EB8E: movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset _0806EB9A: ldr r0, _0806EBB0 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0806EBB4 str r0, [r1] _0806EBA8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806EBB0: .4byte 0x03004b20 _0806EBB4: .4byte party_menu_link_mon_held_item_object thumb_func_end sub_806EACC thumb_func_start sub_806EBB8 sub_806EBB8: @ 806EBB8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806EBE4 ldrb r0, [r0] cmp r0, 0 bne _0806EBDE movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _0806EBE8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806EBEC str r0, [r1] _0806EBDE: pop {r4} pop {r0} bx r0 .align 2, 0 _0806EBE4: .4byte 0x0202e8f6 _0806EBE8: .4byte 0x03004b20 _0806EBEC: .4byte sub_806EACC thumb_func_end sub_806EBB8 thumb_func_start sub_806EBF0 sub_806EBF0: @ 806EBF0 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0806EC30 adds r0, r1 ldr r1, _0806EC34 bl GetMonNickname ldr r1, _0806EC38 adds r0, r4, 0 bl itemid_copy_name ldr r4, _0806EC3C ldr r1, _0806EC40 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_806E834 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806EC30: .4byte 0x03004360 _0806EC34: .4byte 0x020231cc _0806EC38: .4byte 0x020232cc _0806EC3C: .4byte 0x020234cc _0806EC40: .4byte gUnknown_0840F1AE thumb_func_end sub_806EBF0 thumb_func_start sub_806EC44 sub_806EC44: @ 806EC44 push {r4,r5,lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r3, _0806ECA0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldr r3, _0806ECA4 str r3, [r1] movs r1, 0 bl sub_806E8D0 ldr r5, _0806ECA8 ldr r0, [r5] movs r1, 0xC bl PokemonGetField lsls r0, 16 ldr r2, _0806ECAC movs r1, 0 strb r1, [r2] movs r1, 0xF8 lsls r1, 6 adds r2, r5, r1 ldrb r1, [r2] adds r1, 0x6 ldrb r2, [r2, 0x2] adds r1, r2 lsls r2, r1, 3 adds r2, r1 lsls r2, 2 ldr r1, _0806ECB0 adds r4, r2, r1 cmp r0, 0 beq _0806ECBC ldr r0, _0806ECB4 movs r1, 0x1 bl sub_806E834 ldr r0, _0806ECB8 movs r1, 0x5 bl CreateTask b _0806ECDA .align 2, 0 _0806ECA0: .4byte 0x03004b20 _0806ECA4: .4byte TaskDummy _0806ECA8: .4byte 0x0201c000 _0806ECAC: .4byte 0x0202e8f4 _0806ECB0: .4byte 0x02028280 _0806ECB4: .4byte gUnknown_0840F29B _0806ECB8: .4byte party_menu_link_mon_held_item_object _0806ECBC: ldr r0, [r5] adds r1, r4, 0 bl sub_80A2D88 adds r0, r4, 0 bl sub_80A2B40 ldr r0, _0806ECE0 movs r1, 0x1 bl sub_806E834 ldr r0, _0806ECE4 movs r1, 0x5 bl CreateTask _0806ECDA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806ECE0: .4byte gUnknown_0840F2D3 _0806ECE4: .4byte party_menu_link_mon_held_item_object thumb_func_end sub_806EC44 thumb_func_start sub_806ECE8 sub_806ECE8: @ 806ECE8 push {r4-r6,lr} sub sp, 0x4 adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r3, _0806ED38 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldr r3, _0806ED3C str r3, [r1] movs r1, 0 bl sub_806E8D0 ldr r5, _0806ED40 ldr r0, [r5] movs r1, 0xC bl PokemonGetField lsls r0, 16 lsrs r4, r0, 16 adds r6, r4, 0 cmp r4, 0 bne _0806ED50 ldr r4, _0806ED44 ldr r1, _0806ED48 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_806E834 ldr r0, _0806ED4C movs r1, 0x5 bl CreateTask b _0806EDA2 .align 2, 0 _0806ED38: .4byte 0x03004b20 _0806ED3C: .4byte TaskDummy _0806ED40: .4byte 0x0201c000 _0806ED44: .4byte 0x020234cc _0806ED48: .4byte gUnknown_0840F213 _0806ED4C: .4byte party_menu_link_mon_held_item_object _0806ED50: mov r0, sp movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] adds r0, r4, 0 movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806ED92 adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806ED7C ldr r0, [r5] bl sub_80A2DF8 _0806ED7C: ldrb r0, [r5, 0x5] adds r1, r6, 0 movs r2, 0 bl sub_806EDB4 ldr r0, [r5] movs r1, 0xC mov r2, sp bl pokemon_setattr b _0806ED9A _0806ED92: ldr r0, _0806EDAC movs r1, 0 bl sub_806E834 _0806ED9A: ldr r0, _0806EDB0 movs r1, 0x5 bl CreateTask _0806EDA2: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806EDAC: .4byte gUnknown_0840F2FC _0806EDB0: .4byte party_menu_link_mon_held_item_object thumb_func_end sub_806ECE8 thumb_func_start sub_806EDB4 sub_806EDB4: @ 806EDB4 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 movs r1, 0x64 muls r0, r1 ldr r1, _0806EDF4 adds r0, r1 ldr r1, _0806EDF8 bl GetMonNickname ldr r1, _0806EDFC adds r0, r4, 0 bl itemid_copy_name ldr r4, _0806EE00 ldr r1, _0806EE04 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_806E834 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806EDF4: .4byte 0x03004360 _0806EDF8: .4byte 0x020231cc _0806EDFC: .4byte 0x020232cc _0806EE00: .4byte 0x020234cc _0806EE04: .4byte gUnknown_0840F230 thumb_func_end sub_806EDB4 thumb_func_start sub_806EE08 sub_806EE08: @ 806EE08 push {r4,lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r3, _0806EE48 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldr r3, _0806EE4C str r3, [r1] movs r1, 0 bl sub_806E8D0 ldr r4, _0806EE50 ldr r0, [r4] movs r1, 0xC bl PokemonGetField strh r0, [r4, 0x6] ldr r0, _0806EE54 movs r1, 0x1 bl sub_806E834 ldr r0, _0806EE58 movs r1, 0x5 bl CreateTask pop {r4} pop {r0} bx r0 .align 2, 0 _0806EE48: .4byte 0x03004b20 _0806EE4C: .4byte TaskDummy _0806EE50: .4byte 0x0201c000 _0806EE54: .4byte gUnknown_0840F0E8 _0806EE58: .4byte sub_806EFEC thumb_func_end sub_806EE08 thumb_func_start sub_806EE5C sub_806EE5C: @ 806EE5C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0806EEB0 ldr r5, _0806EE90 ldrh r0, [r5, 0x6] movs r1, 0x1 bl sub_80A9424 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806EE98 ldr r0, [r5] bl sub_80A2DF8 ldr r0, _0806EE94 movs r1, 0 bl sub_806E834 b _0806EEA0 .align 2, 0 _0806EE90: .4byte 0x0201c000 _0806EE94: .4byte gUnknown_0840F24B _0806EE98: ldr r0, _0806EEAC movs r1, 0 bl sub_806E834 _0806EEA0: movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD b _0806EEDE .align 2, 0 _0806EEAC: .4byte gUnknown_0840F2FC _0806EEB0: cmp r1, 0x1 beq _0806EEBC movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EEF0 _0806EEBC: movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EECA movs r0, 0x5 bl audio_play _0806EECA: movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset movs r0, 0 movs r1, 0xE movs r2, 0x1D movs r3, 0x13 _0806EEDE: bl Reset ldr r0, _0806EEF8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806EEFC str r0, [r1] _0806EEF0: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806EEF8: .4byte 0x03004b20 _0806EEFC: .4byte party_menu_link_mon_held_item_object thumb_func_end sub_806EE5C thumb_func_start sub_806EF00 sub_806EF00: @ 806EF00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806EF2C ldrb r0, [r0] cmp r0, 0 bne _0806EF26 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _0806EF30 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806EF34 str r0, [r1] _0806EF26: pop {r4} pop {r0} bx r0 .align 2, 0 _0806EF2C: .4byte 0x0202e8f6 _0806EF30: .4byte 0x03004b20 _0806EF34: .4byte sub_806EE5C thumb_func_end sub_806EF00 thumb_func_start sub_806EF38 sub_806EF38: @ 806EF38 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0806EF9C movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r0, _0806EF70 ldr r0, [r0] bl sub_80A2E78 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _0806EF78 ldr r0, _0806EF74 movs r1, 0 bl sub_806E834 b _0806EF80 .align 2, 0 _0806EF70: .4byte 0x0201c000 _0806EF74: .4byte gUnknown_0840F10A _0806EF78: ldr r0, _0806EF90 movs r1, 0 bl sub_806E834 _0806EF80: ldr r0, _0806EF94 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806EF98 str r0, [r1] b _0806EFD8 .align 2, 0 _0806EF90: .4byte gUnknown_0840F12A _0806EF94: .4byte 0x03004b20 _0806EF98: .4byte party_menu_link_mon_held_item_object _0806EF9C: cmp r1, 0x1 beq _0806EFA8 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EFD8 _0806EFA8: movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806EFB6 movs r0, 0x5 bl audio_play _0806EFB6: movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r0, _0806EFE0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806EFE4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806EFE8 str r1, [r0] _0806EFD8: pop {r4} pop {r0} bx r0 .align 2, 0 _0806EFE0: .4byte gUnknown_0840F147 _0806EFE4: .4byte 0x03004b20 _0806EFE8: .4byte sub_806EF00 thumb_func_end sub_806EF38 thumb_func_start sub_806EFEC sub_806EFEC: @ 806EFEC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806F018 ldrb r0, [r0] cmp r0, 0 bne _0806F012 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _0806F01C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806F020 str r0, [r1] _0806F012: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F018: .4byte 0x0202e8f6 _0806F01C: .4byte 0x03004b20 _0806F020: .4byte sub_806EF38 thumb_func_end sub_806EFEC thumb_func_start ItemIdToBattleMoveId ItemIdToBattleMoveId: @ 806F024 lsls r0, 16 ldr r1, _0806F034 adds r0, r1 ldr r1, _0806F038 lsrs r0, 15 adds r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _0806F034: .4byte 0xfedf0000 _0806F038: .4byte gUnknown_08376504 thumb_func_end ItemIdToBattleMoveId thumb_func_start pokemon_has_move pokemon_has_move: @ 806F03C push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 _0806F046: adds r1, r4, 0 adds r1, 0xD adds r0, r6, 0 bl PokemonGetField cmp r0, r5 bne _0806F058 movs r0, 0x1 b _0806F064 _0806F058: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0806F046 movs r0, 0 _0806F064: pop {r4-r6} pop {r1} bx r1 thumb_func_end pokemon_has_move thumb_func_start sub_806F06C sub_806F06C: @ 806F06C push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 16 lsrs r5, 16 movs r0, 0x5 bl audio_play ldr r1, _0806F0A8 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806F0AC str r1, [r0] adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl sub_806E8D0 ldr r0, _0806F0B0 movs r1, 0x5 bl CreateTask pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F0A8: .4byte 0x03004b20 _0806F0AC: .4byte TaskDummy _0806F0B0: .4byte sub_806F0B4 thumb_func_end sub_806F06C thumb_func_start sub_806F0B4 sub_806F0B4: @ 806F0B4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 adds r7, r6, 0 ldr r5, _0806F114 ldr r0, [r5] ldr r1, _0806F118 bl GetMonNickname ldrh r0, [r5, 0x6] bl ItemIdToBattleMoveId movs r4, 0 strh r0, [r5, 0x8] ldr r0, _0806F11C ldrh r2, [r5, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F120 adds r1, r2 bl StringCopy ldr r1, _0806F124 adds r0, r5, r1 strh r4, [r0] ldr r0, [r5] ldrh r1, [r5, 0x8] bl pokemon_has_move lsls r0, 24 cmp r0, 0 beq _0806F138 ldr r4, _0806F128 ldr r1, _0806F12C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F130 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806F134 b _0806F1B6 .align 2, 0 _0806F114: .4byte 0x0201c000 _0806F118: .4byte 0x020231cc _0806F11C: .4byte 0x020232cc _0806F120: .4byte gMoveNames _0806F124: .4byte 0xfffff282 _0806F128: .4byte 0x020234cc _0806F12C: .4byte gUnknown_0840F49E _0806F130: .4byte 0x03004b20 _0806F134: .4byte party_menu_link_mon_held_item_object _0806F138: ldr r0, [r5] ldrb r1, [r5, 0x6] subs r1, 0x21 lsls r1, 24 lsrs r1, 24 bl sub_8040374 cmp r0, 0 bne _0806F17C ldr r4, _0806F16C ldr r1, _0806F170 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F174 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806F178 b _0806F1B6 .align 2, 0 _0806F16C: .4byte 0x020234cc _0806F170: .4byte gUnknown_0840F347 _0806F174: .4byte 0x03004b20 _0806F178: .4byte party_menu_link_mon_held_item_object _0806F17C: ldr r0, [r5] ldrh r1, [r5, 0x8] bl pokemon_moveset_pad_ lsls r0, 16 ldr r1, _0806F194 cmp r0, r1 beq _0806F198 adds r0, r6, 0 bl sub_806F1D0 b _0806F1B8 .align 2, 0 _0806F194: .4byte 0xffff0000 _0806F198: ldr r4, _0806F1C0 ldr r1, _0806F1C4 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F1C8 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, _0806F1CC _0806F1B6: str r1, [r0] _0806F1B8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806F1C0: .4byte 0x020234cc _0806F1C4: .4byte gUnknown_0840F37C _0806F1C8: .4byte 0x03004b20 _0806F1CC: .4byte sub_806F358 thumb_func_end sub_806F0B4 thumb_func_start sub_806F1D0 sub_806F1D0: @ 806F1D0 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0806F234 ldr r5, _0806F238 ldrh r2, [r5, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F23C adds r1, r2 bl StringCopy ldr r4, _0806F240 ldr r1, _0806F244 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r0, [r5] movs r1, 0x4 bl sub_803FCD4 ldr r1, _0806F248 adds r0, r5, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _0806F220 ldrh r1, [r5, 0x6] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bhi _0806F220 adds r0, r1, 0 movs r1, 0x1 bl sub_80A9538 _0806F220: ldr r0, _0806F24C lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0806F250 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F234: .4byte 0x020232cc _0806F238: .4byte 0x0201c000 _0806F23C: .4byte gMoveNames _0806F240: .4byte 0x020234cc _0806F244: .4byte gUnknown_0840F338 _0806F248: .4byte 0xfffff282 _0806F24C: .4byte 0x03004b20 _0806F250: .4byte sub_806F254 thumb_func_end sub_806F1D0 thumb_func_start sub_806F254 sub_806F254: @ 806F254 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806F27C ldrb r0, [r0] cmp r0, 0 bne _0806F276 ldr r0, _0806F280 bl fanfare_play ldr r1, _0806F284 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806F288 str r1, [r0] _0806F276: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F27C: .4byte 0x0202e8f6 _0806F280: .4byte 0x0000016f _0806F284: .4byte 0x03004b20 _0806F288: .4byte sub_806F28C thumb_func_end sub_806F254 thumb_func_start sub_806F28C sub_806F28C: @ 806F28C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl task_is_not_running_overworld_fanfare lsls r0, 24 cmp r0, 0 beq _0806F2F2 ldr r0, _0806F2D0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0806F2B2 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806F2F2 _0806F2B2: ldr r4, _0806F2D4 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] bl sub_806DF60 ldr r1, _0806F2D8 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _0806F2DC adds r0, r5, 0 bl sub_8070C54 b _0806F2F2 .align 2, 0 _0806F2D0: .4byte 0x03001770 _0806F2D4: .4byte 0x0201c000 _0806F2D8: .4byte 0xfffff282 _0806F2DC: ldr r2, _0806F2F8 ldrb r1, [r4, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r4, 0x10] str r1, [r0] adds r0, r6, 0 bl DestroyTask _0806F2F2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F2F8: .4byte 0x03004b20 thumb_func_end sub_806F28C thumb_func_start sub_806F2FC sub_806F2FC: @ 806F2FC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r0, _0806F32C ldrb r0, [r0] cmp r0, 0 bne _0806F34E ldr r4, _0806F330 ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] bl sub_806DF60 ldr r1, _0806F334 adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _0806F338 adds r0, r5, 0 bl sub_8070C54 b _0806F34E .align 2, 0 _0806F32C: .4byte 0x0202e8f6 _0806F330: .4byte 0x0201c000 _0806F334: .4byte 0xfffff282 _0806F338: ldr r2, _0806F354 ldrb r1, [r4, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r4, 0x10] str r1, [r0] adds r0, r6, 0 bl DestroyTask _0806F34E: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F354: .4byte 0x03004b20 thumb_func_end sub_806F2FC thumb_func_start sub_806F358 sub_806F358: @ 806F358 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806F384 ldrb r0, [r0] cmp r0, 0 bne _0806F37E movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _0806F388 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806F38C str r0, [r1] _0806F37E: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F384: .4byte 0x0202e8f6 _0806F388: .4byte 0x03004b20 _0806F38C: .4byte sub_806F390 thumb_func_end sub_806F358 thumb_func_start sub_806F390 sub_806F390: @ 806F390 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0806F3D4 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r0, _0806F3C8 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F3CC lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806F3D0 str r1, [r0] b _0806F3F4 .align 2, 0 _0806F3C8: .4byte gUnknown_0840F429 _0806F3CC: .4byte 0x03004b20 _0806F3D0: .4byte sub_806F44C _0806F3D4: cmp r1, 0x1 beq _0806F3E0 movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806F3F4 _0806F3E0: movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806F3EE movs r0, 0x5 bl audio_play _0806F3EE: adds r0, r5, 0 bl sub_806F614 _0806F3F4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806F390 thumb_func_start sub_806F3FC sub_806F3FC: @ 806F3FC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0806F438 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806F430 ldr r0, _0806F43C ldr r4, _0806F440 ldrb r1, [r4, 0x5] ldr r2, _0806F444 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _0806F448 ldrh r4, [r4, 0x8] str r4, [sp] bl sub_809D9F0 adds r0, r5, 0 bl DestroyTask _0806F430: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806F438: .4byte 0x0202f388 _0806F43C: .4byte 0x03004360 _0806F440: .4byte 0x0201c000 _0806F444: .4byte 0x03004350 _0806F448: .4byte sub_808B564 thumb_func_end sub_806F3FC thumb_func_start sub_806F44C sub_806F44C: @ 806F44C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806F484 ldrb r1, [r0] cmp r1, 0 bne _0806F47A movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0806F488 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806F48C str r1, [r0] _0806F47A: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0806F484: .4byte 0x0202e8f6 _0806F488: .4byte 0x03004b20 _0806F48C: .4byte sub_806F3FC thumb_func_end sub_806F44C thumb_func_start sub_806F490 sub_806F490: @ 806F490 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0806F50C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806F506 ldr r1, _0806F510 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldr r1, _0806F514 str r1, [r0] ldr r0, _0806F518 ldrh r1, [r0] ldr r2, _0806F51C adds r0, r3, 0 bl sub_806E8D0 bl sub_809FA30 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r5, _0806F520 ldr r0, [r5] adds r1, 0xD bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, [r5] ldr r1, _0806F524 bl GetMonNickname ldr r0, _0806F528 movs r1, 0xD muls r1, r4 ldr r2, _0806F52C adds r1, r2 bl StringCopy ldr r4, _0806F530 ldr r1, _0806F534 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r0, _0806F538 movs r1, 0x5 bl CreateTask _0806F506: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806F50C: .4byte 0x0202f388 _0806F510: .4byte 0x03004b20 _0806F514: .4byte TaskDummy _0806F518: .4byte 0x0203855e _0806F51C: .4byte sub_808B508 _0806F520: .4byte 0x0201c000 _0806F524: .4byte 0x020231cc _0806F528: .4byte 0x020232cc _0806F52C: .4byte gMoveNames _0806F530: .4byte 0x020234cc _0806F534: .4byte gUnknown_0840F44B _0806F538: .4byte sub_806F53C thumb_func_end sub_806F490 thumb_func_start sub_806F53C sub_806F53C: @ 806F53C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0806F580 ldrb r0, [r0] cmp r0, 0 bne _0806F57A ldr r4, _0806F584 ldr r5, [r4] bl sub_809FA30 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_803DE34 ldr r5, [r4] ldrh r4, [r4, 0x8] bl sub_809FA30 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_803B6A4 adds r0, r6, 0 bl sub_806F1D0 _0806F57A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F580: .4byte 0x0202e8f6 _0806F584: .4byte 0x0201c000 thumb_func_end sub_806F53C thumb_func_start sub_806F588 sub_806F588: @ 806F588 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0806F5E8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806F5E0 ldr r1, _0806F5EC lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r1 ldr r1, _0806F5F0 str r1, [r0] ldr r0, _0806F5F4 ldrh r1, [r0] ldr r2, _0806F5F8 adds r0, r3, 0 bl sub_806E8D0 ldr r0, _0806F5FC ldr r1, _0806F600 ldrh r2, [r1, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F604 adds r1, r2 bl StringCopy ldr r4, _0806F608 ldr r1, _0806F60C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r0, _0806F610 movs r1, 0x5 bl CreateTask _0806F5E0: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F5E8: .4byte 0x0202f388 _0806F5EC: .4byte 0x03004b20 _0806F5F0: .4byte TaskDummy _0806F5F4: .4byte 0x0203855e _0806F5F8: .4byte sub_808B508 _0806F5FC: .4byte 0x020232cc _0806F600: .4byte 0x0201c000 _0806F604: .4byte gMoveNames _0806F608: .4byte 0x020234cc _0806F60C: .4byte gUnknown_0840F3F0 _0806F610: .4byte sub_806F67C thumb_func_end sub_806F588 thumb_func_start sub_806F614 sub_806F614: @ 806F614 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r0, _0806F660 ldr r1, _0806F664 ldrh r2, [r1, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F668 adds r1, r2 bl StringCopy ldr r4, _0806F66C ldr r1, _0806F670 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F674 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0806F678 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806F660: .4byte 0x020232cc _0806F664: .4byte 0x0201c000 _0806F668: .4byte gMoveNames _0806F66C: .4byte 0x020234cc _0806F670: .4byte gUnknown_0840F3F0 _0806F674: .4byte 0x03004b20 _0806F678: .4byte sub_806F67C thumb_func_end sub_806F614 thumb_func_start sub_806F67C sub_806F67C: @ 806F67C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806F6A8 ldrb r0, [r0] cmp r0, 0 bne _0806F6A2 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r0, _0806F6AC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0806F6B0 str r0, [r1] _0806F6A2: pop {r4} pop {r0} bx r0 .align 2, 0 _0806F6A8: .4byte 0x0202e8f6 _0806F6AC: .4byte 0x03004b20 _0806F6B0: .4byte sub_806F6B4 thumb_func_end sub_806F67C thumb_func_start sub_806F6B4 sub_806F6B4: @ 806F6B4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 bne _0806F730 movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r4, _0806F710 ldr r0, [r4] ldr r1, _0806F714 bl GetMonNickname ldr r0, _0806F718 ldrh r2, [r4, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F71C adds r1, r2 bl StringCopy ldr r4, _0806F720 ldr r1, _0806F724 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F728 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0806F72C b _0806F78E .align 2, 0 _0806F710: .4byte 0x0201c000 _0806F714: .4byte 0x020231cc _0806F718: .4byte 0x020232cc _0806F71C: .4byte gMoveNames _0806F720: .4byte 0x020234cc _0806F724: .4byte gUnknown_0840F409 _0806F728: .4byte 0x03004b20 _0806F72C: .4byte sub_806F2FC _0806F730: cmp r1, 0x1 beq _0806F73C movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806F790 _0806F73C: movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0806F74A movs r0, 0x5 bl audio_play _0806F74A: movs r0, 0x17 movs r1, 0x8 movs r2, 0x1D movs r3, 0xD bl Reset ldr r4, _0806F798 ldr r0, [r4] ldr r1, _0806F79C bl GetMonNickname ldr r0, _0806F7A0 ldrh r2, [r4, 0x8] movs r1, 0xD muls r1, r2 ldr r2, _0806F7A4 adds r1, r2 bl StringCopy ldr r4, _0806F7A8 ldr r1, _0806F7AC adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _0806F7B0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806F7B4 _0806F78E: str r1, [r0] _0806F790: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806F798: .4byte 0x0201c000 _0806F79C: .4byte 0x020231cc _0806F7A0: .4byte 0x020232cc _0806F7A4: .4byte gMoveNames _0806F7A8: .4byte 0x020234cc _0806F7AC: .4byte gUnknown_0840F37C _0806F7B0: .4byte 0x03004b20 _0806F7B4: .4byte sub_806F358 thumb_func_end sub_806F6B4 thumb_func_start sub_806F7B8 sub_806F7B8: @ 806F7B8 push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldr r3, _0806F7D4 _0806F7C2: adds r0, r1, 0 adds r0, 0x32 lsls r0, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _0806F7D8 movs r0, 0x1 b _0806F7E4 .align 2, 0 _0806F7D4: .4byte gUnknown_08376504 _0806F7D8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _0806F7C2 movs r0, 0 _0806F7E4: pop {r1} bx r1 thumb_func_end sub_806F7B8 thumb_func_start sub_806F7E8 sub_806F7E8: @ 806F7E8 push {r4-r6,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r3, r0, 2 adds r3, r0 lsls r3, 3 ldr r0, _0806F898 adds r3, r0 movs r0, 0x14 ldrsh r1, [r3, r0] str r1, [r5] movs r4, 0x16 ldrsh r0, [r3, r4] str r0, [r5, 0x4] movs r4, 0x18 ldrsh r0, [r3, r4] lsls r2, 24 asrs r2, 24 muls r0, r2 str r0, [r5, 0x8] movs r0, 0x80 lsls r0, 1 str r0, [r5, 0x10] ldr r6, _0806F89C ldr r2, _0806F8A0 adds r0, r6, r2 movs r4, 0 ldrsh r0, [r0, r4] bl sub_8046200 lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 cmp r2, 0x2 bls _0806F83E ldrb r0, [r5, 0xC] movs r1, 0x20 negs r1, r1 ands r1, r0 movs r0, 0x4 orrs r1, r0 strb r1, [r5, 0xC] _0806F83E: cmp r2, 0x2 bne _0806F850 ldrb r0, [r5, 0xC] movs r1, 0x20 negs r1, r1 ands r1, r0 movs r0, 0x5 orrs r1, r0 strb r1, [r5, 0xC] _0806F850: cmp r3, 0x1 bhi _0806F862 ldrb r0, [r5, 0xC] movs r1, 0x20 negs r1, r1 ands r1, r0 movs r0, 0x6 orrs r1, r0 strb r1, [r5, 0xC] _0806F862: ldr r4, _0806F8A4 bl battle_type_is_double movs r2, 0x80 lsls r2, 5 adds r1, r6, r2 ldrb r2, [r1, 0x5] lsls r2, 2 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r2, r1 adds r2, r4 ldr r2, [r2] ldr r4, _0806F8A8 adds r1, r6, r4 adds r0, r5, 0 movs r3, 0 bl sub_80460C8 lsls r0, 16 asrs r0, 16 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806F898: .4byte 0x03004b28 _0806F89C: .4byte 0x0201b000 _0806F8A0: .4byte 0x00000282 _0806F8A4: .4byte gUnknown_08376858 _0806F8A8: .4byte 0x0000100c thumb_func_end sub_806F7E8 thumb_func_start sub_806F8AC sub_806F8AC: @ 806F8AC push {r4-r7,lr} sub sp, 0x18 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0x1 negs r4, r4 adds r0, r6, 0 mov r1, sp adds r2, r4, 0 bl sub_806F7E8 ldr r1, _0806F8F4 ldr r2, _0806F8F8 adds r5, r1, r2 strh r0, [r5] lsls r0, 16 asrs r0, 16 cmp r0, r4 beq _0806F8D4 b _0806F9F0 _0806F8D4: movs r0, 0x80 lsls r0, 5 adds r1, r0 movs r0, 0 str r0, [r1, 0xC] ldr r0, [sp, 0x8] negs r3, r0 ldr r2, [sp, 0x4] adds r0, r3, r2 ldr r1, [sp] cmp r0, r1 ble _0806F8FC subs r1, r2 add r0, sp, 0x14 strh r1, [r0] b _0806F900 .align 2, 0 _0806F8F4: .4byte 0x0201b000 _0806F8F8: .4byte 0x00000282 _0806F8FC: add r0, sp, 0x14 strh r3, [r0] _0806F900: adds r5, r0, 0 ldr r1, _0806F940 ldrh r0, [r5] negs r0, r0 str r0, [r1] ldr r0, _0806F944 ldr r0, [r0] ldr r1, _0806F948 bl GetMonNickname ldr r0, _0806F94C ldrh r1, [r5] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r2, _0806F950 lsls r1, r6, 2 adds r0, r1, r6 lsls r0, 3 adds r0, r2 movs r2, 0x24 ldrsh r0, [r0, r2] adds r7, r1, 0 cmp r0, 0 bne _0806F95C ldr r0, _0806F954 ldr r1, _0806F958 bl StringExpandPlaceholders b _0806F964 .align 2, 0 _0806F940: .4byte 0x02024bec _0806F944: .4byte 0x0201c000 _0806F948: .4byte 0x020231cc _0806F94C: .4byte 0x020232cc _0806F950: .4byte 0x03004b20 _0806F954: .4byte 0x020234cc _0806F958: .4byte gUnknown_0840F4B5 _0806F95C: ldr r0, _0806F9D4 ldr r1, _0806F9D8 bl StringExpandPlaceholders _0806F964: ldr r4, _0806F9DC ldrb r0, [r4, 0x4] ldrb r1, [r4, 0x5] bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] bl sub_806D84C bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldrb r1, [r4, 0x5] lsls r1, 1 adds r0, r1 ldr r1, _0806F9E0 adds r0, r1 movs r1, 0x7 bl task_pc_turn_off ldr r0, _0806F9E4 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] ldr r0, _0806F9D4 movs r1, 0x1 bl sub_806E834 ldr r1, [sp, 0x4] ldrh r0, [r5] adds r0, r1 strh r0, [r5] ldr r0, [r4] movs r1, 0x39 adds r2, r5, 0 bl pokemon_setattr ldrh r0, [r4, 0x6] movs r1, 0x1 bl sub_80A9538 bl sub_8032638 ldr r1, _0806F9E8 adds r0, r7, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806F9EC str r1, [r0] b _0806FA10 .align 2, 0 _0806F9D4: .4byte 0x020234cc _0806F9D8: .4byte gUnknown_0840F566 _0806F9DC: .4byte 0x0201c000 _0806F9E0: .4byte gUnknown_083769A8 _0806F9E4: .4byte 0xfffff261 _0806F9E8: .4byte 0x03004b20 _0806F9EC: .4byte sub_806FB44 _0806F9F0: movs r2, 0x80 lsls r2, 5 adds r0, r1, r2 ldrb r4, [r0, 0x5] bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldrh r2, [r5] ldr r3, [sp] lsls r3, 16 lsrs r3, 16 adds r0, r4, 0 bl sub_806E420 _0806FA10: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806F8AC thumb_func_start sub_806FA18 sub_806FA18: @ 806FA18 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 mov r1, sp movs r2, 0x1 bl sub_806F7E8 ldr r6, _0806FAC4 ldr r1, _0806FAC8 adds r7, r6, r1 strh r0, [r7] lsls r0, 16 asrs r0, 16 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _0806FAE4 movs r0, 0x1 bl audio_play movs r0, 0x80 lsls r0, 5 adds r4, r6, r0 movs r0, 0 str r0, [r4, 0xC] ldr r2, _0806FACC lsls r3, r5, 2 adds r3, r5 lsls r3, 3 adds r5, r3, r2 ldrh r0, [r5, 0x1E] ldrh r1, [r5, 0x20] subs r0, r1 strh r0, [r5, 0x1E] ldr r0, [r4] adds r2, r3 adds r2, 0x1E movs r1, 0x39 bl pokemon_setattr ldrb r0, [r4, 0x4] ldr r1, _0806FAD0 adds r6, r1 ldrb r1, [r6, 0x1] bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 ldr r1, [r4] bl sub_806D84C ldr r2, _0806FAD4 ldrb r1, [r6, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x2E] strb r0, [r4, 0x5] ldrb r1, [r4, 0x5] movs r0, 0x64 muls r0, r1 ldr r1, _0806FAD8 adds r0, r1 str r0, [r4] movs r1, 0x3A bl PokemonGetField strh r0, [r5, 0x1C] ldr r0, [r4] movs r1, 0x39 bl PokemonGetField strh r0, [r5, 0x1E] ldr r0, _0806FADC str r0, [r4, 0xC] ldr r0, [r4, 0x10] str r0, [r4, 0x14] ldr r0, _0806FAE0 str r0, [r5] ldrh r0, [r5, 0x1E] strh r0, [r7] b _0806FB04 .align 2, 0 _0806FAC4: .4byte 0x0201b000 _0806FAC8: .4byte 0x00000282 _0806FACC: .4byte 0x03004b20 _0806FAD0: .4byte 0xfffe6000 _0806FAD4: .4byte 0x02020004 _0806FAD8: .4byte 0x03004360 _0806FADC: .4byte 0xffff8000 _0806FAE0: .4byte sub_806F8AC _0806FAE4: movs r1, 0x80 lsls r1, 5 adds r0, r6, r1 ldrb r4, [r0, 0x5] bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldrh r2, [r7] ldr r3, [sp] lsls r3, 16 lsrs r3, 16 adds r0, r4, 0 bl sub_806E420 _0806FB04: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_806FA18 thumb_func_start sub_806FB0C sub_806FB0C: @ 806FB0C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806FB38 ldrb r0, [r0] cmp r0, 0 bne _0806FB32 ldr r3, _0806FB3C ldr r2, _0806FB40 ldrb r1, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 ldr r1, [r2, 0x10] str r1, [r0] adds r0, r4, 0 bl DestroyTask _0806FB32: pop {r4} pop {r0} bx r0 .align 2, 0 _0806FB38: .4byte 0x0202e8f6 _0806FB3C: .4byte 0x03004b20 _0806FB40: .4byte 0x0201c000 thumb_func_end sub_806FB0C thumb_func_start sub_806FB44 sub_806FB44: @ 806FB44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0806FB70 ldrb r0, [r0] cmp r0, 0 bne _0806FB6A ldr r3, _0806FB74 ldr r2, _0806FB78 ldrb r1, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 ldr r1, [r2, 0x14] str r1, [r0] adds r0, r4, 0 bl DestroyTask _0806FB6A: pop {r4} pop {r0} bx r0 .align 2, 0 _0806FB70: .4byte 0x0202e8f6 _0806FB74: .4byte 0x03004b20 _0806FB78: .4byte 0x0201c000 thumb_func_end sub_806FB44 thumb_func_start sub_806FB7C sub_806FB7C: @ 806FB7C push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _0806FB90 ldr r0, _0806FB8C b _0806FB9A .align 2, 0 _0806FB8C: .4byte 0x02028daa _0806FB90: ldr r1, _0806FBA8 subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _0806FB9A: ldrb r1, [r0, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0806FBAC movs r0, 0 b _0806FBAE .align 2, 0 _0806FBA8: .4byte gItemEffectTable _0806FBAC: movs r0, 0x1 _0806FBAE: pop {r1} bx r1 thumb_func_end sub_806FB7C thumb_func_start sub_806FBB4 sub_806FBB4: @ 806FBB4 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_806E168 adds r0, r4, 0 adds r1, r5, 0 bl sub_806E2C0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_806FBB4 thumb_func_start GetMedicineItemEffectMessage GetMedicineItemEffectMessage: @ 806FBD0 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_8070E48 lsls r0, 24 lsrs r0, 24 subs r0, 0x3 cmp r0, 0x12 bls _0806FBE6 b _0806FD7C _0806FBE6: lsls r0, 2 ldr r1, _0806FBF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806FBF0: .4byte _0806FBF4 .align 2, 0 _0806FBF4: .4byte _0806FC40 .4byte _0806FC54 .4byte _0806FC68 .4byte _0806FC7C .4byte _0806FC90 .4byte _0806FCA4 .4byte _0806FCB8 .4byte _0806FD7C .4byte _0806FCCC .4byte _0806FCF0 .4byte _0806FCE0 .4byte _0806FD20 .4byte _0806FD30 .4byte _0806FD10 .4byte _0806FD00 .4byte _0806FD7C .4byte _0806FD54 .4byte _0806FD54 .4byte _0806FD68 _0806FC40: ldr r0, _0806FC4C ldr r1, _0806FC50 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FC4C: .4byte 0x020234cc _0806FC50: .4byte gUnknown_0840F4DA _0806FC54: ldr r0, _0806FC60 ldr r1, _0806FC64 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FC60: .4byte 0x020234cc _0806FC64: .4byte gUnknown_0840F518 _0806FC68: ldr r0, _0806FC74 ldr r1, _0806FC78 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FC74: .4byte 0x020234cc _0806FC78: .4byte gUnknown_0840F526 _0806FC7C: ldr r0, _0806FC88 ldr r1, _0806FC8C bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FC88: .4byte 0x020234cc _0806FC8C: .4byte gUnknown_0840F53E _0806FC90: ldr r0, _0806FC9C ldr r1, _0806FCA0 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FC9C: .4byte 0x020234cc _0806FCA0: .4byte gUnknown_0840F4FB _0806FCA4: ldr r0, _0806FCB0 ldr r1, _0806FCB4 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FCB0: .4byte 0x020234cc _0806FCB4: .4byte gUnknown_0840F5D7 _0806FCB8: ldr r0, _0806FCC4 ldr r1, _0806FCC8 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FCC4: .4byte 0x020234cc _0806FCC8: .4byte gUnknown_0840F5FA _0806FCCC: ldr r0, _0806FCD8 ldr r1, _0806FCDC bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FCD8: .4byte 0x020234cc _0806FCDC: .4byte gUnknown_0840F57C _0806FCE0: ldr r0, _0806FCE8 ldr r1, _0806FCEC b _0806FD34 .align 2, 0 _0806FCE8: .4byte 0x020232cc _0806FCEC: .4byte gUnknown_0840EF72 _0806FCF0: ldr r0, _0806FCF8 ldr r1, _0806FCFC b _0806FD34 .align 2, 0 _0806FCF8: .4byte 0x020232cc _0806FCFC: .4byte gUnknown_0840F7C6 _0806FD00: ldr r0, _0806FD08 ldr r1, _0806FD0C b _0806FD34 .align 2, 0 _0806FD08: .4byte 0x020232cc _0806FD0C: .4byte gUnknown_0840F7CD _0806FD10: ldr r0, _0806FD18 ldr r1, _0806FD1C b _0806FD34 .align 2, 0 _0806FD18: .4byte 0x020232cc _0806FD1C: .4byte gUnknown_0840F7E5 _0806FD20: ldr r0, _0806FD28 ldr r1, _0806FD2C b _0806FD34 .align 2, 0 _0806FD28: .4byte 0x020232cc _0806FD2C: .4byte gUnknown_0840EF75 _0806FD30: ldr r0, _0806FD44 ldr r1, _0806FD48 _0806FD34: bl StringCopy ldr r0, _0806FD4C ldr r1, _0806FD50 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FD44: .4byte 0x020232cc _0806FD48: .4byte gUnknown_0840EF7D _0806FD4C: .4byte 0x020234cc _0806FD50: .4byte gUnknown_0840F5C1 _0806FD54: ldr r0, _0806FD60 ldr r1, _0806FD64 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FD60: .4byte 0x020234cc _0806FD64: .4byte gUnknown_0840F591 _0806FD68: ldr r0, _0806FD74 ldr r1, _0806FD78 bl StringExpandPlaceholders b _0806FD84 .align 2, 0 _0806FD74: .4byte 0x020234cc _0806FD78: .4byte gUnknown_0840F553 _0806FD7C: ldr r0, _0806FD88 ldr r1, _0806FD8C bl StringExpandPlaceholders _0806FD84: pop {r0} bx r0 .align 2, 0 _0806FD88: .4byte 0x020234cc _0806FD8C: .4byte gUnknown_0840EF85 thumb_func_end GetMedicineItemEffectMessage thumb_func_start sub_806FD90 sub_806FD90: @ 806FD90 push {r4,lr} adds r4, r0, 0 lsls r0, r1, 16 lsrs r0, 16 bl sub_8070E48 lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bne _0806FDBC adds r0, r4, 0 movs r1, 0xB bl PokemonGetField ldr r1, _0806FDB8 cmp r0, r1 bne _0806FDBC movs r0, 0x1 b _0806FDBE .align 2, 0 _0806FDB8: .4byte 0x0000012f _0806FDBC: movs r0, 0 _0806FDBE: pop {r4} pop {r1} bx r1 thumb_func_end sub_806FD90 thumb_func_start ExecuteTableBasedItemEffect__ ExecuteTableBasedItemEffect__: @ 806FDC4 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r6, r2, 24 ldr r0, _0806FDF0 ldr r1, _0806FDF4 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0806FDFC movs r0, 0x64 muls r0, r3 ldr r1, _0806FDF8 adds r0, r1 adds r1, r5, 0 adds r2, r3, 0 b _0806FE16 .align 2, 0 _0806FDF0: .4byte 0x03001770 _0806FDF4: .4byte 0x0000043d _0806FDF8: .4byte 0x03004360 _0806FDFC: movs r0, 0x64 adds r4, r3, 0 muls r4, r0 ldr r0, _0806FE28 adds r4, r0 adds r0, r3, 0 bl sub_8094C20 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 _0806FE16: adds r3, r6, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0806FE28: .4byte 0x03004360 thumb_func_end ExecuteTableBasedItemEffect__ thumb_func_start sub_806FE2C sub_806FE2C: @ 806FE2C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 16 lsrs r6, r1, 16 movs r0, 0 mov r9, r0 ldr r1, _0806FED4 mov r10, r1 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 add r1, r10 ldr r0, _0806FED8 str r0, [r1] movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_806E8D0 ldr r5, _0806FEDC ldr r0, [r5] adds r1, r6, 0 bl sub_806FD90 lsls r0, 24 cmp r0, 0 bne _0806FEE0 adds r0, r6, 0 bl sub_806FB7C lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, r7, 2 mov r8, r2 cmp r0, 0x1 bne _0806FEC2 ldr r0, [r5] movs r1, 0x3A bl PokemonGetField mov r3, r8 adds r1, r3, r7 lsls r1, 3 mov r2, r10 adds r4, r1, r2 strh r0, [r4, 0x1C] ldr r0, [r5] movs r1, 0x39 bl PokemonGetField strh r0, [r4, 0x1E] movs r3, 0x1C ldrsh r1, [r4, r3] lsls r0, 16 asrs r0, 16 cmp r1, r0 bne _0806FEC2 movs r0, 0 mov r9, r0 mov r1, r9 strh r1, [r4, 0x1C] strh r1, [r4, 0x1E] _0806FEC2: ldr r0, _0806FEDC ldrb r0, [r0, 0x5] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 lsrs r0, 24 b _0806FEE6 .align 2, 0 _0806FED4: .4byte 0x03004b20 _0806FED8: .4byte TaskDummy _0806FEDC: .4byte 0x0201c000 _0806FEE0: movs r0, 0x1 lsls r2, r7, 2 mov r8, r2 _0806FEE6: cmp r0, 0 beq _0806FF14 ldr r1, _0806FF08 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl audio_play ldr r0, _0806FF0C movs r1, 0x1 bl sub_806E834 ldr r1, _0806FF10 mov r3, r8 adds r0, r3, r7 b _08070002 .align 2, 0 _0806FF08: .4byte 0x0202e8f4 _0806FF0C: .4byte gUnknown_0840EF85 _0806FF10: .4byte 0x03004b20 _0806FF14: ldr r1, _0806FF30 movs r0, 0x1 strb r0, [r1] adds r0, r6, 0 bl IsBlueYellowRedFlute lsls r0, 24 cmp r0, 0 bne _0806FF34 movs r0, 0x1 bl audio_play b _0806FF3A .align 2, 0 _0806FF30: .4byte 0x0202e8f4 _0806FF34: movs r0, 0x75 bl audio_play _0806FF3A: ldr r4, _0806FF88 ldr r0, [r4] bl sub_80A1CD8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 beq _0806FF4E cmp r0, 0 bne _0806FF56 _0806FF4E: ldr r0, [r4] ldrb r1, [r4, 0x5] bl sub_806FBB4 _0806FF56: mov r0, r9 cmp r0, 0x1 bne _0806FFC8 ldr r4, _0806FF88 ldr r0, [r4] movs r1, 0x39 bl PokemonGetField ldr r2, _0806FF8C mov r3, r8 adds r1, r3, r7 lsls r1, 3 adds r2, r1, r2 ldrh r1, [r2, 0x1E] subs r0, r1 strh r0, [r2, 0x20] ldr r0, _0806FF90 str r0, [r4, 0xC] movs r1, 0x1E ldrsh r0, [r2, r1] cmp r0, 0 bne _0806FF94 mov r3, r9 strh r3, [r2, 0x24] b _0806FF98 .align 2, 0 _0806FF88: .4byte 0x0201c000 _0806FF8C: .4byte 0x03004b20 _0806FF90: .4byte 0xffff8000 _0806FF94: movs r0, 0 strh r0, [r2, 0x24] _0806FF98: ldr r2, _0806FFB8 ldr r0, [r2, 0x10] str r0, [r2, 0x14] ldr r1, _0806FFBC mov r3, r8 adds r0, r3, r7 lsls r0, 3 adds r0, r1 ldr r1, _0806FFC0 str r1, [r0] ldrh r0, [r0, 0x1E] ldr r1, _0806FFC4 adds r2, r1 strh r0, [r2] b _0807000A .align 2, 0 _0806FFB8: .4byte 0x0201c000 _0806FFBC: .4byte 0x03004b20 _0806FFC0: .4byte sub_806F8AC _0806FFC4: .4byte 0xfffff282 _0806FFC8: ldr r4, _08070018 ldr r0, [r4] ldr r1, _0807001C bl GetMonNickname adds r0, r6, 0 bl IsBlueYellowRedFlute lsls r0, 24 cmp r0, 0 bne _0806FFE6 adds r0, r6, 0 movs r1, 0x1 bl sub_80A9538 _0806FFE6: adds r0, r6, 0 bl GetMedicineItemEffectMessage ldrb r0, [r4, 0x5] ldr r1, [r4] bl sub_806E07C ldr r0, _08070020 movs r1, 0x1 bl sub_806E834 ldr r1, _08070024 mov r2, r8 adds r0, r2, r7 _08070002: lsls r0, 3 adds r0, r1 ldr r1, _08070028 str r1, [r0] _0807000A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070018: .4byte 0x0201c000 _0807001C: .4byte 0x020231cc _08070020: .4byte 0x020234cc _08070024: .4byte 0x03004b20 _08070028: .4byte sub_806FB0C thumb_func_end sub_806FE2C thumb_func_start IsBlueYellowRedFlute IsBlueYellowRedFlute: @ 807002C push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x27 beq _0807003E cmp r0, 0x29 beq _0807003E cmp r0, 0x28 bne _08070042 _0807003E: movs r0, 0x1 b _08070044 _08070042: movs r0, 0 _08070044: pop {r1} bx r1 thumb_func_end IsBlueYellowRedFlute thumb_func_start sub_8070048 sub_8070048: @ 8070048 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r3, _08070078 str r2, [r3, 0x10] movs r4, 0 strb r0, [r3, 0x4] movs r2, 0 strh r1, [r3, 0x6] strb r2, [r3, 0x5] ldr r1, _0807007C str r1, [r3, 0x14] ldr r2, _08070080 adds r1, r3, r2 strh r4, [r1] ldr r1, _08070084 adds r3, r1 strh r4, [r3] bl sub_8070088 pop {r4} pop {r0} bx r0 .align 2, 0 _08070078: .4byte 0x0201c000 _0807007C: .4byte sub_80701DC _08070080: .4byte 0xfffff27e _08070084: .4byte 0xfffff280 thumb_func_end sub_8070048 thumb_func_start sub_8070088 sub_8070088: @ 8070088 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, _08070120 mov r10, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 mov r2, r10 adds r7, r1, r2 ldr r5, _08070124 str r5, [r7] ldr r4, _08070128 ldrb r0, [r4, 0x5] movs r1, 0x64 mov r9, r1 mov r2, r9 muls r2, r0 adds r0, r2, 0 ldr r1, _0807012C mov r8, r1 add r0, r8 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _08070118 adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 str r0, [sp] mov r0, r10 adds r0, 0x8 ldr r2, [sp] adds r6, r2, r0 ldrb r0, [r4, 0x5] mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 str r0, [r4] movs r1, 0x3A bl PokemonGetField strh r0, [r6, 0x14] ldr r0, [r4] movs r1, 0x39 bl PokemonGetField strh r0, [r6, 0x16] ldrb r0, [r4, 0x5] ldrh r1, [r4, 0x6] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _08070134 adds r0, r5, 0 bl DestroyTask _08070118: ldr r0, _08070130 str r0, [r7] b _080701B0 .align 2, 0 _08070120: .4byte 0x03004b20 _08070124: .4byte TaskDummy _08070128: .4byte 0x0201c000 _0807012C: .4byte 0x03004360 _08070130: .4byte sub_80701DC _08070134: ldr r1, _080701C0 movs r0, 0x1 strb r0, [r1] movs r0, 0x3 movs r1, 0xE movs r2, 0x1A movs r3, 0x13 bl Reset movs r0, 0x1 bl audio_play ldr r0, [r4] ldrb r1, [r4, 0x5] bl sub_806FBB4 bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldrb r1, [r4, 0x5] lsls r1, 1 adds r0, r1 ldr r1, _080701C4 adds r0, r1 movs r1, 0x9 bl task_pc_turn_off ldr r2, _080701C8 adds r1, r4, r2 movs r0, 0x2 strb r0, [r1] ldr r0, [r4] movs r1, 0x39 bl PokemonGetField ldrh r1, [r6, 0x16] subs r0, r1 strh r0, [r6, 0x18] movs r0, 0x1 strh r0, [r6, 0x1C] ldr r1, _080701CC adds r0, r4, r1 movs r1, 0x1 strh r1, [r0] ldr r2, _080701D0 adds r0, r4, r2 strh r1, [r0] ldrh r1, [r6, 0x16] adds r2, 0x2 adds r0, r4, r2 strh r1, [r0] ldr r0, _080701D4 str r0, [r4, 0xC] ldr r1, [sp] add r1, r10 ldr r0, _080701D8 str r0, [r1] _080701B0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080701C0: .4byte 0x0202e8f4 _080701C4: .4byte gUnknown_083769A8 _080701C8: .4byte 0xfffff261 _080701CC: .4byte 0xfffff27e _080701D0: .4byte 0xfffff280 _080701D4: .4byte 0xffff8000 _080701D8: .4byte sub_806F8AC thumb_func_end sub_8070088 thumb_func_start sub_80701DC sub_80701DC: @ 80701DC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, _08070280 ldr r0, _08070284 adds r7, r6, r0 movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x1 bne _0807023E movs r0, 0x80 lsls r0, 5 adds r4, r6, r0 ldrh r0, [r4, 0x6] movs r1, 0x1 bl sub_80A9424 ldrb r1, [r4, 0x5] movs r0, 0x64 muls r0, r1 ldr r1, _08070288 adds r0, r1 movs r1, 0xB bl PokemonGetField cmp r0, 0 beq _0807023A bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldrb r1, [r4, 0x5] lsls r1, 1 adds r0, r1 ldr r1, _0807028C adds r0, r1 movs r1, 0x3 bl task_pc_turn_off ldr r0, _08070290 adds r1, r6, r0 movs r0, 0x2 strb r0, [r1] _0807023A: movs r0, 0 strh r0, [r7] _0807023E: ldr r4, _08070294 ldrb r0, [r4, 0x5] adds r0, 0x1 strb r0, [r4, 0x5] lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _080702D8 ldr r1, _08070298 movs r0, 0 strb r0, [r1] ldr r1, _0807029C adds r0, r4, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080702B0 ldr r1, _080702A0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _080702A4 str r1, [r0] ldr r0, _080702A8 movs r1, 0x1 bl sub_806E834 ldr r0, _080702AC movs r1, 0x8 bl CreateTask b _080702C6 .align 2, 0 _08070280: .4byte 0x0201b000 _08070284: .4byte 0x0000027e _08070288: .4byte 0x03004360 _0807028C: .4byte gUnknown_083769A8 _08070290: .4byte 0x00000261 _08070294: .4byte 0x0201c000 _08070298: .4byte 0x0202e8f4 _0807029C: .4byte 0xfffff280 _080702A0: .4byte 0x03004b20 _080702A4: .4byte TaskDummy _080702A8: .4byte gUnknown_0840EF85 _080702AC: .4byte sub_806FB0C _080702B0: ldrh r0, [r4, 0x6] movs r1, 0x1 bl sub_80A9538 ldr r1, _080702D0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, [r4, 0x10] str r1, [r0] _080702C6: ldr r1, _080702D4 movs r0, 0 strb r0, [r1] b _080702DE .align 2, 0 _080702D0: .4byte 0x03004b20 _080702D4: .4byte 0x03005ce0 _080702D8: adds r0, r5, 0 bl sub_8070088 _080702DE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80701DC thumb_func_start sub_80702E4 sub_80702E4: @ 80702E4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r6, 0 movs r0, 0x13 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl DrawDefaultWindow movs r5, 0 movs r0, 0x64 adds r7, r4, 0 muls r7, r0 ldr r0, _0807036C mov r8, r0 _0807030C: adds r1, r5, 0 adds r1, 0xD mov r2, r8 adds r0, r7, r2 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0xD muls r0, r4 ldr r1, _08070370 adds r0, r1 lsls r2, r5, 25 movs r1, 0xB0 lsls r1, 20 adds r2, r1 lsrs r2, 24 movs r1, 0x14 bl Print cmp r4, 0 beq _08070340 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _08070340: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0807030C movs r0, 0 str r0, [sp] movs r0, 0x9 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x14 movs r2, 0xB adds r3, r6, 0 bl InitMenu add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807036C: .4byte 0x03004360 _08070370: .4byte gMoveNames thumb_func_end sub_80702E4 thumb_func_start sub_8070374 sub_8070374: @ 8070374 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 adds r4, r2, 0 ldr r0, _08070398 ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0807039C movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor b _080703E4 .align 2, 0 _08070398: .4byte 0x03001770 _0807039C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080703B2 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor b _080703E4 _080703B2: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080703CC ldr r0, _080703C8 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 b _080703E4 .align 2, 0 _080703C8: .4byte gUnknown_08376B54 _080703CC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080703E4 movs r0, 0x5 bl audio_play ldr r0, _080703EC ldr r1, [r0, 0x4] adds r0, r4, 0 bl _call_via_r1 _080703E4: pop {r4} pop {r0} bx r0 .align 2, 0 _080703EC: .4byte gUnknown_08376B54 thumb_func_end sub_8070374 thumb_func_start dp05_ether dp05_ether: @ 80703F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r2 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r5, r1, 16 cmp r5, 0xAF bne _08070410 ldr r0, _0807040C b _0807041C .align 2, 0 _0807040C: .4byte 0x02028daa _08070410: ldr r1, _08070464 adds r0, r5, 0 subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _0807041C: mov r8, r0 ldr r7, _08070468 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r7 ldr r0, _0807046C str r0, [r1] movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 adds r1, r5, 0 mov r2, r9 bl sub_806E8D0 mov r0, r8 ldrb r1, [r0, 0x4] movs r0, 0x10 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08070470 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r7 strh r1, [r0, 0x1E] adds r0, r4, 0 bl ether_effect_related b _08070498 .align 2, 0 _08070464: .4byte gItemEffectTable _08070468: .4byte 0x03004b20 _0807046C: .4byte TaskDummy _08070470: movs r0, 0x5 bl audio_play movs r0, 0xA movs r1, 0x3 bl sub_806D538 ldr r0, _080704A4 ldrb r0, [r0, 0x5] bl sub_80702E4 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r7 ldr r1, _080704A8 str r1, [r0] ldr r1, _080704AC movs r0, 0 strh r0, [r1, 0x2E] _08070498: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080704A4: .4byte 0x0201c000 _080704A8: .4byte sub_8070374 _080704AC: .4byte 0x03001770 thumb_func_end dp05_ether thumb_func_start ether_effect_related_2 ether_effect_related_2: @ 80704B0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8072DEC movs r0, 0x13 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl Reset bl sub_806D5A4 bl GetMenuCursorPos ldr r2, _080704EC lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x1E] adds r0, r4, 0 bl ether_effect_related pop {r4} pop {r0} bx r0 .align 2, 0 _080704EC: .4byte 0x03004b20 thumb_func_end ether_effect_related_2 thumb_func_start sub_80704F0 sub_80704F0: @ 80704F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8072DEC movs r0, 0x13 movs r1, 0xA movs r2, 0x1D movs r3, 0x13 bl Reset ldr r0, _08070528 ldr r1, _0807052C adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0807053C ldr r2, _08070530 ldr r0, _08070534 ldrb r1, [r0, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _08070538 b _0807054C .align 2, 0 _08070528: .4byte 0x03001770 _0807052C: .4byte 0x0000043d _08070530: .4byte 0x03004b20 _08070534: .4byte 0x0201c000 _08070538: .4byte sub_8095118 _0807053C: ldr r2, _08070564 ldr r0, _08070568 ldrb r1, [r0, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, _0807056C _0807054C: str r1, [r0] movs r0, 0x3 movs r1, 0 bl sub_806D538 adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _08070564: .4byte 0x03004b20 _08070568: .4byte 0x0201c000 _0807056C: .4byte sub_808B0C0 thumb_func_end sub_80704F0 thumb_func_start ether_effect_related ether_effect_related: @ 8070570 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 ldr r6, _080705A8 ldrb r0, [r6, 0x5] ldrh r1, [r6, 0x6] ldr r3, _080705AC lsls r2, r4, 2 adds r2, r4 lsls r2, 3 adds r7, r2, r3 ldrb r2, [r7, 0x1E] bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _080705B8 ldr r0, _080705B0 strb r5, [r0] movs r0, 0x5 bl audio_play ldr r0, _080705B4 movs r1, 0x1 bl sub_806E834 b _080705F8 .align 2, 0 _080705A8: .4byte 0x0201c000 _080705AC: .4byte 0x03004b20 _080705B0: .4byte 0x0202e8f4 _080705B4: .4byte gUnknown_0840EF85 _080705B8: ldr r1, _0807060C movs r0, 0x1 strb r0, [r1] movs r0, 0x1 bl audio_play ldrh r0, [r6, 0x6] movs r1, 0x1 bl sub_80A9538 ldr r0, [r6] movs r2, 0x1E ldrsh r1, [r7, r2] adds r1, 0xD bl PokemonGetField lsls r0, 16 lsrs r5, r0, 16 ldr r0, _08070610 movs r1, 0xD muls r1, r5 ldr r2, _08070614 adds r1, r2 bl StringCopy ldrh r0, [r6, 0x6] bl GetMedicineItemEffectMessage ldr r0, _08070618 movs r1, 0x1 bl sub_806E834 _080705F8: ldr r0, _0807061C lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08070620 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0807060C: .4byte 0x0202e8f4 _08070610: .4byte 0x020231cc _08070614: .4byte gMoveNames _08070618: .4byte 0x020234cc _0807061C: .4byte 0x03004b20 _08070620: .4byte sub_806FB0C thumb_func_end ether_effect_related thumb_func_start dp05_pp_up dp05_pp_up: @ 8070624 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 ldr r4, _0807066C lsls r3, r0, 2 adds r3, r0 lsls r3, 3 adds r3, r4 ldr r4, _08070670 str r4, [r3] bl sub_806E8D0 movs r0, 0x5 bl audio_play movs r0, 0xB movs r1, 0x3 bl sub_806D538 ldr r0, _08070674 ldrb r0, [r0, 0x5] bl sub_80702E4 ldr r0, _08070678 movs r1, 0x5 bl CreateTask ldr r1, _0807067C movs r0, 0 strh r0, [r1, 0x2E] pop {r4} pop {r0} bx r0 .align 2, 0 _0807066C: .4byte 0x03004b20 _08070670: .4byte TaskDummy _08070674: .4byte 0x0201c000 _08070678: .4byte sub_8070374 _0807067C: .4byte 0x03001770 thumb_func_end dp05_pp_up thumb_func_start sub_8070680 sub_8070680: @ 8070680 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r6, r1, 16 ldr r3, _080706E0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r3 ldr r3, _080706E4 str r3, [r1] adds r1, r6, 0 bl sub_806E8D0 ldr r5, _080706E8 ldr r0, [r5] movs r1, 0x38 bl PokemonGetField cmp r0, 0x64 beq _080706F4 movs r4, 0 ldr r0, _080706EC adds r7, r5, r0 _080706B2: ldr r0, [r5] ldr r1, _080706F0 adds r1, r4, r1 ldrb r1, [r1] bl PokemonGetField lsls r1, r4, 1 adds r1, r7, r1 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _080706B2 ldr r0, _080706E8 ldrb r0, [r0, 0x5] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 lsrs r0, 24 b _080706F6 .align 2, 0 _080706E0: .4byte 0x03004b20 _080706E4: .4byte TaskDummy _080706E8: .4byte 0x0201c000 _080706EC: .4byte 0xfffff264 _080706F0: .4byte gUnknown_08376D1C _080706F4: movs r0, 0x1 _080706F6: cmp r0, 0 beq _08070724 ldr r1, _08070718 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl audio_play ldr r0, _0807071C movs r1, 0x1 bl sub_806E834 ldr r0, _08070720 movs r1, 0x5 bl CreateTask b _0807077C .align 2, 0 _08070718: .4byte 0x0202e8f4 _0807071C: .4byte gUnknown_0840EF85 _08070720: .4byte sub_806FB0C _08070724: ldr r1, _08070784 movs r0, 0x1 strb r0, [r1] movs r0, 0 bl pause_music_for_sound_maybe ldr r4, _08070788 ldrb r0, [r4, 0x5] ldr r1, [r4] bl sub_8070A20 adds r0, r6, 0 movs r1, 0x1 bl sub_80A9538 ldr r0, [r4] ldr r1, _0807078C bl GetMonNickname ldr r0, [r4] movs r1, 0x38 bl PokemonGetField adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08070790 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _08070794 ldr r1, _08070798 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r0, _0807079C movs r1, 0x5 bl CreateTask _0807077C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070784: .4byte 0x0202e8f4 _08070788: .4byte 0x0201c000 _0807078C: .4byte 0x020231cc _08070790: .4byte 0x020232cc _08070794: .4byte 0x020234cc _08070798: .4byte gUnknown_0840F5A6 _0807079C: .4byte sub_80707A0 thumb_func_end sub_8070680 thumb_func_start sub_80707A0 sub_80707A0: @ 80707A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl ducking_tick lsls r0, 24 cmp r0, 0 beq _080707E8 ldr r0, _080707F0 ldrb r0, [r0] cmp r0, 0 bne _080707E8 ldr r0, _080707F4 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080707CE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080707E8 _080707CE: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_8070848 ldr r0, _080707F8 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _080707FC str r0, [r1] _080707E8: pop {r4} pop {r0} bx r0 .align 2, 0 _080707F0: .4byte 0x0202e8f6 _080707F4: .4byte 0x03001770 _080707F8: .4byte 0x03004b20 _080707FC: .4byte sub_8070800 thumb_func_end sub_80707A0 thumb_func_start sub_8070800 sub_8070800: @ 8070800 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0807083C ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0807081A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08070834 _0807081A: movs r0, 0x5 bl audio_play adds r0, r4, 0 bl sub_8070968 ldr r0, _08070840 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _08070844 str r0, [r1] _08070834: pop {r4} pop {r0} bx r0 .align 2, 0 _0807083C: .4byte 0x03001770 _08070840: .4byte 0x03004b20 _08070844: .4byte sub_8070AC8 thumb_func_end sub_8070800 thumb_func_start sub_8070848 sub_8070848: @ 8070848 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0xB movs r1, 0 movs r2, 0x1D movs r3, 0x7 bl DrawDefaultWindow movs r7, 0 ldr r0, _080708E4 mov r10, r0 _08070864: ldr r1, _080708E8 ldr r0, [r1] ldr r1, _080708EC adds r1, r7, r1 ldrb r1, [r1] bl PokemonGetField adds r1, r7, 0x6 lsls r1, 1 ldr r2, _080708F0 adds r1, r2 strh r0, [r1] lsls r4, r7, 1 adds r2, r4, r2 ldrh r1, [r2] subs r0, r1 strh r0, [r2] adds r0, r7, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 adds r1, r0 adds r1, 0xB lsls r1, 24 lsrs r6, r1, 24 adds r0, r7, 0 movs r1, 0x3 bl __umodsi3 lsls r0, 1 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r1, _080708F4 lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] adds r1, r6, 0x1 lsls r1, 27 lsrs r1, 24 mov r2, r9 lsls r5, r2, 3 adds r2, r5, 0 movs r3, 0x1 bl sub_80729D8 mov r8, r4 cmp r7, 0x2 bne _080708FC adds r4, r6, 0x6 lsls r1, r4, 3 adds r1, 0x6 lsls r1, 24 lsrs r1, 24 ldr r0, _080708F8 adds r2, r5, 0 movs r3, 0 bl sub_80729D8 b _08070910 .align 2, 0 _080708E4: .4byte 0x020231cc _080708E8: .4byte 0x0201c000 _080708EC: .4byte gUnknown_08376D1C _080708F0: .4byte 0x0201b264 _080708F4: .4byte gUnknown_08376D04 _080708F8: .4byte gUnknown_0840E691 _080708FC: adds r4, r6, 0x6 lsls r1, r4, 3 adds r1, 0x6 lsls r1, 24 lsrs r1, 24 ldr r0, _08070960 adds r2, r5, 0 movs r3, 0x1 bl sub_80729D8 _08070910: movs r0, 0xFC mov r1, r10 strb r0, [r1] movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x6 strb r0, [r1, 0x2] ldr r0, _08070964 add r0, r8 movs r2, 0 ldrsh r1, [r0, r2] mov r0, r10 adds r0, 0x3 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN lsls r1, r4, 27 movs r0, 0xC0 lsls r0, 20 adds r1, r0 lsrs r1, 24 mov r0, r9 lsls r2, r0, 3 mov r0, r10 movs r3, 0 bl sub_80729D8 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x5 bls _08070864 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070960: .4byte gUnknown_0840E691 _08070964: .4byte 0x0201b264 thumb_func_end sub_8070848 thumb_func_start sub_8070968 sub_8070968: @ 8070968 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r7, 0 ldr r0, _08070A10 mov r9, r0 ldr r1, _08070A14 add r1, r9 mov r10, r1 ldr r0, _08070A18 mov r8, r0 _08070982: mov r1, r9 ldr r0, [r1] ldr r1, _08070A1C adds r1, r7, r1 ldrb r1, [r1] bl PokemonGetField adds r6, r7, 0x6 lsls r6, 1 add r6, r10 strh r0, [r6] adds r0, r7, 0 movs r1, 0x3 bl __udivsi3 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 3 adds r4, r0 adds r4, 0xB lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 movs r1, 0x3 bl __umodsi3 adds r5, r0, 0 lsls r5, 1 adds r5, 0x1 lsls r5, 24 lsrs r5, 24 movs r0, 0xFC mov r1, r8 strb r0, [r1] movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x6 strb r0, [r1, 0x2] movs r0, 0 ldrsh r1, [r6, r0] mov r0, r8 adds r0, 0x3 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r4, 0x6 lsls r4, 3 adds r4, 0x6 lsls r4, 24 lsrs r4, 24 lsls r5, 3 mov r0, r8 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl sub_80729D8 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x5 bls _08070982 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070A10: .4byte 0x0201c000 _08070A14: .4byte 0xfffff264 _08070A18: .4byte 0x020231cc _08070A1C: .4byte gUnknown_08376D1C thumb_func_end sub_8070968 thumb_func_start sub_8070A20 sub_8070A20: @ 8070A20 push {r4-r7,lr} adds r6, r1, 0 lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 bl sub_80A1CD8 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08070A3A cmp r0, 0x6 bne _08070A42 _08070A3A: adds r0, r6, 0 adds r1, r7, 0 bl sub_806FBB4 _08070A42: bl battle_type_is_double adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0x39 bl PokemonGetField adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x3A bl PokemonGetField adds r3, r0, 0 lsls r3, 16 lsrs r3, 16 adds r0, r7, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_806E420 adds r0, r7, 0 adds r1, r6, 0 bl sub_806E674 ldr r4, _08070ABC ldrb r0, [r4, 0x4] adds r1, r7, 0 bl sub_806DDA0 lsls r0, 24 lsrs r0, 24 adds r1, r6, 0 bl sub_806D84C bl battle_type_is_double adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 lsls r1, r7, 1 adds r0, r1 ldr r1, _08070AC0 adds r0, r1 movs r1, 0x7 bl task_pc_turn_off ldr r0, _08070AC4 adds r4, r0 movs r0, 0x2 strb r0, [r4] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070ABC: .4byte 0x0201c000 _08070AC0: .4byte gUnknown_083769A8 _08070AC4: .4byte 0xfffff261 thumb_func_end sub_8070A20 thumb_func_start sub_8070AC8 sub_8070AC8: @ 8070AC8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl ducking_tick lsls r0, 24 cmp r0, 0 bne _08070ADC b _08070C2C _08070ADC: ldr r0, _08070B24 ldrh r1, [r0, 0x2E] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08070AF4 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08070AF4 b _08070C2C _08070AF4: movs r0, 0xB movs r1, 0 movs r2, 0x1D movs r3, 0x7 bl Reset ldr r7, _08070B28 ldr r0, [r7] movs r1, 0x1 bl sub_803B7C8 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _08070B2C adds r0, r7, r1 strh r5, [r0] ldr r0, _08070B30 cmp r4, r0 beq _08070BDC cmp r4, r0 bgt _08070B34 cmp r4, 0 beq _08070B40 b _08070BF4 .align 2, 0 _08070B24: .4byte 0x03001770 _08070B28: .4byte 0x0201c000 _08070B2C: .4byte 0xfffff282 _08070B30: .4byte 0x0000fffe _08070B34: ldr r0, _08070B3C cmp r4, r0 beq _08070B7C b _08070BF4 .align 2, 0 _08070B3C: .4byte 0x0000ffff _08070B40: ldr r0, [r7] movs r1, 0 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08070B74 ldr r1, _08070B6C ldr r0, _08070B70 str r0, [r1] ldr r0, [r7] ldrb r3, [r7, 0x5] adds r1, r2, 0 movs r2, 0x1 bl sub_8111924 adds r0, r6, 0 bl DestroyTask b _08070C2C .align 2, 0 _08070B6C: .4byte 0x03005e94 _08070B70: .4byte sub_80A53F8 _08070B74: adds r0, r6, 0 bl sub_8070D90 b _08070C2C _08070B7C: ldr r0, [r7] ldr r1, _08070BBC bl GetMonNickname ldr r0, _08070BC0 ldr r5, _08070BC4 ldrh r2, [r5] movs r1, 0xD muls r1, r2 ldr r2, _08070BC8 adds r1, r2 bl StringCopy ldr r4, _08070BCC ldr r1, _08070BD0 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldrh r0, [r5] strh r0, [r7, 0x8] ldr r1, _08070BD4 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08070BD8 b _08070C2A .align 2, 0 _08070BBC: .4byte 0x020231cc _08070BC0: .4byte 0x020232cc _08070BC4: .4byte 0x02024e82 _08070BC8: .4byte gMoveNames _08070BCC: .4byte 0x020234cc _08070BD0: .4byte gUnknown_0840F37C _08070BD4: .4byte 0x03004b20 _08070BD8: .4byte sub_806F358 _08070BDC: ldr r0, _08070BEC lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _08070BF0 str r0, [r1] b _08070C2C .align 2, 0 _08070BEC: .4byte 0x03004b20 _08070BF0: .4byte sub_8070C54 _08070BF4: ldr r0, _08070C34 ldr r0, [r0] ldr r1, _08070C38 bl GetMonNickname ldr r0, _08070C3C movs r1, 0xD muls r1, r4 ldr r2, _08070C40 adds r1, r2 bl StringCopy ldr r4, _08070C44 ldr r1, _08070C48 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _08070C4C lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08070C50 _08070C2A: str r1, [r0] _08070C2C: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070C34: .4byte 0x0201c000 _08070C38: .4byte 0x020231cc _08070C3C: .4byte 0x020232cc _08070C40: .4byte gMoveNames _08070C44: .4byte 0x020234cc _08070C48: .4byte gUnknown_0840F338 _08070C4C: .4byte 0x03004b20 _08070C50: .4byte sub_806F254 thumb_func_end sub_8070AC8 thumb_func_start sub_8070C54 sub_8070C54: @ 8070C54 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r7, _08070C78 ldr r0, [r7] movs r1, 0 bl sub_803B7C8 lsls r0, 16 lsrs r4, r0, 16 ldr r0, _08070C7C cmp r4, r0 beq _08070D28 cmp r4, r0 bgt _08070C80 cmp r4, 0 beq _08070C8C b _08070D30 .align 2, 0 _08070C78: .4byte 0x0201c000 _08070C7C: .4byte 0x0000fffe _08070C80: ldr r0, _08070C88 cmp r4, r0 beq _08070CC8 b _08070D30 .align 2, 0 _08070C88: .4byte 0x0000ffff _08070C8C: ldr r0, [r7] movs r1, 0 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08070CC0 ldr r1, _08070CB8 ldr r0, _08070CBC str r0, [r1] ldr r0, [r7] ldrb r3, [r7, 0x5] adds r1, r2, 0 movs r2, 0x1 bl sub_8111924 adds r0, r6, 0 bl DestroyTask b _08070D68 .align 2, 0 _08070CB8: .4byte 0x03005e94 _08070CBC: .4byte sub_80A53F8 _08070CC0: adds r0, r6, 0 bl sub_8070D90 b _08070D68 _08070CC8: ldr r0, [r7] ldr r1, _08070D08 bl GetMonNickname ldr r0, _08070D0C ldr r5, _08070D10 ldrh r2, [r5] movs r1, 0xD muls r1, r2 ldr r2, _08070D14 adds r1, r2 bl StringCopy ldr r4, _08070D18 ldr r1, _08070D1C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldrh r0, [r5] strh r0, [r7, 0x8] ldr r1, _08070D20 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08070D24 b _08070D66 .align 2, 0 _08070D08: .4byte 0x020231cc _08070D0C: .4byte 0x020232cc _08070D10: .4byte 0x02024e82 _08070D14: .4byte gMoveNames _08070D18: .4byte 0x020234cc _08070D1C: .4byte gUnknown_0840F37C _08070D20: .4byte 0x03004b20 _08070D24: .4byte sub_806F358 _08070D28: adds r0, r6, 0 bl sub_8070C54 b _08070D68 _08070D30: ldr r0, _08070D70 ldr r0, [r0] ldr r1, _08070D74 bl GetMonNickname ldr r0, _08070D78 movs r1, 0xD muls r1, r4 ldr r2, _08070D7C adds r1, r2 bl StringCopy ldr r4, _08070D80 ldr r1, _08070D84 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_806E834 ldr r1, _08070D88 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _08070D8C _08070D66: str r1, [r0] _08070D68: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08070D70: .4byte 0x0201c000 _08070D74: .4byte 0x020231cc _08070D78: .4byte 0x020232cc _08070D7C: .4byte gMoveNames _08070D80: .4byte 0x020234cc _08070D84: .4byte gUnknown_0840F338 _08070D88: .4byte 0x03004b20 _08070D8C: .4byte sub_806F254 thumb_func_end sub_8070C54 thumb_func_start sub_8070D90 sub_8070D90: @ 8070D90 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, _08070DB4 ldr r3, _08070DB8 ldrb r2, [r3, 0x4] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r4 ldr r2, [r3, 0x10] str r2, [r1] bl DestroyTask pop {r4} pop {r0} bx r0 .align 2, 0 _08070DB4: .4byte 0x03004b20 _08070DB8: .4byte 0x0201c000 thumb_func_end sub_8070D90 thumb_func_start sub_8070DBC sub_8070DBC: @ 8070DBC push {r4-r6,lr} adds r4, r0, 0 adds r5, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 16 lsrs r6, r1, 16 movs r0, 0x5 bl audio_play ldr r1, _08070E18 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _08070E1C str r1, [r0] adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_806E8D0 ldr r1, _08070E20 ldr r0, _08070E24 str r0, [r1] ldr r0, _08070E28 ldrb r0, [r0, 0x5] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _08070E38 ldr r1, _08070E2C movs r0, 0 strb r0, [r1] ldr r0, _08070E30 movs r1, 0x1 bl sub_806E834 ldr r0, _08070E34 movs r1, 0x5 bl CreateTask b _08070E40 .align 2, 0 _08070E18: .4byte 0x03004b20 _08070E1C: .4byte TaskDummy _08070E20: .4byte 0x03005e94 _08070E24: .4byte sub_80A53F8 _08070E28: .4byte 0x0201c000 _08070E2C: .4byte 0x0202e8f4 _08070E30: .4byte gUnknown_0840EF85 _08070E34: .4byte sub_806FB0C _08070E38: adds r0, r6, 0 movs r1, 0x1 bl sub_80A9538 _08070E40: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8070DBC thumb_func_start sub_8070E48 sub_8070E48: @ 8070E48 push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _08070E5C ldr r4, _08070E58 b _08070E66 .align 2, 0 _08070E58: .4byte 0x02028daa _08070E5C: ldr r1, _08070E8C subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r4, [r0] _08070E66: ldrb r1, [r4] movs r5, 0x3F adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _08070E88 ldrb r0, [r4, 0x1] cmp r0, 0 bne _08070E88 ldrb r0, [r4, 0x2] cmp r0, 0 bne _08070E88 ldrb r3, [r4, 0x3] movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _08070E90 _08070E88: movs r0, 0 b _08070F8A .align 2, 0 _08070E8C: .4byte gItemEffectTable _08070E90: movs r2, 0x40 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08070E9E movs r0, 0xA b _08070F8A _08070E9E: adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _08070EAA movs r0, 0x1 b _08070F8A _08070EAA: adds r2, r5, 0 ands r2, r3 cmp r2, 0 bne _08070EB8 lsrs r0, r1, 7 cmp r0, 0 beq _08070EFA _08070EB8: cmp r2, 0x20 bne _08070EC0 movs r0, 0x4 b _08070F8A _08070EC0: cmp r2, 0x10 bne _08070EC8 movs r0, 0x3 b _08070F8A _08070EC8: cmp r2, 0x8 bne _08070ED0 movs r0, 0x5 b _08070F8A _08070ED0: cmp r2, 0x4 bne _08070ED8 movs r0, 0x6 b _08070F8A _08070ED8: cmp r2, 0x2 bne _08070EE0 movs r0, 0x7 b _08070F8A _08070EE0: cmp r2, 0x1 bne _08070EE8 movs r0, 0x8 b _08070F8A _08070EE8: lsrs r0, r1, 7 cmp r0, 0 beq _08070EF6 cmp r2, 0 bne _08070EF6 movs r0, 0x9 b _08070F8A _08070EF6: movs r0, 0xB b _08070F8A _08070EFA: ldrb r1, [r4, 0x4] movs r0, 0x44 ands r0, r1 adds r2, r1, 0 cmp r0, 0 beq _08070F0A movs r0, 0x2 b _08070F8A _08070F0A: movs r5, 0x2 adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _08070F18 movs r0, 0xC b _08070F8A _08070F18: movs r3, 0x1 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _08070F26 movs r0, 0xD b _08070F8A _08070F26: ldrb r1, [r4, 0x5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08070F34 movs r0, 0xE b _08070F8A _08070F34: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08070F40 movs r0, 0xF b _08070F8A _08070F40: adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _08070F4C movs r0, 0x10 b _08070F8A _08070F4C: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _08070F58 movs r0, 0x11 b _08070F8A _08070F58: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08070F64 movs r0, 0x12 b _08070F8A _08070F64: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08070F70 movs r0, 0x13 b _08070F8A _08070F70: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08070F7C movs r0, 0x14 b _08070F8A _08070F7C: movs r0, 0x18 ands r0, r2 cmp r0, 0 bne _08070F88 movs r0, 0x16 b _08070F8A _08070F88: movs r0, 0x15 _08070F8A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8070E48 thumb_func_start unref_sub_8070F90 unref_sub_8070F90: @ 8070F90 push {lr} ldr r0, _08070FAC bl FlagSet movs r0, 0x80 lsls r0, 4 bl FlagSet ldr r0, _08070FB0 bl FlagSet pop {r0} bx r0 .align 2, 0 _08070FAC: .4byte 0x00000801 _08070FB0: .4byte 0x00000802 thumb_func_end unref_sub_8070F90 thumb_func_start sub_8070FB4 sub_8070FB4: @ 8070FB4 push {lr} ldr r0, _08070FCC movs r1, 0 strb r1, [r0] bl is_c1_link_related_active cmp r0, 0x1 bne _08070FD0 bl sub_80710A0 b _08070FE2 .align 2, 0 _08070FCC: .4byte 0x0202e8fd _08070FD0: bl GetSafariZoneFlag cmp r0, 0x1 bne _08070FDE bl BuildStartMenuActions_SafariZone b _08070FE2 _08070FDE: bl BuildStartMenuActions_Normal _08070FE2: pop {r0} bx r0 thumb_func_end sub_8070FB4 thumb_func_start AddStartMenuAction AddStartMenuAction: @ 8070FE8 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, _08070FFC ldr r1, _08071000 bl append_byte pop {r0} bx r0 .align 2, 0 _08070FFC: .4byte 0x0202e8fe _08071000: .4byte 0x0202e8fd thumb_func_end AddStartMenuAction thumb_func_start BuildStartMenuActions_Normal BuildStartMenuActions_Normal: @ 8071004 push {lr} ldr r0, _08071068 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807101A movs r0, 0 bl AddStartMenuAction _0807101A: movs r0, 0x80 lsls r0, 4 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08071030 movs r0, 0x1 bl AddStartMenuAction _08071030: movs r0, 0x2 bl AddStartMenuAction ldr r0, _0807106C bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0807104A movs r0, 0x3 bl AddStartMenuAction _0807104A: movs r0, 0x4 bl AddStartMenuAction movs r0, 0x5 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 .align 2, 0 _08071068: .4byte 0x00000801 _0807106C: .4byte 0x00000802 thumb_func_end BuildStartMenuActions_Normal thumb_func_start BuildStartMenuActions_SafariZone BuildStartMenuActions_SafariZone: @ 8071070 push {lr} movs r0, 0x8 bl AddStartMenuAction movs r0, 0 bl AddStartMenuAction movs r0, 0x1 bl AddStartMenuAction movs r0, 0x2 bl AddStartMenuAction movs r0, 0x4 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 thumb_func_end BuildStartMenuActions_SafariZone thumb_func_start sub_80710A0 sub_80710A0: @ 80710A0 push {lr} movs r0, 0x1 bl AddStartMenuAction movs r0, 0x2 bl AddStartMenuAction ldr r0, _080710D8 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080710C2 movs r0, 0x3 bl AddStartMenuAction _080710C2: movs r0, 0x9 bl AddStartMenuAction movs r0, 0x6 bl AddStartMenuAction movs r0, 0x7 bl AddStartMenuAction pop {r0} bx r0 .align 2, 0 _080710D8: .4byte 0x00000802 thumb_func_end sub_80710A0 thumb_func_start sub_80710DC sub_80710DC: @ 80710DC push {lr} ldr r0, _08071108 ldr r1, _0807110C ldrb r1, [r1] movs r2, 0xC movs r3, 0x1 bl sub_8072C44 movs r0, 0 movs r1, 0 movs r2, 0xA movs r3, 0x5 bl DrawDefaultWindow ldr r0, _08071110 movs r1, 0x1 movs r2, 0x1 bl Print pop {r0} bx r0 .align 2, 0 _08071108: .4byte 0x020231cc _0807110C: .4byte 0x02038808 _08071110: .4byte gUnknown_0842C4A9 thumb_func_end sub_80710DC thumb_func_start sub_8071114 sub_8071114: @ 8071114 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r6, r1, 0 movs r0, 0 ldrsh r4, [r7, r0] ldr r1, _08071160 mov r8, r1 lsls r0, r4, 25 movs r1, 0x80 lsls r1, 18 adds r5, r0, r1 _0807112E: ldr r0, _08071164 adds r0, r4, r0 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldr r0, [r0] lsrs r2, r5, 24 movs r1, 0x17 bl Print movs r0, 0x80 lsls r0, 18 adds r5, r0 adds r4, 0x1 ldr r0, _08071168 ldrb r0, [r0] cmp r4, r0 bge _0807116C subs r6, 0x1 cmp r6, 0 bne _0807112E strh r4, [r7] movs r0, 0 b _08071170 .align 2, 0 _08071160: .4byte gUnknown_08376D24 _08071164: .4byte 0x0202e8fe _08071168: .4byte 0x0202e8fd _0807116C: strh r4, [r7] movs r0, 0x1 _08071170: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8071114 thumb_func_start sub_807117C sub_807117C: @ 807117C push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x5 bhi _08071224 lsls r0, 2 ldr r1, _08071198 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08071198: .4byte _0807119C .align 2, 0 _0807119C: .4byte _080711F6 .4byte _080711B4 .4byte _080711BA .4byte _080711DC .4byte _080711EA .4byte _080711FE _080711B4: bl sub_8070FB4 b _080711F6 _080711BA: ldr r0, _080711D8 ldrb r3, [r0] lsls r3, 25 movs r0, 0xC0 lsls r0, 18 adds r3, r0 lsrs r3, 24 movs r0, 0x16 movs r1, 0 movs r2, 0x1D bl DrawDefaultWindow movs r0, 0 strh r0, [r5] b _080711F6 .align 2, 0 _080711D8: .4byte 0x0202e8fd _080711DC: bl GetSafariZoneFlag cmp r0, 0 beq _080711F6 bl sub_80710DC b _080711F6 _080711EA: adds r0, r5, 0 movs r1, 0x2 bl sub_8071114 cmp r0, 0 beq _08071224 _080711F6: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _08071224 _080711FE: ldr r0, _0807121C ldrb r3, [r0] ldr r4, _08071220 ldrb r0, [r4] str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x17 movs r2, 0x2 bl InitMenu strb r0, [r4] movs r0, 0x1 b _08071226 .align 2, 0 _0807121C: .4byte 0x0202e8fd _08071220: .4byte 0x0202e8fc _08071224: movs r0, 0 _08071226: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_807117C thumb_func_start sub_8071230 sub_8071230: @ 8071230 push {r4,lr} sub sp, 0x4 movs r0, 0 mov r1, sp strh r0, [r1] adds r1, 0x2 strh r0, [r1] adds r4, r1, 0 _08071240: mov r0, sp adds r1, r4, 0 bl sub_807117C cmp r0, 0 beq _08071240 add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8071230 thumb_func_start task50_startmenu task50_startmenu: @ 8071254 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08071280 adds r4, r0, r1 adds r1, r4, 0x2 adds r0, r4, 0 bl sub_807117C cmp r0, 0x1 bne _0807127A movs r0, 0 strh r0, [r4] adds r0, r5, 0 bl SwitchTaskToFollowupFunc _0807127A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071280: .4byte 0x03004b28 thumb_func_end task50_startmenu thumb_func_start sub_8071284 sub_8071284: @ 8071284 push {r4,r5,lr} adds r5, r0, 0 ldr r0, _080712AC bl sub_8071C4C ldr r4, _080712B0 adds r0, r4, 0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl SetTaskFuncWithFollowupFunc pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080712AC: .4byte gWindowConfig_81E6CE4 _080712B0: .4byte task50_startmenu thumb_func_end sub_8071284 thumb_func_start sub_80712B4 sub_80712B4: @ 80712B4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080712D4 adds r2, r0, r1 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 beq _080712D8 cmp r0, 0x1 beq _080712F0 b _08071306 .align 2, 0 _080712D4: .4byte 0x03004b20 _080712D8: ldr r1, _080712E8 ldr r0, _080712EC str r0, [r1] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _08071306 .align 2, 0 _080712E8: .4byte 0x03004ae8 _080712EC: .4byte sub_8071338 _080712F0: ldr r0, _0807130C ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08071306 adds r0, r4, 0 bl DestroyTask _08071306: pop {r4} pop {r0} bx r0 .align 2, 0 _0807130C: .4byte 0x03004ae8 thumb_func_end sub_80712B4 thumb_func_start sub_8071310 sub_8071310: @ 8071310 push {lr} bl is_c1_link_related_active cmp r0, 0 bne _08071326 bl player_bitmagic bl sub_80594C0 bl sub_80597F4 _08071326: ldr r0, _08071334 bl sub_8071284 bl script_env_2_enable pop {r0} bx r0 .align 2, 0 _08071334: .4byte sub_80712B4 thumb_func_end sub_8071310 thumb_func_start sub_8071338 sub_8071338: @ 8071338 push {r4,lr} ldr r4, _080713DC ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08071358 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 bl MoveMenuCursor ldr r1, _080713E0 strb r0, [r1] _08071358: ldrh r1, [r4, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071372 movs r0, 0x5 bl audio_play movs r0, 0x1 bl MoveMenuCursor ldr r1, _080713E0 strb r0, [r1] _08071372: ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08071400 movs r0, 0x5 bl audio_play ldr r1, _080713E4 ldr r2, _080713E8 ldr r0, _080713E0 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] ldr r0, _080713EC cmp r1, r0 bne _080713A8 movs r0, 0 bl pokedex_count lsls r0, 16 cmp r0, 0 beq _08071408 _080713A8: ldr r3, _080713F0 ldr r1, _080713E4 ldr r2, _080713E8 ldr r0, _080713E0 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] str r1, [r3] ldr r0, _080713F4 cmp r1, r0 beq _08071408 ldr r0, _080713F8 cmp r1, r0 beq _08071408 ldr r0, _080713FC cmp r1, r0 beq _08071408 movs r0, 0x1 movs r1, 0 bl fade_screen b _08071408 .align 2, 0 _080713DC: .4byte 0x03001770 _080713E0: .4byte 0x0202e8fc _080713E4: .4byte gUnknown_08376D24 _080713E8: .4byte 0x0202e8fe _080713EC: .4byte StartMenu_Pokedex _080713F0: .4byte 0x03004ae8 _080713F4: .4byte sub_80714FC _080713F8: .4byte sub_8071554 _080713FC: .4byte sub_8071560 _08071400: movs r0, 0xA ands r0, r1 cmp r0, 0 bne _0807140C _08071408: movs r0, 0 b _08071412 _0807140C: bl sub_8071C20 movs r0, 0x1 _08071412: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071338 thumb_func_start StartMenu_Pokedex StartMenu_Pokedex: @ 8071418 push {lr} ldr r0, _0807142C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071430 movs r0, 0 b _08071442 .align 2, 0 _0807142C: .4byte 0x0202f388 _08071430: movs r0, 0x29 bl sav12_xor_increment bl play_some_sound ldr r0, _08071448 bl SetMainCallback2 movs r0, 0x1 _08071442: pop {r1} bx r1 .align 2, 0 _08071448: .4byte sub_808C27C thumb_func_end StartMenu_Pokedex thumb_func_start sub_807144C sub_807144C: @ 807144C push {lr} ldr r0, _08071460 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071464 movs r0, 0 b _08071470 .align 2, 0 _08071460: .4byte 0x0202f388 _08071464: bl play_some_sound ldr r0, _08071474 bl SetMainCallback2 movs r0, 0x1 _08071470: pop {r1} bx r1 .align 2, 0 _08071474: .4byte sub_8089A70 thumb_func_end sub_807144C thumb_func_start sub_8071478 sub_8071478: @ 8071478 push {lr} ldr r0, _0807148C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071490 movs r0, 0 b _0807149C .align 2, 0 _0807148C: .4byte 0x0202f388 _08071490: bl play_some_sound ldr r0, _080714A0 bl SetMainCallback2 movs r0, 0x1 _0807149C: pop {r1} bx r1 .align 2, 0 _080714A0: .4byte sub_80A53F8 thumb_func_end sub_8071478 thumb_func_start sub_80714A4 sub_80714A4: @ 80714A4 push {lr} ldr r0, _080714B8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080714BC movs r0, 0 b _080714C8 .align 2, 0 _080714B8: .4byte 0x0202f388 _080714BC: bl play_some_sound ldr r0, _080714CC bl SetMainCallback2 movs r0, 0x1 _080714C8: pop {r1} bx r1 .align 2, 0 _080714CC: .4byte sub_80EBA5C thumb_func_end sub_80714A4 thumb_func_start sub_80714D0 sub_80714D0: @ 80714D0 push {lr} ldr r0, _080714E4 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080714E8 movs r0, 0 b _080714F4 .align 2, 0 _080714E4: .4byte 0x0202f388 _080714E8: bl play_some_sound ldr r0, _080714F8 bl sub_8093110 movs r0, 0x1 _080714F4: pop {r1} bx r1 .align 2, 0 _080714F8: .4byte sub_805469C thumb_func_end sub_80714D0 thumb_func_start sub_80714FC sub_80714FC: @ 80714FC push {lr} bl sub_8072DEC ldr r1, _08071510 ldr r0, _08071514 str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08071510: .4byte 0x03004ae8 _08071514: .4byte sub_80715A4 thumb_func_end sub_80714FC thumb_func_start sub_8071518 sub_8071518: @ 8071518 push {lr} ldr r0, _0807152C ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071530 movs r0, 0 b _08071542 .align 2, 0 _0807152C: .4byte 0x0202f388 _08071530: bl play_some_sound ldr r0, _08071548 bl SetMainCallback2 ldr r1, _0807154C ldr r0, _08071550 str r0, [r1, 0x8] movs r0, 0x1 _08071542: pop {r1} bx r1 .align 2, 0 _08071548: .4byte CB2_InitOptionMenu _0807154C: .4byte 0x03001770 _08071550: .4byte sub_805469C thumb_func_end sub_8071518 thumb_func_start sub_8071554 sub_8071554: @ 8071554 push {lr} bl sub_8071C20 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8071554 thumb_func_start sub_8071560 sub_8071560: @ 8071560 push {lr} bl sub_8071C20 bl sub_80C823C movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8071560 thumb_func_start sub_8071570 sub_8071570: @ 8071570 push {lr} ldr r0, _08071584 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08071588 movs r0, 0 b _08071598 .align 2, 0 _08071584: .4byte 0x0202f388 _08071588: bl play_some_sound ldr r0, _0807159C ldrb r0, [r0] ldr r1, _080715A0 bl sub_8093130 movs r0, 0x1 _08071598: pop {r1} bx r1 .align 2, 0 _0807159C: .4byte 0x03004860 _080715A0: .4byte sub_805469C thumb_func_end sub_8071570 thumb_func_start sub_80715A4 sub_80715A4: @ 80715A4 push {lr} bl sub_807160C ldr r1, _080715B8 ldr r0, _080715BC str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080715B8: .4byte 0x03004ae8 _080715BC: .4byte sub_80715C0 thumb_func_end sub_80715A4 thumb_func_start sub_80715C0 sub_80715C0: @ 80715C0 push {lr} bl sub_8071630 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080715F4 cmp r0, 0x1 ble _08071604 cmp r0, 0x2 beq _080715DC cmp r0, 0x3 beq _080715F4 b _08071604 _080715DC: bl sub_8071EF4 bl sub_8071230 ldr r1, _080715EC ldr r0, _080715F0 str r0, [r1] b _08071604 .align 2, 0 _080715EC: .4byte 0x03004ae8 _080715F0: .4byte sub_8071338 _080715F4: bl sub_8071EF4 bl sub_8064E2C bl script_env_2_disable movs r0, 0x1 b _08071606 _08071604: movs r0, 0 _08071606: pop {r1} bx r1 thumb_func_end sub_80715C0 thumb_func_start sub_807160C sub_807160C: @ 807160C push {lr} bl save_serialize_map ldr r1, _08071624 ldr r0, _08071628 str r0, [r1] ldr r1, _0807162C movs r0, 0 strb r0, [r1] pop {r0} bx r0 .align 2, 0 _08071624: .4byte 0x030006a8 _08071628: .4byte sub_8071794 _0807162C: .4byte 0x030006ad thumb_func_end sub_807160C thumb_func_start sub_8071630 sub_8071630: @ 8071630 push {lr} ldr r0, _08071648 ldrb r0, [r0] cmp r0, 0 beq _0807164C bl sub_8072080 lsls r0, 24 cmp r0, 0 bne _0807164C movs r0, 0 b _0807165E .align 2, 0 _08071648: .4byte 0x030006ad _0807164C: ldr r1, _08071664 movs r0, 0 strb r0, [r1] ldr r0, _08071668 ldr r0, [r0] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 _0807165E: pop {r1} bx r1 .align 2, 0 _08071664: .4byte 0x030006ad _08071668: .4byte 0x030006a8 thumb_func_end sub_8071630 thumb_func_start sub_807166C sub_807166C: @ 807166C push {lr} bl sub_807160C ldr r0, _08071680 movs r1, 0x50 bl CreateTask pop {r0} bx r0 .align 2, 0 _08071680: .4byte task50_save_game thumb_func_end sub_807166C thumb_func_start sub_8071684 sub_8071684: @ 8071684 push {r4,r5,lr} adds r2, r0, 0 adds r5, r1, 0 ldr r4, _080716B0 adds r0, r4, 0 adds r1, r2, 0 bl StringExpandPlaceholders bl sub_8071FFC adds r0, r4, 0 bl sub_8072044 ldr r1, _080716B4 movs r0, 0x1 strb r0, [r1] ldr r0, _080716B8 str r5, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080716B0: .4byte 0x020234cc _080716B4: .4byte 0x030006ad _080716B8: .4byte 0x030006a8 thumb_func_end sub_8071684 thumb_func_start task50_save_game task50_save_game: @ 80716BC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8071630 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1 beq _080716E8 cmp r1, 0x1 bgt _080716D8 cmp r1, 0 beq _080716F6 b _080716EC _080716D8: cmp r1, 0x3 bgt _080716EC ldr r1, _080716E4 movs r0, 0 strh r0, [r1] b _080716EC .align 2, 0 _080716E4: .4byte 0x0202e8dc _080716E8: ldr r0, _080716FC strh r1, [r0] _080716EC: adds r0, r4, 0 bl DestroyTask bl script_env_2_enable_and_set_ctx_running _080716F6: pop {r4} pop {r0} bx r0 .align 2, 0 _080716FC: .4byte 0x0202e8dc thumb_func_end task50_save_game thumb_func_start sub_8071700 sub_8071700: @ 8071700 push {lr} movs r0, 0 movs r1, 0 bl sub_80946C8 pop {r0} bx r0 thumb_func_end sub_8071700 thumb_func_start sub_8071710 sub_8071710: @ 8071710 push {lr} movs r0, 0x14 movs r1, 0x8 movs r2, 0x1A movs r3, 0xD bl Reset pop {r0} bx r0 thumb_func_end sub_8071710 thumb_func_start sub_8071724 sub_8071724: @ 8071724 ldr r1, _0807172C movs r0, 0x3C strb r0, [r1] bx lr .align 2, 0 _0807172C: .4byte 0x030006ac thumb_func_end sub_8071724 thumb_func_start sub_8071730 sub_8071730: @ 8071730 push {lr} ldr r1, _08071750 ldrb r0, [r1] subs r2, r0, 0x1 strb r2, [r1] ldr r0, _08071754 ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08071758 lsls r0, r2, 24 cmp r0, 0 beq _0807175E movs r0, 0 b _08071760 .align 2, 0 _08071750: .4byte 0x030006ac _08071754: .4byte 0x03001770 _08071758: movs r0, 0x5 bl audio_play _0807175E: movs r0, 0x1 _08071760: pop {r1} bx r1 thumb_func_end sub_8071730 thumb_func_start sub_8071764 sub_8071764: @ 8071764 push {lr} ldr r1, _08071780 ldrb r0, [r1] cmp r0, 0 bne _08071788 ldr r0, _08071784 ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0807178C movs r0, 0x1 b _0807178E .align 2, 0 _08071780: .4byte 0x030006ac _08071784: .4byte 0x03001770 _08071788: subs r0, 0x1 strb r0, [r1] _0807178C: movs r0, 0 _0807178E: pop {r1} bx r1 thumb_func_end sub_8071764 thumb_func_start sub_8071794 sub_8071794: @ 8071794 push {lr} bl sub_8071EF4 movs r0, 0 movs r1, 0 bl sub_80945C0 ldr r0, _080717B0 ldr r1, _080717B4 bl sub_8071684 movs r0, 0 pop {r1} bx r1 .align 2, 0 _080717B0: .4byte gUnknown_081C6C85 _080717B4: .4byte sub_80717B8 thumb_func_end sub_8071794 thumb_func_start sub_80717B8 sub_80717B8: @ 80717B8 push {lr} movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _080717D0 ldr r0, _080717D4 str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _080717D0: .4byte 0x030006a8 _080717D4: .4byte sub_80717D8 thumb_func_end sub_80717B8 thumb_func_start sub_80717D8 sub_80717D8: @ 80717D8 push {lr} bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080717FA cmp r1, 0 bgt _080717F4 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0807183C b _08071848 _080717F4: cmp r1, 0x1 beq _0807183C b _08071848 _080717FA: bl sub_8071710 ldr r0, _0807181C ldrh r0, [r0] cmp r0, 0 beq _0807180A cmp r0, 0x2 bne _08071812 _0807180A: ldr r0, _08071820 ldrb r0, [r0] cmp r0, 0 bne _0807182C _08071812: ldr r1, _08071824 ldr r0, _08071828 str r0, [r1] b _08071848 .align 2, 0 _0807181C: .4byte 0x03005eb8 _08071820: .4byte 0x020297ec _08071824: .4byte 0x030006a8 _08071828: .4byte sub_8071850 _0807182C: ldr r1, _08071834 ldr r0, _08071838 str r0, [r1] b _08071848 .align 2, 0 _08071834: .4byte 0x030006a8 _08071838: .4byte sub_80718E8 _0807183C: bl sub_8071710 bl sub_8071700 movs r0, 0x2 b _0807184A _08071848: movs r0, 0 _0807184A: pop {r1} bx r1 thumb_func_end sub_80717D8 thumb_func_start sub_8071850 sub_8071850: @ 8071850 push {lr} ldr r0, _0807186C ldrb r0, [r0] ldr r2, _08071870 cmp r0, 0x1 bne _0807185E ldr r2, _08071874 _0807185E: ldr r1, _08071878 adds r0, r2, 0 bl sub_8071684 movs r0, 0 pop {r1} bx r1 .align 2, 0 _0807186C: .4byte 0x020297ec _08071870: .4byte gUnknown_081C6CA6 _08071874: .4byte gUnknown_081C6D26 _08071878: .4byte sub_807187C thumb_func_end sub_8071850 thumb_func_start sub_807187C sub_807187C: @ 807187C push {lr} movs r0, 0x14 movs r1, 0x8 movs r2, 0x1 bl sub_8072974 ldr r1, _08071894 ldr r0, _08071898 str r0, [r1] movs r0, 0 pop {r1} bx r1 .align 2, 0 _08071894: .4byte 0x030006a8 _08071898: .4byte sub_807189C thumb_func_end sub_807187C thumb_func_start sub_807189C sub_807189C: @ 807189C push {lr} bl FillWindowPixelBuffer lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080718BE cmp r1, 0 bgt _080718B8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080718D4 b _080718E0 _080718B8: cmp r1, 0x1 beq _080718D4 b _080718E0 _080718BE: bl sub_8071710 ldr r1, _080718CC ldr r0, _080718D0 str r0, [r1] b _080718E0 .align 2, 0 _080718CC: .4byte 0x030006a8 _080718D0: .4byte sub_80718E8 _080718D4: bl sub_8071710 bl sub_8071700 movs r0, 0x2 b _080718E2 _080718E0: movs r0, 0 _080718E2: pop {r1} bx r1 thumb_func_end sub_807189C thumb_func_start sub_80718E8 sub_80718E8: @ 80718E8 push {lr} ldr r0, _080718F8 ldr r1, _080718FC bl sub_8071684 movs r0, 0 pop {r1} bx r1 .align 2, 0 _080718F8: .4byte gUnknown_081C6CE1 _080718FC: .4byte sub_8071900 thumb_func_end sub_80718E8 thumb_func_start sub_8071900 sub_8071900: @ 8071900 push {r4,lr} movs r0, 0 bl sav12_xor_increment ldr r4, _08071920 ldrb r0, [r4] cmp r0, 0x1 bne _08071924 movs r0, 0x4 bl sub_8125D44 lsls r0, 24 lsrs r1, r0, 24 movs r0, 0 strb r0, [r4] b _0807192E .align 2, 0 _08071920: .4byte 0x020297ec _08071924: movs r0, 0 bl sub_8125D44 lsls r0, 24 lsrs r1, r0, 24 _0807192E: cmp r1, 0x1 bne _08071944 ldr r0, _0807193C ldr r1, _08071940 bl sub_8071684 b _0807194C .align 2, 0 _0807193C: .4byte gUnknown_081C6D05 _08071940: .4byte sub_8071960 _08071944: ldr r0, _08071958 ldr r1, _0807195C bl sub_8071684 _0807194C: bl sub_8071724 movs r0, 0 pop {r4} pop {r1} bx r1 .align 2, 0 _08071958: .4byte gUnknown_0840E5D5 _0807195C: .4byte sub_80719AC thumb_func_end sub_8071900 thumb_func_start sub_8071960 sub_8071960: @ 8071960 push {lr} bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _08071978 movs r0, 0x37 bl audio_play ldr r1, _08071980 ldr r0, _08071984 str r0, [r1] _08071978: movs r0, 0 pop {r1} bx r1 .align 2, 0 _08071980: .4byte 0x030006a8 _08071984: .4byte sub_8071988 thumb_func_end sub_8071960 thumb_func_start sub_8071988 sub_8071988: @ 8071988 push {lr} bl mplay_has_finished_maybe lsls r0, 24 cmp r0, 0 bne _080719A6 bl sub_8071730 lsls r0, 24 cmp r0, 0 beq _080719A6 bl sub_8071700 movs r0, 0x1 b _080719A8 _080719A6: movs r0, 0 _080719A8: pop {r1} bx r1 thumb_func_end sub_8071988 thumb_func_start sub_80719AC sub_80719AC: @ 80719AC push {lr} bl sub_8072080 lsls r0, 24 cmp r0, 0 beq _080719C4 movs r0, 0x16 bl audio_play ldr r1, _080719CC ldr r0, _080719D0 str r0, [r1] _080719C4: movs r0, 0 pop {r1} bx r1 .align 2, 0 _080719CC: .4byte 0x030006a8 _080719D0: .4byte sub_80719D4 thumb_func_end sub_80719AC thumb_func_start sub_80719D4 sub_80719D4: @ 80719D4 push {lr} bl sub_8071764 lsls r0, 24 cmp r0, 0 beq _080719E8 bl sub_8071700 movs r0, 0x3 b _080719EA _080719E8: movs r0, 0 _080719EA: pop {r1} bx r1 thumb_func_end sub_80719D4 thumb_func_start sub_80719F0 sub_80719F0: @ 80719F0 push {lr} bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80719F0 thumb_func_start sub_80719FC sub_80719FC: @ 80719FC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 ldrb r0, [r0] cmp r0, 0x4 bls _08071A0E b _08071B10 _08071A0E: lsls r0, 2 ldr r1, _08071A18 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08071A18: .4byte _08071A1C .align 2, 0 _08071A1C: .4byte _08071A30 .4byte _08071AA4 .4byte _08071AB6 .4byte _08071AD8 .4byte _08071B0C _08071A30: movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] movs r0, 0 bl SetVBlankCallback bl remove_some_task movs r2, 0xA0 lsls r2, 19 mov r0, sp strh r4, [r0] ldr r1, _08071A98 str r0, [r1] str r2, [r1, 0x4] ldr r0, _08071A9C str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, _08071AA0 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08071A6E: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _08071A6E strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _08071B10 .align 2, 0 _08071A98: .4byte 0x040000d4 _08071A9C: .4byte 0x81000200 _08071AA0: .4byte 0x81000800 _08071AA4: bl ResetSpriteData bl ResetTasks bl ResetPaletteFade bl dp12_8087EA4 b _08071B10 _08071AB6: ldr r4, _08071AD4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C movs r1, 0x80 lsls r1, 19 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] b _08071B10 .align 2, 0 _08071AD4: .4byte gWindowConfig_81E6CE4 _08071AD8: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, _08071B00 bl SetVBlankCallback ldr r3, _08071B04 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r4, _08071B08 ldrh r0, [r4] movs r1, 0x1 orrs r0, r1 strh r0, [r4] strh r2, [r3] b _08071B10 .align 2, 0 _08071B00: .4byte sub_80719F0 _08071B04: .4byte 0x04000208 _08071B08: .4byte 0x04000200 _08071B0C: movs r0, 0x1 b _08071B1A _08071B10: mov r1, r8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 _08071B1A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80719FC thumb_func_start sub_8071B28 sub_8071B28: @ 8071B28 push {lr} ldr r0, _08071B48 bl sub_80719FC cmp r0, 0 beq _08071B42 ldr r0, _08071B4C movs r1, 0x50 bl CreateTask ldr r0, _08071B50 bl SetMainCallback2 _08071B42: pop {r0} bx r0 .align 2, 0 _08071B48: .4byte 0x03001bac _08071B4C: .4byte sub_8071B64 _08071B50: .4byte sub_8071B54 thumb_func_end sub_8071B28 thumb_func_start sub_8071B54 sub_8071B54: @ 8071B54 push {lr} bl RunTasks bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8071B54 thumb_func_start sub_8071B64 sub_8071B64: @ 8071B64 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08071B94 adds r4, r0, r1 ldr r0, _08071B98 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08071C14 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x4 bhi _08071C14 lsls r0, 2 ldr r1, _08071B9C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08071B94: .4byte 0x03004b28 _08071B98: .4byte 0x0202f388 _08071B9C: .4byte _08071BA0 .align 2, 0 _08071BA0: .4byte _08071BB4 .4byte _08071BD4 .4byte _08071BDE .4byte _08071BEE .4byte _08071C06 _08071BB4: bl sub_8071FFC ldr r0, _08071BD0 movs r1, 0x2 movs r2, 0xF bl Print movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _08071BFA .align 2, 0 _08071BD0: .4byte gUnknown_08411905 _08071BD4: bl sub_8047A1C bl sub_8125E2C b _08071BFE _08071BDE: bl sub_8125E6C lsls r0, 24 cmp r0, 0 beq _08071C14 bl sub_8047A34 b _08071BFE _08071BEE: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _08071BFA: bl BeginNormalPaletteFade _08071BFE: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _08071C14 _08071C06: ldr r0, _08071C1C ldr r0, [r0, 0x8] bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08071C14: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071C1C: .4byte 0x03001770 thumb_func_end sub_8071B64 thumb_func_start sub_8071C20 sub_8071C20: @ 8071C20 push {lr} movs r0, 0x5 bl audio_play bl sub_8071EF4 bl sub_8064E2C bl script_env_2_disable bl sub_8072DEC pop {r0} bx r0 thumb_func_end sub_8071C20 thumb_func_start append_byte append_byte: @ 8071C3C ldrb r3, [r1] adds r0, r3 strb r2, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bx lr thumb_func_end append_byte thumb_func_start sub_8071C4C sub_8071C4C: @ 8071C4C push {lr} movs r1, 0x1 bl sub_8071D48 pop {r0} bx r0 thumb_func_end sub_8071C4C thumb_func_start sub_8071C58 sub_8071C58: @ 8071C58 push {lr} movs r1, 0x1 bl sub_8071C64 pop {r0} bx r0 thumb_func_end sub_8071C58 thumb_func_start sub_8071C64 sub_8071C64: @ 8071C64 push {lr} adds r3, r0, 0 ldr r2, _08071C84 movs r0, 0 strb r0, [r2] ldr r0, _08071C88 strh r1, [r0] ldr r1, _08071C8C ldr r0, _08071C90 str r0, [r1] adds r1, r3, 0 bl InitWindowFromConfig pop {r0} bx r0 .align 2, 0 _08071C84: .4byte 0x0202e9cc _08071C88: .4byte 0x0202e9ce _08071C8C: .4byte 0x0202e9c8 _08071C90: .4byte 0x0202e908 thumb_func_end sub_8071C64 thumb_func_start sub_8071C94 sub_8071C94: @ 8071C94 push {r4,lr} ldr r0, _08071CAC ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0x4 bhi _08071D40 lsls r0, r1, 2 ldr r1, _08071CB0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08071CAC: .4byte 0x0202e9cc _08071CB0: .4byte _08071CB4 .align 2, 0 _08071CB4: .4byte _08071CC8 .4byte _08071CD0 .4byte _08071CF0 .4byte _08071CFA .4byte _08071D1C _08071CC8: ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _08071D40 _08071CD0: ldr r4, _08071CE4 ldr r0, _08071CE8 ldr r0, [r0] ldr r1, _08071CEC ldrh r1, [r1] bl MultistepInitWindowTileData strh r0, [r4] b _08071D06 .align 2, 0 _08071CE4: .4byte 0x0202e9d0 _08071CE8: .4byte 0x0202e9c8 _08071CEC: .4byte 0x0202e9ce _08071CF0: bl MultistepLoadFont cmp r0, 0 beq _08071D40 b _08071D06 _08071CFA: ldr r0, _08071D10 ldrh r0, [r0] bl sub_8064EF4 ldr r1, _08071D14 strh r0, [r1] _08071D06: ldr r1, _08071D18 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08071D40 .align 2, 0 _08071D10: .4byte 0x0202e9d0 _08071D14: .4byte 0x0202e9d2 _08071D18: .4byte 0x0202e9cc _08071D1C: ldr r0, _08071D34 ldr r0, [r0] bl sub_8064F08 ldr r0, _08071D38 ldrh r0, [r0] bl sub_80651C8 ldr r1, _08071D3C strh r0, [r1] movs r0, 0x1 b _08071D42 .align 2, 0 _08071D34: .4byte 0x0202e9c8 _08071D38: .4byte 0x0202e9d2 _08071D3C: .4byte 0x0202e9d4 _08071D40: movs r0, 0 _08071D42: pop {r4} pop {r1} bx r1 thumb_func_end sub_8071C94 thumb_func_start sub_8071D48 sub_8071D48: @ 8071D48 push {r4,r5,lr} adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 ldr r5, _08071D8C ldr r0, _08071D90 str r0, [r5] adds r1, r2, 0 bl InitWindowFromConfig ldr r1, _08071D94 strh r4, [r1] ldr r0, [r5] ldrh r1, [r1] bl InitWindowTileData ldr r1, _08071D98 strh r0, [r1] ldrh r0, [r1] bl sub_8064EF4 ldr r4, _08071D9C strh r0, [r4] ldr r0, [r5] bl sub_8064F08 ldrh r0, [r4] bl sub_80651C8 ldr r1, _08071DA0 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071D8C: .4byte 0x0202e9c8 _08071D90: .4byte 0x0202e908 _08071D94: .4byte 0x0202e9ce _08071D98: .4byte 0x0202e9d0 _08071D9C: .4byte 0x0202e9d2 _08071DA0: .4byte 0x0202e9d4 thumb_func_end sub_8071D48 thumb_func_start unref_sub_8071DA4 unref_sub_8071DA4: @ 8071DA4 push {r4,r5,lr} adds r2, r0, 0 lsls r4, r1, 16 lsrs r4, 16 ldr r5, _08071DE8 ldr r0, _08071DEC str r0, [r5] adds r1, r2, 0 bl InitWindowFromConfig ldr r0, _08071DF0 strh r4, [r0] ldrh r0, [r0] bl sub_8064EF4 ldr r4, _08071DF4 strh r0, [r4] ldr r0, [r5] bl sub_8064F08 ldrh r0, [r4] bl sub_80651C8 ldr r1, _08071DF8 strh r0, [r1] ldr r0, [r5] ldrh r1, [r1] bl InitWindowTileData ldr r1, _08071DFC strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071DE8: .4byte 0x0202e9c8 _08071DEC: .4byte 0x0202e908 _08071DF0: .4byte 0x0202e9d0 _08071DF4: .4byte 0x0202e9d2 _08071DF8: .4byte 0x0202e9ce _08071DFC: .4byte 0x0202e9d4 thumb_func_end unref_sub_8071DA4 thumb_func_start sub_8071E00 sub_8071E00: @ 8071E00 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08071E14 ldr r0, [r0] bl sub_8064F6C pop {r0} bx r0 .align 2, 0 _08071E14: .4byte 0x0202e9c8 thumb_func_end sub_8071E00 thumb_func_start GetMapNamePopUpWindowId GetMapNamePopUpWindowId: @ 8071E18 push {lr} ldr r0, _08071E28 ldr r0, [r0] bl sub_8064F08 pop {r0} bx r0 .align 2, 0 _08071E28: .4byte 0x0202e9c8 thumb_func_end GetMapNamePopUpWindowId thumb_func_start sub_8071E2C sub_8071E2C: @ 8071E2C push {r4,lr} adds r1, r0, 0 ldr r4, _08071E48 ldr r0, [r4] bl InitWindowFromConfig ldr r1, [r4] ldr r0, _08071E4C ldrh r0, [r0] strh r0, [r1, 0x1A] pop {r4} pop {r0} bx r0 .align 2, 0 _08071E48: .4byte 0x0202e9c8 _08071E4C: .4byte 0x0202e9ce thumb_func_end sub_8071E2C thumb_func_start Print Print: @ 8071E50 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r3, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _08071E7C ldr r0, [r0] ldr r1, _08071E80 ldrh r4, [r1] str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 bl sub_8003460 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071E7C: .4byte 0x0202e9c8 _08071E80: .4byte 0x0202e9ce thumb_func_end Print thumb_func_start Reset Reset: @ 8071E84 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08071EB8 ldr r0, [r0] str r3, [sp] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl ZeroFillWindowRect add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08071EB8: .4byte 0x0202e9c8 thumb_func_end Reset thumb_func_start sub_8071EBC sub_8071EBC: @ 8071EBC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08071EF0 ldr r0, [r0] str r3, [sp] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl FillWindowRectWithBlankTile add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08071EF0: .4byte 0x0202e9c8 thumb_func_end sub_8071EBC thumb_func_start sub_8071EF4 sub_8071EF4: @ 8071EF4 push {lr} movs r0, 0 movs r1, 0 movs r2, 0x1D movs r3, 0x13 bl Reset pop {r0} bx r0 thumb_func_end sub_8071EF4 thumb_func_start DrawDefaultWindow DrawDefaultWindow: @ 8071F08 push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08071F3C ldr r0, [r0] str r3, [sp] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl AddTextPrinterParametrized add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08071F3C: .4byte 0x0202e9c8 thumb_func_end DrawDefaultWindow thumb_func_start sub_8071F40 sub_8071F40: @ 8071F40 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 movs r1, 0xE movs r2, 0x1C movs r3, 0x13 bl DrawDefaultWindow adds r0, r4, 0 movs r1, 0x3 movs r2, 0xF bl Print pop {r4} pop {r0} bx r0 thumb_func_end sub_8071F40 thumb_func_start sub_8071F60 sub_8071F60: @ 8071F60 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r3, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _08071F90 ldr r0, [r0] ldr r1, _08071F94 ldrh r5, [r1] str r2, [sp] adds r1, r4, 0 adds r2, r5, 0 bl sub_8003490 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08071F90: .4byte 0x0202e9c8 _08071F94: .4byte 0x0202e9ce thumb_func_end sub_8071F60 thumb_func_start unref_sub_8071F98 unref_sub_8071F98: @ 8071F98 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _08071FB8 ldr r0, [r0] adds r1, r3, 0 bl GetWindowTilemapEntry lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _08071FB8: .4byte 0x0202e9c8 thumb_func_end unref_sub_8071F98 thumb_func_start unref_sub_8071FBC unref_sub_8071FBC: @ 8071FBC push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r1, [sp, 0x18] lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 lsls r1, 24 lsrs r1, 24 ldr r0, _08071FF8 ldr r0, [r0] str r3, [sp] str r1, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl DrawWindowRect add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08071FF8: .4byte 0x0202e9c8 thumb_func_end unref_sub_8071FBC thumb_func_start sub_8071FFC sub_8071FFC: @ 8071FFC push {lr} ldr r0, _0807200C ldr r0, [r0] bl copy_textbox_border_tile_patterns_to_vram pop {r0} bx r0 .align 2, 0 _0807200C: .4byte 0x0202e9c8 thumb_func_end sub_8071FFC thumb_func_start AddTextPrinterWithCallbackForMessage AddTextPrinterWithCallbackForMessage: @ 8072010 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r3, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _0807203C ldr r0, [r0] ldr r1, _08072040 ldrh r4, [r1] str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 bl sub_8002EB0 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0807203C: .4byte 0x0202e9c8 _08072040: .4byte 0x0202e9ce thumb_func_end AddTextPrinterWithCallbackForMessage thumb_func_start sub_8072044 sub_8072044: @ 8072044 push {lr} sub sp, 0x4 adds r1, r0, 0 ldr r0, _08072064 ldr r0, [r0] ldr r2, _08072068 ldrh r2, [r2] movs r3, 0xF str r3, [sp] movs r3, 0x2 bl sub_8002EB0 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08072064: .4byte 0x0202e9c8 _08072068: .4byte 0x0202e9ce thumb_func_end sub_8072044 thumb_func_start sub_807206C sub_807206C: @ 807206C push {lr} adds r1, r0, 0 ldr r0, _0807207C ldr r0, [r0] bl sub_8002E90 pop {r0} bx r0 .align 2, 0 _0807207C: .4byte 0x0202e9c8 thumb_func_end sub_807206C thumb_func_start sub_8072080 sub_8072080: @ 8072080 push {lr} ldr r0, _08072094 ldr r0, [r0] bl sub_80035AC lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08072094: .4byte 0x0202e9c8 thumb_func_end sub_8072080 thumb_func_start unref_sub_8072098 unref_sub_8072098: @ 8072098 push {lr} ldr r0, _080720AC ldr r0, [r0] bl sub_8003418 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _080720AC: .4byte 0x0202e9c8 thumb_func_end unref_sub_8072098 thumb_func_start sub_80720B0 sub_80720B0: @ 80720B0 push {lr} ldr r0, _080720C0 ldr r0, [r0] bl ClearWindowTextLines pop {r0} bx r0 .align 2, 0 _080720C0: .4byte 0x0202e9c8 thumb_func_end sub_80720B0 thumb_func_start MoveMenuCursor MoveMenuCursor: @ 80720C4 push {r4,lr} ldr r1, _080720E0 movs r2, 0x2 ldrsb r2, [r1, r2] lsls r0, 24 asrs r3, r0, 24 adds r2, r3 movs r0, 0x3 ldrsb r0, [r1, r0] adds r4, r1, 0 cmp r2, r0 bge _080720E4 ldrb r0, [r4, 0x4] b _080720F4 .align 2, 0 _080720E0: .4byte 0x030006b0 _080720E4: movs r0, 0x4 ldrsb r0, [r4, r0] cmp r2, r0 ble _080720F0 ldrb r0, [r4, 0x3] b _080720F4 _080720F0: ldrb r0, [r4, 0x2] adds r0, r3, r0 _080720F4: strb r0, [r4, 0x2] ldrb r0, [r4] movs r1, 0x2 ldrsb r1, [r4, r1] lsls r1, 1 ldrb r2, [r4, 0x1] adds r1, r2 lsls r1, 24 lsrs r1, 24 bl RedrawMenuCursor ldrb r0, [r4, 0x2] pop {r4} pop {r1} bx r1 thumb_func_end MoveMenuCursor thumb_func_start MoveMenuCursorNoWrapAround MoveMenuCursorNoWrapAround: @ 8072114 push {r4,lr} ldr r1, _08072130 movs r2, 0x2 ldrsb r2, [r1, r2] lsls r0, 24 asrs r3, r0, 24 adds r2, r3 movs r0, 0x3 ldrsb r0, [r1, r0] adds r4, r1, 0 cmp r2, r0 bge _08072134 ldrb r0, [r4, 0x3] b _08072144 .align 2, 0 _08072130: .4byte 0x030006b0 _08072134: movs r0, 0x4 ldrsb r0, [r4, r0] cmp r2, r0 ble _08072140 ldrb r0, [r4, 0x4] b _08072144 _08072140: ldrb r0, [r4, 0x2] adds r0, r3, r0 _08072144: strb r0, [r4, 0x2] ldrb r0, [r4] movs r1, 0x2 ldrsb r1, [r4, r1] lsls r1, 1 ldrb r2, [r4, 0x1] adds r1, r2 lsls r1, 24 lsrs r1, 24 bl RedrawMenuCursor ldrb r0, [r4, 0x2] pop {r4} pop {r1} bx r1 thumb_func_end MoveMenuCursorNoWrapAround thumb_func_start GetMenuCursorPos GetMenuCursorPos: @ 8072164 ldr r0, _0807216C ldrb r0, [r0, 0x2] bx lr .align 2, 0 _0807216C: .4byte 0x030006b0 thumb_func_end GetMenuCursorPos thumb_func_start ProcessMenuInput ProcessMenuInput: @ 8072170 push {r4,lr} ldr r0, _08072198 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080721A0 movs r0, 0x5 bl audio_play ldr r4, _0807219C ldrb r0, [r4, 0x7] cmp r0, 0 beq _08072190 bl sub_8072DEC _08072190: movs r0, 0x2 ldrsb r0, [r4, r0] b _080721EC .align 2, 0 _08072198: .4byte 0x03001770 _0807219C: .4byte 0x030006b0 _080721A0: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080721C0 ldr r0, _080721BC ldrb r0, [r0, 0x7] cmp r0, 0 beq _080721B4 bl sub_8072DEC _080721B4: movs r0, 0x1 negs r0, r0 b _080721EC .align 2, 0 _080721BC: .4byte 0x030006b0 _080721C0: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080721D4 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _080721E4 _080721D4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080721E8 movs r0, 0x5 bl audio_play movs r0, 0x1 _080721E4: bl MoveMenuCursor _080721E8: movs r0, 0x2 negs r0, r0 _080721EC: pop {r4} pop {r1} bx r1 thumb_func_end ProcessMenuInput thumb_func_start ProcessMenuInputNoWrap ProcessMenuInputNoWrap: @ 80721F4 push {r4-r6,lr} ldr r4, _08072220 ldrb r5, [r4, 0x2] adds r6, r5, 0 ldr r0, _08072224 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08072228 movs r0, 0x5 bl audio_play ldrb r0, [r4, 0x7] cmp r0, 0 beq _08072218 bl sub_8072DEC _08072218: movs r0, 0x2 ldrsb r0, [r4, r0] b _08072288 .align 2, 0 _08072220: .4byte 0x030006b0 _08072224: .4byte 0x03001770 _08072228: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08072240 ldrb r0, [r4, 0x7] cmp r0, 0 beq _0807223A bl sub_8072DEC _0807223A: movs r0, 0x1 negs r0, r0 b _08072288 _08072240: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08072260 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08072284 movs r0, 0x5 bl audio_play b _08072284 _08072260: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807227E movs r0, 0x1 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _08072284 movs r0, 0x5 bl audio_play b _08072284 _0807227E: movs r0, 0 bl MoveMenuCursorNoWrapAround _08072284: movs r0, 0x2 negs r0, r0 _08072288: pop {r4-r6} pop {r1} bx r1 thumb_func_end ProcessMenuInputNoWrap thumb_func_start MoveMenuCursor3 MoveMenuCursor3: @ 8072290 push {r4-r7,lr} ldr r2, _080722B8 movs r4, 0x4 ldrsb r4, [r2, r4] adds r1, r4, 0x1 asrs r1, 1 lsls r1, 24 lsrs r7, r1, 24 movs r1, 0x2 ldrsb r1, [r2, r1] lsls r0, 24 asrs r3, r0, 24 adds r1, r3 movs r0, 0x3 ldrsb r0, [r2, r0] adds r6, r2, 0 cmp r1, r0 bge _080722BC ldrb r0, [r6, 0x4] b _080722C8 .align 2, 0 _080722B8: .4byte 0x030006b0 _080722BC: cmp r1, r4 ble _080722C4 ldrb r0, [r6, 0x3] b _080722C8 _080722C4: ldrb r0, [r6, 0x2] adds r0, r3, r0 _080722C8: strb r0, [r6, 0x2] movs r5, 0x2 ldrsb r5, [r6, r5] adds r0, r5, 0 adds r1, r7, 0 bl __divsi3 lsls r4, r0, 1 adds r4, r0 lsls r4, 1 ldrb r0, [r6] adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r7, 0 bl __modsi3 adds r1, r0, 0 lsls r1, 1 ldrb r0, [r6, 0x1] adds r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RedrawMenuCursor ldrb r0, [r6, 0x2] pop {r4-r7} pop {r1} bx r1 thumb_func_end MoveMenuCursor3 thumb_func_start MoveMenuCursor4 MoveMenuCursor4: @ 8072308 push {r4-r7,lr} ldr r6, _08072330 movs r1, 0x2 ldrsb r1, [r6, r1] lsls r0, 24 asrs r4, r0, 24 adds r1, r4 movs r0, 0x4 ldrsb r0, [r6, r0] cmp r1, r0 bgt _08072334 bl sub_80723D4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08072338 ldrb r0, [r6, 0x2] b _080723C8 .align 2, 0 _08072330: .4byte 0x030006b0 _08072334: ldrb r0, [r6, 0x2] b _080723C8 _08072338: ldrb r0, [r6, 0x2] adds r0, r4, r0 strb r0, [r6, 0x2] movs r0, 0x4 ldrsb r0, [r6, r0] adds r0, 0x1 ldrb r7, [r6, 0x5] adds r1, r7, 0 bl __divsi3 cmp r0, 0 bne _0807238E movs r5, 0x2 ldrsb r5, [r6, r5] adds r0, r5, 0 adds r1, r7, 0 bl __modsi3 adds r1, r6, 0 adds r1, 0x8 adds r0, r1 ldrb r4, [r0] ldrb r0, [r6] adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r7, 0 bl __divsi3 ldrb r1, [r6, 0x6] bl __modsi3 adds r1, r0, 0 lsls r1, 1 ldrb r6, [r6, 0x1] adds r1, r6 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RedrawMenuCursor b _080723C4 _0807238E: movs r5, 0x2 ldrsb r5, [r6, r5] adds r0, r5, 0 adds r1, r7, 0 bl __modsi3 adds r1, r6, 0 adds r1, 0x8 adds r0, r1 ldrb r4, [r0] ldrb r0, [r6] adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r7, 0 bl __divsi3 adds r1, r0, 0 lsls r1, 1 ldrb r6, [r6, 0x1] adds r1, r6 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RedrawMenuCursor _080723C4: ldr r0, _080723D0 ldrb r0, [r0, 0x2] _080723C8: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080723D0: .4byte 0x030006b0 thumb_func_end MoveMenuCursor4 thumb_func_start sub_80723D4 sub_80723D4: @ 80723D4 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _08072470 ldrh r1, [r2, 0x2E] movs r0, 0x40 ands r0, r1 mov r8, r2 cmp r0, 0 beq _080723F4 ldr r1, _08072474 movs r0, 0x2 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] cmp r0, r1 blt _0807246C _080723F4: mov r0, r8 ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08072414 ldr r0, _08072474 movs r2, 0x2 ldrsb r2, [r0, r2] movs r1, 0x4 ldrsb r1, [r0, r1] ldrb r0, [r0, 0x5] subs r0, 0x1 subs r1, r0 cmp r2, r1 bge _0807246C _08072414: mov r0, r8 ldrh r1, [r0, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0807244C ldr r6, _08072474 movs r4, 0x2 ldrsb r4, [r6, r4] ldrb r5, [r6, 0x5] adds r0, r4, 0 adds r1, r5, 0 bl __modsi3 adds r7, r0, 0 subs r4, r7 adds r0, r4, 0 adds r1, r5, 0 bl __modsi3 cmp r0, 0x1 beq _0807246C movs r0, 0x2 ldrsb r0, [r6, r0] cmp r0, 0 beq _0807246C cmp r7, 0 beq _0807246C _0807244C: mov r0, r8 ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08072478 ldr r1, _08072474 movs r0, 0x2 ldrsb r0, [r1, r0] ldrb r4, [r1, 0x5] adds r1, r4, 0 bl __modsi3 subs r4, 0x1 cmp r0, r4 bne _08072478 _0807246C: movs r0, 0x1 b _0807247A .align 2, 0 _08072470: .4byte 0x03001770 _08072474: .4byte 0x030006b0 _08072478: movs r0, 0 _0807247A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80723D4 thumb_func_start sub_8072484 sub_8072484: @ 8072484 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 adds r5, r2, 0 ldr r1, [sp, 0x24] ldr r4, [sp, 0x28] lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r1, 24 lsrs r1, 24 lsls r4, 24 lsrs r4, 24 ldr r7, _080724F0 strb r1, [r7, 0x5] adds r0, r5, 0 bl __udivsi3 strb r0, [r7, 0x6] mov r1, r9 str r1, [sp] str r4, [sp, 0x4] movs r0, 0 adds r1, r6, 0 mov r2, r8 adds r3, r5, 0 bl InitMenu movs r0, 0 ldr r1, [sp, 0x2C] cmp r1, 0 beq _080724DE movs r0, 0xFF _080724DE: strb r0, [r7, 0x7] mov r0, r9 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080724F0: .4byte 0x030006b0 thumb_func_end sub_8072484 thumb_func_start sub_80724F4 sub_80724F4: @ 80724F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r3 ldr r3, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r5, r3, 24 movs r4, 0 ldr r0, _080725D4 mov r9, r0 mov r1, r9 adds r1, 0x8 movs r2, 0 _08072524: adds r0, r4, r1 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _08072524 movs r7, 0 movs r4, 0 lsrs r2, r6, 1 mov r10, r2 ldr r0, [sp, 0x4] lsls r0, 24 str r0, [sp, 0x8] cmp r7, r6 bcs _08072566 _08072544: lsls r0, r4, 3 add r0, r8 ldr r0, [r0] bl sub_8072CA4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r0, r1, 3 cmp r0, r7 bls _0807255C adds r7, r0, 0 _0807255C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08072544 _08072566: movs r4, 0x1 ldr r2, _080725D4 mov r9, r2 cmp r4, r5 bhi _08072582 mov r1, r9 adds r1, 0x8 _08072574: adds r0, r4, r1 strb r7, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bls _08072574 _08072582: movs r4, 0x1 cmp r4, r5 bhi _080725A4 ldr r3, _080725D8 _0807258A: adds r2, r4, r3 ldrb r1, [r2] subs r0, r4, 0x1 adds r0, r3 adds r1, 0x1 ldrb r0, [r0] adds r1, r0 strb r1, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bls _0807258A _080725A4: mov r1, r9 adds r1, 0x8 adds r1, r5, r1 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] cmp r10, r5 bcc _080725BC movs r0, 0x1 ands r0, r6 cmp r0, 0 beq _080725C4 _080725BC: cmp r5, 0x1 beq _080725C4 cmp r5, r6 bne _080725DC _080725C4: adds r0, r6, 0 adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x1 b _080725EA .align 2, 0 _080725D4: .4byte 0x030006b0 _080725D8: .4byte 0x030006b8 _080725DC: adds r0, r6, 0 adds r1, r5, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 23 adds r0, 0x3 _080725EA: ldr r2, [sp, 0x8] asrs r1, r2, 24 adds r1, r0 lsls r1, 24 lsrs r3, r1, 24 mov r0, r9 adds r0, 0x8 adds r0, r5, r0 ldrb r2, [r0] adds r2, 0x1 ldr r0, [sp] adds r2, r0, r2 lsls r2, 24 lsrs r2, 24 ldr r1, [sp, 0x4] bl DrawDefaultWindow adds r0, r7, 0 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80724F4 thumb_func_start sub_8072620 sub_8072620: @ 8072620 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r10, r3 ldr r3, [sp, 0x30] lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 movs r4, 0 ldr r7, _08072744 adds r1, r7, 0 adds r1, 0x8 movs r2, 0 _08072650: adds r0, r4, r1 strb r2, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _08072650 movs r5, 0 movs r4, 0 cmp r4, r8 bcs _08072688 _08072666: lsls r0, r4, 3 add r0, r10 ldr r0, [r0] bl sub_8072CA4 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0x7 lsrs r0, r1, 3 cmp r0, r5 bls _0807267E adds r5, r0, 0 _0807267E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _08072666 _08072688: movs r4, 0x1 ldr r7, _08072744 cmp r4, r6 bhi _080726A2 adds r1, r7, 0 adds r1, 0x8 _08072694: adds r0, r4, r1 strb r5, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bls _08072694 _080726A2: movs r4, 0x1 cmp r4, r6 bhi _080726C4 ldr r3, _08072748 _080726AA: adds r2, r4, r3 ldrb r1, [r2] subs r0, r4, 0x1 adds r0, r3 adds r1, 0x1 ldrb r0, [r0] adds r1, r0 strb r1, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bls _080726AA _080726C4: adds r1, r7, 0 adds r1, 0x8 adds r1, r6, r1 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] movs r4, 0 cmp r4, r6 bcs _08072732 _080726D6: movs r7, 0 movs r5, 0 adds r0, r4, 0x1 mov r9, r0 cmp r4, r8 bge _08072728 adds r0, r4, 0 adds r1, r6, 0 bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldr r1, _08072748 adds r0, r1 str r0, [sp, 0xC] _080726F4: adds r0, r4, r5 lsls r0, 3 add r0, r10 ldr r0, [r0] ldr r2, [sp, 0xC] ldrb r1, [r2] ldr r3, [sp] adds r1, r3, r1 lsls r1, 24 lsrs r1, 24 lsls r2, r7, 1 ldr r3, [sp, 0x4] adds r2, r3, r2 lsls r2, 24 lsrs r2, 24 bl Print adds r0, r5, r6 lsls r0, 24 lsrs r5, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, r5 cmp r0, r8 blt _080726F4 _08072728: mov r1, r9 lsls r0, r1, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _080726D6 _08072732: 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 _08072744: .4byte 0x030006b0 _08072748: .4byte 0x030006b8 thumb_func_end sub_8072620 thumb_func_start sub_807274C sub_807274C: @ 807274C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 mov r9, r3 ldr r7, [sp, 0x28] ldr r6, [sp, 0x2C] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r6, 24 lsrs r6, 24 str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 mov r2, r8 adds r3, r7, 0 bl sub_80724F4 lsls r0, 24 lsrs r0, 24 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 adds r5, 0x1 lsls r5, 24 lsrs r5, 24 str r6, [sp] str r0, [sp, 0x4] ldr r0, [sp, 0x30] str r0, [sp, 0x8] adds r0, r4, 0 adds r1, r5, 0 mov r2, r8 mov r3, r9 bl sub_8072484 str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 mov r2, r8 adds r3, r7, 0 bl sub_8072620 add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_807274C thumb_func_start sub_80727CC sub_80727CC: @ 80727CC push {lr} ldr r0, _080727F8 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08072800 ldr r0, _080727FC ldrb r0, [r0, 0x7] cmp r0, 0 beq _080727E6 bl sub_8072DEC _080727E6: movs r0, 0x5 bl audio_play bl GetMenuCursorPos lsls r0, 24 asrs r0, 24 b _08072888 .align 2, 0 _080727F8: .4byte 0x03001770 _080727FC: .4byte 0x030006b0 _08072800: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08072820 ldr r0, _0807281C ldrb r0, [r0, 0x7] cmp r0, 0 beq _08072814 bl sub_8072DEC _08072814: movs r0, 0x1 negs r0, r0 b _08072888 .align 2, 0 _0807281C: .4byte 0x030006b0 _08072820: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08072840 movs r0, 0x5 bl audio_play ldr r0, _0807283C ldrb r0, [r0, 0x5] negs r0, r0 lsls r0, 24 asrs r0, 24 b _08072880 .align 2, 0 _0807283C: .4byte 0x030006b0 _08072840: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0807285C movs r0, 0x5 bl audio_play ldr r0, _08072858 ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 b _08072880 .align 2, 0 _08072858: .4byte 0x030006b0 _0807285C: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08072870 movs r0, 0x5 bl audio_play movs r0, 0x1 negs r0, r0 b _08072880 _08072870: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08072884 movs r0, 0x5 bl audio_play movs r0, 0x1 _08072880: bl MoveMenuCursor4 _08072884: movs r0, 0x2 negs r0, r0 _08072888: pop {r1} bx r1 thumb_func_end sub_80727CC thumb_func_start sub_807288C sub_807288C: @ 807288C lsls r0, 24 lsrs r0, 24 ldr r1, _0807289C adds r1, 0x8 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0807289C: .4byte 0x030006b0 thumb_func_end sub_807288C thumb_func_start PrintStringArray PrintStringArray: @ 80728A0 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r3 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 cmp r4, r5 bcs _080728D8 _080728BA: lsls r0, r4, 3 add r0, r8 ldr r0, [r0] lsls r2, r4, 1 adds r2, r6, r2 lsls r2, 24 lsrs r2, 24 adds r1, r7, 0 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080728BA _080728D8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end PrintStringArray thumb_func_start sub_80728E4 sub_80728E4: @ 80728E4 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r3 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r4, 0 cmp r4, r5 bcs _08072922 _080728FE: ldr r1, [sp, 0x18] adds r0, r1, r4 ldrb r0, [r0] lsls r0, 3 add r0, r8 ldr r0, [r0] lsls r2, r4, 1 adds r2, r6, r2 lsls r2, 24 lsrs r2, 24 adds r1, r7, 0 bl Print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080728FE _08072922: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80728E4 thumb_func_start sub_807292C sub_807292C: @ 807292C push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsls r5, 24 lsls r6, 24 lsrs r6, 24 movs r0, 0x80 lsls r0, 17 adds r4, r0 lsrs r4, 24 adds r5, r0 lsrs r5, 24 ldr r3, _08072970 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x2 bl PrintStringArray movs r0, 0 str r0, [sp] str r6, [sp, 0x4] adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x2 bl InitMenu add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072970: .4byte gUnknown_08376D74 thumb_func_end sub_807292C thumb_func_start sub_8072974 sub_8072974: @ 8072974 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r3, r1, 0 mov r8, r2 lsls r4, 24 lsls r3, 24 lsrs r6, r4, 24 movs r0, 0xC0 lsls r0, 19 adds r4, r0 lsrs r4, 24 lsrs r5, r3, 24 movs r2, 0xA0 lsls r2, 19 adds r3, r2 lsrs r3, 24 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl DrawDefaultWindow adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x5 bl sub_807292C ldr r1, _080729C4 movs r0, 0 mov r2, r8 cmp r2, 0 beq _080729B8 movs r0, 0xFF _080729B8: strb r0, [r1, 0x7] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080729C4: .4byte 0x030006b0 thumb_func_end sub_8072974 thumb_func_start FillWindowPixelBuffer FillWindowPixelBuffer: @ 80729C8 push {lr} bl ProcessMenuInputNoWrap lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end FillWindowPixelBuffer thumb_func_start sub_80729D8 sub_80729D8: @ 80729D8 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r3, 24 ldr r0, _08072A10 ldr r0, [r0] ldr r1, _08072A14 ldrh r5, [r1] str r2, [sp] str r3, [sp, 0x4] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8004D04 lsls r0, 24 lsrs r0, 24 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072A10: .4byte 0x0202e9c8 _08072A14: .4byte 0x0202e9ce thumb_func_end sub_80729D8 thumb_func_start sub_8072A18 sub_8072A18: @ 8072A18 push {r4-r6,lr} sub sp, 0x10 adds r6, r0, 0 ldr r5, [sp, 0x20] lsls r1, 24 lsrs r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r3, 24 ldr r0, _08072A54 ldr r0, [r0] ldr r4, _08072A58 ldrh r4, [r4] str r1, [sp] str r2, [sp, 0x4] str r3, [sp, 0x8] str r5, [sp, 0xC] movs r1, 0 adds r2, r6, 0 adds r3, r4, 0 bl sub_8004FD0 lsls r0, 24 lsrs r0, 24 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072A54: .4byte 0x0202e9c8 _08072A58: .4byte 0x0202e9ce thumb_func_end sub_8072A18 thumb_func_start unref_sub_8072A5C unref_sub_8072A5C: @ 8072A5C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 mov r8, r0 mov r9, r1 ldr r4, [sp, 0x28] ldr r6, [sp, 0x2C] lsls r2, 24 lsrs r2, 24 lsls r3, 16 lsrs r3, 16 lsls r4, 24 lsrs r4, 24 ldr r0, _08072AA8 ldr r0, [r0] ldr r1, _08072AAC ldrh r5, [r1] str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] str r6, [sp, 0xC] mov r1, r8 mov r2, r9 adds r3, r5, 0 bl sub_8004FD0 lsls r0, 24 lsrs r0, 24 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072AA8: .4byte 0x0202e9c8 _08072AAC: .4byte 0x0202e9ce thumb_func_end unref_sub_8072A5C thumb_func_start sub_8072AB0 sub_8072AB0: @ 8072AB0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 mov r9, r0 adds r4, r1, 0 adds r5, r2, 0 ldr r0, [sp, 0x2C] ldr r2, [sp, 0x30] lsls r4, 24 lsrs r1, r4, 24 mov r12, r1 lsls r5, 16 lsrs r7, r5, 16 lsls r3, 24 lsrs r6, r3, 24 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, _08072B44 ldr r0, [r0] ldr r1, _08072B48 ldrh r3, [r1] mov r1, r12 str r1, [sp] str r7, [sp, 0x4] str r6, [sp, 0x8] str r2, [sp, 0xC] movs r1, 0 mov r2, r9 bl sub_8004FD0 adds r1, r0, 0 lsls r1, 24 lsrs r2, r1, 24 lsrs r4, 27 mov r12, r4 lsrs r7, r5, 19 adds r1, r6, 0x7 lsrs r6, r1, 3 mov r1, r8 adds r1, 0x7 asrs r1, 3 lsls r1, 24 lsrs r1, 24 mov r8, r1 cmp r2, r8 bcs _08072B34 lsls r1, r2, 1 adds r1, r7, r1 lsls r1, 24 lsrs r1, 24 mov r0, r12 adds r2, r0, r6 subs r2, 0x1 lsls r2, 24 lsrs r2, 24 mov r0, r8 adds r3, r0, r7 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 mov r0, r12 bl sub_8071EBC _08072B34: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072B44: .4byte 0x0202e9c8 _08072B48: .4byte 0x0202e9ce thumb_func_end sub_8072AB0 thumb_func_start PrintCoinsString PrintCoinsString: @ 8072B4C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r3, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _08072B78 ldr r0, [r0] ldr r1, _08072B7C ldrh r4, [r1] str r2, [sp] adds r1, r5, 0 adds r2, r4, 0 bl sub_8004D38 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08072B78: .4byte 0x0202e9c8 _08072B7C: .4byte 0x0202e9ce thumb_func_end PrintCoinsString thumb_func_start sub_8072B80 sub_8072B80: @ 8072B80 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x44 mov r8, r0 adds r6, r1, 0 adds r5, r2, 0 adds r1, r3, 0 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 ldr r4, _08072BD0 ldr r0, [r4] bl GetStringWidth adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r0, [r4] movs r1, 0x1 str r1, [sp] add r1, sp, 0x4 mov r2, r8 bl AlignString ldr r0, [r4] ldr r1, _08072BD4 ldrh r2, [r1] str r5, [sp] add r1, sp, 0x4 adds r3, r6, 0 bl sub_8003460 add sp, 0x44 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072BD0: .4byte 0x0202e9c8 _08072BD4: .4byte 0x0202e9ce thumb_func_end sub_8072B80 thumb_func_start Free Free: @ 8072BD8 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 16 lsrs r3, 16 ldr r0, _08072C0C ldr r0, [r0] ldr r1, _08072C10 ldrh r5, [r1] str r2, [sp] str r3, [sp, 0x4] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_8004DB0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072C0C: .4byte 0x0202e9c8 _08072C10: .4byte 0x0202e9ce thumb_func_end Free thumb_func_start sub_8072C14 sub_8072C14: @ 8072C14 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08072C40 ldr r0, [r0] str r3, [sp] adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl AlignInt1 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072C40: .4byte 0x0202e9c8 thumb_func_end sub_8072C14 thumb_func_start sub_8072C44 sub_8072C44: @ 8072C44 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08072C70 ldr r0, [r0] str r3, [sp] adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl AlignInt2 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072C70: .4byte 0x0202e9c8 thumb_func_end sub_8072C44 thumb_func_start sub_8072C74 sub_8072C74: @ 8072C74 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 adds r4, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 ldr r0, _08072CA0 ldr r0, [r0] str r3, [sp] adds r1, r5, 0 adds r2, r6, 0 adds r3, r4, 0 bl AlignString add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08072CA0: .4byte 0x0202e9c8 thumb_func_end sub_8072C74 thumb_func_start sub_8072CA4 sub_8072CA4: @ 8072CA4 push {lr} adds r1, r0, 0 ldr r0, _08072CB8 ldr r0, [r0] bl GetStringWidth lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08072CB8: .4byte 0x0202e9c8 thumb_func_end sub_8072CA4 thumb_func_start sub_8072CBC sub_8072CBC: @ 8072CBC push {lr} ldr r0, _08072CD0 ldr r0, [r0] bl sub_8004E24 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _08072CD0: .4byte 0x0202e9c8 thumb_func_end sub_8072CBC thumb_func_start sub_8072CD4 sub_8072CD4: @ 8072CD4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 adds r3, r2, 0 ldr r0, _08072CF0 ldr r0, [r0] adds r1, r4, 0 adds r2, r5, 0 bl sub_8004E28 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08072CF0: .4byte 0x0202e9c8 thumb_func_end sub_8072CD4 thumb_func_start sub_8072CF4 sub_8072CF4: @ 8072CF4 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08072D08 ldr r0, [r0] bl sub_80037C8 pop {r1} bx r1 .align 2, 0 _08072D08: .4byte 0x0202e9c8 thumb_func_end sub_8072CF4 thumb_func_start unref_sub_8072D0C unref_sub_8072D0C: @ 8072D0C ldr r0, _08072D14 ldr r0, [r0] bx lr .align 2, 0 _08072D14: .4byte 0x0202e9c8 thumb_func_end unref_sub_8072D0C thumb_func_start sub_8072D18 sub_8072D18: @ 8072D18 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08072D38 ldr r3, _08072D3C lsls r1, 27 lsrs r1, 24 str r1, [sp] adds r1, r2, 0 movs r2, 0xC bl sub_814A5C0 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08072D38: .4byte 0x0000ffff _08072D3C: .4byte 0x00002d9f thumb_func_end sub_8072D18 thumb_func_start InitMenu InitMenu: @ 8072D40 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, [sp, 0x18] ldr r5, [sp, 0x1C] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r1, r5, 24 cmp r1, 0 beq _08072D6C bl sub_8072D18 _08072D6C: ldr r1, _08072DA4 subs r0, r7, 0x1 movs r2, 0 strb r0, [r1] mov r0, r8 strb r0, [r1, 0x1] strb r2, [r1, 0x3] subs r0, r6, 0x1 strb r0, [r1, 0x4] strb r2, [r1, 0x7] cmp r4, 0 blt _08072D8C movs r0, 0x4 ldrsb r0, [r1, r0] cmp r4, r0 ble _08072D8E _08072D8C: movs r4, 0 _08072D8E: strb r4, [r1, 0x2] movs r0, 0 bl MoveMenuCursor adds r0, r4, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08072DA4: .4byte 0x030006b0 thumb_func_end InitMenu thumb_func_start RedrawMenuCursor RedrawMenuCursor: @ 8072DA8 push {lr} lsls r0, 27 movs r2, 0x80 lsls r2, 20 adds r0, r2 lsrs r0, 24 lsls r1, 27 lsrs r1, 24 bl sub_814A880 pop {r0} bx r0 thumb_func_end RedrawMenuCursor thumb_func_start unref_sub_8072DC0 unref_sub_8072DC0: @ 8072DC0 push {lr} bl sub_814A904 pop {r0} bx r0 thumb_func_end unref_sub_8072DC0 thumb_func_start sub_8072DCC sub_8072DCC: @ 8072DCC push {lr} lsls r0, 24 lsrs r0, 24 bl sub_814A958 pop {r0} bx r0 thumb_func_end sub_8072DCC thumb_func_start sub_8072DDC sub_8072DDC: @ 8072DDC push {lr} lsls r0, 27 lsrs r0, 24 bl sub_8072DCC pop {r0} bx r0 thumb_func_end sub_8072DDC thumb_func_start sub_8072DEC sub_8072DEC: @ 8072DEC push {lr} bl sub_814A7FC pop {r0} bx r0 thumb_func_end sub_8072DEC thumb_func_start sub_8072DF8 sub_8072DF8: @ 8072DF8 push {lr} sub sp, 0x4 ldr r1, _08072E18 movs r0, 0 strb r0, [r1] movs r0, 0 str r0, [sp] ldr r1, _08072E1C ldr r2, _08072E20 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08072E18: .4byte 0x030006c0 _08072E1C: .4byte 0x0202e9d8 _08072E20: .4byte 0x0500003c thumb_func_end sub_8072DF8 thumb_func_start sub_8072E24 sub_8072E24: @ 8072E24 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r2, 16 lsrs r6, r2, 16 ldr r3, _08072E6C ldrb r0, [r3] cmp r0, 0x13 bhi _08072E64 ldr r2, _08072E70 adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 str r4, [r0] ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r1, r2, 0x4 adds r0, r1 str r5, [r0] ldrb r1, [r3] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 strh r6, [r0, 0x8] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _08072E64: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072E6C: .4byte 0x030006c0 _08072E70: .4byte 0x0202e9d8 thumb_func_end sub_8072E24 thumb_func_start sub_8072E74 sub_8072E74: @ 8072E74 push {r4-r6,lr} movs r3, 0 ldr r4, _08072EB0 adds r6, r4, 0 ldrb r0, [r4] cmp r3, r0 bge _08072EA6 ldr r2, _08072EB4 ldr r1, _08072EB8 movs r5, 0x80 lsls r5, 24 _08072E8A: ldr r0, [r1] str r0, [r2] ldr r0, [r1, 0x4] str r0, [r2, 0x4] ldrh r0, [r1, 0x8] lsrs r0, 1 orrs r0, r5 str r0, [r2, 0x8] ldr r0, [r2, 0x8] adds r1, 0xC adds r3, 0x1 ldrb r0, [r4] cmp r3, r0 blt _08072E8A _08072EA6: movs r0, 0 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08072EB0: .4byte 0x030006c0 _08072EB4: .4byte 0x040000d4 _08072EB8: .4byte 0x0202e9d8 thumb_func_end sub_8072E74 thumb_func_start cur_mapheader_run_tileset_funcs_after_some_cpuset cur_mapheader_run_tileset_funcs_after_some_cpuset: @ 8072EBC push {lr} bl sub_8072DF8 bl cur_mapheader_run_tileset1_func bl cur_mapheader_run_tileset2_func pop {r0} bx r0 thumb_func_end cur_mapheader_run_tileset_funcs_after_some_cpuset thumb_func_start sub_8072ED0 sub_8072ED0: @ 8072ED0 push {lr} bl cur_mapheader_run_tileset2_func pop {r0} bx r0 thumb_func_end sub_8072ED0 thumb_func_start sub_8072EDC sub_8072EDC: @ 8072EDC push {r4,lr} bl sub_8072DF8 ldr r2, _08072F34 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] ldr r1, _08072F38 lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bcc _08072EFA movs r0, 0 strh r0, [r2] _08072EFA: ldr r4, _08072F3C ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r1, _08072F40 lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bcc _08072F12 movs r0, 0 strh r0, [r4] _08072F12: ldr r0, _08072F44 ldr r1, [r0] cmp r1, 0 beq _08072F20 ldrh r0, [r2] bl _call_via_r1 _08072F20: ldr r0, _08072F48 ldr r1, [r0] cmp r1, 0 beq _08072F2E ldrh r0, [r4] bl _call_via_r1 _08072F2E: pop {r4} pop {r0} bx r0 .align 2, 0 _08072F34: .4byte 0x030006c2 _08072F38: .4byte 0x030006c4 _08072F3C: .4byte 0x030006c6 _08072F40: .4byte 0x030006c8 _08072F44: .4byte 0x030006cc _08072F48: .4byte 0x030006d0 thumb_func_end sub_8072EDC thumb_func_start cur_mapheader_run_tileset1_func cur_mapheader_run_tileset1_func: @ 8072F4C push {lr} ldr r0, _08072F78 movs r1, 0 strh r1, [r0] ldr r0, _08072F7C strh r1, [r0] ldr r1, _08072F80 movs r0, 0 str r0, [r1] ldr r0, _08072F84 ldr r0, [r0] ldr r0, [r0, 0x10] cmp r0, 0 beq _08072F72 ldr r0, [r0, 0x14] cmp r0, 0 beq _08072F72 bl _call_via_r0 _08072F72: pop {r0} bx r0 .align 2, 0 _08072F78: .4byte 0x030006c2 _08072F7C: .4byte 0x030006c4 _08072F80: .4byte 0x030006cc _08072F84: .4byte 0x0202e828 thumb_func_end cur_mapheader_run_tileset1_func thumb_func_start cur_mapheader_run_tileset2_func cur_mapheader_run_tileset2_func: @ 8072F88 push {lr} ldr r0, _08072FB4 movs r1, 0 strh r1, [r0] ldr r0, _08072FB8 strh r1, [r0] ldr r1, _08072FBC movs r0, 0 str r0, [r1] ldr r0, _08072FC0 ldr r0, [r0] ldr r0, [r0, 0x14] cmp r0, 0 beq _08072FAE ldr r0, [r0, 0x14] cmp r0, 0 beq _08072FAE bl _call_via_r0 _08072FAE: pop {r0} bx r0 .align 2, 0 _08072FB4: .4byte 0x030006c6 _08072FB8: .4byte 0x030006c8 _08072FBC: .4byte 0x030006d0 _08072FC0: .4byte 0x0202e828 thumb_func_end cur_mapheader_run_tileset2_func thumb_func_start TilesetCB_General TilesetCB_General: @ 8072FC4 ldr r1, _08072FDC movs r0, 0 strh r0, [r1] ldr r1, _08072FE0 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r1, _08072FE4 ldr r0, _08072FE8 str r0, [r1] bx lr .align 2, 0 _08072FDC: .4byte 0x030006c2 _08072FE0: .4byte 0x030006c4 _08072FE4: .4byte 0x030006cc _08072FE8: .4byte sub_8073014 thumb_func_end TilesetCB_General thumb_func_start TilesetCB_Building TilesetCB_Building: @ 8072FEC ldr r1, _08073004 movs r0, 0 strh r0, [r1] ldr r1, _08073008 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r1, _0807300C ldr r0, _08073010 str r0, [r1] bx lr .align 2, 0 _08073004: .4byte 0x030006c2 _08073008: .4byte 0x030006c4 _0807300C: .4byte 0x030006cc _08073010: .4byte sub_8073058 thumb_func_end TilesetCB_Building thumb_func_start sub_8073014 sub_8073014: @ 8073014 push {r4,r5,lr} lsls r5, r0, 16 movs r0, 0xF0 lsls r0, 12 ands r0, r5 lsrs r4, r0, 16 cmp r4, 0 bne _0807302A lsrs r0, r5, 20 bl sub_8073070 _0807302A: cmp r4, 0x1 bne _08073034 lsrs r0, r5, 20 bl sub_8073098 _08073034: cmp r4, 0x2 bne _0807303E lsrs r0, r5, 20 bl sub_80730C0 _0807303E: cmp r4, 0x3 bne _08073048 lsrs r0, r5, 20 bl sub_80730E8 _08073048: cmp r4, 0x4 bne _08073052 lsrs r0, r5, 20 bl sub_807361C _08073052: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8073014 thumb_func_start sub_8073058 sub_8073058: @ 8073058 push {lr} lsls r1, r0, 16 movs r0, 0xE0 lsls r0, 11 ands r0, r1 cmp r0, 0 bne _0807306C lsrs r0, r1, 19 bl sub_8073904 _0807306C: pop {r0} bx r0 thumb_func_end sub_8073058 thumb_func_start sub_8073070 sub_8073070: @ 8073070 push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _08073090 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _08073094 movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073090: .4byte gTilesetAnimTable_General_0 _08073094: .4byte 0x06003f80 thumb_func_end sub_8073070 thumb_func_start sub_8073098 sub_8073098: @ 8073098 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x7 ands r0, r1 ldr r1, _080730B8 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080730BC movs r2, 0xF0 lsls r2, 2 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080730B8: .4byte gTilesetAnimTable_General_1 _080730BC: .4byte 0x06003600 thumb_func_end sub_8073098 thumb_func_start sub_80730C0 sub_80730C0: @ 80730C0 push {lr} lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 ldr r0, _080730E0 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _080730E4 movs r2, 0xA0 lsls r2, 1 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080730E0: .4byte gTilesetAnimTable_General_2 _080730E4: .4byte 0x06003a00 thumb_func_end sub_80730C0 thumb_func_start sub_80730E8 sub_80730E8: @ 80730E8 push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _08073108 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _0807310C movs r2, 0xC0 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073108: .4byte gTilesetAnimTable_General_3 _0807310C: .4byte 0x06003e00 thumb_func_end sub_80730E8 thumb_func_start TilesetCB_Petalburg TilesetCB_Petalburg: @ 8073110 ldr r1, _08073128 movs r0, 0 strh r0, [r1] ldr r1, _0807312C ldr r0, _08073130 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073134 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _08073128: .4byte 0x030006c6 _0807312C: .4byte 0x030006c8 _08073130: .4byte 0x030006c4 _08073134: .4byte 0x030006d0 thumb_func_end TilesetCB_Petalburg thumb_func_start TilesetCB_Rustboro TilesetCB_Rustboro: @ 8073138 ldr r1, _08073150 movs r0, 0 strh r0, [r1] ldr r1, _08073154 ldr r0, _08073158 ldrh r0, [r0] strh r0, [r1] ldr r1, _0807315C ldr r0, _08073160 str r0, [r1] bx lr .align 2, 0 _08073150: .4byte 0x030006c6 _08073154: .4byte 0x030006c8 _08073158: .4byte 0x030006c4 _0807315C: .4byte 0x030006d0 _08073160: .4byte sub_8073424 thumb_func_end TilesetCB_Rustboro thumb_func_start TilesetCB_Dewford TilesetCB_Dewford: @ 8073164 ldr r1, _0807317C movs r0, 0 strh r0, [r1] ldr r1, _08073180 ldr r0, _08073184 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073188 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _0807317C: .4byte 0x030006c6 _08073180: .4byte 0x030006c8 _08073184: .4byte 0x030006c4 _08073188: .4byte 0x030006d0 thumb_func_end TilesetCB_Dewford thumb_func_start TilesetCB_Slateport TilesetCB_Slateport: @ 807318C ldr r1, _080731A4 movs r0, 0 strh r0, [r1] ldr r1, _080731A8 ldr r0, _080731AC ldrh r0, [r0] strh r0, [r1] ldr r1, _080731B0 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _080731A4: .4byte 0x030006c6 _080731A8: .4byte 0x030006c8 _080731AC: .4byte 0x030006c4 _080731B0: .4byte 0x030006d0 thumb_func_end TilesetCB_Slateport thumb_func_start TilesetCB_Mauville TilesetCB_Mauville: @ 80731B4 ldr r1, _080731CC ldr r0, _080731D0 ldrh r0, [r0] strh r0, [r1] ldr r1, _080731D4 ldr r0, _080731D8 ldrh r0, [r0] strh r0, [r1] ldr r1, _080731DC ldr r0, _080731E0 str r0, [r1] bx lr .align 2, 0 _080731CC: .4byte 0x030006c6 _080731D0: .4byte 0x030006c2 _080731D4: .4byte 0x030006c8 _080731D8: .4byte 0x030006c4 _080731DC: .4byte 0x030006d0 _080731E0: .4byte sub_80734A0 thumb_func_end TilesetCB_Mauville thumb_func_start TilesetCB_Lavaridge TilesetCB_Lavaridge: @ 80731E4 ldr r1, _080731FC movs r0, 0 strh r0, [r1] ldr r1, _08073200 ldr r0, _08073204 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073208 ldr r0, _0807320C str r0, [r1] bx lr .align 2, 0 _080731FC: .4byte 0x030006c6 _08073200: .4byte 0x030006c8 _08073204: .4byte 0x030006c4 _08073208: .4byte 0x030006d0 _0807320C: .4byte sub_8073514 thumb_func_end TilesetCB_Lavaridge thumb_func_start TilesetCB_Fallarbor TilesetCB_Fallarbor: @ 8073210 ldr r1, _08073228 movs r0, 0 strh r0, [r1] ldr r1, _0807322C ldr r0, _08073230 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073234 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _08073228: .4byte 0x030006c6 _0807322C: .4byte 0x030006c8 _08073230: .4byte 0x030006c4 _08073234: .4byte 0x030006d0 thumb_func_end TilesetCB_Fallarbor thumb_func_start TilesetCB_Fortree TilesetCB_Fortree: @ 8073238 ldr r1, _08073250 movs r0, 0 strh r0, [r1] ldr r1, _08073254 ldr r0, _08073258 ldrh r0, [r0] strh r0, [r1] ldr r1, _0807325C movs r0, 0 str r0, [r1] bx lr .align 2, 0 _08073250: .4byte 0x030006c6 _08073254: .4byte 0x030006c8 _08073258: .4byte 0x030006c4 _0807325C: .4byte 0x030006d0 thumb_func_end TilesetCB_Fortree thumb_func_start TilesetCB_Lilycove TilesetCB_Lilycove: @ 8073260 ldr r1, _08073278 movs r0, 0 strh r0, [r1] ldr r1, _0807327C ldr r0, _08073280 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073284 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _08073278: .4byte 0x030006c6 _0807327C: .4byte 0x030006c8 _08073280: .4byte 0x030006c4 _08073284: .4byte 0x030006d0 thumb_func_end TilesetCB_Lilycove thumb_func_start TilesetCB_Mossdeep TilesetCB_Mossdeep: @ 8073288 ldr r1, _080732A0 movs r0, 0 strh r0, [r1] ldr r1, _080732A4 ldr r0, _080732A8 ldrh r0, [r0] strh r0, [r1] ldr r1, _080732AC movs r0, 0 str r0, [r1] bx lr .align 2, 0 _080732A0: .4byte 0x030006c6 _080732A4: .4byte 0x030006c8 _080732A8: .4byte 0x030006c4 _080732AC: .4byte 0x030006d0 thumb_func_end TilesetCB_Mossdeep thumb_func_start TilesetCB_EverGrande TilesetCB_EverGrande: @ 80732B0 ldr r1, _080732C8 movs r0, 0 strh r0, [r1] ldr r1, _080732CC ldr r0, _080732D0 ldrh r0, [r0] strh r0, [r1] ldr r1, _080732D4 ldr r0, _080732D8 str r0, [r1] bx lr .align 2, 0 _080732C8: .4byte 0x030006c6 _080732CC: .4byte 0x030006c8 _080732D0: .4byte 0x030006c4 _080732D4: .4byte 0x030006d0 _080732D8: .4byte sub_8073540 thumb_func_end TilesetCB_EverGrande thumb_func_start TilesetCB_Pacifidlog TilesetCB_Pacifidlog: @ 80732DC ldr r1, _080732F4 ldr r0, _080732F8 ldrh r0, [r0] strh r0, [r1] ldr r1, _080732FC ldr r0, _08073300 ldrh r0, [r0] strh r0, [r1] ldr r1, _08073304 ldr r0, _08073308 str r0, [r1] bx lr .align 2, 0 _080732F4: .4byte 0x030006c6 _080732F8: .4byte 0x030006c2 _080732FC: .4byte 0x030006c8 _08073300: .4byte 0x030006c4 _08073304: .4byte 0x030006d0 _08073308: .4byte sub_80735B4 thumb_func_end TilesetCB_Pacifidlog thumb_func_start TilesetCB_Sootopolis TilesetCB_Sootopolis: @ 807330C ldr r1, _08073324 movs r0, 0 strh r0, [r1] ldr r1, _08073328 ldr r0, _0807332C ldrh r0, [r0] strh r0, [r1] ldr r1, _08073330 movs r0, 0 str r0, [r1] bx lr .align 2, 0 _08073324: .4byte 0x030006c6 _08073328: .4byte 0x030006c8 _0807332C: .4byte 0x030006c4 _08073330: .4byte 0x030006d0 thumb_func_end TilesetCB_Sootopolis thumb_func_start TilesetCB_Underwater TilesetCB_Underwater: @ 8073334 ldr r1, _08073348 movs r0, 0 strh r0, [r1] ldr r1, _0807334C movs r0, 0x80 strh r0, [r1] ldr r1, _08073350 ldr r0, _08073354 str r0, [r1] bx lr .align 2, 0 _08073348: .4byte 0x030006c6 _0807334C: .4byte 0x030006c8 _08073350: .4byte 0x030006d0 _08073354: .4byte sub_80735E4 thumb_func_end TilesetCB_Underwater thumb_func_start TilesetCB_SootopolisGym TilesetCB_SootopolisGym: @ 8073358 ldr r1, _0807336C movs r0, 0 strh r0, [r1] ldr r1, _08073370 movs r0, 0xF0 strh r0, [r1] ldr r1, _08073374 ldr r0, _08073378 str r0, [r1] bx lr .align 2, 0 _0807336C: .4byte 0x030006c6 _08073370: .4byte 0x030006c8 _08073374: .4byte 0x030006d0 _08073378: .4byte sub_80738A8 thumb_func_end TilesetCB_SootopolisGym thumb_func_start TilesetCB_Cave TilesetCB_Cave: @ 807337C ldr r1, _08073394 movs r0, 0 strh r0, [r1] ldr r1, _08073398 ldr r0, _0807339C ldrh r0, [r0] strh r0, [r1] ldr r1, _080733A0 ldr r0, _080733A4 str r0, [r1] bx lr .align 2, 0 _08073394: .4byte 0x030006c6 _08073398: .4byte 0x030006c8 _0807339C: .4byte 0x030006c4 _080733A0: .4byte 0x030006d0 _080733A4: .4byte sub_8073600 thumb_func_end TilesetCB_Cave thumb_func_start TilesetCB_EliteFour TilesetCB_EliteFour: @ 80733A8 ldr r1, _080733BC movs r0, 0 strh r0, [r1] ldr r1, _080733C0 movs r0, 0x80 strh r0, [r1] ldr r1, _080733C4 ldr r0, _080733C8 str r0, [r1] bx lr .align 2, 0 _080733BC: .4byte 0x030006c6 _080733C0: .4byte 0x030006c8 _080733C4: .4byte 0x030006d0 _080733C8: .4byte sub_80738C0 thumb_func_end TilesetCB_EliteFour thumb_func_start TilesetCB_MauvilleGym TilesetCB_MauvilleGym: @ 80733CC ldr r1, _080733E4 movs r0, 0 strh r0, [r1] ldr r1, _080733E8 ldr r0, _080733EC ldrh r0, [r0] strh r0, [r1] ldr r1, _080733F0 ldr r0, _080733F4 str r0, [r1] bx lr .align 2, 0 _080733E4: .4byte 0x030006c6 _080733E8: .4byte 0x030006c8 _080733EC: .4byte 0x030006c4 _080733F0: .4byte 0x030006d0 _080733F4: .4byte sub_8073890 thumb_func_end TilesetCB_MauvilleGym thumb_func_start TilesetCB_BikeShop TilesetCB_BikeShop: @ 80733F8 ldr r1, _08073410 movs r0, 0 strh r0, [r1] ldr r1, _08073414 ldr r0, _08073418 ldrh r0, [r0] strh r0, [r1] ldr r1, _0807341C ldr r0, _08073420 str r0, [r1] bx lr .align 2, 0 _08073410: .4byte 0x030006c6 _08073414: .4byte 0x030006c8 _08073418: .4byte 0x030006c4 _0807341C: .4byte 0x030006d0 _08073420: .4byte sub_80738EC thumb_func_end TilesetCB_BikeShop thumb_func_start sub_8073424 sub_8073424: @ 8073424 push {r4-r6,lr} lsls r5, r0, 16 movs r0, 0xE0 lsls r0, 11 ands r0, r5 lsrs r6, r0, 16 cmp r6, 0 bne _08073444 lsrs r4, r5, 19 adds r0, r4, 0 movs r1, 0 bl sub_80737A4 adds r0, r4, 0 bl sub_80737E0 _08073444: cmp r6, 0x1 bne _08073450 lsrs r0, r5, 19 movs r1, 0x1 bl sub_80737A4 _08073450: cmp r6, 0x2 bne _0807345C lsrs r0, r5, 19 movs r1, 0x2 bl sub_80737A4 _0807345C: cmp r6, 0x3 bne _08073468 lsrs r0, r5, 19 movs r1, 0x3 bl sub_80737A4 _08073468: cmp r6, 0x4 bne _08073474 lsrs r0, r5, 19 movs r1, 0x4 bl sub_80737A4 _08073474: cmp r6, 0x5 bne _08073480 lsrs r0, r5, 19 movs r1, 0x5 bl sub_80737A4 _08073480: cmp r6, 0x6 bne _0807348C lsrs r0, r5, 19 movs r1, 0x6 bl sub_80737A4 _0807348C: cmp r6, 0x7 bne _08073498 lsrs r0, r5, 19 movs r1, 0x7 bl sub_80737A4 _08073498: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8073424 thumb_func_start sub_80734A0 sub_80734A0: @ 80734A0 push {r4,r5,lr} lsls r4, r0, 16 movs r0, 0xE0 lsls r0, 11 ands r0, r4 lsrs r5, r0, 16 cmp r5, 0 bne _080734B8 lsrs r0, r4, 19 movs r1, 0 bl sub_8073704 _080734B8: cmp r5, 0x1 bne _080734C4 lsrs r0, r4, 19 movs r1, 0x1 bl sub_8073704 _080734C4: cmp r5, 0x2 bne _080734D0 lsrs r0, r4, 19 movs r1, 0x2 bl sub_8073704 _080734D0: cmp r5, 0x3 bne _080734DC lsrs r0, r4, 19 movs r1, 0x3 bl sub_8073704 _080734DC: cmp r5, 0x4 bne _080734E8 lsrs r0, r4, 19 movs r1, 0x4 bl sub_8073704 _080734E8: cmp r5, 0x5 bne _080734F4 lsrs r0, r4, 19 movs r1, 0x5 bl sub_8073704 _080734F4: cmp r5, 0x6 bne _08073500 lsrs r0, r4, 19 movs r1, 0x6 bl sub_8073704 _08073500: cmp r5, 0x7 bne _0807350C lsrs r0, r4, 19 movs r1, 0x7 bl sub_8073704 _0807350C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80734A0 thumb_func_start sub_8073514 sub_8073514: @ 8073514 push {r4,r5,lr} lsls r4, r0, 16 movs r0, 0xF0 lsls r0, 12 ands r0, r4 lsrs r5, r0, 16 cmp r5, 0 bne _0807352E lsrs r0, r4, 20 lsls r0, 24 lsrs r0, 24 bl sub_8073644 _0807352E: cmp r5, 0x1 bne _08073538 lsrs r0, r4, 20 bl sub_8073808 _08073538: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8073514 thumb_func_start sub_8073540 sub_8073540: @ 8073540 push {r4,r5,lr} lsls r4, r0, 16 movs r0, 0xE0 lsls r0, 11 ands r0, r4 lsrs r5, r0, 16 cmp r5, 0 bne _08073558 lsrs r0, r4, 19 movs r1, 0 bl sub_8073830 _08073558: cmp r5, 0x1 bne _08073564 lsrs r0, r4, 19 movs r1, 0x1 bl sub_8073830 _08073564: cmp r5, 0x2 bne _08073570 lsrs r0, r4, 19 movs r1, 0x2 bl sub_8073830 _08073570: cmp r5, 0x3 bne _0807357C lsrs r0, r4, 19 movs r1, 0x3 bl sub_8073830 _0807357C: cmp r5, 0x4 bne _08073588 lsrs r0, r4, 19 movs r1, 0x4 bl sub_8073830 _08073588: cmp r5, 0x5 bne _08073594 lsrs r0, r4, 19 movs r1, 0x5 bl sub_8073830 _08073594: cmp r5, 0x6 bne _080735A0 lsrs r0, r4, 19 movs r1, 0x6 bl sub_8073830 _080735A0: cmp r5, 0x7 bne _080735AC lsrs r0, r4, 19 movs r1, 0x7 bl sub_8073830 _080735AC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8073540 thumb_func_start sub_80735B4 sub_80735B4: @ 80735B4 push {r4,r5,lr} lsls r4, r0, 16 movs r0, 0xF0 lsls r0, 12 ands r0, r4 lsrs r5, r0, 16 cmp r5, 0 bne _080735CE lsrs r0, r4, 20 lsls r0, 24 lsrs r0, 24 bl sub_807368C _080735CE: cmp r5, 0x1 bne _080735DC lsrs r0, r4, 20 lsls r0, 24 lsrs r0, 24 bl sub_80736DC _080735DC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80735B4 thumb_func_start sub_80735E4 sub_80735E4: @ 80735E4 push {lr} lsls r1, r0, 16 movs r0, 0xF0 lsls r0, 12 ands r0, r1 cmp r0, 0 bne _080735FC lsrs r0, r1, 20 lsls r0, 24 lsrs r0, 24 bl sub_80736B4 _080735FC: pop {r0} bx r0 thumb_func_end sub_80735E4 thumb_func_start sub_8073600 sub_8073600: @ 8073600 push {lr} lsls r1, r0, 16 movs r0, 0xF0 lsls r0, 12 ands r0, r1 lsrs r0, 16 cmp r0, 0x1 bne _08073616 lsrs r0, r1, 20 bl sub_8073868 _08073616: pop {r0} bx r0 thumb_func_end sub_8073600 thumb_func_start sub_807361C sub_807361C: @ 807361C push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _0807363C lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _08073640 movs r2, 0xA0 lsls r2, 1 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _0807363C: .4byte gTilesetAnimTable_General_4 _08073640: .4byte 0x06003c00 thumb_func_end sub_807361C thumb_func_start sub_8073644 sub_8073644: @ 8073644 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 ands r0, r4 ldr r5, _08073680 lsls r0, 2 adds r0, r5 ldr r0, [r0] ldr r1, _08073684 movs r2, 0x80 bl sub_8072E24 adds r1, r4, 0x2 adds r0, r1, 0 asrs r0, 2 lsls r0, 2 subs r0, r1, r0 lsls r0, 24 lsrs r0, 22 adds r0, r5 ldr r0, [r0] ldr r1, _08073688 movs r2, 0x80 bl sub_8072E24 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08073680: .4byte gTilesetAnimTable_Lavaridge _08073684: .4byte 0x06006400 _08073688: .4byte 0x06006480 thumb_func_end sub_8073644 thumb_func_start sub_807368C sub_807368C: @ 807368C push {lr} lsls r0, 24 movs r1, 0xC0 lsls r1, 18 ands r1, r0 ldr r0, _080736AC lsrs r1, 22 adds r1, r0 ldr r0, [r1] ldr r1, _080736B0 movs r2, 0xF0 lsls r2, 2 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080736AC: .4byte gTilesetAnimTable_Pacifidlog_0 _080736B0: .4byte 0x06007a00 thumb_func_end sub_807368C thumb_func_start sub_80736B4 sub_80736B4: @ 80736B4 push {lr} lsls r0, 24 movs r1, 0xC0 lsls r1, 18 ands r1, r0 ldr r0, _080736D4 lsrs r1, 22 adds r1, r0 ldr r0, [r1] ldr r1, _080736D8 movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080736D4: .4byte gTilesetAnimTable_Underwater _080736D8: .4byte 0x06007e00 thumb_func_end sub_80736B4 thumb_func_start sub_80736DC sub_80736DC: @ 80736DC push {lr} lsls r0, 24 movs r1, 0xE0 lsls r1, 19 ands r1, r0 ldr r0, _080736FC lsrs r1, 22 adds r1, r0 ldr r0, [r1] ldr r1, _08073700 movs r2, 0x80 lsls r2, 1 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080736FC: .4byte gTilesetAnimTable_Pacifidlog_1 _08073700: .4byte 0x06007e00 thumb_func_end sub_80736DC thumb_func_start sub_8073704 sub_8073704: @ 8073704 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r6, r1, 24 subs r0, r5, r6 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0xB bhi _08073760 adds r0, r5, 0 movs r1, 0xC bl __umodsi3 adds r4, r0, 0 lsls r4, 16 ldr r0, _08073750 lsrs r4, 14 adds r0, r4, r0 ldr r0, [r0] ldr r1, _08073754 lsls r5, r6, 2 adds r1, r5, r1 ldr r1, [r1] movs r2, 0x80 bl sub_8072E24 ldr r0, _08073758 adds r4, r0 ldr r0, [r4] ldr r1, _0807375C adds r5, r1 ldr r1, [r5] movs r2, 0x80 bl sub_8072E24 b _0807378C .align 2, 0 _08073750: .4byte gTilesetAnimTable_Mauville_0A _08073754: .4byte gUnknown_0837BAE4 _08073758: .4byte gTilesetAnimTable_Mauville_1A _0807375C: .4byte gUnknown_0837BB04 _08073760: movs r0, 0x3 ands r5, r0 ldr r0, _08073794 lsls r5, 2 adds r0, r5, r0 ldr r0, [r0] ldr r1, _08073798 lsls r4, r6, 2 adds r1, r4, r1 ldr r1, [r1] movs r2, 0x80 bl sub_8072E24 ldr r0, _0807379C adds r5, r0 ldr r0, [r5] ldr r1, _080737A0 adds r4, r1 ldr r1, [r4] movs r2, 0x80 bl sub_8072E24 _0807378C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08073794: .4byte gTilesetAnimTable_Mauville_0B _08073798: .4byte gUnknown_0837BAE4 _0807379C: .4byte gTilesetAnimTable_Mauville_1B _080737A0: .4byte gUnknown_0837BB04 thumb_func_end sub_8073704 thumb_func_start sub_80737A4 sub_80737A4: @ 80737A4 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r3, r1, 24 subs r0, r3 lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 ldr r0, _080737D8 lsrs r1, 14 adds r1, r0 ldr r2, [r1] cmp r2, 0 beq _080737D4 ldr r0, _080737DC lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 movs r2, 0x80 bl sub_8072E24 _080737D4: pop {r0} bx r0 .align 2, 0 _080737D8: .4byte gTilesetAnimTable_Rustboro_0 _080737DC: .4byte gUnknown_0837BFA4 thumb_func_end sub_80737A4 thumb_func_start sub_80737E0 sub_80737E0: @ 80737E0 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 ldr r1, _08073800 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08073804 movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073800: .4byte gTilesetAnimTable_Rustboro_1 _08073804: .4byte 0x06007800 thumb_func_end sub_80737E0 thumb_func_start sub_8073808 sub_8073808: @ 8073808 push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _08073828 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _0807382C movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073828: .4byte gTilesetAnimTable_Cave _0807382C: .4byte 0x06005400 thumb_func_end sub_8073808 thumb_func_start sub_8073830 sub_8073830: @ 8073830 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 subs r0, r1 lsls r0, 16 movs r2, 0xE0 lsls r2, 11 ands r2, r0 ldr r0, _08073860 lsrs r2, 14 adds r2, r0 ldr r0, [r2] ldr r2, _08073864 lsls r1, 2 adds r1, r2 ldr r1, [r1] movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073860: .4byte gTilesetAnimTable_EverGrande _08073864: .4byte gUnknown_0837C93C thumb_func_end sub_8073830 thumb_func_start sub_8073868 sub_8073868: @ 8073868 push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _08073888 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _0807388C movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073888: .4byte gTilesetAnimTable_Cave _0807388C: .4byte 0x06007400 thumb_func_end sub_8073868 thumb_func_start sub_8073890 sub_8073890: @ 8073890 push {lr} lsls r2, r0, 16 lsrs r0, r2, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _080738A4 lsrs r0, r2, 17 bl sub_80739C4 _080738A4: pop {r0} bx r0 thumb_func_end sub_8073890 thumb_func_start sub_80738A8 sub_80738A8: @ 80738A8 push {lr} lsls r1, r0, 16 movs r0, 0xE0 lsls r0, 11 ands r0, r1 cmp r0, 0 bne _080738BC lsrs r0, r1, 19 bl sub_807392C _080738BC: pop {r0} bx r0 thumb_func_end sub_80738A8 thumb_func_start sub_80738C0 sub_80738C0: @ 80738C0 push {r4,r5,lr} lsls r4, r0, 16 lsrs r0, r4, 16 adds r5, r0, 0 movs r0, 0x3F ands r0, r5 cmp r0, 0 bne _080738D6 lsrs r0, r4, 22 bl sub_807399C _080738D6: movs r0, 0x7 ands r0, r5 cmp r0, 0x1 bne _080738E4 lsrs r0, r4, 19 bl sub_8073974 _080738E4: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80738C0 thumb_func_start sub_80738EC sub_80738EC: @ 80738EC push {lr} lsls r1, r0, 16 movs r0, 0xC0 lsls r0, 10 ands r0, r1 cmp r0, 0 bne _08073900 lsrs r0, r1, 18 bl sub_80739EC _08073900: pop {r0} bx r0 thumb_func_end sub_80738EC thumb_func_start sub_8073904 sub_8073904: @ 8073904 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 ldr r1, _08073924 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08073928 movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073924: .4byte gTilesetAnimTable_Building _08073928: .4byte 0x06003e00 thumb_func_end sub_8073904 thumb_func_start sub_807392C sub_807392C: @ 807392C push {r4,lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 ldr r0, _08073964 lsrs r4, 14 adds r0, r4, r0 ldr r0, [r0] ldr r1, _08073968 movs r2, 0xC0 lsls r2, 1 bl sub_8072E24 ldr r0, _0807396C adds r4, r0 ldr r0, [r4] ldr r1, _08073970 movs r2, 0xA0 lsls r2, 2 bl sub_8072E24 pop {r4} pop {r0} bx r0 .align 2, 0 _08073964: .4byte gTilesetAnimTable_SootopolisGym_0 _08073968: .4byte 0x06007e00 _0807396C: .4byte gTilesetAnimTable_SootopolisGym_1 _08073970: .4byte 0x06007a00 thumb_func_end sub_807392C thumb_func_start sub_8073974 sub_8073974: @ 8073974 push {lr} lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 ldr r0, _08073994 lsrs r1, 14 adds r1, r0 ldr r0, [r1] ldr r1, _08073998 movs r2, 0x20 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073994: .4byte gTilesetAnimTable_EliteFour_0 _08073998: .4byte 0x06007f00 thumb_func_end sub_8073974 thumb_func_start sub_807399C sub_807399C: @ 807399C push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 ldr r1, _080739BC lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080739C0 movs r2, 0x80 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080739BC: .4byte gTilesetAnimTable_EliteFour_1 _080739C0: .4byte 0x06007c00 thumb_func_end sub_807399C thumb_func_start sub_80739C4 sub_80739C4: @ 80739C4 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 ldr r1, _080739E4 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _080739E8 movs r2, 0x80 lsls r2, 2 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _080739E4: .4byte gTilesetAnimTable_MauvilleGym _080739E8: .4byte 0x06005200 thumb_func_end sub_80739C4 thumb_func_start sub_80739EC sub_80739EC: @ 80739EC push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 ldr r1, _08073A0C lsls r0, 2 adds r0, r1 ldr r0, [r0] ldr r1, _08073A10 movs r2, 0x90 lsls r2, 1 bl sub_8072E24 pop {r0} bx r0 .align 2, 0 _08073A0C: .4byte gTilesetAnimTable_BikeShop _08073A10: .4byte 0x06007e00 thumb_func_end sub_80739EC