pokeruby/asm/rom6.s
2016-10-30 18:00:20 -07:00

9864 lines
174 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start npc_before_player_of_type
npc_before_player_of_type: @ 810B2D4
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, _0810B314 @ =gUnknown_0203923C
adds r1, r4, 0x2
adds r0, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
bl PlayerGetZCoord
strb r0, [r4, 0x4]
ldrh r0, [r4]
ldrh r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
bl GetFieldObjectIdByXYZ
lsls r0, 24
lsrs r0, 24
ldr r2, _0810B318 @ =gMapObjects
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r2, r1, r2
ldrb r0, [r2, 0x5]
cmp r0, r5
bne _0810B320
ldr r1, _0810B31C @ =gUnknown_0202E8DE
ldrb r0, [r2, 0x8]
strh r0, [r1]
movs r0, 0x1
b _0810B322
.align 2, 0
_0810B314: .4byte gUnknown_0203923C
_0810B318: .4byte gMapObjects
_0810B31C: .4byte gUnknown_0202E8DE
_0810B320:
movs r0, 0
_0810B322:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end npc_before_player_of_type
thumb_func_start oei_task_add
oei_task_add: @ 810B328
push {lr}
ldr r0, _0810B344 @ =gUnknown_0203923C
adds r1, r0, 0x2
bl GetXYCoordsOneStepInFrontOfPlayer
ldr r0, _0810B348 @ =task08_080C9820
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810B344: .4byte gUnknown_0203923C
_0810B348: .4byte task08_080C9820
thumb_func_end oei_task_add
thumb_func_start task08_080C9820
task08_080C9820: @ 810B34C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
bl ScriptContext2_Enable
ldr r1, _0810B3A0 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
ldrb r1, [r1, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0810B3A4 @ =gMapObjects
adds r4, r0, r1
adds r0, r4, 0
bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
lsls r0, 24
cmp r0, 0
beq _0810B382
adds r0, r4, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
lsls r0, 24
cmp r0, 0
beq _0810B3CE
_0810B382:
ldr r0, _0810B3A8 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x5
bne _0810B3B4
movs r0, 0x3B
bl FieldEffectStart
ldr r0, _0810B3AC @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _0810B3B0 @ =sub_810B428
b _0810B3CC
.align 2, 0
_0810B3A0: .4byte gPlayerAvatar
_0810B3A4: .4byte gMapObjects
_0810B3A8: .4byte gMapHeader
_0810B3AC: .4byte gTasks
_0810B3B0: .4byte sub_810B428
_0810B3B4:
bl sub_8059BF4
adds r0, r4, 0
movs r1, 0x39
bl FieldObjectSetSpecialAnim
ldr r0, _0810B3D4 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0810B3D8 @ =sub_810B3DC
_0810B3CC:
str r0, [r1]
_0810B3CE:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810B3D4: .4byte gTasks
_0810B3D8: .4byte sub_810B3DC
thumb_func_end task08_080C9820
thumb_func_start sub_810B3DC
sub_810B3DC: @ 810B3DC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0810B418 @ =gPlayerAvatar
ldrb r1, [r0, 0x5]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _0810B41C @ =gMapObjects
adds r0, r1
bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810B410
movs r0, 0x3B
bl FieldEffectStart
ldr r0, _0810B420 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _0810B424 @ =sub_810B428
str r0, [r1]
_0810B410:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810B418: .4byte gPlayerAvatar
_0810B41C: .4byte gMapObjects
_0810B420: .4byte gTasks
_0810B424: .4byte sub_810B428
thumb_func_end sub_810B3DC
thumb_func_start sub_810B428
sub_810B428: @ 810B428
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x6
bl FieldEffectActiveListContains
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0810B4AC
bl player_get_direction_lower_nybble
ldr r6, _0810B4B4 @ =gUnknown_0202FF84
lsls r0, 24
lsrs r0, 24
str r0, [r6, 0x4]
cmp r0, 0x1
bne _0810B44E
str r4, [r6, 0x8]
_0810B44E:
ldr r1, [r6, 0x4]
cmp r1, 0x2
bne _0810B458
movs r0, 0x1
str r0, [r6, 0x8]
_0810B458:
cmp r1, 0x3
bne _0810B460
movs r0, 0x2
str r0, [r6, 0x8]
_0810B460:
cmp r1, 0x4
bne _0810B468
movs r0, 0x3
str r0, [r6, 0x8]
_0810B468:
ldr r5, _0810B4B8 @ =gPlayerAvatar
ldrb r0, [r5, 0x5]
lsls r4, r0, 3
adds r4, r0
lsls r4, 2
ldr r0, _0810B4BC @ =gMapObjects
adds r4, r0
bl GetPlayerAvatarGraphicsIdByCurrentState
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl sub_805B980
ldrb r1, [r5, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0810B4C0 @ =gSprites
adds r0, r1
ldrb r1, [r6, 0x8]
bl StartSpriteAnim
movs r0, 0x6
bl FieldEffectActiveListRemove
ldr r1, _0810B4C4 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldr r1, _0810B4C8 @ =sub_810B4CC
str r1, [r0]
_0810B4AC:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810B4B4: .4byte gUnknown_0202FF84
_0810B4B8: .4byte gPlayerAvatar
_0810B4BC: .4byte gMapObjects
_0810B4C0: .4byte gSprites
_0810B4C4: .4byte gTasks
_0810B4C8: .4byte sub_810B4CC
thumb_func_end sub_810B428
thumb_func_start sub_810B4CC
sub_810B4CC: @ 810B4CC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _0810B4FC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x18]
lsls r1, 16
ldrh r0, [r0, 0x1A]
orrs r1, r0
bl _call_via_r1
ldr r1, _0810B500 @ =gPlayerAvatar
movs r0, 0
strb r0, [r1, 0x6]
adds r0, r4, 0
bl DestroyTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810B4FC: .4byte gTasks
_0810B500: .4byte gPlayerAvatar
thumb_func_end sub_810B4CC
thumb_func_start SetUpFieldMove_RockSmash
SetUpFieldMove_RockSmash: @ 810B504
push {lr}
movs r0, 0x56
bl npc_before_player_of_type
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810B518
movs r0, 0
b _0810B526
_0810B518:
ldr r1, _0810B52C @ =gUnknown_0300485C
ldr r0, _0810B530 @ =sub_808AB90
str r0, [r1]
ldr r1, _0810B534 @ =gUnknown_03005CE4
ldr r0, _0810B538 @ =sub_810B53C
str r0, [r1]
movs r0, 0x1
_0810B526:
pop {r1}
bx r1
.align 2, 0
_0810B52C: .4byte gUnknown_0300485C
_0810B530: .4byte sub_808AB90
_0810B534: .4byte gUnknown_03005CE4
_0810B538: .4byte sub_810B53C
thumb_func_end SetUpFieldMove_RockSmash
thumb_func_start sub_810B53C
sub_810B53C: @ 810B53C
push {lr}
ldr r1, _0810B550 @ =gUnknown_0202FF84
ldr r0, _0810B554 @ =gUnknown_03005CE0
ldrb r0, [r0]
str r0, [r1]
ldr r0, _0810B558 @ =UseRockSmashScript
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_0810B550: .4byte gUnknown_0202FF84
_0810B554: .4byte gUnknown_03005CE0
_0810B558: .4byte UseRockSmashScript
thumb_func_end sub_810B53C
thumb_func_start FldEff_RockSmash
FldEff_RockSmash: @ 810B55C
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _0810B584 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _0810B588 @ =sub_810B58C
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
movs r0, 0x13
bl sav12_xor_increment
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810B584: .4byte gTasks
_0810B588: .4byte sub_810B58C
thumb_func_end FldEff_RockSmash
thumb_func_start sub_810B58C
sub_810B58C: @ 810B58C
push {lr}
movs r0, 0x83
bl PlaySE
movs r0, 0x25
bl FieldEffectActiveListRemove
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_810B58C
thumb_func_start SetUpFieldMove_Dig
SetUpFieldMove_Dig: @ 810B5A4
push {lr}
bl sub_80CA1C8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810B5B6
movs r0, 0
b _0810B5C4
_0810B5B6:
ldr r1, _0810B5C8 @ =gUnknown_0300485C
ldr r0, _0810B5CC @ =sub_808AB90
str r0, [r1]
ldr r1, _0810B5D0 @ =gUnknown_03005CE4
ldr r0, _0810B5D4 @ =sub_810B5D8
str r0, [r1]
movs r0, 0x1
_0810B5C4:
pop {r1}
bx r1
.align 2, 0
_0810B5C8: .4byte gUnknown_0300485C
_0810B5CC: .4byte sub_808AB90
_0810B5D0: .4byte gUnknown_03005CE4
_0810B5D4: .4byte sub_810B5D8
thumb_func_end SetUpFieldMove_Dig
thumb_func_start sub_810B5D8
sub_810B5D8: @ 810B5D8
push {lr}
bl sub_8053014
movs r0, 0x26
bl FieldEffectStart
ldr r0, _0810B5F0 @ =gUnknown_0202FF84
ldr r1, _0810B5F4 @ =gUnknown_03005CE0
ldrb r1, [r1]
str r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0810B5F0: .4byte gUnknown_0202FF84
_0810B5F4: .4byte gUnknown_03005CE0
thumb_func_end sub_810B5D8
thumb_func_start FldEff_UseDig
FldEff_UseDig: @ 810B5F8
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _0810B62C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _0810B630 @ =sub_810B634
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
bl sub_81473B8
lsls r0, 24
cmp r0, 0
bne _0810B624
movs r0, 0x1
bl SetPlayerAvatarTransitionFlags
_0810B624:
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810B62C: .4byte gTasks
_0810B630: .4byte sub_810B634
thumb_func_end FldEff_UseDig
thumb_func_start sub_810B634
sub_810B634: @ 810B634
push {r4,lr}
movs r0, 0x26
bl FieldEffectActiveListRemove
bl sub_81473B8
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _0810B64E
bl sub_8147408
b _0810B666
_0810B64E:
ldr r0, _0810B66C @ =task08_080A1C44
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810B670 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
_0810B666:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810B66C: .4byte task08_080A1C44
_0810B670: .4byte gTasks
thumb_func_end sub_810B634
thumb_func_start sub_810B674
sub_810B674: @ 810B674
push {lr}
bl AnimateSprites
bl BuildOamBuffer
bl RunTasks
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810B674
thumb_func_start sub_810B68C
sub_810B68C: @ 810B68C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r1, _0810B6B0 @ =gBG2TilemapBuffer
ldr r2, _0810B6B4 @ =0x06007800
ldr r0, _0810B6B8 @ =0x040000d4
str r1, [r0]
str r2, [r0, 0x4]
ldr r1, _0810B6BC @ =0x80000400
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
pop {r0}
bx r0
.align 2, 0
_0810B6B0: .4byte gBG2TilemapBuffer
_0810B6B4: .4byte 0x06007800
_0810B6B8: .4byte 0x040000d4
_0810B6BC: .4byte 0x80000400
thumb_func_end sub_810B68C
thumb_func_start sub_810B6C0
sub_810B6C0: @ 810B6C0
push {r4,lr}
sub sp, 0x4
ldr r0, _0810B6DC @ =gMain
ldr r1, _0810B6E0 @ =0x0000043c
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x12
bls _0810B6D2
b _0810B960
_0810B6D2:
lsls r0, 2
ldr r1, _0810B6E4 @ =_0810B6E8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810B6DC: .4byte gMain
_0810B6E0: .4byte 0x0000043c
_0810B6E4: .4byte _0810B6E8
.align 2, 0
_0810B6E8:
.4byte _0810B734
.4byte _0810B764
.4byte _0810B76A
.4byte _0810B78C
.4byte _0810B792
.4byte _0810B7B4
.4byte _0810B7C0
.4byte _0810B7DC
.4byte _0810B7E8
.4byte _0810B804
.4byte _0810B810
.4byte _0810B830
.4byte _0810B84C
.4byte _0810B86A
.4byte _0810B894
.4byte _0810B89E
.4byte _0810B8C4
.4byte _0810B914
.4byte _0810B934
_0810B734:
bl sub_80F9438
bl sub_80F9368
ldr r1, _0810B754 @ =REG_BG2CNT
ldr r2, _0810B758 @ =0x00000f0a
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x44
movs r0, 0
strh r0, [r1]
ldr r1, _0810B75C @ =gMain
ldr r0, _0810B760 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B754: .4byte REG_BG2CNT
_0810B758: .4byte 0x00000f0a
_0810B75C: .4byte gMain
_0810B760: .4byte 0x0000043c
_0810B764:
bl remove_some_task
b _0810B91C
_0810B76A:
bl ResetPaletteFade
ldr r2, _0810B780 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
ldr r1, _0810B784 @ =gMain
ldr r0, _0810B788 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B780: .4byte gPaletteFade
_0810B784: .4byte gMain
_0810B788: .4byte 0x0000043c
_0810B78C:
bl ResetSpriteData
b _0810B91C
_0810B792:
ldr r0, _0810B7A8 @ =gUnknown_02039244
ldrb r0, [r0]
cmp r0, 0x2
beq _0810B79E
bl ResetTasks
_0810B79E:
ldr r1, _0810B7AC @ =gMain
ldr r0, _0810B7B0 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B7A8: .4byte gUnknown_02039244
_0810B7AC: .4byte gMain
_0810B7B0: .4byte 0x0000043c
_0810B7B4:
ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
bl SetUpWindowConfig
b _0810B91C
.align 2, 0
_0810B7BC: .4byte gWindowConfig_81E6E34
_0810B7C0:
ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
bl SetUpWindowConfig
ldr r1, _0810B7D4 @ =gMain
ldr r0, _0810B7D8 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B7D0: .4byte gWindowConfig_81E6E50
_0810B7D4: .4byte gMain
_0810B7D8: .4byte 0x0000043c
_0810B7DC:
ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
bl MultistepInitMenuWindowBegin
b _0810B91C
.align 2, 0
_0810B7E4: .4byte gWindowConfig_81E6E34
_0810B7E8:
bl MultistepInitMenuWindowContinue
cmp r0, 0
bne _0810B7F2
b _0810B960
_0810B7F2:
ldr r1, _0810B7FC @ =gMain
ldr r0, _0810B800 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B7FC: .4byte gMain
_0810B800: .4byte 0x0000043c
_0810B804:
ldr r0, _0810B80C @ =gWindowConfig_81E6E50
bl MultistepInitMenuWindowBegin
b _0810B91C
.align 2, 0
_0810B80C: .4byte gWindowConfig_81E6E50
_0810B810:
bl MultistepInitMenuWindowContinue
cmp r0, 0
bne _0810B81A
b _0810B960
_0810B81A:
ldr r0, _0810B828 @ =0x02000000
ldr r1, _0810B82C @ =0x0001ffff
adds r0, r1
movs r1, 0
strb r1, [r0]
b _0810B91C
.align 2, 0
_0810B828: .4byte 0x02000000
_0810B82C: .4byte 0x0001ffff
_0810B830:
bl sub_810B998
lsls r0, 24
cmp r0, 0
bne _0810B83C
b _0810B960
_0810B83C:
ldr r1, _0810B844 @ =gMain
ldr r0, _0810B848 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B844: .4byte gMain
_0810B848: .4byte 0x0000043c
_0810B84C:
bl sub_80F944C
bl LoadScrollIndicatorPalette
movs r0, 0
movs r1, 0xB0
movs r2, 0x8
bl CreateVerticalScrollIndicators
movs r0, 0x1
movs r1, 0xB0
movs r2, 0x98
bl CreateVerticalScrollIndicators
b _0810B91C
_0810B86A:
movs r0, 0x38
movs r1, 0x40
movs r2, 0
bl sub_810BA50
ldr r1, _0810B884 @ =0x02000000
ldr r2, _0810B888 @ =0x0001fffe
adds r1, r2
strb r0, [r1]
ldr r1, _0810B88C @ =gMain
ldr r0, _0810B890 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B884: .4byte 0x02000000
_0810B888: .4byte 0x0001fffe
_0810B88C: .4byte gMain
_0810B890: .4byte 0x0000043c
_0810B894:
bl sub_810BC98
bl sub_810BD08
b _0810B91C
_0810B89E:
bl sub_810BB0C
bl sub_810BB30
ldr r0, _0810B8B8 @ =gUnknown_02039248
ldrb r0, [r0, 0x1]
bl sub_810BC84
ldr r1, _0810B8BC @ =gMain
ldr r0, _0810B8C0 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B8B8: .4byte gUnknown_02039248
_0810B8BC: .4byte gMain
_0810B8C0: .4byte 0x0000043c
_0810B8C4:
ldr r3, _0810B8FC @ =0x04000208
ldrh r2, [r3]
movs r0, 0
strh r0, [r3]
ldr r4, _0810B900 @ =0x04000200
ldrh r0, [r4]
movs r1, 0x1
orrs r0, r1
strh r0, [r4]
strh r2, [r3]
ldr r2, _0810B904 @ =REG_DISPSTAT
ldrh r0, [r2]
movs r1, 0x8
orrs r0, r1
strh r0, [r2]
ldr r0, _0810B908 @ =sub_810B68C
bl SetVBlankCallback
movs r1, 0x80
lsls r1, 19
movs r2, 0xBA
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
ldr r1, _0810B90C @ =gMain
ldr r0, _0810B910 @ =0x0000043c
adds r1, r0
b _0810B922
.align 2, 0
_0810B8FC: .4byte 0x04000208
_0810B900: .4byte 0x04000200
_0810B904: .4byte REG_DISPSTAT
_0810B908: .4byte sub_810B68C
_0810B90C: .4byte gMain
_0810B910: .4byte 0x0000043c
_0810B914:
bl sub_8055870
cmp r0, 0x1
beq _0810B960
_0810B91C:
ldr r1, _0810B92C @ =gMain
ldr r2, _0810B930 @ =0x0000043c
adds r1, r2
_0810B922:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0810B960
.align 2, 0
_0810B92C: .4byte gMain
_0810B930: .4byte 0x0000043c
_0810B934:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, _0810B958 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldr r0, _0810B95C @ =sub_810B674
bl SetMainCallback2
movs r0, 0x1
b _0810B962
.align 2, 0
_0810B958: .4byte gPaletteFade
_0810B95C: .4byte sub_810B674
_0810B960:
movs r0, 0
_0810B962:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810B6C0
thumb_func_start sub_810B96C
sub_810B96C: @ 810B96C
push {lr}
_0810B96E:
bl sub_810B6C0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810B988
ldr r0, _0810B984 @ =sub_810BF7C
movs r1, 0
bl CreateTask
b _0810B994
.align 2, 0
_0810B984: .4byte sub_810BF7C
_0810B988:
bl sub_80F9344
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0810B96E
_0810B994:
pop {r0}
bx r0
thumb_func_end sub_810B96C
thumb_func_start sub_810B998
sub_810B998: @ 810B998
push {lr}
ldr r0, _0810B9B0 @ =0x02000000
ldr r1, _0810B9B4 @ =0x0001ffff
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x4
bhi _0810BA48
lsls r0, 2
ldr r1, _0810B9B8 @ =_0810B9BC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810B9B0: .4byte 0x02000000
_0810B9B4: .4byte 0x0001ffff
_0810B9B8: .4byte _0810B9BC
.align 2, 0
_0810B9BC:
.4byte _0810B9D0
.4byte _0810B9E4
.4byte _0810B9F8
.4byte _0810BA08
.4byte _0810BA28
_0810B9D0:
ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
ldr r1, _0810B9E0 @ =0x06008000
bl LZDecompressVram
b _0810BA0E
.align 2, 0
_0810B9DC: .4byte gMenuPokeblock_Gfx
_0810B9E0: .4byte 0x06008000
_0810B9E4:
ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
ldr r1, _0810B9F4 @ =gBG2TilemapBuffer
bl sub_800D238
b _0810BA0E
.align 2, 0
_0810B9F0: .4byte gMenuPokeblock_Tilemap
_0810B9F4: .4byte gBG2TilemapBuffer
_0810B9F8:
ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
movs r1, 0
movs r2, 0xC0
bl LoadCompressedPalette
b _0810BA0E
.align 2, 0
_0810BA04: .4byte gMenuPokeblock_Pal
_0810BA08:
ldr r0, _0810BA1C @ =gUnknown_083F7F74
bl LoadCompressedObjectPic
_0810BA0E:
ldr r1, _0810BA20 @ =0x02000000
ldr r0, _0810BA24 @ =0x0001ffff
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0810BA48
.align 2, 0
_0810BA1C: .4byte gUnknown_083F7F74
_0810BA20: .4byte 0x02000000
_0810BA24: .4byte 0x0001ffff
_0810BA28:
ldr r0, _0810BA3C @ =gUnknown_083F7F7C
bl LoadCompressedObjectPalette
ldr r0, _0810BA40 @ =0x02000000
ldr r1, _0810BA44 @ =0x0001ffff
adds r0, r1
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _0810BA4A
.align 2, 0
_0810BA3C: .4byte gUnknown_083F7F7C
_0810BA40: .4byte 0x02000000
_0810BA44: .4byte 0x0001ffff
_0810BA48:
movs r0, 0
_0810BA4A:
pop {r1}
bx r1
thumb_func_end sub_810B998
thumb_func_start sub_810BA50
sub_810BA50: @ 810BA50
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r3, r2, 0
lsls r3, 24
lsrs r3, 24
ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
lsls r4, 16
asrs r4, 16
lsls r5, 16
asrs r5, 16
adds r1, r4, 0
adds r2, r5, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810BA78: .4byte gSpriteTemplate_83F7F84
thumb_func_end sub_810BA50
thumb_func_start sub_810BA7C
sub_810BA7C: @ 810BA7C
push {lr}
ldr r1, _0810BA98 @ =gUnknown_02039244
strb r0, [r1]
ldrb r2, [r1]
cmp r2, 0x2
beq _0810BAA8
cmp r2, 0x3
beq _0810BAC0
ldr r1, _0810BA9C @ =gUnknown_03000758
ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
str r0, [r1]
ldr r1, _0810BAA4 @ =gUnknown_0203924C
movs r0, 0x3
b _0810BACA
.align 2, 0
_0810BA98: .4byte gUnknown_02039244
_0810BA9C: .4byte gUnknown_03000758
_0810BAA0: .4byte gUnknown_083F7F1C
_0810BAA4: .4byte gUnknown_0203924C
_0810BAA8:
ldr r0, _0810BAB4 @ =gUnknown_03000758
ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
str r1, [r0]
ldr r0, _0810BABC @ =gUnknown_0203924C
strb r2, [r0]
b _0810BACC
.align 2, 0
_0810BAB4: .4byte gUnknown_03000758
_0810BAB8: .4byte gUnknown_083F7F1F
_0810BABC: .4byte gUnknown_0203924C
_0810BAC0:
ldr r1, _0810BAD0 @ =gUnknown_03000758
ldr r0, _0810BAD4 @ =gUnknown_083F7F21
str r0, [r1]
ldr r1, _0810BAD8 @ =gUnknown_0203924C
movs r0, 0x2
_0810BACA:
strb r0, [r1]
_0810BACC:
pop {r0}
bx r0
.align 2, 0
_0810BAD0: .4byte gUnknown_03000758
_0810BAD4: .4byte gUnknown_083F7F21
_0810BAD8: .4byte gUnknown_0203924C
thumb_func_end sub_810BA7C
thumb_func_start sub_810BADC
sub_810BADC: @ 810BADC
push {lr}
movs r0, 0x2
bl sub_810BA7C
ldr r0, _0810BAF0 @ =sub_810B96C
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0810BAF0: .4byte sub_810B96C
thumb_func_end sub_810BADC
thumb_func_start sub_810BAF4
sub_810BAF4: @ 810BAF4
push {lr}
movs r0, 0x3
bl sub_810BA7C
ldr r0, _0810BB08 @ =sub_810B96C
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0810BB08: .4byte sub_810B96C
thumb_func_end sub_810BAF4
thumb_func_start sub_810BB0C
sub_810BB0C: @ 810BB0C
push {lr}
ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
bl BasicInitMenuWindow
ldr r0, _0810BB2C @ =0x00000111
bl ItemId_GetItem
movs r1, 0x2
movs r2, 0x1
movs r3, 0x48
bl sub_8072BD8
pop {r0}
bx r0
.align 2, 0
_0810BB28: .4byte gWindowConfig_81E6E34
_0810BB2C: .4byte 0x00000111
thumb_func_end sub_810BB0C
thumb_func_start sub_810BB30
sub_810BB30: @ 810BB30
push {lr}
ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
bl BasicInitMenuWindow
ldr r0, _0810BB74 @ =gContestStatsText_Spicy
movs r1, 0x2
movs r2, 0xD
bl MenuPrint
ldr r0, _0810BB78 @ =gContestStatsText_Dry
movs r1, 0x2
movs r2, 0xF
bl MenuPrint
ldr r0, _0810BB7C @ =gContestStatsText_Sweet
movs r1, 0x2
movs r2, 0x11
bl MenuPrint
ldr r0, _0810BB80 @ =gContestStatsText_Bitter
movs r1, 0x8
movs r2, 0xD
bl MenuPrint
ldr r0, _0810BB84 @ =gContestStatsText_Sour
movs r1, 0x8
movs r2, 0xF
bl MenuPrint
pop {r0}
bx r0
.align 2, 0
_0810BB70: .4byte gWindowConfig_81E6E34
_0810BB74: .4byte gContestStatsText_Spicy
_0810BB78: .4byte gContestStatsText_Dry
_0810BB7C: .4byte gContestStatsText_Sweet
_0810BB80: .4byte gContestStatsText_Bitter
_0810BB84: .4byte gContestStatsText_Sour
thumb_func_end sub_810BB30
thumb_func_start sub_810BB88
sub_810BB88: @ 810BB88
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
bl BasicInitMenuWindow
mov r6, r8
adds r0, r6, 0
adds r0, 0x8
cmp r6, r0
bgt _0810BC6C
ldr r0, _0810BBF8 @ =gStringVar1
mov r9, r0
ldr r1, _0810BBFC @ =gSaveBlock1
mov r10, r1
_0810BBB0:
mov r1, r8
subs r0, r6, r1
lsls r0, 25
lsrs r7, r0, 24
ldr r0, _0810BC00 @ =gUnknown_02039248
ldrb r0, [r0, 0x2]
cmp r6, r0
bne _0810BC08
mov r0, r9
ldr r1, _0810BC04 @ =gContestStatsText_StowCase
movs r2, 0x78
movs r3, 0
bl sub_8072C74
movs r2, 0x1
orrs r2, r7
mov r0, r9
movs r1, 0xF
bl MenuPrint
mov r0, r8
adds r0, 0x8
cmp r6, r0
beq _0810BC6C
adds r1, r7, 0x3
lsls r1, 24
lsrs r1, 24
movs r0, 0xF
movs r2, 0x1D
movs r3, 0x12
bl MenuZeroFillWindowRect
b _0810BC6C
.align 2, 0
_0810BBF4: .4byte gWindowConfig_81E6E34
_0810BBF8: .4byte gStringVar1
_0810BBFC: .4byte gSaveBlock1
_0810BC00: .4byte gUnknown_02039248
_0810BC04: .4byte gContestStatsText_StowCase
_0810BC08:
lsls r5, r6, 3
mov r1, r10
adds r0, r5, r1
movs r1, 0xFF
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
ldr r1, _0810BC7C @ =gUnknown_083F7EB8
adds r0, r1
ldr r1, [r0]
mov r0, r9
movs r2, 0x5E
movs r3, 0
bl sub_8072C74
adds r4, r0, 0
movs r0, 0xFC
strb r0, [r4]
movs r0, 0x14
strb r0, [r4, 0x1]
movs r0, 0x6
strb r0, [r4, 0x2]
adds r4, 0x3
ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
adds r5, r0
adds r0, r5, 0
bl sub_810C9B0
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl ConvertIntToDecimalStringN
movs r2, 0x1
orrs r2, r7
mov r0, r9
movs r1, 0xF
bl MenuPrint
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
mov r0, r8
adds r0, 0x8
cmp r6, r0
ble _0810BBB0
_0810BC6C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810BC7C: .4byte gUnknown_083F7EB8
_0810BC80: .4byte gSaveBlock1 + 0x7F8
thumb_func_end sub_810BB88
thumb_func_start sub_810BC84
sub_810BC84: @ 810BC84
push {lr}
lsls r0, 24
lsrs r0, 24
bl sub_810BB88
movs r0, 0
bl sub_810BDAC
pop {r0}
bx r0
thumb_func_end sub_810BC84
thumb_func_start sub_810BC98
sub_810BC98: @ 810BC98
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r2, 0
ldr r0, _0810BD00 @ =gSaveBlock1
mov r9, r0
_0810BCA6:
adds r1, r2, 0x1
lsls r0, r1, 16
lsrs r5, r0, 16
mov r8, r1
cmp r5, 0x27
bhi _0810BCE8
lsls r1, r2, 3
mov r2, r9
adds r0, r1, r2
movs r2, 0xFF
lsls r2, 3
adds r7, r0, r2
ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
mov r12, r0
adds r6, r1, r0
_0810BCC4:
ldrb r0, [r7]
cmp r0, 0
bne _0810BCDE
ldr r3, [r6]
ldr r4, [r6, 0x4]
lsls r2, r5, 3
add r2, r12
ldr r0, [r2]
ldr r1, [r2, 0x4]
str r0, [r6]
str r1, [r6, 0x4]
str r3, [r2]
str r4, [r2, 0x4]
_0810BCDE:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x27
bls _0810BCC4
_0810BCE8:
mov r1, r8
lsls r0, r1, 16
lsrs r2, r0, 16
cmp r2, 0x26
bls _0810BCA6
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810BD00: .4byte gSaveBlock1
_0810BD04: .4byte gSaveBlock1 + 0x7F8
thumb_func_end sub_810BC98
thumb_func_start sub_810BD08
sub_810BD08: @ 810BD08
push {r4,r5,lr}
ldr r1, _0810BD5C @ =gUnknown_02039248
movs r0, 0
strb r0, [r1, 0x2]
movs r2, 0
ldr r5, _0810BD60 @ =gSaveBlock1
movs r4, 0xFF
lsls r4, 3
adds r3, r1, 0
_0810BD1A:
lsls r0, r2, 3
adds r0, r5
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0810BD2C
ldrb r0, [r3, 0x2]
adds r0, 0x1
strb r0, [r3, 0x2]
_0810BD2C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x27
bls _0810BD1A
ldrb r0, [r1, 0x2]
cmp r0, 0x7
bls _0810BD3E
movs r0, 0x8
_0810BD3E:
strb r0, [r1, 0x3]
ldrb r2, [r1, 0x1]
adds r0, r2, 0
adds r0, 0x8
ldrb r3, [r1, 0x2]
cmp r0, r3
ble _0810BD54
cmp r2, 0
beq _0810BD54
subs r0, r2, 0x1
strb r0, [r1, 0x1]
_0810BD54:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810BD5C: .4byte gUnknown_02039248
_0810BD60: .4byte gSaveBlock1
thumb_func_end sub_810BD08
thumb_func_start sub_810BD64
sub_810BD64: @ 810BD64
push {r4,r5,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r5, _0810BDA4 @ =gUnknown_02039248
ldr r4, _0810BDA8 @ =gBG2TilemapBuffer
_0810BD70:
ldrb r0, [r5]
lsls r0, 1
adds r0, 0x1
lsls r0, 5
adds r1, r2, 0
adds r1, 0xF
adds r0, r1
lsls r0, 1
adds r0, r4
strh r3, [r0]
ldrb r0, [r5]
lsls r0, 6
adds r0, 0x40
adds r0, r1
lsls r0, 1
adds r0, r4
strh r3, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xD
bls _0810BD70
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810BDA4: .4byte gUnknown_02039248
_0810BDA8: .4byte gBG2TilemapBuffer
thumb_func_end sub_810BD64
thumb_func_start sub_810BDAC
sub_810BDAC: @ 810BDAC
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
cmp r0, 0
bne _0810BDCC
ldr r0, _0810BDC4 @ =0x00001005
ldr r1, _0810BDC8 @ =0x00001014
bl sub_810BD64
b _0810BDD4
.align 2, 0
_0810BDC4: .4byte 0x00001005
_0810BDC8: .4byte 0x00001014
_0810BDCC:
ldr r0, _0810BDE8 @ =0x00002005
ldr r1, _0810BDEC @ =0x00002014
bl sub_810BD64
_0810BDD4:
ldr r0, _0810BDF0 @ =gUnknown_02039248
ldrb r0, [r0, 0x1]
cmp r0, 0
beq _0810BDF4
movs r0, 0
movs r1, 0
bl sub_80F979C
b _0810BDFC
.align 2, 0
_0810BDE8: .4byte 0x00002005
_0810BDEC: .4byte 0x00002014
_0810BDF0: .4byte gUnknown_02039248
_0810BDF4:
movs r0, 0
movs r1, 0x1
bl sub_80F979C
_0810BDFC:
ldr r2, _0810BE1C @ =gUnknown_02039248
ldrb r0, [r2, 0x2]
ldrb r1, [r2, 0x3]
cmp r0, r1
bls _0810BE20
ldrb r0, [r2, 0x1]
ldrb r1, [r2, 0x3]
adds r0, r1
ldrb r2, [r2, 0x2]
cmp r0, r2
beq _0810BE20
movs r0, 0x1
movs r1, 0
bl sub_80F979C
b _0810BE28
.align 2, 0
_0810BE1C: .4byte gUnknown_02039248
_0810BE20:
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
_0810BE28:
movs r6, 0
ldr r7, _0810BE94 @ =gBG2TilemapBuffer
movs r0, 0xF
mov r8, r0
_0810BE30:
adds r0, r6, 0
movs r1, 0x3
bl __umodsi3
adds r4, r0, 0
lsls r4, 24
lsrs r4, 18
ldr r1, _0810BE98 @ =0x000001a1
adds r4, r1
adds r0, r6, 0
movs r1, 0x3
bl __udivsi3
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
adds r5, r4, r1
ldr r1, _0810BE9C @ =gUnknown_02039248
ldrb r2, [r1]
ldrb r0, [r1, 0x1]
adds r0, r2, r0
ldrb r1, [r1, 0x2]
cmp r0, r1
beq _0810BEB8
lsls r0, 3
ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
adds r0, r1
adds r4, r6, 0x1
lsls r1, r4, 24
lsrs r1, 24
bl sub_810CA9C
lsls r0, 16
cmp r0, 0
ble _0810BEA4
lsls r1, r5, 1
adds r1, r7
lsls r2, r6, 12
adds r0, r2, 0
adds r0, 0x17
strh r0, [r1]
adds r0, r5, 0
adds r0, 0x20
lsls r0, 1
adds r0, r7
adds r2, 0x18
strh r2, [r0]
b _0810BECC
.align 2, 0
_0810BE94: .4byte gBG2TilemapBuffer
_0810BE98: .4byte 0x000001a1
_0810BE9C: .4byte gUnknown_02039248
_0810BEA0: .4byte gSaveBlock1 + 0x7F8
_0810BEA4:
lsls r0, r5, 1
adds r0, r7
mov r1, r8
strh r1, [r0]
adds r0, r5, 0
adds r0, 0x20
lsls r0, 1
adds r0, r7
strh r1, [r0]
b _0810BECC
_0810BEB8:
lsls r0, r5, 1
adds r0, r7
mov r1, r8
strh r1, [r0]
adds r0, r5, 0
adds r0, 0x20
lsls r0, 1
adds r0, r7
strh r1, [r0]
adds r4, r6, 0x1
_0810BECC:
lsls r0, r4, 24
lsrs r6, r0, 24
cmp r6, 0x4
bls _0810BE30
ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
bl BasicInitMenuWindow
ldr r0, _0810BF14 @ =gUnknown_02039248
ldrb r2, [r0]
ldrb r1, [r0, 0x1]
adds r2, r1
ldrb r0, [r0, 0x2]
cmp r2, r0
beq _0810BF20
ldr r4, _0810BF18 @ =gStringVar1
lsls r0, r2, 3
ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
adds r0, r1
bl sub_810C9E8
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x10
movs r3, 0x1
bl sub_8072C14
adds r0, r4, 0
movs r1, 0xB
movs r2, 0x11
bl MenuPrint
b _0810BF2C
.align 2, 0
_0810BF10: .4byte gWindowConfig_81E6E34
_0810BF14: .4byte gUnknown_02039248
_0810BF18: .4byte gStringVar1
_0810BF1C: .4byte gSaveBlock1 + 0x7F8
_0810BF20:
movs r0, 0xB
movs r1, 0x11
movs r2, 0xC
movs r3, 0x12
bl MenuZeroFillWindowRect
_0810BF2C:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810BDAC
thumb_func_start sub_810BF38
sub_810BF38: @ 810BF38
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x5
bl PlaySE
ldr r2, _0810BF6C @ =gSprites
ldr r0, _0810BF70 @ =0x02000000
ldr r1, _0810BF74 @ =0x0001fffe
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0810BF78 @ =sub_810C8D4
str r1, [r0]
adds r0, r4, 0
bl sub_810BDAC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810BF6C: .4byte gSprites
_0810BF70: .4byte 0x02000000
_0810BF74: .4byte 0x0001fffe
_0810BF78: .4byte sub_810C8D4
thumb_func_end sub_810BF38
thumb_func_start sub_810BF7C
sub_810BF7C: @ 810BF7C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r4, r5, 0
ldr r0, _0810BFB8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r3, 0x80
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0810BF94
b _0810C0B8
_0810BF94:
ldr r2, _0810BFBC @ =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0810BFCE
ldr r4, _0810BFC0 @ =gUnknown_02039248
ldrb r0, [r4]
cmp r0, 0
beq _0810BFC4
movs r0, 0x5
movs r1, 0x14
bl sub_810BD64
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
b _0810C00A
.align 2, 0
_0810BFB8: .4byte gPaletteFade
_0810BFBC: .4byte gMain
_0810BFC0: .4byte gUnknown_02039248
_0810BFC4:
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _0810C0B8
subs r0, 0x1
b _0810C002
_0810BFCE:
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0810C012
ldr r4, _0810BFF0 @ =gUnknown_02039248
ldrb r0, [r4]
ldrb r1, [r4, 0x3]
cmp r0, r1
beq _0810BFF4
movs r0, 0x5
movs r1, 0x14
bl sub_810BD64
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0810C00A
.align 2, 0
_0810BFF0: .4byte gUnknown_02039248
_0810BFF4:
ldrb r1, [r4, 0x1]
ldrb r0, [r4]
adds r0, r1, r0
ldrb r2, [r4, 0x2]
cmp r0, r2
beq _0810C0B8
adds r0, r1, 0x1
_0810C002:
strb r0, [r4, 0x1]
ldrb r0, [r4, 0x1]
bl sub_810BB88
_0810C00A:
movs r0, 0
bl sub_810BF38
b _0810C0B8
_0810C012:
ldrh r1, [r2, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810C05C
ldr r4, _0810C050 @ =gUnknown_02039248
ldrb r0, [r4, 0x1]
ldrb r1, [r4]
adds r0, r1
ldrb r1, [r4, 0x2]
cmp r0, r1
beq _0810C0B8
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl sub_810BDAC
ldr r1, _0810C054 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrb r1, [r4, 0x1]
ldrb r2, [r4]
adds r1, r2
strh r1, [r0, 0x8]
ldr r1, _0810C058 @ =sub_810C0C8
str r1, [r0]
b _0810C0B8
.align 2, 0
_0810C050: .4byte gUnknown_02039248
_0810C054: .4byte gTasks
_0810C058: .4byte sub_810C0C8
_0810C05C:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810C09C
movs r0, 0x5
bl PlaySE
ldr r0, _0810C088 @ =gUnknown_02039248
ldrb r1, [r0, 0x1]
ldrb r2, [r0]
adds r1, r2
ldrb r0, [r0, 0x2]
cmp r1, r0
bne _0810C094
ldr r1, _0810C08C @ =gScriptResult
ldr r2, _0810C090 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
adds r0, r5, 0
bl sub_810C31C
b _0810C0B8
.align 2, 0
_0810C088: .4byte gUnknown_02039248
_0810C08C: .4byte gScriptResult
_0810C090: .4byte 0x0000ffff
_0810C094:
adds r0, r5, 0
bl sub_810C368
b _0810C0B8
_0810C09C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810C0B8
movs r0, 0x5
bl PlaySE
ldr r1, _0810C0C0 @ =gScriptResult
ldr r2, _0810C0C4 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
adds r0, r4, 0
bl sub_810C31C
_0810C0B8:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C0C0: .4byte gScriptResult
_0810C0C4: .4byte 0x0000ffff
thumb_func_end sub_810BF7C
thumb_func_start sub_810C0C8
sub_810C0C8: @ 810C0C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _0810C0F4 @ =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0810C110
ldr r4, _0810C0F8 @ =gUnknown_02039248
ldrb r0, [r4]
cmp r0, 0
beq _0810C0FC
movs r0, 0x5
movs r1, 0x14
bl sub_810BD64
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
b _0810C158
.align 2, 0
_0810C0F4: .4byte gMain
_0810C0F8: .4byte gUnknown_02039248
_0810C0FC:
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _0810C1BA
adds r0, r5, 0
movs r1, 0
bl sub_810C1C8
ldrb r0, [r4, 0x1]
subs r0, 0x1
b _0810C150
_0810C110:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0810C168
ldr r4, _0810C134 @ =gUnknown_02039248
ldrb r0, [r4]
ldrb r1, [r4, 0x3]
cmp r0, r1
beq _0810C138
movs r0, 0x5
movs r1, 0x14
bl sub_810BD64
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0810C158
.align 2, 0
_0810C134: .4byte gUnknown_02039248
_0810C138:
ldrb r0, [r4, 0x1]
ldrb r1, [r4]
adds r0, r1
ldrb r1, [r4, 0x2]
cmp r0, r1
beq _0810C1BA
adds r0, r5, 0
movs r1, 0
bl sub_810C1C8
ldrb r0, [r4, 0x1]
adds r0, 0x1
_0810C150:
strb r0, [r4, 0x1]
ldrb r0, [r4, 0x1]
bl sub_810BB88
_0810C158:
movs r0, 0x1
bl sub_810BF38
adds r0, r5, 0
movs r1, 0x1
bl sub_810C1C8
b _0810C1BA
_0810C168:
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810C17A
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0810C190
_0810C17A:
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
movs r1, 0
bl sub_810C1C8
adds r0, r5, 0
bl sub_810C23C
b _0810C1AC
_0810C190:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810C1BA
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
movs r1, 0
bl sub_810C1C8
movs r0, 0
bl sub_810BDAC
_0810C1AC:
ldr r0, _0810C1C0 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _0810C1C4 @ =sub_810BF7C
str r0, [r1]
_0810C1BA:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C1C0: .4byte gTasks
_0810C1C4: .4byte sub_810BF7C
thumb_func_end sub_810C0C8
thumb_func_start sub_810C1C8
sub_810C1C8: @ 810C1C8
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
ldr r6, _0810C22C @ =0x00001005
cmp r1, 0
bne _0810C1D8
movs r6, 0x5
_0810C1D8:
ldr r1, _0810C230 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
ldr r2, _0810C234 @ =gUnknown_02039248
ldrb r1, [r2, 0x1]
ldrh r0, [r0, 0x8]
subs r0, r1
lsls r1, r0, 16
lsrs r0, r1, 16
cmp r0, 0x8
bhi _0810C226
asrs r0, r1, 16
ldrb r2, [r2]
cmp r0, r2
beq _0810C226
movs r2, 0
lsls r0, 1
adds r1, r0, 0x1
lsls r5, r1, 5
ldr r3, _0810C238 @ =gBG2TilemapBuffer
adds r0, 0x2
lsls r4, r0, 5
_0810C208:
adds r0, r2, 0
adds r0, 0xF
adds r1, r5, r0
lsls r1, 1
adds r1, r3
strh r6, [r1]
adds r0, r4, r0
lsls r0, 1
adds r0, r3
strh r6, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xD
bls _0810C208
_0810C226:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810C22C: .4byte 0x00001005
_0810C230: .4byte gTasks
_0810C234: .4byte gUnknown_02039248
_0810C238: .4byte gBG2TilemapBuffer
thumb_func_end sub_810C1C8
thumb_func_start sub_810C23C
sub_810C23C: @ 810C23C
push {r4-r7,lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r7, _0810C25C @ =gUnknown_02039248
ldrb r0, [r7]
ldrb r2, [r7, 0x1]
adds r0, r2
lsls r0, 24
lsrs r0, 24
ldrb r2, [r7, 0x2]
cmp r0, r2
bne _0810C260
movs r0, 0
bl sub_810BDAC
b _0810C2A2
.align 2, 0
_0810C25C: .4byte gUnknown_02039248
_0810C260:
ldr r4, _0810C2A8 @ =gSaveBlock1
lsls r3, r0, 3
movs r0, 0xFF
lsls r0, 3
adds r4, r0
adds r3, r4
ldr r5, [r3]
ldr r6, [r3, 0x4]
ldr r0, _0810C2AC @ =gTasks
lsls r2, r1, 2
adds r2, r1
lsls r2, 3
adds r2, r0
movs r1, 0x8
ldrsh r0, [r2, r1]
lsls r0, 3
adds r0, r4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r3]
str r1, [r3, 0x4]
movs r1, 0x8
ldrsh r0, [r2, r1]
lsls r0, 3
adds r0, r4
str r5, [r0]
str r6, [r0, 0x4]
ldrb r0, [r7, 0x1]
bl sub_810BB88
movs r0, 0
bl sub_810BDAC
_0810C2A2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810C2A8: .4byte gSaveBlock1
_0810C2AC: .4byte gTasks
thumb_func_end sub_810C23C
thumb_func_start sub_810C2B0
sub_810C2B0: @ 810C2B0
push {lr}
movs r0, 0
bl DestroyVerticalScrollIndicator
movs r0, 0x1
bl DestroyVerticalScrollIndicator
bl BuyMenuFreeMemory
pop {r0}
bx r0
thumb_func_end sub_810C2B0
thumb_func_start sub_810C2C8
sub_810C2C8: @ 810C2C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0810C308 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0810C300
ldr r4, _0810C30C @ =gUnknown_02039244
ldrb r0, [r4]
cmp r0, 0x3
bne _0810C2E8
ldr r1, _0810C310 @ =gUnknown_0300485C
ldr r0, _0810C314 @ =sub_8080990
str r0, [r1]
_0810C2E8:
bl sub_810C2B0
ldr r0, _0810C318 @ =gUnknown_083F7EA8
ldrb r1, [r4]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
_0810C300:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C308: .4byte gPaletteFade
_0810C30C: .4byte gUnknown_02039244
_0810C310: .4byte gUnknown_0300485C
_0810C314: .4byte sub_8080990
_0810C318: .4byte gUnknown_083F7EA8
thumb_func_end sub_810C2C8
thumb_func_start sub_810C31C
sub_810C31C: @ 810C31C
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
negs r0, r0
movs r5, 0
str r5, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _0810C358 @ =gUnknown_02039244
ldrb r0, [r0]
cmp r0, 0x1
bls _0810C342
ldr r0, _0810C35C @ =word_203855E
strh r5, [r0]
_0810C342:
ldr r0, _0810C360 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _0810C364 @ =sub_810C2C8
str r0, [r1]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C358: .4byte gUnknown_02039244
_0810C35C: .4byte word_203855E
_0810C360: .4byte gTasks
_0810C364: .4byte sub_810C2C8
thumb_func_end sub_810C31C
thumb_func_start sub_810C368
sub_810C368: @ 810C368
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
ldr r0, _0810C3E8 @ =gUnknown_02039244
ldrb r0, [r0]
cmp r0, 0x1
bls _0810C37C
movs r4, 0x2
_0810C37C:
movs r0, 0
bl sub_80F98A4
movs r0, 0x1
bl sub_80F98A4
ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
bl BasicInitMenuWindow
adds r1, r4, 0x4
movs r0, 0x7
movs r2, 0xD
movs r3, 0xB
bl MenuDrawTextWindow
adds r4, 0x5
ldr r5, _0810C3F0 @ =gUnknown_0203924C
ldrb r2, [r5]
ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
ldr r0, _0810C3F8 @ =gUnknown_03000758
ldr r0, [r0]
str r0, [sp]
movs r0, 0x8
adds r1, r4, 0
bl PrintMenuItemsReordered
ldrb r3, [r5]
movs r0, 0
str r0, [sp]
movs r0, 0x5
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x8
adds r2, r4, 0
bl InitMenu
ldr r2, _0810C3FC @ =word_203855E
ldr r1, _0810C400 @ =gUnknown_02039248
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
adds r0, r1
strh r0, [r2]
ldr r1, _0810C404 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
ldr r1, _0810C408 @ =sub_810C40C
str r1, [r0]
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810C3E8: .4byte gUnknown_02039244
_0810C3EC: .4byte gWindowConfig_81E6E50
_0810C3F0: .4byte gUnknown_0203924C
_0810C3F4: .4byte gUnknown_083F7EF4
_0810C3F8: .4byte gUnknown_03000758
_0810C3FC: .4byte word_203855E
_0810C400: .4byte gUnknown_02039248
_0810C404: .4byte gTasks
_0810C408: .4byte sub_810C40C
thumb_func_end sub_810C368
thumb_func_start sub_810C40C
sub_810C40C: @ 810C40C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r4, r5, 0
ldr r2, _0810C43C @ =gMain
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0810C440
bl GetMenuCursorPos
lsls r0, 24
cmp r0, 0
beq _0810C4BC
movs r0, 0x5
bl PlaySE
movs r0, 0x1
negs r0, r0
bl MoveMenuCursor
b _0810C4BC
.align 2, 0
_0810C43C: .4byte gMain
_0810C440:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0810C46C
bl GetMenuCursorPos
lsls r0, 24
lsrs r0, 24
ldr r1, _0810C468 @ =gUnknown_0203924C
ldrb r1, [r1]
subs r1, 0x1
cmp r0, r1
beq _0810C4BC
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl MoveMenuCursor
b _0810C4BC
.align 2, 0
_0810C468: .4byte gUnknown_0203924C
_0810C46C:
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810C4A8
movs r0, 0x5
bl PlaySE
ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
bl GetMenuCursorPos
lsls r0, 24
lsrs r0, 24
ldr r1, _0810C4A4 @ =gUnknown_03000758
ldr r1, [r1]
adds r1, r0
ldrb r0, [r1]
lsls r0, 3
adds r4, 0x4
adds r0, r4
ldr r1, [r0]
adds r0, r5, 0
bl _call_via_r1
b _0810C4BC
.align 2, 0
_0810C4A0: .4byte gUnknown_083F7EF4
_0810C4A4: .4byte gUnknown_03000758
_0810C4A8:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810C4BC
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_810C748
_0810C4BC:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_810C40C
thumb_func_start sub_810C4C4
sub_810C4C4: @ 810C4C4
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0810C4F8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0810C4F0
bl sub_810C2B0
ldr r0, _0810C4FC @ =word_203855E
ldrh r0, [r0]
lsls r0, 3
ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
adds r0, r1
ldr r1, _0810C504 @ =sub_810B96C
bl sub_8136130
adds r0, r4, 0
bl DestroyTask
_0810C4F0:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C4F8: .4byte gPaletteFade
_0810C4FC: .4byte word_203855E
_0810C500: .4byte gSaveBlock1 + 0x7F8
_0810C504: .4byte sub_810B96C
thumb_func_end sub_810C4C4
thumb_func_start sub_810C508
sub_810C508: @ 810C508
push {r4,lr}
sub sp, 0x4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _0810C538 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810C53C @ =sub_810C4C4
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C538: .4byte gTasks
_0810C53C: .4byte sub_810C4C4
thumb_func_end sub_810C508
thumb_func_start sub_810C540
sub_810C540: @ 810C540
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
bl BasicInitMenuWindow
bl sub_8072DEC
movs r0, 0x7
movs r1, 0x4
movs r2, 0xD
movs r3, 0xB
bl MenuZeroFillWindowRect
ldr r0, _0810C5A4 @ =gStringVar1
ldr r4, _0810C5A8 @ =gUnknown_083F7EB8
ldr r3, _0810C5AC @ =gSaveBlock1
ldr r2, _0810C5B0 @ =gUnknown_02039248
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
adds r1, r2
lsls r1, 3
adds r1, r3
movs r2, 0xFF
lsls r2, 3
adds r1, r2
ldrb r1, [r1]
lsls r1, 2
adds r1, r4
ldr r1, [r1]
bl StringCopy
ldr r4, _0810C5B4 @ =gStringVar4
ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r2, _0810C5BC @ =sub_810C5EC
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0
bl DisplayItemMessageOnField
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C5A0: .4byte gWindowConfig_81E6E50
_0810C5A4: .4byte gStringVar1
_0810C5A8: .4byte gUnknown_083F7EB8
_0810C5AC: .4byte gSaveBlock1
_0810C5B0: .4byte gUnknown_02039248
_0810C5B4: .4byte gStringVar4
_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
_0810C5BC: .4byte sub_810C5EC
thumb_func_end sub_810C540
thumb_func_start sub_810C5C0
sub_810C5C0: @ 810C5C0
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
ldr r1, _0810C5E4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810C5E8 @ =sub_810C540
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C5E4: .4byte gTasks
_0810C5E8: .4byte sub_810C540
thumb_func_end sub_810C5C0
thumb_func_start sub_810C5EC
sub_810C5EC: @ 810C5EC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x7
movs r1, 0x6
movs r2, 0x1
bl DisplayYesNoMenu
ldr r1, _0810C60C @ =gUnknown_083F7F24
adds r0, r4, 0
bl sub_80F914C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C60C: .4byte gUnknown_083F7F24
thumb_func_end sub_810C5EC
thumb_func_start sub_810C610
sub_810C610: @ 810C610
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x7
movs r1, 0x6
movs r2, 0xD
movs r3, 0xB
bl MenuZeroFillWindowRect
ldr r1, _0810C658 @ =gUnknown_02039248
ldrb r0, [r1, 0x1]
ldrb r1, [r1]
adds r0, r1
lsls r0, 24
lsrs r0, 24
bl sub_810CA6C
ldr r5, _0810C65C @ =gStringVar4
ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
adds r0, r5, 0
bl StringExpandPlaceholders
ldr r2, _0810C664 @ =sub_810C704
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0
bl DisplayItemMessageOnField
bl sub_810BC98
bl sub_810BD08
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C658: .4byte gUnknown_02039248
_0810C65C: .4byte gStringVar4
_0810C660: .4byte gContestStatsText_WasThrownAway
_0810C664: .4byte sub_810C704
thumb_func_end sub_810C610
thumb_func_start sub_810C668
sub_810C668: @ 810C668
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0
bl sub_80F98DC
movs r0, 0x1
bl sub_80F98DC
ldr r2, _0810C6CC @ =gUnknown_02039248
ldrb r0, [r2, 0x2]
ldrb r1, [r2, 0x3]
cmp r0, r1
bls _0810C698
ldrb r0, [r2, 0x1]
ldrb r1, [r2, 0x3]
adds r0, r1
ldrb r2, [r2, 0x2]
cmp r0, r2
beq _0810C698
movs r0, 0x1
movs r1, 0
bl sub_80F979C
_0810C698:
ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
bl BasicInitMenuWindow
movs r0, 0x7
movs r1, 0x6
movs r2, 0xD
movs r3, 0xB
bl MenuZeroFillWindowRect
movs r0, 0
movs r1, 0xE
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
ldr r1, _0810C6D4 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810C6D8 @ =sub_810BF7C
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C6CC: .4byte gUnknown_02039248
_0810C6D0: .4byte gWindowConfig_81E6E50
_0810C6D4: .4byte gTasks
_0810C6D8: .4byte sub_810BF7C
thumb_func_end sub_810C668
thumb_func_start sub_810C6DC
sub_810C6DC: @ 810C6DC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _0810C700 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810C6F6
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810C6FC
_0810C6F6:
adds r0, r2, 0
bl sub_810C668
_0810C6FC:
pop {r0}
bx r0
.align 2, 0
_0810C700: .4byte gMain
thumb_func_end sub_810C6DC
thumb_func_start sub_810C704
sub_810C704: @ 810C704
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _0810C738 @ =gWindowConfig_81E6E34
bl BasicInitMenuWindow
ldr r0, _0810C73C @ =gUnknown_02039248
ldrb r0, [r0, 0x1]
bl sub_810BC84
movs r0, 0x1
movs r1, 0x1
bl sub_80F979C
ldr r1, _0810C740 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810C744 @ =sub_810C6DC
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C738: .4byte gWindowConfig_81E6E34
_0810C73C: .4byte gUnknown_02039248
_0810C740: .4byte gTasks
_0810C744: .4byte sub_810C6DC
thumb_func_end sub_810C704
thumb_func_start sub_810C748
sub_810C748: @ 810C748
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0
bl sub_80F98DC
movs r0, 0x1
bl sub_80F98DC
bl sub_8072DEC
movs r0, 0x7
movs r1, 0x4
movs r2, 0xD
movs r3, 0xB
bl MenuZeroFillWindowRect
ldr r1, _0810C780 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810C784 @ =sub_810BF7C
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810C780: .4byte gTasks
_0810C784: .4byte sub_810BF7C
thumb_func_end sub_810C748
thumb_func_start sub_810C788
sub_810C788: @ 810C788
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _0810C834 @ =gEnemyParty
bl GetNature
lsls r0, 24
lsrs r0, 24
ldr r7, _0810C838 @ =word_203855E
ldrh r1, [r7]
lsls r1, 3
ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
adds r1, r5
bl sub_810CAE4
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, _0810C840 @ =gUnknown_030041C0
ldr r2, _0810C844 @ =gUnknown_083F7EB8
ldr r1, _0810C848 @ =0xfffff808
adds r5, r1
ldrh r1, [r7]
lsls r1, 3
adds r1, r5
movs r6, 0xFF
lsls r6, 3
adds r1, r6
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
bl StringCopy
ldrb r0, [r7]
bl sub_810CA6C
ldrh r0, [r7]
lsls r0, 3
adds r0, r5
adds r0, r6
ldrb r0, [r0]
lsls r0, 8
strh r0, [r7]
lsls r4, 16
asrs r4, 16
cmp r4, 0
bne _0810C7F4
adds r0, 0x1
strh r0, [r7]
_0810C7F4:
cmp r4, 0
ble _0810C7FE
ldrh r0, [r7]
adds r0, 0x2
strh r0, [r7]
_0810C7FE:
cmp r4, 0
bge _0810C808
ldrh r0, [r7]
adds r0, 0x3
strh r0, [r7]
_0810C808:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _0810C84C @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
ldr r1, _0810C850 @ =sub_810C2C8
str r1, [r0]
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810C834: .4byte gEnemyParty
_0810C838: .4byte word_203855E
_0810C83C: .4byte gSaveBlock1 + 0x7F8
_0810C840: .4byte gUnknown_030041C0
_0810C844: .4byte gUnknown_083F7EB8
_0810C848: .4byte 0xfffff808
_0810C84C: .4byte gTasks
_0810C850: .4byte sub_810C2C8
thumb_func_end sub_810C788
thumb_func_start sub_810C854
sub_810C854: @ 810C854
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, _0810C8B8 @ =word_203855E
ldrb r0, [r4]
bl sub_80C8478
ldr r0, _0810C8BC @ =gStringVar1
ldr r3, _0810C8C0 @ =gUnknown_083F7EB8
ldr r2, _0810C8C4 @ =gSaveBlock1
ldrh r1, [r4]
lsls r1, 3
adds r1, r2
movs r2, 0xFF
lsls r2, 3
adds r1, r2
ldrb r1, [r1]
lsls r1, 2
adds r1, r3
ldr r1, [r1]
bl StringCopy
ldr r1, _0810C8C8 @ =gScriptResult
ldrh r0, [r4]
strh r0, [r1]
lsls r0, 24
lsrs r0, 24
bl sub_810CA6C
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _0810C8CC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _0810C8D0 @ =sub_810C2C8
str r1, [r0]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C8B8: .4byte word_203855E
_0810C8BC: .4byte gStringVar1
_0810C8C0: .4byte gUnknown_083F7EB8
_0810C8C4: .4byte gSaveBlock1
_0810C8C8: .4byte gScriptResult
_0810C8CC: .4byte gTasks
_0810C8D0: .4byte sub_810C2C8
thumb_func_end sub_810C854
thumb_func_start sub_810C8D4
sub_810C8D4: @ 810C8D4
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x2E
ldrsh r0, [r4, r1]
cmp r0, 0x1
ble _0810C8E4
movs r0, 0
strh r0, [r4, 0x2E]
_0810C8E4:
movs r0, 0x2E
ldrsh r5, [r4, r0]
cmp r5, 0
beq _0810C8F2
cmp r5, 0x1
beq _0810C918
b _0810C944
_0810C8F2:
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
ldr r0, _0810C914 @ =gUnknown_083F7F70
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
movs r0, 0x1
strh r0, [r4, 0x2E]
strh r5, [r4, 0x30]
b _0810C944
.align 2, 0
_0810C914: .4byte gUnknown_083F7F70
_0810C918:
ldrh r0, [r4, 0x30]
adds r0, 0x1
movs r2, 0
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0xB
ble _0810C944
ldrb r1, [r4, 0x1]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4, 0x1]
strh r2, [r4, 0x2E]
strh r2, [r4, 0x30]
ldrb r0, [r4, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldr r0, _0810C94C @ =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0810C944:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810C94C: .4byte SpriteCallbackDummy
thumb_func_end sub_810C8D4
thumb_func_start sub_810C950
sub_810C950: @ 810C950
lsls r0, 24
ldr r1, _0810C988 @ =gSaveBlock1
lsrs r0, 21
adds r0, r1
movs r2, 0xFF
lsls r2, 3
adds r1, r0, r2
movs r2, 0
strb r2, [r1]
ldr r3, _0810C98C @ =0x000007f9
adds r1, r0, r3
strb r2, [r1]
adds r3, 0x1
adds r1, r0, r3
strb r2, [r1]
adds r3, 0x1
adds r1, r0, r3
strb r2, [r1]
adds r3, 0x1
adds r1, r0, r3
strb r2, [r1]
adds r3, 0x1
adds r1, r0, r3
strb r2, [r1]
ldr r1, _0810C990 @ =0x000007fe
adds r0, r1
strb r2, [r0]
bx lr
.align 2, 0
_0810C988: .4byte gSaveBlock1
_0810C98C: .4byte 0x000007f9
_0810C990: .4byte 0x000007fe
thumb_func_end sub_810C950
thumb_func_start sub_810C994
sub_810C994: @ 810C994
push {r4,lr}
movs r4, 0
_0810C998:
adds r0, r4, 0
bl sub_810C950
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x27
bls _0810C998
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810C994
thumb_func_start sub_810C9B0
sub_810C9B0: @ 810C9B0
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_810CA9C
lsls r0, 24
lsrs r5, r0, 24
movs r1, 0x1
_0810C9C0:
adds r0, r1, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r6, 0
adds r1, r4, 0
bl sub_810CA9C
lsls r0, 24
lsrs r0, 24
cmp r5, r0
bcs _0810C9D8
adds r5, r0, 0
_0810C9D8:
adds r1, r4, 0
cmp r1, 0x4
bls _0810C9C0
adds r0, r5, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_810C9B0
thumb_func_start sub_810C9E8
sub_810C9E8: @ 810C9E8
push {lr}
movs r1, 0x6
bl sub_810CA9C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x63
bls _0810C9FA
movs r0, 0x63
_0810C9FA:
pop {r1}
bx r1
thumb_func_end sub_810C9E8
thumb_func_start sub_810CA00
sub_810CA00: @ 810CA00
push {lr}
movs r1, 0
ldr r3, _0810CA1C @ =gSaveBlock1
movs r2, 0xFF
lsls r2, 3
_0810CA0A:
lsls r0, r1, 3
adds r0, r3
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _0810CA20
lsls r0, r1, 24
asrs r0, 24
b _0810CA2E
.align 2, 0
_0810CA1C: .4byte gSaveBlock1
_0810CA20:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x27
bls _0810CA0A
movs r0, 0x1
negs r0, r0
_0810CA2E:
pop {r1}
bx r1
thumb_func_end sub_810CA00
thumb_func_start sub_810CA34
sub_810CA34: @ 810CA34
push {r4,lr}
adds r4, r0, 0
bl sub_810CA00
lsls r0, 24
asrs r2, r0, 24
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _0810CA64
ldr r0, _0810CA60 @ =gSaveBlock1
lsls r2, 3
movs r1, 0xFF
lsls r1, 3
adds r0, r1
adds r2, r0
ldr r0, [r4]
ldr r1, [r4, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0x1
b _0810CA66
.align 2, 0
_0810CA60: .4byte gSaveBlock1
_0810CA64:
movs r0, 0
_0810CA66:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810CA34
thumb_func_start sub_810CA6C
sub_810CA6C: @ 810CA6C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _0810CA90 @ =gSaveBlock1
lsls r0, r2, 3
adds r0, r1
movs r1, 0xFF
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0810CA94
adds r0, r2, 0
bl sub_810C950
movs r0, 0x1
b _0810CA96
.align 2, 0
_0810CA90: .4byte gSaveBlock1
_0810CA94:
movs r0, 0
_0810CA96:
pop {r1}
bx r1
thumb_func_end sub_810CA6C
thumb_func_start sub_810CA9C
sub_810CA9C: @ 810CA9C
push {lr}
lsls r1, 24
lsrs r1, 24
adds r2, r1, 0
cmp r1, 0
bne _0810CAAC
ldrb r0, [r0]
b _0810CADE
_0810CAAC:
cmp r1, 0x1
bne _0810CAB4
ldrb r0, [r0, 0x1]
b _0810CADE
_0810CAB4:
cmp r1, 0x2
bne _0810CABC
ldrb r0, [r0, 0x2]
b _0810CADE
_0810CABC:
cmp r1, 0x3
bne _0810CAC4
ldrb r0, [r0, 0x3]
b _0810CADE
_0810CAC4:
cmp r1, 0x4
bne _0810CACC
ldrb r0, [r0, 0x4]
b _0810CADE
_0810CACC:
cmp r1, 0x5
bne _0810CAD4
ldrb r0, [r0, 0x5]
b _0810CADE
_0810CAD4:
cmp r2, 0x6
beq _0810CADC
movs r0, 0
b _0810CADE
_0810CADC:
ldrb r0, [r0, 0x6]
_0810CADE:
pop {r1}
bx r1
thumb_func_end sub_810CA9C
thumb_func_start sub_810CAE4
sub_810CAE4: @ 810CAE4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r8, r1
lsls r0, 24
lsrs r0, 24
movs r6, 0
movs r4, 0
ldr r1, _0810CB40 @ =gUnknown_083F7E28
mov r9, r1
lsls r1, r0, 2
adds r7, r1, r0
_0810CAFE:
adds r0, r4, 0x1
lsls r0, 24
lsrs r5, r0, 24
mov r0, r8
adds r1, r5, 0
bl sub_810CA9C
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
ble _0810CB2A
adds r0, r7, r4
add r0, r9
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
muls r1, r0
lsls r0, r6, 16
asrs r0, 16
adds r0, r1
lsls r0, 16
lsrs r6, r0, 16
_0810CB2A:
adds r4, r5, 0
cmp r4, 0x4
bls _0810CAFE
lsls r0, r6, 16
asrs r0, 16
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810CB40: .4byte gUnknown_083F7E28
thumb_func_end sub_810CAE4
thumb_func_start sub_810CB44
sub_810CB44: @ 810CB44
push {r4,lr}
adds r4, r1, 0
movs r1, 0
bl sub_810CA9C
lsls r0, 24
ldr r1, _0810CB64 @ =gUnknown_083F7EB8
lsrs r0, 22
adds r0, r1
ldr r1, [r0]
adds r0, r4, 0
bl StringCopy
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810CB64: .4byte gUnknown_083F7EB8
thumb_func_end sub_810CB44
thumb_func_start sub_810CB68
sub_810CB68: @ 810CB68
push {r4-r7,lr}
adds r6, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r7, _0810CB98 @ =gUnknown_083F7EB8
_0810CB74:
lsls r1, r4, 3
ldr r0, _0810CB9C @ =gUnknown_083F7F9C
adds r1, r0
adds r0, r5, 0
bl sub_810CAE4
lsls r0, 16
cmp r0, 0
ble _0810CBA0
adds r0, r4, 0x1
lsls r0, 2
adds r0, r7
ldr r1, [r0]
adds r0, r6, 0
bl StringCopy
movs r0, 0x1
b _0810CBAC
.align 2, 0
_0810CB98: .4byte gUnknown_083F7EB8
_0810CB9C: .4byte gUnknown_083F7F9C
_0810CBA0:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _0810CB74
movs r0, 0
_0810CBAC:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810CB68
thumb_func_start SetUpFieldMove_Flash
SetUpFieldMove_Flash: @ 810CBB4
push {lr}
ldr r0, _0810CBDC @ =gMapHeader
ldrb r0, [r0, 0x15]
cmp r0, 0x1
bne _0810CBF4
ldr r0, _0810CBE0 @ =0x00000828
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _0810CBF4
ldr r1, _0810CBE4 @ =gUnknown_0300485C
ldr r0, _0810CBE8 @ =sub_808AB90
str r0, [r1]
ldr r1, _0810CBEC @ =gUnknown_03005CE4
ldr r0, _0810CBF0 @ =sub_810CBFC
str r0, [r1]
movs r0, 0x1
b _0810CBF6
.align 2, 0
_0810CBDC: .4byte gMapHeader
_0810CBE0: .4byte 0x00000828
_0810CBE4: .4byte gUnknown_0300485C
_0810CBE8: .4byte sub_808AB90
_0810CBEC: .4byte gUnknown_03005CE4
_0810CBF0: .4byte sub_810CBFC
_0810CBF4:
movs r0, 0
_0810CBF6:
pop {r1}
bx r1
thumb_func_end SetUpFieldMove_Flash
thumb_func_start sub_810CBFC
sub_810CBFC: @ 810CBFC
push {lr}
bl oei_task_add
lsls r0, 24
lsrs r0, 24
ldr r2, _0810CC24 @ =gUnknown_0202FF84
ldr r1, _0810CC28 @ =gUnknown_03005CE0
ldrb r1, [r1]
str r1, [r2]
ldr r2, _0810CC2C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r2, _0810CC30 @ =sub_810CC34
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
pop {r0}
bx r0
.align 2, 0
_0810CC24: .4byte gUnknown_0202FF84
_0810CC28: .4byte gUnknown_03005CE0
_0810CC2C: .4byte gTasks
_0810CC30: .4byte sub_810CC34
thumb_func_end sub_810CBFC
thumb_func_start sub_810CC34
sub_810CC34: @ 810CC34
push {lr}
movs r0, 0xCF
bl PlaySE
ldr r0, _0810CC4C @ =0x00000828
bl FlagSet
ldr r0, _0810CC50 @ =gUnknown_081B694A
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_0810CC4C: .4byte 0x00000828
_0810CC50: .4byte gUnknown_081B694A
thumb_func_end sub_810CC34
thumb_func_start sub_810CC54
sub_810CC54: @ 810CC54
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_810CC54
thumb_func_start sub_810CC6C
sub_810CC6C: @ 810CC6C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_810CC6C
thumb_func_start sub_810CC80
sub_810CC80: @ 810CC80
push {r4,lr}
sub sp, 0x8
movs r0, 0
bl SetVBlankCallback
movs r0, 0x80
lsls r0, 19
movs r1, 0
strh r1, [r0]
adds r0, 0xC
strh r1, [r0]
subs r0, 0x2
strh r1, [r0]
subs r0, 0x2
strh r1, [r0]
adds r0, 0x10
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
subs r0, 0x6
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
subs r0, 0x6
strh r1, [r0]
adds r0, 0x2
strh r1, [r0]
mov r0, sp
strh r1, [r0]
ldr r1, _0810CD34 @ =0x040000d4
str r0, [r1]
movs r0, 0xC0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _0810CD38 @ =0x8100c000
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r4, 0
str r4, [sp, 0x4]
add r0, sp, 0x4
str r0, [r1]
movs r0, 0xE0
lsls r0, 19
str r0, [r1, 0x4]
ldr r0, _0810CD3C @ =0x85000100
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
mov r0, sp
strh r4, [r0]
str r0, [r1]
ldr r0, _0810CD40 @ =0x05000002
str r0, [r1, 0x4]
ldr r0, _0810CD44 @ =0x810001ff
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
bl ResetPaletteFade
bl ResetTasks
bl ResetSpriteData
ldr r3, _0810CD48 @ =0x04000208
ldrh r2, [r3]
strh r4, [r3]
ldr r4, _0810CD4C @ =0x04000200
ldrh r0, [r4]
movs r1, 0x1
orrs r0, r1
strh r0, [r4]
strh r2, [r3]
ldr r0, _0810CD50 @ =sub_810CC6C
bl SetVBlankCallback
ldr r0, _0810CD54 @ =sub_810CC54
bl SetMainCallback2
bl sub_810CD5C
lsls r0, 24
cmp r0, 0
bne _0810CD2A
ldr r0, _0810CD58 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_0810CD2A:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810CD34: .4byte 0x040000d4
_0810CD38: .4byte 0x8100c000
_0810CD3C: .4byte 0x85000100
_0810CD40: .4byte 0x05000002
_0810CD44: .4byte 0x810001ff
_0810CD48: .4byte 0x04000208
_0810CD4C: .4byte 0x04000200
_0810CD50: .4byte sub_810CC6C
_0810CD54: .4byte sub_810CC54
_0810CD58: .4byte gMain
thumb_func_end sub_810CC80
thumb_func_start sub_810CD5C
sub_810CD5C: @ 810CD5C
push {r4-r7,lr}
bl get_map_light_from_warp0
lsls r0, 24
lsrs r6, r0, 24
bl sav1_map_get_light_level
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
ldr r4, _0810CD9C @ =gUnknown_083F7FC4
ldrb r0, [r4]
cmp r0, 0
beq _0810CDB0
adds r7, r4, 0
adds r0, r4, 0x4
mov r12, r0
_0810CD7E:
lsls r2, r3, 3
adds r1, r2, r7
ldrb r0, [r1]
cmp r0, r6
bne _0810CDA0
ldrb r0, [r1, 0x1]
cmp r0, r5
bne _0810CDA0
mov r1, r12
adds r0, r2, r1
ldr r0, [r0]
bl _call_via_r0
movs r0, 0x1
b _0810CDB2
.align 2, 0
_0810CD9C: .4byte gUnknown_083F7FC4
_0810CDA0:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _0810CD7E
_0810CDB0:
movs r0, 0
_0810CDB2:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810CD5C
thumb_func_start sub_810CDB8
sub_810CDB8: @ 810CDB8
push {r4-r6,lr}
lsls r0, 24
lsls r1, 24
lsrs r5, r0, 24
lsrs r4, r1, 24
movs r3, 0
ldr r1, _0810CDE4 @ =gUnknown_083F7FC4
ldrb r0, [r1]
cmp r0, 0
beq _0810CDF8
adds r6, r1, 0
_0810CDCE:
lsls r0, r3, 3
adds r2, r0, r6
ldrb r0, [r2]
cmp r0, r5
bne _0810CDE8
ldrb r0, [r2, 0x1]
cmp r0, r4
bne _0810CDE8
ldrb r0, [r2, 0x2]
b _0810CDFA
.align 2, 0
_0810CDE4: .4byte gUnknown_083F7FC4
_0810CDE8:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0810CDCE
_0810CDF8:
movs r0, 0
_0810CDFA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_810CDB8
thumb_func_start fade_type_for_given_maplight_pair
fade_type_for_given_maplight_pair: @ 810CE00
push {r4-r6,lr}
lsls r0, 24
lsls r1, 24
lsrs r5, r0, 24
lsrs r4, r1, 24
movs r3, 0
ldr r1, _0810CE2C @ =gUnknown_083F7FC4
ldrb r0, [r1]
cmp r0, 0
beq _0810CE40
adds r6, r1, 0
_0810CE16:
lsls r0, r3, 3
adds r2, r0, r6
ldrb r0, [r2]
cmp r0, r5
bne _0810CE30
ldrb r0, [r2, 0x1]
cmp r0, r4
bne _0810CE30
ldrb r0, [r2, 0x3]
b _0810CE42
.align 2, 0
_0810CE2C: .4byte gUnknown_083F7FC4
_0810CE30:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0810CE16
_0810CE40:
movs r0, 0
_0810CE42:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end fade_type_for_given_maplight_pair
thumb_func_start sub_810CE48
sub_810CE48: @ 810CE48
push {lr}
ldr r0, _0810CE58 @ =sub_810CE5C
movs r1, 0
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_0810CE58: .4byte sub_810CE5C
thumb_func_end sub_810CE48
thumb_func_start sub_810CE5C
sub_810CE5C: @ 810CE5C
lsls r0, 24
lsrs r0, 24
ldr r2, _0810CE70 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _0810CE74 @ =sub_810CE78
str r0, [r1]
bx lr
.align 2, 0
_0810CE70: .4byte gTasks
_0810CE74: .4byte sub_810CE78
thumb_func_end sub_810CE5C
thumb_func_start sub_810CE78
sub_810CE78: @ 810CE78
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r6, 0x80
lsls r6, 19
movs r5, 0
strh r5, [r6]
ldr r0, _0810CEE8 @ =gCaveTransitionTiles
ldr r1, _0810CEEC @ =0x0600c000
bl LZ77UnCompVram
ldr r0, _0810CEF0 @ =gCaveTransitionTilemap
ldr r1, _0810CEF4 @ =0x0600f800
bl LZ77UnCompVram
ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
ldr r0, _0810CEFC @ =gUnknown_083F809C
movs r1, 0xE0
movs r2, 0x10
bl LoadPalette
ldr r1, _0810CF00 @ =REG_BLDCNT
ldr r2, _0810CF04 @ =0x00003e41
adds r0, r2, 0
strh r0, [r1]
ldr r0, _0810CF08 @ =REG_BLDALPHA
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
subs r1, 0x48
ldr r2, _0810CF0C @ =0x00001f0c
adds r0, r2, 0
strh r0, [r1]
movs r1, 0x8A
lsls r1, 5
adds r0, r1, 0
strh r0, [r6]
ldr r1, _0810CF10 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _0810CF14 @ =sub_810CF18
str r1, [r0]
movs r2, 0
movs r1, 0x10
strh r1, [r0, 0x8]
strh r2, [r0, 0xA]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810CEE8: .4byte gCaveTransitionTiles
_0810CEEC: .4byte 0x0600c000
_0810CEF0: .4byte gCaveTransitionTilemap
_0810CEF4: .4byte 0x0600f800
_0810CEF8: .4byte gCaveTransitionPalette_White
_0810CEFC: .4byte gUnknown_083F809C
_0810CF00: .4byte REG_BLDCNT
_0810CF04: .4byte 0x00003e41
_0810CF08: .4byte REG_BLDALPHA
_0810CF0C: .4byte 0x00001f0c
_0810CF10: .4byte gTasks
_0810CF14: .4byte sub_810CF18
thumb_func_end sub_810CE78
thumb_func_start sub_810CF18
sub_810CF18: @ 810CF18
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _0810CF44 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r3, r1, r2
ldrh r2, [r3, 0xA]
movs r1, 0x80
lsls r1, 5
adds r0, r2, r1
lsls r0, 16
lsrs r0, 16
ldr r1, _0810CF48 @ =REG_BLDALPHA
strh r0, [r1]
cmp r2, 0x10
bhi _0810CF4C
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
b _0810CF54
.align 2, 0
_0810CF44: .4byte gTasks
_0810CF48: .4byte REG_BLDALPHA
_0810CF4C:
movs r0, 0
strh r0, [r3, 0xC]
ldr r0, _0810CF58 @ =sub_810CF5C
str r0, [r3]
_0810CF54:
pop {r0}
bx r0
.align 2, 0
_0810CF58: .4byte sub_810CF5C
thumb_func_end sub_810CF18
thumb_func_start sub_810CF5C
sub_810CF5C: @ 810CF5C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _0810CF94 @ =REG_BLDALPHA
ldr r3, _0810CF98 @ =0x00001010
adds r1, r3, 0
strh r1, [r2]
ldr r2, _0810CF9C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r1, [r4, 0xC]
cmp r1, 0x7
bhi _0810CFA4
adds r0, r1, 0x1
strh r0, [r4, 0xC]
lsls r1, 1
ldr r0, _0810CFA0 @ =gUnknown_083F809C
adds r0, r1, r0
movs r2, 0x10
subs r2, r1
lsls r2, 16
lsrs r2, 16
movs r1, 0xE0
bl LoadPalette
b _0810CFB6
.align 2, 0
_0810CF94: .4byte REG_BLDALPHA
_0810CF98: .4byte 0x00001010
_0810CF9C: .4byte gTasks
_0810CFA0: .4byte gUnknown_083F809C
_0810CFA4:
ldr r0, _0810CFBC @ =gCaveTransitionPalette_White
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _0810CFC0 @ =sub_810CFC4
str r0, [r4]
movs r0, 0x8
strh r0, [r4, 0xC]
_0810CFB6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810CFBC: .4byte gCaveTransitionPalette_White
_0810CFC0: .4byte sub_810CFC4
thumb_func_end sub_810CF5C
thumb_func_start sub_810CFC4
sub_810CFC4: @ 810CFC4
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _0810CFE4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldrh r2, [r1, 0xC]
movs r3, 0xC
ldrsh r0, [r1, r3]
cmp r0, 0
beq _0810CFE8
subs r0, r2, 0x1
strh r0, [r1, 0xC]
b _0810CFF0
.align 2, 0
_0810CFE4: .4byte gTasks
_0810CFE8:
ldr r0, _0810CFF4 @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_0810CFF0:
pop {r0}
bx r0
.align 2, 0
_0810CFF4: .4byte gMain
thumb_func_end sub_810CFC4
thumb_func_start sub_810CFF8
sub_810CFF8: @ 810CFF8
push {lr}
ldr r0, _0810D008 @ =sub_810D00C
movs r1, 0
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_0810D008: .4byte sub_810D00C
thumb_func_end sub_810CFF8
thumb_func_start sub_810D00C
sub_810D00C: @ 810D00C
lsls r0, 24
lsrs r0, 24
ldr r2, _0810D020 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _0810D024 @ =sub_810D028
str r0, [r1]
bx lr
.align 2, 0
_0810D020: .4byte gTasks
_0810D024: .4byte sub_810D028
thumb_func_end sub_810D00C
thumb_func_start sub_810D028
sub_810D028: @ 810D028
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r6, 0x80
lsls r6, 19
movs r4, 0
strh r4, [r6]
ldr r0, _0810D098 @ =gCaveTransitionTiles
ldr r1, _0810D09C @ =0x0600c000
bl LZ77UnCompVram
ldr r0, _0810D0A0 @ =gCaveTransitionTilemap
ldr r1, _0810D0A4 @ =0x0600f800
bl LZ77UnCompVram
ldr r0, _0810D0A8 @ =REG_BLDCNT
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
ldr r1, _0810D0AC @ =REG_BG0CNT
ldr r2, _0810D0B0 @ =0x00001f0c
adds r0, r2, 0
strh r0, [r1]
movs r1, 0x8A
lsls r1, 5
adds r0, r1, 0
strh r0, [r6]
ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r1, _0810D0BC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _0810D0C0 @ =sub_810D0C4
str r1, [r0]
movs r2, 0
movs r1, 0x10
strh r1, [r0, 0x8]
strh r2, [r0, 0xA]
strh r2, [r0, 0xC]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810D098: .4byte gCaveTransitionTiles
_0810D09C: .4byte 0x0600c000
_0810D0A0: .4byte gCaveTransitionTilemap
_0810D0A4: .4byte 0x0600f800
_0810D0A8: .4byte REG_BLDCNT
_0810D0AC: .4byte REG_BG0CNT
_0810D0B0: .4byte 0x00001f0c
_0810D0B4: .4byte gCaveTransitionPalette_White
_0810D0B8: .4byte gCaveTransitionPalette_Black
_0810D0BC: .4byte gTasks
_0810D0C0: .4byte sub_810D0C4
thumb_func_end sub_810D028
thumb_func_start sub_810D0C4
sub_810D0C4: @ 810D0C4
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _0810D0F8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r3, r1, r2
ldrh r1, [r3, 0xC]
cmp r1, 0xF
bhi _0810D100
adds r2, r1, 0x1
adds r0, r2, 0x1
strh r0, [r3, 0xC]
movs r0, 0xF
subs r0, r1
lsls r0, 1
ldr r1, _0810D0FC @ =gUnknown_083F808C
adds r0, r1
lsls r2, 17
lsrs r2, 16
movs r1, 0xE0
bl LoadPalette
b _0810D114
.align 2, 0
_0810D0F8: .4byte gTasks
_0810D0FC: .4byte gUnknown_083F808C
_0810D100:
ldr r1, _0810D118 @ =REG_BLDALPHA
ldr r2, _0810D11C @ =0x00001010
adds r0, r2, 0
strh r0, [r1]
subs r1, 0x2
ldr r2, _0810D120 @ =0x00003e41
adds r0, r2, 0
strh r0, [r1]
ldr r0, _0810D124 @ =sub_810D128
str r0, [r3]
_0810D114:
pop {r0}
bx r0
.align 2, 0
_0810D118: .4byte REG_BLDALPHA
_0810D11C: .4byte 0x00001010
_0810D120: .4byte 0x00003e41
_0810D124: .4byte sub_810D128
thumb_func_end sub_810D0C4
thumb_func_start sub_810D128
sub_810D128: @ 810D128
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _0810D158 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r3, r1, r2
ldrh r0, [r3, 0xA]
movs r1, 0x10
subs r1, r0
lsls r1, 16
movs r2, 0x80
lsls r2, 21
adds r0, r1, r2
lsrs r0, 16
ldr r2, _0810D15C @ =REG_BLDALPHA
strh r0, [r2]
cmp r1, 0
beq _0810D160
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
b _0810D172
.align 2, 0
_0810D158: .4byte gTasks
_0810D15C: .4byte REG_BLDALPHA
_0810D160:
ldr r0, _0810D178 @ =gCaveTransitionPalette_Black
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _0810D17C @ =gMain
ldr r0, [r0, 0x8]
bl SetMainCallback2
_0810D172:
pop {r0}
bx r0
.align 2, 0
_0810D178: .4byte gCaveTransitionPalette_Black
_0810D17C: .4byte gMain
thumb_func_end sub_810D128
thumb_func_start sub_810D180
sub_810D180: @ 810D180
push {r4-r7,lr}
sub sp, 0x4
bl HealPlayerParty
ldr r4, _0810D1A0 @ =0x00000804
adds r0, r4, 0
bl FlagGet
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
bne _0810D1A8
ldr r0, _0810D1A4 @ =gUnknown_02039324
strb r1, [r0]
b _0810D1B4
.align 2, 0
_0810D1A0: .4byte 0x00000804
_0810D1A4: .4byte gUnknown_02039324
_0810D1A8:
ldr r1, _0810D1E8 @ =gUnknown_02039324
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
bl FlagSet
_0810D1B4:
movs r0, 0x1
bl sub_8053108
cmp r0, 0
bne _0810D1D4
ldr r2, _0810D1EC @ =gSaveBlock2
ldrh r1, [r2, 0xE]
lsls r1, 16
ldrb r0, [r2, 0x10]
lsls r0, 8
orrs r1, r0
ldrb r0, [r2, 0x11]
orrs r1, r0
movs r0, 0x1
bl sav12_xor_set
_0810D1D4:
bl sub_8047A10
ldr r0, _0810D1EC @ =gSaveBlock2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0810D1F0
movs r0, 0x1
bl sub_80537CC
b _0810D1F6
.align 2, 0
_0810D1E8: .4byte gUnknown_02039324
_0810D1EC: .4byte gSaveBlock2
_0810D1F0:
movs r0, 0x2
bl sub_80537CC
_0810D1F6:
movs r6, 0
movs r5, 0
mov r7, sp
_0810D1FC:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810D260 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _0810D23A
adds r0, r4, 0
movs r1, 0x6
bl GetMonData
cmp r0, 0
bne _0810D23A
adds r0, r4, 0
movs r1, 0x43
bl GetMonData
cmp r0, 0
bne _0810D23A
movs r0, 0x1
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x43
mov r2, sp
bl SetMonData
movs r6, 0x1
_0810D23A:
adds r5, 0x1
cmp r5, 0x5
ble _0810D1FC
cmp r6, 0x1
bne _0810D250
movs r0, 0x2A
bl sav12_xor_increment
ldr r0, _0810D264 @ =0x0000083b
bl FlagSet
_0810D250:
ldr r0, _0810D268 @ =sub_8141F90
bl SetMainCallback2
movs r0, 0
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810D260: .4byte gPlayerParty
_0810D264: .4byte 0x0000083b
_0810D268: .4byte sub_8141F90
thumb_func_end sub_810D180
thumb_func_start sp0C8_whiteout_maybe
sp0C8_whiteout_maybe: @ 810D26C
push {lr}
ldr r0, _0810D27C @ =c2_whiteout
bl SetMainCallback2
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_0810D27C: .4byte c2_whiteout
thumb_func_end sp0C8_whiteout_maybe
thumb_func_start sub_810D280
sub_810D280: @ 810D280
push {r4,lr}
ldr r0, _0810D2A4 @ =0x00004024
bl VarGet
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, _0810D2A8 @ =0x00004025
bl VarGet
lsls r0, 16
lsrs r0, 16
lsls r4, 16
orrs r4, r0
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810D2A4: .4byte 0x00004024
_0810D2A8: .4byte 0x00004025
thumb_func_end sub_810D280
thumb_func_start sub_810D2AC
sub_810D2AC: @ 810D2AC
push {r4,lr}
adds r4, r0, 0
ldr r0, _0810D2CC @ =0x00004024
lsrs r1, r4, 16
bl VarSet
ldr r0, _0810D2D0 @ =0x00004025
lsls r4, 16
lsrs r4, 16
adds r1, r4, 0
bl VarSet
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810D2CC: .4byte 0x00004024
_0810D2D0: .4byte 0x00004025
thumb_func_end sub_810D2AC
thumb_func_start unref_sub_810D2D4
unref_sub_810D2D4: @ 810D2D4
push {r4,lr}
bl Random
adds r4, r0, 0
bl Random
lsls r4, 16
lsls r0, 16
lsrs r0, 16
orrs r4, r0
adds r0, r4, 0
bl sub_810D2AC
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_810D2D4
thumb_func_start sub_810D2F4
sub_810D2F4: @ 810D2F4
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
bl sub_810D280
adds r1, r0, 0
cmp r4, 0
beq _0810D318
ldr r3, _0810D324 @ =0x41c64e6d
ldr r2, _0810D328 @ =0x00003039
_0810D308:
adds r0, r1, 0
muls r0, r3
adds r1, r0, r2
subs r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
bne _0810D308
_0810D318:
adds r0, r1, 0
bl sub_810D2AC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810D324: .4byte 0x41c64e6d
_0810D328: .4byte 0x00003039
thumb_func_end sub_810D2F4
thumb_func_start sub_810D32C
sub_810D32C: @ 810D32C
push {r4-r6,lr}
bl sub_810D280
lsrs r6, r0, 16
movs r5, 0
_0810D336:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810D360 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
cmp r0, 0
beq _0810D368
adds r0, r4, 0
movs r1, 0
bl GetMonData
ldr r1, _0810D364 @ =0x0000ffff
ands r1, r0
cmp r1, r6
bne _0810D368
movs r0, 0x1
b _0810D370
.align 2, 0
_0810D360: .4byte gPlayerParty
_0810D364: .4byte 0x0000ffff
_0810D368:
adds r5, 0x1
cmp r5, 0x5
ble _0810D336
movs r0, 0
_0810D370:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_810D32C
thumb_func_start sub_810D378
sub_810D378: @ 810D378
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
cmp r0, 0
beq _0810D3BE
bl RtcCalcLocalTime
ldr r1, _0810D3AC @ =gUnknown_083F8340
ldr r0, _0810D3B0 @ =gLocalTime
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0810D3B8
ldr r0, _0810D3B4 @ =0x0000083a
bl FlagSet
b _0810D3BE
.align 2, 0
_0810D3AC: .4byte gUnknown_083F8340
_0810D3B0: .4byte gLocalTime
_0810D3B4: .4byte 0x0000083a
_0810D3B8:
ldr r0, _0810D3C4 @ =0x0000083a
bl FlagReset
_0810D3BE:
pop {r0}
bx r0
.align 2, 0
_0810D3C4: .4byte 0x0000083a
thumb_func_end sub_810D378
thumb_func_start sub_810D3C8
sub_810D3C8: @ 810D3C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_807DDFC
lsls r0, 24
cmp r0, 0
beq _0810D3E2
bl EnableBothScriptContexts
adds r0, r4, 0
bl DestroyTask
_0810D3E2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_810D3C8
thumb_func_start sub_810D3E8
sub_810D3E8: @ 810D3E8
push {lr}
ldr r0, _0810D3F8 @ =sub_810D3C8
movs r1, 0x50
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_0810D3F8: .4byte sub_810D3C8
thumb_func_end sub_810D3E8
thumb_func_start sub_810D3FC
sub_810D3FC: @ 810D3FC
push {lr}
ldr r0, _0810D40C @ =0x00004049
bl GetVarPointer
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0810D40C: .4byte 0x00004049
thumb_func_end sub_810D3FC
thumb_func_start UpdateBirchState
UpdateBirchState: @ 810D410
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, _0810D438 @ =0x00004049
bl GetVarPointer
adds r5, r0, 0
ldrh r0, [r5]
adds r4, r0
strh r4, [r5]
ldrh r0, [r5]
movs r1, 0x7
bl __umodsi3
strh r0, [r5]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810D438: .4byte 0x00004049
thumb_func_end UpdateBirchState
thumb_func_start ScriptGetPokedexInfo
ScriptGetPokedexInfo: @ 810D43C
push {lr}
ldr r0, _0810D458 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r0, 0
bne _0810D460
movs r0, 0
bl GetHoennPokedexCount
ldr r1, _0810D45C @ =gUnknown_0202E8CE
strh r0, [r1]
movs r0, 0x1
bl GetHoennPokedexCount
b _0810D470
.align 2, 0
_0810D458: .4byte gUnknown_0202E8CC
_0810D45C: .4byte gUnknown_0202E8CE
_0810D460:
movs r0, 0
bl GetNationalPokedexCount
ldr r1, _0810D480 @ =gUnknown_0202E8CE
strh r0, [r1]
movs r0, 0x1
bl GetNationalPokedexCount
_0810D470:
ldr r1, _0810D484 @ =gUnknown_0202E8D0
strh r0, [r1]
bl IsNationalPokedex
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_0810D480: .4byte gUnknown_0202E8CE
_0810D484: .4byte gUnknown_0202E8D0
thumb_func_end ScriptGetPokedexInfo
thumb_func_start GetPokedexRatingText
GetPokedexRatingText: @ 810D488
push {lr}
lsls r0, 16
lsrs r0, 16
cmp r0, 0x9
bhi _0810D494
b _0810D5EC
_0810D494:
cmp r0, 0x13
bhi _0810D4A0
ldr r0, _0810D49C @ =gUnknown_081C456A
b _0810D5F6
.align 2, 0
_0810D49C: .4byte gUnknown_081C456A
_0810D4A0:
cmp r0, 0x1D
bhi _0810D4AC
ldr r0, _0810D4A8 @ =gUnknown_081C45B0
b _0810D5F6
.align 2, 0
_0810D4A8: .4byte gUnknown_081C45B0
_0810D4AC:
cmp r0, 0x27
bhi _0810D4B8
ldr r0, _0810D4B4 @ =gUnknown_081C45F9
b _0810D5F6
.align 2, 0
_0810D4B4: .4byte gUnknown_081C45F9
_0810D4B8:
cmp r0, 0x31
bhi _0810D4C4
ldr r0, _0810D4C0 @ =gUnknown_081C4648
b _0810D5F6
.align 2, 0
_0810D4C0: .4byte gUnknown_081C4648
_0810D4C4:
cmp r0, 0x3B
bhi _0810D4D0
ldr r0, _0810D4CC @ =gUnknown_081C467E
b _0810D5F6
.align 2, 0
_0810D4CC: .4byte gUnknown_081C467E
_0810D4D0:
cmp r0, 0x45
bhi _0810D4DC
ldr r0, _0810D4D8 @ =gUnknown_081C46B9
b _0810D5F6
.align 2, 0
_0810D4D8: .4byte gUnknown_081C46B9
_0810D4DC:
cmp r0, 0x4F
bhi _0810D4E8
ldr r0, _0810D4E4 @ =gUnknown_081C46FE
b _0810D5F6
.align 2, 0
_0810D4E4: .4byte gUnknown_081C46FE
_0810D4E8:
cmp r0, 0x59
bhi _0810D4F4
ldr r0, _0810D4F0 @ =gUnknown_081C4747
b _0810D5F6
.align 2, 0
_0810D4F0: .4byte gUnknown_081C4747
_0810D4F4:
cmp r0, 0x63
bhi _0810D500
ldr r0, _0810D4FC @ =gUnknown_081C4780
b _0810D5F6
.align 2, 0
_0810D4FC: .4byte gUnknown_081C4780
_0810D500:
cmp r0, 0x6D
bhi _0810D50C
ldr r0, _0810D508 @ =gUnknown_081C47DF
b _0810D5F6
.align 2, 0
_0810D508: .4byte gUnknown_081C47DF
_0810D50C:
cmp r0, 0x77
bhi _0810D518
ldr r0, _0810D514 @ =gUnknown_081C4828
b _0810D5F6
.align 2, 0
_0810D514: .4byte gUnknown_081C4828
_0810D518:
cmp r0, 0x81
bhi _0810D524
ldr r0, _0810D520 @ =gUnknown_081C4863
b _0810D5F6
.align 2, 0
_0810D520: .4byte gUnknown_081C4863
_0810D524:
cmp r0, 0x8B
bhi _0810D530
ldr r0, _0810D52C @ =gUnknown_081C489C
b _0810D5F6
.align 2, 0
_0810D52C: .4byte gUnknown_081C489C
_0810D530:
cmp r0, 0x95
bhi _0810D53C
ldr r0, _0810D538 @ =gUnknown_081C48EB
b _0810D5F6
.align 2, 0
_0810D538: .4byte gUnknown_081C48EB
_0810D53C:
cmp r0, 0x9F
bhi _0810D548
ldr r0, _0810D544 @ =gUnknown_081C4936
b _0810D5F6
.align 2, 0
_0810D544: .4byte gUnknown_081C4936
_0810D548:
cmp r0, 0xA9
bhi _0810D554
ldr r0, _0810D550 @ =gUnknown_081C49A2
b _0810D5F6
.align 2, 0
_0810D550: .4byte gUnknown_081C49A2
_0810D554:
cmp r0, 0xB3
bhi _0810D560
ldr r0, _0810D55C @ =gUnknown_081C4A06
b _0810D5F6
.align 2, 0
_0810D55C: .4byte gUnknown_081C4A06
_0810D560:
cmp r0, 0xBD
bhi _0810D56C
ldr r0, _0810D568 @ =gUnknown_081C4A4F
b _0810D5F6
.align 2, 0
_0810D568: .4byte gUnknown_081C4A4F
_0810D56C:
cmp r0, 0xC7
bls _0810D5DA
cmp r0, 0xC8
bne _0810D5A8
ldr r0, _0810D5A4 @ =0x00000199
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8090D90
lsls r0, 24
cmp r0, 0
bne _0810D5DA
movs r0, 0xCD
lsls r0, 1
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8090D90
lsls r0, 24
cmp r0, 0
bne _0810D5DA
b _0810D5F4
.align 2, 0
_0810D5A4: .4byte 0x00000199
_0810D5A8:
cmp r0, 0xC9
bne _0810D5E8
ldr r0, _0810D5E0 @ =0x00000199
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8090D90
lsls r0, 24
cmp r0, 0
beq _0810D5F4
movs r0, 0xCD
lsls r0, 1
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8090D90
lsls r0, 24
cmp r0, 0
beq _0810D5F4
_0810D5DA:
ldr r0, _0810D5E4 @ =gUnknown_081C4A91
b _0810D5F6
.align 2, 0
_0810D5E0: .4byte 0x00000199
_0810D5E4: .4byte gUnknown_081C4A91
_0810D5E8:
cmp r0, 0xCA
beq _0810D5F4
_0810D5EC:
ldr r0, _0810D5F0 @ =gUnknown_081C4520
b _0810D5F6
.align 2, 0
_0810D5F0: .4byte gUnknown_081C4520
_0810D5F4:
ldr r0, _0810D5FC @ =gUnknown_081C4ADA
_0810D5F6:
pop {r1}
bx r1
.align 2, 0
_0810D5FC: .4byte gUnknown_081C4ADA
thumb_func_end GetPokedexRatingText
thumb_func_start ShowPokedexRatingMessage
ShowPokedexRatingMessage: @ 810D600
push {lr}
ldr r0, _0810D614 @ =gUnknown_0202E8CC
ldrh r0, [r0]
bl GetPokedexRatingText
bl ShowFieldMessage
pop {r0}
bx r0
.align 2, 0
_0810D614: .4byte gUnknown_0202E8CC
thumb_func_end ShowPokedexRatingMessage
thumb_func_start AccessHallOfFamePC
AccessHallOfFamePC: @ 810D618
push {lr}
ldr r0, _0810D628 @ =sub_81428CC
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_0810D628: .4byte sub_81428CC
thumb_func_end AccessHallOfFamePC
thumb_func_start ReturnFromHallOfFamePC
ReturnFromHallOfFamePC: @ 810D62C
push {lr}
ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
bl SetMainCallback2
ldr r1, _0810D644 @ =gUnknown_0300485C
ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0810D640: .4byte c2_exit_to_overworld_2_switch
_0810D644: .4byte gUnknown_0300485C
_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC
thumb_func_end ReturnFromHallOfFamePC
thumb_func_start ReshowPCMenuAfterHallOfFamePC
ReshowPCMenuAfterHallOfFamePC: @ 810D64C
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
bl sub_8053E90
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
bl sp109_CreatePCMenu
bl sub_80B5838
ldr r0, _0810D680 @ =sub_810D684
movs r1, 0xA
bl CreateTask
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0810D680: .4byte sub_810D684
thumb_func_end ReshowPCMenuAfterHallOfFamePC
thumb_func_start sub_810D684
sub_810D684: @ 810D684
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _0810D6A0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0810D69C
adds r0, r2, 0
bl DestroyTask
_0810D69C:
pop {r0}
bx r0
.align 2, 0
_0810D6A0: .4byte gPaletteFade
thumb_func_end sub_810D684
thumb_func_start sub_810D6A4
sub_810D6A4: @ 810D6A4
push {lr}
ldr r0, _0810D6B4 @ =sub_8145D88
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_0810D6B4: .4byte sub_8145D88
thumb_func_end sub_810D6A4
thumb_func_start sub_810D6B8
sub_810D6B8: @ 810D6B8
push {lr}
ldr r0, _0810D6D0 @ =gMain
ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch
str r1, [r0, 0x8]
ldr r0, _0810D6D8 @ =Cb2_ViewWallClock
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_0810D6D0: .4byte gMain
_0810D6D4: .4byte c2_exit_to_overworld_2_switch
_0810D6D8: .4byte Cb2_ViewWallClock
thumb_func_end sub_810D6B8
thumb_func_start ResetCyclingRoadChallengeData
ResetCyclingRoadChallengeData: @ 810D6DC
ldr r0, _0810D6F0 @ =gUnknown_02039250
movs r1, 0
strb r1, [r0]
ldr r0, _0810D6F4 @ =gUnknown_02039251
strb r1, [r0]
ldr r1, _0810D6F8 @ =gUnknown_02039254
movs r0, 0
str r0, [r1]
bx lr
.align 2, 0
_0810D6F0: .4byte gUnknown_02039250
_0810D6F4: .4byte gUnknown_02039251
_0810D6F8: .4byte gUnknown_02039254
thumb_func_end ResetCyclingRoadChallengeData
thumb_func_start BeginCyclingRoadChallenge
BeginCyclingRoadChallenge: @ 810D6FC
ldr r1, _0810D714 @ =gUnknown_02039250
movs r0, 0x1
strb r0, [r1]
ldr r1, _0810D718 @ =gUnknown_02039251
movs r0, 0
strb r0, [r1]
ldr r1, _0810D71C @ =gUnknown_02039254
ldr r0, _0810D720 @ =gMain
ldr r0, [r0, 0x20]
str r0, [r1]
bx lr
.align 2, 0
_0810D714: .4byte gUnknown_02039250
_0810D718: .4byte gUnknown_02039251
_0810D71C: .4byte gUnknown_02039254
_0810D720: .4byte gMain
thumb_func_end BeginCyclingRoadChallenge
thumb_func_start GetPlayerAvatarBike
GetPlayerAvatarBike: @ 810D724
push {lr}
movs r0, 0x4
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
beq _0810D736
movs r0, 0x1
b _0810D748
_0810D736:
movs r0, 0x2
bl TestPlayerAvatarFlags
lsls r0, 24
cmp r0, 0
bne _0810D746
movs r0, 0
b _0810D748
_0810D746:
movs r0, 0x2
_0810D748:
pop {r1}
bx r1
thumb_func_end GetPlayerAvatarBike
thumb_func_start DetermineCyclingRoadResults
DetermineCyclingRoadResults: @ 810D74C
push {r4-r7,lr}
adds r7, r0, 0
lsls r1, 24
lsrs r6, r1, 24
cmp r6, 0x63
bhi _0810D778
ldr r4, _0810D770 @ =gStringVar1
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r1, _0810D774 @ =gOtherText_Times
adds r0, r4, 0
bl StringAppend
b _0810D780
.align 2, 0
_0810D770: .4byte gStringVar1
_0810D774: .4byte gOtherText_Times
_0810D778:
ldr r0, _0810D7CC @ =gStringVar1
ldr r1, _0810D7D0 @ =gOtherText_99Times
bl StringCopy
_0810D780:
ldr r0, _0810D7D4 @ =0x00000e0f
cmp r7, r0
bhi _0810D7E0
ldr r4, _0810D7D8 @ =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, _0810D7DC @ =gOtherText_Seconds
adds r0, r4, 0
bl StringAppend
b _0810D7E8
.align 2, 0
_0810D7CC: .4byte gStringVar1
_0810D7D0: .4byte gOtherText_99Times
_0810D7D4: .4byte 0x00000e0f
_0810D7D8: .4byte gStringVar2
_0810D7DC: .4byte gOtherText_Seconds
_0810D7E0:
ldr r0, _0810D7F4 @ =gStringVar2
ldr r1, _0810D7F8 @ =gOtherText_1Minute
bl StringCopy
_0810D7E8:
movs r4, 0
cmp r6, 0
bne _0810D7FC
movs r4, 0x5
b _0810D81A
.align 2, 0
_0810D7F4: .4byte gStringVar2
_0810D7F8: .4byte gOtherText_1Minute
_0810D7FC:
cmp r6, 0x3
bhi _0810D804
movs r4, 0x4
b _0810D81A
_0810D804:
cmp r6, 0x9
bhi _0810D80C
movs r4, 0x3
b _0810D81A
_0810D80C:
cmp r6, 0x13
bhi _0810D814
movs r4, 0x2
b _0810D81A
_0810D814:
cmp r6, 0x63
bhi _0810D81A
movs r4, 0x1
_0810D81A:
adds r0, r7, 0
movs r1, 0x3C
bl __udivsi3
cmp r0, 0xA
bhi _0810D82A
adds r0, r4, 0x5
b _0810D848
_0810D82A:
cmp r0, 0xF
bhi _0810D832
adds r0, r4, 0x4
b _0810D848
_0810D832:
cmp r0, 0x14
bhi _0810D83A
adds r0, r4, 0x3
b _0810D848
_0810D83A:
cmp r0, 0x28
bhi _0810D842
adds r0, r4, 0x2
b _0810D848
_0810D842:
cmp r0, 0x3B
bhi _0810D84C
adds r0, r4, 0x1
_0810D848:
lsls r0, 24
lsrs r4, r0, 24
_0810D84C:
ldr r0, _0810D858 @ =gScriptResult
strh r4, [r0]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810D858: .4byte gScriptResult
thumb_func_end DetermineCyclingRoadResults
thumb_func_start FinishCyclingRoadChallenge
FinishCyclingRoadChallenge: @ 810D85C
push {r4,r5,lr}
ldr r0, _0810D880 @ =gMain
ldr r1, _0810D884 @ =gUnknown_02039254
ldr r4, [r0, 0x20]
ldr r0, [r1]
subs r4, r0
ldr r5, _0810D888 @ =gUnknown_02039251
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
.align 2, 0
_0810D880: .4byte gMain
_0810D884: .4byte gUnknown_02039254
_0810D888: .4byte gUnknown_02039251
thumb_func_end FinishCyclingRoadChallenge
thumb_func_start RecordCyclingRoadResults
RecordCyclingRoadResults: @ 810D88C
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
lsls r1, 24
lsrs r1, 24
mov r8, r1
ldr r6, _0810D8E0 @ =0x00004028
adds r0, r6, 0
bl VarGet
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r7, _0810D8E4 @ =0x00004029
adds r0, r7, 0
bl VarGet
lsls r0, 16
adds r4, r0
cmp r4, r5
bhi _0810D8BC
cmp r4, 0
bne _0810D8D6
_0810D8BC:
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, _0810D8E8 @ =0x00004027
mov r1, r8
bl VarSet
_0810D8D6:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810D8E0: .4byte 0x00004028
_0810D8E4: .4byte 0x00004029
_0810D8E8: .4byte 0x00004027
thumb_func_end RecordCyclingRoadResults
thumb_func_start GetRecordedCyclingRoadResults
GetRecordedCyclingRoadResults: @ 810D8EC
push {r4,lr}
ldr r0, _0810D920 @ =0x00004028
bl VarGet
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldr r0, _0810D924 @ =0x00004029
bl VarGet
lsls r0, 16
adds r4, r0
cmp r4, 0
beq _0810D92C
ldr r0, _0810D928 @ =0x00004027
bl VarGet
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl DetermineCyclingRoadResults
movs r0, 0x1
b _0810D92E
.align 2, 0
_0810D920: .4byte 0x00004028
_0810D924: .4byte 0x00004029
_0810D928: .4byte 0x00004027
_0810D92C:
movs r0, 0
_0810D92E:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetRecordedCyclingRoadResults
thumb_func_start UpdateCyclingRoadState
UpdateCyclingRoadState: @ 810D934
push {r4,lr}
ldr r0, _0810D974 @ =gUnknown_020297F0
ldrh r1, [r0]
ldr r0, _0810D978 @ =0x00000c1d
cmp r1, r0
beq _0810D96C
ldr r4, _0810D97C @ =0x000040a9
adds r0, r4, 0
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
beq _0810D95E
adds r0, r4, 0
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bne _0810D96C
_0810D95E:
adds r0, r4, 0
movs r1, 0
bl VarSet
movs r0, 0
bl sav1_set_battle_music_maybe
_0810D96C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810D974: .4byte gUnknown_020297F0
_0810D978: .4byte 0x00000c1d
_0810D97C: .4byte 0x000040a9
thumb_func_end UpdateCyclingRoadState
thumb_func_start SetSSTidalFlag
SetSSTidalFlag: @ 810D980
push {lr}
ldr r0, _0810D998 @ =0x0000082d
bl FlagSet
ldr r0, _0810D99C @ =0x0000404a
bl GetVarPointer
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0810D998: .4byte 0x0000082d
_0810D99C: .4byte 0x0000404a
thumb_func_end SetSSTidalFlag
thumb_func_start ResetSSTidalFlag
ResetSSTidalFlag: @ 810D9A0
push {lr}
ldr r0, _0810D9AC @ =0x0000082d
bl FlagReset
pop {r0}
bx r0
.align 2, 0
_0810D9AC: .4byte 0x0000082d
thumb_func_end ResetSSTidalFlag
thumb_func_start sub_810D9B0
sub_810D9B0: @ 810D9B0
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
ldr r0, _0810D9DC @ =0x0000082d
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810D9D6
ldr r0, _0810D9E0 @ =0x0000404a
bl GetVarPointer
ldrh r1, [r0]
adds r1, r4, r1
strh r1, [r0]
lsls r1, 16
lsrs r1, 16
cmp r1, 0xCC
bhi _0810D9E4
_0810D9D6:
movs r0, 0
b _0810D9E6
.align 2, 0
_0810D9DC: .4byte 0x0000082d
_0810D9E0: .4byte 0x0000404a
_0810D9E4:
movs r0, 0x1
_0810D9E6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810D9B0
thumb_func_start sub_810D9EC
sub_810D9EC: @ 810D9EC
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, _0810DA1C @ =0x0000404a
bl GetVarPointer
adds r4, r0, 0
ldr r0, _0810DA20 @ =0x000040b4
bl GetVarPointer
ldrh r0, [r0]
subs r0, 0x1
cmp r0, 0x9
bhi _0810DAB2
lsls r0, 2
ldr r1, _0810DA24 @ =_0810DA28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DA1C: .4byte 0x0000404a
_0810DA20: .4byte 0x000040b4
_0810DA24: .4byte _0810DA28
.align 2, 0
_0810DA28:
.4byte _0810DA50
.4byte _0810DA60
.4byte _0810DA54
.4byte _0810DA58
.4byte _0810DA58
.4byte _0810DA5C
.4byte _0810DA88
.4byte _0810DA50
.4byte _0810DA54
.4byte _0810DA5C
_0810DA50:
movs r0, 0x1
b _0810DABE
_0810DA54:
movs r0, 0x4
b _0810DABE
_0810DA58:
movs r0, 0x2
b _0810DABE
_0810DA5C:
movs r0, 0x3
b _0810DABE
_0810DA60:
ldrh r0, [r4]
cmp r0, 0x3B
bhi _0810DA70
movs r0, 0x31
strb r0, [r5]
ldrh r0, [r4]
adds r0, 0x13
b _0810DAB0
_0810DA70:
cmp r0, 0x8B
bhi _0810DA7E
movs r0, 0x30
strb r0, [r5]
ldrh r0, [r4]
subs r0, 0x3C
b _0810DAB0
_0810DA7E:
movs r0, 0x2F
strb r0, [r5]
ldrh r0, [r4]
subs r0, 0x8C
b _0810DAB0
_0810DA88:
ldrh r0, [r4]
cmp r0, 0x41
bhi _0810DA98
movs r0, 0x2F
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0x41
b _0810DAAE
_0810DA98:
cmp r0, 0x91
bhi _0810DAA6
movs r0, 0x30
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0x91
b _0810DAAE
_0810DAA6:
movs r0, 0x31
strb r0, [r5]
ldrh r1, [r4]
movs r0, 0xE0
_0810DAAE:
subs r0, r1
_0810DAB0:
strh r0, [r6]
_0810DAB2:
movs r0, 0
mov r1, r8
strb r0, [r1]
movs r0, 0x14
strh r0, [r7]
movs r0, 0
_0810DABE:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810D9EC
thumb_func_start GetLinkPartnerNames
GetLinkPartnerNames: @ 810DAC8
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r6, 0
bl sub_8008218
lsls r0, 24
lsrs r7, r0, 24
bl sub_800820C
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
cmp r4, r5
bcs _0810DB12
ldr r0, _0810DB20 @ =gUnknown_083D1464
mov r8, r0
_0810DAEA:
cmp r7, r4
beq _0810DB08
lsls r0, r6, 2
add r0, r8
ldr r0, [r0]
lsls r1, r4, 3
subs r1, r4
lsls r1, 2
ldr r2, _0810DB24 @ =gLinkPlayers + 0x8
adds r1, r2
bl StringCopy
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0810DB08:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0810DAEA
_0810DB12:
adds r0, r5, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810DB20: .4byte gUnknown_083D1464
_0810DB24: .4byte gLinkPlayers + 0x8
thumb_func_end GetLinkPartnerNames
thumb_func_start sub_810DB28
sub_810DB28: @ 810DB28
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, _0810DB74 @ =gUnknown_083F8358
add r0, sp, 0x8
movs r2, 0x4
bl memcpy
add r4, sp, 0xC
ldr r1, _0810DB78 @ =gUnknown_083F835C
adds r0, r4, 0
movs r2, 0x8
bl memcpy
bl sub_8008218
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 _0810DB94
cmp r0, 0x2
bgt _0810DB7C
cmp r0, 0x1
beq _0810DBC0
b _0810DBD2
.align 2, 0
_0810DB74: .4byte gUnknown_083F8358
_0810DB78: .4byte gUnknown_083F835C
_0810DB7C:
cmp r1, 0x3
beq _0810DB86
cmp r1, 0x4
beq _0810DBA8
b _0810DBD2
_0810DB86:
movs r7, 0x2
ldr r1, _0810DB90 @ =gSaveBlock1
ldrh r0, [r1]
subs r0, 0x1
b _0810DBAE
.align 2, 0
_0810DB90: .4byte gSaveBlock1
_0810DB94:
movs r7, 0x1
ldr r0, _0810DBA4 @ =gSaveBlock1
ldrh r1, [r0]
mov r9, r1
ldrh r0, [r0, 0x2]
subs r0, 0x1
b _0810DBCC
.align 2, 0
_0810DBA4: .4byte gSaveBlock1
_0810DBA8:
ldr r1, _0810DBBC @ =gSaveBlock1
ldrh r0, [r1]
adds r0, 0x1
_0810DBAE:
lsls r0, 16
lsrs r0, 16
mov r9, r0
ldrh r1, [r1, 0x2]
mov r8, r1
b _0810DBD2
.align 2, 0
_0810DBBC: .4byte gSaveBlock1
_0810DBC0:
movs r7, 0x3
ldr r0, _0810DBD8 @ =gSaveBlock1
ldrh r4, [r0]
mov r9, r4
ldrh r0, [r0, 0x2]
adds r0, 0x1
_0810DBCC:
lsls r0, 16
lsrs r0, 16
mov r8, r0
_0810DBD2:
movs r6, 0
b _0810DC5C
.align 2, 0
_0810DBD8: .4byte gSaveBlock1
_0810DBDC:
cmp r10, r6
beq _0810DC56
ldr r1, _0810DC74 @ =gLinkPlayers
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x13]
movs r0, 0
bl sub_805983C
lsls r0, 24
lsrs r0, 24
mov r1, sp
adds r1, r7
adds r1, 0x8
ldrb r1, [r1]
movs r2, 0xF0
subs r2, r6
lsls r2, 24
lsrs r2, 24
lsls r5, r7, 1
mov r3, sp
adds r3, r5
adds r3, 0xC
ldrb r3, [r3]
lsls r3, 24
asrs r3, 24
mov r12, r3
mov r4, r9
lsls r3, r4, 16
asrs r3, 16
add r3, r12
adds r3, 0x7
lsls r3, 16
asrs r3, 16
mov r4, sp
adds r4, 0xD
adds r4, r5
ldrb r4, [r4]
lsls r4, 24
asrs r4, 24
mov r12, r4
mov r5, r8
lsls r4, r5, 16
asrs r4, 16
add r4, r12
adds r4, 0x7
lsls r4, 16
asrs r4, 16
str r4, [sp]
movs r4, 0
str r4, [sp, 0x4]
bl SpawnSpecialFieldObjectParametrized
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x4
bne _0810DC56
movs r7, 0
_0810DC56:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0810DC5C:
ldr r0, _0810DC78 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r6, r0
bcc _0810DBDC
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810DC74: .4byte gLinkPlayers
_0810DC78: .4byte gUnknown_0202E8CC
thumb_func_end sub_810DB28
thumb_func_start sub_810DC7C
sub_810DC7C: @ 810DC7C
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810DC9C @ =gUnknown_083F8364
_0810DC82:
ldr r0, _0810DCA0 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r4, r0
bne _0810DCA8
lsls r1, r4, 2
adds r1, r5
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
ldr r2, _0810DCA4 @ =0x00000206
bl MapGridSetMetatileIdAt
b _0810DCB6
.align 2, 0
_0810DC9C: .4byte gUnknown_083F8364
_0810DCA0: .4byte gUnknown_0202E8CC
_0810DCA4: .4byte 0x00000206
_0810DCA8:
lsls r1, r4, 2
adds r1, r5
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
ldr r2, _0810DCC8 @ =0x00000205
bl MapGridSetMetatileIdAt
_0810DCB6:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _0810DC82
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810DCC8: .4byte 0x00000205
thumb_func_end sub_810DC7C
thumb_func_start sub_810DCCC
sub_810DCCC: @ 810DCCC
push {r4-r6,lr}
movs r5, 0xC
_0810DCD0:
movs r4, 0x7
adds r6, r5, 0x1
_0810DCD4:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridGetMetatileIdAt
ldr r1, _0810DCF0 @ =0xfffffde6
adds r0, r1
cmp r0, 0x37
bls _0810DCE6
b _0810DEC0
_0810DCE6:
lsls r0, 2
ldr r1, _0810DCF4 @ =_0810DCF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DCF0: .4byte 0xfffffde6
_0810DCF4: .4byte _0810DCF8
.align 2, 0
_0810DCF8:
.4byte _0810DE7E
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDD8
.4byte _0810DDDE
.4byte _0810DE18
.4byte _0810DE20
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDE8
.4byte _0810DDEE
.4byte _0810DE28
.4byte _0810DE30
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DDF8
.4byte _0810DDFE
.4byte _0810DE38
.4byte _0810DE40
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE08
.4byte _0810DE10
.4byte _0810DE48
.4byte _0810DE50
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE58
.4byte _0810DE68
.4byte _0810DE78
.4byte _0810DEA0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DE60
.4byte _0810DE70
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEC0
.4byte _0810DEB6
.4byte _0810DEA8
_0810DDD8:
movs r2, 0x8C
lsls r2, 2
b _0810DEAC
_0810DDDE:
ldr r2, _0810DDE4 @ =0x00000231
b _0810DEAC
.align 2, 0
_0810DDE4: .4byte 0x00000231
_0810DDE8:
movs r2, 0x8E
lsls r2, 2
b _0810DEAC
_0810DDEE:
ldr r2, _0810DDF4 @ =0x00000239
b _0810DEAC
.align 2, 0
_0810DDF4: .4byte 0x00000239
_0810DDF8:
movs r2, 0x88
lsls r2, 2
b _0810DEAC
_0810DDFE:
ldr r2, _0810DE04 @ =0x00000221
b _0810DEAC
.align 2, 0
_0810DE04: .4byte 0x00000221
_0810DE08:
ldr r2, _0810DE0C @ =0x00000e28
b _0810DEAC
.align 2, 0
_0810DE0C: .4byte 0x00000e28
_0810DE10:
ldr r2, _0810DE14 @ =0x00000e29
b _0810DEAC
.align 2, 0
_0810DE14: .4byte 0x00000e29
_0810DE18:
ldr r2, _0810DE1C @ =0x00000232
b _0810DEAC
.align 2, 0
_0810DE1C: .4byte 0x00000232
_0810DE20:
ldr r2, _0810DE24 @ =0x00000233
b _0810DEAC
.align 2, 0
_0810DE24: .4byte 0x00000233
_0810DE28:
ldr r2, _0810DE2C @ =0x0000023a
b _0810DEAC
.align 2, 0
_0810DE2C: .4byte 0x0000023a
_0810DE30:
ldr r2, _0810DE34 @ =0x0000023b
b _0810DEAC
.align 2, 0
_0810DE34: .4byte 0x0000023b
_0810DE38:
ldr r2, _0810DE3C @ =0x00000222
b _0810DEAC
.align 2, 0
_0810DE3C: .4byte 0x00000222
_0810DE40:
ldr r2, _0810DE44 @ =0x00000223
b _0810DEAC
.align 2, 0
_0810DE44: .4byte 0x00000223
_0810DE48:
ldr r2, _0810DE4C @ =0x00000e2a
b _0810DEAC
.align 2, 0
_0810DE4C: .4byte 0x00000e2a
_0810DE50:
ldr r2, _0810DE54 @ =0x00000e2b
b _0810DEAC
.align 2, 0
_0810DE54: .4byte 0x00000e2b
_0810DE58:
ldr r2, _0810DE5C @ =0x00000e42
b _0810DEAC
.align 2, 0
_0810DE5C: .4byte 0x00000e42
_0810DE60:
ldr r2, _0810DE64 @ =0x0000021a
b _0810DEAC
.align 2, 0
_0810DE64: .4byte 0x0000021a
_0810DE68:
ldr r2, _0810DE6C @ =0x00000e43
b _0810DEAC
.align 2, 0
_0810DE6C: .4byte 0x00000e43
_0810DE70:
ldr r2, _0810DE74 @ =0x0000021a
b _0810DEAC
.align 2, 0
_0810DE74: .4byte 0x0000021a
_0810DE78:
movs r2, 0xE4
lsls r2, 4
b _0810DEAC
_0810DE7E:
subs r1, r5, 0x1
adds r0, r4, 0
bl MapGridGetMetatileIdAt
movs r1, 0x90
lsls r1, 2
cmp r0, r1
bne _0810DE98
ldr r2, _0810DE94 @ =0x00000e48
b _0810DEAC
.align 2, 0
_0810DE94: .4byte 0x00000e48
_0810DE98:
ldr r2, _0810DE9C @ =0x00000e49
b _0810DEAC
.align 2, 0
_0810DE9C: .4byte 0x00000e49
_0810DEA0:
ldr r2, _0810DEA4 @ =0x00000e41
b _0810DEAC
.align 2, 0
_0810DEA4: .4byte 0x00000e41
_0810DEA8:
movs r2, 0xE5
lsls r2, 4
_0810DEAC:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
b _0810DEC0
_0810DEB6:
ldr r2, _0810DED8 @ =0x00000251
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
_0810DEC0:
adds r4, 0x1
cmp r4, 0xF
bgt _0810DEC8
b _0810DCD4
_0810DEC8:
adds r5, r6, 0
cmp r5, 0x17
bgt _0810DED0
b _0810DCD0
_0810DED0:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810DED8: .4byte 0x00000251
thumb_func_end sub_810DCCC
thumb_func_start sub_810DEDC
sub_810DEDC: @ 810DEDC
push {r4-r6,lr}
ldr r4, _0810DF18 @ =gUnknown_083F8364
movs r5, 0x2
_0810DEE2:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
ldr r2, _0810DF1C @ =0x00000206
bl MapGridSetMetatileIdAt
adds r4, 0x4
subs r5, 0x1
cmp r5, 0
bge _0810DEE2
movs r5, 0xC
_0810DEF6:
movs r4, 0x7
adds r6, r5, 0x1
_0810DEFA:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridGetMetatileIdAt
ldr r1, _0810DF20 @ =0xfffffde0
adds r0, r1
cmp r0, 0x30
bls _0810DF0C
b _0810E056
_0810DF0C:
lsls r0, 2
ldr r1, _0810DF24 @ =_0810DF28
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810DF18: .4byte gUnknown_083F8364
_0810DF1C: .4byte 0x00000206
_0810DF20: .4byte 0xfffffde0
_0810DF24: .4byte _0810DF28
.align 2, 0
_0810DF28:
.4byte _0810DFEC
.4byte _0810DFF2
.4byte _0810E00C
.4byte _0810E014
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810DFFC
.4byte _0810E002
.4byte _0810E01C
.4byte _0810E024
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E02C
.4byte _0810E034
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E03C
.4byte _0810E03C
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E056
.4byte _0810E04C
_0810DFEC:
movs r2, 0x8C
lsls r2, 2
b _0810E03E
_0810DFF2:
ldr r2, _0810DFF8 @ =0x00000231
b _0810E03E
.align 2, 0
_0810DFF8: .4byte 0x00000231
_0810DFFC:
movs r2, 0x8E
lsls r2, 2
b _0810E03E
_0810E002:
ldr r2, _0810E008 @ =0x00000239
b _0810E03E
.align 2, 0
_0810E008: .4byte 0x00000239
_0810E00C:
ldr r2, _0810E010 @ =0x00000232
b _0810E03E
.align 2, 0
_0810E010: .4byte 0x00000232
_0810E014:
ldr r2, _0810E018 @ =0x00000233
b _0810E03E
.align 2, 0
_0810E018: .4byte 0x00000233
_0810E01C:
ldr r2, _0810E020 @ =0x0000023a
b _0810E03E
.align 2, 0
_0810E020: .4byte 0x0000023a
_0810E024:
ldr r2, _0810E028 @ =0x0000023b
b _0810E03E
.align 2, 0
_0810E028: .4byte 0x0000023b
_0810E02C:
ldr r2, _0810E030 @ =0x00000e42
b _0810E03E
.align 2, 0
_0810E030: .4byte 0x00000e42
_0810E034:
ldr r2, _0810E038 @ =0x00000e43
b _0810E03E
.align 2, 0
_0810E038: .4byte 0x00000e43
_0810E03C:
ldr r2, _0810E048 @ =0x0000021a
_0810E03E:
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
b _0810E056
.align 2, 0
_0810E048: .4byte 0x0000021a
_0810E04C:
ldr r2, _0810E06C @ =0x00000251
adds r0, r4, 0
adds r1, r5, 0
bl MapGridSetMetatileIdAt
_0810E056:
adds r4, 0x1
cmp r4, 0xF
bgt _0810E05E
b _0810DEFA
_0810E05E:
adds r5, r6, 0
cmp r5, 0x17
bgt _0810E066
b _0810DEF6
_0810E066:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E06C: .4byte 0x00000251
thumb_func_end sub_810DEDC
thumb_func_start sub_810E070
sub_810E070: @ 810E070
push {lr}
ldr r0, _0810E090 @ =gUnknown_02039258
movs r1, 0
strb r1, [r0]
ldr r0, _0810E094 @ =gUnknown_02039259
strb r1, [r0]
movs r0, 0x2C
bl PlaySE
ldr r0, _0810E098 @ =sub_810E09C
movs r1, 0x8
bl CreateTask
pop {r0}
bx r0
.align 2, 0
_0810E090: .4byte gUnknown_02039258
_0810E094: .4byte gUnknown_02039259
_0810E098: .4byte sub_810E09C
thumb_func_end sub_810E070
thumb_func_start sub_810E09C
sub_810E09C: @ 810E09C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0810E0E4 @ =gUnknown_083F8370
ldr r5, _0810E0E8 @ =gUnknown_02039259
ldrb r1, [r5]
adds r0, r1, r0
ldr r4, _0810E0EC @ =gUnknown_02039258
ldrb r2, [r4]
ldrb r0, [r0]
cmp r0, r2
bne _0810E0F8
ldr r0, _0810E0F0 @ =gUnknown_0202E8CC
ldrb r0, [r0]
ldr r2, _0810E0F4 @ =gUnknown_083F8376
lsls r1, 1
adds r1, r2
ldrh r1, [r1]
bl sub_810E104
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 _0810E0FC
adds r0, r6, 0
bl DestroyTask
bl EnableBothScriptContexts
b _0810E0FC
.align 2, 0
_0810E0E4: .4byte gUnknown_083F8370
_0810E0E8: .4byte gUnknown_02039259
_0810E0EC: .4byte gUnknown_02039258
_0810E0F0: .4byte gUnknown_0202E8CC
_0810E0F4: .4byte gUnknown_083F8376
_0810E0F8:
adds r0, r2, 0x1
strb r0, [r4]
_0810E0FC:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_810E09C
thumb_func_start sub_810E104
sub_810E104: @ 810E104
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 _0810E1CC
lsls r0, 2
ldr r1, _0810E128 @ =_0810E12C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810E128: .4byte _0810E12C
.align 2, 0
_0810E12C:
.4byte _0810E14C
.4byte _0810E15E
.4byte _0810E170
.4byte _0810E182
.4byte _0810E190
.4byte _0810E1A6
.4byte _0810E1B2
.4byte _0810E1C0
_0810E14C:
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 _0810E1A0
_0810E15E:
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 _0810E1A0
_0810E170:
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 _0810E1A0
_0810E182:
movs r7, 0x1
mov r1, sp
movs r0, 0x7
strh r0, [r1]
add r1, sp, 0x8
movs r0, 0x27
b _0810E1CA
_0810E190:
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
_0810E1A0:
strh r0, [r1]
strh r0, [r1, 0x2]
b _0810E1CC
_0810E1A6:
movs r7, 0x1
mov r0, sp
strh r7, [r0]
add r1, sp, 0x8
movs r0, 0x41
b _0810E1CA
_0810E1B2:
movs r7, 0x1
mov r1, sp
movs r0, 0x7
strh r0, [r1]
add r1, sp, 0x8
movs r0, 0xD
b _0810E1CA
_0810E1C0:
movs r7, 0x1
mov r0, sp
strh r7, [r0]
add r1, sp, 0x8
movs r0, 0x1A
_0810E1CA:
strh r0, [r1]
_0810E1CC:
movs r6, 0
cmp r6, r7
bcs _0810E21E
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
_0810E1EA:
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 _0810E1EA
_0810E21E:
bl DrawWholeMapView
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810E104
thumb_func_start sub_810E230
sub_810E230: @ 810E230
push {lr}
ldr r0, _0810E244 @ =gUnknown_0202E8CC
ldrb r0, [r0]
ldr r1, _0810E248 @ =gUnknown_083F8376
ldrh r1, [r1, 0x8]
bl sub_810E104
pop {r0}
bx r0
.align 2, 0
_0810E244: .4byte gUnknown_0202E8CC
_0810E248: .4byte gUnknown_083F8376
thumb_func_end sub_810E230
thumb_func_start ShowFieldMessageStringVar4
ShowFieldMessageStringVar4: @ 810E24C
push {lr}
ldr r0, _0810E258 @ =gStringVar4
bl ShowFieldMessage
pop {r0}
bx r0
.align 2, 0
_0810E258: .4byte gStringVar4
thumb_func_end ShowFieldMessageStringVar4
thumb_func_start StorePlayerCoordsInVars
StorePlayerCoordsInVars: @ 810E25C
ldr r1, _0810E26C @ =gUnknown_0202E8CC
ldr r2, _0810E270 @ =gSaveBlock1
ldrh r0, [r2]
strh r0, [r1]
ldr r1, _0810E274 @ =gUnknown_0202E8CE
ldrh r0, [r2, 0x2]
strh r0, [r1]
bx lr
.align 2, 0
_0810E26C: .4byte gUnknown_0202E8CC
_0810E270: .4byte gSaveBlock1
_0810E274: .4byte gUnknown_0202E8CE
thumb_func_end StorePlayerCoordsInVars
thumb_func_start GetPlayerTrainerIdOnesDigit
GetPlayerTrainerIdOnesDigit: @ 810E278
push {lr}
ldr r0, _0810E294 @ =gSaveBlock2
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
.align 2, 0
_0810E294: .4byte gSaveBlock2
thumb_func_end GetPlayerTrainerIdOnesDigit
thumb_func_start GetPlayerBigGuyGirlString
GetPlayerBigGuyGirlString: @ 810E298
push {lr}
ldr r0, _0810E2AC @ =gSaveBlock2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0810E2B8
ldr r0, _0810E2B0 @ =gStringVar1
ldr r1, _0810E2B4 @ =gOtherText_BigGuy
bl StringCopy
b _0810E2C0
.align 2, 0
_0810E2AC: .4byte gSaveBlock2
_0810E2B0: .4byte gStringVar1
_0810E2B4: .4byte gOtherText_BigGuy
_0810E2B8:
ldr r0, _0810E2C4 @ =gStringVar1
ldr r1, _0810E2C8 @ =gOtherText_BigGirl
bl StringCopy
_0810E2C0:
pop {r0}
bx r0
.align 2, 0
_0810E2C4: .4byte gStringVar1
_0810E2C8: .4byte gOtherText_BigGirl
thumb_func_end GetPlayerBigGuyGirlString
thumb_func_start GetRivalSonDaughterString
GetRivalSonDaughterString: @ 810E2CC
push {lr}
ldr r0, _0810E2E0 @ =gSaveBlock2
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0810E2EC
ldr r0, _0810E2E4 @ =gStringVar1
ldr r1, _0810E2E8 @ =gOtherText_Daughter
bl StringCopy
b _0810E2F4
.align 2, 0
_0810E2E0: .4byte gSaveBlock2
_0810E2E4: .4byte gStringVar1
_0810E2E8: .4byte gOtherText_Daughter
_0810E2EC:
ldr r0, _0810E2F8 @ =gStringVar1
ldr r1, _0810E2FC @ =gOtherText_Son
bl StringCopy
_0810E2F4:
pop {r0}
bx r0
.align 2, 0
_0810E2F8: .4byte gStringVar1
_0810E2FC: .4byte gOtherText_Son
thumb_func_end GetRivalSonDaughterString
thumb_func_start sub_810E300
sub_810E300: @ 810E300
ldr r0, _0810E308 @ =gUnknown_02024D26
ldrb r0, [r0]
bx lr
.align 2, 0
_0810E308: .4byte gUnknown_02024D26
thumb_func_end sub_810E300
thumb_func_start CableCarWarp
CableCarWarp: @ 810E30C
push {lr}
sub sp, 0x4
ldr r0, _0810E32C @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r0, 0
beq _0810E330
movs r2, 0x1
negs r2, r2
movs r0, 0x4
str r0, [sp]
movs r0, 0x13
movs r1, 0
movs r3, 0x6
bl warp1_set
b _0810E342
.align 2, 0
_0810E32C: .4byte gUnknown_0202E8CC
_0810E330:
movs r2, 0x1
negs r2, r2
movs r0, 0x4
str r0, [sp]
movs r0, 0x13
movs r1, 0x1
movs r3, 0x6
bl warp1_set
_0810E342:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end CableCarWarp
thumb_func_start SetFlagInVar
SetFlagInVar: @ 810E348
push {lr}
ldr r0, _0810E358 @ =gUnknown_0202E8CC
ldrh r0, [r0]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810E358: .4byte gUnknown_0202E8CC
thumb_func_end SetFlagInVar
thumb_func_start GetWeekCount
GetWeekCount: @ 810E35C
push {lr}
ldr r0, _0810E37C @ =gLocalTime
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0x7
bl __divsi3
lsls r0, 16
lsrs r0, 16
ldr r1, _0810E380 @ =0x0000270f
cmp r0, r1
bls _0810E376
adds r0, r1, 0
_0810E376:
pop {r1}
bx r1
.align 2, 0
_0810E37C: .4byte gLocalTime
_0810E380: .4byte 0x0000270f
thumb_func_end GetWeekCount
thumb_func_start GetLeadMonFriendshipScore
GetLeadMonFriendshipScore: @ 810E384
push {r4,lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r1, r0
ldr r0, _0810E3A8 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0xFF
bne _0810E3AC
movs r0, 0x6
b _0810E3FE
.align 2, 0
_0810E3A8: .4byte gPlayerParty
_0810E3AC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0xC7
bls _0810E3BC
movs r0, 0x5
b _0810E3FE
_0810E3BC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x95
bls _0810E3CC
movs r0, 0x4
b _0810E3FE
_0810E3CC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x63
bls _0810E3DC
movs r0, 0x3
b _0810E3FE
_0810E3DC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0x31
bls _0810E3EC
movs r0, 0x2
b _0810E3FE
_0810E3EC:
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
cmp r0, 0
bne _0810E3FC
movs r0, 0
b _0810E3FE
_0810E3FC:
movs r0, 0x1
_0810E3FE:
pop {r4}
pop {r1}
bx r1
thumb_func_end GetLeadMonFriendshipScore
thumb_func_start CB2_FieldShowRegionMap
CB2_FieldShowRegionMap: @ 810E404
push {lr}
ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl FieldInitRegionMap
pop {r0}
bx r0
.align 2, 0
_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end CB2_FieldShowRegionMap
thumb_func_start FieldShowRegionMap
FieldShowRegionMap: @ 810E414
push {lr}
ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0810E420: .4byte CB2_FieldShowRegionMap
thumb_func_end FieldShowRegionMap
thumb_func_start DoPCTurnOnEffect
DoPCTurnOnEffect: @ 810E424
push {r4,lr}
ldr r4, _0810E460 @ =Task_PCTurnOnEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810E458
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810E464 @ =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]
_0810E458:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E460: .4byte Task_PCTurnOnEffect
_0810E464: .4byte gTasks
thumb_func_end DoPCTurnOnEffect
thumb_func_start Task_PCTurnOnEffect
Task_PCTurnOnEffect: @ 810E468
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0810E48C @ =gTasks
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810E486
adds r0, r1, 0
bl PCTurnOffEffect_0
_0810E486:
pop {r0}
bx r0
.align 2, 0
_0810E48C: .4byte gTasks
thumb_func_end Task_PCTurnOnEffect
thumb_func_start PCTurnOffEffect_0
PCTurnOffEffect_0: @ 810E490
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 _0810E4FC
strh r5, [r4, 0xE]
bl player_get_direction_lower_nybble
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0x3
beq _0810E4C4
cmp r0, 0x3
bgt _0810E4BA
cmp r0, 0x2
beq _0810E4C0
b _0810E4CC
_0810E4BA:
cmp r1, 0x4
beq _0810E4C8
b _0810E4CC
_0810E4C0:
movs r6, 0
b _0810E4CA
_0810E4C4:
movs r6, 0xFF
b _0810E4CA
_0810E4C8:
movs r6, 0x1
_0810E4CA:
movs r5, 0xFF
_0810E4CC:
movs r1, 0x10
ldrsh r0, [r4, r1]
lsls r1, r6, 24
asrs r1, 24
lsls r2, r5, 24
asrs r2, 24
bl PCTurnOffEffect_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 _0810E4FC
ldrb r0, [r4, 0xA]
bl DestroyTask
_0810E4FC:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end PCTurnOffEffect_0
thumb_func_start PCTurnOffEffect_1
PCTurnOffEffect_1: @ 810E508
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 _0810E544
ldr r0, _0810E528 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r0, 0
bne _0810E52C
movs r3, 0x4
b _0810E566
.align 2, 0
_0810E528: .4byte gUnknown_0202E8CC
_0810E52C:
cmp r0, 0x1
bne _0810E538
ldr r3, _0810E534 @ =0x0000025a
b _0810E566
.align 2, 0
_0810E534: .4byte 0x0000025a
_0810E538:
cmp r0, 0x2
bne _0810E566
ldr r3, _0810E540 @ =0x00000259
b _0810E566
.align 2, 0
_0810E540: .4byte 0x00000259
_0810E544:
ldr r0, _0810E550 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r0, 0
bne _0810E554
movs r3, 0x5
b _0810E566
.align 2, 0
_0810E550: .4byte gUnknown_0202E8CC
_0810E554:
cmp r0, 0x1
bne _0810E560
ldr r3, _0810E55C @ =0x0000027f
b _0810E566
.align 2, 0
_0810E55C: .4byte 0x0000027f
_0810E560:
cmp r0, 0x2
bne _0810E566
ldr r3, _0810E594 @ =0x0000027e
_0810E566:
ldr r2, _0810E598 @ =gSaveBlock1
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
.align 2, 0
_0810E594: .4byte 0x0000027e
_0810E598: .4byte gSaveBlock1
thumb_func_end PCTurnOffEffect_1
thumb_func_start DoPCTurnOffEffect
DoPCTurnOffEffect: @ 810E59C
push {lr}
bl PCTurnOffEffect
pop {r0}
bx r0
thumb_func_end DoPCTurnOffEffect
thumb_func_start PCTurnOffEffect
PCTurnOffEffect: @ 810E5A8
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 _0810E5D2
cmp r0, 0x3
bgt _0810E5C8
cmp r0, 0x2
beq _0810E5CE
b _0810E5DA
_0810E5C8:
cmp r1, 0x4
beq _0810E5D6
b _0810E5DA
_0810E5CE:
movs r6, 0
b _0810E5D8
_0810E5D2:
movs r6, 0xFF
b _0810E5D8
_0810E5D6:
movs r6, 0x1
_0810E5D8:
movs r5, 0xFF
_0810E5DA:
ldr r0, _0810E5E8 @ =gUnknown_0202E8CC
ldrh r0, [r0]
cmp r0, 0
bne _0810E5EC
movs r4, 0x4
b _0810E5FE
.align 2, 0
_0810E5E8: .4byte gUnknown_0202E8CC
_0810E5EC:
cmp r0, 0x1
bne _0810E5F8
ldr r4, _0810E5F4 @ =0x0000025a
b _0810E5FE
.align 2, 0
_0810E5F4: .4byte 0x0000025a
_0810E5F8:
cmp r0, 0x2
bne _0810E5FE
ldr r4, _0810E630 @ =0x00000259
_0810E5FE:
ldr r2, _0810E634 @ =gSaveBlock1
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
.align 2, 0
_0810E630: .4byte 0x00000259
_0810E634: .4byte gSaveBlock1
thumb_func_end PCTurnOffEffect
thumb_func_start DoLotteryCornerComputerEffect
DoLotteryCornerComputerEffect: @ 810E638
push {r4,lr}
ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810E66C
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810E678 @ =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]
_0810E66C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E674: .4byte Task_LotteryCornerComputerEffect
_0810E678: .4byte gTasks
thumb_func_end DoLotteryCornerComputerEffect
thumb_func_start Task_LotteryCornerComputerEffect
Task_LotteryCornerComputerEffect: @ 810E67C
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0810E6A0 @ =gTasks
adds r1, r0
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810E69A
adds r0, r1, 0
bl LotteryCornerComputerEffect
_0810E69A:
pop {r0}
bx r0
.align 2, 0
_0810E6A0: .4byte gTasks
thumb_func_end Task_LotteryCornerComputerEffect
thumb_func_start LotteryCornerComputerEffect
LotteryCornerComputerEffect: @ 810E6A4
push {r4,lr}
adds r4, r0, 0
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0x6
bne _0810E712
movs r0, 0
strh r0, [r4, 0xE]
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0810E6DC
ldr r2, _0810E6D4 @ =0x00000e9d
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810E6D8 @ =0x00000ea5
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
b _0810E6F2
.align 2, 0
_0810E6D4: .4byte 0x00000e9d
_0810E6D8: .4byte 0x00000ea5
_0810E6DC:
ldr r2, _0810E720 @ =0x00000e58
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
movs r2, 0xE6
lsls r2, 4
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
_0810E6F2:
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 _0810E712
ldrb r0, [r4, 0xA]
bl DestroyTask
_0810E712:
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810E720: .4byte 0x00000e58
thumb_func_end LotteryCornerComputerEffect
thumb_func_start EndLotteryCornerComputerEffect
EndLotteryCornerComputerEffect: @ 810E724
push {lr}
ldr r2, _0810E744 @ =0x00000e9d
movs r0, 0x12
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810E748 @ =0x00000ea5
movs r0, 0x12
movs r1, 0x9
bl MapGridSetMetatileIdAt
bl DrawWholeMapView
pop {r0}
bx r0
.align 2, 0
_0810E744: .4byte 0x00000e9d
_0810E748: .4byte 0x00000ea5
thumb_func_end EndLotteryCornerComputerEffect
thumb_func_start SetDepartmentStoreFloorVar
SetDepartmentStoreFloorVar: @ 810E74C
push {lr}
ldr r0, _0810E768 @ =gSaveBlock1
ldrb r0, [r0, 0x15]
subs r0, 0x11
lsls r0, 24
asrs r0, 24
cmp r0, 0x5
bhi _0810E79C
lsls r0, 2
ldr r1, _0810E76C @ =_0810E770
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810E768: .4byte gSaveBlock1
_0810E76C: .4byte _0810E770
.align 2, 0
_0810E770:
.4byte _0810E79C
.4byte _0810E788
.4byte _0810E78C
.4byte _0810E790
.4byte _0810E794
.4byte _0810E798
_0810E788:
movs r1, 0x1
b _0810E79E
_0810E78C:
movs r1, 0x2
b _0810E79E
_0810E790:
movs r1, 0x3
b _0810E79E
_0810E794:
movs r1, 0x4
b _0810E79E
_0810E798:
movs r1, 0xF
b _0810E79E
_0810E79C:
movs r1, 0
_0810E79E:
ldr r0, _0810E7A8 @ =0x00004043
bl VarSet
pop {r0}
bx r0
.align 2, 0
_0810E7A8: .4byte 0x00004043
thumb_func_end SetDepartmentStoreFloorVar
thumb_func_start ScriptAddElevatorMenuItem
ScriptAddElevatorMenuItem: @ 810E7AC
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
mov r12, r2
lsls r3, 24
lsrs r3, 24
mov r8, r3
ldr r0, _0810E81C @ =gUnknown_0202E8CC
ldrh r1, [r0]
adds r2, r0, 0
ldr r3, _0810E820 @ =gUnknown_03000760
cmp r1, 0
bne _0810E7E8
movs r1, 0
adds r5, r3, 0
movs r4, 0x10
_0810E7D8:
lsls r0, r1, 2
adds r0, r5
strb r4, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x13
bls _0810E7D8
_0810E7E8:
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
strb r6, [r0]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
strb r7, [r0, 0x1]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
mov r1, r12
strb r1, [r0, 0x2]
ldrh r0, [r2]
lsls r0, 2
adds r0, r3
mov r1, r8
strb r1, [r0, 0x3]
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0810E81C: .4byte gUnknown_0202E8CC
_0810E820: .4byte gUnknown_03000760
thumb_func_end ScriptAddElevatorMenuItem
thumb_func_start ScriptShowElevatorMenu
ScriptShowElevatorMenu: @ 810E824
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810E868 @ =gUnknown_0203925A
strb r4, [r5]
ldr r0, _0810E86C @ =gUnknown_0203925B
strb r4, [r0]
movs r0, 0x10
movs r1, 0
movs r2, 0
movs r3, 0
bl ScriptAddElevatorMenuItem
ldr r2, _0810E870 @ =gUnknown_03000760
ldrb r0, [r2]
cmp r0, 0x10
beq _0810E85C
adds r1, r5, 0
_0810E846:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x10
bne _0810E846
_0810E85C:
bl sub_810E874
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810E868: .4byte gUnknown_0203925A
_0810E86C: .4byte gUnknown_0203925B
_0810E870: .4byte gUnknown_03000760
thumb_func_end ScriptShowElevatorMenu
thumb_func_start sub_810E874
sub_810E874: @ 810E874
push {r4-r6,lr}
sub sp, 0x8
bl ScriptContext2_Enable
ldr r4, _0810E8B8 @ =gUnknown_0203925A
ldrb r0, [r4]
cmp r0, 0x5
bls _0810E8C0
movs r0, 0
movs r1, 0
movs r2, 0x8
movs r3, 0xB
bl MenuDrawTextWindow
movs r4, 0
str r4, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
movs r3, 0x5
bl InitMenu
ldr r0, _0810E8BC @ =gUnknown_0203925C
strb r4, [r0]
bl sub_80F944C
bl LoadScrollIndicatorPalette
bl sub_810ECD4
b _0810E8E8
.align 2, 0
_0810E8B8: .4byte gUnknown_0203925A
_0810E8BC: .4byte gUnknown_0203925C
_0810E8C0:
ldrb r3, [r4]
lsls r3, 1
adds r3, 0x1
lsls r3, 24
lsrs r3, 24
movs r0, 0
movs r1, 0
movs r2, 0x8
bl MenuDrawTextWindow
ldrb r3, [r4]
movs r0, 0
str r0, [sp]
movs r0, 0x7
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl InitMenu
_0810E8E8:
movs r4, 0
ldr r1, _0810E938 @ =gUnknown_03000760
ldrb r0, [r1]
cmp r0, 0x10
beq _0810E924
ldr r6, _0810E93C @ =gUnknown_083F8380
adds r5, r1, 0
_0810E8F6:
lsls r0, r4, 2
adds r0, r5
ldrb r0, [r0]
lsls r0, 2
adds r0, r6
ldr r0, [r0]
lsls r2, r4, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bhi _0810E924
lsls r0, r4, 2
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x10
bne _0810E8F6
_0810E924:
bl sub_810E944
ldr r0, _0810E940 @ =sub_810E984
movs r1, 0x8
bl CreateTask
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810E938: .4byte gUnknown_03000760
_0810E93C: .4byte gUnknown_083F8380
_0810E940: .4byte sub_810E984
thumb_func_end sub_810E874
thumb_func_start sub_810E944
sub_810E944: @ 810E944
push {lr}
movs r0, 0x14
movs r1, 0
movs r2, 0x1D
movs r3, 0x5
bl MenuDrawTextWindow
ldr r0, _0810E978 @ =gOtherText_NowOn
movs r1, 0x15
movs r2, 0x1
movs r3, 0x40
bl sub_8072BD8
ldr r1, _0810E97C @ =gUnknown_083F8380
ldr r0, _0810E980 @ =gUnknown_0202E8CE
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x15
movs r2, 0x3
movs r3, 0x40
bl sub_8072BD8
pop {r0}
bx r0
.align 2, 0
_0810E978: .4byte gOtherText_NowOn
_0810E97C: .4byte gUnknown_083F8380
_0810E980: .4byte gUnknown_0202E8CE
thumb_func_end sub_810E944
thumb_func_start sub_810E984
sub_810E984: @ 810E984
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _0810EA44 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x40
bne _0810E9B8
ldr r1, _0810EA48 @ =gUnknown_0203925B
ldrb r0, [r1]
cmp r0, 0
beq _0810E9B8
subs r0, 0x1
strb r0, [r1]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
negs r0, r0
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x40
bl sub_810EAC8
_0810E9B8:
ldr r0, _0810EA44 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x80
bne _0810E9E8
ldr r2, _0810EA48 @ =gUnknown_0203925B
ldrb r1, [r2]
ldr r0, _0810EA4C @ =gUnknown_0203925A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _0810E9E8
adds r0, r1, 0x1
strb r0, [r2]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x80
bl sub_810EAC8
_0810E9E8:
ldr r0, _0810EA44 @ =gMain
ldrh r2, [r0, 0x2E]
movs r5, 0x1
adds r1, r5, 0
ands r1, r2
cmp r1, 0
beq _0810EA94
ldr r1, _0810EA50 @ =gUnknown_03000760
ldr r4, _0810EA48 @ =gUnknown_0203925B
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
movs r1, 0x1
ldrsb r1, [r0, r1]
movs r2, 0x2
ldrsb r2, [r0, r2]
movs r3, 0x1
negs r3, r3
movs r0, 0x2
str r0, [sp]
str r5, [sp, 0x4]
movs r0, 0
bl saved_warp2_set_2
ldr r1, _0810EA54 @ =gUnknown_0202E8CE
ldrh r0, [r1]
ldrb r2, [r4]
cmp r0, r2
bne _0810EA5C
ldr r1, _0810EA58 @ =gScriptResult
movs r0, 0
strh r0, [r1]
movs r0, 0x5
bl PlaySE
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r6, 0
bl sub_810EC9C
b _0810EABC
.align 2, 0
_0810EA44: .4byte gMain
_0810EA48: .4byte gUnknown_0203925B
_0810EA4C: .4byte gUnknown_0203925A
_0810EA50: .4byte gUnknown_03000760
_0810EA54: .4byte gUnknown_0202E8CE
_0810EA58: .4byte gScriptResult
_0810EA5C:
ldr r0, _0810EA88 @ =gScriptResult
strh r5, [r0]
ldrb r0, [r4]
strh r0, [r1]
bl sub_810EBEC
ldr r0, _0810EA8C @ =gUnknown_0202E8DE
ldrb r0, [r0]
ldr r2, _0810EA90 @ =gSaveBlock1
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
movs r3, 0x1
bl FieldObjectTurnByLocalIdAndMap
bl sub_810EEDC
bl MenuZeroFillScreen
adds r0, r6, 0
bl DestroyTask
b _0810EABC
.align 2, 0
_0810EA88: .4byte gScriptResult
_0810EA8C: .4byte gUnknown_0202E8DE
_0810EA90: .4byte gSaveBlock1
_0810EA94:
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _0810EABC
ldr r0, _0810EAC4 @ =gScriptResult
strh r1, [r0]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r6, 0
bl sub_810EC9C
_0810EABC:
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810EAC4: .4byte gScriptResult
thumb_func_end sub_810E984
thumb_func_start sub_810EAC8
sub_810EAC8: @ 810EAC8
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
lsls r1, 24
lsrs r1, 24
adds r3, r1, 0
movs r7, 0
movs r4, 0
ldr r0, _0810EAEC @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r0, 0x4
bhi _0810EAF0
movs r0, 0
b _0810EB78
.align 2, 0
_0810EAEC: .4byte gUnknown_0203925A
_0810EAF0:
cmp r1, 0x40
bne _0810EB04
cmp r2, 0
bne _0810EB18
ldr r0, _0810EB00 @ =gUnknown_0203925B
ldrb r4, [r0]
movs r7, 0x1
b _0810EB1C
.align 2, 0
_0810EB00: .4byte gUnknown_0203925B
_0810EB04:
cmp r3, 0x80
bne _0810EB18
cmp r5, 0x4
bne _0810EB18
ldr r0, _0810EB84 @ =gUnknown_0203925B
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r7, 0x1
_0810EB18:
cmp r7, 0
beq _0810EB76
_0810EB1C:
adds r0, r4, 0
movs r1, 0x5
bl sub_810EB90
movs r0, 0x2
movs r1, 0x1
movs r2, 0x7
movs r3, 0xA
bl MenuFillWindowRectWithBlankTile
movs r5, 0
ldr r2, _0810EB88 @ =gUnknown_03000760
lsls r1, r4, 2
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x10
beq _0810EB76
ldr r0, _0810EB8C @ =gUnknown_083F8380
mov r8, r0
adds r6, r2, 0
_0810EB44:
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, 2
add r0, r8
ldr r0, [r0]
lsls r2, r5, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x4
bhi _0810EB76
lsls r1, r4, 2
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, 0x10
bne _0810EB44
_0810EB76:
adds r0, r7, 0
_0810EB78:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810EB84: .4byte gUnknown_0203925B
_0810EB88: .4byte gUnknown_03000760
_0810EB8C: .4byte gUnknown_083F8380
thumb_func_end sub_810EAC8
thumb_func_start sub_810EB90
sub_810EB90: @ 810EB90
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0
bne _0810EBB4
ldr r0, _0810EBB0 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x2
eors r1, r2
strb r1, [r0]
movs r0, 0
bl DestroyVerticalScrollIndicator
b _0810EBB8
.align 2, 0
_0810EBB0: .4byte gUnknown_0203925C
_0810EBB4:
bl sub_810ECB0
_0810EBB8:
adds r1, r4, r5
ldr r0, _0810EBC8 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r1, r0
bge _0810EBCC
bl sub_810ECD4
b _0810EBE0
.align 2, 0
_0810EBC8: .4byte gUnknown_0203925A
_0810EBCC:
cmp r1, r0
bne _0810EBE0
ldr r0, _0810EBE8 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810EBE0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EBE8: .4byte gUnknown_0203925C
thumb_func_end sub_810EB90
thumb_func_start sub_810EBEC
sub_810EBEC: @ 810EBEC
push {lr}
ldr r0, _0810EC2C @ =sub_810EC34
movs r1, 0x9
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810EC30 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
movs r2, 0x1
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
strh r2, [r1, 0x10]
movs r0, 0x3
strh r0, [r1, 0x12]
movs r0, 0
bl SetCameraPanningCallback
bl sub_810ECFC
movs r0, 0x59
bl PlaySE
pop {r0}
bx r0
.align 2, 0
_0810EC2C: .4byte sub_810EC34
_0810EC30: .4byte gTasks
thumb_func_end sub_810EBEC
thumb_func_start sub_810EC34
sub_810EC34: @ 810EC34
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810EC98 @ =gTasks
adds r4, r0, r1
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0810EC92
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810EC92
ldrh r0, [r4, 0x10]
negs r0, r0
strh r0, [r4, 0x10]
movs r2, 0x10
ldrsh r1, [r4, r2]
movs r0, 0
bl SetCameraPanning
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x17
bne _0810EC92
movs r0, 0x49
bl PlaySE
adds r0, r5, 0
bl sub_810EC9C
bl InstallCameraPanAheadCallback
_0810EC92:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EC98: .4byte gTasks
thumb_func_end sub_810EC34
thumb_func_start sub_810EC9C
sub_810EC9C: @ 810EC9C
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_810EC9C
thumb_func_start sub_810ECB0
sub_810ECB0: @ 810ECB0
push {lr}
ldr r2, _0810ECD0 @ =gUnknown_0203925C
ldrb r1, [r2]
lsrs r0, r1, 1
cmp r0, 0x1
beq _0810ECCC
movs r0, 0x2
orrs r0, r1
strb r0, [r2]
movs r0, 0
movs r1, 0x24
movs r2, 0x8
bl CreateVerticalScrollIndicators
_0810ECCC:
pop {r0}
bx r0
.align 2, 0
_0810ECD0: .4byte gUnknown_0203925C
thumb_func_end sub_810ECB0
thumb_func_start sub_810ECD4
sub_810ECD4: @ 810ECD4
push {lr}
ldr r2, _0810ECF8 @ =gUnknown_0203925C
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810ECF2
movs r0, 0x1
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
movs r1, 0x24
movs r2, 0x48
bl CreateVerticalScrollIndicators
_0810ECF2:
pop {r0}
bx r0
.align 2, 0
_0810ECF8: .4byte gUnknown_0203925C
thumb_func_end sub_810ECD4
thumb_func_start sub_810ECFC
sub_810ECFC: @ 810ECFC
push {r4,lr}
ldr r4, _0810ED38 @ =sub_810ED40
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0810ED30
adds r0, r4, 0
movs r1, 0x8
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810ED3C @ =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]
_0810ED30:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810ED38: .4byte sub_810ED40
_0810ED3C: .4byte gTasks
thumb_func_end sub_810ECFC
thumb_func_start sub_810ED40
sub_810ED40: @ 810ED40
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
ldr r1, _0810ED5C @ =gTasks
adds r0, r1
bl sub_810ED60
pop {r0}
bx r0
.align 2, 0
_0810ED5C: .4byte gTasks
thumb_func_end sub_810ED40
thumb_func_start sub_810ED60
sub_810ED60: @ 810ED60
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x8
beq _0810ED6E
b _0810EEB2
_0810ED6E:
movs r0, 0
strh r0, [r5, 0xE]
movs r1, 0x10
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0810EE14
ldr r2, _0810EDFC @ =0x00000e68
movs r0, 0x7
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r4, _0810EE00 @ =0x00000e69
movs r0, 0x8
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE04 @ =0x00000e6a
movs r0, 0xA
movs r1, 0x7
bl MapGridSetMetatileIdAt
movs r2, 0xE7
lsls r2, 4
movs r0, 0x7
movs r1, 0x8
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE08 @ =0x00000e72
movs r0, 0xA
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810EE0C @ =0x00000e78
movs r0, 0x7
movs r1, 0x9
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EE10 @ =0x00000e7a
movs r0, 0xA
movs r1, 0x9
bl MapGridSetMetatileIdAt
b _0810EE92
.align 2, 0
_0810EDFC: .4byte 0x00000e68
_0810EE00: .4byte 0x00000e69
_0810EE04: .4byte 0x00000e6a
_0810EE08: .4byte 0x00000e72
_0810EE0C: .4byte 0x00000e78
_0810EE10: .4byte 0x00000e7a
_0810EE14:
ldr r2, _0810EEC0 @ =0x00000e6b
movs r0, 0x7
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r4, _0810EEC4 @ =0x00000e6c
movs r0, 0x8
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x7
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EEC8 @ =0x00000e6d
movs r0, 0xA
movs r1, 0x7
bl MapGridSetMetatileIdAt
ldr r2, _0810EECC @ =0x00000e73
movs r0, 0x7
movs r1, 0x8
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x8
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EED0 @ =0x00000e75
movs r0, 0xA
movs r1, 0x8
bl MapGridSetMetatileIdAt
ldr r2, _0810EED4 @ =0x00000e7b
movs r0, 0x7
movs r1, 0x9
bl MapGridSetMetatileIdAt
adds r4, 0x8
movs r0, 0x8
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
movs r0, 0x9
movs r1, 0x9
adds r2, r4, 0
bl MapGridSetMetatileIdAt
ldr r2, _0810EED8 @ =0x00000e7d
movs r0, 0xA
movs r1, 0x9
bl MapGridSetMetatileIdAt
_0810EE92:
bl DrawWholeMapView
ldrh r0, [r5, 0x10]
movs r1, 0x1
eors r0, r1
strh r0, [r5, 0x10]
ldrh r0, [r5, 0xC]
adds r0, 0x1
strh r0, [r5, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x8
bne _0810EEB2
ldrb r0, [r5, 0xA]
bl DestroyTask
_0810EEB2:
ldrh r0, [r5, 0xE]
adds r0, 0x1
strh r0, [r5, 0xE]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810EEC0: .4byte 0x00000e6b
_0810EEC4: .4byte 0x00000e6c
_0810EEC8: .4byte 0x00000e6d
_0810EECC: .4byte 0x00000e73
_0810EED0: .4byte 0x00000e75
_0810EED4: .4byte 0x00000e7b
_0810EED8: .4byte 0x00000e7d
thumb_func_end sub_810ED60
thumb_func_start sub_810EEDC
sub_810EEDC: @ 810EEDC
push {r4,lr}
ldr r4, _0810EF08 @ =gUnknown_0203925C
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810EEF0
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810EEF0:
ldrb r0, [r4]
lsrs r0, 1
cmp r0, 0x1
bne _0810EEFE
movs r0, 0
bl DestroyVerticalScrollIndicator
_0810EEFE:
bl BuyMenuFreeMemory
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810EF08: .4byte gUnknown_0203925C
thumb_func_end sub_810EEDC
thumb_func_start SetTrickHouseEndRoomFlag
SetTrickHouseEndRoomFlag: @ 810EF0C
push {lr}
ldr r1, _0810EF1C @ =gUnknown_0202E8CC
ldr r0, _0810EF20 @ =0x00000259
strh r0, [r1]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810EF1C: .4byte gUnknown_0202E8CC
_0810EF20: .4byte 0x00000259
thumb_func_end SetTrickHouseEndRoomFlag
thumb_func_start ResetTrickHouseEndRoomFlag
ResetTrickHouseEndRoomFlag: @ 810EF24
push {lr}
ldr r1, _0810EF34 @ =gUnknown_0202E8CC
ldr r0, _0810EF38 @ =0x00000259
strh r0, [r1]
bl FlagReset
pop {r0}
bx r0
.align 2, 0
_0810EF34: .4byte gUnknown_0202E8CC
_0810EF38: .4byte 0x00000259
thumb_func_end ResetTrickHouseEndRoomFlag
thumb_func_start CheckLeadMonCool
CheckLeadMonCool: @ 810EF3C
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EF5C @ =gPlayerParty
adds r0, r1
movs r1, 0x16
bl GetMonData
cmp r0, 0xC7
bls _0810EF60
movs r0, 0x1
b _0810EF62
.align 2, 0
_0810EF5C: .4byte gPlayerParty
_0810EF60:
movs r0, 0
_0810EF62:
pop {r1}
bx r1
thumb_func_end CheckLeadMonCool
thumb_func_start CheckLeadMonBeauty
CheckLeadMonBeauty: @ 810EF68
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EF88 @ =gPlayerParty
adds r0, r1
movs r1, 0x17
bl GetMonData
cmp r0, 0xC7
bls _0810EF8C
movs r0, 0x1
b _0810EF8E
.align 2, 0
_0810EF88: .4byte gPlayerParty
_0810EF8C:
movs r0, 0
_0810EF8E:
pop {r1}
bx r1
thumb_func_end CheckLeadMonBeauty
thumb_func_start CheckLeadMonCute
CheckLeadMonCute: @ 810EF94
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EFB4 @ =gPlayerParty
adds r0, r1
movs r1, 0x18
bl GetMonData
cmp r0, 0xC7
bls _0810EFB8
movs r0, 0x1
b _0810EFBA
.align 2, 0
_0810EFB4: .4byte gPlayerParty
_0810EFB8:
movs r0, 0
_0810EFBA:
pop {r1}
bx r1
thumb_func_end CheckLeadMonCute
thumb_func_start CheckLeadMonSmart
CheckLeadMonSmart: @ 810EFC0
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810EFE0 @ =gPlayerParty
adds r0, r1
movs r1, 0x21
bl GetMonData
cmp r0, 0xC7
bls _0810EFE4
movs r0, 0x1
b _0810EFE6
.align 2, 0
_0810EFE0: .4byte gPlayerParty
_0810EFE4:
movs r0, 0
_0810EFE6:
pop {r1}
bx r1
thumb_func_end CheckLeadMonSmart
thumb_func_start CheckLeadMonTough
CheckLeadMonTough: @ 810EFEC
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F00C @ =gPlayerParty
adds r0, r1
movs r1, 0x2F
bl GetMonData
cmp r0, 0xC7
bls _0810F010
movs r0, 0x1
b _0810F012
.align 2, 0
_0810F00C: .4byte gPlayerParty
_0810F010:
movs r0, 0
_0810F012:
pop {r1}
bx r1
thumb_func_end CheckLeadMonTough
thumb_func_start IsGrassTypeInParty
IsGrassTypeInParty: @ 810F018
push {r4-r6,lr}
movs r5, 0
ldr r6, _0810F068 @ =gBaseStats
_0810F01E:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810F06C @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _0810F074
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
cmp r0, 0
bne _0810F074
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 _0810F060
ldrb r0, [r1, 0x7]
cmp r0, 0xC
bne _0810F074
_0810F060:
ldr r1, _0810F070 @ =gScriptResult
movs r0, 0x1
b _0810F082
.align 2, 0
_0810F068: .4byte gBaseStats
_0810F06C: .4byte gPlayerParty
_0810F070: .4byte gScriptResult
_0810F074:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _0810F01E
ldr r1, _0810F08C @ =gScriptResult
movs r0, 0
_0810F082:
strh r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0810F08C: .4byte gScriptResult
thumb_func_end IsGrassTypeInParty
thumb_func_start ShowGlassWorkshopMenu
ShowGlassWorkshopMenu: @ 810F090
push {r4,r5,lr}
sub sp, 0x8
bl ScriptContext2_Enable
movs r0, 0
movs r1, 0
movs r2, 0xA
movs r3, 0xB
bl MenuDrawTextWindow
movs r4, 0
str r4, [sp]
movs r0, 0x9
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
movs r2, 0x1
movs r3, 0x5
bl InitMenu
ldr r0, _0810F104 @ =gUnknown_0203925C
strb r4, [r0]
bl sub_80F944C
bl LoadScrollIndicatorPalette
bl sub_810F2B4
ldr r5, _0810F108 @ =gUnknown_083F83C0
_0810F0CA:
lsls r0, r4, 2
adds r0, r5
ldr r0, [r0]
lsls r2, r4, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
bls _0810F0CA
ldr r1, _0810F10C @ =gUnknown_0203925B
movs r0, 0
strb r0, [r1]
ldr r1, _0810F110 @ =gUnknown_0203925A
movs r0, 0x8
strb r0, [r1]
ldr r0, _0810F114 @ =sub_810F118
movs r1, 0x8
bl CreateTask
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F104: .4byte gUnknown_0203925C
_0810F108: .4byte gUnknown_083F83C0
_0810F10C: .4byte gUnknown_0203925B
_0810F110: .4byte gUnknown_0203925A
_0810F114: .4byte sub_810F118
thumb_func_end ShowGlassWorkshopMenu
thumb_func_start sub_810F118
sub_810F118: @ 810F118
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0810F1E4 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x40
bne _0810F14A
ldr r1, _0810F1E8 @ =gUnknown_0203925B
ldrb r0, [r1]
cmp r0, 0
beq _0810F14A
subs r0, 0x1
strb r0, [r1]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
negs r0, r0
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x40
bl sub_810F1F4
_0810F14A:
ldr r0, _0810F1E4 @ =gMain
ldrh r0, [r0, 0x2E]
cmp r0, 0x80
bne _0810F17A
ldr r2, _0810F1E8 @ =gUnknown_0203925B
ldrb r1, [r2]
ldr r0, _0810F1EC @ =gUnknown_0203925A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
beq _0810F17A
adds r0, r1, 0x1
strb r0, [r2]
bl GetMenuCursorPos
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
bl MoveMenuCursorNoWrap
adds r0, r4, 0
movs r1, 0x80
bl sub_810F1F4
_0810F17A:
ldr r4, _0810F1E4 @ =gMain
ldrh r1, [r4, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810F1AE
bl sub_8072DEC
ldr r0, _0810F1F0 @ =gScriptResult
ldr r1, _0810F1E8 @ =gUnknown_0203925B
ldrb r1, [r1]
strh r1, [r0]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r5, 0
bl sub_810EC9C
_0810F1AE:
ldrh r1, [r4, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810F1DE
bl sub_8072DEC
ldr r1, _0810F1F0 @ =gScriptResult
movs r0, 0x7F
strh r0, [r1]
movs r0, 0x5
bl PlaySE
bl sub_810EEDC
movs r0, 0
movs r1, 0
movs r2, 0x1D
movs r3, 0xC
bl MenuZeroFillWindowRect
adds r0, r5, 0
bl sub_810EC9C
_0810F1DE:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F1E4: .4byte gMain
_0810F1E8: .4byte gUnknown_0203925B
_0810F1EC: .4byte gUnknown_0203925A
_0810F1F0: .4byte gScriptResult
thumb_func_end sub_810F118
thumb_func_start sub_810F1F4
sub_810F1F4: @ 810F1F4
push {r4-r7,lr}
lsls r0, 24
lsrs r2, r0, 24
adds r5, r2, 0
lsls r1, 24
lsrs r1, 24
adds r3, r1, 0
movs r6, 0
movs r4, 0
ldr r0, _0810F214 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r0, 0x4
bhi _0810F218
movs r0, 0
b _0810F282
.align 2, 0
_0810F214: .4byte gUnknown_0203925A
_0810F218:
cmp r1, 0x40
bne _0810F22C
cmp r2, 0
bne _0810F240
ldr r0, _0810F228 @ =gUnknown_0203925B
ldrb r4, [r0]
movs r6, 0x1
b _0810F244
.align 2, 0
_0810F228: .4byte gUnknown_0203925B
_0810F22C:
cmp r3, 0x80
bne _0810F240
cmp r5, 0x4
bne _0810F240
ldr r0, _0810F288 @ =gUnknown_0203925B
ldrb r0, [r0]
subs r0, 0x4
lsls r0, 24
lsrs r4, r0, 24
movs r6, 0x1
_0810F240:
cmp r6, 0
beq _0810F280
_0810F244:
adds r0, r4, 0
movs r1, 0x5
bl GlassWorkshopUpdateScrollIndicators
movs r0, 0x2
movs r1, 0x1
movs r2, 0x9
movs r3, 0xA
bl MenuFillWindowRectWithBlankTile
movs r5, 0
ldr r7, _0810F28C @ =gUnknown_083F83C0
_0810F25C:
lsls r0, r4, 2
adds r0, r7
ldr r0, [r0]
lsls r2, r5, 1
adds r2, 0x1
lsls r2, 24
lsrs r2, 24
movs r1, 0x1
bl MenuPrint
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x4
bls _0810F25C
_0810F280:
adds r0, r6, 0
_0810F282:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810F288: .4byte gUnknown_0203925B
_0810F28C: .4byte gUnknown_083F83C0
thumb_func_end sub_810F1F4
thumb_func_start sub_810F290
sub_810F290: @ 810F290
push {lr}
ldr r2, _0810F2B0 @ =gUnknown_0203925C
ldrb r1, [r2]
lsrs r0, r1, 1
cmp r0, 0x1
beq _0810F2AC
movs r0, 0x2
orrs r0, r1
strb r0, [r2]
movs r0, 0
movs r1, 0x2C
movs r2, 0x8
bl CreateVerticalScrollIndicators
_0810F2AC:
pop {r0}
bx r0
.align 2, 0
_0810F2B0: .4byte gUnknown_0203925C
thumb_func_end sub_810F290
thumb_func_start sub_810F2B4
sub_810F2B4: @ 810F2B4
push {lr}
ldr r2, _0810F2D8 @ =gUnknown_0203925C
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0810F2D2
movs r0, 0x1
orrs r0, r1
strb r0, [r2]
movs r0, 0x1
movs r1, 0x2C
movs r2, 0x58
bl CreateVerticalScrollIndicators
_0810F2D2:
pop {r0}
bx r0
.align 2, 0
_0810F2D8: .4byte gUnknown_0203925C
thumb_func_end sub_810F2B4
thumb_func_start GlassWorkshopUpdateScrollIndicators
GlassWorkshopUpdateScrollIndicators: @ 810F2DC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0
bne _0810F300
ldr r0, _0810F2FC @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x2
eors r1, r2
strb r1, [r0]
movs r0, 0
bl DestroyVerticalScrollIndicator
b _0810F304
.align 2, 0
_0810F2FC: .4byte gUnknown_0203925C
_0810F300:
bl sub_810F290
_0810F304:
adds r1, r4, r5
ldr r0, _0810F314 @ =gUnknown_0203925A
ldrb r0, [r0]
cmp r1, r0
bge _0810F318
bl sub_810F2B4
b _0810F32C
.align 2, 0
_0810F314: .4byte gUnknown_0203925A
_0810F318:
cmp r1, r0
bne _0810F32C
ldr r0, _0810F334 @ =gUnknown_0203925C
ldrb r1, [r0]
movs r2, 0x1
eors r1, r2
strb r1, [r0]
movs r0, 0x1
bl DestroyVerticalScrollIndicator
_0810F32C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F334: .4byte gUnknown_0203925C
thumb_func_end GlassWorkshopUpdateScrollIndicators
thumb_func_start SpawnCameraDummy
SpawnCameraDummy: @ 810F338
push {lr}
sub sp, 0x8
ldr r0, _0810F380 @ =gSaveBlock1
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, _0810F384 @ =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
.align 2, 0
_0810F380: .4byte gSaveBlock1
_0810F384: .4byte gMapObjects
thumb_func_end SpawnCameraDummy
thumb_func_start RemoveCameraDummy
RemoveCameraDummy: @ 810F388
push {lr}
bl GetPlayerAvatarObjectId
lsls r0, 24
lsrs r0, 24
bl CameraObjectSetFollowedObjectId
ldr r0, _0810F3A8 @ =gSaveBlock1
ldrb r1, [r0, 0x5]
ldrb r2, [r0, 0x4]
movs r0, 0x7F
bl RemoveFieldObjectByLocalIdAndMap
pop {r0}
bx r0
.align 2, 0
_0810F3A8: .4byte gSaveBlock1
thumb_func_end RemoveCameraDummy
thumb_func_start GetPokeblockNameByMonNature
GetPokeblockNameByMonNature: @ 810F3AC
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F3D4 @ =gPlayerParty
adds r0, r1
bl GetNature
lsls r0, 24
lsrs r0, 24
ldr r1, _0810F3D8 @ =gStringVar1
bl sub_810CB68
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810F3D4: .4byte gPlayerParty
_0810F3D8: .4byte gStringVar1
thumb_func_end GetPokeblockNameByMonNature
thumb_func_start GetSecretBaseNearbyMapName
GetSecretBaseNearbyMapName: @ 810F3DC
push {r4,lr}
ldr r4, _0810F3FC @ =gStringVar1
ldr r0, _0810F400 @ =0x00004026
bl VarGet
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
movs r2, 0
bl sub_80FBFB4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810F3FC: .4byte gStringVar1
_0810F400: .4byte 0x00004026
thumb_func_end GetSecretBaseNearbyMapName
thumb_func_start sub_810F404
sub_810F404: @ 810F404
push {lr}
movs r0, 0x20
bl sub_8053108
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_810F404
thumb_func_start sub_810F414
sub_810F414: @ 810F414
push {lr}
ldr r0, _0810F420 @ =gStringVar1
bl sub_8135FF4
pop {r0}
bx r0
.align 2, 0
_0810F420: .4byte gStringVar1
thumb_func_end sub_810F414
thumb_func_start sub_810F424
sub_810F424: @ 810F424
push {r4,r5,lr}
ldr r2, _0810F458 @ =gSaveBlock1
ldr r1, _0810F45C @ =0x00002dd4
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 25
ldr r0, _0810F460 @ =0x00002dd6
adds r2, r0
lsrs r1, 25
ldrh r2, [r2]
adds r1, r2
ldr r2, _0810F464 @ =gUnknown_083F83E0
ldr r0, _0810F468 @ =gUnknown_0202E8CC
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 _0810F470
ldr r4, _0810F46C @ =gUnknown_083F83EC
b _0810F472
.align 2, 0
_0810F458: .4byte gSaveBlock1
_0810F45C: .4byte 0x00002dd4
_0810F460: .4byte 0x00002dd6
_0810F464: .4byte gUnknown_083F83E0
_0810F468: .4byte gUnknown_0202E8CC
_0810F46C: .4byte gUnknown_083F83EC
_0810F470:
ldr r4, _0810F484 @ =gUnknown_083F83F8
_0810F472:
adds r0, r5, 0
movs r1, 0xC
bl __umodsi3
adds r0, r4
ldrb r0, [r0]
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810F484: .4byte gUnknown_083F83F8
thumb_func_end sub_810F424
thumb_func_start sub_810F488
sub_810F488: @ 810F488
push {lr}
ldr r1, _0810F4A0 @ =gUnknown_0202E8CC
ldr r0, _0810F4A4 @ =0x00000277
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4A8
movs r0, 0x1
b _0810F4AA
.align 2, 0
_0810F4A0: .4byte gUnknown_0202E8CC
_0810F4A4: .4byte 0x00000277
_0810F4A8:
movs r0, 0
_0810F4AA:
pop {r1}
bx r1
thumb_func_end sub_810F488
thumb_func_start sub_810F4B0
sub_810F4B0: @ 810F4B0
push {lr}
ldr r1, _0810F4C8 @ =gUnknown_0202E8CC
movs r0, 0x9E
lsls r0, 2
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4CC
movs r0, 0x1
b _0810F4CE
.align 2, 0
_0810F4C8: .4byte gUnknown_0202E8CC
_0810F4CC:
movs r0, 0
_0810F4CE:
pop {r1}
bx r1
thumb_func_end sub_810F4B0
thumb_func_start sub_810F4D4
sub_810F4D4: @ 810F4D4
push {lr}
ldr r1, _0810F4EC @ =gUnknown_0202E8CC
ldr r0, _0810F4F0 @ =0x00000279
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F4F4
movs r0, 0x1
b _0810F4F6
.align 2, 0
_0810F4EC: .4byte gUnknown_0202E8CC
_0810F4F0: .4byte 0x00000279
_0810F4F4:
movs r0, 0
_0810F4F6:
pop {r1}
bx r1
thumb_func_end sub_810F4D4
thumb_func_start sub_810F4FC
sub_810F4FC: @ 810F4FC
push {lr}
ldr r1, _0810F514 @ =gUnknown_0202E8CC
ldr r0, _0810F518 @ =0x0000027a
strh r0, [r1]
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F51C
movs r0, 0x1
b _0810F51E
.align 2, 0
_0810F514: .4byte gUnknown_0202E8CC
_0810F518: .4byte 0x0000027a
_0810F51C:
movs r0, 0
_0810F51E:
pop {r1}
bx r1
thumb_func_end sub_810F4FC
thumb_func_start LeadMonHasEffortRibbon
LeadMonHasEffortRibbon: @ 810F524
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F548 @ =gPlayerParty
adds r0, r1
movs r1, 0x47
movs r2, 0
bl GetMonData
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810F548: .4byte gPlayerParty
thumb_func_end LeadMonHasEffortRibbon
thumb_func_start GivLeadMonEffortRibbon
GivLeadMonEffortRibbon: @ 810F54C
push {lr}
sub sp, 0x4
movs r0, 0x2A
bl sav12_xor_increment
ldr r0, _0810F580 @ =0x0000083b
bl FlagSet
movs r1, 0x1
mov r0, sp
strb r1, [r0]
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F584 @ =gPlayerParty
adds r0, r1
movs r1, 0x47
mov r2, sp
bl SetMonData
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0810F580: .4byte 0x0000083b
_0810F584: .4byte gPlayerParty
thumb_func_end GivLeadMonEffortRibbon
thumb_func_start GetLeadMonEVCount
GetLeadMonEVCount: @ 810F588
push {lr}
bl GetLeadMonIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r0, r1
ldr r1, _0810F5AC @ =gPlayerParty
adds r0, r1
bl GetMonEVCount
lsls r0, 16
ldr r1, _0810F5B0 @ =0x01fd0000
cmp r0, r1
bhi _0810F5B4
movs r0, 0
b _0810F5B6
.align 2, 0
_0810F5AC: .4byte gPlayerParty
_0810F5B0: .4byte 0x01fd0000
_0810F5B4:
movs r0, 0x1
_0810F5B6:
pop {r1}
bx r1
thumb_func_end GetLeadMonEVCount
thumb_func_start sub_810F5BC
sub_810F5BC: @ 810F5BC
push {lr}
movs r0, 0xC7
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _0810F610
ldr r0, _0810F5E8 @ =gSaveBlock1
ldrh r1, [r0, 0x4]
movs r0, 0x83
lsls r0, 3
cmp r1, r0
bne _0810F610
subs r0, 0x75
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F5F0
ldr r0, _0810F5EC @ =0x0000409a
movs r1, 0x4
b _0810F602
.align 2, 0
_0810F5E8: .4byte gSaveBlock1
_0810F5EC: .4byte 0x0000409a
_0810F5F0:
movs r0, 0xE9
lsls r0, 2
bl FlagGet
lsls r0, 24
cmp r0, 0
beq _0810F610
ldr r0, _0810F60C @ =0x0000409a
movs r1, 0x5
_0810F602:
bl VarSet
movs r0, 0x1
b _0810F612
.align 2, 0
_0810F60C: .4byte 0x0000409a
_0810F610:
movs r0, 0
_0810F612:
pop {r1}
bx r1
thumb_func_end sub_810F5BC
thumb_func_start sub_810F618
sub_810F618: @ 810F618
push {lr}
ldr r0, _0810F624 @ =0x0000085f
bl FlagSet
pop {r0}
bx r0
.align 2, 0
_0810F624: .4byte 0x0000085f
thumb_func_end sub_810F618
thumb_func_start PutZigzagoonInPlayerParty
PutZigzagoonInPlayerParty: @ 810F628
push {r4,r5,lr}
sub sp, 0x14
ldr r5, _0810F690 @ =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
.align 2, 0
_0810F690: .4byte gPlayerParty
thumb_func_end PutZigzagoonInPlayerParty
thumb_func_start IsStarterInParty
IsStarterInParty: @ 810F694
push {r4-r6,lr}
ldr r0, _0810F6D0 @ =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 _0810F6E2
_0810F6B6:
movs r0, 0x64
muls r0, r4
ldr r1, _0810F6D4 @ =gPlayerParty
adds r0, r1
movs r1, 0x41
movs r2, 0
bl GetMonData
cmp r0, r6
bne _0810F6D8
movs r0, 0x1
b _0810F6E4
.align 2, 0
_0810F6D0: .4byte 0x00004023
_0810F6D4: .4byte gPlayerParty
_0810F6D8:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0810F6B6
_0810F6E2:
movs r0, 0
_0810F6E4:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end IsStarterInParty
thumb_func_start CheckFreePokemonStorageSpace
CheckFreePokemonStorageSpace: @ 810F6EC
push {r4-r6,lr}
movs r5, 0
_0810F6F0:
movs r4, 0
lsls r1, r5, 2
adds r1, r5
lsls r0, r1, 4
subs r0, r1
lsls r6, r0, 5
_0810F6FC:
lsls r0, r4, 2
adds r0, r4
lsls r0, 4
ldr r1, _0810F718 @ =gUnknown_020300A4
adds r0, r1
adds r0, r6, r0
movs r1, 0xB
movs r2, 0
bl GetBoxMonData
cmp r0, 0
bne _0810F71C
movs r0, 0x1
b _0810F732
.align 2, 0
_0810F718: .4byte gUnknown_020300A4
_0810F71C:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x1D
bls _0810F6FC
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xD
bls _0810F6F0
movs r0, 0
_0810F732:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end CheckFreePokemonStorageSpace
thumb_func_start IsPokerusInParty
IsPokerusInParty: @ 810F738
push {lr}
ldr r0, _0810F74C @ =gPlayerParty
movs r1, 0x3F
bl CheckPartyPokerus
lsls r0, 24
cmp r0, 0
beq _0810F750
movs r0, 0x1
b _0810F752
.align 2, 0
_0810F74C: .4byte gPlayerParty
_0810F750:
movs r0, 0
_0810F752:
pop {r1}
bx r1
thumb_func_end IsPokerusInParty
thumb_func_start sub_810F758
sub_810F758: @ 810F758
push {lr}
ldr r0, _0810F798 @ =sub_810F7A8
movs r1, 0x9
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0810F79C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
ldr r0, _0810F7A0 @ =gUnknown_0202E8CE
ldrh r2, [r0]
movs r0, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
ldr r0, _0810F7A4 @ =gUnknown_0202E8CC
ldrh r0, [r0]
strh r0, [r1, 0x10]
movs r0, 0x5
strh r0, [r1, 0x12]
movs r0, 0
bl SetCameraPanningCallback
movs r0, 0xD6
bl PlaySE
pop {r0}
bx r0
.align 2, 0
_0810F798: .4byte sub_810F7A8
_0810F79C: .4byte gTasks
_0810F7A0: .4byte gUnknown_0202E8CE
_0810F7A4: .4byte gUnknown_0202E8CC
thumb_func_end sub_810F758
thumb_func_start sub_810F7A8
sub_810F7A8: @ 810F7A8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _0810F810 @ =gTasks
adds r4, r0, r1
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
movs r1, 0xA
ldrsh r0, [r4, r1]
movs r2, 0x12
ldrsh r1, [r4, r2]
bl __modsi3
cmp r0, 0
bne _0810F808
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0xE
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0810F808
ldrh r0, [r4, 0x8]
negs r0, r0
strh r0, [r4, 0x8]
ldrh r0, [r4, 0x10]
negs r0, r0
strh r0, [r4, 0x10]
movs r2, 0x8
ldrsh r0, [r4, r2]
movs r2, 0x10
ldrsh r1, [r4, r2]
bl SetCameraPanning
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0x8
bne _0810F808
adds r0, r5, 0
bl sub_810F814
bl InstallCameraPanAheadCallback
_0810F808:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810F810: .4byte gTasks
thumb_func_end sub_810F7A8
thumb_func_start sub_810F814
sub_810F814: @ 810F814
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
bl EnableBothScriptContexts
pop {r0}
bx r0
thumb_func_end sub_810F814
thumb_func_start sub_810F828
sub_810F828: @ 810F828
push {lr}
movs r0, 0xAE
lsls r0, 2
bl FlagGet
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_810F828
thumb_func_start SetRoute119Weather
SetRoute119Weather: @ 810F83C
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 _0810F858
movs r0, 0x14
bl SetSav1Weather
_0810F858:
pop {r0}
bx r0
thumb_func_end SetRoute119Weather
thumb_func_start SetRoute123Weather
SetRoute123Weather: @ 810F85C
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 _0810F878
movs r0, 0x15
bl SetSav1Weather
_0810F878:
pop {r0}
bx r0
thumb_func_end SetRoute123Weather
thumb_func_start GetLeadMonIndex
GetLeadMonIndex: @ 810F87C
push {r4-r6,lr}
bl CalculatePlayerPartyCount
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
cmp r5, r6
bcs _0810F8CA
_0810F88C:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0810F8BC @ =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 _0810F8C0
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
bl GetMonData
cmp r0, 0
beq _0810F8C0
adds r0, r5, 0
b _0810F8CC
.align 2, 0
_0810F8BC: .4byte gPlayerParty
_0810F8C0:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r6
bcc _0810F88C
_0810F8CA:
movs r0, 0
_0810F8CC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end GetLeadMonIndex
thumb_func_start ScriptGetPartyMonSpecies
ScriptGetPartyMonSpecies: @ 810F8D4
push {lr}
ldr r0, _0810F8F4 @ =gUnknown_0202E8CC
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0810F8F8 @ =gPlayerParty
adds r0, r1
movs r1, 0x41
movs r2, 0
bl GetMonData
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_0810F8F4: .4byte gUnknown_0202E8CC
_0810F8F8: .4byte gPlayerParty
thumb_func_end ScriptGetPartyMonSpecies
thumb_func_start sub_810F8FC
sub_810F8FC: @ 810F8FC
push {lr}
movs r0, 0x6
bl sub_805ADDC
pop {r0}
bx r0
thumb_func_end sub_810F8FC
thumb_func_start sub_810F908
sub_810F908: @ 810F908
push {r4,lr}
ldr r0, _0810F928 @ =0x000040c2
bl VarGet
lsls r0, 16
lsrs r0, 16
adds r3, r0, 0
ldr r2, _0810F92C @ =gLocalTime
movs r1, 0
ldrsh r0, [r2, r1]
subs r0, r3
cmp r0, 0x6
ble _0810F930
movs r0, 0
b _0810F948
.align 2, 0
_0810F928: .4byte 0x000040c2
_0810F92C: .4byte gLocalTime
_0810F930:
ldrh r1, [r2]
movs r4, 0
ldrsh r0, [r2, r4]
cmp r0, 0
blt _0810F946
subs r1, r3
movs r0, 0x7
subs r0, r1
lsls r0, 16
lsrs r0, 16
b _0810F948
_0810F946:
movs r0, 0x8
_0810F948:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810F908
thumb_func_start sub_810F950
sub_810F950: @ 810F950
push {r4,lr}
ldr r0, _0810F964 @ =0x000040c2
ldr r4, _0810F968 @ =gLocalTime
ldrh r1, [r4]
bl VarSet
ldrh r0, [r4]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810F964: .4byte 0x000040c2
_0810F968: .4byte gLocalTime
thumb_func_end sub_810F950
thumb_func_start sub_810F96C
sub_810F96C: @ 810F96C
push {r4,lr}
ldr r0, _0810F994 @ =gUnknown_0202E8CC
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0810F998 @ =gPlayerParty
adds r0, r1
ldr r4, _0810F99C @ =gStringVar1
movs r1, 0x7
adds r2, r4, 0
bl GetMonData
ldr r0, _0810F9A0 @ =gSaveBlock2
adds r1, r4, 0
bl StringCompareWithoutExtCtrlCodes
cmp r0, 0
beq _0810F9A4
movs r0, 0x1
b _0810F9A6
.align 2, 0
_0810F994: .4byte gUnknown_0202E8CC
_0810F998: .4byte gPlayerParty
_0810F99C: .4byte gStringVar1
_0810F9A0: .4byte gSaveBlock2
_0810F9A4:
movs r0, 0
_0810F9A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810F96C
thumb_func_start sub_810F9AC
sub_810F9AC: @ 810F9AC
push {r4,r5,lr}
ldr r2, _0810F9C0 @ =gScriptResult
ldrh r1, [r2]
ldr r0, _0810F9C4 @ =0x0000270f
cmp r1, r0
bls _0810F9C8
movs r0, 0
bl sub_80BF088
b _0810FA4A
.align 2, 0
_0810F9C0: .4byte gScriptResult
_0810F9C4: .4byte 0x0000270f
_0810F9C8:
ldr r0, _0810F9D8 @ =0x000003e7
cmp r1, r0
bls _0810F9E0
ldr r4, _0810F9DC @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
adds r4, 0x1
b _0810FA04
.align 2, 0
_0810F9D8: .4byte 0x000003e7
_0810F9DC: .4byte gStringVar1
_0810F9E0:
cmp r1, 0x63
bls _0810F9F4
ldr r4, _0810F9F0 @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
strb r0, [r4, 0x1]
adds r4, 0x2
b _0810FA04
.align 2, 0
_0810F9F0: .4byte gStringVar1
_0810F9F4:
cmp r1, 0x9
bls _0810FA24
ldr r4, _0810FA20 @ =gStringVar1
movs r0, 0xA1
strb r0, [r4]
strb r0, [r4, 0x1]
strb r0, [r4, 0x2]
adds r4, 0x3
_0810FA04:
ldrh r5, [r2]
adds r0, r5, 0
bl sub_80BF0B8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl ConvertIntToDecimalStringN
b _0810FA4A
.align 2, 0
_0810FA20: .4byte gStringVar1
_0810FA24:
ldr r4, _0810FA50 @ =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_80BF0B8
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl ConvertIntToDecimalStringN
_0810FA4A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0810FA50: .4byte gStringVar1
thumb_func_end sub_810F9AC
thumb_func_start sub_810FA54
sub_810FA54: @ 810FA54
ldr r0, _0810FA68 @ =gSaveBlock1
ldr r2, _0810FA6C @ =0x000013c2
adds r1, r0, r2
movs r2, 0
strh r2, [r1]
ldr r1, _0810FA70 @ =0x000013c4
adds r0, r1
strh r2, [r0]
bx lr
.align 2, 0
_0810FA68: .4byte gSaveBlock1
_0810FA6C: .4byte 0x000013c2
_0810FA70: .4byte 0x000013c4
thumb_func_end sub_810FA54
thumb_func_start sub_810FA74
sub_810FA74: @ 810FA74
push {lr}
bl sub_810FF30
lsls r0, 24
cmp r0, 0
beq _0810FA90
bl sub_810FCE8
ldr r0, _0810FA94 @ =gSaveBlock1
ldr r1, _0810FA98 @ =gSaveBlock2
ldrh r1, [r1, 0xE]
ldr r2, _0810FA9C @ =0x000013c4
adds r0, r2
strh r1, [r0]
_0810FA90:
pop {r0}
bx r0
.align 2, 0
_0810FA94: .4byte gSaveBlock1
_0810FA98: .4byte gSaveBlock2
_0810FA9C: .4byte 0x000013c4
thumb_func_end sub_810FA74
thumb_func_start sub_810FAA0
sub_810FAA0: @ 810FAA0
push {r4,lr}
ldr r4, _0810FAF0 @ =gSaveBlock1
ldr r1, _0810FAF4 @ =0x000013c2
adds r0, r4, r1
ldrh r0, [r0]
lsrs r0, 7
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0810FAE8
bl sub_810FF48
bl sub_810FD80
ldr r0, _0810FAF8 @ =gSaveBlock2
ldrh r1, [r0, 0xE]
ldr r2, _0810FAFC @ =0x000013c4
adds r0, r4, r2
strh r1, [r0]
ldr r0, _0810FB00 @ =0x00000315
bl FlagReset
ldr r0, _0810FB04 @ =0x00000316
bl FlagReset
ldr r0, _0810FB08 @ =0x00000317
bl FlagReset
movs r0, 0xC6
lsls r0, 2
bl FlagReset
ldr r0, _0810FB0C @ =0x00004095
movs r1, 0x1
bl VarSet
_0810FAE8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810FAF0: .4byte gSaveBlock1
_0810FAF4: .4byte 0x000013c2
_0810FAF8: .4byte gSaveBlock2
_0810FAFC: .4byte 0x000013c4
_0810FB00: .4byte 0x00000315
_0810FB04: .4byte 0x00000316
_0810FB08: .4byte 0x00000317
_0810FB0C: .4byte 0x00004095
thumb_func_end sub_810FAA0
thumb_func_start sub_810FB10
sub_810FB10: @ 810FB10
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _0810FB54 @ =0x00004095
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bne _0810FB80
ldr r0, _0810FB58 @ =gSaveBlock1
ldr r1, _0810FB5C @ =0x000013c2
adds r4, r0, r1
ldrh r2, [r4]
movs r1, 0x7F
ands r1, r2
ldr r0, _0810FB60 @ =gUnknown_083F8404
adds r0, r5, r0
ldrb r0, [r0]
adds r1, r0
cmp r1, 0x13
ble _0810FB7C
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bhi _0810FB68
bl sub_810FB9C
ldrh r1, [r4]
ldr r0, _0810FB64 @ =0x0000ff80
ands r0, r1
b _0810FB7E
.align 2, 0
_0810FB54: .4byte 0x00004095
_0810FB58: .4byte gSaveBlock1
_0810FB5C: .4byte 0x000013c2
_0810FB60: .4byte gUnknown_083F8404
_0810FB64: .4byte 0x0000ff80
_0810FB68:
ldrh r0, [r4]
ldr r1, _0810FB78 @ =0x0000ff80
ands r1, r0
movs r0, 0x14
orrs r1, r0
strh r1, [r4]
b _0810FB80
.align 2, 0
_0810FB78: .4byte 0x0000ff80
_0810FB7C:
adds r0, r2, r0
_0810FB7E:
strh r0, [r4]
_0810FB80:
ldr r0, _0810FB94 @ =gSaveBlock1
ldr r1, _0810FB98 @ =0x000013c2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x7F
ands r0, r1
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810FB94: .4byte gSaveBlock1
_0810FB98: .4byte 0x000013c2
thumb_func_end sub_810FB10
thumb_func_start sub_810FB9C
sub_810FB9C: @ 810FB9C
push {r4-r7,lr}
sub sp, 0x4
movs r3, 0
movs r5, 0
ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2
movs r6, 0x1
_0810FBA8:
ldrh r1, [r7]
ldr r0, _0810FBDC @ =gUnknown_083F8408
adds r0, r5, r0
ldrb r4, [r0]
asrs r1, r4
ands r1, r6
cmp r1, 0
bne _0810FBE0
adds r3, r5, 0
str r3, [sp]
bl Random
adds r1, r6, 0
ands r1, r0
ldr r3, [sp]
cmp r1, 0
beq _0810FBE0
adds r0, r6, 0
lsls r0, r4
ldrh r1, [r7]
orrs r0, r1
strh r0, [r7]
b _0810FC00
.align 2, 0
_0810FBD8: .4byte gSaveBlock1 + 0x13C2
_0810FBDC: .4byte gUnknown_083F8408
_0810FBE0:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0810FBA8
ldr r2, _0810FC0C @ =gSaveBlock1
ldr r0, _0810FC10 @ =0x000013c2
adds r2, r0
ldr r1, _0810FC14 @ =gUnknown_083F8408
adds r1, r3, r1
movs r0, 0x1
ldrb r1, [r1]
lsls r0, r1
ldrh r1, [r2]
orrs r0, r1
strh r0, [r2]
_0810FC00:
adds r0, r3, 0
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810FC0C: .4byte gSaveBlock1
_0810FC10: .4byte 0x000013c2
_0810FC14: .4byte gUnknown_083F8408
thumb_func_end sub_810FB9C
thumb_func_start sub_810FC18
sub_810FC18: @ 810FC18
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r0, 0
mov r8, r0
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bne _0810FC3E
movs r0, 0
b _0810FC94
_0810FC34:
lsls r4, r6
ldrh r0, [r2]
eors r4, r0
strh r4, [r2]
b _0810FC92
_0810FC3E:
movs r5, 0
ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2
movs r4, 0x1
_0810FC44:
ldrh r1, [r2]
ldr r7, _0810FCA4 @ =gUnknown_083F8410
adds r0, r5, r7
ldrb r6, [r0]
asrs r1, r6
ands r1, r4
cmp r1, 0
beq _0810FC66
mov r8, r5
str r2, [sp]
bl Random
adds r1, r4, 0
ands r1, r0
ldr r2, [sp]
cmp r1, 0
bne _0810FC34
_0810FC66:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x7
bls _0810FC44
ldr r0, _0810FCA8 @ =gSaveBlock1
ldr r1, _0810FCAC @ =0x000013c2
adds r4, r0, r1
ldrh r1, [r4]
mov r2, r8
adds r0, r2, r7
ldrb r2, [r0]
adds r0, r1, 0
asrs r0, r2
movs r3, 0x1
ands r0, r3
cmp r0, 0
beq _0810FC92
adds r0, r3, 0
lsls r0, r2
eors r1, r0
strh r1, [r4]
_0810FC92:
mov r0, r8
_0810FC94:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0810FCA0: .4byte gSaveBlock1 + 0x13C2
_0810FCA4: .4byte gUnknown_083F8410
_0810FCA8: .4byte gSaveBlock1
_0810FCAC: .4byte 0x000013c2
thumb_func_end sub_810FC18
thumb_func_start sub_810FCB0
sub_810FCB0: @ 810FCB0
push {r4,r5,lr}
movs r3, 0
movs r2, 0
ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2
ldrh r4, [r0]
movs r5, 0x1
_0810FCBC:
adds r1, r2, 0
adds r1, 0x8
adds r0, r4, 0
asrs r0, r1
ands r0, r5
cmp r0, 0
beq _0810FCD0
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
_0810FCD0:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0810FCBC
adds r0, r3, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810FCE4: .4byte gSaveBlock1 + 0x13C2
thumb_func_end sub_810FCB0
thumb_func_start sub_810FCE8
sub_810FCE8: @ 810FCE8
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r5, 0
ldr r2, _0810FD08 @ =gSaveBlock2
ldrh r1, [r2, 0xE]
ldr r0, _0810FD0C @ =0x000003e6
cmp r1, r0
bhi _0810FD54
ldr r7, _0810FD10 @ =gSaveBlock1
adds r6, r2, 0
ldr r0, _0810FD14 @ =0x000013c4
adds r0, r7
mov r8, r0
b _0810FD36
.align 2, 0
_0810FD08: .4byte gSaveBlock2
_0810FD0C: .4byte 0x000003e6
_0810FD10: .4byte gSaveBlock1
_0810FD14: .4byte 0x000013c4
_0810FD18:
ldrh r1, [r6, 0xE]
ldr r0, _0810FD4C @ =0x000013c4
adds r4, r7, r0
ldrh r0, [r4]
subs r1, r0
cmp r1, 0xB
ble _0810FD54
bl sub_810FC18
ldrh r0, [r4]
adds r0, 0xC
strh r0, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
_0810FD36:
bl sub_810FCB0
lsls r0, 16
lsrs r0, 16
cmp r0, 0x4
bhi _0810FD50
ldrh r0, [r6, 0xE]
mov r1, r8
strh r0, [r1]
b _0810FD54
.align 2, 0
_0810FD4C: .4byte 0x000013c4
_0810FD50:
cmp r5, 0x8
bne _0810FD18
_0810FD54:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810FCE8
thumb_func_start sub_810FD60
sub_810FD60: @ 810FD60
ldr r0, _0810FD74 @ =gSaveBlock1
ldr r1, _0810FD78 @ =0x000013c2
adds r0, r1
ldrh r0, [r0]
ldr r1, _0810FD7C @ =gUnknown_0202E8CC
ldrh r1, [r1]
asrs r0, r1
movs r1, 0x1
ands r0, r1
bx lr
.align 2, 0
_0810FD74: .4byte gSaveBlock1
_0810FD78: .4byte 0x000013c2
_0810FD7C: .4byte gUnknown_0202E8CC
thumb_func_end sub_810FD60
thumb_func_start sub_810FD80
sub_810FD80: @ 810FD80
ldr r2, _0810FDA4 @ =gSaveBlock1
ldr r0, _0810FDA8 @ =0x000013c2
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
.align 2, 0
_0810FDA4: .4byte gSaveBlock1
_0810FDA8: .4byte 0x000013c2
thumb_func_end sub_810FD80
thumb_func_start sub_810FDAC
sub_810FDAC: @ 810FDAC
push {lr}
movs r3, 0
movs r2, 0
ldr r0, _0810FDC8 @ =gUnknown_0202E8CC
ldrh r0, [r0]
subs r0, 0x8
cmp r0, 0x7
bhi _0810FE0C
lsls r0, 2
ldr r1, _0810FDCC @ =_0810FDD0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810FDC8: .4byte gUnknown_0202E8CC
_0810FDCC: .4byte _0810FDD0
.align 2, 0
_0810FDD0:
.4byte _0810FE0C
.4byte _0810FE0C
.4byte _0810FDF0
.4byte _0810FDF6
.4byte _0810FDFC
.4byte _0810FE02
.4byte _0810FE08
.4byte _0810FE0C
_0810FDF0:
movs r3, 0
movs r2, 0x3
b _0810FE0C
_0810FDF6:
movs r3, 0
movs r2, 0x1
b _0810FE0C
_0810FDFC:
movs r3, 0x1
movs r2, 0
b _0810FE0C
_0810FE02:
movs r3, 0
movs r2, 0x4
b _0810FE0C
_0810FE08:
movs r3, 0x1
movs r2, 0x5
_0810FE0C:
ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8
adds r1, r3, 0
bl sub_810FE1C
pop {r0}
bx r0
.align 2, 0
_0810FE18: .4byte gSaveBlock1 + 0x30B8
thumb_func_end sub_810FDAC
thumb_func_start sub_810FE1C
sub_810FE1C: @ 810FE1C
push {r4,lr}
lsls r1, 24
lsls r2, 24
lsrs r2, 24
lsrs r1, 20
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0xFF
bne _0810FED0
cmp r2, 0x5
bhi _0810FEBC
lsls r0, r2, 2
ldr r1, _0810FE3C @ =_0810FE40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810FE3C: .4byte _0810FE40
.align 2, 0
_0810FE40:
.4byte _0810FEBC
.4byte _0810FE58
.4byte _0810FE6C
.4byte _0810FE80
.4byte _0810FE94
.4byte _0810FEA8
_0810FE58:
ldr r0, _0810FE64 @ =gStringVar1
ldr r1, _0810FE68 @ =gOtherText_Steven
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE64: .4byte gStringVar1
_0810FE68: .4byte gOtherText_Steven
_0810FE6C:
ldr r0, _0810FE78 @ =gStringVar1
ldr r1, _0810FE7C @ =gOtherText_Brawly
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE78: .4byte gStringVar1
_0810FE7C: .4byte gOtherText_Brawly
_0810FE80:
ldr r0, _0810FE8C @ =gStringVar1
ldr r1, _0810FE90 @ =gOtherText_Winona
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FE8C: .4byte gStringVar1
_0810FE90: .4byte gOtherText_Winona
_0810FE94:
ldr r0, _0810FEA0 @ =gStringVar1
ldr r1, _0810FEA4 @ =gOtherText_Phoebe
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEA0: .4byte gStringVar1
_0810FEA4: .4byte gOtherText_Phoebe
_0810FEA8:
ldr r0, _0810FEB4 @ =gStringVar1
ldr r1, _0810FEB8 @ =gOtherText_Glacia
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEB4: .4byte gStringVar1
_0810FEB8: .4byte gOtherText_Glacia
_0810FEBC:
ldr r0, _0810FEC8 @ =gStringVar1
ldr r1, _0810FECC @ =gOtherText_Wallace
bl StringCopy
b _0810FEF2
.align 2, 0
_0810FEC8: .4byte gStringVar1
_0810FECC: .4byte gOtherText_Wallace
_0810FED0:
ldr r4, _0810FEF8 @ =gStringVar1
adds r0, r4, 0
movs r2, 0x7
bl StringCopyN
movs r0, 0xFF
strb r0, [r4, 0x7]
ldrb r0, [r4]
cmp r0, 0xFC
bne _0810FEF2
ldrb r0, [r4, 0x1]
cmp r0, 0x15
bne _0810FEF2
adds r0, r4, 0
movs r1, 0x1
bl ConvertInternationalString
_0810FEF2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810FEF8: .4byte gStringVar1
thumb_func_end sub_810FE1C
thumb_func_start sub_810FEFC
sub_810FEFC: @ 810FEFC
push {lr}
ldr r0, _0810FF20 @ =0x00004095
bl VarGet
lsls r0, 16
lsrs r0, 16
cmp r0, 0x2
bne _0810FF2C
bl sub_810FA74
ldr r0, _0810FF24 @ =gUnknown_02024D26
ldrb r0, [r0]
cmp r0, 0x1
bne _0810FF28
bl sub_810FB9C
b _0810FF2C
.align 2, 0
_0810FF20: .4byte 0x00004095
_0810FF24: .4byte gUnknown_02024D26
_0810FF28:
bl sub_810FC18
_0810FF2C:
pop {r0}
bx r0
thumb_func_end sub_810FEFC
thumb_func_start sub_810FF30
sub_810FF30: @ 810FF30
ldr r0, _0810FF40 @ =gSaveBlock1
ldr r1, _0810FF44 @ =0x000013c2
adds r0, r1
ldrh r0, [r0]
lsrs r0, 7
movs r1, 0x1
ands r0, r1
bx lr
.align 2, 0
_0810FF40: .4byte gSaveBlock1
_0810FF44: .4byte 0x000013c2
thumb_func_end sub_810FF30
thumb_func_start sub_810FF48
sub_810FF48: @ 810FF48
ldr r0, _0810FF58 @ =gSaveBlock1
ldr r1, _0810FF5C @ =0x000013c2
adds r0, r1
ldrh r2, [r0]
movs r1, 0x80
orrs r1, r2
strh r1, [r0]
bx lr
.align 2, 0
_0810FF58: .4byte gSaveBlock1
_0810FF5C: .4byte 0x000013c2
thumb_func_end sub_810FF48
thumb_func_start sub_810FF60
sub_810FF60: @ 810FF60
push {lr}
ldr r0, _0810FF74 @ =gUnknown_0202E8CC
ldrb r0, [r0]
bl sub_810FB10
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_0810FF74: .4byte gUnknown_0202E8CC
thumb_func_end sub_810FF60
.align 2, 0 @ Don't pad with nop.