summaryrefslogtreecommitdiff
path: root/src/contest.c
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-12-16 17:19:43 -0600
committercamthesaxman <cameronghall@cox.net>2017-12-16 17:19:43 -0600
commit4eaa3ed97fcc6752e13e7cbdb833895217dcf769 (patch)
tree5ef5fe76581cf7fa4289c2698a59a25b241e82dc /src/contest.c
parent1eb55b4b6da9470af8fafc39bc59aeeab54d369c (diff)
get sub_80AC2CC closer
Diffstat (limited to 'src/contest.c')
-rw-r--r--src/contest.c3644
1 files changed, 2722 insertions, 922 deletions
diff --git a/src/contest.c b/src/contest.c
index 06fea7959..e4c68b11a 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -94,7 +94,11 @@ struct UnknownContestStruct1
u8 filler12;
u8 unk13;
u8 unk14;
- u8 unk15;
+ u8 unk15_0:1;
+ u8 unk15_1:3;
+ u8 unk15_4:1;
+ u8 unk15_5:1;
+ u8 unk15_6:1;
u8 unk16;
u8 unk17;
u8 unk18;
@@ -238,7 +242,7 @@ void sub_80B0034(void);
void sub_80B00C8(void);
void nullsub_18();
void sub_80B0324(void);
-void sub_80B03A8();
+void sub_80B03A8(u8);
void sub_80B0518(void);
void sub_80B09B0();
u8 sub_80B09E4();
@@ -362,8 +366,7 @@ void sub_80AB398(void)
memset(&shared19260.unk19260[i], 0, sizeof(shared19260.unk19260[i]));
for (i = 0; i < 4; i++)
{
- shared19260.unk19260[i].unkB_0 = 0;
- //shared19260.unk19260[i].unkB_1 = 0;
+ shared19260.unk19260[i].unkB &= ~3;
shared19260.unk19260[i].unk13 = 0xFF;
shared19260.unk19260[i].unk14 = 0xFF;
}
@@ -381,6 +384,7 @@ void sub_80AB398(void)
sub_80B159C();
}
*/
+
__attribute__((naked))
void sub_80AB398(void)
{
@@ -1263,11 +1267,10 @@ extern const u8 gUnknown_083CC16E[];
extern const u8 *const gUnknown_083CC2D8[];
extern const u8 *const gUnknown_083CC330[];
-#if 0
+#ifdef NONMATCHING
void sub_80AC2CC(u8 taskId)
{
u8 spriteId; // r5
- //register s32 r6 asm("r6");
s32 r6;
u8 r7 = shared19204.unk19215;
@@ -1275,47 +1278,41 @@ void sub_80AC2CC(u8 taskId)
{
case 0:
//_080AC404
+ sub_80B0D7C();
+ // had to write the array index like this to match
+ for (r6 = 0; shared19204.unk19214 != r6[shared19260.unk192D0]; r6++)
+ ;
+ //_080AC42C
+ shared19204.unk19215 = r6;
+ r7 = shared19204.unk19215; // is r7 actually a variable?
+ if (gIsLinkContest & 1)
{
- //s32 r6;
+ u8 taskId2;
- sub_80B0D7C();
- r6 = 0;
- while (shared19204.unk19214 != shared19260.unk192D0[r6])
- r6++;
- //_080AC42C
- shared19204.unk19215 = r6;
- r7 = shared19204.unk19215; // is r7 actually a variable?
- if (gIsLinkContest & 1)
- {
- u8 taskId2;
-
- //shared19204.unk1920B_2 = 1;
- shared19204.unk1920B |= 4;
- if (sub_80AE074() != 0)
- sub_80B114C(shared19204.unk19215);
- taskId2 = CreateTask(sub_80C8C80, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
- sub_80AF860();
- gTasks[taskId].data[0] = 1;
- }
- //_080AC498
- else
- {
- sub_80B114C(r7);
- gTasks[taskId].data[0] = 2;
- }
+ //shared19204.unk1920B_2 = 1;
+ shared19204.unk1920B |= 4;
+ if (sub_80AE074() != 0)
+ sub_80B114C(shared19204.unk19215);
+ taskId2 = CreateTask(sub_80C8C80, 0);
+ SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
+ sub_80AF860();
+ gTasks[taskId].data[0] = 1;
+ }
+ //_080AC498
+ else
+ {
+ sub_80B114C(shared19204.unk19215);
+ gTasks[taskId].data[0] = 2;
}
return;
case 1:
- //if (!shared19204.unk1920B_2)
if (!(shared19204.unk1920B & 4))
gTasks[taskId].data[0] = 2;
return;
case 2:
//_080AC4D4
- // Come on, get this part to match!
{
- struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
+ struct UnknownContestStruct1 *s = &shared19260.unk19260[r7]; // r2
if ((s->unkC & 6)
|| (s->unkB & 0x80))
@@ -1333,24 +1330,21 @@ void sub_80AC2CC(u8 taskId)
return;
case 3:
//_080AC534
- {
- s32 i;
-
- for (i = 0; i < 4; i++)
- gBattleMonForms[i] = 0;
- memset(shared19260.unk19348, 0, 20);
- sub_80B28F0(shared19204.unk19215);
- spriteId = sub_80AE9FC(
- gContestMons[shared19204.unk19215].species,
- gContestMons[shared19204.unk19215].unk3C,
- gContestMons[shared19204.unk19215].unk38);
- gSprites[spriteId].pos2.x = 120;
- gSprites[spriteId].callback = sub_80AD8FC;
- gTasks[taskId].data[2] = spriteId;
- gObjectBankIDs[gBankAttacker] = spriteId;
- sub_80B0BC4(sub_80B09E4(shared19204.unk19215), 0);
- gTasks[taskId].data[0] = 4;
- }
+ // r6 optimized out
+ for (r6 = 0; r6 < 4; r6++)
+ gBattleMonForms[r6] = 0;
+ memset(shared19260.unk19348, 0, 20);
+ sub_80B28F0(shared19204.unk19215);
+ spriteId = sub_80AE9FC(
+ gContestMons[shared19204.unk19215].species,
+ gContestMons[shared19204.unk19215].unk3C,
+ gContestMons[shared19204.unk19215].unk38);
+ gSprites[spriteId].pos2.x = 120;
+ gSprites[spriteId].callback = sub_80AD8FC;
+ gTasks[taskId].data[2] = spriteId;
+ gObjectBankIDs[gBankAttacker] = spriteId;
+ sub_80B0BC4(sub_80B09E4(shared19204.unk19215), 0);
+ gTasks[taskId].data[0] = 4;
return;
case 4:
//_080AC5E8
@@ -1423,7 +1417,8 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
- if (!(s->unk15 & 0x10))
+ //if (!(s->unk15 & 0x10))
+ if (!s->unk15_4)
sub_80B03A8(r7);
sub_80B20C4();
gTasks[taskId].data[0] = 23;
@@ -1432,7 +1427,7 @@ void sub_80AC2CC(u8 taskId)
return;
case 9:
//_080AC7F4
- if (++gTasks[taskId].data[10] > 30)
+ if (gTasks[taskId].data[10]++ > 30)
{
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 7;
@@ -1497,30 +1492,25 @@ void sub_80AC2CC(u8 taskId)
if ((s->unk11 & 3) == 1)
{
sub_80B1710(5);
- asm("");
- gTasks[taskId].data[0] = 49;
}
else if ((s->unk11 & 3) == 2)
{
sub_80B1710(6);
- asm("");
- gTasks[taskId].data[0] = 49;
}
else if ((s->unk11 & 3) == 3)
{
sub_80B1710(7);
- asm("");
- gTasks[taskId].data[0] = 49;
}
else
{
gTasks[taskId].data[0] = 47;
+ return;
}
+ gTasks[taskId].data[0] = 49;
}
return;
case 49:
//_080AC94C
- //if (!shared19204.unk1920A_4)
if (!(shared19204.unk1920A & 0x10))
gTasks[taskId].data[0] = 47;
return;
@@ -1596,10 +1586,10 @@ void sub_80AC2CC(u8 taskId)
return;
case 26:
//_080ACAEE
+ //asm_comment("case26");
{
s8 r4 = 0;
s32 r2 = 0;
- u8 r2_;
for (r6 = gTasks[taskId].data[1]; r6 < 4; r6++)
{
@@ -1607,7 +1597,7 @@ void sub_80AC2CC(u8 taskId)
r4 = 0;
for (r2 = 0; r2 < 4; r2++)
{
- if (r2 != r7 && gUnknown_02038696[0] == r6
+ if (r2 != r7 && gUnknown_02038696[r2] == r6
&& shared19260.unk19260[r2].unk13 != 0xFF)
{
r4 = 1;
@@ -1618,15 +1608,17 @@ void sub_80AC2CC(u8 taskId)
if (r4 != 0)
break;
}
+ r4 = r4; // This makes it shift for some reason
//_080ACB58
- if (r4 != 0)
+ if (r4)
{
//_080ACB60
+ u8 r2_;
struct UnknownContestStruct1 *s;
gTasks[taskId].data[1] = gUnknown_02038696[r2];
r2_ = r2;
- s = &shared19260.unk19260[r2_];
+ s = &shared19260.unk19260[r2];
sub_80B146C(r2_, s->unk13);
s->unk13 = 0xFF;
gTasks[taskId].data[0] = 27;
@@ -1649,15 +1641,13 @@ void sub_80AC2CC(u8 taskId)
case 28:
//_080ACBDC
{
- u8 r1;
+ struct UnknownContestStruct1 *s; // r0
- // check this later
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
+ for (r6 = 0; gTasks[taskId].data[1] != gUnknown_02038696[r6]; r6++)
+ ;
//_080ACC08
- r1 = shared19260.unk19260[r6].unkE;
- sub_80AFBA0(shared19260.unk19260[r6].unk2 + r1, -r1, r6);
+ s = &shared19260.unk19260[r6];
+ sub_80AFBA0(s->unk2 + s->unkE, -s->unkE, r6);
gTasks[taskId].data[0] = 29;
}
return;
@@ -1666,9 +1656,8 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct4 *s;
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
+ for (r6 = 0; gTasks[taskId].data[1] != gUnknown_02038696[r6]; r6++)
+ ;
//_080ACC6C
s = &shared19260.unk19338[r6];
if (!(s->unk2 & 4))
@@ -1677,9 +1666,8 @@ void sub_80AC2CC(u8 taskId)
return;
case 39:
//_080ACC98
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
+ for (r6 = 0; gTasks[taskId].data[1] != gUnknown_02038696[r6]; r6++)
+ ;
if (sub_80AEE54(r6, 1) != 0)
{
gTasks[taskId].data[10] = 0;
@@ -1714,11 +1702,11 @@ void sub_80AC2CC(u8 taskId)
else
PlaySE(SE_C_SYU);
s = &shared19260.unk19260[r6];
- if (s->unk15 & 0x20)
+ //if (s->unk15 & 0x20)
+ if (s->unk15_5)
{
sub_80B03A8(r6);
- // Doesn't match, probably a bitfield
- s->unk15 &= ~0x20;
+ s->unk15_5 = 0;
}
gTasks[taskId].data[1]++;
gTasks[taskId].data[0] = 26;
@@ -1726,7 +1714,7 @@ void sub_80AC2CC(u8 taskId)
return;
case 51:
//_080ACDC8
- if (++gTasks[taskId].data[10] > 9)
+ if (gTasks[taskId].data[10]++ > 9)
{
struct UnknownContestStruct1 *s;
@@ -1750,7 +1738,7 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
- if (!(s->unk15 & 0x40))
+ if (!s->unk15_6)
gTasks[taskId].data[0] = 17;
else
gTasks[taskId].data[0] = 14;
@@ -1760,9 +1748,9 @@ void sub_80AC2CC(u8 taskId)
//_080ACEC0
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
- s32 r4 = s->unk16; // what type is this?
+ s8 r4 = s->unk16; // what type is this?
- if ((u8)r4 != 0)
+ if (s->unk16 != 0)
{
sub_80AF138();
if (r4 == 1)
@@ -1804,7 +1792,9 @@ void sub_80AC2CC(u8 taskId)
{
if (++gTasks[taskId].data[10] > 50)
{
- if (!(shared19260.unk19260[r7].unk15 & 0x10))
+ struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
+ //if (!(shared19260.unk19260[r7].unk15 & 0x10))
+ if (!s->unk15_4)
{
sub_80AFBA0(
shared19260.unk19260[r7].unk2,
@@ -1834,7 +1824,8 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
- if (s->unk15 & 1)
+ //if (s->unk15 & 1)
+ if (s->unk15_0)
{
sub_80AF138();
StringCopy(gStringVar1, gContestMons[r7].nickname);
@@ -1885,12 +1876,12 @@ void sub_80AC2CC(u8 taskId)
return;
case 41:
//_080AD1A4
+ //asm_comment("case41");
{
- struct UnknownContestStruct5 *s5 = &shared19260.unk19328;
+ //struct UnknownContestStruct5_alt *s5_alt = (struct UnknownContestStruct5_alt *)&shared19260.unk19328; // r2
+ struct UnknownContestStruct5 *s5 = (struct UnknownContestStruct5 *)&shared19260.unk19328; // r1
- // WTF is this struct?
- if ((((struct UnknownContestStruct5_alt *)s5)->unk1 & 1)
- && r7 != s5->bits_9)
+ if (s5->bits_8 && r7 != s5->bits_9)
{
gTasks[taskId].data[0] = 57;
}
@@ -1898,7 +1889,8 @@ void sub_80AC2CC(u8 taskId)
else
{
s8 r4 = s5->bits_0;
- struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
+ //struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
+ struct UnknownContestStruct1 *s = ((struct UnknownContestStruct1 *)(((u8 *)s5) - 0xC8)) + r7;
if (s->unk11 & 0x10)
{
@@ -1914,7 +1906,8 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
- if (s->unk15 & 1)
+ //if (s->unk15 & 1)
+ if (s->unk15_0)
r4 = 0;
}
sub_80AF138();
@@ -2008,19 +2001,39 @@ void sub_80AC2CC(u8 taskId)
}
break;
case 2:
+ asm_comment("asdfasdf");
//_080AD43E
if (!(shared19204.unk1920A & 0x20))
{
if (gTasks[taskId].data[11]++ > 29)
{
struct UnknownContestStruct1 *s;
+ struct UnknownContestStruct5 *s5;
+ //register s16 r0 asm("r0");
gTasks[taskId].data[11] = 0;
s = &shared19260.unk19260[r7];
- sub_80AFBA0(s->unk2, shared19260.unk19328.unk2, r7);
- s->unk2 += (s8)shared19260.unk19328.unk2;
+ s5 = &shared19260.unk19328;
+ sub_80AFBA0(s->unk2, s5->unk2, r7);
+ s->unk2 += s5->unk2;
gTasks[taskId].data[10]++;
}
+ /*
+ if (gTasks[taskId].data[11]++ > 29)
+ {
+ struct UnknownContestStruct1 *s;
+ struct UnknownContestStruct5 *s5;
+ register s16 r0 asm("r0");
+
+ gTasks[taskId].data[11] = 0;
+ s = &shared19260.unk19260[r7];
+ r0 = s->unk2;
+ s5 = &shared19260.unk19328;
+ sub_80AFBA0(r0, s5->unk2, r7);
+ s->unk2 += s5->unk2;
+ gTasks[taskId].data[10]++;
+ }
+ */
}
break;
case 3:
@@ -2096,8 +2109,12 @@ void sub_80AC2CC(u8 taskId)
{
struct UnknownContestStruct1 *s = &shared19260.unk19260[r7];
+ /*
if (s->unk15 & 0x10)
s->unk15 &= ~0x10; // probably a bitfield
+ */
+ if (s->unk15_4)
+ s->unk15_4 = 0;
sub_80B09B0(r7);
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringCopy(gStringVar2, gMoveNames[s->unk6]);
@@ -2191,831 +2208,2614 @@ void sub_80AC2CC(u8 taskId)
}
#endif
-/*
+__attribute__((naked))
void sub_80AC2CC(u8 taskId)
{
- u8 spriteId; // r5
- s32 r6;
- u8 r7 = shared19204.unk19215;
-
- switch (gTasks[taskId].data[0])
- {
- case 0:
- //_080AC404
- {
- //s32 r6;
-
- sub_80B0D7C();
- r6 = 0;
- while (shared19204.unk19214 != shared19260.unk192D0[r6])
- r6++;
- //_080AC42C
- shared19204.unk19215 = r6;
- r7 = shared19204.unk19215; // is r7 actually a variable?
- if (gIsLinkContest & 1)
- {
- u8 taskId2;
-
- //shared19204.unk1920B_2 = 1;
- shared19204.unk1920B |= 4;
- if (sub_80AE074() != 0)
- sub_80B114C(shared19204.unk19215);
- taskId2 = CreateTask(sub_80C8C80, 0);
- SetTaskFuncWithFollowupFunc(taskId2, sub_80C8C80, sub_80AD8DC);
- sub_80AF860();
- gTasks[taskId].data[0] = 1;
- }
- //_080AC498
- else
- {
- sub_80B114C(r7);
- gTasks[taskId].data[0] = 2;
- }
- }
- return;
- case 1:
- //if (!shared19204.unk1920B_2)
- if (!(shared19204.unk1920B & 4))
- gTasks[taskId].data[0] = 2;
- return;
- case 2:
- //_080AC4D4
- // Come on, get this part to match!
- if (shared19260.unk19260[r7].unkC_1
- || shared19260.unk19260[r7].unkC_2
- || shared19260.unk19260[r7].unkB_7)
- {
- gTasks[taskId].data[0] = 31;
- }
- else
- {
- sub_80AF138();
- sub_80B0CDC(r7, 0);
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 3;
- }
- return;
- case 3:
- //_080AC534
- {
- s32 i;
-
- for (i = 0; i < 4; i++)
- gBattleMonForms[i] = 0;
- memset(shared19260.unk19348, 0, 20);
- sub_80B28F0(shared19204.unk19215);
- spriteId = sub_80AE9FC(
- gContestMons[shared19204.unk19215].species,
- gContestMons[shared19204.unk19215].unk3C,
- gContestMons[shared19204.unk19215].unk38);
- gSprites[spriteId].pos2.x = 120;
- gSprites[spriteId].callback = sub_80AD8FC;
- gTasks[taskId].data[2] = spriteId;
- gObjectBankIDs[gBankAttacker] = spriteId;
- sub_80B0BC4(sub_80B09E4(shared19204.unk19215), 0);
- gTasks[taskId].data[0] = 4;
- }
- return;
- case 4:
- //_080AC5E8
- spriteId = gTasks[taskId].data[2];
- if (gSprites[spriteId].callback == SpriteCallbackDummy
- // && !shared19260.unk19348[r7].unk2_1)
- && !(shared19260.unk19348[r7].unk2 & 2))
- gTasks[taskId].data[0] = 5;
- return;
- case 5:
- //_080AC638
- if (shared19260.unk19260[r7].unkC_0)
- {
- gTasks[taskId].data[0] = 33;
- }
- //_080AC664
- else
- {
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- if (shared19260.unk19260[r7].unk6 <= 354)
- StringCopy(gStringVar2, gMoveNames[shared19260.unk19260[r7].unk6]);
- else
- StringCopy(gStringVar2, gUnknown_083CC330[shared19260.unk19260[r7].unkA]);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CAFD7);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[0] = 6;
- }
- return;
- case 6:
- //_080AC6F8
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- shared19204.unk1925E = 0;
- gTasks[taskId].data[0] = 7;
- }
- return;
- case 7:
- //_080AC730
- {
- // doesn't match
- u16 r4 = sub_80B2760(shared19260.unk19260[shared19204.unk19215].unk6);
-
- sub_80B2790(shared19204.unk19215);
- sub_80B28F0(shared19204.unk19215);
- sub_80B29B4(r4);
- ExecuteMoveAnim(r4);
- gTasks[taskId].data[0] = 8;
- }
- return;
- case 8:
- //_080AC77C
- gAnimScriptCallback();
- if (!gAnimScriptActive)
- {
- sub_80B28CC(r7);
- if (shared19204.unk1925E != 0)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 9;
- }
- else
- {
- if (!(shared19260.unk19260[r7].unk15 & 0x10))
- sub_80B03A8(r7);
- sub_80B20C4();
- gTasks[taskId].data[0] = 23;
- }
- }
- return;
- case 9:
- //_080AC7F4
- if (++gTasks[taskId].data[10] > 30)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 7;
- }
- return;
- case 23:
- //_080AC81E
- gTasks[taskId].data[1] = 0;
- if (shared19260.unk19260[r7].unk13 != 0xFF)
- {
- sub_80B146C(r7, shared19260.unk19260[r7].unk13);
- shared19260.unk19260[r7].unk13 = 0xFF;
- gTasks[taskId].data[0] = 24;
- }
- //_080AC85C
- else
- {
- if (shared19260.unk19260[r7].unk14 != 0xFF)
- {
- //s32 r6 = 0;
-
- for (r6 = 0; r6 < 4; r6++)
- {
- if (r6 != r7 && shared19260.unk19260[r6].unk13 != 0xFF)
- break;
- }
- //_080AC886
- if (r6 == 4)
- {
- sub_80B146C(r7, shared19260.unk19260[r7].unk14);
- shared19260.unk19260[r7].unk14 = 0xFF;
- gTasks[taskId].data[0] = 24;
- }
- //_080AC8B4
- else
- {
- gTasks[taskId].data[0] = 48;
- }
- }
- //_080AC8C4
- else
- {
- gTasks[taskId].data[0] = 48;
- }
- }
- return;
- case 24:
- //_080AC8CC
- if (sub_80037A0(&gMenuWindow) != 0)
- gTasks[taskId].data[0] = 23;
- return;
- case 48:
- //_080AC8F8
- if ((shared19260.unk19260[r7].unk11 & 3) == 1)
- {
- sub_80B1710(5);
- gTasks[taskId].data[0] = 49;
- }
- else if ((shared19260.unk19260[r7].unk11 & 3) == 2)
- {
- sub_80B1710(6);
- gTasks[taskId].data[0] = 49;
- }
- else if ((shared19260.unk19260[r7].unk11 & 3) == 3)
- {
- sub_80B1710(7);
- gTasks[taskId].data[0] = 49;
- }
- else
- {
- gTasks[taskId].data[0] = 47;
- }
- return;
- case 49:
- //_080AC94C
- //if (!shared19204.unk1920A_4)
- if (!(shared19204.unk1920A & 0x10))
- gTasks[taskId].data[0] = 47;
- return;
- case 47:
- //_080AC96C
- sub_80B1FD0(1);
- gTasks[taskId].data[0] = 12;
- return;
- case 12:
- //_080AC98C
- sub_80AFBA0(0, shared19260.unk19260[r7].unk2, r7);
- gTasks[taskId].data[0] = 13;
- return;
- case 13:
- //_080AC9C0
- if (!(shared19260.unk19338[shared19204.unk19215].unk2 & 4))
- gTasks[taskId].data[0] = 35;
- return;
- case 35:
- //_080AC9EC
- if ((shared19260.unk19260[r7].unk10 & 0x30) == 0x10)
- sub_80B1710(8);
- gTasks[taskId].data[0] = 36;
- return;
- case 36:
- //_080ACA24
- //if (!shared19204.unk1920A_4)
- if (!(shared19204.unk1920A & 0x10))
- gTasks[taskId].data[0] = 37;
- return;
- case 37:
- //_080ACA44
- if (sub_80AEE54(r7, 1) != 0)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 38;
- }
- else
- {
- gTasks[taskId].data[0] = 50;
- }
- return;
- case 38:
- //_080ACA84
- if (++gTasks[taskId].data[10] > 20)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 50;
- }
- return;
- case 50:
- //_080ACAAE
- if (sub_80AF038(r7) != 0)
- PlaySE(SE_C_PASI);
- gTasks[taskId].data[0] = 25;
- return;
- case 25:
- //_080ACAD8
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[0] = 26;
- return;
- case 26:
- //_080ACAEE
- {
- s8 r4 = 0;
- s32 r2 = 0;
-
- // Is this variable reused?
- r6 = gTasks[taskId].data[1];
-
- // This part is really weird
- while (r6 < 4)
- {
- r4 = 0;
- r2 = 0;
-
- if (r4 != r7 && gUnknown_02038696[0] == r6
- && shared19260.unk19260[0].unk13 != 0xFF)
- {
- r4 = 1;
- break;
- }
- //_080ACB2C
- while (++r2 < 4)
- {
- if (r2 != r7 && gUnknown_02038696[0] == r6
- && shared19260.unk19260[r2].unk13 != 0xFF)
- {
- r4 = 1;
- break;
- }
- }
- //_080ACB4E
- if (r4 != 0)
- break;
- }
- //_080ACB58
- if (r4 != 0)
- {
- //_080ACB60
- gTasks[taskId].data[1] = gUnknown_02038696[r2];
- sub_80B146C(r2, shared19260.unk19260[r2].unk13);
- shared19260.unk19260[r2].unk13 = 0xFF;
- gTasks[taskId].data[0] = 27;
- }
- //_080ACB98
- else
- {
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 51;
- sub_80AF120();
- }
- }
- return;
- case 27:
- //_080ACBB0
- if (sub_80037A0(&gMenuWindow) != 0)
- gTasks[taskId].data[0] = 28;
- return;
- case 28:
- //_080ACBDC
- {
- u8 r1;
-
- // check this later
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
- //_080ACC08
- r1 = shared19260.unk19260[r6].unkE;
- sub_80AFBA0(shared19260.unk19260[r6].unk2 + r1, -r1, r6);
- gTasks[taskId].data[0] = 29;
- }
- return;
- case 29:
- //_080ACC44
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
- //_080ACC6C
- if (!(shared19260.unk19338[r6].unk2 & 4))
- gTasks[taskId].data[0] = 39;
- return;
- case 39:
- //_080ACC98
- r6 = 0;
- while (gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
- if (sub_80AEE54(r6, 1) != 0)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 40;
- }
- else
- {
- gTasks[taskId].data[0] = 30;
- }
- return;
- case 40:
- //_080ACD00
- if (++gTasks[taskId].data[10] > 20)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 30;
- }
- return;
- case 30:
- //_080ACD2A
- r6 = 0;
- while (r6 < 4 && gTasks[taskId].data[1] != gUnknown_02038696[r6])
- r6++;
- //_080ACD5E
- if (sub_80AF038(r6) != 0)
- PlaySE(SE_C_PASI);
- else
- PlaySE(SE_C_SYU);
- if (shared19260.unk19260[r6].unk15 & 0x20)
- {
- sub_80B03A8(r6);
- shared19260.unk19260[r6].unk15 &= ~0x20;
- }
- gTasks[taskId].data[1]++;
- gTasks[taskId].data[0] = 26;
- return;
- case 51:
- //_080ACDC8
- if (++gTasks[taskId].data[10] > 9)
- {
- gTasks[taskId].data[10] = 0;
- if (shared19260.unk19260[r7].unkC_1
- || shared19260.unk19260[r7].unkC_2
- || (shared19260.unk19260[r7].unk11 & 4))
- {
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC103);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- }
- //_080ACE36
- gTasks[taskId].data[0] = 52;
- }
- return;
- case 52:
- //_080ACE64
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- if (!(shared19260.unk19260[r7].unk15 & 0x40))
- gTasks[taskId].data[0] = 17;
- else
- gTasks[taskId].data[0] = 14;
- }
- return;
- case 14:
- //_080ACEC0
- {
- s8 r4 = shared19260.unk19260[r7].unk16;
-
- if (r4 != 0)
- {
- sub_80AF138();
- if (r4 == 1)
- sub_8002EB0(&gMenuWindow, gUnknown_083CBD79, 776, 1, 15);
- else if (r4 == 2)
- sub_8002EB0(&gMenuWindow, gUnknown_083CBD9D, 776, 1, 15);
- else
- sub_8002EB0(&gMenuWindow, gUnknown_083CBDC6, 776, 1, 15);
- //_080ACF22
- sub_80B1710(3);
- gTasks[taskId].data[10] = 0;
- }
- //_080ACF48
- else
- {
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CBD52);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- sub_80B1710(2);
- gTasks[taskId].data[10] = 0;
- }
- gTasks[taskId].data[0] = 45; // tail merge?
- }
- return;
- case 45:
- //_080ACFA8
- //if (!shared19204.unk1920A_4)
- if (!(shared19204.unk1920A & 0x10))
- {
- sub_80B09B0(shared19204.unk19215);
- gTasks[taskId].data[0] = 15;
- }
- return;
- case 15:
- //_080ACFD4
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- if (++gTasks[taskId].data[10] > 50)
- {
- if (!(shared19260.unk19260[r7].unk15 & 0x10))
- {
- sub_80AFBA0(
- shared19260.unk19260[r7].unk2,
- shared19260.unk19260[r7].unk17,
- r7);
- shared19260.unk19260[r7].unk2 += shared19260.unk19260[r7].unk17;
- }
- //_080AD02C
- gTasks[taskId].data[0] = 16;
- }
- }
- return;
- case 16:
- //_080AD040
- if (!(shared19260.unk19338[r7].unk2 & 4))
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 17;
- }
- return;
- case 17:
- //_080AD070
- if (shared19260.unk19260[r7].unk15 & 1)
- {
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC075);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[10] = 0;
- sub_80B1710();
- gTasks[taskId].data[0] = 46;
- }
- //_080AD0E8
- else
- {
- gTasks[taskId].data[0] = 41;
- }
- return;
- case 46:
- //_080AD0FA
- //if (!shared19204.unk1920A_4)
- if (!(shared19204.unk1920A & 0x10))
- gTasks[taskId].data[0] = 19;
- return;
- case 19:
- //_080AD11A
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- sub_80AFBA0(
- shared19260.unk19260[r7].unk2,
- -shared19260.unk19260[r7].unk18,
- r7);
- shared19260.unk19260[r7].unk2 -= shared19260.unk19260[r7].unk18;
- gTasks[taskId].data[0] = 18;
- }
- return;
- case 18:
- //_080AD168
- sub_80B0D7C();
- if (!(shared19260.unk19338[r7].unk2 & 4))
- {
- gTasks[taskId].data[10] = 0;
- sub_80AF138();
- gTasks[taskId].data[0] = 41;
- }
- return;
- case 41:
- //_080AD1A4
- if (shared19260.unk19328.bits_8 && r7 != shared19260.unk19328.bits_9)
- {
- gTasks[taskId].data[0] = 57;
- }
- //_080AD1D0
- else
- {
- s8 r4 = shared19260.unk19328.bits_0;
-
- if (shared19260.unk19260[r7].unk11 & 0x10)
- StringCopy(gStringVar3, gMoveNames[shared19260.unk19260[r7].unk6]);
- else
- StringCopy(gStringVar3, gUnknown_083CC2D8[gContestMoves[shared19260.unk19260[r7].unk6].contestCategory]);
- //_080AD21E
- if (r4 > 0 && (shared19260.unk19260[r7].unk15 & 1))
- r4 = 0;
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- shared19204.unk19217 += r4;
- if (shared19204.unk19217 < 0)
- shared19204.unk19217 = 0;
- if (r4 == 0)
- {
- gTasks[taskId].data[0] = 55;
- }
- else
- {
- if (r4 < 0)
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC0BC);
- else if (r4 > 0 && shared19204.unk19217 <= 4)
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC0A0);
- else
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC0E3);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] = 0;
- if (r4 <= 0)
- gTasks[taskId].data[0] = 53;
- else
- gTasks[taskId].data[0] = 54;
- }
- }
- return;
- case 53:
- //_080AD316
- switch (gTasks[taskId].data[10])
- {
- case 0:
- sub_80B1EA8(-1, 1);
- PlayFanfare(BGM_ME_ZANNEN);
- gTasks[taskId].data[10]++;
- break;
- case 1:
- //_080AD354
- if (!(shared19204.unk1920B & 1) && sub_80037A0(&gMenuWindow) != 0)
- {
- sub_80B1CBC(-1);
- gTasks[taskId].data[10]++;
- }
- break;
- case 2:
- //_080AD37C
- if (!(shared19204.unk1920A & 0x20))
- {
- if (++gTasks[taskId].data[11] > 29)
- gTasks[taskId].data[10]++;
- }
- break;
- case 3:
- //_080AD3B0
- if (!gPaletteFade.active)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[0] = 43;
- }
- break;
- }
- return;
- case 54:
- //_080AD3D0
- switch (gTasks[taskId].data[10])
- {
- case 0:
- //_080AD408
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- sub_80B1EA8(0, 1);
- gTasks[taskId].data[10]++;
- }
- break;
- case 1:
- //_080AD420
- if (!(shared19204.unk1920B & 1))
- {
- sub_80B1DDC();
- PlaySE(SE_W227B);
- sub_80B1CBC();
- gTasks[taskId].data[10]++;
- }
- break;
- case 2:
- //_080AD43E
- if (!(shared19204.unk1920A & 0x20))
- {
- if (++gTasks[taskId].data[11] > 29)
- {
- gTasks[taskId].data[11] = 0;
- sub_80AFBA0(shared19260.unk19260[r7].unk2, shared19260.unk19328.unk2, r7);
- shared19260.unk19260[r7].unk2 += shared19260.unk19328.unk2;
- gTasks[taskId].data[10]++;
- }
- }
- break;
- case 3:
- //_080AD4A0
- if (!(shared19260.unk19338[r7].unk2 & 4))
- {
- if (!(shared19204.unk1920A & 0x80))
- {
- sub_80B1EA8(1, -1);
- gTasks[taskId].data[10]++;
- }
- }
- break;
- case 4:
- //_080AD4EC
- if (!gPaletteFade.active)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[11] = 0;
- gTasks[taskId].data[0] = 43;
- }
- break;
- }
- return;
- case 43:
- //_080AD514
- if (!(shared19260.unk19338[r7].unk2 & 4))
- {
- sub_80AF138();
- gTasks[taskId].data[0] = 55;
- }
- return;
- case 57:
- //_080AD53C
- sub_80AF138();
- StringCopy(gStringVar3, gContestMons[shared19260.unk19328.bits_9].nickname);
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringCopy(gStringVar2, gMoveNames[shared19260.unk19260[r7].unk6]);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC14A);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[0] = 58;
- return;
- case 58:
- //_080AD5D0
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- sub_80AF138();
- StringExpandPlaceholders(gStringVar4, gUnknown_083CC16E);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[0] = 59;
- }
- return;
- case 59:
- //_080AD624
- if (sub_80037A0(&gMenuWindow) != 0)
- {
- sub_80AF138();
- gTasks[taskId].data[0] = 55;
- }
- return;
- case 33:
- //_080AD648
- if (shared19260.unk19260[r7].unk15 & 0x10)
- shared19260.unk19260[r7].unk15 &= ~0x10;
- sub_80B09B0(r7);
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringCopy(gStringVar2, gMoveNames[shared19260.unk19260[r7].unk6]);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CBF60);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[0] = 34;
- return;
- case 34:
- //_080AD6D8
- if (sub_80037A0(&gMenuWindow) != 0)
- gTasks[taskId].data[0] = 55;
- return;
- case 55:
- //_080AD700
- sub_80B1BDC();
- gTasks[taskId].data[0] = 56;
- return;
- case 56:
- //_080AD71C
- if (!(shared19204.unk1920A & 0x40))
- {
- if (shared19204.unk19217 > 4)
- {
- shared19204.unk19217 = 0;
- sub_80B1928();
- }
- gTasks[taskId].data[0] = 10;
- }
- return;
- case 10:
- //_080AD750
- spriteId = gTasks[taskId].data[2];
- gSprites[spriteId].callback = sub_80AD92C;
- gTasks[taskId].data[0] = 11;
- return;
- case 11:
- //_080AD77C
- spriteId = gTasks[taskId].data[2];
- if (gSprites[spriteId].invisible)
- {
- FreeSpriteOamMatrix(&gSprites[spriteId]);
- DestroySprite(&gSprites[spriteId]);
- gTasks[taskId].data[0] = 20;
- }
- return;
- case 20:
- //_080AD7B8
- for (r6 = 0; r6 < 4; r6++)
- sub_80B0CDC(r6, 1);
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 21;
- return;
- case 31:
- //_080AD7E8
- sub_80AF138();
- StringCopy(gStringVar1, gContestMons[r7].nickname);
- StringExpandPlaceholders(gStringVar4, gUnknown_083CB00D);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
- gTasks[taskId].data[0] = 32;
- return;
- case 32:
- //_080AD840
- if (sub_80037A0(&gMenuWindow) != 0)
- gTasks[taskId].data[0] = 21;
- return;
- case 21:
- //_080AD868
- if (++gTasks[taskId].data[10] > 29)
- {
- gTasks[taskId].data[10] = 0;
- gTasks[taskId].data[0] = 22;
- }
- return;
- case 22:
- //_080AD88C
- if (++shared19204.unk19214 == 4)
- {
- gTasks[taskId].data[0] = 0;
- gTasks[taskId].data[1] = 0;
- gTasks[taskId].data[2] = 0;
- gTasks[taskId].func = sub_80AD960;
- }
- else
- {
- gTasks[taskId].data[0] = 0;
- }
- nullsub_18(0);
- return;
- }
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x8\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ ldr r2, _080AC308 @ =gSharedMem + 0x19204\n\
+ ldrb r7, [r2, 0x11]\n\
+ ldr r1, _080AC30C @ =gTasks\n\
+ lsls r0, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r3, 0x8\n\
+ ldrsh r0, [r0, r3]\n\
+ adds r6, r2, 0\n\
+ mov r12, r1\n\
+ cmp r0, 0x3B\n\
+ bls _080AC2FC\n\
+ bl _080AD8CA\n\
+_080AC2FC:\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC310 @ =_080AC314\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080AC308: .4byte gSharedMem + 0x19204\n\
+_080AC30C: .4byte gTasks\n\
+_080AC310: .4byte _080AC314\n\
+ .align 2, 0\n\
+_080AC314:\n\
+ .4byte _080AC404\n\
+ .4byte _080AC4B4\n\
+ .4byte _080AC4D4\n\
+ .4byte _080AC534\n\
+ .4byte _080AC5E8\n\
+ .4byte _080AC638\n\
+ .4byte _080AC6F8\n\
+ .4byte _080AC730\n\
+ .4byte _080AC77C\n\
+ .4byte _080AC7F4\n\
+ .4byte _080AD750\n\
+ .4byte _080AD77C\n\
+ .4byte _080AC98C\n\
+ .4byte _080AC9C0\n\
+ .4byte _080ACEC0\n\
+ .4byte _080ACFD4\n\
+ .4byte _080AD040\n\
+ .4byte _080AD070\n\
+ .4byte _080AD168\n\
+ .4byte _080AD11A\n\
+ .4byte _080AD7B8\n\
+ .4byte _080AD868\n\
+ .4byte _080AD88C\n\
+ .4byte _080AC81E\n\
+ .4byte _080AC8CC\n\
+ .4byte _080ACAD8\n\
+ .4byte _080ACAEE\n\
+ .4byte _080ACBB0\n\
+ .4byte _080ACBDC\n\
+ .4byte _080ACC44\n\
+ .4byte _080ACD2A\n\
+ .4byte _080AD7E8\n\
+ .4byte _080AD840\n\
+ .4byte _080AD648\n\
+ .4byte _080AD6D8\n\
+ .4byte _080AC9EC\n\
+ .4byte _080ACA24\n\
+ .4byte _080ACA44\n\
+ .4byte _080ACA84\n\
+ .4byte _080ACC98\n\
+ .4byte _080ACD00\n\
+ .4byte _080AD1A4\n\
+ .4byte _080AD8CA\n\
+ .4byte _080AD514\n\
+ .4byte _080AD8CA\n\
+ .4byte _080ACFA8\n\
+ .4byte _080AD0FA\n\
+ .4byte _080AC96C\n\
+ .4byte _080AC8F8\n\
+ .4byte _080AC94C\n\
+ .4byte _080ACAAE\n\
+ .4byte _080ACDC8\n\
+ .4byte _080ACE64\n\
+ .4byte _080AD316\n\
+ .4byte _080AD3D0\n\
+ .4byte _080AD700\n\
+ .4byte _080AD71C\n\
+ .4byte _080AD53C\n\
+ .4byte _080AD5D0\n\
+ .4byte _080AD624\n\
+_080AC404:\n\
+ bl sub_80B0D7C\n\
+ movs r6, 0\n\
+ ldr r0, _080AC484 @ =gSharedMem + 0x19204\n\
+ adds r1, r0, 0\n\
+ adds r1, 0xCC\n\
+ ldrb r0, [r0, 0x10]\n\
+ mov r4, r8\n\
+ lsls r4, 2\n\
+ mov r9, r4\n\
+ ldrb r5, [r1]\n\
+ cmp r0, r5\n\
+ beq _080AC42C\n\
+ adds r2, r1, 0\n\
+ adds r1, r0, 0\n\
+_080AC422:\n\
+ adds r6, 0x1\n\
+ adds r0, r6, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r1, r0\n\
+ bne _080AC422\n\
+_080AC42C:\n\
+ ldr r4, _080AC484 @ =gSharedMem + 0x19204\n\
+ strb r6, [r4, 0x11]\n\
+ ldrb r7, [r4, 0x11]\n\
+ ldr r0, _080AC488 @ =gIsLinkContest\n\
+ ldrb r1, [r0]\n\
+ movs r5, 0x1\n\
+ adds r0, r5, 0\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC498\n\
+ ldrb r0, [r4, 0x7]\n\
+ movs r1, 0x4\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x7]\n\
+ bl sub_80AE074\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080AC458\n\
+ ldrb r0, [r4, 0x11]\n\
+ bl sub_80B114C\n\
+_080AC458:\n\
+ ldr r4, _080AC48C @ =sub_80C8C80\n\
+ adds r0, r4, 0\n\
+ movs r1, 0\n\
+ bl CreateTask\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r2, _080AC490 @ =sub_80AD8DC\n\
+ adds r1, r4, 0\n\
+ bl SetTaskFuncWithFollowupFunc\n\
+ bl sub_80AF860\n\
+ ldr r1, _080AC494 @ =gTasks\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC484: .4byte gSharedMem + 0x19204\n\
+_080AC488: .4byte gIsLinkContest\n\
+_080AC48C: .4byte sub_80C8C80\n\
+_080AC490: .4byte sub_80AD8DC\n\
+_080AC494: .4byte gTasks\n\
+_080AC498:\n\
+ adds r0, r7, 0\n\
+ bl sub_80B114C\n\
+ ldr r0, _080AC4B0 @ =gTasks\n\
+ mov r1, r9\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x2\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC4B0: .4byte gTasks\n\
+_080AC4B4:\n\
+ ldrb r1, [r6, 0x7]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC4C2\n\
+ bl _080AD8CA\n\
+_080AC4C2:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x2\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC4D4:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC508 @ =gSharedMem + 0x19260\n\
+ adds r2, r0, r1\n\
+ ldrb r1, [r2, 0xC]\n\
+ movs r0, 0x6\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080AC4F6\n\
+ ldrb r1, [r2, 0xB]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ cmp r6, 0\n\
+ beq _080AC50C\n\
+_080AC4F6:\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x1F\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC508: .4byte gSharedMem + 0x19260\n\
+_080AC50C:\n\
+ bl sub_80AF138\n\
+ adds r0, r7, 0\n\
+ movs r1, 0\n\
+ bl sub_80B0CDC\n\
+ ldr r0, _080AC530 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ strh r6, [r1, 0x1C]\n\
+ movs r0, 0x3\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC530: .4byte gTasks\n\
+_080AC534:\n\
+ mov r4, r8\n\
+ lsls r4, 2\n\
+ mov r9, r4\n\
+ ldr r4, _080AC5C4 @ =gSharedMem + 0x19348\n\
+ ldr r1, _080AC5C8 @ =gBattleMonForms\n\
+ movs r2, 0\n\
+ adds r0, r1, 0x3\n\
+_080AC542:\n\
+ strb r2, [r0]\n\
+ subs r0, 0x1\n\
+ cmp r0, r1\n\
+ bge _080AC542\n\
+ movs r6, 0x4\n\
+ adds r0, r4, 0\n\
+ movs r1, 0\n\
+ movs r2, 0x14\n\
+ bl memset\n\
+ ldr r5, _080AC5CC @ =0xfffffebc\n\
+ adds r7, r4, r5\n\
+ ldrb r0, [r7, 0x11]\n\
+ bl sub_80B28F0\n\
+ ldr r3, _080AC5D0 @ =gContestMons\n\
+ ldrb r2, [r7, 0x11]\n\
+ lsls r2, 6\n\
+ adds r0, r2, r3\n\
+ ldrh r0, [r0]\n\
+ adds r1, r3, 0\n\
+ adds r1, 0x3C\n\
+ adds r1, r2, r1\n\
+ ldr r1, [r1]\n\
+ adds r3, 0x38\n\
+ adds r2, r3\n\
+ ldr r2, [r2]\n\
+ bl sub_80AE9FC\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldr r2, _080AC5D4 @ =gSprites\n\
+ lsls r0, r5, 4\n\
+ adds r0, r5\n\
+ lsls r0, 2\n\
+ adds r3, r0, r2\n\
+ movs r1, 0x78\n\
+ strh r1, [r3, 0x24]\n\
+ adds r2, 0x1C\n\
+ adds r0, r2\n\
+ ldr r1, _080AC5D8 @ =sub_80AD8FC\n\
+ str r1, [r0]\n\
+ ldr r0, _080AC5DC @ =gTasks\n\
+ mov r4, r9\n\
+ add r4, r8\n\
+ lsls r4, 3\n\
+ adds r4, r0\n\
+ strh r5, [r4, 0xC]\n\
+ ldr r1, _080AC5E0 @ =gObjectBankIDs\n\
+ ldr r0, _080AC5E4 @ =gBankAttacker\n\
+ ldrb r0, [r0]\n\
+ adds r0, r1\n\
+ strb r5, [r0]\n\
+ ldrb r0, [r7, 0x11]\n\
+ bl sub_80B09E4\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0\n\
+ bl sub_80B0BC4\n\
+ strh r6, [r4, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC5C4: .4byte gSharedMem + 0x19348\n\
+_080AC5C8: .4byte gBattleMonForms\n\
+_080AC5CC: .4byte 0xfffffebc\n\
+_080AC5D0: .4byte gContestMons\n\
+_080AC5D4: .4byte gSprites\n\
+_080AC5D8: .4byte sub_80AD8FC\n\
+_080AC5DC: .4byte gTasks\n\
+_080AC5E0: .4byte gObjectBankIDs\n\
+_080AC5E4: .4byte gBankAttacker\n\
+_080AC5E8:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r3, r12\n\
+ adds r2, r0, r3\n\
+ ldrb r5, [r2, 0xC]\n\
+ ldr r1, _080AC62C @ =gSprites\n\
+ lsls r0, r5, 4\n\
+ adds r0, r5\n\
+ lsls r0, 2\n\
+ adds r1, 0x1C\n\
+ adds r0, r1\n\
+ ldr r1, [r0]\n\
+ ldr r0, _080AC630 @ =SpriteCallbackDummy\n\
+ cmp r1, r0\n\
+ beq _080AC60E\n\
+ bl _080AD8CA\n\
+_080AC60E:\n\
+ lsls r0, r7, 2\n\
+ ldr r1, _080AC634 @ =gSharedMem + 0x19338\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC622\n\
+ bl _080AD8CA\n\
+_080AC622:\n\
+ movs r0, 0x5\n\
+ strh r0, [r2, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC62C: .4byte gSprites\n\
+_080AC630: .4byte SpriteCallbackDummy\n\
+_080AC634: .4byte gSharedMem + 0x19338\n\
+_080AC638:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC660 @ =gSharedMem + 0x19260\n\
+ adds r5, r0, r1\n\
+ ldrb r1, [r5, 0xC]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC664\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x21\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC660: .4byte gSharedMem + 0x19260\n\
+_080AC664:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AC690 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080AC694 @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldrh r1, [r5, 0x6]\n\
+ movs r0, 0xB1\n\
+ lsls r0, 1\n\
+ cmp r1, r0\n\
+ bhi _080AC6A0\n\
+ ldr r0, _080AC698 @ =gStringVar2\n\
+ adds r2, r1, 0\n\
+ movs r1, 0xD\n\
+ muls r1, r2\n\
+ ldr r2, _080AC69C @ =gMoveNames\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ b _080AC6B0\n\
+ .align 2, 0\n\
+_080AC690: .4byte gStringVar1\n\
+_080AC694: .4byte gContestMons + 0x2\n\
+_080AC698: .4byte gStringVar2\n\
+_080AC69C: .4byte gMoveNames\n\
+_080AC6A0:\n\
+ ldr r0, _080AC6E0 @ =gStringVar2\n\
+ ldr r2, _080AC6E4 @ =gUnknown_083CC330\n\
+ ldrb r1, [r5, 0xA]\n\
+ lsls r1, 2\n\
+ adds r1, r2\n\
+ ldr r1, [r1]\n\
+ bl StringCopy\n\
+_080AC6B0:\n\
+ ldr r4, _080AC6E8 @ =gStringVar4\n\
+ ldr r1, _080AC6EC @ =gUnknown_083CAFD7\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080AC6F0 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AC6F4 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x6\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC6E0: .4byte gStringVar2\n\
+_080AC6E4: .4byte gUnknown_083CC330\n\
+_080AC6E8: .4byte gStringVar4\n\
+_080AC6EC: .4byte gUnknown_083CAFD7\n\
+_080AC6F0: .4byte gMenuWindow\n\
+_080AC6F4: .4byte gTasks\n\
+_080AC6F8:\n\
+ ldr r0, _080AC724 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AC708\n\
+ bl _080AD8CA\n\
+_080AC708:\n\
+ ldr r0, _080AC728 @ =gSharedMem + 0x19204\n\
+ adds r0, 0x5A\n\
+ movs r1, 0\n\
+ strb r1, [r0]\n\
+ ldr r1, _080AC72C @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x7\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC724: .4byte gMenuWindow\n\
+_080AC728: .4byte gSharedMem + 0x19204\n\
+_080AC72C: .4byte gTasks\n\
+_080AC730:\n\
+ ldrb r1, [r6, 0x11]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 2\n\
+ adds r1, r6, 0\n\
+ adds r1, 0x5C\n\
+ adds r0, r1\n\
+ ldrh r0, [r0, 0x6]\n\
+ bl sub_80B2760\n\
+ adds r4, r0, 0\n\
+ lsls r4, 16\n\
+ lsrs r4, 16\n\
+ ldrb r0, [r6, 0x11]\n\
+ bl sub_80B2790\n\
+ ldrb r0, [r6, 0x11]\n\
+ bl sub_80B28F0\n\
+ adds r0, r4, 0\n\
+ bl sub_80B29B4\n\
+ adds r0, r4, 0\n\
+ bl ExecuteMoveAnim\n\
+ ldr r1, _080AC778 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x8\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC778: .4byte gTasks\n\
+_080AC77C:\n\
+ ldr r0, _080AC7B8 @ =gAnimScriptCallback\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+ ldr r0, _080AC7BC @ =gAnimScriptActive\n\
+ ldrb r4, [r0]\n\
+ cmp r4, 0\n\
+ beq _080AC790\n\
+ bl _080AD8CA\n\
+_080AC790:\n\
+ adds r0, r7, 0\n\
+ bl sub_80B28CC\n\
+ ldr r1, _080AC7C0 @ =gSharedMem + 0x19204\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x5A\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080AC7C8\n\
+ ldr r0, _080AC7C4 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r1, r5, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ strh r4, [r1, 0x1C]\n\
+ movs r0, 0x9\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC7B8: .4byte gAnimScriptCallback\n\
+_080AC7BC: .4byte gAnimScriptActive\n\
+_080AC7C0: .4byte gSharedMem + 0x19204\n\
+_080AC7C4: .4byte gTasks\n\
+_080AC7C8:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ adds r1, 0x5C\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x15]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080AC7E2\n\
+ adds r0, r7, 0\n\
+ bl sub_80B03A8\n\
+_080AC7E2:\n\
+ bl sub_80B20C4\n\
+ ldr r0, _080AC7F0 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r1, r2, 2\n\
+ b _080AC8E2\n\
+ .align 2, 0\n\
+_080AC7F0: .4byte gTasks\n\
+_080AC7F4:\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r4, r12\n\
+ adds r2, r0, r4\n\
+ ldrh r0, [r2, 0x1C]\n\
+ adds r1, r0, 0x1\n\
+ strh r1, [r2, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x1E\n\
+ bgt _080AC812\n\
+ bl _080AD8CA\n\
+_080AC812:\n\
+ movs r0, 0\n\
+ strh r0, [r2, 0x1C]\n\
+ movs r0, 0x7\n\
+ strh r0, [r2, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC81E:\n\
+ mov r5, r8\n\
+ lsls r3, r5, 2\n\
+ adds r0, r3, r5\n\
+ lsls r0, 3\n\
+ mov r1, r12\n\
+ adds r4, r0, r1\n\
+ movs r0, 0\n\
+ strh r0, [r4, 0xA]\n\
+ lsls r2, r7, 3\n\
+ subs r0, r2, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC858 @ =gSharedMem + 0x19260\n\
+ adds r6, r0, r1\n\
+ ldrb r0, [r6, 0x13]\n\
+ mov r9, r3\n\
+ mov r10, r2\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0xFF\n\
+ beq _080AC85C\n\
+ adds r1, r0, 0\n\
+ adds r0, r7, 0\n\
+ bl sub_80B146C\n\
+ movs r0, 0xFF\n\
+ strb r0, [r6, 0x13]\n\
+ movs r0, 0x18\n\
+ strh r0, [r4, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC858: .4byte gSharedMem + 0x19260\n\
+_080AC85C:\n\
+ ldrb r0, [r6, 0x14]\n\
+ cmp r0, 0xFF\n\
+ beq _080AC8C4\n\
+ movs r6, 0\n\
+ cmp r6, r7\n\
+ beq _080AC86E\n\
+ ldrb r0, [r3, 0x13]\n\
+ cmp r0, 0xFF\n\
+ bne _080AC886\n\
+_080AC86E:\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ bgt _080AC886\n\
+ cmp r6, r7\n\
+ beq _080AC86E\n\
+ lsls r0, r6, 3\n\
+ subs r0, r6\n\
+ lsls r0, 2\n\
+ adds r0, r3\n\
+ ldrb r0, [r0, 0x13]\n\
+ cmp r0, 0xFF\n\
+ beq _080AC86E\n\
+_080AC886:\n\
+ cmp r6, 0x4\n\
+ bne _080AC8B4\n\
+ mov r2, r10\n\
+ subs r4, r2, r7\n\
+ lsls r4, 2\n\
+ adds r4, r3\n\
+ ldrb r1, [r4, 0x14]\n\
+ adds r0, r7, 0\n\
+ bl sub_80B146C\n\
+ movs r0, 0xFF\n\
+ strb r0, [r4, 0x14]\n\
+ ldr r1, _080AC8B0 @ =gTasks\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x18\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC8B0: .4byte gTasks\n\
+_080AC8B4:\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x30\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC8C4:\n\
+ movs r0, 0x30\n\
+ strh r0, [r4, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC8CC:\n\
+ ldr r0, _080AC8F0 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AC8DC\n\
+ bl _080AD8CA\n\
+_080AC8DC:\n\
+ ldr r0, _080AC8F4 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+_080AC8E2:\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x17\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC8F0: .4byte gMenuWindow\n\
+_080AC8F4: .4byte gTasks\n\
+_080AC8F8:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC914 @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x11]\n\
+ movs r3, 0x3\n\
+ ands r3, r0\n\
+ cmp r3, 0x1\n\
+ bne _080AC918\n\
+ movs r0, 0x5\n\
+ bl sub_80B1710\n\
+ b _080AC934\n\
+ .align 2, 0\n\
+_080AC914: .4byte gSharedMem + 0x19260\n\
+_080AC918:\n\
+ cmp r3, 0x2\n\
+ bne _080AC924\n\
+ movs r0, 0x6\n\
+ bl sub_80B1710\n\
+ b _080AC934\n\
+_080AC924:\n\
+ cmp r3, 0x3\n\
+ beq _080AC92E\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ b _080AC95E\n\
+_080AC92E:\n\
+ movs r0, 0x7\n\
+ bl sub_80B1710\n\
+_080AC934:\n\
+ ldr r0, _080AC948 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r1, r5, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x31\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC948: .4byte gTasks\n\
+_080AC94C:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC95A\n\
+ bl _080AD8CA\n\
+_080AC95A:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+_080AC95E:\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x2F\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC96C:\n\
+ movs r0, 0x1\n\
+ bl sub_80B1FD0\n\
+ ldr r0, _080AC988 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r1, r2, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0xC\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC988: .4byte gTasks\n\
+_080AC98C:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AC9B8 @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ movs r3, 0x2\n\
+ ldrsh r1, [r0, r3]\n\
+ movs r0, 0\n\
+ adds r2, r7, 0\n\
+ bl sub_80AFBA0\n\
+ ldr r1, _080AC9BC @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0xD\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AC9B8: .4byte gSharedMem + 0x19260\n\
+_080AC9BC: .4byte gTasks\n\
+_080AC9C0:\n\
+ ldrb r0, [r6, 0x11]\n\
+ lsls r0, 2\n\
+ movs r5, 0x9A\n\
+ lsls r5, 1\n\
+ adds r1, r6, r5\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AC9DA\n\
+ bl _080AD8CA\n\
+_080AC9DA:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x23\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AC9EC:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080ACA1C @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x10]\n\
+ movs r0, 0x30\n\
+ ands r0, r1\n\
+ cmp r0, 0x10\n\
+ bne _080ACA06\n\
+ movs r0, 0x8\n\
+ bl sub_80B1710\n\
+_080ACA06:\n\
+ ldr r0, _080ACA20 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r1, r2, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x24\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACA1C: .4byte gSharedMem + 0x19260\n\
+_080ACA20: .4byte gTasks\n\
+_080ACA24:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ACA32\n\
+ bl _080AD8CA\n\
+_080ACA32:\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x25\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080ACA44:\n\
+ adds r0, r7, 0\n\
+ movs r1, 0x1\n\
+ bl sub_80AEE54\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ACA70\n\
+ ldr r1, _080ACA6C @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x1C]\n\
+ movs r1, 0x26\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACA6C: .4byte gTasks\n\
+_080ACA70:\n\
+ ldr r0, _080ACA80 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r1, r5, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ b _080ACAA6\n\
+ .align 2, 0\n\
+_080ACA80: .4byte gTasks\n\
+_080ACA84:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r2, r12\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x14\n\
+ bgt _080ACAA2\n\
+ bl _080AD8CA\n\
+_080ACAA2:\n\
+ movs r0, 0\n\
+ strh r0, [r1, 0x1C]\n\
+_080ACAA6:\n\
+ movs r0, 0x32\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+_080ACAAE:\n\
+ adds r0, r7, 0\n\
+ bl sub_80AF038\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ACAC0\n\
+ movs r0, 0x63\n\
+ bl PlaySE\n\
+_080ACAC0:\n\
+ ldr r0, _080ACAD4 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x19\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACAD4: .4byte gTasks\n\
+_080ACAD8:\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0xA]\n\
+ movs r1, 0x1A\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080ACAEE:\n\
+ movs r2, 0\n\
+ movs r4, 0\n\
+ mov r5, r8\n\
+ lsls r1, r5, 2\n\
+ adds r0, r1, r5\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r3, 0xA\n\
+ ldrsh r6, [r0, r3]\n\
+ mov r9, r1\n\
+ cmp r6, 0x3\n\
+ bgt _080ACB58\n\
+ ldr r3, _080ACB24 @ =gUnknown_02038696\n\
+ ldr r1, _080ACB28 @ =gSharedMem + 0x19260\n\
+_080ACB0A:\n\
+ movs r4, 0\n\
+ movs r2, 0\n\
+ cmp r4, r7\n\
+ beq _080ACB2C\n\
+ ldrb r0, [r3]\n\
+ cmp r0, r6\n\
+ bne _080ACB2C\n\
+ ldrb r0, [r1, 0x13]\n\
+ cmp r0, 0xFF\n\
+ beq _080ACB2C\n\
+ movs r4, 0x1\n\
+ b _080ACB60\n\
+ .align 2, 0\n\
+_080ACB24: .4byte gUnknown_02038696\n\
+_080ACB28: .4byte gSharedMem + 0x19260\n\
+_080ACB2C:\n\
+ adds r2, 0x1\n\
+ cmp r2, 0x3\n\
+ bgt _080ACB4E\n\
+ cmp r2, r7\n\
+ beq _080ACB2C\n\
+ adds r0, r2, r3\n\
+ ldrb r0, [r0]\n\
+ cmp r0, r6\n\
+ bne _080ACB2C\n\
+ lsls r0, r2, 3\n\
+ subs r0, r2\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r0, [r0, 0x13]\n\
+ cmp r0, 0xFF\n\
+ beq _080ACB2C\n\
+ movs r4, 0x1\n\
+_080ACB4E:\n\
+ cmp r4, 0\n\
+ bne _080ACB60\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ ble _080ACB0A\n\
+_080ACB58:\n\
+ lsls r0, r4, 24\n\
+ asrs r1, r0, 24\n\
+ cmp r1, 0\n\
+ beq _080ACB98\n\
+_080ACB60:\n\
+ mov r5, r9\n\
+ add r5, r8\n\
+ lsls r5, 3\n\
+ add r5, r12\n\
+ ldr r0, _080ACB90 @ =gUnknown_02038696\n\
+ adds r0, r2, r0\n\
+ ldrb r0, [r0]\n\
+ strh r0, [r5, 0xA]\n\
+ lsls r0, r2, 24\n\
+ lsrs r0, 24\n\
+ lsls r4, r2, 3\n\
+ subs r4, r2\n\
+ lsls r4, 2\n\
+ ldr r1, _080ACB94 @ =gSharedMem + 0x19260\n\
+ adds r4, r1\n\
+ ldrb r1, [r4, 0x13]\n\
+ bl sub_80B146C\n\
+ movs r0, 0xFF\n\
+ strb r0, [r4, 0x13]\n\
+ movs r0, 0x1B\n\
+ strh r0, [r5, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACB90: .4byte gUnknown_02038696\n\
+_080ACB94: .4byte gSharedMem + 0x19260\n\
+_080ACB98:\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ strh r1, [r0, 0xA]\n\
+ strh r1, [r0, 0x1C]\n\
+ movs r1, 0x33\n\
+ strh r1, [r0, 0x8]\n\
+ bl sub_80AF120\n\
+ bl _080AD8CA\n\
+_080ACBB0:\n\
+ ldr r0, _080ACBD4 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080ACBC0\n\
+ bl _080AD8CA\n\
+_080ACBC0:\n\
+ ldr r0, _080ACBD8 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r1, r4, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x1C\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACBD4: .4byte gMenuWindow\n\
+_080ACBD8: .4byte gTasks\n\
+_080ACBDC:\n\
+ movs r6, 0\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ adds r1, r0, r5\n\
+ lsls r1, 3\n\
+ add r1, r12\n\
+ movs r3, 0xA\n\
+ ldrsh r2, [r1, r3]\n\
+ ldr r1, _080ACC38 @ =gUnknown_02038696\n\
+ mov r9, r0\n\
+ ldr r3, _080ACC3C @ =gSharedMem + 0x19260\n\
+ adds r5, r1, 0\n\
+ ldrb r4, [r5]\n\
+ cmp r2, r4\n\
+ beq _080ACC08\n\
+ adds r1, r2, 0\n\
+ adds r2, r5, 0\n\
+_080ACBFE:\n\
+ adds r6, 0x1\n\
+ adds r0, r6, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r1, r0\n\
+ bne _080ACBFE\n\
+_080ACC08:\n\
+ lsls r0, r6, 3\n\
+ subs r0, r6\n\
+ lsls r0, 2\n\
+ adds r0, r3\n\
+ ldrb r1, [r0, 0xE]\n\
+ ldrh r0, [r0, 0x2]\n\
+ adds r0, r1\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ negs r1, r1\n\
+ lsls r2, r6, 24\n\
+ lsrs r2, 24\n\
+ bl sub_80AFBA0\n\
+ ldr r1, _080ACC40 @ =gTasks\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x1D\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACC38: .4byte gUnknown_02038696\n\
+_080ACC3C: .4byte gSharedMem + 0x19260\n\
+_080ACC40: .4byte gTasks\n\
+_080ACC44:\n\
+ movs r6, 0\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ adds r1, r0, r5\n\
+ lsls r1, 3\n\
+ add r1, r12\n\
+ movs r2, 0xA\n\
+ ldrsh r3, [r1, r2]\n\
+ ldr r1, _080ACC90 @ =gUnknown_02038696\n\
+ mov r9, r0\n\
+ ldr r2, _080ACC94 @ =gSharedMem + 0x19338\n\
+ adds r5, r1, 0\n\
+ ldrb r4, [r5]\n\
+ cmp r3, r4\n\
+ beq _080ACC6C\n\
+_080ACC62:\n\
+ adds r6, 0x1\n\
+ adds r0, r6, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r3, r0\n\
+ bne _080ACC62\n\
+_080ACC6C:\n\
+ lsls r0, r6, 2\n\
+ adds r0, r2\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ACC7E\n\
+ bl _080AD8CA\n\
+_080ACC7E:\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x27\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACC90: .4byte gUnknown_02038696\n\
+_080ACC94: .4byte gSharedMem + 0x19338\n\
+_080ACC98:\n\
+ movs r6, 0\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ adds r1, r0, r5\n\
+ lsls r1, 3\n\
+ add r1, r12\n\
+ movs r3, 0xA\n\
+ ldrsh r2, [r1, r3]\n\
+ ldr r1, _080ACCE8 @ =gUnknown_02038696\n\
+ mov r9, r0\n\
+ adds r5, r1, 0\n\
+ ldrb r4, [r5]\n\
+ cmp r2, r4\n\
+ beq _080ACCC2\n\
+ adds r1, r2, 0\n\
+ adds r2, r5, 0\n\
+_080ACCB8:\n\
+ adds r6, 0x1\n\
+ adds r0, r6, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r1, r0\n\
+ bne _080ACCB8\n\
+_080ACCC2:\n\
+ lsls r0, r6, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0x1\n\
+ bl sub_80AEE54\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ACCF0\n\
+ ldr r1, _080ACCEC @ =gTasks\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x1C]\n\
+ movs r1, 0x28\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACCE8: .4byte gUnknown_02038696\n\
+_080ACCEC: .4byte gTasks\n\
+_080ACCF0:\n\
+ ldr r0, _080ACCFC @ =gTasks\n\
+ mov r1, r9\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ b _080ACD22\n\
+ .align 2, 0\n\
+_080ACCFC: .4byte gTasks\n\
+_080ACD00:\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r2, r12\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x14\n\
+ bgt _080ACD1E\n\
+ bl _080AD8CA\n\
+_080ACD1E:\n\
+ movs r0, 0\n\
+ strh r0, [r1, 0x1C]\n\
+_080ACD22:\n\
+ movs r0, 0x1E\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+_080ACD2A:\n\
+ movs r6, 0\n\
+ ldr r2, _080ACD78 @ =gUnknown_02038696\n\
+ ldrb r3, [r2]\n\
+ mov r4, r8\n\
+ lsls r1, r4, 2\n\
+ adds r0, r1, r4\n\
+ lsls r0, 3\n\
+ mov r5, r12\n\
+ adds r4, r0, r5\n\
+ movs r5, 0xA\n\
+ ldrsh r0, [r4, r5]\n\
+ mov r9, r1\n\
+ adds r5, r2, 0\n\
+ cmp r3, r0\n\
+ beq _080ACD5E\n\
+ adds r3, r5, 0\n\
+ adds r2, r4, 0\n\
+_080ACD4C:\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ bgt _080ACD5E\n\
+ adds r0, r6, r3\n\
+ ldrb r1, [r0]\n\
+ movs r4, 0xA\n\
+ ldrsh r0, [r2, r4]\n\
+ cmp r1, r0\n\
+ bne _080ACD4C\n\
+_080ACD5E:\n\
+ lsls r4, r6, 24\n\
+ lsrs r0, r4, 24\n\
+ bl sub_80AF038\n\
+ lsls r0, 24\n\
+ adds r5, r4, 0\n\
+ cmp r0, 0\n\
+ beq _080ACD7C\n\
+ movs r0, 0x63\n\
+ bl PlaySE\n\
+ b _080ACD82\n\
+ .align 2, 0\n\
+_080ACD78: .4byte gUnknown_02038696\n\
+_080ACD7C:\n\
+ movs r0, 0x64\n\
+ bl PlaySE\n\
+_080ACD82:\n\
+ lsls r0, r6, 3\n\
+ subs r0, r6\n\
+ lsls r0, 2\n\
+ ldr r1, _080ACDC0 @ =gSharedMem + 0x19260\n\
+ adds r4, r0, r1\n\
+ ldrb r1, [r4, 0x15]\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ACDA6\n\
+ lsrs r0, r5, 24\n\
+ bl sub_80B03A8\n\
+ ldrb r1, [r4, 0x15]\n\
+ movs r0, 0x21\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r4, 0x15]\n\
+_080ACDA6:\n\
+ ldr r0, _080ACDC4 @ =gTasks\n\
+ mov r1, r9\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1, 0xA]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0xA]\n\
+ movs r0, 0x1A\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACDC0: .4byte gSharedMem + 0x19260\n\
+_080ACDC4: .4byte gTasks\n\
+_080ACDC8:\n\
+ mov r5, r8\n\
+ lsls r2, r5, 2\n\
+ adds r0, r2, r5\n\
+ lsls r0, 3\n\
+ mov r1, r12\n\
+ adds r3, r0, r1\n\
+ ldrh r0, [r3, 0x1C]\n\
+ adds r1, r0, 0x1\n\
+ strh r1, [r3, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ mov r9, r2\n\
+ cmp r0, 0x9\n\
+ bgt _080ACDE8\n\
+ bl _080AD8CA\n\
+_080ACDE8:\n\
+ movs r0, 0\n\
+ strh r0, [r3, 0x1C]\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080ACE48 @ =gSharedMem + 0x19260\n\
+ adds r2, r0, r1\n\
+ ldrb r1, [r2, 0xC]\n\
+ movs r0, 0x6\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080ACE0A\n\
+ ldrb r1, [r2, 0x11]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ACE36\n\
+_080ACE0A:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080ACE4C @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080ACE50 @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080ACE54 @ =gStringVar4\n\
+ ldr r1, _080ACE58 @ =gUnknown_083CC103\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080ACE5C @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+_080ACE36:\n\
+ ldr r0, _080ACE60 @ =gTasks\n\
+ mov r1, r9\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x34\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACE48: .4byte gSharedMem + 0x19260\n\
+_080ACE4C: .4byte gStringVar1\n\
+_080ACE50: .4byte gContestMons + 0x2\n\
+_080ACE54: .4byte gStringVar4\n\
+_080ACE58: .4byte gUnknown_083CC103\n\
+_080ACE5C: .4byte gMenuWindow\n\
+_080ACE60: .4byte gTasks\n\
+_080ACE64:\n\
+ ldr r0, _080ACE9C @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080ACE74\n\
+ bl _080AD8CA\n\
+_080ACE74:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080ACEA0 @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x15]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080ACEA8\n\
+ ldr r0, _080ACEA4 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r1, r2, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x11\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACE9C: .4byte gMenuWindow\n\
+_080ACEA0: .4byte gSharedMem + 0x19260\n\
+_080ACEA4: .4byte gTasks\n\
+_080ACEA8:\n\
+ ldr r0, _080ACEBC @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0xE\n\
+ strh r0, [r1, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACEBC: .4byte gTasks\n\
+_080ACEC0:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080ACEE4 @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r4, [r0, 0x16]\n\
+ lsls r4, 24\n\
+ lsrs r5, r4, 24\n\
+ cmp r5, 0\n\
+ beq _080ACF48\n\
+ bl sub_80AF138\n\
+ asrs r0, r4, 24\n\
+ cmp r0, 0x1\n\
+ bne _080ACEF0\n\
+ ldr r0, _080ACEE8 @ =gMenuWindow\n\
+ ldr r1, _080ACEEC @ =gUnknown_083CBD79\n\
+ b _080ACEF8\n\
+ .align 2, 0\n\
+_080ACEE4: .4byte gSharedMem + 0x19260\n\
+_080ACEE8: .4byte gMenuWindow\n\
+_080ACEEC: .4byte gUnknown_083CBD79\n\
+_080ACEF0:\n\
+ cmp r0, 0x2\n\
+ bne _080ACF10\n\
+ ldr r0, _080ACF08 @ =gMenuWindow\n\
+ ldr r1, _080ACF0C @ =gUnknown_083CBD9D\n\
+_080ACEF8:\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r3, 0xF\n\
+ str r3, [sp]\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ b _080ACF22\n\
+ .align 2, 0\n\
+_080ACF08: .4byte gMenuWindow\n\
+_080ACF0C: .4byte gUnknown_083CBD9D\n\
+_080ACF10:\n\
+ ldr r0, _080ACF3C @ =gMenuWindow\n\
+ ldr r1, _080ACF40 @ =gUnknown_083CBDC6\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r3, 0xF\n\
+ str r3, [sp]\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+_080ACF22:\n\
+ movs r0, 0x3\n\
+ bl sub_80B1710\n\
+ ldr r1, _080ACF44 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x1C]\n\
+ b _080ACF88\n\
+ .align 2, 0\n\
+_080ACF3C: .4byte gMenuWindow\n\
+_080ACF40: .4byte gUnknown_083CBDC6\n\
+_080ACF44: .4byte gTasks\n\
+_080ACF48:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080ACF90 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080ACF94 @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080ACF98 @ =gStringVar4\n\
+ ldr r1, _080ACF9C @ =gUnknown_083CBD52\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080ACFA0 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ movs r0, 0x2\n\
+ bl sub_80B1710\n\
+ ldr r1, _080ACFA4 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x1C]\n\
+_080ACF88:\n\
+ movs r1, 0x2D\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACF90: .4byte gStringVar1\n\
+_080ACF94: .4byte gContestMons + 0x2\n\
+_080ACF98: .4byte gStringVar4\n\
+_080ACF9C: .4byte gUnknown_083CBD52\n\
+_080ACFA0: .4byte gMenuWindow\n\
+_080ACFA4: .4byte gTasks\n\
+_080ACFA8:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ACFB6\n\
+ bl _080AD8CA\n\
+_080ACFB6:\n\
+ ldrb r0, [r6, 0x11]\n\
+ bl sub_80B09B0\n\
+ ldr r1, _080ACFD0 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0xF\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080ACFD0: .4byte gTasks\n\
+_080ACFD4:\n\
+ ldr r0, _080AD034 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080ACFE4\n\
+ bl _080AD8CA\n\
+_080ACFE4:\n\
+ ldr r1, _080AD038 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r4, r0, r1\n\
+ ldrh r0, [r4, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x32\n\
+ bgt _080AD002\n\
+ bl _080AD8CA\n\
+_080AD002:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AD03C @ =gSharedMem + 0x19260\n\
+ adds r6, r0, r1\n\
+ ldrb r1, [r6, 0x15]\n\
+ movs r5, 0x10\n\
+ adds r0, r5, 0\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080AD02C\n\
+ movs r1, 0x2\n\
+ ldrsh r0, [r6, r1]\n\
+ ldrb r1, [r6, 0x17]\n\
+ adds r2, r7, 0\n\
+ bl sub_80AFBA0\n\
+ ldrh r0, [r6, 0x2]\n\
+ ldrb r2, [r6, 0x17]\n\
+ adds r0, r2\n\
+ strh r0, [r6, 0x2]\n\
+_080AD02C:\n\
+ strh r5, [r4, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AD034: .4byte gMenuWindow\n\
+_080AD038: .4byte gTasks\n\
+_080AD03C: .4byte gSharedMem + 0x19260\n\
+_080AD040:\n\
+ lsls r0, r7, 2\n\
+ ldr r1, _080AD06C @ =gSharedMem + 0x19338\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0\n\
+ beq _080AD058\n\
+ bl _080AD8CA\n\
+_080AD058:\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ strh r1, [r0, 0x1C]\n\
+ movs r1, 0x11\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AD06C: .4byte gSharedMem + 0x19338\n\
+_080AD070:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AD0CC @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x15]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD0E8\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD0D0 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080AD0D4 @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080AD0D8 @ =gStringVar4\n\
+ ldr r1, _080AD0DC @ =gUnknown_083CC075\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080AD0E0 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r0, _080AD0E4 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r4, r5, 2\n\
+ add r4, r8\n\
+ lsls r4, 3\n\
+ adds r4, r0\n\
+ movs r0, 0\n\
+ strh r0, [r4, 0x1C]\n\
+ bl sub_80B1710\n\
+ movs r0, 0x2E\n\
+ strh r0, [r4, 0x8]\n\
+ bl _080AD8CA\n\
+ .align 2, 0\n\
+_080AD0CC: .4byte gSharedMem + 0x19260\n\
+_080AD0D0: .4byte gStringVar1\n\
+_080AD0D4: .4byte gContestMons + 0x2\n\
+_080AD0D8: .4byte gStringVar4\n\
+_080AD0DC: .4byte gUnknown_083CC075\n\
+_080AD0E0: .4byte gMenuWindow\n\
+_080AD0E4: .4byte gTasks\n\
+_080AD0E8:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x29\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AD0FA:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD108\n\
+ bl _080AD8CA\n\
+_080AD108:\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x13\n\
+ strh r1, [r0, 0x8]\n\
+ bl _080AD8CA\n\
+_080AD11A:\n\
+ ldr r0, _080AD15C @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD12A\n\
+ bl _080AD8CA\n\
+_080AD12A:\n\
+ lsls r4, r7, 3\n\
+ subs r4, r7\n\
+ lsls r4, 2\n\
+ ldr r0, _080AD160 @ =gSharedMem + 0x19260\n\
+ adds r4, r0\n\
+ movs r3, 0x2\n\
+ ldrsh r0, [r4, r3]\n\
+ ldrb r1, [r4, 0x18]\n\
+ negs r1, r1\n\
+ adds r2, r7, 0\n\
+ bl sub_80AFBA0\n\
+ ldrb r1, [r4, 0x18]\n\
+ ldrh r0, [r4, 0x2]\n\
+ subs r0, r1\n\
+ strh r0, [r4, 0x2]\n\
+ ldr r1, _080AD164 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x12\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD15C: .4byte gMenuWindow\n\
+_080AD160: .4byte gSharedMem + 0x19260\n\
+_080AD164: .4byte gTasks\n\
+_080AD168:\n\
+ bl sub_80B0D7C\n\
+ lsls r0, r7, 2\n\
+ ldr r1, _080AD19C @ =gSharedMem + 0x19338\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ cmp r6, 0\n\
+ beq _080AD182\n\
+ b _080AD8CA\n\
+_080AD182:\n\
+ ldr r0, _080AD1A0 @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r4, r5, 2\n\
+ add r4, r8\n\
+ lsls r4, 3\n\
+ adds r4, r0\n\
+ strh r6, [r4, 0x1C]\n\
+ bl sub_80AF138\n\
+ movs r0, 0x29\n\
+ strh r0, [r4, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD19C: .4byte gSharedMem + 0x19338\n\
+_080AD1A0: .4byte gTasks\n\
+_080AD1A4:\n\
+ ldr r2, _080AD1CC @ =gSharedMem + 0x19328\n\
+ ldrb r1, [r2, 0x1]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ adds r1, r2, 0\n\
+ cmp r0, 0\n\
+ beq _080AD1D0\n\
+ ldr r0, [r1]\n\
+ lsls r0, 20\n\
+ lsrs r0, 29\n\
+ cmp r7, r0\n\
+ beq _080AD1D0\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r1, 0x39\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD1CC: .4byte gSharedMem + 0x19328\n\
+_080AD1D0:\n\
+ ldrb r4, [r1]\n\
+ lsls r2, r7, 3\n\
+ subs r0, r2, r7\n\
+ lsls r0, 2\n\
+ subs r1, 0xC8\n\
+ adds r5, r0, r1\n\
+ ldrb r1, [r5, 0x11]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ mov r10, r2\n\
+ cmp r0, 0\n\
+ beq _080AD204\n\
+ movs r4, 0x1\n\
+ ldr r0, _080AD1FC @ =gStringVar3\n\
+ ldrh r2, [r5, 0x6]\n\
+ movs r1, 0xD\n\
+ muls r1, r2\n\
+ ldr r2, _080AD200 @ =gMoveNames\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ b _080AD21E\n\
+ .align 2, 0\n\
+_080AD1FC: .4byte gStringVar3\n\
+_080AD200: .4byte gMoveNames\n\
+_080AD204:\n\
+ ldr r0, _080AD270 @ =gStringVar3\n\
+ ldr r3, _080AD274 @ =gUnknown_083CC2D8\n\
+ ldr r2, _080AD278 @ =gContestMoves\n\
+ ldrh r1, [r5, 0x6]\n\
+ lsls r1, 3\n\
+ adds r1, r2\n\
+ ldrb r1, [r1, 0x1]\n\
+ lsls r1, 29\n\
+ lsrs r1, 27\n\
+ adds r1, r3\n\
+ ldr r1, [r1]\n\
+ bl StringCopy\n\
+_080AD21E:\n\
+ lsls r0, r4, 24\n\
+ cmp r0, 0\n\
+ ble _080AD23A\n\
+ mov r2, r10\n\
+ subs r0, r2, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AD27C @ =gSharedMem + 0x19260\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x15]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD23A\n\
+ movs r4, 0\n\
+_080AD23A:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD280 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080AD284 @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r3, _080AD288 @ =gSharedMem + 0x19204\n\
+ ldrb r0, [r3, 0x13]\n\
+ lsls r1, r4, 24\n\
+ asrs r2, r1, 24\n\
+ adds r0, r2, r0\n\
+ strb r0, [r3, 0x13]\n\
+ lsls r0, 24\n\
+ adds r4, r1, 0\n\
+ cmp r0, 0\n\
+ bge _080AD262\n\
+ movs r0, 0\n\
+ strb r0, [r3, 0x13]\n\
+_080AD262:\n\
+ cmp r2, 0\n\
+ bne _080AD290\n\
+ ldr r0, _080AD28C @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ b _080AD6EC\n\
+ .align 2, 0\n\
+_080AD270: .4byte gStringVar3\n\
+_080AD274: .4byte gUnknown_083CC2D8\n\
+_080AD278: .4byte gContestMoves\n\
+_080AD27C: .4byte gSharedMem + 0x19260\n\
+_080AD280: .4byte gStringVar1\n\
+_080AD284: .4byte gContestMons + 0x2\n\
+_080AD288: .4byte gSharedMem + 0x19204\n\
+_080AD28C: .4byte gTasks\n\
+_080AD290:\n\
+ cmp r2, 0\n\
+ bge _080AD2A8\n\
+ ldr r0, _080AD2A0 @ =gStringVar4\n\
+ ldr r1, _080AD2A4 @ =gUnknown_083CC0BC\n\
+ bl StringExpandPlaceholders\n\
+ b _080AD2D0\n\
+ .align 2, 0\n\
+_080AD2A0: .4byte gStringVar4\n\
+_080AD2A4: .4byte gUnknown_083CC0BC\n\
+_080AD2A8:\n\
+ cmp r2, 0\n\
+ ble _080AD2C8\n\
+ movs r0, 0x13\n\
+ ldrsb r0, [r3, r0]\n\
+ cmp r0, 0x4\n\
+ bgt _080AD2C8\n\
+ ldr r0, _080AD2C0 @ =gStringVar4\n\
+ ldr r1, _080AD2C4 @ =gUnknown_083CC0A0\n\
+ bl StringExpandPlaceholders\n\
+ b _080AD2D0\n\
+ .align 2, 0\n\
+_080AD2C0: .4byte gStringVar4\n\
+_080AD2C4: .4byte gUnknown_083CC0A0\n\
+_080AD2C8:\n\
+ ldr r0, _080AD300 @ =gStringVar4\n\
+ ldr r1, _080AD304 @ =gUnknown_083CC0E3\n\
+ bl StringExpandPlaceholders\n\
+_080AD2D0:\n\
+ ldr r0, _080AD308 @ =gMenuWindow\n\
+ ldr r1, _080AD300 @ =gStringVar4\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r3, 0xF\n\
+ str r3, [sp]\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AD30C @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r1, r0, r1\n\
+ movs r0, 0\n\
+ strh r0, [r1, 0x1C]\n\
+ strh r0, [r1, 0x1E]\n\
+ cmp r4, 0\n\
+ bge _080AD310\n\
+ movs r0, 0x35\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD300: .4byte gStringVar4\n\
+_080AD304: .4byte gUnknown_083CC0E3\n\
+_080AD308: .4byte gMenuWindow\n\
+_080AD30C: .4byte gTasks\n\
+_080AD310:\n\
+ movs r0, 0x36\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+_080AD316:\n\
+ mov r1, r8\n\
+ lsls r0, r1, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r2, r12\n\
+ adds r4, r0, r2\n\
+ movs r3, 0x1C\n\
+ ldrsh r2, [r4, r3]\n\
+ cmp r2, 0x1\n\
+ beq _080AD354\n\
+ cmp r2, 0x1\n\
+ bgt _080AD334\n\
+ cmp r2, 0\n\
+ beq _080AD33E\n\
+ b _080AD8CA\n\
+_080AD334:\n\
+ cmp r2, 0x2\n\
+ beq _080AD37C\n\
+ cmp r2, 0x3\n\
+ beq _080AD3B0\n\
+ b _080AD8CA\n\
+_080AD33E:\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ movs r1, 0x1\n\
+ bl sub_80B1EA8\n\
+ ldr r0, _080AD350 @ =0x00000187\n\
+ bl PlayFanfare\n\
+ b _080AD3A8\n\
+ .align 2, 0\n\
+_080AD350: .4byte 0x00000187\n\
+_080AD354:\n\
+ ldrb r0, [r6, 0x7]\n\
+ ands r2, r0\n\
+ cmp r2, 0\n\
+ beq _080AD35E\n\
+ b _080AD8CA\n\
+_080AD35E:\n\
+ ldr r0, _080AD378 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD36C\n\
+ b _080AD8CA\n\
+_080AD36C:\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ bl sub_80B1CBC\n\
+ b _080AD3A8\n\
+ .align 2, 0\n\
+_080AD378: .4byte gMenuWindow\n\
+_080AD37C:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0\n\
+ beq _080AD38C\n\
+ b _080AD8CA\n\
+_080AD38C:\n\
+ ldrh r0, [r4, 0x1E]\n\
+ adds r1, r0, 0x1\n\
+ strh r1, [r4, 0x1E]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x1D\n\
+ bgt _080AD39C\n\
+ b _080AD8CA\n\
+_080AD39C:\n\
+ strh r2, [r4, 0x1E]\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ adds r0, r1, 0\n\
+ bl sub_80B1EA8\n\
+_080AD3A8:\n\
+ ldrh r0, [r4, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r4, 0x1C]\n\
+ b _080AD8CA\n\
+_080AD3B0:\n\
+ ldr r0, _080AD3CC @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0\n\
+ beq _080AD3C2\n\
+ b _080AD8CA\n\
+_080AD3C2:\n\
+ strh r0, [r4, 0x1C]\n\
+ strh r0, [r4, 0x1E]\n\
+ movs r0, 0x2B\n\
+ strh r0, [r4, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD3CC: .4byte gPaletteFade\n\
+_080AD3D0:\n\
+ mov r4, r8\n\
+ lsls r1, r4, 2\n\
+ adds r0, r1, r4\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ movs r5, 0x1C\n\
+ ldrsh r0, [r0, r5]\n\
+ mov r9, r1\n\
+ cmp r0, 0x4\n\
+ bls _080AD3E6\n\
+ b _080AD8CA\n\
+_080AD3E6:\n\
+ lsls r0, 2\n\
+ ldr r1, _080AD3F0 @ =_080AD3F4\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080AD3F0: .4byte _080AD3F4\n\
+ .align 2, 0\n\
+_080AD3F4:\n\
+ .4byte _080AD408\n\
+ .4byte _080AD420\n\
+ .4byte _080AD43E\n\
+ .4byte _080AD4A0\n\
+ .4byte _080AD4EC\n\
+_080AD408:\n\
+ ldr r0, _080AD41C @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD416\n\
+ b _080AD8CA\n\
+_080AD416:\n\
+ movs r0, 0x1\n\
+ movs r1, 0x1\n\
+ b _080AD4C8\n\
+ .align 2, 0\n\
+_080AD41C: .4byte gMenuWindow\n\
+_080AD420:\n\
+ ldrb r1, [r6, 0x7]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD42C\n\
+ b _080AD8CA\n\
+_080AD42C:\n\
+ bl sub_80B1DDC\n\
+ movs r0, 0xDF\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ bl sub_80B1CBC\n\
+ b _080AD4CC\n\
+_080AD43E:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0\n\
+ beq _080AD44E\n\
+ b _080AD8CA\n\
+_080AD44E:\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r1, r12\n\
+ adds r3, r0, r1\n\
+ ldrh r0, [r3, 0x1E]\n\
+ adds r1, r0, 0x1\n\
+ strh r1, [r3, 0x1E]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x1D\n\
+ bgt _080AD468\n\
+ b _080AD8CA\n\
+_080AD468:\n\
+ strh r2, [r3, 0x1E]\n\
+ lsls r4, r7, 3\n\
+ subs r4, r7\n\
+ lsls r4, 2\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x5C\n\
+ adds r4, r0\n\
+ movs r2, 0x2\n\
+ ldrsh r0, [r4, r2]\n\
+ movs r1, 0x92\n\
+ lsls r1, 1\n\
+ adds r5, r6, r1\n\
+ movs r1, 0x2\n\
+ ldrsb r1, [r5, r1]\n\
+ adds r2, r7, 0\n\
+ str r3, [sp, 0x4]\n\
+ bl sub_80AFBA0\n\
+ movs r0, 0x2\n\
+ ldrsb r0, [r5, r0]\n\
+ ldrh r2, [r4, 0x2]\n\
+ adds r0, r2\n\
+ strh r0, [r4, 0x2]\n\
+ ldr r3, [sp, 0x4]\n\
+ ldrh r0, [r3, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r3, 0x1C]\n\
+ b _080AD8CA\n\
+_080AD4A0:\n\
+ lsls r0, r7, 2\n\
+ ldr r2, _080AD4E0 @ =gSharedMem + 0x19338\n\
+ adds r0, r2\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD4B2\n\
+ b _080AD8CA\n\
+_080AD4B2:\n\
+ ldr r3, _080AD4E4 @ =0xfffffecc\n\
+ adds r0, r2, r3\n\
+ ldrb r1, [r0, 0x6]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD4C2\n\
+ b _080AD8CA\n\
+_080AD4C2:\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ movs r0, 0x1\n\
+_080AD4C8:\n\
+ bl sub_80B1EA8\n\
+_080AD4CC:\n\
+ ldr r0, _080AD4E8 @ =gTasks\n\
+ mov r1, r9\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldrh r0, [r1, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0x1C]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD4E0: .4byte gSharedMem + 0x19338\n\
+_080AD4E4: .4byte 0xfffffecc\n\
+_080AD4E8: .4byte gTasks\n\
+_080AD4EC:\n\
+ ldr r0, _080AD510 @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0\n\
+ beq _080AD4FE\n\
+ b _080AD8CA\n\
+_080AD4FE:\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ strh r1, [r0, 0x1C]\n\
+ strh r1, [r0, 0x1E]\n\
+ movs r1, 0x2B\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD510: .4byte gPaletteFade\n\
+_080AD514:\n\
+ lsls r0, r7, 2\n\
+ ldr r1, _080AD534 @ =gSharedMem + 0x19338\n\
+ adds r0, r1\n\
+ ldrb r1, [r0, 0x2]\n\
+ movs r0, 0x4\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD526\n\
+ b _080AD8CA\n\
+_080AD526:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD538 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r1, r4, 2\n\
+ b _080AD6EC\n\
+ .align 2, 0\n\
+_080AD534: .4byte gSharedMem + 0x19338\n\
+_080AD538: .4byte gTasks\n\
+_080AD53C:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD5A8 @ =gStringVar3\n\
+ ldr r4, _080AD5AC @ =gSharedMem + 0x19328\n\
+ ldr r1, [r4]\n\
+ lsls r1, 20\n\
+ lsrs r1, 29\n\
+ lsls r1, 6\n\
+ ldr r5, _080AD5B0 @ =gContestMons + 0x2\n\
+ adds r1, r5\n\
+ bl StringCopy\n\
+ ldr r0, _080AD5B4 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ adds r1, r5\n\
+ bl StringCopy\n\
+ ldr r0, _080AD5B8 @ =gStringVar2\n\
+ lsls r1, r7, 3\n\
+ subs r1, r7\n\
+ lsls r1, 2\n\
+ subs r4, 0xC8\n\
+ adds r1, r4\n\
+ ldrh r2, [r1, 0x6]\n\
+ movs r1, 0xD\n\
+ muls r1, r2\n\
+ ldr r2, _080AD5BC @ =gMoveNames\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080AD5C0 @ =gStringVar4\n\
+ ldr r1, _080AD5C4 @ =gUnknown_083CC14A\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080AD5C8 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AD5CC @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x3A\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD5A8: .4byte gStringVar3\n\
+_080AD5AC: .4byte gSharedMem + 0x19328\n\
+_080AD5B0: .4byte gContestMons + 0x2\n\
+_080AD5B4: .4byte gStringVar1\n\
+_080AD5B8: .4byte gStringVar2\n\
+_080AD5BC: .4byte gMoveNames\n\
+_080AD5C0: .4byte gStringVar4\n\
+_080AD5C4: .4byte gUnknown_083CC14A\n\
+_080AD5C8: .4byte gMenuWindow\n\
+_080AD5CC: .4byte gTasks\n\
+_080AD5D0:\n\
+ ldr r5, _080AD614 @ =gMenuWindow\n\
+ adds r0, r5, 0\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD5E0\n\
+ b _080AD8CA\n\
+_080AD5E0:\n\
+ bl sub_80AF138\n\
+ ldr r4, _080AD618 @ =gStringVar4\n\
+ ldr r1, _080AD61C @ =gUnknown_083CC16E\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r0, 0xF\n\
+ str r0, [sp]\n\
+ adds r0, r5, 0\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AD620 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r0, r2, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x3B\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD614: .4byte gMenuWindow\n\
+_080AD618: .4byte gStringVar4\n\
+_080AD61C: .4byte gUnknown_083CC16E\n\
+_080AD620: .4byte gTasks\n\
+_080AD624:\n\
+ ldr r0, _080AD640 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD632\n\
+ b _080AD8CA\n\
+_080AD632:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD644 @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ b _080AD6EC\n\
+ .align 2, 0\n\
+_080AD640: .4byte gMenuWindow\n\
+_080AD644: .4byte gTasks\n\
+_080AD648:\n\
+ lsls r0, r7, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ ldr r1, _080AD6B4 @ =gSharedMem + 0x19260\n\
+ adds r4, r0, r1\n\
+ ldrb r1, [r4, 0x15]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080AD664\n\
+ movs r0, 0x11\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r4, 0x15]\n\
+_080AD664:\n\
+ adds r0, r7, 0\n\
+ bl sub_80B09B0\n\
+ ldr r0, _080AD6B8 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080AD6BC @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r0, _080AD6C0 @ =gStringVar2\n\
+ ldrh r2, [r4, 0x6]\n\
+ movs r1, 0xD\n\
+ muls r1, r2\n\
+ ldr r2, _080AD6C4 @ =gMoveNames\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080AD6C8 @ =gStringVar4\n\
+ ldr r1, _080AD6CC @ =gUnknown_083CBF60\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080AD6D0 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AD6D4 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x22\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD6B4: .4byte gSharedMem + 0x19260\n\
+_080AD6B8: .4byte gStringVar1\n\
+_080AD6BC: .4byte gContestMons + 0x2\n\
+_080AD6C0: .4byte gStringVar2\n\
+_080AD6C4: .4byte gMoveNames\n\
+_080AD6C8: .4byte gStringVar4\n\
+_080AD6CC: .4byte gUnknown_083CBF60\n\
+_080AD6D0: .4byte gMenuWindow\n\
+_080AD6D4: .4byte gTasks\n\
+_080AD6D8:\n\
+ ldr r0, _080AD6F8 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080AD6E6\n\
+ b _080AD8CA\n\
+_080AD6E6:\n\
+ ldr r0, _080AD6FC @ =gTasks\n\
+ mov r5, r8\n\
+ lsls r1, r5, 2\n\
+_080AD6EC:\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x37\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD6F8: .4byte gMenuWindow\n\
+_080AD6FC: .4byte gTasks\n\
+_080AD700:\n\
+ bl sub_80B1BDC\n\
+ ldr r0, _080AD718 @ =gTasks\n\
+ mov r2, r8\n\
+ lsls r1, r2, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x38\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD718: .4byte gTasks\n\
+_080AD71C:\n\
+ ldrb r1, [r6, 0x6]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0\n\
+ beq _080AD72C\n\
+ b _080AD8CA\n\
+_080AD72C:\n\
+ movs r0, 0x13\n\
+ ldrsb r0, [r6, r0]\n\
+ cmp r0, 0x4\n\
+ ble _080AD73A\n\
+ strb r1, [r6, 0x13]\n\
+ bl sub_80B1928\n\
+_080AD73A:\n\
+ ldr r0, _080AD74C @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r1, r3, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0xA\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD74C: .4byte gTasks\n\
+_080AD750:\n\
+ mov r4, r8\n\
+ lsls r2, r4, 2\n\
+ add r2, r8\n\
+ lsls r2, 3\n\
+ add r2, r12\n\
+ ldrb r5, [r2, 0xC]\n\
+ ldr r1, _080AD774 @ =gSprites\n\
+ lsls r0, r5, 4\n\
+ adds r0, r5\n\
+ lsls r0, 2\n\
+ adds r1, 0x1C\n\
+ adds r0, r1\n\
+ ldr r1, _080AD778 @ =sub_80AD92C\n\
+ str r1, [r0]\n\
+ movs r0, 0xB\n\
+ strh r0, [r2, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD774: .4byte gSprites\n\
+_080AD778: .4byte sub_80AD92C\n\
+_080AD77C:\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r1, r12\n\
+ adds r4, r0, r1\n\
+ ldrb r5, [r4, 0xC]\n\
+ ldr r1, _080AD7B4 @ =gSprites\n\
+ lsls r0, r5, 4\n\
+ adds r0, r5\n\
+ lsls r0, 2\n\
+ adds r6, r0, r1\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x3E\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 29\n\
+ cmp r0, 0\n\
+ blt _080AD7A2\n\
+ b _080AD8CA\n\
+_080AD7A2:\n\
+ adds r0, r6, 0\n\
+ bl FreeSpriteOamMatrix\n\
+ adds r0, r6, 0\n\
+ bl DestroySprite\n\
+ movs r0, 0x14\n\
+ strh r0, [r4, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD7B4: .4byte gSprites\n\
+_080AD7B8:\n\
+ movs r6, 0\n\
+ mov r2, r8\n\
+ lsls r2, 2\n\
+ mov r9, r2\n\
+_080AD7C0:\n\
+ lsls r0, r6, 24\n\
+ lsrs r0, 24\n\
+ movs r1, 0x1\n\
+ bl sub_80B0CDC\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ ble _080AD7C0\n\
+ ldr r1, _080AD7E4 @ =gTasks\n\
+ mov r0, r9\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strh r1, [r0, 0x1C]\n\
+ movs r1, 0x15\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD7E4: .4byte gTasks\n\
+_080AD7E8:\n\
+ bl sub_80AF138\n\
+ ldr r0, _080AD828 @ =gStringVar1\n\
+ lsls r1, r7, 6\n\
+ ldr r2, _080AD82C @ =gContestMons + 0x2\n\
+ adds r1, r2\n\
+ bl StringCopy\n\
+ ldr r4, _080AD830 @ =gStringVar4\n\
+ ldr r1, _080AD834 @ =gUnknown_083CB00D\n\
+ adds r0, r4, 0\n\
+ bl StringExpandPlaceholders\n\
+ ldr r0, _080AD838 @ =gMenuWindow\n\
+ movs r2, 0xC2\n\
+ lsls r2, 2\n\
+ movs r1, 0xF\n\
+ str r1, [sp]\n\
+ adds r1, r4, 0\n\
+ movs r3, 0x1\n\
+ bl sub_8002EB0\n\
+ ldr r1, _080AD83C @ =gTasks\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ movs r1, 0x20\n\
+ strh r1, [r0, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD828: .4byte gStringVar1\n\
+_080AD82C: .4byte gContestMons + 0x2\n\
+_080AD830: .4byte gStringVar4\n\
+_080AD834: .4byte gUnknown_083CB00D\n\
+_080AD838: .4byte gMenuWindow\n\
+_080AD83C: .4byte gTasks\n\
+_080AD840:\n\
+ ldr r0, _080AD860 @ =gMenuWindow\n\
+ bl sub_80037A0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080AD8CA\n\
+ ldr r0, _080AD864 @ =gTasks\n\
+ mov r4, r8\n\
+ lsls r1, r4, 2\n\
+ add r1, r8\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ movs r0, 0x15\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+ .align 2, 0\n\
+_080AD860: .4byte gMenuWindow\n\
+_080AD864: .4byte gTasks\n\
+_080AD868:\n\
+ mov r5, r8\n\
+ lsls r0, r5, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ mov r2, r12\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1, 0x1C]\n\
+ adds r0, 0x1\n\
+ strh r0, [r1, 0x1C]\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x1D\n\
+ ble _080AD8CA\n\
+ movs r0, 0\n\
+ strh r0, [r1, 0x1C]\n\
+ movs r0, 0x16\n\
+ strh r0, [r1, 0x8]\n\
+ b _080AD8CA\n\
+_080AD88C:\n\
+ ldrb r0, [r6, 0x10]\n\
+ adds r0, 0x1\n\
+ movs r1, 0\n\
+ strb r0, [r6, 0x10]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x4\n\
+ bne _080AD8B8\n\
+ mov r3, r8\n\
+ lsls r0, r3, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ strh r1, [r0, 0x8]\n\
+ strh r1, [r0, 0xA]\n\
+ strh r1, [r0, 0xC]\n\
+ ldr r1, _080AD8B4 @ =sub_80AD960\n\
+ str r1, [r0]\n\
+ b _080AD8C4\n\
+ .align 2, 0\n\
+_080AD8B4: .4byte sub_80AD960\n\
+_080AD8B8:\n\
+ mov r4, r8\n\
+ lsls r0, r4, 2\n\
+ add r0, r8\n\
+ lsls r0, 3\n\
+ add r0, r12\n\
+ strh r1, [r0, 0x8]\n\
+_080AD8C4:\n\
+ movs r0, 0\n\
+ bl nullsub_18\n\
+_080AD8CA:\n\
+ add sp, 0x8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
}
-*/ \ No newline at end of file
+