pokeemerald/asm/mystery_gift.s
2019-03-31 12:36:48 -04:00

3854 lines
58 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start mevent_08142CE8
mevent_08142CE8: @ 801903C
push {r4-r6,lr}
adds r6, r0, 0
adds r0, r1, 0
adds r5, r2, 0
ldrb r4, [r6]
cmp r4, 0x1
beq _0801906E
cmp r4, 0x1
bgt _08019054
cmp r4, 0
beq _0801905A
b _0801909A
_08019054:
cmp r4, 0x2
beq _08019084
b _0801909A
_0801905A:
cmp r0, 0
beq _08019062
bl sub_8018884
_08019062:
movs r0, 0xB9
lsls r0, 1
bl PlayFanfare
strh r4, [r5]
b _0801907C
_0801906E:
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
lsls r0, 16
lsrs r0, 16
cmp r0, 0xF0
bls _0801909A
_0801907C:
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _0801909A
_08019084:
bl IsFanfareTaskInactive
lsls r0, 24
cmp r0, 0
beq _0801909A
movs r0, 0
strb r0, [r6]
bl sub_80188DC
movs r0, 0x1
b _0801909C
_0801909A:
movs r0, 0
_0801909C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end mevent_08142CE8
thumb_func_start mevent_message_stamp_card_etc_send_status
mevent_message_stamp_card_etc_send_status: @ 80190A4
push {r4,lr}
adds r3, r0, 0
ldr r1, =gText_CommunicationError
movs r0, 0
str r0, [r3]
adds r4, r1, 0
cmp r2, 0xE
bhi _08019166
lsls r0, r2, 2
ldr r1, =_080190C8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_080190C8:
.4byte _08019104
.4byte _0801910C
.4byte _08019114
.4byte _0801911C
.4byte _08019128
.4byte _08019130
.4byte _08019138
.4byte _08019140
.4byte _08019148
.4byte _08019150
.4byte _08019164
.4byte _08019158
.4byte _0801915C
.4byte _0801915C
.4byte _08019164
_08019104:
ldr r1, =gText_NothingSentOver
b _08019166
.pool
_0801910C:
ldr r1, =gText_RecordUploadedViaWireless
b _08019166
.pool
_08019114:
ldr r1, =gText_WonderCardSentTo
b _0801911E
.pool
_0801911C:
ldr r1, =gText_WonderNewsSentTo
_0801911E:
movs r0, 0x1
str r0, [r3]
b _08019166
.pool
_08019128:
ldr r1, =gText_StampSentTo
b _08019166
.pool
_08019130:
ldr r1, =gText_OtherTrainerHasCard
b _08019166
.pool
_08019138:
ldr r1, =gText_OtherTrainerHasStamp
b _08019166
.pool
_08019140:
ldr r1, =gText_OtherTrainerHasNews
b _08019166
.pool
_08019148:
ldr r1, =gText_NoMoreRoomForStamps
b _08019166
.pool
_08019150:
ldr r1, =gText_OtherTrainerCanceled
b _08019166
.pool
_08019158:
adds r1, r4, 0
b _08019166
_0801915C:
ldr r1, =gText_GiftSentTo
b _08019166
.pool
_08019164:
ldr r1, =gText_CantSendGiftToTrainer
_08019166:
adds r0, r1, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end mevent_message_stamp_card_etc_send_status
thumb_func_start sub_8019174
sub_8019174: @ 8019174
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
adds r1, r2, 0
adds r2, r3, 0
lsls r1, 24
lsrs r1, 24
mov r0, sp
bl mevent_message_stamp_card_etc_send_status
adds r1, r0, 0
ldr r0, [sp]
cmp r0, 0
bne _0801919A
adds r0, r4, 0
bl mevent_0814257C
b _080191A2
_0801919A:
adds r0, r4, 0
adds r2, r5, 0
bl mevent_08142CE8
_080191A2:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8019174
thumb_func_start task_add_00_mystery_gift
task_add_00_mystery_gift: @ 80191AC
push {r4,lr}
ldr r0, =task00_mystery_gift
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, =gTasks + 0x8
adds r4, r0
movs r0, 0
strb r0, [r4, 0x8]
strb r0, [r4, 0x9]
strb r0, [r4, 0xA]
strb r0, [r4, 0xB]
strb r0, [r4, 0xC]
strb r0, [r4, 0xD]
movs r1, 0
strh r0, [r4]
strh r0, [r4, 0x2]
strh r0, [r4, 0x4]
strh r0, [r4, 0x6]
strb r1, [r4, 0xE]
movs r0, 0x40
bl AllocZeroed
str r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end task_add_00_mystery_gift
thumb_func_start task00_mystery_gift
task00_mystery_gift: @ 80191F4
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r5, r0, r1
ldrb r0, [r5, 0x8]
cmp r0, 0x25
bls _0801920E
b _08019922
_0801920E:
lsls r0, 2
ldr r1, =_08019220
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08019220:
.4byte _080192B8
.4byte _080192BE
.4byte _08019300
.4byte _08019338
.4byte _0801935C
.4byte _080193AC
.4byte _0801940C
.4byte _08019444
.4byte _08019454
.4byte _080194CC
.4byte _080194F0
.4byte _08019508
.4byte _08019538
.4byte _08019574
.4byte _0801958C
.4byte _080195BC
.4byte _080198EC
.4byte _0801961A
.4byte _0801962A
.4byte _08019922
.4byte _0801963C
.4byte _08019688
.4byte _080196FE
.4byte _0801972E
.4byte _08019764
.4byte _0801977E
.4byte _08019792
.4byte _0801979E
.4byte _080197B2
.4byte _080197C6
.4byte _080197F8
.4byte _0801982C
.4byte _08019870
.4byte _08019884
.4byte _080198A0
.4byte _080198B8
.4byte _080198EC
.4byte _0801990C
_080192B8:
movs r0, 0x1
strb r0, [r5, 0x8]
b _08019922
_080192BE:
adds r0, r5, 0
adds r0, 0x9
adds r1, r5, 0
movs r2, 0
bl sub_8018A50
adds r1, r0, 0
cmp r1, 0x1
beq _080192E8
cmp r1, 0x1
bcc _080192DE
movs r0, 0x2
negs r0, r0
cmp r1, r0
beq _080192FA
b _08019922
_080192DE:
movs r0, 0
strb r0, [r5, 0xC]
bl sub_801B27C
b _080192EE
_080192E8:
strb r1, [r5, 0xC]
bl sub_801B0CC
_080192EE:
cmp r0, 0x1
bne _080192F4
b _08019820
_080192F4:
movs r0, 0x2
strb r0, [r5, 0x8]
b _08019922
_080192FA:
movs r0, 0x25
strb r0, [r5, 0x8]
b _08019922
_08019300:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _08019314
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gText_DontHaveCardNewOneInput
b _0801931A
.pool
_08019314:
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gText_DontHaveNewsNewOneInput
_0801931A:
bl mevent_0814257C
cmp r0, 0
bne _08019324
b _08019922
_08019324:
movs r0, 0x3
strb r0, [r5, 0x8]
movs r0, 0
movs r1, 0x1
bl sub_80186EC
b _08019922
.pool
_08019338:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _0801934C
ldr r0, =gText_WhereShouldCardBeAccessed
bl sub_8018884
b _08019352
.pool
_0801934C:
ldr r0, =gText_WhereShouldNewsBeAccessed
bl sub_8018884
_08019352:
movs r0, 0x4
strb r0, [r5, 0x8]
b _08019922
.pool
_0801935C:
adds r0, r5, 0
adds r0, 0x9
adds r1, r5, 0
movs r2, 0x1
bl sub_8018A50
adds r4, r0, 0
cmp r4, 0x1
beq _0801938A
cmp r4, 0x1
bcc _0801937C
movs r0, 0x2
negs r0, r0
cmp r4, r0
beq _08019396
b _08019922
_0801937C:
bl sub_80188DC
movs r1, 0
movs r0, 0x5
strb r0, [r5, 0x8]
strb r1, [r5, 0xD]
b _08019922
_0801938A:
bl sub_80188DC
movs r0, 0x5
strb r0, [r5, 0x8]
strb r4, [r5, 0xD]
b _08019922
_08019396:
bl sub_80188DC
ldrb r0, [r5, 0xC]
bl sub_8018D98
cmp r0, 0
beq _080193A6
b _08019820
_080193A6:
strb r0, [r5, 0x8]
movs r0, 0
b _080198FE
_080193AC:
ldr r0, =gStringVar1
movs r1, 0xFF
strb r1, [r0]
ldr r0, =gStringVar2
strb r1, [r0]
ldr r0, =gStringVar3
strb r1, [r0]
ldrb r0, [r5, 0xC]
cmp r0, 0
beq _080193D4
cmp r0, 0x1
beq _080193EE
b _08019406
.pool
_080193D4:
ldrb r0, [r5, 0xD]
cmp r0, 0x1
bne _080193E2
movs r0, 0x15
bl sub_8014EFC
b _08019406
_080193E2:
cmp r0, 0
bne _08019406
movs r0, 0x15
bl sub_80152A8
b _08019406
_080193EE:
ldrb r0, [r5, 0xD]
cmp r0, 0x1
bne _080193FC
movs r0, 0x16
bl sub_8014EFC
b _08019406
_080193FC:
cmp r0, 0
bne _08019406
movs r0, 0x16
bl sub_80152A8
_08019406:
movs r0, 0x6
strb r0, [r5, 0x8]
b _08019922
_0801940C:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _0801942C
movs r0, 0x1
bl sub_8018838
movs r0, 0x7
strb r0, [r5, 0x8]
ldrb r0, [r5, 0xC]
bl sub_801D484
b _08019922
.pool
_0801942C:
ldr r0, =gSpecialVar_Result
ldrh r0, [r0]
cmp r0, 0x5
beq _08019436
b _08019922
_08019436:
movs r0, 0x1
bl sub_8018838
b _080197C0
.pool
_08019444:
ldr r0, =gText_Communicating
bl sub_8018884
movs r0, 0x8
strb r0, [r5, 0x8]
b _08019922
.pool
_08019454:
adds r0, r5, 0
bl sub_801D4A8
subs r0, 0x2
cmp r0, 0x4
bls _08019462
b _08019922
_08019462:
lsls r0, 2
ldr r1, =_08019470
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08019470:
.4byte _080194AE
.4byte _080194A8
.4byte _080194B4
.4byte _08019492
.4byte _08019484
_08019484:
bl task_add_05_task_del_08FA224_when_no_RfuFunc
ldrh r0, [r5]
strb r0, [r5, 0xE]
movs r0, 0xD
strb r0, [r5, 0x8]
b _08019922
_08019492:
ldr r4, [r5, 0x10]
bl sub_801D4F4
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x40
bl memcpy
bl sub_801D4E4
b _08019922
_080194A8:
movs r0, 0xA
strb r0, [r5, 0x8]
b _08019922
_080194AE:
movs r0, 0x9
strb r0, [r5, 0x8]
b _08019922
_080194B4:
movs r0, 0xB
strb r0, [r5, 0x8]
ldr r0, =gStringVar1
ldr r1, =gLinkPlayers + 8
bl StringCopy
b _08019922
.pool
_080194CC:
adds r4, r5, 0
adds r4, 0x9
bl sub_801D4F4
adds r3, r0, 0
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl sub_8018B08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
beq _08019564
cmp r1, 0x1
bcs _08019552
movs r0, 0
b _08019566
_080194F0:
adds r4, r5, 0
adds r4, 0x9
bl sub_801D4F4
adds r1, r0, 0
adds r0, r4, 0
bl mevent_0814257C
cmp r0, 0
bne _08019506
b _08019922
_08019506:
b _0801956A
_08019508:
adds r0, r5, 0
adds r0, 0x9
ldr r3, =gText_ThrowAwayWonderCard
adds r1, r5, 0
movs r2, 0
bl sub_8018B08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
beq _08019564
cmp r1, 0x1
bcs _08019552
bl sub_801B3F8
cmp r0, 0x1
bne _08019534
movs r0, 0xC
strb r0, [r5, 0x8]
b _08019922
.pool
_08019534:
movs r0, 0
b _08019566
_08019538:
adds r0, r5, 0
adds r0, 0x9
ldr r3, =gText_HaventReceivedCardsGift
adds r1, r5, 0
movs r2, 0
bl sub_8018B08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
beq _08019564
cmp r1, 0x1
bcc _08019560
_08019552:
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08019564
b _08019922
.pool
_08019560:
movs r0, 0
b _08019566
_08019564:
movs r0, 0x1
_08019566:
bl sub_801D500
_0801956A:
bl sub_801D4E4
movs r0, 0x7
strb r0, [r5, 0x8]
b _08019922
_08019574:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _0801957E
b _08019922
_0801957E:
bl sub_800E084
movs r0, 0xE
strb r0, [r5, 0x8]
b _08019922
.pool
_0801958C:
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gText_CommunicationCompleted
bl sub_8018A1C
cmp r0, 0
bne _0801959C
b _08019922
_0801959C:
ldrb r0, [r5, 0xD]
cmp r0, 0x1
bne _080195AA
ldr r0, =gStringVar1
ldr r1, =gLinkPlayers + 8
bl StringCopy
_080195AA:
movs r0, 0xF
strb r0, [r5, 0x8]
b _08019922
.pool
_080195BC:
ldrb r1, [r5, 0xC]
ldrb r2, [r5, 0xD]
ldrb r3, [r5, 0xE]
mov r0, sp
bl mevent_message
adds r1, r0, 0
cmp r1, 0
bne _080195D0
ldr r1, [r5, 0x10]
_080195D0:
ldr r0, [sp]
cmp r0, 0
beq _080195E2
adds r0, r5, 0
adds r0, 0x9
adds r2, r5, 0
bl mevent_08142CE8
b _080195EA
_080195E2:
adds r0, r5, 0
adds r0, 0x9
bl mevent_0814257C
_080195EA:
adds r1, r0, 0
cmp r1, 0
bne _080195F2
b _08019922
_080195F2:
ldrb r0, [r5, 0xE]
cmp r0, 0x3
bne _0801960C
ldrb r0, [r5, 0xD]
cmp r0, 0x1
bne _08019606
movs r0, 0x1
bl sub_801DB68
b _0801960C
_08019606:
movs r0, 0x2
bl sub_801DB68
_0801960C:
ldr r0, [sp]
cmp r0, 0
beq _08019614
b _080198DC
_08019614:
strb r0, [r5, 0x8]
movs r0, 0
b _080198FE
_0801961A:
adds r0, r5, 0
adds r0, 0x9
bl mevent_save_game
cmp r0, 0
bne _08019628
b _08019922
_08019628:
b _08019820
_0801962A:
adds r0, r5, 0
adds r0, 0x9
ldrb r1, [r5, 0xC]
bl sub_8018DAC
cmp r0, 0
bne _0801963A
b _08019922
_0801963A:
b _080196F8
_0801963C:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _08019664
ldr r2, =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08019652
movs r0, 0x15
strb r0, [r5, 0x8]
_08019652:
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _0801965E
b _08019922
_0801965E:
b _08019682
.pool
_08019664:
ldr r0, =gMain
ldrh r0, [r0, 0x2E]
bl sub_801CCD0
cmp r0, 0
beq _0801967C
cmp r0, 0x1
beq _08019682
b _08019922
.pool
_0801967C:
bl sub_801CC38
b _0801975E
_08019682:
movs r0, 0x1B
strb r0, [r5, 0x8]
b _08019922
_08019688:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _080196A2
bl sub_801B308
cmp r0, 0
beq _080196B6
adds r0, r5, 0
adds r0, 0x9
ldrb r2, [r5, 0xC]
adds r1, r5, 0
movs r3, 0
b _080196C0
_080196A2:
bl sub_801B128
cmp r0, 0
beq _080196B6
adds r0, r5, 0
adds r0, 0x9
ldrb r2, [r5, 0xC]
adds r1, r5, 0
movs r3, 0
b _080196C0
_080196B6:
adds r0, r5, 0
adds r0, 0x9
ldrb r2, [r5, 0xC]
adds r1, r5, 0
movs r3, 0x1
_080196C0:
bl sub_8018C4C
adds r1, r0, 0
cmp r1, 0x1
beq _080196E2
cmp r1, 0x1
bcc _080196DC
cmp r1, 0x2
beq _080196E8
movs r0, 0x2
negs r0, r0
cmp r1, r0
beq _080196EE
b _08019922
_080196DC:
movs r0, 0x1C
strb r0, [r5, 0x8]
b _08019922
_080196E2:
movs r0, 0x1D
strb r0, [r5, 0x8]
b _08019922
_080196E8:
movs r0, 0x16
strb r0, [r5, 0x8]
b _08019922
_080196EE:
ldrb r0, [r5, 0xC]
cmp r0, 0x1
bne _080196F8
bl sub_801CC80
_080196F8:
movs r0, 0x14
strb r0, [r5, 0x8]
b _08019922
_080196FE:
adds r0, r5, 0
adds r0, 0x9
ldrb r2, [r5, 0xC]
adds r1, r5, 0
bl sub_8018E50
adds r1, r0, 0
cmp r1, 0
beq _0801971A
cmp r1, 0
ble _08019748
cmp r1, 0x1
beq _0801975E
b _08019922
_0801971A:
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _08019758
bl sub_801B3F8
cmp r0, 0x1
bne _08019758
movs r0, 0x17
strb r0, [r5, 0x8]
b _08019922
_0801972E:
adds r0, r5, 0
adds r0, 0x9
ldr r3, =gText_HaventReceivedGiftOkayToDiscard
adds r1, r5, 0
movs r2, 0x1
bl sub_8018B08
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
beq _0801975E
cmp r1, 0x1
bcc _08019758
_08019748:
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0801975E
b _08019922
.pool
_08019758:
movs r0, 0x18
strb r0, [r5, 0x8]
b _08019922
_0801975E:
movs r0, 0x15
strb r0, [r5, 0x8]
b _08019922
_08019764:
ldrb r0, [r5, 0xC]
movs r1, 0x1
bl sub_8018E20
cmp r0, 0
bne _08019772
b _08019922
_08019772:
ldrb r0, [r5, 0xC]
bl sub_8018E08
movs r0, 0x19
strb r0, [r5, 0x8]
b _08019922
_0801977E:
adds r0, r5, 0
adds r0, 0x9
bl mevent_save_game
cmp r0, 0
bne _0801978C
b _08019922
_0801978C:
movs r0, 0x1A
strb r0, [r5, 0x8]
b _08019922
_08019792:
adds r0, r5, 0
adds r0, 0x9
ldrb r1, [r5, 0xC]
bl mevent_message_was_thrown_away
b _080198F6
_0801979E:
ldrb r0, [r5, 0xC]
movs r1, 0
bl sub_8018E20
cmp r0, 0
bne _080197AC
b _08019922
_080197AC:
movs r0, 0
strb r0, [r5, 0x8]
b _08019922
_080197B2:
ldrb r0, [r5, 0xC]
movs r1, 0x1
bl sub_8018E20
cmp r0, 0
bne _080197C0
b _08019922
_080197C0:
movs r0, 0x3
strb r0, [r5, 0x8]
b _08019922
_080197C6:
ldrb r0, [r5, 0xC]
movs r1, 0x1
bl sub_8018E20
cmp r0, 0
bne _080197D4
b _08019922
_080197D4:
ldrb r0, [r5, 0xC]
cmp r0, 0
beq _080197E0
cmp r0, 0x1
beq _080197E8
b _080197EE
_080197E0:
movs r0, 0x15
bl sub_8014A00
b _080197EE
_080197E8:
movs r0, 0x16
bl sub_8014A00
_080197EE:
movs r0, 0x1
strb r0, [r5, 0xD]
movs r0, 0x1E
strb r0, [r5, 0x8]
b _08019922
_080197F8:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _08019810
movs r0, 0x1
bl sub_8018838
movs r0, 0x1F
strb r0, [r5, 0x8]
b _08019922
.pool
_08019810:
ldr r0, =gSpecialVar_Result
ldrh r0, [r0]
cmp r0, 0x5
beq _0801981A
b _08019922
_0801981A:
movs r0, 0x1
bl sub_8018838
_08019820:
movs r0, 0x12
strb r0, [r5, 0x8]
b _08019922
.pool
_0801982C:
ldr r0, =gStringVar1
movs r1, 0xFF
strb r1, [r0]
ldr r0, =gStringVar2
strb r1, [r0]
ldr r0, =gStringVar3
strb r1, [r0]
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _0801985C
ldr r0, =gText_SendingWonderCard
bl sub_8018884
bl mevent_srv_new_wcard
b _08019866
.pool
_0801985C:
ldr r0, =gText_SendingWonderNews
bl sub_8018884
bl mevent_srv_init_wnews
_08019866:
movs r0, 0x20
strb r0, [r5, 0x8]
b _08019922
.pool
_08019870:
adds r0, r5, 0
bl sub_801D0C4
cmp r0, 0x3
bne _08019922
ldrh r0, [r5]
strb r0, [r5, 0xE]
movs r0, 0x21
strb r0, [r5, 0x8]
b _08019922
_08019884:
bl task_add_05_task_del_08FA224_when_no_RfuFunc
ldr r0, =gStringVar1
ldr r1, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
bl StringCopy
movs r0, 0x22
strb r0, [r5, 0x8]
b _08019922
.pool
_080198A0:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _08019922
bl sub_800E084
movs r0, 0x23
strb r0, [r5, 0x8]
b _08019922
.pool
_080198B8:
adds r0, r5, 0
adds r0, 0x9
ldrb r2, [r5, 0xD]
ldrb r3, [r5, 0xE]
adds r1, r5, 0
bl sub_8019174
cmp r0, 0
beq _08019922
ldr r0, [r5, 0xC]
ldr r1, =0x00ffff00
ands r0, r1
ldr r1, =0x00030100
cmp r0, r1
bne _080198FA
movs r0, 0x3
bl sub_801DB68
_080198DC:
movs r0, 0x11
strb r0, [r5, 0x8]
b _08019922
.pool
_080198EC:
adds r0, r5, 0
adds r0, 0x9
ldr r1, =gText_CommunicationError
bl mevent_0814257C
_080198F6:
cmp r0, 0
beq _08019922
_080198FA:
movs r0, 0
strb r0, [r5, 0x8]
_080198FE:
movs r1, 0
bl sub_80186EC
b _08019922
.pool
_0801990C:
bl CloseLink
ldr r0, [r5, 0x10]
bl Free
adds r0, r4, 0
bl DestroyTask
ldr r0, =sub_80186A4
bl SetMainCallback2
_08019922:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end task00_mystery_gift
thumb_func_start sub_8019930
sub_8019930: @ 8019930
ldr r0, =0x000001a9
bx lr
.pool
thumb_func_end sub_8019930
thumb_func_start bgid_upload_textbox_1
bgid_upload_textbox_1: @ 8019938
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnkTextboxBorderGfx
movs r2, 0x80
lsls r2, 1
movs r3, 0
str r3, [sp]
bl DecompressAndLoadBgGfxUsingHeap
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end bgid_upload_textbox_1
thumb_func_start is_walking_or_running
is_walking_or_running: @ 8019958
push {lr}
ldr r0, =gPlayerAvatar
ldrb r0, [r0, 0x3]
cmp r0, 0x2
beq _08019966
cmp r0, 0
bne _08019970
_08019966:
movs r0, 0x1
b _08019972
.pool
_08019970:
movs r0, 0
_08019972:
pop {r1}
bx r1
thumb_func_end is_walking_or_running
thumb_func_start sub_8019978
sub_8019978: @ 8019978
ldr r3, =gUnknown_082F072C
movs r2, 0x7
ands r2, r1
lsls r1, r0, 2
adds r1, r0
lsls r1, 1
adds r2, r1
adds r2, r3
ldrb r0, [r2]
bx lr
.pool
thumb_func_end sub_8019978
thumb_func_start sub_8019990
sub_8019990: @ 8019990
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r4, =gUnknown_082F0740
mov r8, r4
lsls r0, 2
adds r4, r0, r4
movs r6, 0
ldrsh r5, [r4, r6]
ldr r6, =gUnknown_082F0760
lsls r1, 1
adds r4, r1, r6
ldrb r4, [r4]
lsls r4, 24
asrs r4, 24
adds r5, r4
adds r5, 0x7
str r5, [r2]
movs r2, 0x2
add r8, r2
add r0, r8
movs r4, 0
ldrsh r0, [r0, r4]
adds r6, 0x1
adds r1, r6
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
adds r0, r1
adds r0, 0x7
str r0, [r3]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8019990
thumb_func_start sub_80199E0
sub_80199E0: @ 80199E0
push {r4-r7,lr}
mov r12, r3
ldr r7, =gUnknown_082F0740
lsls r5, r0, 2
adds r0, r5, r7
movs r4, 0
ldrsh r3, [r0, r4]
ldr r6, =gUnknown_082F0760
lsls r4, r1, 1
adds r0, r4, r6
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r3, r0
adds r3, 0x7
cmp r3, r2
bne _08019A28
adds r0, r7, 0x2
adds r0, r5, r0
movs r2, 0
ldrsh r1, [r0, r2]
adds r0, r6, 0x1
adds r0, r4, r0
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r1, r0
adds r1, 0x7
cmp r1, r12
bne _08019A28
movs r0, 0x1
b _08019A2A
.pool
_08019A28:
movs r0, 0
_08019A2A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80199E0
thumb_func_start IsUnionRoomPlayerHidden
IsUnionRoomPlayerHidden: @ 8019A30
push {lr}
ldr r1, =0x000002bf
adds r0, r1
lsls r0, 16
lsrs r0, 16
bl FlagGet
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end IsUnionRoomPlayerHidden
thumb_func_start HideUnionRoomPlayer
HideUnionRoomPlayer: @ 8019A4C
push {lr}
ldr r1, =0x000002bf
adds r0, r1
lsls r0, 16
lsrs r0, 16
bl FlagSet
pop {r0}
bx r0
.pool
thumb_func_end HideUnionRoomPlayer
thumb_func_start ShowUnionRoomPlayer
ShowUnionRoomPlayer: @ 8019A64
push {lr}
ldr r1, =0x000002bf
adds r0, r1
lsls r0, 16
lsrs r0, 16
bl FlagClear
pop {r0}
bx r0
.pool
thumb_func_end ShowUnionRoomPlayer
thumb_func_start SetUnionRoomPlayerGfx
SetUnionRoomPlayerGfx: @ 8019A7C
push {lr}
ldr r2, =0x00004010
adds r0, r2
lsls r0, 16
lsrs r0, 16
lsls r1, 16
lsrs r1, 16
bl VarSet
pop {r0}
bx r0
.pool
thumb_func_end SetUnionRoomPlayerGfx
thumb_func_start CreateUnionRoomPlayerEventObject
CreateUnionRoomPlayerEventObject: @ 8019A98
push {lr}
ldr r1, =gUnknown_082F0774
adds r0, r1
ldrb r0, [r0]
ldr r1, =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
bl show_sprite
pop {r0}
bx r0
.pool
thumb_func_end CreateUnionRoomPlayerEventObject
thumb_func_start RemoveUnionRoomPlayerEventObject
RemoveUnionRoomPlayerEventObject: @ 8019AB8
push {lr}
ldr r1, =gUnknown_082F0774
adds r0, r1
ldrb r0, [r0]
ldr r1, =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
bl RemoveEventObjectByLocalIdAndMap
pop {r0}
bx r0
.pool
thumb_func_end RemoveUnionRoomPlayerEventObject
thumb_func_start SetUnionRoomPlayerEnterExitMovement
SetUnionRoomPlayerEnterExitMovement: @ 8019AD8
push {r4,r5,lr}
sub sp, 0x4
adds r5, r1, 0
ldr r1, =gUnknown_082F0774
adds r0, r1
ldrb r0, [r0]
ldr r1, =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
mov r3, sp
bl TryGetEventObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08019B30
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, =gEventObjects
adds r4, r0, r1
adds r0, r4, 0
bl EventObjectIsMovementOverridden
lsls r0, 24
cmp r0, 0
bne _08019B30
ldrb r1, [r5]
adds r0, r4, 0
bl EventObjectSetHeldMovement
lsls r0, 24
cmp r0, 0
bne _08019B30
movs r0, 0x1
b _08019B32
.pool
_08019B30:
movs r0, 0
_08019B32:
add sp, 0x4
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end SetUnionRoomPlayerEnterExitMovement
thumb_func_start sub_8019B3C
sub_8019B3C: @ 8019B3C
push {r4,lr}
sub sp, 0x4
ldr r1, =gUnknown_082F0774
adds r0, r1
ldrb r0, [r0]
ldr r1, =gSaveBlock1Ptr
ldr r2, [r1]
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
mov r3, sp
bl TryGetEventObjectIdByLocalIdAndMap
lsls r0, 24
cmp r0, 0
bne _08019B9C
mov r0, sp
ldrb r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, =gEventObjects
adds r4, r0, r1
adds r0, r4, 0
bl EventObjectClearHeldMovementIfFinished
lsls r0, 24
cmp r0, 0
bne _08019B84
movs r0, 0
b _08019B9E
.pool
_08019B84:
bl ScriptContext2_IsEnabled
lsls r0, 24
cmp r0, 0
bne _08019B96
adds r0, r4, 0
bl UnfreezeEventObject
b _08019B9C
_08019B96:
adds r0, r4, 0
bl FreezeEventObject
_08019B9C:
movs r0, 0x1
_08019B9E:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8019B3C
thumb_func_start sub_8019BA8
sub_8019BA8: @ 8019BA8
push {lr}
ldr r2, =gUnknown_02022C68
movs r1, 0
str r1, [r2]
ldr r1, =gUnknown_02022C64
str r0, [r1]
movs r1, 0
movs r2, 0x7
_08019BB8:
strb r1, [r0]
strb r1, [r0, 0x1]
strb r1, [r0, 0x2]
strb r1, [r0, 0x3]
adds r0, 0x4
subs r2, 0x1
cmp r2, 0
bge _08019BB8
bl sub_8019DF4
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.pool
thumb_func_end sub_8019BA8
thumb_func_start sub_8019BDC
sub_8019BDC: @ 8019BDC
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0
ldrsb r0, [r5, r0]
cmp r0, 0
beq _08019BF0
cmp r0, 0x1
beq _08019C10
b _08019C2E
_08019BF0:
ldr r1, =gUnknown_082F078C
adds r0, r4, 0
bl SetUnionRoomPlayerEnterExitMovement
cmp r0, 0x1
bne _08019C2E
adds r0, r4, 0
bl HideUnionRoomPlayer
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _08019C2E
.pool
_08019C10:
adds r0, r4, 0
bl sub_8019B3C
cmp r0, 0
beq _08019C2E
adds r0, r4, 0
bl RemoveUnionRoomPlayerEventObject
adds r0, r4, 0
bl HideUnionRoomPlayer
movs r0, 0
strb r0, [r5]
movs r0, 0x1
b _08019C30
_08019C2E:
movs r0, 0
_08019C30:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8019BDC
thumb_func_start sub_8019C38
sub_8019C38: @ 8019C38
push {r4-r7,lr}
sub sp, 0x4
adds r6, r0, 0
adds r5, r1, 0
adds r7, r2, 0
movs r0, 0
ldrsb r0, [r6, r0]
cmp r0, 0x2
beq _08019CD4
cmp r0, 0x2
bgt _08019C54
cmp r0, 0
beq _08019C5A
b _08019CE6
_08019C54:
cmp r0, 0x3
beq _08019CBC
b _08019CE6
_08019C5A:
bl is_walking_or_running
cmp r0, 0
beq _08019CE6
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl PlayerGetDestCoords
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
movs r0, 0
ldrsh r3, [r4, r0]
adds r0, r5, 0
movs r1, 0
bl sub_80199E0
cmp r0, 0x1
beq _08019CE6
mov r0, sp
adds r1, r4, 0
bl player_get_pos_including_state_based_drift
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
movs r0, 0
ldrsh r3, [r4, r0]
adds r0, r5, 0
movs r1, 0
bl sub_80199E0
cmp r0, 0x1
beq _08019CE6
ldrb r1, [r7, 0x1]
adds r0, r5, 0
bl SetUnionRoomPlayerGfx
adds r0, r5, 0
bl CreateUnionRoomPlayerEventObject
adds r0, r5, 0
bl ShowUnionRoomPlayer
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
_08019CBC:
ldr r1, =gUnknown_082F078E
adds r0, r5, 0
bl SetUnionRoomPlayerEnterExitMovement
cmp r0, 0x1
bne _08019CE6
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _08019CE6
.pool
_08019CD4:
adds r0, r5, 0
bl sub_8019B3C
cmp r0, 0
beq _08019CE6
movs r0, 0
strb r0, [r6]
movs r0, 0x1
b _08019CE8
_08019CE6:
movs r0, 0
_08019CE8:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8019C38
thumb_func_start sub_8019CF0
sub_8019CF0: @ 8019CF0
push {r4,lr}
ldr r3, =gUnknown_02022C64
lsls r0, 2
ldr r4, [r3]
adds r4, r0
movs r0, 0x1
strb r0, [r4, 0x3]
adds r0, r1, 0
adds r1, r2, 0
bl sub_8019978
strb r0, [r4, 0x1]
ldrb r0, [r4]
cmp r0, 0
beq _08019D18
movs r0, 0
b _08019D1A
.pool
_08019D18:
movs r0, 0x1
_08019D1A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8019CF0
thumb_func_start AGBAssert
AGBAssert: @ 8019D20
push {lr}
ldr r1, =gUnknown_02022C64
lsls r0, 2
ldr r1, [r1]
adds r1, r0
movs r0, 0x2
strb r0, [r1, 0x3]
ldrb r0, [r1]
cmp r0, 0x1
beq _08019D3C
movs r0, 0
b _08019D3E
.pool
_08019D3C:
movs r0, 0x1
_08019D3E:
pop {r1}
bx r1
thumb_func_end AGBAssert
thumb_func_start sub_8019D44
sub_8019D44: @ 8019D44
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r1, [r4]
cmp r1, 0x1
beq _08019DA6
cmp r1, 0x1
bgt _08019D5A
cmp r1, 0
beq _08019D64
b _08019DC6
_08019D5A:
cmp r1, 0x2
beq _08019D70
cmp r1, 0x3
beq _08019DB4
b _08019DC6
_08019D64:
ldrb r0, [r4, 0x3]
cmp r0, 0x1
bne _08019DC6
movs r0, 0x2
strb r0, [r4]
strb r1, [r4, 0x2]
_08019D70:
adds r0, r5, 0
movs r1, 0
bl sub_8019F8C
adds r1, r0, 0
cmp r1, 0
bne _08019D96
ldrb r0, [r4, 0x3]
cmp r0, 0x2
bne _08019D96
strb r1, [r4]
strb r1, [r4, 0x2]
adds r0, r5, 0
bl RemoveUnionRoomPlayerEventObject
adds r0, r5, 0
bl HideUnionRoomPlayer
b _08019DC6
_08019D96:
adds r0, r4, 0x2
adds r1, r5, 0
adds r2, r4, 0
bl sub_8019C38
cmp r0, 0x1
bne _08019DC6
b _08019DC4
_08019DA6:
ldrb r0, [r4, 0x3]
cmp r0, 0x2
bne _08019DC6
movs r1, 0
movs r0, 0x3
strb r0, [r4]
strb r1, [r4, 0x2]
_08019DB4:
adds r0, r4, 0x2
adds r1, r5, 0
adds r2, r4, 0
bl sub_8019BDC
cmp r0, 0x1
bne _08019DC6
movs r0, 0
_08019DC4:
strb r0, [r4]
_08019DC6:
movs r0, 0
strb r0, [r4, 0x3]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8019D44
thumb_func_start sub_8019DD0
sub_8019DD0: @ 8019DD0
push {r4,r5,lr}
movs r4, 0
ldr r5, =gUnknown_02022C64
_08019DD6:
lsls r0, r4, 2
ldr r1, [r5]
adds r1, r0
adds r0, r4, 0
bl sub_8019D44
adds r4, 0x1
cmp r4, 0x7
ble _08019DD6
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8019DD0
thumb_func_start sub_8019DF4
sub_8019DF4: @ 8019DF4
push {r4,lr}
ldr r4, =sub_8019DD0
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08019E18
adds r0, r4, 0
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
b _08019E1A
.pool
_08019E18:
movs r0, 0x10
_08019E1A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8019DF4
thumb_func_start sub_8019E20
sub_8019E20: @ 8019E20
push {lr}
ldr r0, =sub_8019DD0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xF
bhi _08019E34
bl DestroyTask
_08019E34:
pop {r0}
bx r0
.pool
thumb_func_end sub_8019E20
thumb_func_start sub_8019E3C
sub_8019E3C: @ 8019E3C
push {r4,lr}
movs r4, 0
_08019E40:
adds r0, r4, 0
bl IsUnionRoomPlayerHidden
cmp r0, 0
bne _08019E56
adds r0, r4, 0
bl RemoveUnionRoomPlayerEventObject
adds r0, r4, 0
bl HideUnionRoomPlayer
_08019E56:
adds r4, 0x1
cmp r4, 0x7
ble _08019E40
ldr r1, =gUnknown_02022C64
movs r0, 0
str r0, [r1]
bl sub_8019E20
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8019E3C
thumb_func_start sub_8019E70
sub_8019E70: @ 8019E70
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
str r0, [sp, 0x8]
mov r9, r1
movs r7, 0
mov r0, r9
lsls r0, 2
mov r8, r0
ldr r0, =gUnknown_082F0740
mov r2, r8
adds r1, r2, r0
ldrh r1, [r1]
mov r2, sp
strh r1, [r2, 0xC]
adds r0, 0x2
add r0, r8
ldrh r0, [r0]
mov r10, r0
ldr r6, =gUnknown_082F0760
_08019E9E:
mov r5, r8
add r5, r9
adds r5, r7
adds r4, r5, 0
subs r4, 0x38
lsls r4, 24
lsrs r4, 24
movs r2, 0
ldrsb r2, [r6, r2]
mov r0, sp
ldrh r0, [r0, 0xC]
adds r2, r0, r2
lsls r2, 16
asrs r2, 16
movs r3, 0x1
ldrsb r3, [r6, r3]
add r3, r10
lsls r3, 16
asrs r3, 16
movs r0, 0x3
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0x41
adds r1, r4, 0
bl sprite_new
ldr r1, [sp, 0x8]
adds r5, r1, r5
strb r0, [r5]
adds r0, r4, 0
movs r1, 0x1
bl sub_8097C44
adds r6, 0x2
adds r7, 0x1
cmp r7, 0x4
ble _08019E9E
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8019E70
thumb_func_start sub_8019F04
sub_8019F04: @ 8019F04
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
ldr r6, =gSprites
_08019F0C:
adds r0, r5, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
adds r4, 0x1
cmp r4, 0x27
ble _08019F0C
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8019F04
thumb_func_start sub_8019F2C
sub_8019F2C: @ 8019F2C
push {r4-r7,lr}
sub sp, 0x8
movs r5, 0
add r7, sp, 0x4
_08019F34:
movs r4, 0
adds r6, r5, 0x1
_08019F38:
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
adds r3, r7, 0
bl sub_8019990
ldr r0, [sp]
ldr r1, [sp, 0x4]
movs r2, 0
bl sub_8088B94
adds r4, 0x1
cmp r4, 0x4
ble _08019F38
adds r5, r6, 0
cmp r5, 0x7
ble _08019F34
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8019F2C
thumb_func_start sub_8019F64
sub_8019F64: @ 8019F64
push {lr}
adds r1, r0, 0
cmp r1, 0
beq _08019F78
ldr r0, =gUnknown_082F076F
adds r0, r1, r0
ldrb r0, [r0]
b _08019F88
.pool
_08019F78:
ldrb r1, [r2, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
beq _08019F86
movs r0, 0x4
b _08019F88
_08019F86:
movs r0, 0x1
_08019F88:
pop {r1}
bx r1
thumb_func_end sub_8019F64
thumb_func_start sub_8019F8C
sub_8019F8C: @ 8019F8C
push {lr}
adds r2, r0, 0
lsls r0, r2, 2
adds r0, r2
adds r0, r1
subs r0, 0x38
lsls r0, 24
lsrs r0, 24
bl sub_8097C8C
pop {r1}
bx r1
thumb_func_end sub_8019F8C
thumb_func_start sub_8019FA4
sub_8019FA4: @ 8019FA4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
adds r5, r0, 0
adds r6, r1, 0
mov r9, r3
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r0, r5, 2
adds r0, r5
adds r7, r0, r6
adds r0, r5, 0
bl sub_8019F8C
cmp r0, 0x1
bne _08019FE2
adds r4, r7, 0
subs r4, 0x38
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
bl sub_8097C44
adds r0, r4, 0
movs r1, 0x1
bl sub_8097CC4
_08019FE2:
adds r0, r7, 0
subs r0, 0x38
lsls r0, 24
lsrs r0, 24
mov r1, r8
bl sub_8097BB4
adds r0, r6, 0
adds r1, r5, 0
mov r2, r9
bl sub_8019F64
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_801A3B0
add r3, sp, 0x4
adds r0, r5, 0
adds r1, r6, 0
mov r2, sp
bl sub_8019990
ldr r0, [sp]
ldr r1, [sp, 0x4]
movs r2, 0x1
bl sub_8088B94
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8019FA4
thumb_func_start sub_801A02C
sub_801A02C: @ 801A02C
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
lsls r0, r4, 2
adds r0, r4
adds r0, r5
subs r0, 0x38
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
bl sub_8097CC4
add r3, sp, 0x4
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
bl sub_8019990
ldr r0, [sp]
ldr r1, [sp, 0x4]
movs r2, 0
bl sub_8088B94
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801A02C
thumb_func_start sub_801A064
sub_801A064: @ 801A064
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r7, r0, 0
mov r8, r1
mov r6, sp
adds r6, 0x2
mov r0, sp
adds r1, r6, 0
bl PlayerGetDestCoords
add r4, sp, 0x4
mov r5, sp
adds r5, 0x6
adds r0, r4, 0
adds r1, r5, 0
bl player_get_pos_including_state_based_drift
lsls r0, r7, 2
adds r0, r7
subs r0, 0x38
lsls r0, 24
lsrs r0, 24
bl sub_8097C8C
mov r10, r6
mov r9, r4
adds r6, r5, 0
cmp r0, 0x1
bne _0801A0F0
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
mov r0, r10
movs r1, 0
ldrsh r3, [r0, r1]
adds r0, r7, 0
movs r1, 0
bl sub_80199E0
cmp r0, 0x1
beq _0801A15C
movs r0, 0
ldrsh r2, [r4, r0]
movs r1, 0
ldrsh r3, [r6, r1]
adds r0, r7, 0
movs r1, 0
bl sub_80199E0
cmp r0, 0x1
beq _0801A15C
mov r2, r8
ldrb r0, [r2, 0xB]
lsls r0, 31
lsrs r0, 31
ldrb r1, [r2, 0x2]
bl sub_8019978
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r7, 0
movs r1, 0
mov r3, r8
bl sub_8019FA4
_0801A0F0:
movs r5, 0x1
mov r4, r8
adds r4, 0x4
_0801A0F6:
ldrb r0, [r4]
cmp r0, 0
bne _0801A106
adds r0, r7, 0
adds r1, r5, 0
bl sub_801A02C
b _0801A154
_0801A106:
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
mov r0, r10
movs r1, 0
ldrsh r3, [r0, r1]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80199E0
cmp r0, 0
bne _0801A154
mov r0, r9
movs r1, 0
ldrsh r2, [r0, r1]
movs r0, 0
ldrsh r3, [r6, r0]
adds r0, r7, 0
adds r1, r5, 0
bl sub_80199E0
cmp r0, 0
bne _0801A154
ldrb r2, [r4]
lsrs r0, r2, 3
movs r1, 0x1
ands r0, r1
movs r1, 0x7
ands r1, r2
bl sub_8019978
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r7, 0
adds r1, r5, 0
mov r3, r8
bl sub_8019FA4
_0801A154:
adds r4, 0x1
adds r5, 0x1
cmp r5, 0x4
ble _0801A0F6
_0801A15C:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801A064
thumb_func_start sub_801A16C
sub_801A16C: @ 801A16C
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrb r0, [r4, 0xA]
lsls r0, 25
lsrs r0, 25
subs r0, 0x40
cmp r0, 0x14
bhi _0801A20E
lsls r0, 2
ldr r1, =_0801A18C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801A18C:
.4byte _0801A1E0
.4byte _0801A200
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A200
.4byte _0801A200
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A200
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A20E
.4byte _0801A200
.4byte _0801A200
.4byte _0801A200
.4byte _0801A1E0
_0801A1E0:
ldrb r1, [r4, 0xB]
lsls r1, 31
lsrs r1, 31
ldrb r2, [r4, 0x2]
adds r0, r5, 0
bl sub_8019CF0
movs r4, 0
_0801A1F0:
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A02C
adds r4, 0x1
cmp r4, 0x4
bls _0801A1F0
b _0801A20E
_0801A200:
adds r0, r5, 0
bl AGBAssert
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A064
_0801A20E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801A16C
thumb_func_start sub_801A214
sub_801A214: @ 801A214
push {r4,r5,lr}
adds r5, r0, 0
bl AGBAssert
movs r4, 0
_0801A21E:
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A02C
adds r4, 0x1
cmp r4, 0x4
ble _0801A21E
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801A214
thumb_func_start sub_801A234
sub_801A234: @ 801A234
push {r4,r5,lr}
ldr r2, =gUnknown_02022C68
movs r1, 0
str r1, [r2]
movs r5, 0
ldr r4, [r0]
_0801A240:
ldrb r0, [r4, 0x1A]
movs r1, 0x3
ands r1, r0
cmp r1, 0x1
bne _0801A258
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A16C
b _0801A264
.pool
_0801A258:
cmp r1, 0x2
bne _0801A264
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A214
_0801A264:
adds r4, 0x20
adds r5, 0x1
cmp r5, 0x7
ble _0801A240
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801A234
thumb_func_start sub_801A274
sub_801A274: @ 801A274
ldr r1, =gUnknown_02022C68
movs r0, 0x96
lsls r0, 1
str r0, [r1]
bx lr
.pool
thumb_func_end sub_801A274
thumb_func_start sub_801A284
sub_801A284: @ 801A284
push {lr}
adds r2, r0, 0
ldr r0, =gUnknown_02022C68
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
movs r0, 0x96
lsls r0, 1
cmp r1, r0
bls _0801A29E
adds r0, r2, 0
bl sub_801A234
_0801A29E:
pop {r0}
bx r0
.pool
thumb_func_end sub_801A284
thumb_func_start sub_801A2A8
sub_801A2A8: @ 801A2A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r5, r0, 0
str r1, [sp, 0x4]
str r2, [sp, 0x8]
bl is_walking_or_running
cmp r0, 0
bne _0801A2F0
b _0801A396
_0801A2C4:
ldr r4, =gUnknown_082F076A
bl GetPlayerFacingDirection
lsls r0, 24
lsrs r0, 24
adds r0, r4
ldrb r2, [r0]
adds r0, r6, 0
ldr r1, [sp, 0xC]
bl sub_801A3B0
ldr r0, [sp, 0x4]
strh r6, [r0]
mov r1, sp
ldrh r2, [r1, 0xC]
ldr r1, [sp, 0x8]
strh r2, [r1]
movs r0, 0x1
b _0801A398
.pool
_0801A2F0:
mov r4, sp
adds r4, 0x2
mov r0, sp
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
movs r0, 0
str r0, [sp, 0xC]
ldr r0, =gUnknown_082F0740
adds r7, r5, 0
movs r1, 0
mov r10, r1
adds r2, r0, 0x2
str r2, [sp, 0x10]
str r0, [sp, 0x14]
_0801A30E:
movs r6, 0
ldr r4, [sp, 0x14]
movs r0, 0
ldrsh r4, [r4, r0]
mov r9, r4
ldr r1, [sp, 0x10]
mov r8, r1
ldr r5, =gUnknown_082F0760
_0801A31E:
mov r2, r10
adds r3, r2, r6
mov r0, sp
movs r4, 0
ldrsh r1, [r0, r4]
movs r0, 0
ldrsb r0, [r5, r0]
add r0, r9
adds r0, 0x7
cmp r1, r0
bne _0801A372
mov r1, sp
movs r2, 0x2
ldrsh r0, [r1, r2]
mov r4, r8
movs r2, 0
ldrsh r1, [r4, r2]
movs r2, 0x1
ldrsb r2, [r5, r2]
adds r1, r2
adds r1, 0x7
cmp r0, r1
bne _0801A372
adds r0, r3, 0
subs r0, 0x38
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_8097C8C
cmp r0, 0
bne _0801A372
adds r0, r4, 0
bl sub_8097D9C
cmp r0, 0
bne _0801A372
ldrb r1, [r7, 0x1A]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _0801A2C4
_0801A372:
adds r5, 0x2
adds r6, 0x1
cmp r6, 0x4
ble _0801A31E
adds r7, 0x20
movs r4, 0x5
add r10, r4
ldr r0, [sp, 0x10]
adds r0, 0x4
str r0, [sp, 0x10]
ldr r1, [sp, 0x14]
adds r1, 0x4
str r1, [sp, 0x14]
ldr r2, [sp, 0xC]
adds r2, 0x1
str r2, [sp, 0xC]
cmp r2, 0x7
ble _0801A30E
_0801A396:
movs r0, 0
_0801A398:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_801A2A8
thumb_func_start sub_801A3B0
sub_801A3B0: @ 801A3B0
push {r4,lr}
adds r4, r0, 0
adds r3, r1, 0
lsls r1, r2, 24
lsrs r1, 24
lsls r0, r3, 2
adds r0, r3
subs r0, 0x38
adds r0, r4
lsls r0, 24
lsrs r0, 24
bl sub_8097B78
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_801A3B0
thumb_func_start sub_801A3D0
sub_801A3D0: @ 801A3D0
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
lsls r3, r4, 5
adds r3, r2
adds r2, r3, 0
bl sub_8019F64
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_801A3B0
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_801A3D0
thumb_func_start sub_801A3F4
sub_801A3F4: @ 801A3F4
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0801A414
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
_0801A414:
pop {r0}
bx r0
thumb_func_end sub_801A3F4
thumb_func_start sub_801A418
sub_801A418: @ 801A418
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_801A418
thumb_func_start sub_801A42C
sub_801A42C: @ 801A42C
push {lr}
ldr r0, =sub_801A43C
bl SetMainCallback2
pop {r0}
bx r0
.pool
thumb_func_end sub_801A42C
thumb_func_start sub_801A43C
sub_801A43C: @ 801A43C
push {r4,r5,lr}
sub sp, 0xC
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r5, =gUnknown_03000DAC
movs r0, 0x6C
bl AllocZeroed
str r0, [r5]
movs r0, 0
bl SetVBlankCallback
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082F0D34
movs r0, 0
movs r2, 0x2
bl InitBgsFromTemplates
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x1
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0
bl SetBgTilemapBuffer
ldr r1, =gWirelessInfoScreenGfx
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, =gWirelessInfoScreenTilemap
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
ldr r0, =gUnknown_082F0D3C
bl InitWindows
bl DeactivateAllTextPrinters
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl ScanlineEffect_Stop
bl m4aSoundVSyncOn
ldr r0, =sub_801A418
bl SetVBlankCallback
ldr r0, =sub_801A6C0
movs r1, 0
bl CreateTask
ldr r1, [r5]
adds r1, 0x60
strb r0, [r1]
bl sub_8013C40
ldr r1, [r5]
adds r1, 0x61
strb r0, [r1]
ldr r1, [r5]
movs r0, 0x1
str r0, [r1, 0x1C]
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
ldr r0, =gWirelessInfoScreenPal
movs r1, 0
movs r2, 0x20
bl LoadPalette
movs r0, 0xF0
bl sub_81978B0
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0xF
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, =sub_801A3F4
bl SetMainCallback2
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_801A43C
thumb_func_start sub_801A584
sub_801A584: @ 801A584
push {r4,lr}
bl FreeAllWindowBuffers
movs r4, 0
_0801A58C:
lsls r0, r4, 24
lsrs r0, 24
bl GetBgTilemapBuffer
bl Free
adds r4, 0x1
cmp r4, 0x1
ble _0801A58C
ldr r0, =gUnknown_03000DAC
ldr r0, [r0]
bl Free
ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801A584
thumb_func_start sub_801A5BC
sub_801A5BC: @ 801A5BC
push {lr}
adds r2, r0, 0
ldrh r0, [r2]
adds r0, 0x1
strh r0, [r2]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _0801A5E4
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0xE
bne _0801A5E0
movs r0, 0
strh r0, [r1]
_0801A5E0:
movs r0, 0
strh r0, [r2]
_0801A5E4:
movs r2, 0
ldrsh r0, [r1, r2]
adds r0, 0x2
lsls r0, 5
ldr r1, =gWirelessInfoScreenPal
adds r0, r1
movs r1, 0
movs r2, 0x10
bl LoadPalette
pop {r0}
bx r0
.pool
thumb_func_end sub_801A5BC
thumb_func_start sub_801A600
sub_801A600: @ 801A600
push {r4,r5,lr}
sub sp, 0x8
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
ldr r5, =gUnknown_082F0D5C
ldr r4, [r5]
movs r0, 0x1
adds r1, r4, 0
movs r2, 0xC0
bl GetStringCenterAlignXOffset
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x6
str r0, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x1
adds r2, r4, 0
bl sub_801A8B0
movs r1, 0
_0801A644:
adds r4, r1, 0x1
lsls r0, r4, 2
adds r0, r5
ldr r2, [r0]
lsls r0, r1, 4
subs r0, r1
lsls r0, 25
movs r1, 0x80
lsls r1, 20
adds r0, r1
lsrs r0, 24
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r1, 0x1
movs r3, 0
bl sub_801A8B0
adds r1, r4, 0
cmp r4, 0x2
ble _0801A644
ldr r1, =gUnknown_082F0D5C
adds r0, r4, 0x1
lsls r0, 2
adds r0, r1
ldr r2, [r0]
lsls r0, r4, 4
subs r0, r4
lsls r0, 25
movs r1, 0x80
lsls r1, 20
adds r0, r1
lsrs r0, 24
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0x1
movs r3, 0
bl sub_801A8B0
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_801A600
thumb_func_start sub_801A6C0
sub_801A6C0: @ 801A6C0
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r2, r1, 0
cmp r0, 0x5
bls _0801A6E2
b _0801A89C
_0801A6E2:
lsls r0, 2
ldr r1, =_0801A6F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801A6F4:
.4byte _0801A70C
.4byte _0801A728
.4byte _0801A74C
.4byte _0801A768
.4byte _0801A85C
.4byte _0801A884
_0801A70C:
bl sub_801A600
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _0801A89C
.pool
_0801A728:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x1
bl ShowBg
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0
bl ShowBg
b _0801A86C
_0801A74C:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0801A75A
b _0801A89C
_0801A75A:
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r2
b _0801A876
.pool
_0801A768:
ldr r0, =gUnknown_03000DAC
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x10
adds r2, r0, 0
adds r2, 0x20
adds r3, r0, 0
adds r3, 0x61
ldrb r3, [r3]
bl sub_801AA30
lsls r1, r5, 2
mov r8, r1
cmp r0, 0
beq _0801A7F8
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
movs r4, 0
ldr r6, =gStringVar4
movs r7, 0x80
lsls r7, 20
_0801A796:
ldr r0, =gUnknown_03000DAC
ldr r0, [r0]
lsls r1, r4, 2
adds r0, r1
ldr r1, [r0]
adds r0, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
cmp r4, 0x3
beq _0801A7CC
lsrs r0, r7, 24
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x1
adds r2, r6, 0
movs r3, 0xC
bl sub_801A8B0
b _0801A7DE
.pool
_0801A7CC:
movs r0, 0x62
str r0, [sp]
movs r0, 0x2
str r0, [sp, 0x4]
movs r1, 0x1
adds r2, r6, 0
movs r3, 0xC
bl sub_801A8B0
_0801A7DE:
movs r2, 0xF0
lsls r2, 21
adds r7, r2
adds r4, 0x1
cmp r4, 0x3
ble _0801A796
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
_0801A7F8:
ldr r0, =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0801A80C
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0801A836
_0801A80C:
movs r0, 0x5
bl PlaySE
ldr r2, =gTasks
ldr r0, =gUnknown_03000DAC
ldr r0, [r0]
adds r0, 0x61
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r1, 0xFF
strh r1, [r0, 0x26]
mov r0, r8
adds r1, r0, r5
lsls r1, 3
adds r1, r2
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
_0801A836:
mov r2, r8
adds r1, r2, r5
lsls r1, 3
ldr r0, =gTasks + 0x8
adds r1, r0
adds r0, r1, 0
adds r0, 0xE
adds r1, 0x10
bl sub_801A5BC
b _0801A89C
.pool
_0801A85C:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_0801A86C:
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
_0801A876:
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
b _0801A89C
.pool
_0801A884:
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0801A89C
ldr r0, =sub_801A584
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
_0801A89C:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801A6C0
thumb_func_start sub_801A8B0
sub_801A8B0: @ 801A8B0
push {r4-r7,lr}
sub sp, 0x18
mov r12, r2
ldr r2, [sp, 0x2C]
ldr r4, [sp, 0x30]
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r6, r1, 24
lsls r3, 24
lsrs r5, r3, 24
lsls r2, 24
lsrs r3, r2, 24
lsls r4, 24
lsrs r0, r4, 24
cmp r0, 0x4
bhi _0801A93A
lsls r0, 2
ldr r1, =_0801A8E0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801A8E0:
.4byte _0801A8F4
.4byte _0801A902
.4byte _0801A910
.4byte _0801A91E
.4byte _0801A92C
_0801A8F4:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x2
strb r0, [r1, 0x1]
movs r0, 0x3
b _0801A938
_0801A902:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r0, 0x3
b _0801A938
_0801A910:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x4
strb r0, [r1, 0x1]
movs r0, 0x5
b _0801A938
_0801A91E:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x7
strb r0, [r1, 0x1]
movs r0, 0x6
b _0801A938
_0801A92C:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r0, 0x2
_0801A938:
strb r0, [r1, 0x2]
_0801A93A:
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
add r0, sp, 0x14
str r0, [sp, 0x8]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0xC]
mov r0, r12
str r0, [sp, 0x10]
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl AddTextPrinterParameterized4
add sp, 0x18
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_801A8B0
thumb_func_start sub_801A960
sub_801A960: @ 801A960
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r12, r0
adds r7, r1, 0
ldrb r0, [r0, 0xA]
lsls r0, 25
lsrs r0, 25
mov r8, r0
movs r4, 0
ldr r0, =gUnknown_082F0D70
mov r9, r0
movs r1, 0x1
add r1, r9
mov r10, r1
mov r3, r12
adds r3, 0x4
str r3, [sp]
_0801A98A:
lsls r0, r4, 1
adds r2, r0, r4
mov r3, r9
adds r1, r2, r3
adds r5, r0, 0
adds r6, r4, 0x1
ldrb r1, [r1]
cmp r8, r1
bne _0801A9EE
mov r0, r12
ldrb r1, [r0, 0x1A]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _0801A9EE
mov r0, r9
adds r0, 0x2
adds r3, r2, r0
ldrb r0, [r3]
cmp r0, 0
bne _0801A9DC
movs r2, 0
movs r1, 0
ldr r3, [sp]
_0801A9BA:
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _0801A9C4
adds r2, 0x1
_0801A9C4:
adds r1, 0x1
cmp r1, 0x3
ble _0801A9BA
adds r2, 0x1
adds r0, r5, r4
add r0, r10
ldrb r1, [r0]
lsls r1, 2
adds r1, r7
b _0801A9E8
.pool
_0801A9DC:
mov r1, r10
adds r0, r2, r1
ldrb r1, [r0]
lsls r1, 2
adds r1, r7
ldrb r2, [r3]
_0801A9E8:
ldr r0, [r1]
adds r0, r2
str r0, [r1]
_0801A9EE:
adds r4, r6, 0
cmp r4, 0x1E
bls _0801A98A
mov r0, r8
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801A960
thumb_func_start sub_801AA08
sub_801AA08: @ 801AA08
push {r4,lr}
movs r4, 0
adds r3, r1, 0
adds r2, r0, 0
_0801AA10:
ldr r1, [r2]
ldr r0, [r3]
cmp r1, r0
beq _0801AA1C
movs r0, 0x1
b _0801AA28
_0801AA1C:
adds r3, 0x4
adds r2, 0x4
adds r4, 0x1
cmp r4, 0x3
ble _0801AA10
movs r0, 0
_0801AA28:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_801AA08
thumb_func_start sub_801AA30
sub_801AA30: @ 801AA30
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
adds r6, r0, 0
mov r9, r1
adds r5, r2, 0
lsls r4, r3, 24
lsrs r4, 24
movs r0, 0
mov r8, r0
mov r0, sp
movs r1, 0
movs r2, 0x10
bl memset
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, =gTasks + 0x8
adds r7, r0, r1
movs r4, 0
_0801AA5E:
lsls r1, r4, 5
ldr r0, [r7]
adds r0, r1
mov r1, sp
bl sub_801A960
adds r1, r0, 0
ldr r0, [r5]
cmp r1, r0
beq _0801AA78
str r1, [r5]
movs r2, 0x1
mov r8, r2
_0801AA78:
adds r5, 0x4
adds r4, 0x1
cmp r4, 0xF
ble _0801AA5E
mov r0, sp
mov r1, r9
bl sub_801AA08
cmp r0, 0
bne _0801AA9C
mov r3, r8
cmp r3, 0x1
beq _0801AAC4
movs r0, 0
b _0801AAC6
.pool
_0801AA9C:
adds r1, r6, 0
mov r0, sp
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
mov r1, r9
mov r0, sp
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
ldr r0, [r6]
ldr r1, [r6, 0x4]
adds r0, r1
ldr r1, [r6, 0x8]
adds r0, r1
ldr r1, [r6, 0xC]
adds r0, r1
str r0, [r6, 0xC]
_0801AAC4:
movs r0, 0x1
_0801AAC6:
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801AA30
thumb_func_start sub_801AAD4
sub_801AAD4: @ 801AAD4
push {r4-r7,lr}
movs r0, 0xA
bl sub_8014210
movs r4, 0
movs r7, 0x64
ldr r6, =gPlayerParty
ldr r5, =gEnemyParty
_0801AAE4:
ldr r0, =gSelectedOrderFromParty
adds r0, r4, r0
ldrb r0, [r0]
subs r0, 0x1
adds r1, r0, 0
muls r1, r7
adds r1, r6
adds r0, r5, 0
movs r2, 0x64
bl memcpy
adds r5, 0x64
adds r4, 0x1
cmp r4, 0x1
ble _0801AAE4
ldr r4, =gPlayerParty
movs r0, 0xFA
lsls r0, 1
adds r5, r4, r0
_0801AB0A:
adds r0, r4, 0
bl ZeroMonData
adds r4, 0x64
cmp r4, r5
ble _0801AB0A
ldr r4, =gPlayerParty
movs r5, 0
adds r6, r4, 0
adds r6, 0x64
_0801AB1E:
ldr r1, =gEnemyParty
adds r1, r5, r1
adds r0, r4, 0
movs r2, 0x64
bl memcpy
adds r4, 0x64
adds r5, 0x64
cmp r4, r6
ble _0801AB1E
movs r0, 0x32
bl IncrementGameStat
bl CalculatePlayerPartyCount
ldr r0, =gTrainerBattleOpponent_A
movs r2, 0xC0
lsls r2, 4
adds r1, r2, 0
strh r1, [r0]
ldr r0, =CB2_InitBattle
bl SetMainCallback2
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801AAD4
thumb_func_start sub_801AB68
sub_801AB68: @ 801AB68
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
adds r5, r0, 0
adds r7, r1, 0
adds r6, r2, 0
ldr r4, [sp, 0x38]
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
lsls r3, 24
lsrs r3, 24
movs r0, 0
mov r9, r0
movs r1, 0x1
mov r10, r1
ldr r0, =gUnknown_082F0DE4
mov r8, r0
ldrb r0, [r0]
lsls r1, r0, 4
orrs r1, r0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
str r3, [sp, 0x14]
bl FillWindowPixelBuffer
mov r1, r9
str r1, [sp]
mov r0, r10
str r0, [sp, 0x4]
mov r1, r8
str r1, [sp, 0x8]
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r7, [sp, 0x10]
adds r0, r5, 0
movs r1, 0x1
adds r2, r6, 0
ldr r3, [sp, 0x14]
bl AddTextPrinterParameterized4
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_801AB68
thumb_func_start sub_801ABDC
sub_801ABDC: @ 801ABDC
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0801ABF4
cmp r0, 0x1
beq _0801AC22
b _0801AC36
_0801ABF4:
movs r0, 0
movs r1, 0x1
movs r2, 0xD
bl sub_8098858
str r5, [sp]
movs r0, 0
adds r1, r6, 0
movs r2, 0
movs r3, 0x1
bl sub_801AB68
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _0801AC36
_0801AC22:
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _0801AC36
strh r0, [r4]
movs r0, 0x1
b _0801AC38
_0801AC36:
movs r0, 0
_0801AC38:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_801ABDC
thumb_func_start sub_801AC40
sub_801AC40: @ 801AC40
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_801AC40
thumb_func_start sub_801AC54
sub_801AC54: @ 801AC54
push {r4,lr}
sub sp, 0xC
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
adds r2, r1, 0
cmp r0, 0x33
bls _0801AC6A
b _0801AFAE
_0801AC6A:
lsls r0, 2
ldr r1, =_0801AC7C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0801AC7C:
.4byte _0801AD4C
.4byte _0801ADFC
.4byte _0801AE24
.4byte _0801AE48
.4byte _0801AE98
.4byte _0801AFAE
.4byte _0801AF7C
.4byte _0801AF58
.4byte _0801AF7C
.4byte _0801AF98
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AFAE
.4byte _0801AF24
.4byte _0801AF40
_0801AD4C:
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r4, =gUnknown_02022C6C
movs r0, 0x4
bl AllocZeroed
str r0, [r4]
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082F0DD0
movs r0, 0
movs r2, 0x1
bl InitBgsFromTemplates
bl reset_temp_tile_data_buffers
ldr r0, =gUnknown_082F0DD4
bl InitWindows
lsls r0, 16
cmp r0, 0
bne _0801AD8C
b _0801AFC2
_0801AD8C:
bl DeactivateAllTextPrinters
movs r0, 0
bl ClearWindowTilemap
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0xF
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
bl LoadUserWindowBorderGfx
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
bl LoadUserWindowBorderGfx_
bl sub_819789C
ldr r0, =sub_801AC40
bl SetVBlankCallback
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _0801AF8A
.pool
_0801ADFC:
ldr r0, =gUnknown_02022C6C
ldr r0, [r0]
ldr r1, =gText_CommStandbyAwaitingOtherPlayer
movs r2, 0
bl sub_801ABDC
cmp r0, 0
bne _0801AE0E
b _0801AFAE
_0801AE0E:
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0801AF8A
.pool
_0801AE24:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0
bl ShowBg
ldr r1, =gMain
movs r0, 0x87
lsls r0, 3
adds r1, r0
b _0801AF8A
.pool
_0801AE48:
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
beq _0801AE54
b _0801AFAE
_0801AE54:
ldr r4, =gBlockSendBuffer
adds r0, r4, 0
movs r1, 0
movs r2, 0x20
bl memset
ldr r0, =gSelectedOrderFromParty
ldrb r1, [r0]
ldrb r0, [r0, 0x1]
cmn r1, r0
bne _0801AE78
movs r0, 0x52
b _0801AE7A
.pool
_0801AE78:
movs r0, 0x51
_0801AE7A:
strb r0, [r4]
ldr r1, =gBlockSendBuffer
movs r0, 0
movs r2, 0x20
bl SendBlock
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0801AF8A
.pool
_0801AE98:
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _0801AEA6
b _0801AFAE
_0801AEA6:
ldr r1, =gBlockRecvBuffer
ldrh r0, [r1]
cmp r0, 0x51
bne _0801AEE0
movs r2, 0x80
lsls r2, 1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0x51
bne _0801AEE0
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x32
b _0801AF16
.pool
_0801AEE0:
bl sub_800AC34
ldr r4, =gBlockRecvBuffer
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 16
adds r0, r4
ldrh r0, [r0]
cmp r0, 0x52
bne _0801AF0C
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r0, r2
movs r1, 0x6
b _0801AF16
.pool
_0801AF0C:
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0x8
_0801AF16:
strb r1, [r0]
bl ResetBlockReceivedFlags
b _0801AFAE
.pool
_0801AF24:
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _0801AFAE
bl sub_800ADF8
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r2
b _0801AF8A
.pool
_0801AF40:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _0801AFAE
ldr r0, =sub_801AAD4
bl SetMainCallback2
b _0801AFAE
.pool
_0801AF58:
ldr r0, =gUnknown_02022C6C
ldr r0, [r0]
ldr r1, =gText_RefusedBattle
movs r2, 0x1
bl sub_801ABDC
cmp r0, 0
beq _0801AFAE
ldr r0, =CB2_ReturnToField
bl SetMainCallback2
b _0801AFAE
.pool
_0801AF7C:
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0801AFAE
movs r0, 0x87
lsls r0, 3
adds r1, r2, r0
_0801AF8A:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0801AFAE
.pool
_0801AF98:
ldr r0, =gUnknown_02022C6C
ldr r0, [r0]
ldr r1, =gText_BattleWasRefused
movs r2, 0x1
bl sub_801ABDC
cmp r0, 0
beq _0801AFAE
ldr r0, =CB2_ReturnToField
bl SetMainCallback2
_0801AFAE:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
_0801AFC2:
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_801AC54