.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text

	thumb_func_start Special_ShowDiploma
Special_ShowDiploma: @ 8137CB4
	push {lr}
	ldr r0, =CB2_ShowDiploma
	bl SetMainCallback2
	bl ScriptContext2_Enable
	pop {r0}
	bx r0
	.pool
	thumb_func_end Special_ShowDiploma

	thumb_func_start Special_ViewWallClock
Special_ViewWallClock: @ 8137CC8
	push {lr}
	ldr r0, =gMain
	ldr r1, =c2_exit_to_overworld_2_switch
	str r1, [r0, 0x8]
	ldr r0, =Cb2_ViewWallClock
	bl SetMainCallback2
	bl ScriptContext2_Enable
	pop {r0}
	bx r0
	.pool
	thumb_func_end Special_ViewWallClock

	thumb_func_start ResetCyclingRoadChallengeData
ResetCyclingRoadChallengeData: @ 8137CEC
	ldr r0, =gBikeCyclingChallenge
	movs r1, 0
	strb r1, [r0]
	ldr r0, =0x0203ab55
	strb r1, [r0]
	ldr r1, =gUnknown_0203AB58
	movs r0, 0
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end ResetCyclingRoadChallengeData

	thumb_func_start Special_BeginCyclingRoadChallenge
Special_BeginCyclingRoadChallenge: @ 8137D0C
	ldr r1, =gBikeCyclingChallenge
	movs r0, 0x1
	strb r0, [r1]
	ldr r1, =0x0203ab55
	movs r0, 0
	strb r0, [r1]
	ldr r1, =gUnknown_0203AB58
	ldr r0, =gMain
	ldr r0, [r0, 0x20]
	str r0, [r1]
	bx lr
	.pool
	thumb_func_end Special_BeginCyclingRoadChallenge

	thumb_func_start GetPlayerAvatarBike
GetPlayerAvatarBike: @ 8137D34
	push {lr}
	movs r0, 0x4
	bl TestPlayerAvatarFlags
	lsls r0, 24
	cmp r0, 0
	beq _08137D46
	movs r0, 0x1
	b _08137D58
_08137D46:
	movs r0, 0x2
	bl TestPlayerAvatarFlags
	lsls r0, 24
	cmp r0, 0
	bne _08137D56
	movs r0, 0
	b _08137D58
_08137D56:
	movs r0, 0x2
_08137D58:
	pop {r1}
	bx r1
	thumb_func_end GetPlayerAvatarBike

	thumb_func_start DetermineCyclingRoadResults
DetermineCyclingRoadResults: @ 8137D5C
	push {r4-r7,lr}
	adds r7, r0, 0
	lsls r1, 24
	lsrs r6, r1, 24
	cmp r6, 0x63
	bhi _08137D88
	ldr r4, =gStringVar1
	adds r0, r4, 0
	adds r1, r6, 0
	movs r2, 0
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_SpaceTimes
	adds r0, r4, 0
	bl StringAppend
	b _08137D90
	.pool
_08137D88:
	ldr r0, =gStringVar1
	ldr r1, =gText_99TimesPlus
	bl StringCopy
_08137D90:
	ldr r0, =0x00000e0f
	cmp r7, r0
	bhi _08137DF0
	ldr r4, =gStringVar2
	adds r0, r7, 0
	movs r1, 0x3C
	bl __udivsi3
	adds r1, r0, 0
	adds r0, r4, 0
	movs r2, 0x1
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	movs r0, 0xAD
	strb r0, [r4, 0x2]
	adds r5, r4, 0x3
	adds r0, r7, 0
	movs r1, 0x3C
	bl __umodsi3
	movs r1, 0x64
	muls r0, r1
	movs r1, 0x3C
	bl __udivsi3
	adds r1, r0, 0
	adds r0, r5, 0
	movs r2, 0x2
	movs r3, 0x2
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_SpaceSeconds
	adds r0, r4, 0
	bl StringAppend
	b _08137DF8
	.pool
_08137DF0:
	ldr r0, =gStringVar2
	ldr r1, =gText_1MinutePlus
	bl StringCopy
_08137DF8:
	movs r4, 0
	cmp r6, 0
	bne _08137E0C
	movs r4, 0x5
	b _08137E2A
	.pool
_08137E0C:
	cmp r6, 0x3
	bhi _08137E14
	movs r4, 0x4
	b _08137E2A
_08137E14:
	cmp r6, 0x9
	bhi _08137E1C
	movs r4, 0x3
	b _08137E2A
_08137E1C:
	cmp r6, 0x13
	bhi _08137E24
	movs r4, 0x2
	b _08137E2A
_08137E24:
	cmp r6, 0x63
	bhi _08137E2A
	movs r4, 0x1
_08137E2A:
	adds r0, r7, 0
	movs r1, 0x3C
	bl __udivsi3
	cmp r0, 0xA
	bhi _08137E3A
	adds r0, r4, 0x5
	b _08137E58
_08137E3A:
	cmp r0, 0xF
	bhi _08137E42
	adds r0, r4, 0x4
	b _08137E58
_08137E42:
	cmp r0, 0x14
	bhi _08137E4A
	adds r0, r4, 0x3
	b _08137E58
_08137E4A:
	cmp r0, 0x28
	bhi _08137E52
	adds r0, r4, 0x2
	b _08137E58
_08137E52:
	cmp r0, 0x3B
	bhi _08137E5C
	adds r0, r4, 0x1
_08137E58:
	lsls r0, 24
	lsrs r4, r0, 24
_08137E5C:
	ldr r0, =gSpecialVar_Result
	strh r4, [r0]
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DetermineCyclingRoadResults

	thumb_func_start FinishCyclingRoadChallenge
FinishCyclingRoadChallenge: @ 8137E6C
	push {r4,r5,lr}
	ldr r0, =gMain
	ldr r1, =gUnknown_0203AB58
	ldr r4, [r0, 0x20]
	ldr r0, [r1]
	subs r4, r0
	ldr r5, =0x0203ab55
	ldrb r1, [r5]
	adds r0, r4, 0
	bl DetermineCyclingRoadResults
	ldrb r1, [r5]
	adds r0, r4, 0
	bl RecordCyclingRoadResults
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end FinishCyclingRoadChallenge

	thumb_func_start RecordCyclingRoadResults
RecordCyclingRoadResults: @ 8137E9C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	adds r5, r0, 0
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	ldr r6, =0x00004028
	adds r0, r6, 0
	bl VarGet
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r7, =0x00004029
	adds r0, r7, 0
	bl VarGet
	lsls r0, 16
	adds r4, r0
	cmp r4, r5
	bhi _08137ECC
	cmp r4, 0
	bne _08137EE6
_08137ECC:
	lsls r1, r5, 16
	lsrs r1, 16
	adds r0, r6, 0
	bl VarSet
	lsrs r1, r5, 16
	adds r0, r7, 0
	bl VarSet
	ldr r0, =0x00004027
	mov r1, r8
	bl VarSet
_08137EE6:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end RecordCyclingRoadResults

	thumb_func_start GetRecordedCyclingRoadResults
GetRecordedCyclingRoadResults: @ 8137EFC
	push {r4,lr}
	ldr r0, =0x00004028
	bl VarGet
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =0x00004029
	bl VarGet
	lsls r0, 16
	adds r4, r0
	cmp r4, 0
	beq _08137F3C
	ldr r0, =0x00004027
	bl VarGet
	adds r1, r0, 0
	lsls r1, 24
	lsrs r1, 24
	adds r0, r4, 0
	bl DetermineCyclingRoadResults
	movs r0, 0x1
	b _08137F3E
	.pool
_08137F3C:
	movs r0, 0
_08137F3E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end GetRecordedCyclingRoadResults

	thumb_func_start UpdateCyclingRoadState
UpdateCyclingRoadState: @ 8137F44
	push {r4,lr}
	ldr r0, =gUnknown_020322DC
	ldrh r1, [r0]
	ldr r0, =0x00000c1d
	cmp r1, r0
	beq _08137F7C
	ldr r4, =0x000040a9
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	beq _08137F6E
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x3
	bne _08137F7C
_08137F6E:
	adds r0, r4, 0
	movs r1, 0
	bl VarSet
	movs r0, 0
	bl Overworld_SetSavedMusic
_08137F7C:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end UpdateCyclingRoadState

	thumb_func_start SetSSTidalFlag
SetSSTidalFlag: @ 8137F90
	push {lr}
	ldr r0, =0x0000088d
	bl FlagSet
	ldr r0, =0x0000404a
	bl GetVarPointer
	movs r1, 0
	strh r1, [r0]
	pop {r0}
	bx r0
	.pool
	thumb_func_end SetSSTidalFlag

	thumb_func_start ResetSSTidalFlag
ResetSSTidalFlag: @ 8137FB0
	push {lr}
	ldr r0, =0x0000088d
	bl FlagClear
	pop {r0}
	bx r0
	.pool
	thumb_func_end ResetSSTidalFlag

	thumb_func_start CountSSTidalStep
CountSSTidalStep: @ 8137FC0
	push {r4,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x0000088d
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08137FE6
	ldr r0, =0x0000404a
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, r4, r1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0xCC
	bhi _08137FF4
_08137FE6:
	movs r0, 0
	b _08137FF6
	.pool
_08137FF4:
	movs r0, 0x1
_08137FF6:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end CountSSTidalStep

	thumb_func_start GetSSTidalLocation
GetSSTidalLocation: @ 8137FFC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	mov r8, r0
	adds r5, r1, 0
	adds r6, r2, 0
	adds r7, r3, 0
	ldr r0, =0x0000404a
	bl GetVarPointer
	adds r4, r0, 0
	ldr r0, =0x000040b4
	bl GetVarPointer
	ldrh r0, [r0]
	subs r0, 0x1
	cmp r0, 0x9
	bhi _081380C2
	lsls r0, 2
	ldr r1, =_08138038
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08138038:
	.4byte _08138060
	.4byte _08138070
	.4byte _08138064
	.4byte _08138068
	.4byte _08138068
	.4byte _0813806C
	.4byte _08138098
	.4byte _08138060
	.4byte _08138064
	.4byte _0813806C
_08138060:
	movs r0, 0x1
	b _081380CE
_08138064:
	movs r0, 0x4
	b _081380CE
_08138068:
	movs r0, 0x2
	b _081380CE
_0813806C:
	movs r0, 0x3
	b _081380CE
_08138070:
	ldrh r0, [r4]
	cmp r0, 0x3B
	bhi _08138080
	movs r0, 0x31
	strb r0, [r5]
	ldrh r0, [r4]
	adds r0, 0x13
	b _081380C0
_08138080:
	cmp r0, 0x8B
	bhi _0813808E
	movs r0, 0x30
	strb r0, [r5]
	ldrh r0, [r4]
	subs r0, 0x3C
	b _081380C0
_0813808E:
	movs r0, 0x2F
	strb r0, [r5]
	ldrh r0, [r4]
	subs r0, 0x8C
	b _081380C0
_08138098:
	ldrh r0, [r4]
	cmp r0, 0x41
	bhi _081380A8
	movs r0, 0x2F
	strb r0, [r5]
	ldrh r1, [r4]
	movs r0, 0x41
	b _081380BE
_081380A8:
	cmp r0, 0x91
	bhi _081380B6
	movs r0, 0x30
	strb r0, [r5]
	ldrh r1, [r4]
	movs r0, 0x91
	b _081380BE
_081380B6:
	movs r0, 0x31
	strb r0, [r5]
	ldrh r1, [r4]
	movs r0, 0xE0
_081380BE:
	subs r0, r1
_081380C0:
	strh r0, [r6]
_081380C2:
	movs r0, 0
	mov r1, r8
	strb r0, [r1]
	movs r0, 0x14
	strh r0, [r7]
	movs r0, 0
_081380CE:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end GetSSTidalLocation

	thumb_func_start is_tile_that_overrides_player_control
is_tile_that_overrides_player_control: @ 81380D8
	push {lr}
	movs r0, 0x88
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0813810A
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x1
	blt _0813810A
	cmp r0, 0x3
	ble _081380F6
	cmp r0, 0x6
	bne _0813810A
_081380F6:
	ldr r0, =0x000040f2
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0xF9
	bhi _08138118
_0813810A:
	movs r0, 0
	b _0813811A
	.pool
_08138118:
	movs r0, 0x1
_0813811A:
	pop {r1}
	bx r1
	thumb_func_end is_tile_that_overrides_player_control

	thumb_func_start sub_8138120
sub_8138120: @ 8138120
	push {lr}
	movs r0, 0x8A
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08138152
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x1
	blt _08138152
	cmp r0, 0x3
	ble _0813813E
	cmp r0, 0x6
	bne _08138152
_0813813E:
	ldr r0, =0x000040f3
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0x9
	bhi _08138160
_08138152:
	movs r0, 0
	b _08138162
	.pool
_08138160:
	movs r0, 0x1
_08138162:
	pop {r1}
	bx r1
	thumb_func_end sub_8138120

	thumb_func_start sub_8138168
sub_8138168: @ 8138168
	push {lr}
	movs r0, 0x72
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0813819A
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x1
	blt _0813819A
	cmp r0, 0x3
	ble _08138186
	cmp r0, 0x6
	bne _0813819A
_08138186:
	ldr r0, =0x000040f5
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0x9
	bhi _081381A8
_0813819A:
	movs r0, 0
	b _081381AA
	.pool
_081381A8:
	movs r0, 0x1
_081381AA:
	pop {r1}
	bx r1
	thumb_func_end sub_8138168

	thumb_func_start sub_81381B0
sub_81381B0: @ 81381B0
	push {lr}
	movs r0, 0x80
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081381E2
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x1
	blt _081381E2
	cmp r0, 0x3
	ble _081381CE
	cmp r0, 0x6
	bne _081381E2
_081381CE:
	ldr r0, =0x000040f4
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0xF9
	bhi _081381F0
_081381E2:
	movs r0, 0
	b _081381F2
	.pool
_081381F0:
	movs r0, 0x1
_081381F2:
	pop {r1}
	bx r1
	thumb_func_end sub_81381B0

	thumb_func_start sub_81381F8
sub_81381F8: @ 81381F8
	push {lr}
	movs r0, 0x75
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _0813822A
	ldr r0, =gMapHeader
	ldrb r0, [r0, 0x17]
	cmp r0, 0x1
	blt _0813822A
	cmp r0, 0x3
	ble _08138216
	cmp r0, 0x6
	bne _0813822A
_08138216:
	ldr r0, =0x000040f6
	bl GetVarPointer
	ldrh r1, [r0]
	adds r1, 0x1
	strh r1, [r0]
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0xF9
	bhi _08138238
_0813822A:
	movs r0, 0
	b _0813823A
	.pool
_08138238:
	movs r0, 0x1
_0813823A:
	pop {r1}
	bx r1
	thumb_func_end sub_81381F8

	thumb_func_start GetLinkPartnerNames
GetLinkPartnerNames: @ 8138240
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	movs r6, 0
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r7, r0, 24
	bl GetLinkPlayerCount
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _0813828A
	ldr r0, =gTVStringVarPtrs
	mov r8, r0
_08138262:
	cmp r7, r4
	beq _08138280
	lsls r0, r6, 2
	add r0, r8
	ldr r0, [r0]
	lsls r1, r4, 3
	subs r1, r4
	lsls r1, 2
	ldr r2, =gLinkPlayers + 8
	adds r1, r2
	bl StringCopy
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
_08138280:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _08138262
_0813828A:
	adds r0, r5, 0
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetLinkPartnerNames

	thumb_func_start SpawnLinkPartnerFieldObject
SpawnLinkPartnerFieldObject: @ 81382A0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x14
	movs r7, 0
	movs r0, 0
	mov r9, r0
	mov r8, r0
	ldr r1, =gUnknown_085B2B5C
	add r0, sp, 0x8
	movs r2, 0x4
	bl memcpy
	add r4, sp, 0xC
	ldr r1, =gUnknown_085B2B60
	adds r0, r4, 0
	movs r2, 0x8
	bl memcpy
	bl GetMultiplayerId
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	bl player_get_direction_lower_nybble
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x2
	beq _08138310
	cmp r0, 0x2
	bgt _081382F4
	cmp r0, 0x1
	beq _0813833C
	b _08138350
	.pool
_081382F4:
	cmp r1, 0x3
	beq _081382FE
	cmp r1, 0x4
	beq _08138324
	b _08138350
_081382FE:
	movs r7, 0x2
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldrh r0, [r1]
	subs r0, 0x1
	b _0813832C
	.pool
_08138310:
	movs r7, 0x1
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0]
	mov r9, r1
	ldrh r0, [r0, 0x2]
	subs r0, 0x1
	b _0813834A
	.pool
_08138324:
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldrh r0, [r1]
	adds r0, 0x1
_0813832C:
	lsls r0, 16
	lsrs r0, 16
	mov r9, r0
	ldrh r1, [r1, 0x2]
	mov r8, r1
	b _08138350
	.pool
_0813833C:
	movs r7, 0x3
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r3, [r0]
	mov r9, r3
	ldrh r0, [r0, 0x2]
	adds r0, 0x1
_0813834A:
	lsls r0, 16
	lsrs r0, 16
	mov r8, r0
_08138350:
	movs r6, 0
	b _08138410
	.pool
_08138358:
	cmp r10, r6
	beq _0813840A
	ldr r0, =gLinkPlayers
	lsls r2, r6, 3
	subs r1, r2, r6
	lsls r1, 2
	adds r1, r0
	ldrb r3, [r1]
	adds r4, r0, 0
	cmp r3, 0x1
	blt _0813838C
	cmp r3, 0x2
	ble _0813837C
	cmp r3, 0x3
	beq _08138388
	b _0813838C
	.pool
_0813837C:
	ldrb r0, [r1, 0x13]
	movs r5, 0xEC
	cmp r0, 0
	bne _0813839C
	movs r5, 0xEB
	b _0813839C
_08138388:
	ldrb r0, [r1, 0x13]
	b _08138394
_0813838C:
	subs r0, r2, r6
	lsls r0, 2
	adds r0, r4
	ldrb r0, [r0, 0x13]
_08138394:
	movs r5, 0x69
	cmp r0, 0
	bne _0813839C
	movs r5, 0x64
_0813839C:
	mov r0, sp
	adds r0, r7
	adds r0, 0x8
	ldrb r1, [r0]
	movs r4, 0xF0
	subs r4, r6
	lsls r4, 24
	lsrs r4, 24
	lsls r2, r7, 1
	mov r0, sp
	adds r0, r2
	adds r0, 0xC
	ldrb r0, [r0]
	lsls r0, 24
	asrs r0, 24
	mov r3, r9
	lsls r3, 16
	asrs r3, 16
	mov r12, r3
	add r0, r12
	adds r3, r0, 0x7
	lsls r3, 16
	asrs r3, 16
	mov r12, r3
	mov r0, sp
	adds r0, 0xD
	adds r0, r2
	movs r2, 0
	ldrsb r2, [r0, r2]
	mov r3, r8
	lsls r0, r3, 16
	asrs r0, 16
	adds r0, r2
	adds r0, 0x7
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	movs r0, 0
	str r0, [sp, 0x4]
	adds r0, r5, 0
	adds r2, r4, 0
	mov r3, r12
	bl SpawnSpecialFieldObjectParametrized
	adds r0, r5, 0
	adds r1, r4, 0
	adds r2, r6, 0
	bl sub_813842C
	adds r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	cmp r7, 0x4
	bne _0813840A
	movs r7, 0
_0813840A:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
_08138410:
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r6, r0
	bcc _08138358
	add sp, 0x14
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end SpawnLinkPartnerFieldObject

	thumb_func_start sub_813842C
sub_813842C: @ 813842C
	push {r4,r5,lr}
	lsls r0, 24
	lsls r1, 24
	lsrs r3, r1, 24
	lsls r2, 24
	movs r1, 0xC0
	lsls r1, 19
	adds r2, r1
	lsrs r5, r2, 24
	lsrs r4, r0, 24
	movs r2, 0xA8
	lsls r2, 21
	adds r0, r2
	lsrs r0, 24
	cmp r0, 0x1
	bls _08138454
	cmp r4, 0x64
	beq _08138454
	cmp r4, 0x69
	bne _081384E6
_08138454:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	ldrb r2, [r0, 0x4]
	adds r0, r3, 0
	bl GetFieldObjectIdByLocalIdAndMap
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x10
	beq _081384E6
	ldr r1, =gMapObjects
	lsls r0, r2, 3
	adds r0, r2
	lsls r0, 2
	adds r0, r1
	ldrb r0, [r0, 0x4]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	ldr r0, =gSprites
	adds r1, r0
	lsls r3, r5, 4
	ldrb r2, [r1, 0x5]
	movs r0, 0xF
	ands r0, r2
	orrs r0, r3
	strb r0, [r1, 0x5]
	cmp r4, 0x69
	beq _081384D8
	cmp r4, 0x69
	bgt _081384A8
	cmp r4, 0x64
	beq _081384C4
	b _081384E6
	.pool
_081384A8:
	cmp r4, 0xEB
	beq _081384B2
	cmp r4, 0xEC
	beq _081384BC
	b _081384E6
_081384B2:
	ldr r0, =gFieldObjectPalette33
	b _081384C6
	.pool
_081384BC:
	ldr r0, =gFieldObjectPalette34
	b _081384C6
	.pool
_081384C4:
	ldr r0, =gFieldObjectPalette8
_081384C6:
	movs r2, 0x80
	lsls r2, 1
	adds r1, r3, r2
	movs r2, 0x20
	bl LoadPalette
	b _081384E6
	.pool
_081384D8:
	ldr r0, =gFieldObjectPalette17
	movs r2, 0x80
	lsls r2, 1
	adds r1, r3, r2
	movs r2, 0x20
	bl LoadPalette
_081384E6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813842C

	thumb_func_start MauvilleGymSpecial1
MauvilleGymSpecial1: @ 81384F0
	push {r4,r5,lr}
	movs r4, 0
	ldr r5, =gUnknown_085B2B68
_081384F6:
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r4, r0
	bne _0813851C
	lsls r1, r4, 2
	adds r1, r5
	ldrb r0, [r1]
	ldrb r1, [r1, 0x1]
	ldr r2, =0x00000206
	bl MapGridSetMetatileIdAt
	b _0813852A
	.pool
_0813851C:
	lsls r1, r4, 2
	adds r1, r5
	ldrb r0, [r1]
	ldrb r1, [r1, 0x1]
	ldr r2, =0x00000205
	bl MapGridSetMetatileIdAt
_0813852A:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _081384F6
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end MauvilleGymSpecial1

	thumb_func_start MauvilleGymSpecial2
MauvilleGymSpecial2: @ 8138540
	push {r4-r6,lr}
	movs r5, 0xC
_08138544:
	movs r4, 0x7
	adds r6, r5, 0x1
_08138548:
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridGetMetatileIdAt
	ldr r1, =0xfffffde6
	adds r0, r1
	cmp r0, 0x37
	bls _0813855A
	b _08138734
_0813855A:
	lsls r0, 2
	ldr r1, =_0813856C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813856C:
	.4byte _081386F2
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _0813864C
	.4byte _08138652
	.4byte _0813868C
	.4byte _08138694
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _0813865C
	.4byte _08138662
	.4byte _0813869C
	.4byte _081386A4
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _0813866C
	.4byte _08138672
	.4byte _081386AC
	.4byte _081386B4
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _0813867C
	.4byte _08138684
	.4byte _081386BC
	.4byte _081386C4
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _081386CC
	.4byte _081386DC
	.4byte _081386EC
	.4byte _08138714
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _081386D4
	.4byte _081386E4
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _08138734
	.4byte _0813872A
	.4byte _0813871C
_0813864C:
	movs r2, 0x8C
	lsls r2, 2
	b _08138720
_08138652:
	ldr r2, =0x00000231
	b _08138720
	.pool
_0813865C:
	movs r2, 0x8E
	lsls r2, 2
	b _08138720
_08138662:
	ldr r2, =0x00000239
	b _08138720
	.pool
_0813866C:
	movs r2, 0x88
	lsls r2, 2
	b _08138720
_08138672:
	ldr r2, =0x00000221
	b _08138720
	.pool
_0813867C:
	ldr r2, =0x00000e28
	b _08138720
	.pool
_08138684:
	ldr r2, =0x00000e29
	b _08138720
	.pool
_0813868C:
	ldr r2, =0x00000232
	b _08138720
	.pool
_08138694:
	ldr r2, =0x00000233
	b _08138720
	.pool
_0813869C:
	ldr r2, =0x0000023a
	b _08138720
	.pool
_081386A4:
	ldr r2, =0x0000023b
	b _08138720
	.pool
_081386AC:
	ldr r2, =0x00000222
	b _08138720
	.pool
_081386B4:
	ldr r2, =0x00000223
	b _08138720
	.pool
_081386BC:
	ldr r2, =0x00000e2a
	b _08138720
	.pool
_081386C4:
	ldr r2, =0x00000e2b
	b _08138720
	.pool
_081386CC:
	ldr r2, =0x00000e42
	b _08138720
	.pool
_081386D4:
	ldr r2, =0x0000021a
	b _08138720
	.pool
_081386DC:
	ldr r2, =0x00000e43
	b _08138720
	.pool
_081386E4:
	ldr r2, =0x0000021a
	b _08138720
	.pool
_081386EC:
	movs r2, 0xE4
	lsls r2, 4
	b _08138720
_081386F2:
	subs r1, r5, 0x1
	adds r0, r4, 0
	bl MapGridGetMetatileIdAt
	movs r1, 0x90
	lsls r1, 2
	cmp r0, r1
	bne _0813870C
	ldr r2, =0x00000e48
	b _08138720
	.pool
_0813870C:
	ldr r2, =0x00000e49
	b _08138720
	.pool
_08138714:
	ldr r2, =0x00000e41
	b _08138720
	.pool
_0813871C:
	movs r2, 0xE5
	lsls r2, 4
_08138720:
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridSetMetatileIdAt
	b _08138734
_0813872A:
	ldr r2, =0x00000251
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridSetMetatileIdAt
_08138734:
	adds r4, 0x1
	cmp r4, 0xF
	bgt _0813873C
	b _08138548
_0813873C:
	adds r5, r6, 0
	cmp r5, 0x17
	bgt _08138744
	b _08138544
_08138744:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end MauvilleGymSpecial2

	thumb_func_start MauvilleGymSpecial3
MauvilleGymSpecial3: @ 8138750
	push {r4-r6,lr}
	ldr r4, =gUnknown_085B2B68
	movs r5, 0x3
_08138756:
	ldrb r0, [r4]
	ldrb r1, [r4, 0x1]
	ldr r2, =0x00000206
	bl MapGridSetMetatileIdAt
	adds r4, 0x4
	subs r5, 0x1
	cmp r5, 0
	bge _08138756
	movs r5, 0xC
_0813876A:
	movs r4, 0x7
	adds r6, r5, 0x1
_0813876E:
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridGetMetatileIdAt
	ldr r1, =0xfffffde0
	adds r0, r1
	cmp r0, 0x30
	bls _08138780
	b _081388CA
_08138780:
	lsls r0, 2
	ldr r1, =_0813879C
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813879C:
	.4byte _08138860
	.4byte _08138866
	.4byte _08138880
	.4byte _08138888
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _08138870
	.4byte _08138876
	.4byte _08138890
	.4byte _08138898
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388A0
	.4byte _081388A8
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388B0
	.4byte _081388B0
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388CA
	.4byte _081388C0
_08138860:
	movs r2, 0x8C
	lsls r2, 2
	b _081388B2
_08138866:
	ldr r2, =0x00000231
	b _081388B2
	.pool
_08138870:
	movs r2, 0x8E
	lsls r2, 2
	b _081388B2
_08138876:
	ldr r2, =0x00000239
	b _081388B2
	.pool
_08138880:
	ldr r2, =0x00000232
	b _081388B2
	.pool
_08138888:
	ldr r2, =0x00000233
	b _081388B2
	.pool
_08138890:
	ldr r2, =0x0000023a
	b _081388B2
	.pool
_08138898:
	ldr r2, =0x0000023b
	b _081388B2
	.pool
_081388A0:
	ldr r2, =0x00000e42
	b _081388B2
	.pool
_081388A8:
	ldr r2, =0x00000e43
	b _081388B2
	.pool
_081388B0:
	ldr r2, =0x0000021a
_081388B2:
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridSetMetatileIdAt
	b _081388CA
	.pool
_081388C0:
	ldr r2, =0x00000251
	adds r0, r4, 0
	adds r1, r5, 0
	bl MapGridSetMetatileIdAt
_081388CA:
	adds r4, 0x1
	cmp r4, 0xF
	bgt _081388D2
	b _0813876E
_081388D2:
	adds r5, r6, 0
	cmp r5, 0x17
	bgt _081388DA
	b _0813876A
_081388DA:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end MauvilleGymSpecial3

	thumb_func_start PetalburgGymSpecial1
PetalburgGymSpecial1: @ 81388E4
	push {lr}
	ldr r0, =gUnknown_0203AB5C
	movs r1, 0
	strb r1, [r0]
	ldr r0, =gUnknown_0203AB5D
	strb r1, [r0]
	movs r0, 0x2C
	bl PlaySE
	ldr r0, =Task_PetalburgGym
	movs r1, 0x8
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end PetalburgGymSpecial1

	thumb_func_start Task_PetalburgGym
Task_PetalburgGym: @ 8138910
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =gUnknown_085B2B78
	ldr r5, =gUnknown_0203AB5D
	ldrb r1, [r5]
	adds r0, r1, r0
	ldr r4, =gUnknown_0203AB5C
	ldrb r2, [r4]
	ldrb r0, [r0]
	cmp r0, r2
	bne _0813896C
	ldr r0, =gSpecialVar_0x8004
	ldrb r0, [r0]
	ldr r2, =gUnknown_085B2B7E
	lsls r1, 1
	adds r1, r2
	ldrh r1, [r1]
	bl PetalburgGymFunc
	movs r0, 0
	strb r0, [r4]
	ldrb r0, [r5]
	adds r0, 0x1
	strb r0, [r5]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x5
	bne _08138970
	adds r0, r6, 0
	bl DestroyTask
	bl EnableBothScriptContexts
	b _08138970
	.pool
_0813896C:
	adds r0, r2, 0x1
	strb r0, [r4]
_08138970:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end Task_PetalburgGym

	thumb_func_start PetalburgGymFunc
PetalburgGymFunc: @ 8138978
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 16
	lsrs r2, r1, 16
	movs r7, 0
	subs r0, 0x1
	cmp r0, 0x7
	bhi _08138A40
	lsls r0, 2
	ldr r1, =_081389A0
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081389A0:
	.4byte _081389C0
	.4byte _081389D2
	.4byte _081389E4
	.4byte _081389F6
	.4byte _08138A04
	.4byte _08138A1A
	.4byte _08138A26
	.4byte _08138A34
_081389C0:
	movs r7, 0x2
	mov r1, sp
	movs r0, 0x1
	strh r0, [r1]
	movs r0, 0x7
	strh r0, [r1, 0x2]
	add r1, sp, 0x8
	movs r0, 0x68
	b _08138A14
_081389D2:
	movs r7, 0x2
	mov r1, sp
	movs r0, 0x1
	strh r0, [r1]
	movs r0, 0x7
	strh r0, [r1, 0x2]
	add r1, sp, 0x8
	movs r0, 0x4E
	b _08138A14
_081389E4:
	movs r7, 0x2
	mov r1, sp
	movs r0, 0x1
	strh r0, [r1]
	movs r0, 0x7
	strh r0, [r1, 0x2]
	add r1, sp, 0x8
	movs r0, 0x5B
	b _08138A14
_081389F6:
	movs r7, 0x1
	mov r1, sp
	movs r0, 0x7
	strh r0, [r1]
	add r1, sp, 0x8
	movs r0, 0x27
	b _08138A3E
_08138A04:
	movs r7, 0x2
	mov r1, sp
	movs r0, 0x1
	strh r0, [r1]
	movs r0, 0x7
	strh r0, [r1, 0x2]
	add r1, sp, 0x8
	movs r0, 0x34
_08138A14:
	strh r0, [r1]
	strh r0, [r1, 0x2]
	b _08138A40
_08138A1A:
	movs r7, 0x1
	mov r0, sp
	strh r7, [r0]
	add r1, sp, 0x8
	movs r0, 0x41
	b _08138A3E
_08138A26:
	movs r7, 0x1
	mov r1, sp
	movs r0, 0x7
	strh r0, [r1]
	add r1, sp, 0x8
	movs r0, 0xD
	b _08138A3E
_08138A34:
	movs r7, 0x1
	mov r0, sp
	strh r7, [r0]
	add r1, sp, 0x8
	movs r0, 0x1A
_08138A3E:
	strh r0, [r1]
_08138A40:
	movs r6, 0
	cmp r6, r7
	bcs _08138A92
	movs r1, 0xC0
	lsls r1, 4
	adds r0, r1, 0
	adds r1, r2, 0
	orrs r1, r0
	lsls r1, 16
	mov r9, r1
	adds r1, r2, 0
	adds r1, 0x8
	orrs r1, r0
	lsls r1, 16
	mov r8, r1
_08138A5E:
	lsls r1, r6, 1
	mov r3, sp
	adds r5, r3, r1
	ldrh r0, [r5]
	adds r0, 0x7
	add r4, sp, 0x8
	adds r4, r1
	ldrh r1, [r4]
	adds r1, 0x7
	mov r3, r9
	lsrs r2, r3, 16
	bl MapGridSetMetatileIdAt
	ldrh r0, [r5]
	adds r0, 0x7
	ldrh r1, [r4]
	adds r1, 0x8
	mov r3, r8
	lsrs r2, r3, 16
	bl MapGridSetMetatileIdAt
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, r7
	bcc _08138A5E
_08138A92:
	bl DrawWholeMapView
	add sp, 0x10
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end PetalburgGymFunc

	thumb_func_start PetalburgGymSpecial2
PetalburgGymSpecial2: @ 8138AA4
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrb r0, [r0]
	ldr r1, =gUnknown_085B2B7E
	ldrh r1, [r1, 0x8]
	bl PetalburgGymFunc
	pop {r0}
	bx r0
	.pool
	thumb_func_end PetalburgGymSpecial2

	thumb_func_start ShowFieldMessageStringVar4
ShowFieldMessageStringVar4: @ 8138AC0
	push {lr}
	ldr r0, =gStringVar4
	bl ShowFieldMessage
	pop {r0}
	bx r0
	.pool
	thumb_func_end ShowFieldMessageStringVar4

	thumb_func_start StorePlayerCoordsInVars
StorePlayerCoordsInVars: @ 8138AD0
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldrh r0, [r2]
	strh r0, [r1]
	ldr r1, =gSpecialVar_0x8005
	ldrh r0, [r2, 0x2]
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end StorePlayerCoordsInVars

	thumb_func_start GetPlayerTrainerIdOnesDigit
GetPlayerTrainerIdOnesDigit: @ 8138AF0
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0xB]
	lsls r1, 8
	ldrb r0, [r0, 0xA]
	orrs r0, r1
	movs r1, 0xA
	bl __umodsi3
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetPlayerTrainerIdOnesDigit

	thumb_func_start GetPlayerBigGuyGirlString
GetPlayerBigGuyGirlString: @ 8138B10
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	cmp r0, 0
	bne _08138B34
	ldr r0, =gStringVar1
	ldr r1, =gText_BigGuy
	bl StringCopy
	b _08138B3C
	.pool
_08138B34:
	ldr r0, =gStringVar1
	ldr r1, =gText_BigGirl
	bl StringCopy
_08138B3C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end GetPlayerBigGuyGirlString

	thumb_func_start GetRivalSonDaughterString
GetRivalSonDaughterString: @ 8138B48
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x8]
	cmp r0, 0
	bne _08138B6C
	ldr r0, =gStringVar1
	ldr r1, =gText_Daughter
	bl StringCopy
	b _08138B74
	.pool
_08138B6C:
	ldr r0, =gStringVar1
	ldr r1, =gText_Son
	bl StringCopy
_08138B74:
	pop {r0}
	bx r0
	.pool
	thumb_func_end GetRivalSonDaughterString

	thumb_func_start sub_8138B80
sub_8138B80: @ 8138B80
	ldr r0, =gBattleOutcome
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_8138B80

	thumb_func_start CableCarWarp
CableCarWarp: @ 8138B8C
	push {lr}
	sub sp, 0x4
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	beq _08138BB0
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x4
	str r0, [sp]
	movs r0, 0x13
	movs r1, 0
	movs r3, 0x6
	bl Overworld_SetWarpDestination
	b _08138BC2
	.pool
_08138BB0:
	movs r2, 0x1
	negs r2, r2
	movs r0, 0x4
	str r0, [sp]
	movs r0, 0x13
	movs r1, 0x1
	movs r3, 0x6
	bl Overworld_SetWarpDestination
_08138BC2:
	add sp, 0x4
	pop {r0}
	bx r0
	thumb_func_end CableCarWarp

	thumb_func_start SetFlagInVar
SetFlagInVar: @ 8138BC8
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	bl FlagSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end SetFlagInVar

	thumb_func_start GetWeekCount
GetWeekCount: @ 8138BDC
	push {lr}
	ldr r0, =gLocalTime
	movs r1, 0
	ldrsh r0, [r0, r1]
	movs r1, 0x7
	bl __divsi3
	lsls r0, 16
	lsrs r0, 16
	ldr r1, =0x0000270f
	cmp r0, r1
	bls _08138BF6
	adds r0, r1, 0
_08138BF6:
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetWeekCount

	thumb_func_start GetLeadMonFriendshipScore
GetLeadMonFriendshipScore: @ 8138C04
	push {r4,lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0xFF
	bne _08138C2C
	movs r0, 0x6
	b _08138C7E
	.pool
_08138C2C:
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0xC7
	bls _08138C3C
	movs r0, 0x5
	b _08138C7E
_08138C3C:
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0x95
	bls _08138C4C
	movs r0, 0x4
	b _08138C7E
_08138C4C:
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0x63
	bls _08138C5C
	movs r0, 0x3
	b _08138C7E
_08138C5C:
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0x31
	bls _08138C6C
	movs r0, 0x2
	b _08138C7E
_08138C6C:
	adds r0, r4, 0
	movs r1, 0x20
	bl GetMonData
	cmp r0, 0
	bne _08138C7C
	movs r0, 0
	b _08138C7E
_08138C7C:
	movs r0, 0x1
_08138C7E:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end GetLeadMonFriendshipScore

	thumb_func_start CB2_FieldShowRegionMap
CB2_FieldShowRegionMap: @ 8138C84
	push {lr}
	ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
	bl sub_817018C
	pop {r0}
	bx r0
	.pool
	thumb_func_end CB2_FieldShowRegionMap

	thumb_func_start FieldShowRegionMap
FieldShowRegionMap: @ 8138C94
	push {lr}
	ldr r0, =CB2_FieldShowRegionMap
	bl SetMainCallback2
	pop {r0}
	bx r0
	.pool
	thumb_func_end FieldShowRegionMap

	thumb_func_start DoPCTurnOnEffect
DoPCTurnOnEffect: @ 8138CA4
	push {r4,lr}
	ldr r4, =Task_PCTurnOnEffect
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08138CD8
	adds r0, r4, 0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0
	strh r2, [r1, 0x8]
	strh r0, [r1, 0xA]
	strh r2, [r1, 0xC]
	strh r2, [r1, 0xE]
	strh r2, [r1, 0x10]
_08138CD8:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DoPCTurnOnEffect

	thumb_func_start Task_PCTurnOnEffect
Task_PCTurnOnEffect: @ 8138CE8
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks
	adds r1, r0
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _08138D06
	adds r0, r1, 0
	bl PCTurnOnEffect_0
_08138D06:
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_PCTurnOnEffect

	thumb_func_start PCTurnOnEffect_0
PCTurnOnEffect_0: @ 8138D10
	push {r4-r6,lr}
	adds r4, r0, 0
	movs r6, 0
	movs r5, 0
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	cmp r0, 0x6
	bne _08138D7C
	strh r5, [r4, 0xE]
	bl player_get_direction_lower_nybble
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x3
	beq _08138D44
	cmp r0, 0x3
	bgt _08138D3A
	cmp r0, 0x2
	beq _08138D40
	b _08138D4C
_08138D3A:
	cmp r1, 0x4
	beq _08138D48
	b _08138D4C
_08138D40:
	movs r6, 0
	b _08138D4A
_08138D44:
	movs r6, 0xFF
	b _08138D4A
_08138D48:
	movs r6, 0x1
_08138D4A:
	movs r5, 0xFF
_08138D4C:
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	lsls r1, r6, 24
	asrs r1, 24
	lsls r2, r5, 24
	asrs r2, 24
	bl PCTurnOnEffect_1
	bl DrawWholeMapView
	ldrh r0, [r4, 0x10]
	movs r1, 0x1
	eors r0, r1
	strh r0, [r4, 0x10]
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x5
	bne _08138D7C
	ldrb r0, [r4, 0xA]
	bl DestroyTask
_08138D7C:
	ldrh r0, [r4, 0xE]
	adds r0, 0x1
	strh r0, [r4, 0xE]
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end PCTurnOnEffect_0

	thumb_func_start PCTurnOnEffect_1
PCTurnOnEffect_1: @ 8138D88
	push {r4,r5,lr}
	lsls r1, 24
	lsrs r1, 24
	lsls r2, 24
	lsrs r4, r2, 24
	movs r3, 0
	lsls r0, 16
	cmp r0, 0
	beq _08138DC4
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	bne _08138DAC
	movs r3, 0x4
	b _08138DE6
	.pool
_08138DAC:
	cmp r0, 0x1
	bne _08138DB8
	ldr r3, =0x0000025a
	b _08138DE6
	.pool
_08138DB8:
	cmp r0, 0x2
	bne _08138DE6
	ldr r3, =0x00000259
	b _08138DE6
	.pool
_08138DC4:
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	bne _08138DD4
	movs r3, 0x5
	b _08138DE6
	.pool
_08138DD4:
	cmp r0, 0x1
	bne _08138DE0
	ldr r3, =0x0000027f
	b _08138DE6
	.pool
_08138DE0:
	cmp r0, 0x2
	bne _08138DE6
	ldr r3, =0x0000027e
_08138DE6:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	movs r5, 0
	ldrsh r0, [r2, r5]
	lsls r1, 24
	asrs r1, 24
	adds r0, r1
	adds r0, 0x7
	movs r5, 0x2
	ldrsh r1, [r2, r5]
	lsls r2, r4, 24
	asrs r2, 24
	adds r1, r2
	adds r1, 0x7
	movs r4, 0xC0
	lsls r4, 4
	adds r2, r4, 0
	orrs r3, r2
	adds r2, r3, 0
	bl MapGridSetMetatileIdAt
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end PCTurnOnEffect_1

	thumb_func_start DoPCTurnOffEffect
DoPCTurnOffEffect: @ 8138E20
	push {lr}
	bl PCTurnOffEffect
	pop {r0}
	bx r0
	thumb_func_end DoPCTurnOffEffect

	thumb_func_start PCTurnOffEffect
PCTurnOffEffect: @ 8138E2C
	push {r4-r6,lr}
	movs r6, 0
	movs r5, 0
	movs r4, 0
	bl player_get_direction_lower_nybble
	lsls r0, 24
	lsrs r0, 24
	adds r1, r0, 0
	cmp r0, 0x3
	beq _08138E56
	cmp r0, 0x3
	bgt _08138E4C
	cmp r0, 0x2
	beq _08138E52
	b _08138E5E
_08138E4C:
	cmp r1, 0x4
	beq _08138E5A
	b _08138E5E
_08138E52:
	movs r6, 0
	b _08138E5C
_08138E56:
	movs r6, 0xFF
	b _08138E5C
_08138E5A:
	movs r6, 0x1
_08138E5C:
	movs r5, 0xFF
_08138E5E:
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	bne _08138E70
	movs r4, 0x4
	b _08138E82
	.pool
_08138E70:
	cmp r0, 0x1
	bne _08138E7C
	ldr r4, =0x0000025a
	b _08138E82
	.pool
_08138E7C:
	cmp r0, 0x2
	bne _08138E82
	ldr r4, =0x00000259
_08138E82:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	movs r1, 0
	ldrsh r0, [r2, r1]
	lsls r1, r6, 24
	asrs r1, 24
	adds r0, r1
	adds r0, 0x7
	movs r3, 0x2
	ldrsh r1, [r2, r3]
	lsls r2, r5, 24
	asrs r2, 24
	adds r1, r2
	adds r1, 0x7
	movs r3, 0xC0
	lsls r3, 4
	adds r2, r3, 0
	orrs r4, r2
	adds r2, r4, 0
	bl MapGridSetMetatileIdAt
	bl DrawWholeMapView
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end PCTurnOffEffect

	thumb_func_start DoLotteryCornerComputerEffect
DoLotteryCornerComputerEffect: @ 8138EC0
	push {r4,lr}
	ldr r4, =Task_LotteryCornerComputerEffect
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08138EF4
	adds r0, r4, 0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0
	strh r2, [r1, 0x8]
	strh r0, [r1, 0xA]
	strh r2, [r1, 0xC]
	strh r2, [r1, 0xE]
	strh r2, [r1, 0x10]
_08138EF4:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end DoLotteryCornerComputerEffect

	thumb_func_start Task_LotteryCornerComputerEffect
Task_LotteryCornerComputerEffect: @ 8138F04
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks
	adds r1, r0
	movs r2, 0x8
	ldrsh r0, [r1, r2]
	cmp r0, 0
	bne _08138F22
	adds r0, r1, 0
	bl LotteryCornerComputerEffect
_08138F22:
	pop {r0}
	bx r0
	.pool
	thumb_func_end Task_LotteryCornerComputerEffect

	thumb_func_start LotteryCornerComputerEffect
LotteryCornerComputerEffect: @ 8138F2C
	push {r4,lr}
	adds r4, r0, 0
	movs r1, 0xE
	ldrsh r0, [r4, r1]
	cmp r0, 0x6
	bne _08138F9A
	movs r0, 0
	strh r0, [r4, 0xE]
	movs r1, 0x10
	ldrsh r0, [r4, r1]
	cmp r0, 0
	beq _08138F64
	ldr r2, =0x00000e9d
	movs r0, 0x12
	movs r1, 0x8
	bl MapGridSetMetatileIdAt
	ldr r2, =0x00000ea5
	movs r0, 0x12
	movs r1, 0x9
	bl MapGridSetMetatileIdAt
	b _08138F7A
	.pool
_08138F64:
	ldr r2, =0x00000e58
	movs r0, 0x12
	movs r1, 0x8
	bl MapGridSetMetatileIdAt
	movs r2, 0xE6
	lsls r2, 4
	movs r0, 0x12
	movs r1, 0x9
	bl MapGridSetMetatileIdAt
_08138F7A:
	bl DrawWholeMapView
	ldrh r0, [r4, 0x10]
	movs r1, 0x1
	eors r0, r1
	strh r0, [r4, 0x10]
	ldrh r0, [r4, 0xC]
	adds r0, 0x1
	strh r0, [r4, 0xC]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x5
	bne _08138F9A
	ldrb r0, [r4, 0xA]
	bl DestroyTask
_08138F9A:
	ldrh r0, [r4, 0xE]
	adds r0, 0x1
	strh r0, [r4, 0xE]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end LotteryCornerComputerEffect

	thumb_func_start EndLotteryCornerComputerEffect
EndLotteryCornerComputerEffect: @ 8138FAC
	push {lr}
	ldr r2, =0x00000e9d
	movs r0, 0x12
	movs r1, 0x8
	bl MapGridSetMetatileIdAt
	ldr r2, =0x00000ea5
	movs r0, 0x12
	movs r1, 0x9
	bl MapGridSetMetatileIdAt
	bl DrawWholeMapView
	pop {r0}
	bx r0
	.pool
	thumb_func_end EndLotteryCornerComputerEffect

	thumb_func_start SetTrickHouseEndRoomFlag
SetTrickHouseEndRoomFlag: @ 8138FD4
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =0x000001f5
	strh r0, [r1]
	bl FlagSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end SetTrickHouseEndRoomFlag

	thumb_func_start ResetTrickHouseEndRoomFlag
ResetTrickHouseEndRoomFlag: @ 8138FEC
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =0x000001f5
	strh r0, [r1]
	bl FlagClear
	pop {r0}
	bx r0
	.pool
	thumb_func_end ResetTrickHouseEndRoomFlag

	thumb_func_start CheckLeadMonCool
CheckLeadMonCool: @ 8139004
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x16
	bl GetMonData
	cmp r0, 0xC7
	bls _08139028
	movs r0, 0x1
	b _0813902A
	.pool
_08139028:
	movs r0, 0
_0813902A:
	pop {r1}
	bx r1
	thumb_func_end CheckLeadMonCool

	thumb_func_start CheckLeadMonBeauty
CheckLeadMonBeauty: @ 8139030
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x17
	bl GetMonData
	cmp r0, 0xC7
	bls _08139054
	movs r0, 0x1
	b _08139056
	.pool
_08139054:
	movs r0, 0
_08139056:
	pop {r1}
	bx r1
	thumb_func_end CheckLeadMonBeauty

	thumb_func_start CheckLeadMonCute
CheckLeadMonCute: @ 813905C
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x18
	bl GetMonData
	cmp r0, 0xC7
	bls _08139080
	movs r0, 0x1
	b _08139082
	.pool
_08139080:
	movs r0, 0
_08139082:
	pop {r1}
	bx r1
	thumb_func_end CheckLeadMonCute

	thumb_func_start CheckLeadMonSmart
CheckLeadMonSmart: @ 8139088
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x21
	bl GetMonData
	cmp r0, 0xC7
	bls _081390AC
	movs r0, 0x1
	b _081390AE
	.pool
_081390AC:
	movs r0, 0
_081390AE:
	pop {r1}
	bx r1
	thumb_func_end CheckLeadMonSmart

	thumb_func_start CheckLeadMonTough
CheckLeadMonTough: @ 81390B4
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x2F
	bl GetMonData
	cmp r0, 0xC7
	bls _081390D8
	movs r0, 0x1
	b _081390DA
	.pool
_081390D8:
	movs r0, 0
_081390DA:
	pop {r1}
	bx r1
	thumb_func_end CheckLeadMonTough

	thumb_func_start IsGrassTypeInParty
IsGrassTypeInParty: @ 81390E0
	push {r4-r6,lr}
	movs r5, 0
	ldr r6, =gBaseStats
_081390E6:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x5
	bl GetMonData
	cmp r0, 0
	beq _0813913C
	adds r0, r4, 0
	movs r1, 0x2D
	bl GetMonData
	cmp r0, 0
	bne _0813913C
	adds r0, r4, 0
	movs r1, 0xB
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	lsls r1, r0, 3
	subs r1, r0
	lsls r1, 2
	adds r1, r6
	ldrb r0, [r1, 0x6]
	cmp r0, 0xC
	beq _08139128
	ldrb r0, [r1, 0x7]
	cmp r0, 0xC
	bne _0813913C
_08139128:
	ldr r1, =gSpecialVar_Result
	movs r0, 0x1
	b _0813914A
	.pool
_0813913C:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _081390E6
	ldr r1, =gSpecialVar_Result
	movs r0, 0
_0813914A:
	strh r0, [r1]
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end IsGrassTypeInParty

	thumb_func_start SpawnScriptFieldObject
SpawnScriptFieldObject: @ 8139158
	push {lr}
	sub sp, 0x8
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r3, [r0]
	adds r3, 0x7
	lsls r3, 16
	asrs r3, 16
	ldrh r0, [r0, 0x2]
	adds r0, 0x7
	lsls r0, 16
	asrs r0, 16
	str r0, [sp]
	movs r0, 0x3
	str r0, [sp, 0x4]
	movs r0, 0x7
	movs r1, 0x8
	movs r2, 0x7F
	bl SpawnSpecialFieldObjectParametrized
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gMapObjects
	lsls r1, r0, 3
	adds r1, r0
	lsls r1, 2
	adds r1, r2
	ldrb r0, [r1, 0x1]
	movs r2, 0x20
	orrs r0, r2
	strb r0, [r1, 0x1]
	ldrb r0, [r1, 0x4]
	bl CameraObjectSetFollowedObjectId
	add sp, 0x8
	pop {r0}
	bx r0
	.pool
	thumb_func_end SpawnScriptFieldObject

	thumb_func_start RemoveScriptFieldObject
RemoveScriptFieldObject: @ 81391AC
	push {lr}
	bl GetPlayerAvatarObjectId
	lsls r0, 24
	lsrs r0, 24
	bl CameraObjectSetFollowedObjectId
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	ldrb r2, [r0, 0x4]
	movs r0, 0x7F
	bl RemoveFieldObjectByLocalIdAndMap
	pop {r0}
	bx r0
	.pool
	thumb_func_end RemoveScriptFieldObject

	thumb_func_start GetPokeblockNameByMonNature
GetPokeblockNameByMonNature: @ 81391D0
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	bl GetNature
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gStringVar1
	bl CopyMonFavoritePokeblockName
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end GetPokeblockNameByMonNature

	thumb_func_start GetSecretBaseNearbyMapName
GetSecretBaseNearbyMapName: @ 8139200
	push {r4,lr}
	ldr r4, =gStringVar1
	ldr r0, =0x00004026
	bl VarGet
	adds r1, r0, 0
	lsls r1, 16
	lsrs r1, 16
	adds r0, r4, 0
	movs r2, 0
	bl GetMapName
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end GetSecretBaseNearbyMapName

	thumb_func_start sub_8139228
sub_8139228: @ 8139228
	push {lr}
	movs r0, 0x20
	bl GetGameStat
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	thumb_func_end sub_8139228

	thumb_func_start sub_8139238
sub_8139238: @ 8139238
	push {lr}
	ldr r0, =gStringVar1
	bl GetEreaderTrainerName
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139238

	thumb_func_start sub_8139248
sub_8139248: @ 8139248
	push {r4,r5,lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r1, =0x00002e68
	adds r0, r2, r1
	ldrb r1, [r0]
	lsls r1, 25
	ldr r0, =0x00002e6a
	adds r2, r0
	lsrs r1, 25
	ldrh r2, [r2]
	adds r1, r2
	ldr r2, =gUnknown_085B2B88
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	adds r0, r2
	ldrb r0, [r0]
	adds r5, r1, r0
	movs r0, 0x2
	bl GetPriceReduction
	lsls r0, 24
	cmp r0, 0
	bne _08139294
	ldr r4, =gUnknown_085B2B94
	b _08139296
	.pool
_08139294:
	ldr r4, =gUnknown_085B2BA0
_08139296:
	adds r0, r5, 0
	movs r1, 0xC
	bl __umodsi3
	adds r0, r4
	ldrb r0, [r0]
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8139248

	thumb_func_start sub_81392AC
sub_81392AC: @ 81392AC
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =0x00000213
	strh r0, [r1]
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081392CC
	movs r0, 0x1
	b _081392CE
	.pool
_081392CC:
	movs r0, 0
_081392CE:
	pop {r1}
	bx r1
	thumb_func_end sub_81392AC

	thumb_func_start sub_81392D4
sub_81392D4: @ 81392D4
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	movs r0, 0x85
	lsls r0, 2
	strh r0, [r1]
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _081392F0
	movs r0, 0x1
	b _081392F2
	.pool
_081392F0:
	movs r0, 0
_081392F2:
	pop {r1}
	bx r1
	thumb_func_end sub_81392D4

	thumb_func_start sub_81392F8
sub_81392F8: @ 81392F8
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =0x00000215
	strh r0, [r1]
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08139318
	movs r0, 0x1
	b _0813931A
	.pool
_08139318:
	movs r0, 0
_0813931A:
	pop {r1}
	bx r1
	thumb_func_end sub_81392F8

	thumb_func_start sub_8139320
sub_8139320: @ 8139320
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r0, =0x00000216
	strh r0, [r1]
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08139340
	movs r0, 0x1
	b _08139342
	.pool
_08139340:
	movs r0, 0
_08139342:
	pop {r1}
	bx r1
	thumb_func_end sub_8139320

	thumb_func_start LeadMonHasEffortRibbon
LeadMonHasEffortRibbon: @ 8139348
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x47
	movs r2, 0
	bl GetMonData
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end LeadMonHasEffortRibbon

	thumb_func_start GiveLeadMonEffortRibbon
GiveLeadMonEffortRibbon: @ 8139370
	push {r4,lr}
	sub sp, 0x4
	movs r0, 0x2A
	bl IncrementGameStat
	ldr r0, =0x0000089b
	bl FlagSet
	movs r1, 0x1
	mov r0, sp
	strb r1, [r0]
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x47
	mov r2, sp
	bl SetMonData
	adds r0, r4, 0
	bl GetRibbonCount
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bls _081393B6
	adds r0, r4, 0
	movs r1, 0x47
	bl sub_80EE4DC
_081393B6:
	add sp, 0x4
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end GiveLeadMonEffortRibbon

	thumb_func_start Special_AreLeadMonEVsMaxedOut
Special_AreLeadMonEVsMaxedOut: @ 81393C8
	push {lr}
	bl GetLeadMonIndex
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	bl GetMonEVCount
	lsls r0, 16
	ldr r1, =0x01fd0000
	cmp r0, r1
	bhi _081393F4
	movs r0, 0
	b _081393F6
	.pool
_081393F4:
	movs r0, 0x1
_081393F6:
	pop {r1}
	bx r1
	thumb_func_end Special_AreLeadMonEVsMaxedOut

	thumb_func_start sub_81393FC
sub_81393FC: @ 81393FC
	push {lr}
	movs r0, 0xC7
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _08139454
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	movs r0, 0x83
	lsls r0, 3
	cmp r1, r0
	bne _08139454
	subs r0, 0x75
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08139434
	ldr r0, =0x0000409a
	movs r1, 0x4
	b _08139446
	.pool
_08139434:
	movs r0, 0xE9
	lsls r0, 2
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	beq _08139454
	ldr r0, =0x0000409a
	movs r1, 0x5
_08139446:
	bl VarSet
	movs r0, 0x1
	b _08139456
	.pool
_08139454:
	movs r0, 0
_08139456:
	pop {r1}
	bx r1
	thumb_func_end sub_81393FC

	thumb_func_start SetShoalItemFlag
SetShoalItemFlag: @ 813945C
	push {lr}
	ldr r0, =0x000008bf
	bl FlagSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end SetShoalItemFlag

	thumb_func_start PutZigzagoonInPlayerParty
PutZigzagoonInPlayerParty: @ 813946C
	push {r4,r5,lr}
	sub sp, 0x14
	ldr r5, =gPlayerParty
	movs r1, 0x90
	lsls r1, 1
	movs r4, 0
	str r4, [sp]
	str r4, [sp, 0x4]
	str r4, [sp, 0x8]
	str r4, [sp, 0xC]
	adds r0, r5, 0
	movs r2, 0x7
	movs r3, 0x20
	bl CreateMon
	movs r1, 0x1
	add r0, sp, 0x10
	strh r1, [r0]
	adds r0, r5, 0
	movs r1, 0x2E
	add r2, sp, 0x10
	bl SetMonData
	add r1, sp, 0x10
	movs r0, 0x21
	strh r0, [r1]
	adds r0, r5, 0
	movs r1, 0xD
	add r2, sp, 0x10
	bl SetMonData
	add r0, sp, 0x10
	strh r4, [r0]
	adds r0, r5, 0
	movs r1, 0xE
	add r2, sp, 0x10
	bl SetMonData
	adds r0, r5, 0
	movs r1, 0xF
	add r2, sp, 0x10
	bl SetMonData
	adds r0, r5, 0
	movs r1, 0x10
	add r2, sp, 0x10
	bl SetMonData
	add sp, 0x14
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end PutZigzagoonInPlayerParty

	thumb_func_start IsStarterInParty
IsStarterInParty: @ 81394D8
	push {r4-r6,lr}
	ldr r0, =0x00004023
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	bl GetStarterPokemon
	lsls r0, 16
	lsrs r6, r0, 16
	bl CalculatePlayerPartyCount
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _08139526
_081394FA:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	movs r2, 0
	bl GetMonData
	cmp r0, r6
	bne _0813951C
	movs r0, 0x1
	b _08139528
	.pool
_0813951C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _081394FA
_08139526:
	movs r0, 0
_08139528:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end IsStarterInParty

	thumb_func_start ScriptCheckFreePokemonStorageSpace
ScriptCheckFreePokemonStorageSpace: @ 8139530
	push {lr}
	bl CheckFreePokemonStorageSpace
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end ScriptCheckFreePokemonStorageSpace

	thumb_func_start IsPokerusInParty
IsPokerusInParty: @ 8139540
	push {lr}
	ldr r0, =gPlayerParty
	movs r1, 0x3F
	bl CheckPartyPokerus
	lsls r0, 24
	cmp r0, 0
	beq _08139558
	movs r0, 0x1
	b _0813955A
	.pool
_08139558:
	movs r0, 0
_0813955A:
	pop {r1}
	bx r1
	thumb_func_end IsPokerusInParty

	thumb_func_start sub_8139560
sub_8139560: @ 8139560
	push {lr}
	ldr r0, =sub_81395BC
	movs r1, 0x9
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	ldr r0, =gSpecialVar_0x8005
	ldrh r0, [r0]
	movs r2, 0
	strh r0, [r1, 0x8]
	strh r2, [r1, 0xA]
	ldr r0, =gSpecialVar_0x8006
	ldrh r0, [r0]
	strh r0, [r1, 0xC]
	ldr r0, =gSpecialVar_0x8007
	ldrh r0, [r0]
	strh r0, [r1, 0xE]
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	strh r0, [r1, 0x10]
	movs r0, 0
	bl SetCameraPanningCallback
	movs r0, 0xD6
	bl PlaySE
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139560

	thumb_func_start sub_81395BC
sub_81395BC: @ 81395BC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	movs r2, 0x6
	ldrsh r1, [r4, r2]
	bl __modsi3
	cmp r0, 0
	bne _08139614
	strh r0, [r4, 0x2]
	ldrh r0, [r4, 0x4]
	subs r0, 0x1
	strh r0, [r4, 0x4]
	ldrh r0, [r4]
	negs r0, r0
	strh r0, [r4]
	ldrh r0, [r4, 0x8]
	negs r0, r0
	strh r0, [r4, 0x8]
	movs r1, 0
	ldrsh r0, [r4, r1]
	movs r2, 0x8
	ldrsh r1, [r4, r2]
	bl SetCameraPanning
	movs r1, 0x4
	ldrsh r0, [r4, r1]
	cmp r0, 0
	bne _08139614
	adds r0, r5, 0
	bl sub_8139620
	bl InstallCameraPanAheadCallback
_08139614:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81395BC

	thumb_func_start sub_8139620
sub_8139620: @ 8139620
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	bl DestroyTask
	bl EnableBothScriptContexts
	pop {r0}
	bx r0
	thumb_func_end sub_8139620

	thumb_func_start sub_8139634
sub_8139634: @ 8139634
	push {lr}
	movs r0, 0x95
	lsls r0, 2
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	thumb_func_end sub_8139634

	thumb_func_start SetRoute119Weather
SetRoute119Weather: @ 8139648
	push {lr}
	bl get_map_light_from_warp0
	lsls r0, 24
	lsrs r0, 24
	bl is_light_level_1_2_3_5_or_6
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08139664
	movs r0, 0x14
	bl SetSav1Weather
_08139664:
	pop {r0}
	bx r0
	thumb_func_end SetRoute119Weather

	thumb_func_start SetRoute123Weather
SetRoute123Weather: @ 8139668
	push {lr}
	bl get_map_light_from_warp0
	lsls r0, 24
	lsrs r0, 24
	bl is_light_level_1_2_3_5_or_6
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08139684
	movs r0, 0x15
	bl SetSav1Weather
_08139684:
	pop {r0}
	bx r0
	thumb_func_end SetRoute123Weather

	thumb_func_start GetLeadMonIndex
GetLeadMonIndex: @ 8139688
	push {r4-r6,lr}
	bl CalculatePlayerPartyCount
	lsls r0, 24
	lsrs r6, r0, 24
	movs r5, 0
	cmp r5, r6
	bcs _081396D6
_08139698:
	movs r0, 0x64
	adds r1, r5, 0
	muls r1, r0
	ldr r0, =gPlayerParty
	adds r4, r1, r0
	adds r0, r4, 0
	movs r1, 0x41
	movs r2, 0
	bl GetMonData
	movs r1, 0xCE
	lsls r1, 1
	cmp r0, r1
	beq _081396CC
	adds r0, r4, 0
	movs r1, 0x41
	movs r2, 0
	bl GetMonData
	cmp r0, 0
	beq _081396CC
	adds r0, r5, 0
	b _081396D8
	.pool
_081396CC:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, r6
	bcc _08139698
_081396D6:
	movs r0, 0
_081396D8:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end GetLeadMonIndex

	thumb_func_start ScriptGetPartyMonSpecies
ScriptGetPartyMonSpecies: @ 81396E0
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r1, [r0]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x41
	movs r2, 0
	bl GetMonData
	lsls r0, 16
	lsrs r0, 16
	pop {r1}
	bx r1
	.pool
	thumb_func_end ScriptGetPartyMonSpecies

	thumb_func_start nullsub_54
nullsub_54: @ 8139708
	bx lr
	thumb_func_end nullsub_54

	thumb_func_start sub_813970C
sub_813970C: @ 813970C
	push {r4,lr}
	ldr r0, =0x000040c2
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	adds r3, r0, 0
	ldr r2, =gLocalTime
	movs r1, 0
	ldrsh r0, [r2, r1]
	subs r0, r3
	cmp r0, 0x6
	ble _08139734
	movs r0, 0
	b _0813974C
	.pool
_08139734:
	ldrh r1, [r2]
	movs r4, 0
	ldrsh r0, [r2, r4]
	cmp r0, 0
	blt _0813974A
	subs r1, r3
	movs r0, 0x7
	subs r0, r1
	lsls r0, 16
	lsrs r0, 16
	b _0813974C
_0813974A:
	movs r0, 0x8
_0813974C:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_813970C

	thumb_func_start sub_8139754
sub_8139754: @ 8139754
	push {r4,lr}
	ldr r0, =0x000040c2
	ldr r4, =gLocalTime
	ldrh r1, [r4]
	bl VarSet
	ldrh r0, [r4]
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_8139754

	thumb_func_start sub_8139770
sub_8139770: @ 8139770
	push {r4-r6,lr}
	ldr r6, =gSpecialVar_0x8004
	ldrh r0, [r6]
	movs r5, 0x64
	muls r0, r5
	ldr r4, =gPlayerParty
	adds r0, r4
	movs r1, 0x3
	bl GetMonData
	cmp r0, 0x2
	bne _081397A6
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	ldr r4, =gStringVar1
	movs r1, 0x7
	adds r2, r4, 0
	bl GetMonData
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	adds r1, r4, 0
	bl StringCompare
	cmp r0, 0
	beq _081397BC
_081397A6:
	movs r0, 0x1
	b _081397BE
	.pool
_081397BC:
	movs r0, 0
_081397BE:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_8139770

	thumb_func_start sub_81397C4
sub_81397C4: @ 81397C4
	push {r4,r5,lr}
	ldr r2, =gSpecialVar_Result
	ldrh r1, [r2]
	ldr r0, =0x0000270f
	cmp r1, r0
	bls _081397E0
	movs r0, 0
	bl TV_PrintIntToStringVar
	b _08139862
	.pool
_081397E0:
	ldr r0, =0x000003e7
	cmp r1, r0
	bls _081397F8
	ldr r4, =gStringVar1
	movs r0, 0xA1
	strb r0, [r4]
	adds r4, 0x1
	b _0813981C
	.pool
_081397F8:
	cmp r1, 0x63
	bls _0813980C
	ldr r4, =gStringVar1
	movs r0, 0xA1
	strb r0, [r4]
	strb r0, [r4, 0x1]
	adds r4, 0x2
	b _0813981C
	.pool
_0813980C:
	cmp r1, 0x9
	bls _0813983C
	ldr r4, =gStringVar1
	movs r0, 0xA1
	strb r0, [r4]
	strb r0, [r4, 0x1]
	strb r0, [r4, 0x2]
	adds r4, 0x3
_0813981C:
	ldrh r5, [r2]
	adds r0, r5, 0
	bl sub_80EF370
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0
	bl ConvertIntToDecimalStringN
	b _08139862
	.pool
_0813983C:
	ldr r4, =gStringVar1
	movs r0, 0xA1
	strb r0, [r4]
	strb r0, [r4, 0x1]
	strb r0, [r4, 0x2]
	strb r0, [r4, 0x3]
	adds r4, 0x4
	ldrh r5, [r2]
	adds r0, r5, 0
	bl sub_80EF370
	adds r3, r0, 0
	lsls r3, 24
	lsrs r3, 24
	adds r0, r4, 0
	adds r1, r5, 0
	movs r2, 0
	bl ConvertIntToDecimalStringN
_08139862:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_81397C4

	thumb_func_start sub_813986C
sub_813986C: @ 813986C
	push {lr}
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0x4
	bhi _081398B8
	lsls r0, 2
	ldr r1, =_08139888
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08139888:
	.4byte _0813989C
	.4byte _081398A0
	.4byte _081398A4
	.4byte _081398A8
	.4byte _081398AC
_0813989C:
	movs r0, 0x3
	b _081398AE
_081398A0:
	movs r0, 0x4
	b _081398AE
_081398A4:
	movs r0, 0
	b _081398AE
_081398A8:
	movs r0, 0x1
	b _081398AE
_081398AC:
	movs r0, 0x2
_081398AE:
	bl mevent_081445C0
	lsls r0, 16
	lsrs r0, 16
	b _081398BA
_081398B8:
	movs r0, 0
_081398BA:
	pop {r1}
	bx r1
	thumb_func_end sub_813986C

	thumb_func_start sub_81398C0
sub_81398C0: @ 81398C0
	push {r4,lr}
	ldr r1, =gSpecialVar_0x8004
	ldr r2, =0xfffffedf
	adds r0, r2, 0
	ldrh r2, [r1]
	adds r0, r2
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x39
	bls _081398E0
	movs r0, 0
	b _081398FC
	.pool
_081398E0:
	ldr r4, =gStringVar2
	ldrh r0, [r1]
	bl ItemIdToBattleMoveId
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0xD
	muls r1, r0
	ldr r0, =gMoveNames
	adds r1, r0
	adds r0, r4, 0
	bl StringCopy
	movs r0, 0x1
_081398FC:
	pop {r4}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_81398C0

	thumb_func_start sub_813990C
sub_813990C: @ 813990C
	push {r4,r5,lr}
	bl CalculatePlayerPartyCount
	lsls r0, 24
	lsrs r5, r0, 24
	movs r4, 0
	cmp r4, r5
	bcs _08139942
_0813991C:
	movs r0, 0x64
	muls r0, r4
	ldr r1, =gPlayerParty
	adds r0, r1
	movs r1, 0x4
	bl GetMonData
	cmp r0, 0x1
	bne _08139938
	movs r0, 0x1
	b _08139944
	.pool
_08139938:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r5
	bcc _0813991C
_08139942:
	movs r0, 0
_08139944:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_813990C

	thumb_func_start InMultiBattleRoom
InMultiBattleRoom: @ 813994C
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x00000f1a
	cmp r1, r0
	bne _08139978
	ldr r0, =0x000040ce
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	bne _08139978
	movs r0, 0x1
	b _0813997A
	.pool
_08139978:
	movs r0, 0
_0813997A:
	pop {r1}
	bx r1
	thumb_func_end InMultiBattleRoom

	thumb_func_start sub_8139980
sub_8139980: @ 8139980
	push {lr}
	movs r0, 0
	bl SetCameraPanningCallback
	movs r0, 0x8
	movs r1, 0
	bl SetCameraPanning
	pop {r0}
	bx r0
	thumb_func_end sub_8139980

	thumb_func_start sub_8139994
sub_8139994: @ 8139994
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r0, [r0, 0x15]
	subs r0, 0x10
	lsls r0, 24
	asrs r0, 24
	cmp r0, 0x5
	bhi _081399E4
	lsls r0, 2
	ldr r1, =_081399B8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_081399B8:
	.4byte _081399E4
	.4byte _081399D0
	.4byte _081399D4
	.4byte _081399D8
	.4byte _081399DC
	.4byte _081399E0
_081399D0:
	movs r1, 0x5
	b _081399E6
_081399D4:
	movs r1, 0x6
	b _081399E6
_081399D8:
	movs r1, 0x7
	b _081399E6
_081399DC:
	movs r1, 0x8
	b _081399E6
_081399E0:
	movs r1, 0xF
	b _081399E6
_081399E4:
	movs r1, 0x4
_081399E6:
	ldr r0, =0x00004043
	bl VarSet
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139994

	thumb_func_start sub_81399F4
sub_81399F4: @ 81399F4
	push {r4,lr}
	ldr r2, =gUnknown_0203AB60
	movs r0, 0
	strh r0, [r2]
	ldr r1, =gUnknown_0203AB62
	strh r0, [r1]
	ldr r0, =gSaveBlock1Ptr
	ldr r3, [r0]
	movs r0, 0x14
	ldrsb r0, [r3, r0]
	adds r4, r1, 0
	cmp r0, 0xD
	bne _08139A6E
	ldrb r0, [r3, 0x15]
	subs r0, 0x10
	lsls r0, 24
	asrs r0, 24
	cmp r0, 0x4
	bhi _08139A6E
	lsls r0, 2
	ldr r1, =_08139A34
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_08139A34:
	.4byte _08139A66
	.4byte _08139A5E
	.4byte _08139A56
	.4byte _08139A4E
	.4byte _08139A48
_08139A48:
	movs r0, 0
	strh r0, [r2]
	b _08139A6C
_08139A4E:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x1
	b _08139A6C
_08139A56:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x2
	b _08139A6C
_08139A5E:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x3
	b _08139A6C
_08139A66:
	movs r0, 0
	strh r0, [r2]
	movs r0, 0x4
_08139A6C:
	strh r0, [r4]
_08139A6E:
	ldrh r0, [r4]
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_81399F4

	thumb_func_start sub_8139A78
sub_8139A78: @ 8139A78
	push {r4-r6,lr}
	ldr r0, =sub_8139AF4
	movs r1, 0x9
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks + 0x8
	adds r4, r1, r0
	movs r3, 0
	strh r3, [r4, 0x2]
	strh r3, [r4, 0x4]
	movs r6, 0x1
	strh r6, [r4, 0x8]
	ldr r0, =gSpecialVar_0x8005
	ldr r1, =gSpecialVar_0x8006
	ldrh r2, [r0]
	ldrh r0, [r1]
	cmp r2, r0
	bls _08139AC0
	subs r0, r2, r0
	lsls r0, 16
	lsrs r5, r0, 16
	strh r6, [r4, 0xC]
	b _08139AC8
	.pool
_08139AC0:
	subs r0, r2
	lsls r0, 16
	lsrs r5, r0, 16
	strh r3, [r4, 0xC]
_08139AC8:
	cmp r5, 0x8
	bls _08139ACE
	movs r5, 0x8
_08139ACE:
	ldr r0, =gUnknown_085B2C18
	adds r0, r5, r0
	ldrb r0, [r0]
	strh r0, [r4, 0xA]
	movs r0, 0
	bl SetCameraPanningCallback
	ldrb r1, [r4, 0xC]
	adds r0, r5, 0
	bl sub_8139C2C
	movs r0, 0x59
	bl PlaySE
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139A78

	thumb_func_start sub_8139AF4
sub_8139AF4: @ 8139AF4
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r1, 0x2
	ldrsh r0, [r4, r1]
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0
	bne _08139B54
	strh r0, [r4, 0x2]
	ldrh r0, [r4, 0x4]
	adds r0, 0x1
	strh r0, [r4, 0x4]
	ldrh r0, [r4, 0x8]
	negs r0, r0
	strh r0, [r4, 0x8]
	movs r2, 0x8
	ldrsh r1, [r4, r2]
	movs r0, 0
	bl SetCameraPanning
	movs r0, 0x4
	ldrsh r1, [r4, r0]
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r1, r0
	bne _08139B54
	movs r0, 0x49
	bl PlaySE
	adds r0, r5, 0
	bl DestroyTask
	bl EnableBothScriptContexts
	bl InstallCameraPanAheadCallback
_08139B54:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139AF4

	thumb_func_start sub_8139B60
sub_8139B60: @ 8139B60
	push {r4-r6,lr}
	mov r6, r9
	mov r5, r8
	push {r5,r6}
	sub sp, 0xC
	ldr r5, =gUnknown_0203AB5E
	ldr r0, =gUnknown_085B2BAC
	bl AddWindow
	strb r0, [r5]
	ldrb r0, [r5]
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldr r4, =gText_ElevatorNowOn
	movs r0, 0x1
	adds r1, r4, 0
	movs r2, 0x40
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	ldrb r0, [r5]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0xFF
	mov r9, r1
	str r1, [sp, 0x4]
	movs r1, 0
	mov r8, r1
	str r1, [sp, 0x8]
	movs r1, 0x1
	adds r2, r4, 0
	bl PrintTextOnWindow
	ldr r6, =gElevatorFloorsTable
	ldr r4, =gSpecialVar_0x8005
	ldrh r0, [r4]
	lsls r0, 2
	adds r0, r6
	ldr r1, [r0]
	movs r0, 0x1
	movs r2, 0x40
	bl GetStringCenterAlignXOffset
	adds r3, r0, 0
	ldrb r0, [r5]
	ldrh r1, [r4]
	lsls r1, 2
	adds r1, r6
	ldr r2, [r1]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x11
	str r1, [sp]
	mov r1, r9
	str r1, [sp, 0x4]
	mov r1, r8
	str r1, [sp, 0x8]
	movs r1, 0x1
	bl PrintTextOnWindow
	ldrb r0, [r5]
	bl PutWindowTilemap
	ldrb r0, [r5]
	movs r1, 0x3
	bl CopyWindowToVram
	add sp, 0xC
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139B60

	thumb_func_start sub_8139C10
sub_8139C10: @ 8139C10
	push {r4,lr}
	ldr r4, =gUnknown_0203AB5E
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_8198070
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139C10

	thumb_func_start sub_8139C2C
sub_8139C2C: @ 8139C2C
	push {r4-r6,lr}
	lsls r0, 16
	lsrs r6, r0, 16
	lsls r1, 24
	lsrs r5, r1, 24
	ldr r4, =sub_8139C80
	adds r0, r4, 0
	bl FuncIsActiveTask
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _08139C6C
	adds r0, r4, 0
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r0, 0
	strh r0, [r1, 0x8]
	strh r0, [r1, 0xA]
	strh r5, [r1, 0xC]
	ldr r0, =gUnknown_085B2C21
	adds r0, r6, r0
	ldrb r0, [r0]
	strh r0, [r1, 0xE]
_08139C6C:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139C2C

	thumb_func_start sub_8139C80
sub_8139C80: @ 8139C80
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp]
	lsls r0, 2
	ldr r1, [sp]
	adds r0, r1
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r6, r0, r1
	movs r2, 0x2
	ldrsh r0, [r6, r2]
	cmp r0, 0x6
	bne _08139D7C
	ldrh r0, [r6]
	adds r0, 0x1
	strh r0, [r6]
	movs r1, 0x4
	ldrsh r0, [r6, r1]
	cmp r0, 0
	bne _08139D10
	movs r1, 0
	ldr r2, =gUnknown_085B2BF4
	mov r10, r2
_08139CBA:
	movs r5, 0
	adds r7, r1, 0x7
	lsls r0, r1, 1
	adds r2, r1, 0x1
	mov r8, r2
	adds r0, r1
	lsls r0, 1
	mov r9, r0
_08139CCA:
	adds r4, r5, 0
	adds r4, 0x8
	movs r1, 0
	ldrsh r0, [r6, r1]
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	asrs r0, 15
	add r0, r9
	add r0, r10
	ldrh r0, [r0]
	movs r1, 0xC0
	lsls r1, 4
	adds r2, r1, 0
	orrs r2, r0
	adds r0, r4, 0
	adds r1, r7, 0
	bl MapGridSetMetatileIdAt
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x2
	bls _08139CCA
	mov r2, r8
	lsls r0, r2, 24
	lsrs r1, r0, 24
	cmp r1, 0x2
	bls _08139CBA
	b _08139D62
	.pool
_08139D10:
	movs r1, 0
	ldr r0, =gUnknown_085B2C06
	mov r10, r0
_08139D16:
	movs r5, 0
	adds r7, r1, 0x7
	lsls r0, r1, 1
	adds r2, r1, 0x1
	mov r8, r2
	adds r0, r1
	lsls r0, 1
	mov r9, r0
_08139D26:
	adds r4, r5, 0
	adds r4, 0x8
	movs r1, 0
	ldrsh r0, [r6, r1]
	movs r1, 0x3
	bl __modsi3
	lsls r0, 16
	asrs r0, 15
	add r0, r9
	add r0, r10
	ldrh r0, [r0]
	movs r1, 0xC0
	lsls r1, 4
	adds r2, r1, 0
	orrs r2, r0
	adds r0, r4, 0
	adds r1, r7, 0
	bl MapGridSetMetatileIdAt
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x2
	bls _08139D26
	mov r2, r8
	lsls r0, r2, 24
	lsrs r1, r0, 24
	cmp r1, 0x2
	bls _08139D16
_08139D62:
	bl DrawWholeMapView
	movs r0, 0
	strh r0, [r6, 0x2]
	movs r0, 0
	ldrsh r1, [r6, r0]
	movs r2, 0x6
	ldrsh r0, [r6, r2]
	cmp r1, r0
	bne _08139D7C
	ldr r0, [sp]
	bl DestroyTask
_08139D7C:
	ldrh r0, [r6, 0x2]
	adds r0, 0x1
	strh r0, [r6, 0x2]
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139C80

	thumb_func_start sub_8139D98
sub_8139D98: @ 8139D98
	push {r4-r7,lr}
	sub sp, 0x18
	ldr r6, =gSpecialVar_0x8004
	ldrh r0, [r6]
	movs r5, 0x64
	muls r0, r5
	ldr r4, =gPlayerParty
	adds r0, r4
	movs r1, 0x27
	bl GetMonData
	str r0, [sp]
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	movs r1, 0x28
	bl GetMonData
	str r0, [sp, 0x4]
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	movs r1, 0x29
	bl GetMonData
	str r0, [sp, 0x8]
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	movs r1, 0x2A
	bl GetMonData
	str r0, [sp, 0xC]
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	movs r1, 0x2B
	bl GetMonData
	str r0, [sp, 0x10]
	ldrh r0, [r6]
	muls r0, r5
	adds r0, r4
	movs r1, 0x2C
	bl GetMonData
	str r0, [sp, 0x14]
	ldr r1, =gSpecialVar_0x8005
	movs r0, 0
	strh r0, [r1]
	movs r4, 0
	adds r2, r1, 0
_08139E00:
	lsls r0, r4, 2
	add r0, sp
	ldr r1, [r0]
	ldrh r0, [r2]
	adds r0, r1
	strh r0, [r2]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _08139E00
	ldr r2, =gSpecialVar_0x8006
	movs r0, 0
	strh r0, [r2]
	ldr r1, =gSpecialVar_0x8007
	ldr r0, [sp]
	strh r0, [r1]
	movs r4, 0x1
	adds r6, r2, 0
	adds r7, r1, 0
_08139E28:
	ldrh r0, [r6]
	lsls r0, 2
	mov r2, sp
	adds r1, r2, r0
	lsls r0, r4, 2
	adds r5, r2, r0
	ldr r1, [r1]
	ldr r0, [r5]
	cmp r1, r0
	bcs _08139E54
	strh r4, [r6]
	b _08139E6C
	.pool
_08139E54:
	cmp r1, r0
	bne _08139E6E
	bl Random
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _08139E6E
	strh r4, [r6]
	ldr r0, [r5]
_08139E6C:
	strh r0, [r7]
_08139E6E:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x5
	bls _08139E28
	add sp, 0x18
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_8139D98

	thumb_func_start warp0_in_pokecenter
warp0_in_pokecenter: @ 8139E80
	push {r4,lr}
	ldr r0, =gUnknown_020322DC
	movs r1, 0
	ldrsb r1, [r0, r1]
	lsls r1, 8
	ldrb r0, [r0, 0x1]
	lsls r0, 24
	asrs r0, 24
	adds r0, r1
	lsls r0, 16
	lsrs r3, r0, 16
	ldr r2, =gUnknown_085B2C2A
	ldrh r0, [r2]
	ldr r1, =0x0000ffff
	cmp r0, r1
	beq _08139EC6
	adds r4, r1, 0
	adds r1, r2, 0
_08139EA4:
	ldrh r0, [r2]
	cmp r0, r3
	bne _08139EBC
	movs r0, 0x1
	b _08139EC8
	.pool
_08139EBC:
	adds r1, 0x2
	adds r2, 0x2
	ldrh r0, [r1]
	cmp r0, r4
	bne _08139EA4
_08139EC6:
	movs r0, 0
_08139EC8:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end warp0_in_pokecenter

	thumb_func_start sub_8139ED0
sub_8139ED0: @ 8139ED0
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x00003c1a
	cmp r1, r0
	beq _08139EEC
	movs r0, 0x1
	b _08139EEE
	.pool
_08139EEC:
	movs r0, 0
_08139EEE:
	pop {r1}
	bx r1
	thumb_func_end sub_8139ED0

	thumb_func_start UpdateFrontierManiac
UpdateFrontierManiac: @ 8139EF4
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =0x0000402f
	bl GetVarPointer
	adds r5, r0, 0
	ldrh r0, [r5]
	adds r4, r0
	strh r4, [r5]
	ldrh r0, [r5]
	movs r1, 0xA
	bl __umodsi3
	strh r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end UpdateFrontierManiac

	thumb_func_start sub_8139F20
sub_8139F20: @ 8139F20
	push {r4-r7,lr}
	movs r4, 0
	ldr r0, =0x0000402f
	bl VarGet
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0x9
	bls _08139F34
	b _0813A03A
_08139F34:
	lsls r0, r6, 2
	ldr r1, =_08139F48
	adds r1, r0, r1
	ldr r1, [r1]
	adds r2, r0, 0
	mov pc, r1
	.pool
	.align 2, 0
_08139F48:
	.4byte _08139F70
	.4byte _08139F70
	.4byte _08139F70
	.4byte _08139F70
	.4byte _08139F94
	.4byte _08139FB4
	.4byte _08139FCC
	.4byte _08139FE4
	.4byte _08139FFC
	.4byte _0813A014
_08139F70:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	movs r3, 0xCE
	lsls r3, 4
	adds r1, r0, r3
	adds r3, r1, r2
	ldr r1, =0x00000ce2
	adds r0, r1
	adds r1, r0, r2
	ldrh r0, [r3]
	ldrh r2, [r1]
	cmp r0, r2
	bcs _0813A028
	b _0813A038
	.pool
_08139F94:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r3, =0x00000d0c
	adds r2, r0, r3
	adds r3, 0x2
_08139F9E:
	adds r1, r0, r3
	ldrh r0, [r2]
	ldrh r3, [r1]
	cmp r0, r3
	bcs _0813A028
	b _0813A038
	.pool
_08139FB4:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000de2
	adds r2, r0, r1
	ldr r3, =0x00000de4
	b _08139F9E
	.pool
_08139FCC:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000dc8
	adds r2, r0, r1
	ldr r3, =0x00000dca
	b _08139F9E
	.pool
_08139FE4:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000dda
	adds r2, r0, r1
	ldr r3, =0x00000ddc
	b _08139F9E
	.pool
_08139FFC:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000e04
	adds r2, r0, r1
	ldr r3, =0x00000e06
	b _08139F9E
	.pool
_0813A014:
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000e1a
	adds r2, r0, r1
	ldr r3, =0x00000e1c
	adds r1, r0, r3
	ldrh r0, [r2]
	ldrh r3, [r1]
	cmp r0, r3
	bcc _0813A038
_0813A028:
	adds r4, r0, 0
	b _0813A03A
	.pool
_0813A038:
	ldrh r4, [r1]
_0813A03A:
	movs r2, 0
	ldr r5, =gUnknown_085B2CC8
	lsls r0, r6, 1
	adds r1, r0, r5
	ldrb r1, [r1]
	adds r3, r0, 0
	ldr r7, =gUnknown_085B2C50
	cmp r1, r4
	bcs _0813A062
	adds r1, r3, 0
_0813A04E:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1
	bhi _0813A062
	adds r0, r2, r1
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, r4
	bcc _0813A04E
_0813A062:
	adds r0, r3, r6
	adds r0, r2
	lsls r0, 2
	adds r0, r7
	ldr r0, [r0]
	bl ShowFieldMessage
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_8139F20

	thumb_func_start sub_813A080
sub_813A080: @ 813A080
	push {r4-r7,lr}
	ldr r0, =0x000040ce
	bl VarGet
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000ca9
	adds r0, r1
	ldrb r0, [r0]
	lsls r0, 30
	lsrs r4, r0, 30
	cmp r5, 0x2
	bne _0813A0D8
	movs r0, 0xA9
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _0813A0D8
	ldr r1, =gSpecialVar_0x8005
	movs r0, 0x5
	strh r0, [r1]
	ldr r1, =gSpecialVar_0x8006
	movs r0, 0x4
	strh r0, [r1]
	b _0813A110
	.pool
_0813A0D0:
	movs r0, 0x4
	strh r0, [r6]
	adds r0, r3, 0x5
	b _0813A10E
_0813A0D8:
	movs r3, 0
	ldr r6, =gSpecialVar_0x8005
	ldr r7, =gSpecialVar_0x8006
	lsls r1, r4, 1
	lsls r2, r5, 2
	ldr r4, =gUnknown_085B2CDC
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	adds r1, r2
	movs r2, 0xCE
	lsls r2, 4
	adds r0, r2
	adds r0, r1
	ldrh r1, [r0]
_0813A0F4:
	lsls r0, r3, 1
	adds r0, r4
	ldrh r0, [r0]
	cmp r0, r1
	bhi _0813A0D0
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x8
	bls _0813A0F4
	movs r0, 0x4
	strh r0, [r6]
	movs r0, 0xC
_0813A10E:
	strh r0, [r7]
_0813A110:
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A080

	thumb_func_start sub_813A128
sub_813A128: @ 813A128
	push {r4,lr}
	ldr r0, =sub_813A2DC
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	ldr r1, =gTasks
	adds r3, r0, r1
	ldr r1, =gSpecialVar_0x8004
	ldrh r0, [r1]
	strh r0, [r3, 0x1E]
	ldrh r0, [r1]
	cmp r0, 0xC
	bls _0813A14E
	b _0813A2C6
_0813A14E:
	lsls r0, 2
	ldr r1, =_0813A168
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813A168:
	.4byte _0813A19C
	.4byte _0813A1AA
	.4byte _0813A1C2
	.4byte _0813A1D6
	.4byte _0813A1F0
	.4byte _0813A208
	.4byte _0813A222
	.4byte _0813A23C
	.4byte _0813A25A
	.4byte _0813A274
	.4byte _0813A274
	.4byte _0813A28E
	.4byte _0813A2A8
_0813A19C:
	movs r1, 0
	movs r0, 0x1
	strh r0, [r3, 0x8]
	strh r0, [r3, 0xA]
	strh r0, [r3, 0xC]
	strh r0, [r3, 0xE]
	b _0813A2BC
_0813A1AA:
	movs r1, 0
	movs r0, 0x5
	strh r0, [r3, 0x8]
	movs r0, 0x8
	strh r0, [r3, 0xA]
	movs r0, 0x1
	strh r0, [r3, 0xC]
	strh r0, [r3, 0xE]
	movs r0, 0x9
	strh r0, [r3, 0x10]
	movs r0, 0xA
	b _0813A2BE
_0813A1C2:
	movs r2, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r1, 0xC
	strh r1, [r3, 0xA]
	movs r0, 0x1
	strh r0, [r3, 0xC]
	strh r0, [r3, 0xE]
	movs r0, 0x7
	b _0813A250
_0813A1D6:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0xB
	strh r0, [r3, 0xA]
	movs r0, 0xE
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xF
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A1F0:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	strh r0, [r3, 0xA]
	movs r0, 0xE
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xF
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A208:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0x7
	strh r0, [r3, 0xA]
	movs r0, 0xE
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xF
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A222:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0xA
	strh r0, [r3, 0xA]
	movs r0, 0xE
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xF
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A23C:
	movs r2, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r1, 0xC
	strh r1, [r3, 0xA]
	movs r0, 0xF
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xE
_0813A250:
	strh r0, [r3, 0x10]
	strh r1, [r3, 0x12]
	strh r2, [r3, 0x14]
	strh r4, [r3, 0x26]
	b _0813A2D2
_0813A25A:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0xA
	strh r0, [r3, 0xA]
	movs r0, 0x11
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xB
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A274:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0xB
	strh r0, [r3, 0xA]
	movs r0, 0xF
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xE
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A28E:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0x7
	strh r0, [r3, 0xA]
	movs r0, 0x13
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xA
	strh r0, [r3, 0x10]
	movs r0, 0xC
	b _0813A2BE
_0813A2A8:
	movs r1, 0
	movs r0, 0x6
	strh r0, [r3, 0x8]
	movs r0, 0x7
	strh r0, [r3, 0xA]
	movs r0, 0x11
	strh r0, [r3, 0xC]
	movs r0, 0x1
	strh r0, [r3, 0xE]
	movs r0, 0xC
_0813A2BC:
	strh r0, [r3, 0x10]
_0813A2BE:
	strh r0, [r3, 0x12]
	strh r1, [r3, 0x14]
	strh r4, [r3, 0x26]
	b _0813A2D2
_0813A2C6:
	ldr r1, =gSpecialVar_Result
	movs r0, 0x7F
	strh r0, [r1]
	adds r0, r4, 0
	bl DestroyTask
_0813A2D2:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A128

	thumb_func_start sub_813A2DC
sub_813A2DC: @ 813A2DC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x20
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	ldr r1, =gTasks
	adds r6, r0, r1
	bl ScriptContext2_Enable
	ldr r0, =gUnknown_0203AB68
	movs r5, 0
	strh r5, [r0]
	ldr r1, =gUnknown_0203AB6C
	movs r0, 0x40
	strb r0, [r1]
	ldrh r0, [r6, 0x1E]
	movs r1, 0
	bl sub_813AA60
	ldrb r0, [r6, 0x1E]
	movs r1, 0
	bl sub_813ACE8
	ldr r4, =gUnknown_0203AB64
	movs r1, 0xA
	ldrsh r0, [r6, r1]
	lsls r0, 3
	bl AllocZeroed
	str r0, [r4]
	ldr r0, =gUnknown_0203AB6A
	strh r5, [r0]
	bl sub_813A42C
	movs r3, 0
	movs r4, 0
	movs r2, 0xA
	ldrsh r0, [r6, r2]
	add r1, sp, 0x18
	mov r8, r1
	cmp r3, r0
	bge _0813A36A
	ldr r5, =gUnknown_085B2CF0
_0813A33A:
	lsls r1, r4, 2
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	lsls r0, 6
	adds r1, r0
	adds r1, r5
	ldr r0, [r1]
	ldr r1, =gUnknown_0203AB64
	ldr r2, [r1]
	lsls r1, r4, 3
	adds r1, r2
	str r0, [r1]
	str r4, [r1, 0x4]
	adds r1, r3, 0
	bl display_text_and_get_width
	adds r3, r0, 0
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	movs r2, 0xA
	ldrsh r0, [r6, r2]
	cmp r4, r0
	blt _0813A33A
_0813A36A:
	adds r0, r3, 0
	bl convert_pixel_width_to_tile_width
	strh r0, [r6, 0x10]
	movs r1, 0xC
	ldrsh r0, [r6, r1]
	movs r2, 0x10
	ldrsh r1, [r6, r2]
	adds r0, r1
	cmp r0, 0x1D
	ble _0813A38C
	movs r0, 0x1D
	subs r0, r1
	cmp r0, 0
	bge _0813A38A
	movs r0, 0
_0813A38A:
	strh r0, [r6, 0xC]
_0813A38C:
	ldrb r2, [r6, 0xC]
	ldrb r3, [r6, 0xE]
	ldrb r0, [r6, 0x10]
	str r0, [sp]
	ldrb r0, [r6, 0x12]
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0x64
	str r0, [sp, 0xC]
	add r0, sp, 0x10
	movs r1, 0
	bl sub_8198A50
	ldr r0, [sp, 0x10]
	ldr r1, [sp, 0x14]
	str r0, [sp, 0x18]
	str r1, [sp, 0x1C]
	mov r0, r8
	bl AddWindow
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x22]
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldr r4, =gUnknown_030061D0
	ldrh r0, [r6, 0xA]
	strh r0, [r4, 0xC]
	ldrh r0, [r6, 0x8]
	strh r0, [r4, 0xE]
	ldrh r0, [r6, 0x22]
	strb r0, [r4, 0x10]
	adds r0, r7, 0
	bl sub_813A694
	ldrh r1, [r6, 0x16]
	ldrh r2, [r6, 0x18]
	adds r0, r4, 0
	bl ListMenuInit
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r6, 0x24]
	movs r0, 0
	bl schedule_bg_copy_tilemap_to_vram
	ldr r1, =gTasks
	lsls r0, r7, 2
	adds r0, r7
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_813A4EC
	str r1, [r0]
	add sp, 0x20
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A2DC

	thumb_func_start sub_813A42C
sub_813A42C: @ 813A42C
	ldr r1, =gUnknown_030061D0
	ldr r0, =gUnknown_0203AB64
	ldr r0, [r0]
	str r0, [r1]
	ldr r0, =sub_813A46C
	str r0, [r1, 0x4]
	movs r0, 0
	str r0, [r1, 0x8]
	movs r2, 0
	movs r0, 0x1
	strh r0, [r1, 0xC]
	strh r0, [r1, 0xE]
	strb r2, [r1, 0x10]
	strb r2, [r1, 0x11]
	movs r0, 0x8
	strb r0, [r1, 0x12]
	strb r2, [r1, 0x13]
	movs r0, 0x21
	strb r0, [r1, 0x14]
	movs r0, 0x31
	strb r0, [r1, 0x15]
	movs r0, 0
	strb r0, [r1, 0x16]
	movs r0, 0x1
	strb r0, [r1, 0x17]
	bx lr
	.pool
	thumb_func_end sub_813A42C

	thumb_func_start sub_813A46C
sub_813A46C: @ 813A46C
	push {r4,r5,lr}
	sub sp, 0x4
	movs r0, 0x5
	bl PlaySE
	ldr r0, =sub_813A4EC
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0xFF
	beq _0813A4D4
	lsls r4, r0, 2
	adds r4, r0
	lsls r4, 3
	ldr r0, =gTasks
	adds r4, r0
	ldrh r0, [r4, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r1, sp
	movs r2, 0
	bl sub_81AE860
	ldr r1, =gUnknown_0203AB68
	mov r0, sp
	ldrh r0, [r0]
	strh r0, [r1]
	ldrh r0, [r4, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r1, sp
	bl sub_81AE838
	ldrh r0, [r4, 0x1E]
	ldr r5, =gUnknown_0203AB6A
	ldrh r1, [r5]
	bl sub_813AC44
	ldrh r0, [r4, 0x1E]
	mov r1, sp
	ldrh r1, [r1]
	bl sub_813AA60
	ldrb r0, [r4, 0x1E]
	mov r1, sp
	ldrh r1, [r1]
	bl sub_813AD34
	mov r0, sp
	ldrh r0, [r0]
	strh r0, [r5]
_0813A4D4:
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A46C

	thumb_func_start sub_813A4EC
sub_813A4EC: @ 813A4EC
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks
	adds r6, r0, r1
	ldrh r0, [r6, 0x24]
	lsls r0, 24
	lsrs r0, 24
	bl ListMenuHandleInputGetItemId
	adds r4, r0, 0
	movs r0, 0x2
	negs r0, r0
	cmp r4, r0
	beq _0813A51C
	adds r0, 0x1
	cmp r4, r0
	bne _0813A530
	b _0813A566
	.pool
_0813A51C:
	ldr r1, =gSpecialVar_Result
	movs r0, 0x7F
	strh r0, [r1]
	movs r0, 0x5
	bl PlaySE
	b _0813A54C
	.pool
_0813A530:
	ldr r0, =gSpecialVar_Result
	strh r4, [r0]
	movs r0, 0x5
	bl PlaySE
	movs r1, 0x14
	ldrsh r0, [r6, r1]
	cmp r0, 0
	beq _0813A54C
	movs r1, 0xA
	ldrsh r0, [r6, r1]
	subs r0, 0x1
	cmp r4, r0
	bne _0813A558
_0813A54C:
	adds r0, r5, 0
	bl sub_813A570
	b _0813A566
	.pool
_0813A558:
	adds r0, r5, 0
	bl sub_813A738
	ldr r0, =sub_813A600
	str r0, [r6]
	bl EnableBothScriptContexts
_0813A566:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A4EC

	thumb_func_start sub_813A570
sub_813A570: @ 813A570
	push {r4,r5,lr}
	sub sp, 0x4
	adds r5, r0, 0
	lsls r5, 24
	lsrs r5, 24
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks
	adds r4, r0
	ldrh r0, [r4, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r1, sp
	bl sub_81AE838
	ldrh r0, [r4, 0x1E]
	mov r1, sp
	ldrh r1, [r1]
	bl sub_813AC44
	adds r0, r5, 0
	bl sub_813A738
	ldrh r0, [r4, 0x24]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	movs r2, 0
	bl sub_81AE6C8
	ldr r0, =gUnknown_0203AB64
	ldr r0, [r0]
	bl Free
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	bl sub_8198070
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x2
	bl CopyWindowToVram
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl RemoveWindow
	adds r0, r5, 0
	bl DestroyTask
	bl EnableBothScriptContexts
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A570

	thumb_func_start sub_813A600
sub_813A600: @ 813A600
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0x14
	ldrsh r0, [r1, r2]
	cmp r0, 0x1
	beq _0813A624
	cmp r0, 0x2
	bne _0813A624
	movs r0, 0x1
	strh r0, [r1, 0x14]
	ldr r0, =sub_813A664
	str r0, [r1]
_0813A624:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A600

	thumb_func_start sub_813A630
sub_813A630: @ 813A630
	push {lr}
	ldr r0, =sub_813A600
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xFF
	bne _0813A64C
	bl EnableBothScriptContexts
	b _0813A65C
	.pool
_0813A64C:
	ldr r0, =gTasks
	lsls r1, r2, 2
	adds r1, r2
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x14]
	adds r0, 0x1
	strh r0, [r1, 0x14]
_0813A65C:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A630

	thumb_func_start sub_813A664
sub_813A664: @ 813A664
	push {r4,lr}
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl ScriptContext2_Enable
	adds r0, r4, 0
	bl sub_813A694
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldr r1, =sub_813A4EC
	str r1, [r0]
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A664

	thumb_func_start sub_813A694
sub_813A694: @ 813A694
	push {r4,r5,lr}
	sub sp, 0x10
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks
	adds r4, r1, r0
	mov r1, sp
	ldr r0, =gUnknown_085B3030
	ldm r0!, {r2,r3,r5}
	stm r1!, {r2,r3,r5}
	ldr r0, [r0]
	str r0, [r1]
	movs r0, 0x8
	ldrsh r1, [r4, r0]
	movs r2, 0xA
	ldrsh r0, [r4, r2]
	cmp r1, r0
	beq _0813A724
	mov r2, sp
	movs r3, 0x10
	ldrsh r1, [r4, r3]
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	lsls r1, 3
	adds r1, 0xC
	movs r5, 0xC
	ldrsh r0, [r4, r5]
	subs r0, 0x1
	lsls r0, 3
	adds r1, r0
	movs r3, 0
	strb r1, [r2, 0x1]
	mov r1, sp
	movs r0, 0x8
	strb r0, [r1, 0x2]
	movs r0, 0x10
	ldrsh r1, [r4, r0]
	lsrs r0, r1, 31
	adds r1, r0
	asrs r1, 1
	lsls r1, 3
	adds r1, 0xC
	movs r5, 0xC
	ldrsh r0, [r4, r5]
	subs r0, 0x1
	lsls r0, 3
	adds r1, r0
	strb r1, [r2, 0x4]
	mov r1, sp
	movs r2, 0x12
	ldrsh r0, [r4, r2]
	lsls r0, 3
	adds r0, 0xA
	strb r0, [r1, 0x5]
	mov r0, sp
	strh r3, [r0, 0x6]
	mov r2, sp
	ldrh r0, [r4, 0xA]
	ldrh r1, [r4, 0x8]
	subs r0, r1
	strh r0, [r2, 0x8]
	ldr r1, =gUnknown_0203AB68
	mov r0, sp
	bl AddScrollIndicatorArrowPair
	lsls r0, 24
	lsrs r0, 24
	strh r0, [r4, 0x20]
_0813A724:
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A694

	thumb_func_start sub_813A738
sub_813A738: @ 813A738
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	ldr r0, =gTasks
	adds r2, r1, r0
	movs r0, 0x8
	ldrsh r1, [r2, r0]
	movs r3, 0xA
	ldrsh r0, [r2, r3]
	cmp r1, r0
	beq _0813A75E
	ldrh r0, [r2, 0x20]
	lsls r0, 24
	lsrs r0, 24
	bl RemoveScrollIndicatorArrowPair
_0813A75E:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A738

	thumb_func_start nullsub_55
nullsub_55: @ 813A768
	bx lr
	thumb_func_end nullsub_55

	thumb_func_start sub_813A76C
sub_813A76C: @ 813A76C
	push {r4-r6,lr}
	movs r4, 0
	ldr r6, =gLinkPlayers
	ldr r0, =0x0000401f
	adds r5, r0, 0
_0813A776:
	lsls r0, r4, 3
	subs r0, r4
	lsls r0, 2
	adds r0, r6
	ldrb r0, [r0, 0x13]
	cmp r0, 0
	bne _0813A79C
	subs r0, r5, r4
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0
	bl VarSet
	b _0813A7A8
	.pool
_0813A79C:
	subs r0, r5, r4
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x69
	bl VarSet
_0813A7A8:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x1
	bls _0813A776
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_813A76C

	thumb_func_start sub_813A7B8
sub_813A7B8: @ 813A7B8
	push {lr}
	ldr r1, =gSpecialVar_0x8004
	ldrh r0, [r1]
	cmp r0, 0x5
	bls _0813A7C6
	movs r0, 0
	strh r0, [r1]
_0813A7C6:
	ldrh r1, [r1]
	movs r0, 0x64
	muls r0, r1
	ldr r1, =gPlayerParty
	adds r0, r1
	bl GetNature
	lsls r0, 24
	ldr r1, =gUnknown_085B3040
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	bl ShowFieldMessage
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A7B8

	thumb_func_start UpdateFrontierGambler
UpdateFrontierGambler: @ 813A7F4
	push {r4,r5,lr}
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =0x00004030
	bl GetVarPointer
	adds r5, r0, 0
	ldrh r0, [r5]
	adds r4, r0
	strh r4, [r5]
	ldrh r0, [r5]
	movs r1, 0xC
	bl __umodsi3
	strh r0, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end UpdateFrontierGambler

	thumb_func_start sub_813A820
sub_813A820: @ 813A820
	push {r4,lr}
	ldr r0, =0x00004030
	bl VarGet
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r1, =gUnknown_085B30A4
	lsls r0, r4, 2
	adds r0, r1
	ldr r0, [r0]
	bl ShowFieldMessage
	ldr r0, =0x00004031
	adds r1, r4, 0
	bl VarSet
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A820

	thumb_func_start sub_813A854
sub_813A854: @ 813A854
	push {r4,lr}
	ldr r4, =gUnknown_085B30D4
	ldr r0, =0x00004031
	bl VarGet
	lsls r0, 16
	lsrs r0, 14
	adds r0, r4
	ldr r0, [r0]
	bl ShowFieldMessage
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A854

	thumb_func_start sub_813A878
sub_813A878: @ 813A878
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r0, =0x000040ce
	bl VarGet
	lsls r0, 16
	lsrs r7, r0, 16
	ldr r0, =0x00004031
	bl VarGet
	lsls r0, 16
	lsrs r6, r0, 16
	ldr r0, =0x000040cf
	bl VarGet
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r4, =0x00004033
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bne _0813A8F0
	ldr r1, =gUnknown_085B3104
	lsls r0, r6, 1
	adds r0, r1
	ldrh r1, [r0]
	lsls r0, r5, 8
	adds r0, r7
	cmp r1, r0
	bne _0813A8F0
	mov r0, r8
	cmp r0, 0
	beq _0813A8E8
	adds r0, r4, 0
	movs r1, 0x2
	bl VarSet
	b _0813A8F0
	.pool
_0813A8E8:
	adds r0, r4, 0
	movs r1, 0x3
	bl VarSet
_0813A8F0:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end sub_813A878

	thumb_func_start sub_813A8FC
sub_813A8FC: @ 813A8FC
	push {lr}
	sub sp, 0x2C
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000eb8
	adds r0, r1
	ldrh r1, [r0]
	add r0, sp, 0xC
	movs r2, 0x1
	movs r3, 0x4
	bl ConvertIntToDecimalStringN
	ldr r1, =gText_BP
	bl StringCopy
	movs r0, 0x1
	add r1, sp, 0xC
	movs r2, 0x30
	bl GetStringRightAlignXOffset
	adds r3, r0, 0
	ldr r0, =gUnknown_0203AB6D
	ldrb r0, [r0]
	lsls r3, 24
	lsrs r3, 24
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	add r2, sp, 0xC
	bl PrintTextOnWindow
	add sp, 0x2C
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A8FC

	thumb_func_start sub_813A958
sub_813A958: @ 813A958
	push {r4,lr}
	ldr r4, =gUnknown_0203AB6D
	ldr r0, =gUnknown_085B311C
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl SetStandardWindowBorderStyle
	bl sub_813A8FC
	ldrb r0, [r4]
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A958

	thumb_func_start sub_813A988
sub_813A988: @ 813A988
	push {r4,lr}
	ldr r4, =gUnknown_0203AB6D
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_8198070
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813A988

	thumb_func_start sub_813A9A4
sub_813A9A4: @ 813A9A4
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r2, =0x00000eb8
	adds r1, r0, r2
	ldr r0, =gSpecialVar_0x8004
	ldrh r2, [r1]
	ldrh r0, [r0]
	cmp r2, r0
	bcs _0813A9C8
	movs r0, 0
	b _0813A9CA
	.pool
_0813A9C8:
	subs r0, r2, r0
_0813A9CA:
	strh r0, [r1]
	pop {r0}
	bx r0
	thumb_func_end sub_813A9A4

	thumb_func_start sub_813A9D0
sub_813A9D0: @ 813A9D0
	push {lr}
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000eb8
	adds r2, r0, r1
	ldrh r1, [r2]
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	adds r1, r0
	ldr r0, =0x0000270f
	cmp r1, r0
	ble _0813A9FC
	strh r0, [r2]
	b _0813A9FE
	.pool
_0813A9FC:
	strh r1, [r2]
_0813A9FE:
	pop {r0}
	bx r0
	thumb_func_end sub_813A9D0

	thumb_func_start sub_813AA04
sub_813AA04: @ 813AA04
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldr r1, =0x00000eb8
	adds r0, r1
	ldrh r0, [r0]
	bx lr
	.pool
	thumb_func_end sub_813AA04

	thumb_func_start sub_813AA18
sub_813AA18: @ 813AA18
	push {r4,lr}
	ldr r4, =gUnknown_0203AB6E
	ldr r0, =gUnknown_085B3124
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl SetStandardWindowBorderStyle
	ldrb r0, [r4]
	movs r1, 0x2
	bl CopyWindowToVram
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AA18

	thumb_func_start sub_813AA44
sub_813AA44: @ 813AA44
	push {r4,lr}
	ldr r4, =gUnknown_0203AB6E
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_8198070
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AA44

	thumb_func_start sub_813AA60
sub_813AA60: @ 813AA60
	push {r4,r5,lr}
	sub sp, 0x10
	lsls r0, 16
	lsls r1, 16
	lsrs r5, r1, 16
	lsrs r4, r0, 16
	ldr r1, =0xfffd0000
	adds r0, r1
	lsrs r0, 16
	cmp r0, 0x3
	bls _0813AA78
	b _0813ABC2
_0813AA78:
	movs r0, 0xD8
	str r0, [sp]
	movs r0, 0x20
	str r0, [sp, 0x4]
	movs r0, 0
	movs r1, 0x11
	movs r2, 0
	movs r3, 0
	bl FillWindowPixelRect
	cmp r4, 0x4
	beq _0813AAE8
	cmp r4, 0x4
	bgt _0813AAA0
	cmp r4, 0x3
	beq _0813AAAA
	b _0813ABC2
	.pool
_0813AAA0:
	cmp r4, 0x5
	beq _0813AB5C
	cmp r4, 0x6
	beq _0813AB94
	b _0813ABC2
_0813AAAA:
	ldr r1, =gUnknown_085B3170
	lsls r0, r5, 2
	adds r0, r1
	ldr r2, [r0]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	str r4, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r1, =gUnknown_085B312C
	lsls r0, r5, 1
	adds r1, r0, r1
	ldrh r5, [r1]
	ldr r0, =0x0000ffff
	cmp r5, r0
	beq _0813AB18
	b _0813AB2C
	.pool
_0813AAE8:
	ldr r1, =gUnknown_085B319C
	lsls r0, r5, 2
	adds r0, r1
	ldr r2, [r0]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r1, =gUnknown_085B3142
	lsls r0, r5, 1
	adds r1, r0, r1
	ldrh r5, [r1]
	ldr r0, =0x0000ffff
	cmp r5, r0
	bne _0813AB2C
_0813AB18:
	ldrh r0, [r1]
	bl sub_813ABD4
	b _0813ABC2
	.pool
_0813AB2C:
	ldr r4, =0x0000157c
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	lsls r0, r5, 24
	lsrs r0, 24
	str r4, [sp]
	str r4, [sp, 0x4]
	movs r1, 0x21
	movs r2, 0x58
	movs r3, 0
	bl AddDecorationIconObject
	ldr r1, =gUnknown_0203AB6C
	strb r0, [r1]
	b _0813ABC2
	.pool
_0813AB5C:
	ldr r1, =gUnknown_085B31B4
	lsls r0, r5, 2
	adds r0, r1
	ldr r2, [r0]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r1, =gUnknown_085B314E
	lsls r0, r5, 1
	adds r0, r1
	ldrh r0, [r0]
	bl sub_813ABD4
	b _0813ABC2
	.pool
_0813AB94:
	ldr r1, =gUnknown_085B31D0
	lsls r0, r5, 2
	adds r0, r1
	ldr r2, [r0]
	movs r0, 0
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0x1
	str r0, [sp, 0x8]
	movs r0, 0x3
	str r0, [sp, 0xC]
	movs r0, 0
	movs r1, 0x1
	movs r3, 0
	bl AddTextPrinterParameterized
	ldr r1, =gUnknown_085B315C
	lsls r0, r5, 1
	adds r0, r1
	ldrh r0, [r0]
	bl sub_813ABD4
_0813ABC2:
	add sp, 0x10
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AA60

	thumb_func_start sub_813ABD4
sub_813ABD4: @ 813ABD4
	push {r4,r5,lr}
	adds r5, r0, 0
	lsls r5, 16
	lsrs r5, 16
	ldr r4, =0x0000157c
	adds r0, r4, 0
	bl FreeSpriteTilesByTag
	adds r0, r4, 0
	bl FreeSpritePaletteByTag
	adds r0, r4, 0
	adds r1, r4, 0
	adds r2, r5, 0
	bl AddItemIconObject
	ldr r4, =gUnknown_0203AB6C
	strb r0, [r4]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x40
	beq _0813AC32
	ldr r3, =gSprites
	ldrb r0, [r4]
	lsls r1, r0, 4
	adds r1, r0
	lsls r1, 2
	adds r1, r3
	ldrb r2, [r1, 0x5]
	movs r0, 0xD
	negs r0, r0
	ands r0, r2
	strb r0, [r1, 0x5]
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r1, 0x24
	strh r1, [r0, 0x20]
	ldrb r1, [r4]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	adds r0, r3
	movs r1, 0x5C
	strh r1, [r0, 0x22]
_0813AC32:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813ABD4

	thumb_func_start sub_813AC44
sub_813AC44: @ 813AC44
	push {lr}
	lsls r0, 16
	lsrs r1, r0, 16
	ldr r2, =gUnknown_0203AB6C
	ldrb r0, [r2]
	cmp r0, 0x40
	beq _0813AC70
	cmp r1, 0x6
	bgt _0813AC6A
	cmp r1, 0x3
	blt _0813AC6A
	adds r1, r0, 0
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySpriteAndFreeResources
_0813AC6A:
	ldr r1, =gUnknown_0203AB6C
	movs r0, 0x40
	strb r0, [r1]
_0813AC70:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AC44

	thumb_func_start sub_813AC7C
sub_813AC7C: @ 813AC7C
	push {lr}
	ldr r0, =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0
	beq _0813ACB8
	ldr r0, =gStringVar1
	ldr r2, =gUnknown_085B320C
	ldr r1, =gSpecialVar_0x8004
	ldrh r1, [r1]
	lsls r1, 1
	adds r1, r2
	ldrh r2, [r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, =gMoveNames
	adds r1, r2
	bl StringCopy
	b _0813ACD2
	.pool
_0813ACB8:
	ldr r0, =gStringVar1
	ldr r2, =gUnknown_085B31F8
	ldr r1, =gSpecialVar_0x8004
	ldrh r1, [r1]
	lsls r1, 1
	adds r1, r2
	ldrh r2, [r1]
	movs r1, 0xD
	muls r1, r2
	ldr r2, =gMoveNames
	adds r1, r2
	bl StringCopy
_0813ACD2:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AC7C

	thumb_func_start sub_813ACE8
sub_813ACE8: @ 813ACE8
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	lsls r1, 16
	lsrs r6, r1, 16
	subs r0, 0x9
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bhi _0813AD20
	ldr r0, =gSpecialVar_0x8006
	ldrh r0, [r0]
	cmp r0, 0
	bne _0813AD18
	ldr r4, =gUnknown_0203AB5E
	ldr r0, =gUnknown_085B3220
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl SetStandardWindowBorderStyle
_0813AD18:
	adds r0, r5, 0
	adds r1, r6, 0
	bl sub_813AD34
_0813AD20:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813ACE8

	thumb_func_start sub_813AD34
sub_813AD34: @ 813AD34
	push {r4-r7,lr}
	sub sp, 0xC
	lsls r0, 24
	lsls r1, 16
	lsrs r5, r1, 16
	adds r7, r5, 0
	lsrs r6, r0, 24
	movs r1, 0xF7
	lsls r1, 24
	adds r0, r1
	lsrs r0, 24
	cmp r0, 0x1
	bhi _0813ADAC
	ldr r4, =gUnknown_0203AB5E
	ldrb r0, [r4]
	movs r1, 0x60
	str r1, [sp]
	movs r1, 0x30
	str r1, [sp, 0x4]
	movs r1, 0x11
	movs r2, 0
	movs r3, 0
	bl FillWindowPixelRect
	cmp r6, 0xA
	bne _0813AD90
	ldrb r0, [r4]
	ldr r2, =gUnknown_085B3254
	lsls r1, r5, 2
	adds r1, r2
	ldr r2, [r1]
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	b _0813ADAC
	.pool
_0813AD90:
	ldrb r0, [r4]
	ldr r2, =gUnknown_085B3228
	lsls r1, r7, 2
	adds r1, r2
	ldr r2, [r1]
	movs r1, 0x1
	str r1, [sp]
	movs r1, 0
	str r1, [sp, 0x4]
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
_0813ADAC:
	add sp, 0xC
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AD34

	thumb_func_start sub_813ADB8
sub_813ADB8: @ 813ADB8
	push {r4,lr}
	ldr r4, =gUnknown_0203AB5E
	ldrb r0, [r4]
	movs r1, 0x1
	bl sub_8198070
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813ADB8

	thumb_func_start sub_813ADD4
sub_813ADD4: @ 813ADD4
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x18
	ldr r0, =sub_813A600
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0xFF
	beq _0813AE90
	lsls r0, r1, 2
	adds r0, r1
	lsls r0, 3
	ldr r1, =gTasks
	adds r6, r0, r1
	ldrh r0, [r6, 0x24]
	lsls r0, 24
	lsrs r0, 24
	mov r4, sp
	adds r4, 0x16
	add r1, sp, 0x14
	adds r2, r4, 0
	bl sub_81AE860
	ldrh r0, [r6, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl SetStandardWindowBorderStyle
	movs r5, 0
	mov r9, r4
	ldr r0, =gUnknown_085B2CF0
	mov r8, r0
	movs r4, 0
_0813AE1E:
	ldrh r0, [r6, 0x22]
	lsls r0, 24
	lsrs r0, 24
	add r1, sp, 0x14
	ldrh r2, [r1]
	adds r2, r5
	lsls r2, 2
	ldr r1, =gSpecialVar_0x8004
	ldrh r1, [r1]
	lsls r1, 6
	adds r2, r1
	add r2, r8
	ldr r2, [r2]
	lsls r1, r5, 28
	lsrs r1, 24
	str r1, [sp]
	movs r7, 0xFF
	str r7, [sp, 0x4]
	str r4, [sp, 0x8]
	str r4, [sp, 0xC]
	str r4, [sp, 0x10]
	movs r1, 0x1
	movs r3, 0xA
	bl sub_8199F74
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x5
	bls _0813AE1E
	ldrh r0, [r6, 0x22]
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gText_SelectorArrow
	mov r3, r9
	ldrh r1, [r3]
	lsls r1, 28
	lsrs r1, 24
	str r1, [sp]
	str r7, [sp, 0x4]
	movs r1, 0
	str r1, [sp, 0x8]
	movs r1, 0x1
	movs r3, 0
	bl PrintTextOnWindow
	ldrh r0, [r6, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl PutWindowTilemap
	ldrh r0, [r6, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x3
	bl CopyWindowToVram
_0813AE90:
	add sp, 0x18
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813ADD4

	thumb_func_start sub_813AEB4
sub_813AEB4: @ 813AEB4
	push {r4,lr}
	movs r1, 0
	ldr r0, =gSpecialVar_0x8005
	strh r1, [r0]
	ldr r0, =0x0000400e
	bl VarGet
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =0x0000400d
	bl VarGet
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r4, 0
	beq _0813AF18
	movs r2, 0
	lsls r1, 1
	ldr r3, =gUnknown_0861500C
	ldr r0, =gUnknown_085B320C
	adds r0, r1, r0
	ldrh r1, [r0]
_0813AEE2:
	lsls r0, r2, 1
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, r1
	beq _0813AF0C
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1D
	bls _0813AEE2
	b _0813AF38
	.pool
_0813AF0C:
	ldr r0, =gSpecialVar_0x8005
	strh r2, [r0]
	b _0813AF38
	.pool
_0813AF18:
	movs r2, 0
	lsls r1, 1
	ldr r3, =gUnknown_0861500C
	ldr r0, =gUnknown_085B31F8
	adds r0, r1, r0
	ldrh r1, [r0]
_0813AF24:
	lsls r0, r2, 1
	adds r0, r3
	ldrh r0, [r0]
	cmp r0, r1
	beq _0813AF0C
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1D
	bls _0813AF24
_0813AF38:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AEB4

	thumb_func_start sub_813AF48
sub_813AF48: @ 813AF48
	push {r4,r5,lr}
	ldr r0, =sub_813A600
	bl FindTaskIdByFunc
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xFF
	beq _0813AFB6
	lsls r4, r5, 2
	adds r4, r5
	lsls r4, 3
	ldr r0, =gTasks
	adds r4, r0
	ldrh r0, [r4, 0x24]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	movs r2, 0
	bl sub_81AE6C8
	ldr r0, =gUnknown_0203AB64
	ldr r0, [r0]
	bl Free
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x1
	bl sub_8198070
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl ClearWindowTilemap
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	movs r1, 0x2
	bl CopyWindowToVram
	ldrh r0, [r4, 0x22]
	lsls r0, 24
	lsrs r0, 24
	bl RemoveWindow
	adds r0, r5, 0
	bl DestroyTask
_0813AFB6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AF48

	thumb_func_start sub_813AFC8
sub_813AFC8: @ 813AFC8
	push {lr}
	ldr r0, =task_deoxys_sound
	movs r1, 0x8
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813AFC8

	thumb_func_start task_deoxys_sound
task_deoxys_sound: @ 813AFDC
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r0, =0x000008d4
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0813B004
	ldr r1, =gSpecialVar_Result
	movs r0, 0x3
	b _0813B06A
	.pool
_0813B004:
	ldr r0, =0x00004035
	mov r8, r0
	bl VarGet
	lsls r0, 16
	lsrs r5, r0, 16
	ldr r4, =0x00004034
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r6, r0, 16
	adds r0, r4, 0
	movs r1, 0
	bl VarSet
	cmp r5, 0
	beq _0813B05C
	ldr r0, =gUnknown_085B33F6
	subs r1, r5, 0x1
	adds r1, r0
	ldrb r0, [r1]
	cmp r0, r6
	bcs _0813B05C
	movs r0, 0
	bl sub_813B0B4
	mov r0, r8
	movs r1, 0
	bl VarSet
	ldr r1, =gSpecialVar_Result
	movs r0, 0
	strh r0, [r1]
	b _0813B070
	.pool
_0813B05C:
	cmp r5, 0xA
	bne _0813B080
	ldr r0, =0x000008d4
	bl FlagSet
	ldr r1, =gSpecialVar_Result
	movs r0, 0x2
_0813B06A:
	strh r0, [r1]
	bl EnableBothScriptContexts
_0813B070:
	adds r0, r7, 0
	bl DestroyTask
	b _0813B0A2
	.pool
_0813B080:
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	lsls r0, r5, 24
	lsrs r0, 24
	bl sub_813B0B4
	ldr r0, =0x00004035
	adds r1, r5, 0
	bl VarSet
	ldr r1, =gSpecialVar_Result
	movs r0, 0x1
	strh r0, [r1]
	adds r0, r7, 0
	bl DestroyTask
_0813B0A2:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end task_deoxys_sound

	thumb_func_start sub_813B0B4
sub_813B0B4: @ 813B0B4
	push {r4,r5,lr}
	sub sp, 0x4
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r0, r4, 5
	ldr r1, =gUnknown_085B3280
	adds r0, r1
	movs r1, 0xD0
	lsls r1, 1
	movs r2, 0x8
	bl LoadPalette
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrb r1, [r0, 0x5]
	ldrb r2, [r0, 0x4]
	movs r0, 0x1
	mov r3, sp
	bl TryGetFieldObjectIdByLocalIdAndMap
	cmp r4, 0
	bne _0813B0F0
	movs r0, 0xC4
	bl PlaySE
	b _0813B0F8
	.pool
_0813B0F0:
	movs r0, 0x82
	lsls r0, 1
	bl PlaySE
_0813B0F8:
	ldr r0, =sub_813B160
	movs r1, 0x8
	bl CreateTask
	ldr r3, =gFieldEffectArguments
	movs r0, 0x1
	str r0, [r3]
	movs r0, 0x3A
	str r0, [r3, 0x4]
	movs r0, 0x1A
	str r0, [r3, 0x8]
	ldr r0, =gUnknown_085B33E0
	lsls r2, r4, 1
	adds r1, r2, r0
	ldrb r1, [r1]
	str r1, [r3, 0xC]
	adds r0, 0x1
	adds r0, r2, r0
	ldrb r0, [r0]
	str r0, [r3, 0x10]
	adds r5, r2, 0
	cmp r4, 0
	bne _0813B138
	movs r0, 0x3C
	b _0813B13A
	.pool
_0813B138:
	movs r0, 0x5
_0813B13A:
	str r0, [r3, 0x14]
	movs r0, 0x42
	bl FieldEffectStart
	ldr r0, =gUnknown_085B33E0
	adds r1, r5, r0
	ldrb r1, [r1]
	adds r0, 0x1
	adds r0, r5, r0
	ldrb r2, [r0]
	movs r0, 0x1
	bl Overworld_SetMapObjTemplateCoords
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B0B4

	thumb_func_start sub_813B160
sub_813B160: @ 813B160
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	movs r0, 0x42
	bl FieldEffectActiveListContains
	lsls r0, 24
	cmp r0, 0
	bne _0813B17C
	bl EnableBothScriptContexts
	adds r0, r4, 0
	bl DestroyTask
_0813B17C:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end sub_813B160

	thumb_func_start increment_var_x4026_on_birth_island_modulo_100
increment_var_x4026_on_birth_island_modulo_100: @ 813B184
	push {r4,lr}
	ldr r4, =0x00004034
	adds r0, r4, 0
	bl VarGet
	lsls r0, 16
	lsrs r2, r0, 16
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x4]
	ldr r0, =0x00003a1a
	cmp r1, r0
	bne _0813B1C8
	adds r0, r2, 0x1
	lsls r0, 16
	lsrs r2, r0, 16
	cmp r2, 0x63
	bls _0813B1C0
	adds r0, r4, 0
	movs r1, 0
	bl VarSet
	b _0813B1C8
	.pool
_0813B1C0:
	adds r0, r4, 0
	adds r1, r2, 0
	bl VarSet
_0813B1C8:
	pop {r4}
	pop {r0}
	bx r0
	thumb_func_end increment_var_x4026_on_birth_island_modulo_100

	thumb_func_start sub_813B1D0
sub_813B1D0: @ 813B1D0
	push {lr}
	ldr r0, =0x00004035
	bl VarGet
	lsls r0, 24
	lsrs r0, 19
	ldr r1, =gUnknown_085B3280
	adds r0, r1
	movs r1, 0xD0
	lsls r1, 1
	movs r2, 0x8
	bl LoadPalette
	movs r0, 0x80
	lsls r0, 19
	movs r1, 0x10
	movs r2, 0
	bl BlendPalettes
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B1D0

	thumb_func_start set_unknown_box_id
@ void set_unknown_box_id(char id)
set_unknown_box_id: @ 813B204
	ldr r1, =gUnknown_0203AB6F
	strb r0, [r1]
	bx lr
	.pool
	thumb_func_end set_unknown_box_id

	thumb_func_start get_unknown_box_id
get_unknown_box_id: @ 813B210
	ldr r0, =gUnknown_0203AB6F
	ldrb r0, [r0]
	bx lr
	.pool
	thumb_func_end get_unknown_box_id

	thumb_func_start sub_813B21C
sub_813B21C: @ 813B21C
	push {r4,r5,lr}
	ldr r5, =0x000008d7
	adds r0, r5, 0
	bl FlagGet
	lsls r0, 24
	cmp r0, 0
	bne _0813B258
	bl StorageGetCurrentBox
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	ldr r0, =0x00004036
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r4, r0
	beq _0813B258
	adds r0, r5, 0
	bl FlagSet
	movs r0, 0x1
	b _0813B25A
	.pool
_0813B258:
	movs r0, 0
_0813B25A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end sub_813B21C

	thumb_func_start sub_813B260
sub_813B260: @ 813B260
	push {r4-r7,lr}
	ldr r0, =0x00004036
	bl VarGet
	lsls r0, 24
	lsrs r0, 24
	bl set_unknown_box_id
	bl StorageGetCurrentBox
	lsls r0, 24
	lsrs r4, r0, 24
_0813B278:
	movs r5, 0
	lsls r6, r4, 24
	lsls r7, r4, 16
_0813B27E:
	lsls r1, r5, 24
	lsrs r1, 24
	lsrs r0, r6, 24
	bl GetBoxedMonPtr
	movs r1, 0xB
	movs r2, 0
	bl GetBoxMonData
	cmp r0, 0
	bne _0813B2C0
	bl get_unknown_box_id
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r4
	beq _0813B2A6
	ldr r0, =0x000008d7
	bl FlagClear
_0813B2A6:
	ldr r0, =0x00004036
	lsrs r1, r7, 16
	bl VarSet
	bl sub_813B21C
	lsls r0, 24
	lsrs r0, 24
	b _0813B2DC
	.pool
_0813B2C0:
	adds r5, 0x1
	cmp r5, 0x1D
	ble _0813B27E
	adds r4, 0x1
	cmp r4, 0xE
	bne _0813B2CE
	movs r4, 0
_0813B2CE:
	bl StorageGetCurrentBox
	lsls r0, 24
	lsrs r0, 24
	cmp r4, r0
	bne _0813B278
	movs r0, 0
_0813B2DC:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_813B260

	thumb_func_start sub_813B2E4
sub_813B2E4: @ 813B2E4
	push {r4,lr}
	bl Random
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x00004038
	movs r1, 0
	bl VarSet
	movs r0, 0xDF
	lsls r0, 1
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0813B340
	ldr r0, =0x000001bf
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0813B330
	ldr r0, =0x00004037
	movs r1, 0x7
	ands r4, r1
	adds r1, r4, 0
	adds r1, 0x9
	bl VarSet
	b _0813B36A
	.pool
_0813B330:
	movs r0, 0x1
	ands r4, r0
	cmp r4, 0
	bne _0813B354
	bl Random
	lsls r0, 16
	lsrs r4, r0, 16
_0813B340:
	ldr r0, =0x00004037
	movs r1, 0x7
	ands r4, r1
	adds r1, r4, 0x1
	bl VarSet
	b _0813B36A
	.pool
_0813B354:
	bl Random
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x00004037
	movs r1, 0x7
	ands r4, r1
	adds r1, r4, 0
	adds r1, 0x9
	bl VarSet
_0813B36A:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B2E4

	thumb_func_start sub_813B374
sub_813B374: @ 813B374
	push {r4,lr}
	ldr r0, =0x00004037
	bl VarGet
	adds r4, r0, 0
	lsls r4, 16
	lsrs r4, 16
	ldr r0, =gStringVar1
	ldr r2, =gUnknown_085B3400
	subs r1, r4, 0x1
	adds r1, r2
	ldrb r1, [r1]
	movs r2, 0
	bl GetMapName
	cmp r4, 0x8
	bls _0813B3A8
	movs r0, 0x1
	b _0813B3AA
	.pool
_0813B3A8:
	movs r0, 0
_0813B3AA:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_813B374

	thumb_func_start sub_813B3B0
sub_813B3B0: @ 813B3B0
	push {r4-r6,lr}
	ldr r5, =0x00004038
	adds r0, r5, 0
	bl VarGet
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x00004037
	bl VarGet
	lsls r0, 16
	lsrs r6, r0, 16
	cmp r6, 0
	beq _0813B47C
	adds r0, r4, 0x1
	lsls r0, 16
	lsrs r4, r0, 16
	ldr r0, =0x000003e7
	cmp r4, r0
	bls _0813B474
	adds r0, r5, 0
	movs r1, 0
	bl VarSet
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r0, 0x4
	ldrsb r0, [r1, r0]
	cmp r0, 0x18
	bne _0813B414
	movs r0, 0x5
	ldrsb r0, [r1, r0]
	cmp r0, 0x69
	bgt _0813B414
	cmp r0, 0x65
	blt _0813B414
	ldr r0, =0x00004039
	movs r1, 0x1
	b _0813B478
	.pool
_0813B414:
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	movs r1, 0x4
	ldrsb r1, [r2, r1]
	adds r3, r0, 0
	cmp r1, 0
	bne _0813B444
	movs r0, 0x5
	ldrsb r0, [r2, r0]
	cmp r0, 0x34
	beq _0813B436
	cmp r0, 0x34
	blt _0813B444
	cmp r0, 0x38
	bgt _0813B444
	cmp r0, 0x36
	blt _0813B444
_0813B436:
	ldr r0, =0x00004039
	movs r1, 0x1
	b _0813B478
	.pool
_0813B444:
	ldr r3, [r3]
	movs r2, 0x5
	ldrsb r2, [r3, r2]
	ldr r1, =gUnknown_085B3410
	subs r0, r6, 0x1
	adds r0, r1
	ldrb r0, [r0]
	cmp r2, r0
	bne _0813B468
	movs r0, 0x4
	ldrsb r0, [r3, r0]
	cmp r0, 0
	bne _0813B468
	movs r0, 0x1
	b _0813B47E
	.pool
_0813B468:
	ldr r0, =0x00004037
	movs r1, 0
	b _0813B478
	.pool
_0813B474:
	adds r0, r5, 0
	adds r1, r4, 0
_0813B478:
	bl VarSet
_0813B47C:
	movs r0, 0
_0813B47E:
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end sub_813B3B0

	thumb_func_start sub_813B484
sub_813B484: @ 813B484
	push {lr}
	movs r0, 0x2
	bl sub_80AB104
	pop {r0}
	bx r0
	thumb_func_end sub_813B484

	thumb_func_start sub_813B490
sub_813B490: @ 813B490
	push {r4-r7,lr}
	movs r3, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r4, [r0]
	movs r6, 0x4
	ldrsb r6, [r4, r6]
	ldr r5, =gUnknown_085B3420
	adds r0, r5, 0x2
	mov r12, r0
	adds r7, r5, 0x1
_0813B4A4:
	lsls r0, r3, 1
	adds r2, r0, r3
	adds r0, r2, r5
	ldrb r0, [r0]
	cmp r6, r0
	bne _0813B4CC
	movs r1, 0x5
	ldrsb r1, [r4, r1]
	adds r0, r2, r7
	ldrb r0, [r0]
	cmp r1, r0
	bne _0813B4CC
	mov r1, r12
	adds r0, r2, r1
	ldrb r0, [r0]
	b _0813B4D8
	.pool
_0813B4CC:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0xB
	bls _0813B4A4
	movs r0, 0x1
_0813B4D8:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_813B490

	thumb_func_start sub_813B4E0
sub_813B4E0: @ 813B4E0
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	bl sub_81D15CC
	cmp r0, 0
	blt _0813B50C
	movs r1, 0xAE
	lsls r1, 1
	adds r0, r1
	lsls r0, 16
	lsrs r0, 16
	bl FlagGet
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0813B50C
	movs r0, 0x1
	b _0813B50E
	.pool
_0813B50C:
	movs r0, 0
_0813B50E:
	pop {r1}
	bx r1
	thumb_func_end sub_813B4E0

	thumb_func_start sub_813B514
sub_813B514: @ 813B514
	push {lr}
	ldr r0, =0x0000403f
	bl VarGet
	lsls r0, 16
	cmp r0, 0
	beq _0813B52C
	movs r0, 0x1
	b _0813B52E
	.pool
_0813B52C:
	movs r0, 0
_0813B52E:
	pop {r1}
	bx r1
	thumb_func_end sub_813B514

	thumb_func_start sub_813B534
sub_813B534: @ 813B534
	push {lr}
	ldr r2, =gUnknown_0203AB70
	ldr r1, =gBattleTypeFlags
	ldr r0, [r1]
	str r0, [r2]
	movs r0, 0
	str r0, [r1]
	ldr r0, =gReceivedRemoteLinkPlayers
	ldrb r0, [r0]
	cmp r0, 0
	bne _0813B552
	ldr r0, =sub_80B3AF8
	movs r1, 0x5
	bl CreateTask
_0813B552:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B534

	thumb_func_start sub_813B568
sub_813B568: @ 813B568
	push {lr}
	ldr r0, =sub_813B57C
	movs r1, 0x5
	bl CreateTask
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B568

	thumb_func_start sub_813B57C
sub_813B57C: @ 813B57C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	movs r1, 0x8
	ldrsh r0, [r0, r1]
	cmp r0, 0x9
	bls _0813B596
	b _0813B7C6
_0813B596:
	lsls r0, 2
	ldr r1, =_0813B5A8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813B5A8:
	.4byte _0813B5D0
	.4byte _0813B5E4
	.4byte _0813B614
	.4byte _0813B6B4
	.4byte _0813B6E4
	.4byte _0813B728
	.4byte _0813B764
	.4byte _0813B772
	.4byte _0813B784
	.4byte _0813B7A8
_0813B5D0:
	ldr r0, =sub_80B3AF8
	bl FuncIsActiveTask
	lsls r0, 24
	cmp r0, 0
	beq _0813B5DE
	b _0813B7C6
_0813B5DE:
	b _0813B790
	.pool
_0813B5E4:
	bl sub_800A520
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0813B5F2
	b _0813B7C6
_0813B5F2:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _0813B5FE
	b _0813B790
_0813B5FE:
	bl bitmask_all_link_players_but_self
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSpecialVar_0x8004
	movs r2, 0x2
	bl SendBlock
	b _0813B708
	.pool
_0813B614:
	bl GetBlockReceivedStatus
	movs r1, 0x2
	ands r1, r0
	cmp r1, 0
	bne _0813B622
	b _0813B7C6
_0813B622:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	beq _0813B62E
	b _0813B790
_0813B62E:
	ldr r5, =gSpecialVar_0x8005
	ldr r0, =gBlockRecvBuffer
	movs r1, 0x80
	lsls r1, 1
	adds r0, r1
	ldrh r0, [r0]
	strh r0, [r5]
	movs r0, 0x1
	bl ResetBlockReceivedFlag
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0x1
	bne _0813B668
	ldrh r1, [r5]
	cmp r1, 0x1
	bne _0813B668
	ldr r0, =gSpecialVar_Result
	strh r1, [r0]
	b _0813B790
	.pool
_0813B668:
	ldr r0, =gSpecialVar_0x8004
	ldrh r1, [r0]
	adds r2, r0, 0
	cmp r1, 0
	bne _0813B68C
	ldr r0, =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0x1
	bne _0813B68C
	ldr r1, =gSpecialVar_Result
	movs r0, 0x2
	b _0813B6AC
	.pool
_0813B68C:
	ldrh r0, [r2]
	cmp r0, 0x1
	bne _0813B6A8
	ldr r0, =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r0, 0
	bne _0813B6A8
	ldr r1, =gSpecialVar_Result
	movs r0, 0x3
	b _0813B6AC
	.pool
_0813B6A8:
	ldr r1, =gSpecialVar_Result
	movs r0, 0
_0813B6AC:
	strh r0, [r1]
	b _0813B790
	.pool
_0813B6B4:
	bl sub_800A520
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	beq _0813B6C2
	b _0813B7C6
_0813B6C2:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _0813B790
	bl bitmask_all_link_players_but_self
	lsls r0, 24
	lsrs r0, 24
	ldr r1, =gSpecialVar_Result
	movs r2, 0x2
	bl SendBlock
	b _0813B708
	.pool
_0813B6E4:
	bl GetBlockReceivedStatus
	movs r1, 0x1
	ands r1, r0
	cmp r1, 0
	beq _0813B7C6
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	beq _0813B790
	ldr r1, =gSpecialVar_Result
	ldr r0, =gBlockRecvBuffer
	ldrh r0, [r0]
	strh r0, [r1]
	movs r0, 0
	bl ResetBlockReceivedFlag
_0813B708:
	ldr r1, =gTasks
	lsls r0, r4, 2
	adds r0, r4
	lsls r0, 3
	adds r0, r1
	ldrh r1, [r0, 0x8]
	adds r1, 0x1
	strh r1, [r0, 0x8]
	b _0813B7C6
	.pool
_0813B728:
	bl GetMultiplayerId
	lsls r0, 24
	cmp r0, 0
	bne _0813B74C
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0x2
	bne _0813B790
	ldr r0, =gText_YourPartnerHasRetired
	bl ShowFieldAutoScrollMessage
	b _0813B790
	.pool
_0813B74C:
	ldr r0, =gSpecialVar_Result
	ldrh r0, [r0]
	cmp r0, 0x3
	bne _0813B790
	ldr r0, =gText_YourPartnerHasRetired
	bl ShowFieldAutoScrollMessage
	b _0813B790
	.pool
_0813B764:
	movs r0, 0
	bl IsTextPrinterActive
	lsls r0, 16
	cmp r0, 0
	bne _0813B7C6
	b _0813B790
_0813B772:
	bl sub_800A520
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0813B7C6
	bl sub_800ADF8
	b _0813B790
_0813B784:
	bl sub_800A520
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _0813B7C6
_0813B790:
	ldr r0, =gTasks
	lsls r1, r4, 2
	adds r1, r4
	lsls r1, 3
	adds r1, r0
	ldrh r0, [r1, 0x8]
	adds r0, 0x1
	strh r0, [r1, 0x8]
	b _0813B7C6
	.pool
_0813B7A8:
	ldr r0, =gLinkVSyncDisabled
	ldrb r0, [r0]
	cmp r0, 0
	bne _0813B7B4
	bl sub_800AC34
_0813B7B4:
	ldr r0, =gBattleTypeFlags
	ldr r1, =gUnknown_0203AB70
	ldr r1, [r1]
	str r1, [r0]
	bl EnableBothScriptContexts
	adds r0, r4, 0
	bl DestroyTask
_0813B7C6:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B57C

	thumb_func_start sub_813B7D8
sub_813B7D8: @ 813B7D8
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	cmp r0, 0
	bne _0813B7F8
	ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
	movs r0, 0
	movs r1, 0x1
	bl sub_81D6720
	b _0813B802
	.pool
_0813B7F8:
	ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
	movs r0, 0x1
	movs r1, 0
	bl sub_81D6720
_0813B802:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B7D8

	thumb_func_start sub_813B80C
sub_813B80C: @ 813B80C
	push {lr}
	ldr r0, =sub_813B824
	movs r1, 0x8
	bl CreateTask
	movs r0, 0x9D
	bl PlaySE
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B80C

	thumb_func_start sub_813B824
sub_813B824: @ 813B824
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	adds r5, r0, 0
	lsls r0, r5, 2
	adds r0, r5
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r4, r0, r1
	ldrh r0, [r4, 0x2]
	adds r0, 0x1
	strh r0, [r4, 0x2]
	movs r0, 0x2
	ldrsh r1, [r4, r0]
	ldr r0, =gSpecialVar_0x8005
	ldrh r0, [r0]
	cmp r1, r0
	bne _0813B858
	ldrh r0, [r4]
	adds r0, 0x1
	strh r0, [r4]
	movs r0, 0
	strh r0, [r4, 0x2]
	movs r0, 0x9D
	bl PlaySE
_0813B858:
	movs r0, 0
	ldrsh r1, [r4, r0]
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	subs r0, 0x1
	cmp r1, r0
	bne _0813B86C
	adds r0, r5, 0
	bl DestroyTask
_0813B86C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B824

	thumb_func_start sub_813B880
sub_813B880: @ 813B880
	push {lr}
	ldr r0, =_fwalk
	movs r1, 0x8
	bl CreateTask
	lsls r0, 24
	lsrs r0, 24
	ldr r2, =gTasks
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 3
	adds r1, r2
	movs r2, 0
	movs r0, 0x4
	strh r0, [r1, 0x8]
	strh r0, [r1, 0xA]
	strh r0, [r1, 0xC]
	strh r2, [r1, 0xE]
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B880

	thumb_func_start _fwalk
_fwalk: @ 813B8B0
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r0, 2
	add r0, r9
	lsls r0, 3
	ldr r1, =gTasks + 0x8
	adds r5, r0, r1
	movs r0, 0x6
	ldrsh r1, [r5, r0]
	lsls r1, 1
	adds r1, r5
	ldrh r0, [r1]
	subs r0, 0x1
	strh r0, [r1]
	movs r1, 0x6
	ldrsh r0, [r5, r1]
	lsls r0, 1
	adds r0, r5
	movs r2, 0
	ldrsh r0, [r0, r2]
	cmp r0, 0
	bne _0813B94E
	movs r6, 0
_0813B8EA:
	movs r4, 0
	lsls r3, r6, 3
	mov r10, r3
	adds r7, r6, 0x1
	mov r8, r7
_0813B8F4:
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	movs r2, 0
	ldrsh r0, [r1, r2]
	adds r0, r4
	adds r0, 0x6
	movs r3, 0x2
	ldrsh r1, [r1, r3]
	adds r1, r6
	adds r1, 0x4
	ldr r7, =0x00000201
	adds r2, r4, r7
	add r2, r10
	movs r7, 0x6
	ldrsh r3, [r5, r7]
	lsls r3, 5
	adds r2, r3
	lsls r2, 16
	lsrs r2, 16
	bl MapGridSetMetatileIdAt
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x2
	bls _0813B8F4
	mov r1, r8
	lsls r0, r1, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _0813B8EA
	bl DrawWholeMapView
	ldrh r0, [r5, 0x6]
	adds r0, 0x1
	strh r0, [r5, 0x6]
	lsls r0, 16
	asrs r0, 16
	cmp r0, 0x3
	bne _0813B94E
	mov r0, r9
	bl DestroyTask
	bl EnableBothScriptContexts
_0813B94E:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end _fwalk

	thumb_func_start sub_813B968
sub_813B968: @ 813B968
	push {r4,r5,lr}
	ldr r5, =gSpecialVar_Result
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	movs r1, 0x7
	bl __udivsi3
	strh r0, [r5]
	ldrh r4, [r5]
	adds r0, r4, 0
	movs r1, 0x14
	bl __udivsi3
	lsls r0, 16
	lsrs r0, 16
	lsls r1, r0, 2
	adds r1, r0
	lsls r1, 2
	subs r4, r1
	strh r4, [r5]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B968

	thumb_func_start sub_813B9A0
sub_813B9A0: @ 813B9A0
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldrh r1, [r0, 0x1C]
	movs r0, 0xB0
	lsls r0, 4
	cmp r1, r0
	bne _0813B9B6
	movs r0, 0x3
	bl Overworld_SetHealLocationWarp
_0813B9B6:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813B9A0

	thumb_func_start sub_813B9C0
sub_813B9C0: @ 813B9C0
	push {r4,lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0x4
	ldrsb r1, [r0, r1]
	lsls r1, 8
	ldrb r0, [r0, 0x5]
	lsls r0, 24
	asrs r0, 24
	adds r0, r1
	lsls r0, 16
	lsrs r3, r0, 16
	ldr r2, =gUnknown_085B3444
	ldrh r0, [r2]
	ldr r1, =0x0000ffff
	cmp r0, r1
	beq _0813BA06
	adds r4, r1, 0
	adds r1, r2, 0
_0813B9E6:
	ldrh r0, [r2]
	cmp r0, r3
	bne _0813B9FC
	movs r0, 0x1
	b _0813BA08
	.pool
_0813B9FC:
	adds r1, 0x2
	adds r2, 0x2
	ldrh r0, [r1]
	cmp r0, r4
	bne _0813B9E6
_0813BA06:
	movs r0, 0
_0813BA08:
	pop {r4}
	pop {r1}
	bx r1
	thumb_func_end sub_813B9C0

	thumb_func_start ResetFanClub
ResetFanClub: @ 813BA10
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x0000141e
	adds r1, r0, r2
	movs r2, 0
	strh r2, [r1]
	movs r1, 0xA1
	lsls r1, 5
	adds r0, r1
	strh r2, [r0]
	bx lr
	.pool
	thumb_func_end ResetFanClub

	thumb_func_start sub_813BA30
sub_813BA30: @ 813BA30
	push {lr}
	bl sub_813BF44
	lsls r0, 24
	cmp r0, 0
	beq _0813BA52
	bl sub_813BCE8
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrh r0, [r0, 0xE]
	movs r2, 0xA1
	lsls r2, 5
	adds r1, r2
	strh r0, [r1]
_0813BA52:
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813BA30

	thumb_func_start sub_813BA60
sub_813BA60: @ 813BA60
	push {r4,lr}
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r1, =0x0000141e
	adds r0, r1
	ldrh r0, [r0]
	lsrs r0, 7
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _0813BAB6
	bl sub_813BF60
	bl sub_813BD84
	ldr r1, [r4]
	ldr r0, =gSaveBlock2Ptr
	ldr r0, [r0]
	ldrh r0, [r0, 0xE]
	movs r2, 0xA1
	lsls r2, 5
	adds r1, r2
	strh r0, [r1]
	ldr r0, =0x00000315
	bl FlagClear
	ldr r0, =0x00000316
	bl FlagClear
	ldr r0, =0x00000317
	bl FlagClear
	movs r0, 0xC6
	lsls r0, 2
	bl FlagClear
	ldr r0, =0x000002da
	bl FlagClear
	ldr r0, =0x00004095
	movs r1, 0x1
	bl VarSet
_0813BAB6:
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813BA60

	thumb_func_start sub_813BADC
sub_813BADC: @ 813BADC
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	ldr r0, =0x00004095
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	bne _0813BB58
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	ldr r5, =0x0000141e
	adds r3, r0, r5
	ldrh r2, [r3]
	movs r1, 0x7F
	ands r1, r2
	ldr r0, =gUnknown_085B3470
	adds r0, r6, r0
	ldrb r0, [r0]
	adds r1, r0
	cmp r1, 0x13
	ble _0813BB54
	bl sub_813BCA8
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	bhi _0813BB3C
	bl sub_813BB74
	ldr r0, [r4]
	adds r0, r5
	ldrh r2, [r0]
	ldr r1, =0x0000ff80
	ands r1, r2
	strh r1, [r0]
	b _0813BB58
	.pool
_0813BB3C:
	ldr r2, [r4]
	adds r2, r5
	ldrh r1, [r2]
	ldr r0, =0x0000ff80
	ands r0, r1
	movs r1, 0x14
	orrs r0, r1
	strh r0, [r2]
	b _0813BB58
	.pool
_0813BB54:
	adds r0, r2, r0
	strh r0, [r3]
_0813BB58:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000141e
	adds r0, r1
	ldrb r1, [r0]
	movs r0, 0x7F
	ands r0, r1
	pop {r4-r6}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813BADC

	thumb_func_start sub_813BB74
sub_813BB74: @ 813BB74
	push {r4-r7,lr}
	sub sp, 0x8
	movs r3, 0
	movs r5, 0
	ldr r7, =gSaveBlock1Ptr
	ldr r2, =0x0000141e
	movs r6, 0x1
_0813BB82:
	ldr r0, [r7]
	adds r0, r2
	ldrh r1, [r0]
	ldr r0, =gUnknown_085B3474
	adds r0, r5, r0
	ldrb r4, [r0]
	asrs r1, r4
	ands r1, r6
	cmp r1, 0
	bne _0813BBC8
	adds r3, r5, 0
	str r2, [sp]
	str r3, [sp, 0x4]
	bl Random
	adds r1, r6, 0
	ands r1, r0
	ldr r2, [sp]
	ldr r3, [sp, 0x4]
	cmp r1, 0
	beq _0813BBC8
	ldr r0, [r7]
	adds r0, r2
	adds r1, r6, 0
	lsls r1, r4
	ldrh r2, [r0]
	orrs r1, r2
	strh r1, [r0]
	b _0813BBEA
	.pool
_0813BBC8:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x7
	bls _0813BB82
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r0, =0x0000141e
	adds r2, r0
	ldr r1, =gUnknown_085B3474
	adds r1, r3, r1
	movs r0, 0x1
	ldrb r1, [r1]
	lsls r0, r1
	ldrh r1, [r2]
	orrs r0, r1
	strh r0, [r2]
_0813BBEA:
	adds r0, r3, 0
	add sp, 0x8
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813BB74

	thumb_func_start sub_813BC00
sub_813BC00: @ 813BC00
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	movs r0, 0
	mov r10, r0
	bl sub_813BCA8
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bne _0813BC2E
	movs r0, 0
	b _0813BC8E
_0813BC1E:
	mov r1, r8
	ldr r0, [r1]
	add r0, r9
	lsls r4, r6
	ldrh r1, [r0]
	eors r4, r1
	strh r4, [r0]
	b _0813BC8C
_0813BC2E:
	movs r5, 0
	ldr r2, =gSaveBlock1Ptr
	mov r8, r2
	ldr r0, =0x0000141e
	mov r9, r0
	movs r4, 0x1
_0813BC3A:
	mov r1, r8
	ldr r0, [r1]
	add r0, r9
	ldrh r1, [r0]
	ldr r7, =gUnknown_085B347C
	adds r0, r5, r7
	ldrb r6, [r0]
	asrs r1, r6
	ands r1, r4
	cmp r1, 0
	beq _0813BC5E
	mov r10, r5
	bl Random
	adds r1, r4, 0
	ands r1, r0
	cmp r1, 0
	bne _0813BC1E
_0813BC5E:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x7
	bls _0813BC3A
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r2, =0x0000141e
	adds r4, r0, r2
	ldrh r1, [r4]
	mov r2, r10
	adds r0, r2, r7
	ldrb r2, [r0]
	adds r0, r1, 0
	asrs r0, r2
	movs r3, 0x1
	ands r0, r3
	cmp r0, 0
	beq _0813BC8C
	adds r0, r3, 0
	lsls r0, r2
	eors r1, r0
	strh r1, [r4]
_0813BC8C:
	mov r0, r10
_0813BC8E:
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813BC00

	thumb_func_start sub_813BCA8
sub_813BCA8: @ 813BCA8
	push {r4,r5,lr}
	movs r3, 0
	movs r2, 0
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000141e
	adds r0, r1
	ldrh r4, [r0]
	movs r5, 0x1
_0813BCBA:
	adds r1, r2, 0
	adds r1, 0x8
	adds r0, r4, 0
	asrs r0, r1
	ands r0, r5
	cmp r0, 0
	beq _0813BCCE
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
_0813BCCE:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _0813BCBA
	adds r0, r3, 0
	pop {r4,r5}
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813BCA8

	thumb_func_start sub_813BCE8
sub_813BCE8: @ 813BCE8
	push {r4-r6,lr}
	movs r5, 0
	ldr r2, =gSaveBlock2Ptr
	ldr r0, [r2]
	ldrh r1, [r0, 0xE]
	ldr r0, =0x000003e6
	cmp r1, r0
	bhi _0813BD58
	adds r6, r2, 0
	b _0813BD32
	.pool
_0813BD04:
	ldr r0, [r6]
	ldrh r1, [r0, 0xE]
	ldr r4, =gSaveBlock1Ptr
	ldr r0, [r4]
	movs r2, 0xA1
	lsls r2, 5
	adds r0, r2
	ldrh r0, [r0]
	subs r1, r0
	cmp r1, 0xB
	ble _0813BD58
	bl sub_813BC00
	ldr r0, [r4]
	movs r1, 0xA1
	lsls r1, 5
	adds r0, r1
	ldrh r1, [r0]
	adds r1, 0xC
	strh r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
_0813BD32:
	bl sub_813BCA8
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x4
	bhi _0813BD54
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, [r6]
	ldrh r0, [r0, 0xE]
	movs r2, 0xA1
	lsls r2, 5
	adds r1, r2
	strh r0, [r1]
	b _0813BD58
	.pool
_0813BD54:
	cmp r5, 0x8
	bne _0813BD04
_0813BD58:
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_813BCE8

	thumb_func_start sub_813BD60
sub_813BD60: @ 813BD60
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000141e
	adds r0, r1
	ldrh r0, [r0]
	ldr r1, =gSpecialVar_0x8004
	ldrh r1, [r1]
	asrs r0, r1
	movs r1, 0x1
	ands r0, r1
	bx lr
	.pool
	thumb_func_end sub_813BD60

	thumb_func_start sub_813BD84
sub_813BD84: @ 813BD84
	ldr r0, =gSaveBlock1Ptr
	ldr r2, [r0]
	ldr r0, =0x0000141e
	adds r2, r0
	ldrh r1, [r2]
	movs r3, 0x80
	lsls r3, 6
	adds r0, r3, 0
	orrs r0, r1
	movs r3, 0x80
	lsls r3, 1
	adds r1, r3, 0
	orrs r0, r1
	movs r3, 0x80
	lsls r3, 3
	adds r1, r3, 0
	orrs r0, r1
	strh r0, [r2]
	bx lr
	.pool
	thumb_func_end sub_813BD84

	thumb_func_start sub_813BDB4
sub_813BDB4: @ 813BDB4
	push {lr}
	movs r3, 0
	movs r2, 0
	ldr r0, =gSpecialVar_0x8004
	ldrh r0, [r0]
	subs r0, 0x8
	cmp r0, 0x7
	bhi _0813BE14
	lsls r0, 2
	ldr r1, =_0813BDD8
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813BDD8:
	.4byte _0813BE14
	.4byte _0813BE14
	.4byte _0813BDF8
	.4byte _0813BDFE
	.4byte _0813BE04
	.4byte _0813BE0A
	.4byte _0813BE10
	.4byte _0813BE14
_0813BDF8:
	movs r3, 0
	movs r2, 0x3
	b _0813BE14
_0813BDFE:
	movs r3, 0
	movs r2, 0x1
	b _0813BE14
_0813BE04:
	movs r3, 0x1
	movs r2, 0
	b _0813BE14
_0813BE0A:
	movs r3, 0
	movs r2, 0x4
	b _0813BE14
_0813BE10:
	movs r3, 0x1
	movs r2, 0x5
_0813BE14:
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x00003150
	adds r0, r1
	adds r1, r3, 0
	bl sub_813BE30
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813BDB4

	thumb_func_start sub_813BE30
sub_813BE30: @ 813BE30
	push {r4-r6,lr}
	adds r6, r0, 0
	lsls r1, 24
	lsrs r5, r1, 24
	lsls r2, 24
	lsrs r2, 24
	lsls r0, r5, 4
	adds r1, r6, r0
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _0813BEE8
	cmp r2, 0x5
	bhi _0813BED4
	lsls r0, r2, 2
	ldr r1, =_0813BE58
	adds r0, r1
	ldr r0, [r0]
	mov pc, r0
	.pool
	.align 2, 0
_0813BE58:
	.4byte _0813BED4
	.4byte _0813BE70
	.4byte _0813BE84
	.4byte _0813BE98
	.4byte _0813BEAC
	.4byte _0813BEC0
_0813BE70:
	ldr r0, =gStringVar1
	ldr r1, =gText_Steven
	bl StringCopy
	b _0813BF04
	.pool
_0813BE84:
	ldr r0, =gStringVar1
	ldr r1, =gText_Brawly
	bl StringCopy
	b _0813BF04
	.pool
_0813BE98:
	ldr r0, =gStringVar1
	ldr r1, =gText_Winona
	bl StringCopy
	b _0813BF04
	.pool
_0813BEAC:
	ldr r0, =gStringVar1
	ldr r1, =gText_Phoebe
	bl StringCopy
	b _0813BF04
	.pool
_0813BEC0:
	ldr r0, =gStringVar1
	ldr r1, =gText_Glacia
	bl StringCopy
	b _0813BF04
	.pool
_0813BED4:
	ldr r0, =gStringVar1
	ldr r1, =gText_Wallace
	bl StringCopy
	b _0813BF04
	.pool
_0813BEE8:
	ldr r4, =gStringVar1
	adds r0, r4, 0
	movs r2, 0x7
	bl StringCopyN
	movs r0, 0xFF
	strb r0, [r4, 0x7]
	adds r0, r6, 0
	adds r0, 0x50
	adds r0, r5
	ldrb r1, [r0]
	adds r0, r4, 0
	bl ConvertInternationalString
_0813BF04:
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_813BE30

	thumb_func_start sub_813BF10
sub_813BF10: @ 813BF10
	push {lr}
	ldr r0, =0x00004095
	bl VarGet
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x2
	bne _0813BF40
	bl sub_813BA30
	ldr r0, =gBattleOutcome
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _0813BF3C
	bl sub_813BB74
	b _0813BF40
	.pool
_0813BF3C:
	bl sub_813BC00
_0813BF40:
	pop {r0}
	bx r0
	thumb_func_end sub_813BF10

	thumb_func_start sub_813BF44
sub_813BF44: @ 813BF44
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	ldr r1, =0x0000141e
	adds r0, r1
	ldrh r0, [r0]
	lsrs r0, 7
	movs r1, 0x1
	ands r0, r1
	bx lr
	.pool
	thumb_func_end sub_813BF44

	thumb_func_start sub_813BF60
sub_813BF60: @ 813BF60
	ldr r0, =gSaveBlock1Ptr
	ldr r1, [r0]
	ldr r0, =0x0000141e
	adds r1, r0
	ldrh r2, [r1]
	movs r0, 0x80
	orrs r0, r2
	strh r0, [r1]
	bx lr
	.pool
	thumb_func_end sub_813BF60

	thumb_func_start sub_813BF7C
sub_813BF7C: @ 813BF7C
	push {lr}
	ldr r0, =gSpecialVar_0x8004
	ldrb r0, [r0]
	bl sub_813BADC
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_813BF7C

	.align 2, 0 @ Don't pad with nop.