pokeruby/asm/rom4.s
YamaArashi 1ff540a332 Merge
2016-08-13 10:52:54 -07:00

71302 lines
1.1 MiB

.include "constants/gba_constants.s"
.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 gSaveBlock2
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 gSaveBlock2
_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 gSaveBlock2
_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 REG_MOSAIC
_08054D0C: .4byte REG_WININ
_08054D10: .4byte 0x00001f1f
_08054D14: .4byte 0x00000101
_08054D18: .4byte REG_WIN0H
_08054D1C: .4byte 0x0000ffff
_08054D20: .4byte REG_BLDCNT
_08054D24: .4byte gUnknown_081E29E0
_08054D28: .4byte REG_BLDALPHA
_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 gSaveBlock2
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 @ Is player landing after jumping?
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] @ Load metatile behavior
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 gJumpLanding_MetatileFunctionPointers
_08063A2C: .4byte gJumpLanding_Bitmasks
_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 gFieldObjectPriorities_08376070
_08063D10: .4byte gFieldObjectPriorities_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 gFieldObjectPriorities_08376070
_08063D5C: .4byte gFieldObjectPriorities_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 gFieldObjectPriorities_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 gSandFootprints_FieldEffectData
_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 gBikeTireTracks_Transitions
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 gSaveBlock2
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 gSaveBlock2
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 s77_showcontestwinner
s77_showcontestwinner: @ 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 s77_showcontestwinner
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 gSaveBlock2
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 gSaveBlock2
_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 gSaveBlock2
_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 gSaveBlock2
_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 gSaveBlock2
_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 gSaveBlock2
_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 gSaveBlock2
_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 gSaveBlock2
_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 REG_BLDCNT
_0806B520: .4byte REG_BG3VOFS
_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 gStatusGfx_Icons
_0806D7F0: .4byte 0x06007180
_0806D7F4: .4byte gStatusPal_Icons
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