.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_802493C sub_802493C: @ 802493C push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsrs r6, r0, 16 ldr r1, =gUnknown_03000DB0 movs r0, 0 str r0, [r1] ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08024A10 ldr r4, =gUnknown_02022C98 ldr r0, =0x00003330 bl AllocZeroed str r0, [r4] cmp r0, 0 beq _08024A10 bl sub_8024A1C ldr r0, [r4] bl sub_8024A30 ldr r0, [r4] str r5, [r0] bl GetMultiplayerId ldr r1, [r4] adds r1, 0x28 strb r0, [r1] ldr r1, [r4] ldr r2, =0x000032cc adds r0, r1, r2 adds r2, r1, 0 adds r2, 0x28 ldrb r3, [r2] lsls r2, r3, 4 subs r2, r3 lsls r2, 2 adds r1, r2 ldr r2, =0x000031a0 adds r1, r2 movs r2, 0x3C bl memcpy ldr r0, [r4] adds r1, r0, 0 adds r1, 0x28 ldrb r1, [r1] lsls r1, 2 ldr r2, =0x0000318c adds r1, r2 adds r0, r1 movs r1, 0x64 muls r1, r6 ldr r2, =gPlayerParty adds r1, r2 bl sub_80261F8 ldr r0, =sub_8024BC8 movs r1, 0x1 bl CreateTask ldr r0, =sub_80261CC bl SetMainCallback2 bl sub_80273F0 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x24 ldrb r0, [r0] adds r1, r2, 0 adds r1, 0x44 adds r2, 0x48 bl sub_8026B5C bl StopMapMusic ldr r0, =0x0000021e bl PlayNewMapMusic b _08024A16 .pool _08024A10: adds r0, r5, 0 bl SetMainCallback2 _08024A16: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802493C thumb_func_start sub_8024A1C sub_8024A1C: @ 8024A1C push {lr} bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes pop {r0} bx r0 thumb_func_end sub_8024A1C thumb_func_start sub_8024A30 sub_8024A30: @ 8024A30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 adds r2, r0, 0 movs r0, 0 strb r0, [r2, 0xC] strb r0, [r2, 0x10] strb r0, [r2, 0x14] strb r0, [r2, 0x18] strb r0, [r2, 0x1C] movs r3, 0x8E lsls r3, 1 adds r1, r2, r3 str r0, [r1] movs r7, 0x90 lsls r7, 1 adds r1, r2, r7 str r0, [r1] adds r1, r2, 0 adds r1, 0x30 strb r0, [r1] adds r1, 0x10 strb r0, [r1] subs r1, 0x4 strb r0, [r1] adds r3, 0x10 adds r1, r2, r3 str r0, [r1] movs r5, 0 adds r1, r2, 0 adds r1, 0x98 movs r3, 0 _08024A76: adds r0, r1, r5 strb r3, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08024A76 movs r5, 0 adds r7, r2, 0 adds r7, 0xA8 str r7, [sp] adds r0, r2, 0 adds r0, 0xB0 str r0, [sp, 0xC] movs r1, 0x4A adds r1, r2 mov r10, r1 movs r3, 0x4C adds r3, r2 mov r9, r3 movs r7, 0x4E adds r7, r2 mov r12, r7 subs r0, 0x60 str r0, [sp, 0x24] adds r6, r2, 0 adds r6, 0x54 adds r1, r2, 0 adds r1, 0xD0 str r1, [sp, 0x1C] adds r3, r2, 0 adds r3, 0xDC str r3, [sp, 0x20] adds r7, r2, 0 adds r7, 0xC4 str r7, [sp, 0x14] adds r0, 0xA4 str r0, [sp, 0x4] adds r1, 0x25 str r1, [sp, 0x8] subs r3, 0xBC str r3, [sp, 0x10] movs r7, 0x24 adds r7, r2 mov r8, r7 subs r0, 0xC0 str r0, [sp, 0x18] movs r3, 0 movs r1, 0x86 lsls r1, 1 adds r4, r2, r1 movs r7, 0x98 lsls r7, 1 adds r2, r7 _08024AE2: ldr r1, [sp] adds r0, r1, r5 strb r3, [r0] ldr r7, [sp, 0xC] adds r0, r7, r5 strb r3, [r0] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 mov r7, r10 adds r1, r7, r0 strh r3, [r1] mov r7, r9 adds r1, r7, r0 strh r3, [r1] mov r7, r12 adds r1, r7, r0 strh r3, [r1] ldr r7, [sp, 0x24] adds r1, r7, r0 strh r3, [r1] adds r0, r6, r0 strh r3, [r0] adds r0, r4, r5 strb r3, [r0] lsls r0, r5, 2 adds r0, r2, r0 str r3, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08024AE2 movs r5, 0 movs r3, 0 movs r4, 0xFF ldr r6, [sp, 0x1C] _08024B2C: adds r0, r6, r5 strb r3, [r0] ldr r1, [sp, 0x20] adds r0, r1, r5 strb r3, [r0] ldr r7, [sp, 0x14] adds r0, r7, r5 strb r3, [r0] lsls r1, r5, 1 ldr r0, [sp, 0x4] adds r2, r0, r1 ldrb r0, [r2] orrs r0, r4 strb r0, [r2] ldr r7, [sp, 0x8] adds r1, r7, r1 ldrb r0, [r1] orrs r0, r4 strb r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08024B2C bl GetMultiplayerId movs r1, 0 lsls r0, 24 cmp r0, 0 bne _08024B6A movs r1, 0x1 _08024B6A: ldr r0, [sp, 0x10] strb r1, [r0] bl GetLinkPlayerCount mov r1, r8 strb r0, [r1] bl GetMultiplayerId ldr r3, [sp, 0x18] strb r0, [r3] movs r5, 0x1 mov r7, r8 ldrb r7, [r7] cmp r5, r7 bcs _08024BB6 ldr r7, [sp, 0x18] mov r6, r8 _08024B8C: adds r4, r7, r5 subs r0, r5, 0x1 adds r0, r7, r0 ldrb r0, [r0] adds r0, 0x1 strb r0, [r4] ldrb r2, [r4] ldrb r1, [r6] subs r0, r1, 0x1 cmp r2, r0 ble _08024BAA adds r0, r2, 0 bl __umodsi3 strb r0, [r4] _08024BAA: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6] cmp r5, r0 bcc _08024B8C _08024BB6: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8024A30 thumb_func_start sub_8024BC8 sub_8024BC8: @ 8024BC8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gUnknown_02022C98 ldr r0, [r0] ldrb r0, [r0, 0xC] cmp r0, 0x7 bls _08024BDC b _08024D34 _08024BDC: lsls r0, 2 ldr r1, =_08024BF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08024BF0: .4byte _08024C10 .4byte _08024C24 .4byte _08024C4C .4byte _08024C5A .4byte _08024C80 .4byte _08024CD4 .4byte _08024CE6 .4byte _08024D10 _08024C10: movs r0, 0 bl SetVBlankCallback ldr r0, =sub_8025910 movs r1, 0x4 bl sub_802620C b _08024D20 .pool _08024C24: ldr r0, =sub_8025910 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08024C32 b _08024D40 _08024C32: ldr r4, =gUnknown_02022C98 ldr r0, [r4] movs r1, 0xB0 lsls r1, 1 adds r0, r1 bl sub_8029274 ldr r1, [r4] b _08024D24 .pool _08024C4C: bl sub_802A770 cmp r0, 0 bne _08024D40 bl sub_8010434 b _08024D20 _08024C5A: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08024D40 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08024D20 bl sub_800E0E8 movs r0, 0 movs r1, 0 bl CreateWirelessStatusIndicatorSprite b _08024D20 .pool _08024C80: ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] bl sub_80283A8 movs r4, 0 cmp r4, r5 bcs _08024CBA _08024C92: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x34 adds r0, r4 ldrb r2, [r0] lsls r0, r2, 2 ldr r3, =0x0000318c adds r0, r3 adds r0, r1, r0 adds r1, 0x24 ldrb r3, [r1] adds r1, r4, 0 bl sub_8028408 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08024C92 _08024CBA: ldr r4, =gUnknown_02022C98 ldr r0, [r4] adds r0, 0x24 ldrb r1, [r0] movs r0, 0 bl sub_802868C ldr r1, [r4] b _08024D24 .pool _08024CD4: bl sub_8028A34 bl sub_8028A88 bl sub_8028D44 bl sub_8028734 b _08024D20 _08024CE6: movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =sub_80261E4 bl SetVBlankCallback b _08024D20 .pool _08024D10: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08024D40 _08024D20: ldr r0, =gUnknown_02022C98 ldr r1, [r0] _08024D24: ldrb r0, [r1, 0xC] adds r0, 0x1 strb r0, [r1, 0xC] b _08024D40 .pool _08024D34: adds r0, r1, 0 bl DestroyTask ldr r0, =sub_802589C bl sub_802621C _08024D40: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8024BC8 thumb_func_start sub_8024D4C sub_8024D4C: @ 8024D4C push {lr} bl sub_8025D04 ldr r1, =gUnknown_082F7AC4 ldr r0, =gUnknown_02022C98 ldr r0, [r0] ldrb r0, [r0, 0x18] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_03000DB0 ldr r0, [r0] cmp r0, 0 bne _08024D70 bl sub_8026AF4 _08024D70: bl sub_8025D50 pop {r0} bx r0 .pool thumb_func_end sub_8024D4C thumb_func_start sub_8024D84 sub_8024D84: @ 8024D84 push {lr} bl sub_8025E0C ldr r1, =gUnknown_082F7AF4 ldr r0, =gUnknown_02022C98 ldr r0, [r0] ldrb r0, [r0, 0x18] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_03000DB0 ldr r0, [r0] cmp r0, 0 bne _08024DA8 bl sub_8026B28 _08024DA8: bl sub_8025ED8 pop {r0} bx r0 .pool thumb_func_end sub_8024D84 thumb_func_start sub_8024DBC sub_8024DBC: @ 8024DBC push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0 beq _08024DD4 cmp r0, 0x1 beq _08024DEA b _08024DF8 .pool _08024DD4: movs r0, 0x1 bl sub_8028504 movs r0, 0x1 bl sub_80292E0 ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08024DF8 _08024DEA: bl sub_802A770 cmp r0, 0 bne _08024DF8 movs r0, 0x1 bl sub_8026240 _08024DF8: pop {r4} pop {r0} bx r0 thumb_func_end sub_8024DBC thumb_func_start sub_8024E00 sub_8024E00: @ 8024E00 push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r1, [r4] ldrb r0, [r1, 0x10] cmp r0, 0 bne _08024E20 bl sub_80262C0 ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08024E30 .pool _08024E20: movs r0, 0x8C lsls r0, 1 adds r1, r0 movs r0, 0x1 str r0, [r1] movs r0, 0x2 bl sub_8026240 _08024E30: pop {r4} pop {r0} bx r0 thumb_func_end sub_8024E00 thumb_func_start sub_8024E38 sub_8024E38: @ 8024E38 push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_02022C98 ldr r0, [r1] ldrb r0, [r0, 0x10] adds r4, r1, 0 cmp r0, 0x5 bhi _08024F08 lsls r0, 2 ldr r1, =_08024E5C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08024E5C: .4byte _08024E74 .4byte _08024E90 .4byte _08024EA0 .4byte _08024EC4 .4byte _08024ED8 .4byte _08024EF8 _08024E74: movs r0, 0 str r0, [sp] movs r0, 0x7 movs r1, 0x8 movs r2, 0x78 movs r3, 0x50 bl sub_802EB24 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08024EF0 .pool _08024E90: bl sub_8010434 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08024EF0 .pool _08024EA0: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08024F08 ldr r2, =gUnknown_02022C98 ldr r1, [r2] ldrb r0, [r1, 0x10] adds r0, 0x1 movs r3, 0 strb r0, [r1, 0x10] ldr r0, [r2] adds r0, 0x30 strb r3, [r0] b _08024F08 .pool _08024EC4: bl sub_802EB84 cmp r0, 0 bne _08024F08 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08024EF0 .pool _08024ED8: ldr r1, [r4] adds r1, 0x30 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _08024F08 bl sub_8010434 ldr r1, [r4] _08024EF0: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08024F08 _08024EF8: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08024F08 movs r0, 0x3 bl sub_8026240 _08024F08: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8024E38 thumb_func_start sub_8024F10 sub_8024F10: @ 8024F10 push {lr} ldr r0, =gUnknown_02022C98 ldr r1, [r0] ldrb r0, [r1, 0x10] cmp r0, 0 bne _08024F2E movs r2, 0x8E lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 beq _08024F2E movs r0, 0x4 bl sub_8026240 _08024F2E: pop {r0} bx r0 .pool thumb_func_end sub_8024F10 thumb_func_start sub_8024F38 sub_8024F38: @ 8024F38 push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r2, [r4] ldrb r0, [r2, 0x10] cmp r0, 0 bne _08024FF6 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bhi _08024FE8 adds r0, r2, 0 adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0 bne _08024FEE ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08024F88 ldr r1, =0x000031cc adds r0, r2, r1 ldrb r1, [r0] cmp r1, 0 bne _08024FEE ldr r3, =0x000031d0 adds r0, r2, r3 strb r1, [r0] movs r0, 0x2 b _08024FC2 .pool _08024F88: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08024FA8 ldr r3, =0x000031cc adds r0, r2, r3 ldrb r1, [r0] cmp r1, 0 bne _08024FEE adds r3, 0x4 adds r0, r2, r3 strb r1, [r0] movs r0, 0x1 b _08024FC2 .pool _08024FA8: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08024FD4 ldr r3, =0x000031cc adds r0, r2, r3 ldrb r1, [r0] cmp r1, 0 bne _08024FEE adds r3, 0x4 adds r0, r2, r3 strb r1, [r0] movs r0, 0x3 _08024FC2: bl sub_8027518 ldr r1, [r4] ldr r2, =0x000031cc adds r1, r2 strb r0, [r1] b _08024FEE .pool _08024FD4: movs r0, 0 bl sub_8027518 ldr r1, [r4] ldr r3, =0x000031cc adds r1, r3 strb r0, [r1] b _08024FEE .pool _08024FE8: movs r0, 0xB bl sub_8026240 _08024FEE: bl sub_802671C bl sub_8025F48 _08024FF6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8024F38 thumb_func_start sub_8024FFC sub_8024FFC: @ 8024FFC push {lr} ldr r0, =gUnknown_02022C98 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bhi _080250C4 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0802504C adds r0, r2, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r2, r0 ldr r1, =0x000031cc adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080250CA ldr r3, =0x000032f8 adds r1, r2, r3 movs r0, 0x2 strb r0, [r1] b _080250CA .pool _0802504C: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08025080 adds r0, r2, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r2, r0 ldr r1, =0x000031cc adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080250CA ldr r3, =0x000032f8 adds r1, r2, r3 movs r0, 0x1 strb r0, [r1] b _080250CA .pool _08025080: movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080250B8 adds r0, r2, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r2, r0 ldr r1, =0x000031cc adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _080250CA ldr r3, =0x000032f8 adds r1, r2, r3 movs r0, 0x3 strb r0, [r1] b _080250CA .pool _080250B8: ldr r3, =0x000032f8 adds r0, r2, r3 strb r1, [r0] b _080250CA .pool _080250C4: movs r0, 0xB bl sub_8026240 _080250CA: bl sub_8026044 pop {r0} bx r0 thumb_func_end sub_8024FFC thumb_func_start sub_80250D4 sub_80250D4: @ 80250D4 push {r4,r5,lr} bl sub_802671C bl sub_8025F48 bl sub_8026C50 cmp r0, 0x1 bne _080250F2 bl sub_80272A4 movs r0, 0x5 bl sub_8026240 b _08025150 _080250F2: ldr r0, =gUnknown_02022C98 ldr r2, [r0] movs r1, 0x96 lsls r1, 1 adds r4, r2, r1 movs r1, 0x1 str r1, [r4] movs r3, 0x1 adds r1, r2, 0 adds r1, 0x24 adds r5, r0, 0 ldrb r1, [r1] cmp r3, r1 bcs _08025150 movs r1, 0x9A lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] cmp r0, 0x1 beq _08025124 movs r0, 0 str r0, [r4] b _08025150 .pool _08025124: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldr r2, [r5] adds r0, r2, 0 adds r0, 0x24 ldrb r0, [r0] cmp r3, r0 bcs _08025150 lsls r0, r3, 2 movs r4, 0x98 lsls r4, 1 adds r1, r2, r4 adds r1, r0 ldr r0, [r1] cmp r0, 0x1 beq _08025124 movs r0, 0x96 lsls r0, 1 adds r1, r2, r0 movs r0, 0 str r0, [r1] _08025150: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80250D4 thumb_func_start sub_8025158 sub_8025158: @ 8025158 push {lr} bl sub_8026044 bl sub_8026C90 cmp r0, 0x1 bne _0802516C movs r0, 0x5 bl sub_8026240 _0802516C: pop {r0} bx r0 thumb_func_end sub_8025158 thumb_func_start sub_8025170 sub_8025170: @ 8025170 push {r4,lr} bl GetBlockReceivedStatus adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800A9D8 lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0802518C movs r0, 0 b _08025192 _0802518C: bl ResetBlockReceivedFlags movs r0, 0x1 _08025192: pop {r4} pop {r1} bx r1 thumb_func_end sub_8025170 thumb_func_start sub_8025198 sub_8025198: @ 8025198 push {r4,r5,lr} ldr r5, =gUnknown_02022C98 ldr r1, [r5] ldrb r4, [r1, 0x10] cmp r4, 0x1 beq _080251D0 cmp r4, 0x1 bgt _080251B4 cmp r4, 0 beq _080251BA b _0802520C .pool _080251B4: cmp r4, 0x2 beq _080251DC b _0802520C _080251BA: adds r1, 0x4A movs r0, 0 movs r2, 0x3C bl SendBlock lsls r0, 24 cmp r0, 0 beq _08025226 ldr r0, [r5] strb r4, [r0, 0x8] b _08025202 _080251D0: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08025226 b _08025202 _080251DC: bl sub_8025170 cmp r0, 0 beq _080251EE ldr r0, [r5] adds r1, r0, 0 adds r1, 0x24 ldrb r1, [r1] strb r1, [r0, 0x8] _080251EE: ldr r2, [r5] adds r1, r2, 0 adds r1, 0x24 ldrb r0, [r2, 0x8] ldrb r1, [r1] cmp r0, r1 bcc _08025226 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] _08025202: ldr r1, [r5] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08025226 _0802520C: movs r0, 0x1 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _08025226 movs r0, 0x6 bl sub_8026240 ldr r0, =0x0000020b movs r1, 0x4 bl FadeOutAndPlayNewMapMusic _08025226: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8025198 thumb_func_start sub_8025230 sub_8025230: @ 8025230 push {r4,r5,lr} ldr r5, =gUnknown_02022C98 ldr r2, [r5] ldrb r4, [r2, 0x10] cmp r4, 0x1 beq _08025274 cmp r4, 0x1 bgt _0802524C cmp r4, 0 beq _08025252 b _080252DC .pool _0802524C: cmp r4, 0x2 beq _08025282 b _080252DC _08025252: ldrb r0, [r2, 0x14] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, 0x4A adds r1, r2, r1 movs r0, 0 movs r2, 0x3C bl SendBlock lsls r0, 24 cmp r0, 0 beq _08025316 ldr r0, [r5] strb r4, [r0, 0x8] ldr r1, [r5] b _080252CC _08025274: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08025316 ldr r1, [r5] b _080252CC _08025282: bl sub_8025170 cmp r0, 0 beq _080252B4 movs r4, 0 b _080252AA _0802528E: ldr r0, [r5] adds r0, 0x4A ldr r1, =gBlockRecvBuffer movs r2, 0x3C bl memcpy ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] strb r0, [r1, 0x8] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080252AA: ldr r0, [r5] adds r0, 0x24 ldrb r0, [r0] cmp r4, r0 bcc _0802528E _080252B4: ldr r3, =gUnknown_02022C98 ldr r2, [r3] adds r1, r2, 0 adds r1, 0x24 ldrb r0, [r2, 0x8] ldrb r1, [r1] cmp r0, r1 bcc _08025316 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] ldr r1, [r3] _080252CC: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08025316 .pool _080252DC: movs r0, 0x1 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _08025316 ldr r0, =gUnknown_02022C98 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r0, r2, 0 adds r0, 0x54 adds r0, r1 ldrh r1, [r0] movs r3, 0x8A lsls r3, 1 adds r0, r2, r3 strh r1, [r0] movs r0, 0x6 bl sub_8026240 ldr r0, =0x0000020b movs r1, 0x4 bl FadeOutAndPlayNewMapMusic _08025316: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8025230 thumb_func_start sub_8025324 sub_8025324: @ 8025324 push {r4,r5,lr} sub sp, 0x4 movs r1, 0x1 mov r0, sp strb r1, [r0] ldr r0, =gUnknown_02022C98 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x4 bls _0802533A b _08025458 _0802533A: lsls r0, 2 ldr r1, =_0802534C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802534C: .4byte _08025360 .4byte _08025384 .4byte _0802539C .4byte _080253BC .4byte _080253DC _08025360: bl sub_802749C movs r0, 0x1 bl sub_80289E8 bl sub_8028DFC movs r0, 0x1 bl sub_8028EC8 movs r0, 0x2 bl sub_80292E0 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08025448 .pool _08025384: bl sub_802A770 cmp r0, 0 bne _08025466 movs r0, 0x5 bl sub_80292E0 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08025448 .pool _0802539C: bl sub_802A794 mov r1, sp strb r0, [r1] movs r0, 0 movs r2, 0x1 bl SendBlock lsls r0, 24 cmp r0, 0 beq _08025466 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08025448 .pool _080253BC: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _08025466 ldr r3, =gUnknown_02022C98 ldr r1, [r3] ldrb r0, [r1, 0x10] adds r0, 0x1 movs r2, 0 strb r0, [r1, 0x10] ldr r0, [r3] strb r2, [r0, 0x8] b _08025466 .pool _080253DC: bl sub_8025170 cmp r0, 0 beq _08025422 movs r2, 0 ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcs _08025422 adds r3, r1, 0 movs r5, 0x86 lsls r5, 1 ldr r4, =gBlockRecvBuffer _080253FA: ldr r1, [r3] adds r1, r2, r1 adds r1, r5 lsls r0, r2, 8 adds r0, r4 ldrb r0, [r0] strb r0, [r1] ldr r1, [r3] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] strb r0, [r1, 0x8] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r3] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcc _080253FA _08025422: ldr r4, =gUnknown_02022C98 ldr r2, [r4] adds r1, r2, 0 adds r1, 0x24 ldrb r0, [r2, 0x8] ldrb r1, [r1] cmp r0, r1 bcc _08025466 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 bls _08025466 movs r0, 0x6 bl sub_80292E0 ldr r1, [r4] _08025448: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08025466 .pool _08025458: bl sub_802A770 cmp r0, 0 bne _08025466 movs r0, 0x7 bl sub_8026240 _08025466: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8025324 thumb_func_start sub_8025470 sub_8025470: @ 8025470 push {r4,r5,lr} sub sp, 0x4 ldr r4, =gUnknown_02022C98 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0x7 bls _08025480 b _08025606 _08025480: lsls r0, 2 ldr r1, =_08025494 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08025494: .4byte _080254B4 .4byte _080254D4 .4byte _080254F0 .4byte _08025504 .4byte _08025520 .4byte _0802553C .4byte _08025564 .4byte _08025578 _080254B4: bl sub_8027748 ldr r1, =0x00000bb7 cmp r0, r1 bls _080254C4 movs r0, 0x4 bl sub_80292E0 _080254C4: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _080254D4: bl sub_802A770 cmp r0, 0 beq _080254DE b _0802563C _080254DE: movs r0, 0x3 bl sub_80292E0 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _080254F0: bl sub_8028FCC bl sub_80272E8 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _08025504: bl sub_802A794 lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] cmp r0, 0 bne _08025516 b _0802563C _08025516: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _08025520: bl sub_802A770 cmp r0, 0 beq _0802552A b _0802563C _0802552A: movs r0, 0x5 bl sub_80292E0 ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _0802553C: bl sub_802A794 mov r1, sp strb r0, [r1] movs r0, 0 movs r2, 0x1 bl SendBlock lsls r0, 24 cmp r0, 0 beq _0802563C ldr r2, =gUnknown_02022C98 ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x8] ldr r1, [r2] b _080255E8 .pool _08025564: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _0802563C ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _080255E8 .pool _08025578: bl sub_8025170 cmp r0, 0 beq _080255BE movs r2, 0 ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcs _080255BE adds r3, r1, 0 movs r5, 0x86 lsls r5, 1 ldr r4, =gBlockRecvBuffer _08025596: ldr r1, [r3] adds r1, r2, r1 adds r1, r5 lsls r0, r2, 8 adds r0, r4 ldrb r0, [r0] strb r0, [r1] ldr r1, [r3] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] strb r0, [r1, 0x8] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r3] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcc _08025596 _080255BE: ldr r4, =gUnknown_02022C98 ldr r2, [r4] adds r1, r2, 0 adds r1, 0x24 ldrb r0, [r2, 0x8] ldrb r1, [r1] cmp r0, r1 bcc _080255F8 ldrb r0, [r2, 0x14] adds r0, 0x1 strb r0, [r2, 0x14] lsls r0, 24 lsrs r0, 24 cmp r0, 0x77 bls _0802563C bl sub_8027608 movs r0, 0x6 bl sub_80292E0 ldr r1, [r4] _080255E8: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _0802563C .pool _080255F8: bl sub_8027554 b _0802563C _080255FE: movs r0, 0x8 bl sub_8026240 b _0802563C _08025606: bl sub_802A770 cmp r0, 0 bne _0802563C movs r2, 0 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcs _08025636 movs r4, 0x86 lsls r4, 1 adds r3, r1, r4 adds r1, r0, 0 _08025624: adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0x2 beq _080255FE adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcc _08025624 _08025636: movs r0, 0xA bl sub_8026240 _0802563C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8025470 thumb_func_start sub_8025644 sub_8025644: @ 8025644 push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r0, [r4] ldrb r0, [r0, 0x10] cmp r0, 0x1 beq _08025672 cmp r0, 0x1 bgt _08025660 cmp r0, 0 beq _08025666 b _08025692 .pool _08025660: cmp r0, 0x2 beq _0802567C b _08025692 _08025666: bl sub_800AC34 movs r0, 0x7 bl sub_80292E0 b _08025688 _08025672: bl sub_802A770 cmp r0, 0 bne _080256A0 b _08025688 _0802567C: bl sub_802A794 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _080256A0 _08025688: ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _080256A0 _08025692: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080256A0 movs r0, 0x9 bl sub_8026240 _080256A0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8025644 thumb_func_start sub_80256AC sub_80256AC: @ 80256AC push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_02022C98 ldr r0, [r4] ldrb r1, [r0, 0x10] cmp r1, 0x1 beq _080256E0 cmp r1, 0x1 bgt _080256C8 cmp r1, 0 beq _080256CE b _08025728 .pool _080256C8: cmp r1, 0x2 beq _080256F8 b _08025728 _080256CE: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0802571A _080256E0: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802574C b _0802571A .pool _080256F8: bl sub_8028B80 bl sub_80287E4 ldr r0, [r4] adds r0, 0x24 ldrb r0, [r0] bl sub_8028614 bl sub_8028E84 ldr r1, =gUnknown_03000DB0 movs r0, 0x1 str r0, [r1] movs r0, 0x8 bl sub_80292E0 _0802571A: ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _0802574C .pool _08025728: bl sub_802A770 cmp r0, 0 bne _0802574C ldr r4, =gUnknown_02022C98 ldr r0, [r4] ldr r0, [r0] bl SetMainCallback2 ldr r0, [r4] ldrb r0, [r0, 0x4] bl DestroyTask ldr r0, [r4] bl Free bl FreeAllWindowBuffers _0802574C: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80256AC thumb_func_start sub_8025758 sub_8025758: @ 8025758 push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_02022C98 ldr r1, [r4] ldrb r0, [r1, 0x10] cmp r0, 0x6 bls _08025768 b _0802585C _08025768: lsls r0, 2 ldr r1, =_0802577C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802577C: .4byte _08025798 .4byte _08025838 .4byte _080257B0 .4byte _08025802 .4byte _08025808 .4byte _08025818 .4byte _08025838 _08025798: movs r0, 0x9 bl sub_80292E0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08025848 _080257B0: movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY b _08025848 _08025802: bl StopMapMusic b _08025848 _08025808: ldr r0, =0x0000021e bl PlayNewMapMusic bl sub_8028E4C b _08025848 .pool _08025818: movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _08025848 _08025838: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802588C _08025848: ldr r0, =gUnknown_02022C98 ldr r1, [r0] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _0802588C .pool _0802585C: ldrb r0, [r1, 0x4] bl DestroyTask ldr r0, =sub_802589C bl sub_802621C bl sub_802903C ldr r0, [r4] bl sub_8024A30 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08025882 ldr r0, [r4] adds r0, 0x24 movs r1, 0x1 strb r1, [r0] _08025882: bl sub_80273F0 movs r0, 0 bl sub_8028EC8 _0802588C: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8025758 thumb_func_start sub_802589C sub_802589C: @ 802589C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gUnknown_02022C98 ldr r0, [r1] ldrb r0, [r0, 0x10] adds r4, r1, 0 cmp r0, 0x1 beq _080258C8 cmp r0, 0x1 bgt _080258BC cmp r0, 0 beq _080258C2 b _080258E0 .pool _080258BC: cmp r0, 0x2 beq _080258CE b _080258E0 _080258C2: bl sub_8026264 b _080258D2 _080258C8: bl sub_80286E4 b _080258D6 _080258CE: bl sub_8028828 _080258D2: cmp r0, 0x1 bne _08025904 _080258D6: ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _08025904 _080258E0: ldr r0, [r4] adds r0, 0x20 ldrb r0, [r0] cmp r0, 0 beq _080258F8 ldr r0, =sub_8024D4C bl sub_802621C b _080258FE .pool _080258F8: ldr r0, =sub_8024D84 bl sub_802621C _080258FE: adds r0, r5, 0 bl DestroyTask _08025904: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802589C thumb_func_start sub_8025910 sub_8025910: @ 8025910 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 movs r0, 0 ldrsh r4, [r5, r0] cmp r4, 0x1 beq _0802596C cmp r4, 0x1 bgt _08025938 cmp r4, 0 beq _0802593E b _080259E8 .pool _08025938: cmp r4, 0x2 beq _0802597E b _080259E8 _0802593E: ldr r6, =gUnknown_02022C98 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x28 ldrb r0, [r0] lsls r0, 2 ldr r2, =0x0000318c adds r0, r2 adds r1, r0 movs r0, 0 movs r2, 0x1 bl SendBlock lsls r0, 24 cmp r0, 0 beq _080259E8 ldr r0, [r6] strb r4, [r0, 0x8] b _08025976 .pool _0802596C: bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080259E8 _08025976: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080259E8 _0802597E: bl sub_8025170 cmp r0, 0 beq _080259C4 movs r2, 0 ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcs _080259C4 adds r3, r1, 0 ldr r5, =gBlockRecvBuffer ldr r4, =0x0000318c _0802599A: ldr r0, [r3] lsls r1, r2, 2 adds r1, r0 adds r1, r4 lsls r0, r2, 8 adds r0, r5 ldrb r0, [r0] strb r0, [r1] ldr r1, [r3] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] strb r0, [r1, 0x8] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r3] adds r0, 0x24 ldrb r0, [r0] cmp r2, r0 bcc _0802599A _080259C4: ldr r4, =gUnknown_02022C98 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x24 ldrb r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bcc _080259E8 adds r0, r6, 0 bl DestroyTask movs r0, 0x6 bl sub_80292E0 ldr r1, [r4] ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] _080259E8: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8025910 thumb_func_start sub_80259FC sub_80259FC: @ 80259FC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 ldr r6, =gUnknown_02022C98 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x24 ldrb r7, [r1] ldr r2, =0x000031a0 adds r1, r0, r2 ldr r3, =0x000031cc adds r2, r0, r3 ldr r4, =0x00003208 adds r3, r0, r4 ldr r5, =0x00003244 adds r4, r0, r5 str r4, [sp] adds r5, 0x3C adds r4, r0, r5 str r4, [sp, 0x4] adds r5, 0x3C adds r4, r0, r5 str r4, [sp, 0x8] adds r4, r0, 0 adds r4, 0x40 str r4, [sp, 0xC] movs r5, 0x90 lsls r5, 1 adds r4, r0, r5 str r4, [sp, 0x10] movs r4, 0x96 lsls r4, 1 adds r0, r4 str r0, [sp, 0x14] movs r0, 0 bl sub_8028164 ldr r1, [r6] ldr r5, =0x000031b0 adds r2, r1, r5 str r0, [r2] movs r0, 0x94 lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] movs r5, 0x1 cmp r5, r7 bcs _08025AA4 _08025A60: ldr r1, [r6] adds r0, r1, 0 adds r0, 0xA8 adds r0, r5 ldrb r0, [r0] cmp r0, 0 bne _08025A9A lsls r0, r5, 4 subs r0, r5 lsls r4, r0, 2 adds r1, r4, r1 ldr r2, =0x000031cc adds r1, r2 adds r0, r5, 0 bl sub_8028318 adds r1, r0, 0 cmp r1, 0 bne _08025A9A ldr r0, [r6] adds r0, r4 ldr r3, =0x000031cc adds r0, r3 strb r1, [r0] ldr r0, [r6] movs r4, 0x94 lsls r4, 1 adds r0, r4 strb r1, [r0] _08025A9A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _08025A60 _08025AA4: ldr r5, =gUnknown_02022C98 ldr r1, [r5] movs r6, 0x92 lsls r6, 1 adds r1, r6 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _08025B02 ldr r1, [r5] movs r2, 0x94 lsls r2, 1 adds r0, r1, r2 ldrb r4, [r0] cmp r4, 0 beq _08025AF0 bl sub_8011AC8 ldr r0, [r5] adds r0, r6 movs r1, 0 strb r1, [r0] b _08025B02 .pool _08025AF0: adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x46 bls _08025B02 bl sub_8011AC8 ldr r0, [r5] adds r0, r6 strb r4, [r0] _08025B02: movs r5, 0 cmp r5, r7 bcs _08025BF6 ldr r3, =0x000031cc mov r12, r3 ldr r4, =gUnknown_02022C98 mov r8, r4 _08025B10: mov r6, r8 ldr r2, [r6] lsls r0, r5, 4 subs r1, r0, r5 lsls r1, 2 adds r1, r2, r1 add r1, r12 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 beq _08025B36 adds r0, r2, 0 adds r0, 0xA8 adds r1, r0, r5 ldrb r0, [r1] cmp r0, 0 bne _08025B36 movs r0, 0x1 strb r0, [r1] _08025B36: adds r3, r4, 0 ldr r1, [r3] adds r0, r1, 0 adds r0, 0xA8 adds r0, r5 ldrb r0, [r0] cmp r0, 0x3 bgt _08025B54 cmp r0, 0x1 bge _08025B5A b _08025BEC .pool _08025B54: cmp r0, 0x4 beq _08025BA8 b _08025BEC _08025B5A: adds r1, 0xB0 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _08025BEC ldr r0, [r3] adds r0, 0xB0 adds r0, r5 strb r2, [r0] ldr r0, [r3] adds r0, 0xA8 adds r0, r5 strb r2, [r0] ldr r0, [r3] subs r1, r6, r5 lsls r1, 2 adds r0, r1 add r0, r12 strb r2, [r0] ldr r0, [r3] adds r0, r1 ldr r6, =0x000031d0 adds r0, r6 strb r2, [r0] ldr r0, [r3] adds r0, r1 ldr r1, =0x000031d4 adds r0, r1 b _08025BEA .pool _08025BA8: adds r1, 0xB0 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x27 bls _08025BEC ldr r0, [r4] adds r0, 0xB0 adds r0, r5 strb r2, [r0] ldr r0, [r4] adds r0, 0xA8 adds r0, r5 strb r2, [r0] ldr r0, [r4] subs r1, r6, r5 lsls r1, 2 adds r0, r1 add r0, r12 strb r2, [r0] ldr r0, [r4] adds r0, r1 ldr r3, =0x000031d0 adds r0, r3 strb r2, [r0] ldr r0, [r4] adds r0, r1 ldr r6, =0x000031d4 adds r0, r6 _08025BEA: strb r2, [r0] _08025BEC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _08025B10 _08025BF6: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80259FC thumb_func_start sub_8025C0C sub_8025C0C: @ 8025C0C push {r4-r7,lr} sub sp, 0x18 ldr r5, =gUnknown_02022C98 ldr r0, [r5] adds r1, r0, 0 adds r1, 0x24 ldrb r6, [r1] ldr r2, =0x000031a0 adds r1, r0, r2 ldr r3, =0x000031cc adds r2, r0, r3 ldr r4, =0x00003208 adds r3, r0, r4 ldr r7, =0x00003244 adds r4, r0, r7 str r4, [sp] adds r7, 0x3C adds r4, r0, r7 str r4, [sp, 0x4] adds r7, 0x3C adds r4, r0, r7 str r4, [sp, 0x8] adds r4, r0, 0 adds r4, 0x40 str r4, [sp, 0xC] movs r7, 0x90 lsls r7, 1 adds r4, r0, r7 str r4, [sp, 0x10] movs r4, 0x96 lsls r4, 1 adds r0, r4 str r0, [sp, 0x14] movs r0, 0 bl sub_8028164 ldr r1, [r5] ldr r7, =0x000031b0 adds r2, r1, r7 str r0, [r2] movs r0, 0x94 lsls r0, 1 adds r1, r0 movs r0, 0x1 strb r0, [r1] movs r4, 0x1 cmp r4, r6 bcs _08025C9C _08025C6C: adds r0, r4, 0 bl sub_8028374 cmp r0, 0 beq _08025C92 ldr r0, =gUnknown_02022C98 ldr r2, [r0] lsls r1, r4, 2 movs r3, 0x98 lsls r3, 1 adds r0, r2, r3 adds r0, r1 movs r1, 0x1 str r1, [r0] movs r7, 0x94 lsls r7, 1 adds r1, r2, r7 movs r0, 0 strb r0, [r1] _08025C92: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08025C6C _08025C9C: ldr r5, =gUnknown_02022C98 ldr r1, [r5] movs r6, 0x92 lsls r6, 1 adds r1, r6 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3B bls _08025CFA ldr r1, [r5] movs r2, 0x94 lsls r2, 1 adds r0, r1, r2 ldrb r4, [r0] cmp r4, 0 beq _08025CE8 bl sub_8011AC8 ldr r0, [r5] adds r0, r6 movs r1, 0 strb r1, [r0] b _08025CFA .pool _08025CE8: adds r0, r1, r6 ldrb r0, [r0] cmp r0, 0x46 bls _08025CFA bl sub_8011AC8 ldr r0, [r5] adds r0, r6 strb r4, [r0] _08025CFA: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8025C0C thumb_func_start sub_8025D04 sub_8025D04: @ 8025D04 push {r4,r5,lr} ldr r5, =gUnknown_02022C98 ldr r0, [r5] ldrb r0, [r0, 0x18] cmp r0, 0x4 beq _08025D40 cmp r0, 0x4 bgt _08025D20 cmp r0, 0x3 beq _08025D26 b _08025D4A .pool _08025D20: cmp r0, 0xB beq _08025D46 b _08025D4A _08025D26: bl sub_8026BB8 adds r4, r0, 0 cmp r4, 0x1 bne _08025D4A bl sub_8026C28 ldr r0, [r5] movs r1, 0x8E lsls r1, 1 adds r0, r1 str r4, [r0] b _08025D4A _08025D40: bl sub_80259FC b _08025D4A _08025D46: bl sub_8025C0C _08025D4A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8025D04 thumb_func_start sub_8025D50 sub_8025D50: @ 8025D50 push {r4-r6,lr} sub sp, 0x14 ldr r0, =gUnknown_02022C98 ldr r5, [r0] ldrb r0, [r5, 0x18] cmp r0, 0x4 beq _08025D68 cmp r0, 0xB beq _08025DB8 b _08025DF4 .pool _08025D68: ldr r1, =0x000032cc adds r0, r5, r1 ldr r2, =0x000031cc adds r1, r5, r2 ldr r3, =0x00003208 adds r2, r5, r3 ldr r4, =0x00003244 adds r3, r5, r4 movs r6, 0xCA lsls r6, 6 adds r4, r5, r6 str r4, [sp] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x4] adds r4, r5, 0 adds r4, 0x40 ldrb r4, [r4] str r4, [sp, 0x8] movs r6, 0x90 lsls r6, 1 adds r4, r5, r6 ldr r4, [r4] str r4, [sp, 0xC] adds r6, 0xC adds r4, r5, r6 ldr r4, [r4] str r4, [sp, 0x10] bl sub_8027E30 b _08025DF4 .pool _08025DB8: ldr r1, =0x000032cc adds r0, r5, r1 ldr r2, =0x000031cc adds r1, r5, r2 ldr r3, =0x00003208 adds r2, r5, r3 ldr r4, =0x00003244 adds r3, r5, r4 movs r6, 0xCA lsls r6, 6 adds r4, r5, r6 str r4, [sp] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x4] adds r4, r5, 0 adds r4, 0x40 ldrb r4, [r4] str r4, [sp, 0x8] movs r6, 0x90 lsls r6, 1 adds r4, r5, r6 ldr r4, [r4] str r4, [sp, 0xC] adds r6, 0xC adds r4, r5, r6 ldr r4, [r4] str r4, [sp, 0x10] bl sub_8027E30 _08025DF4: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8025D50 thumb_func_start sub_8025E0C sub_8025E0C: @ 8025E0C push {r4-r6,lr} sub sp, 0x18 ldr r0, =gUnknown_02022C98 ldr r5, [r0] ldrb r0, [r5, 0x18] cmp r0, 0x4 beq _08025E24 cmp r0, 0xB beq _08025E7C b _08025EC0 .pool _08025E24: adds r0, r5, 0 adds r0, 0x28 ldrb r0, [r0] lsls r1, r0, 4 subs r1, r0 lsls r1, 2 ldr r2, =0x000031a0 adds r1, r2 adds r1, r5, r1 ldr r3, =0x000031cc adds r2, r5, r3 ldr r4, =0x00003208 adds r3, r5, r4 ldr r6, =0x00003244 adds r4, r5, r6 str r4, [sp] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x4] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x8] adds r4, r5, 0 adds r4, 0x40 str r4, [sp, 0xC] movs r6, 0x90 lsls r6, 1 adds r4, r5, r6 str r4, [sp, 0x10] adds r6, 0xC adds r4, r5, r6 str r4, [sp, 0x14] bl sub_8028164 b _08025EC0 .pool _08025E7C: adds r0, r5, 0 adds r0, 0x28 ldrb r0, [r0] lsls r1, r0, 4 subs r1, r0 lsls r1, 2 ldr r2, =0x000031a0 adds r1, r2 adds r1, r5, r1 ldr r3, =0x000031cc adds r2, r5, r3 ldr r4, =0x00003208 adds r3, r5, r4 ldr r6, =0x00003244 adds r4, r5, r6 str r4, [sp] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x4] adds r6, 0x3C adds r4, r5, r6 str r4, [sp, 0x8] adds r4, r5, 0 adds r4, 0x40 str r4, [sp, 0xC] movs r6, 0x90 lsls r6, 1 adds r4, r5, r6 str r4, [sp, 0x10] adds r6, 0xC adds r4, r5, r6 str r4, [sp, 0x14] bl sub_8028164 _08025EC0: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8025E0C thumb_func_start sub_8025ED8 sub_8025ED8: @ 8025ED8 push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0x4 beq _08025F0E cmp r0, 0x4 bgt _08025EF4 cmp r0, 0x3 beq _08025EFA b _08025F40 .pool _08025EF4: cmp r0, 0xB beq _08025F24 b _08025F40 _08025EFA: movs r0, 0x1 bl sub_8027DD0 ldr r0, [r4] movs r1, 0x8E lsls r1, 1 adds r0, r1 movs r1, 0x1 str r1, [r0] b _08025F40 _08025F0E: ldr r2, =0x000032f8 adds r1, r2 ldrb r0, [r1] cmp r0, 0 beq _08025F40 bl sub_80282EC b _08025F40 .pool _08025F24: movs r2, 0x90 lsls r2, 1 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _08025F40 adds r2, 0xC adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _08025F40 movs r0, 0x1 bl sub_8028350 _08025F40: pop {r4} pop {r0} bx r0 thumb_func_end sub_8025ED8 thumb_func_start sub_8025F48 sub_8025F48: @ 8025F48 push {r4-r6,lr} ldr r6, =gUnknown_02022C98 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r1, r2, r0 ldr r3, =0x000031cc adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08025F88 bl IsSEPlaying lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _08025FEA ldr r0, [r6] movs r2, 0xA2 lsls r2, 1 adds r0, r2 strb r1, [r0] b _08025FEA .pool _08025F88: ldr r3, =0x000031d0 adds r0, r1, r3 ldrb r4, [r0] cmp r4, 0x1 bne _08025FB8 movs r1, 0xA2 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _08025FEA movs r0, 0x1F bl m4aSongNumStop movs r0, 0x1F bl PlaySE ldr r0, [r6] movs r2, 0xA2 lsls r2, 1 adds r0, r2 b _08025FE8 .pool _08025FB8: ldr r3, =0x000031d4 adds r0, r1, r3 ldrb r4, [r0] cmp r4, 0x1 bne _08025FEA movs r5, 0xA2 lsls r5, 1 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _08025FEA bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08025FEA movs r0, 0x16 bl PlaySE movs r0, 0x1 bl sub_80284CC ldr r0, [r6] adds r0, r5 _08025FE8: strb r4, [r0] _08025FEA: ldr r0, =gUnknown_02022C98 ldr r2, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r2, r5 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0 bne _0802601C adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _0802601C bl StopMapMusic ldr r0, [r4] adds r0, r5 movs r1, 0x1 b _0802603A .pool _0802601C: ldr r0, [r4] movs r1, 0xAA lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0802603C movs r0, 0xB bl PlayFanfareByFanfareNum ldr r0, [r4] movs r2, 0xAA lsls r2, 1 adds r0, r2 movs r1, 0x2 _0802603A: strb r1, [r0] _0802603C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8025F48 thumb_func_start sub_8026044 sub_8026044: @ 8026044 push {r4-r7,lr} mov r7, r8 push {r7} ldr r6, =gUnknown_02022C98 ldr r2, [r6] adds r0, r2, 0 adds r0, 0x44 ldrb r0, [r0] mov r8, r0 adds r0, r2, 0 adds r0, 0x48 ldrb r7, [r0] subs r0, 0x20 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r1, r2, r0 ldr r3, =0x000031cc adds r0, r1, r3 ldrb r3, [r0] cmp r3, 0 bne _0802609C ldr r4, =0x000031d0 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 beq _080260FE adds r4, 0x4 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 beq _080260FE movs r1, 0xA2 lsls r1, 1 adds r0, r2, r1 strb r3, [r0] b _080260FE .pool _0802609C: ldr r3, =0x000031d0 adds r0, r1, r3 ldrb r4, [r0] cmp r4, 0x1 bne _080260CC movs r1, 0xA2 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _080260FE movs r0, 0x1F bl m4aSongNumStop movs r0, 0x1F bl PlaySE ldr r0, [r6] movs r3, 0xA2 lsls r3, 1 adds r0, r3 b _080260FC .pool _080260CC: ldr r4, =0x000031d4 adds r0, r1, r4 ldrb r4, [r0] cmp r4, 0x1 bne _080260FE movs r5, 0xA2 lsls r5, 1 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 bne _080260FE bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080260FE movs r0, 0x16 bl PlaySE movs r0, 0x1 bl sub_80284CC ldr r0, [r6] adds r0, r5 _080260FC: strb r4, [r0] _080260FE: mov r4, r8 cmp r4, r7 bcs _08026172 ldr r5, =gUnknown_02022C98 _08026106: ldr r2, [r5] adds r0, r2, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 ldr r1, =0x000031a0 adds r0, r1 adds r0, r2, r0 adds r1, r0, 0 adds r1, 0x14 adds r0, 0x1F adds r0, r4 ldrb r0, [r0] cmp r0, 0x9 bls _0802615C movs r3, 0xA4 lsls r3, 1 adds r0, r2, r3 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08026168 adds r0, r1, r4 ldrb r0, [r0] adds r0, 0x4A bl PlaySE ldr r0, [r5] movs r1, 0xA4 lsls r1, 1 adds r0, r1 adds r0, r4 movs r1, 0x1 b _08026166 .pool _0802615C: movs r3, 0xA4 lsls r3, 1 adds r0, r2, r3 adds r0, r4 movs r1, 0 _08026166: strb r1, [r0] _08026168: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _08026106 _08026172: ldr r0, =gUnknown_02022C98 ldr r2, [r0] movs r5, 0xAA lsls r5, 1 adds r1, r2, r5 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0 bne _080261A0 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _080261A0 bl StopMapMusic ldr r0, [r4] adds r0, r5 movs r1, 0x1 b _080261BE .pool _080261A0: ldr r0, [r4] movs r1, 0xAA lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080261C0 movs r0, 0xB bl PlayFanfareByFanfareNum ldr r0, [r4] movs r3, 0xAA lsls r3, 1 adds r0, r3 movs r1, 0x2 _080261BE: strb r1, [r0] _080261C0: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8026044 thumb_func_start sub_80261CC sub_80261CC: @ 80261CC push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80261CC thumb_func_start sub_80261E4 sub_80261E4: @ 80261E4 push {lr} bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_80261E4 thumb_func_start sub_80261F8 sub_80261F8: @ 80261F8 push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 bl IsMonShiny strb r0, [r4] pop {r4} pop {r0} bx r0 thumb_func_end sub_80261F8 thumb_func_start sub_802620C sub_802620C: @ 802620C push {lr} lsls r1, 24 lsrs r1, 24 bl CreateTask pop {r0} bx r0 thumb_func_end sub_802620C thumb_func_start sub_802621C sub_802621C: @ 802621C push {lr} movs r1, 0x1 bl CreateTask ldr r1, =gUnknown_02022C98 ldr r3, [r1] movs r2, 0 strb r0, [r3, 0x4] ldr r0, [r1] strb r2, [r0, 0x10] ldr r0, [r1] strb r2, [r0, 0xC] ldr r0, [r1] strb r2, [r0, 0x14] pop {r0} bx r0 .pool thumb_func_end sub_802621C thumb_func_start sub_8026240 sub_8026240: @ 8026240 push {r4,lr} ldr r2, =gUnknown_02022C98 ldr r1, [r2] ldrb r3, [r1, 0x18] movs r4, 0 strb r3, [r1, 0x1C] ldr r1, [r2] strb r0, [r1, 0x18] ldr r0, [r2] strb r4, [r0, 0x10] ldr r0, [r2] strb r4, [r0, 0x14] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8026240 thumb_func_start sub_8026264 sub_8026264: @ 8026264 push {r4,lr} ldr r3, =gUnknown_02022C98 ldr r1, [r3] ldrb r0, [r1, 0x14] lsrs r2, r0, 2 adds r0, 0x1 strb r0, [r1, 0x14] cmp r2, 0 beq _080262B8 ldr r3, [r3] ldrb r0, [r3, 0x14] movs r1, 0x3 ands r0, r1 cmp r0, 0 bne _080262B8 ldr r1, =gUnknown_082F7A94 adds r0, r3, 0 adds r0, 0x24 ldrb r0, [r0] subs r0, 0x1 adds r0, r1 ldrb r0, [r0] cmp r2, r0 bcc _080262A0 movs r0, 0x1 b _080262BA .pool _080262A0: lsls r4, r2, 3 adds r1, r4, 0 movs r0, 0x14 bl SetGpuReg negs r4, r4 lsls r4, 16 lsrs r4, 16 movs r0, 0x18 adds r1, r4, 0 bl SetGpuReg _080262B8: movs r0, 0 _080262BA: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026264 thumb_func_start sub_80262C0 sub_80262C0: @ 80262C0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, =gUnknown_02022C98 ldr r0, [r2] adds r1, r0, 0 adds r1, 0x44 adds r0, 0x48 ldrb r5, [r0] ldrb r1, [r1] cmp r1, r5 bcs _0802630C mov r8, r2 ldr r0, =0x000032e0 mov r12, r0 movs r7, 0 movs r6, 0x1 _080262E2: mov r2, r8 ldr r0, [r2] mov r2, r12 adds r4, r0, r2 ldr r2, =0x000032eb adds r0, r2 adds r2, r0, r1 movs r3, 0 adds r0, r1, 0 ands r0, r6 cmp r0, 0 bne _080262FC movs r3, 0x1 _080262FC: strb r3, [r2] adds r0, r4, r1 strb r7, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r5 bcc _080262E2 _0802630C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80262C0 thumb_func_start sub_8026324 sub_8026324: @ 8026324 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x44 ldrb r0, [r0] str r0, [sp] adds r0, r1, 0 adds r0, 0x48 ldrb r0, [r0] str r0, [sp, 0x4] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] str r0, [sp, 0x8] adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _08026358 b _08026614 _08026358: movs r6, 0 ldr r0, [sp, 0x8] cmp r6, r0 bcs _08026440 _08026360: ldr r3, =gUnknown_02022C98 lsls r0, r6, 4 subs r1, r0, r6 lsls r1, 2 ldr r2, [r3] adds r1, r2 ldr r4, =0x000031cc adds r4, r1 mov r8, r4 ldrb r1, [r4] mov r9, r0 adds r0, r6, 0x1 str r0, [sp, 0xC] cmp r1, 0 beq _08026434 adds r0, r2, 0 adds r0, 0xA8 adds r0, r6 ldrb r0, [r0] cmp r0, 0x1 bne _08026434 ldr r1, [sp] mov r10, r1 ldr r2, [sp, 0x4] cmp r10, r2 bcs _08026434 adds r7, r3, 0 _08026396: ldr r0, =gUnknown_082F449C add r0, r10 ldrb r5, [r0] ldr r1, [r7] lsls r4, r5, 1 adds r0, r1, 0 adds r0, 0xF4 adds r0, r4 ldrb r0, [r0] cmp r0, r6 beq _08026434 adds r0, r1, 0 adds r0, 0xF5 adds r0, r4 ldrb r0, [r0] cmp r0, r6 beq _08026434 mov r0, r8 ldrb r1, [r0] adds r0, r6, 0 adds r2, r5, 0 bl sub_8026634 cmp r0, 0x1 bne _08026410 movs r2, 0 ldr r3, =gUnknown_02022C98 mov r8, r4 _080263CE: ldr r0, [r3] mov r4, r8 adds r1, r2, r4 adds r0, 0xF4 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0xFF bne _08026404 strb r6, [r1] ldr r0, [r3] adds r0, 0xA8 adds r0, r6 movs r1, 0x2 strb r1, [r0] ldr r0, [r3] adds r0, 0xC4 adds r0, r5 movs r1, 0x1 strb r1, [r0] b _08026434 .pool _08026404: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1 bls _080263CE b _08026434 _08026410: ldr r0, [r7] mov r2, r9 subs r1, r2, r6 lsls r1, 2 adds r0, r1 ldr r4, =0x000031d4 adds r0, r4 ldrb r0, [r0] cmp r0, 0x1 beq _08026434 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, [sp, 0x4] cmp r10, r0 bcc _08026396 _08026434: ldr r1, [sp, 0xC] lsls r0, r1, 24 lsrs r6, r0, 24 ldr r2, [sp, 0x8] cmp r6, r2 bcc _08026360 _08026440: ldr r4, [sp] mov r10, r4 ldr r0, [sp, 0x4] cmp r10, r0 bcc _0802644C b _08026614 _0802644C: ldr r1, =gUnknown_02022C98 mov r9, r1 _08026450: movs r6, 0xFF ldr r0, =gUnknown_082F449C add r0, r10 ldrb r5, [r0] mov r2, r9 ldr r0, [r2] adds r0, 0xC4 adds r0, r5 ldrb r0, [r0] cmp r0, 0x1 beq _08026468 b _08026602 _08026468: adds r0, r5, 0 bl sub_8026D8C mov r1, r9 ldr r4, [r1] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r1, 0x90 adds r1, r0 ldrb r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _0802648E movs r3, 0x2 _0802648E: ldr r2, =gUnknown_082F7A88 ldr r0, =0x000031b4 adds r1, r4, r0 adds r1, r5 lsls r0, r3, 1 adds r0, r3 ldrb r1, [r1] adds r0, r1 adds r0, r2 ldrb r1, [r0] adds r0, r4, 0 adds r0, 0xD0 adds r0, r5 ldrb r0, [r0] subs r2, r1, r0 cmp r2, 0x5 bgt _080264BC adds r1, r4, 0 adds r1, 0x9C adds r1, r5 ldrb r0, [r1] adds r0, r2 strb r0, [r1] _080264BC: mov r2, r9 ldr r1, [r2] adds r1, 0x9C adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] movs r4, 0xFF ands r0, r4 cmp r0, 0x5 bhi _080264D6 b _08026602 _080264D6: mov r1, r9 ldr r0, [r1] adds r0, 0x9C adds r0, r5 strb r2, [r0] ldr r3, [r1] lsls r1, r5, 1 adds r0, r3, 0 adds r0, 0xF4 adds r2, r0, r1 ldrb r0, [r2] mov r8, r1 cmp r0, 0xFF bne _08026518 adds r0, r3, 0 adds r0, 0xF5 add r0, r8 ldrb r0, [r0] cmp r0, 0xFF bne _08026500 b _08026602 _08026500: b _08026528 .pool _08026518: adds r0, r3, 0 adds r0, 0xF5 add r0, r8 ldrb r0, [r0] cmp r0, 0xFF bne _08026528 ldrb r4, [r2] b _0802654E _08026528: mov r2, r9 ldr r1, [r2] adds r0, r1, 0 adds r0, 0xF4 add r0, r8 ldrb r7, [r0] adds r1, 0xF5 add r1, r8 ldrb r6, [r1] bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 bne _0802654A adds r4, r7, 0 b _0802654E _0802654A: adds r4, r6, 0 adds r6, r7, 0 _0802654E: mov r1, r9 ldr r0, [r1] ldr r2, =0x000032eb adds r0, r2 adds r0, r5 movs r1, 0x7 strb r1, [r0] mov r1, r9 ldr r0, [r1] adds r0, 0xC4 adds r0, r5 movs r1, 0x2 strb r1, [r0] mov r2, r9 ldr r0, [r2] adds r0, 0xA8 adds r0, r4 movs r1, 0x3 strb r1, [r0] ldr r0, [r2] adds r0, 0xB8 adds r0, r5 strb r4, [r0] ldr r1, [r2] lsls r0, r4, 4 subs r0, r4 lsls r0, 2 adds r1, r0 ldr r2, =0x000031d0 adds r1, r2 movs r0, 0x1 strb r0, [r1] mov r2, r9 ldr r1, [r2] lsls r0, r6, 4 subs r0, r6 lsls r0, 2 adds r1, r0 ldr r0, =0x000031d4 adds r1, r0 movs r2, 0x1 strb r2, [r1] mov r0, r9 ldr r1, [r0] lsls r0, r4, 1 adds r1, 0x86 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0 adds r1, r5, 0 adds r2, r4, 0 bl sub_8026F1C movs r0, 0x1 bl sub_8027234 adds r0, r4, 0 bl sub_8026D1C mov r1, r9 ldr r0, [r1] adds r1, r0, 0 adds r1, 0xE8 adds r1, r5 ldr r2, =0x000032e0 adds r0, r2 adds r0, r5 ldrb r0, [r0] strb r0, [r1] mov r4, r9 ldr r0, [r4] adds r0, r2 adds r0, r5 movs r1, 0x3 strb r1, [r0] ldr r1, [r4] adds r1, 0xF4 add r1, r8 ldrb r0, [r1] movs r2, 0xFF orrs r0, r2 strb r0, [r1] ldr r1, [r4] adds r1, 0xF5 add r1, r8 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] _08026602: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, [sp, 0x4] cmp r10, r4 bcs _08026614 b _08026450 _08026614: 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_8026324 thumb_func_start sub_8026634 sub_8026634: @ 8026634 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r7, 0 ldr r2, =gUnknown_02022C98 ldr r1, [r2] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, =0x000032e0 adds r1, r0 mov r12, r2 cmp r3, 0x2 beq _08026670 cmp r3, 0x2 bgt _08026676 cmp r3, 0x1 beq _08026674 b _08026676 .pool _08026670: movs r7, 0x1 b _08026676 _08026674: movs r7, 0x2 _08026676: adds r0, r1, 0 adds r0, 0xB adds r0, r6 ldrb r0, [r0] subs r0, 0x6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080266D4 ldr r0, =gUnknown_082F449C+0x113 lsls r1, r4, 1 adds r1, r4 adds r1, r7, r1 lsls r2, r5, 4 subs r2, r5 adds r1, r2 adds r1, r0 ldrb r1, [r1] cmp r6, r1 bne _0802670A mov r0, r12 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xC4 adds r0, r6 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _080266D0 lsls r0, r4, 4 subs r0, r4 lsls r0, 2 adds r0, r1, r0 ldr r1, =0x000031d4 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0802670A .pool _080266D0: movs r0, 0x1 b _0802670C _080266D4: ldr r0, =gUnknown_082F449C+0x113 lsls r1, r4, 1 adds r1, r4 adds r1, r7, r1 lsls r2, r5, 4 subs r2, r5 adds r1, r2 adds r1, r0 ldrb r1, [r1] cmp r6, r1 bne _0802670A mov r1, r12 ldr r0, [r1] adds r0, 0xA8 adds r0, r4 movs r1, 0x4 strb r1, [r0] mov r0, r12 ldr r1, [r0] lsls r0, r4, 4 subs r0, r4 lsls r0, 2 adds r1, r0 ldr r0, =0x000031d4 adds r1, r0 movs r0, 0x1 strb r0, [r1] _0802670A: movs r0, 0 _0802670C: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8026634 thumb_func_start sub_802671C sub_802671C: @ 802671C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, =gUnknown_02022C98 ldr r4, [r2] adds r0, r4, 0 adds r0, 0x44 ldrb r1, [r0] adds r0, 0x4 ldrb r0, [r0] mov r9, r0 movs r3, 0 mov r10, r3 movs r5, 0x90 lsls r5, 1 adds r0, r4, r5 str r3, [r0] adds r5, r1, 0 mov r0, r9 subs r0, 0x1 cmp r5, r0 blt _0802674E b _08026974 _0802674E: mov r8, r2 _08026750: mov r0, r8 ldr r4, [r0] adds r0, r4, 0 adds r0, 0xC4 adds r0, r5 ldrb r0, [r0] cmp r0, 0x1 bls _08026762 b _0802686C _08026762: movs r1, 0x90 lsls r1, 1 adds r0, r4, r1 movs r2, 0x1 str r2, [r0] ldr r1, =0x000032eb adds r0, r4, r1 adds r6, r0, r5 ldrb r0, [r6] cmp r0, 0x9 bls _080267FC movs r7, 0 movs r0, 0xA strb r0, [r6] mov r1, r8 ldr r0, [r1] adds r0, 0xC4 adds r0, r5 movs r1, 0x3 strb r1, [r0] mov r1, r8 ldr r0, [r1] movs r6, 0xA4 lsls r6, 1 adds r0, r6 adds r1, r0, r5 ldrb r0, [r1] cmp r0, 0 bne _080267AC strb r2, [r1] ldr r2, =0x000032e0 adds r0, r4, r2 adds r0, r5 ldrb r0, [r0] adds r0, 0x4A bl PlaySE _080267AC: mov r0, r8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _080267C2 mov r2, r10 cmp r2, 0x1 beq _080267C2 b _08026964 _080267C2: movs r0, 0x1 mov r10, r0 adds r0, r1, r6 adds r0, r5 strb r7, [r0] mov r1, r8 ldr r0, [r1] adds r1, r0, 0 adds r1, 0x40 ldrb r0, [r1] cmp r0, 0x9 bhi _080267DE adds r0, 0x1 strb r0, [r1] _080267DE: movs r0, 0x3 adds r1, r5, 0 movs r2, 0 bl sub_8026F1C movs r0, 0 bl sub_8027234 b _08026964 .pool _080267FC: adds r0, r5, 0 bl sub_8026D8C mov r2, r8 ldr r7, [r2] lsls r0, 24 lsrs r0, 24 adds r1, r7, 0 adds r1, 0x90 adds r1, r0 ldrb r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _08026822 movs r3, 0x2 _08026822: ldr r2, =gUnknown_082F7A88 ldr r0, =0x000032e0 adds r1, r4, r0 adds r1, r5 lsls r0, r3, 1 adds r0, r3 ldrb r1, [r1] adds r0, r1 adds r0, r2 ldrb r2, [r0] adds r1, r7, 0 adds r1, 0xD0 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r3, 0 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, r2 bcc _0802685C ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] mov r1, r8 ldr r0, [r1] adds r0, 0xD0 adds r0, r5 strb r3, [r0] _0802685C: bl sub_8026324 b _08026964 .pool _0802686C: cmp r0, 0x2 bne _080268F4 movs r2, 0x90 lsls r2, 1 adds r0, r4, r2 movs r6, 0x1 str r6, [r0] adds r1, r4, 0 adds r1, 0xDC adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r3, 0 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _08026964 mov r0, r8 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xB8 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r2, r0 ldr r1, =0x000031d0 adds r2, r1 strb r3, [r2] mov r2, r8 ldr r0, [r2] adds r0, 0xDC adds r0, r5 strb r3, [r0] ldr r0, [r2] adds r0, 0xD0 adds r0, r5 strb r3, [r0] ldr r0, [r2] adds r0, 0xC4 adds r0, r5 strb r3, [r0] ldr r1, =0x000032eb adds r0, r4, r1 adds r0, r5 strb r6, [r0] adds r0, r5, 0 bl sub_8026D8C lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 bl sub_8026DB0 ldr r2, =0x000032e0 adds r1, r4, r2 adds r1, r5 strb r0, [r1] b _08026964 .pool _080268F4: cmp r0, 0x3 bne _08026964 adds r1, r4, 0 adds r1, 0xDC adds r1, r5 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x13 bls _08026964 mov r0, r8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bhi _08026964 adds r0, r1, 0 adds r0, 0xDC adds r0, r5 strb r2, [r0] mov r1, r8 ldr r0, [r1] adds r0, 0xD0 adds r0, r5 strb r2, [r0] ldr r0, [r1] adds r0, 0xC4 adds r0, r5 strb r2, [r0] ldr r2, =0x000032eb adds r0, r4, r2 adds r0, r5 movs r1, 0x1 strb r1, [r0] mov r0, r8 ldr r1, [r0] adds r1, 0xE8 adds r1, r5 subs r2, 0xB adds r4, r2 adds r4, r5 ldrb r0, [r4] strb r0, [r1] adds r0, r5, 0 bl sub_8026D8C lsls r0, 24 lsrs r0, 24 adds r1, r5, 0 bl sub_8026DB0 strb r0, [r4] _08026964: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r0, r9 subs r0, 0x1 cmp r5, r0 bge _08026974 b _08026750 _08026974: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802671C thumb_func_start sub_8026988 sub_8026988: @ 8026988 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x44 adds r0, 0x48 ldrb r0, [r0] mov r8, r0 ldrb r6, [r1] cmp r6, r8 bcs _08026A7A ldr r0, =gUnknown_082F449C mov r9, r0 _080269A8: ldr r0, =gUnknown_02022C98 ldr r3, [r0] adds r0, r3, 0 adds r0, 0x28 ldrb r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 2 ldr r2, =0x000031a0 adds r0, r2 adds r7, r3, r0 movs r0, 0xB adds r2, r1, 0 muls r2, r0 adds r2, r6, r2 adds r3, 0x24 ldrb r1, [r3] subs r1, 0x1 lsls r0, r1, 3 subs r0, r1 lsls r0, 3 subs r0, r1 adds r2, r0 add r2, r9 ldrb r4, [r2] adds r0, r7, 0 adds r0, 0x1F adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080269FC adds r0, r6, 0 movs r1, 0 bl sub_8028BF8 b _08026A04 .pool _080269FC: adds r0, r6, 0 movs r1, 0x1 bl sub_8028BF8 _08026A04: adds r0, r7, 0 adds r0, 0x1F adds r5, r0, r4 ldrb r0, [r5] cmp r0, 0x9 bls _08026A30 adds r0, r7, 0 adds r0, 0x14 adds r0, r4 ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl sub_8028CA4 ldrb r1, [r5] lsls r1, 25 movs r0, 0xFF lsls r0, 24 adds r1, r0 b _08026A52 _08026A30: adds r0, r7, 0 adds r0, 0x14 adds r3, r0, r4 ldrb r0, [r3] cmp r0, 0x3 bne _08026A5C movs r0, 0x7 strb r0, [r5] adds r0, r6, 0 movs r1, 0x6 bl sub_8028CA4 ldrb r1, [r5] lsls r1, 25 movs r2, 0xFF lsls r2, 24 adds r1, r2 _08026A52: lsrs r1, 24 adds r0, r6, 0 bl sub_8028C7C b _08026A70 _08026A5C: ldrb r1, [r3] adds r0, r6, 0 bl sub_8028CA4 ldrb r1, [r5] lsls r1, 25 lsrs r1, 24 adds r0, r6, 0 bl sub_8028C7C _08026A70: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r8 bcc _080269A8 _08026A7A: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8026988 thumb_func_start sub_8026A88 sub_8026A88: @ 8026A88 push {r4-r6,lr} ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _08026ABA adds r6, r1, 0 _08026A9A: lsls r0, r4, 4 subs r0, r4 lsls r0, 2 ldr r1, [r6] adds r0, r1 ldr r1, =0x000031cc adds r0, r1 ldrb r1, [r0] adds r0, r4, 0 bl sub_80286B4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026A9A _08026ABA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8026A88 thumb_func_start sub_8026AC8 sub_8026AC8: @ 8026AC8 push {r4,r5,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _08026AEA _08026AD8: adds r0, r4, 0 movs r1, 0x4 bl sub_80286B4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026AD8 _08026AEA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8026AC8 thumb_func_start sub_8026AF4 sub_8026AF4: @ 8026AF4 push {lr} bl sub_8026988 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _08026B10 bl sub_8026AC8 b _08026B14 .pool _08026B10: bl sub_8026A88 _08026B14: ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] bl sub_80288D4 pop {r0} bx r0 .pool thumb_func_end sub_8026AF4 thumb_func_start sub_8026B28 sub_8026B28: @ 8026B28 push {lr} bl sub_8026988 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] cmp r0, 0x9 bls _08026B44 bl sub_8026AC8 b _08026B48 .pool _08026B44: bl sub_8026A88 _08026B48: ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x40 ldrb r0, [r0] bl sub_80288D4 pop {r0} bx r0 .pool thumb_func_end sub_8026B28 thumb_func_start sub_8026B5C sub_8026B5C: @ 8026B5C push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x4 bhi _08026BB4 lsls r0, 2 ldr r1, =_08026B78 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026B78: .4byte _08026B8C .4byte _08026B94 .4byte _08026B9C .4byte _08026BA4 .4byte _08026BAC _08026B8C: movs r0, 0x4 strb r0, [r3] movs r0, 0x7 b _08026BB2 _08026B94: movs r0, 0x3 strb r0, [r3] movs r0, 0x8 b _08026BB2 _08026B9C: movs r0, 0x2 strb r0, [r3] movs r0, 0x9 b _08026BB2 _08026BA4: movs r0, 0x1 strb r0, [r3] movs r0, 0xA b _08026BB2 _08026BAC: movs r0, 0 strb r0, [r3] movs r0, 0xB _08026BB2: strb r0, [r2] _08026BB4: pop {r0} bx r0 thumb_func_end sub_8026B5C thumb_func_start sub_8026BB8 sub_8026BB8: @ 8026BB8 push {r4-r6,lr} ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x24 ldrb r5, [r0] movs r4, 0x1 cmp r4, r5 bcs _08026C1E adds r6, r1, 0 _08026BCA: ldr r0, [r6] movs r1, 0xAC lsls r1, 1 adds r0, r1 adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08026BEC adds r0, r4, 0 bl sub_8027DFC ldr r1, [r6] movs r2, 0xAC lsls r2, 1 adds r1, r2 adds r1, r4 strb r0, [r1] _08026BEC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026BCA cmp r4, r5 bcs _08026C1E ldr r0, =gUnknown_02022C98 ldr r0, [r0] movs r2, 0xAC lsls r2, 1 adds r1, r0, r2 _08026C04: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _08026C14 movs r0, 0 b _08026C20 .pool _08026C14: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026C04 _08026C1E: movs r0, 0x1 _08026C20: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026BB8 thumb_func_start sub_8026C28 sub_8026C28: @ 8026C28 push {r4,lr} movs r1, 0 ldr r4, =gUnknown_02022C98 movs r3, 0xAC lsls r3, 1 movs r2, 0 _08026C34: ldr r0, [r4] adds r0, r3 adds r0, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _08026C34 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8026C28 thumb_func_start sub_8026C50 sub_8026C50: @ 8026C50 push {r4,lr} ldr r3, =gUnknown_02022C98 ldr r1, [r3] adds r2, r1, 0 adds r2, 0x40 ldrb r0, [r2] cmp r0, 0x9 bls _08026C88 movs r4, 0x90 lsls r4, 1 adds r0, r1, r4 ldr r0, [r0] cmp r0, 0 bne _08026C88 movs r0, 0xA strb r0, [r2] ldr r0, [r3] movs r1, 0x96 lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _08026C88 movs r0, 0x1 b _08026C8A .pool _08026C88: movs r0, 0 _08026C8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026C50 thumb_func_start sub_8026C90 sub_8026C90: @ 8026C90 push {r4-r6,lr} ldr r4, =gUnknown_02022C98 ldr r1, [r4] adds r2, r1, 0 adds r2, 0x40 ldrb r0, [r2] cmp r0, 0x9 bls _08026D14 adds r0, r1, 0 adds r0, 0x44 ldrb r3, [r0] adds r0, 0x4 ldrb r5, [r0] movs r0, 0xA strb r0, [r2] ldr r4, [r4] mov r12, r4 movs r0, 0x96 lsls r0, 1 add r0, r12 ldr r0, [r0] cmp r0, 0 beq _08026D14 adds r4, r3, 0 cmp r4, r5 bcs _08026D04 mov r0, r12 adds r0, 0x28 ldrb r3, [r0] lsls r1, r3, 4 subs r1, r3 lsls r1, 2 ldr r6, =gUnknown_082F449C subs r0, 0x4 ldrb r2, [r0] subs r2, 0x1 add r1, r12 movs r0, 0xB muls r3, r0 lsls r0, r2, 3 subs r0, r2 lsls r0, 3 subs r2, r0, r2 ldr r0, =0x000031bf adds r1, r0 _08026CEA: adds r0, r4, r3 adds r0, r2 adds r0, r6 ldrb r0, [r0] adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0xA bne _08026D14 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08026CEA _08026D04: movs r0, 0x1 b _08026D16 .pool _08026D14: movs r0, 0 _08026D16: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026C90 thumb_func_start sub_8026D1C sub_8026D1C: @ 8026D1C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_082F7A9C mov r8, r0 ldr r0, =gUnknown_02022C98 ldr r6, [r0] adds r0, r6, 0 adds r0, 0x90 adds r0, r5 mov r9, r0 ldrb r7, [r0] adds r0, r7, 0 movs r1, 0x7 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 add r4, r8 adds r0, r7, 0 movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldrb r4, [r4] adds r0, r4 lsls r0, 24 lsls r5, 1 adds r6, 0x86 adds r6, r5 ldrh r1, [r6] lsrs r0, 24 cmp r1, r0 bcc _08026D76 adds r0, r7, 0x1 mov r1, r9 strb r0, [r1] _08026D76: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8026D1C thumb_func_start sub_8026D8C sub_8026D8C: @ 8026D8C lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_082F449C+0x1AC ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x24 ldrb r1, [r1] subs r1, 0x1 movs r2, 0xB muls r1, r2 adds r0, r1 adds r0, r3 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8026D8C thumb_func_start sub_8026DB0 sub_8026DB0: @ 8026DB0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r4, =gUnknown_02022C98 ldr r1, [r4] adds r1, 0x24 ldrb r2, [r1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, =gUnknown_082F449C+0x15E lsls r1, r0, 1 adds r1, r0 lsls r0, r2, 4 subs r0, r2 adds r1, r0 adds r0, r1, r3 ldrb r0, [r0] mov r12, r0 adds r0, r3, 0x1 adds r0, r1, r0 ldrb r7, [r0] adds r3, 0x2 adds r1, r3 ldrb r1, [r1] mov r8, r1 movs r3, 0 ldr r1, =gUnknown_082F449C+0x1E3 lsls r0, r2, 2 adds r2, r0, r2 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _08026E18 adds r6, r1, 0 _08026DFE: adds r0, r3, r2 adds r0, r6 ldrb r0, [r0] cmp r5, r0 beq _08026E3C adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r3, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08026DFE _08026E18: ldr r0, [r4] adds r0, 0x90 mov r1, r12 adds r2, r0, r1 adds r1, r0, r7 ldrb r0, [r2] ldrb r3, [r1] cmp r0, r3 bls _08026E46 adds r1, r0, 0 b _08026E48 .pool _08026E3C: ldr r0, [r4] adds r0, 0x90 adds r0, r7 ldrb r0, [r0] b _08026E5A _08026E46: ldrb r1, [r1] _08026E48: ldr r0, [r4] adds r0, 0x90 mov r2, r8 adds r4, r0, r2 ldrb r0, [r4] cmp r0, r1 bls _08026E58 adds r1, r0, 0 _08026E58: adds r0, r1, 0 _08026E5A: adds r1, r5, 0 bl sub_8026E70 lsls r0, 24 lsrs r0, 24 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8026DB0 thumb_func_start sub_8026E70 sub_8026E70: @ 8026E70 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022C98 ldr r2, [r2] adds r2, 0xE8 adds r2, r1 ldrb r4, [r2] movs r1, 0x7 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bhi _08026EDE lsls r0, 2 ldr r1, =_08026EA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026EA4: .4byte _08026EDE .4byte _08026ED6 .4byte _08026EE2 .4byte _08026EC0 .4byte _08026EC6 .4byte _08026ECC .4byte _08026ED2 _08026EC0: cmp r4, 0 beq _08026ED6 b _08026EDE _08026EC6: cmp r4, 0 beq _08026EE2 b _08026EDE _08026ECC: cmp r4, 0x2 beq _08026ED6 b _08026EE2 _08026ED2: cmp r4, 0 bne _08026EDA _08026ED6: movs r0, 0x1 b _08026EE4 _08026EDA: cmp r4, 0x1 beq _08026EE2 _08026EDE: movs r0, 0 b _08026EE4 _08026EE2: movs r0, 0x2 _08026EE4: pop {r4} pop {r1} bx r1 thumb_func_end sub_8026E70 thumb_func_start sub_8026EEC sub_8026EEC: @ 8026EEC push {r4-r6,lr} movs r6, 0 movs r5, 0 adds r4, r0, 0 b _08026EFE _08026EF6: ldrh r0, [r4, 0x6] adds r6, r0 adds r4, 0xC adds r5, 0x1 _08026EFE: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 blt _08026EF6 cmp r6, 0xA bgt _08026F12 movs r0, 0 b _08026F14 _08026F12: movs r0, 0x1 _08026F14: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8026EEC thumb_func_start sub_8026F1C sub_8026F1C: @ 8026F1C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r2, 24 ldr r6, =gUnknown_02022C98 ldr r1, [r6] adds r0, r1, 0 adds r0, 0x24 ldrb r5, [r0] cmp r3, 0 bge _08026F3A b _0802722C _08026F3A: cmp r3, 0x2 ble _08026F48 cmp r3, 0x3 beq _08026F78 b _0802722C .pool _08026F48: ldr r3, =0x000031b4 adds r0, r1, r3 adds r0, r4 ldrb r4, [r0] lsls r4, 1 lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r4, r0 adds r0, r1, 0 adds r0, 0x4A adds r0, r4 ldrh r0, [r0] ldr r1, =0x00004e20 bl sub_8027A28 ldr r1, [r6] adds r1, 0x4A adds r1, r4 b _0802722A .pool _08026F78: adds r0, r1, 0 adds r0, 0x4A bl sub_8026EEC cmp r0, 0 beq _08026F86 b _0802722C _08026F86: cmp r5, 0x3 bne _08026F8C b _08027154 _08026F8C: cmp r5, 0x3 bgt _08026F98 cmp r5, 0x2 bne _08026F96 b _080271E8 _08026F96: b _0802722C _08026F98: cmp r5, 0x4 bne _08026F9E b _08027090 _08026F9E: cmp r5, 0x5 beq _08026FA4 b _0802722C _08026FA4: cmp r4, 0x9 bls _08026FAA b _0802722C _08026FAA: lsls r0, r4, 2 ldr r1, =_08026FB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08026FB8: .4byte _08026FE0 .4byte _08026FF8 .4byte _08027004 .4byte _0802701C .4byte _08027028 .4byte _08027040 .4byte _0802704C .4byte _08027060 .4byte _0802706C .4byte _08027084 _08026FE0: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x74 b _08027226 .pool _08026FF8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x74 b _08027226 .pool _08027004: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x74 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x80 b _08027226 .pool _0802701C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x80 b _08027226 .pool _08027028: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x80 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _08027040: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _0802704C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _08027060: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _0802706C: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027084: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _08027090: subs r0, r4, 0x1 cmp r0, 0x7 bls _08027098 b _0802722C _08027098: lsls r0, 2 ldr r1, =_080270A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080270A8: .4byte _080270C8 .4byte _080270E0 .4byte _080270EC .4byte _08027104 .4byte _08027110 .4byte _08027124 .4byte _08027130 .4byte _08027148 _080270C8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x74 b _08027226 .pool _080270E0: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x74 b _08027226 .pool _080270EC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x74 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _08027104: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _08027110: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _08027124: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _08027130: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027148: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _08027154: subs r0, r4, 0x2 cmp r0, 0x5 bhi _0802722C lsls r0, 2 ldr r1, =_08027168 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08027168: .4byte _08027180 .4byte _08027198 .4byte _080271A4 .4byte _080271BC .4byte _080271C8 .4byte _080271DC _08027180: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x5C ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x68 b _08027226 .pool _08027198: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x68 b _08027226 .pool _080271A4: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x68 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x50 b _08027226 .pool _080271BC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x50 b _08027226 .pool _080271C8: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 .pool _080271DC: ldr r0, =gUnknown_02022C98 ldr r1, [r0] b _08027224 .pool _080271E8: cmp r4, 0x4 beq _0802720E cmp r4, 0x4 bgt _080271F6 cmp r4, 0x3 beq _08027200 b _0802722C _080271F6: cmp r4, 0x5 beq _08027214 cmp r4, 0x6 beq _08027222 b _0802722C _08027200: ldr r1, [r6] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 _0802720E: ldr r1, [r6] adds r1, 0x50 b _08027226 _08027214: ldr r1, [r6] adds r2, r1, 0 adds r2, 0x50 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] b _08027224 _08027222: ldr r1, [r6] _08027224: adds r1, 0x5C _08027226: ldrh r0, [r1] adds r0, 0x1 _0802722A: strh r0, [r1] _0802722C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8026F1C thumb_func_start sub_8027234 sub_8027234: @ 8027234 push {r4,r5,lr} adds r1, r0, 0 ldr r4, =gUnknown_02022C98 ldr r3, [r4] adds r0, r3, 0 adds r0, 0x24 ldrb r0, [r0] cmp r0, 0x5 bne _0802729E cmp r1, 0x1 bne _08027280 movs r5, 0x89 lsls r5, 1 adds r1, r3, r5 ldrh r0, [r1] adds r2, r0, 0x1 strh r2, [r1] movs r0, 0x8A lsls r0, 1 adds r1, r3, r0 lsls r0, r2, 16 lsrs r0, 16 ldrh r3, [r1] cmp r0, r3 bls _08027268 strh r2, [r1] _08027268: ldr r0, [r4] adds r2, r0, r5 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _0802729E strh r1, [r2] b _0802729E .pool _08027280: movs r2, 0x89 lsls r2, 1 adds r0, r3, r2 movs r5, 0x8A lsls r5, 1 adds r1, r3, r5 ldrh r0, [r0] ldrh r3, [r1] cmp r0, r3 bls _08027296 strh r0, [r1] _08027296: ldr r0, [r4] adds r0, r2 movs r1, 0 strh r1, [r0] _0802729E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8027234 thumb_func_start sub_80272A4 sub_80272A4: @ 80272A4 push {r4,r5,lr} movs r3, 0 ldr r2, =gUnknown_02022C98 ldr r0, [r2] adds r0, 0x24 ldrb r0, [r0] cmp r3, r0 bcs _080272DC adds r5, r2, 0 movs r4, 0x8A lsls r4, 1 _080272BA: ldr r2, [r5] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r1, r2, 0 adds r1, 0x54 adds r1, r0 adds r0, r2, r4 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r2, 0x24 ldrb r2, [r2] cmp r3, r2 bcc _080272BA _080272DC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80272A4 thumb_func_start sub_80272E8 sub_80272E8: @ 80272E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r5, 0 ldr r7, =gUnknown_02022C98 movs r4, 0 ldr r0, =0x000031bf mov r10, r0 _080272FC: movs r2, 0 lsls r6, r5, 4 lsls r1, r5, 1 mov r8, r1 lsls r0, r5, 3 mov r12, r0 adds r1, r5, 0x1 mov r9, r1 subs r0, r6, r5 lsls r3, r0, 2 _08027310: ldr r0, [r7] adds r1, r2, r3 add r0, r10 adds r0, r1 strb r4, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _08027310 ldr r0, [r7] subs r1, r6, r5 lsls r1, 2 adds r0, r1 ldr r2, =0x000031cc adds r0, r2 strb r4, [r0] ldr r0, [r7] adds r0, r1 ldr r1, =0x000031d0 adds r0, r1 strb r4, [r0] ldr r0, [r7] adds r0, 0x90 adds r0, r5 strb r4, [r0] ldr r1, [r7] adds r0, r1, 0 adds r0, 0x86 add r0, r8 strh r4, [r0] add r1, r12 ldr r2, =0x00003308 adds r1, r2 strb r4, [r1] ldr r2, [r7] ldr r1, =0x0000330c adds r0, r2, r1 add r0, r12 str r4, [r0] mov r0, r8 adds r1, r0, r5 lsls r1, 2 adds r0, r2, 0 adds r0, 0x4A adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x4C adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x4E adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x50 adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x52 adds r0, r1 strh r4, [r0] adds r0, r2, 0 adds r0, 0x54 adds r0, r1 strh r4, [r0] mov r1, r9 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080272FC ldr r2, =gUnknown_02022C98 ldr r0, [r2] movs r1, 0xAA lsls r1, 1 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r1, =gUnknown_02022C98 ldr r0, [r1] movs r1, 0x89 lsls r1, 1 adds r3, r0, r1 movs r1, 0 strh r2, [r3] adds r0, 0x40 strb r1, [r0] bl sub_8026A88 bl sub_8026988 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80272E8 thumb_func_start sub_80273F0 sub_80273F0: @ 80273F0 push {r4,r5,lr} movs r4, 0 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r0, [r0] cmp r0, 0x4 beq _0802740C cmp r0, 0x5 beq _08027410 b _08027412 .pool _0802740C: movs r4, 0x1 b _08027412 _08027410: movs r4, 0x2 _08027412: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r3, 0 lsls r1, r4, 2 ldr r5, =gUnknown_02022C98 ldr r2, =gUnknown_082F7AA4 adds r1, r4 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r2, [r0] _08027436: ldr r1, [r5] lsls r0, r3, 1 adds r0, r3 lsls r0, 2 adds r1, 0x52 adds r1, r0 strh r2, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _08027436 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80273F0 thumb_func_start sub_802745C sub_802745C: @ 802745C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C98 ldr r2, [r1] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r0, r2, 0 adds r0, 0x4A adds r0, r1 ldrh r3, [r0] adds r0, r2, 0 adds r0, 0x4C adds r0, r1 ldrh r0, [r0] adds r2, 0x4E adds r2, r1 adds r3, r0 ldrh r2, [r2] adds r0, r3, r2 ldr r1, =0x0000270f cmp r0, r1 bls _0802748E adds r0, r1, 0 _0802748E: pop {r1} bx r1 .pool thumb_func_end sub_802745C thumb_func_start sub_802749C sub_802749C: @ 802749C push {r4-r6,lr} ldr r5, =gUnknown_02022C98 ldr r0, [r5] adds r0, 0x28 ldrb r0, [r0] bl sub_802745C ldr r1, =0x0000270f bl sub_8027A38 adds r4, r0, 0 ldr r0, [r5] adds r0, 0x28 ldrb r0, [r0] bl sub_80276C0 ldr r1, =0x000f4236 bl sub_8027A38 adds r2, r0, 0 ldr r3, =gSaveBlock2Ptr ldr r0, [r3] movs r6, 0x83 lsls r6, 2 adds r1, r0, r6 ldr r0, [r1] cmp r0, r2 bcs _080274D6 str r2, [r1] _080274D6: ldr r0, [r3] movs r2, 0x84 lsls r2, 2 adds r1, r0, r2 ldrh r0, [r1] cmp r0, r4 bcs _080274E6 strh r4, [r1] _080274E6: ldr r0, [r3] ldr r6, =0x00000212 adds r2, r0, r6 ldr r0, [r5] movs r1, 0x8A lsls r1, 1 adds r0, r1 ldrh r1, [r0] ldrh r0, [r2] cmp r0, r1 bcs _080274FE strh r1, [r2] _080274FE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802749C thumb_func_start sub_8027518 sub_8027518: @ 8027518 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gUnknown_02022C98 ldr r0, [r1] adds r0, 0x9B ldrb r6, [r0] movs r3, 0x3 adds r5, r1, 0 adds r4, r5, 0 _0802752C: ldr r0, [r4] adds r0, 0x98 adds r2, r0, r3 subs r1, r3, 0x1 adds r0, r1 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r3, r1, 24 cmp r3, 0 bne _0802752C ldr r0, [r5] adds r0, 0x98 strb r7, [r0] adds r0, r6, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8027518 thumb_func_start sub_8027554 sub_8027554: @ 8027554 push {r4,lr} ldr r4, =gUnknown_02022C98 ldr r3, [r4] adds r0, r3, 0 adds r0, 0x28 ldrb r1, [r0] adds r0, 0x88 adds r2, r0, r1 ldrb r0, [r2] cmp r0, 0 bne _080275FC ldr r0, =gMain ldrh r2, [r0, 0x2E] movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08027594 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x2 b _080275CA .pool _08027594: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _080275B0 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x3 b _080275CA .pool _080275B0: movs r0, 0x10 ands r0, r2 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _080275E8 lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 movs r1, 0x1 _080275CA: strb r1, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x28 adds r0, 0xB0 ldrb r1, [r1] adds r0, r1 movs r1, 0x6 strb r1, [r0] movs r0, 0xD4 bl PlaySE b _08027600 .pool _080275E8: lsls r0, r1, 4 subs r0, r1 lsls r0, 2 adds r0, r3, r0 ldr r1, =0x000031cc adds r0, r1 strb r2, [r0] b _08027600 .pool _080275FC: subs r0, 0x1 strb r0, [r2] _08027600: pop {r4} pop {r0} bx r0 thumb_func_end sub_8027554 thumb_func_start sub_8027608 sub_8027608: @ 8027608 ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x28 ldrb r2, [r0] lsls r0, r2, 4 subs r0, r2 lsls r0, 2 adds r1, r0 ldr r0, =0x000031cc adds r1, r0 movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end sub_8027608 thumb_func_start sub_802762C sub_802762C: @ 802762C ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x28 ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, 0x52 adds r1, r0 ldrh r0, [r1] adds r0, 0x85 lsls r0, 16 lsrs r0, 16 bx lr .pool thumb_func_end sub_802762C thumb_func_start sub_8027650 sub_8027650: @ 8027650 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8027650 thumb_func_start sub_8027660 sub_8027660: @ 8027660 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0802768C ldr r0, =gUnknown_02022C98 lsls r1, r2, 4 subs r1, r2 lsls r1, 2 ldr r2, =0x000031a0 adds r1, r2 ldr r0, [r0] b _08027694 .pool _0802768C: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 ldr r1, =gLinkPlayers + 8 _08027694: adds r0, r1 pop {r1} bx r1 .pool thumb_func_end sub_8027660 thumb_func_start sub_80276A0 sub_80276A0: @ 80276A0 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r2, =gUnknown_02022C98 ldr r3, [r2] lsrs r1, 23 lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r1, r2 adds r3, 0x4A adds r3, r1 ldrh r0, [r3] bx lr .pool thumb_func_end sub_80276A0 thumb_func_start sub_80276C0 sub_80276C0: @ 80276C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 movs r3, 0 ldr r0, =gUnknown_02022C98 mov r9, r0 ldr r2, =gUnknown_082F7B24 mov r10, r2 ldr r2, [r0] lsls r1, r4, 1 adds r0, r1, r4 lsls r0, 2 str r0, [sp] adds r6, r2, 0 adds r6, 0x4A mov r12, r1 mov r8, r10 _080276EE: lsls r1, r3, 1 ldr r7, [sp] adds r0, r1, r7 adds r0, r6, r0 ldrh r2, [r0] add r1, r8 movs r7, 0 ldrsh r0, [r1, r7] muls r0, r2 adds r5, r0 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _080276EE mov r0, r9 ldr r1, [r0] mov r2, r12 adds r0, r2, r4 lsls r0, 2 adds r1, 0x50 adds r1, r0 ldrh r1, [r1] mov r3, r10 movs r7, 0x6 ldrsh r0, [r3, r7] muls r0, r1 cmp r5, r0 bls _08027734 subs r0, r5, r0 b _08027736 .pool _08027734: movs r0, 0 _08027736: 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_80276C0 thumb_func_start sub_8027748 sub_8027748: @ 8027748 push {r4-r6,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r6, [r0] movs r0, 0 bl sub_80276C0 adds r5, r0, 0 movs r4, 0x1 cmp r4, r6 bcs _08027776 _08027760: adds r0, r4, 0 bl sub_80276C0 cmp r0, r5 bls _0802776C adds r5, r0, 0 _0802776C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08027760 _08027776: ldr r1, =0x000f4236 adds r0, r5, 0 bl sub_8027A38 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8027748 thumb_func_start sub_802778C sub_802778C: @ 802778C push {r4,r5,lr} lsls r0, 24 ldr r1, =gUnknown_02022C98 ldr r2, [r1] adds r1, r2, 0 adds r1, 0x24 ldrb r5, [r1] lsrs r4, r0, 23 adds r2, 0x4A adds r0, r2, r4 ldrh r3, [r0] movs r1, 0 cmp r1, r5 bcs _080277C4 _080277A8: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r4, r0 adds r0, r2, r0 ldrh r0, [r0] cmp r0, r3 bls _080277BA adds r3, r0, 0 _080277BA: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r5 bcc _080277A8 _080277C4: adds r0, r3, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_802778C thumb_func_start sub_80277D0 sub_80277D0: @ 80277D0 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0x1 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] movs r4, 0 cmp r4, r5 bcs _080277FE _080277E8: adds r0, r4, 0 bl sub_80276C0 lsls r1, r4, 2 add r1, sp str r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080277E8 _080277FE: lsls r7, 2 mov r12, r7 cmp r6, 0 beq _08027838 subs r7, r5, 0x1 _08027808: movs r6, 0 movs r4, 0 cmp r6, r7 bge _08027834 adds r5, r7, 0 _08027812: lsls r0, r4, 2 mov r2, sp adds r1, r2, r0 adds r4, 0x1 lsls r0, r4, 2 adds r3, r2, r0 ldr r0, [r1] ldr r2, [r3] cmp r0, r2 bcs _0802782C str r2, [r1] str r0, [r3] movs r6, 0x1 _0802782C: lsls r0, r4, 24 lsrs r4, r0, 24 cmp r4, r5 blt _08027812 _08027834: cmp r6, 0 bne _08027808 _08027838: mov r0, sp add r0, r12 ldr r0, [r0] add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80277D0 thumb_func_start sub_802784C sub_802784C: @ 802784C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r10, r0 mov r8, r0 mov r9, r0 ldr r6, =gUnknown_02022C98 ldr r0, [r6] adds r0, 0x24 ldrb r5, [r0] bl sub_8027748 bl sub_8027748 cmp r0, 0 bne _080278A0 movs r4, 0 cmp r9, r5 bcs _080278A0 adds r2, r6, 0 ldr r1, =0x00003308 mov r12, r1 movs r7, 0 movs r6, 0x4 ldr r3, =0x0000330c _08027884: ldr r0, [r2] lsls r1, r4, 3 adds r0, r1 add r0, r12 strb r6, [r0] ldr r0, [r2] adds r0, r3 adds r0, r1 str r7, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08027884 _080278A0: movs r4, 0 cmp r4, r5 bcs _080278CA _080278A6: adds r0, r4, 0 bl sub_80276C0 ldr r1, =0x000f4236 bl sub_8027A38 ldr r1, =gUnknown_02022C98 ldr r1, [r1] lsls r2, r4, 3 ldr r3, =0x0000330c adds r1, r3 adds r1, r2 str r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080278A6 _080278CA: mov r0, r10 bl sub_80277D0 adds r6, r0, 0 mov r3, r8 movs r4, 0 cmp r4, r5 bcs _08027916 ldr r7, =gUnknown_02022C98 mov r10, r7 _080278DE: mov r0, r10 ldr r2, [r0] lsls r1, r4, 3 ldr r7, =0x0000330c adds r0, r2, r7 adds r0, r1 ldr r0, [r0] cmp r6, r0 bne _0802790C adds r0, r2, r1 ldr r1, =0x00003308 adds r0, r1 strb r3, [r0] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _0802790C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _080278DE _08027916: mov r10, r8 cmp r9, r5 bcc _080278CA movs r0, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_802784C thumb_func_start sub_802793C sub_802793C: @ 802793C lsls r1, 24 ldr r2, =gUnknown_02022C98 ldr r2, [r2] lsrs r1, 21 ldr r3, =0x00003308 adds r2, r3 adds r2, r1 ldr r1, [r2] ldr r2, [r2, 0x4] str r1, [r0] str r2, [r0, 0x4] bx lr .pool thumb_func_end sub_802793C thumb_func_start sub_802795C sub_802795C: @ 802795C push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r5, [r0] mov r0, sp movs r1, 0 movs r2, 0x14 bl memset movs r4, 0 cmp r7, r5 bcs _08027994 _0802797E: adds r0, r4, 0 bl sub_80276C0 lsls r1, r4, 2 add r1, sp str r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0802797E _08027994: lsls r0, r6, 2 add r0, sp ldr r1, [r0] movs r4, 0 _0802799C: cmp r4, r6 beq _080279B0 lsls r0, r4, 2 add r0, sp ldr r0, [r0] cmp r1, r0 bcs _080279B0 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _080279B0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _0802799C adds r0, r7, 0 add sp, 0x14 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_802795C thumb_func_start sub_80279C8 sub_80279C8: @ 80279C8 push {r4-r6,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x28 ldrb r4, [r0] bl sub_802762C lsls r0, 16 lsrs r5, r0, 16 adds r6, r5, 0 adds r0, r4, 0 bl sub_80276C0 adds r4, r0, 0 bl sub_8027748 cmp r4, r0 beq _080279F4 movs r0, 0x3 b _08027A22 .pool _080279F4: adds r0, r5, 0 movs r1, 0x1 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _08027A06 movs r0, 0x2 b _08027A22 _08027A06: adds r0, r6, 0 movs r1, 0x1 bl AddBagItem adds r0, r6, 0 movs r1, 0x1 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _08027A20 movs r0, 0 b _08027A22 _08027A20: movs r0, 0x1 _08027A22: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80279C8 thumb_func_start sub_8027A28 sub_8027A28: @ 8027A28 push {lr} adds r2, r0, 0 adds r0, r1, 0 cmp r2, r0 bcs _08027A34 adds r0, r2, 0x1 _08027A34: pop {r1} bx r1 thumb_func_end sub_8027A28 thumb_func_start sub_8027A38 sub_8027A38: @ 8027A38 push {lr} adds r2, r0, 0 adds r0, r1, 0 cmp r2, r0 bcs _08027A44 adds r0, r2, 0 _08027A44: pop {r1} bx r1 thumb_func_end sub_8027A38 thumb_func_start sub_8027A48 sub_8027A48: @ 8027A48 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x34 adds r1, r0 ldrb r0, [r1] bx lr .pool thumb_func_end sub_8027A48 thumb_func_start sub_8027A5C sub_8027A5C: @ 8027A5C push {r4-r6,lr} movs r5, 0 ldr r6, =gSpecialVar_Result _08027A62: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _08027A94 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0x55 bne _08027A94 movs r0, 0x1 strh r0, [r6] b _08027AA0 .pool _08027A94: adds r5, 0x1 cmp r5, 0x5 ble _08027A62 ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] _08027AA0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8027A5C thumb_func_start sub_8027AAC sub_8027AAC: @ 8027AAC push {r4,lr} ldr r4, =sub_8027ACC adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 bl _call_via_r4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8027AAC thumb_func_start sub_8027ACC sub_8027ACC: @ 8027ACC push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 movs r1, 0 ldrsh r0, [r7, r1] cmp r0, 0x1 beq _08027B94 cmp r0, 0x1 bgt _08027AF4 cmp r0, 0 beq _08027AFE b _08027BE2 .pool _08027AF4: cmp r0, 0x2 beq _08027BA0 cmp r0, 0x3 beq _08027BC8 b _08027BE2 _08027AFE: ldr r0, =gUnknown_082F7B2C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r1, =gText_BerryPickingRecords movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r4, r0, 0 movs r6, 0 ldr r5, =gUnknown_082F7B34 _08027B18: ldr r1, [r5] movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r0, 0x32 cmp r0, r4 ble _08027B2A adds r4, r0, 0 _08027B2A: adds r5, 0x4 adds r6, 0x1 cmp r6, 0x2 bls _08027B18 adds r0, r4, 0x7 cmp r0, 0 bge _08027B3A adds r0, 0x7 _08027B3A: asrs r4, r0, 3 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _08027B46 adds r4, 0x1 _08027B46: movs r1, 0x1E subs r1, r4 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 lsls r1, 24 lsrs r1, 16 ldr r2, =0xffff00ff ldr r0, [sp] ands r0, r2 orrs r0, r1 lsls r2, r4, 24 ldr r1, =0x00ffffff ands r0, r1 orrs r0, r2 str r0, [sp] mov r0, sp bl AddWindow strh r0, [r7, 0x2] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_8027BEC ldrb r0, [r7, 0x2] movs r1, 0x3 b _08027BB6 .pool _08027B94: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08027BE2 b _08027BBA _08027BA0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08027BE2 ldrb r0, [r7, 0x2] bl rbox_fill_rectangle ldrb r0, [r7, 0x2] movs r1, 0x1 _08027BB6: bl CopyWindowToVram _08027BBA: ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] b _08027BE2 .pool _08027BC8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08027BE2 ldrb r0, [r7, 0x2] bl RemoveWindow adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _08027BE2: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8027ACC thumb_func_start sub_8027BEC sub_8027BEC: @ 8027BEC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 str r1, [sp, 0x18] lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r2, 0x84 lsls r2, 2 adds r0, r1, r2 ldrh r0, [r0] str r0, [sp, 0xC] subs r2, 0x4 adds r0, r1, r2 ldr r0, [r0] str r0, [sp, 0x10] ldr r0, =0x00000212 adds r1, r0 ldrh r0, [r1] str r0, [sp, 0x14] ldr r4, =0x0000021d adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD0 bl LoadUserWindowBorderGfx_ adds r0, r7, 0 adds r1, r4, 0 movs r2, 0xD bl sub_8098858 adds r0, r7, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gText_BerryPickingRecords ldr r0, [sp, 0x18] lsls r2, r0, 3 movs r0, 0x1 adds r1, r4, 0 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 adds r2, r4, 0 bl AddTextPrinterParameterized movs r6, 0 ldr r2, =gStringVar1 mov r8, r2 movs r0, 0xFF mov r10, r0 mov r9, r6 mov r2, sp adds r2, 0xC str r2, [sp, 0x1C] _08027C76: lsls r4, r6, 2 ldr r0, [sp, 0x1C] ldm r0!, {r1} str r0, [sp, 0x1C] ldr r0, =gUnknown_082F7B40 adds r0, r6, r0 ldrb r3, [r0] mov r0, r8 movs r2, 0 bl ConvertIntToDecimalStringN movs r0, 0x1 mov r1, r8 movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r5, r0, 0 ldr r0, =gUnknown_082F7B34 adds r4, r0 ldr r2, [r4] ldr r0, =gUnknown_082F7B44 lsls r4, r6, 1 adds r0, r4, r0 ldrb r0, [r0] str r0, [sp] mov r0, r10 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r2, [sp, 0x18] lsls r3, r2, 3 subs r3, r5 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_082F7B4A adds r4, r0 ldrb r0, [r4] str r0, [sp] mov r0, r10 str r0, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 mov r2, r8 bl AddTextPrinterParameterized adds r6, 0x1 cmp r6, 0x2 ble _08027C76 adds r0, r7, 0 bl PutWindowTilemap add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8027BEC thumb_func_start sub_8027D20 sub_8027D20: @ 8027D20 push {lr} bl GetLinkPlayerCount ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x24 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8027D20 thumb_func_start sub_8027D38 sub_8027D38: @ 8027D38 push {r4-r7,lr} ldr r0, =gUnknown_02022C98 ldr r0, [r0] adds r0, 0x24 ldrb r4, [r0] cmp r4, 0x4 bhi _08027D66 ldr r5, =gUnknown_082F7B90 _08027D48: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 ldr r1, =gLinkPlayers + 8 adds r0, r1 lsls r1, r4, 2 adds r1, r5 ldr r1, [r1] bl StringCopy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _08027D48 _08027D66: ldr r0, =gUnknown_02022C98 ldr r1, [r0] adds r1, 0x24 movs r2, 0x5 strb r2, [r1] movs r1, 0 mov r12, r0 _08027D74: movs r4, 0 mov r2, r12 ldr r0, [r2] adds r0, 0x24 adds r5, r1, 0x1 ldrb r0, [r0] cmp r4, r0 bcs _08027DB2 ldr r7, =gUnknown_02022C98 lsls r3, r1, 1 ldr r6, =gUnknown_082F7B50 _08027D8A: ldr r2, [r7] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 adds r0, r3, r0 adds r1, r2, 0 adds r1, 0x4A adds r1, r0 lsls r0, r4, 3 adds r0, r3, r0 adds r0, r6 ldrh r0, [r0] strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r2, 0x24 ldrb r2, [r2] cmp r4, r2 bcc _08027D8A _08027DB2: lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _08027D74 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8027D38 thumb_func_start sub_8027DD0 sub_8027DD0: @ 8027DD0 push {lr} sub sp, 0x8 ldr r3, =0xffffff00 ldr r1, [sp] ands r1, r3 movs r2, 0x1 orrs r1, r2 str r1, [sp] lsls r0, 24 lsrs r0, 24 ldr r1, [sp, 0x4] ands r1, r3 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_8027DD0 thumb_func_start sub_8027DFC sub_8027DFC: @ 8027DFC push {lr} adds r2, r0, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _08027E1E lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x1 beq _08027E28 _08027E1E: movs r0, 0 b _08027E2A .pool _08027E28: ldrb r0, [r1, 0x4] _08027E2A: pop {r1} bx r1 thumb_func_end sub_8027DFC thumb_func_start sub_8027E30 sub_8027E30: @ 8027E30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x48] lsls r4, 24 str r4, [sp, 0x1C] movs r4, 0x14 adds r4, r0 mov r9, r4 mov r5, sp movs r4, 0x2 strb r4, [r5] mov r10, sp mov r5, r9 ldrb r4, [r5, 0xB] movs r7, 0xF adds r5, r7, 0 ands r5, r4 mov r6, r10 ldrb r6, [r6, 0x1] mov r8, r6 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x1] mov r8, sp mov r6, r9 ldrb r5, [r6, 0xC] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x1] ldrb r5, [r6, 0xD] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x2] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x2] mov r8, sp mov r6, r9 ldrb r5, [r6, 0xE] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x2] ldrb r5, [r6, 0xF] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x3] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x3] mov r8, sp mov r6, r9 ldrb r5, [r6, 0x10] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x3] ldrb r5, [r6, 0x11] movs r6, 0xF ands r5, r6 mov r4, r10 ldrb r4, [r4, 0x4] mov r8, r4 movs r4, 0x10 negs r4, r4 mov r6, r8 ands r4, r6 orrs r4, r5 mov r5, r10 strb r4, [r5, 0x4] mov r8, sp mov r6, r9 ldrb r5, [r6, 0x12] lsls r5, 4 ands r4, r7 orrs r4, r5 mov r5, r8 strb r4, [r5, 0x4] ldrb r4, [r6, 0x13] movs r6, 0xF ands r4, r6 mov r6, r8 ldrb r5, [r6, 0x5] movs r6, 0x10 negs r6, r6 ands r6, r5 orrs r6, r4 str r6, [sp, 0xC] mov r4, r8 strb r6, [r4, 0x5] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x14] lsls r4, 4 ldr r6, [sp, 0xC] ands r6, r7 orrs r6, r4 strb r6, [r5, 0x5] mov r7, sp movs r4, 0x3 mov r8, r4 ldrb r0, [r0, 0x14] mov r5, r8 ands r0, r5 ldrb r5, [r7, 0x6] movs r6, 0x4 negs r6, r6 mov r10, r6 mov r4, r10 ands r4, r5 orrs r4, r0 strb r4, [r7, 0x6] mov r5, r9 ldrb r0, [r5, 0x1] mov r6, r8 ands r0, r6 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 strb r5, [r7, 0x6] mov r0, r9 ldrb r4, [r0, 0x2] ands r4, r6 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 strb r0, [r7, 0x6] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x3] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x6] mov r4, r9 ldrb r0, [r4, 0x4] mov r5, r8 ands r0, r5 ldrb r5, [r7, 0x7] mov r4, r10 ands r4, r5 orrs r4, r0 strb r4, [r7, 0x7] mov r6, r9 ldrb r0, [r6, 0x5] mov r5, r8 ands r0, r5 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 strb r5, [r7, 0x7] ldrb r4, [r6, 0x6] mov r6, r8 ands r4, r6 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 strb r0, [r7, 0x7] mov r5, sp mov r6, r9 ldrb r4, [r6, 0x7] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x7] mov r8, sp mov r0, r9 ldrb r4, [r0, 0x8] movs r7, 0x3 adds r0, r7, 0 ands r0, r4 mov r4, r8 ldrb r5, [r4, 0x8] mov r4, r10 ands r4, r5 orrs r4, r0 mov r5, r8 strb r4, [r5, 0x8] mov r6, r9 ldrb r5, [r6, 0x9] adds r0, r7, 0 ands r0, r5 lsls r0, 2 movs r5, 0xD negs r5, r5 ands r5, r4 orrs r5, r0 mov r0, r8 strb r5, [r0, 0x8] ldrb r0, [r1] adds r4, r7, 0 ands r4, r0 lsls r4, 4 movs r0, 0x31 negs r0, r0 ands r0, r5 orrs r0, r4 mov r4, r8 strb r0, [r4, 0x8] mov r5, sp ldrb r4, [r2] lsls r4, 6 movs r6, 0x3F ands r0, r6 orrs r0, r4 strb r0, [r5, 0x8] ldrb r4, [r3] adds r0, r7, 0 ands r0, r4 ldrb r4, [r5, 0x9] mov r6, r10 ands r6, r4 orrs r6, r0 mov r10, r6 strb r6, [r5, 0x9] ldr r0, [sp, 0x40] ldrb r4, [r0] adds r0, r7, 0 ands r0, r4 lsls r0, 2 movs r4, 0xD negs r4, r4 ands r6, r4 orrs r6, r0 str r6, [sp, 0x10] strb r6, [r5, 0x9] mov r4, sp ldr r5, [sp, 0x44] ldrb r0, [r5] adds r6, r7, 0 ands r6, r0 lsls r0, r6, 4 subs r7, 0x34 ldr r5, [sp, 0x10] ands r7, r5 orrs r7, r0 strb r7, [r4, 0x9] mov r5, sp ldrb r0, [r1, 0x4] movs r6, 0x1 mov r12, r6 mov r4, r12 ands r4, r0 lsls r4, 6 movs r0, 0x41 negs r0, r0 mov r10, r0 ands r0, r7 orrs r0, r4 strb r0, [r5, 0x9] ldrb r4, [r2, 0x4] lsls r4, 7 movs r5, 0x7F ands r0, r5 orrs r0, r4 mov r4, r8 strb r0, [r4, 0x9] ldrb r4, [r3, 0x4] mov r0, r12 ands r0, r4 mov r5, r8 ldrb r4, [r5, 0xA] movs r7, 0x2 negs r7, r7 adds r5, r7, 0 ands r5, r4 orrs r5, r0 mov r6, r8 strb r5, [r6, 0xA] mov r9, sp ldr r4, [sp, 0x40] ldrb r0, [r4, 0x4] mov r4, r12 ands r4, r0 lsls r4, 1 movs r6, 0x3 negs r6, r6 mov r8, r6 mov r0, r8 ands r0, r5 orrs r0, r4 mov r4, r9 strb r0, [r4, 0xA] ldr r6, [sp, 0x44] ldrb r5, [r6, 0x4] mov r4, r12 ands r4, r5 lsls r4, 2 movs r5, 0x5 negs r5, r5 ands r0, r5 orrs r0, r4 mov r4, r9 strb r0, [r4, 0xA] mov r4, sp ldrb r1, [r1, 0x8] mov r0, r12 ands r0, r1 lsls r0, 2 ldrb r1, [r4, 0xB] ands r5, r1 orrs r5, r0 strb r5, [r4, 0xB] ldrb r1, [r2, 0x8] mov r0, r12 ands r0, r1 lsls r0, 3 movs r1, 0x9 negs r1, r1 ands r1, r5 orrs r1, r0 strb r1, [r4, 0xB] ldrb r2, [r3, 0x8] mov r0, r12 ands r0, r2 lsls r0, 4 movs r2, 0x11 negs r2, r2 ands r2, r1 orrs r2, r0 strb r2, [r4, 0xB] mov r3, sp ldr r5, [sp, 0x40] ldrb r0, [r5, 0x8] mov r1, r12 ands r1, r0 lsls r1, 5 movs r0, 0x21 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xB] mov r2, sp ldrb r1, [r6, 0x8] mov r6, r12 ands r6, r1 lsls r1, r6, 6 mov r3, r10 ands r0, r3 orrs r0, r1 strb r0, [r2, 0xB] ldr r4, [sp, 0x1C] lsrs r3, r4, 21 ldrb r1, [r2, 0xA] movs r0, 0x7 ands r0, r1 orrs r0, r3 strb r0, [r2, 0xA] mov r1, sp ldr r5, [sp, 0x4C] movs r6, 0x1 ands r5, r6 lsls r2, r5, 1 ldrb r0, [r1, 0xB] mov r3, r8 ands r3, r0 orrs r3, r2 mov r8, r3 strb r3, [r1, 0xB] mov r0, sp ldr r4, [sp, 0x50] ands r4, r6 mov r5, r8 ands r5, r7 orrs r5, r4 strb r5, [r0, 0xB] bl sub_800FE50 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8027E30 thumb_func_start sub_8028164 sub_8028164: @ 8028164 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r0, [sp, 0x1C] mov r12, r0 ldr r1, [sp, 0x20] mov r8, r1 ldr r0, [sp, 0x24] mov r9, r0 adds r2, r7, 0 adds r2, 0x14 ldr r4, =gRecvCmds ldrh r0, [r4] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _0802819C adds r3, r4, 0x2 ldrb r0, [r4, 0x2] cmp r0, 0x2 beq _080281A4 _0802819C: movs r0, 0 b _080282DE .pool _080281A4: ldrb r0, [r3, 0x1] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xB] ldrb r0, [r3, 0x1] lsrs r0, 4 strb r0, [r2, 0xC] ldrb r0, [r3, 0x2] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xD] ldrb r0, [r3, 0x2] lsrs r0, 4 strb r0, [r2, 0xE] ldrb r0, [r3, 0x3] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0xF] ldrb r0, [r3, 0x3] lsrs r0, 4 strb r0, [r2, 0x10] ldrb r0, [r3, 0x4] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x11] ldrb r0, [r3, 0x4] lsrs r0, 4 strb r0, [r2, 0x12] ldrb r0, [r3, 0x5] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x13] ldrb r0, [r3, 0x5] lsrs r0, 4 strb r0, [r2, 0x14] ldrb r0, [r3, 0x1] lsls r0, 28 lsrs r0, 28 strb r0, [r2, 0x15] ldrb r0, [r3, 0x6] lsls r0, 30 lsrs r0, 30 strb r0, [r7, 0x14] ldrb r0, [r3, 0x6] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x1] ldrb r0, [r3, 0x6] lsls r0, 26 lsrs r0, 30 strb r0, [r2, 0x2] ldrb r0, [r3, 0x6] lsrs r0, 6 strb r0, [r2, 0x3] ldrb r0, [r3, 0x7] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0x4] ldrb r0, [r3, 0x7] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x5] ldrb r0, [r3, 0x7] lsls r0, 26 lsrs r0, 30 strb r0, [r2, 0x6] ldrb r0, [r3, 0x7] lsrs r0, 6 strb r0, [r2, 0x7] ldrb r0, [r3, 0x8] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0x8] ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 30 strb r0, [r2, 0x9] ldrb r0, [r3, 0x6] lsls r0, 30 lsrs r0, 30 strb r0, [r2, 0xA] ldrb r0, [r3, 0x8] lsls r0, 26 lsrs r0, 30 strb r0, [r5] ldrb r0, [r3, 0x9] lsls r0, 25 lsrs r0, 31 strb r0, [r5, 0x4] ldrb r0, [r3, 0xB] lsls r0, 29 lsrs r0, 31 strb r0, [r5, 0x8] ldrb r0, [r3, 0x8] lsrs r0, 6 strb r0, [r6] ldrb r0, [r3, 0x9] lsrs r0, 7 strb r0, [r6, 0x4] ldrb r0, [r3, 0xB] lsls r0, 28 lsrs r0, 31 strb r0, [r6, 0x8] ldrb r0, [r3, 0x9] lsls r0, 30 lsrs r0, 30 mov r1, r12 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 31 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 27 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0x9] lsls r0, 28 lsrs r0, 30 mov r1, r8 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 30 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 26 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0x9] lsls r0, 26 lsrs r0, 30 mov r1, r9 strb r0, [r1] ldrb r0, [r3, 0xA] lsls r0, 29 lsrs r0, 31 strb r0, [r1, 0x4] ldrb r0, [r3, 0xB] lsls r0, 25 lsrs r0, 31 strb r0, [r1, 0x8] ldrb r0, [r3, 0xA] lsrs r0, 3 ldr r1, [sp, 0x28] strb r0, [r1] ldrb r0, [r3, 0xB] lsls r0, 30 lsrs r0, 31 ldr r1, [sp, 0x2C] str r0, [r1] ldrb r0, [r3, 0xB] lsls r0, 31 lsrs r0, 31 ldr r1, [sp, 0x30] str r0, [r1] movs r0, 0x1 _080282DE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8028164 thumb_func_start sub_80282EC sub_80282EC: @ 80282EC push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r3, =0xffffff00 ldr r1, [sp] ands r1, r3 movs r2, 0x3 orrs r1, r2 str r1, [sp] ldr r1, [sp, 0x4] ands r1, r3 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_80282EC thumb_func_start sub_8028318 sub_8028318: @ 8028318 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _0802833C lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x3 beq _08028344 _0802833C: movs r0, 0 b _0802834A .pool _08028344: ldrb r0, [r1, 0x4] strb r0, [r4] movs r0, 0x1 _0802834A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8028318 thumb_func_start sub_8028350 sub_8028350: @ 8028350 push {lr} sub sp, 0x8 ldr r2, =0xffffff00 ldr r1, [sp] ands r1, r2 movs r2, 0x4 orrs r1, r2 str r1, [sp] str r0, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_8028350 thumb_func_start sub_8028374 sub_8028374: @ 8028374 push {lr} adds r2, r0, 0 ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _08028396 lsls r0, r2, 4 adds r1, r3, 0x2 adds r1, r0, r1 ldrb r0, [r1] cmp r0, 0x4 beq _080283A0 _08028396: movs r0, 0 b _080283A2 .pool _080283A0: ldr r0, [r1, 0x4] _080283A2: pop {r1} bx r1 thumb_func_end sub_8028374 thumb_func_start sub_80283A8 sub_80283A8: @ 80283A8 push {r4,r5,lr} sub sp, 0x18 movs r5, 0xC0 lsls r5, 6 adds r0, r5, 0 bl AllocZeroed adds r4, r0, 0 ldr r0, =gUnknown_082FB2D8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r0, =gUnknown_082FB2E0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x10] str r1, [sp, 0x14] ldr r0, =gDodrioBerryPkmnGfx adds r1, r4, 0 bl LZ77UnCompWram cmp r4, 0 beq _080283E8 str r4, [sp] str r5, [sp, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r4, 0 bl Free _080283E8: add r0, sp, 0x8 bl LoadSpritePalette add r0, sp, 0x10 bl LoadSpritePalette add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80283A8 thumb_func_start sub_8028408 sub_8028408: @ 8028408 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x30 adds r6, r1, 0 mov r8, r2 adds r5, r3, 0 lsls r6, 24 lsrs r6, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r5, 24 lsrs r5, 24 add r1, sp, 0x18 movs r3, 0 strh r3, [r1] ldrb r2, [r0] mov r0, sp adds r0, 0x1A strh r2, [r0] ldr r0, =gUnknown_082FB1E0 str r0, [sp, 0x1C] ldr r0, =gUnknown_082FB228 str r0, [sp, 0x20] str r3, [sp, 0x24] ldr r0, =gDummySpriteAffineAnimTable str r0, [sp, 0x28] ldr r0, =sub_80284A8 str r0, [sp, 0x2C] mov r0, sp movs r2, 0x18 bl memcpy movs r0, 0x4 bl AllocZeroed ldr r1, =gUnknown_02022C9C mov r2, r8 lsls r4, r2, 2 adds r4, r1 str r0, [r4] adds r0, r6, 0 adds r1, r5, 0 bl sub_8028F14 adds r1, r0, 0 lsls r1, 16 asrs r1, 16 mov r0, sp movs r2, 0x88 movs r3, 0x3 bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1] movs r0, 0x1 mov r1, r8 bl sub_8028654 add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028408 thumb_func_start sub_80284A8 sub_80284A8: @ 80284A8 push {lr} movs r2, 0x2E ldrsh r1, [r0, r2] cmp r1, 0x1 beq _080284BC cmp r1, 0x1 ble _080284C6 cmp r1, 0x2 beq _080284C2 b _080284C6 _080284BC: bl sub_802853C b _080284C6 _080284C2: bl sub_80285AC _080284C6: pop {r0} bx r0 thumb_func_end sub_80284A8 thumb_func_start sub_80284CC sub_80284CC: @ 80284CC push {lr} bl GetMultiplayerId ldr r1, =gUnknown_02022C9C lsls r0, 24 lsrs r0, 22 adds r0, r1 ldr r0, [r0] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x2E] strh r2, [r0, 0x30] strh r2, [r0, 0x32] strh r2, [r0, 0x34] strh r2, [r0, 0x36] pop {r0} bx r0 .pool thumb_func_end sub_80284CC thumb_func_start sub_8028504 sub_8028504: @ 8028504 push {lr} bl GetMultiplayerId ldr r1, =gUnknown_02022C9C lsls r0, 24 lsrs r0, 22 adds r0, r1 ldr r0, [r0] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r2, 0 movs r1, 0x2 strh r1, [r0, 0x2E] strh r2, [r0, 0x30] strh r2, [r0, 0x32] strh r2, [r0, 0x34] strh r2, [r0, 0x36] pop {r0} bx r0 .pool thumb_func_end sub_8028504 thumb_func_start sub_802853C sub_802853C: @ 802853C push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r2, r0, 16 lsrs r0, 31 adds r0, r2, r0 asrs r1, r0, 1 adds r0, r1, 0 cmp r1, 0 bge _08028558 adds r0, r1, 0x3 _08028558: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 cmp r2, 0x2 ble _080285A2 cmp r0, 0x2 bgt _0802856E cmp r0, 0x1 bge _08028572 _0802856E: movs r0, 0x1 b _08028574 _08028572: movs r0, 0xFF _08028574: lsls r0, 24 asrs r0, 24 ldrh r1, [r4, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080285A2 movs r0, 0 strh r0, [r4, 0x2E] bl sub_8027650 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8028F14 strh r0, [r4, 0x20] _080285A2: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_802853C thumb_func_start sub_80285AC sub_80285AC: @ 80285AC push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 movs r1, 0xD bl __divsi3 lsls r0, 16 asrs r1, r0, 16 adds r0, r1, 0 cmp r1, 0 bge _080285CC adds r0, r1, 0x3 _080285CC: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 lsls r0, 24 lsrs r4, r0, 24 movs r1, 0x30 ldrsh r0, [r5, r1] movs r1, 0xD bl __modsi3 lsls r0, 16 cmp r0, 0 bne _080285F0 cmp r4, 0 beq _080285F0 movs r0, 0xD4 bl PlaySE _080285F0: movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x67 ble _080285FE movs r0, 0 strh r0, [r5, 0x2E] movs r4, 0 _080285FE: bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80286B4 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80285AC thumb_func_start sub_8028614 sub_8028614: @ 8028614 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _08028646 ldr r6, =gUnknown_02022C9C _08028622: lsls r0, r4, 2 adds r0, r6 ldr r0, [r0] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _0802863C bl DestroySpriteAndFreeResources _0802863C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08028622 _08028646: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028614 thumb_func_start sub_8028654 sub_8028654: @ 8028654 lsls r0, 24 lsrs r0, 24 lsls r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022C9C lsrs r1, 22 adds r1, r2 ldr r1, [r1] ldrh r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r3 adds r2, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r3, [r2] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .pool thumb_func_end sub_8028654 thumb_func_start sub_802868C sub_802868C: @ 802868C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r4, 0 cmp r4, r5 bcs _080286AE _0802869C: adds r0, r6, 0 adds r1, r4, 0 bl sub_8028654 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _0802869C _080286AE: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802868C thumb_func_start sub_80286B4 sub_80286B4: @ 80286B4 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022C9C lsrs r0, 22 adds r0, r2 ldr r0, [r0] ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_80286B4 thumb_func_start nullsub_15 nullsub_15: @ 80286E0 bx lr thumb_func_end nullsub_15 thumb_func_start sub_80286E4 sub_80286E4: @ 80286E4 push {r4-r7,lr} movs r4, 0 ldr r0, =gSprites mov r12, r0 movs r6, 0 ldr r5, =gUnknown_02022CF4 _080286F0: ldr r3, [r5] lsls r1, r4, 1 adds r0, r3, 0 adds r0, 0x2A adds r0, r1 ldrh r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 lsls r0, r4, 4 adds r0, 0x30 strh r0, [r1, 0x20] lsls r2, r4, 3 movs r7, 0x8 negs r7, r7 adds r0, r7, 0 subs r0, r2 strh r0, [r1, 0x22] adds r3, 0xC adds r3, r4 strb r6, [r3] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080286F0 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80286E4 thumb_func_start sub_8028734 sub_8028734: @ 8028734 push {r4-r6,lr} sub sp, 0x28 movs r4, 0xC0 lsls r4, 1 adds r0, r4, 0 bl AllocZeroed adds r6, r0, 0 ldr r0, =gUnknown_082FB2E8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] ldr r0, =gDodrioBerryStatusGfx adds r1, r6, 0 bl LZ77UnCompWram cmp r6, 0 beq _080287C4 str r6, [sp, 0x18] add r5, sp, 0x18 movs r0, 0x80 lsls r0, 9 orrs r0, r4 str r0, [r5, 0x4] mov r1, sp ldr r0, =gUnknown_082FB2F0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r4, =gUnknown_02022CF4 movs r0, 0x40 bl AllocZeroed str r0, [r4] adds r0, r5, 0 bl LoadSpriteSheet add r0, sp, 0x20 bl LoadSpritePalette movs r4, 0 _0802878A: lsls r1, r4, 20 movs r0, 0xC0 lsls r0, 14 adds r1, r0 asrs r1, 16 lsls r0, r4, 3 movs r3, 0x8 negs r3, r3 adds r2, r3, 0 subs r2, r0 lsls r2, 16 asrs r2, 16 mov r0, sp movs r3, 0 bl CreateSprite ldr r1, =gUnknown_02022CF4 ldr r1, [r1] lsls r2, r4, 1 adds r1, 0x2A adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _0802878A _080287C4: adds r0, r6, 0 bl Free add sp, 0x28 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028734 thumb_func_start sub_80287E4 sub_80287E4: @ 80287E4 push {r4,r5,lr} movs r4, 0 _080287E8: ldr r5, =gUnknown_02022CF4 ldr r0, [r5] lsls r1, r4, 1 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028806 bl DestroySpriteAndFreeResources _08028806: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080287E8 ldr r0, [r5] bl Free movs r0, 0 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80287E4 thumb_func_start sub_8028828 sub_8028828: @ 8028828 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r3, 0 movs r6, 0 ldr r0, =gUnknown_02022CF4 mov r9, r0 _0802883A: mov r7, r9 ldr r2, [r7] lsls r5, r6, 1 adds r0, r2, 0 adds r0, 0x2A adds r0, r5 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r4, r0, r1 adds r0, r2, 0 adds r0, 0x16 adds r0, r5 movs r1, 0x2 strh r1, [r0] adds r0, r2, 0 adds r0, 0xC adds r2, r0, r6 ldrb r1, [r2] cmp r1, 0 beq _08028870 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r0, 0x8 beq _080288A6 _08028870: movs r3, 0x1 movs r7, 0x22 ldrsh r0, [r4, r7] cmp r0, 0x8 bne _08028896 cmp r1, 0 bne _080288A6 strb r3, [r2] mov r1, r9 ldr r0, [r1] adds r0, 0x16 adds r0, r5 ldr r1, =0x0000fff0 strh r1, [r0] movs r0, 0x24 str r3, [sp] bl PlaySE ldr r3, [sp] _08028896: mov r7, r9 ldr r0, [r7] adds r0, 0x16 adds r0, r5 ldrh r0, [r0] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _080288A6: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x9 bls _0802883A cmp r3, 0 bne _080288C4 movs r0, 0x1 b _080288C6 .pool _080288C4: movs r0, 0 _080288C6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8028828 thumb_func_start sub_80288D4 sub_80288D4: @ 80288D4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08028910 movs r4, 0 _080288E0: ldr r0, =gUnknown_02022CF4 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080288E0 b _080289DA .pool _08028910: movs r4, 0 movs r0, 0xA subs r0, r5 cmp r4, r0 bge _080289D6 ldr r6, =gSprites _0802891C: cmp r5, 0x6 bls _08028984 ldr r0, =gUnknown_02022CF4 ldr r2, [r0] ldr r1, =0x0000fffa adds r0, r1, 0 ldrh r1, [r2, 0x3E] adds r0, r1 adds r0, r5 movs r1, 0 strh r0, [r2, 0x3E] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bls _0802894C strh r1, [r2, 0x3E] b _0802899E .pool _0802894C: cmp r0, 0xA bls _0802896A lsls r1, r4, 1 adds r0, r2, 0 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 bl StartSpriteAnim b _0802899E _0802896A: lsls r1, r4, 1 adds r0, r2, 0 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim b _0802899E _08028984: ldr r0, =gUnknown_02022CF4 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0 bl StartSpriteAnim _0802899E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0xA subs r0, r5 cmp r4, r0 blt _0802891C b _080289D6 .pool _080289B4: ldr r0, =gUnknown_02022CF4 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x2A adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080289D6: cmp r4, 0x9 bls _080289B4 _080289DA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80288D4 thumb_func_start sub_80289E8 sub_80289E8: @ 80289E8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r6, 0x5 negs r6, r6 ldr r5, =gUnknown_02022CF4 _080289FE: ldr r0, [r5] lsls r1, r3, 1 adds r0, 0x2A adds r0, r1 ldrh r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 orrs r0, r4 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x9 bls _080289FE pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80289E8 thumb_func_start sub_8028A34 sub_8028A34: @ 8028A34 push {r4,r5,lr} sub sp, 0x10 movs r5, 0x90 lsls r5, 3 adds r0, r5, 0 bl AllocZeroed adds r4, r0, 0 ldr r0, =gUnknown_082FB314 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] ldr r0, =gDodrioBerrySpritesGfx adds r1, r4, 0 bl LZ77UnCompWram cmp r4, 0 beq _08028A6A str r4, [sp] movs r0, 0x80 lsls r0, 10 orrs r0, r5 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet _08028A6A: add r0, sp, 0x8 bl LoadSpritePalette adds r0, r4, 0 bl Free add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8028A34 thumb_func_start sub_8028A88 sub_8028A88: @ 8028A88 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x30 mov r1, sp ldr r0, =gUnknown_082FB324 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} add r2, sp, 0x18 adds r1, r2, 0 ldr r0, =gUnknown_082FB33C ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} movs r5, 0 mov r9, r2 _08028AB0: movs r0, 0x4 bl AllocZeroed ldr r1, =gUnknown_02022CB8 lsls r4, r5, 2 adds r4, r1 str r0, [r4] lsls r0, r5, 3 lsls r1, r5, 4 adds r1, r0 mov r0, sp movs r2, 0x8 movs r3, 0x1 bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r5, 0 movs r1, 0x1 bl sub_8028BF8 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08028AB0 movs r5, 0 ldr r7, =gUnknown_02022CE4 ldr r4, =gUnknown_082FB31C mov r8, r4 _08028AF0: movs r0, 0x4 bl AllocZeroed lsls r1, r5, 2 adds r4, r1, r7 str r0, [r4] adds r6, r1, 0 cmp r5, 0x3 bne _08028B2C mov r0, r8 movs r2, 0x6 ldrsh r1, [r0, r2] mov r0, r9 movs r2, 0x31 movs r3, 0 bl CreateSprite ldr r1, [r7, 0xC] b _08028B40 .pool _08028B2C: lsls r0, r5, 1 add r0, r8 movs r3, 0 ldrsh r1, [r0, r3] mov r0, r9 movs r2, 0x34 movs r3, 0 bl CreateSprite ldr r1, [r4] _08028B40: lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r6, r7 ldr r0, [r0] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 adds r1, r5, 0 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08028AF0 movs r0, 0x1 bl sub_8028C30 add sp, 0x30 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028A88 thumb_func_start sub_8028B80 sub_8028B80: @ 8028B80 push {r4-r6,lr} movs r5, 0 ldr r6, =gUnknown_02022CB8 _08028B86: lsls r0, r5, 2 adds r4, r0, r6 ldr r0, [r4] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028BA0 bl DestroySprite _08028BA0: ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08028B86 movs r5, 0 ldr r6, =gUnknown_02022CE4 _08028BB8: lsls r0, r5, 2 adds r4, r0, r6 ldr r0, [r4] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028BD2 bl DestroySprite _08028BD2: ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08028BB8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028B80 thumb_func_start sub_8028BF8 sub_8028BF8: @ 8028BF8 lsls r0, 24 lsls r1, 24 lsrs r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ldrh r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r3 adds r2, 0x3E movs r0, 0x1 ands r1, r0 lsls r1, 2 ldrb r3, [r2] movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .pool thumb_func_end sub_8028BF8 thumb_func_start sub_8028C30 sub_8028C30: @ 8028C30 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_02022CE4 movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r5, 0x5 negs r5, r5 _08028C46: lsls r0, r3, 2 adds r0, r6 ldr r0, [r0] ldrh r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 orrs r0, r4 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _08028C46 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028C30 thumb_func_start sub_8028C7C sub_8028C7C: @ 8028C7C lsls r0, 24 lsls r1, 24 ldr r3, =gSprites ldr r2, =gUnknown_02022CB8 lsrs r0, 22 adds r0, r2 ldr r0, [r0] ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 lsrs r1, 21 strh r1, [r0, 0x22] bx lr .pool thumb_func_end sub_8028C7C thumb_func_start sub_8028CA4 sub_8028CA4: @ 8028CA4 push {lr} lsls r0, 16 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022CB8 lsrs r0, 14 adds r0, r2 ldr r0, [r0] ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_8028CA4 thumb_func_start sub_8028CD0 sub_8028CD0: @ 8028CD0 lsls r0, 24 lsrs r0, 24 ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, 0x32 strh r1, [r2, 0x20] movs r0, 0x32 strh r0, [r2, 0x22] bx lr .pool thumb_func_end sub_8028CD0 thumb_func_start sub_8028CF4 sub_8028CF4: @ 8028CF4 push {r4-r7,lr} adds r4, r0, 0 adds r0, 0x42 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x1 beq _08028D36 movs r3, 0 ldr r7, =gUnknown_082FB354 ldr r6, =gUnknown_02022CB0 movs r5, 0 _08028D0A: lsls r0, r3, 2 adds r2, r0, r6 ldr r1, [r2] ldrh r0, [r1, 0x2] adds r0, 0x1 strh r0, [r1, 0x2] adds r1, r3, r7 lsls r0, 16 lsrs r0, 16 ldrb r1, [r1] cmp r0, r1 bls _08028D2C ldrh r0, [r4, 0x20] subs r0, 0x1 strh r0, [r4, 0x20] ldr r0, [r2] strh r5, [r0, 0x2] _08028D2C: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _08028D0A _08028D36: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028CF4 thumb_func_start sub_8028D44 sub_8028D44: @ 8028D44 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x28 movs r4, 0x80 lsls r4, 3 adds r0, r4, 0 bl AllocZeroed adds r6, r0, 0 ldr r0, =gUnknown_082FB360 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x20] str r1, [sp, 0x24] ldr r0, =gDodrioBerryPlatformGfx adds r1, r6, 0 bl LZ77UnCompWram cmp r6, 0 beq _08028DD2 str r6, [sp, 0x18] add r0, sp, 0x18 movs r1, 0xA0 lsls r1, 11 orrs r1, r4 str r1, [r0, 0x4] mov r2, sp ldr r1, =gUnknown_082FB368 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} bl LoadSpriteSheet add r0, sp, 0x20 bl LoadSpritePalette movs r5, 0 ldr r7, =gUnknown_082FB356 adds r0, r7, 0x2 mov r9, r0 ldr r1, =gUnknown_02022CB0 mov r8, r1 _08028D9E: movs r0, 0x4 bl AllocZeroed lsls r2, r5, 2 mov r3, r8 adds r4, r2, r3 str r0, [r4] adds r0, r2, r7 movs r3, 0 ldrsh r1, [r0, r3] add r2, r9 movs r0, 0 ldrsh r2, [r2, r0] mov r0, sp movs r3, 0x4 bl CreateSprite ldr r1, [r4] lsls r0, 24 lsrs r0, 24 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _08028D9E _08028DD2: adds r0, r6, 0 bl Free add sp, 0x28 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028D44 thumb_func_start sub_8028DFC sub_8028DFC: @ 8028DFC push {r4-r7,lr} movs r3, 0 ldr r0, =gUnknown_02022CB0 mov r12, r0 ldr r4, =gUnknown_082FB356 adds r7, r4, 0x2 ldr r6, =gSprites movs r5, 0x1 _08028E0C: lsls r2, r3, 2 mov r1, r12 adds r0, r2, r1 ldr r0, [r0] ldrh r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r0, r1, 0 adds r0, 0x42 strh r5, [r0] adds r0, r2, r4 ldrh r0, [r0] strh r0, [r1, 0x20] adds r2, r7 ldrh r0, [r2] strh r0, [r1, 0x22] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _08028E0C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028DFC thumb_func_start sub_8028E4C sub_8028E4C: @ 8028E4C push {r4,r5,lr} movs r2, 0 ldr r5, =gUnknown_02022CB0 ldr r4, =gSprites movs r3, 0 _08028E56: lsls r0, r2, 2 adds r0, r5 ldr r0, [r0] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x42 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1 bls _08028E56 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8028E4C thumb_func_start sub_8028E84 sub_8028E84: @ 8028E84 push {r4-r6,lr} movs r5, 0 ldr r6, =gUnknown_02022CB0 _08028E8A: lsls r0, r5, 2 adds r4, r0, r6 ldr r0, [r4] ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 cmp r0, 0 beq _08028EA4 bl DestroySprite _08028EA4: ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _08028E8A pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8028E84 thumb_func_start sub_8028EC8 sub_8028EC8: @ 8028EC8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_02022CB0 movs r1, 0x1 ands r0, r1 lsls r4, r0, 2 movs r5, 0x5 negs r5, r5 _08028EDE: lsls r0, r3, 2 adds r0, r6 ldr r0, [r0] ldrh r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 orrs r0, r4 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _08028EDE pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8028EC8 thumb_func_start sub_8028F14 sub_8028F14: @ 8028F14 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 movs r3, 0 subs r0, r1, 0x1 cmp r0, 0x4 bhi _08028FC6 lsls r0, 2 ldr r1, =_08028F34 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08028F34: .4byte _08028FB4 .4byte _08028F48 .4byte _08028F52 .4byte _08028F66 .4byte _08028F8E _08028F48: cmp r2, 0 beq _08028F7E cmp r2, 0x1 bne _08028FC6 b _08028F82 _08028F52: cmp r2, 0x1 beq _08028FB8 cmp r2, 0x1 bgt _08028F60 cmp r2, 0 beq _08028FB4 b _08028FC6 _08028F60: cmp r2, 0x2 bne _08028FC6 b _08028FC4 _08028F66: cmp r2, 0x1 beq _08028F82 cmp r2, 0x1 bgt _08028F74 cmp r2, 0 beq _08028F7E b _08028FC6 _08028F74: cmp r2, 0x2 beq _08028F86 cmp r2, 0x3 beq _08028F8A b _08028FC6 _08028F7E: movs r3, 0xC b _08028FC6 _08028F82: movs r3, 0x12 b _08028FC6 _08028F86: movs r3, 0x18 b _08028FC6 _08028F8A: movs r3, 0x6 b _08028FC6 _08028F8E: cmp r2, 0x4 bhi _08028FC6 lsls r0, r2, 2 ldr r1, =_08028FA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08028FA0: .4byte _08028FB4 .4byte _08028FB8 .4byte _08028FBC .4byte _08028FC0 .4byte _08028FC4 _08028FB4: movs r3, 0xF b _08028FC6 _08028FB8: movs r3, 0x15 b _08028FC6 _08028FBC: movs r3, 0x1B b _08028FC6 _08028FC0: movs r3, 0x3 b _08028FC6 _08028FC4: movs r3, 0x9 _08028FC6: lsls r0, r3, 3 pop {r1} bx r1 thumb_func_end sub_8028F14 thumb_func_start sub_8028FCC sub_8028FCC: @ 8028FCC push {r4,lr} movs r4, 0 _08028FD0: adds r0, r4, 0 movs r1, 0x1 bl sub_8028BF8 adds r0, r4, 0 movs r1, 0x1 bl sub_8028C7C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xA bls _08028FD0 movs r0, 0 bl sub_80289E8 pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FCC thumb_func_start sub_8028FF8 sub_8028FF8: @ 8028FF8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl GetWindowFrameTilesPal ldr r1, [r0] movs r2, 0x90 lsls r2, 1 movs r0, 0 movs r3, 0x1 bl LoadBgTiles adds r0, r4, 0 bl GetWindowFrameTilesPal ldr r0, [r0, 0x4] movs r1, 0xA0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 thumb_func_end sub_8028FF8 thumb_func_start sub_802902C sub_802902C: @ 802902C push {lr} movs r0, 0 movs r1, 0xA movs r2, 0xB0 bl LoadUserWindowBorderGfx_ pop {r0} bx r0 thumb_func_end sub_802902C thumb_func_start sub_802903C sub_802903C: @ 802903C ldr r3, =gUnknown_02022CF8 ldr r0, [r3] movs r2, 0xC0 lsls r2, 6 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r1, =0x00003014 adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r1, 0x4 adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r1, 0x8 adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r1, 0x4 adds r0, r1 strb r2, [r0] bx lr .pool thumb_func_end sub_802903C thumb_func_start sub_8029074 sub_8029074: @ 8029074 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 movs r6, 0xA ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r5, 0x1 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x1 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x3] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x2 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x3 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] str r5, [sp] ldrb r0, [r4, 0x4] str r0, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x4 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] str r5, [sp] ldrb r0, [r4, 0x4] str r0, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x6 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x4] ldrb r0, [r4, 0x2] adds r3, r0 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x7 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] ldrb r3, [r4, 0x4] ldrb r0, [r4, 0x2] adds r3, r0 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x3] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x8 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x4] ldrb r4, [r4, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x9 bl FillBgTilemapBufferRect add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8029074 thumb_func_start sub_8029174 sub_8029174: @ 8029174 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 movs r6, 0xB ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r5, 0x1 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0xA bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x3] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0xB bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0xC bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] str r5, [sp] ldrb r0, [r4, 0x4] str r0, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0xD bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x2] str r5, [sp] ldrb r0, [r4, 0x4] str r0, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0xF bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x4] ldrb r0, [r4, 0x2] adds r3, r0 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x10 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x1] ldrb r3, [r4, 0x4] ldrb r0, [r4, 0x2] adds r3, r0 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x3] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x11 bl FillBgTilemapBufferRect ldrb r2, [r4, 0x3] ldrb r0, [r4, 0x1] adds r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r3, [r4, 0x4] ldrb r4, [r4, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 movs r1, 0x12 bl FillBgTilemapBufferRect add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8029174 thumb_func_start sub_8029274 sub_8029274: @ 8029274 push {r4,lr} ldr r4, =gUnknown_02022CF8 str r0, [r4] movs r2, 0xC0 lsls r2, 6 adds r1, r0, r2 movs r2, 0 str r2, [r1] ldr r3, =0x00003014 adds r1, r0, r3 strb r2, [r1] ldr r1, =0x00003018 adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r3, 0xC adds r0, r3 strb r2, [r0] ldr r0, [r4] adds r1, 0xC adds r0, r1 strb r2, [r0] ldr r0, =sub_8029314 movs r1, 0x3 bl CreateTask ldr r1, [r4] ldr r2, =0x00003004 adds r1, r2 strb r0, [r1] ldr r0, =sub_8029338 bl sub_802A72C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8029274 thumb_func_start sub_80292D4 sub_80292D4: @ 80292D4 push {lr} bl FreeAllWindowBuffers pop {r0} bx r0 thumb_func_end sub_80292D4 thumb_func_start sub_80292E0 sub_80292E0: @ 80292E0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, =gUnknown_082FB40C adds r7, r5, 0x4 _080292EC: lsls r1, r4, 3 adds r0, r1, r5 ldrb r0, [r0] cmp r0, r6 bne _080292FE adds r0, r1, r7 ldr r0, [r0] bl sub_802A72C _080292FE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x9 bls _080292EC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80292E0 thumb_func_start sub_8029314 sub_8029314: @ 8029314 push {lr} ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 ldr r0, [r0] cmp r0, 0 bne _0802932E bl sub_802A75C bl _call_via_r0 _0802932E: pop {r0} bx r0 .pool thumb_func_end sub_8029314 thumb_func_start sub_8029338 sub_8029338: @ 8029338 push {lr} ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x4 bhi _08029430 lsls r0, 2 ldr r1, =_08029360 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08029360: .4byte _08029374 .4byte _0802937A .4byte _08029394 .4byte _080293D8 .4byte _08029404 _08029374: bl sub_802A7A8 b _08029414 _0802937A: bl sub_802A8E8 cmp r0, 0x1 bne _0802943A ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 b _0802941C .pool _08029394: ldr r1, =gDodrioBerryBgTilemap1 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gDodrioBerryBgTilemap2Left movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gDodrioBerryBgTilemap2Right movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram b _08029414 .pool _080293D8: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 b _0802941C .pool _08029404: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8028FF8 bl sub_802902C _08029414: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 _0802941C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802943A .pool _08029430: movs r2, 0xC0 lsls r2, 6 adds r1, r2 movs r0, 0x1 str r0, [r1] _0802943A: pop {r0} bx r0 thumb_func_end sub_8029338 thumb_func_start sub_8029440 sub_8029440: @ 8029440 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r2, =0x00003014 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _08029488 cmp r0, 0x1 bne _08029460 b _080295EC _08029460: adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xB4 bhi _0802946E b _0802968E _0802946E: bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 cmp r6, r7 bcc _0802947E b _08029666 _0802947E: b _08029640 .pool _08029488: bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gUnknown_082FB3C8 subs r0, r7, 0x1 lsls r0, 2 adds r0, r1 ldr r5, [r0] ldr r2, =0xffffff00 ldr r0, [sp, 0xC] ands r0, r2 ldr r1, =0x00ffffff ands r0, r1 movs r1, 0xE0 lsls r1, 19 orrs r0, r1 str r0, [sp, 0xC] ldr r0, [sp, 0x10] ands r0, r2 movs r1, 0x2 orrs r0, r1 ldr r1, =0xffff00ff ands r0, r1 movs r1, 0xD0 lsls r1, 4 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0x98 lsls r1, 13 orrs r0, r1 str r0, [sp, 0x10] movs r6, 0 cmp r6, r7 bcs _080295B8 mov r3, sp adds r3, 0xC str r3, [sp, 0x18] mov r10, r4 ldr r0, =0x00003008 mov r9, r0 _080294DC: movs r1, 0 mov r8, r1 adds r0, r6, 0 bl sub_8027A48 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_8027660 adds r1, r0, 0 movs r0, 0x1 movs r2, 0x1 negs r2, r2 bl GetStringWidth movs r1, 0x38 subs r1, r0 lsrs r1, 1 str r1, [sp, 0x14] ldrb r0, [r5] lsls r0, 8 ldr r2, =0xffff00ff ldr r1, [sp, 0xC] ands r1, r2 orrs r1, r0 str r1, [sp, 0xC] ldrb r2, [r5, 0x1] lsls r2, 16 ldr r0, =0xff00ffff ands r0, r1 orrs r0, r2 str r0, [sp, 0xC] add r0, sp, 0xC bl AddWindow mov r2, r10 ldr r1, [r2] add r1, r9 adds r1, r6 strb r0, [r1] ldr r0, [r2] add r0, r9 adds r0, r6 ldrb r0, [r0] bl ClearWindowTilemap mov r3, r10 ldr r0, [r3] add r0, r9 adds r0, r6 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _0802955A movs r0, 0x2 mov r8, r0 _0802955A: adds r0, r4, 0 bl sub_8027660 adds r4, r0, 0 mov r1, r10 ldr r0, [r1] add r0, r9 adds r0, r6 ldrb r0, [r0] ldr r3, [sp, 0x14] lsls r2, r3, 24 lsrs r2, 24 mov r3, r8 lsls r1, r3, 1 add r1, r8 ldr r3, =gUnknown_082FB380 adds r1, r3 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 bl AddTextPrinterParameterized3 mov r2, r10 ldr r0, [r2] add r0, r9 adds r0, r6 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r3, [sp, 0x18] ldrh r0, [r3, 0x6] adds r0, 0xE strh r0, [r3, 0x6] add r0, sp, 0xC bl sub_8029174 adds r5, 0x4 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r7 bcc _080294DC _080295B8: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _0802962A .pool _080295EC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802968E bl sub_8027650 lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 cmp r6, r7 bcs _0802961C _08029604: ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 adds r0, r6 ldrb r0, [r0] bl PutWindowTilemap adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r7 bcc _08029604 _0802961C: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r2, =0x00003014 adds r1, r2 _0802962A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802968E .pool _08029640: ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =0x00003008 adds r0, r4 adds r0, r6 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r5] adds r0, r4 adds r0, r6 ldrb r0, [r0] bl RemoveWindow adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r7 bcc _08029640 _08029666: movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r3, 0xC0 lsls r3, 6 adds r0, r3 movs r1, 0x1 str r1, [r0] _0802968E: add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8029440 thumb_func_start sub_80296A8 sub_80296A8: @ 80296A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x6C lsls r0, 24 movs r1, 0 mov r8, r1 movs r6, 0 lsrs r7, r0, 24 add r4, sp, 0x2C ldr r1, =gUnknown_082FB45C adds r0, r4, 0 movs r2, 0x5 bl memcpy movs r5, 0 cmp r5, r7 bcs _080296F8 add r4, sp, 0x34 _080296D2: mov r0, sp adds r0, r5 adds r0, 0x2C strb r5, [r0] add r0, sp, 0x5C adds r1, r5, 0 bl sub_802793C lsls r2, r5, 3 adds r2, r4, r2 ldr r0, [sp, 0x5C] ldr r1, [sp, 0x60] str r0, [r2] str r1, [r2, 0x4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _080296D2 _080296F8: bl sub_8027748 cmp r0, 0 beq _0802972E _08029700: movs r5, 0 cmp r5, r7 bcs _08029728 add r2, sp, 0x34 add r1, sp, 0x2C _0802970A: lsls r0, r5, 3 adds r0, r2, r0 ldrb r0, [r0] cmp r0, r8 bne _0802971E adds r0, r1, r6 strb r5, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0802971E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _0802970A _08029728: mov r8, r6 cmp r6, r7 bcc _08029700 _0802972E: movs r5, 0 ldr r4, =gText_SpacePoints cmp r5, r7 bcs _08029754 add r1, sp, 0x34 add r6, sp, 0x38 subs r3, r7, 0x1 _0802973C: lsls r2, r5, 3 adds r0, r6, r2 ldr r0, [r0] cmp r0, 0 bne _0802974A adds r0, r1, r2 strb r3, [r0] _0802974A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _0802973C _08029754: movs r0, 0x1 adds r1, r4, 0 movs r2, 0 bl GetStringWidth movs r1, 0xD8 subs r1, r0 str r1, [sp, 0x64] movs r5, 0 cmp r5, r7 bcs _08029860 mov r2, sp adds r2, 0x34 str r2, [sp, 0x68] ldr r3, =0x00003009 mov r10, r3 _08029774: movs r0, 0 mov r8, r0 mov r0, sp adds r0, r5 adds r0, 0x2C ldrb r0, [r0] adds r4, r0, 0 lsls r1, r4, 3 add r0, sp, 0x38 adds r0, r1 ldr r0, [r0] mov r9, r0 ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r2, =gUnknown_082FB3DC ldr r3, [sp, 0x68] adds r1, r3, r1 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r2, [r1] ldr r3, =gUnknown_082FB402 lsls r1, r5, 1 adds r1, r3 ldrb r6, [r1] str r6, [sp] movs r1, 0xFF str r1, [sp, 0x4] mov r3, r8 str r3, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r4, r0 bne _080297CC movs r0, 0x2 mov r8, r0 _080297CC: adds r0, r4, 0 bl sub_8027660 adds r3, r0, 0 ldr r1, =gUnknown_02022CF8 ldr r0, [r1] add r0, r10 ldrb r0, [r0] mov r2, r8 lsls r1, r2, 1 add r1, r8 ldr r2, =gUnknown_082FB380 adds r1, r2 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0x1 movs r2, 0x1C adds r3, r6, 0 bl AddTextPrinterParameterized3 add r0, sp, 0xC mov r1, r9 movs r2, 0 movs r3, 0x7 bl ConvertIntToDecimalStringN movs r0, 0x1 add r1, sp, 0xC movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r3, r0, 0 ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r1, [sp, 0x64] subs r3, r1, r3 lsls r3, 24 lsrs r3, 24 str r6, [sp] movs r2, 0xFF str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl AddTextPrinterParameterized ldr r2, =gUnknown_02022CF8 ldr r0, [r2] add r0, r10 ldrb r0, [r0] ldr r1, [sp, 0x64] lsls r3, r1, 24 str r6, [sp] movs r2, 0xFF str r2, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 ldr r2, =gText_SpacePoints lsrs r3, 24 bl AddTextPrinterParameterized adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r7 bcc _08029774 _08029860: add sp, 0x6C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80296A8 thumb_func_start sub_802988C sub_802988C: @ 802988C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 bl sub_8027650 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] ldr r6, =gUnknown_02022CF8 ldr r1, [r6] ldr r2, =0x00003014 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xB bls _080298B2 b _08029FA8 _080298B2: lsls r0, 2 ldr r1, =_080298C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080298C8: .4byte _080298F8 .4byte _08029914 .4byte _0802996C .4byte _08029B6C .4byte _08029BB8 .4byte _08029BFC .4byte _08029C60 .4byte _08029C9C .4byte _08029CE0 .4byte _08029DA0 .4byte _08029F08 .4byte _08029F5C _080298F8: bl sub_802784C ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x0000301c adds r2, r1, r0 movs r0, 0 strh r0, [r2] b _08029F8A .pool _08029914: ldr r6, =gUnknown_082F7BBC adds r0, r6, 0 bl AddWindow ldr r4, =gUnknown_02022CF8 ldr r1, [r4] ldr r2, =0x00003008 mov r8, r2 add r1, r8 strb r0, [r1] movs r0, 0x8 adds r0, r6 mov r9, r0 bl AddWindow ldr r1, [r4] ldr r5, =0x00003009 adds r1, r5 strb r0, [r1] ldr r0, [r4] add r0, r8 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r4] adds r0, r5 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r6, 0 bl sub_8029174 mov r0, r9 bl sub_8029174 b _08029F88 .pool _0802996C: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r5, =0x00003008 adds r0, r5 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 mov r9, r1 add r0, r9 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, =gText_BerryPickingResults mov r8, r2 movs r2, 0x1 negs r2, r2 movs r0, 0x1 mov r1, r8 bl GetStringWidth adds r1, r0, 0 movs r0, 0xE0 subs r0, r1 lsrs r3, r0, 1 ldr r0, [r4] adds r0, r5 ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r6, 0xFF str r6, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] mov r2, r8 bl AddTextPrinterParameterized ldr r0, [r4] add r0, r9 ldrb r0, [r0] ldr r2, =gText_10P30P50P50P movs r1, 0x11 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x44 bl AddTextPrinterParameterized mov r9, r5 ldr r0, [sp, 0xC] cmp r9, r0 bcc _080299E2 b _08029B2A _080299E2: movs r4, 0 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r9, r0 bne _080299F2 movs r4, 0x2 _080299F2: mov r0, r9 bl sub_8027660 adds r6, r0, 0 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] mov r2, r9 lsls r5, r2, 1 ldr r2, =gUnknown_082FB3F8 adds r1, r5, r2 ldrb r3, [r1] lsls r1, r4, 1 adds r1, r4 ldr r2, =gUnknown_082FB380 adds r1, r2 str r1, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] str r6, [sp, 0x8] movs r1, 0x1 movs r2, 0 bl AddTextPrinterParameterized3 movs r7, 0 mov r8, r5 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x10] ldr r1, =gStringVar4 mov r10, r1 _08029A36: mov r0, r9 adds r1, r7, 0 bl sub_80276A0 lsls r0, 16 lsrs r0, 16 ldr r1, =0x0000270f bl sub_8027A38 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r7, 0 bl sub_802778C ldr r1, =0x0000270f bl sub_8027A38 lsls r0, 16 lsrs r6, r0, 16 mov r0, r10 adds r1, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN movs r0, 0x1 mov r1, r10 movs r2, 0x1 negs r2, r2 bl GetStringWidth adds r5, r0, 0 cmp r6, r4 bne _08029AE0 cmp r6, 0 beq _08029AE0 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] lsls r1, r7, 1 ldr r2, =gUnknown_082FB3F0 adds r1, r2 ldrb r2, [r1] subs r2, r5 lsls r2, 24 lsrs r2, 24 ldr r1, =gUnknown_082FB3F8 add r1, r8 ldrb r3, [r1] ldr r1, =gUnknown_082FB383 str r1, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] movs r1, 0x1 bl AddTextPrinterParameterized3 b _08029B10 .pool _08029AE0: ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] lsls r1, r7, 1 ldr r2, =gUnknown_082FB3F0 adds r1, r2 ldrb r3, [r1] subs r3, r5 lsls r3, 24 lsrs r3, 24 ldr r1, =gUnknown_082FB3F8 add r1, r8 ldrb r1, [r1] str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 ldr r2, =gStringVar4 bl AddTextPrinterParameterized _08029B10: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _08029A36 ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 ldr r2, [sp, 0xC] cmp r9, r2 bcs _08029B2A b _080299E2 _08029B2A: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029B6C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029B90 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029B90: movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0 bl sub_8028C30 ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029BB8: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _08029BD0 b _08029FF8 _08029BD0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08029BDE b _08029FF8 _08029BDE: movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_8028C30 b _08029F88 .pool _08029BFC: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r5, =0x00003008 adds r0, r5 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r6, =gText_AnnouncingRankings movs r2, 0x1 negs r2, r2 movs r0, 0x1 adds r1, r6, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0xE0 subs r0, r1 lsrs r3, r0, 1 ldr r0, [r4] adds r0, r5 ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r6, 0 bl AddTextPrinterParameterized b _08029F88 .pool _08029C60: ldr r0, [sp, 0xC] bl sub_80296A8 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029C9C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029CC0 ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029CC0: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029CE0: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bhi _08029CF8 b _08029FF8 _08029CF8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08029D06 b _08029FF8 _08029D06: movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE bl sub_8027748 ldr r1, =0x00000bb7 cmp r0, r1 bhi _08029D3C ldr r0, [r4] ldr r2, =0x00003014 adds r0, r2 movs r1, 0x7F strb r1, [r0] b _08029D4C .pool _08029D3C: bl StopMapMusic ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08029D4C: movs r0, 0x1E str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x5 bl FillBgTilemapBufferRect_Palette0 ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =0x00003009 adds r0, r4 ldrb r0, [r0] bl RemoveWindow ldr r6, =gUnknown_082F7BCC adds r0, r6, 0 bl AddWindow ldr r1, [r5] adds r1, r4 strb r0, [r1] ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r6, 0 bl sub_8029174 b _08029FF8 .pool _08029DA0: ldr r0, =0x0000016f bl PlayNewMapMusic ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r6, =0x00003008 adds r0, r6 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r4] ldr r1, =0x00003009 mov r10, r1 add r0, r10 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gText_AnnouncingPrizes movs r2, 0x1 negs r2, r2 movs r0, 0x1 adds r1, r5, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0xE0 subs r0, r1 lsrs r3, r0, 1 ldr r0, [r4] adds r0, r6 ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 movs r2, 0x1 mov r9, r2 str r2, [sp] movs r1, 0xFF mov r8, r1 str r1, [sp, 0x4] movs r6, 0 str r6, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized bl DynamicPlaceholderTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 ldr r5, =gStringVar1 adds r1, r5, 0 bl CopyItemName movs r0, 0 adds r1, r5, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr ldr r7, =gStringVar4 ldr r1, =gText_FirstPlacePrize adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders ldr r0, [r4] add r0, r10 ldrb r0, [r0] mov r2, r9 str r2, [sp] mov r1, r8 str r1, [sp, 0x4] str r6, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 movs r3, 0 bl AddTextPrinterParameterized bl sub_80279C8 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 cmp r4, 0 beq _08029EC8 cmp r4, 0x3 beq _08029EC8 bl DynamicPlaceholderTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl CopyItemName movs r0, 0 adds r1, r5, 0 bl DynamicPlaceholderTextUtil_SetPlaceholderPtr cmp r4, 0x2 bne _08029E9C ldr r1, =gText_CantHoldAnyMore adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders b _08029EA8 .pool _08029E9C: cmp r6, 0x1 bne _08029EA8 ldr r1, =gText_FilledStorageSpace adds r0, r7, 0 bl DynamicPlaceholderTextUtil_ExpandPlaceholders _08029EA8: ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] ldr r2, =gStringVar4 movs r1, 0x29 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized _08029EC8: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r4] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029F08: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08029F2C ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r4] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl PutWindowTilemap _08029F2C: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =0x0000020b movs r1, 0x14 movs r2, 0xA bl FadeOutAndFadeInNewMapMusic ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003014 adds r1, r0 b _08029F8E .pool _08029F5C: ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x0000301c adds r2, r0, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1D bls _08029FF8 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08029FF8 movs r0, 0 strh r0, [r2] movs r0, 0x5 bl PlaySE _08029F88: ldr r1, [r4] _08029F8A: ldr r2, =0x00003014 adds r1, r2 _08029F8E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08029FF8 .pool _08029FA8: ldr r5, =0x00003008 adds r0, r1, r5 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r6] ldr r4, =0x00003009 adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r6] adds r0, r5 ldrb r0, [r0] bl RemoveWindow ldr r0, [r6] adds r0, r4 ldrb r0, [r0] bl RemoveWindow movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, [r6] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] _08029FF8: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802988C thumb_func_start sub_802A010 sub_802A010: @ 802A010 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r1, =gUnknown_02022CF8 ldr r2, [r1] ldr r3, =0x00003014 adds r0, r2, r3 ldrb r6, [r0] adds r7, r1, 0 cmp r6, 0x1 beq _0802A0CC cmp r6, 0x1 bgt _0802A040 cmp r6, 0 beq _0802A04E b _0802A2FC .pool _0802A040: cmp r6, 0x2 bne _0802A046 b _0802A194 _0802A046: cmp r6, 0x3 bne _0802A04C b _0802A1D0 _0802A04C: b _0802A2FC _0802A04E: ldr r0, =gUnknown_082F7BD4 mov r9, r0 bl AddWindow ldr r1, [r7] ldr r4, =0x00003008 adds r1, r4 strb r0, [r1] movs r1, 0x8 add r1, r9 mov r8, r1 mov r0, r8 bl AddWindow ldr r1, [r7] ldr r2, =0x00003009 adds r1, r2 strb r0, [r1] ldr r0, [r7] adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] ldr r3, =0x00003009 adds r0, r3 ldrb r0, [r0] bl ClearWindowTilemap mov r0, r9 bl sub_8029174 mov r0, r8 bl sub_8029074 ldr r1, [r7] ldr r0, =0x00003014 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r7] ldr r1, =0x00003020 adds r0, r1 strb r6, [r0] ldr r0, [r7] ldr r2, =0x00003024 adds r0, r2 strb r6, [r0] b _0802A35E .pool _0802A0CC: ldr r3, =0x00003008 mov r8, r3 adds r0, r2, r3 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] ldr r1, =0x00003009 mov r10, r1 add r0, r10 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_WantToPlayAgain movs r1, 0x5 str r1, [sp] movs r3, 0xFF mov r9, r3 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_Yes str r6, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r10 ldrb r0, [r0] ldr r2, =gText_SelectorArrow2 str r6, [sp] mov r3, r9 str r3, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r7] add r0, r10 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r7] ldr r2, =0x00003014 adds r1, r2 b _0802A2EA .pool _0802A194: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A1B6 ldr r0, [r7] ldr r3, =0x00003008 adds r0, r3 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r7] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A1B6: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r7] ldr r2, =0x00003014 adds r1, r2 b _0802A2EA .pool _0802A1D0: ldr r3, =0x00003020 adds r0, r2, r3 ldrb r5, [r0] cmp r5, 0 bne _0802A1DC movs r5, 0x1 _0802A1DC: ldr r0, =0x00003009 mov r8, r0 adds r0, r2, r0 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_Yes movs r1, 0x1 str r1, [sp] movs r3, 0xFF mov r10, r3 str r3, [sp, 0x4] movs r1, 0 mov r9, r1 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_No movs r1, 0x11 str r1, [sp] mov r3, r10 str r3, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] ldr r2, =gText_SelectorArrow2 subs r1, r5, 0x1 lsls r1, 4 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] mov r3, r10 str r3, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r7] add r0, r8 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r5, 0x1 movs r2, 0x1 ands r2, r1 cmp r2, 0 beq _0802A294 movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _0802A2E4 strb r5, [r1] b _0802A2E4 .pool _0802A294: movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0802A2CC movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r2, =0x00003020 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x1 beq _0802A2C2 cmp r0, 0x1 bgt _0802A2BC cmp r0, 0 beq _0802A2C2 b _0802A35E .pool _0802A2BC: cmp r0, 0x2 beq _0802A2C8 b _0802A35E _0802A2C2: movs r0, 0x2 strb r0, [r1] b _0802A35E _0802A2C8: strb r5, [r1] b _0802A35E _0802A2CC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0802A35E movs r0, 0x5 bl PlaySE ldr r0, [r7] ldr r3, =0x00003020 adds r0, r3 movs r1, 0x2 strb r1, [r0] _0802A2E4: ldr r1, [r7] ldr r0, =0x00003014 adds r1, r0 _0802A2EA: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A35E .pool _0802A2FC: ldr r0, [r7] ldr r2, =0x00003020 adds r1, r0, r2 ldrb r1, [r1] ldr r3, =0x00003024 adds r0, r3 strb r1, [r0] ldr r0, [r7] ldr r6, =0x00003008 adds r0, r6 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] ldr r1, =0x00003009 adds r0, r1 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r7] adds r0, r6 ldrb r0, [r0] bl RemoveWindow ldr r0, [r7] ldr r2, =0x00003009 adds r0, r2 ldrb r0, [r0] bl RemoveWindow movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, [r7] movs r3, 0xC0 lsls r3, 6 adds r0, r3 movs r1, 0x1 str r1, [r0] _0802A35E: 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_802A010 thumb_func_start sub_802A380 sub_802A380: @ 802A380 push {r4-r6,lr} sub sp, 0x10 ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r6, =0x00003014 adds r0, r6 ldrb r4, [r0] cmp r4, 0x1 beq _0802A3D8 cmp r4, 0x1 bgt _0802A3A4 cmp r4, 0 beq _0802A3AE b _0802A420 .pool _0802A3A4: cmp r4, 0x2 beq _0802A3EC cmp r4, 0x3 beq _0802A404 b _0802A420 _0802A3AE: movs r0, 0 movs r1, 0 bl DrawDialogueFrame ldr r2, =gText_SavingDontTurnOffPower str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized2 b _0802A410 .pool _0802A3D8: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, [r5] ldr r0, =0x00003014 adds r1, r0 b _0802A414 .pool _0802A3EC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A448 ldr r0, =sub_8153688 movs r1, 0 bl CreateTask b _0802A410 .pool _0802A404: ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0802A448 _0802A410: ldr r1, [r5] adds r1, r6 _0802A414: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A448 .pool _0802A420: movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] _0802A448: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802A380 thumb_func_start sub_802A454 sub_802A454: @ 802A454 push {r4-r6,lr} sub sp, 0xC ldr r1, =gUnknown_02022CF8 ldr r2, [r1] ldr r6, =0x00003014 adds r0, r2, r6 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x1 beq _0802A4AC cmp r0, 0x1 bgt _0802A47C cmp r0, 0 beq _0802A482 b _0802A520 .pool _0802A47C: cmp r0, 0x2 beq _0802A4F4 b _0802A520 _0802A482: ldr r4, =gUnknown_082F7BEC adds r0, r4, 0 bl AddWindow ldr r1, [r5] ldr r2, =0x00003008 adds r1, r2 strb r0, [r1] ldr r0, [r5] adds r0, r2 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r4, 0 bl sub_8029174 b _0802A510 .pool _0802A4AC: ldr r4, =0x00003008 adds r0, r2, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, r4 ldrb r0, [r0] ldr r2, =gText_CommunicationStandby3 movs r1, 0x5 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r5] ldr r0, =0x00003014 adds r1, r0 b _0802A514 .pool _0802A4F4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A50A ldr r0, [r5] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A50A: movs r0, 0 bl CopyBgTilemapBufferToVram _0802A510: ldr r1, [r5] adds r1, r6 _0802A514: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A52C .pool _0802A520: ldr r0, [r5] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] _0802A52C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802A454 thumb_func_start sub_802A534 sub_802A534: @ 802A534 push {r4,r5,lr} sub sp, 0x8 ldr r5, =gUnknown_02022CF8 ldr r0, [r5] ldr r4, =0x00003008 adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl RemoveWindow movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, [r5] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802A534 thumb_func_start sub_802A588 sub_802A588: @ 802A588 push {r4-r7,lr} sub sp, 0xC ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r7, =0x00003014 adds r2, r1, r7 ldrb r5, [r2] adds r6, r0, 0 cmp r5, 0x1 beq _0802A610 cmp r5, 0x1 bgt _0802A5B0 cmp r5, 0 beq _0802A5BA b _0802A6A4 .pool _0802A5B0: cmp r5, 0x2 beq _0802A658 cmp r5, 0x3 beq _0802A684 b _0802A6A4 _0802A5BA: ldr r4, =gUnknown_082F7BE4 adds r0, r4, 0 bl AddWindow ldr r1, [r6] ldr r2, =0x00003008 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, r2 ldrb r0, [r0] bl ClearWindowTilemap adds r0, r4, 0 bl sub_8029174 ldr r1, [r6] adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r6] ldr r2, =0x0000301c adds r1, r0, r2 movs r2, 0 strh r5, [r1] ldr r1, =0x00003020 adds r0, r1 strb r2, [r0] ldr r0, [r6] adds r1, 0x4 adds r0, r1 strb r2, [r0] b _0802A6EA .pool _0802A610: ldr r4, =0x00003008 adds r0, r1, r4 ldrb r0, [r0] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r6] adds r0, r4 ldrb r0, [r0] ldr r2, =gText_SomeoneDroppedOut movs r1, 0x5 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl AddTextPrinterParameterized ldr r0, [r6] adds r0, r4 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r6] ldr r2, =0x00003014 adds r1, r2 b _0802A678 .pool _0802A658: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802A66E ldr r0, [r6] ldr r1, =0x00003008 adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap _0802A66E: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r6] adds r1, r7 _0802A678: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0802A6EA .pool _0802A684: ldr r0, =0x0000301c adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 lsrs r0, 16 cmp r0, 0x77 bls _0802A6EA ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _0802A6EA .pool _0802A6A4: ldr r0, [r6] ldr r1, =0x00003024 adds r0, r1 movs r1, 0x5 strb r1, [r0] ldr r0, [r6] ldr r4, =0x00003008 adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r6] adds r0, r4 ldrb r0, [r0] bl RemoveWindow movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, [r6] movs r2, 0xC0 lsls r2, 6 adds r0, r2 movs r1, 0x1 str r1, [r0] _0802A6EA: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802A588 thumb_func_start unused_0 unused_0: @ 802A6FC push {r4,lr} ldr r4, =gUnknown_02022CF8 ldr r0, [r4] ldr r1, =0x00003004 adds r0, r1 ldrb r0, [r0] bl DestroyTask ldr r0, [r4] movs r1, 0xC0 lsls r1, 6 adds r0, r1 movs r1, 0x1 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end unused_0 thumb_func_start nullsub_16 nullsub_16: @ 802A728 bx lr thumb_func_end nullsub_16 thumb_func_start sub_802A72C sub_802A72C: @ 802A72C push {r4,lr} ldr r2, =gUnknown_02022CF8 ldr r1, [r2] ldr r3, =0x00003014 adds r1, r3 movs r3, 0 strb r3, [r1] ldr r1, [r2] movs r4, 0xC0 lsls r4, 6 adds r2, r1, r4 str r3, [r2] ldr r2, =0x00003028 adds r1, r2 str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802A72C thumb_func_start sub_802A75C sub_802A75C: @ 802A75C ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003028 adds r0, r1 ldr r0, [r0] bx lr .pool thumb_func_end sub_802A75C thumb_func_start sub_802A770 sub_802A770: @ 802A770 push {lr} ldr r0, =gUnknown_02022CF8 ldr r0, [r0] movs r1, 0xC0 lsls r1, 6 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 beq _0802A78C movs r0, 0x1 b _0802A78E .pool _0802A78C: movs r0, 0 _0802A78E: pop {r1} bx r1 thumb_func_end sub_802A770 thumb_func_start sub_802A794 sub_802A794: @ 802A794 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r1, =0x00003024 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_802A794 thumb_func_start sub_802A7A8 sub_802A7A8: @ 802A7A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0802A7CE: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _0802A7CE strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F7BA4 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY bl InitStandardTextBoxWindows bl sub_8197200 movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r4, =gUnknown_02022CF8 ldr r1, [r4] movs r0, 0x3 bl SetBgTilemapBuffer ldr r1, [r4] movs r2, 0x80 lsls r2, 5 adds r1, r2 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] movs r0, 0x80 lsls r0, 6 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802A7A8 thumb_func_start sub_802A8E8 sub_802A8E8: @ 802A8E8 push {lr} sub sp, 0x4 ldr r0, =gUnknown_02022CF8 ldr r0, [r0] ldr r2, =0x00003018 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x5 bhi _0802A982 lsls r0, 2 ldr r1, =_0802A910 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802A910: .4byte _0802A928 .4byte _0802A938 .4byte _0802A93E .4byte _0802A94C .4byte _0802A964 .4byte _0802A972 _0802A928: ldr r0, =gDodrioBerryBgPal1 movs r1, 0 movs r2, 0x40 bl LoadPalette b _0802A98A .pool _0802A938: bl reset_temp_tile_data_buffers b _0802A98A _0802A93E: ldr r1, =gDodrioBerryBgGfx1 movs r0, 0 str r0, [sp] movs r0, 0x3 b _0802A954 .pool _0802A94C: ldr r1, =gDodrioBerryBgGfx2 movs r0, 0 str r0, [sp] movs r0, 0x1 _0802A954: movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _0802A98A .pool _0802A964: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802A98A b _0802A998 _0802A972: movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _0802A98A _0802A982: movs r0, 0 strb r0, [r1] movs r0, 0x1 b _0802A99A _0802A98A: ldr r0, =gUnknown_02022CF8 ldr r1, [r0] ldr r0, =0x00003018 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0802A998: movs r0, 0 _0802A99A: add sp, 0x4 pop {r1} bx r1 .pool thumb_func_end sub_802A8E8 .align 2, 0 @ don't pad with nop