pokefirered/asm/overworld.s
2019-08-24 09:37:41 +08:00

8011 lines
141 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8054BC8
sub_8054BC8: @ 8054BC8
push {r4,lr}
ldr r0, _08054BFC @ =gUnknown_81A654B
bl ScriptContext2_RunNewScript
ldr r0, _08054C00 @ =gSaveBlock1Ptr
ldr r4, [r0]
movs r0, 0xA4
lsls r0, 2
adds r4, r0
bl sub_8054C04
adds r1, r0, 0
adds r0, r4, 0
bl RemoveMoney
bl sp000_heal_pokemon
bl sub_8054DD8
bl sub_80554BC
bl WarpIntoMap
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08054BFC: .4byte gUnknown_81A654B
_08054C00: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054BC8
thumb_func_start sub_8054C04
sub_8054C04: @ 8054C04
push {r4,lr}
bl sub_8054C70
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl GetPlayerPartyHighestLevel
lsls r0, 24
lsrs r0, 24
ldr r1, _08054C40 @ =gUnknown_826D294
adds r4, r1
ldrb r1, [r4]
lsls r1, 2
adds r4, r0, 0
muls r4, r1
ldr r0, _08054C44 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
adds r0, r1
bl GetMoney
cmp r4, r0
bls _08054C38
adds r4, r0, 0
_08054C38:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08054C40: .4byte gUnknown_826D294
_08054C44: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054C04
thumb_func_start sub_8054C48
sub_8054C48: @ 8054C48
push {r4,r5,lr}
bl sub_8054C04
adds r4, r0, 0
ldr r5, _08054C6C @ =gStringVar1
bl CountDigits
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0
bl ConvertIntToDecimalStringN
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08054C6C: .4byte gStringVar1
thumb_func_end sub_8054C48
thumb_func_start sub_8054C70
sub_8054C70: @ 8054C70
push {r4-r6,lr}
movs r6, 0
movs r5, 0
ldr r4, _08054C9C @ =gUnknown_826D29E
_08054C78:
ldrh r0, [r4]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _08054C8A
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_08054C8A:
adds r4, 0x2
adds r5, 0x1
cmp r5, 0x7
bls _08054C78
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08054C9C: .4byte gUnknown_826D29E
thumb_func_end sub_8054C70
thumb_func_start sub_8054CA0
sub_8054CA0: @ 8054CA0
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
ldr r0, _08054CEC @ =0x0000405e
movs r1, 0
bl VarSet
ldr r0, _08054CF0 @ =0x00000802
bl FlagClear
movs r0, 0x80
lsls r0, 4
bl FlagClear
ldr r0, _08054CF4 @ =0x0000406e
movs r1, 0
bl VarSet
ldr r0, _08054CF8 @ =0x00000805
bl FlagClear
ldr r0, _08054CFC @ =0x00000806
bl FlagClear
ldr r0, _08054D00 @ =0x00000808
bl FlagClear
ldr r0, _08054D04 @ =0x0000404d
movs r1, 0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_08054CEC: .4byte 0x0000405e
_08054CF0: .4byte 0x00000802
_08054CF4: .4byte 0x0000406e
_08054CF8: .4byte 0x00000805
_08054CFC: .4byte 0x00000806
_08054D00: .4byte 0x00000808
_08054D04: .4byte 0x0000404d
thumb_func_end sub_8054CA0
thumb_func_start Overworld_ResetStateAfterTeleport
Overworld_ResetStateAfterTeleport: @ 8054D08
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
ldr r0, _08054D54 @ =0x0000405e
movs r1, 0
bl VarSet
ldr r0, _08054D58 @ =0x00000802
bl FlagClear
movs r0, 0x80
lsls r0, 4
bl FlagClear
ldr r0, _08054D5C @ =0x0000406e
movs r1, 0
bl VarSet
ldr r0, _08054D60 @ =0x00000805
bl FlagClear
ldr r0, _08054D64 @ =0x00000806
bl FlagClear
ldr r0, _08054D68 @ =0x00000808
bl FlagClear
ldr r0, _08054D6C @ =0x0000404d
movs r1, 0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_08054D54: .4byte 0x0000405e
_08054D58: .4byte 0x00000802
_08054D5C: .4byte 0x0000406e
_08054D60: .4byte 0x00000805
_08054D64: .4byte 0x00000806
_08054D68: .4byte 0x00000808
_08054D6C: .4byte 0x0000404d
thumb_func_end Overworld_ResetStateAfterTeleport
thumb_func_start Overworld_ResetStateAfterDigEscRope
Overworld_ResetStateAfterDigEscRope: @ 8054D70
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
ldr r0, _08054DBC @ =0x0000405e
movs r1, 0
bl VarSet
ldr r0, _08054DC0 @ =0x00000802
bl FlagClear
movs r0, 0x80
lsls r0, 4
bl FlagClear
ldr r0, _08054DC4 @ =0x0000406e
movs r1, 0
bl VarSet
ldr r0, _08054DC8 @ =0x00000805
bl FlagClear
ldr r0, _08054DCC @ =0x00000806
bl FlagClear
ldr r0, _08054DD0 @ =0x00000808
bl FlagClear
ldr r0, _08054DD4 @ =0x0000404d
movs r1, 0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_08054DBC: .4byte 0x0000405e
_08054DC0: .4byte 0x00000802
_08054DC4: .4byte 0x0000406e
_08054DC8: .4byte 0x00000805
_08054DCC: .4byte 0x00000806
_08054DD0: .4byte 0x00000808
_08054DD4: .4byte 0x0000404d
thumb_func_end Overworld_ResetStateAfterDigEscRope
thumb_func_start sub_8054DD8
sub_8054DD8: @ 8054DD8
push {lr}
bl ResetInitialPlayerAvatarState
movs r0, 0x83
lsls r0, 4
bl FlagClear
ldr r0, _08054E24 @ =0x0000405e
movs r1, 0
bl VarSet
ldr r0, _08054E28 @ =0x00000802
bl FlagClear
movs r0, 0x80
lsls r0, 4
bl FlagClear
ldr r0, _08054E2C @ =0x0000406e
movs r1, 0
bl VarSet
ldr r0, _08054E30 @ =0x00000805
bl FlagClear
ldr r0, _08054E34 @ =0x00000806
bl FlagClear
ldr r0, _08054E38 @ =0x00000808
bl FlagClear
ldr r0, _08054E3C @ =0x0000404d
movs r1, 0
bl VarSet
pop {r0}
bx r0
.align 2, 0
_08054E24: .4byte 0x0000405e
_08054E28: .4byte 0x00000802
_08054E2C: .4byte 0x0000406e
_08054E30: .4byte 0x00000805
_08054E34: .4byte 0x00000806
_08054E38: .4byte 0x00000808
_08054E3C: .4byte 0x0000404d
thumb_func_end sub_8054DD8
thumb_func_start sub_8054E40
sub_8054E40: @ 8054E40
push {lr}
movs r0, 0x80
lsls r0, 4
bl FlagClear
ldr r0, _08054E64 @ =0x0000406e
movs r1, 0
bl VarSet
bl sub_805610C
bl UpdateLocationHistoryForRoamer
bl RoamerMoveToOtherLocationSet
pop {r0}
bx r0
.align 2, 0
_08054E64: .4byte 0x0000406e
thumb_func_end sub_8054E40
thumb_func_start sub_8054E68
sub_8054E68: @ 8054E68
push {r4,r5,lr}
movs r2, 0
ldr r5, _08054E8C @ =gSaveBlock1Ptr
movs r4, 0x90
lsls r4, 5
movs r3, 0
_08054E74:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r4
adds r0, r1
str r3, [r0]
adds r2, 0x1
cmp r2, 0x3F
ble _08054E74
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08054E8C: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054E68
thumb_func_start IncrementGameStat
IncrementGameStat: @ 8054E90
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x33
bhi _08054EB8
adds r0, r4, 0
bl GetGameStat
adds r1, r0, 0
ldr r0, _08054EAC @ =0x00fffffe
cmp r1, r0
bhi _08054EB0
adds r1, 0x1
b _08054EB2
.align 2, 0
_08054EAC: .4byte 0x00fffffe
_08054EB0:
ldr r1, _08054EC0 @ =0x00ffffff
_08054EB2:
adds r0, r4, 0
bl SetGameStat
_08054EB8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08054EC0: .4byte 0x00ffffff
thumb_func_end IncrementGameStat
thumb_func_start GetGameStat
GetGameStat: @ 8054EC4
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x33
bhi _08054EF8
ldr r0, _08054EF0 @ =gSaveBlock1Ptr
ldr r2, [r0]
lsls r0, r1, 2
movs r1, 0x90
lsls r1, 5
adds r2, r1
adds r2, r0
ldr r0, _08054EF4 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0xF2
lsls r0, 4
adds r1, r0
ldr r0, [r2]
ldr r1, [r1]
eors r0, r1
b _08054EFA
.align 2, 0
_08054EF0: .4byte gSaveBlock1Ptr
_08054EF4: .4byte gSaveBlock2Ptr
_08054EF8:
movs r0, 0
_08054EFA:
pop {r1}
bx r1
thumb_func_end GetGameStat
thumb_func_start SetGameStat
SetGameStat: @ 8054F00
push {lr}
adds r3, r1, 0
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x33
bhi _08054F2A
ldr r0, _08054F30 @ =gSaveBlock1Ptr
ldr r1, [r0]
lsls r0, r2, 2
movs r2, 0x90
lsls r2, 5
adds r1, r2
adds r1, r0
ldr r0, _08054F34 @ =gSaveBlock2Ptr
ldr r0, [r0]
movs r2, 0xF2
lsls r2, 4
adds r0, r2
ldr r0, [r0]
eors r0, r3
str r0, [r1]
_08054F2A:
pop {r0}
bx r0
.align 2, 0
_08054F30: .4byte gSaveBlock1Ptr
_08054F34: .4byte gSaveBlock2Ptr
thumb_func_end SetGameStat
thumb_func_start sub_8054F38
sub_8054F38: @ 8054F38
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
ldr r6, _08054F64 @ =gSaveBlock1Ptr
_08054F40:
lsls r1, r4, 2
movs r0, 0x90
lsls r0, 5
adds r1, r0
ldr r0, [r6]
adds r0, r1
adds r1, r5, 0
bl ApplyNewEncryptionKeyToWord
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3F
bls _08054F40
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08054F64: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054F38
thumb_func_start sub_8054F68
sub_8054F68: @ 8054F68
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
movs r0, 0
mov r9, r0
mov r8, r0
ldr r1, _08055040 @ =gMapHeader
ldr r0, [r1, 0x4]
ldrb r0, [r0]
cmp r9, r0
bcc _08054F86
b _08055092
_08054F86:
ldr r2, _08055044 @ =gSaveBlock1Ptr
mov r10, r2
_08054F8A:
ldr r3, _08055040 @ =gMapHeader
ldr r0, [r3, 0x4]
ldr r1, [r0, 0x4]
mov r4, r9
lsls r0, r4, 1
add r0, r9
lsls r7, r0, 3
adds r2, r7, r1
ldrb r0, [r2, 0x2]
cmp r0, 0xFF
bne _08055054
ldrb r4, [r2, 0x8]
ldrb r5, [r2, 0xC]
str r5, [sp]
ldrb r2, [r2, 0xE]
str r2, [sp, 0x4]
adds r0, r2, 0
adds r1, r5, 0
bl get_mapheader_by_bank_and_number
mov r6, r10
ldr r1, [r6]
mov r2, r8
lsls r3, r2, 1
add r3, r8
lsls r3, 3
adds r1, r3
ldr r0, [r0, 0x4]
ldr r2, [r0, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 3
adds r0, r2
movs r5, 0x8E
lsls r5, 4
adds r1, r5
subs r0, 0x18
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
mov r6, r10
ldr r1, [r6]
adds r1, r3
ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrb r0, [r0]
movs r5, 0x8E
lsls r5, 4
adds r1, r5
strb r0, [r1]
ldr r1, [r6]
adds r1, r3
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrh r2, [r0, 0x4]
ldr r6, _08055048 @ =0x000008e4
adds r0, r1, r6
strh r2, [r0]
ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
ldrh r2, [r0, 0x6]
adds r5, 0x6
adds r0, r1, r5
strh r2, [r0]
adds r6, 0x4
adds r1, r6
strb r4, [r1]
mov r1, r10
ldr r0, [r1]
adds r0, r3
ldr r2, _0805504C @ =0x000008ec
adds r1, r0, r2
mov r3, sp
ldrh r3, [r3]
strh r3, [r1]
ldr r4, _08055050 @ =0x000008ee
adds r1, r0, r4
mov r5, sp
ldrh r5, [r5, 0x4]
strh r5, [r1]
subs r6, 0x6
adds r0, r6
movs r1, 0xFF
strb r1, [r0]
b _08055072
.align 2, 0
_08055040: .4byte gMapHeader
_08055044: .4byte gSaveBlock1Ptr
_08055048: .4byte 0x000008e4
_0805504C: .4byte 0x000008ec
_08055050: .4byte 0x000008ee
_08055054:
mov r0, r10
ldr r1, [r0]
mov r3, r8
lsls r0, r3, 1
add r0, r8
lsls r0, 3
adds r1, r0
movs r4, 0x8E
lsls r4, 4
adds r1, r4
adds r0, r2, 0
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
_08055072:
mov r0, r8
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r8, r0
mov r0, r9
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r6, _080550A4 @ =gMapHeader
ldr r0, [r6, 0x4]
ldrb r0, [r0]
cmp r9, r0
bcs _08055092
b _08054F8A
_08055092:
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
_080550A4: .4byte gMapHeader
thumb_func_end sub_8054F68
thumb_func_start sub_80550A8
sub_80550A8: @ 80550A8
push {lr}
ldr r0, _080550D0 @ =gMapHeader
ldr r1, [r0, 0x4]
ldr r0, _080550D4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, [r1, 0x4]
movs r3, 0x8E
lsls r3, 4
adds r1, r0, r3
movs r3, 0x3F
_080550BC:
ldr r0, [r2, 0x10]
str r0, [r1, 0x10]
adds r2, 0x18
adds r1, 0x18
subs r3, 0x1
cmp r3, 0
bge _080550BC
pop {r0}
bx r0
.align 2, 0
_080550D0: .4byte gMapHeader
_080550D4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80550A8
thumb_func_start Overworld_SetMapObjTemplateCoords
Overworld_SetMapObjTemplateCoords: @ 80550D8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 16
lsrs r2, 16
ldr r0, _08055100 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0
movs r6, 0x8E
lsls r6, 4
adds r3, r0, r6
_080550F2:
ldrb r0, [r3]
cmp r0, r5
bne _08055104
strh r4, [r3, 0x4]
strh r2, [r3, 0x6]
b _0805510C
.align 2, 0
_08055100: .4byte gSaveBlock1Ptr
_08055104:
adds r3, 0x18
adds r1, 0x1
cmp r1, 0x3F
ble _080550F2
_0805510C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end Overworld_SetMapObjTemplateCoords
thumb_func_start Overworld_SetMapObjTemplateMovementType
Overworld_SetMapObjTemplateMovementType: @ 8055114
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r1, 24
ldr r0, _08055134 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r3, 0
movs r5, 0x8E
lsls r5, 4
adds r2, r0, r5
_0805512A:
ldrb r0, [r2]
cmp r0, r4
bne _08055138
strb r1, [r2, 0x9]
b _08055140
.align 2, 0
_08055134: .4byte gSaveBlock1Ptr
_08055138:
adds r2, 0x18
adds r3, 0x1
cmp r3, 0x3F
ble _0805512A
_08055140:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end Overworld_SetMapObjTemplateMovementType
thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw
mapdata_load_assets_to_gpu_and_full_redraw: @ 8055148
push {r4,lr}
bl move_tilemap_camera_to_upper_left_corner
ldr r4, _0805516C @ =gMapHeader
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
_0805516C: .4byte gMapHeader
thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw
thumb_func_start get_mapdata_header
get_mapdata_header: @ 8055170
push {lr}
ldr r0, _08055180 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x32]
cmp r1, 0
bne _08055184
movs r0, 0
b _0805518E
.align 2, 0
_08055180: .4byte gSaveBlock1Ptr
_08055184:
ldr r0, _08055194 @ =gMapLayouts
subs r1, 0x1
lsls r1, 2
adds r1, r0
ldr r0, [r1]
_0805518E:
pop {r1}
bx r1
.align 2, 0
_08055194: .4byte gMapLayouts
thumb_func_end get_mapdata_header
thumb_func_start warp_shift
warp_shift: @ 8055198
ldr r3, _080551C4 @ =gUnknown_2031DB4
ldr r0, _080551C8 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, [r2, 0x4]
ldr r1, [r2, 0x8]
str r0, [r3]
str r1, [r3, 0x4]
ldr r0, _080551CC @ =gUnknown_2031DBC
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2, 0x4]
str r1, [r2, 0x8]
ldr r2, _080551D0 @ =gUnknown_2031DC4
ldr r0, _080551D4 @ =gUnknown_826D2B0
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
ldr r2, _080551D8 @ =gUnknown_2031DCC
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080551C4: .4byte gUnknown_2031DB4
_080551C8: .4byte gSaveBlock1Ptr
_080551CC: .4byte gUnknown_2031DBC
_080551D0: .4byte gUnknown_2031DC4
_080551D4: .4byte gUnknown_826D2B0
_080551D8: .4byte gUnknown_2031DCC
thumb_func_end warp_shift
thumb_func_start warp_set
warp_set: @ 80551DC
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: @ 80551FC
push {lr}
adds r1, r0, 0
movs r2, 0
ldrsb r2, [r1, r2]
movs r0, 0x1
negs r0, r0
cmp r2, r0
bne _08055230
movs r0, 0x1
ldrsb r0, [r1, r0]
cmp r0, r2
bne _08055230
movs r2, 0x2
ldrsb r2, [r1, r2]
cmp r2, r0
bne _08055230
movs r0, 0x4
ldrsh r3, [r1, r0]
cmp r3, r2
bne _08055230
movs r2, 0x6
ldrsh r0, [r1, r2]
cmp r0, r3
bne _08055230
movs r0, 0x1
b _08055232
_08055230:
movs r0, 0
_08055232:
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: @ 8055238
lsls r0, 16
lsls r1, 16
ldr r2, _0805524C @ =gMapGroups
lsrs r0, 14
adds r0, r2
ldr r0, [r0]
lsrs r1, 14
adds r1, r0
ldr r0, [r1]
bx lr
.align 2, 0
_0805524C: .4byte gMapGroups
thumb_func_end get_mapheader_by_bank_and_number
thumb_func_start warp1_get_mapheader
warp1_get_mapheader: @ 8055250
push {lr}
ldr r1, _08055270 @ =gUnknown_2031DBC
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
_08055270: .4byte gUnknown_2031DBC
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: @ 8055274
push {r4-r6,lr}
ldr r4, _080552B4 @ =gMapHeader
ldr r5, _080552B8 @ =gSaveBlock1Ptr
ldr r1, [r5]
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,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldr r0, [r0]
str r0, [r1]
ldr r1, [r5]
ldrh r0, [r4, 0x12]
strh r0, [r1, 0x32]
bl get_mapdata_header
str r0, [r4]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080552B4: .4byte gMapHeader
_080552B8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1_save_old_name
thumb_func_start set_current_map_header_from_sav1
set_current_map_header_from_sav1: @ 80552BC
push {r4,r5,lr}
ldr r4, _080552F4 @ =gMapHeader
ldr r0, _080552F8 @ =gSaveBlock1Ptr
ldr r1, [r0]
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
_080552F4: .4byte gMapHeader
_080552F8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1
thumb_func_start update_camera_pos_from_warpid
update_camera_pos_from_warpid: @ 80552FC
push {r4,r5,lr}
ldr r0, _0805532C @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r1, 0x6
ldrsb r1, [r2, r1]
adds r4, r0, 0
cmp r1, 0
blt _08055334
ldr r3, _08055330 @ =gMapHeader
ldr r0, [r3, 0x4]
ldrb r5, [r0, 0x1]
cmp r1, r5
bge _08055334
ldr r0, [r0, 0x8]
lsls r1, 3
adds r0, r1, r0
ldrh r0, [r0]
strh r0, [r2]
ldr r0, [r3, 0x4]
ldr r0, [r0, 0x8]
adds r1, r0
ldrh r0, [r1, 0x2]
strh r0, [r2, 0x2]
b _0805536C
.align 2, 0
_0805532C: .4byte gSaveBlock1Ptr
_08055330: .4byte gMapHeader
_08055334:
ldr r1, [r4]
ldrh r3, [r1, 0x8]
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
blt _08055350
ldrh r2, [r1, 0xA]
movs r5, 0xA
ldrsh r0, [r1, r5]
cmp r0, 0
blt _08055350
strh r3, [r1]
strh r2, [r1, 0x2]
b _0805536C
_08055350:
ldr r3, [r4]
ldr r2, _08055374 @ =gMapHeader
ldr r0, [r2]
ldr r0, [r0]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r3]
ldr r0, [r2]
ldr r0, [r0, 0x4]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r3, 0x2]
_0805536C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08055374: .4byte gMapHeader
thumb_func_end update_camera_pos_from_warpid
thumb_func_start WarpIntoMap
WarpIntoMap: @ 8055378
push {lr}
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl update_camera_pos_from_warpid
pop {r0}
bx r0
thumb_func_end WarpIntoMap
thumb_func_start Overworld_SetWarpDestination
Overworld_SetWarpDestination: @ 805538C
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, _080553C4 @ =gUnknown_2031DBC
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
_080553C4: .4byte gUnknown_2031DBC
thumb_func_end Overworld_SetWarpDestination
thumb_func_start warp1_set_2
warp1_set_2: @ 80553C8
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 Overworld_SetWarpDestination
add sp, 0x4
pop {r0}
bx r0
thumb_func_end warp1_set_2
thumb_func_start saved_warp2_set
saved_warp2_set: @ 80553E8
push {r4,r5,lr}
sub sp, 0x8
ldr r0, _08055418 @ =gSaveBlock1Ptr
ldr r5, [r0]
adds r0, r5, 0
adds r0, 0x14
lsls r1, 24
asrs r1, 24
lsls r2, 24
asrs r2, 24
lsls r3, 24
asrs r3, 24
movs r4, 0
ldrsb r4, [r5, r4]
str r4, [sp]
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
_08055418: .4byte gSaveBlock1Ptr
thumb_func_end saved_warp2_set
thumb_func_start SetDynamicWarpWithCoords
SetDynamicWarpWithCoords: @ 805541C
push {r4,r5,lr}
sub sp, 0x8
ldr r4, [sp, 0x14]
ldr r5, [sp, 0x18]
ldr r0, _08055450 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x14
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
_08055450: .4byte gSaveBlock1Ptr
thumb_func_end SetDynamicWarpWithCoords
thumb_func_start copy_saved_warp2_bank_and_enter_x_to_warp1
copy_saved_warp2_bank_and_enter_x_to_warp1: @ 8055454
ldr r2, _08055464 @ =gUnknown_2031DBC
ldr r0, _08055468 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x18]
ldr r0, [r0, 0x14]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055464: .4byte gUnknown_2031DBC
_08055468: .4byte gSaveBlock1Ptr
thumb_func_end copy_saved_warp2_bank_and_enter_x_to_warp1
thumb_func_start sub_805546C
sub_805546C: @ 805546C
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
bl GetHealLocationPointer
adds r4, r0, 0
cmp r4, 0
beq _0805549A
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 Overworld_SetWarpDestination
_0805549A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_805546C
thumb_func_start copy_saved_warp3_bank_and_enter_x_to_warp1
copy_saved_warp3_bank_and_enter_x_to_warp1: @ 80554A4
ldr r2, _080554B4 @ =gUnknown_2031DBC
ldr r0, _080554B8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x20]
ldr r0, [r0, 0x1C]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080554B4: .4byte gUnknown_2031DBC
_080554B8: .4byte gSaveBlock1Ptr
thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1
thumb_func_start sub_80554BC
sub_80554BC: @ 80554BC
push {lr}
ldr r0, _080554C8 @ =gUnknown_2031DBC
bl SetBlackoutRespawnWarpAndHealerNpc
pop {r0}
bx r0
.align 2, 0
_080554C8: .4byte gUnknown_2031DBC
thumb_func_end sub_80554BC
thumb_func_start SetLastHealLocationWarp
SetLastHealLocationWarp: @ 80554CC
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
bl GetHealLocationPointer
adds r5, r0, 0
cmp r5, 0
beq _08055500
ldr r0, _08055508 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x1C
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
_08055500:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08055508: .4byte gSaveBlock1Ptr
thumb_func_end SetLastHealLocationWarp
thumb_func_start sub_805550C
sub_805550C: @ 805550C
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r7, r1, 16
bl GetCurrentMapType
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _08055598 @ =gUnknown_2031DBC
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 _08055590
adds r0, r5, 0
bl is_light_level_1_2_3_5_or_6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055590
ldr r5, _0805559C @ =gSaveBlock1Ptr
ldr r0, [r5]
ldrh r0, [r0, 0x4]
cmp r0, 0x1
beq _08055590
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r4, r0
orrs r4, r0
ldr r1, [r5]
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
lsrs r4, 31
subs r4, 0x7
adds r4, r7, r4
lsls r4, 24
asrs r4, 24
str r4, [sp]
bl SetEscapeWarp
_08055590:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08055598: .4byte gUnknown_2031DBC
_0805559C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805550C
thumb_func_start SetEscapeWarp
SetEscapeWarp: @ 80555A0
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, _080555DC @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x24
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
_080555DC: .4byte gSaveBlock1Ptr
thumb_func_end SetEscapeWarp
thumb_func_start sub_80555E0
sub_80555E0: @ 80555E0
ldr r2, _080555F0 @ =gUnknown_2031DBC
ldr r0, _080555F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x28]
ldr r0, [r0, 0x24]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080555F0: .4byte gUnknown_2031DBC
_080555F4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80555E0
thumb_func_start SetFixedDiveWarp
SetFixedDiveWarp: @ 80555F8
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, _08055630 @ =gUnknown_2031DC4
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
_08055630: .4byte gUnknown_2031DC4
thumb_func_end SetFixedDiveWarp
thumb_func_start warp1_set_to_warp2
warp1_set_to_warp2: @ 8055634
ldr r2, _08055644 @ =gUnknown_2031DBC
ldr r0, _08055648 @ =gUnknown_2031DC4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055644: .4byte gUnknown_2031DBC
_08055648: .4byte gUnknown_2031DC4
thumb_func_end warp1_set_to_warp2
thumb_func_start SetFixedHoleWarp
SetFixedHoleWarp: @ 805564C
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, _08055684 @ =gUnknown_2031DCC
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
_08055684: .4byte gUnknown_2031DCC
thumb_func_end SetFixedHoleWarp
thumb_func_start SetWarpDestinationToFixedHoleWarp
SetWarpDestinationToFixedHoleWarp: @ 8055688
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 16
lsrs r6, r1, 16
ldr r4, _080556B0 @ =gUnknown_2031DCC
adds r0, r4, 0
bl warp_data_is_not_neg_1
cmp r0, 0x1
bne _080556BC
ldr r2, _080556B4 @ =gUnknown_2031DBC
ldr r0, _080556B8 @ =gUnknown_2031DB4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
b _080556D6
.align 2, 0
_080556B0: .4byte gUnknown_2031DCC
_080556B4: .4byte gUnknown_2031DBC
_080556B8: .4byte gUnknown_2031DB4
_080556BC:
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 Overworld_SetWarpDestination
_080556D6:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end SetWarpDestinationToFixedHoleWarp
thumb_func_start warp1_set_to_sav1w
warp1_set_to_sav1w: @ 80556E0
ldr r2, _080556F0 @ =gUnknown_2031DBC
ldr r0, _080556F4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, [r0, 0x10]
ldr r0, [r0, 0xC]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_080556F0: .4byte gUnknown_2031DBC
_080556F4: .4byte gSaveBlock1Ptr
thumb_func_end warp1_set_to_sav1w
thumb_func_start sub_80556F8
sub_80556F8: @ 80556F8
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, _08055734 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0xC
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
_08055734: .4byte gSaveBlock1Ptr
thumb_func_end sub_80556F8
thumb_func_start sub_8055738
sub_8055738: @ 8055738
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
bl GetHealLocationPointer
adds r5, r0, 0
cmp r5, 0
beq _0805576C
ldr r0, _08055774 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0xC
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
_0805576C:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08055774: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055738
thumb_func_start sub_8055778
sub_8055778: @ 8055778
ldr r0, _08055788 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r0, [r2, 0x14]
ldr r1, [r2, 0x18]
str r0, [r2, 0xC]
str r1, [r2, 0x10]
bx lr
.align 2, 0
_08055788: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055778
thumb_func_start GetMapConnection
GetMapConnection: @ 805578C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080557A0 @ =gMapHeader
ldr r0, [r0, 0xC]
ldr r3, [r0]
ldr r1, [r0, 0x4]
cmp r1, 0
bne _080557A8
b _080557BC
.align 2, 0
_080557A0: .4byte gMapHeader
_080557A4:
adds r0, r1, 0
b _080557BE
_080557A8:
movs r2, 0
cmp r2, r3
bge _080557BC
_080557AE:
ldrb r0, [r1]
cmp r0, r4
beq _080557A4
adds r2, 0x1
adds r1, 0xC
cmp r2, r3
blt _080557AE
_080557BC:
movs r0, 0
_080557BE:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetMapConnection
thumb_func_start sub_80557C4
sub_80557C4: @ 80557C4
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 GetMapConnection
adds r1, r0, 0
cmp r1, 0
beq _080557FC
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 Overworld_SetWarpDestination
b _08055818
_080557FC:
bl mapheader_run_script_with_tag_x6
ldr r0, _08055810 @ =gUnknown_2031DC4
bl warp_data_is_not_neg_1
cmp r0, 0
beq _08055814
movs r0, 0
b _0805581A
.align 2, 0
_08055810: .4byte gUnknown_2031DC4
_08055814:
bl warp1_set_to_warp2
_08055818:
movs r0, 0x1
_0805581A:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80557C4
thumb_func_start sub_8055824
sub_8055824: @ 8055824
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_80557C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8055824
thumb_func_start sub_8055844
sub_8055844: @ 8055844
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_80557C4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8055844
thumb_func_start sub_8055864
sub_8055864: @ 8055864
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 Overworld_SetWarpDestination
bl sub_8055E94
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl sub_8054F68
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
bl sub_806D7E8
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
bl mapheader_run_script_with_tag_x3
bl sub_815D8F8
bl not_trainer_hill_battle_pyramid
ldr r4, _0805591C @ =gMapHeader
ldr r0, [r4]
bl copy_map_tileset2_to_vram_2
ldr r0, [r4]
bl apply_map_tileset2_palette
movs r4, 0x7
_080558D4:
lsls r0, r4, 24
lsrs r0, 24
bl sub_807AB74
adds r4, 0x1
cmp r4, 0xC
ble _080558D4
bl sub_806FFB0
bl UpdateLocationHistoryForRoamer
bl RoamerMove
bl sub_8110920
bl DoCurrentWeather
bl wild_encounter_reset_coro_args
bl mapheader_run_script_with_tag_x5
bl sub_80561B4
ldr r1, _0805591C @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x14]
cmp r0, r1
beq _08055914
movs r0, 0x1
bl sub_8098110
_08055914:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805591C: .4byte gMapHeader
thumb_func_end sub_8055864
thumb_func_start sub_8055920
sub_8055920: @ 8055920
push {r4,lr}
bl set_current_map_header_from_sav1_save_old_name
bl sub_8054F68
ldr r0, _0805599C @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
bl sub_806D7E8
ldr r0, _080559A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
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_810C578
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
cmp r4, 0
beq _08055974
ldr r0, _080559A4 @ =0x00000806
bl FlagClear
_08055974:
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
bl mapheader_run_script_with_tag_x3
bl sub_815D8F8
bl UpdateLocationHistoryForRoamer
bl RoamerMoveToOtherLocationSet
bl sub_8110920
bl not_trainer_hill_battle_pyramid
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805599C: .4byte gMapHeader
_080559A0: .4byte gSaveBlock1Ptr
_080559A4: .4byte 0x00000806
thumb_func_end sub_8055920
thumb_func_start sub_80559A8
sub_80559A8: @ 80559A8
push {lr}
bl set_current_map_header_from_sav1_save_old_name
bl sub_8054F68
ldr r0, _080559E0 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl TrySetMapSaveWarpStatus
bl SetSav1WeatherFromCurrMapHeader
bl sub_805610C
bl sub_8055CB8
bl sub_8110920
bl sub_8111708
bl set_current_map_header_from_sav1
bl not_trainer_hill_battle_pyramid
pop {r0}
bx r0
.align 2, 0
_080559E0: .4byte gMapHeader
thumb_func_end sub_80559A8
thumb_func_start ResetInitialPlayerAvatarState
ResetInitialPlayerAvatarState: @ 80559E4
ldr r0, _080559F4 @ =gUnknown_2031DD4
movs r2, 0
movs r1, 0x1
strb r1, [r0, 0x1]
strb r1, [r0]
strb r2, [r0, 0x2]
bx lr
.align 2, 0
_080559F4: .4byte gUnknown_2031DD4
thumb_func_end ResetInitialPlayerAvatarState
thumb_func_start sub_80559F8
sub_80559F8: @ 80559F8
ldr r1, _08055A04 @ =gUnknown_2031DD4
strb r0, [r1, 0x1]
movs r0, 0x1
strb r0, [r1]
strb r0, [r1, 0x2]
bx lr
.align 2, 0
_08055A04: .4byte gUnknown_2031DD4
thumb_func_end sub_80559F8
thumb_func_start sub_8055A08
sub_8055A08: @ 8055A08
push {r4,lr}
bl GetPlayerFacingDirection
ldr r4, _08055A24 @ =gUnknown_2031DD4
strb r0, [r4, 0x1]
movs r0, 0x2
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A28
movs r0, 0x2
b _08055A5A
.align 2, 0
_08055A24: .4byte gUnknown_2031DD4
_08055A28:
movs r0, 0x4
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A38
movs r0, 0x4
b _08055A5A
_08055A38:
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A48
movs r0, 0x8
b _08055A5A
_08055A48:
movs r0, 0x10
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055A58
movs r0, 0x10
b _08055A5A
_08055A58:
movs r0, 0x1
_08055A5A:
strb r0, [r4]
ldr r1, _08055A68 @ =gUnknown_2031DD4
movs r0, 0
strb r0, [r1, 0x2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08055A68: .4byte gUnknown_2031DD4
thumb_func_end sub_8055A08
thumb_func_start sub_8055A6C
sub_8055A6C: @ 8055A6C
push {r4-r7,lr}
bl GetCurrentMapType
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
bl sub_8055C74
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r6, _08055ABC @ =gUnknown_2031DD4
adds r0, r6, 0
adds r1, r4, 0
adds r2, r5, 0
bl sub_8055ACC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _08055AC0 @ =0xffffff00
ands r7, r0
orrs r7, r1
adds r0, r6, 0
adds r2, r4, 0
adds r3, r5, 0
bl sub_8055B74
lsls r0, 24
lsrs r0, 16
ldr r1, _08055AC4 @ =0xffff00ff
ands r7, r1
orrs r7, r0
ldr r0, _08055AC8 @ =0xff00ffff
ands r7, r0
str r7, [r6]
adds r0, r6, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08055ABC: .4byte gUnknown_2031DD4
_08055AC0: .4byte 0xffffff00
_08055AC4: .4byte 0xffff00ff
_08055AC8: .4byte 0xff00ffff
thumb_func_end sub_8055A6C
thumb_func_start sub_8055ACC
sub_8055ACC: @ 8055ACC
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 _08055AE8
ldr r0, _08055AF0 @ =0x00000802
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _08055B30
_08055AE8:
cmp r4, 0x5
bne _08055AF4
movs r0, 0x10
b _08055B32
.align 2, 0
_08055AF0: .4byte 0x00000802
_08055AF4:
adds r0, r5, 0
bl sub_8055B38
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055B30
lsls r0, r5, 24
lsrs r0, 24
bl MetatileBehavior_IsSurfable
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055B16
movs r0, 0x8
b _08055B32
_08055B16:
bl sub_8055C9C
cmp r0, 0x1
bne _08055B30
ldrb r0, [r6]
cmp r0, 0x2
bne _08055B28
movs r0, 0x2
b _08055B32
_08055B28:
cmp r0, 0x4
bne _08055B30
movs r0, 0x4
b _08055B32
_08055B30:
movs r0, 0x1
_08055B32:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8055ACC
thumb_func_start sub_8055B38
sub_8055B38: @ 8055B38
push {lr}
lsls r0, 24
lsrs r0, 24
bl MetatileBehavior_IsSurfable
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055B6C
ldr r0, _08055B60 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08055B64 @ =0x00005601
cmp r1, r0
beq _08055B5C
ldr r0, _08055B68 @ =0x00005701
cmp r1, r0
bne _08055B6C
_08055B5C:
movs r0, 0x1
b _08055B6E
.align 2, 0
_08055B60: .4byte gSaveBlock1Ptr
_08055B64: .4byte 0x00005601
_08055B68: .4byte 0x00005701
_08055B6C:
movs r0, 0
_08055B6E:
pop {r1}
bx r1
thumb_func_end sub_8055B38
thumb_func_start sub_8055B74
sub_8055B74: @ 8055B74
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, _08055BD4 @ =0x00000802
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _08055B94
cmp r5, 0x6
beq _08055C3E
_08055B94:
lsls r4, 24
lsrs r5, r4, 24
adds r0, r5, 0
bl MetatileBehavior_ReturnFalse_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055BD0
adds r0, r5, 0
bl MetatileBehavior_IsCaveDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C68
adds r0, r5, 0
bl MetatileBehavior_IsWarpDoor_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C68
adds r0, r5, 0
bl MetatileBehavior_IsSouthArrowWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055BD8
_08055BD0:
movs r0, 0x2
b _08055C6E
.align 2, 0
_08055BD4: .4byte 0x00000802
_08055BD8:
adds r0, r5, 0
bl MetatileBehavior_IsNorthArrowWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C68
adds r0, r5, 0
bl MetatileBehavior_IsWestArrowWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C3E
adds r0, r5, 0
bl MetatileBehavior_IsEastArrowWarp
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C1E
adds r0, r5, 0
bl MetatileBehavior_IsUnknownWarp6C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C1E
adds r0, r5, 0
bl MetatileBehavior_IsUnknownWarp6E
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055C22
_08055C1E:
movs r0, 0x3
b _08055C6E
_08055C22:
adds r0, r5, 0
bl MetatileBehavior_IsUnknownWarp6D
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C3E
adds r0, r5, 0
bl MetatileBehavior_IsUnknownWarp6F
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08055C42
_08055C3E:
movs r0, 0x4
b _08055C6E
_08055C42:
ldrb r0, [r6]
cmp r0, 0x10
bne _08055C4C
cmp r7, 0x8
beq _08055C6C
_08055C4C:
cmp r0, 0x8
bne _08055C54
cmp r7, 0x10
beq _08055C6C
_08055C54:
lsrs r0, r4, 24
bl MetatileBehavior_IsLadder
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055C6C
ldrb r0, [r6, 0x2]
cmp r0, 0
bne _08055C6C
_08055C68:
movs r0, 0x1
b _08055C6E
_08055C6C:
ldrb r0, [r6, 0x1]
_08055C6E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8055B74
thumb_func_start sub_8055C74
sub_8055C74: @ 8055C74
push {lr}
ldr r0, _08055C98 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x7
lsls r0, 16
asrs r0, 16
ldrh r1, [r1, 0x2]
adds r1, 0x7
lsls r1, 16
asrs r1, 16
bl MapGridGetMetatileBehaviorAt
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08055C98: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055C74
thumb_func_start sub_8055C9C
sub_8055C9C: @ 8055C9C
push {lr}
ldr r0, _08055CAC @ =gMapHeader
ldrb r0, [r0, 0x18]
cmp r0, 0
beq _08055CB0
movs r0, 0x1
b _08055CB2
.align 2, 0
_08055CAC: .4byte gMapHeader
_08055CB0:
movs r0, 0
_08055CB2:
pop {r1}
bx r1
thumb_func_end sub_8055C9C
thumb_func_start sub_8055CB8
sub_8055CB8: @ 8055CB8
push {lr}
ldr r0, _08055CC8 @ =gMapHeader
ldrb r1, [r0, 0x15]
cmp r1, 0
bne _08055CD0
ldr r0, _08055CCC @ =gSaveBlock1Ptr
ldr r0, [r0]
b _08055CF8
.align 2, 0
_08055CC8: .4byte gMapHeader
_08055CCC: .4byte gSaveBlock1Ptr
_08055CD0:
ldr r0, _08055CE8 @ =0x00000806
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _08055CF0
ldr r0, _08055CEC @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
movs r1, 0
b _08055CFA
.align 2, 0
_08055CE8: .4byte 0x00000806
_08055CEC: .4byte gSaveBlock1Ptr
_08055CF0:
ldr r0, _08055D00 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _08055D04 @ =gUnknown_83C68E0
ldr r1, [r1]
_08055CF8:
adds r0, 0x30
_08055CFA:
strb r1, [r0]
pop {r0}
bx r0
.align 2, 0
_08055D00: .4byte gSaveBlock1Ptr
_08055D04: .4byte gUnknown_83C68E0
thumb_func_end sub_8055CB8
thumb_func_start Overworld_SetFlashLevel
Overworld_SetFlashLevel: @ 8055D08
push {lr}
adds r1, r0, 0
cmp r1, 0
blt _08055D18
ldr r0, _08055D28 @ =gUnknown_83C68E0
ldr r0, [r0]
cmp r1, r0
ble _08055D1A
_08055D18:
movs r1, 0
_08055D1A:
ldr r0, _08055D2C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
strb r1, [r0]
pop {r0}
bx r0
.align 2, 0
_08055D28: .4byte gUnknown_83C68E0
_08055D2C: .4byte gSaveBlock1Ptr
thumb_func_end Overworld_SetFlashLevel
thumb_func_start sav1_get_flash_used_on_map
sav1_get_flash_used_on_map: @ 8055D30
ldr r0, _08055D3C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
ldrb r0, [r0]
bx lr
.align 2, 0
_08055D3C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_get_flash_used_on_map
thumb_func_start SetCurrentMapLayout
SetCurrentMapLayout: @ 8055D40
push {lr}
ldr r1, _08055D54 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x32]
bl get_mapdata_header
ldr r1, _08055D58 @ =gMapHeader
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08055D54: .4byte gSaveBlock1Ptr
_08055D58: .4byte gMapHeader
thumb_func_end SetCurrentMapLayout
thumb_func_start sub_8055D5C
sub_8055D5C: @ 8055D5C
ldr r2, _08055D68 @ =gUnknown_2031DBC
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
str r1, [r2, 0x4]
bx lr
.align 2, 0
_08055D68: .4byte gUnknown_2031DBC
thumb_func_end sub_8055D5C
thumb_func_start sub_8055D6C
sub_8055D6C: @ 8055D6C
push {lr}
adds r1, r0, 0
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
ldrh r0, [r0, 0x10]
pop {r1}
bx r1
thumb_func_end sub_8055D6C
thumb_func_start sub_8055D8C
sub_8055D8C: @ 8055D8C
push {lr}
ldr r0, _08055DA0 @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x4
bl sub_8055D6C
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08055DA0: .4byte gSaveBlock1Ptr
thumb_func_end sub_8055D8C
thumb_func_start sub_8055DA4
sub_8055DA4: @ 8055DA4
push {lr}
ldr r0, _08055DB4 @ =gUnknown_2031DBC
bl sub_8055D6C
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_08055DB4: .4byte gUnknown_2031DBC
thumb_func_end sub_8055DA4
thumb_func_start sub_8055DB8
sub_8055DB8: @ 8055DB8
push {lr}
bl ResetMapMusic
pop {r0}
bx r0
thumb_func_end sub_8055DB8
thumb_func_start Overworld_PlaySpecialMapMusic
Overworld_PlaySpecialMapMusic: @ 8055DC4
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _08055DD8 @ =gUnknown_2031DD8
ldrb r0, [r0]
cmp r0, 0x1
bne _08055DDC
bl StopMapMusic
b _08055E6C
.align 2, 0
_08055DD8: .4byte gUnknown_2031DD8
_08055DDC:
cmp r0, 0x2
beq _08055E6C
ldr r0, _08055E14 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldrh r1, [r0, 0x4]
ldr r0, _08055E18 @ =0x00004f01
cmp r1, r0
bne _08055E24
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl PlayerGetDestCoords
movs r1, 0
ldrsh r0, [r4, r1]
subs r0, 0x7
cmp r0, 0xA
bgt _08055E24
ldr r0, _08055E1C @ =gMPlayInfo_BGM
ldr r1, [r0]
ldr r0, _08055E20 @ =gSong_86E6B0C
cmp r1, r0
bne _08055E24
movs r0, 0x4
bl FadeInBGM
b _08055E6C
.align 2, 0
_08055E14: .4byte gSaveBlock1Ptr
_08055E18: .4byte 0x00004f01
_08055E1C: .4byte gMPlayInfo_BGM
_08055E20: .4byte gSong_86E6B0C
_08055E24:
bl sub_8055D8C
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _08055E3C @ =gSaveBlock1Ptr
ldr r1, [r0]
ldrh r0, [r1, 0x2C]
cmp r0, 0
beq _08055E40
adds r4, r0, 0
b _08055E5A
.align 2, 0
_08055E3C: .4byte gSaveBlock1Ptr
_08055E40:
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055E5A
ldr r5, _08055E74 @ =0x00000131 @ BGM_FRLG_SURF
adds r0, r5, 0
bl sub_8056124
cmp r0, 0
beq _08055E5A
adds r4, r5, 0
_08055E5A:
bl GetCurrentMapMusic
lsls r0, 16
lsrs r0, 16
cmp r4, r0
beq _08055E6C
adds r0, r4, 0
bl PlayNewMapMusic
_08055E6C:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08055E74: .4byte 0x00000131
thumb_func_end Overworld_PlaySpecialMapMusic
thumb_func_start Overworld_SetSavedMusic
Overworld_SetSavedMusic: @ 8055E78
ldr r1, _08055E80 @ =gSaveBlock1Ptr
ldr r1, [r1]
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
_08055E80: .4byte gSaveBlock1Ptr
thumb_func_end Overworld_SetSavedMusic
thumb_func_start sav1_reset_battle_music_maybe
sav1_reset_battle_music_maybe: @ 8055E84
ldr r0, _08055E90 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x2C]
bx lr
.align 2, 0
_08055E90: .4byte gSaveBlock1Ptr
thumb_func_end sav1_reset_battle_music_maybe
thumb_func_start sub_8055E94
sub_8055E94: @ 8055E94
push {r4-r6,lr}
ldr r0, _08055EA4 @ =gUnknown_2031DD8
ldrb r0, [r0]
cmp r0, 0x1
bne _08055EA8
bl StopMapMusic
b _08055F14
.align 2, 0
_08055EA4: .4byte gUnknown_2031DD8
_08055EA8:
cmp r0, 0x2
beq _08055F14
ldr r0, _08055F04 @ =0x00004001
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055F14
bl sub_8055DA4
lsls r0, 16
lsrs r4, r0, 16
bl GetCurrentMapMusic
lsls r0, 16
lsrs r6, r0, 16
ldr r5, _08055F08 @ =0x00000131 @ BGM_FRLG_SURF
cmp r6, r5
beq _08055F14
movs r0, 0x8
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055EE8
adds r0, r5, 0
bl sub_8056124
cmp r0, 0
beq _08055EE8
adds r4, r5, 0
_08055EE8:
cmp r4, r6
beq _08055F14
movs r0, 0x6
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _08055F0C
adds r0, r4, 0
movs r1, 0x4
movs r2, 0x4
bl FadeOutAndFadeInNewMapMusic
b _08055F14
.align 2, 0
_08055F04: .4byte 0x00004001
_08055F08: .4byte 0x00000131
_08055F0C:
adds r0, r4, 0
movs r1, 0x8
bl FadeOutAndPlayNewMapMusic
_08055F14:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8055E94
thumb_func_start Overworld_ChangeMusicToDefault
Overworld_ChangeMusicToDefault: @ 8055F1C
push {r4,lr}
bl GetCurrentMapMusic
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_8055D8C
lsls r0, 16
lsrs r0, 16
cmp r4, r0
beq _08055F42
bl sub_8055D8C
lsls r0, 16
lsrs r0, 16
movs r1, 0x8
bl FadeOutAndPlayNewMapMusic
_08055F42:
pop {r4}
pop {r0}
bx r0
thumb_func_end Overworld_ChangeMusicToDefault
thumb_func_start Overworld_ChangeMusicTo
Overworld_ChangeMusicTo: @ 8055F48
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
bl GetCurrentMapMusic
lsls r0, 16
lsrs r0, 16
cmp r0, r4
beq _08055F62
adds r0, r4, 0
movs r1, 0x8
bl FadeOutAndPlayNewMapMusic
_08055F62:
pop {r4}
pop {r0}
bx r0
thumb_func_end Overworld_ChangeMusicTo
thumb_func_start GetMapMusicFadeoutSpeed
GetMapMusicFadeoutSpeed: @ 8055F68
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 _08055F80
movs r0, 0x4
b _08055F82
_08055F80:
movs r0, 0x2
_08055F82:
pop {r1}
bx r1
thumb_func_end GetMapMusicFadeoutSpeed
thumb_func_start sub_8055F88
sub_8055F88: @ 8055F88
push {r4,lr}
bl sub_8055DA4
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _08055FC0 @ =0x00004001
bl FlagGet
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08055FB8
bl GetCurrentMapMusic
lsls r0, 16
lsrs r0, 16
cmp r4, r0
beq _08055FB8
bl GetMapMusicFadeoutSpeed
lsls r0, 24
lsrs r0, 24
bl FadeOutMapMusic
_08055FB8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08055FC0: .4byte 0x00004001
thumb_func_end sub_8055F88
thumb_func_start sub_8055FC4
sub_8055FC4: @ 8055FC4
push {lr}
bl IsNotWaitingForBGMStop
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8055FC4
thumb_func_start Overworld_FadeOutMapMusic
Overworld_FadeOutMapMusic: @ 8055FD4
push {lr}
movs r0, 0x4
bl FadeOutMapMusic
pop {r0}
bx r0
thumb_func_end Overworld_FadeOutMapMusic
thumb_func_start sub_8055FE0
sub_8055FE0: @ 8055FE0
push {r4,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl PlayerGetDestCoords
ldr r0, _0805604C @ =gUnknown_2031DDC
ldrb r0, [r0]
cmp r0, 0x1
bne _08056014
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_IsSurfable
lsls r0, 24
cmp r0, 0
beq _0805606A
_08056014:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x58
bl __umodsi3
adds r0, 0xD4
lsls r0, 24
lsrs r4, r0, 24
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x1E
bl __umodsi3
adds r0, 0x32
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _08056050 @ =gUnknown_2031DD8
ldrb r0, [r0]
cmp r0, 0x1
bne _08056054
bl StopMapMusic
b _0805606A
.align 2, 0
_0805604C: .4byte gUnknown_2031DDC
_08056050: .4byte gUnknown_2031DD8
_08056054:
cmp r0, 0x2
beq _0805606A
ldr r0, _08056074 @ =gUnknown_2031DDA
ldrh r0, [r0]
lsls r1, r4, 24
asrs r1, 24
lsls r2, 24
asrs r2, 24
movs r3, 0x1
bl PlayCry2
_0805606A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08056074: .4byte gUnknown_2031DDA
thumb_func_end sub_8055FE0
thumb_func_start sub_8056078
sub_8056078: @ 8056078
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x4
bhi _08056106
lsls r0, 2
ldr r1, _08056090 @ =_08056094
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056090: .4byte _08056094
.align 2, 0
_08056094:
.4byte _080560A8
.4byte _080560BC
.4byte _080560D8
.4byte _080560F2
.4byte _08056106
_080560A8:
ldr r0, _080560B4 @ =gUnknown_2031DDA
ldrh r0, [r0]
cmp r0, 0
bne _080560B8
movs r0, 0x4
b _08056104
.align 2, 0
_080560B4: .4byte gUnknown_2031DDA
_080560B8:
movs r0, 0x1
b _08056104
_080560BC:
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 _08056104
_080560D8:
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 _08056104
_080560F2:
ldrh r0, [r5]
subs r0, 0x1
strh r0, [r5]
lsls r0, 16
cmp r0, 0
bne _08056106
bl sub_8055FE0
movs r0, 0x2
_08056104:
strh r0, [r6]
_08056106:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8056078
thumb_func_start sub_805610C
sub_805610C: @ 805610C
push {lr}
ldr r0, _0805611C @ =gUnknown_2031DDC
bl GetLocalWildMon
ldr r1, _08056120 @ =gUnknown_2031DDA
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0805611C: .4byte gUnknown_2031DDC
_08056120: .4byte gUnknown_2031DDA
thumb_func_end sub_805610C
thumb_func_start sub_8056124
sub_8056124: @ 8056124
push {lr}
lsls r0, 16
lsrs r1, r0, 16
movs r0, 0x8D
lsls r0, 1
cmp r1, r0
beq _08056138
adds r0, 0x17
cmp r1, r0
bne _08056150
_08056138:
ldr r0, _0805614C @ =gMapHeader
ldrb r0, [r0, 0x14]
cmp r0, 0x84
beq _08056148
cmp r0, 0x7B
beq _08056148
cmp r0, 0x61
bne _08056150
_08056148:
movs r0, 0
b _08056152
.align 2, 0
_0805614C: .4byte gMapHeader
_08056150:
movs r0, 0x1
_08056152:
pop {r1}
bx r1
thumb_func_end sub_8056124
thumb_func_start get_map_light_level_by_bank_and_number
get_map_light_level_by_bank_and_number: @ 8056158
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: @ 8056170
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 GetCurrentMapType
GetCurrentMapType: @ 8056188
push {lr}
ldr r0, _0805619C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x4
bl get_map_light_level_from_warp
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0805619C: .4byte gSaveBlock1Ptr
thumb_func_end GetCurrentMapType
thumb_func_start get_map_light_from_warp0
get_map_light_from_warp0: @ 80561A0
push {lr}
ldr r0, _080561B0 @ =gUnknown_2031DB4
bl get_map_light_level_from_warp
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_080561B0: .4byte gUnknown_2031DB4
thumb_func_end get_map_light_from_warp0
thumb_func_start sub_80561B4
sub_80561B4: @ 80561B4
push {lr}
ldr r1, _080561D4 @ =gUnknown_2031DB4
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
ldrb r0, [r0, 0x14]
pop {r1}
bx r1
.align 2, 0
_080561D4: .4byte gUnknown_2031DB4
thumb_func_end sub_80561B4
thumb_func_start is_light_level_1_2_3_5_or_6
is_light_level_1_2_3_5_or_6: @ 80561D8
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _080561F2
cmp r0, 0x1
beq _080561F2
cmp r0, 0x5
beq _080561F2
cmp r0, 0x2
beq _080561F2
cmp r0, 0x6
bne _080561F6
_080561F2:
movs r0, 0x1
b _080561F8
_080561F6:
movs r0, 0
_080561F8:
pop {r1}
bx r1
thumb_func_end is_light_level_1_2_3_5_or_6
thumb_func_start Overworld_MapTypeAllowsTeleportAndFly
Overworld_MapTypeAllowsTeleportAndFly: @ 80561FC
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08056212
cmp r0, 0x1
beq _08056212
cmp r0, 0x6
beq _08056212
cmp r0, 0x2
bne _08056216
_08056212:
movs r0, 0x1
b _08056218
_08056216:
movs r0, 0
_08056218:
pop {r1}
bx r1
thumb_func_end Overworld_MapTypeAllowsTeleportAndFly
thumb_func_start is_light_level_8_or_9
is_light_level_8_or_9: @ 805621C
push {lr}
lsls r0, 24
movs r1, 0xF8
lsls r1, 24
adds r0, r1
lsrs r0, 24
cmp r0, 0x1
bls _08056230
movs r0, 0
b _08056232
_08056230:
movs r0, 0x1
_08056232:
pop {r1}
bx r1
thumb_func_end is_light_level_8_or_9
thumb_func_start sav1_saved_warp2_map_get_name
sav1_saved_warp2_map_get_name: @ 8056238
push {lr}
ldr r0, _0805625C @ =gSaveBlock1Ptr
ldr r1, [r0]
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
_0805625C: .4byte gSaveBlock1Ptr
thumb_func_end sav1_saved_warp2_map_get_name
thumb_func_start GetCurrentRegionMapSectionId
GetCurrentRegionMapSectionId: @ 8056260
push {lr}
ldr r0, _08056284 @ =gSaveBlock1Ptr
ldr r1, [r0]
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
_08056284: .4byte gSaveBlock1Ptr
thumb_func_end GetCurrentRegionMapSectionId
thumb_func_start sav1_map_get_battletype
sav1_map_get_battletype: @ 8056288
push {lr}
ldr r0, _080562AC @ =gSaveBlock1Ptr
ldr r1, [r0]
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
_080562AC: .4byte gSaveBlock1Ptr
thumb_func_end sav1_map_get_battletype
thumb_func_start sub_80562B0
sub_80562B0: @ 80562B0
push {r4-r6,lr}
mov r6, r8
push {r6}
bl MoveSaveBlocks_ResetHeap_
bl sub_8056E80
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08056344 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x3
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
ldr r0, _08056348 @ =gUnknown_3005018
mov r8, r0
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl AllocZeroed
mov r1, r8
str r0, [r1]
ldr r6, _0805634C @ =gUnknown_3005014
adds r0, r4, 0
bl AllocZeroed
str r0, [r6]
ldr r5, _08056350 @ =gUnknown_300501C
adds r0, r4, 0
bl AllocZeroed
str r0, [r5]
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r6]
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
bl InitStandardTextBoxWindows
bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08056344: .4byte gUnknown_826D320
_08056348: .4byte gUnknown_3005018
_0805634C: .4byte gUnknown_3005014
_08056350: .4byte gUnknown_300501C
thumb_func_end sub_80562B0
thumb_func_start sub_8056354
sub_8056354: @ 8056354
push {r4-r6,lr}
mov r6, r8
push {r6}
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080563E0 @ =gUnknown_826D320
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0x1
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x2
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
movs r0, 0x3
movs r1, 0x5
movs r2, 0x1
bl SetBgAttribute
ldr r0, _080563E4 @ =gUnknown_3005018
mov r8, r0
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl AllocZeroed
mov r1, r8
str r0, [r1]
ldr r6, _080563E8 @ =gUnknown_3005014
adds r0, r4, 0
bl AllocZeroed
str r0, [r6]
ldr r5, _080563EC @ =gUnknown_300501C
adds r0, r4, 0
bl AllocZeroed
str r0, [r5]
mov r0, r8
ldr r1, [r0]
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r6]
movs r0, 0x2
bl SetBgTilemapBuffer
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
bl InitStandardTextBoxWindows
bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080563E0: .4byte gUnknown_826D320
_080563E4: .4byte gUnknown_3005018
_080563E8: .4byte gUnknown_3005014
_080563EC: .4byte gUnknown_300501C
thumb_func_end sub_8056354
thumb_func_start CleanupOverworldWindowsAndTilemaps
CleanupOverworldWindowsAndTilemaps: @ 80563F0
push {lr}
bl FreeAllOverworldWindowBuffers
ldr r0, _08056414 @ =gUnknown_300501C
ldr r0, [r0]
bl Free
ldr r0, _08056418 @ =gUnknown_3005014
ldr r0, [r0]
bl Free
ldr r0, _0805641C @ =gUnknown_3005018
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.align 2, 0
_08056414: .4byte gUnknown_300501C
_08056418: .4byte gUnknown_3005014
_0805641C: .4byte gUnknown_3005018
thumb_func_end CleanupOverworldWindowsAndTilemaps
thumb_func_start sub_8056420
sub_8056420: @ 8056420
push {lr}
bl ResetSafariZoneFlag
pop {r0}
bx r0
thumb_func_end sub_8056420
thumb_func_start IsUpdateLinkStateCBActive
IsUpdateLinkStateCBActive: @ 805642C
push {lr}
ldr r0, _0805643C @ =gMain
ldr r1, [r0]
ldr r0, _08056440 @ =c1_link_related
cmp r1, r0
beq _08056444
movs r0, 0
b _08056446
.align 2, 0
_0805643C: .4byte gMain
_08056440: .4byte c1_link_related
_08056444:
movs r0, 0x1
_08056446:
pop {r1}
bx r1
thumb_func_end IsUpdateLinkStateCBActive
thumb_func_start sub_805644C
sub_805644C: @ 805644C
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_8112B3C
bl sub_805BEB8
mov r6, sp
mov r0, sp
bl sub_806C888
mov r0, sp
adds r1, r5, 0
adds r2, r4, 0
bl FieldGetPlayerInput
mov r0, sp
bl sub_806CD30
bl ScriptContext2_IsEnabled
lsls r0, 24
cmp r0, 0
bne _080564BA
mov r0, sp
bl sub_806CAC8
cmp r0, 0x1
bne _080564B0
ldr r0, _080564A8 @ =gUnknown_3005E88
ldrb r0, [r0]
cmp r0, 0x2
bne _0805649E
ldr r0, _080564AC @ =gUnknown_3005078
bl sub_81127F8
_0805649E:
bl ScriptContext2_Enable
bl sub_80982EC
b _080564BA
.align 2, 0
_080564A8: .4byte gUnknown_3005E88
_080564AC: .4byte gUnknown_3005078
_080564B0:
ldrb r0, [r6, 0x2]
adds r1, r5, 0
adds r2, r4, 0
bl sub_805B3E0
_080564BA:
bl sub_811092C
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_805644C
thumb_func_start sub_80564C8
sub_80564C8: @ 80564C8
push {lr}
sub sp, 0x4
bl sub_8112B3C
bl sub_805BEB8
bl sub_8111C68
mov r0, sp
bl sub_806C888
ldr r0, _08056508 @ =gUnknown_3005E90
ldr r0, [r0]
str r0, [sp]
mov r0, sp
bl sub_806CD30
bl ScriptContext2_IsEnabled
lsls r0, 24
cmp r0, 0
bne _08056512
mov r0, sp
bl sub_806CAC8
cmp r0, 0x1
bne _0805650C
bl ScriptContext2_Enable
bl sub_80982EC
b _08056522
.align 2, 0
_08056508: .4byte gUnknown_3005E90
_0805650C:
bl sub_811092C
b _08056522
_08056512:
bl sub_8111CD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08056522
bl sub_811092C
_08056522:
ldr r0, _08056530 @ =gUnknown_3005E90
bl sub_806C888
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08056530: .4byte gUnknown_3005E90
thumb_func_end sub_80564C8
thumb_func_start sub_8056534
sub_8056534: @ 8056534
push {r4,lr}
ldr r4, _0805655C @ =gMain
ldr r1, [r4, 0x4]
ldr r0, _08056560 @ =sub_80565B4
cmp r1, r0
bne _08056570
bl sub_8112CAC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056554
ldr r0, _08056564 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _08056568
_08056554:
bl sub_80564C8
b _08056570
.align 2, 0
_0805655C: .4byte gMain
_08056560: .4byte sub_80565B4
_08056564: .4byte gUnknown_203ADFA
_08056568:
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x2C]
bl sub_805644C
_08056570:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8056534
thumb_func_start sub_8056578
sub_8056578: @ 8056578
push {lr}
bl ScriptContext2_RunScript
bl RunTasks
bl AnimateSprites
bl CameraUpdate
bl sub_8115798
bl UpdateCameraPanning
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
bl DoScheduledBgTilemapCopiesToVram
pop {r0}
bx r0
thumb_func_end sub_8056578
thumb_func_start CB2_OverworldBasic
CB2_OverworldBasic: @ 80565A8
push {lr}
bl sub_8056578
pop {r0}
bx r0
thumb_func_end CB2_OverworldBasic
thumb_func_start sub_80565B4
sub_80565B4: @ 80565B4
push {r4,lr}
ldr r0, _080565DC @ =gPaletteFade
ldrb r0, [r0, 0x7]
lsrs r0, 7
adds r4, r0, 0
cmp r4, 0
beq _080565C8
movs r0, 0
bl SetVBlankCallback
_080565C8:
bl sub_8056578
cmp r4, 0
beq _080565D4
bl SetFieldVBlankCallback
_080565D4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080565DC: .4byte gPaletteFade
thumb_func_end sub_80565B4
thumb_func_start sub_80565E0
sub_80565E0: @ 80565E0
ldr r1, _080565E8 @ =gMain
str r0, [r1]
bx lr
.align 2, 0
_080565E8: .4byte gMain
thumb_func_end sub_80565E0
thumb_func_start map_post_load_hook_exec
map_post_load_hook_exec: @ 80565EC
push {r4,lr}
ldr r4, _08056604 @ =gFieldCallback2
ldr r0, [r4]
cmp r0, 0
beq _08056618
bl _call_via_r0
lsls r0, 24
cmp r0, 0
bne _08056608
movs r0, 0
b _08056638
.align 2, 0
_08056604: .4byte gFieldCallback2
_08056608:
movs r1, 0
str r1, [r4]
ldr r0, _08056614 @ =gFieldCallback
str r1, [r0]
b _08056636
.align 2, 0
_08056614: .4byte gFieldCallback
_08056618:
ldr r0, _08056628 @ =gFieldCallback
ldr r0, [r0]
cmp r0, 0
beq _0805662C
bl _call_via_r0
b _08056630
.align 2, 0
_08056628: .4byte gFieldCallback
_0805662C:
bl sub_807DF64
_08056630:
ldr r1, _08056640 @ =gFieldCallback
movs r0, 0
str r0, [r1]
_08056636:
movs r0, 0x1
_08056638:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08056640: .4byte gFieldCallback
thumb_func_end map_post_load_hook_exec
thumb_func_start CB2_NewGame
CB2_NewGame: @ 8056644
push {lr}
bl sub_80569BC
bl StopMapMusic
bl sub_8056420
bl sub_8054A60
bl ResetInitialPlayerAvatarState
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
ldr r1, _0805668C @ =gFieldCallback
ldr r0, _08056690 @ =sub_807DF7C
str r0, [r1]
ldr r1, _08056694 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r0, _08056698 @ =gMain + 0x438
bl do_load_map_stuff_loop
bl SetFieldVBlankCallback
ldr r0, _0805669C @ =sub_8056534
bl sub_80565E0
ldr r0, _080566A0 @ =sub_80565B4
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0805668C: .4byte gFieldCallback
_08056690: .4byte sub_807DF7C
_08056694: .4byte gFieldCallback2
_08056698: .4byte gMain + 0x438
_0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
thumb_func_end CB2_NewGame
thumb_func_start c2_whiteout
c2_whiteout: @ 80566A4
push {lr}
sub sp, 0x4
ldr r1, _08056708 @ =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x77
bls _08056702
bl sub_80569BC
bl StopMapMusic
bl sub_8056420
bl sub_8054BC8
movs r0, 0x2
bl sub_80559F8
bl ScriptContext1_Init
bl ScriptContext2_Disable
ldr r1, _0805670C @ =gFieldCallback
ldr r0, _08056710 @ =sub_807F5F0
str r0, [r1]
mov r1, sp
movs r0, 0
strb r0, [r1]
mov r0, sp
bl do_load_map_stuff_loop
bl sub_8112364
bl SetFieldVBlankCallback
ldr r0, _08056714 @ =sub_8056534
bl sub_80565E0
ldr r0, _08056718 @ =sub_80565B4
bl SetMainCallback2
_08056702:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08056708: .4byte gMain
_0805670C: .4byte gFieldCallback
_08056710: .4byte sub_807F5F0
_08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
thumb_func_end c2_whiteout
thumb_func_start CB2_LoadMap
CB2_LoadMap: @ 805671C
push {lr}
bl sub_80569BC
bl ScriptContext1_Init
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
ldr r0, _08056740 @ =sub_80C9BFC
bl SetMainCallback2
ldr r1, _08056744 @ =gMain
ldr r0, _08056748 @ =sub_805674C
str r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_08056740: .4byte sub_80C9BFC
_08056744: .4byte gMain
_08056748: .4byte sub_805674C
thumb_func_end CB2_LoadMap
thumb_func_start sub_805674C
sub_805674C: @ 805674C
push {lr}
ldr r0, _08056768 @ =gMain + 0x438
bl do_load_map_stuff_loop
bl sub_8113748
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0805676C
bl sub_81119C8
b _0805677C
.align 2, 0
_08056768: .4byte gMain + 0x438
_0805676C:
bl SetFieldVBlankCallback
ldr r0, _08056780 @ =sub_8056534
bl sub_80565E0
ldr r0, _08056784 @ =sub_80565B4
bl SetMainCallback2
_0805677C:
pop {r0}
bx r0
.align 2, 0
_08056780: .4byte sub_8056534
_08056784: .4byte sub_80565B4
thumb_func_end sub_805674C
thumb_func_start sub_8056788
sub_8056788: @ 8056788
push {lr}
bl sub_80569BC
ldr r0, _080567A0 @ =gFieldCallback
ldr r1, _080567A4 @ =sub_807DE58
str r1, [r0]
ldr r0, _080567A8 @ =c2_80567AC
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080567A0: .4byte gFieldCallback
_080567A4: .4byte sub_807DE58
_080567A8: .4byte c2_80567AC
thumb_func_end sub_8056788
thumb_func_start c2_80567AC
c2_80567AC: @ 80567AC
push {lr}
ldr r0, _080567D0 @ =gMain + 0x438
bl sub_8056A5C
cmp r0, 0
beq _080567CC
bl SetFieldVBlankCallback
ldr r0, _080567D4 @ =c1_link_related
bl sub_80565E0
bl sub_80578D8
ldr r0, _080567D8 @ =sub_80565B4
bl SetMainCallback2
_080567CC:
pop {r0}
bx r0
.align 2, 0
_080567D0: .4byte gMain + 0x438
_080567D4: .4byte c1_link_related
_080567D8: .4byte sub_80565B4
thumb_func_end c2_80567AC
thumb_func_start CB2_ReturnToField
CB2_ReturnToField: @ 80567DC
push {lr}
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080567F4
ldr r0, _080567F0 @ =c2_exit_to_overworld_2_link
bl SetMainCallback2
b _080567FE
.align 2, 0
_080567F0: .4byte c2_exit_to_overworld_2_link
_080567F4:
bl sub_80569BC
ldr r0, _08056804 @ =c2_exit_to_overworld_2_local
bl SetMainCallback2
_080567FE:
pop {r0}
bx r0
.align 2, 0
_08056804: .4byte c2_exit_to_overworld_2_local
thumb_func_end CB2_ReturnToField
thumb_func_start c2_exit_to_overworld_2_local
c2_exit_to_overworld_2_local: @ 8056808
push {lr}
ldr r0, _08056824 @ =gMain + 0x438
bl sub_8056CD8
cmp r0, 0
beq _0805681E
bl SetFieldVBlankCallback
ldr r0, _08056828 @ =sub_80565B4
bl SetMainCallback2
_0805681E:
pop {r0}
bx r0
.align 2, 0
_08056824: .4byte gMain + 0x438
_08056828: .4byte sub_80565B4
thumb_func_end c2_exit_to_overworld_2_local
thumb_func_start c2_exit_to_overworld_2_link
c2_exit_to_overworld_2_link: @ 805682C
push {lr}
bl sub_8058244
cmp r0, 0
bne _08056846
ldr r0, _0805684C @ =gMain + 0x438
bl map_loading_iteration_2_link
cmp r0, 0
beq _08056846
ldr r0, _08056850 @ =sub_80565B4
bl SetMainCallback2
_08056846:
pop {r0}
bx r0
.align 2, 0
_0805684C: .4byte gMain + 0x438
_08056850: .4byte sub_80565B4
thumb_func_end c2_exit_to_overworld_2_link
thumb_func_start c2_8056854
c2_8056854: @ 8056854
push {lr}
bl sub_80569BC
bl StopMapMusic
ldr r0, _08056878 @ =c1_link_related
bl sub_80565E0
bl sub_80578D8
ldr r0, _0805687C @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08056888
ldr r1, _08056880 @ =gFieldCallback
ldr r0, _08056884 @ =sub_807DE58
b _0805688C
.align 2, 0
_08056878: .4byte c1_link_related
_0805687C: .4byte gWirelessCommType
_08056880: .4byte gFieldCallback
_08056884: .4byte sub_807DE58
_08056888:
ldr r1, _080568A0 @ =gFieldCallback
ldr r0, _080568A4 @ =sub_807DDD0
_0805688C:
str r0, [r1]
bl ScriptContext1_Init
bl ScriptContext2_Disable
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_080568A0: .4byte gFieldCallback
_080568A4: .4byte sub_807DDD0
thumb_func_end c2_8056854
thumb_func_start sub_80568A8
sub_80568A8: @ 80568A8
push {lr}
bl sub_80569BC
ldr r1, _080568BC @ =gFieldCallback2
ldr r0, _080568C0 @ =sub_807E3BC
str r0, [r1]
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_080568BC: .4byte gFieldCallback2
_080568C0: .4byte sub_807E3BC
thumb_func_end sub_80568A8
thumb_func_start sub_80568C4
sub_80568C4: @ 80568C4
push {lr}
bl sub_80569BC
ldr r1, _080568D8 @ =gFieldCallback
ldr r0, _080568DC @ =sub_807DD44
str r0, [r1]
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_080568D8: .4byte gFieldCallback
_080568DC: .4byte sub_807DD44
thumb_func_end sub_80568C4
thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic
CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0
push {lr}
bl sub_80569BC
ldr r1, _080568F4 @ =gFieldCallback
ldr r0, _080568F8 @ =FieldCallback_ReturnToEventScript2
str r0, [r1]
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_080568F4: .4byte gFieldCallback
_080568F8: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_start CB2_Overworld
CB2_Overworld: @ 80568FC
push {lr}
bl sub_80569BC
ldr r1, _08056910 @ =gFieldCallback
ldr r0, _08056914 @ =sub_807DF7C
str r0, [r1]
bl CB2_ReturnToField
pop {r0}
bx r0
.align 2, 0
_08056910: .4byte gFieldCallback
_08056914: .4byte sub_807DF7C
thumb_func_end CB2_Overworld
thumb_func_start sub_8056918
sub_8056918: @ 8056918
push {lr}
ldr r0, _08056934 @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0xFC
ands r0, r1
cmp r0, 0x4
bne _0805692C
movs r0, 0
bl sub_8098110
_0805692C:
bl sub_807DF7C
pop {r0}
bx r0
.align 2, 0
_08056934: .4byte gMapHeader
thumb_func_end sub_8056918
thumb_func_start CB2_ContinueSavedGame
CB2_ContinueSavedGame: @ 8056938
push {lr}
bl sub_80569BC
bl StopMapMusic
bl sub_8056420
bl set_current_map_header_from_sav1
bl sub_80550A8
bl UnfreezeMapObjects
bl sub_8054E40
bl sub_80589E8
bl PlayTimeCounter_Start
bl ScriptContext1_Init
bl ScriptContext2_Disable
ldr r1, _08056990 @ =gFieldCallback2
movs r0, 0
str r0, [r1]
ldr r1, _08056994 @ =gUnknown_2031DE0
movs r0, 0x1
strb r0, [r1]
bl sav2_x1_query_bit1
cmp r0, 0x1
bne _0805699C
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
bl WarpIntoMap
ldr r0, _08056998 @ =CB2_LoadMap
bl SetMainCallback2
b _080569AC
.align 2, 0
_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
_08056998: .4byte CB2_LoadMap
_0805699C:
ldr r0, _080569B0 @ =gFieldCallback
ldr r1, _080569B4 @ =sub_8056918
str r1, [r0]
ldr r0, _080569B8 @ =sub_8056534
bl sub_80565E0
bl CB2_ReturnToField
_080569AC:
pop {r0}
bx r0
.align 2, 0
_080569B0: .4byte gFieldCallback
_080569B4: .4byte sub_8056918
_080569B8: .4byte sub_8056534
thumb_func_end CB2_ContinueSavedGame
thumb_func_start sub_80569BC
sub_80569BC: @ 80569BC
push {lr}
bl sub_80CC87C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080569CE
bl CloseLink
_080569CE:
ldr r0, _080569E4 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _080569E8
movs r0, 0xC5
bl EnableInterrupts
movs r0, 0x2
bl DisableInterrupts
b _080569F4
.align 2, 0
_080569E4: .4byte gWirelessCommType
_080569E8:
movs r0, 0x2
bl DisableInterrupts
movs r0, 0x1
bl EnableInterrupts
_080569F4:
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl SetHBlankCallback
pop {r0}
bx r0
thumb_func_end sub_80569BC
thumb_func_start SetFieldVBlankCallback
SetFieldVBlankCallback: @ 8056A04
push {lr}
ldr r0, _08056A10 @ =VBlankCB_Field
bl SetVBlankCallback
pop {r0}
bx r0
.align 2, 0
_08056A10: .4byte VBlankCB_Field
thumb_func_end SetFieldVBlankCallback
thumb_func_start VBlankCB_Field
VBlankCB_Field: @ 8056A14
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
bl TransferTilesetAnimsBuffer
pop {r0}
bx r0
thumb_func_end VBlankCB_Field
thumb_func_start sub_8056A34
sub_8056A34: @ 8056A34
push {lr}
bl sav1_get_flash_used_on_map
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08056A52
bl sub_807F074
ldr r2, _08056A58 @ =gUnknown_826D330
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
bl ScanlineEffect_SetParams
_08056A52:
pop {r0}
bx r0
.align 2, 0
_08056A58: .4byte gUnknown_826D330
thumb_func_end sub_8056A34
thumb_func_start sub_8056A5C
sub_8056A5C: @ 8056A5C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0xD
bls _08056A68
b _08056B6E
_08056A68:
lsls r0, 2
ldr r1, _08056A74 @ =_08056A78
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056A74: .4byte _08056A78
.align 2, 0
_08056A78:
.4byte _08056AB0
.4byte _08056ABE
.4byte _08056AC6
.4byte _08056ACE
.4byte _08056AE4
.4byte _08056AEE
.4byte _08056AF4
.4byte _08056B04
.4byte _08056B14
.4byte _08056B30
.4byte _08056B36
.4byte _08056B3C
.4byte _08056B58
.4byte _08056B6A
_08056AB0:
bl sub_80562B0
bl ScriptContext1_Init
bl ScriptContext2_Disable
b _08056B62
_08056ABE:
movs r0, 0x1
bl sub_8055920
b _08056B62
_08056AC6:
movs r0, 0x1
bl sub_8057024
b _08056B62
_08056ACE:
bl sub_8057178
bl sub_8057074
bl sub_80571A8
bl sub_8057140
bl sub_812B35C
b _08056B62
_08056AE4:
bl sub_8056A34
bl sub_8056F1C
b _08056B62
_08056AEE:
bl move_tilemap_camera_to_upper_left_corner
b _08056B62
_08056AF4:
ldr r0, _08056B00 @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset1_to_vram
b _08056B62
.align 2, 0
_08056B00: .4byte gMapHeader
_08056B04:
ldr r0, _08056B10 @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset2_to_vram
b _08056B62
.align 2, 0
_08056B10: .4byte gMapHeader
_08056B14:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056B6E
ldr r0, _08056B2C @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056B62
.align 2, 0
_08056B2C: .4byte gMapHeader
_08056B30:
bl DrawWholeMapView
b _08056B62
_08056B36:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08056B62
_08056B3C:
ldr r0, _08056B54 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08056B62
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, 0
movs r1, 0
bl CreateWirelessStatusIndicatorSprite
b _08056B62
.align 2, 0
_08056B54: .4byte gWirelessCommType
_08056B58:
bl map_post_load_hook_exec
lsls r0, 24
cmp r0, 0
beq _08056B6E
_08056B62:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08056B6E
_08056B6A:
movs r0, 0x1
b _08056B70
_08056B6E:
movs r0, 0
_08056B70:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8056A5C
thumb_func_start sub_8056B78
sub_8056B78: @ 8056B78
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrb r0, [r4]
cmp r0, 0xE
bls _08056B86
b _08056CD0
_08056B86:
lsls r0, 2
ldr r1, _08056B90 @ =_08056B94
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056B90: .4byte _08056B94
.align 2, 0
_08056B94:
.4byte _08056BD0
.4byte _08056BE0
.4byte _08056BE6
.4byte _08056BEE
.4byte _08056BFE
.4byte _08056C20
.4byte _08056C2A
.4byte _08056C30
.4byte _08056C40
.4byte _08056C50
.4byte _08056C6C
.4byte _08056C72
.4byte _08056C78
.4byte _08056CC0
.4byte _08056BFA
_08056BD0:
bl sub_80562B0
bl sub_80569BC
adds r0, r5, 0
bl sub_8055920
b _08056CCA
_08056BE0:
bl sub_8111F14
b _08056CCA
_08056BE6:
adds r0, r5, 0
bl sub_8057024
b _08056CCA
_08056BEE:
bl sub_8113748
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08056CCA
_08056BFA:
movs r0, 0x1
b _08056CD2
_08056BFE:
bl mli4_mapscripts_and_other
bl sub_8057114
ldr r0, _08056C1C @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
beq _08056C16
bl sub_80CC534
bl sub_80CC59C
_08056C16:
bl sub_812B35C
b _08056CCA
.align 2, 0
_08056C1C: .4byte gUnknown_203ADFA
_08056C20:
bl sub_8056A34
bl sub_8056F1C
b _08056CCA
_08056C2A:
bl move_tilemap_camera_to_upper_left_corner
b _08056CCA
_08056C30:
ldr r0, _08056C3C @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset1_to_vram
b _08056CCA
.align 2, 0
_08056C3C: .4byte gMapHeader
_08056C40:
ldr r0, _08056C4C @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset2_to_vram
b _08056CCA
.align 2, 0
_08056C4C: .4byte gMapHeader
_08056C50:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056CD0
ldr r0, _08056C68 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056CCA
.align 2, 0
_08056C68: .4byte gMapHeader
_08056C6C:
bl DrawWholeMapView
b _08056CCA
_08056C72:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08056CCA
_08056C78:
bl sub_80561B4
ldr r5, _08056CA4 @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5, 0x14]
cmp r0, r1
beq _08056CA8
ldrb r0, [r5, 0x14]
movs r1, 0x1
bl sub_80F8154
cmp r0, 0x1
bne _08056CA8
ldrb r0, [r5, 0x14]
bl sub_80F819C
ldrb r0, [r5, 0x14]
bl sub_80F8268
b _08056CCA
.align 2, 0
_08056CA4: .4byte gMapHeader
_08056CA8:
ldr r0, _08056CBC @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0xFC
ands r0, r1
cmp r0, 0x4
bne _08056CCA
movs r0, 0
bl sub_8098110
b _08056CCA
.align 2, 0
_08056CBC: .4byte gMapHeader
_08056CC0:
bl map_post_load_hook_exec
lsls r0, 24
cmp r0, 0
beq _08056CD0
_08056CCA:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_08056CD0:
movs r0, 0
_08056CD2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8056B78
thumb_func_start sub_8056CD8
sub_8056CD8: @ 8056CD8
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0x4
bhi _08056D3C
lsls r0, 2
ldr r1, _08056CEC @ =_08056CF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056CEC: .4byte _08056CF0
.align 2, 0
_08056CF0:
.4byte _08056D04
.4byte _08056D30
.4byte _08056D1C
.4byte _08056D26
.4byte _08056D38
_08056D04:
bl sub_80562B0
bl sub_8111F14
movs r0, 0
bl sub_8057024
bl sub_8057100
bl sub_8057114
b _08056D30
_08056D1C:
bl sub_8056F08
bl sub_812B35C
b _08056D30
_08056D26:
bl map_post_load_hook_exec
lsls r0, 24
cmp r0, 0
beq _08056D3C
_08056D30:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08056D3C
_08056D38:
movs r0, 0x1
b _08056D3E
_08056D3C:
movs r0, 0
_08056D3E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8056CD8
thumb_func_start map_loading_iteration_2_link
map_loading_iteration_2_link: @ 8056D44
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0xD
bls _08056D50
b _08056E54
_08056D50:
lsls r0, 2
ldr r1, _08056D5C @ =_08056D60
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056D5C: .4byte _08056D60
.align 2, 0
_08056D60:
.4byte _08056D98
.4byte _08056DA2
.4byte _08056DAE
.4byte _08056DC0
.4byte _08056DCA
.4byte _08056DD0
.4byte _08056DE0
.4byte _08056DF0
.4byte _08056E0C
.4byte _08056E12
.4byte _08056E3E
.4byte _08056E18
.4byte _08056E34
.4byte _08056E46
_08056D98:
bl sub_80562B0
bl sub_80569BC
b _08056E3E
_08056DA2:
bl sub_8111F14
movs r0, 0x1
bl sub_8057024
b _08056E3E
_08056DAE:
bl sub_8057230
bl sub_8057100
bl sub_805715C
bl sub_812B35C
b _08056E3E
_08056DC0:
bl sub_8056A34
bl sub_8056F1C
b _08056E3E
_08056DCA:
bl move_tilemap_camera_to_upper_left_corner
b _08056E3E
_08056DD0:
ldr r0, _08056DDC @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset1_to_vram
b _08056E3E
.align 2, 0
_08056DDC: .4byte gMapHeader
_08056DE0:
ldr r0, _08056DEC @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset2_to_vram
b _08056E3E
.align 2, 0
_08056DEC: .4byte gMapHeader
_08056DF0:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056E54
ldr r0, _08056E08 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056E3E
.align 2, 0
_08056E08: .4byte gMapHeader
_08056E0C:
bl DrawWholeMapView
b _08056E3E
_08056E12:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
b _08056E3E
_08056E18:
ldr r0, _08056E30 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08056E3E
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, 0
movs r1, 0
bl CreateWirelessStatusIndicatorSprite
b _08056E3E
.align 2, 0
_08056E30: .4byte gWirelessCommType
_08056E34:
bl map_post_load_hook_exec
lsls r0, 24
cmp r0, 0
beq _08056E54
_08056E3E:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08056E54
_08056E46:
bl SetFieldVBlankCallback
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0x1
b _08056E56
_08056E54:
movs r0, 0
_08056E56:
pop {r4}
pop {r1}
bx r1
thumb_func_end map_loading_iteration_2_link
thumb_func_start do_load_map_stuff_loop
do_load_map_stuff_loop: @ 8056E5C
push {r4,lr}
adds r4, r0, 0
_08056E60:
adds r0, r4, 0
movs r1, 0
bl sub_8056B78
cmp r0, 0
beq _08056E60
pop {r4}
pop {r0}
bx r0
thumb_func_end do_load_map_stuff_loop
thumb_func_start MoveSaveBlocks_ResetHeap_
MoveSaveBlocks_ResetHeap_: @ 8056E74
push {lr}
bl MoveSaveBlocks_ResetHeap
pop {r0}
bx r0
thumb_func_end MoveSaveBlocks_ResetHeap_
thumb_func_start sub_8056E80
sub_8056E80: @ 8056E80
push {r4-r7,lr}
sub sp, 0x4
movs r0, 0
movs r1, 0
bl SetGpuReg
bl ScanlineEffect_Stop
ldr r2, _08056EF8 @ =0x05000002
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r1, _08056EFC @ =0x040000d4
mov r0, sp
str r0, [r1]
str r2, [r1, 0x4]
ldr r0, _08056F00 @ =0x810001ff
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, _08056F04 @ =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_08056EBE:
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 _08056EBE
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
_08056EF8: .4byte 0x05000002
_08056EFC: .4byte 0x040000d4
_08056F00: .4byte 0x810001ff
_08056F04: .4byte 0x81000800
thumb_func_end sub_8056E80
thumb_func_start sub_8056F08
sub_8056F08: @ 8056F08
push {lr}
bl sub_8056A34
bl sub_8056F1C
bl mapdata_load_assets_to_gpu_and_full_redraw
pop {r0}
bx r0
thumb_func_end sub_8056F08
thumb_func_start sub_8056F1C
sub_8056F1C: @ 8056F1C
push {r4,lr}
bl ClearScheduledBgCopiesToVram
bl ResetTempTileDataBuffers
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
ldr r1, _0805700C @ =0x00001f1f
movs r0, 0x48
bl SetGpuReg
ldr r1, _08057010 @ =0x00000101
movs r0, 0x4A
bl SetGpuReg
movs r0, 0x40
movs r1, 0xFF
bl SetGpuReg
movs r0, 0x44
movs r1, 0xFF
bl SetGpuReg
ldr r4, _08057014 @ =0x0000ffff
movs r0, 0x42
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x46
adds r1, r4, 0
bl SetGpuReg
ldr r0, _08057018 @ =gBLDCNTTarget2BGFlags
ldrh r1, [r0, 0x2]
ldrh r2, [r0, 0x4]
orrs r1, r2
ldrh r0, [r0, 0x6]
orrs r1, r0
movs r2, 0x82
lsls r2, 5
adds r0, r2, 0
orrs r1, r0
movs r0, 0x50
bl SetGpuReg
ldr r1, _0805701C @ =0x0000070d
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
bl ScheduleBgCopyTilemapToVram
movs r0, 0x2
bl ScheduleBgCopyTilemapToVram
movs r0, 0x3
bl ScheduleBgCopyTilemapToVram
ldr r1, _08057020 @ =0x00007060
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805700C: .4byte 0x00001f1f
_08057010: .4byte 0x00000101
_08057014: .4byte 0x0000ffff
_08057018: .4byte gBLDCNTTarget2BGFlags
_0805701C: .4byte 0x0000070d
_08057020: .4byte 0x00007060
thumb_func_end sub_8056F1C
thumb_func_start sub_8057024
sub_8057024: @ 8057024
push {r4,lr}
adds r4, r0, 0
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
bl ScanlineEffect_Clear
bl ResetAllPicSprites
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
cmp r4, 0
bne _08057050
movs r0, 0
bl npc_paltag_set_load
b _08057056
_08057050:
movs r0, 0x1
bl npc_paltag_set_load
_08057056:
bl FieldEffectActiveListClear
bl sub_8079C08
bl sub_807B1B8
cmp r4, 0
bne _0805706A
bl sub_806E87C
_0805706A:
bl mapheader_run_script_with_tag_x5
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8057024
thumb_func_start sub_8057074
sub_8057074: @ 8057074
push {lr}
ldr r0, _08057094 @ =gUnknown_300506C
movs r1, 0
strh r1, [r0]
ldr r0, _08057098 @ =gUnknown_3005068
strh r1, [r0]
bl sub_805DE74
movs r0, 0
movs r1, 0
bl sub_805EC30
bl mapheader_run_first_tag4_script_list_match
pop {r0}
bx r0
.align 2, 0
_08057094: .4byte gUnknown_300506C
_08057098: .4byte gUnknown_3005068
thumb_func_end sub_8057074
thumb_func_start mli4_mapscripts_and_other
mli4_mapscripts_and_other: @ 805709C
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _080570F4 @ =gUnknown_300506C
movs r1, 0
strh r1, [r0]
ldr r0, _080570F8 @ =gUnknown_3005068
strh r1, [r0]
bl sub_805DE74
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl GetCameraFocusCoords
bl sub_8055A6C
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, _080570FC @ =gSaveBlock2Ptr
ldr r3, [r3]
ldrb r3, [r3, 0x8]
bl InitPlayerAvatar
ldrb r0, [r5]
bl SetPlayerAvatarTransitionFlags
bl ResetInitialPlayerAvatarState
movs r0, 0
movs r1, 0
bl sub_805EC30
bl mapheader_run_first_tag4_script_list_match
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080570F4: .4byte gUnknown_300506C
_080570F8: .4byte gUnknown_3005068
_080570FC: .4byte gSaveBlock2Ptr
thumb_func_end mli4_mapscripts_and_other
thumb_func_start sub_8057100
sub_8057100: @ 8057100
push {lr}
movs r0, 0
movs r1, 0
bl sub_805EDF0
bl mapheader_run_script_with_tag_x7
pop {r0}
bx r0
thumb_func_end sub_8057100
thumb_func_start sub_8057114
sub_8057114: @ 8057114
push {lr}
ldr r2, _08057138 @ =gMapObjects
ldr r3, _0805713C @ =gPlayerAvatar
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
_08057138: .4byte gMapObjects
_0805713C: .4byte gPlayerAvatar
thumb_func_end sub_8057114
thumb_func_start sub_8057140
sub_8057140: @ 8057140
push {lr}
ldr r0, _08057158 @ =gUnknown_300502C
ldrb r0, [r0]
bl sub_8058504
lsls r0, 24
lsrs r0, 24
bl InitCameraUpdateCallback
pop {r0}
bx r0
.align 2, 0
_08057158: .4byte gUnknown_300502C
thumb_func_end sub_8057140
thumb_func_start sub_805715C
sub_805715C: @ 805715C
push {lr}
ldr r0, _08057174 @ =gUnknown_300502C
ldrb r0, [r0]
bl sub_8058504
lsls r0, 24
lsrs r0, 24
bl InitCameraUpdateCallback
pop {r0}
bx r0
.align 2, 0
_08057174: .4byte gUnknown_300502C
thumb_func_end sub_805715C
thumb_func_start sub_8057178
sub_8057178: @ 8057178
push {r4,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl GetCameraFocusCoords
mov r2, sp
ldr r0, _080571A4 @ =gUnknown_300502C
ldrb r1, [r0]
ldrh r0, [r2]
adds r0, r1
lsls r0, 16
lsrs r0, 16
ldrh r1, [r4]
bl SetCameraFocusCoords
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080571A4: .4byte gUnknown_300502C
thumb_func_end sub_8057178
thumb_func_start sub_80571A8
sub_80571A8: @ 80571A8
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl GetCameraFocusCoords
mov r3, sp
mov r2, sp
ldr r0, _08057224 @ =gUnknown_300502C
ldrb r1, [r0]
ldrh r0, [r2]
subs r0, r1
strh r0, [r3]
movs r6, 0
ldr r0, _08057228 @ =gUnknown_3005030
mov r8, r4
ldrb r0, [r0]
cmp r6, r0
bcs _08057212
ldr r7, _0805722C @ =gLinkPlayers
_080571D8:
lsls r5, r6, 24
lsrs r5, 24
mov r0, sp
ldrh r1, [r0]
adds r1, r6, r1
lsls r1, 16
asrs r1, 16
mov r0, r8
movs r3, 0
ldrsh r2, [r0, r3]
lsls r4, r6, 3
subs r4, r6
lsls r4, 2
adds r4, r7
ldrb r3, [r4, 0x13]
adds r0, r5, 0
bl SpawnLinkPlayerMapObject
ldrb r1, [r4]
adds r0, r5, 0
bl sub_8058878
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
ldr r0, _08057228 @ =gUnknown_3005030
ldrb r0, [r0]
cmp r6, r0
bcc _080571D8
_08057212:
bl sub_80578EC
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08057224: .4byte gUnknown_300502C
_08057228: .4byte gUnknown_3005030
_0805722C: .4byte gLinkPlayers
thumb_func_end sub_80571A8
thumb_func_start sub_8057230
sub_8057230: @ 8057230
push {r4,r5,lr}
movs r4, 0
ldr r0, _08057264 @ =gUnknown_3005030
ldrb r0, [r0]
cmp r4, r0
bcs _0805725E
ldr r5, _08057268 @ =gLinkPlayers
_0805723E:
lsls r0, r4, 24
lsrs r0, 24
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
adds r1, r5
ldrb r1, [r1]
bl sub_8058878
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _08057264 @ =gUnknown_3005030
ldrb r0, [r0]
cmp r4, r0
bcc _0805723E
_0805725E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08057264: .4byte gUnknown_3005030
_08057268: .4byte gLinkPlayers
thumb_func_end sub_8057230
thumb_func_start sub_805726C
sub_805726C: @ 805726C
push {lr}
bl sub_80569BC
ldr r1, _08057298 @ =gUnknown_2036E28
movs r0, 0x1
strb r0, [r1]
bl ScriptContext1_Init
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
ldr r0, _0805729C @ =sub_80C9BFC
bl SetMainCallback2
ldr r1, _080572A0 @ =gMain
ldr r0, _080572A4 @ =sub_80572D8
str r0, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_08057298: .4byte gUnknown_2036E28
_0805729C: .4byte sub_80C9BFC
_080572A0: .4byte gMain
_080572A4: .4byte sub_80572D8
thumb_func_end sub_805726C
thumb_func_start sub_80572A8
sub_80572A8: @ 80572A8
push {lr}
bl sub_80569BC
ldr r0, _080572D0 @ =gUnknown_2036E28
movs r1, 0x1
strb r1, [r0]
bl set_current_map_header_from_sav1
bl ScriptContext1_Init
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
ldr r0, _080572D4 @ =sub_80572D8
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080572D0: .4byte gUnknown_2036E28
_080572D4: .4byte sub_80572D8
thumb_func_end sub_80572A8
thumb_func_start sub_80572D8
sub_80572D8: @ 80572D8
push {lr}
ldr r0, _080572F4 @ =gMain + 0x438
bl sub_8057300
bl SetFieldVBlankCallback
ldr r0, _080572F8 @ =sub_8056534
bl sub_80565E0
ldr r0, _080572FC @ =sub_80565B4
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080572F4: .4byte gMain + 0x438
_080572F8: .4byte sub_8056534
_080572FC: .4byte sub_80565B4
thumb_func_end sub_80572D8
thumb_func_start sub_8057300
sub_8057300: @ 8057300
push {r4,lr}
adds r4, r0, 0
_08057304:
adds r0, r4, 0
bl sub_8057314
cmp r0, 0
beq _08057304
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8057300
thumb_func_start sub_8057314
sub_8057314: @ 8057314
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0xA
bls _08057320
b _0805741A
_08057320:
lsls r0, 2
ldr r1, _0805732C @ =_08057330
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0805732C: .4byte _08057330
.align 2, 0
_08057330:
.4byte _0805735C
.4byte _080573A0
.4byte _080573A6
.4byte _080573AE
.4byte _080573B8
.4byte _080573C2
.4byte _080573C8
.4byte _080573D8
.4byte _080573E8
.4byte _08057404
.4byte _0805740A
_0805735C:
bl sub_80562B0
bl sub_80569BC
bl sub_8111F14
bl sub_81113E4
bl sub_8111438
bl sub_8110AC8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08057390
ldr r1, _0805738C @ =gUnknown_2031DE0
movs r0, 0
strb r0, [r1]
movs r0, 0
bl sub_8055920
b _08057412
.align 2, 0
_0805738C: .4byte gUnknown_2031DE0
_08057390:
ldr r1, _0805739C @ =gUnknown_2031DE0
movs r0, 0x1
strb r0, [r1]
bl sub_80559A8
b _08057412
.align 2, 0
_0805739C: .4byte gUnknown_2031DE0
_080573A0:
bl sub_8110FCC
b _08057412
_080573A6:
movs r0, 0
bl sub_8057024
b _08057412
_080573AE:
bl sub_8057100
bl sub_8057114
b _08057412
_080573B8:
bl sub_8056A34
bl sub_8056F1C
b _08057412
_080573C2:
bl move_tilemap_camera_to_upper_left_corner
b _08057412
_080573C8:
ldr r0, _080573D4 @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset1_to_vram
b _08057412
.align 2, 0
_080573D4: .4byte gMapHeader
_080573D8:
ldr r0, _080573E4 @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset2_to_vram
b _08057412
.align 2, 0
_080573E4: .4byte gMapHeader
_080573E8:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08057428
ldr r0, _08057400 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08057412
.align 2, 0
_08057400: .4byte gMapHeader
_08057404:
bl DrawWholeMapView
b _08057412
_0805740A:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
bl sub_815A540
_08057412:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08057428
_0805741A:
bl map_post_load_hook_exec
lsls r0, 24
cmp r0, 0
beq _08057428
movs r0, 0x1
b _0805742A
_08057428:
movs r0, 0
_0805742A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8057314
thumb_func_start sub_8057430
sub_8057430: @ 8057430
push {lr}
bl sub_80569BC
bl StopMapMusic
ldr r1, _08057484 @ =gUnknown_2036E28
movs r0, 0x3
strb r0, [r1]
bl sub_8056420
bl set_current_map_header_from_sav1
bl sub_80550A8
bl UnfreezeMapObjects
bl sub_8054E40
bl sub_80589E8
bl PlayTimeCounter_Start
bl ScriptContext1_Init
ldr r1, _08057488 @ =gUnknown_2031DE0
movs r0, 0x1
strb r0, [r1]
bl sav2_x1_query_bit1
cmp r0, 0x1
bne _08057490
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
bl WarpIntoMap
ldr r0, _0805748C @ =CB2_LoadMap
bl SetMainCallback2
b _0805749A
.align 2, 0
_08057484: .4byte gUnknown_2036E28
_08057488: .4byte gUnknown_2031DE0
_0805748C: .4byte CB2_LoadMap
_08057490:
ldr r0, _080574A0 @ =sub_8056534
bl sub_80565E0
bl CB2_ReturnToField
_0805749A:
pop {r0}
bx r0
.align 2, 0
_080574A0: .4byte sub_8056534
thumb_func_end sub_8057430
thumb_func_start sub_80574A4
sub_80574A4: @ 80574A4
push {r4,lr}
ldr r0, _080574E8 @ =gPaletteFade
ldrb r0, [r0, 0x7]
lsrs r0, 7
adds r4, r0, 0
cmp r4, 0
beq _080574B8
movs r0, 0
bl SetVBlankCallback
_080574B8:
bl RunTasks
bl AnimateSprites
bl sub_805ACF0
bl UpdateCameraPanning
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_806FFBC
bl DoScheduledBgTilemapCopiesToVram
cmp r4, 0
beq _080574E0
bl SetFieldVBlankCallback
_080574E0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080574E8: .4byte gPaletteFade
thumb_func_end sub_80574A4
thumb_func_start sub_80574EC
sub_80574EC: @ 80574EC
push {lr}
ldr r0, _08057500 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08057504
movs r0, 0
b _08057506
.align 2, 0
_08057500: .4byte gPaletteFade
_08057504:
movs r0, 0x1
_08057506:
pop {r1}
bx r1
thumb_func_end sub_80574EC
thumb_func_start sub_805750C
sub_805750C: @ 805750C
push {lr}
ldr r3, _08057520 @ =gUnknown_2031DE4
str r1, [r3]
ldr r1, _08057524 @ =gUnknown_2036E28
strb r2, [r1]
movs r1, 0
bl sub_8057528
pop {r1}
bx r1
.align 2, 0
_08057520: .4byte gUnknown_2031DE4
_08057524: .4byte gUnknown_2036E28
thumb_func_end sub_805750C
thumb_func_start sub_8057528
sub_8057528: @ 8057528
push {r4-r7,lr}
adds r7, r0, 0
ldrb r1, [r7]
cmp r1, 0x1
beq _08057560
cmp r1, 0x1
bgt _0805753C
cmp r1, 0
beq _08057546
b _08057648
_0805753C:
cmp r1, 0x2
beq _08057620
cmp r1, 0x3
beq _0805762C
b _08057648
_08057546:
ldr r0, _08057558 @ =gUnknown_2031DEA
strh r1, [r0]
ldr r0, _0805755C @ =gUnknown_2031DE8
strh r1, [r0]
_0805754E:
ldrb r0, [r7]
adds r0, 0x1
strb r0, [r7]
b _08057648
.align 2, 0
_08057558: .4byte gUnknown_2031DEA
_0805755C: .4byte gUnknown_2031DE8
_08057560:
ldr r3, _080575F0 @ =gUnknown_2031DEA
movs r0, 0
ldrsh r1, [r3, r0]
ldr r0, _080575F4 @ =gUnknown_2031DE4
ldr r4, [r0]
lsls r1, 3
adds r1, r4
ldrb r2, [r1, 0x2]
ldr r0, _080575F8 @ =0xffffff00
ands r0, r5
orrs r0, r2
ldrb r1, [r1, 0x4]
lsls r1, 8
ldr r2, _080575FC @ =0xffff00ff
ands r0, r2
adds r5, r0, 0
orrs r5, r1
movs r0, 0xFF
lsls r0, 16
orrs r5, r0
ldrh r0, [r3]
adds r0, 0x1
strh r0, [r3]
movs r2, 0
ldrsh r1, [r3, r2]
lsls r1, 3
adds r1, r4
ldrh r2, [r1]
ldr r0, _08057600 @ =0xffff0000
ands r0, r6
orrs r0, r2
ldrh r1, [r1, 0x2]
lsls r1, 16
ldr r2, _08057604 @ =0x0000ffff
ands r0, r2
adds r6, r0, 0
orrs r6, r1
ldr r0, _08057608 @ =gUnknown_2031DBC
str r5, [r0]
str r6, [r0, 0x4]
ldr r1, _0805760C @ =gUnknown_2031DE8
movs r2, 0
ldrsh r0, [r3, r2]
lsls r0, 3
adds r0, r4
ldrh r0, [r0, 0x4]
strh r0, [r1]
bl WarpIntoMap
ldr r2, _08057610 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
bl ScriptContext1_Init
bl ScriptContext2_Disable
movs r0, 0
bl sub_80565E0
ldr r1, _08057614 @ =gFieldCallback2
ldr r0, _08057618 @ =sub_80574EC
str r0, [r1]
ldr r0, _0805761C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0
strb r1, [r0]
b _0805754E
.align 2, 0
_080575F0: .4byte gUnknown_2031DEA
_080575F4: .4byte gUnknown_2031DE4
_080575F8: .4byte 0xffffff00
_080575FC: .4byte 0xffff00ff
_08057600: .4byte 0xffff0000
_08057604: .4byte 0x0000ffff
_08057608: .4byte gUnknown_2031DBC
_0805760C: .4byte gUnknown_2031DE8
_08057610: .4byte gPaletteFade
_08057614: .4byte gFieldCallback2
_08057618: .4byte sub_80574EC
_0805761C: .4byte gMain
_08057620:
bl sub_8057650
lsls r0, 24
cmp r0, 0
beq _08057648
b _0805754E
_0805762C:
ldr r0, _08057640 @ =gUnknown_3005050
ldr r1, _08057644 @ =sub_8057748
str r1, [r0]
bl SetFieldVBlankCallback
movs r0, 0
strb r0, [r7]
movs r0, 0x1
b _0805764A
.align 2, 0
_08057640: .4byte gUnknown_3005050
_08057644: .4byte sub_8057748
_08057648:
movs r0, 0
_0805764A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8057528
thumb_func_start sub_8057650
sub_8057650: @ 8057650
push {r4,lr}
ldr r4, _08057664 @ =gMain + 0x438
ldrb r0, [r4]
cmp r0, 0x8
bhi _0805773C
lsls r0, 2
ldr r1, _08057668 @ =_0805766C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08057664: .4byte gMain + 0x438
_08057668: .4byte _0805766C
.align 2, 0
_0805766C:
.4byte _08057690
.4byte _0805769C
.4byte _080576C2
.4byte _080576CC
.4byte _080576D2
.4byte _080576E0
.4byte _080576F0
.4byte _0805770C
.4byte _08057712
_08057690:
bl sub_8056354
movs r0, 0
bl sub_8055920
b _0805772A
_0805769C:
bl ScanlineEffect_Clear
bl ResetAllPicSprites
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
bl FieldEffectActiveListClear
bl sub_8079C08
bl sub_807B1B8
bl sub_806E87C
bl mapheader_run_script_with_tag_x5
b _0805772A
_080576C2:
bl sub_8056A34
bl sub_8056F1C
b _0805772A
_080576CC:
bl move_tilemap_camera_to_upper_left_corner
b _0805772A
_080576D2:
ldr r0, _080576DC @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset1_to_vram
b _0805772A
.align 2, 0
_080576DC: .4byte gMapHeader
_080576E0:
ldr r0, _080576EC @ =gMapHeader
ldr r0, [r0]
bl copy_map_tileset2_to_vram
b _0805772A
.align 2, 0
_080576EC: .4byte gMapHeader
_080576F0:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08057740
ldr r0, _08057708 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _0805772A
.align 2, 0
_08057708: .4byte gMapHeader
_0805770C:
bl DrawWholeMapView
b _0805772A
_08057712:
bl cur_mapheader_run_tileset_funcs_after_some_cpuset
ldr r2, _08057734 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldr r2, _08057738 @ =0x3fffffff
movs r0, 0
movs r1, 0
bl sub_807A944
_0805772A:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08057740
.align 2, 0
_08057734: .4byte gPaletteFade
_08057738: .4byte 0x3fffffff
_0805773C:
movs r0, 0x1
b _08057742
_08057740:
movs r0, 0
_08057742:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8057650
thumb_func_start sub_8057748
sub_8057748: @ 8057748
push {r4-r6,lr}
adds r2, r0, 0
ldr r0, _08057784 @ =gUnknown_2031DE8
movs r3, 0
ldrsh r1, [r0, r3]
adds r5, r0, 0
ldr r4, _08057788 @ =gUnknown_2031DEA
ldr r6, _0805778C @ =gUnknown_2031DE4
cmp r1, 0
bne _080577F4
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
movs r1, 0
ldrsh r0, [r4, r1]
ldr r1, [r6]
lsls r0, 3
adds r3, r0, r1
ldrh r0, [r3]
subs r0, 0xFB
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bhi _080577D4
lsls r0, 2
ldr r1, _08057790 @ =_08057794
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08057784: .4byte gUnknown_2031DE8
_08057788: .4byte gUnknown_2031DEA
_0805778C: .4byte gUnknown_2031DE4
_08057790: .4byte _08057794
.align 2, 0
_08057794:
.4byte _080577C0
.4byte _08057814
.4byte _080577CA
.4byte _08057814
.4byte _080577A8
_080577A8:
movs r0, 0
str r0, [r2, 0x8]
str r0, [r2, 0xC]
str r0, [r2]
ldr r0, _080577BC @ =sub_805781C
movs r1, 0
bl CreateTask
b _08057814
.align 2, 0
_080577BC: .4byte sub_805781C
_080577C0:
movs r0, 0
str r0, [r2, 0x8]
str r0, [r2, 0xC]
str r0, [r2]
b _080577F4
_080577CA:
movs r0, 0
str r0, [r2, 0x8]
str r0, [r2, 0xC]
str r0, [r2]
b _08057814
_080577D4:
ldrh r0, [r3, 0x4]
strh r0, [r5]
movs r3, 0
ldrsh r0, [r4, r3]
lsls r0, 3
adds r0, r1
movs r3, 0
ldrsh r0, [r0, r3]
str r0, [r2, 0x8]
movs r3, 0
ldrsh r0, [r4, r3]
lsls r0, 3
adds r0, r1
movs r1, 0x2
ldrsh r0, [r0, r1]
str r0, [r2, 0xC]
_080577F4:
movs r3, 0
ldrsh r0, [r4, r3]
ldr r1, [r6]
lsls r0, 3
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0xFF
bne _0805780E
movs r0, 0
str r0, [r2, 0x8]
str r0, [r2, 0xC]
b _08057814
_0805780E:
ldrh r0, [r5]
subs r0, 0x1
strh r0, [r5]
_08057814:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8057748
thumb_func_start sub_805781C
sub_805781C: @ 805781C
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _0805784C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08057850 @ =sub_8057854
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805784C: .4byte gTasks
_08057850: .4byte sub_8057854
thumb_func_end sub_805781C
thumb_func_start sub_8057854
sub_8057854: @ 8057854
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0805787C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08057876
bl CleanupOverworldWindowsAndTilemaps
ldr r0, _08057880 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
_08057876:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0805787C: .4byte gPaletteFade
_08057880: .4byte CB2_LoadMap
thumb_func_end sub_8057854
thumb_func_start c1_link_related
c1_link_related: @ 8057884
push {r4,lr}
ldr r0, _080578C8 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0805789E
bl sub_80F90DC
cmp r0, 0
beq _0805789E
bl sub_800A00C
cmp r0, 0
bne _080578C0
_0805789E:
ldr r0, _080578CC @ =gUnknown_300502C
ldrb r4, [r0]
ldr r0, _080578D0 @ =gUnknown_3003E60
adds r1, r4, 0
bl sub_8057BE4
ldr r0, _080578D4 @ =gUnknown_3000E84
ldr r1, [r0]
adds r0, r4, 0
bl _call_via_r1
lsls r0, 16
lsrs r0, 16
bl sub_8057C4C
bl sub_80578EC
_080578C0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080578C8: .4byte gWirelessCommType
_080578CC: .4byte gUnknown_300502C
_080578D0: .4byte gUnknown_3003E60
_080578D4: .4byte gUnknown_3000E84
thumb_func_end c1_link_related
thumb_func_start sub_80578D8
sub_80578D8: @ 80578D8
push {lr}
bl sub_805793C
ldr r0, _080578E8 @ =sub_8057D5C
bl c1_link_related_func_set
pop {r0}
bx r0
.align 2, 0
_080578E8: .4byte sub_8057D5C
thumb_func_end sub_80578D8
thumb_func_start sub_80578EC
sub_80578EC: @ 80578EC
push {lr}
ldr r0, _080578F8 @ =gUnknown_3003E60
bl sub_8057D48
pop {r0}
bx r0
.align 2, 0
_080578F8: .4byte gUnknown_3003E60
thumb_func_end sub_80578EC
thumb_func_start c1_link_related_func_set
c1_link_related_func_set: @ 80578FC
ldr r2, _08057908 @ =gUnknown_3000E89
movs r1, 0
strb r1, [r2]
ldr r1, _0805790C @ =gUnknown_3000E84
str r0, [r1]
bx lr
.align 2, 0
_08057908: .4byte gUnknown_3000E89
_0805790C: .4byte gUnknown_3000E84
thumb_func_end c1_link_related_func_set
thumb_func_start sub_8057910
sub_8057910: @ 8057910
push {lr}
ldr r0, _08057934 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _0805792E
ldr r1, _08057938 @ =gUnknown_3000E89
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3C
bls _0805792E
bl sub_80FA190
_0805792E:
pop {r0}
bx r0
.align 2, 0
_08057934: .4byte gWirelessCommType
_08057938: .4byte gUnknown_3000E89
thumb_func_end sub_8057910
thumb_func_start sub_805793C
sub_805793C: @ 805793C
push {lr}
ldr r1, _08057950 @ =gUnknown_3000E80
movs r2, 0x80
adds r0, r1, 0x3
_08057944:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _08057944
pop {r0}
bx r0
.align 2, 0
_08057950: .4byte gUnknown_3000E80
thumb_func_end sub_805793C
thumb_func_start sub_8057954
sub_8057954: @ 8057954
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
ldr r0, _08057974 @ =gUnknown_3005030
ldrb r2, [r0]
movs r1, 0
cmp r1, r2
bge _08057982
ldr r4, _08057978 @ =gUnknown_3000E80
_08057966:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, r3
beq _0805797C
movs r0, 0
b _08057984
.align 2, 0
_08057974: .4byte gUnknown_3005030
_08057978: .4byte gUnknown_3000E80
_0805797C:
adds r1, 0x1
cmp r1, r2
blt _08057966
_08057982:
movs r0, 0x1
_08057984:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8057954
thumb_func_start sub_805798C
sub_805798C: @ 805798C
push {r4,lr}
lsls r0, 16
lsrs r3, r0, 16
ldr r0, _080579AC @ =gUnknown_3005030
ldrb r2, [r0]
movs r1, 0
cmp r1, r2
bge _080579BA
ldr r4, _080579B0 @ =gUnknown_3000E80
_0805799E:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, r3
bne _080579B4
movs r0, 0x1
b _080579BC
.align 2, 0
_080579AC: .4byte gUnknown_3005030
_080579B0: .4byte gUnknown_3000E80
_080579B4:
adds r1, 0x1
cmp r1, r2
blt _0805799E
_080579BA:
movs r0, 0
_080579BC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_805798C
thumb_func_start sub_80579C4
sub_80579C4: @ 80579C4
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, _08057A14 @ =gUnknown_3000E80
adds r5, r7, r0
ldrb r0, [r5]
cmp r0, 0x80
beq _080579E4
b _08057B5E
_080579E4:
adds r0, r6, 0
bl sub_805801C
adds r4, r0, 0
cmp r4, 0
beq _08057A1C
bl sub_805812C
mov r1, r9
strh r0, [r1]
movs r0, 0x81
strb r0, [r5]
ldrb r0, [r6, 0x1]
cmp r0, 0
bne _08057A04
b _08057BD2
_08057A04:
ldr r0, _08057A18 @ =sub_8057DA4
bl c1_link_related_func_set
adds r0, r4, 0
bl sub_80581DC
b _08057BD2
.align 2, 0
_08057A14: .4byte gUnknown_3000E80
_08057A18: .4byte sub_8057DA4
_08057A1C:
movs r0, 0x83
bl sub_805798C
cmp r0, 0x1
bne _08057A44
movs r0, 0x81
strb r0, [r5]
ldrb r0, [r6, 0x1]
cmp r0, 0
bne _08057A32
b _08057BD2
_08057A32:
ldr r0, _08057A40 @ =sub_8057DA4
bl c1_link_related_func_set
bl sub_8058230
b _08057BD2
.align 2, 0
_08057A40: .4byte sub_8057DA4
_08057A44:
mov r0, r8
subs r0, 0x12
cmp r0, 0xA
bls _08057A4E
b _08057B5E
_08057A4E:
lsls r0, 2
ldr r1, _08057A58 @ =_08057A5C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08057A58: .4byte _08057A5C
.align 2, 0
_08057A5C:
.4byte _08057AB4
.4byte _08057B5E
.4byte _08057B5E
.4byte _08057B5E
.4byte _08057B5E
.4byte _08057B5E
.4byte _08057A88
.4byte _08057AE0
.4byte _08057B5E
.4byte _08057B10
.4byte _08057B3C
_08057A88:
adds r0, r6, 0
bl sub_8058004
cmp r0, 0
beq _08057B5E
ldr r0, _08057AAC @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x81
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057B5E
ldr r0, _08057AB0 @ =sub_8057DA4
bl c1_link_related_func_set
bl sub_80581C8
b _08057B5E
.align 2, 0
_08057AAC: .4byte gUnknown_3000E80
_08057AB0: .4byte sub_8057DA4
_08057AB4:
adds r0, r6, 0
bl sub_8058034
cmp r0, 0x1
bne _08057B5E
ldr r0, _08057AD8 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x81
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057B5E
ldr r0, _08057ADC @ =sub_8057DA4
bl c1_link_related_func_set
bl sub_80581F8
b _08057B5E
.align 2, 0
_08057AD8: .4byte gUnknown_3000E80
_08057ADC: .4byte sub_8057DA4
_08057AE0:
adds r0, r6, 0
bl sub_8058060
adds r4, r0, 0
cmp r4, 0
beq _08057B5E
ldr r0, _08057B08 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x81
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057B5E
ldr r0, _08057B0C @ =sub_8057DA4
bl c1_link_related_func_set
adds r0, r4, 0
bl sub_8058214
b _08057B5E
.align 2, 0
_08057B08: .4byte gUnknown_3000E80
_08057B0C: .4byte sub_8057DA4
_08057B10:
adds r0, r6, 0
bl sub_8057FEC
cmp r0, 0
beq _08057B5E
ldr r0, _08057B34 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x81
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057B5E
ldr r0, _08057B38 @ =sub_8057DC8
bl c1_link_related_func_set
bl sub_80581BC
b _08057B5E
.align 2, 0
_08057B34: .4byte gUnknown_3000E80
_08057B38: .4byte sub_8057DC8
_08057B3C:
adds r0, r6, 0
bl sub_8057FEC
cmp r0, 0
beq _08057B5E
ldr r0, _08057B70 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x81
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057B5E
ldr r0, _08057B74 @ =sub_8057DEC
bl c1_link_related_func_set
bl sub_80581BC
_08057B5E:
mov r0, r8
cmp r0, 0x17
beq _08057B84
cmp r0, 0x17
bgt _08057B78
cmp r0, 0x16
beq _08057B94
b _08057BD2
.align 2, 0
_08057B70: .4byte gUnknown_3000E80
_08057B74: .4byte sub_8057DEC
_08057B78:
mov r1, r8
cmp r1, 0x1A
beq _08057BA4
cmp r1, 0x1D
beq _08057BC4
b _08057BD2
_08057B84:
ldr r0, _08057B90 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x83
strb r1, [r0]
b _08057BD2
.align 2, 0
_08057B90: .4byte gUnknown_3000E80
_08057B94:
ldr r0, _08057BA0 @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x82
strb r1, [r0]
b _08057BD2
.align 2, 0
_08057BA0: .4byte gUnknown_3000E80
_08057BA4:
ldr r0, _08057BBC @ =gUnknown_3000E80
adds r0, r7, r0
movs r1, 0x80
strb r1, [r0]
ldrb r0, [r6, 0x1]
cmp r0, 0
beq _08057BD2
ldr r0, _08057BC0 @ =sub_8057D5C
bl c1_link_related_func_set
b _08057BD2
.align 2, 0
_08057BBC: .4byte gUnknown_3000E80
_08057BC0: .4byte sub_8057D5C
_08057BC4:
ldr r0, _08057BE0 @ =gUnknown_3000E80
adds r1, r7, r0
ldrb r0, [r1]
cmp r0, 0x82
bne _08057BD2
movs r0, 0x81
strb r0, [r1]
_08057BD2:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08057BE0: .4byte gUnknown_3000E80
thumb_func_end sub_80579C4
thumb_func_start sub_8057BE4
sub_8057BE4: @ 8057BE4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r8, r1
movs r6, 0
add r5, sp, 0x10
mov r9, r5
adds r7, r0, 0
_08057BF8:
ldrb r4, [r7]
movs r0, 0
strh r0, [r5]
adds r0, r6, 0
mov r1, r8
mov r2, sp
bl sub_8057F84
adds r0, r6, 0
adds r1, r4, 0
mov r2, sp
adds r3, r5, 0
bl sub_80579C4
ldr r0, _08057C48 @ =gUnknown_3000E80
adds r0, r6, r0
ldrb r0, [r0]
cmp r0, 0x80
bne _08057C28
adds r0, r4, 0
bl sub_8057D14
mov r1, r9
strh r0, [r1]
_08057C28:
lsls r0, r6, 24
lsrs r0, 24
ldrb r1, [r5]
bl sub_8058618
adds r7, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _08057BF8
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08057C48: .4byte gUnknown_3000E80
thumb_func_end sub_8057BE4
thumb_func_start sub_8057C4C
sub_8057C4C: @ 8057C4C
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
ldr r1, _08057C64 @ =0xffef0000
adds r0, r1
lsrs r0, 16
cmp r0, 0xC
bhi _08057C6C
ldr r0, _08057C68 @ =gUnknown_3005028
strh r4, [r0]
b _08057C72
.align 2, 0
_08057C64: .4byte 0xffef0000
_08057C68: .4byte gUnknown_3005028
_08057C6C:
ldr r1, _08057CB0 @ =gUnknown_3005028
movs r0, 0x11
strh r0, [r1]
_08057C72:
ldr r0, _08057CB4 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
beq _08057CA8
bl sub_805833C
cmp r0, 0x1
bls _08057CA8
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08057CA8
bl sub_800A00C
cmp r0, 0x1
bne _08057CA8
cmp r4, 0x11
blt _08057CA8
cmp r4, 0x15
ble _08057CA2
cmp r4, 0x19
bgt _08057CA8
cmp r4, 0x18
blt _08057CA8
_08057CA2:
ldr r1, _08057CB0 @ =gUnknown_3005028
movs r0, 0
strh r0, [r1]
_08057CA8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08057CB0: .4byte gUnknown_3005028
_08057CB4: .4byte gWirelessCommType
thumb_func_end sub_8057C4C
thumb_func_start sub_8057CB8
sub_8057CB8: @ 8057CB8
push {lr}
ldr r2, _08057CCC @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08057CD0
movs r0, 0x13
b _08057D10
.align 2, 0
_08057CCC: .4byte gMain
_08057CD0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08057CDC
movs r0, 0x12
b _08057D10
_08057CDC:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08057CE8
movs r0, 0x14
b _08057D10
_08057CE8:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08057CF4
movs r0, 0x15
b _08057D10
_08057CF4:
ldrh r1, [r2, 0x2E]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08057D02
movs r0, 0x18
b _08057D10
_08057D02:
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08057D0E
movs r0, 0x11
b _08057D10
_08057D0E:
movs r0, 0x19
_08057D10:
pop {r1}
bx r1
thumb_func_end sub_8057CB8
thumb_func_start sub_8057D14
sub_8057D14: @ 8057D14
push {lr}
lsls r0, 16
lsrs r0, 16
adds r1, r0, 0
cmp r0, 0x13
beq _08057D3A
cmp r0, 0x13
bgt _08057D2A
cmp r0, 0x12
beq _08057D3E
b _08057D42
_08057D2A:
cmp r1, 0x14
beq _08057D36
cmp r1, 0x15
bne _08057D42
movs r0, 0x4
b _08057D44
_08057D36:
movs r0, 0x3
b _08057D44
_08057D3A:
movs r0, 0x1
b _08057D44
_08057D3E:
movs r0, 0x2
b _08057D44
_08057D42:
movs r0, 0
_08057D44:
pop {r1}
bx r1
thumb_func_end sub_8057D14
thumb_func_start sub_8057D48
sub_8057D48: @ 8057D48
push {lr}
movs r2, 0x11
adds r1, r0, 0x6
_08057D4E:
strh r2, [r1]
subs r1, 0x2
cmp r1, r0
bge _08057D4E
pop {r0}
bx r0
thumb_func_end sub_8057D48
thumb_func_start sub_8057D5C
sub_8057D5C: @ 8057D5C
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_IsEnabled
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08057D70
movs r0, 0x11
b _08057D92
_08057D70:
bl sub_800B248
cmp r0, 0x4
bls _08057D7C
movs r0, 0x1B
b _08057D92
_08057D7C:
bl sub_805833C
cmp r0, 0x4
bls _08057D88
movs r0, 0x1C
b _08057D92
_08057D88:
adds r0, r4, 0
bl sub_8057CB8
lsls r0, 16
lsrs r0, 16
_08057D92:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8057D5C
thumb_func_start sub_8057D98
sub_8057D98: @ 8057D98
push {lr}
bl sub_8057910
movs r0, 0x11
pop {r1}
bx r1
thumb_func_end sub_8057D98
thumb_func_start sub_8057DA4
sub_8057DA4: @ 8057DA4
push {r4,lr}
bl ScriptContext2_IsEnabled
lsls r0, 24
lsrs r0, 24
movs r4, 0x11
cmp r0, 0x1
beq _08057DBC
movs r4, 0x1A
ldr r0, _08057DC4 @ =sub_8057D98
bl c1_link_related_func_set
_08057DBC:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08057DC4: .4byte sub_8057D98
thumb_func_end sub_8057DA4
thumb_func_start sub_8057DC8
sub_8057DC8: @ 8057DC8
push {r4,lr}
bl sub_800B248
movs r4, 0x11
cmp r0, 0x2
bhi _08057DE0
movs r4, 0x1A
bl ScriptContext2_Disable
ldr r0, _08057DE8 @ =sub_8057D98
bl c1_link_related_func_set
_08057DE0:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08057DE8: .4byte sub_8057D98
thumb_func_end sub_8057DC8
thumb_func_start sub_8057DEC
sub_8057DEC: @ 8057DEC
push {r4,lr}
bl sub_805833C
movs r4, 0x11
cmp r0, 0x2
bhi _08057E04
movs r4, 0x1A
bl ScriptContext2_Disable
ldr r0, _08057E0C @ =sub_8057D98
bl c1_link_related_func_set
_08057E04:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08057E0C: .4byte sub_8057D98
thumb_func_end sub_8057DEC
thumb_func_start sub_8057E10
sub_8057E10: @ 8057E10
push {lr}
bl sub_8057910
movs r0, 0x11
pop {r1}
bx r1
thumb_func_end sub_8057E10
thumb_func_start sub_8057E1C
sub_8057E1C: @ 8057E1C
push {lr}
ldr r1, _08057E40 @ =gUnknown_3000E80
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x82
bne _08057E4C
ldr r0, _08057E44 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08057E50
ldr r0, _08057E48 @ =sub_8057E10
bl c1_link_related_func_set
movs r0, 0x1D
b _08057E52
.align 2, 0
_08057E40: .4byte gUnknown_3000E80
_08057E44: .4byte gMain
_08057E48: .4byte sub_8057E10
_08057E4C:
bl sub_8057910
_08057E50:
movs r0, 0x11
_08057E52:
pop {r1}
bx r1
thumb_func_end sub_8057E1C
thumb_func_start sub_8057E58
sub_8057E58: @ 8057E58
push {lr}
ldr r0, _08057E68 @ =sub_8057E1C
bl c1_link_related_func_set
movs r0, 0x16
pop {r1}
bx r1
.align 2, 0
_08057E68: .4byte sub_8057E1C
thumb_func_end sub_8057E58
thumb_func_start sub_8057E6C
sub_8057E6C: @ 8057E6C
movs r0, 0x11
bx lr
thumb_func_end sub_8057E6C
thumb_func_start sub_8057E70
sub_8057E70: @ 8057E70
push {lr}
ldr r1, _08057E9C @ =gUnknown_3000E80
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x83
beq _08057E80
bl sub_8057910
_08057E80:
movs r0, 0x83
bl sub_8057954
cmp r0, 0x1
bne _08057E96
ldr r0, _08057EA0 @ =gUnknown_81BB9FC
bl ScriptContext1_SetupScript
ldr r0, _08057EA4 @ =sub_8057E6C
bl c1_link_related_func_set
_08057E96:
movs r0, 0x11
pop {r1}
bx r1
.align 2, 0
_08057E9C: .4byte gUnknown_3000E80
_08057EA0: .4byte gUnknown_81BB9FC
_08057EA4: .4byte sub_8057E6C
thumb_func_end sub_8057E70
thumb_func_start sub_8057EA8
sub_8057EA8: @ 8057EA8
push {lr}
ldr r0, _08057EB8 @ =sub_8057E70
bl c1_link_related_func_set
movs r0, 0x17
pop {r1}
bx r1
.align 2, 0
_08057EB8: .4byte sub_8057E70
thumb_func_end sub_8057EA8
thumb_func_start sub_8057EBC
sub_8057EBC: @ 8057EBC
movs r0, 0x11
bx lr
thumb_func_end sub_8057EBC
thumb_func_start sub_8057EC0
sub_8057EC0: @ 8057EC0
push {lr}
movs r0, 0x83
bl sub_805798C
cmp r0, 0x1
beq _08057EFC
ldr r0, _08057F00 @ =gUnknown_3000E84
ldr r2, [r0]
ldr r1, _08057F04 @ =sub_8057E1C
adds r3, r0, 0
cmp r2, r1
bne _08057EE6
ldr r1, _08057F08 @ =gUnknown_3000E80
ldr r0, _08057F0C @ =gUnknown_300502C
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x82
bne _08057F1E
_08057EE6:
ldr r1, [r3]
ldr r0, _08057F10 @ =sub_8057E10
cmp r1, r0
bne _08057F14
ldr r1, _08057F08 @ =gUnknown_3000E80
ldr r0, _08057F0C @ =gUnknown_300502C
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x81
bne _08057F14
_08057EFC:
movs r0, 0x2
b _08057F24
.align 2, 0
_08057F00: .4byte gUnknown_3000E84
_08057F04: .4byte sub_8057E1C
_08057F08: .4byte gUnknown_3000E80
_08057F0C: .4byte gUnknown_300502C
_08057F10: .4byte sub_8057E10
_08057F14:
movs r0, 0x82
bl sub_8057954
cmp r0, 0
bne _08057F22
_08057F1E:
movs r0, 0
b _08057F24
_08057F22:
movs r0, 0x1
_08057F24:
pop {r1}
bx r1
thumb_func_end sub_8057EC0
thumb_func_start sub_8057F28
sub_8057F28: @ 8057F28
push {lr}
movs r0, 0x83
bl sub_805798C
pop {r1}
bx r1
thumb_func_end sub_8057F28
thumb_func_start sub_8057F34
sub_8057F34: @ 8057F34
push {lr}
ldr r0, _08057F44 @ =sub_8057E58
bl c1_link_related_func_set
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08057F44: .4byte sub_8057E58
thumb_func_end sub_8057F34
thumb_func_start sub_8057F48
sub_8057F48: @ 8057F48
push {lr}
ldr r0, _08057F58 @ =sub_8057DA4
bl c1_link_related_func_set
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08057F58: .4byte sub_8057DA4
thumb_func_end sub_8057F48
thumb_func_start sub_8057F5C
sub_8057F5C: @ 8057F5C
push {lr}
ldr r0, _08057F6C @ =sub_8057EA8
bl c1_link_related_func_set
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08057F6C: .4byte sub_8057EA8
thumb_func_end sub_8057F5C
thumb_func_start sub_8057F70
sub_8057F70: @ 8057F70
push {lr}
ldr r0, _08057F80 @ =sub_8057EBC
bl c1_link_related_func_set
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08057F80: .4byte sub_8057EBC
thumb_func_end sub_8057F70
thumb_func_start sub_8057F84
sub_8057F84: @ 8057F84
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 _08057F96
movs r0, 0x1
_08057F96:
strb r0, [r6, 0x1]
ldr r1, _08057FE8 @ =gUnknown_2031DEC
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_805854C
strb r0, [r6, 0x3]
mov r5, sp
adds r5, 0x2
adds r0, r4, 0
mov r1, sp
adds r2, r5, 0
bl sub_8058524
mov r0, sp
ldrh r0, [r0]
strh r0, [r6, 0x4]
ldrh r0, [r5]
strh r0, [r6, 0x6]
adds r0, r4, 0
bl sub_805856C
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
_08057FE8: .4byte gUnknown_2031DEC
thumb_func_end sub_8057F84
thumb_func_start sub_8057FEC
sub_8057FEC: @ 8057FEC
push {lr}
ldrb r0, [r0, 0x2]
cmp r0, 0x2
beq _08057FF8
cmp r0, 0
bne _08057FFC
_08057FF8:
movs r0, 0x1
b _08057FFE
_08057FFC:
movs r0, 0
_08057FFE:
pop {r1}
bx r1
thumb_func_end sub_8057FEC
thumb_func_start sub_8058004
sub_8058004: @ 8058004
push {lr}
ldrb r0, [r0, 0x2]
cmp r0, 0x2
beq _08058010
cmp r0, 0
bne _08058014
_08058010:
movs r0, 0x1
b _08058016
_08058014:
movs r0, 0
_08058016:
pop {r1}
bx r1
thumb_func_end sub_8058004
thumb_func_start sub_805801C
sub_805801C: @ 805801C
push {lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0x2
bne _0805802E
adds r0, r1, 0x4
bl sub_806DEC4
b _08058030
_0805802E:
movs r0, 0
_08058030:
pop {r1}
bx r1
thumb_func_end sub_805801C
thumb_func_start sub_8058034
sub_8058034: @ 8058034
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x2]
cmp r0, 0x2
beq _08058042
cmp r0, 0
bne _08058058
_08058042:
ldrb r0, [r4, 0xC]
bl MetatileBehavior_IsSouthArrowWarp
lsls r0, 24
cmp r0, 0
beq _08058058
ldrb r0, [r4, 0x3]
cmp r0, 0x1
bne _08058058
movs r0, 0x1
b _0805805A
_08058058:
movs r0, 0
_0805805A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8058034
thumb_func_start sub_8058060
sub_8058060: @ 8058060
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _08058074
cmp r0, 0x2
beq _08058074
movs r0, 0
b _08058122
_08058074:
ldr r0, [r4, 0x4]
ldr r1, [r4, 0x8]
str r0, [sp]
str r1, [sp, 0x4]
ldr r3, _080580E4 @ =gDirectionToVectors
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, _080580E8 @ =0xffff0000
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, _080580EC @ =0x0000ffff
ands r1, r2
orrs r1, r0
str r1, [sp]
ldr r2, _080580F0 @ =0xffffff00
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 GetLinkPlayerIdAt
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
cmp r1, 0x4
beq _08058118
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _080580E0
ldr r0, _080580F4 @ =gUnknown_3000E80
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x80
beq _080580FC
_080580E0:
ldr r0, _080580F8 @ =gUnknown_81BB9A3
b _08058122
.align 2, 0
_080580E4: .4byte gDirectionToVectors
_080580E8: .4byte 0xffff0000
_080580EC: .4byte 0x0000ffff
_080580F0: .4byte 0xffffff00
_080580F4: .4byte gUnknown_3000E80
_080580F8: .4byte gUnknown_81BB9A3
_080580FC:
adds r0, r2, 0
bl sub_8081A34
cmp r0, 0
bne _08058110
ldr r0, _0805810C @ =gUnknown_81BB981
b _08058122
.align 2, 0
_0805810C: .4byte gUnknown_81BB981
_08058110:
ldr r0, _08058114 @ =gUnknown_81BB992
b _08058122
.align 2, 0
_08058114: .4byte gUnknown_81BB992
_08058118:
ldrb r1, [r4, 0xC]
ldrb r2, [r4, 0x3]
mov r0, sp
bl sub_806CF38
_08058122:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8058060
thumb_func_start sub_805812C
sub_805812C: @ 805812C
push {lr}
adds r1, r0, 0
ldr r0, _08058178 @ =gUnknown_81BB8DB
cmp r1, r0
beq _08058172
ldr r0, _0805817C @ =gUnknown_81BB8F8
cmp r1, r0
beq _080581B4
ldr r0, _08058180 @ =gUnknown_81BB915
cmp r1, r0
beq _08058172
ldr r0, _08058184 @ =gUnknown_81BB932
cmp r1, r0
beq _080581B4
ldr r0, _08058188 @ =gUnknown_81BB980
cmp r1, r0
beq _08058172
ldr r0, _0805818C @ =gUnknown_81BB980
cmp r1, r0
beq _080581B4
ldr r0, _08058190 @ =gUnknown_81BB980
cmp r1, r0
beq _08058172
ldr r0, _08058194 @ =gUnknown_81BB980
cmp r1, r0
beq _080581B4
ldr r0, _08058198 @ =gUnknown_81BB8C3
cmp r1, r0
beq _08058172
ldr r0, _0805819C @ =gUnknown_81BB8CF
cmp r1, r0
beq _080581B4
ldr r0, _080581A0 @ =gUnknown_81BB950
cmp r1, r0
bne _080581A4
_08058172:
movs r0, 0xA
b _080581B6
.align 2, 0
_08058178: .4byte gUnknown_81BB8DB
_0805817C: .4byte gUnknown_81BB8F8
_08058180: .4byte gUnknown_81BB915
_08058184: .4byte gUnknown_81BB932
_08058188: .4byte gUnknown_81BB980
_0805818C: .4byte gUnknown_81BB980
_08058190: .4byte gUnknown_81BB980
_08058194: .4byte gUnknown_81BB980
_08058198: .4byte gUnknown_81BB8C3
_0805819C: .4byte gUnknown_81BB8CF
_080581A0: .4byte gUnknown_81BB950
_080581A4:
ldr r0, _080581B0 @ =gUnknown_81BB95C
cmp r1, r0
beq _080581B4
movs r0, 0
b _080581B6
.align 2, 0
_080581B0: .4byte gUnknown_81BB95C
_080581B4:
movs r0, 0x9
_080581B6:
pop {r1}
bx r1
thumb_func_end sub_805812C
thumb_func_start sub_80581BC
sub_80581BC: @ 80581BC
push {lr}
bl ScriptContext2_Enable
pop {r0}
bx r0
thumb_func_end sub_80581BC
thumb_func_start sub_80581C8
sub_80581C8: @ 80581C8
push {lr}
movs r0, 0x6
bl PlaySE
bl ShowStartMenu
bl ScriptContext2_Enable
pop {r0}
bx r0
thumb_func_end sub_80581C8
thumb_func_start sub_80581DC
sub_80581DC: @ 80581DC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80581DC
thumb_func_start sub_80581F8
sub_80581F8: @ 80581F8
push {lr}
movs r0, 0x6
bl PlaySE
ldr r0, _08058210 @ =gUnknown_81BB9D4
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_08058210: .4byte gUnknown_81BB9D4
thumb_func_end sub_80581F8
thumb_func_start sub_8058214
sub_8058214: @ 8058214
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8058214
thumb_func_start sub_8058230
sub_8058230: @ 8058230
push {lr}
ldr r0, _08058240 @ =gUnknown_81BB9F0
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_08058240: .4byte gUnknown_81BB9F0
thumb_func_end sub_8058230
thumb_func_start sub_8058244
sub_8058244: @ 8058244
push {lr}
bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _08058252
movs r0, 0
b _0805826C
_08058252:
bl sub_800B248
cmp r0, 0x2
bls _08058264
ldr r1, _08058260 @ =gUnknown_3000E88
movs r0, 0x1
b _08058268
.align 2, 0
_08058260: .4byte gUnknown_3000E88
_08058264:
ldr r1, _08058270 @ =gUnknown_3000E88
movs r0, 0
_08058268:
strb r0, [r1]
ldrb r0, [r1]
_0805826C:
pop {r1}
bx r1
.align 2, 0
_08058270: .4byte gUnknown_3000E88
thumb_func_end sub_8058244
thumb_func_start sub_8058274
sub_8058274: @ 8058274
push {lr}
bl sub_800B248
cmp r0, 0x1
bls _080582D8
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080582D8
bl sub_800A00C
cmp r0, 0x1
bne _080582D8
ldr r0, _080582C4 @ =gUnknown_3000E84
ldr r1, [r0]
ldr r0, _080582C8 @ =sub_8057DC8
cmp r1, r0
beq _080582C0
ldr r0, _080582CC @ =sub_8057DA4
cmp r1, r0
bne _080582D8
ldr r0, _080582D0 @ =gUnknown_3000E88
ldrb r2, [r0]
movs r1, 0
strb r1, [r0]
cmp r2, 0x1
beq _080582C0
ldr r2, _080582D4 @ =gPaletteFade
ldrb r1, [r2, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080582D8
ldrb r1, [r2, 0xA]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080582D8
_080582C0:
movs r0, 0x1
b _080582DA
.align 2, 0
_080582C4: .4byte gUnknown_3000E84
_080582C8: .4byte sub_8057DC8
_080582CC: .4byte sub_8057DA4
_080582D0: .4byte gUnknown_3000E88
_080582D4: .4byte gPaletteFade
_080582D8:
movs r0, 0
_080582DA:
pop {r1}
bx r1
thumb_func_end sub_8058274
thumb_func_start sub_80582E0
sub_80582E0: @ 80582E0
push {lr}
bl sub_805833C
cmp r0, 0x1
bls _08058304
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08058304
bl sub_800A00C
cmp r0, 0x1
bne _08058304
ldr r0, _08058308 @ =gUnknown_3000E84
ldr r1, [r0]
ldr r0, _0805830C @ =sub_8057DEC
cmp r1, r0
beq _08058310
_08058304:
movs r0, 0
b _08058312
.align 2, 0
_08058308: .4byte gUnknown_3000E84
_0805830C: .4byte sub_8057DEC
_08058310:
movs r0, 0x1
_08058312:
pop {r1}
bx r1
thumb_func_end sub_80582E0
thumb_func_start sub_8058318
sub_8058318: @ 8058318
push {lr}
ldr r0, _08058330 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _08058334
bl sub_800A00C
cmp r0, 0
beq _08058334
movs r0, 0x1
b _08058336
.align 2, 0
_08058330: .4byte gWirelessCommType
_08058334:
movs r0, 0
_08058336:
pop {r1}
bx r1
thumb_func_end sub_8058318
thumb_func_start sub_805833C
sub_805833C: @ 805833C
push {lr}
ldr r0, _08058350 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _0805835C
ldr r0, _08058354 @ =gUnknown_3003FB0
ldr r1, _08058358 @ =0x00000339
adds r0, r1
ldrb r0, [r0]
b _08058364
.align 2, 0
_08058350: .4byte gWirelessCommType
_08058354: .4byte gUnknown_3003FB0
_08058358: .4byte 0x00000339
_0805835C:
ldr r0, _08058368 @ =gUnknown_3005450
ldr r1, _0805836C @ =0x000008d2
adds r0, r1
ldrb r0, [r0]
_08058364:
pop {r1}
bx r1
.align 2, 0
_08058368: .4byte gUnknown_3005450
_0805836C: .4byte 0x000008d2
thumb_func_end sub_805833C
thumb_func_start ZeroLinkPlayerMapObject
ZeroLinkPlayerMapObject: @ 8058370
movs r1, 0
str r1, [r0]
bx lr
thumb_func_end ZeroLinkPlayerMapObject
thumb_func_start strange_npc_table_clear
strange_npc_table_clear: @ 8058378
push {lr}
ldr r0, _08058388 @ =gUnknown_2031DEC
movs r1, 0
movs r2, 0x10
bl memset
pop {r0}
bx r0
.align 2, 0
_08058388: .4byte gUnknown_2031DEC
thumb_func_end strange_npc_table_clear
thumb_func_start ZeroMapObject
ZeroMapObject: @ 805838C
push {lr}
movs r1, 0
movs r2, 0x24
bl memset
pop {r0}
bx r0
thumb_func_end ZeroMapObject
thumb_func_start SpawnLinkPlayerMapObject
SpawnLinkPlayerMapObject: @ 805839C
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_805DF30
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r4, r7, 2
ldr r0, _08058440 @ =gUnknown_2031DEC
adds r4, r0
lsls r5, r6, 3
adds r5, r6
lsls r5, 2
ldr r0, _08058444 @ =gMapObjects
adds r5, r0
adds r0, r4, 0
bl ZeroLinkPlayerMapObject
adds r0, r5, 0
bl ZeroMapObject
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 InitLinkPlayerMapObjectPos
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08058440: .4byte gUnknown_2031DEC
_08058444: .4byte gMapObjects
thumb_func_end SpawnLinkPlayerMapObject
thumb_func_start InitLinkPlayerMapObjectPos
InitLinkPlayerMapObjectPos: @ 8058448
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_8063B1C
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 InitLinkPlayerMapObjectPos
thumb_func_start sub_8058488
sub_8058488: @ 8058488
push {lr}
lsls r0, 24
lsls r1, 24
lsrs r2, r1, 24
ldr r1, _080584B0 @ =gUnknown_2031DEC
lsrs r0, 22
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
beq _080584AA
ldrb r0, [r1, 0x2]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _080584B4 @ =gMapObjects
adds r1, r0
strb r2, [r1, 0x19]
_080584AA:
pop {r0}
bx r0
.align 2, 0
_080584B0: .4byte gUnknown_2031DEC
_080584B4: .4byte gMapObjects
thumb_func_end sub_8058488
thumb_func_start sub_80584B8
sub_80584B8: @ 80584B8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 22
ldr r1, _080584F8 @ =gUnknown_2031DEC
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080584FC @ =gMapObjects
adds r4, r0, r1
ldrb r0, [r4, 0x4]
cmp r0, 0x40
beq _080584E4
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08058500 @ =gSprites
adds r0, r1
bl DestroySprite
_080584E4:
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
_080584F8: .4byte gUnknown_2031DEC
_080584FC: .4byte gMapObjects
_08058500: .4byte gSprites
thumb_func_end sub_80584B8
thumb_func_start sub_8058504
sub_8058504: @ 8058504
lsls r0, 24
ldr r1, _0805851C @ =gUnknown_2031DEC
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08058520 @ =gMapObjects
adds r0, r1
ldrb r0, [r0, 0x4]
bx lr
.align 2, 0
_0805851C: .4byte gUnknown_2031DEC
_08058520: .4byte gMapObjects
thumb_func_end sub_8058504
thumb_func_start sub_8058524
sub_8058524: @ 8058524
lsls r0, 24
ldr r3, _08058544 @ =gUnknown_2031DEC
lsrs r0, 22
adds r0, r3
ldrb r3, [r0, 0x2]
lsls r0, r3, 3
adds r0, r3
lsls r0, 2
ldr r3, _08058548 @ =gMapObjects
adds r0, r3
ldrh r3, [r0, 0x10]
strh r3, [r1]
ldrh r0, [r0, 0x12]
strh r0, [r2]
bx lr
.align 2, 0
_08058544: .4byte gUnknown_2031DEC
_08058548: .4byte gMapObjects
thumb_func_end sub_8058524
thumb_func_start sub_805854C
sub_805854C: @ 805854C
lsls r0, 24
ldr r1, _08058564 @ =gUnknown_2031DEC
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08058568 @ =gMapObjects
adds r0, r1
ldrb r0, [r0, 0x19]
bx lr
.align 2, 0
_08058564: .4byte gUnknown_2031DEC
_08058568: .4byte gMapObjects
thumb_func_end sub_805854C
thumb_func_start sub_805856C
sub_805856C: @ 805856C
lsls r0, 24
ldr r1, _08058588 @ =gUnknown_2031DEC
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805858C @ =gMapObjects
adds r0, r1
ldrb r0, [r0, 0xB]
lsls r0, 28
lsrs r0, 28
bx lr
.align 2, 0
_08058588: .4byte gUnknown_2031DEC
_0805858C: .4byte gMapObjects
thumb_func_end sub_805856C
thumb_func_start sub_8058590
sub_8058590: @ 8058590
lsls r0, 24
ldr r1, _080585B0 @ =gUnknown_2031DEC
lsrs r0, 22
adds r0, r1
ldrb r1, [r0, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080585B4 @ =gMapObjects
adds r0, r1
adds r0, 0x21
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0x10
subs r0, r1
bx lr
.align 2, 0
_080585B0: .4byte gUnknown_2031DEC
_080585B4: .4byte gMapObjects
thumb_func_end sub_8058590
thumb_func_start GetLinkPlayerIdAt
GetLinkPlayerIdAt: @ 80585B8
push {r4-r6,lr}
movs r2, 0
ldr r5, _080585FC @ =gUnknown_2031DEC
lsls r0, 16
asrs r4, r0, 16
lsls r1, 16
asrs r3, r1, 16
_080585C6:
lsls r0, r2, 2
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, 0
beq _08058604
ldrb r0, [r1, 0x3]
cmp r0, 0
beq _080585DA
cmp r0, 0x2
bne _08058604
_080585DA:
ldrb r1, [r1, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08058600 @ =gMapObjects
adds r1, r0, r1
movs r6, 0x10
ldrsh r0, [r1, r6]
cmp r0, r4
bne _08058604
movs r6, 0x12
ldrsh r0, [r1, r6]
cmp r0, r3
bne _08058604
adds r0, r2, 0
b _08058610
.align 2, 0
_080585FC: .4byte gUnknown_2031DEC
_08058600: .4byte gMapObjects
_08058604:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080585C6
movs r0, 0x4
_08058610:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GetLinkPlayerIdAt
thumb_func_start sub_8058618
sub_8058618: @ 8058618
push {r4-r6,lr}
lsls r0, 24
lsls r1, 24
lsrs r3, r1, 24
adds r2, r3, 0
lsrs r0, 22
ldr r1, _08058648 @ =gUnknown_2031DEC
adds r5, r0, r1
ldrb r1, [r5, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0805864C @ =gMapObjects
adds r6, r0, r1
ldrb r0, [r5]
cmp r0, 0
beq _08058674
cmp r3, 0xA
bls _08058650
ldrb r0, [r6]
movs r1, 0x4
orrs r0, r1
strb r0, [r6]
b _08058674
.align 2, 0
_08058648: .4byte gUnknown_2031DEC
_0805864C: .4byte gMapObjects
_08058650:
ldr r4, _0805867C @ =gUnknown_826D374
ldr r1, _08058680 @ =gUnknown_826D33C
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
_08058674:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0805867C: .4byte gUnknown_826D374
_08058680: .4byte gUnknown_826D33C
thumb_func_end sub_8058618
thumb_func_start sub_8058684
sub_8058684: @ 8058684
push {r4,lr}
lsls r2, 24
lsrs r2, 24
ldr r4, _080586A0 @ =gUnknown_826D348
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
_080586A0: .4byte gUnknown_826D348
thumb_func_end sub_8058684
thumb_func_start sub_80586A4
sub_80586A4: @ 80586A4
movs r0, 0x1
bx lr
thumb_func_end sub_80586A4
thumb_func_start sub_80586A8
sub_80586A8: @ 80586A8
push {r4,lr}
lsls r2, 24
lsrs r2, 24
ldr r4, _080586C4 @ =gUnknown_826D348
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
_080586C4: .4byte gUnknown_826D348
thumb_func_end sub_80586A8
thumb_func_start sub_80586C8
sub_80586C8: @ 80586C8
movs r0, 0
bx lr
thumb_func_end sub_80586C8
thumb_func_start sub_80586CC
sub_80586CC: @ 80586CC
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 _0805872A
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 _0805872C
_0805872A:
movs r0, 0
_0805872C:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80586CC
thumb_func_start sub_8058734
sub_8058734: @ 8058734
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_8058734
thumb_func_start sub_805874C
sub_805874C: @ 805874C
movs r1, 0
strb r1, [r0, 0x3]
bx lr
thumb_func_end sub_805874C
thumb_func_start sub_8058754
sub_8058754: @ 8058754
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 _08058784
adds r0, r4, 0
bl npc_coords_shift_still
movs r0, 0x2
strb r0, [r6, 0x3]
_08058784:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8058754
thumb_func_start npc_something3
npc_something3: @ 805878C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r2, r1, 24
subs r0, 0x1
cmp r0, 0x9
bhi _080587E4
lsls r0, 2
ldr r1, _080587A8 @ =_080587AC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080587A8: .4byte _080587AC
.align 2, 0
_080587AC:
.4byte _080587D4
.4byte _080587D8
.4byte _080587DC
.4byte _080587E0
.4byte _080587E4
.4byte _080587E4
.4byte _080587D4
.4byte _080587D8
.4byte _080587DC
.4byte _080587E0
_080587D4:
movs r0, 0x2
b _080587E6
_080587D8:
movs r0, 0x1
b _080587E6
_080587DC:
movs r0, 0x3
b _080587E6
_080587E0:
movs r0, 0x4
b _080587E6
_080587E4:
adds r0, r2, 0
_080587E6:
pop {r1}
bx r1
thumb_func_end npc_something3
thumb_func_start npc_080587EC
npc_080587EC: @ 80587EC
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, _08058850 @ =gMapObjects
mov r9, r0
lsrs r2, r3, 16
mov r10, r2
asrs r6, r3, 16
_08058810:
mov r7, r12
lsls r3, r7, 16
mov r0, r10
lsls r5, r0, 16
cmp r4, r8
beq _08058854
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 _08058838
movs r7, 0x12
ldrsh r0, [r1, r7]
cmp r0, r6
beq _0805884A
_08058838:
movs r7, 0x14
ldrsh r0, [r1, r7]
cmp r0, r2
bne _08058854
movs r0, 0x16
ldrsh r1, [r1, r0]
asrs r0, r5, 16
cmp r1, r0
bne _08058854
_0805884A:
movs r0, 0x1
b _0805886A
.align 2, 0
_08058850: .4byte gMapObjects
_08058854:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xF
bls _08058810
asrs r0, r3, 16
asrs r1, r5, 16
bl MapGridIsImpassableAt
lsls r0, 24
lsrs r0, 24
_0805886A:
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_8058878
sub_8058878: @ 8058878
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r3, r1, 24
lsls r2, r5, 2
ldr r0, _080588B4 @ =gUnknown_2031DEC
adds r2, r0
ldrb r1, [r2, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080588B8 @ =gMapObjects
adds r4, r0, r1
ldrb r0, [r2]
cmp r0, 0
beq _080588FC
subs r0, r3, 0x4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080588BC
ldrb r1, [r4]
lsls r1, 30
lsrs r1, 31
movs r0, 0
bl sub_805C7C8
b _080588C6
.align 2, 0
_080588B4: .4byte gUnknown_2031DEC
_080588B8: .4byte gMapObjects
_080588BC:
ldrb r0, [r4]
lsls r0, 30
lsrs r0, 31
bl sub_805C7F8
_080588C6:
lsls r0, 24
lsrs r0, 24
ldr r1, _08058904 @ =SpriteCB_LinkPlayer
movs r2, 0
str r2, [sp]
movs r3, 0
bl AddPseudoEventObject
strb r0, [r4, 0x4]
ldrb r1, [r4, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08058908 @ =gSprites
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]
_080588FC:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08058904: .4byte SpriteCB_LinkPlayer
_08058908: .4byte gSprites
thumb_func_end sub_8058878
thumb_func_start SpriteCB_LinkPlayer
SpriteCB_LinkPlayer: @ 805890C
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0x2E
ldrsh r4, [r5, r0]
lsls r4, 2
ldr r0, _08058970 @ =gUnknown_2031DEC
adds r4, r0
ldrb r1, [r4, 0x2]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _08058974 @ =gMapObjects
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 _08058978
ldrb r0, [r6, 0x19]
bl FieldObjectDirectionToImageAnimId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl StartSpriteAnim
b _0805898A
.align 2, 0
_08058970: .4byte gUnknown_2031DEC
_08058974: .4byte gMapObjects
_08058978:
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
_0805898A:
adds r0, r5, 0
movs r1, 0
bl sub_8068EB4
ldrb r0, [r6]
lsls r0, 29
cmp r0, 0
bge _080589BC
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]
_080589BC:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end SpriteCB_LinkPlayer
.align 2, 0 @ Don't pad with nop.