pokeemerald/asm/union_room_chat.s

5773 lines
86 KiB
ArmAsm
Raw Normal View History

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_801DD98
sub_801DD98: @ 801DD98
push {r4,lr}
ldr r4, =gUnknown_02022C84
movs r0, 0xDE
lsls r0, 1
bl Alloc
str r0, [r4]
bl sub_801DDD0
ldr r1, =gKeyRepeatStartDelay
movs r0, 0x14
strh r0, [r1]
movs r0, 0
bl SetVBlankCallback
ldr r0, =c2_081284E0
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801DD98
thumb_func_start sub_801DDD0
sub_801DDD0: @ 801DDD0
push {r4-r7,lr}
adds r4, r0, 0
movs r5, 0
movs r0, 0
strh r0, [r4, 0x4]
strh r0, [r4, 0x6]
strb r5, [r4, 0x10]
strb r5, [r4, 0x11]
strb r5, [r4, 0x12]
strb r5, [r4, 0x14]
strb r5, [r4, 0x15]
strb r5, [r4, 0x16]
movs r0, 0xFF
strb r0, [r4, 0x1A]
bl GetLinkPlayerCount
strb r0, [r4, 0xD]
bl GetMultiplayerId
strb r0, [r4, 0x13]
strb r5, [r4, 0x17]
strb r5, [r4, 0x18]
movs r1, 0xC8
lsls r1, 1
adds r0, r4, r1
bl sub_801EF1C
ldr r7, =gSaveBlock1Ptr
ldr r6, =0x00003c88
adds r4, 0xB9
movs r5, 0x9
_0801DE0E:
ldr r1, [r7]
adds r1, r6
adds r0, r4, 0
bl StringCopy
adds r6, 0x15
adds r4, 0x15
subs r5, 0x1
cmp r5, 0
bge _0801DE0E
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801DDD0
thumb_func_start sub_801DE30
sub_801DE30: @ 801DE30
push {r4,lr}
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrb r0, [r0, 0xE]
bl DestroyTask
ldr r0, [r4]
ldrb r0, [r0, 0xF]
bl DestroyTask
ldr r0, [r4]
bl Free
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801DE30
thumb_func_start c2_081284E0
c2_081284E0: @ 801DE54
push {r4-r6,lr}
sub sp, 0x4
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r6, r0, r1
ldrb r0, [r6]
cmp r0, 0x1
beq _0801DE8C
cmp r0, 0x1
bgt _0801DE74
cmp r0, 0
beq _0801DE7A
b _0801DF04
.pool
_0801DE74:
cmp r0, 0x2
beq _0801DEC8
b _0801DF04
_0801DE7A:
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
bl sub_801F4D0
b _0801DEBC
_0801DE8C:
bl sub_801F5B8
bl sub_801F534
adds r5, r0, 0
cmp r5, 0
bne _0801DF04
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
str r5, [sp]
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, =sub_801DF20
bl SetVBlankCallback
_0801DEBC:
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _0801DF04
.pool
_0801DEC8:
bl UpdatePaletteFade
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0801DF04
ldr r0, =sub_801DF38
bl SetMainCallback2
ldr r0, =sub_801DF54
movs r1, 0x8
bl CreateTask
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
strb r0, [r1, 0xE]
ldr r0, =sub_801F2B4
movs r1, 0x7
bl CreateTask
ldr r1, [r4]
strb r0, [r1, 0xF]
bl sub_800E0E8
movs r0, 0xE8
movs r1, 0x96
bl CreateWirelessStatusIndicatorSprite
_0801DF04:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end c2_081284E0
thumb_func_start sub_801DF20
sub_801DF20: @ 801DF20
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_801DF20
thumb_func_start sub_801DF38
sub_801DF38: @ 801DF38
push {lr}
bl RunTasks
bl sub_801F5B8
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_801DF38
thumb_func_start sub_801DF54
sub_801DF54: @ 801DF54
push {r4,lr}
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrb r0, [r0, 0x17]
cmp r0, 0x2
beq _0801DF7A
cmp r0, 0x2
bgt _0801DF70
cmp r0, 0x1
beq _0801DF76
b _0801DF8A
.pool
_0801DF70:
cmp r0, 0x3
beq _0801DF7E
b _0801DF8A
_0801DF76:
movs r0, 0x6
b _0801DF80
_0801DF7A:
movs r0, 0x7
b _0801DF80
_0801DF7E:
movs r0, 0x8
_0801DF80:
bl sub_801EBD4
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x17]
_0801DF8A:
ldr r1, =gUnknown_082F2A7C
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrh r0, [r0, 0x4]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801DF54
thumb_func_start sub_801DFAC
sub_801DFAC: @ 801DFAC
push {r4,lr}
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrh r1, [r0, 0x6]
cmp r1, 0x1
beq _0801DFE0
cmp r1, 0x1
bgt _0801DFC8
cmp r1, 0
beq _0801DFCE
b _0801E028
.pool
_0801DFC8:
cmp r1, 0x2
beq _0801E018
b _0801E028
_0801DFCE:
movs r1, 0xC8
lsls r1, 1
adds r0, r1
bl sub_801EF24
ldr r1, [r4]
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
_0801DFE0:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E028
bl sub_8011A9C
cmp r0, 0
bne _0801E028
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r0, 0
movs r2, 0x28
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _0801E028
ldr r1, [r4]
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E028
.pool
_0801E018:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E028
movs r0, 0x1
bl sub_801EBD4
_0801E028:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801DFAC
thumb_func_start sub_801E030
sub_801E030: @ 801E030
push {r4,r5,lr}
ldr r5, =gUnknown_02022C84
ldr r3, [r5]
ldrh r0, [r3, 0x6]
cmp r0, 0
beq _0801E048
cmp r0, 0x1
beq _0801E0F6
b _0801E118
.pool
_0801E048:
ldr r1, =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x8
ands r0, r2
cmp r0, 0
beq _0801E068
ldrb r0, [r3, 0x15]
cmp r0, 0
beq _0801E118
movs r0, 0x4
bl sub_801EBD4
b _0801E118
.pool
_0801E068:
movs r0, 0x4
ands r0, r2
cmp r0, 0
beq _0801E078
movs r0, 0x2
bl sub_801EBD4
b _0801E118
_0801E078:
ldrh r1, [r1, 0x30]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0801E0A4
ldrb r0, [r3, 0x15]
cmp r0, 0
beq _0801E09C
bl sub_801ED68
movs r0, 0x8
movs r1, 0
bl sub_801F5EC
ldr r1, [r5]
movs r0, 0x1
strh r0, [r1, 0x6]
b _0801E118
_0801E09C:
movs r0, 0x3
bl sub_801EBD4
b _0801E118
_0801E0A4:
movs r4, 0x1
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _0801E0C0
bl sub_801EC94
movs r0, 0x8
movs r1, 0
bl sub_801F5EC
movs r0, 0x2
movs r1, 0x1
b _0801E0EC
_0801E0C0:
movs r0, 0x80
lsls r0, 1
ands r0, r2
cmp r0, 0
beq _0801E0E0
ldrb r0, [r3, 0x10]
cmp r0, 0x3
beq _0801E0D8
bl sub_801ED94
movs r0, 0x8
b _0801E0EA
_0801E0D8:
movs r0, 0x5
bl sub_801EBD4
b _0801E118
_0801E0E0:
bl sub_801EBE4
cmp r0, 0
beq _0801E118
movs r0, 0x1
_0801E0EA:
movs r1, 0
_0801E0EC:
bl sub_801F5EC
ldr r0, [r5]
strh r4, [r0, 0x6]
b _0801E118
_0801E0F6:
movs r0, 0
bl sub_801F644
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl sub_801F644
lsls r0, 24
lsrs r1, r0, 24
cmp r4, 0
bne _0801E118
cmp r1, 0
bne _0801E118
ldr r0, [r5]
strh r1, [r0, 0x6]
_0801E118:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801E030
thumb_func_start sub_801E120
sub_801E120: @ 801E120
push {r4-r6,lr}
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrh r0, [r0, 0x6]
cmp r0, 0x4
bls _0801E12E
b _0801E23A
_0801E12E:
lsls r0, 2
ldr r1, =_0801E140
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E140:
.4byte _0801E154
.4byte _0801E15E
.4byte _0801E17C
.4byte _0801E208
.4byte _0801E21C
_0801E154:
movs r0, 0x3
movs r1, 0
bl sub_801F5EC
b _0801E16A
_0801E15E:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E23A
_0801E16A:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E23A
.pool
_0801E17C:
bl Menu_ProcessInput
lsls r0, 24
asrs r0, 8
lsrs r6, r0, 16
asrs r4, r0, 16
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _0801E1B4
adds r0, 0x1
cmp r4, r0
beq _0801E1D4
movs r0, 0x4
movs r1, 0
bl sub_801F5EC
ldr r5, =gUnknown_02022C84
ldr r2, [r5]
ldrb r0, [r2, 0x10]
cmp r0, r4
beq _0801E1DC
cmp r4, 0x3
ble _0801E1EC
b _0801E1DC
.pool
_0801E1B4:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0801E23A
movs r0, 0x5
bl PlaySE
movs r0, 0x1
bl Menu_MoveCursor
b _0801E23A
.pool
_0801E1D4:
movs r0, 0x4
movs r1, 0
bl sub_801F5EC
_0801E1DC:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
strh r0, [r1, 0x6]
b _0801E23A
.pool
_0801E1EC:
movs r1, 0
strb r1, [r2, 0x11]
ldr r0, [r5]
strb r1, [r0, 0x12]
movs r0, 0x5
movs r1, 0x1
bl sub_801F5EC
ldr r0, [r5]
strb r6, [r0, 0x10]
ldr r1, [r5]
movs r0, 0x4
strh r0, [r1, 0x6]
b _0801E23A
_0801E208:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E23A
movs r0, 0x1
bl sub_801EBD4
b _0801E23A
_0801E21C:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E23A
movs r0, 0x1
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E23A
movs r0, 0x1
bl sub_801EBD4
_0801E23A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_801E120
thumb_func_start sub_801E240
sub_801E240: @ 801E240
push {r4,r5,lr}
ldr r1, =gUnknown_02022C84
ldr r0, [r1]
ldrh r0, [r0, 0x6]
adds r2, r1, 0
cmp r0, 0xA
bls _0801E250
b _0801E458
_0801E250:
lsls r0, 2
ldr r1, =_0801E264
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E264:
.4byte _0801E290
.4byte _0801E2A8
.4byte _0801E2C4
.4byte _0801E322
.4byte _0801E3D4
.4byte _0801E424
.4byte _0801E458
.4byte _0801E458
.4byte _0801E378
.4byte _0801E338
.4byte _0801E35C
_0801E290:
movs r0, 0x6
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E2A8:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801E2B6
b _0801E458
_0801E2B6:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x2
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E2C4:
bl sub_801FF08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _0801E2E6
cmp r1, 0
bgt _0801E2DE
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0801E396
b _0801E458
_0801E2DE:
cmp r1, 0x1
beq _0801E2E4
b _0801E458
_0801E2E4:
b _0801E396
_0801E2E6:
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
ldrb r0, [r1, 0x13]
cmp r0, 0
bne _0801E310
movs r2, 0xC8
lsls r2, 1
adds r0, r1, r2
bl sub_801EFD0
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r1, [r4]
movs r0, 0x9
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E310:
movs r2, 0xC8
lsls r2, 1
adds r0, r1, r2
bl sub_801EF7C
ldr r1, [r4]
movs r0, 0x4
strh r0, [r1, 0x6]
b _0801E458
_0801E322:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801E330
b _0801E458
_0801E330:
movs r0, 0x1
bl sub_801EBD4
b _0801E458
_0801E338:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801E346
b _0801E458
_0801E346:
movs r0, 0x14
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0xA
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E35C:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801E36A
b _0801E458
_0801E36A:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x8
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E378:
bl sub_801FF08
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
beq _0801E3AC
cmp r5, 0
bgt _0801E392
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _0801E396
b _0801E458
_0801E392:
cmp r5, 0x1
bne _0801E458
_0801E396:
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
strh r0, [r1, 0x6]
b _0801E458
.pool
_0801E3AC:
bl sub_80104B0
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
movs r1, 0xC8
lsls r1, 1
adds r0, r1
bl sub_801EFD0
ldr r0, [r4]
movs r1, 0x4
strh r1, [r0, 0x6]
movs r2, 0xDC
lsls r2, 1
adds r0, r2
strh r5, [r0]
b _0801E458
.pool
_0801E3D4:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E414
bl sub_8011A9C
cmp r0, 0
bne _0801E414
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r0, 0
movs r2, 0x28
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _0801E414
ldr r1, [r4]
ldrb r0, [r1, 0x13]
cmp r0, 0
bne _0801E410
movs r0, 0x6
b _0801E412
.pool
_0801E410:
movs r0, 0x5
_0801E412:
strh r0, [r1, 0x6]
_0801E414:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E458
b _0801E42C
.pool
_0801E424:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E438
_0801E42C:
movs r0, 0x9
bl sub_801EBD4
b _0801E458
.pool
_0801E438:
ldr r3, [r2]
movs r1, 0xDC
lsls r1, 1
adds r2, r3, r1
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
movs r1, 0x96
lsls r1, 17
cmp r0, r1
bls _0801E458
movs r0, 0
strh r0, [r2]
movs r0, 0x4
strh r0, [r3, 0x6]
_0801E458:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801E240
thumb_func_start sub_801E460
sub_801E460: @ 801E460
push {r4,lr}
ldr r1, =gUnknown_02022C84
ldr r0, [r1]
ldrh r0, [r0, 0x6]
adds r2, r1, 0
cmp r0, 0x7
bls _0801E470
b _0801E5BC
_0801E470:
lsls r0, 2
ldr r1, =_0801E484
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E484:
.4byte _0801E4A4
.4byte _0801E4C8
.4byte _0801E4E8
.4byte _0801E50C
.4byte _0801E540
.4byte _0801E560
.4byte _0801E584
.4byte _0801E5A8
_0801E4A4:
ldr r0, =sub_801F2B4
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
beq _0801E4B2
b _0801E5BC
_0801E4B2:
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
b _0801E59A
.pool
_0801E4C8:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E5BC
movs r0, 0x12
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
b _0801E59A
.pool
_0801E4E8:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E5BC
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
movs r1, 0xC8
lsls r1, 1
adds r0, r1
bl sub_801EFA8
ldr r1, [r4]
b _0801E59A
.pool
_0801E50C:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E5BC
bl sub_8011A9C
cmp r0, 0
bne _0801E5BC
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r0, 0
movs r2, 0x28
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _0801E5BC
ldr r1, [r4]
b _0801E59A
.pool
_0801E540:
bl GetBlockReceivedStatus
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _0801E5BC
bl sub_8011A9C
cmp r0, 0
bne _0801E5BC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
b _0801E59A
.pool
_0801E560:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E5BC
bl sub_8011A9C
adds r4, r0, 0
cmp r4, 0
bne _0801E5BC
bl sub_800AC34
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
strh r4, [r1, 0xA]
b _0801E59A
.pool
_0801E584:
ldr r1, [r2]
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bhi _0801E590
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E590:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E5BC
ldr r1, [r2]
_0801E59A:
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E5BC
.pool
_0801E5A8:
ldr r1, [r2]
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bls _0801E5B8
movs r0, 0x9
bl sub_801EBD4
b _0801E5BC
_0801E5B8:
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E5BC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801E460
thumb_func_start sub_801E5C4
sub_801E5C4: @ 801E5C4
push {r4,r5,lr}
ldr r5, =gUnknown_02022C84
ldr r1, [r5]
ldrh r0, [r1, 0x6]
cmp r0, 0x1
beq _0801E604
cmp r0, 0x1
bgt _0801E5E0
cmp r0, 0
beq _0801E5EA
b _0801E662
.pool
_0801E5E0:
cmp r0, 0x2
beq _0801E62E
cmp r0, 0x3
beq _0801E650
b _0801E662
_0801E5EA:
ldr r0, =sub_801F2B4
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _0801E662
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
b _0801E640
.pool
_0801E604:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E662
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E662
bl sub_8011A9C
adds r4, r0, 0
cmp r4, 0
bne _0801E662
bl sub_800AC34
ldr r1, [r5]
strh r4, [r1, 0xA]
b _0801E642
_0801E62E:
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bhi _0801E638
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E638:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E662
_0801E640:
ldr r1, [r5]
_0801E642:
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E662
.pool
_0801E650:
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bls _0801E65E
movs r0, 0x9
bl sub_801EBD4
b _0801E662
_0801E65E:
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E662:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801E5C4
thumb_func_start sub_801E668
sub_801E668: @ 801E668
push {r4,lr}
ldr r1, =gUnknown_02022C84
ldr r0, [r1]
ldrh r0, [r0, 0x6]
adds r2, r1, 0
cmp r0, 0x4
bhi _0801E75C
lsls r0, 2
ldr r1, =_0801E688
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E688:
.4byte _0801E69C
.4byte _0801E6C8
.4byte _0801E6F0
.4byte _0801E724
.4byte _0801E748
_0801E69C:
ldr r0, =sub_801F2B4
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _0801E75C
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrb r0, [r0, 0x13]
cmp r0, 0
beq _0801E6BA
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
_0801E6BA:
ldr r1, [r4]
b _0801E73A
.pool
_0801E6C8:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E75C
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrb r0, [r0, 0x13]
cmp r0, 0
beq _0801E6E6
movs r0, 0x13
movs r1, 0
bl sub_801F5EC
_0801E6E6:
ldr r1, [r4]
b _0801E73A
.pool
_0801E6F0:
movs r0, 0
bl sub_801F644
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0801E75C
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E75C
bl sub_8011A9C
adds r4, r0, 0
cmp r4, 0
bne _0801E75C
bl sub_800AC34
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
strh r4, [r1, 0xA]
b _0801E73A
.pool
_0801E724:
ldr r1, [r2]
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bhi _0801E730
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E730:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E75C
ldr r1, [r2]
_0801E73A:
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E75C
.pool
_0801E748:
ldr r1, [r2]
ldrh r0, [r1, 0xA]
cmp r0, 0x95
bls _0801E758
movs r0, 0x9
bl sub_801EBD4
b _0801E75C
_0801E758:
adds r0, 0x1
strh r0, [r1, 0xA]
_0801E75C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801E668
thumb_func_start sub_801E764
sub_801E764: @ 801E764
push {r4,lr}
ldr r1, =gUnknown_02022C84
ldr r0, [r1]
ldrh r0, [r0, 0x6]
adds r4, r1, 0
cmp r0, 0x4
bhi _0801E830
lsls r0, 2
ldr r1, =_0801E784
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E784:
.4byte _0801E798
.4byte _0801E7C0
.4byte _0801E7F4
.4byte _0801E802
.4byte _0801E820
_0801E798:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801E7AC
movs r0, 0x1
bl sub_801EBD4
b _0801E830
.pool
_0801E7AC:
ldr r0, [r4]
movs r1, 0xC8
lsls r1, 1
adds r0, r1
bl sub_801EF4C
ldr r1, [r4]
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
_0801E7C0:
bl IsLinkTaskFinished
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0801E830
bl sub_8011A9C
cmp r0, 0
bne _0801E830
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r0, 0
movs r2, 0x28
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _0801E830
ldr r1, [r4]
b _0801E812
.pool
_0801E7F4:
bl sub_801EE10
movs r0, 0x8
movs r1, 0
bl sub_801F5EC
b _0801E80E
_0801E802:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E830
_0801E80E:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
_0801E812:
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
b _0801E830
.pool
_0801E820:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801E830
movs r0, 0x1
bl sub_801EBD4
_0801E830:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801E764
thumb_func_start sub_801E838
sub_801E838: @ 801E838
push {r4,lr}
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrh r0, [r0, 0x6]
cmp r0, 0x6
bls _0801E846
b _0801E968
_0801E846:
lsls r0, 2
ldr r1, =_0801E858
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E858:
.4byte _0801E874
.4byte _0801E8A4
.4byte _0801E8F8
.4byte _0801E910
.4byte _0801E920
.4byte _0801E934
.4byte _0801E94C
_0801E874:
bl sub_801EDC4
cmp r0, 0
beq _0801E890
movs r0, 0x9
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x2
b _0801E966
.pool
_0801E890:
movs r0, 0xD
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x5
b _0801E966
.pool
_0801E8A4:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0801E8CC
bl sub_801EDE0
movs r0, 0xB
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
b _0801E966
.pool
_0801E8CC:
movs r4, 0x2
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0801E8DA
movs r0, 0xA
b _0801E95A
_0801E8DA:
bl sub_801EBE4
cmp r0, 0
beq _0801E968
movs r0, 0x1
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
strh r4, [r0, 0x6]
b _0801E968
.pool
_0801E8F8:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E968
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x1
b _0801E966
.pool
_0801E910:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E968
movs r0, 0xA
b _0801E95A
_0801E920:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E968
movs r0, 0x1
bl sub_801EBD4
b _0801E968
_0801E934:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801E968
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x6
b _0801E966
.pool
_0801E94C:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _0801E968
movs r0, 0x7
_0801E95A:
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x4
_0801E966:
strh r0, [r1, 0x6]
_0801E968:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801E838
thumb_func_start sub_801E978
sub_801E978: @ 801E978
push {r4,lr}
sub sp, 0x4
ldr r1, =gUnknown_02022C84
ldr r0, [r1]
ldrh r0, [r0, 0x6]
adds r4, r1, 0
cmp r0, 0xD
bls _0801E98A
b _0801EBC2
_0801E98A:
lsls r0, 2
ldr r1, =_0801E99C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801E99C:
.4byte _0801E9D4
.4byte _0801E9EE
.4byte _0801EA14
.4byte _0801EA58
.4byte _0801EA7C
.4byte _0801EA98
.4byte _0801EADC
.4byte _0801EB04
.4byte _0801EB28
.4byte _0801EB40
.4byte _0801EB64
.4byte _0801EB72
.4byte _0801EB88
.4byte _0801EBA8
_0801E9D4:
ldr r1, [r4]
ldrb r0, [r1, 0x18]
cmp r0, 0
bne _0801E9DE
b _0801EB82
_0801E9DE:
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r1, [r4]
movs r0, 0x1
strh r0, [r1, 0x6]
b _0801EBC2
_0801E9EE:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801E9FC
b _0801EBC2
_0801E9FC:
movs r0, 0xE
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x2
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EA14:
bl sub_801FF08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _0801EA40
cmp r1, 0
bgt _0801EA2E
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0801EA34
b _0801EBC2
_0801EA2E:
cmp r1, 0x1
beq _0801EA34
b _0801EBC2
_0801EA34:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
b _0801EB82
.pool
_0801EA40:
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EA58:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801EA66
b _0801EBC2
_0801EA66:
movs r0, 0xF
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x4
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EA7C:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
beq _0801EA8A
b _0801EBC2
_0801EA8A:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x5
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EA98:
bl sub_801FF08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _0801EAC4
cmp r1, 0
bgt _0801EAB2
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0801EAB8
b _0801EBC2
_0801EAB2:
cmp r1, 0x1
beq _0801EAB8
b _0801EBC2
_0801EAB8:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
b _0801EB82
.pool
_0801EAC4:
movs r0, 0x7
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x6
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EADC:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801EBC2
movs r0, 0x10
movs r1, 0
bl sub_801F5EC
bl sub_801EE2C
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x7
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EB04:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801EBC2
bl SetContinueGameWarpStatusToDynamicWarp
movs r0, 0
bl TrySavingData
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x8
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EB28:
movs r0, 0x11
movs r1, 0
bl sub_801F5EC
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x9
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EB40:
movs r0, 0
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801EBC2
movs r0, 0x37
bl PlaySE
bl ClearContinueGameWarpStatus2
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0xA
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EB64:
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x19]
ldr r1, [r4]
movs r0, 0xB
strh r0, [r1, 0x6]
b _0801EBC2
_0801EB72:
ldr r0, [r4]
ldrb r1, [r0, 0x19]
adds r1, 0x1
strb r1, [r0, 0x19]
ldr r1, [r4]
ldrb r0, [r1, 0x19]
cmp r0, 0x78
bls _0801EBC2
_0801EB82:
movs r0, 0xC
strh r0, [r1, 0x6]
b _0801EBC2
_0801EB88:
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0xD
strh r0, [r1, 0x6]
b _0801EBC2
.pool
_0801EBA8:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0801EBC2
bl sub_801F544
bl sub_801DE30
ldr r0, =CB2_ReturnToField
bl SetMainCallback2
_0801EBC2:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801E978
thumb_func_start sub_801EBD4
sub_801EBD4: @ 801EBD4
ldr r1, =gUnknown_02022C84
ldr r1, [r1]
movs r2, 0
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
bx lr
.pool
thumb_func_end sub_801EBD4
thumb_func_start sub_801EBE4
sub_801EBE4: @ 801EBE4
push {lr}
ldr r0, =gMain
ldrh r2, [r0, 0x30]
movs r0, 0x40
ands r0, r2
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
bne _0801EC6E
movs r0, 0x80
ands r0, r2
cmp r0, 0
beq _0801EC24
ldr r0, =gUnknown_02022C84
ldr r2, [r0]
ldr r1, =gUnknown_082F2AA4
ldrb r0, [r2, 0x10]
adds r0, r1
ldrb r1, [r2, 0x12]
ldrb r0, [r0]
cmp r1, r0
bcs _0801EC20
adds r0, r1, 0x1
b _0801EC88
.pool
_0801EC20:
strb r3, [r2, 0x12]
b _0801EC8A
_0801EC24:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x10]
cmp r0, 0x3
beq _0801EC6A
movs r0, 0x20
ands r0, r2
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
beq _0801EC52
ldrb r0, [r1, 0x11]
cmp r0, 0
beq _0801EC4C
subs r0, 0x1
strb r0, [r1, 0x11]
b _0801EC8A
.pool
_0801EC4C:
movs r0, 0x4
strb r0, [r1, 0x11]
b _0801EC8A
_0801EC52:
movs r0, 0x10
ands r0, r2
cmp r0, 0
beq _0801EC6A
ldrb r0, [r1, 0x11]
cmp r0, 0x3
bhi _0801EC66
adds r0, 0x1
strb r0, [r1, 0x11]
b _0801EC8A
_0801EC66:
strb r3, [r1, 0x11]
b _0801EC8A
_0801EC6A:
movs r0, 0
b _0801EC8C
_0801EC6E:
ldr r0, =gUnknown_02022C84
ldr r2, [r0]
ldrb r0, [r2, 0x12]
cmp r0, 0
beq _0801EC80
subs r0, 0x1
b _0801EC88
.pool
_0801EC80:
ldr r0, =gUnknown_082F2AA4
ldrb r1, [r2, 0x10]
adds r1, r0
ldrb r0, [r1]
_0801EC88:
strb r0, [r2, 0x12]
_0801EC8A:
movs r0, 0x1
_0801EC8C:
pop {r1}
bx r1
.pool
thumb_func_end sub_801EBE4
thumb_func_start sub_801EC94
sub_801EC94: @ 801EC94
push {r4-r6,lr}
sub sp, 0x18
ldr r0, =gUnknown_02022C84
ldr r5, [r0]
ldrb r0, [r5, 0x10]
cmp r0, 0x3
beq _0801ECDC
ldr r3, =gUnknown_082F2BA8
ldrb r1, [r5, 0x12]
lsls r1, 2
adds r2, r0, 0
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r3
ldr r4, [r1]
ldrb r0, [r5, 0x11]
cmp r0, 0
beq _0801ECCE
adds r1, r0, 0
_0801ECBE:
ldrb r0, [r4]
cmp r0, 0xF9
bne _0801ECC6
adds r4, 0x1
_0801ECC6:
adds r4, 0x1
subs r1, 0x1
cmp r1, 0
bne _0801ECBE
_0801ECCE:
movs r5, 0x1
b _0801ED02
.pool
_0801ECDC:
ldrb r0, [r5, 0x12]
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, r0
adds r1, 0xB9
adds r1, r5, r1
mov r0, sp
bl StringCopy
movs r1, 0
strb r1, [r0]
movs r1, 0xFF
strb r1, [r0, 0x1]
mov r4, sp
mov r0, sp
bl StringLength_Multibyte
adds r5, r0, 0
_0801ED02:
ldr r6, =gUnknown_02022C84
ldr r1, [r6]
ldrb r0, [r1, 0x15]
strb r0, [r1, 0x14]
cmp r4, 0
beq _0801ED5A
bl sub_801EE84
adds r2, r0, 0
subs r5, 0x1
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _0801ED56
ldr r0, [r6]
ldrb r0, [r0, 0x15]
cmp r0, 0xE
bhi _0801ED56
adds r3, r6, 0
_0801ED28:
ldrb r0, [r4]
cmp r0, 0xF9
bne _0801ED34
strb r0, [r2]
adds r4, 0x1
adds r2, 0x1
_0801ED34:
ldrb r0, [r4]
strb r0, [r2]
adds r4, 0x1
adds r2, 0x1
ldr r1, [r3]
ldrb r0, [r1, 0x15]
adds r0, 0x1
strb r0, [r1, 0x15]
subs r5, 0x1
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _0801ED56
ldr r0, [r3]
ldrb r0, [r0, 0x15]
cmp r0, 0xE
bls _0801ED28
_0801ED56:
movs r0, 0xFF
strb r0, [r2]
_0801ED5A:
add sp, 0x18
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EC94
thumb_func_start sub_801ED68
sub_801ED68: @ 801ED68
push {r4,lr}
ldr r4, =gUnknown_02022C84
ldr r1, [r4]
ldrb r0, [r1, 0x15]
strb r0, [r1, 0x14]
ldr r0, [r4]
ldrb r0, [r0, 0x15]
cmp r0, 0
beq _0801ED8A
bl sub_801EEA8
movs r1, 0xFF
strb r1, [r0]
ldr r1, [r4]
ldrb r0, [r1, 0x15]
subs r0, 0x1
strb r0, [r1, 0x15]
_0801ED8A:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801ED68
thumb_func_start sub_801ED94
sub_801ED94: @ 801ED94
push {lr}
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x15]
subs r0, 0x1
strb r0, [r1, 0x14]
bl sub_801EEA8
adds r2, r0, 0
ldrb r0, [r2]
cmp r0, 0xF9
beq _0801EDB8
ldr r1, =gUnknown_082F2AA8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0801EDB8
strb r0, [r2]
_0801EDB8:
pop {r0}
bx r0
.pool
thumb_func_end sub_801ED94
thumb_func_start sub_801EDC4
sub_801EDC4: @ 801EDC4
push {lr}
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x15]
cmp r0, 0
bne _0801EDD8
movs r0, 0
b _0801EDDA
.pool
_0801EDD8:
movs r0, 0x1
_0801EDDA:
pop {r1}
bx r1
thumb_func_end sub_801EDC4
thumb_func_start sub_801EDE0
sub_801EDE0: @ 801EDE0
push {r4,lr}
bl sub_801F114
adds r1, r0, 0
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
ldrb r3, [r0, 0x12]
lsls r2, r3, 2
adds r2, r3
lsls r2, 2
adds r2, r3
adds r2, 0xB9
adds r0, r2
bl StringCopy
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x18]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EDE0
thumb_func_start sub_801EE10
sub_801EE10: @ 801EE10
ldr r1, =gUnknown_02022C84
ldr r2, [r1]
movs r0, 0xFF
strb r0, [r2, 0x1A]
ldr r2, [r1]
movs r3, 0
movs r0, 0xF
strb r0, [r2, 0x14]
ldr r0, [r1]
strb r3, [r0, 0x15]
bx lr
.pool
thumb_func_end sub_801EE10
thumb_func_start sub_801EE2C
sub_801EE2C: @ 801EE2C
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gSaveBlock1Ptr
mov r8, r0
ldr r7, =gUnknown_02022C84
movs r6, 0xB9
ldr r5, =0x00003c88
movs r4, 0x9
_0801EE3E:
mov r1, r8
ldr r0, [r1]
adds r0, r5
ldr r1, [r7]
adds r1, r6
bl StringCopy
adds r6, 0x15
adds r5, 0x15
subs r4, 0x1
cmp r4, 0
bge _0801EE3E
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EE2C
thumb_func_start sub_801EE6C
sub_801EE6C: @ 801EE6C
ldr r2, =gUnknown_02022C84
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, r0
adds r1, 0xB9
ldr r0, [r2]
adds r0, r1
bx lr
.pool
thumb_func_end sub_801EE6C
thumb_func_start sub_801EE84
sub_801EE84: @ 801EE84
push {lr}
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x1A
ldrb r0, [r0, 0x1A]
cmp r0, 0xFF
beq _0801EE9C
_0801EE94:
adds r1, 0x1
ldrb r0, [r1]
cmp r0, 0xFF
bne _0801EE94
_0801EE9C:
adds r0, r1, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_801EE84
thumb_func_start sub_801EEA8
sub_801EEA8: @ 801EEA8
push {lr}
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0x1A
adds r1, r2, 0
ldrb r0, [r0, 0x1A]
cmp r0, 0xFF
beq _0801EECC
_0801EEBA:
adds r2, r1, 0
ldrb r0, [r2]
cmp r0, 0xF9
bne _0801EEC4
adds r1, r2, 0x1
_0801EEC4:
adds r1, 0x1
ldrb r0, [r1]
cmp r0, 0xFF
bne _0801EEBA
_0801EECC:
adds r0, r2, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_801EEA8
thumb_func_start sub_801EED8
sub_801EED8: @ 801EED8
push {r4,lr}
ldr r4, =gUnknown_02022C84
ldr r0, [r4]
adds r0, 0x1A
bl StringLength_Multibyte
adds r2, r0, 0
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x1A
movs r4, 0
cmp r2, 0xA
bls _0801EF0C
subs r2, 0xA
movs r3, 0
cmp r4, r2
bcs _0801EF0C
_0801EEFA:
ldrb r0, [r1]
cmp r0, 0xF9
bne _0801EF02
adds r1, 0x1
_0801EF02:
adds r1, 0x1
adds r4, 0x1
adds r3, 0x1
cmp r3, r2
bcc _0801EEFA
_0801EF0C:
lsls r0, r4, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_801EED8
thumb_func_start sub_801EF1C
sub_801EF1C: @ 801EF1C
movs r1, 0
strb r1, [r0]
bx lr
thumb_func_end sub_801EF1C
thumb_func_start sub_801EF24
sub_801EF24: @ 801EF24
push {r4,lr}
adds r4, r0, 0
movs r0, 0x2
strb r0, [r4]
adds r0, r4, 0x1
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
strb r0, [r4, 0x9]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EF24
thumb_func_start sub_801EF4C
sub_801EF4C: @ 801EF4C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
strb r0, [r4]
adds r0, r4, 0x1
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
adds r4, 0x9
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
adds r1, 0x1A
adds r0, r4, 0
bl StringCopy
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EF4C
thumb_func_start sub_801EF7C
sub_801EF7C: @ 801EF7C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3
strb r0, [r4]
adds r0, r4, 0x1
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
strb r0, [r4, 0x9]
bl sub_8011A50
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EF7C
thumb_func_start sub_801EFA8
sub_801EFA8: @ 801EFA8
push {r4,lr}
adds r4, r0, 0
movs r0, 0x4
strb r0, [r4]
adds r0, r4, 0x1
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
strb r0, [r4, 0x9]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EFA8
thumb_func_start sub_801EFD0
sub_801EFD0: @ 801EFD0
push {r4,lr}
adds r4, r0, 0
movs r0, 0x5
strb r0, [r4]
adds r0, r4, 0x1
ldr r1, =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
strb r0, [r4, 0x9]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801EFD0
thumb_func_start sub_801EFF8
sub_801EFF8: @ 801EFF8
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
ldrb r0, [r5]
adds r1, r0, 0
adds r4, r5, 0x1
adds r5, r4, 0
adds r5, 0x8
cmp r0, 0x2
beq _0801F020
cmp r0, 0x2
bgt _0801F016
cmp r0, 0x1
beq _0801F044
b _0801F0A8
_0801F016:
cmp r1, 0x3
beq _0801F07A
cmp r1, 0x5
beq _0801F06E
b _0801F0A8
_0801F020:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
ldrb r1, [r4, 0x8]
cmp r0, r1
beq _0801F0A8
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, =gText_F700JoinedChat
b _0801F094
.pool
_0801F044:
adds r0, r6, 0
adds r1, r4, 0
bl StringCopy
movs r1, 0xFC
strb r1, [r0]
adds r0, 0x1
movs r1, 0x13
strb r1, [r0]
adds r0, 0x1
movs r1, 0x2A
strb r1, [r0]
adds r0, 0x1
movs r1, 0xF0
strb r1, [r0]
adds r0, 0x1
adds r1, r5, 0
bl StringCopy
movs r0, 0x1
b _0801F0AA
_0801F06E:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x79
adds r1, r4, 0
bl StringCopy
_0801F07A:
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x13]
ldrb r5, [r5]
cmp r0, r5
beq _0801F0A8
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, =gText_F700LeftChat
_0801F094:
adds r0, r6, 0
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
b _0801F0AA
.pool
_0801F0A8:
movs r0, 0
_0801F0AA:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801EFF8
thumb_func_start sub_801F0B0
sub_801F0B0: @ 801F0B0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x10]
bx lr
.pool
thumb_func_end sub_801F0B0
thumb_func_start sub_801F0BC
sub_801F0BC: @ 801F0BC
ldr r2, =gUnknown_02022C84
ldr r3, [r2]
ldrb r2, [r3, 0x11]
strb r2, [r0]
ldrb r0, [r3, 0x12]
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_801F0BC
thumb_func_start sub_801F0D0
sub_801F0D0: @ 801F0D0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x1A
bx lr
.pool
thumb_func_end sub_801F0D0
thumb_func_start sub_801F0DC
sub_801F0DC: @ 801F0DC
push {lr}
bl sub_801F0D0
bl StringLength_Multibyte
pop {r1}
bx r1
thumb_func_end sub_801F0DC
thumb_func_start sub_801F0EC
sub_801F0EC: @ 801F0EC
push {r4,lr}
adds r4, r0, 0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r3, [r0, 0x15]
ldrb r2, [r0, 0x14]
subs r0, r3, r2
cmp r0, 0
bge _0801F108
negs r0, r0
str r3, [r4]
b _0801F10A
.pool
_0801F108:
str r2, [r4]
_0801F10A:
str r0, [r1]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801F0EC
thumb_func_start sub_801F114
sub_801F114: @ 801F114
push {lr}
bl sub_801EED8
lsls r0, 16
lsrs r2, r0, 16
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x1A
cmp r2, 0
beq _0801F13A
_0801F12A:
ldrb r0, [r1]
cmp r0, 0xF9
bne _0801F132
adds r1, 0x1
_0801F132:
adds r1, 0x1
subs r2, 0x1
cmp r2, 0
bne _0801F12A
_0801F13A:
adds r0, r1, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_801F114
thumb_func_start sub_801F144
sub_801F144: @ 801F144
push {r4,lr}
bl sub_801EED8
lsls r0, 16
lsrs r4, r0, 16
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x1A
movs r2, 0
movs r3, 0
cmp r2, r4
bcs _0801F174
_0801F15E:
ldrb r0, [r1]
cmp r0, 0xF9
bne _0801F166
adds r1, 0x1
_0801F166:
adds r1, 0x1
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
adds r3, 0x1
cmp r3, r4
bcc _0801F15E
_0801F174:
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_801F144
thumb_func_start sub_801F180
sub_801F180: @ 801F180
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x39
bx lr
.pool
thumb_func_end sub_801F180
thumb_func_start sub_801F18C
sub_801F18C: @ 801F18C
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x16]
bx lr
.pool
thumb_func_end sub_801F18C
thumb_func_start sub_801F198
sub_801F198: @ 801F198
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
ldrb r0, [r0, 0x15]
bx lr
.pool
thumb_func_end sub_801F198
thumb_func_start sub_801F1A4
sub_801F1A4: @ 801F1A4
push {lr}
bl sub_801EEA8
ldrb r1, [r0]
cmp r1, 0xFF
bhi _0801F1BE
ldr r0, =gUnknown_082F2AA8
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, r1
beq _0801F1BE
cmp r0, 0
bne _0801F1C8
_0801F1BE:
movs r0, 0x3
b _0801F1CA
.pool
_0801F1C8:
movs r0, 0
_0801F1CA:
pop {r1}
bx r1
thumb_func_end sub_801F1A4
thumb_func_start sub_801F1D0
sub_801F1D0: @ 801F1D0
ldr r0, =gUnknown_02022C84
ldr r0, [r0]
adds r0, 0x79
bx lr
.pool
thumb_func_end sub_801F1D0
thumb_func_start copy_strings_to_sav1
copy_strings_to_sav1: @ 801F1DC
push {r4,lr}
ldr r4, =gSaveBlock1Ptr
ldr r0, [r4]
ldr r1, =0x00003c88
adds r0, r1
ldr r1, =gText_Hello
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003c9d
adds r0, r1
ldr r1, =gText_Pokemon2
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cb2
adds r0, r1
ldr r1, =gText_Trade
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cc7
adds r0, r1
ldr r1, =gText_Battle
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cdc
adds r0, r1
ldr r1, =gText_Lets
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003cf1
adds r0, r1
ldr r1, =gText_Ok
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d06
adds r0, r1
ldr r1, =gText_Sorry
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d1b
adds r0, r1
ldr r1, =gText_YayUnkF9F9
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d30
adds r0, r1
ldr r1, =gText_ThankYou
bl StringCopy
ldr r0, [r4]
ldr r1, =0x00003d45
adds r0, r1
ldr r1, =gText_ByeBye
bl StringCopy
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end copy_strings_to_sav1
thumb_func_start sub_801F2B4
sub_801F2B4: @ 801F2B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x7
bls _0801F2CE
b _0801F4C4
_0801F2CE:
lsls r0, 2
ldr r1, =_0801F2E0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801F2E0:
.4byte _0801F300
.4byte _0801F30E
.4byte _0801F4A8
.4byte _0801F35C
.4byte _0801F448
.4byte _0801F480
.4byte _0801F494
.4byte _0801F438
_0801F300:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801F30A
b _0801F49C
_0801F30A:
movs r0, 0x1
strh r0, [r4]
_0801F30E:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
strh r0, [r4, 0x8]
ldr r3, =gUnknown_02022C84
ldr r0, [r3]
ldrb r1, [r0, 0xD]
movs r5, 0x8
ldrsh r0, [r4, r5]
cmp r1, r0
beq _0801F33C
movs r0, 0x2
strh r0, [r4]
ldr r0, [r3]
strb r2, [r0, 0xD]
b _0801F4C4
.pool
_0801F33C:
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x6]
cmp r0, 0
bne _0801F354
bl sub_8011A9C
cmp r0, 0
beq _0801F354
b _0801F4C4
_0801F354:
movs r0, 0
strh r0, [r4, 0x2]
movs r0, 0x3
strh r0, [r4]
_0801F35C:
movs r1, 0x2
ldrsh r0, [r4, r1]
cmp r0, 0x4
bgt _0801F396
movs r2, 0x6
ldrsh r0, [r4, r2]
movs r3, 0x2
ldrsh r1, [r4, r3]
asrs r0, r1
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _0801F396
movs r2, 0x1
_0801F378:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bgt _0801F396
movs r5, 0x6
ldrsh r0, [r4, r5]
movs r3, 0x2
ldrsh r1, [r4, r3]
asrs r0, r1
ands r0, r2
cmp r0, 0
beq _0801F378
_0801F396:
ldrh r1, [r4, 0x2]
movs r5, 0x2
ldrsh r0, [r4, r5]
cmp r0, 0x5
bne _0801F3A2
b _0801F4C0
_0801F3A2:
strh r1, [r4, 0x4]
lsls r0, r1, 24
lsrs r0, 24
bl ResetBlockReceivedFlag
movs r1, 0x2
ldrsh r0, [r4, r1]
lsls r0, 8
ldr r1, =gBlockRecvBuffer
adds r0, r1
ldrb r0, [r0]
subs r0, 0x1
cmp r0, 0x4
bhi _0801F3E4
lsls r0, 2
ldr r1, =_0801F3D0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801F3D0:
.4byte _0801F3E4
.4byte _0801F3E8
.4byte _0801F3EC
.4byte _0801F3F0
.4byte _0801F3F4
_0801F3E4:
movs r0, 0x3
b _0801F3F6
_0801F3E8:
movs r0, 0x3
b _0801F3F6
_0801F3EC:
movs r0, 0x4
b _0801F3F6
_0801F3F0:
movs r0, 0x5
b _0801F3F6
_0801F3F4:
movs r0, 0x6
_0801F3F6:
strh r0, [r4, 0xA]
ldr r5, =gUnknown_02022C84
ldr r0, [r5]
adds r0, 0x39
movs r2, 0x2
ldrsh r1, [r4, r2]
lsls r1, 8
ldr r2, =gBlockRecvBuffer
adds r1, r2
bl sub_801EFF8
cmp r0, 0
beq _0801F42C
ldr r0, [r5]
ldrh r1, [r4, 0x2]
strb r1, [r0, 0x16]
movs r0, 0xC
movs r1, 0x2
bl sub_801F5EC
movs r0, 0x7
b _0801F42E
.pool
_0801F42C:
ldrh r0, [r4, 0xA]
_0801F42E:
strh r0, [r4]
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
b _0801F4C4
_0801F438:
movs r0, 0x2
bl sub_801F644
lsls r0, 24
cmp r0, 0
bne _0801F4C4
ldrh r0, [r4, 0xA]
b _0801F4C2
_0801F448:
ldr r6, =gUnknown_02022C84
ldr r0, [r6]
ldrb r0, [r0, 0x13]
cmp r0, 0
bne _0801F47C
movs r3, 0x4
ldrsh r0, [r4, r3]
cmp r0, 0
beq _0801F47C
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0801F474
bl sub_80104B0
ldr r1, [r6]
movs r0, 0x1
b _0801F49A
.pool
_0801F474:
movs r5, 0x4
ldrsh r0, [r4, r5]
bl sub_8011DE0
_0801F47C:
movs r0, 0x3
b _0801F4C2
_0801F480:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x13]
cmp r0, 0
beq _0801F49C
movs r0, 0x2
b _0801F49A
.pool
_0801F494:
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
movs r0, 0x3
_0801F49A:
strb r0, [r1, 0x17]
_0801F49C:
adds r0, r5, 0
bl DestroyTask
b _0801F4C4
.pool
_0801F4A8:
bl sub_8011A9C
cmp r0, 0
bne _0801F4C4
ldr r0, =gUnknown_02022C84
ldr r1, [r0]
ldrb r0, [r1, 0x13]
cmp r0, 0
bne _0801F4C0
ldrb r0, [r1, 0xD]
bl sub_80110B8
_0801F4C0:
movs r0, 0x1
_0801F4C2:
strh r0, [r4]
_0801F4C4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F2B4
thumb_func_start sub_801F4D0
sub_801F4D0: @ 801F4D0
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, =0x00002168
bl Alloc
str r0, [r4]
cmp r0, 0
beq _0801F52C
bl sub_8020890
cmp r0, 0
beq _0801F52C
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082F2C60
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r0, =gUnknown_082F2C70
bl InitWindows
bl reset_temp_tile_data_buffers
bl sub_8020770
ldr r0, [r4]
bl sub_801F574
bl sub_801F580
movs r0, 0
movs r1, 0
bl sub_801F5EC
movs r0, 0x1
b _0801F52E
.pool
_0801F52C:
movs r0, 0
_0801F52E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F4D0
thumb_func_start sub_801F534
sub_801F534: @ 801F534
push {lr}
movs r0, 0
bl sub_801F644
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_801F534
thumb_func_start sub_801F544
sub_801F544: @ 801F544
push {r4,lr}
bl sub_80208D0
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
cmp r0, 0
beq _0801F55A
bl Free
movs r0, 0
str r0, [r4]
_0801F55A:
bl FreeAllWindowBuffers
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F544
thumb_func_start sub_801F574
sub_801F574: @ 801F574
movs r2, 0
movs r1, 0xFF
strh r1, [r0, 0x18]
strh r1, [r0, 0x1E]
strh r2, [r0, 0x1A]
bx lr
thumb_func_end sub_801F574
thumb_func_start sub_801F580
sub_801F580: @ 801F580
push {r4,r5,lr}
ldr r1, =gUnknown_02022C88
ldr r0, [r1]
cmp r0, 0
beq _0801F5A8
movs r2, 0
adds r4, r1, 0
ldr r5, =sub_801FDD8
movs r3, 0
_0801F592:
ldr r0, [r4]
lsls r1, r2, 3
adds r0, r1
str r5, [r0]
strb r3, [r0, 0x4]
ldr r0, [r4]
adds r0, r1
strb r3, [r0, 0x5]
adds r2, 0x1
cmp r2, 0x2
ble _0801F592
_0801F5A8:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F580
thumb_func_start sub_801F5B8
sub_801F5B8: @ 801F5B8
push {r4-r6,lr}
ldr r1, =gUnknown_02022C88
ldr r0, [r1]
cmp r0, 0
beq _0801F5E0
movs r5, 0
adds r6, r1, 0
_0801F5C6:
ldr r1, [r6]
lsls r4, r5, 3
adds r1, r4
adds r0, r1, 0x5
ldr r1, [r1]
bl _call_via_r1
ldr r1, [r6]
adds r1, r4
strb r0, [r1, 0x4]
adds r5, 0x1
cmp r5, 0x2
ble _0801F5C6
_0801F5E0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_801F5B8
thumb_func_start sub_801F5EC
sub_801F5EC: @ 801F5EC
push {r4-r7,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
ldr r3, =gUnknown_02022C88
ldr r0, [r3]
lsrs r1, 21
adds r0, r1
ldr r2, =sub_801FDD8
str r2, [r0]
movs r4, 0
adds r5, r3, 0
adds r3, r1, 0
mov r12, r4
ldr r1, =gUnknown_082F2C98
movs r7, 0x1
adds r2, r1, 0x4
_0801F60E:
ldrh r0, [r1]
cmp r0, r6
bne _0801F634
ldr r1, [r5]
adds r1, r3
ldr r0, [r2]
str r0, [r1]
strb r7, [r1, 0x4]
ldr r0, [r5]
adds r0, r3
mov r1, r12
strb r1, [r0, 0x5]
b _0801F63E
.pool
_0801F634:
adds r1, 0x8
adds r2, 0x8
adds r4, 0x1
cmp r4, 0x14
bls _0801F60E
_0801F63E:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801F5EC
thumb_func_start sub_801F644
sub_801F644: @ 801F644
lsls r0, 24
ldr r1, =gUnknown_02022C88
ldr r1, [r1]
lsrs r0, 21
adds r1, r0
ldrb r0, [r1, 0x4]
bx lr
.pool
thumb_func_end sub_801F644
thumb_func_start sub_801F658
sub_801F658: @ 801F658
push {r4,lr}
adds r4, r0, 0
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0801F6EE
ldrb r0, [r4]
cmp r0, 0x6
bhi _0801F6E4
lsls r0, 2
ldr r1, =_0801F67C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801F67C:
.4byte _0801F698
.4byte _0801F6A2
.4byte _0801F6A8
.4byte _0801F6AE
.4byte _0801F6B4
.4byte _0801F6BA
.4byte _0801F6CC
_0801F698:
bl sub_8020480
bl sub_8020538
b _0801F6E8
_0801F6A2:
bl sub_8020584
b _0801F6E8
_0801F6A8:
bl sub_80205B4
b _0801F6E8
_0801F6AE:
bl task_tutorial_story_unknown
b _0801F6E8
_0801F6B4:
bl sub_8020680
b _0801F6E8
_0801F6BA:
bl sub_80206A4
bl sub_80206D0
bl sub_8020740
bl sub_80206E8
b _0801F6E8
_0801F6CC:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801F6E8
bl sub_80208E8
bl sub_8020A68
bl sub_8020B20
b _0801F6E8
_0801F6E4:
movs r0, 0
b _0801F6F0
_0801F6E8:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_0801F6EE:
movs r0, 0x1
_0801F6F0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F658
thumb_func_start sub_801F6F8
sub_801F6F8: @ 801F6F8
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801F708
cmp r0, 0x1
beq _0801F716
b _0801F720
_0801F708:
bl sub_80203B0
movs r0, 0x3
movs r1, 0x3
bl CopyWindowToVram
b _0801F720
_0801F716:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801F728
_0801F720:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0x1
_0801F728:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F6F8
thumb_func_start sub_801F730
sub_801F730: @ 801F730
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801F740
cmp r0, 0x1
beq _0801F74E
b _0801F758
_0801F740:
bl sub_802040C
movs r0, 0x3
movs r1, 0x3
bl CopyWindowToVram
b _0801F758
_0801F74E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801F760
_0801F758:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0x1
_0801F760:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F730
thumb_func_start sub_801F768
sub_801F768: @ 801F768
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0x1
beq _0801F79E
cmp r0, 0x1
bgt _0801F77C
cmp r0, 0
beq _0801F782
b _0801F7C4
_0801F77C:
cmp r0, 0x2
beq _0801F7AA
b _0801F7C4
_0801F782:
movs r0, 0x1
bl sub_802091C
bl sub_8020320
cmp r0, 0
bne _0801F7CA
bl sub_80201A4
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
b _0801F7C4
_0801F79E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _0801F7C4
b _0801F7CA
_0801F7AA:
bl sub_8020368
cmp r0, 0
bne _0801F7CA
bl sub_802093C
movs r0, 0
bl sub_802091C
bl sub_8020B80
movs r0, 0
b _0801F7CC
_0801F7C4:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_0801F7CA:
movs r0, 0x1
_0801F7CC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F768
thumb_func_start sub_801F7D4
sub_801F7D4: @ 801F7D4
push {lr}
bl sub_802093C
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_801F7D4
thumb_func_start sub_801F7E0
sub_801F7E0: @ 801F7E0
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801F7F0
cmp r0, 0x1
beq _0801F814
b _0801F81E
_0801F7F0:
movs r0, 0
movs r1, 0
bl sub_801FF18
movs r0, 0x17
movs r1, 0xB
movs r2, 0x1
bl sub_801FDDC
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
b _0801F81E
.pool
_0801F814:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801F826
_0801F81E:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r0, 0x1
_0801F826:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F7E0
thumb_func_start sub_801F82C
sub_801F82C: @ 801F82C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801F83C
cmp r0, 0x1
beq _0801F84C
b _0801F862
_0801F83C:
bl sub_8020094
bl sub_801FEBC
movs r0, 0
bl CopyBgTilemapBufferToVram
b _0801F862
_0801F84C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801F868
bl sub_80200C8
bl sub_801FEE4
movs r0, 0
b _0801F86A
_0801F862:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_0801F868:
movs r0, 0x1
_0801F86A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F82C
thumb_func_start sub_801F870
sub_801F870: @ 801F870
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801F882
cmp r0, 0x1
beq _0801F8BA
b _0801F8CC
_0801F882:
add r1, sp, 0x8
add r0, sp, 0x4
bl sub_801F0EC
ldr r0, [sp, 0x4]
lsls r0, 16
lsrs r0, 16
ldr r1, [sp, 0x8]
lsls r1, 16
lsrs r1, 16
movs r2, 0
bl sub_80200EC
bl sub_801F0D0
adds r1, r0, 0
movs r0, 0x2
str r0, [sp]
movs r0, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8020118
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
b _0801F8CC
_0801F8BA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801F8D2
bl sub_8020B80
movs r0, 0
b _0801F8D4
_0801F8CC:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_0801F8D2:
movs r0, 0x1
_0801F8D4:
add sp, 0xC
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801F870
thumb_func_start sub_801F8DC
sub_801F8DC: @ 801F8DC
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
ldrb r0, [r6]
cmp r0, 0x1
beq _0801F938
cmp r0, 0x1
bgt _0801F8F2
cmp r0, 0
beq _0801F8FC
b _0801F972
_0801F8F2:
cmp r0, 0x2
beq _0801F95C
cmp r0, 0x3
beq _0801F96E
b _0801F972
_0801F8FC:
bl sub_801F144
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_801F114
adds r5, r0, 0
bl StringLength_Multibyte
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x66
bl sub_80200EC
movs r0, 0x5
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
movs r3, 0x4
bl sub_8020118
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
b _0801F972
_0801F938:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801F978
movs r0, 0x1
movs r1, 0x10
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
b _0801F972
.pool
_0801F95C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801F978
movs r0, 0x1
bl sub_80209AC
b _0801F972
_0801F96E:
movs r0, 0
b _0801F97A
_0801F972:
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
_0801F978:
movs r0, 0x1
_0801F97A:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801F8DC
thumb_func_start sub_801F984
sub_801F984: @ 801F984
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
ldrb r0, [r6]
cmp r0, 0x1
beq _0801F9E0
cmp r0, 0x1
bgt _0801F99A
cmp r0, 0
beq _0801F9A4
b _0801FA1A
_0801F99A:
cmp r0, 0x2
beq _0801FA00
cmp r0, 0x3
beq _0801FA16
b _0801FA1A
_0801F9A4:
bl sub_801F144
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_801F114
adds r5, r0, 0
bl StringLength_Multibyte
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
movs r2, 0
bl sub_80200EC
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
movs r3, 0x1
bl sub_8020118
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
b _0801FA1A
_0801F9E0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801FA20
bl sub_8020094
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
b _0801FA1A
.pool
_0801FA00:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801FA20
movs r0, 0
bl sub_80209AC
bl sub_80200C8
b _0801FA1A
_0801FA16:
movs r0, 0
b _0801FA22
_0801FA1A:
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
_0801FA20:
movs r0, 0x1
_0801FA22:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801F984
thumb_func_start sub_801FA2C
sub_801FA2C: @ 801FA2C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FA3C
cmp r0, 0x1
beq _0801FA50
b _0801FA5E
_0801FA3C:
bl sub_80201A4
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FA5E
_0801FA50:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801FA5E
movs r0, 0
b _0801FA60
_0801FA5E:
movs r0, 0x1
_0801FA60:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FA2C
thumb_func_start sub_801FA68
sub_801FA68: @ 801FA68
push {r4-r6,lr}
adds r6, r0, 0
ldrb r0, [r6]
cmp r0, 0x4
bhi _0801FB3A
lsls r0, 2
ldr r1, =_0801FA80
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801FA80:
.4byte _0801FA94
.4byte _0801FAC0
.4byte _0801FAF0
.4byte _0801FB14
.4byte _0801FADE
_0801FA94:
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrh r5, [r0, 0x1A]
bl sub_801F180
adds r4, r0, 0
bl sub_801F18C
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8020420
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
b _0801FB34
.pool
_0801FAC0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _0801FB3A
ldr r0, =gUnknown_02022C88
ldr r1, [r0]
ldrh r0, [r1, 0x1A]
cmp r0, 0x8
bhi _0801FAE8
adds r0, 0x1
strh r0, [r1, 0x1A]
movs r0, 0x4
strb r0, [r6]
_0801FADE:
movs r0, 0
b _0801FB3C
.pool
_0801FAE8:
strh r2, [r1, 0x1C]
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
_0801FAF0:
movs r0, 0
movs r1, 0
movs r2, 0x5
movs r3, 0x11
bl ScrollWindow
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
ldr r0, =gUnknown_02022C88
ldr r1, [r0]
ldrh r0, [r1, 0x1C]
adds r0, 0x1
strh r0, [r1, 0x1C]
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
_0801FB14:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801FB3A
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrh r0, [r0, 0x1C]
cmp r0, 0x2
bhi _0801FB34
ldrb r0, [r6]
subs r0, 0x1
b _0801FB38
.pool
_0801FB34:
ldrb r0, [r6]
adds r0, 0x1
_0801FB38:
strb r0, [r6]
_0801FB3A:
movs r0, 0x1
_0801FB3C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801FA68
thumb_func_start sub_801FB44
sub_801FB44: @ 801FB44
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FB54
cmp r0, 0x1
beq _0801FB60
b _0801FB66
_0801FB54:
bl sub_80209E0
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FB66
_0801FB60:
bl sub_8020A1C
b _0801FB68
_0801FB66:
movs r0, 0x1
_0801FB68:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FB44
thumb_func_start sub_801FB70
sub_801FB70: @ 801FB70
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FB80
cmp r0, 0x1
beq _0801FBA0
b _0801FBAA
_0801FB80:
movs r0, 0x3
movs r1, 0x10
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FBAA
.pool
_0801FBA0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FBAC
_0801FBAA:
movs r0, 0x1
_0801FBAC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FB70
thumb_func_start sub_801FBB4
sub_801FBB4: @ 801FBB4
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FBC4
cmp r0, 0x1
beq _0801FBE4
b _0801FBEE
_0801FBC4:
movs r0, 0x4
movs r1, 0
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FBEE
.pool
_0801FBE4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FBF0
_0801FBEE:
movs r0, 0x1
_0801FBF0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FBB4
thumb_func_start sub_801FBF8
sub_801FBF8: @ 801FBF8
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FC08
cmp r0, 0x1
beq _0801FC38
b _0801FC42
_0801FC08:
bl DynamicPlaceholderTextUtil_Reset
bl sub_801F1D0
adds r1, r0, 0
movs r0, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x5
movs r1, 0
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FC42
.pool
_0801FC38:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FC44
_0801FC42:
movs r0, 0x1
_0801FC44:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FBF8
thumb_func_start sub_801FC4C
sub_801FC4C: @ 801FC4C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FC5C
cmp r0, 0x1
beq _0801FC88
b _0801FC92
_0801FC5C:
movs r0, 0x6
movs r1, 0
bl sub_801FF18
movs r0, 0x17
movs r1, 0xA
movs r2, 0x1
bl sub_801FDDC
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FC92
.pool
_0801FC88:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FC94
_0801FC92:
movs r0, 0x1
_0801FC94:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FC4C
thumb_func_start sub_801FC9C
sub_801FC9C: @ 801FC9C
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FCAC
cmp r0, 0x1
beq _0801FCD8
b _0801FCE2
_0801FCAC:
movs r0, 0x7
movs r1, 0
bl sub_801FF18
movs r0, 0x17
movs r1, 0xA
movs r2, 0x1
bl sub_801FDDC
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FCE2
.pool
_0801FCD8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FCE4
_0801FCE2:
movs r0, 0x1
_0801FCE4:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FC9C
thumb_func_start sub_801FCEC
sub_801FCEC: @ 801FCEC
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FCFC
cmp r0, 0x1
beq _0801FD1C
b _0801FD26
_0801FCFC:
movs r0, 0x8
movs r1, 0
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FD26
.pool
_0801FD1C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FD28
_0801FD26:
movs r0, 0x1
_0801FD28:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FCEC
thumb_func_start sub_801FD30
sub_801FD30: @ 801FD30
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FD40
cmp r0, 0x1
beq _0801FD74
b _0801FD7E
_0801FD40:
bl DynamicPlaceholderTextUtil_Reset
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x9
movs r1, 0
bl sub_801FF18
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FD7E
.pool
_0801FD74:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FD80
_0801FD7E:
movs r0, 0x1
_0801FD80:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FD30
thumb_func_start sub_801FD88
sub_801FD88: @ 801FD88
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0
beq _0801FD98
cmp r0, 0x1
beq _0801FDC4
b _0801FDCE
_0801FD98:
movs r0, 0xA
movs r1, 0
bl sub_801FF18
movs r0, 0x17
movs r1, 0xA
movs r2, 0x1
bl sub_801FDDC
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
ldrb r0, [r0, 0x1E]
movs r1, 0x3
bl CopyWindowToVram
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0801FDCE
.pool
_0801FDC4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0801FDD0
_0801FDCE:
movs r0, 0x1
_0801FDD0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801FD88
thumb_func_start sub_801FDD8
sub_801FDD8: @ 801FDD8
movs r0, 0
bx lr
thumb_func_end sub_801FDD8
thumb_func_start sub_801FDDC
sub_801FDDC: @ 801FDDC
push {r4-r7,lr}
sub sp, 0x14
lsls r0, 24
lsls r1, 24
lsls r2, 24
lsrs r7, r2, 24
ldr r4, =0xffffff00
ldr r2, [sp, 0xC]
ands r2, r4
lsrs r0, 16
ldr r3, =0xffff00ff
ands r2, r3
orrs r2, r0
lsrs r1, 8
ldr r0, =0xff00ffff
ands r2, r0
orrs r2, r1
ldr r0, =0x00ffffff
ands r2, r0
movs r0, 0xC0
lsls r0, 19
orrs r2, r0
str r2, [sp, 0xC]
ldr r0, [sp, 0x10]
ands r0, r4
movs r1, 0x4
orrs r0, r1
ands r0, r3
movs r1, 0xE0
lsls r1, 4
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0xA4
lsls r1, 15
orrs r0, r1
str r0, [sp, 0x10]
add r0, sp, 0xC
bl AddWindow
adds r1, r0, 0
ldr r5, =gUnknown_02022C88
ldr r0, [r5]
movs r6, 0
strh r1, [r0, 0x18]
lsls r0, r1, 16
lsrs r0, 16
cmp r0, 0xFF
beq _0801FE94
lsls r0, r1, 24
lsrs r0, 24
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r0, [r5]
ldrb r0, [r0, 0x18]
bl PutWindowTilemap
ldr r0, [r5]
ldrb r0, [r0, 0x18]
ldr r2, =gText_Yes
movs r1, 0x1
str r1, [sp]
movs r4, 0xFF
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x18]
ldr r2, =gText_No
movs r1, 0x11
str r1, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x18]
movs r1, 0x1
movs r2, 0xD
bl sub_8098858
ldr r0, [r5]
ldrb r0, [r0, 0x18]
movs r1, 0x2
adds r2, r7, 0
bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
_0801FE94:
add sp, 0x14
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801FDDC
thumb_func_start sub_801FEBC
sub_801FEBC: @ 801FEBC
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
ldrh r0, [r0, 0x18]
cmp r0, 0xFF
beq _0801FEDA
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl ClearStdWindowAndFrameToTransparent
ldr r0, [r4]
ldrb r0, [r0, 0x18]
bl ClearWindowTilemap
_0801FEDA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801FEBC
thumb_func_start sub_801FEE4
sub_801FEE4: @ 801FEE4
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
ldrh r0, [r0, 0x18]
cmp r0, 0xFF
beq _0801FEFE
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
ldr r1, [r4]
movs r0, 0xFF
strh r0, [r1, 0x18]
_0801FEFE:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801FEE4
thumb_func_start sub_801FF08
sub_801FF08: @ 801FF08
push {lr}
bl Menu_ProcessInput
lsls r0, 24
asrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_801FF08
thumb_func_start sub_801FF18
sub_801FF18: @ 801FF18
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x1C
adds r7, r0, 0
lsls r1, 16
lsrs r1, 16
mov r9, r1
ldr r1, =0xffffff00
ldr r3, [sp, 0x14]
ands r3, r1
ldr r2, =0xffff00ff
ands r3, r2
movs r0, 0x80
lsls r0, 4
orrs r3, r0
ldr r0, =0xff00ffff
ands r3, r0
movs r0, 0x80
lsls r0, 13
orrs r3, r0
ldr r5, =0x00ffffff
ands r3, r5
movs r0, 0xA8
lsls r0, 21
orrs r3, r0
str r3, [sp, 0x14]
ldr r0, [sp, 0x18]
ands r0, r1
movs r1, 0x4
orrs r0, r1
ands r0, r2
movs r1, 0xE0
lsls r1, 4
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0xD4
lsls r1, 15
orrs r0, r1
str r0, [sp, 0x18]
ldr r1, =gUnknown_082F2D40
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
adds r4, r0, r1
ldrb r0, [r4, 0xA]
cmp r0, 0
beq _0801FF98
lsls r0, r3, 16
movs r1, 0xF9
lsls r1, 24
adds r0, r1
lsrs r0, 16
ands r2, r3
orrs r2, r0
lsrs r1, r2, 24
adds r1, 0x7
lsls r1, 24
adds r0, r5, 0
ands r0, r2
orrs r0, r1
str r0, [sp, 0x14]
_0801FF98:
add r0, sp, 0x14
bl AddWindow
ldr r5, =gUnknown_02022C88
ldr r1, [r5]
strh r0, [r1, 0x1E]
ldrh r0, [r1, 0x1E]
mov r8, r0
cmp r0, 0xFF
beq _08020082
ldrb r0, [r4, 0x9]
cmp r0, 0
beq _0801FFE0
adds r0, r1, 0
adds r0, 0x22
ldr r1, [r4]
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r5]
adds r6, r0, 0
adds r6, 0x22
b _0801FFE2
.pool
_0801FFE0:
ldr r6, [r4]
_0801FFE2:
mov r0, r9
lsls r1, r0, 8
movs r0, 0
movs r2, 0
bl ChangeBgY
mov r1, r8
lsls r0, r1, 24
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0x11
bl FillWindowPixelBuffer
adds r0, r5, 0
bl PutWindowTilemap
ldr r1, =gUnknown_082F2D40
lsls r0, r7, 1
adds r0, r7
lsls r0, 2
adds r4, r0, r1
ldrb r0, [r4, 0x4]
cmp r0, 0x1
bne _08020050
adds r0, r5, 0
movs r1, 0xA
movs r2, 0x2
bl sub_80989E0
ldrb r3, [r4, 0x5]
adds r3, 0x8
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4, 0x6]
adds r0, 0x8
lsls r0, 24
lsrs r0, 24
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
ldrb r0, [r4, 0x7]
str r0, [sp, 0xC]
ldrb r0, [r4, 0x8]
str r0, [sp, 0x10]
adds r0, r5, 0
movs r1, 0x1
adds r2, r6, 0
bl AddTextPrinterParameterized5
b _0802007A
.pool
_08020050:
adds r0, r5, 0
movs r1, 0xA
movs r2, 0x2
bl sub_8098858
ldrb r3, [r4, 0x5]
ldrb r0, [r4, 0x6]
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
ldrb r0, [r4, 0x7]
str r0, [sp, 0xC]
ldrb r0, [r4, 0x8]
str r0, [sp, 0x10]
adds r0, r5, 0
movs r1, 0x1
adds r2, r6, 0
bl AddTextPrinterParameterized5
_0802007A:
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
mov r1, r8
strh r1, [r0, 0x1E]
_08020082:
add sp, 0x1C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801FF18
thumb_func_start sub_8020094
sub_8020094: @ 8020094
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
ldrh r0, [r0, 0x1E]
cmp r0, 0xFF
beq _080200B2
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl ClearStdWindowAndFrameToTransparent
ldr r0, [r4]
ldrb r0, [r0, 0x1E]
bl ClearWindowTilemap
_080200B2:
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020094
thumb_func_start sub_80200C8
sub_80200C8: @ 80200C8
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r0, [r4]
ldrh r0, [r0, 0x1E]
cmp r0, 0xFF
beq _080200E2
lsls r0, 24
lsrs r0, 24
bl RemoveWindow
ldr r1, [r4]
movs r0, 0xFF
strh r0, [r1, 0x1E]
_080200E2:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80200C8
thumb_func_start sub_80200EC
sub_80200EC: @ 80200EC
push {lr}
sub sp, 0x8
adds r3, r0, 0
lsls r2, 24
lsrs r2, 24
lsls r3, 19
lsrs r3, 16
lsls r1, 19
lsrs r1, 16
str r1, [sp]
movs r0, 0xE
str r0, [sp, 0x4]
movs r0, 0x1
adds r1, r2, 0
adds r2, r3, 0
movs r3, 0x1
bl FillWindowPixelRect
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80200EC
thumb_func_start sub_8020118
sub_8020118: @ 8020118
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x34
mov r10, r1
ldr r1, [sp, 0x54]
lsls r0, 16
lsrs r5, r0, 16
mov r9, r5
lsls r2, 24
lsrs r4, r2, 24
mov r8, r4
lsls r3, 24
lsrs r7, r3, 24
lsls r1, 24
lsrs r6, r1, 24
cmp r4, 0
beq _08020154
bl sub_801F198
adds r1, r0, 0
subs r1, r5
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
adds r2, r4, 0
bl sub_80200EC
_08020154:
add r0, sp, 0xC
mov r1, r8
strb r1, [r0]
strb r7, [r0, 0x1]
strb r6, [r0, 0x2]
add r4, sp, 0x10
movs r0, 0xFC
strb r0, [r4]
movs r0, 0x14
strb r0, [r4, 0x1]
movs r0, 0x8
strb r0, [r4, 0x2]
mov r0, sp
adds r0, 0x13
mov r1, r10
bl StringCopy
mov r0, r9
lsls r2, r0, 27
lsrs r2, 24
add r1, sp, 0xC
str r1, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0x2
movs r3, 0x1
bl AddTextPrinterParameterized3
add sp, 0x34
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8020118
thumb_func_start sub_80201A4
sub_80201A4: @ 80201A4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4C
movs r0, 0x2
movs r1, 0xFF
bl FillWindowPixelBuffer
bl sub_801F0B0
lsls r0, 24
lsrs r2, r0, 24
add r1, sp, 0xC
movs r0, 0
strb r0, [r1]
movs r0, 0xE
strb r0, [r1, 0x1]
movs r0, 0xD
strb r0, [r1, 0x2]
cmp r2, 0x3
beq _08020240
add r1, sp, 0x10
movs r0, 0xFC
strb r0, [r1]
movs r0, 0x14
strb r0, [r1, 0x1]
movs r0, 0x8
strb r0, [r1, 0x2]
str r0, [sp, 0x40]
str r1, [sp, 0x44]
cmp r2, 0x2
bne _080201EC
movs r1, 0x6
str r1, [sp, 0x40]
_080201EC:
movs r7, 0
movs r6, 0
lsls r0, r2, 2
ldr r1, =gUnknown_082F2BA8
adds r0, r2
lsls r0, 3
adds r4, r0, r1
ldr r0, [sp, 0x40]
lsls r5, r0, 24
_080201FE:
ldr r1, [r4]
cmp r1, 0
bne _08020206
b _0802030C
_08020206:
mov r0, sp
adds r0, 0x13
bl StringCopy
lsls r3, r6, 24
lsrs r3, 24
add r1, sp, 0xC
str r1, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
ldr r0, [sp, 0x44]
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0
lsrs r2, r5, 24
bl AddTextPrinterParameterized3
adds r4, 0x4
adds r7, 0x1
adds r0, r6, 0
adds r0, 0xC
lsls r0, 16
lsrs r6, r0, 16
cmp r7, 0x9
ble _080201FE
b _0802030C
.pool
_08020240:
movs r1, 0x4
str r1, [sp, 0x40]
movs r7, 0
movs r6, 0
_08020248:
adds r0, r7, 0
bl sub_801EE6C
adds r5, r0, 0
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
cmp r0, 0x28
bgt _08020286
lsls r3, r6, 24
lsrs r3, 24
add r4, sp, 0xC
str r4, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r4, 0x80
lsls r4, 19
lsrs r2, r4, 24
bl AddTextPrinterParameterized3
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
mov r10, r6
b _08020300
_08020286:
adds r0, r5, 0
bl StringLength_Multibyte
adds r4, r0, 0
mov r1, sp
adds r1, 0x10
str r1, [sp, 0x44]
ldr r0, [sp, 0x40]
lsls r0, 24
mov r8, r0
lsls r1, r6, 24
mov r9, r1
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
mov r10, r6
ldr r7, [sp, 0x40]
adds r7, 0x23
ldr r6, [sp, 0x44]
_080202AC:
subs r4, 0x1
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl StringCopyN_Multibyte
movs r0, 0
adds r1, r6, 0
movs r2, 0
bl GetStringWidth
cmp r0, 0x23
bgt _080202AC
mov r1, r8
lsrs r2, r1, 24
mov r0, r9
lsrs r4, r0, 24
add r1, sp, 0xC
str r1, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
ldr r1, [sp, 0x44]
str r1, [sp, 0x8]
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
adds r2, r7, 0
add r0, sp, 0xC
str r0, [sp]
movs r1, 0x1
negs r1, r1
str r1, [sp, 0x4]
ldr r0, =gText_Ellipsis
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
_08020300:
ldr r7, [sp, 0x48]
mov r4, r10
lsls r0, r4, 16
lsrs r6, r0, 16
cmp r7, 0x9
ble _08020248
_0802030C:
add sp, 0x4C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_80201A4
thumb_func_start sub_8020320
sub_8020320: @ 8020320
push {r4,lr}
ldr r1, =gUnknown_02022C88
ldr r2, [r1]
ldrh r3, [r2, 0x20]
movs r4, 0x20
ldrsh r0, [r2, r4]
cmp r0, 0x37
bgt _08020354
adds r0, r3, 0
adds r0, 0xC
strh r0, [r2, 0x20]
lsls r0, 16
asrs r0, 16
cmp r0, 0x37
ble _08020348
movs r0, 0x38
strh r0, [r2, 0x20]
b _08020354
.pool
_08020348:
movs r1, 0x20
ldrsh r0, [r2, r1]
bl sub_80207C0
movs r0, 0x1
b _08020360
_08020354:
ldr r0, [r1]
movs r4, 0x20
ldrsh r0, [r0, r4]
bl sub_8020818
movs r0, 0
_08020360:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020320
thumb_func_start sub_8020368
sub_8020368: @ 8020368
push {r4,lr}
ldr r1, =gUnknown_02022C88
ldr r2, [r1]
ldrh r3, [r2, 0x20]
movs r4, 0x20
ldrsh r0, [r2, r4]
cmp r0, 0
ble _0802039C
adds r0, r3, 0
subs r0, 0xC
strh r0, [r2, 0x20]
lsls r0, 16
cmp r0, 0
bgt _08020390
movs r0, 0
strh r0, [r2, 0x20]
b _0802039C
.pool
_08020390:
movs r1, 0x20
ldrsh r0, [r2, r1]
bl sub_80207C0
movs r0, 0x1
b _080203A8
_0802039C:
ldr r0, [r1]
movs r4, 0x20
ldrsh r0, [r0, r4]
bl sub_8020818
movs r0, 0
_080203A8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020368
thumb_func_start sub_80203B0
sub_80203B0: @ 80203B0
push {r4,r5,lr}
sub sp, 0xC
movs r0, 0x3
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD
bl sub_8098858
movs r5, 0xE
str r5, [sp]
movs r4, 0x5
str r4, [sp, 0x4]
ldr r0, =gUnknown_082F2DC8
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x2
movs r2, 0x8
movs r3, 0x1
bl PrintTextArray
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
str r5, [sp]
str r4, [sp, 0x4]
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x2
movs r2, 0
movs r3, 0x1
bl sub_81983AC
movs r0, 0x3
bl PutWindowTilemap
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80203B0
thumb_func_start sub_802040C
sub_802040C: @ 802040C
push {lr}
movs r0, 0x3
movs r1, 0
bl ClearStdWindowAndFrameToTransparent
movs r0, 0x3
bl ClearWindowTilemap
pop {r0}
bx r0
thumb_func_end sub_802040C
thumb_func_start sub_8020420
sub_8020420: @ 8020420
push {r4,r5,lr}
sub sp, 0x10
adds r5, r1, 0
lsls r0, 16
lsrs r0, 16
lsls r2, 24
add r3, sp, 0xC
movs r1, 0x1
strb r1, [r3]
lsrs r2, 23
adds r1, r2, 0x2
strb r1, [r3, 0x1]
adds r1, r3, 0
adds r2, 0x3
strb r2, [r1, 0x2]
lsls r4, r0, 4
subs r4, r0
lsls r3, r4, 16
lsrs r3, 16
movs r0, 0xA8
str r0, [sp]
movs r0, 0xF
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
add r0, sp, 0xC
str r0, [sp]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8020420
thumb_func_start sub_8020480
sub_8020480: @ 8020480
push {lr}
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x3
bl ShowBg
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuRegBits
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r1, 0xE0
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x000040f0
movs r0, 0x40
bl SetGpuReg
movs r0, 0x44
movs r1, 0x90
bl SetGpuReg
movs r0, 0x48
movs r1, 0x3D
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x3F
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_8020480
thumb_func_start sub_8020538
sub_8020538: @ 8020538
push {r4,lr}
ldr r4, =gUnknown_02022C88
ldr r1, [r4]
movs r0, 0x94
lsls r0, 1
adds r1, r0
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00000928
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001128
adds r1, r0
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r1, [r4]
ldr r0, =0x00001928
adds r1, r0
movs r0, 0x2
bl SetBgTilemapBuffer
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020538
thumb_func_start sub_8020584
sub_8020584: @ 8020584
push {lr}
sub sp, 0x8
movs r1, 0xC0
lsls r1, 19
movs r0, 0
movs r2, 0x20
movs r3, 0x1
bl RequestDma3Fill
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_8020584
thumb_func_start sub_80205B4
sub_80205B4: @ 80205B4
push {lr}
sub sp, 0x4
ldr r0, =gUnknown_08DD4BD0
movs r1, 0x70
movs r2, 0x20
bl LoadPalette
ldr r0, =gUnknown_08DD4BB0
movs r1, 0xC0
movs r2, 0x20
bl LoadPalette
ldr r1, =gUnknown_08DD4BF0
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
ldr r1, =gUnknown_08DD4C4C
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_80205B4
thumb_func_start task_tutorial_story_unknown
task_tutorial_story_unknown: @ 8020604
push {r4,r5,lr}
sub sp, 0x4
ldr r0, =gLinkMiscMenu_Pal
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r1, =gLinkMiscMenu_Gfx
movs r0, 0
str r0, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl decompress_and_copy_tile_data_to_vram
adds r5, r0, 0
cmp r5, 0
beq _0802064E
movs r1, 0x88
lsls r1, 2
adds r0, r5, r1
ldr r4, =gUnknown_02022C88
ldr r1, [r4]
ldr r2, =0x00002128
adds r1, r2
movs r2, 0x8
bl CpuFastSet
movs r1, 0x84
lsls r1, 3
adds r0, r5, r1
ldr r1, [r4]
ldr r2, =0x00002148
adds r1, r2
movs r2, 0x8
bl CpuFastSet
_0802064E:
ldr r1, =gLinkMiscMenu_Tilemap
movs r0, 0x2
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x2
bl CopyBgTilemapBufferToVram
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end task_tutorial_story_unknown
thumb_func_start sub_8020680
sub_8020680: @ 8020680
push {lr}
ldr r0, =gUnknown_082F2C20
movs r1, 0x80
movs r2, 0x20
bl LoadPalette
ldr r1, =0x06004020
movs r0, 0
movs r2, 0x20
movs r3, 0x1
bl RequestDma3Fill
pop {r0}
bx r0
.pool
thumb_func_end sub_8020680
thumb_func_start sub_80206A4
sub_80206A4: @ 80206A4
push {lr}
ldr r0, =gUnknown_082F2C40
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
pop {r0}
bx r0
.pool
thumb_func_end sub_80206A4
thumb_func_start sub_80206D0
sub_80206D0: @ 80206D0
push {lr}
movs r0, 0x2
bl PutWindowTilemap
bl sub_80201A4
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_80206D0
thumb_func_start sub_80206E8
sub_80206E8: @ 80206E8
push {r4,lr}
sub sp, 0xC
add r1, sp, 0x8
movs r0, 0
strb r0, [r1]
movs r0, 0xFF
strb r0, [r1, 0x1]
movs r4, 0
_080206F8:
ldr r0, =gUnknown_02022C88
ldr r1, [r0]
ldr r0, =0x00002128
adds r1, r0
lsls r2, r4, 19
lsrs r2, 16
movs r0, 0x8
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r3, 0
bl BlitBitmapToWindow
adds r4, 0x1
cmp r4, 0xE
ble _080206F8
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80206E8
thumb_func_start sub_8020740
sub_8020740: @ 8020740
push {lr}
movs r0, 0x3
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD0
bl LoadUserWindowBorderGfx
movs r0, 0x3
movs r1, 0xA
movs r2, 0x20
bl LoadUserWindowBorderGfx_
ldr r0, =gUnknown_0860F074
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
pop {r0}
bx r0
.pool
thumb_func_end sub_8020740
thumb_func_start sub_8020770
sub_8020770: @ 8020770
push {lr}
sub sp, 0x10
ldr r0, =0xa2600001
str r0, [sp, 0x4]
ldr r0, =0x04000014
str r0, [sp]
mov r2, sp
movs r1, 0
movs r0, 0x1
strb r0, [r2, 0x8]
mov r0, sp
strb r1, [r0, 0x9]
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
strh r1, [r0, 0x20]
str r1, [sp, 0xC]
add r0, sp, 0xC
ldr r1, =gScanlineEffectRegBuffers
ldr r2, =0x010003c0
bl CpuFastSet
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
add sp, 0x10
pop {r0}
bx r0
.pool
thumb_func_end sub_8020770
thumb_func_start sub_80207C0
sub_80207C0: @ 80207C0
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
mov r1, sp
strh r0, [r1]
ldr r5, =gScanlineEffect
ldrb r0, [r5, 0x14]
lsls r1, r0, 4
subs r1, r0
lsls r1, 7
ldr r4, =gScanlineEffectRegBuffers
adds r1, r4
ldr r2, =0x01000090
mov r0, sp
bl CpuSet
mov r0, sp
adds r0, 0x2
movs r1, 0
strh r1, [r0]
ldrb r2, [r5, 0x14]
lsls r1, r2, 4
subs r1, r2
lsls r1, 7
movs r2, 0x90
lsls r2, 1
adds r4, r2
adds r1, r4
ldr r2, =0x01000010
bl CpuSet
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_80207C0
thumb_func_start sub_8020818
sub_8020818: @ 8020818
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0x8
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
mov r0, sp
strh r4, [r0]
ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x01000090
mov r9, r0
mov r0, sp
adds r1, r5, 0
mov r2, r9
bl CpuSet
mov r0, sp
adds r0, 0x2
movs r6, 0
strh r6, [r0]
movs r2, 0x90
lsls r2, 1
adds r1, r5, r2
ldr r2, =0x01000010
mov r8, r2
bl CpuSet
add r0, sp, 0x4
strh r4, [r0]
movs r2, 0xF0
lsls r2, 3
adds r1, r5, r2
mov r2, r9
bl CpuSet
mov r0, sp
adds r0, 0x6
strh r6, [r0]
movs r1, 0x8A
lsls r1, 4
adds r5, r1
adds r1, r5, 0
mov r2, r8
bl CpuSet
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020818
thumb_func_start sub_8020890
sub_8020890: @ 8020890
push {r4,r5,lr}
movs r5, 0
ldr r4, =gUnknown_082F3134
_08020896:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x4
bls _08020896
ldr r0, =gUnknown_082F315C
bl LoadSpritePalette
ldr r4, =gUnknown_02022C8C
movs r0, 0x18
bl Alloc
str r0, [r4]
cmp r0, 0
beq _080208C8
movs r0, 0x1
b _080208CA
.pool
_080208C8:
movs r0, 0
_080208CA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8020890
thumb_func_start sub_80208D0
sub_80208D0: @ 80208D0
push {lr}
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
cmp r0, 0
beq _080208DE
bl Free
_080208DE:
pop {r0}
bx r0
.pool
thumb_func_end sub_80208D0
thumb_func_start sub_80208E8
sub_80208E8: @ 80208E8
push {lr}
ldr r0, =gUnknown_082F319C
movs r1, 0xA
movs r2, 0x18
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnknown_02022C8C
ldr r2, [r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, =gSprites
adds r1, r0
str r1, [r2]
pop {r0}
bx r0
.pool
thumb_func_end sub_80208E8
thumb_func_start sub_802091C
sub_802091C: @ 802091C
ldr r1, =gUnknown_02022C8C
ldr r1, [r1]
ldr r2, [r1]
adds r2, 0x3E
movs r1, 0x1
ands r0, r1
lsls r0, 2
ldrb r3, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r3
orrs r1, r0
strb r1, [r2]
bx lr
.pool
thumb_func_end sub_802091C
thumb_func_start sub_802093C
sub_802093C: @ 802093C
push {r4,r5,lr}
sub sp, 0x4
bl sub_801F0B0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r5, sp
adds r5, 0x1
mov r0, sp
adds r1, r5, 0
bl sub_801F0BC
cmp r4, 0x3
beq _0802097C
ldr r4, =gUnknown_02022C8C
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
ldr r1, [r4]
ldr r2, [r1]
mov r0, sp
ldrb r0, [r0]
lsls r0, 3
adds r0, 0xA
strh r0, [r2, 0x20]
ldr r2, [r1]
b _08020992
.pool
_0802097C:
ldr r4, =gUnknown_02022C8C
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
ldr r2, [r4]
ldr r1, [r2]
movs r0, 0x18
strh r0, [r1, 0x20]
ldr r2, [r2]
_08020992:
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, 0x18
strh r0, [r2, 0x22]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_802093C
thumb_func_start sub_80209AC
sub_80209AC: @ 80209AC
push {r4,lr}
adds r4, r0, 0
lsls r4, 2
ldr r0, =gUnknown_082F2DF0+2
adds r4, r0
movs r0, 0
bl IndexOfSpritePaletteTag
adds r1, r0, 0
lsls r1, 24
lsrs r1, 4
ldr r0, =0x01010000
adds r1, r0
lsrs r1, 16
adds r0, r4, 0
movs r2, 0x4
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_80209AC
thumb_func_start sub_80209E0
sub_80209E0: @ 80209E0
push {lr}
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08020A00
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _08020A0C
.pool
_08020A00:
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0x3
bl StartSpriteAnim
_08020A0C:
ldr r0, =gUnknown_02022C8C
ldr r1, [r0]
movs r0, 0
strh r0, [r1, 0x14]
pop {r0}
bx r0
.pool
thumb_func_end sub_80209E0
thumb_func_start sub_8020A1C
sub_8020A1C: @ 8020A1C
push {r4,lr}
ldr r4, =gUnknown_02022C8C
ldr r1, [r4]
ldrh r0, [r1, 0x14]
cmp r0, 0x3
bls _08020A30
_08020A28:
movs r0, 0
b _08020A62
.pool
_08020A30:
adds r0, 0x1
strh r0, [r1, 0x14]
lsls r0, 16
lsrs r0, 16
cmp r0, 0x3
bls _08020A60
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08020A54
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
b _08020A28
_08020A54:
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
b _08020A28
_08020A60:
movs r0, 0x1
_08020A62:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8020A1C
thumb_func_start sub_8020A68
sub_8020A68: @ 8020A68
push {r4,r5,lr}
ldr r0, =gUnknown_082F31BC
movs r1, 0x4C
movs r2, 0x98
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02022C8C
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, =gSprites
adds r1, r4
str r1, [r2, 0x8]
ldr r0, =gUnknown_082F31D4
movs r1, 0x40
movs r2, 0x98
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r2, 0x4]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020A68
thumb_func_start sub_8020ABC
sub_8020ABC: @ 8020ABC
push {r4,lr}
adds r4, r0, 0
bl sub_801F198
adds r3, r0, 0
cmp r3, 0xF
bne _08020AD8
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _08020AEC
_08020AD8:
adds r2, r4, 0
adds r2, 0x3E
ldrb r0, [r2]
movs r1, 0x5
negs r1, r1
ands r1, r0
strb r1, [r2]
lsls r0, r3, 3
adds r0, 0x4C
strh r0, [r4, 0x20]
_08020AEC:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020ABC
thumb_func_start sub_8020AF4
sub_8020AF4: @ 8020AF4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
movs r2, 0
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08020B1A
strh r2, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
ble _08020B1A
strh r2, [r1, 0x24]
_08020B1A:
pop {r0}
bx r0
thumb_func_end sub_8020AF4
thumb_func_start sub_8020B20
sub_8020B20: @ 8020B20
push {r4,r5,lr}
ldr r0, =gUnknown_082F322C
movs r1, 0x8
movs r2, 0x98
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, =gUnknown_02022C8C
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, =gSprites
adds r1, r4
str r1, [r2, 0xC]
ldr r0, =gUnknown_082F3244
movs r1, 0x20
movs r2, 0x98
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r2, 0x10]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020B20
thumb_func_start sub_8020B80
sub_8020B80: @ 8020B80
push {r4,lr}
bl sub_801F0B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bne _08020BB8
bl sub_801F0DC
cmp r0, 0
beq _08020BC2
ldr r3, =gUnknown_02022C8C
ldr r0, [r3]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, [r3]
ldr r0, [r0, 0x10]
movs r1, 0x3
bl StartSpriteAnim
b _08020BF6
.pool
_08020BB8:
bl sub_801F1A4
adds r4, r0, 0
cmp r4, 0x3
bne _08020BD8
_08020BC2:
ldr r0, =gUnknown_02022C8C
ldr r0, [r0]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
b _08020BF6
.pool
_08020BD8:
ldr r3, =gUnknown_02022C8C
ldr r0, [r3]
ldr r1, [r0, 0x10]
adds r1, 0x3E
ldrb r2, [r1]
movs r0, 0x5
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r0, [r3]
ldr r0, [r0, 0x10]
lsls r1, r4, 24
lsrs r1, 24
bl StartSpriteAnim
_08020BF6:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8020B80
.align 2, 0 @ don't pad with nop