.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80093CC sub_80093CC: @ 80093CC push {lr} bl sub_800B488 bl sub_800E700 bl sub_800BEC0 ldr r1, =0x00008001 cmp r0, r1 beq _080093F4 bl sub_800B4A4 bl sub_80097E8 bl RestoreSerialTimer3IntrHandlers movs r0, 0 b _080093FE .pool _080093F4: bl rfu_REQ_stopMode bl rfu_waitREQComplete movs r0, 0x1 _080093FE: pop {r1} bx r1 thumb_func_end sub_80093CC thumb_func_start sub_8009404 sub_8009404: @ 8009404 push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask pop {r0} bx r0 thumb_func_end sub_8009404 thumb_func_start sub_8009414 sub_8009414: @ 8009414 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r4, [sp, 0x18] lsls r5, 24 lsrs r5, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r7, r3, 24 lsls r4, 16 lsrs r4, 16 ldr r0, =gLinkTestDigitsPal lsls r1, r5, 4 movs r2, 0x20 bl LoadPalette ldr r3, =0x040000d4 ldr r0, =gLinkTestDigitsGfx str r0, [r3] lsls r2, r7, 14 lsls r0, r4, 5 movs r1, 0xC0 lsls r1, 19 adds r0, r1 adds r2, r0 str r2, [r3, 0x4] ldr r0, =0x80000110 str r0, [r3, 0x8] ldr r0, [r3, 0x8] ldr r0, =gUnknown_03003130 str r6, [r0] str r5, [r0, 0x4] str r4, [r0, 0x8] mov r0, r8 cmp r0, 0x2 beq _0800949E cmp r0, 0x2 bgt _08009484 cmp r0, 0x1 beq _0800948C b _080094C0 .pool _08009484: mov r0, r8 cmp r0, 0x3 beq _080094B0 b _080094C0 _0800948C: lsls r1, r6, 8 movs r0, 0x1 orrs r1, r0 lsls r0, r7, 2 orrs r1, r0 movs r0, 0xA bl SetGpuReg b _080094C0 _0800949E: lsls r1, r6, 8 movs r0, 0x1 orrs r1, r0 lsls r0, r7, 2 orrs r1, r0 movs r0, 0xC bl SetGpuReg b _080094C0 _080094B0: lsls r1, r6, 8 movs r0, 0x1 orrs r1, r0 lsls r0, r7, 2 orrs r1, r0 movs r0, 0xE bl SetGpuReg _080094C0: mov r0, r8 lsls r4, r0, 2 adds r0, r4, 0 adds r0, 0x10 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl SetGpuReg adds r4, 0x12 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl SetGpuReg pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8009414 thumb_func_start sub_80094EC sub_80094EC: @ 80094EC push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 adds r6, r1, 0 adds r4, r2, 0 adds r5, r3, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, =gLinkTestDigitsPal mov r2, r8 lsls r1, r2, 4 movs r2, 0x20 bl LoadPalette ldr r2, =0x040000d4 ldr r0, =gLinkTestDigitsGfx str r0, [r2] lsls r0, r5, 14 movs r1, 0xC0 lsls r1, 19 adds r0, r1 str r0, [r2, 0x4] ldr r0, =0x80000110 str r0, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, =gUnknown_03003130 str r4, [r0] mov r1, r8 str r1, [r0, 0x4] movs r1, 0 str r1, [r0, 0x8] ldr r0, =gUnknown_082ED1D0 adds r6, r0 ldrb r0, [r6] lsls r4, 8 lsls r5, 2 orrs r4, r5 adds r1, r4, 0 bl SetGpuReg pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80094EC thumb_func_start sub_8009570 sub_8009570: @ 8009570 push {r4,lr} sub sp, 0x4 bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks ldr r0, =sub_80096BC bl SetVBlankCallback bl sub_800A2E0 ldr r1, =gUnknown_020229C6 ldr r2, =0x00001111 adds r0, r2, 0 strh r0, [r1] bl sub_8009734 ldr r0, =gMain ldrh r0, [r0, 0x24] bl SeedRng movs r4, 0 _080095A0: bl Random ldr r1, =gSaveBlock2Ptr ldr r1, [r1] adds r1, 0xA adds r1, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _080095A0 movs r4, 0 str r4, [sp] movs r0, 0 movs r1, 0x2 movs r2, 0x4 movs r3, 0 bl sub_8009414 movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, =sub_8009404 movs r1, 0 bl CreateTask bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, =gUnknown_03000D60 str r4, [r0] bl sub_8009638 ldr r0, =task00_link_test movs r1, 0 bl CreateTask ldr r0, =c2_08009A8C bl SetMainCallback2 add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8009570 thumb_func_start sub_8009628 sub_8009628: @ 8009628 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_020229CC strh r0, [r1, 0x18] bx lr .pool thumb_func_end sub_8009628 thumb_func_start sub_8009638 sub_8009638: @ 8009638 push {r4,r5,lr} ldr r5, =gUnknown_020229CC ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldrb r2, [r1, 0xA] ldrb r0, [r1, 0xB] lsls r0, 8 orrs r2, r0 ldrb r0, [r1, 0xC] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0xD] lsls r0, 24 orrs r2, r0 str r2, [r5, 0x4] adds r0, r5, 0 adds r0, 0x8 bl StringCopy ldr r0, [r4] ldrb r0, [r0, 0x8] strb r0, [r5, 0x13] ldr r0, =gUnknown_020229C6 ldrh r0, [r0] str r0, [r5, 0x14] ldr r0, =gGameLanguage ldrb r0, [r0] strh r0, [r5, 0x1A] ldr r0, =gGameVersion ldrb r0, [r0] movs r2, 0x80 lsls r2, 7 adds r1, r2, 0 adds r0, r1 strh r0, [r5] movs r0, 0x80 lsls r0, 8 strh r0, [r5, 0x2] bl IsNationalPokedexEnabled strb r0, [r5, 0x10] ldr r0, =0x0000087f bl FlagGet lsls r0, 24 cmp r0, 0 beq _0800969E ldrb r0, [r5, 0x10] movs r1, 0x10 orrs r0, r1 strb r0, [r5, 0x10] _0800969E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8009638 thumb_func_start sub_80096BC sub_80096BC: @ 80096BC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80096BC thumb_func_start sub_80096D0 sub_80096D0: @ 80096D0 push {lr} ldr r3, =gUnknown_020229C4 ldr r1, =gUnknown_03003110 ldr r2, =0x0000efff adds r0, r1, 0 adds r0, 0xE _080096DC: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _080096DC movs r0, 0x1 strb r0, [r3] bl sub_800B594 pop {r0} bx r0 .pool thumb_func_end sub_80096D0 thumb_func_start task02_080097CC task02_080097CC: @ 80096FC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 bne _08009726 ldr r1, =gUnknown_03003144 movs r0, 0x1 strb r0, [r1] adds r0, r2, 0 bl DestroyTask _08009726: pop {r0} bx r0 .pool thumb_func_end task02_080097CC thumb_func_start sub_8009734 sub_8009734: @ 8009734 push {r4-r6,lr} ldr r0, =gLinkVSyncDisabled ldrb r4, [r0] cmp r4, 0 bne _080097A8 bl sub_800B628 bl sub_80096D0 ldr r1, =gUnknown_03003140 ldr r0, =sub_800A824 str r0, [r1] ldr r0, =gUnknown_03002748 strb r4, [r0] ldr r0, =gUnknown_0300306C strb r4, [r0] ldr r0, =gUnknown_030030F8 strb r4, [r0] bl ResetBlockReceivedFlags bl sub_800A2E0 ldr r0, =gUnknown_03000D54 str r4, [r0] ldr r0, =gUnknown_030030E8 strb r4, [r0] ldr r0, =gUnknown_030030E4 strb r4, [r0] ldr r0, =gUnknown_030030F4 strh r4, [r0] ldr r0, =task02_080097CC movs r1, 0x2 bl CreateTask b _080097AC .pool _080097A8: bl sub_800E700 _080097AC: ldr r1, =gReceivedRemoteLinkPlayers movs r0, 0 strb r0, [r1] movs r1, 0 ldr r6, =gUnknown_03003078 movs r2, 0 movs r5, 0x1 ldr r4, =gUnknown_030030F0 ldr r3, =gUnknown_030030EC _080097BE: adds r0, r1, r6 strb r5, [r0] adds r0, r1, r4 strb r2, [r0] adds r0, r1, r3 strb r2, [r0] adds r1, 0x1 cmp r1, 0x3 ble _080097BE pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8009734 thumb_func_start sub_80097E8 sub_80097E8: @ 80097E8 push {r4,lr} ldr r0, =gReceivedRemoteLinkPlayers movs r4, 0 strb r4, [r0] ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _080097FC bl sub_800EDD4 _080097FC: ldr r0, =gUnknown_020229C4 strb r4, [r0] bl sub_800B53C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80097E8 thumb_func_start sub_8009818 sub_8009818: @ 8009818 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, =gUnknown_03000D64 ldr r4, =gUnknown_03000D10 ldrb r0, [r5] ldrh r1, [r4] cmp r0, r1 beq _0800983C ldrh r0, [r4] movs r1, 0x2 movs r2, 0x3 movs r3, 0x2 bl sub_800A6E8 ldrh r0, [r4] strb r0, [r5] _0800983C: movs r5, 0 ldr r7, =gUnknown_03000D20 _08009840: ldr r0, =gUnknown_03000D68 adds r6, r5, r0 lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r4, r0, r7 ldrb r0, [r6] ldrh r1, [r4] cmp r0, r1 beq _08009868 ldrh r0, [r4] adds r2, r5, 0x4 lsls r2, 24 lsrs r2, 24 movs r1, 0x2 movs r3, 0x2 bl sub_800A6E8 ldrh r0, [r4] strb r0, [r6] _08009868: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08009840 bl GetBlockReceivedStatus lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xF bne _080098CE movs r5, 0 ldr r0, =gUnknown_03000D20 mov r9, r0 ldr r1, =0x00000342 mov r8, r1 _08009888: adds r0, r7, 0 asrs r0, r5 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080098C4 lsls r0, r5, 8 ldr r1, =gBlockRecvBuffer adds r0, r1 lsls r4, r5, 1 adds r1, r4, r5 lsls r1, 2 add r1, r9 ldrh r1, [r1, 0x2] bl sub_800A648 ldr r1, =gUnknown_03003148 adds r4, r1 movs r6, 0 strh r0, [r4] adds r0, r5, 0 bl ResetBlockReceivedFlag ldrh r0, [r4] cmp r0, r8 beq _080098C4 ldr r0, =gUnknown_020223BC strb r6, [r0] ldr r0, =gUnknown_020223BD strb r6, [r0] _080098C4: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08009888 _080098CE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8009818 thumb_func_start sub_8009900 sub_8009900: @ 8009900 push {r4,r5,lr} sub sp, 0x4 ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08009916 ldr r1, =gUnknown_03003144 movs r0, 0x1 strb r0, [r1] _08009916: ldrh r1, [r4, 0x2C] movs r5, 0x2 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0800992A ldr r0, =0x02004000 ldr r1, =0x00002004 bl sub_800A2F4 _0800992A: ldrh r1, [r4, 0x2E] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08009946 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08009946: ldrh r1, [r4, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08009956 movs r0, 0x1 bl sub_800B330 _08009956: ldrh r1, [r4, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08009968 movs r0, 0x1 bl TrySavingData _08009968: ldrh r1, [r4, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08009976 bl sub_800AC34 _08009976: ldr r0, =gUnknown_020223BC ldrb r0, [r0] cmp r0, 0 beq _08009996 ldr r2, [r4, 0x24] ldr r0, =gUnknown_03002748 ldrb r1, [r0] ldr r0, =gUnknown_03003140 ldr r0, [r0] cmp r0, 0 bne _08009990 movs r0, 0x10 orrs r1, r0 _08009990: adds r0, r2, 0 bl sub_800A994 _08009996: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8009900 thumb_func_start c2_08009A8C c2_08009A8C: @ 80099BC push {lr} bl sub_8009900 movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_8009818 bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end c2_08009A8C thumb_func_start sub_80099E0 sub_80099E0: @ 80099E0 push {r4,r5,lr} adds r4, r0, 0 ldr r0, =gUnknown_020229C4 ldrb r0, [r0] cmp r0, 0 bne _080099F4 movs r0, 0 b _08009A3C .pool _080099F4: movs r1, 0 ldr r5, =gUnknown_03003084 ldr r3, =gUnknown_03003110 movs r2, 0 _080099FC: lsls r0, r1, 1 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _080099FC ldrh r0, [r4] strh r0, [r5] ldr r0, =gUnknown_030030E0 ldr r0, [r0] movs r1, 0x40 ands r0, r1 cmp r0, 0 beq _08009A38 ldr r0, =0x04000128 ldr r0, [r0] lsls r0, 26 lsrs r0, 30 bl sub_8009AA0 ldr r0, =gUnknown_03003140 ldr r0, [r0] cmp r0, 0 beq _08009A34 bl _call_via_r0 _08009A34: bl sub_800AEB4 _08009A38: ldr r0, =gUnknown_030030E0 ldrh r0, [r0] _08009A3C: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80099E0 thumb_func_start sub_8009A58 sub_8009A58: @ 8009A58 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 movs r5, 0 ldr r1, =gUnknown_03003078 adds r0, r1 strb r5, [r0] movs r4, 0 adds r6, r1, 0 b _08009A78 .pool _08009A70: adds r0, r4, r6 ldrb r0, [r0] adds r5, r0 adds r4, 0x1 _08009A78: bl sub_800ABAC lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _08009A70 cmp r5, 0 bne _08009A94 ldr r1, =gReceivedRemoteLinkPlayers ldrb r0, [r1] cmp r0, 0 bne _08009A94 movs r0, 0x1 strb r0, [r1] _08009A94: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8009A58 thumb_func_start sub_8009AA0 sub_8009AA0: @ 8009AA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0 _08009AAE: ldr r0, =gUnknown_03003020 lsls r1, r6, 1 adds r3, r1, r0 movs r0, 0 strh r0, [r3] lsls r4, r6, 4 ldr r5, =gUnknown_03003090 adds r2, r4, r5 ldrh r0, [r2] mov r12, r1 adds r7, r6, 0x1 str r7, [sp] cmp r0, 0 bne _08009ACC b _08009D6E _08009ACC: ldrh r1, [r2] ldr r0, =0x00005fff cmp r1, r0 bne _08009AD6 b _08009D20 _08009AD6: cmp r1, r0 bgt _08009B24 ldr r0, =0x00004444 cmp r1, r0 bne _08009AE2 b _08009D64 _08009AE2: cmp r1, r0 bgt _08009B10 ldr r0, =0x00002222 cmp r1, r0 beq _08009B68 ldr r0, =0x00002ffe cmp r1, r0 bne _08009AF4 b _08009D28 _08009AF4: b _08009D6E .pool _08009B10: ldr r0, =0x00005555 cmp r1, r0 beq _08009BB8 adds r0, 0x11 cmp r1, r0 beq _08009BB8 b _08009D6E .pool _08009B24: ldr r0, =0x0000bbbb cmp r1, r0 beq _08009BC4 cmp r1, r0 bgt _08009B4C ldr r0, =0x00008888 cmp r1, r0 beq _08009BF0 ldr r0, =0x0000aaaa cmp r1, r0 bne _08009B3C b _08009D38 _08009B3C: b _08009D6E .pool _08009B4C: ldr r0, =0x0000cafe cmp r1, r0 bne _08009B54 b _08009D64 _08009B54: ldr r0, =0x0000cccc cmp r1, r0 bne _08009B5C b _08009D3E _08009B5C: b _08009D6E .pool _08009B68: bl sub_8009638 ldr r0, =gUnknown_03003030 adds r2, r0, 0 adds r2, 0x10 ldr r1, =gUnknown_020229CC ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldr r1, [r1] str r1, [r2] ldr r4, =gASCIIGameFreakInc adds r2, r0, 0 adds r1, r4, 0 ldm r1!, {r5-r7} stm r2!, {r5-r7} ldrh r3, [r1] strh r3, [r2] ldrb r1, [r1, 0x2] strb r1, [r2, 0x2] adds r1, r0, 0 adds r1, 0x2C ldm r4!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldrh r2, [r4] strh r2, [r1] ldrb r2, [r4, 0x2] strb r2, [r1, 0x2] movs r1, 0x3C bl sub_800A2F4 b _08009D6E .pool _08009BB8: ldr r1, =gUnknown_030030E8 movs r0, 0x1 strb r0, [r1] b _08009D6E .pool _08009BC4: mov r7, r12 adds r1, r7, r6 lsls r1, 2 ldr r0, =gUnknown_03000D20 adds r1, r0 movs r2, 0 strh r2, [r1] ldr r0, =gUnknown_03003090 adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1, 0x2] ldr r0, =gUnknown_03003090 adds r0, 0x4 adds r0, r4, r0 ldrh r0, [r0] strb r0, [r1, 0x9] b _08009D6E .pool _08009BF0: mov r3, r12 adds r0, r3, r6 lsls r0, 2 ldr r5, =gUnknown_03000D20 adds r3, r0, r5 ldrh r1, [r3, 0x2] movs r0, 0x80 lsls r0, 1 adds r7, r5, 0 mov r10, r7 cmp r1, r0 bls _08009C40 ldr r0, =0x0201c000 mov r8, r0 movs r2, 0 adds r5, r3, 0 ldr r7, =gUnknown_03003090 adds r3, r4, 0 _08009C14: ldrh r1, [r5] lsrs r1, 1 adds r1, r2 lsls r1, 1 add r1, r8 adds r2, 0x1 lsls r0, r2, 1 adds r0, r3 adds r0, r7 ldrh r0, [r0] strh r0, [r1] lsls r2, 16 lsrs r2, 16 cmp r2, 0x6 bls _08009C14 b _08009C70 .pool _08009C40: movs r2, 0 ldr r1, =gBlockRecvBuffer mov r9, r1 adds r7, r3, 0 ldr r3, =gUnknown_03003090 mov r8, r3 lsls r5, r6, 8 adds r3, r4, 0 _08009C50: ldrh r1, [r7] lsrs r1, 1 adds r1, r2 lsls r1, 1 adds r1, r5 add r1, r9 adds r2, 0x1 lsls r0, r2, 1 adds r0, r3 add r0, r8 ldrh r0, [r0] strh r0, [r1] lsls r2, 16 lsrs r2, 16 cmp r2, 0x6 bls _08009C50 _08009C70: mov r4, r12 adds r1, r4, r6 lsls r1, 2 add r1, r10 ldrh r0, [r1] adds r0, 0xE movs r3, 0 strh r0, [r1] lsls r0, 16 lsrs r0, 16 ldrh r1, [r1, 0x2] cmp r0, r1 bcc _08009D6E ldr r0, =gUnknown_03003078 adds r0, r6, r0 ldrb r0, [r0] cmp r0, 0x1 bne _08009D16 lsls r1, r6, 8 ldr r0, =gBlockRecvBuffer adds r1, r0 mov r8, r1 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 ldr r1, =gLinkPlayers adds r2, r0, r1 adds r1, r2, 0 mov r0, r8 adds r0, 0x10 ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldm r0!, {r4,r5,r7} stm r1!, {r4,r5,r7} ldr r0, [r0] str r0, [r1] ldrb r0, [r2] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08009CCA strb r3, [r2, 0x12] strb r3, [r2, 0x11] strb r3, [r2, 0x10] _08009CCA: adds r0, r2, 0 bl sub_800B524 ldr r5, =gASCIIGameFreakInc mov r0, r8 adds r1, r5, 0 bl strcmp cmp r0, 0 bne _08009CEC mov r0, r8 adds r0, 0x2C adds r1, r5, 0 bl strcmp cmp r0, 0 beq _08009D0C _08009CEC: ldr r0, =c2_800ACD4 bl SetMainCallback2 b _08009D6E .pool _08009D0C: lsls r0, r6, 24 lsrs r0, 24 bl sub_8009A58 b _08009D6E _08009D16: lsls r0, r6, 24 lsrs r0, 24 bl sub_800A588 b _08009D6E _08009D20: ldr r0, =gUnknown_030030F0 b _08009D2A .pool _08009D28: ldr r0, =gUnknown_030030EC _08009D2A: adds r0, r6, r0 movs r1, 0x1 strb r1, [r0] b _08009D6E .pool _08009D38: bl sub_800A418 b _08009D6E _08009D3E: ldr r3, =gUnknown_082ED1A8 ldr r0, =gUnknown_03003090 adds r0, 0x2 adds r0, r4, r0 ldrh r2, [r0] lsls r2, 3 adds r0, r2, r3 ldr r1, [r0] adds r3, 0x4 adds r2, r3 ldrh r2, [r2] movs r0, 0 bl SendBlock b _08009D6E .pool _08009D64: ldr r0, =gUnknown_03003090 adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r3] _08009D6E: ldr r5, [sp] lsls r0, r5, 16 lsrs r6, r0, 16 cmp r6, 0x3 bhi _08009D7A b _08009AAE _08009D7A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8009AA0 thumb_func_start sub_8009D90 sub_8009D90: @ 8009D90 push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, =0x00006666 cmp r2, r0 beq _08009E60 cmp r2, r0 bgt _08009DF0 ldr r0, =0x00004444 cmp r2, r0 beq _08009E4C cmp r2, r0 bgt _08009DCC ldr r0, =0x00002222 cmp r2, r0 beq _08009E38 ldr r0, =0x00002ffe _08009DB2: cmp r2, r0 bne _08009DB8 b _08009EE4 _08009DB8: b _08009F06 .pool _08009DCC: ldr r0, =0x00005566 cmp r2, r0 bne _08009DD4 b _08009EE4 _08009DD4: cmp r2, r0 bgt _08009DE0 subs r0, 0x11 b _08009DB2 .pool _08009DE0: ldr r0, =0x00005fff cmp r2, r0 bne _08009DE8 b _08009ED0 _08009DE8: b _08009F06 .pool _08009DF0: ldr r0, =0x0000aaab cmp r2, r0 beq _08009EA8 cmp r2, r0 bgt _08009E10 ldr r0, =0x00007777 cmp r2, r0 beq _08009E6C ldr r0, =0x0000aaaa b _08009DB2 .pool _08009E10: ldr r0, =0x0000cafe cmp r2, r0 beq _08009EF0 cmp r2, r0 bgt _08009E2C ldr r0, =0x0000bbbb cmp r2, r0 beq _08009E8C b _08009F06 .pool _08009E2C: ldr r0, =0x0000cccc cmp r2, r0 beq _08009EBC b _08009F06 .pool _08009E38: ldr r0, =gUnknown_03003110 strh r2, [r0] ldr r1, =gUnknown_020229C6 ldrh r1, [r1] b _08009F04 .pool _08009E4C: ldr r0, =gUnknown_03003110 strh r2, [r0] ldr r1, =gMain ldrh r1, [r1, 0x2C] b _08009F04 .pool _08009E60: ldr r0, =gUnknown_03003110 movs r1, 0 b _08009F02 .pool _08009E6C: ldr r0, =gUnknown_03003110 strh r2, [r0] movs r1, 0 adds r3, r0, 0 movs r2, 0xEE _08009E76: adds r1, 0x1 lsls r0, r1, 1 adds r0, r3 strh r2, [r0] lsls r1, 24 lsrs r1, 24 cmp r1, 0x4 bls _08009E76 b _08009F06 .pool _08009E8C: ldr r1, =gUnknown_03003110 strh r2, [r1] ldr r2, =gUnknown_03000D10 ldrh r0, [r2, 0x2] strh r0, [r1, 0x2] ldrb r0, [r2, 0x9] adds r0, 0x80 strh r0, [r1, 0x4] b _08009F06 .pool _08009EA8: ldr r0, =gUnknown_03003110 strh r2, [r0] ldr r1, =gScriptItemId ldrh r1, [r1] b _08009F04 .pool _08009EBC: ldr r0, =gUnknown_03003110 strh r2, [r0] ldr r1, =gUnknown_03003150 ldrb r1, [r1] b _08009F04 .pool _08009ED0: ldr r0, =gUnknown_03003110 strh r2, [r0] ldr r1, =gUnknown_030030F4 ldrh r1, [r1] b _08009F04 .pool _08009EE4: ldr r0, =gUnknown_03003110 strh r2, [r0] b _08009F06 .pool _08009EF0: ldr r0, =gUnknown_03005DA8 ldrh r1, [r0] cmp r1, 0 beq _08009F06 ldr r0, =gUnknown_030022B4 ldrb r0, [r0] cmp r0, 0 bne _08009F06 ldr r0, =gUnknown_03003110 _08009F02: strh r2, [r0] _08009F04: strh r1, [r0, 0x2] _08009F06: pop {r0} bx r0 .pool thumb_func_end sub_8009D90 thumb_func_start sub_8009F18 sub_8009F18: @ 8009F18 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08009F26 bl sub_800F804 _08009F26: ldr r1, =gUnknown_03003140 ldr r0, =sub_8009F70 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8009F18 thumb_func_start sub_8009F3C sub_8009F3C: @ 8009F3C push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _08009F50 bl sub_800F7E4 b _08009F6A .pool _08009F50: ldr r0, =gUnknown_03003140 ldr r1, [r0] ldr r0, =sub_8009F70 cmp r1, r0 beq _08009F68 movs r0, 0 b _08009F6A .pool _08009F68: movs r0, 0x1 _08009F6A: pop {r1} bx r1 thumb_func_end sub_8009F3C thumb_func_start sub_8009F70 sub_8009F70: @ 8009F70 push {lr} ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _08009F80 ldr r0, =0x0000cafe bl sub_8009D90 _08009F80: pop {r0} bx r0 .pool thumb_func_end sub_8009F70 thumb_func_start sub_8009F8C sub_8009F8C: @ 8009F8C push {lr} ldr r0, =gLinkVSyncDisabled ldrb r1, [r0] cmp r1, 0 beq _08009FA0 bl Rfu_set_zero b _08009FA4 .pool _08009FA0: ldr r0, =gUnknown_03003140 str r1, [r0] _08009FA4: pop {r0} bx r0 .pool thumb_func_end sub_8009F8C thumb_func_start sub_8009FAC sub_8009FAC: @ 8009FAC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r1, [r0] cmp r1, 0 beq _08009FC0 bl Rfu_set_zero b _08009FC4 .pool _08009FC0: ldr r0, =gUnknown_03003140 str r1, [r0] _08009FC4: pop {r0} bx r0 .pool thumb_func_end sub_8009FAC thumb_func_start GetLinkPlayerCount GetLinkPlayerCount: @ 8009FCC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08009FEC ldr r0, =gUnknown_030030E0 ldr r0, [r0] movs r1, 0x1C ands r0, r1 lsrs r0, 2 b _08009FF4 .pool _08009FEC: bl sub_80104F4 lsls r0, 24 lsrs r0, 24 _08009FF4: pop {r1} bx r1 thumb_func_end GetLinkPlayerCount thumb_func_start sub_8009FF8 sub_8009FF8: @ 8009FF8 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 bl GetLinkPlayerCount lsls r0, 24 lsrs r4, r0, 24 movs r2, 0 cmp r2, r4 bge _0800A030 movs r7, 0xFF ldr r3, =gLinkPlayers _0800A010: ldrh r0, [r3] adds r1, r7, 0 ands r1, r0 cmp r1, r6 beq _0800A01E cmp r1, r5 bne _0800A028 _0800A01E: movs r0, 0x1 b _0800A034 .pool _0800A028: adds r3, 0x1C adds r2, 0x1 cmp r2, r4 blt _0800A010 _0800A030: movs r0, 0x1 negs r0, r0 _0800A034: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8009FF8 thumb_func_start sub_800A03C sub_800A03C: @ 800A03C movs r0, 0x2 bx lr thumb_func_end sub_800A03C thumb_func_start sub_800A040 sub_800A040: @ 800A040 push {lr} bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0800A05A movs r0, 0x2 movs r1, 0x1 bl sub_8009FF8 cmp r0, 0 bge _0800A05E _0800A05A: movs r0, 0 b _0800A060 _0800A05E: movs r0, 0x1 _0800A060: pop {r1} bx r1 thumb_func_end sub_800A040 thumb_func_start sub_800A064 sub_800A064: @ 800A064 push {lr} movs r0, 0x2 movs r1, 0x1 bl sub_8009FF8 cmp r0, 0 bge _0800A076 movs r0, 0 b _0800A078 _0800A076: movs r0, 0x1 _0800A078: pop {r1} bx r1 thumb_func_end sub_800A064 thumb_func_start sub_800A07C sub_800A07C: @ 800A07C push {lr} movs r0, 0x4 movs r1, 0x5 bl sub_8009FF8 adds r2, r0, 0 cmp r2, 0 blt _0800A0A4 ldr r0, =gLinkPlayers lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x1A] cmp r0, 0x1 bne _0800A0A4 movs r0, 0x1 b _0800A0A6 .pool _0800A0A4: movs r0, 0 _0800A0A6: pop {r1} bx r1 thumb_func_end sub_800A07C thumb_func_start sub_800A0AC sub_800A0AC: @ 800A0AC push {lr} ldr r0, =gUnknown_03000D5C movs r1, 0 str r1, [r0] ldr r0, =gUnknown_020229C8 strh r1, [r0] bl sub_8009734 pop {r0} bx r0 .pool thumb_func_end sub_800A0AC thumb_func_start sub_800A0C8 sub_800A0C8: @ 800A0C8 push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 movs r7, 0 ldr r0, =gReceivedRemoteLinkPlayers ldrb r4, [r0] cmp r4, 0x1 beq _0800A0DA b _0800A214 _0800A0DA: bl sub_800ABAC lsls r0, 24 lsrs r0, 24 cmp r5, r0 bgt _0800A0EA cmp r0, r6 ble _0800A0FC _0800A0EA: ldr r1, =gUnknown_03000D5C movs r0, 0x6 str r0, [r1] b _0800A22E .pool _0800A0FC: bl GetLinkPlayerCount lsls r0, 24 cmp r0, 0 bne _0800A10E ldr r0, =gUnknown_0300306C strb r4, [r0] bl sub_80097E8 _0800A10E: movs r6, 0 ldr r4, =gLinkPlayers movs r5, 0 b _0800A134 .pool _0800A120: adds r0, r4, 0 adds r0, 0x14 adds r0, r5, r0 ldr r1, [r0] ldr r0, [r4, 0x14] cmp r1, r0 bne _0800A130 adds r7, 0x1 _0800A130: adds r5, 0x1C adds r6, 0x1 _0800A134: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 blt _0800A120 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r7, r0 bne _0800A1AC ldr r0, =gLinkPlayers ldr r1, [r0, 0x14] ldr r0, =0x00001133 cmp r1, r0 bne _0800A19C bl sub_807A728 cmp r0, 0x1 beq _0800A184 cmp r0, 0x1 bgt _0800A178 cmp r0, 0 beq _0800A19C ldr r3, =gUnknown_03000D5C b _0800A22C .pool _0800A178: cmp r0, 0x2 beq _0800A190 ldr r3, =gUnknown_03000D5C b _0800A22C .pool _0800A184: ldr r1, =gUnknown_03000D5C movs r0, 0x4 b _0800A1A0 .pool _0800A190: ldr r1, =gUnknown_03000D5C movs r0, 0x5 b _0800A1A0 .pool _0800A19C: ldr r1, =gUnknown_03000D5C movs r0, 0x1 _0800A1A0: str r0, [r1] adds r3, r1, 0 b _0800A22C .pool _0800A1AC: ldr r6, =gUnknown_03000D5C movs r0, 0x3 str r0, [r6] ldr r4, =gLinkPlayers bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r4, 0x14 adds r1, r4 ldr r5, [r1] bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r4 ldr r1, [r1] ldr r2, =0x00002266 cmp r5, r2 bne _0800A1EA ldr r0, =0x00002277 cmp r1, r0 beq _0800A1F6 _0800A1EA: ldr r0, =0x00002277 adds r3, r6, 0 cmp r5, r0 bne _0800A22C cmp r1, r2 bne _0800A22C _0800A1F6: ldr r1, =gSpecialVar_0x8005 movs r0, 0x3 strh r0, [r1] ldr r3, =gUnknown_03000D5C b _0800A22C .pool _0800A214: ldr r0, =gUnknown_020229C8 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] lsls r1, 16 movs r0, 0x96 lsls r0, 18 ldr r3, =gUnknown_03000D5C cmp r1, r0 bls _0800A22C movs r0, 0x2 str r0, [r3] _0800A22C: ldrb r0, [r3] _0800A22E: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800A0C8 thumb_func_start sub_800A23C sub_800A23C: @ 800A23C push {r4-r6,lr} movs r6, 0 movs r4, 0 ldr r5, =gLinkPlayers b _0800A26C .pool _0800A24C: lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r1, r5, 0 adds r1, 0x14 adds r0, r1 ldr r1, [r0] ldr r0, [r5, 0x14] cmp r1, r0 bne _0800A266 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0800A266: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0800A26C: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _0800A24C bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 bne _0800A290 movs r2, 0x1 ldr r0, =gUnknown_03000D5C str r2, [r0] b _0800A298 .pool _0800A290: movs r2, 0 ldr r1, =gUnknown_03000D5C movs r0, 0x3 str r0, [r1] _0800A298: adds r0, r2, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_800A23C thumb_func_start GetLinkPlayerTrainerId GetLinkPlayerTrainerId: @ 800A2A4 lsls r0, 24 lsrs r0, 24 ldr r2, =gLinkPlayers lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, 0x4 adds r1, r2 ldr r0, [r1] bx lr .pool thumb_func_end GetLinkPlayerTrainerId thumb_func_start sub_800A2BC sub_800A2BC: @ 800A2BC push {r4,r5,lr} ldr r5, =gLinkPlayers movs r4, 0x4 _0800A2C2: adds r0, r5, 0 movs r1, 0 movs r2, 0x1C bl memset adds r5, 0x1C subs r4, 0x1 cmp r4, 0 bge _0800A2C2 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800A2BC thumb_func_start sub_800A2E0 sub_800A2E0: @ 800A2E0 ldr r1, =gUnknown_03000D10 movs r0, 0 strb r0, [r1, 0x8] strh r0, [r1] strh r0, [r1, 0x2] str r0, [r1, 0x4] bx lr .pool thumb_func_end sub_800A2E0 thumb_func_start sub_800A2F4 sub_800A2F4: @ 800A2F4 push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 ldr r4, =gUnknown_03000D10 ldrb r5, [r4, 0x8] cmp r5, 0 beq _0800A30C movs r0, 0 b _0800A34A .pool _0800A30C: bl GetMultiplayerId strb r0, [r4, 0x9] movs r0, 0x1 strb r0, [r4, 0x8] strh r6, [r4, 0x2] strh r5, [r4] adds r0, 0xFF cmp r6, r0 bls _0800A324 str r7, [r4, 0x4] b _0800A336 _0800A324: ldr r5, =gUnknown_020228C4 cmp r7, r5 beq _0800A334 adds r0, r5, 0 adds r1, r7, 0 adds r2, r6, 0 bl memcpy _0800A334: str r5, [r4, 0x4] _0800A336: ldr r0, =0x0000bbbb bl sub_8009D90 ldr r1, =gUnknown_03003140 ldr r0, =sub_800A364 str r0, [r1] ldr r1, =gUnknown_03000D50 movs r0, 0 str r0, [r1] movs r0, 0x1 _0800A34A: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800A2F4 thumb_func_start sub_800A364 sub_800A364: @ 800A364 push {lr} ldr r1, =gUnknown_03000D50 ldr r0, [r1] adds r0, 0x1 str r0, [r1] cmp r0, 0x2 bls _0800A378 ldr r1, =gUnknown_03003140 ldr r0, =sub_800A388 str r0, [r1] _0800A378: pop {r0} bx r0 .pool thumb_func_end sub_800A364 thumb_func_start sub_800A388 sub_800A388: @ 800A388 push {r4-r6,lr} ldr r0, =gUnknown_03000D10 ldr r5, [r0, 0x4] ldr r2, =gUnknown_03003110 ldr r1, =0x00008888 strh r1, [r2] movs r3, 0 adds r4, r0, 0 adds r6, r4, 0 adds r2, 0x2 _0800A39C: lsls r0, r3, 1 ldrh r1, [r6] adds r0, r1 adds r0, r5 ldrb r1, [r0, 0x1] lsls r1, 8 ldrb r0, [r0] orrs r0, r1 strh r0, [r2] adds r2, 0x2 adds r3, 0x1 cmp r3, 0x6 ble _0800A39C ldrh r0, [r4] adds r0, 0xE strh r0, [r4] ldrh r1, [r4, 0x2] lsls r0, 16 lsrs r0, 16 cmp r1, r0 bhi _0800A3D0 movs r0, 0 strb r0, [r4, 0x8] ldr r1, =gUnknown_03003140 ldr r0, =sub_800A3EC str r0, [r1] _0800A3D0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800A388 thumb_func_start sub_800A3EC sub_800A3EC: @ 800A3EC ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] bx lr .pool thumb_func_end sub_800A3EC thumb_func_start sub_800A3F8 sub_800A3F8: @ 800A3F8 push {lr} bl GetMultiplayerId ldr r0, =0x00004444 bl sub_8009D90 ldr r1, =gUnknown_020223C0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_800A3F8 thumb_func_start sub_800A418 sub_800A418: @ 800A418 push {lr} ldr r1, =gUnknown_020223C0 movs r0, 0 str r0, [r1] ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 beq _0800A438 bl sub_800F850 b _0800A43E .pool _0800A438: ldr r1, =gUnknown_03003140 ldr r0, =sub_800A3F8 str r0, [r1] _0800A43E: pop {r0} bx r0 .pool thumb_func_end sub_800A418 thumb_func_start sub_800A44C sub_800A44C: @ 800A44C ldr r0, =gUnknown_020223C0 ldr r0, [r0] bx lr .pool thumb_func_end sub_800A44C thumb_func_start sub_800A458 sub_800A458: @ 800A458 push {lr} ldr r0, =0x0000aaaa bl sub_8009D90 pop {r0} bx r0 .pool thumb_func_end sub_800A458 thumb_func_start GetMultiplayerId GetMultiplayerId: @ 800A468 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 beq _0800A484 ldr r0, =0x04000128 ldr r0, [r0] lsls r0, 26 lsrs r0, 30 b _0800A48C .pool _0800A484: bl rfu_get_multiplayer_id lsls r0, 24 lsrs r0, 24 _0800A48C: pop {r1} bx r1 thumb_func_end GetMultiplayerId thumb_func_start bitmask_all_link_players_but_self bitmask_all_link_players_but_self: @ 800A490 push {lr} bl GetMultiplayerId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x1 lsls r0, r1 movs r1, 0xF eors r0, r1 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end bitmask_all_link_players_but_self thumb_func_start SendBlock SendBlock: @ 800A4AC push {lr} adds r3, r1, 0 lsls r2, 16 lsrs r1, r2, 16 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 beq _0800A4C8 adds r0, r3, 0 bl sub_800A2F4 b _0800A4CE .pool _0800A4C8: adds r0, r3, 0 bl sub_800FE84 _0800A4CE: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end SendBlock thumb_func_start sub_800A4D8 sub_800A4D8: @ 800A4D8 push {lr} lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800A4F8 adds r0, r1, 0 bl sub_8010100 lsls r0, 24 lsrs r0, 24 b _0800A514 .pool _0800A4F8: ldr r0, =gUnknown_03003140 ldr r0, [r0] cmp r0, 0 beq _0800A508 movs r0, 0 b _0800A514 .pool _0800A508: ldr r0, =gUnknown_03003150 strb r2, [r0] ldr r0, =0x0000cccc bl sub_8009D90 movs r0, 0x1 _0800A514: pop {r1} bx r1 .pool thumb_func_end sub_800A4D8 thumb_func_start sub_800A520 sub_800A520: @ 800A520 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800A538 bl sub_8010500 lsls r0, 24 lsrs r0, 24 b _0800A546 .pool _0800A538: movs r1, 0 ldr r0, =gUnknown_03003140 ldr r0, [r0] cmp r0, 0 bne _0800A544 movs r1, 0x1 _0800A544: adds r0, r1, 0 _0800A546: pop {r1} bx r1 .pool thumb_func_end sub_800A520 thumb_func_start GetBlockReceivedStatus GetBlockReceivedStatus: @ 800A550 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 beq _0800A57C ldr r2, =gUnknown_0300307C ldrb r0, [r2, 0x3] lsls r0, 3 ldrb r1, [r2, 0x2] lsls r1, 2 orrs r0, r1 ldrb r1, [r2, 0x1] lsls r1, 1 orrs r0, r1 ldrb r1, [r2] orrs r0, r1 b _0800A580 .pool _0800A57C: bl sub_800FCD8 _0800A580: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end GetBlockReceivedStatus thumb_func_start sub_800A588 sub_800A588: @ 800A588 push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800A5A4 adds r0, r1, 0 bl sub_800F6FC b _0800A5AC .pool _0800A5A4: ldr r0, =gUnknown_0300307C adds r0, r1, r0 movs r1, 0x1 strb r1, [r0] _0800A5AC: pop {r0} bx r0 .pool thumb_func_end sub_800A588 thumb_func_start ResetBlockReceivedFlags ResetBlockReceivedFlags: @ 800A5B4 push {r4,lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800A5D4 movs r4, 0 _0800A5C0: lsls r0, r4, 24 lsrs r0, 24 bl sub_800F728 adds r4, 0x1 cmp r4, 0x4 ble _0800A5C0 b _0800A5E2 .pool _0800A5D4: ldr r1, =gUnknown_0300307C movs r2, 0 adds r0, r1, 0x3 _0800A5DA: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _0800A5DA _0800A5E2: pop {r4} pop {r0} bx r0 .pool thumb_func_end ResetBlockReceivedFlags thumb_func_start ResetBlockReceivedFlag ResetBlockReceivedFlag: @ 800A5EC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800A608 adds r0, r1, 0 bl sub_800F728 b _0800A616 .pool _0800A608: ldr r0, =gUnknown_0300307C adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0800A616 movs r0, 0 strb r0, [r1] _0800A616: pop {r0} bx r0 .pool thumb_func_end ResetBlockReceivedFlag thumb_func_start sub_800A620 sub_800A620: @ 800A620 push {lr} ldr r0, =gUnknown_030030E0 ldr r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0800A63C movs r0, 0x1C ands r1, r0 cmp r1, 0x4 bls _0800A63C ldr r1, =gUnknown_03003144 movs r0, 0x1 strb r0, [r1] _0800A63C: pop {r0} bx r0 .pool thumb_func_end sub_800A620 thumb_func_start sub_800A648 sub_800A648: @ 800A648 push {r4,lr} adds r4, r0, 0 lsls r1, 16 movs r3, 0 movs r2, 0 lsrs r1, 17 cmp r3, r1 bcs _0800A66E _0800A658: lsls r0, r2, 1 adds r0, r4 ldrh r0, [r0] adds r0, r3, r0 lsls r0, 16 lsrs r3, r0, 16 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r1 bcc _0800A658 _0800A66E: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_800A648 thumb_func_start sub_800A678 sub_800A678: @ 800A678 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 ldr r4, =gUnknown_03003130 ldr r3, [r4] lsls r3, 11 movs r5, 0xC0 lsls r5, 19 adds r3, r5 lsrs r2, 19 adds r2, r1 lsls r2, 1 adds r2, r3 ldr r3, [r4, 0x4] lsls r3, 12 ldr r1, [r4, 0x8] adds r1, 0x1 adds r0, r1 orrs r3, r0 strh r3, [r2] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800A678 thumb_func_start sub_800A6B0 sub_800A6B0: @ 800A6B0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 ldr r4, =gUnknown_03003130 ldr r3, [r4] lsls r3, 11 movs r5, 0xC0 lsls r5, 19 adds r3, r5 lsrs r2, 19 adds r2, r1 lsls r2, 1 adds r2, r3 ldr r3, [r4, 0x4] lsls r3, 12 ldr r1, [r4, 0x8] adds r1, r0 orrs r3, r1 strh r3, [r2] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800A6B0 thumb_func_start sub_800A6E8 sub_800A6E8: @ 800A6E8 push {r4-r7,lr} sub sp, 0x10 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 movs r4, 0 cmp r4, r3 bge _0800A714 movs r2, 0xF _0800A702: mov r0, sp adds r1, r0, r4 adds r0, r5, 0 ands r0, r2 strb r0, [r1] lsrs r5, 4 adds r4, 0x1 cmp r4, r3 blt _0800A702 _0800A714: subs r4, r3, 0x1 cmp r4, 0 blt _0800A734 _0800A71A: mov r1, sp adds r0, r1, r4 ldrb r0, [r0] adds r1, r6, 0 adds r2, r7, 0 bl sub_800A678 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 subs r4, 0x1 cmp r4, 0 bge _0800A71A _0800A734: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800A6E8 thumb_func_start sub_800A73C sub_800A73C: @ 800A73C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 movs r0, 0x1 negs r0, r0 str r0, [sp, 0x10] cmp r6, 0 bge _0800A768 str r7, [sp, 0x10] negs r6, r6 _0800A768: movs r5, 0 movs r1, 0x1 negs r1, r1 add r1, r8 mov r10, r1 cmp r5, r8 bge _0800A794 _0800A776: mov r0, sp adds r4, r0, r5 adds r0, r6, 0 movs r1, 0xA bl __modsi3 strb r0, [r4] adds r0, r6, 0 movs r1, 0xA bl __divsi3 adds r6, r0, 0 adds r5, 0x1 cmp r5, r8 blt _0800A776 _0800A794: mov r5, r10 cmp r5, 0 blt _0800A7B4 _0800A79A: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] adds r1, r7, 0 mov r2, r9 bl sub_800A678 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 subs r5, 0x1 cmp r5, 0 bge _0800A79A _0800A7B4: movs r0, 0x1 negs r0, r0 ldr r1, [sp, 0x10] cmp r1, r0 beq _0800A7CA lsls r1, 24 lsrs r1, 24 movs r0, 0xA mov r2, r9 bl sub_800A678 _0800A7CA: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800A73C thumb_func_start sub_800A7DC sub_800A7DC: @ 800A7DC push {r4-r7,lr} adds r3, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 movs r6, 0 ldrb r0, [r3] cmp r0, 0 beq _0800A81C adds r4, r3, 0 lsls r5, r2, 24 _0800A7F4: ldrb r0, [r4] cmp r0, 0xA bne _0800A804 movs r0, 0x80 lsls r0, 17 adds r5, r0 movs r6, 0 b _0800A814 _0800A804: ldrb r0, [r4] adds r1, r7, r6 lsls r1, 24 lsrs r1, 24 lsrs r2, r5, 24 bl sub_800A6B0 adds r6, 0x1 _0800A814: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0 bne _0800A7F4 _0800A81C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800A7DC thumb_func_start sub_800A824 sub_800A824: @ 800A824 push {lr} ldr r0, =gUnknown_030030E0 ldr r0, [r0] movs r1, 0x20 ands r0, r1 cmp r0, 0 _0800A830: beq _0800A838 ldr r0, =0x00002222 bl sub_8009D90 _0800A838: ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_800A824 thumb_func_start task00_link_test task00_link_test: @ 800A850 push {r4-r6,lr} sub sp, 0x20 ldr r1, =gASCIITestPrint mov r0, sp bl strcpy mov r0, sp movs r1, 0x5 movs r2, 0x2 bl sub_800A7DC ldr r0, =gUnknown_03003144 ldrb r0, [r0] movs r1, 0x2 movs r2, 0x1 movs r3, 0x2 bl sub_800A6E8 ldr r4, =gUnknown_030030E0 ldr r0, [r4] movs r1, 0xF movs r2, 0x1 movs r3, 0x8 bl sub_800A6E8 ldr r0, =gUnknown_03003170 ldrb r0, [r0, 0x1] movs r1, 0x2 movs r2, 0xA movs r3, 0x2 bl sub_800A6E8 ldr r0, [r4] movs r1, 0x1C ands r0, r1 lsrs r0, 2 movs r1, 0xF movs r2, 0xA movs r3, 0x2 bl sub_800A6E8 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 movs r1, 0xF movs r2, 0xC movs r3, 0x2 bl sub_800A6E8 ldr r0, =gUnknown_03003160 ldrb r0, [r0] movs r1, 0x19 movs r2, 0x1 movs r3, 0x2 bl sub_800A6E8 ldr r0, =gUnknown_03004130 ldrb r0, [r0] movs r1, 0x19 movs r2, 0x2 movs r3, 0x2 bl sub_800A6E8 bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 movs r1, 0xF movs r2, 0x5 movs r3, 0x2 bl sub_800A6E8 ldr r0, =gUnknown_0300302C ldr r0, [r0] movs r1, 0x2 movs r2, 0xC movs r3, 0x8 bl sub_800A6E8 ldr r0, =gUnknown_03003070 ldr r0, [r0] movs r1, 0x2 movs r2, 0xD movs r3, 0x8 bl sub_800A6E8 bl sub_800B2E8 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0x5 movs r3, 0x1 bl sub_800A6E8 bl sub_800B2F8 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0x6 movs r3, 0x1 bl sub_800A6E8 bl sub_800B320 lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0x7 movs r3, 0x1 bl sub_800A6E8 bl sub_800B33C lsls r0, 24 lsrs r0, 24 movs r1, 0x19 movs r2, 0x8 movs r3, 0x1 bl sub_800A6E8 movs r6, 0 movs r5, 0x80 lsls r5, 19 ldr r4, =gUnknown_03003148 _0800A94E: ldrh r0, [r4] lsrs r2, r5, 24 movs r1, 0xA movs r3, 0x4 bl sub_800A6E8 movs r0, 0x80 lsls r0, 17 adds r5, r0 adds r4, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _0800A94E add sp, 0x20 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end task00_link_test thumb_func_start sub_800A994 sub_800A994: @ 800A994 ldr r2, =gUnknown_0300302C str r0, [r2] ldr r0, =gUnknown_03003070 str r1, [r0] bx lr .pool thumb_func_end sub_800A994 thumb_func_start sub_800A9A8 sub_800A9A8: @ 800A9A8 push {r4,lr} movs r1, 0 movs r2, 0 ldr r0, =gUnknown_03003100 ldrb r0, [r0] cmp r1, r0 bge _0800A9CA movs r4, 0x1 adds r3, r0, 0 _0800A9BA: adds r0, r4, 0 lsls r0, r2 orrs r1, r0 lsls r0, r1, 24 lsrs r1, r0, 24 adds r2, 0x1 cmp r2, r3 blt _0800A9BA _0800A9CA: adds r0, r1, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_800A9A8 thumb_func_start sub_800A9D8 sub_800A9D8: @ 800A9D8 push {r4-r6,lr} movs r4, 0 movs r5, 0 movs r6, 0x1 b _0800A9EE _0800A9E2: adds r0, r6, 0 lsls r0, r5 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 adds r5, 0x1 _0800A9EE: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 blt _0800A9E2 adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800A9D8 thumb_func_start sub_800AA04 sub_800AA04: @ 800AA04 push {r4-r7,lr} ldr r1, =gUnknown_03003100 strb r0, [r1] bl GetMultiplayerId ldr r1, =gUnknown_03003120 strb r0, [r1] ldr r4, =gLinkPlayers ldr r3, =gUnknown_02022A74 movs r2, 0x4 _0800AA18: adds r0, r3, 0 adds r1, r4, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r1] str r1, [r0] adds r4, 0x1C adds r3, 0x1C subs r2, 0x1 cmp r2, 0 bge _0800AA18 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800AA04 thumb_func_start sub_800AA48 sub_800AA48: @ 800AA48 ldr r0, =gUnknown_03003100 ldrb r0, [r0] bx lr .pool thumb_func_end sub_800AA48 thumb_func_start sub_800AA54 sub_800AA54: @ 800AA54 ldr r0, =gUnknown_03003120 ldrb r0, [r0] bx lr .pool thumb_func_end sub_800AA54 thumb_func_start sub_800AA60 sub_800AA60: @ 800AA60 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r3, 0 ldr r0, =gUnknown_03003100 ldrb r1, [r0] mov r9, r0 cmp r3, r1 bge _0800AAB4 ldr r0, =gLinkPlayers mov r12, r0 ldr r0, =gUnknown_02022A74 ldr r2, =0x00002288 mov r8, r2 ldr r7, =gUnknown_020229C6 mov r6, r12 adds r6, 0x14 adds r5, r0, 0x4 movs r4, 0 adds r2, r1, 0 _0800AA8A: mov r0, r12 adds r0, 0x4 adds r0, r4, r0 ldr r1, [r0] ldr r0, [r5] cmp r1, r0 bne _0800AAA8 ldrh r0, [r7] cmp r0, r8 bne _0800AAA6 adds r1, r0, 0 ldr r0, [r6] cmp r1, r0 bne _0800AAA8 _0800AAA6: adds r3, 0x1 _0800AAA8: adds r6, 0x1C adds r5, 0x1C adds r4, 0x1C subs r2, 0x1 cmp r2, 0 bne _0800AA8A _0800AAB4: mov r0, r9 ldrb r0, [r0] cmp r3, r0 bne _0800AAE4 bl sub_800ABAC lsls r0, 24 lsrs r0, 24 mov r1, r9 ldrb r1, [r1] cmp r0, r1 bne _0800AAE4 movs r0, 0x1 b _0800AAE6 .pool _0800AAE4: movs r0, 0 _0800AAE6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800AA60 thumb_func_start sub_800AAF4 sub_800AAF4: @ 800AAF4 push {r4,r5,lr} ldr r5, =gUnknown_02022A74 movs r4, 0x3 _0800AAFA: adds r0, r5, 0 movs r1, 0 movs r2, 0x1C bl CpuSet adds r5, 0x1C subs r4, 0x1 cmp r4, 0 bge _0800AAFA pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800AAF4 thumb_func_start sub_800AB18 sub_800AB18: @ 800AB18 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 ldr r0, =gUnknown_03003100 ldrb r0, [r0] cmp r4, r0 bcs _0800AB78 ldr r6, =gUnknown_02022A74 ldr r5, =gLinkPlayers movs r0, 0x8 adds r0, r6 mov r8, r0 adds r7, r5, 0 adds r7, 0x8 _0800AB36: lsls r0, r4, 3 subs r0, r4 lsls r2, r0, 2 adds r1, r6, 0x4 adds r1, r2, r1 adds r0, r5, 0x4 adds r0, r2, r0 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 bne _0800AB5A mov r1, r8 adds r0, r2, r1 adds r1, r2, r7 bl StringCompare cmp r0, 0 beq _0800AB6A _0800AB5A: ldr r1, =gUnknown_0300306C movs r0, 0x1 strb r0, [r1] bl sub_80097E8 ldr r0, =c2_800ACD4 bl SetMainCallback2 _0800AB6A: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_03003100 ldrb r0, [r0] cmp r4, r0 bcc _0800AB36 _0800AB78: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800AB18 thumb_func_start sub_800AB98 sub_800AB98: @ 800AB98 ldr r0, =gUnknown_03003100 movs r1, 0 strb r1, [r0] ldr r0, =gUnknown_03003120 strb r1, [r0] bx lr .pool thumb_func_end sub_800AB98 thumb_func_start sub_800ABAC sub_800ABAC: @ 800ABAC ldr r0, =gUnknown_030030E0 ldr r0, [r0] movs r1, 0x1C ands r0, r1 lsrs r0, 2 bx lr .pool thumb_func_end sub_800ABAC thumb_func_start sub_800ABBC sub_800ABBC: @ 800ABBC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0800ABDC ldr r0, =gUnknown_030030E0 ldr r0, [r0] lsrs r0, 5 movs r1, 0x1 ands r0, r1 b _0800ABE4 .pool _0800ABDC: bl sub_8011AB0 lsls r0, 24 lsrs r0, 24 _0800ABE4: pop {r1} bx r1 thumb_func_end sub_800ABBC thumb_func_start sub_800ABE8 sub_800ABE8: @ 800ABE8 ldr r0, =gUnknown_03000D58 ldrb r0, [r0] bx lr .pool thumb_func_end sub_800ABE8 thumb_func_start sub_800ABF4 sub_800ABF4: @ 800ABF4 push {lr} lsls r0, 16 lsrs r3, r0, 16 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800AC0C bl task_add_05_task_del_08FA224_when_no_RfuFunc b _0800AC20 .pool _0800AC0C: ldr r2, =gUnknown_03003140 ldr r1, [r2] cmp r1, 0 bne _0800AC20 ldr r0, =sub_800AC80 str r0, [r2] ldr r0, =gUnknown_030030E4 strb r1, [r0] ldr r0, =gUnknown_030030F4 strh r3, [r0] _0800AC20: pop {r0} bx r0 .pool thumb_func_end sub_800ABF4 thumb_func_start sub_800AC34 sub_800AC34: @ 800AC34 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800AC48 bl task_add_05_task_del_08FA224_when_no_RfuFunc b _0800AC70 .pool _0800AC48: ldr r2, =gUnknown_03003140 ldr r1, [r2] cmp r1, 0 beq _0800AC64 ldr r1, =gUnknown_02022B08 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0800AC70 .pool _0800AC64: ldr r0, =sub_800AC80 str r0, [r2] ldr r0, =gUnknown_030030E4 strb r1, [r0] ldr r0, =gUnknown_030030F4 strh r1, [r0] _0800AC70: pop {r0} bx r0 .pool thumb_func_end sub_800AC34 thumb_func_start sub_800AC80 sub_800AC80: @ 800AC80 push {lr} ldr r0, =gUnknown_03004130 ldrb r0, [r0] cmp r0, 0 bne _0800AC96 ldr r0, =0x00005fff bl sub_8009D90 ldr r1, =gUnknown_03003140 ldr r0, =sub_800ACAC str r0, [r1] _0800AC96: pop {r0} bx r0 .pool thumb_func_end sub_800AC80 thumb_func_start sub_800ACAC sub_800ACAC: @ 800ACAC push {r4,lr} bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r3, 0 movs r1, 0 cmp r3, r2 bge _0800ACD0 ldr r4, =gUnknown_030030F0 _0800ACC0: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _0800ACCA adds r3, 0x1 _0800ACCA: adds r1, 0x1 cmp r1, r2 blt _0800ACC0 _0800ACD0: cmp r3, r2 bne _0800ACF4 ldr r2, =gBattleTypeFlags ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] ldr r0, =gUnknown_03002748 movs r4, 0x1 strb r4, [r0] bl sub_80097E8 ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] ldr r0, =gUnknown_030030E4 strb r4, [r0] _0800ACF4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800ACAC thumb_func_start sub_800AD10 sub_800AD10: @ 800AD10 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800AD24 bl task_add_05_task_del_08FA224_when_no_RfuFunc b _0800AD4C .pool _0800AD24: ldr r2, =gUnknown_03003140 ldr r1, [r2] cmp r1, 0 beq _0800AD40 ldr r1, =gUnknown_02022B08 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _0800AD4C .pool _0800AD40: ldr r0, =sub_800AD5C str r0, [r2] ldr r0, =gUnknown_030030E4 strb r1, [r0] ldr r0, =gUnknown_030030F4 strh r1, [r0] _0800AD4C: pop {r0} bx r0 .pool thumb_func_end sub_800AD10 thumb_func_start sub_800AD5C sub_800AD5C: @ 800AD5C push {lr} ldr r0, =gUnknown_03004130 ldrb r0, [r0] cmp r0, 0 bne _0800AD72 ldr r0, =0x00005fff bl sub_8009D90 ldr r1, =gUnknown_03003140 ldr r0, =sub_800AD88 str r0, [r1] _0800AD72: pop {r0} bx r0 .pool thumb_func_end sub_800AD5C thumb_func_start sub_800AD88 sub_800AD88: @ 800AD88 push {r4,r5,lr} bl GetLinkPlayerCount lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 movs r2, 0 cmp r1, r3 bge _0800ADB6 ldr r5, =gUnknown_030030F0 ldr r4, =gLinkPlayers _0800AD9E: ldrh r0, [r4, 0x1A] cmp r0, 0x1 beq _0800ADAC adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 beq _0800ADAE _0800ADAC: adds r1, 0x1 _0800ADAE: adds r4, 0x1C adds r2, 0x1 cmp r2, r3 blt _0800AD9E _0800ADB6: cmp r1, r3 bne _0800ADDA ldr r2, =gBattleTypeFlags ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] ldr r0, =gUnknown_03002748 movs r4, 0x1 strb r4, [r0] bl sub_80097E8 ldr r1, =gUnknown_03003140 movs r0, 0 str r0, [r1] ldr r0, =gUnknown_030030E4 strb r4, [r0] _0800ADDA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800AD88 thumb_func_start sub_800ADF8 sub_800ADF8: @ 800ADF8 push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x1 bne _0800AE0C bl sub_8010434 b _0800AE1E .pool _0800AE0C: ldr r1, =gUnknown_03003140 ldr r0, [r1] cmp r0, 0 bne _0800AE18 ldr r0, =sub_800AE30 str r0, [r1] _0800AE18: ldr r1, =gUnknown_030030E4 movs r0, 0 strb r0, [r1] _0800AE1E: pop {r0} bx r0 .pool thumb_func_end sub_800ADF8 thumb_func_start sub_800AE30 sub_800AE30: @ 800AE30 push {lr} ldr r0, =gUnknown_03004130 ldrb r0, [r0] cmp r0, 0 bne _0800AE46 ldr r0, =0x00002ffe bl sub_8009D90 ldr r1, =gUnknown_03003140 ldr r0, =sub_800AE5C str r0, [r1] _0800AE46: pop {r0} bx r0 .pool thumb_func_end sub_800AE30 thumb_func_start sub_800AE5C sub_800AE5C: @ 800AE5C push {r4,lr} bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 cmp r1, r2 bcs _0800AE86 ldr r3, =gUnknown_030030EC ldrb r0, [r3] cmp r0, 0 beq _0800AE86 _0800AE74: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcs _0800AE86 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0800AE74 _0800AE86: cmp r1, r2 bne _0800AEA4 movs r1, 0 ldr r4, =gUnknown_03003140 ldr r3, =gUnknown_030030EC movs r2, 0 _0800AE92: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _0800AE92 movs r0, 0 str r0, [r4] _0800AEA4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800AE5C thumb_func_start sub_800AEB4 sub_800AEB4: @ 800AEB4 push {lr} ldr r0, =gUnknown_020229C4 ldrb r0, [r0] cmp r0, 0 beq _0800AEF4 ldr r0, =gUnknown_030030E0 ldr r2, [r0] movs r0, 0xFE lsls r0, 11 ands r0, r2 cmp r0, 0 beq _0800AEF4 ldr r0, =gUnknown_030030F8 ldrb r0, [r0] cmp r0, 0 bne _0800AEEA ldr r1, =gUnknown_02022B00 str r2, [r1] ldr r0, =gUnknown_03004130 ldrb r0, [r0] strb r0, [r1, 0x4] ldr r0, =gUnknown_03003160 ldrb r0, [r0] strb r0, [r1, 0x5] ldr r0, =c2_800ACD4 bl SetMainCallback2 _0800AEEA: ldr r1, =gUnknown_0300306C movs r0, 0x1 strb r0, [r1] bl sub_80097E8 _0800AEF4: pop {r0} bx r0 .pool thumb_func_end sub_800AEB4 thumb_func_start sub_800AF18 sub_800AF18: @ 800AF18 push {r4,lr} ldr r4, =gUnknown_02022B00 str r0, [r4] strb r1, [r4, 0x5] strb r2, [r4, 0x4] strb r3, [r4, 0x6] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800AF18 thumb_func_start c2_800ACD4 c2_800ACD4: @ 800AF30 push {r4,lr} movs r0, 0 movs r1, 0 bl SetGpuReg ldr r0, =gMPlay_SE1 bl m4aMPlayStop ldr r0, =gMPlay_SE2 bl m4aMPlayStop ldr r0, =gMPlay_SE3 bl m4aMPlayStop ldr r0, =0x02000000 movs r1, 0xE0 lsls r1, 9 bl InitHeap bl ResetSpriteData bl FreeAllSpritePalettes bl ResetPaletteFadeControl movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette bl ResetTasks bl remove_some_task ldr r1, =gLinkVSyncDisabled ldrb r0, [r1] cmp r0, 0 beq _0800AF8C ldr r0, =gUnknown_02022B00 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0800AF88 movs r0, 0x3 strb r0, [r1] _0800AF88: bl sub_800E604 _0800AF8C: ldr r0, =sub_80096BC bl SetVBlankCallback movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082ED1FC movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates ldr r4, =gUnknown_02022B0C movs r0, 0x80 lsls r0, 4 bl Alloc adds r1, r0, 0 str r1, [r4] movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, =gUnknown_082ED204 bl InitWindows lsls r0, 16 cmp r0, 0 beq _0800B03C bl DeactivateAllTextPrinters bl reset_temp_tile_data_buffers movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r1, 0xE0 lsls r1, 8 movs r0, 0 bl ClearGpuRegBits ldr r0, =gUnknown_0860F074 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r1, =gSoftResetDisabled movs r0, 0 strb r0, [r1] ldr r0, =sub_8009404 movs r1, 0 bl CreateTask bl StopMapMusic ldr r1, =gMain movs r0, 0 str r0, [r1] bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade ldr r0, =sub_800B1A0 bl SetMainCallback2 _0800B03C: pop {r4} pop {r0} bx r0 .pool thumb_func_end c2_800ACD4 thumb_func_start sub_800B080 sub_800B080: @ 800B080 push {r4,r5,lr} sub sp, 0xC ldr r1, =g2BlankTilesGfx movs r0, 0 movs r2, 0x20 movs r3, 0 bl LoadBgTiles ldr r1, =gWirelessLinkDisplayGfx movs r5, 0 str r5, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gWirelessLinkDisplayTilemap movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r0, =gWirelessLinkDisplayPal movs r1, 0 movs r2, 0x20 bl LoadPalette movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r4, =gUnknown_082ED224 str r4, [sp] str r5, [sp, 0x4] ldr r0, =gText_CommErrorEllipsis str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x6 bl box_print str r4, [sp] str r5, [sp, 0x4] ldr r0, =gText_MoveCloserToLinkPartner str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x3 movs r2, 0x2 movs r3, 0x1 bl box_print movs r0, 0 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0 movs r1, 0 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800B080 thumb_func_start sub_800B138 sub_800B138: @ 800B138 push {lr} sub sp, 0xC ldr r1, =g2BlankTilesGfx movs r0, 0 movs r2, 0x20 movs r3, 0 bl LoadBgTiles movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_082ED224 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r0, =gText_CommErrorCheckConnections str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x3 movs r2, 0x2 movs r3, 0 bl box_print movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0x1 movs r1, 0 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_800B138 thumb_func_start sub_800B1A0 sub_800B1A0: @ 800B1A0 push {r4,lr} sub sp, 0xC ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1E beq _0800B20C cmp r0, 0x1E bgt _0800B1C4 cmp r0, 0 beq _0800B1D8 cmp r0, 0x2 beq _0800B1F2 b _0800B260 .pool _0800B1C4: cmp r0, 0x5A beq _0800B20C cmp r0, 0x5A bgt _0800B1D2 cmp r0, 0x3C beq _0800B20C b _0800B260 _0800B1D2: cmp r0, 0x82 beq _0800B214 b _0800B260 _0800B1D8: ldr r0, =gUnknown_02022B00 ldrb r0, [r0, 0x6] cmp r0, 0 beq _0800B1EC bl sub_800B080 b _0800B260 .pool _0800B1EC: bl sub_800B138 b _0800B260 _0800B1F2: movs r0, 0 bl ShowBg ldr r0, =gUnknown_02022B00 ldrb r0, [r0, 0x6] cmp r0, 0 beq _0800B260 movs r0, 0x1 bl ShowBg b _0800B260 .pool _0800B20C: movs r0, 0x16 bl PlaySE b _0800B260 _0800B214: ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0x2 bne _0800B244 ldr r0, =gUnknown_082ED224 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r0, =gText_ABtnTitleScreen str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 bl box_print b _0800B260 .pool _0800B244: cmp r0, 0x1 bne _0800B260 ldr r0, =gUnknown_082ED224 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r0, =gText_ABtnRegistrationCounter str r0, [sp, 0x8] movs r0, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0x14 bl box_print _0800B260: ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r0, r2 ldrb r1, [r1] cmp r1, 0xA0 bne _0800B2D0 ldr r4, =gLinkVSyncDisabled ldrb r2, [r4] cmp r2, 0x1 bne _0800B2A8 ldrh r0, [r0, 0x2E] ands r2, r0 cmp r2, 0 beq _0800B2C2 movs r0, 0x15 bl PlaySE movs r0, 0 strb r0, [r4] ldr r1, =gUnknown_02022B00 movs r0, 0 strb r0, [r1, 0x6] bl sub_81700F8 b _0800B2C2 .pool _0800B2A8: cmp r2, 0x2 bne _0800B2C2 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800B2C2 bl rfu_REQ_stopMode bl rfu_waitREQComplete bl DoSoftReset _0800B2C2: ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r0, r2 ldrb r1, [r1] cmp r1, 0xA0 beq _0800B2DC _0800B2D0: movs r2, 0x87 lsls r2, 3 adds r1, r0, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0800B2DC: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800B1A0 thumb_func_start sub_800B2E8 sub_800B2E8: @ 800B2E8 ldr r0, =0x04000128 ldrh r0, [r0] lsrs r0, 2 movs r1, 0x1 ands r0, r1 bx lr .pool thumb_func_end sub_800B2E8 thumb_func_start sub_800B2F8 sub_800B2F8: @ 800B2F8 push {lr} movs r3, 0 ldr r2, =0x04000128 ldrh r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _0800B314 ldrh r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _0800B314 movs r3, 0x1 _0800B314: adds r0, r3, 0 pop {r1} bx r1 .pool thumb_func_end sub_800B2F8 thumb_func_start sub_800B320 sub_800B320: @ 800B320 ldr r0, =gUnknown_030030E0 ldr r0, [r0] lsrs r0, 6 movs r1, 0x1 ands r0, r1 bx lr .pool thumb_func_end sub_800B320 thumb_func_start sub_800B330 sub_800B330: @ 800B330 ldr r1, =gUnknown_030030F8 strb r0, [r1] bx lr .pool thumb_func_end sub_800B330 thumb_func_start sub_800B33C sub_800B33C: @ 800B33C ldr r0, =gUnknown_0300306C ldrb r0, [r0] bx lr .pool thumb_func_end sub_800B33C thumb_func_start sub_800B348 sub_800B348: @ 800B348 push {r4-r6,lr} bl sub_8009638 ldr r1, =gUnknown_03003030 adds r2, r1, 0 adds r2, 0x10 ldr r0, =gUnknown_020229CC ldm r0!, {r3-r5} stm r2!, {r3-r5} ldm r0!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldr r0, [r0] str r0, [r2] ldr r3, =gASCIIGameFreakInc adds r2, r1, 0 adds r0, r3, 0 ldm r0!, {r4-r6} stm r2!, {r4-r6} ldrh r4, [r0] strh r4, [r2] ldrb r0, [r0, 0x2] strb r0, [r2, 0x2] adds r0, r1, 0 adds r0, 0x2C ldm r3!, {r2,r5,r6} stm r0!, {r2,r5,r6} ldrh r2, [r3] strh r2, [r0] ldrb r2, [r3, 0x2] strb r2, [r0, 0x2] ldr r0, =gUnknown_020228C4 movs r2, 0x3C bl memcpy pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800B348 thumb_func_start sub_800B3A4 sub_800B3A4: @ 800B3A4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r2, r0, 8 ldr r1, =gBlockRecvBuffer adds r4, r2, r1 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 ldr r0, =gLinkPlayers adds r2, r0 adds r1, r2, 0 adds r0, r4, 0 adds r0, 0x10 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldr r0, [r0] str r0, [r1] adds r0, r2, 0 bl sub_800B524 ldr r5, =gASCIIGameFreakInc adds r0, r4, 0 adds r1, r5, 0 bl strcmp cmp r0, 0 bne _0800B3EE adds r0, r4, 0 adds r0, 0x2C adds r1, r5, 0 bl strcmp cmp r0, 0 beq _0800B3F4 _0800B3EE: ldr r0, =c2_800ACD4 bl SetMainCallback2 _0800B3F4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800B3A4 thumb_func_start HandleLinkConnection HandleLinkConnection: @ 800B40C push {r4,r5,lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0800B45C ldr r0, =gUnknown_03003144 ldr r1, =gUnknown_03003110 ldr r2, =gUnknown_03003090 bl sub_800B638 ldr r4, =gUnknown_030030E0 str r0, [r4] ldr r0, =gUnknown_030022EC bl sub_80099E0 ldr r0, [r4] movs r1, 0x80 lsls r1, 1 ands r0, r1 cmp r0, 0 beq _0800B480 bl sub_808766C cmp r0, 0x1 bne _0800B480 _0800B43E: movs r0, 0x1 b _0800B482 .pool _0800B45C: bl sub_8010EC0 adds r4, r0, 0 bl sub_8010F1C adds r5, r0, 0 bl sub_808766C cmp r0, 0x1 bne _0800B480 cmp r4, 0x1 beq _0800B43E bl sub_800F0B8 cmp r0, 0 bne _0800B43E cmp r5, 0 bne _0800B43E _0800B480: movs r0, 0 _0800B482: pop {r4,r5} pop {r1} bx r1 thumb_func_end HandleLinkConnection thumb_func_start sub_800B488 sub_800B488: @ 800B488 push {lr} ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0800B498 ldr r1, =gLinkVSyncDisabled movs r0, 0x1 strb r0, [r1] _0800B498: pop {r0} bx r0 .pool thumb_func_end sub_800B488 thumb_func_start sub_800B4A4 sub_800B4A4: @ 800B4A4 push {lr} ldr r0, =gReceivedRemoteLinkPlayers ldrb r1, [r0] cmp r1, 0 bne _0800B4B2 ldr r0, =gLinkVSyncDisabled strb r1, [r0] _0800B4B2: pop {r0} bx r0 .pool thumb_func_end sub_800B4A4 thumb_func_start sub_800B4C0 sub_800B4C0: @ 800B4C0 push {lr} ldr r0, =gReceivedRemoteLinkPlayers ldrb r1, [r0] cmp r1, 0 bne _0800B4CE ldr r0, =gLinkVSyncDisabled strb r1, [r0] _0800B4CE: pop {r0} bx r0 .pool thumb_func_end sub_800B4C0 thumb_func_start sub_800B4DC sub_800B4DC: @ 800B4DC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0800B4FC ldr r0, =gUnknown_03003170 ldr r1, =0x00000fbd adds r0, r1 ldrb r0, [r0] b _0800B500 .pool _0800B4FC: bl sub_80124D4 _0800B500: pop {r1} bx r1 thumb_func_end sub_800B4DC thumb_func_start sub_800B504 sub_800B504: @ 800B504 push {lr} bl sub_800B4DC cmp r0, 0x2 bhi _0800B512 movs r0, 0 b _0800B514 _0800B512: movs r0, 0x1 _0800B514: pop {r1} bx r1 thumb_func_end sub_800B504 thumb_func_start sub_800B518 sub_800B518: @ 800B518 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] bx lr .pool thumb_func_end sub_800B518 thumb_func_start sub_800B524 sub_800B524: @ 800B524 push {lr} ldrb r1, [r0, 0x10] strb r1, [r0, 0x12] adds r2, r0, 0 adds r2, 0x8 ldrb r1, [r0, 0x1A] adds r0, r2, 0 bl ConvertInternationalString pop {r0} bx r0 thumb_func_end sub_800B524 thumb_func_start sub_800B53C sub_800B53C: @ 800B53C push {lr} sub sp, 0x4 movs r0, 0xC0 bl DisableInterrupts ldr r1, =0x04000128 movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] ldr r0, =0x0400010e movs r2, 0 strh r2, [r0] adds r1, 0xDA movs r0, 0xC0 strh r0, [r1] ldr r0, =0x0400012a strh r2, [r0] ldr r2, =0x04000120 movs r0, 0 movs r1, 0 str r0, [r2] str r1, [r2, 0x4] str r0, [sp] ldr r1, =gUnknown_03003170 ldr r2, =0x050003f0 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_800B53C thumb_func_start sub_800B594 sub_800B594: @ 800B594 push {r4,r5,lr} sub sp, 0x4 movs r0, 0xC0 bl DisableInterrupts ldr r0, =0x04000134 movs r4, 0 strh r4, [r0] ldr r2, =0x04000128 movs r1, 0x80 lsls r1, 6 adds r0, r1, 0 strh r0, [r2] ldrh r0, [r2] ldr r3, =0x00004003 adds r1, r3, 0 orrs r0, r1 strh r0, [r2] movs r0, 0x80 bl EnableInterrupts ldr r0, =0x0400012a strh r4, [r0] movs r5, 0 str r5, [sp] ldr r1, =gUnknown_03003170 ldr r2, =0x050003f0 mov r0, sp bl CpuSet ldr r0, =gUnknown_03000D6C strb r4, [r0] ldr r0, =gUnknown_03000D6E strh r5, [r0] ldr r0, =gUnknown_03000D70 strh r5, [r0] ldr r0, =gUnknown_03000D72 strb r4, [r0] ldr r0, =gUnknown_03000D73 strb r4, [r0] ldr r0, =gUnknown_03003160 strb r4, [r0] ldr r0, =gUnknown_03004130 strb r4, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800B594 thumb_func_start sub_800B628 sub_800B628: @ 800B628 push {lr} bl sub_800B594 bl sub_800B53C pop {r0} bx r0 thumb_func_end sub_800B628 thumb_func_start sub_800B638 sub_800B638: @ 800B638 push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, =gUnknown_03003170 ldrb r0, [r0, 0x1] cmp r0, 0x4 bhi _0800B6EA lsls r0, 2 ldr r1, =_0800B65C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800B65C: .4byte _0800B670 .4byte _0800B680 .4byte _0800B698 .4byte _0800B6D4 .4byte _0800B6DE _0800B670: bl sub_800B53C ldr r1, =gUnknown_03003170 movs r0, 0x1 strb r0, [r1, 0x1] b _0800B6EA .pool _0800B680: ldrb r0, [r4] cmp r0, 0x1 bne _0800B6EA bl sub_800B594 ldr r1, =gUnknown_03003170 movs r0, 0x2 strb r0, [r1, 0x1] b _0800B6EA .pool _0800B698: ldrb r1, [r4] cmp r1, 0x1 beq _0800B6A8 cmp r1, 0x2 beq _0800B6C0 bl sub_800B764 b _0800B6EA _0800B6A8: ldr r2, =gUnknown_03003170 ldrb r0, [r2] cmp r0, 0x8 bne _0800B6EA ldrb r0, [r2, 0x3] cmp r0, 0x1 bls _0800B6EA strb r1, [r2, 0xE] b _0800B6EA .pool _0800B6C0: ldr r0, =gUnknown_03003170 movs r1, 0 strb r1, [r0, 0x1] ldr r0, =0x0400012a strh r1, [r0] b _0800B6EA .pool _0800B6D4: bl sub_800B790 ldr r1, =gUnknown_03003170 movs r0, 0x4 strb r0, [r1, 0x1] _0800B6DE: adds r0, r5, 0 bl sub_800B7C0 adds r0, r6, 0 bl sub_800B8A8 _0800B6EA: movs r0, 0 strb r0, [r4] ldr r1, =gUnknown_03003170 ldrb r2, [r1, 0x2] ldrb r0, [r1, 0x3] lsls r0, 2 orrs r2, r0 ldrb r0, [r1] cmp r0, 0x8 bne _0800B702 movs r0, 0x20 orrs r2, r0 _0800B702: ldrb r0, [r1, 0xC] lsls r3, r0, 8 ldrb r0, [r1, 0xF] lsls r4, r0, 9 ldrb r0, [r1, 0x10] lsls r5, r0, 12 ldrb r0, [r1, 0x11] lsls r6, r0, 13 ldrb r0, [r1, 0x12] lsls r7, r0, 14 ldrb r0, [r1, 0x1] cmp r0, 0x4 bne _0800B728 movs r0, 0x40 orrs r0, r3 orrs r0, r2 b _0800B72C .pool _0800B728: adds r0, r2, 0 orrs r0, r3 _0800B72C: orrs r0, r4 orrs r0, r5 orrs r0, r6 orrs r0, r7 adds r2, r0, 0 ldrb r3, [r1, 0x13] cmp r3, 0x1 bne _0800B742 movs r0, 0x80 lsls r0, 9 orrs r2, r0 _0800B742: ldrb r0, [r1, 0x2] cmp r0, 0x3 bls _0800B74E movs r0, 0x80 lsls r0, 10 orrs r2, r0 _0800B74E: adds r1, r2, 0 cmp r3, 0x2 bne _0800B75A movs r0, 0x80 lsls r0, 11 orrs r1, r0 _0800B75A: adds r0, r1, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800B638 thumb_func_start sub_800B764 sub_800B764: @ 800B764 push {lr} ldr r0, =0x04000128 ldr r1, [r0] movs r0, 0xC ands r1, r0 ldr r2, =gUnknown_03003170 cmp r1, 0x8 bne _0800B788 ldrb r0, [r2, 0x2] cmp r0, 0 bne _0800B788 strb r1, [r2] b _0800B78C .pool _0800B788: movs r0, 0 strb r0, [r2] _0800B78C: pop {r0} bx r0 thumb_func_end sub_800B764 thumb_func_start sub_800B790 sub_800B790: @ 800B790 push {lr} ldr r0, =gUnknown_03003170 ldrb r0, [r0] cmp r0, 0 beq _0800B7AE ldr r1, =0x0400010c ldr r2, =0x0000ff3b adds r0, r2, 0 strh r0, [r1] adds r1, 0x2 movs r0, 0x41 strh r0, [r1] movs r0, 0x40 bl EnableInterrupts _0800B7AE: pop {r0} bx r0 .pool thumb_func_end sub_800B790 thumb_func_start sub_800B7C0 sub_800B7C0: @ 800B7C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r3, r0, 0 ldr r2, =gUnknown_03004134 ldr r1, =0x04000208 ldrh r0, [r1] strh r0, [r2] movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_03003170 ldr r4, =0x00000339 adds r0, r1, r4 ldrb r4, [r0] adds r6, r1, 0 cmp r4, 0x31 bhi _0800B850 movs r1, 0xCE lsls r1, 2 adds r0, r6, r1 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x31 bls _0800B7FE subs r0, 0x32 lsls r0, 24 lsrs r0, 24 _0800B7FE: movs r2, 0 ldr r4, =gUnknown_03000D6E mov r9, r4 ldr r1, =gUnknown_03003160 mov r10, r1 lsls r5, r0, 1 movs r0, 0x18 adds r0, r6 mov r8, r0 mov r12, r2 movs r7, 0x64 _0800B814: ldrh r0, [r4] ldrh r1, [r3] orrs r0, r1 strh r0, [r4] adds r0, r2, 0 muls r0, r7 adds r0, r5, r0 add r0, r8 strh r1, [r0] mov r1, r12 strh r1, [r3] adds r3, 0x2 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _0800B814 b _0800B85C .pool _0800B850: movs r0, 0x1 strb r0, [r6, 0x12] ldr r2, =gUnknown_03000D6E mov r9, r2 ldr r4, =gUnknown_03003160 mov r10, r4 _0800B85C: mov r1, r9 ldrh r0, [r1] cmp r0, 0 beq _0800B874 ldr r2, =0x00000339 adds r0, r6, r2 ldrb r1, [r0] adds r1, 0x1 movs r2, 0 strb r1, [r0] mov r4, r9 strh r2, [r4] _0800B874: ldr r1, =0x04000208 ldr r2, =gUnknown_03004134 ldrh r0, [r2] strh r0, [r1] ldr r4, =0x00000339 adds r0, r6, r4 ldrb r0, [r0] mov r1, r10 strb r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800B7C0 thumb_func_start sub_800B8A8 sub_800B8A8: @ 800B8A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 ldr r2, =gUnknown_03004134 ldr r1, =0x04000208 ldrh r0, [r1] strh r0, [r2] movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_03003170 ldr r3, =0x00000fbd adds r0, r1, r3 ldrb r0, [r0] mov r12, r1 cmp r0, 0 bne _0800B914 movs r3, 0 ldrb r0, [r1, 0x3] cmp r3, r0 bcs _0800B8FA movs r5, 0 adds r6, r0, 0 _0800B8DA: movs r2, 0 lsls r1, r3, 4 adds r4, r3, 0x1 add r1, r9 _0800B8E2: lsls r0, r2, 1 adds r0, r1 strh r5, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _0800B8E2 lsls r0, r4, 24 lsrs r3, r0, 24 cmp r3, r6 bcc _0800B8DA _0800B8FA: movs r0, 0x1 mov r7, r12 strb r0, [r7, 0xC] b _0800B990 .pool _0800B914: movs r3, 0 mov r0, r12 ldrb r1, [r0, 0x3] cmp r3, r1 bcs _0800B96A ldr r0, =0x00000fbc add r0, r12 ldrb r0, [r0] lsls r6, r0, 1 movs r2, 0xCF lsls r2, 2 add r2, r12 mov r8, r2 mov r10, r1 _0800B930: movs r2, 0 lsls r1, r3, 4 adds r4, r3, 0x1 lsls r0, r3, 1 mov r7, r9 adds r5, r1, r7 adds r0, r3 lsls r0, 3 adds r0, r3 lsls r3, r0, 5 _0800B944: lsls r1, r2, 1 adds r1, r5 movs r7, 0x64 adds r0, r2, 0 muls r0, r7 adds r0, r6, r0 adds r0, r3 add r0, r8 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _0800B944 lsls r0, r4, 24 lsrs r3, r0, 24 cmp r3, r10 bcc _0800B930 _0800B96A: mov r2, r12 ldr r0, =0x00000fbd adds r1, r2, r0 ldrb r0, [r1] subs r0, 0x1 movs r3, 0 strb r0, [r1] ldr r1, =0x00000fbc adds r2, r1 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x31 bls _0800B98C strb r3, [r2] _0800B98C: mov r2, r12 strb r3, [r2, 0xC] _0800B990: ldr r1, =0x04000208 ldr r3, =gUnknown_03004134 ldrh r0, [r3] strh r0, [r1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800B8A8 thumb_func_start sub_800B9B8 sub_800B9B8: @ 800B9B8 push {r4,lr} ldr r3, =gUnknown_03003170 ldrb r4, [r3] cmp r4, 0 beq _0800B9F4 ldrb r0, [r3, 0x1] cmp r0, 0x2 beq _0800B9EE cmp r0, 0x4 bne _0800BA1E movs r0, 0xD ldrsb r0, [r3, r0] cmp r0, 0x8 bgt _0800B9E4 ldrb r0, [r3, 0x10] cmp r0, 0x1 beq _0800B9EE movs r0, 0x1 strb r0, [r3, 0x13] b _0800BA1E .pool _0800B9E4: ldrb r0, [r3, 0x13] cmp r0, 0x1 beq _0800BA1E movs r0, 0 strb r0, [r3, 0xD] _0800B9EE: bl sub_800BAC0 b _0800BA1E _0800B9F4: ldrb r2, [r3, 0x1] cmp r2, 0x4 beq _0800B9FE cmp r2, 0x2 bne _0800BA1E _0800B9FE: ldr r1, =gUnknown_03000D6C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bls _0800BA1E cmp r2, 0x4 bne _0800BA16 movs r0, 0x2 strb r0, [r3, 0x13] _0800BA16: cmp r2, 0x2 bne _0800BA1E strb r4, [r3, 0x3] strb r4, [r3, 0xF] _0800BA1E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800B9B8 thumb_func_start Timer3Intr Timer3Intr: @ 800BA28 push {lr} bl sub_800BD98 bl sub_800BAC0 pop {r0} bx r0 thumb_func_end Timer3Intr thumb_func_start sub_800BA38 sub_800BA38: @ 800BA38 push {r4,lr} ldr r4, =gUnknown_03003170 ldr r0, =0x04000128 ldr r1, [r0] lsls r0, r1, 26 lsrs r0, 30 strb r0, [r4, 0x2] ldrb r0, [r4, 0x1] cmp r0, 0x2 beq _0800BA6C cmp r0, 0x4 bne _0800BA8A lsls r0, r1, 25 lsrs r0, 31 strb r0, [r4, 0x10] bl sub_800BBCC bl sub_800BCE4 bl sub_800BDCC b _0800BA8A .pool _0800BA6C: bl sub_800BAD0 lsls r0, 24 cmp r0, 0 beq _0800BA8A ldrb r0, [r4] cmp r0, 0 beq _0800BA86 movs r0, 0x3 strb r0, [r4, 0x1] movs r0, 0x8 strb r0, [r4, 0xD] b _0800BA8A _0800BA86: movs r0, 0x4 strb r0, [r4, 0x1] _0800BA8A: ldr r3, =gUnknown_03003170 ldrb r0, [r3, 0xD] adds r0, 0x1 movs r2, 0 strb r0, [r3, 0xD] ldr r1, =gUnknown_03000D6C strb r2, [r1] lsls r0, 24 asrs r0, 24 cmp r0, 0x8 bne _0800BAAA ldr r0, =gUnknown_03004130 ldr r2, =0x00000fbd adds r1, r3, r2 ldrb r1, [r1] strb r1, [r0] _0800BAAA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800BA38 thumb_func_start sub_800BAC0 sub_800BAC0: @ 800BAC0 ldr r0, =0x04000128 ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] bx lr .pool thumb_func_end sub_800BAC0 thumb_func_start sub_800BAD0 sub_800BAD0: @ 800BAD0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 ldr r6, =0x0000ffff ldr r0, =gUnknown_03003170 ldrb r1, [r0, 0xE] adds r7, r0, 0 cmp r1, 0x1 bne _0800BAFC ldr r1, =0x0400012a ldr r2, =0x00008fff b _0800BB00 .pool _0800BAFC: ldr r1, =0x0400012a ldr r2, =0x0000b9a0 _0800BB00: adds r0, r2, 0 strh r0, [r1] ldr r2, =gUnknown_03003174 ldr r3, =0x04000120 ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [r2] str r1, [r2, 0x4] movs r0, 0 movs r1, 0 str r0, [r3] str r1, [r3, 0x4] strb r0, [r2, 0xA] movs r4, 0 ldr r0, =gUnknown_03000D73 mov r9, r0 mov r8, r2 ldr r2, =0x00008fff ldr r1, =0x0000ffff mov r12, r1 _0800BB28: lsls r0, r4, 1 add r0, r8 ldrh r3, [r0] movs r0, 0x4 negs r0, r0 ands r0, r3 ldr r1, =0x0000b9a0 cmp r0, r1 beq _0800BB40 adds r0, r3, 0 cmp r0, r2 bne _0800BB70 _0800BB40: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r0, r3, 0 cmp r6, r0 bls _0800BB78 cmp r0, 0 beq _0800BB78 adds r6, r3, 0 b _0800BB78 .pool _0800BB70: cmp r0, r12 beq _0800BB82 movs r5, 0 b _0800BB82 _0800BB78: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800BB28 _0800BB82: strb r5, [r7, 0x3] adds r0, r5, 0 cmp r0, 0x1 bls _0800BBB2 mov r2, r9 ldrb r2, [r2] cmp r0, r2 bne _0800BBA4 ldrh r1, [r7, 0x4] ldr r0, =0x00008fff cmp r1, r0 bne _0800BBA4 movs r0, 0x1 b _0800BBBE .pool _0800BBA4: ldrb r0, [r7, 0x3] cmp r0, 0x1 bls _0800BBB2 movs r0, 0x3 ands r6, r0 adds r0, r6, 0x1 b _0800BBB4 _0800BBB2: movs r0, 0 _0800BBB4: strb r0, [r7, 0xF] ldrb r0, [r7, 0x3] mov r1, r9 strb r0, [r1] movs r0, 0 _0800BBBE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800BAD0 thumb_func_start sub_800BBCC sub_800BBCC: @ 800BBCC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, =0x04000120 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r0, =gUnknown_03003170 ldrb r1, [r0, 0x16] adds r6, r0, 0 cmp r1, 0 bne _0800BC30 movs r4, 0 ldr r7, =gUnknown_03000D72 ldrb r0, [r6, 0x3] cmp r4, r0 bcs _0800BC1A adds r5, r6, 0 ldrh r1, [r6, 0x14] adds r3, r7, 0 adds r2, r6, 0 _0800BBFA: lsls r0, r4, 1 add r0, sp ldrh r0, [r0] cmp r1, r0 beq _0800BC0E ldrb r0, [r3] cmp r0, 0 beq _0800BC0E movs r0, 0x1 strb r0, [r5, 0x11] _0800BC0E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r2, 0x3] cmp r4, r0 bcc _0800BBFA _0800BC1A: movs r0, 0 strh r0, [r6, 0x14] movs r0, 0x1 strb r0, [r7] b _0800BCD0 .pool _0800BC30: ldr r2, =0x00000fbc adds r1, r6, r2 adds r2, 0x1 adds r0, r6, r2 ldrb r2, [r0] ldrb r1, [r1] adds r0, r2, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x31 bls _0800BC4C subs r0, 0x32 lsls r0, 24 lsrs r0, 24 _0800BC4C: cmp r2, 0x31 bhi _0800BCA8 movs r4, 0 ldrb r1, [r6, 0x3] cmp r4, r1 bcs _0800BCAC adds r5, r6, 0 ldr r7, =gUnknown_03000D70 lsls r0, 1 mov r12, r0 movs r2, 0xCF lsls r2, 2 adds r2, r6 mov r8, r2 _0800BC68: lsls r1, r4, 1 mov r2, sp adds r0, r2, r1 ldrh r3, [r0] ldrh r2, [r5, 0x14] adds r0, r3, r2 strh r0, [r5, 0x14] ldrh r0, [r7] orrs r0, r3 strh r0, [r7] ldrb r2, [r5, 0x17] movs r0, 0x64 muls r0, r2 add r0, r12 adds r1, r4 lsls r1, 3 adds r1, r4 lsls r1, 5 adds r0, r1 add r0, r8 strh r3, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5, 0x3] cmp r4, r0 bcc _0800BC68 b _0800BCAC .pool _0800BCA8: movs r0, 0x2 strb r0, [r6, 0x12] _0800BCAC: ldrb r0, [r6, 0x17] adds r0, 0x1 strb r0, [r6, 0x17] lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 bne _0800BCD0 ldr r2, =gUnknown_03000D70 ldrh r0, [r2] cmp r0, 0 beq _0800BCD0 ldr r1, =0x00000fbd adds r0, r6, r1 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] movs r0, 0 strh r0, [r2] _0800BCD0: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800BBCC thumb_func_start sub_800BCE4 sub_800BCE4: @ 800BCE4 push {r4,lr} ldr r0, =gUnknown_03003170 ldrb r1, [r0, 0x16] adds r4, r0, 0 cmp r1, 0x8 bne _0800BD36 ldr r1, =0x0400012a ldrh r0, [r4, 0x14] strh r0, [r1] ldr r1, =gUnknown_03000D6D ldrb r2, [r1] cmp r2, 0 bne _0800BD30 ldr r0, =0x00000339 adds r1, r4, r0 ldrb r0, [r1] subs r0, 0x1 strb r0, [r1] movs r0, 0xCE lsls r0, 2 adds r1, r4, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x31 bls _0800BD8C strb r2, [r1] b _0800BD8C .pool _0800BD30: movs r0, 0 strb r0, [r1] b _0800BD8C _0800BD36: ldr r1, =gUnknown_03000D6D ldrb r0, [r1] cmp r0, 0 bne _0800BD52 ldr r2, =0x00000339 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 bne _0800BD4C movs r0, 0x1 strb r0, [r1] _0800BD4C: ldrb r0, [r1] cmp r0, 0 beq _0800BD68 _0800BD52: ldr r1, =0x0400012a movs r0, 0 strh r0, [r1] b _0800BD86 .pool _0800BD68: ldr r3, =0x0400012a movs r1, 0xCE lsls r1, 2 adds r0, r4, r1 ldrb r0, [r0] lsls r0, 1 ldrb r2, [r4, 0x16] movs r1, 0x64 muls r1, r2 adds r0, r1 adds r1, r4, 0 adds r1, 0x18 adds r0, r1 ldrh r0, [r0] strh r0, [r3] _0800BD86: ldrb r0, [r4, 0x16] adds r0, 0x1 strb r0, [r4, 0x16] _0800BD8C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800BCE4 thumb_func_start sub_800BD98 sub_800BD98: @ 800BD98 push {lr} ldr r0, =gUnknown_03003170 ldrb r0, [r0] cmp r0, 0 beq _0800BDB4 ldr r2, =0x0400010e ldrh r1, [r2] ldr r0, =0x0000ff7f ands r0, r1 strh r0, [r2] ldr r1, =0x0400010c ldr r2, =0x0000ff3b adds r0, r2, 0 strh r0, [r1] _0800BDB4: pop {r0} bx r0 .pool thumb_func_end sub_800BD98 thumb_func_start sub_800BDCC sub_800BDCC: @ 800BDCC push {lr} ldr r1, =gUnknown_03003170 ldrb r0, [r1, 0x17] cmp r0, 0x8 bne _0800BDE4 movs r0, 0 strb r0, [r1, 0x16] strb r0, [r1, 0x17] b _0800BDF4 .pool _0800BDE4: ldrb r0, [r1] cmp r0, 0 beq _0800BDF4 ldr r0, =0x0400010e ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] _0800BDF4: pop {r0} bx r0 .pool thumb_func_end sub_800BDCC thumb_func_start sub_800BDFC sub_800BDFC: @ 800BDFC push {r4-r6,lr} ldr r1, =gUnknown_03003170 ldr r2, =0x00000339 adds r0, r1, r2 movs r2, 0 strb r2, [r0] movs r3, 0xCE lsls r3, 2 adds r0, r1, r3 strb r2, [r0] movs r0, 0 movs r6, 0x64 adds r5, r1, 0 adds r5, 0x18 ldr r4, =0x0000efff _0800BE1A: movs r2, 0 adds r1, r0, 0x1 adds r3, r0, 0 muls r3, r6 _0800BE22: lsls r0, r2, 1 adds r0, r3 adds r0, r5 strh r4, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x31 bls _0800BE22 lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x7 bls _0800BE1A pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800BDFC thumb_func_start sub_800BE50 sub_800BE50: @ 800BE50 push {r4-r7,lr} ldr r1, =gUnknown_03003170 ldr r2, =0x00000fbd adds r0, r1, r2 movs r2, 0 strb r2, [r0] ldr r3, =0x00000fbc adds r0, r1, r3 strb r2, [r0] movs r0, 0x64 mov r12, r0 movs r3, 0xCF lsls r3, 2 adds r7, r1, r3 ldr r6, =0x0000efff _0800BE6E: movs r3, 0 lsls r0, r2, 1 adds r5, r2, 0x1 adds r0, r2 lsls r0, 3 adds r0, r2 lsls r4, r0, 5 _0800BE7C: movs r2, 0 adds r1, r3, 0x1 mov r0, r12 muls r0, r3 adds r3, r0, 0 _0800BE86: lsls r0, r2, 1 adds r0, r3 adds r0, r4 adds r0, r7 strh r6, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x31 bls _0800BE86 lsls r0, r1, 24 lsrs r3, r0, 24 cmp r3, 0x7 bls _0800BE7C lsls r0, r5, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0800BE6E pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800BE50 thumb_func_start sub_800BEC0 sub_800BEC0: @ 800BEC0 push {r4,lr} bl rfu_REQBN_softReset_and_checkID adds r4, r0, 0 ldr r0, =0x00008001 cmp r4, r0 bne _0800BED4 ldr r1, =gUnknown_03004140 movs r0, 0x1 strb r0, [r1, 0x8] _0800BED4: ldr r0, =gUnknown_03004140 ldrb r2, [r0, 0x4] adds r1, r0, 0 cmp r2, 0x17 beq _0800BEE8 cmp r2, 0x1 beq _0800BEE8 movs r0, 0 strb r0, [r1, 0x5] strb r0, [r1, 0x4] _0800BEE8: movs r0, 0 strb r0, [r1, 0x7] strb r0, [r1, 0xD] strb r0, [r1, 0x1] strb r0, [r1] movs r0, 0xFF strb r0, [r1, 0x6] bl sub_800D610 adds r0, r4, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_800BEC0 thumb_func_start rfu_REQ_sendData_wrapper rfu_REQ_sendData_wrapper: @ 800BF0C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 bne _0800BF34 ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x2] movs r2, 0 cmp r0, 0x1 bne _0800BF3C movs r2, 0x1 b _0800BF3C .pool _0800BF34: ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x3] movs r1, 0 strb r1, [r0, 0x3] _0800BF3C: adds r0, r2, 0 bl rfu_REQ_sendData pop {r0} bx r0 .pool thumb_func_end rfu_REQ_sendData_wrapper thumb_func_start sub_800BF4C sub_800BF4C: @ 800BF4C push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 cmp r5, 0 beq _0800BF94 mov r1, sp movs r0, 0 strh r0, [r1] ldr r4, =gUnknown_03004140 ldr r2, =0x01000024 mov r0, sp adds r1, r4, 0 bl CpuSet movs r0, 0xFF strb r0, [r4, 0x6] str r5, [r4, 0x40] str r6, [r4, 0x44] ldr r0, =sub_800CEB0 bl rfu_setMSCCallback ldr r0, =sub_800C7B4 bl rfu_setREQCallback movs r0, 0 b _0800BF96 .pool _0800BF94: movs r0, 0x4 _0800BF96: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_800BF4C thumb_func_start sub_800BFA0 sub_800BFA0: @ 800BFA0 push {r4,lr} sub sp, 0x4 mov r1, sp movs r0, 0 strh r0, [r1] ldr r4, =gUnknown_03004140 ldr r2, =0x01000020 mov r0, sp adds r1, r4, 0 bl CpuSet movs r0, 0xFF strb r0, [r4, 0x6] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800BFA0 thumb_func_start sub_800BFCC sub_800BFCC: @ 800BFCC push {r4,lr} adds r4, r0, 0 bl sub_800C000 ldr r1, =gUnknown_03004140 movs r2, 0x1 strb r2, [r1, 0x4] movs r0, 0x2 strb r0, [r1, 0x5] str r4, [r1, 0x3C] ldrb r0, [r4, 0x11] strb r0, [r1, 0x9] ldrh r0, [r4, 0x12] strh r0, [r1, 0x32] ldrh r0, [r4, 0x14] strh r0, [r1, 0x18] ldrb r0, [r4, 0x10] cmp r0, 0 beq _0800BFF4 strb r2, [r1, 0xB] _0800BFF4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800BFCC thumb_func_start sub_800C000 sub_800C000: @ 800C000 push {r4,r5,lr} ldr r2, =gUnknown_03004140 movs r0, 0 strb r0, [r2, 0x5] strb r0, [r2, 0x4] movs r1, 0xFF strb r1, [r2, 0x6] strb r0, [r2, 0x7] strb r0, [r2, 0x10] strb r0, [r2, 0xC] adds r1, r2, 0 adds r1, 0x24 strb r0, [r1] adds r1, 0xC strb r0, [r1] movs r3, 0 adds r5, r2, 0 adds r5, 0x28 movs r4, 0 adds r2, 0x34 _0800C028: lsls r1, r3, 1 adds r0, r1, r5 strh r4, [r0] adds r1, r2 strh r4, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800C028 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800C000 thumb_func_start sub_800C048 sub_800C048: @ 800C048 ldr r1, =gUnknown_03004140 movs r0, 0x15 strb r0, [r1, 0x4] bx lr .pool thumb_func_end sub_800C048 thumb_func_start sub_800C054 sub_800C054: @ 800C054 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r3, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r8, r2 ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0800C090 cmp r0, 0x8 bne _0800C07A cmp r5, 0x1 beq _0800C090 _0800C07A: movs r0, 0x1 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x1 b _0800C122 .pool _0800C090: bl rfu_getMasterSlave lsls r0, 24 cmp r0, 0 bne _0800C0B0 ldr r1, =gUnknown_03004140 movs r0, 0x2 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x2 b _0800C122 .pool _0800C0B0: movs r2, 0 ldrh r0, [r6] ldr r4, =0x0000ffff adds r1, r6, 0x2 ldr r3, =gUnknown_03004140 cmp r0, r4 beq _0800C0D0 _0800C0BE: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xF bhi _0800C0D0 ldrh r0, [r1] adds r1, 0x2 cmp r0, r4 bne _0800C0BE _0800C0D0: cmp r2, 0x10 bne _0800C0EC movs r0, 0x4 strh r0, [r3, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x4 b _0800C122 .pool _0800C0EC: cmp r5, 0x1 bls _0800C0FA movs r0, 0x1 strb r0, [r3, 0x7] movs r5, 0x1 movs r7, 0 b _0800C0FE _0800C0FA: movs r0, 0 strb r0, [r3, 0x7] _0800C0FE: cmp r5, 0 beq _0800C108 movs r0, 0x5 strb r0, [r3, 0x4] b _0800C116 _0800C108: movs r0, 0x9 strb r0, [r3, 0x4] ldrb r0, [r3, 0xB] cmp r0, 0 beq _0800C116 movs r0, 0x2 strb r0, [r3, 0xB] _0800C116: strb r5, [r3, 0x6] strh r7, [r3, 0x1A] mov r0, r8 strh r0, [r3, 0x26] str r6, [r3, 0x20] movs r0, 0 _0800C122: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800C054 thumb_func_start sub_800C12C sub_800C12C: @ 800C12C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0800C164 subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0800C164 movs r0, 0x1 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x1 b _0800C204 .pool _0800C164: bl rfu_getMasterSlave lsls r0, 24 cmp r0, 0 bne _0800C184 ldr r1, =gUnknown_03004140 movs r0, 0x2 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x2 b _0800C204 .pool _0800C184: movs r2, 0 ldr r0, =gUnknown_03007890 ldr r1, [r0] ldrb r3, [r1, 0x8] ldr r5, =gUnknown_03004140 adds r7, r0, 0 cmp r2, r3 bcs _0800C1B2 ldrh r0, [r1, 0x14] cmp r0, r6 beq _0800C1B2 adds r4, r1, 0 adds r1, r3, 0 _0800C19E: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r1 bcs _0800C1B2 lsls r0, r2, 5 adds r0, r4, r0 ldrh r0, [r0, 0x14] cmp r0, r6 bne _0800C19E _0800C1B2: ldr r0, [r7] ldrb r0, [r0, 0x8] cmp r0, 0 beq _0800C1BE cmp r2, r0 bne _0800C1D8 _0800C1BE: movs r0, 0x3 strh r0, [r5, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x3 b _0800C204 .pool _0800C1D8: ldrb r0, [r5, 0x4] cmp r0, 0 beq _0800C1E2 cmp r0, 0x9 bne _0800C1EA _0800C1E2: movs r0, 0xC strb r0, [r5, 0x4] movs r0, 0xD b _0800C1F0 _0800C1EA: movs r0, 0xB strb r0, [r5, 0x4] movs r0, 0xC _0800C1F0: strb r0, [r5, 0x5] strh r6, [r5, 0x1E] mov r0, r8 strh r0, [r5, 0x1A] ldrb r0, [r5, 0x7] cmp r0, 0 beq _0800C202 movs r0, 0x7 strb r0, [r5, 0x7] _0800C202: movs r0, 0 _0800C204: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800C12C thumb_func_start sub_800C210 sub_800C210: @ 800C210 push {r4-r7,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r6, =gUnknown_03004140 adds r3, r6, 0 adds r3, 0x30 ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _0800C26C adds r0, r2, 0 bics r0, r1 strb r0, [r3] movs r4, 0 ldr r7, =gUnknown_03007890 movs r5, 0x1 adds r3, 0x4 movs r2, 0 _0800C236: adds r0, r1, 0 asrs r0, r4 ands r0, r5 cmp r0, 0 beq _0800C246 lsls r0, r4, 1 adds r0, r3 strh r2, [r0] _0800C246: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800C236 ldr r0, [r7] ldrb r4, [r0, 0x3] ands r4, r1 cmp r4, 0 beq _0800C260 adds r0, r4, 0 bl sub_800D334 _0800C260: ldr r0, =gUnknown_03004140 strh r4, [r0, 0x14] movs r0, 0x33 adds r1, r4, 0 bl sub_800D30C _0800C26C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800C210 thumb_func_start sub_800C27C sub_800C27C: @ 800C27C push {r4,r5,lr} lsls r0, 24 movs r2, 0 ldr r1, =gUnknown_03004140 strb r2, [r1, 0x7] adds r5, r1, 0 cmp r0, 0 beq _0800C29C bl sub_800C000 movs r0, 0x17 strb r0, [r5, 0x4] b _0800C366 .pool _0800C29C: ldrb r0, [r5, 0x4] subs r0, 0x5 cmp r0, 0xD bhi _0800C352 lsls r0, 2 ldr r1, =_0800C2B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800C2B4: .4byte _0800C2EC .4byte _0800C2F8 .4byte _0800C2F8 .4byte _0800C358 .4byte _0800C302 .4byte _0800C30C .4byte _0800C30C .4byte _0800C316 .4byte _0800C320 .4byte _0800C320 .4byte _0800C358 .4byte _0800C326 .4byte _0800C34C .4byte _0800C34C _0800C2EC: movs r1, 0 movs r0, 0x8 strb r0, [r5, 0x4] strb r1, [r5, 0x5] movs r2, 0x13 b _0800C358 _0800C2F8: movs r0, 0x7 strb r0, [r5, 0x4] movs r0, 0x8 strb r0, [r5, 0x5] b _0800C358 _0800C302: movs r0, 0 strb r0, [r5, 0x5] strb r0, [r5, 0x4] movs r2, 0x21 b _0800C358 _0800C30C: movs r1, 0 movs r0, 0xB strb r0, [r5, 0x4] strb r1, [r5, 0x5] b _0800C358 _0800C316: movs r0, 0 strb r0, [r5, 0x5] strb r0, [r5, 0x4] movs r2, 0x23 b _0800C358 _0800C320: movs r0, 0xE strb r0, [r5, 0x4] b _0800C358 _0800C326: ldrb r0, [r5, 0x11] strb r0, [r5, 0x4] ldrb r0, [r5, 0x12] strb r0, [r5, 0x5] ldr r4, =gUnknown_03007890 ldr r0, [r4] ldrb r0, [r0, 0x3] bl sub_800D334 ldr r0, [r4] ldrb r0, [r0, 0x3] strh r0, [r5, 0x14] movs r0, 0x33 movs r1, 0x1 bl sub_800D30C b _0800C366 .pool _0800C34C: movs r0, 0x12 strb r0, [r5, 0x4] b _0800C358 _0800C352: strb r2, [r5, 0x5] strb r2, [r5, 0x4] movs r2, 0x43 _0800C358: ldrb r0, [r5, 0x4] cmp r0, 0 bne _0800C366 adds r0, r2, 0 movs r1, 0 bl sub_800D30C _0800C366: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800C27C thumb_func_start sub_800C36C sub_800C36C: @ 800C36C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 movs r1, 0 mov r8, r1 mov r5, sp adds r5, 0x1 mov r4, sp adds r4, 0x2 mov r1, sp adds r2, r5, 0 adds r3, r4, 0 bl rfu_REQBN_watchLink mov r0, sp ldrb r0, [r0] adds r7, r4, 0 cmp r0, 0 beq _0800C43E ldr r1, =gUnknown_03004140 mov r0, sp ldrb r0, [r0] strh r0, [r1, 0x14] ldrb r0, [r5] strh r0, [r1, 0x16] ldrb r0, [r1, 0x9] adds r6, r1, 0 cmp r0, 0 beq _0800C426 movs r0, 0x1 strb r0, [r6, 0xA] ldrb r0, [r6, 0x6] cmp r0, 0 bne _0800C3C2 ldrb r0, [r5] cmp r0, 0 bne _0800C3C2 movs r0, 0x4 strb r0, [r6, 0xA] _0800C3C2: ldrb r0, [r6, 0xA] cmp r0, 0x1 bne _0800C40C movs r2, 0 mov r4, sp movs r5, 0x1 mov r12, r6 mov r3, r12 adds r3, 0x30 movs r6, 0x34 add r6, r12 mov r9, r6 _0800C3DA: ldrb r0, [r4] asrs r0, r2 ands r0, r5 cmp r0, 0 beq _0800C3F8 adds r0, r5, 0 lsls r0, r2 ldrb r1, [r3] orrs r0, r1 strb r0, [r3] lsls r0, r2, 1 add r0, r9 mov r6, r12 ldrh r1, [r6, 0x32] strh r1, [r0] _0800C3F8: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0800C3DA movs r0, 0x31 b _0800C41E .pool _0800C40C: movs r0, 0 strb r0, [r6, 0xA] mov r0, sp ldrb r0, [r0] bl sub_800D334 movs r0, 0x1 mov r8, r0 movs r0, 0x33 _0800C41E: movs r1, 0x1 bl sub_800D30C b _0800C43A _0800C426: mov r0, sp ldrb r0, [r0] bl sub_800D334 movs r1, 0x1 mov r8, r1 movs r0, 0x30 movs r1, 0x2 bl sub_800D30C _0800C43A: bl sub_800D610 _0800C43E: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _0800C518 ldrb r0, [r7] cmp r0, 0 beq _0800C49C movs r2, 0 ldr r6, =gUnknown_03004140 movs r3, 0x1 adds r4, r6, 0 adds r4, 0x34 adds r6, 0x30 adds r5, r7, 0 _0800C45C: ldrb r0, [r6] asrs r0, r2 ands r0, r3 cmp r0, 0 beq _0800C478 ldrb r0, [r5] asrs r0, r2 ands r0, r3 cmp r0, 0 beq _0800C478 lsls r0, r2, 1 adds r0, r4 movs r1, 0 strh r1, [r0] _0800C478: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0800C45C ldr r3, =gUnknown_03004140 adds r2, r3, 0 adds r2, 0x30 ldrb r1, [r7] ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldrb r0, [r7] strh r0, [r3, 0x14] movs r0, 0x32 movs r1, 0x1 bl sub_800D30C _0800C49C: ldr r0, =gUnknown_03004140 adds r3, r0, 0 adds r3, 0x30 ldrb r1, [r3] adds r6, r0, 0 cmp r1, 0 beq _0800C514 movs r4, 0 movs r2, 0 movs r5, 0x1 _0800C4B0: ldrb r0, [r3] asrs r0, r2 ands r0, r5 cmp r0, 0 beq _0800C4E2 lsls r1, r2, 1 adds r0, r6, 0 adds r0, 0x34 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _0800C4E2 subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 bne _0800C4E2 adds r0, r5, 0 lsls r0, r2 ldrb r1, [r3] bics r1, r0 strb r1, [r3] orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _0800C4E2: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0800C4B0 cmp r4, 0 beq _0800C506 adds r0, r4, 0 bl sub_800D334 movs r6, 0x1 mov r8, r6 ldr r0, =gUnknown_03004140 strh r4, [r0, 0x14] movs r0, 0x33 movs r1, 0x1 bl sub_800D30C _0800C506: ldr r0, =gUnknown_03004140 adds r1, r0, 0 adds r1, 0x30 ldrb r1, [r1] adds r6, r0, 0 cmp r1, 0 bne _0800C518 _0800C514: movs r0, 0 strb r0, [r6, 0xA] _0800C518: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800C36C thumb_func_start rfu_syncVBlank_ rfu_syncVBlank_: @ 800C530 push {lr} bl rfu_syncVBlank lsls r0, 16 cmp r0, 0 beq _0800C548 movs r0, 0xF1 movs r1, 0 bl sub_800D30C bl sub_800D610 _0800C548: pop {r0} bx r0 thumb_func_end rfu_syncVBlank_ thumb_func_start sub_800C54C sub_800C54C: @ 800C54C push {r4,lr} adds r3, r0, 0 ldr r1, =gUnknown_03004140 ldr r2, [r1, 0x40] cmp r2, 0 bne _0800C568 ldrb r0, [r1, 0x4] cmp r0, 0 beq _0800C568 strb r2, [r1, 0x4] b _0800C736 .pool _0800C568: ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x7] cmp r0, 0 beq _0800C576 adds r0, r3, 0 bl sub_800C744 _0800C576: ldr r4, =gUnknown_03004140 ldrb r0, [r4, 0x4] cmp r0, 0 bne _0800C580 b _0800C700 _0800C580: bl rfu_waitREQComplete movs r0, 0x1 strb r0, [r4, 0xE] ldrb r0, [r4, 0x4] subs r0, 0x1 cmp r0, 0x16 bls _0800C592 b _0800C6F6 _0800C592: lsls r0, 2 ldr r1, =_0800C5A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800C5A4: .4byte _0800C624 .4byte _0800C65C .4byte _0800C662 .4byte _0800C678 .4byte _0800C690 .4byte _0800C696 .4byte _0800C69C .4byte _0800C6F6 .4byte _0800C6A2 .4byte _0800C6A8 .4byte _0800C6AE .4byte _0800C6B4 .4byte _0800C6C4 .4byte _0800C6CA .4byte _0800C6F6 .4byte _0800C6D0 .4byte _0800C6E0 .4byte _0800C6E6 .4byte _0800C6EC .4byte _0800C6F6 .4byte _0800C6F2 .4byte _0800C6F6 .4byte _0800C600 _0800C600: bl sub_800BEC0 ldr r1, =0x00008001 movs r2, 0xFF cmp r0, r1 bne _0800C60E movs r2, 0x44 _0800C60E: ldr r1, =gUnknown_03004140 movs r0, 0 strb r0, [r1, 0x5] strb r0, [r1, 0x4] adds r0, r2, 0 b _0800C64E .pool _0800C624: bl sub_800BEC0 ldr r1, =0x00008001 cmp r0, r1 bne _0800C644 ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x5] strb r1, [r0, 0x4] movs r1, 0x3 strb r1, [r0, 0x5] b _0800C6F6 .pool _0800C644: ldr r1, =gUnknown_03004140 movs r0, 0 strb r0, [r1, 0x5] strb r0, [r1, 0x4] movs r0, 0xFF _0800C64E: movs r1, 0 bl sub_800D30C b _0800C6F6 .pool _0800C65C: bl rfu_REQ_reset b _0800C6F6 _0800C662: ldr r0, =gUnknown_03004140 ldr r2, [r0, 0x3C] ldrh r0, [r2, 0x2] ldrb r1, [r2] ldrb r2, [r2, 0x1] bl rfu_REQ_configSystem b _0800C6F6 .pool _0800C678: ldr r0, =gUnknown_03004140 ldr r3, [r0, 0x3C] ldrb r0, [r3, 0x4] ldrh r1, [r3, 0x6] ldr r2, [r3, 0x8] ldr r3, [r3, 0xC] bl rfu_REQ_configGameData b _0800C6F6 .pool _0800C690: bl rfu_REQ_startSearchChild b _0800C6F6 _0800C696: bl rfu_REQ_pollSearchChild b _0800C6F6 _0800C69C: bl rfu_REQ_endSearchChild b _0800C6F6 _0800C6A2: bl rfu_REQ_startSearchParent b _0800C6F6 _0800C6A8: bl rfu_REQ_pollSearchParent b _0800C6F6 _0800C6AE: bl rfu_REQ_endSearchParent b _0800C6F6 _0800C6B4: ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x1E] bl rfu_REQ_startConnectParent b _0800C6F6 .pool _0800C6C4: bl rfu_REQ_pollConnectParent b _0800C6F6 _0800C6CA: bl rfu_REQ_endConnectParent b _0800C6F6 _0800C6D0: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x3] bl rfu_REQ_CHILD_startConnectRecovery b _0800C6F6 .pool _0800C6E0: bl rfu_REQ_CHILD_pollConnectRecovery b _0800C6F6 _0800C6E6: bl rfu_REQ_CHILD_endConnectRecovery b _0800C6F6 _0800C6EC: bl rfu_REQ_changeMasterSlave b _0800C6F6 _0800C6F2: bl rfu_REQ_stopMode _0800C6F6: bl rfu_waitREQComplete ldr r1, =gUnknown_03004140 movs r0, 0 strb r0, [r1, 0xE] _0800C700: ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x4] subs r0, 0x12 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0800C710 b _0800C576 _0800C710: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _0800C726 movs r0, 0 bl sub_800C36C lsls r0, 24 cmp r0, 0 bne _0800C736 _0800C726: bl sub_800CF34 bl sub_800D158 bl sub_800D268 bl sub_800D434 _0800C736: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800C54C thumb_func_start sub_800C744 sub_800C744: @ 800C744 push {r4,lr} adds r3, r0, 0 ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x7] adds r4, r0, 0 cmp r1, 0x5 bne _0800C76E movs r2, 0x1 strb r2, [r4, 0x6] strb r1, [r4, 0x4] ldrh r0, [r4, 0x1C] strh r0, [r4, 0x1A] lsls r0, 16 cmp r0, 0 beq _0800C76C movs r0, 0x6 strb r0, [r4, 0x7] b _0800C76E .pool _0800C76C: strb r2, [r4, 0x7] _0800C76E: ldrb r0, [r4, 0x7] cmp r0, 0x1 bne _0800C798 strb r0, [r4, 0x6] movs r0, 0x5 strb r0, [r4, 0x4] adds r0, r3, 0 movs r1, 0x8C bl __umodsi3 strh r0, [r4, 0x1A] movs r1, 0x8C subs r1, r0 strh r1, [r4, 0x1C] lsls r0, 16 cmp r0, 0 beq _0800C794 movs r0, 0x2 b _0800C796 _0800C794: movs r0, 0x3 _0800C796: strb r0, [r4, 0x7] _0800C798: ldrb r0, [r4, 0x7] cmp r0, 0x3 bne _0800C7AE movs r0, 0 strb r0, [r4, 0x6] movs r0, 0x28 strh r0, [r4, 0x1A] movs r0, 0x4 strb r0, [r4, 0x7] movs r0, 0x9 strb r0, [r4, 0x4] _0800C7AE: pop {r4} pop {r0} bx r0 thumb_func_end sub_800C744 thumb_func_start sub_800C7B4 sub_800C7B4: @ 800C7B4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r6, r1, 16 ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0xE] adds r7, r0, 0 cmp r1, 0 bne _0800C7D2 b _0800CC98 _0800C7D2: movs r0, 0 strb r0, [r7, 0xE] mov r0, r8 subs r0, 0x10 cmp r0, 0x2D bls _0800C7E0 b _0800CC8A _0800C7E0: lsls r0, 2 ldr r1, =_0800C7F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800C7F4: .4byte _0800C8AC .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800C8D8 .4byte _0800C8C4 .4byte _0800CC8A .4byte _0800C8EC .4byte _0800C8FC .4byte _0800C920 .4byte _0800C940 .4byte _0800C960 .4byte _0800C9D0 .4byte _0800CA02 .4byte _0800CA18 .4byte _0800CA60 .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CBD8 .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CAD0 .4byte _0800CB1C .4byte _0800CB64 .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC8A .4byte _0800CC78 _0800C8AC: cmp r6, 0 beq _0800C8B2 b _0800CC8A _0800C8B2: ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x5] strb r1, [r0, 0x4] movs r1, 0x4 strb r1, [r0, 0x5] b _0800CC8A .pool _0800C8C4: cmp r6, 0 beq _0800C8CA b _0800CC8A _0800C8CA: ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x5] strb r1, [r0, 0x4] strb r6, [r0, 0x5] b _0800CC8A .pool _0800C8D8: cmp r6, 0 beq _0800C8DE b _0800CC8A _0800C8DE: ldr r0, =gUnknown_03004140 strb r6, [r0, 0x5] strb r6, [r0, 0x4] movs r0, 0 b _0800CBF6 .pool _0800C8EC: cmp r6, 0 beq _0800C8F2 b _0800CC8A _0800C8F2: ldr r1, =gUnknown_03004140 movs r0, 0x6 b _0800CA0C .pool _0800C8FC: ldr r1, =gUnknown_03004140 ldrh r0, [r1, 0x1A] cmp r0, 0 bne _0800C906 b _0800CC8A _0800C906: subs r0, 0x1 strh r0, [r1, 0x1A] lsls r0, 16 cmp r0, 0 beq _0800C912 b _0800CC8A _0800C912: movs r0, 0x7 strb r0, [r1, 0x4] movs r0, 0x8 strb r0, [r1, 0x5] b _0800CC8A .pool _0800C920: cmp r6, 0 beq _0800C926 b _0800CC8A _0800C926: ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x5] strb r1, [r0, 0x4] strb r6, [r0, 0x5] ldrb r0, [r0, 0x7] cmp r0, 0 beq _0800C936 b _0800CC8A _0800C936: movs r0, 0x13 b _0800CBF6 .pool _0800C940: cmp r6, 0 beq _0800C946 b _0800CC8A _0800C946: ldrb r0, [r7, 0xB] cmp r0, 0x1 bne _0800C956 ldrh r0, [r7, 0x1A] cmp r0, 0x1 bls _0800C956 subs r0, 0x1 strh r0, [r7, 0x1A] _0800C956: ldr r1, =gUnknown_03004140 movs r0, 0xA b _0800CA0C .pool _0800C960: cmp r6, 0 bne _0800C9A6 bl sub_800D294 lsls r0, 24 lsrs r0, 24 mov r1, sp strb r0, [r1] ldr r4, =gUnknown_03004140 strh r0, [r4, 0x14] cmp r0, 0 beq _0800C980 movs r0, 0x20 movs r1, 0x1 bl sub_800D30C _0800C980: ldrb r0, [r4, 0xB] cmp r0, 0 beq _0800C9A6 ldrh r0, [r4, 0x1A] cmp r0, 0x1 beq _0800C9A6 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0x4 bne _0800C9A6 bl rfu_REQ_endSearchParent bl rfu_waitREQComplete movs r0, 0x9 strb r0, [r4, 0x4] movs r0, 0x1 strb r0, [r4, 0xB] _0800C9A6: ldr r1, =gUnknown_03004140 ldrh r0, [r1, 0x1A] cmp r0, 0 bne _0800C9B0 b _0800CC8A _0800C9B0: subs r0, 0x1 strh r0, [r1, 0x1A] lsls r0, 16 cmp r0, 0 beq _0800C9BC b _0800CC8A _0800C9BC: movs r0, 0xB strb r0, [r1, 0x4] movs r0, 0 strb r0, [r1, 0x5] b _0800CC8A .pool _0800C9D0: cmp r6, 0 beq _0800C9D6 b _0800CC8A _0800C9D6: ldr r2, =gUnknown_03004140 ldrb r0, [r2, 0x5] strb r0, [r2, 0x4] ldrb r1, [r2, 0x7] cmp r1, 0 bne _0800C9F4 lsls r0, 24 cmp r0, 0 beq _0800C9EA b _0800CC8A _0800C9EA: movs r0, 0x21 b _0800CBF6 .pool _0800C9F4: cmp r1, 0x7 bne _0800C9FA b _0800CC8A _0800C9FA: movs r0, 0x5 strb r0, [r2, 0x4] strb r0, [r2, 0x7] b _0800CC8A _0800CA02: cmp r6, 0 beq _0800CA08 b _0800CC8A _0800CA08: ldr r1, =gUnknown_03004140 movs r0, 0xD _0800CA0C: strb r0, [r1, 0x5] strb r0, [r1, 0x4] b _0800CC8A .pool _0800CA18: cmp r6, 0 bne _0800CA3C ldr r4, =gUnknown_03004150 mov r0, sp adds r1, r4, 0 bl rfu_getConnectParentStatus lsls r0, 16 cmp r0, 0 bne _0800CA3C mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0800CA3C adds r1, r4, 0 subs r1, 0x10 movs r0, 0xE strb r0, [r1, 0x4] _0800CA3C: ldr r1, =gUnknown_03004140 ldrh r0, [r1, 0x1A] cmp r0, 0 bne _0800CA46 b _0800CC8A _0800CA46: subs r0, 0x1 strh r0, [r1, 0x1A] lsls r0, 16 cmp r0, 0 beq _0800CA52 b _0800CC8A _0800CA52: movs r0, 0xE strb r0, [r1, 0x4] b _0800CC8A .pool _0800CA60: cmp r6, 0 beq _0800CA66 b _0800CC8A _0800CA66: ldr r4, =gUnknown_03004150 mov r0, sp adds r1, r4, 0 bl rfu_getConnectParentStatus lsls r0, 16 cmp r0, 0 beq _0800CA78 b _0800CC8A _0800CA78: mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0800CA9C adds r1, r4, 0 subs r1, 0x10 movs r0, 0x13 strb r0, [r1, 0x4] movs r0, 0xF strb r0, [r1, 0x5] movs r0, 0x22 strh r0, [r1, 0x1E] ldrb r0, [r1, 0x10] strh r0, [r1, 0x14] b _0800CABC .pool _0800CA9C: adds r1, r4, 0 subs r1, 0x10 strb r6, [r1, 0x5] strb r6, [r1, 0x4] movs r0, 0x23 strh r0, [r1, 0x1E] mov r0, sp ldrb r0, [r0] strh r0, [r1, 0x14] ldrb r0, [r1, 0x7] cmp r0, 0 beq _0800CABC movs r0, 0x3 strb r0, [r1, 0x7] movs r0, 0x9 strb r0, [r1, 0x4] _0800CABC: ldr r4, =gUnknown_03004140 ldrb r0, [r4, 0x1E] movs r1, 0x1 bl sub_800D30C movs r0, 0 strh r0, [r4, 0x1E] b _0800CC8A .pool _0800CAD0: cmp r6, 0 beq _0800CAD6 b _0800CC8A _0800CAD6: ldr r2, =gUnknown_03007890 ldr r3, [r2] ldrb r0, [r3, 0x3] movs r1, 0 strh r0, [r7, 0x14] movs r0, 0x11 strb r0, [r7, 0x5] strb r0, [r7, 0x4] strb r1, [r7, 0x10] ldrb r0, [r3, 0x3] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0800CAF4 b _0800CC8A _0800CAF4: adds r1, r7, 0 movs r3, 0x1 _0800CAF8: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bls _0800CB08 b _0800CC8A _0800CB08: ldr r0, [r2] ldrb r0, [r0, 0x3] ldrb r4, [r7, 0x10] asrs r0, r4 ands r0, r3 cmp r0, 0 beq _0800CAF8 b _0800CC8A .pool _0800CB1C: cmp r6, 0 bne _0800CB3A mov r0, sp bl rfu_CHILD_getConnectRecoveryStatus lsls r0, 16 cmp r0, 0 bne _0800CB3A mov r0, sp ldrb r0, [r0] cmp r0, 0x1 bhi _0800CB3A ldr r1, =gUnknown_03004140 movs r0, 0x12 strb r0, [r1, 0x4] _0800CB3A: ldr r2, =gUnknown_03004140 ldrb r0, [r2, 0x10] lsls r0, 1 adds r1, r2, 0 adds r1, 0x34 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 bne _0800CB4E b _0800CC8A _0800CB4E: subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0800CB5A b _0800CC8A _0800CB5A: movs r0, 0x12 strb r0, [r2, 0x4] b _0800CC8A .pool _0800CB64: cmp r6, 0 beq _0800CB6A b _0800CC8A _0800CB6A: mov r0, sp bl rfu_CHILD_getConnectRecoveryStatus lsls r0, 16 cmp r0, 0 beq _0800CB78 b _0800CC8A _0800CB78: mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0800CB94 ldr r1, =gUnknown_03004140 movs r0, 0x13 strb r0, [r1, 0x4] movs r0, 0x16 strb r0, [r1, 0x5] movs r0, 0x32 strh r0, [r1, 0x1E] b _0800CBA8 .pool _0800CB94: ldr r4, =gUnknown_03004140 strb r6, [r4, 0x5] strb r6, [r4, 0x4] ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x3] bl sub_800D334 movs r0, 0x33 strh r0, [r4, 0x1E] _0800CBA8: ldr r5, =gUnknown_03004140 ldrb r0, [r5, 0x10] lsls r0, 1 adds r1, r5, 0 adds r1, 0x34 adds r0, r1 movs r1, 0 movs r4, 0 strh r4, [r0] adds r0, r5, 0 adds r0, 0x30 strb r1, [r0] strb r1, [r5, 0xA] ldrb r0, [r5, 0x1E] movs r1, 0x1 bl sub_800D30C strh r4, [r5, 0x1E] b _0800CC8A .pool _0800CBD8: cmp r6, 0 bne _0800CC8A ldr r5, =gUnknown_03004140 ldrb r1, [r5, 0x5] adds r0, r1, 0 cmp r0, 0x16 bne _0800CC04 ldrb r0, [r5, 0x11] strb r0, [r5, 0x4] ldrb r0, [r5, 0x12] strb r0, [r5, 0x5] ldrb r0, [r5, 0x2] movs r0, 0x1 strb r0, [r5, 0x2] movs r0, 0x41 _0800CBF6: movs r1, 0 bl sub_800D30C b _0800CC8A .pool _0800CC04: cmp r0, 0xF bne _0800CC8A strb r1, [r5, 0x4] ldrb r0, [r5, 0x2] movs r4, 0x1 strb r4, [r5, 0x2] movs r0, 0x41 movs r1, 0 bl sub_800D30C adds r1, r5, 0 adds r1, 0x24 ldrb r0, [r5, 0x10] lsls r4, r0 ldrb r0, [r1] orrs r4, r0 strb r4, [r1] ldrb r0, [r5, 0x10] lsls r0, 1 adds r1, 0x4 adds r0, r1 ldrh r1, [r5, 0x26] movs r7, 0 strh r1, [r0] ldrb r1, [r5, 0x10] movs r0, 0x4 bl rfu_clearSlot mov r4, sp ldrb r0, [r5, 0x10] movs r1, 0xE bl rfu_NI_CHILD_setSendGameName strb r0, [r4] lsls r0, 24 cmp r0, 0 beq _0800CC8A strb r7, [r5, 0x5] strb r7, [r5, 0x4] bl sub_800D610 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] orrs r0, r1 bl sub_800D334 mov r0, sp ldrb r0, [r0] strh r0, [r5, 0x14] movs r0, 0x25 movs r1, 0x1 bl sub_800D30C b _0800CC8A .pool _0800CC78: cmp r6, 0 bne _0800CC8A ldr r0, =gUnknown_03004140 strb r6, [r0, 0x5] strb r6, [r0, 0x4] movs r0, 0x42 movs r1, 0 bl sub_800D30C _0800CC8A: ldr r1, =gUnknown_03004140 movs r0, 0x1 strb r0, [r1, 0xE] b _0800CCE6 .pool _0800CC98: cmp r6, 0x3 bne _0800CCE6 ldrb r0, [r7, 0xF] cmp r0, 0 beq _0800CCE6 mov r3, r8 cmp r3, 0x24 beq _0800CCB0 cmp r3, 0x26 beq _0800CCB0 cmp r3, 0x27 bne _0800CCE6 _0800CCB0: bl rfu_REQ_RFUStatus bl rfu_waitREQComplete mov r0, sp bl rfu_getRFUStatus mov r0, sp ldrb r0, [r0] cmp r0, 0 bne _0800CCE6 ldr r4, =gUnknown_03007890 ldr r0, [r4] ldrb r0, [r0] cmp r0, 0 bne _0800CCE6 bl rfu_getSTWIRecvBuffer ldr r1, [r4] ldrb r1, [r1, 0x2] strb r1, [r0, 0x4] movs r1, 0x1 strb r1, [r0, 0x5] movs r0, 0x29 bl sub_800C36C movs r6, 0 _0800CCE6: mov r4, r8 cmp r4, 0x26 bne _0800CCEE b _0800CE02 _0800CCEE: cmp r4, 0x26 bgt _0800CD00 cmp r4, 0x10 bne _0800CCF8 b _0800CE20 _0800CCF8: b _0800CE3E .pool _0800CD00: mov r0, r8 cmp r0, 0x30 beq _0800CD0E cmp r0, 0x3D bne _0800CD0C b _0800CE20 _0800CD0C: b _0800CE3E _0800CD0E: cmp r6, 0 beq _0800CD14 b _0800CE42 _0800CD14: bl rfu_getSTWIRecvBuffer ldr r4, =gUnknown_03004140 ldrb r0, [r0, 0x8] strh r0, [r4, 0x14] bl sub_800D358 adds r2, r4, 0 adds r2, 0x30 ldrb r1, [r2] cmp r1, 0 beq _0800CD6A ldrb r0, [r4, 0x14] adds r3, r1, 0 bics r3, r0 adds r0, r3, 0 strb r0, [r2] movs r3, 0 adds r7, r4, 0 adds r1, r7, 0 movs r5, 0x1 adds r4, r1, 0 adds r4, 0x34 movs r2, 0 _0800CD44: ldrh r0, [r1, 0x14] asrs r0, r3 ands r0, r5 cmp r0, 0 beq _0800CD54 lsls r0, r3, 1 adds r0, r4 strh r2, [r0] _0800CD54: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800CD44 ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x6] cmp r0, 0 bne _0800CD6A strb r0, [r1, 0x5] strb r0, [r1, 0x4] _0800CD6A: mov r3, sp ldr r1, =gUnknown_03004140 ldrb r2, [r1] ldrb r0, [r1, 0x14] ands r0, r2 strb r0, [r3] movs r3, 0 adds r7, r1, 0 ldr r2, =gUnknown_03007890 mov r1, sp movs r5, 0x1 adds r4, r7, 0 _0800CD82: ldrb r0, [r1] asrs r0, r3 ands r0, r5 cmp r0, 0 beq _0800CD96 ldrb r0, [r4, 0x1] cmp r0, 0 beq _0800CD96 subs r0, 0x1 strb r0, [r7, 0x1] _0800CD96: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800CD82 ldrb r1, [r7, 0x14] ldrb r0, [r7] bics r0, r1 strb r0, [r7] ldrb r1, [r7, 0x7] cmp r1, 0 beq _0800CDE0 ldr r0, [r2] ldrb r0, [r0] cmp r0, 0xFF bne _0800CDF2 cmp r1, 0x8 bne _0800CDCC ldrh r0, [r7, 0x1C] strh r0, [r7, 0x1A] movs r0, 0x6 strb r0, [r7, 0x7] b _0800CDDE .pool _0800CDCC: ldrb r0, [r7, 0x4] subs r0, 0x6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _0800CDE0 movs r0, 0x1 strb r0, [r7, 0x7] movs r0, 0x5 _0800CDDE: strb r0, [r7, 0x4] _0800CDE0: ldr r0, [r2] ldrb r0, [r0] cmp r0, 0xFF bne _0800CDF2 ldrb r0, [r7, 0x4] cmp r0, 0 bne _0800CDF2 movs r0, 0xFF strb r0, [r7, 0x6] _0800CDF2: ldrb r0, [r7, 0xE] cmp r0, 0 bne _0800CE3E movs r0, 0x40 movs r1, 0x1 bl sub_800D30C b _0800CE3E _0800CE02: bl sub_800D20C ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF beq _0800CE3E movs r0, 0x50 movs r1, 0 bl sub_800D30C b _0800CE3E .pool _0800CE20: cmp r6, 0 bne _0800CE42 ldr r0, =gUnknown_03004140 strb r6, [r0, 0xD] strb r6, [r0, 0x1] strb r6, [r0] movs r1, 0xFF strb r1, [r0, 0x6] bl sub_800D610 mov r4, r8 cmp r4, 0x3D bne _0800CE3E bl sub_800BFA0 _0800CE3E: cmp r6, 0 beq _0800CE92 _0800CE42: ldr r7, =gUnknown_03004140 mov r0, r8 cmp r0, 0x1C bne _0800CE74 cmp r6, 0 beq _0800CE74 ldrb r0, [r7, 0x7] cmp r0, 0x4 bne _0800CE74 ldr r2, =gUnknown_03007890 ldr r1, [r2] movs r0, 0x1 strb r0, [r1] ldr r1, [r2] movs r0, 0xF strb r0, [r1, 0x2] bl sub_800D334 bl rfu_waitREQComplete b _0800CEA4 .pool _0800CE74: movs r1, 0 mov r3, r8 strh r3, [r7, 0x14] strh r6, [r7, 0x16] ldrb r0, [r7, 0xE] cmp r0, 0 beq _0800CE86 strb r1, [r7, 0x5] strb r1, [r7, 0x4] _0800CE86: movs r0, 0xF0 movs r1, 0x2 bl sub_800D30C bl sub_800D610 _0800CE92: mov r4, r8 cmp r4, 0xFF bne _0800CEA4 movs r0, 0xF2 movs r1, 0 bl sub_800D30C bl sub_800D610 _0800CEA4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800C7B4 thumb_func_start sub_800CEB0 sub_800CEB0: @ 800CEB0 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r6, r0, 16 ldr r4, =gUnknown_03004140 ldrb r7, [r4, 0xE] movs r0, 0 strb r0, [r4, 0xE] movs r0, 0x1 strb r0, [r4, 0xF] ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r5, [r0] cmp r5, 0 bne _0800CEEC adds r0, r6, 0 bl sub_800C36C ldrb r0, [r4, 0x2] cmp r0, 0x1 beq _0800CF04 bl sub_800D610 strb r5, [r4, 0xF] strb r7, [r4, 0xE] b _0800CF28 .pool _0800CEEC: mov r0, sp bl rfu_UNI_PARENT_getDRAC_ACK lsls r0, 16 cmp r0, 0 bne _0800CF04 mov r1, sp ldrb r0, [r4, 0x3] ldrb r1, [r1] orrs r0, r1 ldrb r1, [r4, 0x3] strb r0, [r4, 0x3] _0800CF04: ldr r4, =gUnknown_03004140 ldr r1, [r4, 0x44] cmp r1, 0 beq _0800CF20 adds r0, r6, 0 bl _call_via_r1 bl rfu_waitREQComplete ldrb r0, [r4, 0x2] cmp r0, 0x2 bne _0800CF20 bl sub_800D610 _0800CF20: ldr r1, =gUnknown_03004140 movs r0, 0 strb r0, [r1, 0xF] strb r7, [r1, 0xE] _0800CF28: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800CEB0 thumb_func_start sub_800CF34 sub_800CF34: @ 800CF34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x4] subs r0, 0x5 lsls r0, 24 lsrs r0, 24 adds r3, r1, 0 cmp r0, 0x3 bls _0800CF52 b _0800D146 _0800CF52: ldr r0, =gUnknown_03007890 ldr r2, [r0] ldrb r1, [r2, 0x2] ldrb r0, [r3, 0xC] adds r4, r1, 0 eors r4, r0 ands r4, r1 ldrb r0, [r2, 0x7] bics r4, r0 mov r8, r4 strb r1, [r3, 0xC] cmp r4, 0 beq _0800CF7A strh r4, [r3, 0x14] movs r0, 0x10 movs r1, 0x1 str r3, [sp, 0x4] bl sub_800D30C ldr r3, [sp, 0x4] _0800CF7A: movs r0, 0 str r0, [sp] movs r6, 0 adds r7, r3, 0 movs r1, 0x24 adds r1, r3 mov r9, r1 _0800CF88: movs r0, 0x80 lsls r0, 17 lsls r0, r6 lsrs r4, r0, 24 movs r5, 0 mov r0, r8 ands r0, r4 cmp r0, 0 beq _0800CFDA lsls r1, r6, 1 adds r0, r7, 0 adds r0, 0x28 adds r1, r0 ldrh r0, [r7, 0x26] strh r0, [r1] mov r2, r9 ldrb r1, [r2] adds r0, r4, 0 orrs r0, r1 strb r0, [r2] adds r6, 0x1 mov r10, r6 b _0800D090 .pool _0800CFC0: ldrb r1, [r7] adds r0, r4, 0 orrs r0, r1 strb r0, [r7] ldrb r0, [r7, 0x1] adds r0, 0x1 strb r0, [r7, 0x1] ldr r0, [sp] orrs r0, r4 str r0, [sp] movs r0, 0x1 orrs r5, r0 b _0800D024 _0800CFDA: mov r1, r9 ldrb r0, [r1] ands r0, r4 adds r2, r6, 0x1 mov r10, r2 cmp r0, 0 beq _0800D090 ldr r0, =gUnknown_03007880 lsls r1, r6, 2 adds r1, r0 ldr r1, [r1] ldrh r0, [r1, 0x34] cmp r0, 0x46 bne _0800D040 adds r0, r1, 0 adds r0, 0x61 ldrb r0, [r0] cmp r0, 0x1 bne _0800D058 movs r5, 0x2 ldr r3, [r3, 0x20] ldrh r2, [r3] ldr r0, =0x0000ffff cmp r2, r0 beq _0800D024 ldr r0, =gUnknown_03007890 ldr r0, [r0] lsls r1, r6, 5 adds r0, r1 ldrh r0, [r0, 0x18] ldr r1, =0x0000ffff _0800D018: cmp r0, r2 beq _0800CFC0 adds r3, 0x2 ldrh r2, [r3] cmp r2, r1 bne _0800D018 _0800D024: movs r0, 0x1 ands r0, r5 cmp r0, 0 bne _0800D058 movs r0, 0x4 orrs r5, r0 b _0800D058 .pool _0800D040: lsls r1, r6, 1 adds r0, r3, 0 adds r0, 0x28 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] ldr r1, =0x0000ffff ands r0, r1 cmp r0, 0 bne _0800D058 movs r5, 0x6 _0800D058: movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _0800D07E mov r2, r9 ldrb r0, [r2] bics r0, r4 movs r2, 0 mov r1, r9 strb r0, [r1] lsls r0, r6, 1 adds r1, r7, 0 adds r1, 0x28 adds r0, r1 strh r2, [r0] movs r0, 0x8 adds r1, r6, 0 bl rfu_clearSlot _0800D07E: movs r0, 0x4 ands r5, r0 ldr r3, =gUnknown_03004140 cmp r5, 0 beq _0800D090 ldrb r1, [r7, 0xD] adds r0, r4, 0 orrs r0, r1 strb r0, [r7, 0xD] _0800D090: mov r2, r10 lsls r0, r2, 24 lsrs r6, r0, 24 cmp r6, 0x3 bhi _0800D09C b _0800CF88 _0800D09C: ldr r4, [sp] cmp r4, 0 beq _0800D0AE ldr r0, =gUnknown_03004140 strh r4, [r0, 0x14] movs r0, 0x11 movs r1, 0x1 bl sub_800D30C _0800D0AE: ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0xD] cmp r0, 0 beq _0800D0EA movs r5, 0x1 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0800D0CE ldrb r0, [r1, 0x3] ldrb r1, [r1] ands r0, r1 cmp r0, r1 beq _0800D0CE movs r5, 0 _0800D0CE: cmp r5, 0 beq _0800D0EA ldr r4, =gUnknown_03004140 ldrb r0, [r4, 0xD] bl sub_800D334 ldrb r0, [r4, 0xD] movs r1, 0 strh r0, [r4, 0x14] strb r1, [r4, 0xD] movs r0, 0x12 movs r1, 0x1 bl sub_800D30C _0800D0EA: ldr r0, =gUnknown_03004140 adds r1, r0, 0 adds r1, 0x24 ldrb r1, [r1] adds r3, r0, 0 cmp r1, 0 bne _0800D146 ldrb r0, [r3, 0x4] cmp r0, 0x8 bne _0800D146 ldrb r0, [r3, 0x7] cmp r0, 0 bne _0800D120 strb r0, [r3, 0x5] strb r0, [r3, 0x4] movs r0, 0x14 movs r1, 0 bl sub_800D30C b _0800D146 .pool _0800D120: cmp r0, 0x2 bne _0800D12C movs r0, 0x3 strb r0, [r3, 0x7] movs r0, 0x9 b _0800D132 _0800D12C: movs r0, 0x1 strb r0, [r3, 0x7] movs r0, 0x5 _0800D132: strb r0, [r3, 0x4] ldrb r0, [r3] cmp r0, 0 beq _0800D146 movs r0, 0 strh r0, [r3, 0x1A] movs r0, 0x8 strb r0, [r3, 0x7] movs r0, 0x5 strb r0, [r3, 0x4] _0800D146: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800CF34 thumb_func_start sub_800D158 sub_800D158: @ 800D158 push {r4-r6,lr} ldr r1, =0x04000208 ldrh r0, [r1] adds r6, r0, 0 movs r0, 0 strh r0, [r1] ldr r4, =gUnknown_03004140 ldrb r0, [r4, 0x4] cmp r0, 0xF bne _0800D1BC ldrb r1, [r4, 0x10] lsls r1, 1 adds r5, r4, 0 adds r5, 0x28 adds r1, r5 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _0800D192 ldr r1, =gUnknown_03007880 ldrb r0, [r4, 0x10] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x27 bne _0800D1BC _0800D192: bl sub_800D630 movs r0, 0x18 strb r0, [r4, 0x4] ldrb r1, [r4, 0x10] movs r0, 0x4 bl rfu_clearSlot adds r2, r4, 0 adds r2, 0x24 movs r1, 0x1 ldrb r0, [r4, 0x10] lsls r1, r0 ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldrb r0, [r4, 0x10] lsls r0, 1 adds r0, r5 movs r1, 0 strh r1, [r0] _0800D1BC: ldr r0, =0x04000208 strh r6, [r0] ldr r5, =gUnknown_03004140 ldrb r0, [r5, 0x4] cmp r0, 0x18 bne _0800D1F6 ldrb r0, [r5, 0x2] cmp r0, 0x1 bne _0800D1D2 bl sub_800D630 _0800D1D2: ldrb r0, [r5, 0x2] adds r4, r0, 0 cmp r4, 0 bne _0800D1F6 strb r4, [r5, 0x5] strb r4, [r5, 0x4] ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] orrs r0, r1 bl sub_800D334 strh r4, [r5, 0x14] movs r0, 0x25 movs r1, 0x1 bl sub_800D30C _0800D1F6: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800D158 thumb_func_start sub_800D20C sub_800D20C: @ 800D20C push {r4,r5,lr} ldr r5, =gUnknown_03004140 ldrb r0, [r5, 0x4] cmp r0, 0xF bne _0800D258 ldr r1, =gUnknown_03007880 ldrb r2, [r5, 0x10] lsls r0, r2, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x26 bne _0800D258 movs r4, 0 strb r4, [r5, 0x5] strb r4, [r5, 0x4] movs r0, 0x4 adds r1, r2, 0 bl rfu_clearSlot adds r2, r5, 0 adds r2, 0x24 movs r1, 0x1 ldrb r0, [r5, 0x10] lsls r1, r0 ldrb r0, [r2] bics r0, r1 strb r0, [r2] ldrb r0, [r5, 0x10] lsls r0, 1 adds r1, r5, 0 adds r1, 0x28 adds r0, r1 strh r4, [r0] movs r0, 0x24 movs r1, 0 bl sub_800D30C _0800D258: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800D20C thumb_func_start sub_800D268 sub_800D268: @ 800D268 push {lr} ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x6] cmp r0, 0 bne _0800D28C ldrb r0, [r1, 0xA] cmp r0, 0x1 bne _0800D28C ldrb r0, [r1, 0x4] strb r0, [r1, 0x11] ldrb r0, [r1, 0x5] strb r0, [r1, 0x12] movs r0, 0x10 strb r0, [r1, 0x4] movs r0, 0x11 strb r0, [r1, 0x5] movs r0, 0x2 strb r0, [r1, 0xA] _0800D28C: pop {r0} bx r0 .pool thumb_func_end sub_800D268 thumb_func_start sub_800D294 sub_800D294: @ 800D294 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r6, 0 movs r5, 0 ldr r1, =gUnknown_03007890 ldr r0, [r1] ldrb r0, [r0, 0x8] cmp r6, r0 bcs _0800D2F0 mov r8, r0 ldr r0, =gUnknown_03004140 mov r10, r0 mov r9, r1 _0800D2B4: mov r1, r10 ldr r3, [r1, 0x20] ldrh r2, [r3] adds r0, r5, 0x1 mov r12, r0 ldr r1, =0x0000ffff cmp r2, r1 beq _0800D2E6 mov r1, r9 ldr r0, [r1] lsls r1, r5, 5 adds r0, r1 ldrh r4, [r0, 0x18] ldr r7, =0x0000ffff movs r1, 0x1 lsls r1, r5 _0800D2D4: cmp r4, r2 bne _0800D2DE orrs r6, r1 lsls r0, r6, 24 lsrs r6, r0, 24 _0800D2DE: adds r3, 0x2 ldrh r2, [r3] cmp r2, r7 bne _0800D2D4 _0800D2E6: mov r1, r12 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, r8 bcc _0800D2B4 _0800D2F0: adds r0, r6, 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_800D294 thumb_func_start sub_800D30C sub_800D30C: @ 800D30C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r4, =gUnknown_03004140 ldr r2, [r4, 0x40] cmp r2, 0 beq _0800D322 bl _call_via_r2 _0800D322: movs r0, 0 strh r0, [r4, 0x16] strh r0, [r4, 0x14] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800D30C thumb_func_start sub_800D334 sub_800D334: @ 800D334 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_03004140 ldrb r5, [r4, 0xE] movs r1, 0x1 strb r1, [r4, 0xE] bl rfu_REQ_disconnect bl rfu_waitREQComplete strb r5, [r4, 0xE] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800D334 thumb_func_start sub_800D358 sub_800D358: @ 800D358 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _0800D3A0 movs r4, 0 _0800D36A: ldr r1, =gUnknown_03007880 lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] ldrh r0, [r2] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _0800D396 ldrb r1, [r2, 0x1A] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0800D396 adds r2, r1, 0 bics r2, r5 movs r0, 0x20 adds r1, r4, 0 bl rfu_changeSendTarget _0800D396: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800D36A _0800D3A0: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0 beq _0800D3DE movs r4, 0 _0800D3AC: ldr r1, =gUnknown_03007880 lsls r0, r4, 2 adds r0, r1 ldr r2, [r0] ldrh r0, [r2, 0x34] movs r3, 0x80 lsls r3, 8 adds r1, r3, 0 ands r0, r1 cmp r0, 0 beq _0800D3D4 adds r0, r2, 0 adds r0, 0x4E ldrb r0, [r0] ands r0, r5 cmp r0, 0 beq _0800D3D4 adds r0, r4, 0 bl rfu_NI_stopReceivingData _0800D3D4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800D3AC _0800D3DE: ldr r0, =gUnknown_03007890 ldr r3, [r0] ldrb r2, [r3, 0x6] cmp r2, 0 beq _0800D41C mvns r1, r5 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0x6] movs r4, 0 ldr r7, =gUnknown_03007870 ldr r6, =0x00008024 _0800D3F6: lsls r0, r4, 2 adds r0, r7 ldr r2, [r0] ldrh r0, [r2] cmp r0, r6 bne _0800D412 ldrb r3, [r2, 0x3] adds r0, r5, 0 ands r0, r3 cmp r0, 0 beq _0800D412 adds r0, r1, 0 ands r0, r3 strb r0, [r2, 0x3] _0800D412: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800D3F6 _0800D41C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800D358 thumb_func_start sub_800D434 sub_800D434: @ 800D434 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x18] cmp r0, 0 beq _0800D510 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 beq _0800D4D4 movs r6, 0 _0800D454: ldr r3, =gUnknown_03007880 lsls r2, r6, 2 adds r0, r2, r3 ldr r0, [r0] ldrh r1, [r0] movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 ands r1, r0 adds r7, r2, 0 adds r0, r6, 0x1 mov r9, r0 cmp r1, 0 beq _0800D4CA movs r5, 0 movs r4, 0 movs r1, 0x1 mov r8, r1 mov r10, r3 _0800D47A: adds r0, r7, r3 ldr r0, [r0] ldrb r0, [r0, 0x1A] asrs r0, r4 mov r1, r8 ands r0, r1 cmp r0, 0 beq _0800D4A4 lsls r0, r4, 2 adds r0, r3 ldr r0, [r0] ldr r1, =gUnknown_03004140 ldrh r0, [r0, 0x2] ldrh r1, [r1, 0x18] cmp r0, r1 bls _0800D4A4 mov r0, r8 lsls r0, r4 orrs r5, r0 lsls r0, r5, 24 lsrs r5, r0, 24 _0800D4A4: cmp r5, 0 beq _0800D4C0 mov r1, r10 adds r0, r7, r1 ldr r0, [r0] ldrb r0, [r0, 0x1A] adds r2, r5, 0 eors r2, r0 movs r0, 0x20 adds r1, r6, 0 str r3, [sp] bl rfu_changeSendTarget ldr r3, [sp] _0800D4C0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800D47A _0800D4CA: mov r3, r9 lsls r0, r3, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0800D454 _0800D4D4: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0 beq _0800D510 movs r6, 0 _0800D4E0: ldr r1, =gUnknown_03007880 lsls r0, r6, 2 adds r0, r1 ldr r2, [r0] ldrh r0, [r2, 0x34] movs r4, 0x80 lsls r4, 8 adds r1, r4, 0 ands r0, r1 cmp r0, 0 beq _0800D506 ldr r1, =gUnknown_03004140 ldrh r0, [r2, 0x36] ldrh r1, [r1, 0x18] cmp r0, r1 bls _0800D506 adds r0, r6, 0 bl rfu_NI_stopReceivingData _0800D506: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _0800D4E0 _0800D510: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800D434 thumb_func_start sub_800D52C sub_800D52C: @ 800D52C push {lr} ldr r1, =gUnknown_03004140 str r0, [r1, 0x44] ldr r0, =sub_800CEB0 bl rfu_setMSCCallback pop {r0} bx r0 .pool thumb_func_end sub_800D52C thumb_func_start sub_800D544 sub_800D544: @ 800D544 ldr r1, =gUnknown_03004140 str r0, [r1, 0x40] bx lr .pool thumb_func_end sub_800D544 thumb_func_start sub_800D550 sub_800D550: @ 800D550 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x9] adds r3, r0, 0 cmp r1, 0 beq _0800D578 cmp r4, 0 bne _0800D578 adds r0, 0x30 ldrb r0, [r0] cmp r0, 0 beq _0800D578 movs r0, 0x5 b _0800D588 .pool _0800D578: ldr r2, =0x04000208 ldrh r1, [r2] movs r0, 0 strh r0, [r2] strb r4, [r3, 0x9] strh r5, [r3, 0x32] strh r1, [r2] movs r0, 0 _0800D588: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_800D550 thumb_func_start sub_800D594 sub_800D594: @ 800D594 push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r0, 0x4] ldrb r0, [r0, 0x5] orrs r0, r1 cmp r0, 0 bne _0800D5B8 ldr r0, =gUnknown_03004140 strh r2, [r0, 0x18] movs r0, 0 b _0800D5C8 .pool _0800D5B8: ldr r1, =gUnknown_03004140 movs r0, 0x6 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x6 _0800D5C8: pop {r1} bx r1 .pool thumb_func_end sub_800D594 thumb_func_start sub_800D5D0 sub_800D5D0: @ 800D5D0 push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x4] subs r0, 0x9 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bhi _0800D5FC movs r0, 0x7 strh r0, [r1, 0x14] movs r0, 0xF3 movs r1, 0x1 bl sub_800D30C movs r0, 0x7 b _0800D60A .pool _0800D5FC: cmp r2, 0 beq _0800D606 movs r0, 0x1 strb r0, [r1, 0xB] b _0800D608 _0800D606: strb r3, [r1, 0xB] _0800D608: movs r0, 0 _0800D60A: pop {r1} bx r1 thumb_func_end sub_800D5D0 thumb_func_start sub_800D610 sub_800D610: @ 800D610 push {lr} ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x2] cmp r0, 0 beq _0800D628 ldrb r0, [r1, 0x2] movs r0, 0 strb r0, [r1, 0x2] movs r0, 0x45 movs r1, 0 bl sub_800D30C _0800D628: pop {r0} bx r0 .pool thumb_func_end sub_800D610 thumb_func_start sub_800D630 sub_800D630: @ 800D630 push {lr} ldr r1, =gUnknown_03004140 ldrb r0, [r1, 0x2] cmp r0, 0 bne _0800D648 movs r0, 0x45 movs r1, 0 bl sub_800D30C b _0800D654 .pool _0800D648: ldrb r0, [r1, 0x2] cmp r0, 0x1 bne _0800D654 ldrb r0, [r1, 0x2] movs r0, 0x2 strb r0, [r1, 0x2] _0800D654: pop {r0} bx r0 thumb_func_end sub_800D630 thumb_func_start sub_800D658 sub_800D658: @ 800D658 push {lr} ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x7] adds r2, r0, 0 cmp r1, 0 beq _0800D6C2 ldrb r0, [r2, 0x4] subs r0, 0x5 cmp r0, 0x6 bhi _0800D6C2 lsls r0, 2 ldr r1, =_0800D680 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800D680: .4byte _0800D69C .4byte _0800D6A4 .4byte _0800D6AE .4byte _0800D6AE .4byte _0800D6B4 .4byte _0800D6B4 .4byte _0800D6BA _0800D69C: movs r0, 0x3 strb r0, [r2, 0x7] movs r0, 0x9 b _0800D6C0 _0800D6A4: movs r0, 0x2 strb r0, [r2, 0x7] movs r0, 0x1 strh r0, [r2, 0x1A] b _0800D6C2 _0800D6AE: movs r0, 0x2 strb r0, [r2, 0x7] b _0800D6C2 _0800D6B4: movs r0, 0x28 strh r0, [r2, 0x1A] b _0800D6C2 _0800D6BA: movs r0, 0x28 strh r0, [r2, 0x1A] movs r0, 0xA _0800D6C0: strb r0, [r2, 0x4] _0800D6C2: pop {r0} bx r0 thumb_func_end sub_800D658 thumb_func_start sub_800D6C8 sub_800D6C8: @ 800D6C8 push {r4,r5,lr} adds r3, r0, 0 movs r0, 0 movs r4, 0 movs r5, 0x46 _0800D6D2: adds r2, r0, 0x1 movs r1, 0x45 muls r0, r5 adds r0, r3 adds r0, 0x45 _0800D6DC: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0800D6DC adds r0, r2, 0 cmp r0, 0x1F ble _0800D6D2 movs r1, 0 ldr r2, =0x000008c1 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0x8C lsls r2, 4 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x000008c2 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x000008c3 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800D6C8 thumb_func_start sub_800D724 sub_800D724: @ 800D724 push {r4,lr} adds r3, r0, 0 movs r1, 0 movs r4, 0 _0800D72C: lsls r0, r1, 3 adds r2, r1, 0x1 subs r0, r1 movs r1, 0xD lsls r0, 1 adds r0, r3 adds r0, 0xD _0800D73A: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0800D73A adds r1, r2, 0 cmp r1, 0x27 ble _0800D72C movs r1, 0 ldr r2, =0x00000231 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0x8C lsls r2, 2 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x00000232 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x00000233 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800D724 thumb_func_start sub_800D780 sub_800D780: @ 800D780 push {r4,lr} adds r3, r0, 0 movs r1, 0 movs r4, 0 _0800D788: lsls r0, r1, 8 adds r2, r1, 0x1 movs r1, 0xFF adds r0, r3 adds r0, 0xFF _0800D792: strb r4, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0800D792 adds r1, r2, 0 cmp r1, 0x1 ble _0800D788 movs r1, 0 ldr r2, =0x00000201 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] movs r2, 0x80 lsls r2, 2 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x00000202 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] ldr r2, =0x00000203 adds r0, r3, r2 ldrb r2, [r0] strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800D780 thumb_func_start sub_800D7D8 sub_800D7D8: @ 800D7D8 push {r4-r7,lr} adds r3, r0, 0 adds r4, r1, 0 ldr r1, =0x000008c2 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1F bhi _0800D874 ldr r0, =0x04000208 ldrh r1, [r0] adds r7, r1, 0 movs r1, 0 strh r1, [r0] movs r5, 0 movs r2, 0 _0800D7F6: adds r1, r4, r2 ldrb r0, [r1] cmp r0, 0 bne _0800D80A ldrb r0, [r1, 0x1] cmp r0, 0 bne _0800D80A adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0800D80A: adds r2, 0xE cmp r2, 0x45 ble _0800D7F6 cmp r5, 0x5 beq _0800D866 movs r2, 0 movs r0, 0x8C lsls r0, 4 adds r5, r3, r0 movs r6, 0x46 _0800D81E: ldrb r0, [r5] adds r1, r0, 0 muls r1, r6 adds r1, r2, r1 adds r1, r3, r1 adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x45 ble _0800D81E movs r0, 0x8C lsls r0, 4 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1F ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r0, =0x000008c2 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r1, 0 adds r0, r4, 0 adds r0, 0x45 _0800D85E: strb r1, [r0] subs r0, 0x1 cmp r0, r4 bge _0800D85E _0800D866: ldr r0, =0x04000208 strh r7, [r0] b _0800D87E .pool _0800D874: ldr r1, =0x000008c3 adds r0, r3, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _0800D87E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800D7D8 thumb_func_start sub_800D888 sub_800D888: @ 800D888 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r1, =0x00000232 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0x27 bhi _0800D920 ldr r1, =0x04000208 ldrh r0, [r1] adds r7, r0, 0 movs r0, 0 strh r0, [r1] movs r2, 0 ldrb r0, [r5] cmp r0, 0 bne _0800D8B8 _0800D8AA: adds r2, 0x1 cmp r2, 0xD bgt _0800D8B8 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 beq _0800D8AA _0800D8B8: cmp r2, 0xE beq _0800D910 movs r2, 0 movs r0, 0x8C lsls r0, 2 adds r3, r6, r0 _0800D8C4: ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r2, r0 adds r0, r6, r0 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xD ble _0800D8C4 movs r1, 0x8C lsls r1, 2 adds r4, r6, r1 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x28 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r0, =0x00000232 adds r1, r6, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r1, 0 adds r0, r5, 0 adds r0, 0xD _0800D908: strb r1, [r0] subs r0, 0x1 cmp r0, r5 bge _0800D908 _0800D910: ldr r0, =0x04000208 strh r7, [r0] b _0800D92A .pool _0800D920: ldr r1, =0x00000233 adds r0, r6, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _0800D92A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800D888 thumb_func_start sub_800D934 sub_800D934: @ 800D934 push {r4-r7,lr} adds r3, r0, 0 adds r4, r1, 0 ldr r1, =0x04000208 ldrh r0, [r1] mov r12, r0 movs r0, 0 strh r0, [r1] movs r1, 0x8C lsls r1, 4 adds r0, r3, r1 ldr r7, =0x000008c1 adds r5, r3, r7 ldrb r1, [r0] ldrb r0, [r5] cmp r1, r0 beq _0800D960 ldr r1, =0x000008c3 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0800D984 _0800D960: movs r1, 0 adds r0, r4, 0 adds r0, 0x45 _0800D966: strb r1, [r0] subs r0, 0x1 cmp r0, r4 bge _0800D966 ldr r0, =0x04000208 mov r7, r12 strh r7, [r0] movs r0, 0 b _0800D9CA .pool _0800D984: movs r2, 0 movs r6, 0x46 _0800D988: adds r1, r4, r2 ldrb r0, [r5] adds r7, r0, 0 muls r7, r6 adds r0, r7, 0 adds r0, r2, r0 adds r0, r3, r0 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x45 ble _0800D988 ldr r0, =0x000008c1 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1F ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r7, =0x000008c2 adds r1, r3, r7 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldr r0, =0x04000208 mov r1, r12 strh r1, [r0] movs r0, 0x1 _0800D9CA: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800D934 thumb_func_start sub_800D9DC sub_800D9DC: @ 800D9DC push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 movs r1, 0x8C lsls r1, 2 adds r0, r5, r1 adds r1, 0x1 adds r4, r5, r1 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 beq _0800DA00 ldr r1, =0x00000233 adds r0, r5, r1 ldrb r0, [r0] adds r2, r0, 0 cmp r2, 0 beq _0800DA08 _0800DA00: movs r0, 0 b _0800DA54 .pool _0800DA08: ldr r1, =0x04000208 ldrh r0, [r1] adds r7, r0, 0 strh r2, [r1] movs r3, 0 _0800DA12: adds r2, r6, r3 ldrb r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r3, r0 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r2] adds r3, 0x1 cmp r3, 0xD ble _0800DA12 ldr r0, =0x00000231 adds r4, r5, r0 ldrb r0, [r4] adds r0, 0x1 ldrb r1, [r4] strb r0, [r4] ldrb r0, [r4] movs r1, 0x28 bl __umodsi3 ldrb r1, [r4] strb r0, [r4] ldr r0, =0x00000232 adds r1, r5, r0 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldr r0, =0x04000208 strh r7, [r0] movs r0, 0x1 _0800DA54: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800D9DC thumb_func_start sub_800DA68 sub_800DA68: @ 800DA68 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0800DA7E adds r0, r2, 0 movs r1, 0 bl sub_800DAC8 b _0800DAC0 _0800DA7E: movs r3, 0 _0800DA80: ldrb r1, [r2, 0x1C] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r3, r0 adds r0, r2, r0 adds r1, r4, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, 0xD ble _0800DA80 ldrb r0, [r2, 0x1C] adds r0, 0x1 ldrb r1, [r2, 0x1C] strb r0, [r2, 0x1C] ldrb r1, [r2, 0x1C] movs r0, 0x1 ands r0, r1 ldrb r1, [r2, 0x1C] strb r0, [r2, 0x1C] ldrb r0, [r2, 0x1E] cmp r0, 0x1 bhi _0800DABA ldrb r0, [r2, 0x1E] adds r0, 0x1 ldrb r1, [r2, 0x1E] strb r0, [r2, 0x1E] b _0800DAC0 _0800DABA: ldrb r0, [r2, 0x1C] ldrb r1, [r2, 0x1D] strb r0, [r2, 0x1D] _0800DAC0: pop {r4} pop {r0} bx r0 thumb_func_end sub_800DA68 thumb_func_start sub_800DAC8 sub_800DAC8: @ 800DAC8 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 ldrb r0, [r3, 0x1E] cmp r0, 0 bne _0800DAD8 movs r0, 0 b _0800DB12 _0800DAD8: cmp r5, 0 beq _0800DAF6 movs r4, 0 _0800DADE: adds r2, r5, r4 ldrb r1, [r3, 0x1D] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, r4, r0 adds r0, r3, r0 ldrb r0, [r0] strb r0, [r2] adds r4, 0x1 cmp r4, 0xD ble _0800DADE _0800DAF6: ldrb r0, [r3, 0x1D] adds r0, 0x1 ldrb r1, [r3, 0x1D] strb r0, [r3, 0x1D] ldrb r1, [r3, 0x1D] movs r0, 0x1 ands r0, r1 ldrb r1, [r3, 0x1D] strb r0, [r3, 0x1D] ldrb r0, [r3, 0x1E] subs r0, 0x1 ldrb r1, [r3, 0x1E] strb r0, [r3, 0x1E] movs r0, 0x1 _0800DB12: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800DAC8 thumb_func_start sub_800DB18 sub_800DB18: @ 800DB18 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 ldr r1, =0x00000202 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1 bhi _0800DB70 movs r2, 0 movs r0, 0x80 lsls r0, 2 adds r4, r3, r0 _0800DB30: ldrb r0, [r4] lsls r0, 8 adds r0, r2, r0 adds r0, r3, r0 adds r1, r5, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xFF ble _0800DB30 movs r0, 0x80 lsls r0, 2 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1 ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r0, =0x00000202 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] b _0800DB7A .pool _0800DB70: ldr r1, =0x00000203 adds r0, r3, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] _0800DB7A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800DB18 thumb_func_start sub_800DB84 sub_800DB84: @ 800DB84 push {r4,r5,lr} adds r3, r0, 0 adds r5, r1, 0 movs r1, 0x80 lsls r1, 2 adds r0, r3, r1 adds r1, 0x1 adds r4, r3, r1 ldrb r1, [r0] ldrb r0, [r4] cmp r1, r0 beq _0800DBA6 ldr r1, =0x00000203 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0800DBB0 _0800DBA6: movs r0, 0 b _0800DBEA .pool _0800DBB0: movs r2, 0 _0800DBB2: adds r0, r5, r2 ldrb r1, [r4] lsls r1, 8 adds r1, r2, r1 adds r1, r3, r1 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0xFF ble _0800DBB2 ldr r0, =0x00000201 adds r1, r3, r0 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] ldrb r2, [r1] movs r0, 0x1 ands r0, r2 ldrb r2, [r1] strb r0, [r1] ldr r0, =0x00000202 adds r1, r3, r0 ldrb r0, [r1] subs r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r0, 0x1 _0800DBEA: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_800DB84 thumb_func_start sub_800DBF8 sub_800DBF8: @ 800DBF8 push {r4-r7,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 movs r5, 0 cmp r1, 0x1 beq _0800DC36 cmp r1, 0x1 bgt _0800DC12 cmp r1, 0 beq _0800DC1C b _0800DCAA _0800DC12: cmp r0, 0x2 beq _0800DC56 cmp r0, 0x3 beq _0800DC76 b _0800DCAA _0800DC1C: movs r4, 0 _0800DC1E: adds r0, r6, r4 adds r1, r4, 0x1 strb r1, [r0] lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 adds r4, r1, 0 cmp r4, 0xC7 ble _0800DC1E b _0800DC70 _0800DC36: movs r4, 0 adds r2, r6, 0 adds r2, 0xC8 _0800DC3C: adds r0, r6, r4 adds r1, r4, 0x1 strb r1, [r0] lsls r0, r5, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 adds r4, r1, 0 cmp r4, 0x63 ble _0800DC3C strh r5, [r2] b _0800DCAA _0800DC56: movs r4, 0 _0800DC58: bl Random lsls r0, 24 lsrs r0, 24 adds r1, r6, r4 strb r0, [r1] adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r4, 0x1 cmp r4, 0xC7 ble _0800DC58 _0800DC70: adds r0, r6, r4 strh r5, [r0] b _0800DCAA _0800DC76: movs r4, 0 ldr r3, =gUnknown_03000D74 ldrb r1, [r3] ldrb r0, [r3] adds r7, r0, 0x1 adds r2, r1, 0x1 movs r0, 0xFF mov r12, r0 _0800DC86: adds r0, r6, r4 adds r1, r4, 0x1 strb r2, [r0] adds r0, r4, r7 mov r4, r12 ands r0, r4 adds r0, r5, r0 lsls r0, 16 lsrs r5, r0, 16 adds r2, 0x1 adds r4, r1, 0 cmp r1, 0xC7 ble _0800DC86 adds r0, r6, r1 strh r5, [r0] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _0800DCAA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800DBF8 thumb_func_start sub_800DCB4 sub_800DCB4: @ 800DCB4 push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldrb r0, [r1] cmp r0, 0xFF beq _0800DCD8 ldr r5, =gUnknown_082ED470 adds r2, r1, 0 _0800DCC4: adds r1, r4, r3 ldrb r0, [r2] adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _0800DCC4 _0800DCD8: adds r1, r4, r3 movs r0, 0 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800DCB4 thumb_func_start sub_800DCE8 sub_800DCE8: @ 800DCE8 push {r4,r5,lr} adds r4, r0, 0 movs r3, 0 ldrb r0, [r1] cmp r0, 0 beq _0800DD0C ldr r5, =gUnknown_082ED370 adds r2, r1, 0 _0800DCF8: adds r1, r4, r3 ldrb r0, [r2] adds r0, r5 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 ldrb r0, [r2] cmp r0, 0 bne _0800DCF8 _0800DD0C: adds r1, r4, r3 movs r0, 0xFF strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800DCE8 thumb_func_start sub_800DD1C sub_800DD1C: @ 800DD1C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 ldr r0, =gUnknown_03007890 ldr r4, [r0] ldrb r2, [r4, 0x2] ldrb r1, [r4] adds r7, r0, 0 cmp r1, 0x1 bne _0800DD72 movs r3, 0 ands r1, r2 cmp r1, 0 beq _0800DD4E cmp r5, 0x1 bne _0800DD48 ldrb r0, [r4, 0xA] b _0800DD8C .pool _0800DD48: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0800DD4E: lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bhi _0800DD8A movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _0800DD4E adds r0, r6, 0x1 cmp r5, r0 bne _0800DD48 _0800DD68: ldr r0, [r7] adds r0, 0xA adds r0, r3 ldrb r0, [r0] b _0800DD8C _0800DD72: movs r3, 0 movs r1, 0x1 _0800DD76: adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0800DD68 lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800DD76 _0800DD8A: movs r0, 0 _0800DD8C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800DD1C thumb_func_start sub_800DD94 sub_800DD94: @ 800DD94 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r4, 0 ldr r0, =gSaveBlock2Ptr mov r8, r0 adds r6, r7, 0x2 ldr r0, [r0] adds r5, r0, 0 adds r5, 0xA _0800DDB2: adds r0, r6, r4 adds r1, r5, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x1 ble _0800DDB2 movs r4, 0 lsls r2, 7 mov r12, r2 adds r1, r7, 0x4 _0800DDC8: adds r0, r1, r4 strb r3, [r0] asrs r3, 8 adds r4, 0x1 cmp r4, 0x3 ble _0800DDC8 mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x8] movs r6, 0x1 movs r1, 0x1 ands r1, r0 ldrb r2, [r7, 0xB] movs r5, 0x2 negs r5, r5 adds r0, r5, 0 ands r0, r2 orrs r0, r1 strb r0, [r7, 0xB] movs r4, 0x7F mov r1, r9 ands r1, r4 ldrb r2, [r7, 0xA] movs r0, 0x80 negs r0, r0 ands r0, r2 orrs r0, r1 ands r0, r4 mov r1, r12 orrs r0, r1 strb r0, [r7, 0xA] ldrb r0, [r7] movs r1, 0x10 negs r1, r1 ands r1, r0 movs r0, 0x2 orrs r1, r0 ldrb r2, [r7, 0x1] movs r0, 0x3D negs r0, r0 ands r0, r2 movs r2, 0xC orrs r0, r2 strb r0, [r7, 0x1] movs r0, 0x11 negs r0, r0 ands r1, r0 subs r0, 0x10 ands r1, r0 subs r0, 0x20 ands r1, r0 strb r1, [r7] ldr r0, =0x0000087f bl FlagGet lsls r0, 7 ldrb r1, [r7] ands r4, r1 orrs r4, r0 strb r4, [r7] bl IsNationalPokedexEnabled ands r0, r6 ldrb r1, [r7, 0x1] ands r5, r1 orrs r5, r0 strb r5, [r7, 0x1] ldr r0, =0x00000864 bl FlagGet ands r6, r0 lsls r6, 1 ldrb r1, [r7, 0x1] movs r0, 0x3 negs r0, r0 ands r0, r1 orrs r0, r6 strb r0, [r7, 0x1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800DD94 thumb_func_start sub_800DE7C sub_800DE7C: @ 800DE7C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 mov r8, r1 lsls r2, 24 lsrs r5, r2, 24 ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _0800DED8 movs r0, 0x1 mov r9, r0 ldr r6, =gUnknown_03007890 ldr r0, [r6] lsls r4, r5, 5 adds r0, r4 ldrh r0, [r0, 0x18] bl sub_8010454 cmp r0, 0 beq _0800DEB8 ldr r1, [r6] ldrb r0, [r1, 0x7] asrs r0, r5 mov r2, r9 ands r0, r2 cmp r0, 0 bne _0800DEF0 _0800DEB8: adds r0, r7, 0 movs r1, 0 movs r2, 0xD bl memset mov r0, r8 movs r1, 0 movs r2, 0x8 bl memset b _0800DF24 .pool _0800DED8: movs r0, 0 mov r9, r0 ldr r6, =gUnknown_03007890 ldr r0, [r6] lsls r4, r5, 5 adds r0, r4 ldrh r0, [r0, 0x18] bl sub_8010454 cmp r0, 0 beq _0800DF10 ldr r1, [r6] _0800DEF0: adds r1, r4, r1 adds r1, 0x1A adds r0, r7, 0 movs r2, 0xD bl memcpy ldr r1, [r6] adds r1, r4, r1 adds r1, 0x29 mov r0, r8 movs r2, 0x8 bl memcpy b _0800DF24 .pool _0800DF10: adds r0, r7, 0 movs r1, 0 movs r2, 0xD bl memset mov r0, r8 movs r1, 0 movs r2, 0x8 bl memset _0800DF24: mov r0, r9 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800DE7C thumb_func_start sub_800DF34 sub_800DF34: @ 800DF34 push {r4-r7,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r2, 24 movs r7, 0 ldr r6, =gUnknown_03007890 ldr r0, [r6] lsrs r4, r2, 19 adds r2, r0, r4 ldrh r1, [r2, 0x18] ldr r0, =0x00007f7d cmp r1, r0 bne _0800DF74 adds r1, r2, 0 adds r1, 0x1A adds r0, r3, 0 movs r2, 0xD bl memcpy ldr r1, [r6] adds r1, r4, r1 adds r1, 0x29 adds r0, r5, 0 movs r2, 0x8 bl memcpy movs r7, 0x1 b _0800DF88 .pool _0800DF74: adds r0, r3, 0 movs r1, 0 movs r2, 0xD bl memset adds r0, r5, 0 movs r1, 0 movs r2, 0x8 bl memset _0800DF88: adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800DF34 thumb_func_start sub_800DF90 sub_800DF90: @ 800DF90 push {r4,lr} adds r4, r1, 0 ldr r1, =gUnknown_02022B14 movs r2, 0xD bl memcpy ldr r1, =gUnknown_02022B22 adds r0, r4, 0 movs r2, 0x8 bl memcpy pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800DF90 thumb_func_start sub_800DFB4 sub_800DFB4: @ 800DFB4 push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r3, 0 bne _0800DFCA cmp r2, 0 bne _0800DFCA movs r3, 0xE7 movs r2, 0x8 _0800DFCA: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _0800E024 ldr r0, =gUnknown_082ED5F0 adds r1, r3, 0 movs r3, 0 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r4, r0 ldr r0, =0x00001234 strh r0, [r4, 0x3C] ldr r0, =gUnknown_082ED5E0 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag strh r0, [r4, 0x3A] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] ldr r0, =gUnknown_02022B10 strb r5, [r0] b _0800E06A .pool _0800E024: ldr r0, =gUnknown_082ED5F0 adds r1, r3, 0 movs r3, 0 bl CreateSprite ldr r4, =gUnknown_02022B10 strb r0, [r4] ldr r5, =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x00001234 strh r1, [r0, 0x3C] ldr r0, =gUnknown_082ED5E0 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag ldrb r2, [r4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r5 strh r0, [r1, 0x3A] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0800E06A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800DFB4 thumb_func_start sub_800E084 sub_800E084: @ 800E084 push {r4,lr} ldr r4, =gSprites ldr r3, =gUnknown_02022B10 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r4 movs r0, 0x3C ldrsh r1, [r2, r0] ldr r0, =0x00001234 cmp r1, r0 bne _0800E0CA movs r0, 0 strh r0, [r2, 0x3C] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r3, =gMain movs r0, 0x84 lsls r0, 3 adds r3, r0 ldr r0, =gDummyOamData ldr r1, [r0] ldr r2, [r0, 0x4] str r1, [r3] str r2, [r3, 0x4] ldr r1, =0x070003e8 movs r2, 0x4 bl CpuSet _0800E0CA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800E084 thumb_func_start sub_800E0E8 sub_800E0E8: @ 800E0E8 push {r4,lr} ldr r4, =gUnknown_082ED5E0 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 bne _0800E100 adds r0, r4, 0 bl LoadCompressedObjectPic _0800E100: ldr r0, =gUnknown_082ED5E8 bl LoadSpritePalette ldr r1, =gUnknown_02022B10 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800E0E8 thumb_func_start sub_800E124 sub_800E124: @ 800E124 push {r4,lr} ldr r1, =gUnknown_03007890 ldr r0, [r1] ldrb r2, [r0, 0x2] movs r3, 0 movs r4, 0x1 _0800E130: adds r0, r2, 0 ands r0, r4 cmp r0, 0 beq _0800E148 ldr r0, [r1] adds r0, 0xA adds r0, r3 ldrb r0, [r0] b _0800E156 .pool _0800E148: lsrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800E130 movs r0, 0 _0800E156: pop {r4} pop {r1} bx r1 thumb_func_end sub_800E124 thumb_func_start sub_800E15C sub_800E15C: @ 800E15C push {lr} adds r2, r0, 0 movs r3, 0x32 ldrsh r0, [r2, r3] cmp r0, r1 beq _0800E170 movs r0, 0 strh r1, [r2, 0x32] strh r0, [r2, 0x34] strh r0, [r2, 0x36] _0800E170: pop {r0} bx r0 thumb_func_end sub_800E15C thumb_func_start sub_800E174 sub_800E174: @ 800E174 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, =gUnknown_02022B10 ldrb r0, [r1] cmp r0, 0xFF bne _0800E184 b _0800E346 _0800E184: ldr r2, =gSprites adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 movs r0, 0x3C ldrsh r1, [r2, r0] ldr r0, =0x00001234 cmp r1, r0 beq _0800E19C b _0800E346 _0800E19C: adds r6, r2, 0 movs r5, 0xFF movs r4, 0 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _0800E1F6 adds r7, r6, 0 adds r7, 0x28 movs r1, 0x29 adds r1, r6 mov r8, r1 b _0800E1E6 .pool _0800E1C8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_800DD1C lsls r0, 24 lsrs r0, 24 cmp r5, r0 bcc _0800E1E6 adds r0, r4, 0 bl sub_800DD1C lsls r0, 24 lsrs r5, r0, 24 _0800E1E6: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r4, r0 blt _0800E1C8 b _0800E208 _0800E1F6: bl sub_800E124 lsls r0, 24 lsrs r5, r0, 24 adds r7, r6, 0 adds r7, 0x28 movs r2, 0x29 adds r2, r6 mov r8, r2 _0800E208: bl sub_8012224 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800E218 movs r0, 0x4 b _0800E246 _0800E218: cmp r5, 0x18 bhi _0800E220 movs r0, 0x3 b _0800E246 _0800E220: adds r0, r5, 0 subs r0, 0x19 lsls r0, 24 lsrs r0, 24 cmp r0, 0x65 bhi _0800E230 movs r0, 0x2 b _0800E246 _0800E230: adds r0, r5, 0 subs r0, 0x7F lsls r0, 24 lsrs r0, 24 cmp r0, 0x65 bhi _0800E240 movs r0, 0x1 b _0800E246 _0800E240: cmp r5, 0xE4 bls _0800E248 movs r0, 0 _0800E246: strh r0, [r6, 0x2E] _0800E248: movs r3, 0x2E ldrsh r1, [r6, r3] movs r2, 0x30 ldrsh r0, [r6, r2] cmp r1, r0 beq _0800E25E adds r0, r6, 0 bl sub_800E15C ldrh r0, [r6, 0x2E] strh r0, [r6, 0x30] _0800E25E: movs r0, 0x32 ldrsh r1, [r6, r0] ldr r2, [r6, 0x8] lsls r1, 2 adds r1, r2 movs r3, 0x36 ldrsh r0, [r6, r3] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsls r0, 10 lsrs r0, 26 movs r3, 0x34 ldrsh r1, [r6, r3] cmp r0, r1 bge _0800E2AC ldrh r0, [r6, 0x36] adds r0, 0x1 movs r3, 0 strh r0, [r6, 0x36] strh r3, [r6, 0x34] movs r1, 0x32 ldrsh r0, [r6, r1] lsls r0, 2 adds r0, r2 movs r2, 0x36 ldrsh r1, [r6, r2] ldr r0, [r0] lsls r1, 2 adds r1, r0 movs r0, 0 ldrsh r1, [r1, r0] movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _0800E2B2 strh r3, [r6, 0x36] b _0800E2B2 _0800E2AC: ldrh r0, [r6, 0x34] adds r0, 0x1 strh r0, [r6, 0x34] _0800E2B2: ldr r4, =gMain movs r1, 0x84 lsls r1, 3 adds r0, r4, r1 ldr r1, =gUnknown_082ED570 ldr r2, [r1, 0x4] ldr r1, [r1] str r1, [r0] str r2, [r0, 0x4] movs r3, 0x20 ldrsh r2, [r6, r3] movs r1, 0 ldrsb r1, [r7, r1] adds r2, r1 ldr r1, =0x00000422 adds r5, r4, r1 ldr r3, =0x000001ff adds r1, r3, 0 ands r2, r1 ldrh r3, [r5] ldr r1, =0xfffffe00 ands r1, r3 orrs r1, r2 strh r1, [r5] ldrh r1, [r6, 0x22] mov r2, r8 ldrb r2, [r2] adds r1, r2 strb r1, [r0] ldrb r2, [r6, 0x5] ldr r3, =0x00000425 adds r5, r4, r3 lsrs r2, 4 lsls r2, 4 ldrb r3, [r5] movs r1, 0xF ands r1, r3 orrs r1, r2 strb r1, [r5] movs r1, 0x32 ldrsh r2, [r6, r1] ldr r1, [r6, 0x8] lsls r2, 2 adds r2, r1 movs r3, 0x36 ldrsh r1, [r6, r3] ldr r2, [r2] lsls r1, 2 adds r1, r2 ldrh r2, [r1] ldrh r6, [r6, 0x3A] adds r2, r6 ldr r1, =0x00000424 adds r4, r1 ldr r3, =0x000003ff adds r1, r3, 0 ands r2, r1 ldrh r3, [r4] ldr r1, =0xfffffc00 ands r1, r3 orrs r1, r2 strh r1, [r4] ldr r1, =0x070003e8 movs r2, 0x4 bl CpuSet bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800E346 bl sub_800E084 _0800E346: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800E174 thumb_func_start sub_800E378 sub_800E378: @ 800E378 push {lr} stm r0!, {r1} adds r1, r2, 0 bl StringCopy pop {r0} bx r0 thumb_func_end sub_800E378 thumb_func_start sub_800E388 sub_800E388: @ 800E388 push {lr} adds r2, r0, 0 movs r1, 0 _0800E38E: adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _0800E39A movs r0, 0x1 b _0800E3A2 _0800E39A: adds r1, 0x1 cmp r1, 0x7 ble _0800E38E movs r0, 0 _0800E3A2: pop {r1} bx r1 thumb_func_end sub_800E388 thumb_func_start sub_800E3A8 sub_800E3A8: @ 800E3A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _0800E3BE b _0800E520 _0800E3BE: movs r0, 0xF0 bl AllocZeroed str r0, [sp, 0x14] movs r4, 0 b _0800E434 .pool _0800E3D0: lsls r2, r4, 2 mov r0, sp adds r1, r0, r2 movs r0, 0x1 negs r0, r0 str r0, [r1] movs r5, 0 mov r8, r2 lsls r0, r4, 3 adds r1, r4, 0x1 mov r9, r1 subs r0, r4 lsls r0, 2 str r0, [sp, 0x1C] ldr r7, =gLinkPlayers + 8 mov r10, r7 ldr r6, =0x00003b98 movs r4, 0 mov r0, r10 subs r0, 0x4 ldr r1, [sp, 0x1C] adds r3, r1, r0 _0800E3FC: ldrh r1, [r3] ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r7, =0x00003b98 adds r0, r2, r7 adds r0, r4 ldr r0, [r0] cmp r1, r0 bne _0800E428 adds r1, r2, r6 adds r1, 0x4 ldr r0, [sp, 0x1C] add r0, r10 str r3, [sp, 0x18] bl StringCompare ldr r3, [sp, 0x18] cmp r0, 0 bne _0800E428 mov r0, sp add r0, r8 str r5, [r0] _0800E428: adds r6, 0xC adds r4, 0xC adds r5, 0x1 cmp r5, 0x13 ble _0800E3FC mov r4, r9 _0800E434: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _0800E3D0 movs r0, 0 mov r8, r0 movs r4, 0 mov r7, sp movs r5, 0 ldr r6, [sp, 0x14] b _0800E4AC .pool _0800E45C: bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0800E4A6 ldr r2, =gLinkPlayers adds r0, r5, r2 ldrh r0, [r0, 0x1A] cmp r0, 0x1 beq _0800E4A6 adds r0, r2, 0x4 adds r0, r5, r0 ldrh r1, [r0] adds r2, 0x8 adds r2, r5, r2 adds r0, r6, 0 bl sub_800E378 ldr r2, [r7] cmp r2, 0 blt _0800E4A0 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r0, r1 ldr r1, =0x00003b9c adds r0, r1 movs r1, 0 movs r2, 0x8 bl memset _0800E4A0: adds r6, 0xC movs r0, 0x1 add r8, r0 _0800E4A6: adds r7, 0x4 adds r5, 0x1C adds r4, 0x1 _0800E4AC: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _0800E45C movs r4, 0 ldr r1, =gSaveBlock1Ptr mov r9, r1 ldr r6, =0x00003b98 movs r7, 0 mov r1, r8 lsls r0, r1, 1 add r0, r8 lsls r0, 2 ldr r1, [sp, 0x14] adds r5, r0, r1 _0800E4CE: mov r1, r9 ldr r0, [r1] adds r0, r6 adds r0, 0x4 bl sub_800E388 cmp r0, 0 beq _0800E500 mov r0, r9 ldr r2, [r0] ldr r1, =0x00003b98 adds r0, r2, r1 adds r0, r7 ldr r1, [r0] adds r2, r6 adds r2, 0x4 adds r0, r5, 0 bl sub_800E378 adds r5, 0xC movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x13 bgt _0800E50A _0800E500: adds r6, 0xC adds r7, 0xC adds r4, 0x1 cmp r4, 0x13 ble _0800E4CE _0800E50A: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r7, =0x00003b98 adds r0, r7 ldr r1, [sp, 0x14] movs r2, 0xF0 bl memcpy ldr r0, [sp, 0x14] bl Free _0800E520: 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_800E3A8 thumb_func_start sub_800E540 sub_800E540: @ 800E540 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r1 lsls r0, 16 lsrs r0, 16 mov r8, r0 movs r7, 0 ldr r6, =gSaveBlock1Ptr ldr r4, =0x00003b98 movs r5, 0 _0800E558: ldr r0, [r6] adds r0, r4 adds r0, 0x4 mov r1, r9 bl StringCompare cmp r0, 0 bne _0800E584 ldr r0, [r6] ldr r1, =0x00003b98 adds r0, r1 adds r0, r5 ldr r0, [r0] cmp r0, r8 bne _0800E584 movs r0, 0x1 b _0800E59E .pool _0800E584: ldr r0, [r6] adds r0, r4 adds r0, 0x4 bl sub_800E388 cmp r0, 0 beq _0800E59C adds r4, 0xC adds r5, 0xC adds r7, 0x1 cmp r7, 0x13 ble _0800E558 _0800E59C: movs r0, 0 _0800E59E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800E540 thumb_func_start sub_800E5AC sub_800E5AC: @ 800E5AC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r0, =0x00003b98 mov r8, r0 movs r7, 0 mov r6, r8 movs r5, 0 movs r4, 0x13 _0800E5C0: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] mov r2, r8 adds r0, r1, r2 adds r0, r5 str r7, [r0] mov r0, sp strh r7, [r0] adds r1, r6 adds r1, 0x4 ldr r2, =0x01000004 bl CpuSet adds r6, 0xC adds r5, 0xC subs r4, 0x1 cmp r4, 0 bge _0800E5C0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800E5AC thumb_func_start nullsub_5 nullsub_5: @ 800E5FC bx lr thumb_func_end nullsub_5 thumb_func_start nullsub_13 nullsub_13: @ 800E600 bx lr thumb_func_end nullsub_13 thumb_func_start sub_800E604 sub_800E604: @ 800E604 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r6, =gUnknown_03005000 adds r5, r6, 0 adds r5, 0xEE ldrb r4, [r5] mov r0, sp movs r7, 0 strh r7, [r0] ldr r2, =0x0100067a adds r1, r6, 0 bl CpuSet ldrb r0, [r5] strb r4, [r5] movs r0, 0xFF strb r0, [r6, 0xC] ldrb r0, [r5] cmp r0, 0x4 beq _0800E636 ldrb r0, [r5] strb r7, [r5] _0800E636: mov r7, sp adds r7, 0x2 add r0, sp, 0x4 mov r8, r0 movs r0, 0x6 add r0, sp mov r9, r0 adds r5, r6, 0 adds r5, 0x80 movs r4, 0x4 _0800E64A: adds r0, r5, 0 bl sub_800FCC4 adds r5, 0x14 subs r4, 0x1 cmp r4, 0 bge _0800E64A movs r5, 0 ldr r4, =gUnknown_0300506C adds r0, r4, 0 bl sub_800FCC4 adds r0, r4, 0 adds r0, 0xB8 bl sub_800D6C8 ldr r0, =0x0000097c adds r4, r0 adds r0, r4, 0 bl sub_800D724 strh r5, [r7] ldr r1, =gUnknown_03003110 ldr r2, =0x01000008 adds r0, r7, 0 bl CpuSet mov r0, r8 strh r5, [r0] ldr r1, =gUnknown_03003090 ldr r2, =0x01000028 bl CpuSet mov r0, r9 strh r5, [r0] ldr r1, =gLinkPlayers ldr r2, =0x01000046 bl CpuSet add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800E604 thumb_func_start sub_800E6D0 sub_800E6D0: @ 800E6D0 push {r4-r6,lr} ldr r4, =gIntrTable ldr r5, [r4, 0x4] ldr r6, [r4, 0x8] bl sub_800E700 bl rfu_REQ_stopMode bl rfu_waitREQComplete ldr r1, =0x04000208 movs r0, 0 strh r0, [r1] str r5, [r4, 0x4] str r6, [r4, 0x8] movs r0, 0x1 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800E6D0 thumb_func_start sub_800E700 sub_800E700: @ 800E700 push {r4,lr} ldr r0, =gUnknown_03004190 ldr r1, =0x00000e64 ldr r4, =gIntrTable + 0x4 adds r2, r4, 0 movs r3, 0x1 bl rfu_initializeAPI lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _0800E732 ldr r0, =gUnknown_020229C6 strh r1, [r0] bl sub_800AAF4 movs r0, 0 bl sub_80111B0 bl sub_800E604 adds r1, r4, 0x4 movs r0, 0x3 bl rfu_setTimerInterrupt _0800E732: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800E700 thumb_func_start sub_800E748 sub_800E748: @ 800E748 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_8010750 ldr r0, =gUnknown_03005000 ldrh r0, [r0, 0x4] cmp r0, 0x12 bls _0800E75C b _0800E862 _0800E75C: lsls r0, 2 ldr r1, =_0800E770 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800E770: .4byte _0800E7BC .4byte _0800E862 .4byte _0800E7E4 .4byte _0800E862 .4byte _0800E814 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E862 .4byte _0800E828 _0800E7BC: ldr r0, =gUnknown_02022B2C bl sub_800BFCC ldr r0, =gUnknown_03005000 movs r2, 0x1 strh r2, [r0, 0x4] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xA] b _0800E862 .pool _0800E7E4: ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] ldr r3, =gUnknown_082ED6E0 movs r1, 0 movs r2, 0xF0 bl sub_800C054 movs r0, 0x3 strh r0, [r4, 0x4] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x6 strh r1, [r0, 0xA] b _0800E862 .pool _0800E814: movs r0, 0 bl sub_800C27C ldr r1, =gUnknown_03005000 movs r0, 0x5 strh r0, [r1, 0x4] b _0800E862 .pool _0800E828: ldr r4, =gUnknown_03005000 ldr r0, =0x00000cdb adds r1, r4, r0 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r0, =sub_800EDBC bl sub_800D52C bl sub_800EAB4 bl sub_800EAFC movs r0, 0x14 strh r0, [r4, 0x4] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0xA] ldr r0, =sub_801084C movs r1, 0x5 bl CreateTask adds r0, r5, 0 bl DestroyTask _0800E862: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800E748 thumb_func_start sub_800E87C sub_800E87C: @ 800E87C lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_082ED6A5 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_800E87C thumb_func_start sub_800E88C sub_800E88C: @ 800E88C push {r4-r7,lr} adds r2, r0, 0 adds r5, r1, 0 movs r4, 0x1 adds r1, r2, 0 movs r6, 0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0800E8CC movs r3, 0 movs r5, 0x1 ldr r1, =gUnknown_03005CDE _0800E8A6: adds r0, r2, 0 ands r0, r5 cmp r0, 0 beq _0800E8B8 adds r0, r3, r1 strb r4, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0800E8B8: asrs r2, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800E8A6 b _0800E942 .pool _0800E8CC: movs r3, 0 mvns r0, r1 mov r12, r0 movs r7, 0x1 ldr r4, =gUnknown_03005CDE _0800E8D6: adds r2, r1, 0 ands r2, r7 cmp r2, 0 bne _0800E8E2 adds r0, r3, r4 strb r2, [r0] _0800E8E2: asrs r1, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800E8D6 movs r4, 0x4 ldr r0, =gUnknown_03005CDE ldrb r7, [r0] _0800E8F4: movs r3, 0 subs r1, r4, 0x1 cmp r7, r4 beq _0800E910 ldr r2, =gUnknown_03005CDE _0800E8FE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bhi _0800E910 adds r0, r3, r2 ldrb r0, [r0] cmp r0, r4 bne _0800E8FE _0800E910: cmp r3, 0x4 bne _0800E916 adds r6, r4, 0 _0800E916: lsls r0, r1, 24 lsrs r4, r0, 24 cmp r4, 0 bne _0800E8F4 mov r0, r12 ands r5, r0 movs r3, 0 movs r2, 0x1 ldr r1, =gUnknown_03005CDE _0800E928: adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _0800E936 adds r0, r3, r1 strb r6, [r0] adds r6, 0x1 _0800E936: asrs r5, 1 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _0800E928 _0800E942: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800E88C thumb_func_start sub_800E94C sub_800E94C: @ 800E94C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_03005000 ldrh r3, [r0, 0x4] adds r7, r0, 0 cmp r3, 0xC bls _0800E95E b _0800EA9A _0800E95E: lsls r0, r3, 2 ldr r1, =_0800E970 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800E970: .4byte _0800E9A4 .4byte _0800EA9A .4byte _0800EA9A .4byte _0800EA9A .4byte _0800EA9A .4byte _0800EA9A .4byte _0800E9BC .4byte _0800EA9A .4byte _0800EA9A .4byte _0800E9E4 .4byte _0800EA9A .4byte _0800E9F8 .4byte _0800EA3C _0800E9A4: ldr r0, =gUnknown_082ED608 bl sub_800BFCC ldr r0, =gUnknown_03005000 movs r2, 0x1 strh r2, [r0, 0x4] b _0800E9CC .pool _0800E9BC: ldrb r0, [r7, 0xC] ldr r3, =gUnknown_082ED6E0 movs r1, 0 movs r2, 0xF0 bl sub_800C054 movs r2, 0x7 strh r2, [r7, 0x4] _0800E9CC: ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xA] b _0800EA9A .pool _0800E9E4: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r0, 0xA strh r0, [r1, 0xA] b _0800EA9A .pool _0800E9F8: bl sub_80107A0 cmp r0, 0x6 beq _0800EA1C cmp r0, 0x6 bgt _0800EA0A cmp r0, 0x5 beq _0800EA10 b _0800EA9A _0800EA0A: cmp r0, 0x9 beq _0800EA1C b _0800EA9A _0800EA10: ldr r1, =gUnknown_03005000 movs r0, 0xC strh r0, [r1, 0x4] b _0800EA9A .pool _0800EA1C: bl sub_800D630 ldr r0, =gUnknown_03005000 ldr r1, =0x00000ce4 adds r0, r1 movs r1, 0x2 strb r1, [r0] adds r0, r6, 0 bl DestroyTask b _0800EA9A .pool _0800EA3C: ldr r0, =0x00000c3e adds r4, r7, r0 ldrb r0, [r4] movs r5, 0x80 lsls r5, 17 lsls r5, r0 lsrs r5, 24 ldrb r1, [r4] movs r0, 0xC bl rfu_clearSlot ldrb r1, [r4] ldr r0, =0x00000c3f adds r2, r7, r0 movs r0, 0x10 movs r3, 0x46 bl rfu_setRecvBuffer adds r1, r7, 0 adds r1, 0x4C adds r0, r5, 0 movs r2, 0xE bl rfu_UNI_setSendData ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0xA] adds r0, r6, 0 bl DestroyTask ldr r4, =gUnknown_02022B44 ldrb r0, [r4, 0xF] cmp r0, 0 bne _0800EA92 bl sub_801227C ldrb r0, [r4, 0xF] adds r0, 0x1 strb r0, [r4, 0xF] _0800EA92: ldr r0, =sub_801084C movs r1, 0x5 bl CreateTask _0800EA9A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800E94C thumb_func_start sub_800EAB4 sub_800EAB4: @ 800EAB4 push {r4,r5,lr} ldr r0, =gUnknown_03004140 ldrb r5, [r0] movs r4, 0 _0800EABC: movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0800EAE0 lsls r2, r4, 3 subs r2, r4 lsls r2, 1 ldr r0, =gUnknown_03005014 adds r2, r0 movs r0, 0x10 adds r1, r4, 0 movs r3, 0xE bl rfu_setRecvBuffer movs r0, 0x3 adds r1, r4, 0 bl rfu_clearSlot _0800EAE0: lsrs r5, 1 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800EABC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800EAB4 thumb_func_start sub_800EAFC sub_800EAFC: @ 800EAFC push {r4-r6,lr} ldr r0, =gUnknown_03004140 ldrb r5, [r0] ldr r4, =gUnknown_03005C87 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x46 bl rfu_UNI_setSendData adds r0, r5, 0 bl sub_800E87C ldr r1, =0xfffff379 adds r6, r4, r1 adds r1, r4, 0 adds r1, 0x53 strb r0, [r1] adds r4, 0x5B strb r5, [r4] movs r1, 0x1 negs r1, r1 adds r0, r5, 0 bl sub_800E88C movs r0, 0x1 strb r0, [r6, 0xC] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800EAFC thumb_func_start sub_800EB44 sub_800EB44: @ 800EB44 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x54 bne _0800EB78 bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0800EB78 ldr r0, =gUnknown_03004140 ldrb r0, [r0] bl rfu_REQ_disconnect bl rfu_waitREQComplete movs r0, 0 movs r1, 0 bl sub_8011A64 _0800EB78: ldr r0, =gUnknown_03005000 ldrh r2, [r0, 0x4] adds r6, r0, 0 cmp r2, 0x12 bls _0800EB84 b _0800ECF4 _0800EB84: lsls r0, r2, 2 ldr r1, =_0800EB9C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0800EB9C: .4byte _0800EBE8 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800ECF4 .4byte _0800EC38 .4byte _0800EC98 .4byte _0800ECF4 .4byte _0800ECAC .4byte _0800EC10 .4byte _0800ECF4 _0800EBE8: ldr r0, =gUnknown_02022B2C bl sub_800BFCC ldr r0, =gUnknown_03005000 movs r2, 0x1 strh r2, [r0, 0x4] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0xA] b _0800ECF4 .pool _0800EC10: ldr r3, =gUnknown_082ED6E0 movs r0, 0x2 movs r1, 0 movs r2, 0xF0 bl sub_800C054 ldr r0, =sub_800ED34 bl sub_800D52C ldr r1, =gUnknown_03005000 movs r0, 0x12 strh r0, [r1, 0x4] b _0800ECF4 .pool _0800EC38: ldr r1, =0x00000c3e adds r0, r6, r1 ldrb r1, [r0] movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r0, 24 adds r1, r6, 0 adds r1, 0x4C movs r2, 0xE bl rfu_UNI_setSendData lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _0800ECF4 strb r0, [r6, 0xC] adds r0, r5, 0 bl DestroyTask ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r2, 0x16 ldrsh r0, [r1, r2] cmp r0, 0 beq _0800EC88 ldr r0, =sub_8010D0C movs r1, 0x1 bl CreateTask b _0800ECF4 .pool _0800EC88: ldr r0, =sub_801084C movs r1, 0x5 bl CreateTask b _0800ECF4 .pool _0800EC98: movs r0, 0 bl sub_800C27C ldr r1, =gUnknown_03005000 movs r0, 0xF strh r0, [r1, 0x4] b _0800ECF4 .pool _0800ECAC: ldr r0, =0x00000cdb adds r1, r6, r0 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r0, =sub_800EDBC bl sub_800D52C movs r0, 0x1 bl sub_8011068 bl sub_800EAB4 bl sub_800EAFC movs r0, 0x14 strh r0, [r6, 0x4] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0xA] movs r4, 0x1 strb r4, [r6, 0xC] ldr r0, =sub_801084C movs r1, 0x5 bl CreateTask ldr r1, =0x00000ce8 adds r0, r6, r1 strb r4, [r0] adds r0, r5, 0 bl DestroyTask _0800ECF4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800EB44 thumb_func_start sub_800ED10 sub_800ED10: @ 800ED10 push {lr} ldr r3, =gUnknown_082ED6E0 movs r0, 0x1 movs r1, 0 movs r2, 0xF0 bl sub_800C054 pop {r0} bx r0 .pool thumb_func_end sub_800ED10 thumb_func_start sub_800ED28 sub_800ED28: @ 800ED28 push {lr} movs r0, 0 bl sub_800C27C pop {r0} bx r0 thumb_func_end sub_800ED28 thumb_func_start sub_800ED34 sub_800ED34: @ 800ED34 push {r4,lr} ldr r0, =gUnknown_03005000 movs r2, 0 movs r1, 0xD adds r0, 0x59 _0800ED3E: strb r2, [r0] subs r0, 0x1 subs r1, 0x1 cmp r1, 0 bge _0800ED3E bl rfu_REQ_recvData bl rfu_waitREQComplete ldr r1, =gUnknown_03007870 ldr r3, =gUnknown_03005000 ldr r0, =0x00000c3e adds r4, r3, r0 ldrb r0, [r4] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrb r0, [r0, 0x12] cmp r0, 0 beq _0800ED9A movs r2, 0xCD lsls r2, 4 adds r1, r3, r2 ldrb r0, [r1] adds r0, 0x1 ldrb r2, [r1] strb r0, [r1] movs r1, 0x92 lsls r1, 1 adds r0, r3, r1 ldr r2, =0x00000c3f adds r1, r3, r2 bl sub_800D7D8 ldr r1, =gUnknown_02022B44 ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] bl sub_800F048 ldrb r0, [r4] bl rfu_UNI_readySendData ldrb r0, [r4] bl rfu_UNI_clearRecvNewDataFlag _0800ED9A: movs r0, 0x1 bl rfu_REQ_sendData_wrapper pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800ED34 thumb_func_start sub_800EDBC sub_800EDBC: @ 800EDBC ldr r0, =gUnknown_03005000 ldr r1, =0x00000cdb adds r0, r1 ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] bx lr .pool thumb_func_end sub_800EDBC thumb_func_start sub_800EDD4 sub_800EDD4: @ 800EDD4 push {r4-r6,lr} bl sub_800C048 ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] cmp r0, 0x1 bne _0800EDF0 ldr r0, =sub_800E748 b _0800EDF6 .pool _0800EDF0: cmp r0, 0 bne _0800EE18 ldr r0, =sub_800E94C _0800EDF6: bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800EE38 adds r0, r4, 0 adds r0, 0x67 ldrb r0, [r0] bl DestroyTask bl sub_800E604 b _0800EE38 .pool _0800EE18: cmp r0, 0x2 bne _0800EE38 ldr r0, =sub_800EB44 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800EE38 adds r0, r4, 0 adds r0, 0x67 ldrb r0, [r0] bl DestroyTask bl sub_800E604 _0800EE38: movs r5, 0 ldr r6, =gUnknown_082ED7E0 _0800EE3C: lsls r0, r5, 2 adds r0, r6 ldr r4, [r0] adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800EE5E adds r0, r4, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask _0800EE5E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0800EE3C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800EDD4 thumb_func_start sub_800EE78 sub_800EE78: @ 800EE78 push {lr} ldr r0, =sub_800E748 movs r1, 0x1 bl CreateTask ldr r1, =gUnknown_03005000 adds r1, 0x67 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_800EE78 thumb_func_start sub_800EE94 sub_800EE94: @ 800EE94 push {lr} ldr r1, =gUnknown_03005000 ldrh r0, [r1, 0x4] cmp r0, 0x7 bne _0800EEB4 ldr r2, =0x00000ccd adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _0800EEB4 movs r0, 0x1 b _0800EEB6 .pool _0800EEB4: movs r0, 0 _0800EEB6: pop {r1} bx r1 thumb_func_end sub_800EE94 thumb_func_start sub_800EEBC sub_800EEBC: @ 800EEBC push {r4,lr} ldr r4, =gUnknown_03005000 ldrh r0, [r4, 0x4] cmp r0, 0x7 bne _0800EEF8 ldr r0, =gUnknown_03007890 ldr r1, [r0] ldr r2, =0x00000c3d adds r0, r4, r2 ldrb r0, [r0] lsls r0, 5 adds r1, r0 ldrh r0, [r1, 0x14] movs r1, 0xF0 bl sub_800C12C lsls r0, 24 cmp r0, 0 bne _0800EEF8 movs r0, 0x9 strh r0, [r4, 0x4] movs r0, 0x1 b _0800EEFA .pool _0800EEF8: movs r0, 0 _0800EEFA: pop {r4} pop {r1} bx r1 thumb_func_end sub_800EEBC thumb_func_start sub_800EF00 sub_800EF00: @ 800EF00 push {lr} ldr r0, =sub_800E94C movs r1, 0x1 bl CreateTask ldr r1, =gUnknown_03005000 adds r1, 0x67 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_800EF00 thumb_func_start sub_800EF1C sub_800EF1C: @ 800EF1C push {lr} ldr r0, =gUnknown_03004140 ldrb r0, [r0] cmp r0, 0 bne _0800EF30 movs r0, 0 b _0800EF32 .pool _0800EF30: movs r0, 0x1 _0800EF32: pop {r1} bx r1 thumb_func_end sub_800EF1C thumb_func_start sub_800EF38 sub_800EF38: @ 800EF38 ldr r1, =gUnknown_03005000 movs r0, 0x4 strh r0, [r1, 0x4] ldr r0, =gUnknown_03004140 ldrb r0, [r0] ldr r2, =0x00000ce7 adds r1, r2 strb r0, [r1] bx lr .pool thumb_func_end sub_800EF38 thumb_func_start sub_800EF58 sub_800EF58: @ 800EF58 push {lr} adds r1, r0, 0 ldr r2, =gUnknown_03005000 ldrh r0, [r2, 0x4] cmp r0, 0x11 beq _0800EF68 cmp r1, 0 beq _0800EF74 _0800EF68: movs r0, 0x12 strh r0, [r2, 0x4] movs r0, 0x1 b _0800EF76 .pool _0800EF74: movs r0, 0 _0800EF76: pop {r1} bx r1 thumb_func_end sub_800EF58 thumb_func_start sub_800EF7C sub_800EF7C: @ 800EF7C ldr r1, =gUnknown_03005000 movs r0, 0xE strh r0, [r1, 0x4] bx lr .pool thumb_func_end sub_800EF7C thumb_func_start sub_800EF88 sub_800EF88: @ 800EF88 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r2, 0 b _0800EF9A _0800EF92: lsrs r1, 1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 _0800EF9A: cmp r2, 0x3 bhi _0800EFAC movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800EF92 adds r0, r2, 0 bl rfu_UNI_readySendData _0800EFAC: pop {r0} bx r0 thumb_func_end sub_800EF88 thumb_func_start sub_800EFB0 sub_800EFB0: @ 800EFB0 push {r4-r7,lr} sub sp, 0x4 movs r2, 0 ldr r7, =gUnknown_03003090 ldr r0, =gUnknown_03005000 adds r6, r7, 0 ldr r1, =0x00000c87 adds r5, r0, r1 _0800EFC0: movs r3, 0 lsls r0, r2, 3 lsls r1, r2, 4 adds r4, r2, 0x1 subs r0, r2 lsls r0, 1 adds r2, r0, r5 adds r1, r6 _0800EFD0: ldrh r0, [r1] lsrs r0, 8 strb r0, [r2, 0x1] ldrh r0, [r1] strb r0, [r2] adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 cmp r3, 0x6 ble _0800EFD0 adds r2, r4, 0 cmp r2, 0x4 ble _0800EFC0 movs r0, 0 mov r1, sp strh r0, [r1] ldr r2, =0x01000028 mov r0, sp adds r1, r7, 0 bl CpuSet add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800EFB0 thumb_func_start sub_800F014 sub_800F014: @ 800F014 push {lr} ldr r3, =gUnknown_03003110 ldr r2, =gUnknown_03003090 movs r1, 0x6 _0800F01C: ldrh r0, [r3] strh r0, [r2] adds r3, 0x2 adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _0800F01C ldr r1, =gUnknown_03003110 movs r2, 0 adds r0, r1, 0 adds r0, 0xC _0800F032: strh r2, [r0] subs r0, 0x2 cmp r0, r1 bge _0800F032 pop {r0} bx r0 .pool thumb_func_end sub_800F014 thumb_func_start sub_800F048 sub_800F048: @ 800F048 push {r4,r5,lr} ldr r4, =gUnknown_03005000 ldr r0, =0x00000c3c adds r5, r4, r0 ldrb r0, [r5] cmp r0, 0 beq _0800F07A ldr r1, =0x00000c1c adds r0, r4, r1 adds r1, r4, 0 adds r1, 0x4C bl sub_800DAC8 lsls r0, 24 lsrs r2, r0, 24 ldr r1, =0x00000c3a adds r0, r4, r1 ldrb r0, [r0] adds r1, r0, 0 cmp r1, 0 bne _0800F076 ldrb r0, [r5] strb r1, [r5] _0800F076: cmp r2, 0 bne _0800F09E _0800F07A: ldr r5, =gUnknown_03005000 ldr r1, =0x00000c3c adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _0800F09E ldr r1, =0x000009e8 adds r0, r5, r1 adds r4, r5, 0 adds r4, 0x4C adds r1, r4, 0 bl sub_800D9DC ldr r1, =0x00000c1c adds r0, r5, r1 adds r1, r4, 0 bl sub_800DA68 _0800F09E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800F048 thumb_func_start sub_800F0B8 sub_800F0B8: @ 800F0B8 push {r4,lr} ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x6] cmp r0, 0 bne _0800F0CC _0800F0C4: movs r0, 0 b _0800F0EC .pool _0800F0CC: movs r3, 0 ldr r4, =gUnknown_03003090 _0800F0D0: movs r2, 0 lsls r0, r3, 4 adds r1, r0, r4 _0800F0D6: ldrh r0, [r1] cmp r0, 0 bne _0800F0C4 adds r1, 0x2 adds r2, 0x1 cmp r2, 0x6 ble _0800F0D6 adds r3, 0x1 cmp r3, 0x4 ble _0800F0D0 movs r0, 0x1 _0800F0EC: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_800F0B8 thumb_func_start sub_800F0F8 sub_800F0F8: @ 800F0F8 push {r4-r6,lr} ldr r6, =gUnknown_03005000 ldrh r0, [r6, 0x4] cmp r0, 0x13 bhi _0800F118 bl rfu_REQ_recvData bl rfu_waitREQComplete movs r0, 0 bl rfu_REQ_sendData_wrapper b _0800F1D2 .pool _0800F118: ldr r0, =0x00000cdb adds r1, r6, r0 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r0, =0x00000ce2 adds r1, r6, r0 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r1] ldrb r0, [r0, 0x2] ands r0, r1 cmp r0, r1 bne _0800F1D2 cmp r0, 0 beq _0800F1D2 ldr r1, =0x00000cdc adds r0, r6, r1 ldrb r0, [r0] adds r5, r0, 0 cmp r5, 0 bne _0800F1C8 ldr r0, =0x00000ce3 adds r4, r6, r0 ldrb r0, [r4] cmp r0, 0 beq _0800F1A8 bl sub_8011D6C strb r5, [r4] ldr r1, =0x00000ce4 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0800F18C movs r4, 0x80 lsls r4, 8 movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 adds r0, r4, 0 bl sub_8011170 b _0800F1D2 .pool _0800F18C: ldr r0, =gUnknown_03004140 ldrb r4, [r0] cmp r4, 0 bne _0800F1A8 bl sub_800EDD4 ldr r0, =gReceivedRemoteLinkPlayers strb r4, [r0] b _0800F1D2 .pool _0800F1A8: bl sub_800EFB0 ldr r0, =gUnknown_03005000 ldr r1, =0x00000cda adds r0, r1 ldrb r0, [r0] bl rfu_UNI_readySendData movs r0, 0x1 bl rfu_REQ_sendData_wrapper b _0800F1CC .pool _0800F1C8: bl rfu_REQ_PARENT_resumeRetransmitAndChange _0800F1CC: ldr r1, =gUnknown_03005000 movs r0, 0x1 strb r0, [r1, 0xE] _0800F1D2: movs r0, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_800F0F8 thumb_func_start sub_800F1E0 sub_800F1E0: @ 800F1E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r0, =gUnknown_03005000 ldrh r1, [r0, 0x4] adds r6, r0, 0 cmp r1, 0x13 bhi _0800F1F8 b _0800F45A _0800F1F8: ldrb r0, [r6, 0xE] cmp r0, 0x1 beq _0800F200 b _0800F45A _0800F200: bl rfu_waitREQComplete ldr r0, =0x00000cdb adds r2, r6, r0 ldrb r0, [r2] cmp r0, 0 bne _0800F220 adds r1, r6, 0 adds r1, 0xEE _0800F212: ldrb r0, [r1] cmp r0, 0 beq _0800F21A b _0800F480 _0800F21A: ldrb r0, [r2] cmp r0, 0 beq _0800F212 _0800F220: bl rfu_REQ_recvData bl rfu_waitREQComplete ldr r2, =gUnknown_03004140 ldr r4, =gUnknown_03005000 ldr r1, =0x00000ce2 adds r0, r4, r1 ldrb r1, [r2, 0x3] ldrb r0, [r0] ands r1, r0 cmp r1, r0 beq _0800F23C b _0800F444 _0800F23C: ldr r6, =0x00000cdc adds r1, r4, r6 ldrb r0, [r1] movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_02022B44 ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] ldrb r7, [r2] movs r5, 0 _0800F252: movs r0, 0x1 ands r0, r7 lsrs r1, r7, 1 str r1, [sp, 0x4] adds r2, r5, 0x1 str r2, [sp] cmp r0, 0 bne _0800F264 b _0800F364 _0800F264: ldr r1, =gUnknown_03005000 lsls r2, r5, 3 subs r0, r2, r5 lsls r4, r0, 1 adds r0, r1, 0 adds r0, 0x15 adds r0, r4, r0 ldrb r0, [r0] adds r6, r1, 0 adds r3, r2, 0 lsls r1, r5, 24 mov r10, r1 cmp r0, 0 beq _0800F35C ldr r2, =0x00000cee adds r0, r6, r2 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0xFF beq _0800F2E0 adds r0, r6, 0 adds r0, 0x14 adds r0, r4, r0 ldrb r2, [r0] lsrs r2, 5 ldrb r0, [r1] adds r0, 0x1 movs r1, 0x7 ands r0, r1 cmp r2, r0 beq _0800F2E0 ldr r0, =0x00000cea adds r1, r6, r0 adds r1, r5, r1 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bls _0800F35C movs r0, 0x81 lsls r0, 8 bl sub_8011170 b _0800F35C .pool _0800F2E0: ldr r2, =gUnknown_03005000 ldr r6, =0x00000cee adds r1, r2, r6 adds r1, r5, r1 subs r3, r5 lsls r3, 1 adds r4, r2, 0 adds r4, 0x14 adds r2, r3, r4 ldrb r0, [r2] lsrs r0, 5 strb r0, [r1] ldr r1, =gUnknown_03005000 subs r6, 0x4 adds r0, r1, r6 adds r0, r5, r0 movs r1, 0 strb r1, [r0] ldrb r1, [r2] movs r0, 0x1F ands r0, r1 strb r0, [r2] ldr r2, =gUnknown_03005CDE adds r0, r5, r2 ldrb r0, [r0] movs r6, 0 lsls r1, r5, 24 mov r10, r1 lsrs r2, r7, 1 str r2, [sp, 0x4] adds r5, 0x1 str r5, [sp] ldr r1, =gUnknown_03003090 mov r9, r1 adds r5, r3, 0 adds r7, r4, 0 lsls r0, 4 mov r8, r0 adds r2, r5, 0x1 mov r12, r2 _0800F330: lsls r1, r6, 1 mov r0, r8 adds r4, r1, r0 add r4, r9 mov r2, r12 adds r3, r1, r2 adds r3, r7 ldrb r2, [r3] lsls r2, 8 adds r1, r5 adds r1, r7 ldrb r0, [r1] orrs r0, r2 strh r0, [r4] movs r0, 0 strb r0, [r3] strb r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x6 bls _0800F330 _0800F35C: mov r1, r10 lsrs r0, r1, 24 bl rfu_UNI_clearRecvNewDataFlag _0800F364: ldr r2, [sp, 0x4] lsls r0, r2, 16 lsrs r7, r0, 16 ldr r6, [sp] lsls r0, r6, 16 lsrs r5, r0, 16 cmp r5, 0x3 bhi _0800F376 b _0800F252 _0800F376: bl sub_800F014 movs r0, 0 bl sub_800F86C bl sub_8010528 ldr r4, =gUnknown_03005000 ldr r1, =0x00000ce5 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _0800F452 ldr r2, =0x00000cd9 adds r0, r4, r2 ldrb r2, [r0] cmp r2, 0 bne _0800F452 ldr r0, =gUnknown_02022B44 ldrb r1, [r0, 0xE] strb r2, [r0, 0xE] ldr r6, =0x00000cda adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x3 bl rfu_clearSlot movs r5, 0 adds r7, r4, 0 adds r7, 0x14 _0800F3B2: ldr r0, =0x00000ce5 adds r6, r4, r0 ldrb r0, [r6] asrs r0, r5 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0800F3D6 lsls r1, r5, 24 lsrs r1, 24 lsls r2, r5, 3 subs r2, r5 lsls r2, 1 adds r2, r7 movs r0, 0x10 movs r3, 0xE bl rfu_setRecvBuffer _0800F3D6: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _0800F3B2 subs r4, r6, 0x3 ldrb r0, [r4] ldrb r2, [r6] adds r1, r0, 0 orrs r1, r2 bl sub_800E88C ldrb r1, [r6] movs r2, 0 strb r1, [r6, 0x4] ldrb r0, [r4] orrs r0, r1 strb r0, [r4] strb r2, [r6] ldrb r0, [r4] adds r1, r6, 0 subs r1, 0x5E movs r2, 0x46 bl rfu_UNI_setSendData ldrb r0, [r4] bl sub_800E87C adds r1, r6, 0 subs r1, 0xB strb r0, [r1] ldr r0, =sub_8010AAC movs r1, 0 bl CreateTask b _0800F452 .pool _0800F444: ldr r2, =0x00000cdc adds r1, r4, r2 ldrb r0, [r1] movs r2, 0 movs r0, 0x1 strb r0, [r1] strb r2, [r4, 0xE] _0800F452: ldr r1, =gUnknown_03005000 movs r0, 0 strb r0, [r1, 0xE] adds r6, r1, 0 _0800F45A: ldr r1, =0x00000cdc adds r0, r6, r1 ldrb r0, [r0] adds r1, r0, 0 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0800F484 movs r0, 0x1 ands r0, r1 b _0800F486 .pool _0800F480: movs r0, 0 b _0800F486 _0800F484: movs r0, 0 _0800F486: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_800F1E0 thumb_func_start sub_800F498 sub_800F498: @ 800F498 push {r4,r5,lr} adds r4, r0, 0 adds r2, r1, 0 ldrh r1, [r4] cmp r1, 0 beq _0800F4DC ldr r0, =gUnknown_03005000 movs r5, 0x81 lsls r5, 1 adds r3, r0, r5 ldrb r0, [r3] lsls r0, 5 orrs r0, r1 strh r0, [r4] ldrb r0, [r3] adds r0, 0x1 movs r1, 0x7 ands r0, r1 strb r0, [r3] adds r3, r4, 0 movs r4, 0x6 _0800F4C2: ldrh r1, [r3] lsrs r0, r1, 8 strb r0, [r2, 0x1] strb r1, [r2] adds r2, 0x2 adds r3, 0x2 subs r4, 0x1 cmp r4, 0 bge _0800F4C2 b _0800F4EA .pool _0800F4DC: movs r1, 0 adds r0, r2, 0 adds r0, 0xD _0800F4E2: strb r1, [r0] subs r0, 0x1 cmp r0, r2 bge _0800F4E2 _0800F4EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800F498 thumb_func_start sub_800F4F0 sub_800F4F0: @ 800F4F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x58 ldr r0, =gUnknown_03005124 mov r1, sp bl sub_800D934 movs r1, 0 ldr r0, =gUnknown_03003090 mov r12, r0 _0800F506: movs r4, 0 lsls r0, r1, 3 adds r2, r1, 0x1 mov r8, r2 lsls r6, r1, 4 subs r0, r1 lsls r5, r0, 1 _0800F514: lsls r1, r4, 1 adds r3, r1, r6 add r3, r12 adds r1, r5, r1 adds r0, r1, 0x1 add r0, sp ldrb r2, [r0] lsls r2, 8 mov r7, sp adds r0, r7, r1 ldrb r0, [r0] orrs r0, r2 strh r0, [r3] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _0800F514 mov r1, r8 lsls r0, r1, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _0800F506 movs r0, 0 bl sub_800F86C ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x2] cmp r0, 0 bne _0800F5C0 ldr r0, =gUnknown_03005000 ldr r2, =0x00000ce4 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0800F5C0 ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] orrs r0, r1 bl rfu_REQ_disconnect bl rfu_waitREQComplete bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0800F58C cmp r0, 0x6 beq _0800F58C cmp r0, 0x9 beq _0800F58C movs r1, 0x90 lsls r1, 8 movs r0, 0x2 bl sub_8011A64 _0800F58C: bl rfu_clearAllSlot ldr r1, =gReceivedRemoteLinkPlayers movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_03005000 movs r5, 0 str r5, [r0] ldr r7, =0x00000ce4 adds r6, r0, r7 ldrb r0, [r6] cmp r0, 0x1 bne _0800F5B8 movs r4, 0x90 lsls r4, 8 movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 adds r0, r4, 0 bl sub_8011170 _0800F5B8: ldr r0, =gUnknown_03004140 strb r5, [r0, 0x5] strb r5, [r0, 0x4] strb r5, [r6] _0800F5C0: ldr r6, =gUnknown_03005000 movs r0, 0xCD lsls r0, 4 adds r2, r6, r0 ldrb r0, [r2] cmp r0, 0 beq _0800F604 ldrb r0, [r2] subs r0, 0x1 ldrb r1, [r2] strb r0, [r2] bl sub_8010528 ldr r5, =gUnknown_03003110 add r4, sp, 0x48 adds r0, r5, 0 adds r1, r4, 0 bl sub_800F498 ldr r1, =0x000009e8 adds r0, r6, r1 adds r1, r4, 0 bl sub_800D888 movs r1, 0 movs r2, 0 _0800F5F4: lsls r0, r1, 1 adds r0, r5 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x6 bls _0800F5F4 _0800F604: bl sub_800F0B8 add sp, 0x58 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800F4F0 thumb_func_start sub_800F638 sub_800F638: @ 800F638 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_03005000 ldr r2, [r0, 0x70] mov r10, r2 movs r5, 0 adds r2, r0, 0 adds r2, 0x6E ldrh r3, [r2] cmp r5, r3 bge _0800F6D4 mov r9, r0 ldr r0, =gUnknown_03000D90 mov r8, r0 _0800F65A: movs r0, 0x1 ands r0, r1 lsrs r7, r1, 1 adds r6, r5, 0x1 cmp r0, 0 bne _0800F6C8 ldr r1, =0xffff8900 adds r0, r1, 0 adds r1, r5, 0 orrs r1, r0 mov r2, r8 strh r1, [r2] movs r4, 0 lsls r0, r5, 1 ldr r3, =gUnknown_03000D80 mov r12, r3 adds r0, r5 lsls r0, 2 mov r1, r10 adds r2, r0, r1 mov r3, r8 adds r3, 0x2 _0800F686: ldrb r1, [r2, 0x1] lsls r1, 8 ldrb r0, [r2] orrs r0, r1 strh r0, [r3] adds r2, 0x2 adds r3, 0x2 adds r4, 0x1 cmp r4, 0x6 ble _0800F686 movs r4, 0 ldr r2, =gUnknown_03000D90 ldr r1, =gUnknown_03000D80 _0800F6A0: ldrh r0, [r2] lsrs r0, 8 strb r0, [r1, 0x1] ldrh r0, [r2] strb r0, [r1] adds r2, 0x2 adds r1, 0x2 adds r4, 0x1 cmp r4, 0x6 ble _0800F6A0 ldr r0, =gUnknown_030059E8 mov r1, r12 bl sub_800D888 movs r1, 0x1 lsls r1, r5 mov r2, r9 ldr r0, [r2, 0x78] orrs r0, r1 str r0, [r2, 0x78] _0800F6C8: adds r1, r7, 0 adds r5, r6, 0 ldr r3, =gUnknown_0300506E ldrh r3, [r3] cmp r5, r3 blt _0800F65A _0800F6D4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_800F638 thumb_func_start sub_800F6FC sub_800F6FC: @ 800F6FC push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gUnknown_03005000 ldrb r2, [r0, 0xC] cmp r2, 0x1 bne _0800F71C cmp r1, 0 beq _0800F71C adds r0, 0x61 adds r0, r1, r0 strb r2, [r0] b _0800F724 .pool _0800F71C: adds r0, 0x5C adds r0, r1, r0 movs r1, 0x1 strb r1, [r0] _0800F724: pop {r0} bx r0 thumb_func_end sub_800F6FC thumb_func_start sub_800F728 sub_800F728: @ 800F728 lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_03005000 adds r1, r3, 0 adds r1, 0x5C adds r1, r0, r1 movs r2, 0 strb r2, [r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r3 adds r1, 0x92 strb r2, [r1] bx lr .pool thumb_func_end sub_800F728 thumb_func_start sub_800F74C sub_800F74C: @ 800F74C push {r4,r5,lr} adds r3, r0, 0 ldr r0, =gUnknown_03005000 ldrb r1, [r0, 0xC] adds r5, r0, 0 cmp r1, 0x1 bne _0800F764 movs r0, 0 b _0800F786 .pool _0800F764: movs r2, 0 ldr r0, =0x00000cde adds r4, r5, r0 _0800F76A: adds r1, r2, r4 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0800F76A ldr r1, =0x00000c3e adds r0, r5, r1 ldrb r0, [r0] adds r0, r3 ldrb r0, [r0] _0800F786: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_800F74C thumb_func_start rfu_func_080F97B8 rfu_func_080F97B8: @ 800F794 push {lr} ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0800F7C6 ldr r3, =gUnknown_03005DA8 ldrh r2, [r3] cmp r2, 0 beq _0800F7C6 ldr r0, =gUnknown_030022B4 ldrb r0, [r0] cmp r0, 0x1 beq _0800F7C6 ldr r1, =gUnknown_03000D78 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldrb r0, [r1] lsls r0, 8 orrs r0, r2 strh r0, [r3] movs r0, 0xBE lsls r0, 8 bl sub_800FD14 _0800F7C6: pop {r0} bx r0 .pool thumb_func_end rfu_func_080F97B8 thumb_func_start sub_800F7DC sub_800F7DC: @ 800F7DC ldr r0, =gUnknown_02022B14 bx lr .pool thumb_func_end sub_800F7DC thumb_func_start sub_800F7E4 sub_800F7E4: @ 800F7E4 push {lr} movs r2, 0 ldr r0, =gUnknown_03005000 ldr r1, [r0] ldr r0, =rfu_func_080F97B8 cmp r1, r0 bne _0800F7F4 movs r2, 0x1 _0800F7F4: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_800F7E4 thumb_func_start sub_800F804 sub_800F804: @ 800F804 ldr r1, =gUnknown_03005000 ldr r0, =rfu_func_080F97B8 str r0, [r1] bx lr .pool thumb_func_end sub_800F804 thumb_func_start Rfu_set_zero Rfu_set_zero: @ 800F814 ldr r1, =gUnknown_03005000 movs r0, 0 str r0, [r1] bx lr .pool thumb_func_end Rfu_set_zero thumb_func_start sub_800F820 sub_800F820: @ 800F820 push {lr} movs r0, 0x88 lsls r0, 7 bl sub_800FD14 bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _0800F83C bl sub_8082D18 ldr r1, =gUnknown_03003110 strh r0, [r1, 0xC] _0800F83C: ldr r1, =gUnknown_020223C0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_800F820 thumb_func_start sub_800F850 sub_800F850: @ 800F850 push {lr} ldr r1, =gUnknown_03005000 ldr r0, [r1] cmp r0, 0 bne _0800F85E ldr r0, =sub_800F820 str r0, [r1] _0800F85E: pop {r0} bx r0 .pool thumb_func_end sub_800F850 thumb_func_start sub_800F86C sub_800F86C: @ 800F86C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r0, 0 mov r8, r0 _0800F87A: mov r1, r8 lsls r0, r1, 4 ldr r2, =gUnknown_03003090 adds r1, r0, r2 ldrh r7, [r1] movs r3, 0xFF lsls r3, 8 adds r1, r3, 0 ands r1, r7 movs r2, 0x88 lsls r2, 8 adds r5, r0, 0 cmp r1, r2 beq _0800F960 cmp r1, r2 bgt _0800F8D6 movs r0, 0xCC lsls r0, 7 cmp r1, r0 bne _0800F8A4 b _0800FAE0 _0800F8A4: cmp r1, r0 bgt _0800F8C4 movs r0, 0x88 lsls r0, 7 cmp r1, r0 bne _0800F8B2 b _0800FBF4 _0800F8B2: movs r0, 0xBE lsls r0, 7 cmp r1, r0 bne _0800F8BC b _0800FAD0 _0800F8BC: b _0800FC04 .pool _0800F8C4: movs r0, 0xEE lsls r0, 7 cmp r1, r0 beq _0800F920 movs r0, 0xF0 lsls r0, 7 cmp r1, r0 beq _0800F90E b _0800FC04 _0800F8D6: movs r0, 0xBE lsls r0, 8 cmp r1, r0 bne _0800F8E0 b _0800FBF4 _0800F8E0: cmp r1, r0 bgt _0800F8F8 movs r0, 0x89 lsls r0, 8 cmp r1, r0 beq _0800F9C8 movs r0, 0xA1 lsls r0, 8 cmp r1, r0 bne _0800F8F6 b _0800FAAC _0800F8F6: b _0800FC04 _0800F8F8: movs r0, 0xED lsls r0, 8 cmp r1, r0 bne _0800F902 b _0800FB10 _0800F902: movs r0, 0xEE lsls r0, 8 cmp r1, r0 bne _0800F90C b _0800FBB0 _0800F90C: b _0800FC04 _0800F90E: ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] cmp r0, 0 bne _0800F920 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0800F920 b _0800FC50 _0800F920: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] mov r6, r8 adds r6, 0x1 cmp r0, 0 beq _0800F930 b _0800FC08 _0800F930: ldr r1, =gUnknown_03003092 adds r0, r5, r1 ldrh r0, [r0] ldr r2, =gUnknown_03005000 strb r0, [r2, 0xD] ldr r3, =gUnknown_03003094 adds r0, r5, r3 bl sub_800F74C ldr r4, =gUnknown_03005CCE strb r0, [r4] b _0800FC08 .pool _0800F960: ldr r0, =gUnknown_03005000 mov r9, r0 mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r7, r0, 2 mov r2, r9 adds r3, r7, r2 movs r4, 0x92 adds r4, r3 mov r12, r4 ldrb r4, [r4] mov r6, r8 adds r6, 0x1 cmp r4, 0 beq _0800F982 b _0800FC08 _0800F982: adds r0, r3, 0 adds r0, 0x80 movs r2, 0 strh r4, [r0] ldr r1, =gUnknown_03003092 adds r0, r5, r1 ldrh r0, [r0] adds r1, r3, 0 adds r1, 0x82 strh r0, [r1] ldr r1, =gUnknown_03003094 adds r0, r5, r1 ldrh r1, [r0] adds r0, r3, 0 adds r0, 0x91 strb r1, [r0] mov r0, r9 adds r0, 0x88 adds r0, r7, r0 str r4, [r0] movs r0, 0x1 mov r3, r12 strb r0, [r3] mov r0, r9 adds r0, 0x5C add r0, r8 strb r2, [r0] b _0800FC08 .pool _0800F9C8: ldr r4, =gUnknown_03005000 mov r9, r4 mov r0, r8 lsls r1, r0, 2 adds r0, r1, r0 lsls r4, r0, 2 mov r3, r9 adds r2, r4, r3 adds r0, r2, 0 adds r0, 0x92 ldrb r3, [r0] mov r10, r1 mov r6, r8 adds r6, 0x1 cmp r3, 0x1 beq _0800F9EA b _0800FC08 _0800F9EA: movs r0, 0xFF ands r0, r7 adds r2, 0x80 strh r0, [r2] mov r1, r9 adds r1, 0x88 adds r1, r4, r1 lsls r3, r0 ldr r0, [r1] orrs r0, r3 str r0, [r1] movs r4, 0 ldr r0, =gBlockRecvBuffer mov r9, r0 mov r12, r2 mov r1, r8 lsls r7, r1, 8 adds r3, r5, 0 _0800FA0E: mov r2, r12 ldrh r0, [r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, r4 lsls r1, 1 adds r1, r7 add r1, r9 adds r2, r4, 0x1 lsls r0, r2, 1 adds r0, r3 ldr r4, =gUnknown_03003090 adds r0, r4 ldrh r0, [r0] strh r0, [r1] lsls r2, 16 lsrs r4, r2, 16 cmp r4, 0x5 bls _0800FA0E ldr r4, =gUnknown_03005000 mov r0, r10 add r0, r8 lsls r0, 2 adds r1, r4, 0 adds r1, 0x88 adds r1, r0, r1 adds r2, r0, r4 adds r0, r2, 0 adds r0, 0x82 ldrh r0, [r0] lsls r0, 2 ldr r3, =gUnknown_082ED628 adds r0, r3 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _0800FA5C b _0800FC08 _0800FA5C: adds r1, r2, 0 adds r1, 0x92 movs r0, 0x2 strb r0, [r1] mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 bl sub_800F6FC bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 beq _0800FA7E b _0800FC08 _0800FA7E: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0800FA88 b _0800FC08 _0800FA88: ldrb r0, [r4, 0xC] cmp r0, 0 beq _0800FA90 b _0800FC08 _0800FA90: ldr r0, =gBlockRecvBuffer bl sub_8010A70 b _0800FC08 .pool _0800FAAC: ldr r2, =gUnknown_082ED6B8 ldr r3, =gUnknown_03003092 adds r0, r5, r3 ldrh r1, [r0] lsls r1, 3 adds r0, r1, r2 ldr r0, [r0] adds r2, 0x4 adds r1, r2 ldrh r1, [r1] bl sub_800FE84 b _0800FC04 .pool _0800FAD0: ldr r1, =gUnknown_030050E4 add r1, r8 movs r0, 0x1 strb r0, [r1] b _0800FC04 .pool _0800FAE0: ldr r2, =gUnknown_03005000 movs r4, 0x80 lsls r4, 1 adds r0, r2, r4 ldr r3, =gUnknown_03003092 adds r1, r5, r3 ldrh r0, [r0] mov r6, r8 adds r6, 0x1 ldrh r1, [r1] cmp r0, r1 beq _0800FAFA b _0800FC08 _0800FAFA: adds r0, r2, 0 adds r0, 0xE9 add r0, r8 movs r1, 0x1 strb r1, [r0] b _0800FC08 .pool _0800FB10: ldr r7, =gUnknown_03005000 ldrb r2, [r7, 0xC] cmp r2, 0 bne _0800FB78 ldr r3, =gReceivedRemoteLinkPlayers ldrb r0, [r3] mov r6, r8 adds r6, 0x1 cmp r0, 0 beq _0800FC08 ldr r0, =gUnknown_03003092 adds r4, r5, r0 ldrh r1, [r4] ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0, 0x2] ands r1, r0 cmp r1, 0 beq _0800FB48 strb r2, [r3] bl sub_800D630 ldr r1, =gUnknown_03003094 adds r0, r5, r1 ldrh r1, [r0] ldr r2, =0x00000ce4 adds r0, r7, r2 strb r1, [r0] _0800FB48: ldr r0, =gUnknown_03003090 adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] strb r0, [r7, 0xD] ldrh r0, [r4] bl sub_80109E8 b _0800FC08 .pool _0800FB78: movs r0, 0xEE lsls r0, 8 bl sub_800FD14 ldr r1, =gUnknown_03003110 ldr r3, =gUnknown_03003092 adds r0, r5, r3 ldrh r0, [r0] strh r0, [r1, 0x2] ldr r4, =gUnknown_03003094 adds r0, r5, r4 ldrh r0, [r0] strh r0, [r1, 0x4] ldr r0, =gUnknown_03003090 adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] strh r0, [r1, 0x6] b _0800FC04 .pool _0800FBB0: ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] mov r6, r8 adds r6, 0x1 cmp r0, 0x1 bne _0800FC44 ldr r0, =0x00000ce3 adds r2, r4, r0 ldr r1, =gUnknown_03003092 adds r3, r5, r1 ldrb r1, [r3] ldrb r0, [r2] orrs r0, r1 strb r0, [r2] ldr r2, =gUnknown_03003094 adds r0, r5, r2 ldrh r1, [r0] ldr r2, =0x00000ce4 adds r0, r4, r2 strb r1, [r0] ldrh r0, [r3] bl sub_80109E8 b _0800FC08 .pool _0800FBF4: ldr r0, =gUnknown_03003020 mov r3, r8 lsls r1, r3, 1 adds r1, r0 ldr r4, =gUnknown_03003092 adds r0, r5, r4 ldrh r0, [r0] strh r0, [r1] _0800FC04: mov r6, r8 adds r6, 0x1 _0800FC08: ldr r3, =gUnknown_03005000 ldrb r4, [r3, 0xC] cmp r4, 0x1 bne _0800FC44 adds r0, r3, 0 adds r0, 0x61 mov r1, r8 adds r2, r1, r0 ldrb r0, [r2] adds r1, r0, 0 cmp r1, 0 beq _0800FC44 cmp r1, 0x4 bne _0800FC40 adds r0, r3, 0 adds r0, 0x5C add r0, r8 movs r1, 0 strb r4, [r0] strb r1, [r2] b _0800FC44 .pool _0800FC40: adds r0, 0x1 strb r0, [r2] _0800FC44: lsls r0, r6, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x4 bhi _0800FC50 b _0800F87A _0800FC50: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_800F86C thumb_func_start sub_800FC60 sub_800FC60: @ 800FC60 push {lr} movs r2, 0 ldr r0, =gUnknown_03005000 adds r1, r0, 0 adds r1, 0x92 _0800FC6A: ldrb r0, [r1] cmp r0, 0 beq _0800FC78 movs r0, 0 b _0800FC82 .pool _0800FC78: adds r1, 0x14 adds r2, 0x1 cmp r2, 0x4 ble _0800FC6A movs r0, 0x1 _0800FC82: pop {r1} bx r1 thumb_func_end sub_800FC60 thumb_func_start sub_800FC88 sub_800FC88: @ 800FC88 push {r4,lr} movs r1, 0 ldr r2, =gUnknown_03005000 ldrb r0, [r2, 0xD] cmp r1, r0 bge _0800FCBC adds r4, r0, 0 adds r3, r2, 0 adds r3, 0x92 adds r2, 0x5C _0800FC9C: ldrb r0, [r3] cmp r0, 0x2 bne _0800FCAA adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 beq _0800FCB4 _0800FCAA: movs r0, 0 b _0800FCBE .pool _0800FCB4: adds r3, 0x14 adds r1, 0x1 cmp r1, r4 blt _0800FC9C _0800FCBC: movs r0, 0x1 _0800FCBE: pop {r4} pop {r1} bx r1 thumb_func_end sub_800FC88 thumb_func_start sub_800FCC4 sub_800FCC4: @ 800FCC4 movs r2, 0 movs r1, 0 strh r1, [r0] strh r1, [r0, 0x2] str r1, [r0, 0x4] str r1, [r0, 0x8] strb r2, [r0, 0x10] strb r2, [r0, 0x11] strb r2, [r0, 0x12] bx lr thumb_func_end sub_800FCC4 thumb_func_start sub_800FCD8 sub_800FCD8: @ 800FCD8 push {r4,lr} movs r2, 0 movs r1, 0 ldr r0, =gUnknown_03005000 adds r3, r0, 0 adds r3, 0x92 adds r4, r0, 0 adds r4, 0x5C _0800FCE8: ldrb r0, [r3] cmp r0, 0x2 bne _0800FCFE adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _0800FCFE lsls r0, r1 orrs r2, r0 lsls r0, r2, 24 lsrs r2, r0, 24 _0800FCFE: adds r3, 0x14 adds r1, 0x1 cmp r1, 0x4 ble _0800FCE8 adds r0, r2, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_800FCD8 thumb_func_start sub_800FD14 sub_800FD14: @ 800FD14 push {r4,r5,lr} lsls r0, 16 lsrs r1, r0, 16 ldr r5, =gUnknown_03003110 strh r1, [r5] movs r0, 0xF0 lsls r0, 7 adds r4, r5, 0 cmp r1, r0 beq _0800FDB0 cmp r1, r0 bgt _0800FD62 movs r0, 0xBE lsls r0, 7 cmp r1, r0 beq _0800FE00 cmp r1, r0 bgt _0800FD50 movs r0, 0xBC lsls r0, 6 cmp r1, r0 beq _0800FE20 movs r0, 0x88 lsls r0, 7 cmp r1, r0 beq _0800FE14 b _0800FE46 .pool _0800FD50: movs r0, 0xCC lsls r0, 7 cmp r1, r0 beq _0800FE00 movs r0, 0xEE lsls r0, 7 cmp r1, r0 beq _0800FDB0 b _0800FE46 _0800FD62: movs r0, 0xBE lsls r0, 8 cmp r1, r0 beq _0800FE40 cmp r1, r0 bgt _0800FE46 movs r0, 0x88 lsls r0, 8 cmp r1, r0 beq _0800FD80 movs r0, 0xA1 lsls r0, 8 cmp r1, r0 beq _0800FD98 b _0800FE46 _0800FD80: ldr r0, =gUnknown_03005000 adds r1, r0, 0 adds r1, 0x6E ldrh r1, [r1] strh r1, [r5, 0x2] adds r0, 0x7D ldrb r0, [r0] adds r0, 0x80 strh r0, [r5, 0x4] b _0800FE46 .pool _0800FD98: bl sub_800FC60 lsls r0, 24 cmp r0, 0 beq _0800FE46 ldr r0, =gUnknown_03005000 adds r0, 0x5A ldrb r0, [r0] b _0800FE44 .pool _0800FDB0: ldr r3, =gUnknown_03005000 ldr r1, =0x00000ce2 adds r0, r3, r1 ldr r2, =0x00000ce3 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] eors r0, r2 ldr r1, =gUnknown_082ED695 adds r0, r1 ldrb r0, [r0] adds r0, 0x1 strb r0, [r3, 0xD] ldrb r0, [r3, 0xD] strh r0, [r4, 0x2] adds r2, r4, 0x4 movs r4, 0 ldr r0, =0x00000cde adds r3, r0 _0800FDD6: adds r1, r2, r4 adds r0, r4, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _0800FDD6 b _0800FE46 .pool _0800FE00: ldr r0, =gUnknown_03005000 movs r1, 0x80 lsls r1, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r4, 0x2] b _0800FE46 .pool _0800FE14: strh r1, [r5] ldr r0, =gMain ldrh r0, [r0, 0x2C] b _0800FE44 .pool _0800FE20: movs r4, 0 ldr r3, =gUnknown_030050F2 _0800FE24: adds r2, r4, 0x1 lsls r1, r2, 1 adds r1, r5 lsls r0, r4, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] lsls r2, 24 lsrs r4, r2, 24 cmp r4, 0x5 bls _0800FE24 b _0800FE46 .pool _0800FE40: ldr r0, =gUnknown_03005DA8 ldrh r0, [r0] _0800FE44: strh r0, [r5, 0x2] _0800FE46: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_800FD14 thumb_func_start sub_800FE50 sub_800FE50: @ 800FE50 push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0800FE76 bl sub_8011A80 cmp r0, 0 bne _0800FE76 ldr r0, =gUnknown_030050F2 adds r1, r4, 0 movs r2, 0xC bl memcpy movs r0, 0xBC lsls r0, 6 bl sub_800FD14 _0800FE76: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_800FE50 thumb_func_start sub_800FE84 @ bool8 sub_800FE84(u32 a1, u32 size) sub_800FE84: @ 800FE84 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 adds r6, r1, 0 ldr r5, =gUnknown_03005000 ldr r0, [r5] cmp r0, 0 bne _0800FEB8 ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0800FEB8 movs r0, 0x7C adds r0, r5 mov r9, r0 ldrb r1, [r0] mov r8, r1 cmp r1, 0 beq _0800FEC8 ldr r1, =gUnknown_02022B44 adds r1, 0x83 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0800FEB8: movs r0, 0 b _0800FF32 .pool _0800FEC8: adds r0, r6, 0 movs r1, 0xC bl __umodsi3 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl GetMultiplayerId adds r1, r5, 0 adds r1, 0x7D strb r0, [r1] movs r0, 0x1 mov r1, r9 strb r0, [r1] adds r0, r6, 0 movs r1, 0xC bl __udivsi3 adds r0, r4 adds r1, r5, 0 adds r1, 0x6E strh r0, [r1] adds r0, r5, 0 adds r0, 0x6C mov r1, r8 strh r1, [r0] movs r0, 0x80 lsls r0, 1 cmp r6, r0 bls _0800FF0A str r7, [r5, 0x70] b _0800FF1C _0800FF0A: ldr r4, =gUnknown_020228C4 cmp r7, r4 beq _0800FF1A adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl memcpy _0800FF1A: str r4, [r5, 0x70] _0800FF1C: movs r0, 0x88 lsls r0, 8 bl sub_800FD14 ldr r0, =gUnknown_03005000 ldr r1, =rfufunc_80F9F44 str r1, [r0] adds r0, 0x5B movs r1, 0 strb r1, [r0] movs r0, 0x1 _0800FF32: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_800FE84 thumb_func_start rfufunc_80F9F44 rfufunc_80F9F44: @ 800FF4C push {r4,r5,lr} ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0800FFA0 movs r5, 0x88 lsls r5, 8 adds r0, r5, 0 bl sub_800FD14 ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] cmp r0, 0x1 bne _0800FF84 adds r1, r4, 0 adds r1, 0x5B ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0800FFA0 b _0800FF9C .pool _0800FF84: bl GetMultiplayerId ldr r1, =gUnknown_03003090 lsls r0, 24 lsrs r0, 20 adds r0, r1 ldrh r1, [r0] movs r0, 0xFF lsls r0, 8 ands r0, r1 cmp r0, r5 bne _0800FFA0 _0800FF9C: ldr r0, =sub_800FFB0 str r0, [r4] _0800FFA0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end rfufunc_80F9F44 thumb_func_start sub_800FFB0 sub_800FFB0: @ 800FFB0 push {r4-r6,lr} ldr r0, =gUnknown_03005000 mov r12, r0 ldr r5, [r0, 0x70] ldr r3, =gUnknown_03003110 mov r2, r12 adds r2, 0x6C ldrh r1, [r2] movs r4, 0x89 lsls r4, 8 adds r0, r4, 0 orrs r0, r1 strh r0, [r3] movs r4, 0 adds r6, r2, 0 adds r3, 0x2 _0800FFD0: lsls r2, r4, 1 ldrh r1, [r6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, r5 ldrb r1, [r0, 0x1] lsls r1, 8 ldrb r0, [r0] orrs r0, r1 strh r0, [r3] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x6 ble _0800FFD0 mov r0, r12 adds r0, 0x6C ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] adds r0, 0x2 ldrh r0, [r0] lsls r1, 16 lsrs r1, 16 cmp r0, r1 bhi _08010014 mov r0, r12 adds r0, 0x7C movs r1, 0 strb r1, [r0] ldr r0, =rfufunc_80FA020 mov r1, r12 str r0, [r1] _08010014: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_800FFB0 thumb_func_start rfufunc_80FA020 rfufunc_80FA020: @ 8010028 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r5, =gUnknown_03005000 ldr r0, [r5, 0x70] mov r8, r0 bl GetMultiplayerId lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r5, 0xC] cmp r0, 0 bne _080100F0 ldr r3, =gUnknown_03003110 adds r2, r5, 0 adds r2, 0x6E ldrh r0, [r2] subs r0, 0x1 ldr r4, =0xffff8900 adds r1, r4, 0 orrs r0, r1 strh r0, [r3] movs r4, 0 mov r9, r5 ldr r0, =gUnknown_03003090 mov r12, r0 lsls r5, r6, 4 adds r7, r2, 0 adds r3, 0x2 _08010064: lsls r2, r4, 1 ldrh r1, [r7] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 add r0, r8 adds r1, r0, 0 subs r1, 0xB ldrb r1, [r1] lsls r1, 8 subs r0, 0xC ldrb r0, [r0] orrs r0, r1 strh r0, [r3] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x6 ble _08010064 mov r1, r12 adds r0, r5, r1 ldrb r1, [r0] mov r3, r9 adds r0, r3, 0 adds r0, 0x6E ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 bne _080100F4 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r1, r3, 0 adds r1, 0x88 adds r1, r0, r1 ldr r2, =gUnknown_082ED628 adds r0, r3 adds r0, 0x82 ldrh r0, [r0] lsls r0, 2 adds r0, r2 ldr r1, [r1] ldr r0, [r0] cmp r1, r0 beq _080100E8 adds r0, r6, 0 bl sub_800F638 ldr r1, =gUnknown_02022B44 adds r1, 0x64 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _080100F4 .pool _080100E8: movs r0, 0 mov r4, r9 str r0, [r4] b _080100F4 _080100F0: movs r0, 0 str r0, [r5] _080100F4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end rfufunc_80FA020 thumb_func_start sub_8010100 sub_8010100: @ 8010100 push {lr} ldr r1, =gUnknown_03005000 adds r1, 0x5A strb r0, [r1] movs r0, 0xA1 lsls r0, 8 bl sub_800FD14 movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_8010100 thumb_func_start sub_801011C sub_801011C: @ 801011C push {lr} bl rfu_clearAllSlot bl sub_800C048 ldr r1, =gReceivedRemoteLinkPlayers movs r0, 0 strb r0, [r1] ldr r2, =gUnknown_03005000 adds r3, r2, 0 adds r3, 0xEF movs r1, 0 movs r0, 0x1 strb r0, [r3] str r1, [r2] pop {r0} bx r0 .pool thumb_func_end sub_801011C thumb_func_start sub_8010148 sub_8010148: @ 8010148 push {lr} ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] orrs r0, r1 bl rfu_REQ_disconnect bl rfu_waitREQComplete bl sub_801011C pop {r0} bx r0 .pool thumb_func_end sub_8010148 thumb_func_start sub_8010168 sub_8010168: @ 8010168 push {r4,lr} ldr r4, =gUnknown_03005000 ldrb r0, [r4, 0xC] cmp r0, 0 bne _08010188 bl sub_800D630 ldr r0, =0x00000ce4 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] b _0801018C .pool _08010188: ldr r0, =sub_8010148 str r0, [r4] _0801018C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8010168 thumb_func_start sub_8010198 sub_8010198: @ 8010198 push {lr} bl sub_800D630 ldr r2, =gUnknown_03005000 ldr r0, =0x00000ce4 adds r1, r2, r0 movs r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_03007890 ldr r1, [r0] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] orrs r0, r1 ldr r1, =0x00000ce3 adds r2, r1 strb r0, [r2] pop {r0} bx r0 .pool thumb_func_end sub_8010198 thumb_func_start sub_80101CC sub_80101CC: @ 80101CC push {r4,r5,lr} ldr r0, =gUnknown_03005000 ldrb r5, [r0, 0xD] movs r2, 0 movs r1, 0 adds r3, r0, 0 adds r4, r3, 0 adds r4, 0xE4 _080101DC: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 beq _080101E6 adds r2, 0x1 _080101E6: adds r1, 0x1 cmp r1, 0x4 ble _080101DC cmp r2, r5 bne _08010220 ldr r2, =gBattleTypeFlags ldr r0, [r2] movs r1, 0x21 negs r1, r1 ands r0, r1 str r0, [r2] ldrb r0, [r3, 0xC] cmp r0, 0 bne _0801021C adds r0, r3, 0 adds r0, 0xEE ldrb r1, [r0] movs r1, 0x3 strb r1, [r0] bl sub_8010168 b _08010220 .pool _0801021C: ldr r0, =sub_8010168 str r0, [r3] _08010220: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80101CC thumb_func_start sub_801022C sub_801022C: @ 801022C push {r4,lr} ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0801024E ldr r4, =gUnknown_03005000 ldr r1, =0x00000ce8 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _0801024E movs r0, 0xBE lsls r0, 7 bl sub_800FD14 ldr r0, =sub_80101CC str r0, [r4] _0801024E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801022C thumb_func_start sub_8010264 sub_8010264: @ 8010264 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gUnknown_03005000 ldr r0, [r2] cmp r0, 0 bne _08010284 ldr r1, =0x00000cd9 adds r0, r2, r1 movs r1, 0x1 strb r1, [r0] ldr r0, =sub_801022C str r0, [r2] adds r0, r3, 0 bl DestroyTask _08010284: pop {r0} bx r0 .pool thumb_func_end sub_8010264 thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc task_add_05_task_del_08FA224_when_no_RfuFunc: @ 8010294 push {r4,lr} ldr r4, =sub_8010264 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080102AC adds r0, r4, 0 movs r1, 0x5 bl CreateTask _080102AC: pop {r4} pop {r0} bx r0 .pool thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc thumb_func_start sub_80102B8 sub_80102B8: @ 80102B8 push {r4,r5,lr} bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _080102E6 ldr r1, =gUnknown_03005000 ldr r2, =0x000009e6 adds r0, r1, r2 ldrb r0, [r0] adds r4, r0, 0 cmp r4, 0 bne _080102E6 adds r5, r1, 0 adds r5, 0xFE ldrh r0, [r5] cmp r0, 0x3C bls _080102E6 movs r0, 0xCC lsls r0, 7 bl sub_800FD14 strh r4, [r5] _080102E6: bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 cmp r1, r2 bcs _08010312 ldr r0, =gUnknown_03005000 adds r3, r0, 0 adds r3, 0xE9 ldrb r0, [r3] cmp r0, 0 beq _08010312 _08010300: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcs _08010312 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _08010300 _08010312: ldr r4, =gUnknown_03005000 cmp r1, r2 bne _0801033E movs r1, 0 adds r3, r4, 0 adds r3, 0xE9 movs r2, 0 _08010320: adds r0, r1, r3 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x4 bls _08010320 movs r1, 0x80 lsls r1, 1 adds r0, r4, r1 ldrh r1, [r0] adds r1, 0x1 movs r2, 0 strh r1, [r0] str r2, [r4] _0801033E: adds r1, r4, 0 adds r1, 0xFE ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80102B8 thumb_func_start sub_8010358 sub_8010358: @ 8010358 push {r4,lr} ldr r4, =gUnknown_03005000 ldr r1, =0x000009e6 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _0801037A ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0801037A movs r0, 0xCC lsls r0, 7 bl sub_800FD14 ldr r0, =sub_80102B8 str r0, [r4] _0801037A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8010358 thumb_func_start sub_8010390 sub_8010390: @ 8010390 push {r4,lr} bl GetMultiplayerId lsls r0, 24 cmp r0, 0 beq _080103CC ldr r4, =gUnknown_03005000 ldr r1, =0x000009e6 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _0801041E ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0801041E movs r0, 0xCC lsls r0, 7 bl sub_800FD14 ldr r0, =sub_80102B8 b _0801041C .pool _080103CC: bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 cmp r1, r2 bcs _080103FA ldr r3, =gUnknown_03005000 adds r0, r3, 0 adds r0, 0xEA ldrb r0, [r0] cmp r0, 0 beq _080103FA adds r3, 0xE9 _080103E8: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, r2 bcs _080103FA adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080103E8 _080103FA: cmp r1, r2 bne _0801041E ldr r4, =gUnknown_03005000 ldr r1, =0x000009e6 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _0801041E ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _0801041E movs r0, 0xCC lsls r0, 7 bl sub_800FD14 ldr r0, =sub_8010358 _0801041C: str r0, [r4] _0801041E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8010390 thumb_func_start sub_8010434 sub_8010434: @ 8010434 push {lr} ldr r1, =gUnknown_03005000 ldr r2, [r1] cmp r2, 0 bne _08010448 ldr r0, =sub_8010390 str r0, [r1] adds r0, r1, 0 adds r0, 0xFE strh r2, [r0] _08010448: pop {r0} bx r0 .pool thumb_func_end sub_8010434 thumb_func_start sub_8010454 sub_8010454: @ 8010454 push {r4,lr} adds r3, r0, 0 ldr r1, =gUnknown_082ED6E0 ldrh r0, [r1] cmp r0, r3 beq _08010482 ldr r4, =0x0000ffff adds r2, r1, 0 _08010464: ldrh r0, [r2] cmp r0, r4 bne _08010478 movs r0, 0 b _08010484 .pool _08010478: adds r1, 0x2 adds r2, 0x2 ldrh r0, [r1] cmp r0, r3 bne _08010464 _08010482: movs r0, 0x1 _08010484: pop {r4} pop {r1} bx r1 thumb_func_end sub_8010454 thumb_func_start sub_801048C sub_801048C: @ 801048C push {lr} cmp r0, 0 beq _080104A0 movs r1, 0x96 lsls r1, 2 movs r0, 0x1 bl sub_800D550 movs r0, 0 b _080104AC _080104A0: movs r0, 0 movs r1, 0 bl sub_800D550 lsls r0, 24 lsrs r0, 24 _080104AC: pop {r1} bx r1 thumb_func_end sub_801048C thumb_func_start sub_80104B0 sub_80104B0: @ 80104B0 push {lr} ldr r0, =gUnknown_03005000 ldr r1, =0x00000cd9 adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r0, 0 bl sub_800C27C pop {r0} bx r0 .pool thumb_func_end sub_80104B0 thumb_func_start rfu_get_multiplayer_id rfu_get_multiplayer_id: @ 80104D0 push {lr} ldr r1, =gUnknown_03005000 ldrb r0, [r1, 0xC] cmp r0, 0x1 beq _080104EC ldr r2, =0x00000cce adds r0, r1, r2 ldrb r0, [r0] b _080104EE .pool _080104EC: movs r0, 0 _080104EE: pop {r1} bx r1 thumb_func_end rfu_get_multiplayer_id thumb_func_start sub_80104F4 sub_80104F4: @ 80104F4 ldr r0, =gUnknown_03005000 ldrb r0, [r0, 0xD] bx lr .pool thumb_func_end sub_80104F4 thumb_func_start sub_8010500 sub_8010500: @ 8010500 push {lr} ldr r2, =gUnknown_03005000 adds r0, r2, 0 adds r0, 0xF1 ldrb r0, [r0] cmp r0, 0x2 bne _08010518 movs r0, 0 b _08010524 .pool _08010518: movs r1, 0 ldr r0, [r2] cmp r0, 0 bne _08010522 movs r1, 0x1 _08010522: adds r0, r1, 0 _08010524: pop {r1} bx r1 thumb_func_end sub_8010500 thumb_func_start sub_8010528 sub_8010528: @ 8010528 push {lr} ldr r0, =gUnknown_03005000 ldr r0, [r0] cmp r0, 0 beq _08010536 bl _call_via_r0 _08010536: pop {r0} bx r0 .pool thumb_func_end sub_8010528 thumb_func_start sub_8010540 sub_8010540: @ 8010540 push {r4-r7,lr} mov r7, r8 push {r7} movs r7, 0 movs r5, 0 ldr r6, =gUnknown_03005000 ldr r0, =0x00000c3e adds r0, r6 mov r8, r0 _08010552: ldr r1, =0x00000cd1 adds r0, r6, r1 adds r4, r5, r0 ldrb r0, [r4] subs r0, 0x5 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080105DA ldr r1, =gUnknown_03007880 lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x46 beq _08010576 cmp r0, 0x48 bne _080105C0 _08010576: ldr r2, =0x00000cd5 adds r0, r6, r2 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0x8 bne _080105DA movs r0, 0x9 strb r0, [r4] movs r0, 0xA strb r0, [r1] lsls r1, r5, 24 lsrs r1, 24 movs r0, 0x8 bl rfu_clearSlot movs r0, 0x80 lsls r0, 17 lsls r0, r5 lsrs r0, 24 movs r1, 0x8 adds r2, r4, 0 movs r3, 0x1 bl rfu_NI_setSendData movs r7, 0x1 b _080105DA .pool _080105C0: mov r2, r8 ldrb r0, [r2] lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x47 bne _080105DA lsls r1, r5, 24 lsrs r1, 24 movs r0, 0x8 bl rfu_clearSlot _080105DA: adds r5, 0x1 cmp r5, 0x3 ble _08010552 adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8010540 thumb_func_start sub_80105EC sub_80105EC: @ 80105EC push {r4-r6,lr} movs r3, 0 movs r1, 0 ldr r5, =gUnknown_03005CD5 movs r6, 0x1 movs r4, 0 _080105F8: adds r2, r1, r5 ldrb r0, [r2] cmp r0, 0xB bne _0801060C adds r0, r6, 0 lsls r0, r1 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 strb r4, [r2] _0801060C: adds r1, 0x1 cmp r1, 0x3 ble _080105F8 cmp r3, 0 beq _08010620 adds r0, r3, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete _08010620: movs r1, 0 ldr r2, =gUnknown_03005CD5 _08010624: adds r0, r1, r2 ldrb r0, [r0] subs r0, 0xA lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _0801063C movs r0, 0x1 b _08010644 .pool _0801063C: adds r1, 0x1 cmp r1, 0x3 ble _08010624 movs r0, 0 _08010644: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80105EC thumb_func_start sub_801064C sub_801064C: @ 801064C push {lr} adds r2, r0, 0 adds r0, r1, 0 lsls r2, 16 lsrs r2, 16 adds r1, r2, 0 bl sub_8011CE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _08010680 ldr r0, =gUnknown_03005000 ldr r2, =0x00000cd1 adds r0, r2 adds r0, r1, r0 ldrb r0, [r0] cmp r0, 0x9 beq _08010680 movs r0, 0 b _08010682 .pool _08010680: movs r0, 0x1 _08010682: pop {r1} bx r1 thumb_func_end sub_801064C thumb_func_start sub_8010688 sub_8010688: @ 8010688 push {r4-r6,lr} adds r6, r0, 0 adds r0, r2, 0 lsls r6, 24 lsrs r6, 24 lsls r1, 16 lsrs r1, 16 bl sub_8011CE4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gUnknown_03005000 ldr r0, =0x00000cd1 adds r5, r0 adds r5, r4, r5 strb r6, [r5] movs r0, 0x4 adds r1, r4, 0 bl rfu_clearSlot movs r0, 0x80 lsls r0, 17 lsls r0, r4 lsrs r0, 24 movs r1, 0x8 adds r2, r5, 0 movs r3, 0x1 bl rfu_NI_setSendData pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8010688 thumb_func_start sub_80106D4 sub_80106D4: @ 80106D4 push {r4,r5,lr} ldr r4, =gUnknown_03005000 ldr r0, =0x00000c85 adds r5, r4, r0 movs r0, 0x8 strb r0, [r5] ldr r0, =0x00000c3e adds r4, r0 ldrb r1, [r4] movs r0, 0x4 bl rfu_clearSlot ldrb r1, [r4] movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r0, 24 movs r1, 0x8 adds r2, r5, 0 movs r3, 0x1 bl rfu_NI_setSendData pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80106D4 thumb_func_start sub_8010714 sub_8010714: @ 8010714 push {lr} adds r2, r0, 0 adds r0, r1, 0 lsls r2, 16 lsrs r2, 16 adds r1, r2, 0 bl sub_8011CE4 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08010730 movs r0, 0x2 b _0801074A _08010730: ldr r1, =gUnknown_03007880 lsls r0, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0 beq _08010748 movs r0, 0 b _0801074A .pool _08010748: movs r0, 0x1 _0801074A: pop {r1} bx r1 thumb_func_end sub_8010714 thumb_func_start sub_8010750 sub_8010750: @ 8010750 push {r4,r5,lr} bl sub_8010540 movs r4, 0 ldr r0, =gUnknown_03005000 ldr r1, =0x00000cd5 adds r5, r0, r1 _0801075E: ldr r1, =gUnknown_03007880 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldrh r0, [r0] subs r0, 0x26 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _08010788 adds r1, r4, r5 ldrb r0, [r1] cmp r0, 0xA bne _0801077E movs r0, 0xB strb r0, [r1] _0801077E: lsls r1, r4, 24 lsrs r1, 24 movs r0, 0x4 bl rfu_clearSlot _08010788: adds r4, 0x1 cmp r4, 0x3 ble _0801075E pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8010750 thumb_func_start sub_80107A0 sub_80107A0: @ 80107A0 push {r4,r5,lr} movs r4, 0 ldr r1, =gUnknown_03005000 ldr r2, =0x00000c85 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x8 bne _080107DA ldr r2, =gUnknown_03007880 ldr r0, =0x00000c3e adds r1, r0 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x26 beq _080107D2 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x27 bne _080107DA _080107D2: ldrb r1, [r1] movs r0, 0x4 bl rfu_clearSlot _080107DA: ldr r2, =gUnknown_03007880 ldr r5, =gUnknown_03005000 ldr r0, =0x00000c3e adds r1, r5, r0 ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x46 beq _080107FE ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x48 bne _0801082C _080107FE: ldrb r1, [r1] movs r0, 0x8 bl rfu_clearSlot ldr r2, =0x00000c86 adds r4, r5, r2 ldrb r0, [r4] movs r1, 0 bl sub_8011A64 ldrb r4, [r4] b _08010844 .pool _0801082C: ldrb r0, [r1] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrh r0, [r0, 0x34] cmp r0, 0x47 bne _08010844 ldrb r1, [r1] movs r0, 0x8 bl rfu_clearSlot movs r4, 0x6 _08010844: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80107A0 thumb_func_start sub_801084C sub_801084C: @ 801084C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_03005000 adds r0, r5, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08010872 ldr r0, =0x00000ce8 adds r1, r5, r0 movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl DestroyTask _08010872: ldr r2, =gTasks lsls r1, r6, 2 adds r0, r1, r6 lsls r0, 3 adds r4, r0, r2 movs r2, 0x8 ldrsh r0, [r4, r2] adds r7, r1, 0 cmp r0, 0x3 beq _0801091C cmp r0, 0x3 bgt _080108A4 cmp r0, 0x1 beq _080108CC cmp r0, 0x1 bgt _08010918 cmp r0, 0 beq _080108B6 b _080109D2 .pool _080108A4: cmp r0, 0x5 beq _08010950 cmp r0, 0x5 blt _0801093E cmp r0, 0x6 beq _08010984 cmp r0, 0x65 beq _08010904 b _080109D2 _080108B6: bl sub_800FC60 lsls r0, 24 cmp r0, 0 bne _080108C2 b _080109D2 _080108C2: bl ResetBlockReceivedFlags bl sub_800B348 b _08010948 _080108CC: ldrb r0, [r5, 0xC] cmp r0, 0x1 bne _0801090C ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080108E8 movs r0, 0xF0 lsls r0, 7 bl sub_800FD14 b _080108F0 .pool _080108E8: movs r0, 0xEE lsls r0, 7 bl sub_800FD14 _080108F0: ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 movs r0, 0x65 strh r0, [r1, 0x8] b _080109D2 .pool _08010904: ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 bne _080109D2 _0801090C: movs r0, 0x2 strh r0, [r4, 0x8] b _080109D2 .pool _08010918: ldrb r0, [r5, 0xD] b _08010944 _0801091C: ldrb r0, [r5, 0xC] cmp r0, 0x1 bne _08010948 bl sub_800FC60 lsls r0, 24 cmp r0, 0 beq _080109D2 adds r1, r5, 0 adds r1, 0x5A movs r0, 0 strb r0, [r1] movs r0, 0xA1 lsls r0, 8 bl sub_800FD14 b _08010948 _0801093E: bl sub_800FC88 lsls r0, 24 _08010944: cmp r0, 0 beq _080109D2 _08010948: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080109D2 _08010950: movs r4, 0 ldrb r0, [r5, 0xD] cmp r4, r0 bge _0801096E _08010958: adds r0, r4, 0 bl sub_800B3A4 lsls r0, r4, 24 lsrs r0, 24 bl sub_800F728 adds r4, 0x1 ldrb r2, [r5, 0xD] cmp r4, r2 blt _08010958 _0801096E: ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080109D2 .pool _08010984: adds r0, r6, 0 bl DestroyTask ldr r1, =gReceivedRemoteLinkPlayers movs r0, 0x1 strb r0, [r1] ldr r0, =0x00000ce8 adds r1, r5, r0 movs r0, 0 strb r0, [r1] movs r1, 0x96 lsls r1, 2 movs r0, 0x1 bl sub_800D550 ldr r2, =0x00000ce6 adds r1, r5, r2 ldrb r0, [r1] cmp r0, 0 beq _080109D2 movs r4, 0 adds r2, r1, 0 movs r3, 0x1 ldr r0, =0x00000ce5 adds r5, r0 _080109B6: ldrb r0, [r2] asrs r0, r4 ands r0, r3 cmp r0, 0 beq _080109CC adds r0, r3, 0 lsls r0, r4 strb r0, [r5] ldrb r1, [r2] eors r0, r1 strb r0, [r2] _080109CC: adds r4, 0x1 cmp r4, 0x3 ble _080109B6 _080109D2: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801084C thumb_func_start sub_80109E8 sub_80109E8: @ 80109E8 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 movs r5, 0x1 ldr r4, =gUnknown_03005CDE movs r3, 0 _080109F6: adds r0, r2, 0 asrs r0, r1 ands r0, r5 cmp r0, 0 beq _08010A04 adds r0, r1, r4 strb r3, [r0] _08010A04: adds r1, 0x1 cmp r1, 0x3 ble _080109F6 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80109E8 thumb_func_start sub_8010A14 sub_8010A14: @ 8010A14 push {r4-r7,lr} adds r2, r0, 0 ldr r1, =gUnknown_03005000 ldrb r0, [r2, 0xF] strb r0, [r1, 0xD] movs r4, 0 ldr r0, =0x00000cde adds r5, r1, r0 adds r3, r2, 0 adds r3, 0x10 _08010A28: adds r0, r4, r5 adds r1, r3, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _08010A28 adds r6, r2, 0 ldr r5, =gLinkPlayers movs r4, 0x4 _08010A3C: adds r0, r5, 0 adds r1, r6, 0 adds r1, 0x14 ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldr r1, [r1] str r1, [r0] adds r0, r5, 0 bl sub_800B524 adds r6, 0x1C adds r5, 0x1C subs r4, 0x1 cmp r4, 0 bge _08010A3C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8010A14 thumb_func_start sub_8010A70 sub_8010A70: @ 8010A70 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 ldr r0, =gUnknown_082ED7EC adds r1, r4, 0 bl strcmp adds r5, r0, 0 cmp r5, 0 bne _08010A9C adds r0, r4, 0 bl sub_8010A14 mov r0, sp strh r5, [r0] ldr r2, =0x0100007e adds r1, r4, 0 bl CpuSet movs r0, 0 bl ResetBlockReceivedFlag _08010A9C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8010A70 thumb_func_start sub_8010AAC sub_8010AAC: @ 8010AAC push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r3, =gUnknown_03005000 ldr r2, =gUnknown_082ED68C ldr r1, =0x00000ce9 adds r0, r3, r1 ldrb r1, [r0] adds r1, r2 ldr r2, =0x00000cde adds r0, r3, r2 ldrb r1, [r1] adds r0, r1 ldrb r4, [r0] adds r0, r3, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08010AE8 ldr r5, =0x00000ce8 adds r1, r3, r5 movs r0, 0 strb r0, [r1] adds r0, r6, 0 bl DestroyTask _08010AE8: ldr r0, =gTasks lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] adds r3, r0, 0 adds r7, r2, 0 cmp r1, 0x5 bls _08010B00 b _08010CF0 _08010B00: lsls r0, r1, 2 ldr r1, =_08010B28 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08010B28: .4byte _08010B40 .4byte _08010B60 .4byte _08010B78 .4byte _08010BC0 .4byte _08010C0A .4byte _08010C94 _08010B40: ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 beq _08010B4A b _08010CF0 _08010B4A: adds r0, r4, 0 bl ResetBlockReceivedFlag movs r0, 0xF0 lsls r0, 7 bl sub_800FD14 b _08010C4A .pool _08010B60: ldr r0, =gUnknown_03003110 ldrh r0, [r0] cmp r0, 0 beq _08010B6A b _08010CF0 _08010B6A: adds r1, r7, r6 lsls r1, 3 adds r1, r3 b _08010C52 .pool _08010B78: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _08010B8C b _08010CF0 _08010B8C: adds r0, r4, 0 bl ResetBlockReceivedFlag lsls r2, r4, 8 ldr r0, =gBlockRecvBuffer adds r2, r0 ldr r1, =gLinkPlayers lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 adds r1, r0, 0 adds r2, 0x10 ldm r2!, {r3-r5} stm r1!, {r3-r5} ldm r2!, {r3-r5} stm r1!, {r3-r5} ldr r2, [r2] str r2, [r1] bl sub_800B524 b _08010C4A .pool _08010BC0: ldr r5, =gUnknown_020228C4 adds r1, r5, 0 ldr r0, =gUnknown_082ED7EC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldrh r2, [r0] strh r2, [r1] ldrb r0, [r0, 0x2] strb r0, [r1, 0x2] ldr r1, =gUnknown_03005000 ldrb r0, [r1, 0xD] strb r0, [r5, 0xF] movs r2, 0 adds r4, r5, 0 adds r4, 0x10 ldr r0, =0x00000cde adds r3, r1, r0 _08010BE2: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _08010BE2 ldr r1, =gLinkPlayers adds r0, r5, 0 adds r0, 0x14 movs r2, 0x8C bl memcpy ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _08010C0A: ldr r5, =gUnknown_020228C4 ldr r1, =gUnknown_03005000 ldrb r0, [r1, 0xD] strb r0, [r5, 0xF] movs r2, 0 ldr r3, =gLinkPlayers mov r12, r3 adds r4, r5, 0 adds r4, 0x10 ldr r0, =0x00000cde adds r3, r1, r0 _08010C20: adds r0, r4, r2 adds r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x3 ble _08010C20 adds r0, r5, 0 adds r0, 0x14 mov r1, r12 movs r2, 0x8C bl memcpy ldr r1, =gUnknown_020228C4 movs r0, 0 movs r2, 0xA0 bl SendBlock lsls r0, 24 cmp r0, 0 beq _08010CF0 _08010C4A: ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 _08010C52: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08010CF0 .pool _08010C74: adds r0, r3, 0 lsls r0, r2 ldr r2, =0x00000ce5 adds r1, r5, r2 strb r0, [r1] ldrb r1, [r4] eors r0, r1 strb r0, [r4] ldr r4, =0x00000ce8 adds r0, r5, r4 strb r3, [r0] b _08010CEA .pool _08010C94: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08010CF0 bl GetBlockReceivedStatus movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _08010CF0 mov r0, sp movs r4, 0 strh r4, [r0] ldr r1, =gBlockRecvBuffer ldr r2, =0x0100007e bl CpuSet movs r0, 0 bl ResetBlockReceivedFlag ldr r1, =gUnknown_03005000 ldr r5, =0x00000ce8 adds r0, r1, r5 strb r4, [r0] ldr r0, =0x00000ce6 adds r3, r1, r0 ldrb r0, [r3] cmp r0, 0 beq _08010CEA movs r2, 0 adds r5, r1, 0 adds r4, r3, 0 ldrb r1, [r4] movs r3, 0x1 _08010CDA: adds r0, r1, 0 asrs r0, r2 ands r0, r3 cmp r0, 0 bne _08010C74 adds r2, 0x1 cmp r2, 0x3 ble _08010CDA _08010CEA: adds r0, r6, 0 bl DestroyTask _08010CF0: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8010AAC thumb_func_start sub_8010D0C sub_8010D0C: @ 8010D0C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, =gUnknown_03005000 adds r0, r6, 0 adds r0, 0xF1 ldrb r0, [r0] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _08010D2A adds r0, r5, 0 bl DestroyTask _08010D2A: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08010D70 cmp r0, 0x1 bgt _08010D50 cmp r0, 0 beq _08010D56 b _08010DA6 .pool _08010D50: cmp r0, 0x2 beq _08010D82 b _08010DA6 _08010D56: ldrb r0, [r6, 0xD] cmp r0, 0 beq _08010DA6 bl sub_800B348 ldr r1, =gUnknown_020228C4 movs r0, 0 movs r2, 0x3C bl SendBlock b _08010D7A .pool _08010D70: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08010DA6 _08010D7A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08010DA6 _08010D82: bl GetBlockReceivedStatus movs r4, 0x1 adds r1, r4, 0 ands r1, r0 cmp r1, 0 beq _08010DA6 ldr r0, =gBlockRecvBuffer bl sub_8010A14 movs r0, 0 bl ResetBlockReceivedFlag ldr r0, =gReceivedRemoteLinkPlayers strb r4, [r0] adds r0, r5, 0 bl DestroyTask _08010DA6: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8010D0C thumb_func_start sub_8010DB4 sub_8010DB4: @ 8010DB4 push {r4-r7,lr} ldr r0, =gUnknown_03005000 adds r1, r0, 0 adds r1, 0xEE ldrb r1, [r1] adds r3, r0, 0 cmp r1, 0x1 bne _08010E5C ldr r2, =gUnknown_03004140 ldrb r0, [r2, 0x2] cmp r0, 0 bne _08010E5C ldr r0, =gMain ldr r1, [r0, 0x4] ldr r0, =sub_8018438 cmp r1, r0 beq _08010DDE ldr r0, [r2, 0x3C] ldrb r0, [r0, 0x4] cmp r0, 0 beq _08010DE4 _08010DDE: ldr r1, =gLinkVSyncDisabled movs r0, 0x2 strb r0, [r1] _08010DE4: ldr r4, =c2_800ACD4 adds r0, r4, 0 bl SetMainCallback2 ldr r0, =gMain str r4, [r0, 0x8] ldr r5, =gUnknown_03005000 ldrh r0, [r5, 0xA] lsls r4, r0, 16 ldrh r0, [r5, 0x10] lsls r0, 8 orrs r4, r0 ldrh r0, [r5, 0x12] orrs r4, r0 ldr r1, =0x000009e6 adds r0, r5, r1 ldrb r0, [r0] adds r7, r0, 0 ldr r1, =0x00000c1a adds r0, r5, r1 ldrb r0, [r0] adds r6, r0, 0 bl sub_8011A74 movs r3, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08010E20 movs r3, 0x1 _08010E20: adds r0, r4, 0 adds r1, r7, 0 adds r2, r6, 0 bl sub_800AF18 adds r0, r5, 0 adds r0, 0xEE ldrb r1, [r0] movs r1, 0x2 strb r1, [r0] bl sub_80097E8 b _08010E8E .pool _08010E5C: ldr r1, =0x00000c1b adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1 beq _08010E70 ldr r1, =0x000009e7 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1 bne _08010E8E _08010E70: ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x2] cmp r0, 0 beq _08010E7C bl sub_800D630 _08010E7C: movs r4, 0xE0 lsls r4, 7 movs r0, 0x1 adds r1, r4, 0 bl sub_8011A64 adds r0, r4, 0 bl sub_8011170 _08010E8E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8010DB4 thumb_func_start rfu_REQ_recvData_then_sendData rfu_REQ_recvData_then_sendData: @ 8010EA0 push {lr} ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _08010EB8 bl rfu_REQ_recvData bl rfu_waitREQComplete movs r0, 0 bl rfu_REQ_sendData_wrapper _08010EB8: pop {r0} bx r0 .pool thumb_func_end rfu_REQ_recvData_then_sendData thumb_func_start sub_8010EC0 sub_8010EC0: @ 8010EC0 push {r4,r5,lr} movs r5, 0 ldr r4, =gUnknown_03005000 ldr r1, =0x00000ccd adds r0, r4, r1 strb r5, [r0] bl Random2 lsls r0, 16 lsrs r0, 16 bl sub_800C54C adds r0, r4, 0 adds r0, 0xEF ldrb r0, [r0] cmp r0, 0 bne _08010F14 ldrb r0, [r4, 0xC] cmp r0, 0x1 beq _08010F02 cmp r0, 0x1 bgt _08010EFC cmp r0, 0 beq _08010F08 b _08010F14 .pool _08010EFC: cmp r0, 0x2 beq _08010F10 b _08010F14 _08010F02: bl sub_800F0F8 b _08010F14 _08010F08: bl sub_800F4F0 adds r5, r0, 0 b _08010F14 _08010F10: bl rfu_REQ_recvData_then_sendData _08010F14: adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8010EC0 thumb_func_start sub_8010F1C sub_8010F1C: @ 8010F1C push {r4,lr} movs r4, 0 ldr r1, =gUnknown_03005000 adds r0, r1, 0 adds r0, 0xEF ldrb r0, [r0] cmp r0, 0 bne _08010F3C ldrb r0, [r1, 0xC] cmp r0, 0x1 bne _08010F38 bl sub_800F1E0 adds r4, r0, 0 _08010F38: bl sub_8010DB4 _08010F3C: adds r0, r4, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8010F1C thumb_func_start sub_8010F48 sub_8010F48: @ 8010F48 push {lr} ldr r0, =gUnknown_02022B22 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy pop {r0} bx r0 .pool thumb_func_end sub_8010F48 thumb_func_start sub_8010F60 sub_8010F60: @ 8010F60 push {r4,lr} ldr r4, =gUnknown_02022B14 adds r0, r4, 0 movs r1, 0 movs r2, 0xD bl memset adds r0, r4, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_800DD94 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8010F60 thumb_func_start sub_8010F84 sub_8010F84: @ 8010F84 push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_02022B14 adds r1, r4, 0 bl sub_800DD94 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8010F84 thumb_func_start sub_8010FA0 sub_8010FA0: @ 8010FA0 push {r4,r5,lr} ldr r5, =gUnknown_02022B14 movs r4, 0x1 ands r0, r4 lsls r0, 4 ldrb r3, [r5] movs r2, 0x11 negs r2, r2 ands r2, r3 orrs r2, r0 ands r1, r4 lsls r1, 5 movs r0, 0x21 negs r0, r0 ands r2, r0 orrs r2, r1 strb r2, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8010FA0 thumb_func_start sub_8010FCC sub_8010FCC: @ 8010FCC push {r4,r5,lr} ldr r5, =gUnknown_02022B14 lsls r0, 2 ldrb r4, [r5, 0x9] movs r3, 0x3 ands r3, r4 orrs r3, r0 strb r3, [r5, 0x9] ldr r3, =0x000003ff adds r0, r3, 0 ands r1, r0 ldrh r3, [r5, 0x8] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r1 strh r0, [r5, 0x8] lsls r2, 1 ldrb r1, [r5, 0xB] movs r0, 0x1 ands r0, r1 orrs r0, r2 strb r0, [r5, 0xB] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8010FCC thumb_func_start sub_801100C sub_801100C: @ 801100C push {r4,lr} movs r4, 0x80 ldr r3, =gLinkPlayers lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r0, r1, r3 ldrb r2, [r0, 0x13] lsls r2, 3 orrs r2, r4 adds r3, 0x4 adds r1, r3 ldr r0, [r1] movs r1, 0x7 ands r0, r1 orrs r0, r2 lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801100C thumb_func_start sub_801103C sub_801103C: @ 801103C push {r4,r5,lr} ldr r5, =gUnknown_02022B14 movs r4, 0x1 b _08011054 .pool _08011048: adds r0, r4, 0 bl sub_801100C adds r1, r5, r4 strb r0, [r1, 0x3] adds r4, 0x1 _08011054: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _08011048 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801103C thumb_func_start sub_8011068 sub_8011068: @ 8011068 push {lr} lsls r0, 24 ldr r2, =gUnknown_02022B14 lsrs r0, 17 ldrb r3, [r2, 0xA] movs r1, 0x7F ands r1, r3 orrs r1, r0 strb r1, [r2, 0xA] ldr r3, =gUnknown_02022B22 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData pop {r0} bx r0 .pool thumb_func_end sub_8011068 thumb_func_start sub_8011090 sub_8011090: @ 8011090 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0801109E bl sub_8010F84 _0801109E: ldr r2, =gUnknown_02022B14 ldr r3, =gUnknown_02022B22 movs r0, 0 movs r1, 0x2 bl rfu_REQ_configGameData pop {r0} bx r0 .pool thumb_func_end sub_8011090 thumb_func_start sub_80110B8 sub_80110B8: @ 80110B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r9, r0 bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 bne _0801114C movs r5, 0 movs r7, 0 ldr r3, =gUnknown_03005000 ldr r1, =0x00000ce2 adds r0, r3, r1 ldr r2, =0x00000ce3 adds r1, r3, r2 ldrb r2, [r0] ldrb r0, [r1] adds r1, r0, 0 eors r1, r2 mov r8, r1 movs r4, 0 movs r6, 0x1 ldr r2, =gLinkPlayers mov r12, r2 ldr r0, =0x00000cde adds r0, r3 mov r10, r0 mov r3, r12 adds r3, 0x4 _080110FC: mov r0, r8 asrs r0, r4 ands r0, r6 cmp r0, 0 beq _0801113C mov r1, r10 adds r0, r4, r1 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r2, r12 adds r1, r0, r2 ldrb r1, [r1, 0x13] adds r2, r6, 0 ands r2, r1 lsls r2, 3 adds r0, r3 ldr r1, [r0] movs r0, 0x7 ands r1, r0 movs r0, 0x80 orrs r1, r0 orrs r2, r1 lsls r0, r5, 3 lsls r2, r0 orrs r7, r2 adds r5, 0x1 mov r0, r9 subs r0, 0x1 cmp r5, r0 beq _08011142 _0801113C: adds r4, 0x1 cmp r4, 0x3 ble _080110FC _08011142: movs r0, 0x45 adds r1, r7, 0 movs r2, 0 bl sub_8011090 _0801114C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80110B8 thumb_func_start sub_8011170 sub_8011170: @ 8011170 push {r4,lr} adds r4, r0, 0 ldr r2, =gUnknown_03005000 adds r3, r2, 0 adds r3, 0xEE ldrb r0, [r3] cmp r0, 0 bne _08011192 ldr r1, =gUnknown_03004140 ldrh r0, [r1, 0x14] strh r0, [r2, 0x10] ldrh r0, [r1, 0x16] strh r0, [r2, 0x12] strh r4, [r2, 0xA] ldrb r0, [r3] movs r0, 0x1 strb r0, [r3] _08011192: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8011170 thumb_func_start sub_80111A0 sub_80111A0: @ 80111A0 ldr r0, =gUnknown_03005000 adds r0, 0xEE ldrb r1, [r0] movs r1, 0 strb r1, [r0] bx lr .pool thumb_func_end sub_80111A0 thumb_func_start sub_80111B0 sub_80111B0: @ 80111B0 push {lr} adds r2, r0, 0 cmp r2, 0 bne _080111C8 ldr r0, =gUnknown_03005000 adds r0, 0xEE ldrb r1, [r0] strb r2, [r0] b _080111D2 .pool _080111C8: ldr r0, =gUnknown_03005000 adds r0, 0xEE ldrb r1, [r0] movs r1, 0x4 strb r1, [r0] _080111D2: pop {r0} bx r0 .pool thumb_func_end sub_80111B0 thumb_func_start sub_80111DC sub_80111DC: @ 80111DC push {lr} ldr r0, =gUnknown_03004140 ldrb r0, [r0] movs r1, 0x1 bl sub_8011E94 ldr r1, =gUnknown_03005000 movs r0, 0 str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_80111DC thumb_func_start sub_80111FC sub_80111FC: @ 80111FC ldr r1, =gUnknown_03005000 ldr r0, =sub_80111DC str r0, [r1] bx lr .pool thumb_func_end sub_80111FC thumb_func_start sub_801120C sub_801120C: @ 801120C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 movs r6, 0 cmp r4, 0x32 bne _08011222 b _08011360 _08011222: cmp r4, 0x32 bgt _08011252 cmp r4, 0x13 bgt _08011240 cmp r4, 0x12 blt _08011230 b _080113EE _08011230: cmp r4, 0x10 bne _08011236 b _080113EE _08011236: cmp r4, 0x10 bgt _0801128C cmp r4, 0 beq _0801127E b _080113EE _08011240: cmp r4, 0x30 bne _08011246 b _0801136C _08011246: cmp r4, 0x30 ble _0801124C b _08011354 _0801124C: cmp r4, 0x14 beq _08011328 b _080113EE _08011252: cmp r4, 0x44 bgt _08011264 cmp r4, 0x42 blt _0801125C b _080113EE _0801125C: cmp r4, 0x33 bne _08011262 b _0801136C _08011262: b _080113EE _08011264: cmp r4, 0xF3 bne _0801126A b _080113BA _0801126A: cmp r4, 0xF3 bgt _08011276 cmp r4, 0xF0 bge _08011274 b _080113EE _08011274: b _080113D4 _08011276: cmp r4, 0xFF bne _0801127C b _080113D4 _0801127C: b _080113EE _0801127E: ldr r1, =gUnknown_03005000 movs r0, 0x2 strh r0, [r1, 0x4] b _080113EE .pool _0801128C: ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x14] bl sub_80115EC movs r5, 0 movs r0, 0x1 mov r8, r0 ldr r1, =gUnknown_03005000 mov r9, r1 ldr r3, =0x00000cd5 add r3, r9 mov r10, r3 movs r7, 0x7F _080112A6: ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x14] asrs r0, r5 mov r1, r8 ands r0, r1 cmp r0, 0 beq _0801130E ldr r0, =gUnknown_03007890 lsls r1, r5, 5 adds r1, 0x14 ldr r0, [r0] adds r0, r1 ldrb r0, [r0, 0x10] adds r4, r7, 0 ands r4, r0 bl sub_800F7DC ldrb r1, [r0, 0xA] adds r0, r7, 0 ands r0, r1 cmp r4, r0 bne _08011304 ldr r0, =0x00000cd1 add r0, r9 adds r0, r5, r0 movs r1, 0 strb r1, [r0] mov r3, r10 adds r2, r5, r3 strb r1, [r2] movs r0, 0x20 adds r1, r5, 0 movs r3, 0x1 bl rfu_setRecvBuffer b _0801130E .pool _08011304: mov r0, r8 lsls r0, r5 orrs r6, r0 lsls r0, r6, 24 lsrs r6, r0, 24 _0801130E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080112A6 cmp r6, 0 beq _080113EE adds r0, r6, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete b _080113EE _08011328: ldr r4, =gUnknown_03005000 ldr r1, =0x00000ce7 adds r0, r4, r1 ldr r1, =gUnknown_03004140 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 beq _08011342 eors r0, r2 bl rfu_REQ_disconnect bl rfu_waitREQComplete _08011342: movs r0, 0x11 strh r0, [r4, 0x4] b _080113EE .pool _08011354: ldr r0, =gUnknown_03005000 adds r0, 0xF0 b _080113EA .pool _08011360: ldr r0, =gUnknown_03005000 adds r0, 0xF0 movs r1, 0x3 b _080113EC .pool _0801136C: ldr r1, =gUnknown_03005000 adds r2, r1, 0 adds r2, 0xF0 movs r0, 0x4 strb r0, [r2] ldr r3, =0x00000ce2 adds r1, r3 ldr r0, =gUnknown_03004140 ldrb r2, [r0, 0x14] ldrb r0, [r1] adds r3, r0, 0 bics r3, r2 adds r2, r3, 0 strb r2, [r1] ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080113B0 cmp r2, 0 bne _080113AC adds r0, r4, 0 bl sub_8011170 b _080113B0 .pool _080113AC: bl sub_80111FC _080113B0: movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 b _080113EE _080113BA: movs r0, 0x1 movs r1, 0xF3 bl sub_8011A64 movs r0, 0xF3 bl sub_8011170 ldr r0, =gUnknown_03005000 adds r0, 0xEF b _080113EA .pool _080113D4: adds r0, r4, 0 bl sub_8011170 movs r0, 0x1 adds r1, r4, 0 bl sub_8011A64 ldr r0, =gUnknown_03005000 ldr r1, =0x00000cdb adds r0, r1 ldrb r1, [r0] _080113EA: movs r1, 0x1 _080113EC: strb r1, [r0] _080113EE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801120C thumb_func_start sub_8011404 sub_8011404: @ 8011404 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x31 bne _08011410 b _08011570 _08011410: cmp r4, 0x31 bgt _0801143E cmp r4, 0x22 beq _08011494 cmp r4, 0x22 bgt _0801142C cmp r4, 0x20 beq _0801147C cmp r4, 0x20 ble _08011426 b _080115DE _08011426: cmp r4, 0 beq _0801146E b _080115DE _0801142C: cmp r4, 0x24 beq _080114BA cmp r4, 0x24 blt _080114B0 cmp r4, 0x25 beq _08011504 cmp r4, 0x30 beq _0801150E b _080115DE _0801143E: cmp r4, 0x44 bgt _08011454 cmp r4, 0x42 blt _08011448 b _080115DE _08011448: cmp r4, 0x33 beq _08011522 cmp r4, 0x33 bge _08011452 b _0801158C _08011452: b _080115DE _08011454: cmp r4, 0xF3 bne _0801145A b _080115AC _0801145A: cmp r4, 0xF3 bgt _08011466 cmp r4, 0xF0 bge _08011464 b _080115DE _08011464: b _080115C4 _08011466: cmp r4, 0xFF bne _0801146C b _080115C4 _0801146C: b _080115DE _0801146E: ldr r1, =gUnknown_03005000 movs r0, 0x6 strh r0, [r1, 0x4] b _080115DE .pool _0801147C: ldr r0, =gUnknown_03005000 ldr r1, =gUnknown_03004140 ldrh r1, [r1, 0x14] ldr r2, =0x00000ccd adds r0, r2 b _080115DC .pool _08011494: ldr r0, =gUnknown_03005000 ldr r1, =gUnknown_03004140 ldrh r1, [r1, 0x14] ldr r2, =0x00000c3e adds r0, r2 ldrb r2, [r0] b _080115DC .pool _080114B0: movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 b _080115DE _080114BA: ldr r4, =gUnknown_03005000 movs r1, 0 movs r0, 0xB strh r0, [r4, 0x4] ldr r2, =0x00000c85 adds r0, r4, r2 strb r1, [r0] ldr r0, =0x00000c86 adds r2, r4, r0 strb r1, [r2] ldr r1, =0x00000c3e adds r5, r4, r1 ldrb r1, [r5] movs r0, 0x20 movs r3, 0x1 bl rfu_setRecvBuffer ldrb r1, [r5] ldr r2, =0x00000c3f adds r4, r2 movs r0, 0x10 adds r2, r4, 0 movs r3, 0x46 bl rfu_setRecvBuffer b _080115DE .pool _08011504: movs r0, 0x2 movs r1, 0x25 bl sub_8011A64 b _080115DE _0801150E: ldr r0, =gUnknown_03005000 adds r2, r0, 0 adds r2, 0xF0 movs r1, 0x2 strb r1, [r2] ldr r1, =0x00000c86 adds r0, r1 ldrb r0, [r0] cmp r0, 0x6 beq _080115DE _08011522: ldr r2, =gUnknown_03005000 adds r1, r2, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0x2 beq _08011532 movs r0, 0x4 strb r0, [r1] _08011532: ldr r1, =0x00000c86 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x9 beq _08011544 movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 _08011544: ldr r0, =gUnknown_082ED7FC movs r1, 0x5 movs r2, 0x5 bl nullsub_5 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080115DE adds r0, r4, 0 bl sub_8011170 b _080115DE .pool _08011570: ldr r0, =gUnknown_03005000 adds r0, 0xF0 movs r1, 0x1 strb r1, [r0] ldr r0, =gUnknown_082ED814 movs r1, 0x5 movs r2, 0x5 bl nullsub_5 b _080115DE .pool _0801158C: ldr r1, =gUnknown_03005000 adds r2, r1, 0 adds r2, 0xF0 movs r0, 0x3 strb r0, [r2] ldr r2, =0x00000c3c adds r1, r2 ldrb r0, [r1] movs r0, 0x1 strb r0, [r1] b _080115DE .pool _080115AC: movs r0, 0x1 movs r1, 0xF3 bl sub_8011A64 movs r0, 0xF3 bl sub_8011170 ldr r0, =gUnknown_03005000 adds r0, 0xEF b _080115DA .pool _080115C4: movs r0, 0x1 adds r1, r4, 0 bl sub_8011A64 adds r0, r4, 0 bl sub_8011170 ldr r0, =gUnknown_03005000 ldr r1, =0x00000cdb adds r0, r1 ldrb r1, [r0] _080115DA: movs r1, 0x1 _080115DC: strb r1, [r0] _080115DE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8011404 thumb_func_start sub_80115EC sub_80115EC: @ 80115EC push {r4-r6,lr} adds r3, r0, 0 movs r2, 0 movs r6, 0x1 ldr r0, =gUnknown_03005000 ldr r4, =0x00000cea adds r1, r0, r4 movs r5, 0 movs r4, 0xFF _080115FE: adds r0, r3, 0 asrs r0, r2 ands r0, r6 cmp r0, 0 beq _08011610 strb r5, [r1] ldrb r0, [r1, 0x4] orrs r0, r4 strb r0, [r1, 0x4] _08011610: adds r1, 0x1 adds r2, 0x1 cmp r2, 0x3 ble _080115FE pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80115EC thumb_func_start sub_8011628 sub_8011628: @ 8011628 push {r4-r7,lr} adds r5, r0, 0 movs r3, 0 movs r2, 0 movs r4, 0x1 ldr r6, =gUnknown_03007890 movs r7, 0x7F _08011636: adds r0, r5, 0 asrs r0, r2 ands r0, r4 cmp r0, 0 beq _0801165C lsls r1, r2, 5 adds r1, 0x14 ldr r0, [r6] adds r0, r1 ldrb r1, [r0, 0x10] adds r0, r7, 0 ands r0, r1 cmp r0, 0x45 bne _0801165C adds r0, r4, 0 lsls r0, r2 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 _0801165C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _08011636 adds r0, r3, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8011628 thumb_func_start sub_8011674 sub_8011674: @ 8011674 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x25 bne _08011680 b _080118EC _08011680: cmp r4, 0x25 bgt _080116C2 cmp r4, 0x14 bne _0801168A b _08011804 _0801168A: cmp r4, 0x14 bgt _080116A2 cmp r4, 0x11 beq _08011722 cmp r4, 0x11 ble _08011698 b _08011A42 _08011698: cmp r4, 0 beq _0801170C cmp r4, 0x10 beq _08011718 b _08011A42 _080116A2: cmp r4, 0x22 bne _080116A8 b _08011868 _080116A8: cmp r4, 0x22 bgt _080116B4 cmp r4, 0x20 bne _080116B2 b _08011850 _080116B2: b _08011A42 _080116B4: cmp r4, 0x23 bne _080116BA b _08011884 _080116BA: cmp r4, 0x24 bne _080116C0 b _080118BA _080116C0: b _08011A42 _080116C2: cmp r4, 0x44 bgt _080116F2 cmp r4, 0x42 blt _080116CC b _08011A42 _080116CC: cmp r4, 0x32 bne _080116D2 b _08011914 _080116D2: cmp r4, 0x32 bgt _080116E4 cmp r4, 0x30 bne _080116DC b _08011940 _080116DC: cmp r4, 0x31 bne _080116E2 b _080118F6 _080116E2: b _08011A42 _080116E4: cmp r4, 0x33 bne _080116EA b _08011948 _080116EA: cmp r4, 0x40 bne _080116F0 b _080119FC _080116F0: b _08011A42 _080116F2: cmp r4, 0xF3 bne _080116F8 b _08011A0C _080116F8: cmp r4, 0xF3 bgt _08011704 cmp r4, 0xF0 bge _08011702 b _08011A42 _08011702: b _08011A28 _08011704: cmp r4, 0xFF bne _0801170A b _08011A28 _0801170A: b _08011A42 _0801170C: ldr r1, =gUnknown_03005000 movs r0, 0x11 strh r0, [r1, 0x4] b _08011A42 .pool _08011718: movs r0, 0x4 movs r1, 0 bl sub_8011A64 b _08011A42 _08011722: bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 bne _080117DC ldr r5, =gUnknown_03005000 ldr r1, =0x00000cd9 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080117DC ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x14] bl sub_8011628 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080117A6 adds r0, r4, 0 bl sub_800E87C movs r2, 0x1 mov r12, r2 mov r1, r12 lsls r1, r0 lsls r1, 24 lsrs r1, 24 ldr r7, =0x00000ce6 adds r6, r5, r7 ldrb r2, [r6] cmp r2, 0 bne _08011798 ldr r0, =0x00000ce8 adds r3, r5, r0 ldrb r0, [r3] cmp r0, 0 bne _08011798 subs r7, 0x1 adds r0, r5, r7 strb r1, [r0] eors r1, r4 orrs r1, r2 strb r1, [r6] mov r0, r12 strb r0, [r3] b _080117A6 .pool _08011798: ldr r0, =gUnknown_03005000 ldr r1, =0x00000ce6 adds r0, r1 ldrb r2, [r0] adds r1, r4, 0 orrs r1, r2 strb r1, [r0] _080117A6: ldr r0, =gUnknown_03004140 ldrh r1, [r0, 0x14] cmp r4, r1 beq _080117F6 ldr r2, =gUnknown_03005000 ldr r7, =0x00000ce3 adds r3, r2, r7 adds r0, r4, 0 eors r0, r1 ldrb r1, [r3] orrs r0, r1 strb r0, [r3] ldr r0, =0x00000ce4 adds r2, r0 movs r0, 0x2 strb r0, [r2] b _080117F6 .pool _080117DC: bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x54 bne _080117F6 ldr r0, =gUnknown_03004140 ldrb r0, [r0] bl rfu_REQ_disconnect bl rfu_waitREQComplete _080117F6: ldr r0, =gUnknown_03004140 ldrh r0, [r0, 0x14] bl sub_80115EC b _08011A42 .pool _08011804: bl sub_800F7DC ldrb r1, [r0, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 beq _08011836 ldr r4, =gUnknown_03004140 ldrb r0, [r4, 0x1] cmp r0, 0x1 bls _08011836 ldrb r0, [r4, 0x14] bl sub_800E87C movs r1, 0x80 lsls r1, 17 lsls r1, r0 lsrs r1, 24 ldrb r0, [r4] eors r1, r0 adds r0, r1, 0 bl rfu_REQ_disconnect bl rfu_waitREQComplete _08011836: ldr r1, =gUnknown_03005000 ldrh r0, [r1, 0x4] cmp r0, 0xF beq _08011840 b _08011A42 _08011840: movs r0, 0x10 strh r0, [r1, 0x4] b _08011A42 .pool _08011850: ldr r0, =gUnknown_03005000 ldr r1, =gUnknown_03004140 ldrh r1, [r1, 0x14] ldr r2, =0x00000ccd adds r0, r2 b _08011A40 .pool _08011868: ldr r0, =gUnknown_03005000 ldr r1, =gUnknown_03004140 ldrh r1, [r1, 0x14] ldr r7, =0x00000c3e adds r0, r7 ldrb r2, [r0] b _08011A40 .pool _08011884: ldr r1, =gUnknown_03005000 movs r0, 0x12 strh r0, [r1, 0x4] ldr r0, =0x00000ccf adds r1, r0 ldrb r0, [r1] cmp r0, 0x1 bhi _080118B0 adds r0, 0x1 strb r0, [r1] ldr r0, =sub_801209C movs r1, 0x2 bl CreateTask b _08011A42 .pool _080118B0: movs r0, 0x2 movs r1, 0x23 bl sub_8011A64 b _08011A42 _080118BA: ldr r4, =gUnknown_03005000 movs r0, 0xD strh r0, [r4, 0x4] movs r0, 0x3 movs r1, 0 bl sub_8011A64 ldr r1, =0x00000c3e adds r0, r4, r1 ldrb r1, [r0] ldr r2, =0x00000c3f adds r4, r2 movs r0, 0x10 adds r2, r4, 0 movs r3, 0x46 bl rfu_setRecvBuffer b _08011A42 .pool _080118EC: movs r0, 0x2 movs r1, 0x25 bl sub_8011A64 b _08011A42 _080118F6: ldr r0, =gUnknown_03004140 ldrb r1, [r0] ldrh r0, [r0, 0x14] ands r1, r0 cmp r1, 0 bne _08011904 b _08011A42 _08011904: ldr r0, =gUnknown_03005000 adds r0, 0xF0 movs r1, 0x1 b _08011A40 .pool _08011914: ldr r2, =gUnknown_03005000 adds r1, r2, 0 adds r1, 0xF0 movs r0, 0x3 strb r0, [r1] ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 beq _0801192A b _08011A42 _0801192A: ldr r7, =0x00000c3c adds r0, r2, r7 ldrb r1, [r0] movs r1, 0x1 b _08011A40 .pool _08011940: ldr r0, =gUnknown_03005000 adds r0, 0xF0 movs r1, 0x2 strb r1, [r0] _08011948: ldr r2, =gUnknown_03005000 adds r1, r2, 0 adds r1, 0xF0 ldrb r0, [r1] cmp r0, 0x2 beq _08011958 movs r0, 0x4 strb r0, [r1] _08011958: ldrb r0, [r2, 0xC] cmp r0, 0x1 bne _08011996 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080119B4 ldr r0, =0x00000ce2 adds r2, r0 ldr r0, =gUnknown_03004140 ldrb r1, [r0, 0x14] ldrb r0, [r2] bics r0, r1 strb r0, [r2] cmp r0, 0 bne _08011990 adds r0, r4, 0 bl sub_8011170 b _080119B4 .pool _08011990: bl sub_80111FC b _080119B4 _08011996: ldr r1, =0x00000ce4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080119B4 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 bne _080119B4 adds r0, r4, 0 bl sub_8011170 movs r0, 0 bl sub_800C27C _080119B4: ldr r0, =gUnknown_03007890 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF bne _080119DA ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x7] cmp r0, 0 bne _080119DA ldr r0, =sub_800EB44 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080119DA ldr r1, =gUnknown_03005000 movs r0, 0x11 strh r0, [r1, 0x4] _080119DA: movs r0, 0x2 adds r1, r4, 0 bl sub_8011A64 b _08011A42 .pool _080119FC: ldr r0, =gUnknown_03005000 ldr r2, =0x00000ce3 adds r0, r2 b _08011A3E .pool _08011A0C: movs r0, 0x1 movs r1, 0xF3 bl sub_8011A64 movs r0, 0xF3 bl sub_8011170 ldr r0, =gUnknown_03005000 adds r0, 0xEF movs r1, 0x1 b _08011A40 .pool _08011A28: adds r0, r4, 0 bl sub_8011170 movs r0, 0x1 adds r1, r4, 0 bl sub_8011A64 ldr r0, =gUnknown_03005000 ldr r7, =0x00000cdb adds r0, r7 ldrb r1, [r0] _08011A3E: movs r1, 0 _08011A40: strb r1, [r0] _08011A42: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8011674 thumb_func_start sub_8011A50 sub_8011A50: @ 8011A50 ldr r0, =gUnknown_03005000 ldr r1, =0x00000ce4 adds r0, r1 movs r1, 0x2 strb r1, [r0] bx lr .pool thumb_func_end sub_8011A50 thumb_func_start sub_8011A64 sub_8011A64: @ 8011A64 ldr r2, =gUnknown_03005000 adds r3, r2, 0 adds r3, 0xF1 strb r0, [r3] strh r1, [r2, 0xA] bx lr .pool thumb_func_end sub_8011A64 thumb_func_start sub_8011A74 sub_8011A74: @ 8011A74 ldr r0, =gUnknown_03005000 adds r0, 0xF1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8011A74 thumb_func_start sub_8011A80 sub_8011A80: @ 8011A80 push {lr} bl sub_8011A74 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x1 bls _08011A94 movs r0, 0 b _08011A96 _08011A94: movs r0, 0x1 _08011A96: pop {r1} bx r1 thumb_func_end sub_8011A80 thumb_func_start sub_8011A9C sub_8011A9C: @ 8011A9C ldr r0, =gUnknown_03005000 ldr r1, =0x00000ce8 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8011A9C thumb_func_start sub_8011AB0 sub_8011AB0: @ 8011AB0 ldr r0, =gUnknown_03005000 ldrb r0, [r0, 0xC] bx lr .pool thumb_func_end sub_8011AB0 thumb_func_start LinkVSync LinkVSync: @ 8011ABC push {lr} bl rfu_syncVBlank_ pop {r0} bx r0 thumb_func_end LinkVSync thumb_func_start sub_8011AC8 sub_8011AC8: @ 8011AC8 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r1, =gUnknown_03003090 ldr r2, =0x05000014 mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_8011AC8 thumb_func_start sub_8011AE8 sub_8011AE8: @ 8011AE8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8011AE8 thumb_func_start sub_8011AFC sub_8011AFC: @ 8011AFC push {r4,lr} bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks bl ResetPaletteFade ldr r0, =sub_8011AE8 bl SetVBlankCallback bl sub_80093CC lsls r0, 24 cmp r0, 0 beq _08011B70 ldr r1, =gUnknown_020229C6 ldr r2, =0x00001111 adds r0, r2, 0 strh r0, [r1] bl sub_800B488 bl sub_8009734 ldr r0, =gMain ldrh r0, [r0, 0x24] bl SeedRng movs r4, 0 _08011B38: bl Random ldr r1, =gSaveBlock2Ptr ldr r1, [r1] adds r1, 0xA adds r1, r4 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _08011B38 movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_8011BA4 ldr r0, =sub_8011BF8 bl SetMainCallback2 _08011B70: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8011AFC thumb_func_start sub_8011B90 sub_8011B90: @ 8011B90 push {lr} ldr r0, =sub_800EB44 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8011B90 thumb_func_start sub_8011BA4 sub_8011BA4: @ 8011BA4 push {r4,lr} ldr r4, =nullsub_89 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _08011BC2 adds r0, r4, 0 movs r1, 0 bl CreateTask ldr r1, =gUnknown_03005000 adds r1, 0x66 strb r0, [r1] _08011BC2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8011BA4 thumb_func_start sub_8011BD0 sub_8011BD0: @ 8011BD0 push {lr} ldr r0, =nullsub_89 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08011BEA ldr r0, =gUnknown_03005000 adds r0, 0x66 ldrb r0, [r0] bl DestroyTask _08011BEA: pop {r0} bx r0 .pool thumb_func_end sub_8011BD0 thumb_func_start sub_8011BF8 sub_8011BF8: @ 8011BF8 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8011BF8 thumb_func_start sub_8011C10 sub_8011C10: @ 8011C10 push {r4-r6,lr} adds r4, r0, 0 ldr r1, =gUnknown_03005000 movs r0, 0x1 strb r0, [r1, 0xC] bl sub_8010F48 ldr r0, =sub_801120C movs r1, 0 bl sub_800BF4C ldr r2, =gUnknown_02022B2C adds r1, r2, 0 ldr r0, =gUnknown_082ED608 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldr r0, =gUnknown_082ED620 subs r4, 0x1 adds r4, r0 ldrb r0, [r4] strh r0, [r2, 0x2] bl sub_800EE78 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011C10 thumb_func_start sub_8011C5C sub_8011C5C: @ 8011C5C push {lr} ldr r1, =gUnknown_03005000 movs r0, 0 strb r0, [r1, 0xC] bl sub_8010F48 ldr r0, =sub_8011404 ldr r1, =sub_800ED34 bl sub_800BF4C bl sub_800EF00 pop {r0} bx r0 .pool thumb_func_end sub_8011C5C thumb_func_start sub_8011C84 sub_8011C84: @ 8011C84 push {r4-r7,lr} ldr r4, =gUnknown_03005000 movs r5, 0 movs r0, 0x2 strb r0, [r4, 0xC] bl sub_8010F48 ldr r0, =sub_8011674 movs r1, 0 bl sub_800BF4C ldr r2, =gUnknown_02022B2C adds r1, r2, 0 ldr r0, =gUnknown_082ED608 ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} strb r5, [r2, 0x11] movs r0, 0x96 lsls r0, 2 strh r0, [r2, 0x12] ldr r0, =sub_800EB44 movs r1, 0x1 bl CreateTask adds r4, 0x67 strb r0, [r4] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8011C84 thumb_func_start sub_8011CD8 sub_8011CD8: @ 8011CD8 ldrb r1, [r0, 0x1] lsls r1, 8 ldrb r0, [r0] orrs r0, r1 bx lr thumb_func_end sub_8011CD8 thumb_func_start sub_8011CE4 sub_8011CE4: @ 8011CE4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 str r0, [sp] lsls r1, 16 lsrs r1, 16 mov r10, r1 movs r0, 0xFF mov r9, r0 movs r7, 0 ldr r1, =gUnknown_03007890 mov r8, r1 _08011D02: lsls r4, r7, 5 adds r5, r4, 0 adds r5, 0x14 mov r1, r8 ldr r0, [r1] adds r0, r5 adds r0, 0x8 bl sub_8011CD8 lsls r0, 16 lsrs r6, r0, 16 mov r1, r8 ldr r0, [r1] adds r0, r4 ldrh r0, [r0, 0x18] bl sub_8010454 cmp r0, 0 beq _08011D4C mov r0, r8 ldr r1, [r0] adds r1, r5 adds r1, 0x15 ldr r0, [sp] bl StringCompare cmp r0, 0 bne _08011D4C cmp r10, r6 bne _08011D4C mov r9, r7 mov r1, r8 ldr r0, [r1] adds r0, r4 ldrb r0, [r0, 0x16] cmp r0, 0xFF bne _08011D56 _08011D4C: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _08011D02 _08011D56: mov r0, r9 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8011CE4 thumb_func_start sub_8011D6C sub_8011D6C: @ 8011D6C push {r4-r6,lr} adds r6, r0, 0 lsls r0, r6, 24 lsrs r0, 24 bl rfu_REQ_disconnect bl rfu_waitREQComplete ldr r4, =gUnknown_03005000 ldr r0, =0x00000ce2 adds r5, r4, r0 ldrb r0, [r5] bics r0, r6 strb r0, [r5] ldr r1, =0x00000cda adds r6, r4, r1 ldrb r1, [r6] movs r0, 0x1 bl rfu_clearSlot ldrb r0, [r5] ldr r1, =0x00000c87 adds r4, r1 adds r1, r4, 0 movs r2, 0x46 bl rfu_UNI_setSendData ldrb r0, [r5] bl sub_800E87C strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011D6C thumb_func_start sub_8011DC0 sub_8011DC0: @ 8011DC0 push {lr} lsls r1, 16 lsrs r1, 16 bl sub_8011CE4 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xFF beq _08011DDA movs r0, 0x1 lsls r0, r1 bl sub_8011D6C _08011DDA: pop {r0} bx r0 thumb_func_end sub_8011DC0 thumb_func_start sub_8011DE0 sub_8011DE0: @ 8011DE0 push {r4-r6,lr} adds r4, r0, 0 cmp r4, 0 beq _08011E20 movs r3, 0 movs r2, 0 ldr r5, =gUnknown_03005CDE adds r6, r5, 0x4 _08011DF0: adds r0, r2, r5 ldrb r0, [r0] cmp r0, r4 bne _08011E0E ldrb r0, [r6] asrs r0, r2 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08011E0E adds r0, r1, 0 lsls r0, r2 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 _08011E0E: adds r2, 0x1 cmp r2, 0x3 ble _08011DF0 cmp r3, 0 beq _08011E20 adds r0, r3, 0 movs r1, 0x2 bl sub_8011E94 _08011E20: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011DE0 thumb_func_start sub_8011E2C sub_8011E2C: @ 8011E2C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gUnknown_03003110 ldrh r0, [r6] cmp r0, 0 bne _08011E7A ldr r5, =gUnknown_03005000 ldr r1, =0x00000ce8 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _08011E7A movs r0, 0xED lsls r0, 8 bl sub_800FD14 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] strh r1, [r6, 0x2] ldrh r1, [r0, 0xA] strh r1, [r6, 0x4] ldr r1, =gUnknown_082ED695 movs r2, 0x8 ldrsh r0, [r0, r2] adds r0, r1 ldrb r1, [r5, 0xD] ldrb r0, [r0] subs r1, r0 strb r1, [r5, 0xD] ldrb r0, [r5, 0xD] strh r0, [r6, 0x6] adds r0, r4, 0 bl DestroyTask _08011E7A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011E2C thumb_func_start sub_8011E94 sub_8011E94: @ 8011E94 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r5, =sub_8011E2C adds r0, r5, 0 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF bne _08011ECC adds r0, r5, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] b _08011EDC .pool _08011ECC: ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] orrs r4, r0 strh r4, [r1, 0x8] _08011EDC: ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r6, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011E94 thumb_func_start sub_8011EF4 sub_8011EF4: @ 8011EF4 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 r4, r0, r1 bl sub_800EE94 lsls r0, 24 cmp r0, 0 beq _08011FA4 adds r0, r4, 0 adds r0, 0x10 bl sub_8011CD8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011CE4 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _08011F8C ldr r0, =gUnknown_03007890 ldr r0, [r0] lsls r1, r2, 5 adds r0, r1 ldrb r0, [r0, 0x16] cmp r0, 0xFF beq _08011F5C ldr r0, =gUnknown_03005000 ldr r1, =0x00000c3d adds r0, r1 strb r2, [r0] bl sub_800EEBC cmp r0, 0 beq _08011FAA b _08011F84 .pool _08011F5C: bl sub_800F7DC ldrb r1, [r0, 0xA] movs r5, 0x7F adds r0, r5, 0 ands r0, r1 cmp r0, 0x15 beq _08011FA4 bl sub_800F7DC ldrb r1, [r0, 0xA] adds r0, r5, 0 ands r0, r1 cmp r0, 0x16 beq _08011FA4 movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_8011A64 _08011F84: adds r0, r6, 0 bl DestroyTask b _08011FAA _08011F8C: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] ldr r0, =gUnknown_03005000 ldr r1, =0x00000c3d adds r0, r1 strb r2, [r0] b _08011FAA .pool _08011FA4: ldrh r0, [r4, 0x1E] adds r0, 0x1 strh r0, [r4, 0x1E] _08011FAA: movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0xF0 ble _08011FC2 movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_8011A64 adds r0, r6, 0 bl DestroyTask _08011FC2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8011EF4 thumb_func_start sub_8011FC8 sub_8011FC8: @ 8011FC8 push {r4-r6,lr} adds r6, r0, 0 lsls r5, r1, 16 lsrs r5, 16 ldr r0, =gUnknown_03005000 adds r0, 0xF1 movs r1, 0 strb r1, [r0] ldr r0, =sub_8011EF4 movs r1, 0x3 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 adds r0, r4, 0 adds r1, r6, 0 bl StringCopy strh r5, [r4, 0x10] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8011FC8 thumb_func_start sub_801200C sub_801200C: @ 801200C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 16 lsrs r5, r0, 16 bl sub_800F7DC ldrb r1, [r0, 0xA] movs r2, 0x7F adds r0, r2, 0 ands r0, r1 cmp r0, 0x45 bne _08012032 ldrb r1, [r4, 0xA] adds r0, r2, 0 ands r0, r1 cmp r0, 0x45 beq _08012092 _0801202E: movs r0, 0x1 b _08012094 _08012032: ldrb r1, [r4, 0xA] adds r0, r2, 0 ands r0, r1 cmp r0, 0x40 bne _0801202E cmp r5, 0x44 bne _08012092 ldr r5, =gUnknown_0300510A ldrh r0, [r5, 0x8] ldr r3, =0x000003ff adds r2, r3, 0 ands r2, r0 movs r0, 0xCE lsls r0, 1 cmp r2, r0 bne _08012068 ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, r2 beq _08012092 b _0801202E .pool _08012068: ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, r2 bne _0801202E ldrb r2, [r4, 0xB] movs r0, 0xFE ldrb r3, [r5, 0xB] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _0801202E ldrb r2, [r4, 0x9] movs r0, 0xFC ldrb r3, [r5, 0x9] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _0801202E _08012092: movs r0, 0 _08012094: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801200C thumb_func_start sub_801209C sub_801209C: @ 801209C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 mov r8, r5 ldr r6, =gUnknown_03005000 adds r0, r6, 0 adds r0, 0xF1 ldrb r0, [r0] cmp r0, 0x4 bne _080120BA adds r0, r5, 0 bl DestroyTask _080120BA: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 movs r1, 0x96 lsls r1, 17 cmp r0, r1 ble _080120E4 movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_8011A64 adds r0, r5, 0 bl DestroyTask _080120E4: ldr r1, =0x00000ccd adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0 beq _0801217C ldr r0, =gUnknown_03004140 ldrb r0, [r0, 0x6] cmp r0, 0 bne _0801217C movs r2, 0x86 lsls r2, 1 adds r0, r6, r2 bl sub_8011CD8 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r2, =0x00000119 adds r0, r6, r2 bl sub_8011CE4 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _0801217C movs r1, 0xA ldrsh r0, [r4, r1] ldr r7, =gUnknown_03007890 lsls r4, r2, 5 adds r2, r4, 0 adds r2, 0x14 ldr r1, [r7] adds r1, r2 adds r1, 0x6 bl sub_801200C cmp r0, 0 bne _0801216C ldr r0, [r7] adds r1, r0, r4 ldrb r0, [r1, 0x16] cmp r0, 0xFF beq _0801217C ldrh r0, [r1, 0x14] movs r1, 0x5A bl sub_800C12C lsls r0, 24 cmp r0, 0 bne _0801217C movs r0, 0xA strh r0, [r6, 0x4] adds r0, r5, 0 bl DestroyTask b _0801217C .pool _0801216C: movs r1, 0xE0 lsls r1, 7 movs r0, 0x2 bl sub_8011A64 mov r0, r8 bl DestroyTask _0801217C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801209C thumb_func_start sub_8012188 sub_8012188: @ 8012188 push {r4-r7,lr} adds r3, r0, 0 adds r5, r1, 0 lsls r4, r2, 24 lsrs r4, 24 ldr r6, =gUnknown_03005000 ldr r1, =0x00000ccf adds r0, r6, r1 movs r7, 0 strb r7, [r0] adds r0, r6, 0 adds r0, 0xF1 strb r7, [r0] ldr r1, =0x00000119 adds r0, r6, r1 adds r1, r3, 0 bl StringCopy movs r1, 0x85 lsls r1, 1 adds r0, r6, r1 adds r1, r5, 0 movs r2, 0xD bl memcpy bl sub_800D658 ldr r0, =sub_801209C movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r5, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 strh r4, [r1, 0xA] ldr r0, =sub_800EB44 bl FindTaskIdByFunc lsls r0, 24 lsrs r1, r0, 24 adds r2, r1, 0 cmp r4, 0x45 bne _08012210 cmp r1, 0xFF beq _0801221E lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0x16] b _0801221E .pool _08012210: cmp r2, 0xFF beq _0801221E lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r5 strh r7, [r0, 0x16] _0801221E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8012188 thumb_func_start sub_8012224 sub_8012224: @ 8012224 push {lr} ldr r0, =gUnknown_03005000 adds r0, 0xF0 ldrb r0, [r0] cmp r0, 0x1 beq _08012238 movs r0, 0 b _0801223A .pool _08012238: movs r0, 0x1 _0801223A: pop {r1} bx r1 thumb_func_end sub_8012224 thumb_func_start sub_8012240 sub_8012240: @ 8012240 push {r4,lr} movs r1, 0 ldr r0, =gUnknown_03004140 ldrb r2, [r0] ldr r4, =gUnknown_03005CD1 movs r3, 0x1 _0801224C: adds r0, r2, 0 asrs r0, r1 ands r0, r3 cmp r0, 0 beq _0801226C adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _0801226C movs r0, 0 b _08012274 .pool _0801226C: adds r1, 0x1 cmp r1, 0x3 ble _0801224C movs r0, 0x1 _08012274: pop {r4} pop {r1} bx r1 thumb_func_end sub_8012240 thumb_func_start sub_801227C sub_801227C: @ 801227C push {r4,lr} movs r4, 0 _08012280: lsls r2, r4, 24 lsrs r2, 24 ldr r0, =gUnknown_082ED82C movs r1, 0 bl nullsub_5 adds r4, 0x1 cmp r4, 0x13 ble _08012280 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801227C thumb_func_start sub_801229C sub_801229C: @ 801229C push {r4-r7,lr} mov r7, r8 push {r7} bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 movs r1, 0x1C movs r2, 0x13 movs r3, 0x2 bl nullsub_13 ldr r4, =gUnknown_03007890 ldr r0, [r4] ldrb r0, [r0, 0x2] movs r1, 0x14 movs r2, 0x1 movs r3, 0x1 bl nullsub_13 ldr r0, [r4] ldrb r0, [r0, 0x3] movs r1, 0x17 movs r2, 0x1 movs r3, 0x1 bl nullsub_13 ldr r0, =gUnknown_03005000 ldrb r0, [r0, 0xC] cmp r0, 0x1 bne _08012378 movs r6, 0 adds r7, r4, 0 movs r5, 0x14 _080122E0: ldr r2, [r7] ldrb r0, [r2, 0x7] asrs r0, r6 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0801231E lsls r0, r6, 5 adds r0, r2, r0 ldrh r0, [r0, 0x18] adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 adds r2, r4, 0 movs r3, 0x4 bl nullsub_13 ldr r0, [r7] adds r0, r5 adds r0, 0x6 movs r1, 0x6 adds r2, r4, 0 bl nullsub_5 ldr r0, [r7] adds r0, r5 adds r0, 0x15 movs r1, 0x16 adds r2, r4, 0 bl nullsub_5 _0801231E: adds r5, 0x20 adds r6, 0x1 cmp r6, 0x3 ble _080122E0 movs r6, 0 ldr r0, =gUnknown_03005000 mov r8, r0 _0801232C: movs r5, 0 adds r7, r6, 0x1 lsls r0, r6, 3 adds r2, r6, 0 adds r2, 0xB subs r0, r6 lsls r0, 1 mov r1, r8 adds r1, 0x14 adds r4, r0, r1 lsls r6, r2, 24 _08012342: ldrb r0, [r4] lsls r1, r5, 25 lsrs r1, 24 lsrs r2, r6, 24 movs r3, 0x2 bl nullsub_13 adds r4, 0x1 adds r5, 0x1 cmp r5, 0xD ble _08012342 adds r6, r7, 0 cmp r6, 0x3 ble _0801232C ldr r0, =gUnknown_082ED868 movs r1, 0x1 movs r2, 0xF bl nullsub_5 b _080124AA .pool _08012378: ldr r1, [r4] ldrb r0, [r1, 0x2] cmp r0, 0 beq _08012414 ldrb r0, [r1, 0x7] cmp r0, 0 beq _08012414 movs r6, 0 movs r5, 0xC0 lsls r5, 18 _0801238C: lsrs r4, r5, 24 movs r0, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_13 ldr r0, =gUnknown_082ED84B movs r1, 0x6 adds r2, r4, 0 bl nullsub_5 ldr r0, =gUnknown_082ED85B movs r1, 0x16 adds r2, r4, 0 bl nullsub_5 movs r1, 0x80 lsls r1, 17 adds r5, r1 adds r6, 0x1 cmp r6, 0x3 ble _0801238C ldr r5, =gUnknown_03007890 ldr r1, [r5] ldr r4, =gUnknown_03005000 ldr r0, =0x00000c3e adds r4, r0 ldrb r0, [r4] lsls r0, 5 adds r1, r0 ldrh r0, [r1, 0x18] movs r1, 0x1 movs r2, 0x3 movs r3, 0x4 bl nullsub_13 ldrb r1, [r4] lsls r1, 5 adds r1, 0x14 ldr r0, [r5] adds r0, r1 adds r0, 0x6 movs r1, 0x6 movs r2, 0x3 bl nullsub_5 ldrb r1, [r4] lsls r1, 5 adds r1, 0x14 ldr r0, [r5] adds r0, r1 adds r0, 0x15 movs r1, 0x16 movs r2, 0x3 bl nullsub_5 b _080124AA .pool _08012414: movs r6, 0 ldr r1, =gUnknown_03007890 ldr r0, [r1] ldrb r0, [r0, 0x8] cmp r6, r0 bge _08012470 adds r7, r1, 0 movs r1, 0x14 mov r8, r1 _08012426: ldr r0, [r7] lsls r5, r6, 5 adds r1, r0, r5 ldrb r0, [r1, 0x16] cmp r0, 0xFF beq _08012462 ldrh r0, [r1, 0x18] adds r4, r6, 0x3 lsls r4, 24 lsrs r4, 24 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_13 ldr r0, [r7] adds r0, r5 ldrh r0, [r0, 0x14] movs r1, 0x6 adds r2, r4, 0 movs r3, 0x4 bl nullsub_13 ldr r0, [r7] add r0, r8 adds r0, 0x15 movs r1, 0x16 adds r2, r4, 0 bl nullsub_5 _08012462: movs r0, 0x20 add r8, r0 adds r6, 0x1 ldr r0, [r7] ldrb r0, [r0, 0x8] cmp r6, r0 blt _08012426 _08012470: cmp r6, 0x3 bgt _080124AA lsls r0, r6, 24 movs r1, 0xC0 lsls r1, 18 adds r5, r0, r1 _0801247C: lsrs r4, r5, 24 movs r0, 0 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl nullsub_13 ldr r0, =gUnknown_082ED84B movs r1, 0x6 adds r2, r4, 0 bl nullsub_5 ldr r0, =gUnknown_082ED85B movs r1, 0x16 adds r2, r4, 0 bl nullsub_5 movs r0, 0x80 lsls r0, 17 adds r5, r0 adds r6, 0x1 cmp r6, 0x3 ble _0801247C _080124AA: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801229C thumb_func_start sub_80124C0 sub_80124C0: @ 80124C0 ldr r0, =gUnknown_03005000 ldr r1, =0x00000c1a adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_80124C0 thumb_func_start sub_80124D4 sub_80124D4: @ 80124D4 ldr r0, =gUnknown_03005000 ldr r1, =0x000009e6 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_80124D4 thumb_func_start nullsub_89 nullsub_89: @ 80124E8 bx lr thumb_func_end nullsub_89 thumb_func_start sub_80124EC sub_80124EC: @ 80124EC push {r4-r6,lr} sub sp, 0x8 adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r5, r2, 24 adds r0, r6, 0 movs r1, 0x11 bl FillWindowPixelBuffer lsls r4, 8 movs r0, 0x90 lsls r0, 6 cmp r4, r0 beq _08012588 cmp r4, r0 bgt _08012526 movs r0, 0x80 lsls r0, 2 cmp r4, r0 beq _08012538 movs r0, 0x80 lsls r0, 3 cmp r4, r0 beq _08012544 b _080125A6 _08012526: movs r0, 0x94 lsls r0, 6 cmp r4, r0 beq _08012554 movs r0, 0xD4 lsls r0, 6 cmp r4, r0 beq _08012564 b _080125A6 _08012538: ldr r1, =gUnknown_082EDB60 subs r0, r5, 0x1 lsls r0, 2 b _0801256C .pool _08012544: ldr r1, =gUnknown_082EDB60 subs r0, r5, 0x1 lsls r0, 2 adds r1, 0x14 b _0801256C .pool _08012554: ldr r1, =gUnknown_082EDB60 subs r0, r5, 0x1 lsls r0, 2 adds r1, 0x28 b _0801256C .pool _08012564: ldr r1, =gUnknown_082EDB60 subs r0, r5, 0x1 lsls r0, 2 adds r1, 0x3C _0801256C: adds r0, r1 ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 movs r3, 0 bl sub_80173E0 b _080125A6 .pool _08012588: ldr r1, =gUnknown_082EDB60 subs r0, r5, 0x1 lsls r0, 2 adds r1, 0x50 adds r0, r1 ldr r2, [r0] movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 movs r3, 0 bl sub_80173E0 _080125A6: adds r0, r6, 0 movs r1, 0x2 bl CopyWindowToVram add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80124EC thumb_func_start sub_80125BC sub_80125BC: @ 80125BC push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x28 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, =gSaveBlock2Ptr ldr r2, [r6] movs r0, 0x1 str r0, [sp] movs r0, 0 mov r8, r0 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 movs r3, 0 bl sub_80173E0 ldr r1, =gText_UnkCtrlCodeF907 add r0, sp, 0x8 bl StringCopy adds r5, r0, 0 ldr r0, [r6] adds r0, 0xA bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN movs r0, 0x11 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 add r2, sp, 0x8 movs r3, 0 bl sub_80173E0 add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80125BC thumb_func_start sub_801262C sub_801262C: @ 801262C push {lr} lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x1B bhi _080126C0 lsls r0, 2 ldr r1, =_08012648 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08012648: .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126C0 .4byte _080126C0 .4byte _080126C0 .4byte _080126C0 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126C0 .4byte _080126C0 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126C0 .4byte _080126C0 .4byte _080126C0 .4byte _080126C0 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 .4byte _080126B8 _080126B8: ldr r0, =gStringVar4 ldr r1, =gText_AwaitingCommunication bl StringExpandPlaceholders _080126C0: pop {r0} bx r0 .pool thumb_func_end sub_801262C thumb_func_start sub_80126CC sub_80126CC: @ 80126CC push {lr} subs r0, 0x9 cmp r0, 0x12 bhi _08012734 lsls r0, 2 ldr r1, =_080126E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080126E4: .4byte _08012730 .4byte _08012730 .4byte _08012730 .4byte _08012734 .4byte _08012734 .4byte _08012734 .4byte _08012730 .4byte _08012730 .4byte _08012734 .4byte _08012734 .4byte _08012734 .4byte _08012734 .4byte _08012734 .4byte _08012734 .4byte _08012730 .4byte _08012730 .4byte _08012730 .4byte _08012730 .4byte _08012730 _08012730: movs r0, 0x1 b _08012736 _08012734: movs r0, 0 _08012736: pop {r1} bx r1 thumb_func_end sub_80126CC thumb_func_start BerryBlenderLinkBecomeLeader BerryBlenderLinkBecomeLeader: @ 801273C push {lr} ldr r0, =sub_8012780 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 str r1, [r2] ldr r0, =gUnknown_03000DA0 str r1, [r0] movs r0, 0 strb r0, [r1, 0xC] strb r0, [r1, 0xD] ldr r1, =gScriptResult strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end BerryBlenderLinkBecomeLeader thumb_func_start sub_8012780 sub_8012780: @ 8012780 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02022C30 ldr r6, [r0] ldrb r0, [r6, 0xC] cmp r0, 0x1E bls _0801279A bl _08012F50 _0801279A: lsls r0, 2 ldr r1, =_080127AC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080127AC: .4byte _08012828 .4byte _08012F50 .4byte _08012F50 .4byte _080128A0 .4byte _080129C8 .4byte _08012A50 .4byte _08012A6C .4byte _08012B8C .4byte _08012F50 .4byte _08012AFC .4byte _08012B14 .4byte _08012BA8 .4byte _08012C5C .4byte _08012D5A .4byte _08012D78 .4byte _08012D8A .4byte _08012DA8 .4byte _08012E62 .4byte _08012E78 .4byte _08012DF2 .4byte _08012E10 .4byte _08012ED0 .4byte _08012EFC .4byte _08012ED0 .4byte _08012EE6 .4byte _08012F50 .4byte _08012F14 .4byte _08012F50 .4byte _08012F50 .4byte _08012B54 .4byte _08012EB6 _08012828: ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] adds r3, r0, 0 cmp r2, 0x14 bne _08012848 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08012848 adds r0, r2, 0x1 strh r0, [r3] _08012848: ldr r2, =gUnknown_02022C2C ldr r1, =gUnknown_082F00C4 ldrh r0, [r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] strb r0, [r2] ldr r4, =gUnknown_02022C2D ldrh r0, [r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] lsrs r0, 8 strb r0, [r4] ldrb r0, [r2] movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 ldrb r1, [r4] movs r0, 0xF ands r0, r1 bl sub_8011C10 movs r0, 0x3 strb r0, [r6, 0xC] b _08012F50 .pool _080128A0: movs r0, 0x70 bl AllocZeroed str r0, [r6, 0x4] movs r0, 0xA0 bl AllocZeroed str r0, [r6] movs r0, 0xA0 bl AllocZeroed str r0, [r6, 0x8] ldr r0, [r6, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r6] movs r1, 0x5 bl sub_8017580 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x10 bl sub_800DF90 ldr r1, [r6] movs r3, 0 movs r0, 0 strh r0, [r1, 0x18] ldr r2, [r6] ldrb r1, [r2, 0x1A] subs r0, 0x4 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1A] ldr r2, [r6] ldrb r1, [r2, 0x1A] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1A] ldr r0, [r6] strb r3, [r0, 0x1B] ldr r0, [r6, 0x4] movs r1, 0xFF bl sub_8016FC0 strb r0, [r6, 0x17] ldr r0, =gUnknown_082F00BC bl AddWindow strb r0, [r6, 0x10] ldr r0, =gUnknown_02022C2D ldrb r0, [r0] movs r1, 0xF ands r1, r0 cmp r1, 0x2 blt _08012938 cmp r1, 0x4 ble _08012928 cmp r1, 0x5 beq _08012930 b _08012938 .pool _08012928: ldr r0, =gUnknown_082F011C b _08012932 .pool _08012930: ldr r0, =gUnknown_082F0124 _08012932: bl AddWindow strb r0, [r6, 0xF] _08012938: ldr r0, =gUnknown_082F012C bl AddWindow strb r0, [r6, 0x11] ldrb r0, [r6, 0x10] movs r1, 0x22 bl FillWindowPixelBuffer ldrb r0, [r6, 0x10] ldr r2, =gUnknown_082EDBC4 movs r3, 0x1 mov r8, r3 str r3, [sp] movs r4, 0x4 str r4, [sp, 0x4] movs r1, 0 movs r3, 0x8 bl sub_80173E0 ldrb r0, [r6, 0x10] bl PutWindowTilemap ldrb r0, [r6, 0x10] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r6, 0xF] movs r1, 0 bl sub_81973FC ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, =gUnknown_082F015C ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldrb r1, [r6, 0xF] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r6, 0x12] ldrb r0, [r6, 0x11] movs r1, 0 bl sub_81973FC ldrb r0, [r6, 0x11] bl PutWindowTilemap ldrb r0, [r6, 0x11] movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl CopyBgTilemapBufferToVram mov r5, r8 strb r5, [r6, 0x13] strb r4, [r6, 0xC] b _08012F50 .pool _080129C8: ldr r0, =gStringVar1 ldr r2, =gUnknown_082F0048 ldr r4, =gUnknown_02022C2C ldrb r1, [r4] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r0, =gUnknown_02022C2D ldrb r2, [r0] lsrs r0, r2, 4 cmp r0, 0 beq _08012A2C ldrb r1, [r6, 0x13] subs r0, 0x1 cmp r1, r0 ble _08012A18 movs r0, 0xF ands r0, r2 cmp r0, 0 beq _08012A18 ldr r0, =gStringVar4 ldr r1, =gText_AwaitingLink bl StringExpandPlaceholders b _08012A34 .pool _08012A18: ldr r0, =gStringVar4 ldr r1, =gText_AwaitingCommunication bl StringExpandPlaceholders b _08012A34 .pool _08012A2C: ldr r0, =gStringVar4 ldrb r1, [r4] bl sub_801262C _08012A34: ldrb r0, [r6, 0x11] ldr r1, =gUnknown_02022C2D ldrb r1, [r1] ldrb r2, [r6, 0x13] bl sub_80124EC movs r0, 0x5 strb r0, [r6, 0xC] b _08012F50 .pool _08012A50: adds r0, r6, 0 adds r0, 0xD ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012A62 b _08012F50 _08012A62: movs r0, 0x6 strb r0, [r6, 0xC] b _08012F50 .pool _08012A6C: adds r0, r6, 0 movs r1, 0x7 movs r2, 0xA bl sub_801320C ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08012AA8 ldrb r0, [r6, 0x13] cmp r0, 0x1 bne _08012A90 movs r0, 0x17 b _08012AA6 .pool _08012A90: ldr r0, =gUnknown_02022C2D ldrb r1, [r0] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _08012AA4 movs r0, 0x1E b _08012AA6 .pool _08012AA4: movs r0, 0x13 _08012AA6: strb r0, [r6, 0xC] _08012AA8: ldr r0, =gUnknown_02022C2D ldrb r2, [r0] lsrs r0, r2, 4 cmp r0, 0 beq _08012ADE ldrb r1, [r6, 0x13] subs r0, 0x1 cmp r1, r0 ble _08012ADE movs r4, 0xF adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _08012ADE bl sub_8012240 cmp r0, 0 beq _08012ADE ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08012ADE strb r4, [r6, 0xC] bl sub_800EF38 _08012ADE: ldrb r0, [r6, 0xC] cmp r0, 0x6 beq _08012AE6 b _08012F50 _08012AE6: bl sub_80105EC cmp r0, 0 bne _08012AF0 b _08012F50 _08012AF0: b _08012C56 .pool _08012AFC: bl sub_80105EC cmp r0, 0 beq _08012B06 b _08012F50 _08012B06: movs r0, 0x6 strb r0, [r6, 0xC] ldr r0, [r6] bl sub_8013398 strb r0, [r6, 0x13] b _08012F50 _08012B14: movs r3, 0 ldr r0, =gUnknown_02022C2C ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0x2 bne _08012B24 movs r3, 0x1 _08012B24: adds r0, r6, 0 adds r0, 0xD ldr r2, =gUnknown_082EDDC4 lsls r1, r3, 2 adds r1, r2 ldr r1, [r1] bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012B3C b _08012F50 _08012B3C: ldr r0, [r6] bl sub_8013398 strb r0, [r6, 0x13] ldrb r0, [r6, 0x12] bl sub_81AE70C b _08012E5C .pool _08012B54: ldr r0, =gUnknown_02022C2D ldrb r0, [r0] movs r1, 0xF ands r1, r0 movs r0, 0x2 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r3, r0, 31 adds r0, r6, 0 adds r0, 0xD ldr r2, =gUnknown_082EDDC4 lsls r1, r3, 2 adds r1, r2 ldr r1, [r1] bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012B7E b _08012F50 _08012B7E: movs r0, 0x15 strb r0, [r6, 0xC] b _08012F50 .pool _08012B8C: adds r0, r6, 0 adds r0, 0xD ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012B9E b _08012F50 _08012B9E: movs r0, 0xB strb r0, [r6, 0xC] b _08012F50 .pool _08012BA8: adds r4, r6, 0 adds r4, 0xD ldrb r1, [r6, 0x13] lsls r1, 5 ldr r0, [r6] adds r0, r1 adds r0, 0x2 bl sub_8015658 lsls r0, 16 lsrs r0, 16 ldrb r2, [r6, 0x13] lsls r2, 5 ldr r1, [r6] adds r1, r2 adds r1, 0x10 bl sub_801064C adds r1, r0, 0 adds r0, r4, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08012C28 cmp r1, r0 bgt _08012BEC subs r0, 0x2 cmp r1, r0 beq _08012C56 b _08012F50 _08012BEC: cmp r1, 0 beq _08012BF6 cmp r1, 0x1 beq _08012C28 b _08012F50 _08012BF6: bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 movs r0, 0x5 strb r0, [r6, 0x19] ldrb r1, [r6, 0x13] lsls r1, 5 ldr r0, [r6] adds r0, r1 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldrb r0, [r6, 0x13] lsls r0, 5 ldr r2, [r6] adds r2, r0 adds r2, 0x10 movs r0, 0x5 b _08012C4C _08012C28: movs r0, 0x6 strb r0, [r6, 0x19] ldrb r1, [r6, 0x13] lsls r1, 5 ldr r0, [r6] adds r0, r1 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldrb r0, [r6, 0x13] lsls r0, 5 ldr r2, [r6] adds r2, r0 adds r2, 0x10 movs r0, 0x6 _08012C4C: bl sub_8010688 movs r0, 0xC strb r0, [r6, 0xC] b _08012F50 _08012C56: movs r0, 0x9 strb r0, [r6, 0xC] b _08012F50 _08012C5C: ldrb r1, [r6, 0x13] lsls r1, 5 ldr r0, [r6] adds r0, r1 adds r0, 0x2 bl sub_8015658 lsls r0, 16 lsrs r0, 16 ldrb r2, [r6, 0x13] lsls r2, 5 ldr r1, [r6] adds r1, r2 adds r1, 0x10 bl sub_8010714 cmp r0, 0x1 bne _08012D4A ldrb r0, [r6, 0x19] cmp r0, 0x5 bne _08012D04 ldr r1, [r6] ldrb r0, [r6, 0x13] lsls r0, 5 adds r1, r0 movs r0, 0 strb r0, [r1, 0x1B] ldrb r0, [r6, 0x12] bl sub_81AE70C ldrb r0, [r6, 0x13] adds r0, 0x1 strb r0, [r6, 0x13] ldr r1, =gUnknown_02022C2D ldrb r1, [r1] movs r3, 0xF lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0 ands r0, r1 cmp r2, r0 bne _08012D40 movs r0, 0xF0 ands r0, r1 cmp r0, 0 bne _08012CBC cmp r2, 0x4 bne _08012CC4 _08012CBC: strb r3, [r6, 0xC] b _08012CE0 .pool _08012CC4: ldr r0, =gStringVar1 ldrb r2, [r6, 0x13] lsls r2, 5 subs r2, 0x20 ldr r1, [r6] adds r1, r2 bl sub_8018404 ldr r0, =gStringVar4 ldr r1, =gUnknown_082EDC9C bl StringExpandPlaceholders movs r0, 0xD strb r0, [r6, 0xC] _08012CE0: bl sub_800EF38 ldrb r0, [r6, 0x11] ldr r1, =gUnknown_02022C2D ldrb r1, [r1] ldrb r2, [r6, 0x13] bl sub_80124EC b _08012D44 .pool _08012D04: ldrb r1, [r6, 0x13] lsls r1, 5 ldr r0, [r6] adds r0, r1 adds r4, r0, 0 adds r4, 0x10 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011DC0 ldr r1, [r6] ldrb r0, [r6, 0x13] lsls r0, 5 adds r1, r0 ldrb r2, [r1, 0x1A] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1A] ldr r0, [r6] bl sub_8013398 ldrb r0, [r6, 0x12] bl sub_81AE70C _08012D40: movs r0, 0x4 strb r0, [r6, 0xC] _08012D44: movs r0, 0 strb r0, [r6, 0x19] b _08012F50 _08012D4A: cmp r0, 0x2 beq _08012D50 b _08012F50 _08012D50: movs r0, 0 movs r1, 0 bl sub_8011A64 b _08012E5C _08012D5A: adds r0, r6, 0 adds r0, 0xD ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012D6C b _08012F50 _08012D6C: movs r0, 0xE strb r0, [r6, 0xC] b _08012F50 .pool _08012D78: ldrb r0, [r6, 0xE] adds r0, 0x1 strb r0, [r6, 0xE] lsls r0, 24 lsrs r0, 24 cmp r0, 0x78 bhi _08012D88 b _08012F50 _08012D88: b _08012DCE _08012D8A: adds r0, r6, 0 adds r0, 0xD ldr r1, =gUnknown_082EDC5C bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012D9C b _08012F50 _08012D9C: movs r0, 0x10 strb r0, [r6, 0xC] b _08012F50 .pool _08012DA8: adds r0, r6, 0 adds r0, 0xD movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _08012DCE cmp r1, 0 bgt _08012DC8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08012DD4 b _08012F50 _08012DC8: cmp r1, 0x1 beq _08012DD4 b _08012F50 _08012DCE: movs r0, 0x11 strb r0, [r6, 0xC] b _08012F50 _08012DD4: ldr r0, =gUnknown_02022C2D ldrb r1, [r0] movs r0, 0xF0 ands r0, r1 cmp r0, 0 beq _08012DEC movs r0, 0x1E strb r0, [r6, 0xC] b _08012F50 .pool _08012DEC: movs r0, 0x13 strb r0, [r6, 0xC] b _08012F50 _08012DF2: adds r0, r6, 0 adds r0, 0xD ldr r1, =gUnknown_082EDC78 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08012E04 b _08012F50 _08012E04: movs r0, 0x14 strb r0, [r6, 0xC] b _08012F50 .pool _08012E10: adds r0, r6, 0 adds r0, 0xD movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _08012EC6 cmp r1, 0 bgt _08012E30 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08012E36 b _08012F50 _08012E30: cmp r1, 0x1 beq _08012E36 b _08012F50 _08012E36: ldr r0, =gUnknown_02022C2D ldrb r2, [r0] movs r0, 0xF0 ands r0, r2 cmp r0, 0 beq _08012E4C movs r0, 0xF strb r0, [r6, 0xC] b _08012F50 .pool _08012E4C: movs r3, 0xF ldrb r1, [r6, 0x13] adds r0, r3, 0 ands r0, r2 cmp r1, r0 bne _08012E5C strb r3, [r6, 0xC] b _08012F50 _08012E5C: movs r0, 0x4 strb r0, [r6, 0xC] b _08012F50 _08012E62: adds r0, r6, 0 movs r1, 0x7 movs r2, 0x1D bl sub_801320C lsls r0, 24 cmp r0, 0 bne _08012F50 movs r0, 0x12 strb r0, [r6, 0xC] b _08012F50 _08012E78: bl sub_800EF1C lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08012EAE movs r0, 0 bl sub_800EF58 cmp r0, 0 beq _08012E94 movs r0, 0x1A strb r0, [r6, 0xC] b _08012F50 _08012E94: ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] lsls r0, 16 movs r1, 0x96 lsls r1, 17 cmp r0, r1 bls _08012F50 movs r0, 0x1D strb r0, [r6, 0xC] movs r0, 0 strb r0, [r6, 0xD] b _08012F50 _08012EAE: movs r0, 0x1D strb r0, [r6, 0xC] strb r1, [r6, 0xD] b _08012F50 _08012EB6: adds r0, r6, 0 adds r0, 0xD ldr r1, =gUnknown_082EDD58 bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _08012F50 _08012EC6: movs r0, 0x17 strb r0, [r6, 0xC] b _08012F50 .pool _08012ED0: bl sub_800E084 bl sub_800EDD4 adds r0, r6, 0 bl sub_8012F64 ldrb r0, [r6, 0xC] adds r0, 0x1 strb r0, [r6, 0xC] b _08012F50 _08012EE6: bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08012F50 .pool _08012EFC: bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask ldr r1, =gScriptResult movs r0, 0x8 strh r0, [r1] b _08012F50 .pool _08012F14: bl sub_8011A80 cmp r0, 0 beq _08012F22 movs r0, 0x1D strb r0, [r6, 0xC] b _08012F50 _08012F22: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08012F50 ldr r0, =gUnknown_02022C2C ldrb r0, [r0] bl sub_80126CC cmp r0, 0 beq _08012F3A bl sub_801103C _08012F3A: movs r0, 0x1 bl sub_8011068 bl sub_80149C4 adds r0, r6, 0 bl sub_8012F64 adds r0, r4, 0 bl DestroyTask _08012F50: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8012780 thumb_func_start sub_8012F64 sub_8012F64: @ 8012F64 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x11] bl ClearWindowTilemap ldrb r0, [r4, 0x11] movs r1, 0 bl sub_819746C ldrb r0, [r4, 0x12] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r4, 0x10] bl ClearWindowTilemap ldrb r0, [r4, 0xF] movs r1, 0 bl sub_819746C movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r4, 0x11] bl RemoveWindow ldrb r0, [r4, 0xF] bl RemoveWindow ldrb r0, [r4, 0x10] bl RemoveWindow ldrb r0, [r4, 0x17] bl DestroyTask ldr r0, [r4, 0x8] bl Free ldr r0, [r4] bl Free ldr r0, [r4, 0x4] bl Free pop {r4} pop {r0} bx r0 thumb_func_end sub_8012F64 thumb_func_start sub_8012FC4 sub_8012FC4: @ 8012FC4 push {lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x1B bhi _08013070 lsls r0, 2 ldr r1, =_08012FE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08012FE0: .4byte _08013050 .4byte _08013050 .4byte _08013068 .4byte _08013050 .4byte _08013070 .4byte _08013070 .4byte _08013070 .4byte _08013070 .4byte _08013068 .4byte _08013068 .4byte _08013068 .4byte _08013070 .4byte _08013070 .4byte _08013050 .4byte _08013068 .4byte _08013068 .4byte _08013070 .4byte _08013070 .4byte _08013070 .4byte _08013070 .4byte _08013058 .4byte _08013058 .4byte _08013068 .4byte _08013068 .4byte _08013068 .4byte _08013068 .4byte _08013068 .4byte _08013050 _08013050: ldr r1, =gUnknown_082EDBE8 b _0801305A .pool _08013058: ldr r1, =gUnknown_082EDC0C _0801305A: adds r0, r2, 0 bl StringExpandPlaceholders b _08013070 .pool _08013068: ldr r1, =gUnknown_082EDC34 adds r0, r2, 0 bl StringExpandPlaceholders _08013070: pop {r0} bx r0 .pool thumb_func_end sub_8012FC4 thumb_func_start sub_8013078 sub_8013078: @ 8013078 push {lr} lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x44 beq _08013098 cmp r1, 0x44 bgt _0801308E cmp r1, 0x41 beq _08013098 b _080130AA _0801308E: cmp r2, 0x45 beq _080130A4 cmp r2, 0x48 beq _080130A4 b _080130AA _08013098: ldr r1, =gUnknown_082EE560 bl StringExpandPlaceholders b _080130AA .pool _080130A4: ldr r1, =gUnknown_082EE57C bl StringExpandPlaceholders _080130AA: pop {r0} bx r0 .pool thumb_func_end sub_8013078 thumb_func_start sub_80130B4 sub_80130B4: @ 80130B4 push {lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x1B bhi _08013158 lsls r0, 2 ldr r1, =_080130D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080130D0: .4byte _08013140 .4byte _08013140 .4byte _08013150 .4byte _08013140 .4byte _08013158 .4byte _08013158 .4byte _08013158 .4byte _08013158 .4byte _08013150 .4byte _08013150 .4byte _08013150 .4byte _08013158 .4byte _08013158 .4byte _08013140 .4byte _08013150 .4byte _08013150 .4byte _08013158 .4byte _08013158 .4byte _08013158 .4byte _08013158 .4byte _08013140 .4byte _08013140 .4byte _08013150 .4byte _08013150 .4byte _08013150 .4byte _08013150 .4byte _08013150 .4byte _08013140 _08013140: ldr r1, =gUnknown_082EFC3C adds r0, r2, 0 bl StringExpandPlaceholders b _08013158 .pool _08013150: ldr r1, =gUnknown_082EFC54 adds r0, r2, 0 bl StringExpandPlaceholders _08013158: pop {r0} bx r0 .pool thumb_func_end sub_80130B4 thumb_func_start sub_8013160 sub_8013160: @ 8013160 push {lr} adds r2, r0, 0 lsls r1, 24 lsrs r1, 24 subs r0, r1, 0x1 cmp r0, 0x1B bhi _08013204 lsls r0, 2 ldr r1, =_0801317C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801317C: .4byte _080131EC .4byte _080131EC .4byte _080131FC .4byte _080131EC .4byte _08013204 .4byte _08013204 .4byte _08013204 .4byte _08013204 .4byte _080131FC .4byte _080131FC .4byte _080131FC .4byte _08013204 .4byte _08013204 .4byte _080131EC .4byte _080131FC .4byte _080131FC .4byte _08013204 .4byte _08013204 .4byte _08013204 .4byte _08013204 .4byte _080131EC .4byte _080131EC .4byte _080131FC .4byte _080131FC .4byte _080131FC .4byte _080131FC .4byte _080131FC .4byte _080131EC _080131EC: ldr r1, =gUnknown_082EDDF4 adds r0, r2, 0 bl StringExpandPlaceholders b _08013204 .pool _080131FC: ldr r1, =gUnknown_082EDE0C adds r0, r2, 0 bl StringExpandPlaceholders _08013204: pop {r0} bx r0 .pool thumb_func_end sub_8013160 thumb_func_start sub_801320C sub_801320C: @ 801320C push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 ldr r0, [r4] bl sub_80132D4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08013228 cmp r0, 0x2 beq _0801325C b _08013270 _08013228: movs r0, 0x2 bl PlaySE ldrb r0, [r4, 0x12] bl sub_81AE70C ldr r0, =gStringVar2 ldrb r2, [r4, 0x13] lsls r2, 5 ldr r1, [r4] adds r1, r2 bl sub_8018404 ldr r0, =gStringVar4 ldr r1, =gUnknown_02022C2C ldrb r1, [r1] bl sub_8012FC4 strb r6, [r4, 0xC] b _08013270 .pool _0801325C: movs r0, 0 movs r1, 0 bl sub_8011A64 ldrb r0, [r4, 0x12] bl sub_81AE70C strb r5, [r4, 0xC] movs r0, 0x1 b _08013272 _08013270: movs r0, 0 _08013272: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801320C thumb_func_start sub_8013278 sub_8013278: @ 8013278 push {r4-r6,lr} sub sp, 0x8 adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =gUnknown_02022C30 ldr r3, [r0] movs r2, 0 ldr r1, [r3] lsls r0, r4, 5 adds r1, r0 ldrb r0, [r1, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 beq _080132A8 cmp r0, 0x2 beq _080132B2 b _080132B4 .pool _080132A8: ldrb r0, [r1, 0x1B] cmp r0, 0 beq _080132B4 movs r2, 0x2 b _080132B4 _080132B2: movs r2, 0x1 _080132B4: lsls r0, r4, 5 ldr r3, [r3] adds r3, r0 str r2, [sp] lsls r0, r4, 24 lsrs r0, 24 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0 adds r2, r6, 0 bl sub_80178A0 add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8013278 thumb_func_start sub_80132D4 sub_80132D4: @ 80132D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r0, =gUnknown_02022C30 ldr r5, [r0] movs r0, 0 mov r8, r0 movs r3, 0x1 _080132E8: ldr r0, [r5] lsls r6, r3, 5 adds r2, r0, r6 ldrb r0, [r2, 0x1A] lsls r0, 30 lsrs r0, 30 mov r9, r0 cmp r0, 0x1 bne _08013348 ldr r1, [r5, 0x4] adds r0, r2, 0 str r3, [sp] bl sub_80176E4 adds r4, r0, 0 ldr r3, [sp] cmp r4, 0xFF beq _08013330 ldr r1, [r5] ldr r0, [r5, 0x4] lsls r2, r4, 3 subs r2, r4 lsls r2, 2 adds r1, r6 adds r0, r2 ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldr r0, [r5] adds r0, r6 mov r1, r9 strh r1, [r0, 0x18] b _08013348 .pool _08013330: ldr r2, [r5] adds r2, r6 ldrb r1, [r2, 0x1A] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r1, r0 movs r0, 0x2 orrs r1, r0 strb r1, [r2, 0x1A] movs r7, 0x2 mov r8, r7 _08013348: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _080132E8 movs r6, 0 movs r4, 0x3 _08013356: ldr r0, [r5] ldr r1, [r5, 0x4] adds r1, r6 movs r2, 0x5 bl sub_8017734 adds r6, 0x1C subs r4, 0x1 ldr r0, [r5] cmp r4, 0 bge _08013356 mov r1, r8 cmp r1, 0x2 beq _08013388 adds r1, r0, 0 movs r4, 0x4 _08013376: ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08013380 movs r2, 0x1 mov r8, r2 _08013380: adds r1, 0x20 subs r4, 0x1 cmp r4, 0 bge _08013376 _08013388: mov r0, r8 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80132D4 thumb_func_start sub_8013398 sub_8013398: @ 8013398 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_02022C30 ldr r4, [r0] movs r3, 0 _080133A8: ldr r0, [r4, 0x8] lsls r2, r3, 5 ldr r1, [r4] adds r0, r2 adds r1, r2 ldm r1!, {r2,r5,r6} stm r0!, {r2,r5,r6} ldm r1!, {r2,r5,r7} stm r0!, {r2,r5,r7} ldm r1!, {r6,r7} stm r0!, {r6,r7} adds r3, 0x1 ldr r0, [r4, 0x8] ldr r1, [r4] cmp r3, 0x4 ble _080133A8 movs r5, 0 mov r8, r1 mov r9, r0 movs r3, 0x4 _080133D0: mov r1, r9 ldrb r0, [r1, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _080133F2 lsls r0, r5, 5 add r0, r8 ldm r1!, {r2,r6,r7} stm r0!, {r2,r6,r7} ldm r1!, {r2,r6,r7} stm r0!, {r2,r6,r7} ldm r1!, {r2,r6} stm r0!, {r2,r6} adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080133F2: movs r7, 0x20 add r9, r7 subs r3, 0x1 cmp r3, 0 bge _080133D0 mov r10, r5 cmp r5, 0x4 bhi _08013454 ldr r0, =gUnknown_082F045C mov r9, r0 movs r1, 0 mov r12, r1 movs r2, 0x4 negs r2, r2 mov r8, r2 _08013410: ldr r1, [r4] lsls r3, r5, 5 adds r1, r3 mov r0, r9 ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} ldr r0, [r4] adds r0, r3 movs r1, 0 strh r1, [r0, 0x18] ldr r1, [r4] adds r1, r3 ldrb r2, [r1, 0x1A] mov r0, r8 ands r0, r2 strb r0, [r1, 0x1A] ldr r1, [r4] adds r1, r3 ldrb r2, [r1, 0x1A] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1A] ldr r0, [r4] adds r0, r3 mov r6, r12 strb r6, [r0, 0x1B] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08013410 _08013454: movs r3, 0 ldr r1, [r4] ldrb r0, [r1, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _08013474 ldrb r0, [r1, 0x1B] cmp r0, 0x40 bne _08013474 mov r10, r3 b _08013494 .pool _08013474: adds r3, 0x1 cmp r3, 0x4 bgt _08013494 lsls r0, r3, 5 adds r2, r1, r0 ldrb r0, [r2, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _08013474 ldrb r0, [r2, 0x1B] cmp r0, 0x40 bne _08013474 lsls r0, r3, 24 lsrs r0, 24 mov r10, r0 _08013494: mov r0, r10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8013398 thumb_func_start BerryBlenderLinkJoinGroup BerryBlenderLinkJoinGroup: @ 80134A4 push {lr} ldr r0, =sub_80134E8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 str r1, [r2] ldr r0, =gUnknown_03000DA4 str r1, [r0] movs r0, 0 strb r0, [r1, 0x8] strb r0, [r1, 0x9] ldr r1, =gScriptResult strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end BerryBlenderLinkJoinGroup thumb_func_start sub_80134E8 sub_80134E8: @ 80134E8 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02022C30 ldr r6, [r0] ldrb r0, [r6, 0x8] cmp r0, 0x17 bls _080134FC b _08013B82 _080134FC: lsls r0, 2 ldr r1, =_08013510 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08013510: .4byte _08013570 .4byte _080135E0 .4byte _0801360C .4byte _080136D8 .4byte _08013B82 .4byte _08013788 .4byte _080137C4 .4byte _08013A10 .4byte _08013A2C .4byte _08013A7A .4byte _08013A8C .4byte _08013B14 .4byte _08013A8C .4byte _08013AE4 .4byte _08013A8C .4byte _08013B24 .4byte _08013B82 .4byte _08013B82 .4byte _08013A8C .4byte _08013B44 .4byte _08013A8C .4byte _08013B78 .4byte _08013B82 .4byte _08013B68 _08013570: ldr r0, =gSpecialVar_0x8004 ldrh r2, [r0] adds r3, r0, 0 cmp r2, 0x14 bne _08013590 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08013590 adds r0, r2, 0x1 strh r0, [r3] _08013590: ldr r2, =gUnknown_02022C2C ldr r1, =gUnknown_082F0530 ldrh r0, [r3] adds r0, r1 ldrb r0, [r0] strb r0, [r2] ldrb r0, [r2] movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 bl sub_8011C5C movs r0, 0x70 bl AllocZeroed str r0, [r6, 0x4] movs r0, 0x80 lsls r0, 2 bl AllocZeroed str r0, [r6] movs r0, 0x1 strb r0, [r6, 0x8] b _08013B82 .pool _080135E0: adds r0, r6, 0 adds r0, 0x9 ldr r2, =gUnknown_082EFB70 ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _080135FC b _08013B82 _080135FC: movs r0, 0x2 strb r0, [r6, 0x8] b _08013B82 .pool _0801360C: ldr r0, [r6, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r6] movs r1, 0x10 bl sub_8017580 ldr r0, [r6, 0x4] ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] bl sub_8016FC0 movs r4, 0 strb r0, [r6, 0x11] ldr r0, =gUnknown_082F00BC bl AddWindow strb r0, [r6, 0xC] ldr r0, =gUnknown_082F0174 bl AddWindow strb r0, [r6, 0xB] ldr r0, =gUnknown_082F017C bl AddWindow strb r0, [r6, 0xD] ldrb r0, [r6, 0xC] movs r1, 0x22 bl FillWindowPixelBuffer ldrb r0, [r6, 0xC] ldr r2, =gUnknown_082EF7DC movs r1, 0x1 str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 movs r3, 0x8 bl sub_80173E0 ldrb r0, [r6, 0xC] bl PutWindowTilemap ldrb r0, [r6, 0xC] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r6, 0xB] movs r1, 0 bl sub_81973FC ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, =gUnknown_082F0204 ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldm r1!, {r3,r5,r7} stm r2!, {r3,r5,r7} ldrb r1, [r6, 0xB] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r6, 0xE] ldrb r0, [r6, 0xD] movs r1, 0 bl sub_81973FC ldrb r0, [r6, 0xD] bl PutWindowTilemap ldrb r0, [r6, 0xD] bl sub_80125BC ldrb r0, [r6, 0xD] movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl CopyBgTilemapBufferToVram strb r4, [r6, 0xF] movs r0, 0x3 strb r0, [r6, 0x8] b _08013B82 .pool _080136D8: bl sub_8013E44 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _080136F2 cmp r4, 0x1 beq _080136EA b _08013A72 _080136EA: movs r0, 0x2 bl PlaySE b _08013A72 _080136F2: ldrb r0, [r6, 0xE] bl ListMenuHandleInput adds r4, r0, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08013770 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08013770 ldr r0, [r6] lsls r1, r4, 5 adds r0, r1 ldrb r1, [r0, 0xA] ldrb r0, [r0, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _08013768 lsrs r0, r1, 7 cmp r0, 0 bne _08013768 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013B8C adds r1, r0, 0 cmp r1, 0 bne _08013744 adds r0, r6, 0 adds r1, r4, 0 bl sub_8013BD8 movs r0, 0x5 b _08013756 .pool _08013744: ldr r0, =gStringVar4 ldr r2, =gUnknown_082EDD50 subs r1, 0x1 lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy movs r0, 0x12 _08013756: strb r0, [r6, 0x8] movs r0, 0x6E bl PlaySE b _08013B82 .pool _08013768: movs r0, 0x7 bl PlaySE b _08013B82 _08013770: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0801377E b _08013B82 _0801377E: movs r0, 0xA strb r0, [r6, 0x8] b _08013B82 .pool _08013788: ldr r4, =gStringVar4 ldr r0, =gUnknown_02022C2C ldrb r1, [r0] adds r0, r4, 0 bl sub_80130B4 adds r0, r6, 0 adds r0, 0x9 adds r1, r4, 0 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _080137A6 b _08013B82 _080137A6: ldr r0, =gStringVar1 ldrb r2, [r6, 0xF] lsls r2, 5 ldr r1, [r6] adds r1, r2 bl sub_8018404 b _08013A86 .pool _080137C4: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0801387A ldr r4, =gUnknown_02022C2C ldr r1, [r6] ldrb r0, [r6, 0xF] lsls r0, 5 adds r1, r0 ldrb r0, [r1, 0xA] lsls r0, 25 lsrs r0, 25 strb r0, [r4] movs r0, 0 movs r1, 0 bl sub_8011A64 ldrb r0, [r4] subs r0, 0x1 cmp r0, 0x1B bhi _0801387A lsls r0, 2 ldr r1, =_08013804 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08013804: .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _0801387A .4byte _0801387A .4byte _0801387A .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _0801387A .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _0801387A .4byte _0801387A .4byte _0801387A .4byte _0801387A .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 .4byte _08013874 _08013874: movs r0, 0x14 strb r0, [r6, 0x8] b _08013B82 _0801387A: bl sub_8011A74 lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x8 bls _0801388A b _080139EC _0801388A: lsls r0, 2 ldr r1, =_08013898 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08013898: .4byte _080138BC .4byte _080138C2 .4byte _080139EC .4byte _080139EC .4byte _080138C8 .4byte _080138C2 .4byte _08013934 .4byte _080139EC .4byte _080138C2 _080138BC: movs r0, 0xC strb r0, [r6, 0x8] b _080139EC _080138C2: movs r0, 0xE strb r0, [r6, 0x8] b _080139EC _080138C8: ldr r5, =gStringVar4 ldr r4, =gUnknown_02022C2C ldrb r1, [r4] adds r0, r5, 0 bl sub_8013160 adds r0, r6, 0 adds r0, 0x9 adds r1, r5, 0 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _080138E6 b _080139EC _080138E6: ldrb r0, [r4] cmp r0, 0x1C beq _080138F0 cmp r0, 0xE bne _08013904 _080138F0: movs r0, 0xC movs r1, 0 bl sub_8011A64 b _080139EC .pool _08013904: movs r0, 0x7 movs r1, 0 bl sub_8011A64 ldr r0, =gStringVar1 ldr r2, =gUnknown_082F0048 ldrb r1, [r4] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r1, =gUnknown_082EDE48 adds r0, r5, 0 bl StringExpandPlaceholders b _080139EC .pool _08013934: ldrb r0, [r6, 0x15] adds r2, r0, 0 cmp r2, 0xF0 bls _0801395C adds r0, r6, 0 adds r0, 0x9 ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _080139EC movs r0, 0xC movs r1, 0 bl sub_8011A64 movs r0, 0 b _080139EA .pool _0801395C: ldr r0, =gUnknown_02022C2C ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x1B bhi _080139E8 lsls r0, 2 ldr r1, =_08013978 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08013978: .4byte _080139EC .4byte _080139EC .4byte _080139E8 .4byte _080139EC .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139EC .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139E8 .4byte _080139EC _080139E8: adds r0, r2, 0x1 _080139EA: strb r0, [r6, 0x15] _080139EC: bl sub_8011A74 lsls r0, 24 cmp r0, 0 beq _080139F8 b _08013B82 _080139F8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08013A06 b _08013B82 _08013A06: movs r0, 0x7 strb r0, [r6, 0x8] b _08013B82 .pool _08013A10: adds r0, r6, 0 adds r0, 0x9 ldr r1, =gUnknown_082EDE64 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08013A22 b _08013B82 _08013A22: movs r0, 0x8 strb r0, [r6, 0x8] b _08013B82 .pool _08013A2C: adds r4, r6, 0 adds r4, 0x9 bl sub_8011A74 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08013A6A cmp r1, r0 bgt _08013A58 subs r0, 0x2 cmp r1, r0 beq _08013A6E b _08013B82 _08013A58: cmp r1, 0 beq _08013A62 cmp r1, 0x1 beq _08013A6A b _08013B82 _08013A62: bl sub_80106D4 movs r0, 0x9 b _08013A70 _08013A6A: movs r0, 0x5 b _08013A70 _08013A6E: movs r0, 0x6 _08013A70: strb r0, [r6, 0x8] _08013A72: ldrb r0, [r6, 0xE] bl sub_81AE70C b _08013B82 _08013A7A: bl sub_8011A74 lsls r0, 24 cmp r0, 0 bne _08013A86 b _08013B82 _08013A86: movs r0, 0x6 strb r0, [r6, 0x8] b _08013B82 _08013A8C: ldrb r0, [r6, 0xD] bl ClearWindowTilemap ldrb r0, [r6, 0xD] movs r1, 0 bl sub_819746C ldrb r0, [r6, 0xE] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r6, 0xC] bl ClearWindowTilemap ldrb r0, [r6, 0xB] movs r1, 0 bl sub_819746C movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r6, 0xD] bl RemoveWindow ldrb r0, [r6, 0xB] bl RemoveWindow ldrb r0, [r6, 0xC] bl RemoveWindow ldrb r0, [r6, 0x11] bl DestroyTask ldr r0, [r6] bl Free ldr r0, [r6, 0x4] bl Free ldrb r0, [r6, 0x8] adds r0, 0x1 strb r0, [r6, 0x8] b _08013B82 _08013AE4: bl sub_800E084 adds r5, r6, 0 adds r5, 0x9 ldr r4, =gUnknown_082EDE9C bl sub_8011A74 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _08013B82 ldr r0, =gScriptResult movs r1, 0x6 b _08013B58 .pool _08013B14: bl sub_800E084 ldr r0, =gScriptResult movs r1, 0x5 b _08013B58 .pool _08013B24: bl sub_800E084 adds r5, r6, 0 adds r5, 0x9 ldr r4, =gUnknown_082EDE9C bl sub_8011A74 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 b _08013B4A .pool _08013B44: adds r0, r6, 0 adds r0, 0x9 ldr r1, =gStringVar4 _08013B4A: bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _08013B82 ldr r0, =gScriptResult movs r1, 0x8 _08013B58: strh r1, [r0] movs r0, 0x17 strb r0, [r6, 0x8] b _08013B82 .pool _08013B68: adds r0, r4, 0 bl DestroyTask bl sub_80173D4 bl sub_800EDD4 b _08013B82 _08013B78: bl sub_80149C4 adds r0, r4, 0 bl DestroyTask _08013B82: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80134E8 thumb_func_start sub_8013B8C sub_8013B8C: @ 8013B8C push {lr} lsls r1, 5 ldr r0, [r0] adds r3, r0, r1 ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x4 bne _08013BCE ldrb r1, [r3, 0x1] movs r0, 0x3C ands r0, r1 cmp r0, 0xC beq _08013BCE ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r1, [r0, 0x9] movs r2, 0x80 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _08013BC4 movs r0, 0x1 b _08013BD4 .pool _08013BC4: ldrb r1, [r3] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08013BD2 _08013BCE: movs r0, 0 b _08013BD4 _08013BD2: movs r0, 0x2 _08013BD4: pop {r1} bx r1 thumb_func_end sub_8013B8C thumb_func_start sub_8013BD8 sub_8013BD8: @ 8013BD8 push {r4,lr} adds r4, r0, 0 strb r1, [r4, 0xF] bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 ldrb r0, [r4, 0xE] bl sub_81AE70C ldr r0, =gStringVar1 ldrb r2, [r4, 0xF] lsls r2, 5 ldr r1, [r4] adds r1, r2 bl sub_8018404 ldr r1, =gUnknown_082F0530 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] adds r0, r1 ldrb r0, [r0] movs r1, 0 movs r2, 0x1 bl sub_8011090 ldrb r1, [r4, 0xF] lsls r1, 5 ldr r0, [r4] adds r0, r1 adds r4, r0, 0 adds r4, 0x10 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011FC8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8013BD8 thumb_func_start sub_8013C40 sub_8013C40: @ 8013C40 push {lr} ldr r0, =sub_8013C7C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, =gTasks + 0x8 adds r1, r2 str r1, [r3] movs r2, 0 strb r2, [r1, 0x8] strb r2, [r1, 0x9] ldr r2, =gUnknown_03000DA4 str r1, [r2] pop {r1} bx r1 .pool thumb_func_end sub_8013C40 thumb_func_start sub_8013C7C sub_8013C7C: @ 8013C7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02022C30 ldr r4, [r0] ldrb r0, [r4, 0x8] cmp r0, 0xB bhi _08013D80 lsls r0, 2 ldr r1, =_08013CA0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08013CA0: .4byte _08013CD0 .4byte _08013D80 .4byte _08013D04 .4byte _08013D28 .4byte _08013D80 .4byte _08013D80 .4byte _08013D80 .4byte _08013D80 .4byte _08013D80 .4byte _08013D80 .4byte _08013D58 .4byte _08013D76 _08013CD0: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 bl sub_8011C5C movs r0, 0x1 bl sub_80111B0 movs r0, 0x70 bl AllocZeroed str r0, [r4, 0x4] movs r0, 0x80 lsls r0, 2 bl AllocZeroed str r0, [r4] movs r0, 0x2 strb r0, [r4, 0x8] b _08013D80 _08013D04: ldr r0, [r4, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r4] movs r1, 0x10 bl sub_8017580 ldr r0, [r4, 0x4] movs r1, 0xFF bl sub_8016FC0 movs r1, 0 strb r0, [r4, 0x11] strb r1, [r4, 0xF] movs r0, 0x3 strb r0, [r4, 0x8] b _08013D80 _08013D28: bl sub_8013E44 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08013D3A movs r0, 0x2 bl PlaySE _08013D3A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r2, 0x26 ldrsh r0, [r1, r2] cmp r0, 0xFF bne _08013D80 movs r0, 0xA strb r0, [r4, 0x8] b _08013D80 .pool _08013D58: ldrb r0, [r4, 0x11] bl DestroyTask ldr r0, [r4] bl Free ldr r0, [r4, 0x4] bl Free bl sub_800EDD4 ldrb r0, [r4, 0x8] adds r0, 0x1 strb r0, [r4, 0x8] b _08013D80 _08013D76: bl sub_800EDD4 adds r0, r5, 0 bl DestroyTask _08013D80: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8013C7C thumb_func_start sub_8013D88 sub_8013D88: @ 8013D88 push {lr} adds r2, r0, 0 cmp r1, 0xFF bne _08013D94 _08013D90: movs r0, 0x1 b _08013DB8 _08013D94: cmp r1, 0x16 bhi _08013DB6 ldr r0, =gUnknown_082F04D8 lsls r1, 2 adds r1, r0 ldr r1, [r1] b _08013DB0 .pool _08013DA8: ldrb r0, [r1] cmp r0, r2 beq _08013D90 adds r1, 0x1 _08013DB0: ldrb r0, [r1] cmp r0, 0xFF bne _08013DA8 _08013DB6: movs r0, 0 _08013DB8: pop {r1} bx r1 thumb_func_end sub_8013D88 thumb_func_start sub_8013DBC sub_8013DBC: @ 8013DBC push {lr} ldr r0, [r0] lsls r1, 5 adds r1, r0, r1 ldrb r2, [r1, 0x1A] lsls r0, r2, 30 lsrs r0, 30 cmp r0, 0x1 bne _08013DEE ldrb r0, [r1, 0xA] lsrs r0, 7 cmp r0, 0 beq _08013DDA movs r0, 0x3 b _08013DF0 _08013DDA: lsls r0, r2, 29 cmp r0, 0 bge _08013DE4 movs r0, 0x1 b _08013DF0 _08013DE4: ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08013DEE movs r0, 0x2 b _08013DF0 _08013DEE: movs r0, 0 _08013DF0: pop {r1} bx r1 thumb_func_end sub_8013DBC thumb_func_start sub_8013DF4 sub_8013DF4: @ 8013DF4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r5, r0, 0 adds r4, r1, 0 adds r6, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r0, =gUnknown_02022C30 ldr r0, [r0] mov r8, r0 bl sub_8013DBC lsls r0, 24 lsrs r0, 24 lsls r1, r4, 5 mov r2, r8 ldr r3, [r2] adds r3, r1 str r0, [sp] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x4] adds r0, r5, 0 movs r1, 0x8 adds r2, r6, 0 bl sub_80177B8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8013DF4 thumb_func_start sub_8013E44 sub_8013E44: @ 8013E44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r0, =gUnknown_02022C30 ldr r6, [r0] movs r7, 0 movs r3, 0 _08013E54: ldr r0, [r6] lsls r5, r3, 5 adds r2, r0, r5 ldrb r0, [r2, 0x1A] lsls r0, 30 mov r8, r5 cmp r0, 0 beq _08013F20 ldr r1, [r6, 0x4] adds r0, r2, 0 str r3, [sp] bl sub_80176E4 adds r4, r0, 0 ldr r3, [sp] cmp r4, 0xFF beq _08013EEE ldr r0, [r6] adds r2, r0, r5 ldrb r1, [r2, 0x1A] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x1 bne _08013ECC lsls r0, r4, 3 subs r0, r4 lsls r4, r0, 2 ldr r1, [r6, 0x4] adds r1, r4 adds r0, r2, 0 bl sub_8017678 ldr r3, [sp] cmp r0, 0 beq _08013EB0 ldr r1, [r6] ldr r0, [r6, 0x4] adds r1, r5 adds r0, r4 ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} b _08013EDA .pool _08013EB0: ldr r0, [r6] adds r1, r0, r5 ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08013EE4 subs r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r6] adds r0, r5 ldrb r0, [r0, 0x1B] cmp r0, 0 bne _08013EE4 movs r7, 0x2 b _08013EE4 _08013ECC: movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1A] _08013EDA: ldr r0, [r6] adds r0, r5 movs r1, 0x40 strb r1, [r0, 0x1B] movs r7, 0x1 _08013EE4: ldr r0, [r6] add r0, r8 movs r1, 0 strh r1, [r0, 0x18] b _08013F20 _08013EEE: ldr r0, [r6] adds r1, r0, r5 ldrb r0, [r1, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x2 beq _08013F20 ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] ldr r0, [r6] adds r2, r0, r5 ldrh r1, [r2, 0x18] ldr r0, =0x0000012b cmp r1, r0 bls _08013F20 ldrb r0, [r2, 0x1A] movs r7, 0x4 negs r7, r7 adds r1, r7, 0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1A] movs r7, 0x2 _08013F20: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0xF bls _08013E54 movs r5, 0 movs r4, 0x3 _08013F2E: ldr r0, [r6] ldr r1, [r6, 0x4] adds r1, r5 movs r2, 0x10 bl sub_8017734 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08013F44 movs r7, 0x1 _08013F44: adds r5, 0x1C subs r4, 0x1 cmp r4, 0 bge _08013F2E adds r0, r7, 0 add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8013E44 thumb_func_start sub_8013F60 sub_8013F60: @ 8013F60 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80773AC adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_8013F60 thumb_func_start sub_8013F78 sub_8013F78: @ 8013F78 push {lr} ldr r0, =sub_8013F60 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8013F78 thumb_func_start sub_8013F90 sub_8013F90: @ 8013F90 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_02022C40 mov r8, r0 bl GetMultiplayerId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, r8 bl sub_8018120 adds r7, r0, 0 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _08013FFC cmp r0, 0x1 bgt _08013FD4 cmp r0, 0 beq _08013FDE b _080140BC .pool _08013FD4: cmp r0, 0x2 beq _08014038 cmp r0, 0x3 beq _08014070 b _080140BC _08013FDE: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r1, r0 movs r0, 0 movs r2, 0x64 bl SendBlock b _080140BC .pool _08013FFC: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080140BC bl GetMultiplayerId adds r1, r0, 0 ldr r0, =gEnemyParty movs r2, 0x1 eors r1, r2 lsls r1, 24 lsrs r1, 16 ldr r2, =gBlockRecvBuffer adds r1, r2 movs r2, 0x64 bl memcpy movs r0, 0x32 bl IncrementGameStat bl ResetBlockReceivedFlags b _0801405A .pool _08014038: ldr r4, =gUnknown_020228C4 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] ldr r0, =0x00002be0 adds r1, r0 adds r0, r4, 0 movs r2, 0xDC bl memcpy movs r0, 0 adds r1, r4, 0 movs r2, 0xDC bl SendBlock lsls r0, 24 cmp r0, 0 beq _080140BC _0801405A: ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _080140BC .pool _08014070: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080140BC ldr r4, =gUnknown_020321C0 bl GetMultiplayerId adds r1, r0, 0 movs r0, 0x1 eors r1, r0 lsls r1, 24 lsrs r1, 16 ldr r0, =gBlockRecvBuffer adds r1, r0 adds r0, r4, 0 movs r2, 0xD8 bl memcpy bl ResetBlockReceivedFlags ldr r1, =gUnknown_02032298 strb r7, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r1, =gMain ldr r0, =c2_exit_to_overworld_2_switch str r0, [r1, 0x8] ldr r0, =sub_807AE50 bl SetMainCallback2 mov r0, r8 bl sub_801807C adds r0, r6, 0 bl DestroyTask _080140BC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8013F90 thumb_func_start sub_80140E0 sub_80140E0: @ 80140E0 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _08014104 cmp r0, 0x1 beq _0801411C b _0801419E .pool _08014104: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _08014114 movs r0, 0x2 bl sub_800A4D8 _08014114: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0801419E _0801411C: bl GetBlockReceivedStatus adds r4, r0, 0 bl sub_800A9D8 lsls r4, 24 lsls r0, 24 cmp r4, r0 bne _0801419E movs r4, 0 ldr r5, =gLinkPlayers b _08014152 .pool _08014138: lsls r1, r4, 8 ldr r0, =gBlockRecvBuffer adds r3, r1, r0 movs r0, 0x64 muls r0, r4 ldr r1, =gUnknown_02039B58 adds r0, r1 ldrb r2, [r5] adds r1, r3, 0 bl sub_80C3120 adds r5, 0x1C adds r4, 0x1 _08014152: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _08014138 bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08014190 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 16 ldr r1, =gBlockRecvBuffer adds r3, r0, r1 adds r0, r3, 0 adds r0, 0x60 ldrh r0, [r0] bl sub_801B94C b _08014194 .pool _08014190: bl sub_801B940 _08014194: bl ResetBlockReceivedFlags adds r0, r6, 0 bl DestroyTask _0801419E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80140E0 thumb_func_start sub_80141A4 sub_80141A4: @ 80141A4 push {r4,lr} ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080141C0 cmp r0, 0x1 beq _080141D4 b _080141F2 .pool _080141C0: ldr r0, =sub_80140E0 movs r1, 0x5 bl CreateTask ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080141F2 .pool _080141D4: ldr r0, =sub_80140E0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080141F2 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 ldr r1, =c2_exit_to_overworld_2_switch bl sub_80C4E74 _080141F2: bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80141A4 thumb_func_start sub_8014210 sub_8014210: @ 8014210 push {r4-r6,lr} adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks ldr r5, =gLinkPlayers ldr r0, =0x00002211 str r0, [r5, 0x14] bl GetMultiplayerId adds r4, r0, 0 bl GetMultiplayerId lsls r4, 24 lsrs r4, 24 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r5 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x18] bl GetMultiplayerId adds r4, r0, 0 bl GetMultiplayerId movs r2, 0x1 eors r4, r2 lsls r4, 24 lsrs r4, 24 lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r5 eors r0, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x18] ldr r1, =gMain ldr r0, =sub_80B360C str r0, [r1, 0x8] ldr r0, =gBattleTypeFlags str r6, [r0] bl PlayBattleBGM pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8014210 thumb_func_start sub_8014290 sub_8014290: @ 8014290 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, =0x00004087 adds r1, r3, 0 bl VarSet ldr r6, =gSaveBlock1Ptr ldr r1, [r6] movs r0, 0x4 ldrsb r0, [r1, r0] ldrb r1, [r1, 0x5] lsls r1, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 mov r8, r2 lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 str r5, [sp] adds r3, r4, 0 bl Overworld_SetWarpDestination ldr r0, [r6] movs r1, 0x4 ldrsb r1, [r0, r1] movs r2, 0x5 ldrsb r2, [r0, r2] str r4, [sp] str r5, [sp, 0x4] movs r0, 0 mov r3, r8 bl saved_warp2_set_2 bl warp_in add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8014290 thumb_func_start sub_8014304 sub_8014304: @ 8014304 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 adds r6, r3, 0 ldr r1, [sp, 0x18] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r1, 16 lsrs r1, 16 ldr r0, =gSpecialVar_0x8004 strh r1, [r0] ldr r0, =0x00004087 bl VarSet bl GetLinkPlayerCount ldr r1, =gUnknown_03005DB8 strb r0, [r1] bl GetMultiplayerId ldr r1, =gUnknown_03005DB4 strb r0, [r1] bl sub_809D2BC lsls r4, 24 asrs r4, 24 lsls r5, 24 asrs r5, 24 movs r2, 0x1 negs r2, r2 mov r0, r8 lsls r0, 24 asrs r0, 24 mov r8, r0 lsls r6, 24 asrs r6, 24 str r6, [sp] adds r0, r4, 0 adds r1, r5, 0 mov r3, r8 bl Overworld_SetWarpDestination bl warp_in add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8014304 thumb_func_start sub_8014384 sub_8014384: @ 8014384 push {r4,lr} ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0 beq _080143A0 cmp r0, 0x1 beq _080143B4 b _080143C6 .pool _080143A0: ldr r0, =sub_80140E0 movs r1, 0x5 bl CreateTask ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080143C6 .pool _080143B4: ldr r0, =sub_80140E0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080143C6 ldr r0, =sub_8086074 bl SetMainCallback2 _080143C6: bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8014384 thumb_func_start sub_80143E4 sub_80143E4: @ 80143E4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_80C30A4 cmp r5, 0 beq _080143FE bl sub_801B39C adds r1, r4, 0 adds r1, 0x60 strh r0, [r1] b _08014404 _080143FE: adds r0, r4, 0 adds r0, 0x60 strh r5, [r0] _08014404: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80143E4 thumb_func_start sub_801440C sub_801440C: @ 801440C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 bl sub_801B940 ldr r0, =gUnknown_02022C2C ldrb r0, [r0] subs r0, 0x1 cmp r0, 0xE bhi _08014474 lsls r0, 2 ldr r1, =_08014434 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08014434: .4byte _08014470 .4byte _08014470 .4byte _08014470 .4byte _08014470 .4byte _08014474 .4byte _08014474 .4byte _08014474 .4byte _08014474 .4byte _08014470 .4byte _08014470 .4byte _08014470 .4byte _08014474 .4byte _08014470 .4byte _08014474 .4byte _08014470 _08014470: bl sub_800E3A8 _08014474: ldr r0, =gUnknown_02022C2C ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x50 bls _08014480 b _08014764 _08014480: lsls r0, 2 ldr r1, =_08014494 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08014494: .4byte _080145F4 .4byte _08014620 .4byte _0801464C .4byte _08014678 .4byte _080146D8 .4byte _08014764 .4byte _08014764 .4byte _080146FC .4byte _08014714 .4byte _08014734 .4byte _0801474C .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014698 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _080145D8 .4byte _08014764 .4byte _08014764 .4byte _080146C4 .4byte _080146D8 .4byte _08014764 .4byte _08014764 .4byte _080146FC .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _08014764 .4byte _080145D8 _080145D8: bl overworld_free_bg_tilemaps ldr r1, =gMain ldr r0, =sub_801AC54 str r0, [r1, 0x8] movs r0, 0x3 bl sub_81B8518 b _08014764 .pool _080145F4: bl overworld_free_bg_tilemaps ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks movs r0, 0x1 str r0, [sp] movs r0, 0x19 movs r1, 0x18 movs r2, 0x6 movs r3, 0x8 b _080146B0 .pool _08014620: bl overworld_free_bg_tilemaps bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 movs r0, 0x2 str r0, [sp] movs r0, 0x19 movs r1, 0x18 movs r2, 0x6 movs r3, 0x8 b _080146B0 .pool _0801464C: bl overworld_free_bg_tilemaps bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 movs r0, 0x5 str r0, [sp] movs r0, 0x19 movs r1, 0x1B movs r2, 0x5 movs r3, 0x8 b _080146B0 .pool _08014678: ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 bl overworld_free_bg_tilemaps movs r0, 0x3 str r0, [sp] movs r0, 0x19 movs r1, 0x19 movs r2, 0x5 movs r3, 0x8 b _080146B0 .pool _08014698: ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 bl overworld_free_bg_tilemaps movs r0, 0x4 str r0, [sp] movs r0, 0x19 movs r1, 0x1A movs r2, 0x8 movs r3, 0x9 _080146B0: bl sub_8014304 ldr r0, =sub_8014384 bl SetMainCallback2 b _08014764 .pool _080146C4: bl overworld_free_bg_tilemaps ldr r0, =sub_8013F90 movs r1, 0 bl CreateTask b _08014764 .pool _080146D8: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _080146E8 bl sub_800ED10 b _080146F6 _080146E8: bl sub_800ED28 movs r0, 0x45 movs r1, 0 movs r2, 0x1 bl sub_8010F84 _080146F6: bl sub_801DD98 b _08014764 _080146FC: ldr r0, =gUnknown_020228C4 movs r1, 0 bl sub_80143E4 ldr r0, =sub_80141A4 bl SetMainCallback2 b _08014764 .pool _08014714: movs r0, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_8014290 bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 ldr r1, =c2_load_new_map bl sub_802A9A8 b _08014764 .pool _08014734: movs r0, 0x7 movs r1, 0x9 movs r2, 0x1 bl sub_8014290 ldr r0, =c2_load_new_map bl sub_8020C70 b _08014764 .pool _0801474C: movs r0, 0x8 movs r1, 0x5 movs r2, 0x1 bl sub_8014290 bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 ldr r1, =c2_load_new_map bl sub_802493C _08014764: adds r0, r4, 0 bl DestroyTask ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x44 beq _0801477C bl ScriptContext2_Disable _0801477C: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801440C thumb_func_start sub_8014790 sub_8014790: @ 8014790 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} 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 ldr r0, =gUnknown_020228C4 mov r9, r0 movs r1, 0 ldrsh r0, [r7, r1] mov r2, r9 cmp r0, 0x8 bls _080147B6 b _080149B2 _080147B6: lsls r0, 2 ldr r1, =_080147CC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080147CC: .4byte _080147F0 .4byte _080148CC .4byte _080148E4 .4byte _0801491E .4byte _08014934 .4byte _0801494A .4byte _08014986 .4byte _08014992 .4byte _0801499C _080147F0: ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] ldr r0, =gUnknown_02022C2C ldrb r0, [r0] subs r0, 0xE cmp r0, 0xE bhi _080148C2 lsls r0, 2 ldr r1, =_08014818 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08014818: .4byte _08014854 .4byte _080148C2 .4byte _080148B8 .4byte _080148C2 .4byte _080148C2 .4byte _080148C2 .4byte _080148C2 .4byte _080148C2 .4byte _080148C2 .4byte _080148B8 .4byte _080148B8 .4byte _080148B8 .4byte _080148B8 .4byte _080148B8 .4byte _08014854 _08014854: ldr r1, =gLinkPlayers ldr r0, =0x00002211 str r0, [r1, 0x14] movs r2, 0 mov r8, r2 mov r0, r8 strh r0, [r1, 0x18] movs r0, 0x2 strh r0, [r1, 0x34] ldr r6, =gUnknown_0203CEF8 ldrb r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, =gBattleScripting + 0x14 adds r0, r4 movs r1, 0xB bl GetMonData mov r1, r9 strh r0, [r1] ldrb r0, [r6, 0x1] muls r0, r5 adds r0, r4 movs r1, 0xB movs r2, 0 bl GetMonData mov r2, r9 strh r0, [r2, 0x2] ldr r0, =gMain mov r1, r8 str r1, [r0, 0x8] movs r0, 0x4 strh r0, [r7] bl sub_800E3A8 bl ResetBlockReceivedFlags b _080149B2 .pool _080148B8: bl sub_800E3A8 adds r0, r4, 0 bl DestroyTask _080148C2: bl EnableBothScriptContexts movs r0, 0x1 strh r0, [r7] b _080149B2 _080148CC: bl ScriptContext1_IsScriptSetUp lsls r0, 24 cmp r0, 0 bne _080149B2 movs r0, 0x1 movs r1, 0 bl fade_screen movs r0, 0x2 strh r0, [r7] b _080149B2 _080148E4: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080149B2 ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x1D bne _08014914 adds r0, r4, 0 bl DestroyTask ldr r0, =sub_80773AC bl SetMainCallback2 b _080149B2 .pool _08014914: bl sub_800ADF8 movs r0, 0x3 strh r0, [r7] b _080149B2 _0801491E: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080149B2 adds r0, r4, 0 bl DestroyTask bl sub_80149D8 b _080149B2 _08014934: movs r0, 0 adds r1, r2, 0 movs r2, 0xE bl SendBlock lsls r0, 24 cmp r0, 0 beq _080149B2 movs r0, 0x5 strh r0, [r7] b _080149B2 _0801494A: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _080149B2 bl ResetBlockReceivedFlags ldr r0, =gBlockRecvBuffer movs r2, 0x80 lsls r2, 1 adds r1, r0, r2 bl sub_80B2AF4 cmp r0, 0 beq _08014980 ldr r0, =gScriptResult movs r1, 0xB strh r1, [r0] movs r0, 0x7 strh r0, [r7] b _080149B2 .pool _08014980: movs r0, 0x6 strh r0, [r7] b _080149B2 _08014986: bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask b _080149B2 _08014992: bl sub_800AC34 movs r0, 0x8 strh r0, [r7] b _080149B2 _0801499C: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080149B2 bl sub_800E084 bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask _080149B2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8014790 thumb_func_start sub_80149C4 sub_80149C4: @ 80149C4 push {lr} ldr r0, =sub_8014790 movs r1, 0 bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_80149C4 thumb_func_start sub_80149D8 sub_80149D8: @ 80149D8 push {lr} ldr r0, =sub_801440C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] pop {r0} bx r0 .pool thumb_func_end sub_80149D8 thumb_func_start sub_8014A00 sub_8014A00: @ 8014A00 push {r4,lr} adds r4, r0, 0 ldr r0, =sub_8014A40 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 str r1, [r2] movs r2, 0 strb r2, [r1, 0xC] strb r2, [r1, 0xD] strb r4, [r1, 0x18] ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8014A00 thumb_func_start sub_8014A40 sub_8014A40: @ 8014A40 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02022C30 ldr r5, [r0] ldrb r0, [r5, 0xC] cmp r0, 0x11 bls _08014A54 b _08014EF2 _08014A54: lsls r0, 2 ldr r1, =_08014A68 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08014A68: .4byte _08014AB0 .4byte _08014AEC .4byte _08014BBC .4byte _08014BEC .4byte _08014BFC .4byte _08014C4C .4byte _08014C24 .4byte _08014C52 .4byte _08014CF2 .4byte _08014DBC .4byte _08014DCC .4byte _08014DE2 .4byte _08014DFA .4byte _08014E16 .4byte _08014E4E .4byte _08014E74 .4byte _08014EA8 .4byte _08014EE2 _08014AB0: ldr r1, =gUnknown_02022C2C ldrb r0, [r5, 0x18] strb r0, [r1] ldr r1, =gUnknown_02022C2D movs r0, 0x2 strb r0, [r1] ldrb r0, [r5, 0x18] movs r1, 0 movs r2, 0 bl sub_8010F84 movs r0, 0 movs r1, 0 bl sub_8010FA0 bl sub_800B488 bl sub_8009734 movs r0, 0x2 bl sub_8011C10 movs r0, 0x1 strb r0, [r5, 0xC] b _08014EF2 .pool _08014AEC: movs r0, 0x70 bl AllocZeroed str r0, [r5, 0x4] movs r0, 0xA0 bl AllocZeroed str r0, [r5] movs r0, 0xA0 bl AllocZeroed str r0, [r5, 0x8] ldr r0, [r5, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r5] movs r1, 0x5 bl sub_8017580 ldr r0, [r5] adds r1, r0, 0 adds r1, 0x10 bl sub_800DF90 ldr r1, [r5] movs r3, 0 movs r0, 0 strh r0, [r1, 0x18] ldr r2, [r5] ldrb r1, [r2, 0x1A] subs r0, 0x4 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1A] ldr r2, [r5] ldrb r1, [r2, 0x1A] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1A] ldr r0, [r5] strb r3, [r0, 0x1B] ldr r0, [r5, 0x4] movs r1, 0xFF bl sub_8016FC0 strb r0, [r5, 0x17] ldr r0, =gUnknown_082F011C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] bl sub_8019930 lsls r0, 16 ldr r2, =0x0000ffff ldr r1, [sp, 0x4] ands r1, r2 orrs r1, r0 ldr r0, =0xffff00ff ands r1, r0 movs r0, 0xC0 lsls r0, 4 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl AddWindow strb r0, [r5, 0xF] ldrb r0, [r5, 0xF] bl sub_8018784 ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, =gUnknown_082F015C ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldrb r1, [r5, 0xF] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r5, 0x12] movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 strb r0, [r5, 0x13] b _08014C42 .pool _08014BBC: ldr r0, =gStringVar1 ldr r2, =gUnknown_082F0048 ldr r4, =gUnknown_02022C2C ldrb r1, [r4] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r0, =gStringVar4 ldrb r1, [r4] bl sub_801262C movs r0, 0x3 strb r0, [r5, 0xC] b _08014EF2 .pool _08014BEC: ldr r0, =gStringVar4 bl sub_8018884 movs r0, 0x4 strb r0, [r5, 0xC] b _08014EF2 .pool _08014BFC: adds r0, r5, 0 movs r1, 0x5 movs r2, 0x6 bl sub_801320C ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08014C14 b _08014EF2 _08014C14: movs r0, 0xD strb r0, [r5, 0xC] bl sub_800E084 b _08014EF2 .pool _08014C24: adds r0, r5, 0 adds r0, 0xD ldr r1, =gUnknown_082EDF40 bl mevent_0814257C cmp r0, 0 bne _08014C34 b _08014EF2 _08014C34: ldr r0, [r5] bl sub_8013398 strb r0, [r5, 0x13] ldrb r0, [r5, 0x12] bl sub_81AE70C _08014C42: movs r0, 0x2 strb r0, [r5, 0xC] b _08014EF2 .pool _08014C4C: movs r0, 0x7 strb r0, [r5, 0xC] b _08014EF2 _08014C52: adds r0, r5, 0 adds r0, 0xD adds r1, r5, 0 adds r1, 0x14 ldr r3, =gStringVar4 movs r2, 0 bl sub_8018B08 lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 beq _08014C82 cmp r4, 0 bgt _08014C7C movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08014CC4 b _08014EF2 .pool _08014C7C: cmp r4, 0x1 beq _08014CC4 b _08014EF2 _08014C82: bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 ldr r1, [r5] ldrb r0, [r5, 0x13] lsls r0, 5 adds r1, r0 strb r4, [r1, 0x1B] ldrb r0, [r5, 0x12] bl sub_81AE70C movs r0, 0x5 strb r0, [r5, 0x19] ldrb r1, [r5, 0x13] lsls r1, 5 ldr r0, [r5] adds r0, r1 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldrb r0, [r5, 0x13] lsls r0, 5 ldr r2, [r5] adds r2, r0 adds r2, 0x10 movs r0, 0x5 b _08014CE8 _08014CC4: movs r0, 0x6 strb r0, [r5, 0x19] ldrb r1, [r5, 0x13] lsls r1, 5 ldr r0, [r5] adds r0, r1 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldrb r0, [r5, 0x13] lsls r0, 5 ldr r2, [r5] adds r2, r0 adds r2, 0x10 movs r0, 0x6 _08014CE8: bl sub_8010688 movs r0, 0x8 strb r0, [r5, 0xC] b _08014EF2 _08014CF2: ldrb r1, [r5, 0x13] lsls r1, 5 ldr r0, [r5] adds r0, r1 adds r0, 0x2 bl sub_8015658 lsls r0, 16 lsrs r0, 16 ldrb r2, [r5, 0x13] lsls r2, 5 ldr r1, [r5] adds r1, r2 adds r1, 0x10 bl sub_8010714 adds r4, r0, 0 cmp r4, 0x1 bne _08014DAA ldrb r0, [r5, 0x19] cmp r0, 0x5 bne _08014D64 ldr r1, [r5] ldrb r0, [r5, 0x13] lsls r0, 5 adds r1, r0 movs r0, 0 strb r0, [r1, 0x1B] ldrb r0, [r5, 0x12] bl sub_81AE70C ldrb r0, [r5, 0x13] adds r0, 0x1 strb r0, [r5, 0x13] ldr r0, =gStringVar1 ldrb r2, [r5, 0x13] lsls r2, 5 subs r2, 0x20 ldr r1, [r5] adds r1, r2 bl sub_8018404 ldr r0, =gStringVar4 ldr r1, =gUnknown_082EDC9C bl StringExpandPlaceholders movs r0, 0x9 strb r0, [r5, 0xC] bl sub_800EF38 b _08014DA4 .pool _08014D64: ldrb r1, [r5, 0x13] lsls r1, 5 ldr r0, [r5] adds r0, r1 adds r4, r0, 0 adds r4, 0x10 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011DC0 ldr r1, [r5] ldrb r0, [r5, 0x13] lsls r0, 5 adds r1, r0 ldrb r2, [r1, 0x1A] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1, 0x1A] ldr r0, [r5] bl sub_8013398 ldrb r0, [r5, 0x12] bl sub_81AE70C movs r0, 0x2 strb r0, [r5, 0xC] _08014DA4: movs r0, 0 strb r0, [r5, 0x19] b _08014EF2 _08014DAA: cmp r4, 0x2 beq _08014DB0 b _08014EF2 _08014DB0: movs r0, 0 movs r1, 0 bl sub_8011A64 strb r4, [r5, 0xC] b _08014EF2 _08014DBC: ldr r0, =gStringVar4 bl sub_8018884 movs r0, 0xA strb r0, [r5, 0xC] b _08014EF2 .pool _08014DCC: ldrb r0, [r5, 0xE] adds r0, 0x1 strb r0, [r5, 0xE] lsls r0, 24 lsrs r0, 24 cmp r0, 0x78 bhi _08014DDC b _08014EF2 _08014DDC: movs r0, 0xB strb r0, [r5, 0xC] b _08014EF2 _08014DE2: adds r0, r5, 0 movs r1, 0x5 movs r2, 0x6 bl sub_801320C lsls r0, 24 cmp r0, 0 beq _08014DF4 b _08014EF2 _08014DF4: movs r0, 0xC strb r0, [r5, 0xC] b _08014EF2 _08014DFA: bl sub_800EF1C lsls r0, 24 cmp r0, 0 beq _08014E10 movs r0, 0 bl sub_800EF58 movs r0, 0xF strb r0, [r5, 0xC] b _08014EF2 _08014E10: movs r0, 0x6 strb r0, [r5, 0xC] b _08014EF2 _08014E16: bl sub_800E084 bl sub_800EDD4 ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 bl sub_81AE6C8 movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] bl RemoveWindow ldrb r0, [r5, 0x17] bl DestroyTask ldr r0, [r5, 0x8] bl Free ldr r0, [r5] bl Free ldr r0, [r5, 0x4] bl Free b _08014EDA _08014E4E: adds r0, r5, 0 adds r0, 0xD ldr r1, =gText_PleaseStartOver bl mevent_0814257C cmp r0, 0 beq _08014EF2 adds r0, r4, 0 bl DestroyTask ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08014EF2 .pool _08014E74: bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08014E8C bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08014E92 _08014E8C: movs r0, 0xD strb r0, [r5, 0xC] b _08014EF2 _08014E92: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08014EF2 movs r0, 0x1 bl sub_8011068 b _08014EDA .pool _08014EA8: ldrb r0, [r5, 0x12] movs r1, 0 movs r2, 0 bl sub_81AE6C8 movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xF] bl RemoveWindow ldrb r0, [r5, 0x17] bl DestroyTask ldr r0, [r5, 0x8] bl Free ldr r0, [r5] bl Free ldr r0, [r5, 0x4] bl Free bl sub_800ADF8 _08014EDA: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] b _08014EF2 _08014EE2: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08014EF2 adds r0, r4, 0 bl DestroyTask _08014EF2: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8014A40 thumb_func_start sub_8014EFC sub_8014EFC: @ 8014EFC push {r4,lr} adds r4, r0, 0 ldr r0, =sub_8014F48 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 str r1, [r2] ldr r0, =gUnknown_03000DA4 str r1, [r0] movs r2, 0 strb r2, [r1, 0x8] strb r2, [r1, 0x9] subs r4, 0x15 strb r4, [r1, 0x12] ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8014EFC thumb_func_start sub_8014F48 sub_8014F48: @ 8014F48 push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_02022C30 ldr r7, [r0] ldrb r0, [r7, 0x8] cmp r0, 0xC bls _08014F5C b _080152A0 _08014F5C: lsls r0, 2 ldr r1, =_08014F70 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08014F70: .4byte _08014FA4 .4byte _08014FD8 .4byte _08014FE8 .4byte _080150B8 .4byte _08015180 .4byte _080151A4 .4byte _08015204 .4byte _08015260 .4byte _08015204 .4byte _0801523A .4byte _08015204 .4byte _08015284 .4byte _08015290 _08014FA4: ldrb r0, [r7, 0x12] adds r0, 0x15 lsls r0, 24 lsrs r0, 24 movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 bl sub_8011C5C movs r0, 0x70 bl AllocZeroed str r0, [r7, 0x4] movs r0, 0x80 lsls r0, 2 bl AllocZeroed str r0, [r7] movs r0, 0x1 strb r0, [r7, 0x8] b _080152A0 _08014FD8: ldr r0, =gUnknown_082EF7F8 bl sub_8018884 movs r0, 0x2 strb r0, [r7, 0x8] b _080152A0 .pool _08014FE8: ldr r0, [r7, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r7] movs r1, 0x10 bl sub_8017580 ldr r0, [r7, 0x4] ldrb r1, [r7, 0x12] adds r1, 0x7 bl sub_8016FC0 movs r6, 0 strb r0, [r7, 0x11] ldr r0, =gUnknown_082F0174 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] bl sub_8019930 lsls r0, 16 ldr r2, =0x0000ffff ldr r1, [sp, 0x4] ands r1, r2 orrs r1, r0 ldr r5, =0xffff00ff ands r1, r5 movs r4, 0xC0 lsls r4, 4 orrs r1, r4 str r1, [sp, 0x4] mov r0, sp bl AddWindow strb r0, [r7, 0xB] ldr r0, =gUnknown_082F017C ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x8] str r1, [sp, 0xC] add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r4 str r1, [r0, 0x4] bl AddWindow strb r0, [r7, 0xD] ldrb r0, [r7, 0xB] bl sub_8018784 ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, =gUnknown_082F0204 ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldrb r1, [r7, 0xB] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r7, 0xE] ldrb r0, [r7, 0xD] bl sub_8018784 ldrb r0, [r7, 0xD] movs r1, 0x11 bl FillWindowPixelBuffer ldrb r0, [r7, 0xD] bl PutWindowTilemap ldrb r0, [r7, 0xD] bl sub_80125BC ldrb r0, [r7, 0xD] movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl CopyBgTilemapBufferToVram strb r6, [r7, 0xF] movs r0, 0x3 strb r0, [r7, 0x8] b _080152A0 .pool _080150B8: bl sub_8013E44 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080150D6 cmp r2, 0x1 bne _080150CE movs r0, 0x2 bl PlaySE _080150CE: ldrb r0, [r7, 0xE] bl sub_81AE70C b _080152A0 _080150D6: ldrb r0, [r7, 0xE] bl ListMenuHandleInput adds r2, r0, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08015168 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08015168 ldr r0, [r7] lsls r1, r2, 5 adds r0, r1 ldrb r1, [r0, 0xA] ldrb r0, [r0, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _08015160 lsrs r0, r1, 7 cmp r0, 0 bne _08015160 strb r2, [r7, 0xF] bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 ldrb r0, [r7, 0xE] bl sub_81AE70C ldr r0, =gStringVar1 ldrb r2, [r7, 0xF] lsls r2, 5 ldr r1, [r7] adds r1, r2 bl sub_8018404 ldrb r1, [r7, 0xF] lsls r1, 5 ldr r0, [r7] adds r0, r1 adds r4, r0, 0 adds r4, 0x10 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011FC8 movs r0, 0x6E bl PlaySE movs r0, 0x4 strb r0, [r7, 0x8] b _080152A0 .pool _08015160: movs r0, 0x7 bl PlaySE b _080152A0 _08015168: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08015176 b _080152A0 _08015176: movs r0, 0x6 strb r0, [r7, 0x8] b _080152A0 .pool _08015180: ldr r0, =gUnknown_082EFC3C bl sub_8018884 ldr r0, =gStringVar1 ldrb r2, [r7, 0xF] lsls r2, 5 ldr r1, [r7] adds r1, r2 bl sub_8018404 movs r0, 0x5 strb r0, [r7, 0x8] b _080152A0 .pool _080151A4: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080151C2 ldr r2, =gUnknown_02022C2C ldr r1, [r7] ldrb r0, [r7, 0xF] lsls r0, 5 adds r1, r0 ldrb r0, [r1, 0xA] lsls r0, 25 lsrs r0, 25 strb r0, [r2] movs r0, 0xA strb r0, [r7, 0x8] _080151C2: bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _080151EE cmp r0, 0x5 bgt _080151E4 cmp r0, 0x2 bgt _080152A0 cmp r0, 0x1 blt _080152A0 b _080151E8 .pool _080151E4: cmp r0, 0x6 bne _080152A0 _080151E8: movs r0, 0x8 strb r0, [r7, 0x8] b _080152A0 _080151EE: ldr r0, =gUnknown_082EDDF4 bl sub_8018884 movs r0, 0 movs r1, 0 bl sub_8011A64 b _080152A0 .pool _08015204: ldrb r0, [r7, 0xE] movs r1, 0 movs r2, 0 bl sub_81AE6C8 movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r7, 0xD] bl RemoveWindow ldrb r0, [r7, 0xB] bl RemoveWindow ldrb r0, [r7, 0x11] bl DestroyTask ldr r0, [r7] bl Free ldr r0, [r7, 0x4] bl Free ldrb r0, [r7, 0x8] adds r0, 0x1 strb r0, [r7, 0x8] b _080152A0 _0801523A: adds r5, r7, 0 adds r5, 0x9 ldr r4, =gUnknown_082EDF80 bl sub_8011A74 lsls r0, 24 lsrs r0, 22 adds r0, r4 ldr r1, [r0] adds r0, r5, 0 bl mevent_0814257C cmp r0, 0 beq _080152A0 bl sub_800E084 b _0801526A .pool _08015260: bl sub_800E084 ldr r0, =gText_PleaseStartOver bl sub_8018884 _0801526A: adds r0, r6, 0 bl DestroyTask bl sub_800EDD4 ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _080152A0 .pool _08015284: ldrb r0, [r7, 0x8] adds r0, 0x1 strb r0, [r7, 0x8] bl sub_800ADF8 b _080152A0 _08015290: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080152A0 adds r0, r6, 0 bl DestroyTask _080152A0: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8014F48 thumb_func_start sub_80152A8 sub_80152A8: @ 80152A8 push {r4,lr} adds r4, r0, 0 ldr r0, =task00_081182DC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022C30 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 str r1, [r2] ldr r0, =gUnknown_03000DA4 str r1, [r0] movs r2, 0 strb r2, [r1, 0x8] strb r2, [r1, 0x9] subs r4, 0x15 strb r4, [r1, 0x12] ldr r0, =gScriptResult strh r2, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80152A8 thumb_func_start task00_081182DC task00_081182DC: @ 80152F4 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02022C30 ldr r5, [r0] ldrb r0, [r5, 0x8] cmp r0, 0xE bls _08015308 b _08015604 _08015308: lsls r0, 2 ldr r1, =_0801531C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801531C: .4byte _08015358 .4byte _08015386 .4byte _08015398 .4byte _08015420 .4byte _080154E0 .4byte _08015504 .4byte _08015564 .4byte _080155A8 .4byte _08015564 .4byte _0801559A .4byte _08015564 .4byte _080155B4 .4byte _08015564 .4byte _080155E8 .4byte _080155F4 _08015358: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 bl sub_8011C5C movs r0, 0x70 bl AllocZeroed str r0, [r5, 0x4] movs r0, 0x80 lsls r0, 2 bl AllocZeroed str r0, [r5] movs r0, 0x1 strb r0, [r5, 0x8] b _08015604 _08015386: ldr r0, =gUnknown_082EFBC8 bl sub_8018884 movs r0, 0x2 strb r0, [r5, 0x8] b _08015604 .pool _08015398: ldr r0, [r5, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r5] movs r1, 0x10 bl sub_8017580 ldr r0, [r5, 0x4] ldrb r1, [r5, 0x12] adds r1, 0x7 bl sub_8016FF0 strb r0, [r5, 0x11] ldrb r0, [r5, 0x13] cmp r0, 0 beq _08015404 ldr r0, =gUnknown_082F0174 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] bl sub_8019930 lsls r0, 16 ldr r2, =0x0000ffff ldr r1, [sp, 0x4] ands r1, r2 orrs r1, r0 str r1, [sp, 0x4] mov r0, sp bl AddWindow strb r0, [r5, 0xB] ldrb r0, [r5, 0xB] bl sub_8018784 ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, =gUnknown_082F0204 ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldrb r1, [r5, 0xB] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r5, 0xE] movs r0, 0 bl CopyBgTilemapBufferToVram _08015404: movs r0, 0 strb r0, [r5, 0xF] movs r0, 0x3 strb r0, [r5, 0x8] b _08015604 .pool _08015420: bl sub_8013E44 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08015446 cmp r0, 0x1 bne _08015436 movs r0, 0x2 bl PlaySE _08015436: ldrb r0, [r5, 0x13] cmp r0, 0 bne _0801543E b _08015604 _0801543E: ldrb r0, [r5, 0xE] bl sub_81AE70C b _08015604 _08015446: ldrb r0, [r5, 0x13] cmp r0, 0 beq _08015452 ldrb r0, [r5, 0xE] bl ListMenuHandleInput _08015452: ldrb r0, [r5, 0x14] cmp r0, 0x78 bls _080154C0 ldr r2, [r5] ldrb r1, [r2, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _080154D4 ldrb r1, [r2, 0xA] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080154D4 ldrb r1, [r5, 0x12] adds r1, 0x7 adds r0, r2, 0 bl sub_8016F1C cmp r0, 0 beq _080154B4 strb r4, [r5, 0xF] strb r4, [r5, 0x14] bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 ldr r0, [r5] adds r4, r0, 0 adds r4, 0x10 adds r0, 0x2 bl sub_8015658 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_8011FC8 movs r0, 0x6E bl PlaySE movs r0, 0x4 strb r0, [r5, 0x8] b _080154D4 _080154B4: movs r0, 0x16 bl PlaySE movs r0, 0xA strb r0, [r5, 0x8] b _080154D4 _080154C0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080154D4 movs r1, 0 movs r0, 0x6 strb r0, [r5, 0x8] strb r1, [r5, 0x14] _080154D4: ldrb r0, [r5, 0x14] adds r0, 0x1 strb r0, [r5, 0x14] b _08015604 .pool _080154E0: ldr r0, =gUnknown_082EFC90 bl sub_8018884 ldr r0, =gStringVar1 ldrb r2, [r5, 0xF] lsls r2, 5 ldr r1, [r5] adds r1, r2 bl sub_8018404 movs r0, 0x5 strb r0, [r5, 0x8] b _08015604 .pool _08015504: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08015522 ldr r2, =gUnknown_02022C2C ldr r1, [r5] ldrb r0, [r5, 0xF] lsls r0, 5 adds r1, r0 ldrb r0, [r1, 0xA] lsls r0, 25 lsrs r0, 25 strb r0, [r2] movs r0, 0xC strb r0, [r5, 0x8] _08015522: bl sub_8011A74 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 beq _0801554E cmp r0, 0x5 bgt _08015544 cmp r0, 0x2 bgt _08015604 cmp r0, 0x1 blt _08015604 b _08015548 .pool _08015544: cmp r0, 0x6 bne _08015604 _08015548: movs r0, 0x8 strb r0, [r5, 0x8] b _08015604 _0801554E: ldr r0, =gUnknown_082EDEC4 bl sub_8018884 movs r0, 0 movs r1, 0 bl sub_8011A64 b _08015604 .pool _08015564: ldrb r0, [r5, 0x13] cmp r0, 0 beq _08015580 ldrb r0, [r5, 0xE] movs r1, 0 movs r2, 0 bl sub_81AE6C8 movs r0, 0 bl CopyBgTilemapBufferToVram ldrb r0, [r5, 0xB] bl RemoveWindow _08015580: ldrb r0, [r5, 0x11] bl DestroyTask ldr r0, [r5] bl Free ldr r0, [r5, 0x4] bl Free ldrb r0, [r5, 0x8] adds r0, 0x1 strb r0, [r5, 0x8] b _08015604 _0801559A: adds r0, r5, 0 adds r0, 0x9 ldr r1, =gUnknown_082EDF04 b _080155C2 .pool _080155A8: adds r0, r5, 0 adds r0, 0x9 ldr r1, =gText_WirelessSearchCanceled b _080155C2 .pool _080155B4: adds r0, r5, 0 adds r0, 0x9 ldr r2, =gUnknown_082EFD58 ldrb r1, [r5, 0x12] lsls r1, 2 adds r1, r2 ldr r1, [r1] _080155C2: bl mevent_0814257C cmp r0, 0 beq _08015604 bl sub_800E084 adds r0, r4, 0 bl DestroyTask bl sub_800EDD4 ldr r1, =gScriptResult movs r0, 0x5 strh r0, [r1] b _08015604 .pool _080155E8: ldrb r0, [r5, 0x8] adds r0, 0x1 strb r0, [r5, 0x8] bl sub_800ADF8 b _08015604 _080155F4: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08015604 adds r0, r4, 0 bl DestroyTask _08015604: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end task00_081182DC thumb_func_start UnionRoomSpecial UnionRoomSpecial: @ 801560C push {r4,lr} bl sub_8010F60 ldr r0, =sub_80156E0 movs r1, 0xA bl CreateTask ldr r4, =gUnknown_02022C30 movs r0, 0x9B lsls r0, 2 bl AllocZeroed str r0, [r4] ldr r1, =gUnknown_03000DA8 str r0, [r1] movs r1, 0 strb r1, [r0, 0x14] strb r1, [r0, 0x16] strh r1, [r0, 0x10] strh r1, [r0, 0x12] ldr r0, =gScriptResult strh r1, [r0] movs r0, 0xD0 movs r1, 0x1 bl sub_819A2BC pop {r4} pop {r0} bx r0 .pool thumb_func_end UnionRoomSpecial thumb_func_start sub_8015658 sub_8015658: @ 8015658 ldrb r1, [r0, 0x1] lsls r1, 8 ldrb r0, [r0] orrs r0, r1 bx lr thumb_func_end sub_8015658 thumb_func_start sub_8015664 sub_8015664: @ 8015664 push {lr} adds r3, r1, 0 ldr r1, =gUnknown_02022C30 ldr r2, [r1] movs r1, 0x8 strb r1, [r2, 0x14] strb r0, [r2, 0x15] ldr r0, =gStringVar4 cmp r3, r0 beq _0801567E adds r1, r3, 0 bl StringExpandPlaceholders _0801567E: pop {r0} bx r0 .pool thumb_func_end sub_8015664 thumb_func_start sub_801568C sub_801568C: @ 801568C push {lr} adds r2, r0, 0 ldr r0, =gUnknown_02022C30 ldr r1, [r0] movs r0, 0x1A strb r0, [r1, 0x14] ldr r0, =gStringVar4 cmp r2, r0 beq _080156A4 adds r1, r2, 0 bl StringExpandPlaceholders _080156A4: pop {r0} bx r0 .pool thumb_func_end sub_801568C thumb_func_start sub_80156B0 sub_80156B0: @ 80156B0 push {lr} ldr r3, =0x0201ff00 ldr r1, [r0] movs r2, 0x80 lsls r2, 1 adds r0, r3, 0 bl memcpy pop {r0} bx r0 .pool thumb_func_end sub_80156B0 thumb_func_start sub_80156C8 sub_80156C8: @ 80156C8 push {lr} ldr r0, [r0] ldr r1, =0x0201ff00 movs r2, 0x80 lsls r2, 1 bl memcpy pop {r0} bx r0 .pool thumb_func_end sub_80156C8 thumb_func_start sub_80156E0 sub_80156E0: @ 80156E0 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 ldr r0, =gUnknown_02022C30 ldr r6, [r0] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 ldrb r0, [r6, 0x14] cmp r0, 0x38 bls _08015702 bl _08016878 _08015702: lsls r0, 2 ldr r1, =_08015718 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08015718: .4byte _080157FC .4byte _08015854 .4byte _08015878 .4byte _080158C8 .4byte _080159A6 .4byte _08015E5C .4byte _08015C54 .4byte _08015E5C .4byte _08016864 .4byte _080161C8 .4byte _080162D4 .4byte _080160AC .4byte _080160C6 .4byte _08016324 .4byte _08016348 .4byte _08016350 .4byte _08016360 .4byte _0801638E .4byte _080163A2 .4byte _08015F32 .4byte _08015FB8 .4byte _08015FD6 .4byte _0801604A .4byte _08015ADA .4byte _08015B00 .4byte _08015B78 .4byte _08016838 .4byte _08015D4C .4byte _08015D34 .4byte _08015DD0 .4byte _08015C2A .4byte _08015DA6 .4byte _08015D9C .4byte _08016158 .4byte _08016178 .4byte _080161B8 .4byte _080162DC .4byte _08016318 .4byte _08015BF4 .4byte _08016104 .4byte _08015E94 .4byte _08015EC4 .4byte _080163CC .4byte _0801645C .4byte _080165A8 .4byte _08016610 .4byte _0801662C .4byte _08016478 .4byte _08016634 .4byte _08016738 .4byte _0801676C .4byte _080167F4 .4byte _0801652C .4byte _080164E0 .4byte _080164F4 .4byte _0801658C .4byte _080165DC _080157FC: movs r0, 0x70 bl AllocZeroed str r0, [r6, 0x4] movs r0, 0x70 bl AllocZeroed str r0, [r6, 0xC] movs r0, 0x80 lsls r0, 1 bl AllocZeroed str r0, [r6] movs r0, 0x20 bl AllocZeroed str r0, [r6, 0x8] ldr r0, [r6] movs r1, 0x8 bl sub_8017580 ldr r1, =gUnknown_02022C2C movs r0, 0x40 strb r0, [r1] ldr r0, [r6, 0xC] ldr r1, [r6, 0x4] movs r2, 0x9 bl sub_8016DF0 adds r1, r6, 0 adds r1, 0x20 strb r0, [r1] adds r0, r6, 0 adds r0, 0xA0 bl sub_8019BA8 bl sub_8019F2C movs r0, 0x1 bl _08016876 .pool _08015854: adds r0, r6, 0 adds r0, 0x21 movs r2, 0 ldrsh r1, [r7, r2] bl sub_8019E70 ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 beq _08015872 bl _08016878 _08015872: movs r0, 0x2 bl _08016876 _08015878: movs r0, 0x40 movs r1, 0 movs r2, 0 bl sub_8010F84 ldr r2, =gUnknown_02022C40 ldrh r0, [r2, 0x2] ldrh r1, [r2, 0xA] ldrh r2, [r2, 0xC] bl sub_8010FCC bl sub_800B488 bl sub_8009734 bl sub_8011C84 ldr r0, [r6, 0x8] movs r1, 0x1 bl sub_8017580 ldr r0, [r6, 0x4] movs r1, 0x4 bl sub_80175EC ldr r0, [r6, 0xC] movs r1, 0x4 bl sub_80175EC ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] movs r0, 0x3 bl _08016876 .pool _080158C8: bl sub_81B1360 lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 beq _080158E0 bl sub_81B1360 lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bne _080159A0 _080158E0: ldr r4, =gUnknown_02022C40 ldrh r0, [r4] cmp r0, 0 beq _080159A0 bl brm_get_pokemon_selection lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4] cmp r0, 0x1 beq _08015900 cmp r0, 0x2 beq _08015950 b _0801598E .pool _08015900: movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 cmp r5, 0x5 bls _0801592C adds r0, r4, 0 bl sub_801807C movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010FCC ldr r0, =gUnknown_082EF4FC bl sub_801568C b _0801598E .pool _0801592C: bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80180A0 cmp r0, 0 bne _0801594C ldr r1, =gUnknown_082EF47C movs r0, 0x34 bl sub_8015664 b _0801598E .pool _0801594C: movs r0, 0x37 b _0801598C _08015950: adds r0, r6, 0 bl sub_80156C8 ldrb r0, [r4, 0x8] strh r0, [r7, 0x2] cmp r5, 0x5 bls _0801596C ldr r0, =gUnknown_082EF544 bl sub_801568C b _0801598E .pool _0801596C: movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 ldr r1, =gUnknown_02022C2C movs r0, 0x44 strb r0, [r1] bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_80180E8 movs r0, 0x33 _0801598C: strb r0, [r6, 0x14] _0801598E: ldr r1, =gUnknown_02022C40 movs r0, 0 strh r0, [r1] bl _08016878 .pool _080159A0: movs r0, 0x4 bl _08016876 _080159A6: ldr r4, =gScriptResult ldrh r0, [r4] cmp r0, 0 beq _08015A0A cmp r0, 0x9 bne _080159E0 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 movs r0, 0x2 bl PlaySE ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy movs r1, 0 movs r0, 0x2A b _08015A02 .pool _080159E0: cmp r0, 0xB bne _080159F4 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 movs r1, 0 movs r0, 0x17 b _08015A02 _080159F4: movs r0, 0 strh r0, [r7] ldrh r0, [r4] subs r0, 0x1 strh r0, [r7, 0x2] movs r1, 0 movs r0, 0x18 _08015A02: strb r0, [r6, 0x14] strh r1, [r4] bl _08016878 _08015A0A: bl ScriptContext2_IsEnabled lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08015A1A bl _08016878 _08015A1A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08015A80 ldr r0, [r6] adds r2, r7, 0x2 adds r3, r6, 0 adds r3, 0x21 adds r1, r7, 0 bl sub_801A2A8 cmp r0, 0 beq _08015A4C movs r0, 0x5 bl PlaySE bl sub_80181CC movs r0, 0x18 bl _08016876 .pool _08015A4C: bl sub_8017940 cmp r0, 0 beq _08015A80 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 movs r0, 0x2 bl PlaySE bl sub_80181CC ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy movs r0, 0x2D bl _08016876 .pool _08015A80: bl sub_8016B00 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08015AA2 cmp r0, 0x2 bgt _08015A96 cmp r0, 0x1 beq _08015A9C b _08015AD0 _08015A96: cmp r0, 0x4 beq _08015AAA b _08015AD0 _08015A9C: movs r0, 0x2 bl PlaySE _08015AA2: adds r0, r6, 0 bl sub_801A274 b _08015AD0 _08015AAA: movs r0, 0xB strb r0, [r6, 0x14] bl sub_80181CC movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010FCC adds r0, r6, 0 bl sub_80181DC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x53 movs r2, 0 bl sub_8011090 _08015AD0: adds r0, r6, 0 bl sub_801A284 bl _08016878 _08015ADA: ldr r0, =sub_809FA34 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08015AEA bl _08016878 _08015AEA: movs r0, 0x40 movs r1, 0 movs r2, 0 bl sub_8011090 movs r0, 0x4 bl _08016876 .pool _08015B00: bl sub_801704C movs r3, 0x2 ldrsh r0, [r7, r3] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 ldr r0, [r6] ldrb r1, [r7] ldrb r2, [r7, 0x2] adds r3, r4, 0 bl sub_80179D4 cmp r0, 0x1 beq _08015B44 cmp r0, 0x1 bgt _08015B36 cmp r0, 0 beq _08015B3E bl _08016878 _08015B36: cmp r0, 0x2 beq _08015B68 bl _08016878 _08015B3E: movs r0, 0x1A bl _08016876 _08015B44: movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 5 ldr r1, [r6] adds r1, r0 adds r0, r1, 0 adds r0, 0x10 ldr r2, =gUnknown_02022C2C ldrb r2, [r2] bl sub_8012188 strh r5, [r6, 0x12] movs r0, 0x19 bl _08016876 .pool _08015B68: ldr r1, =gStringVar4 movs r0, 0x13 bl sub_8015664 bl _08016878 .pool _08015B78: bl sub_801704C bl sub_8011A74 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 blt _08015BBE cmp r4, 0x2 ble _08015B9A cmp r4, 0x4 bne _08015BBE movs r0, 0x1 bl sub_801818C strb r4, [r6, 0x14] b _08015BBE _08015B9A: bl sub_8011B90 cmp r0, 0x1 bne _08015BB0 ldr r0, =gUnknown_082EE6C8 bl sub_801568C b _08015BB8 .pool _08015BB0: ldr r1, =gUnknown_082EE6C8 movs r0, 0x1E bl sub_8015664 _08015BB8: ldr r1, =gUnknown_02022C2C movs r0, 0x40 strb r0, [r1] _08015BBE: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08015BCA bl _08016878 _08015BCA: ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 ldr r0, =sub_80140E0 movs r1, 0x5 bl CreateTask movs r0, 0x26 bl _08016876 .pool _08015BF4: ldr r0, =sub_80140E0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08015C04 bl _08016878 _08015C04: ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x44 bne _08015C24 ldr r1, =gUnknown_082EE004 movs r0, 0x1F bl sub_8015664 bl _08016878 .pool _08015C24: movs r0, 0x5 bl _08016876 _08015C2A: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08015C36 bl _08016878 _08015C36: movs r0, 0 bl sub_801818C movs r2, 0 ldrsh r0, [r7, r2] movs r3, 0x2 ldrsh r1, [r7, r3] ldr r2, [r6] bl sub_801A3D0 movs r0, 0x2 bl _08016876 .pool _08015C54: adds r0, r6, 0 adds r0, 0x16 adds r1, r6, 0 adds r1, 0x1B adds r2, r6, 0 adds r2, 0x1C ldr r3, =gUnknown_082F021C ldr r4, =gUnknown_082F0244 str r4, [sp] bl sub_8017178 adds r5, r0, 0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _08015C78 bl _08016878 _08015C78: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08015C94 movs r0, 0x1C bl _08016876 .pool _08015C94: adds r1, r6, 0 adds r1, 0x98 movs r0, 0 strh r0, [r1] movs r2, 0x2 ldrsh r0, [r7, r2] ldr r1, [r6] bl sub_8017CF8 movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _08015CB2 cmp r5, 0x40 bne _08015CE4 _08015CB2: adds r0, r6, 0 adds r0, 0x4C movs r1, 0x40 strh r1, [r0] bl sub_800FE50 ldr r0, =gStringVar4 ldr r2, =gUnknown_082EEB80 ldr r1, =gLinkPlayers ldrb r1, [r1, 0x13] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy movs r0, 0x20 bl _08016876 .pool _08015CE4: ldr r0, =gUnknown_02022C2C strb r5, [r0] ldr r1, =gUnknown_02022C2D lsrs r0, r5, 8 strb r0, [r1] lsls r0, r5, 24 lsrs r0, 24 cmp r0, 0x41 bne _08015D18 bl sub_8018024 cmp r0, 0 bne _08015D18 ldr r1, =gUnknown_082EEBD0 movs r0, 0x5 bl sub_8015664 bl _08016878 .pool _08015D18: ldr r0, =gUnknown_02022C2C ldrb r0, [r0] movs r1, 0x40 orrs r1, r0 adds r0, r6, 0 adds r0, 0x4C strh r1, [r0] bl sub_800FE50 movs r0, 0x1B bl _08016876 .pool _08015D34: ldr r0, =gStringVar4 ldr r1, =gUnknown_082EEB88 bl StringCopy movs r0, 0x24 bl _08016876 .pool _08015D4C: adds r0, r6, 0 bl sub_8017FD8 movs r3, 0x2 ldrsh r0, [r7, r3] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 adds r0, r6, 0 adds r0, 0x4C ldrh r1, [r0] movs r0, 0x3F ands r0, r1 bl sub_8017984 adds r5, r0, 0 adds r0, r6, 0 adds r0, 0x16 ldr r3, =gUnknown_082EE82C lsls r1, r5, 2 lsls r2, r4, 4 adds r1, r2 adds r1, r3 ldr r1, [r1] bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08015D8C bl _08016878 _08015D8C: movs r0, 0 strh r0, [r7, 0x6] movs r0, 0x1D bl _08016876 .pool _08015D9C: bl sub_800AC34 movs r0, 0x24 bl _08016876 _08015DA6: adds r0, r6, 0 adds r0, 0x4C movs r1, 0x44 strh r1, [r0] ldr r2, =gUnknown_02022C40 ldrh r1, [r2, 0xE] adds r3, r6, 0 adds r3, 0x4E strh r1, [r3] ldrh r2, [r2, 0x10] adds r1, r6, 0 adds r1, 0x50 strh r2, [r1] bl sub_800FE50 movs r0, 0x1D bl _08016876 .pool _08015DD0: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08015DF4 ldr r0, =gStringVar4 ldr r1, =gUnknown_082EEB88 bl StringCopy movs r0, 0x1C bl _08016876 .pool _08015DF4: adds r0, r6, 0 bl sub_8017FD8 adds r0, r6, 0 adds r0, 0x98 ldrh r0, [r0] cmp r0, 0x51 bne _08015E2A ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x8 bne _08015E24 ldr r0, =gStringVar4 adds r1, r6, 0 movs r2, 0 bl sub_8018220 movs r0, 0x28 bl _08016876 .pool _08015E24: movs r0, 0xD bl _08016876 _08015E2A: cmp r0, 0x52 beq _08015E32 bl _08016878 _08015E32: movs r5, 0 movs r0, 0x20 strb r0, [r6, 0x14] ldr r0, =gStringVar4 ldr r4, =gUnknown_02022C2C ldrb r2, [r4] movs r1, 0x40 orrs r1, r2 ldr r2, =gLinkPlayers ldrb r2, [r2, 0x13] bl sub_8017D9C strb r5, [r4] bl _08016878 .pool _08015E5C: movs r0, 0x2 ldrsh r1, [r7, r0] lsls r1, 5 ldr r0, [r6] adds r0, r1 bl sub_80179AC adds r5, r0, 0 movs r1, 0x2 ldrsh r0, [r7, r1] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 ldr r2, =gUnknown_082EE24C lsls r0, r4, 2 lsls r1, r5, 3 adds r0, r1 adds r0, r2 ldr r1, [r0] movs r0, 0x6 bl sub_8015664 bl _08016878 .pool _08015E94: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08015EA8 bl _08016878 _08015EA8: movs r4, 0 movs r0, 0x29 strb r0, [r6, 0x14] bl sub_800ADF8 adds r0, r6, 0 adds r0, 0x98 strh r4, [r0] adds r0, 0x2 strh r4, [r0] bl _08016878 .pool _08015EC4: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08015ED2 bl _08016878 _08015ED2: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _08015F2C ldr r5, =gStringVar1 bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r4, =gLinkPlayers + 8 adds r1, r4 adds r0, r5, 0 bl StringCopy ldrh r0, [r4, 0x18] adds r4, 0x1C adds r1, r4, 0 bl sub_800E540 adds r5, r0, 0 ldr r0, =gStringVar4 ldr r2, =gUnknown_082EE378 lsls r1, r5, 2 adds r1, r2 ldr r1, [r1] bl StringExpandPlaceholders movs r0, 0x21 bl _08016876 .pool _08015F2C: movs r0, 0x7 bl _08016876 _08015F32: adds r0, r6, 0 adds r0, 0x16 movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _08015F5C cmp r5, 0 bgt _08015F54 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08015F98 bl _08016878 _08015F54: cmp r5, 0x1 beq _08015F98 bl _08016878 _08015F5C: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r4, =gUnknown_02022C2C movs r0, 0x45 strb r0, [r4] movs r0, 0x45 movs r1, 0 movs r2, 0x1 bl sub_8011090 movs r2, 0x2 ldrsh r0, [r7, r2] lsls r0, 5 ldr r1, [r6] adds r1, r0 adds r0, r1, 0 adds r0, 0x10 ldrb r2, [r4] bl sub_8012188 ldrh r0, [r7, 0x2] strh r0, [r6, 0x12] movs r0, 0x14 strb r0, [r6, 0x14] strh r5, [r7, 0x6] bl _08016878 .pool _08015F98: movs r3, 0x2 ldrsh r0, [r7, r3] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 ldr r1, =gUnknown_082EEC9C lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] bl sub_801568C bl _08016878 .pool _08015FB8: ldrh r0, [r7, 0x4] adds r0, 0x1 strh r0, [r7, 0x4] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C bgt _08015FCA bl _08016878 _08015FCA: movs r1, 0 movs r0, 0x15 strb r0, [r6, 0x14] strh r1, [r7, 0x4] bl _08016878 _08015FD6: bl sub_8011A74 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 beq _0801603C cmp r4, 0x3 ble _08015FF4 cmp r4, 0x4 bne _08016040 movs r0, 0x1 bl sub_801818C strb r4, [r6, 0x14] b _08016040 _08015FF4: cmp r4, 0x1 blt _08016040 movs r1, 0x2 ldrsh r0, [r7, r1] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 bl sub_8011B90 cmp r0, 0x1 bne _08016028 ldr r0, =gUnknown_082EED3C lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] bl sub_801568C b _08016040 .pool _08016028: ldr r0, =gUnknown_082EED3C lsls r1, r4, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x1E bl sub_8015664 b _08016040 .pool _0801603C: movs r0, 0x16 strb r0, [r6, 0x14] _08016040: ldrh r0, [r7, 0x6] adds r0, 0x1 strh r0, [r7, 0x6] bl _08016878 _0801604A: bl sub_8011A80 cmp r0, 0 beq _08016092 movs r2, 0x2 ldrsh r0, [r7, r2] ldr r1, [r6] bl sub_8017CF8 adds r4, r0, 0 movs r0, 0x54 movs r1, 0 movs r2, 0x1 bl sub_8011090 bl sub_8011B90 cmp r0, 0x1 bne _08016084 ldr r0, =gUnknown_082EED3C lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] bl sub_801568C b _08016092 .pool _08016084: ldr r0, =gUnknown_082EED3C lsls r1, r4, 2 adds r1, r0 ldr r1, [r1] movs r0, 0x1E bl sub_8015664 _08016092: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801609E bl _08016878 _0801609E: movs r0, 0x10 bl _08016876 .pool _080160AC: movs r0, 0x49 bl PlaySE bl sub_800EF7C movs r0, 0 movs r1, 0xC strb r1, [r6, 0x14] adds r1, r6, 0 adds r1, 0x9A strh r0, [r1] bl _08016878 _080160C6: bl sub_8011A80 cmp r0, 0 beq _080160DA movs r0, 0 bl sub_801818C movs r0, 0x2 bl _08016876 _080160DA: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080160E4 b _08016878 _080160E4: ldr r0, =gUnknown_020228C4 movs r1, 0x1 bl sub_80143E4 ldr r0, =sub_80140E0 movs r1, 0x5 bl CreateTask movs r0, 0x27 b _08016876 .pool _08016104: adds r0, r6, 0 bl sub_801689C ldr r0, =sub_80140E0 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08016118 b _08016878 _08016118: movs r0, 0x21 strb r0, [r6, 0x14] ldr r0, =gStringVar1 ldr r4, =gUnknown_02022A0C adds r1, r4, 0 bl StringCopy adds r0, r4, 0 subs r0, 0x24 ldrh r0, [r0, 0x20] adds r1, r4, 0 bl sub_800E540 adds r5, r0, 0 ldr r0, =gStringVar4 ldr r2, =gUnknown_082EE324 lsls r1, r5, 2 adds r1, r2 ldr r1, [r1] bl StringExpandPlaceholders b _08016878 .pool _08016158: adds r0, r6, 0 bl sub_801689C adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08016170 b _08016878 _08016170: movs r0, 0x22 b _08016876 .pool _08016178: adds r0, r6, 0 bl sub_801689C adds r0, r6, 0 bl sub_80168DC cmp r0, 0 bne _0801618A b _08016878 _0801618A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _08016198 b _08016878 _08016198: movs r0, 0x1 bl sub_8011DE0 ldr r0, =gStringVar4 ldr r1, =gUnknown_082EE598 bl StringCopy movs r0, 0x24 b _08016876 .pool _080161B8: ldr r1, =gStringVar4 movs r0, 0x9 bl sub_8015664 b _08016878 .pool _080161C8: adds r0, r6, 0 adds r0, 0x16 movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080161EE cmp r1, 0 bgt _080161E8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080162AE b _08016878 _080161E8: cmp r1, 0x1 beq _080162AE b _08016878 _080161EE: adds r0, r6, 0 adds r0, 0x4C movs r1, 0x51 strh r1, [r0] ldr r1, =gUnknown_02022C2C ldrb r1, [r1] adds r5, r0, 0 cmp r1, 0x45 bne _08016220 movs r4, 0x40 orrs r4, r1 movs r0, 0x1 bl sub_801100C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_8011090 b _0801623E .pool _08016220: movs r0, 0x40 adds r4, r1, 0 orrs r4, r0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_801100C adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x1 bl sub_8011090 _0801623E: ldr r1, [r6, 0x8] movs r0, 0 strb r0, [r1, 0x1B] strh r0, [r7, 0x6] ldr r0, =gUnknown_02022C2C ldrb r0, [r0] cmp r0, 0x41 bne _08016286 bl sub_8018024 cmp r0, 0 bne _0801627C movs r0, 0x52 strh r0, [r5] adds r0, r5, 0 bl sub_800FE50 movs r0, 0xA strb r0, [r6, 0x14] ldr r0, =gStringVar4 ldr r1, =gUnknown_082EEC14 bl StringCopy b _08016878 .pool _0801627C: adds r0, r5, 0 bl sub_800FE50 movs r0, 0xD b _08016876 _08016286: cmp r0, 0x48 bne _080162A4 adds r0, r5, 0 bl sub_800FE50 ldr r0, =gStringVar4 adds r1, r6, 0 movs r2, 0x1 bl sub_8018220 movs r0, 0x28 b _08016876 .pool _080162A4: adds r0, r5, 0 bl sub_800FE50 movs r0, 0xD b _08016876 _080162AE: adds r0, r6, 0 adds r0, 0x4C movs r1, 0x52 strh r1, [r0] bl sub_800FE50 movs r0, 0xA strb r0, [r6, 0x14] ldr r0, =gStringVar4 ldr r1, =gUnknown_02022C2C ldrb r1, [r1] bl sub_8013078 b _08016878 .pool _080162D4: bl sub_800AC34 movs r0, 0x24 b _08016876 _080162DC: ldr r0, =gReceivedRemoteLinkPlayers ldrb r4, [r0] cmp r4, 0 beq _080162E6 b _08016878 _080162E6: ldr r1, =gUnknown_02022C2C movs r0, 0x40 strb r0, [r1] ldr r1, =gStringVar4 movs r0, 0x25 bl sub_8015664 adds r0, r6, 0 adds r0, 0x4C movs r1, 0 movs r2, 0xC bl memset adds r0, r6, 0 adds r0, 0x9A strh r4, [r0] subs r0, 0x2 strh r4, [r0] b _08016878 .pool _08016318: movs r0, 0x2 strb r0, [r6, 0x14] movs r0, 0 bl sub_801818C b _08016878 _08016324: ldr r4, =gStringVar4 ldr r0, =gUnknown_02022C2C ldrb r0, [r0] movs r1, 0x40 orrs r1, r0 adds r0, r4, 0 bl sub_8017E00 movs r0, 0xE adds r1, r4, 0 bl sub_8015664 b _08016878 .pool _08016348: bl sub_800ADF8 movs r0, 0xF b _08016876 _08016350: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _0801635C b _08016878 _0801635C: movs r0, 0x10 b _08016876 _08016360: ldr r0, [r6, 0x8] bl Free ldr r0, [r6] bl Free ldr r0, [r6, 0xC] bl Free ldr r0, [r6, 0x4] bl Free adds r0, r6, 0 adds r0, 0x20 ldrb r0, [r0] bl DestroyTask adds r0, r6, 0 adds r0, 0x21 bl sub_8019F04 movs r0, 0x11 b _08016876 _0801638E: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x12 b _08016876 _080163A2: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _080163AE b _08016878 _080163AE: bl sub_8019E3C adds r0, r4, 0 bl DestroyTask ldr r0, =gUnknown_02022C30 ldr r0, [r0] bl Free bl sub_80149D8 b _08016878 .pool _080163CC: bl sub_800F7DC ldrh r1, [r0, 0x8] ldr r4, =0x000003ff adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080163E4 movs r0, 0x2B b _08016876 .pool _080163E4: bl sub_800F7DC ldrh r1, [r0, 0x8] adds r0, r4, 0 ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08016408 ldr r0, =gStringVar4 ldr r1, =gUnknown_082EF590 bl StringCopy b _0801643E .pool _08016408: ldr r4, =gStringVar1 bl sub_800F7DC ldrh r0, [r0, 0x8] lsls r0, 22 lsrs r0, 22 movs r1, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r4, =gStringVar2 bl sub_800F7DC ldrb r1, [r0, 0xB] lsrs r1, 1 adds r0, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, =gStringVar4 ldr r1, =gUnknown_082EF564 bl StringExpandPlaceholders _0801643E: ldr r1, =gStringVar4 movs r0, 0x2C bl sub_8015664 b _08016878 .pool _0801645C: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF20C bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _0801646E b _08016878 _0801646E: movs r0, 0x2F b _08016876 .pool _08016478: adds r0, r6, 0 adds r0, 0x16 adds r1, r6, 0 adds r1, 0x1D adds r2, r6, 0 adds r2, 0x1E ldr r3, =gUnknown_082F025C ldr r4, =gUnknown_082F027C str r4, [sp] bl sub_8017178 adds r5, r0, 0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0801649A b _08016878 _0801649A: subs r0, 0x1 cmp r5, r0 beq _080164A4 cmp r5, 0x3 bne _080164B8 _080164A4: movs r0, 0x4 strb r0, [r6, 0x14] movs r0, 0x1 bl sub_801818C b _08016878 .pool _080164B8: cmp r5, 0x1 beq _080164C2 cmp r5, 0x2 beq _080164D0 b _08016878 _080164C2: ldr r1, =gUnknown_082EF4C4 movs r0, 0x35 bl sub_8015664 b _08016878 .pool _080164D0: ldr r1, =gUnknown_082EF298 movs r0, 0x2F bl sub_8015664 b _08016878 .pool _080164E0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x36 b _08016876 _080164F4: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08016502 b _08016878 _08016502: ldr r1, =gUnknown_02022C40 movs r0, 0x1 strh r0, [r1] ldr r1, =gFieldCallback ldr r0, =sub_80AF128 str r0, [r1] ldr r1, =c2_exit_to_overworld_2_switch movs r0, 0x8 bl sub_81B8904 b _08016878 .pool _0801652C: adds r0, r6, 0 adds r0, 0x16 adds r1, r6, 0 adds r1, 0x1D adds r2, r6, 0 adds r2, 0x1E ldr r3, =gUnknown_082F0294 ldr r4, =gUnknown_082F032C str r4, [sp] bl sub_8017178 adds r5, r0, 0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0801654E b _08016878 _0801654E: subs r0, 0x1 cmp r5, r0 beq _08016558 cmp r5, 0x12 bne _08016580 _08016558: ldr r0, =gUnknown_02022C40 bl sub_801807C movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010FCC ldr r0, =gUnknown_082EF4FC bl sub_801568C b _08016878 .pool _08016580: ldr r0, =gUnknown_02022C40 strh r5, [r0, 0x2] movs r0, 0x37 b _08016876 .pool _0801658C: ldr r2, =gUnknown_02022C40 ldrh r0, [r2, 0x2] ldrh r1, [r2, 0xA] ldrh r2, [r2, 0xC] bl sub_8010FCC ldr r0, =gUnknown_082EF520 bl sub_801568C b _08016878 .pool _080165A8: adds r0, r6, 0 adds r0, 0x16 movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _080165CE cmp r1, 0 bgt _080165C8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _080165D2 b _08016878 _080165C8: cmp r1, 0x1 beq _080165D2 b _08016878 _080165CE: movs r0, 0x38 b _08016876 _080165D2: movs r0, 0x1 bl sub_801818C movs r0, 0x4 b _08016876 _080165DC: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF5B8 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _080165EE b _08016878 _080165EE: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_8010FCC ldr r0, =gUnknown_02022C40 bl sub_801807C movs r0, 0x1 bl sub_801818C movs r0, 0x4 b _08016876 .pool _08016610: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF1EC bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _08016622 b _08016878 _08016622: movs r0, 0x2E b _08016876 .pool _0801662C: bl sub_80173B0 movs r0, 0x30 b _08016876 _08016634: adds r0, r6, 0 adds r0, 0x16 adds r1, r6, 0 adds r1, 0x1D adds r2, r6, 0 adds r2, 0x4A adds r3, r6, 0 adds r3, 0x1E ldr r4, =gUnknown_082F034C str r4, [sp] ldr r4, =gUnknown_082F03A4 str r4, [sp, 0x4] ldr r4, [r6] str r4, [sp, 0x8] bl sub_80172A0 adds r5, r0, 0 movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _08016660 b _08016878 _08016660: subs r0, 0x1 cmp r5, r0 beq _0801666A cmp r5, 0x8 bne _0801667C _0801666A: movs r0, 0x1 bl sub_801818C movs r0, 0x4 b _08016876 .pool _0801667C: bl sub_80173B0 ldr r1, [r6] lsls r4, r5, 5 adds r1, r4 ldrb r0, [r1, 0x9] lsrs r0, 2 ldrh r1, [r1, 0x8] lsls r1, 22 lsrs r1, 22 bl sub_8017D04 cmp r0, 0x1 beq _080166C8 cmp r0, 0x1 bgt _080166A2 cmp r0, 0 beq _080166A8 b _08016878 _080166A2: cmp r0, 0x2 beq _080166FC b _08016878 _080166A8: ldr r0, =gStringVar1 ldr r1, [r6] adds r1, r4 bl sub_8018404 ldr r1, =gUnknown_082EF65C movs r0, 0x31 bl sub_8015664 strh r5, [r7, 0x2] b _08016878 .pool _080166C8: ldr r0, =gStringVar1 ldr r1, [r6] adds r1, r4 bl sub_8018404 ldr r0, =gStringVar2 ldr r1, [r6] adds r1, r4 ldrb r2, [r1, 0x9] lsrs r2, 2 lsls r1, r2, 3 subs r1, r2 ldr r2, =gTypeNames adds r1, r2 bl StringCopy ldr r1, =gUnknown_082EF6E4 b _0801671E .pool _080166FC: ldr r0, =gStringVar1 ldr r1, [r6] adds r1, r4 bl sub_8018404 ldr r0, =gStringVar2 ldr r1, [r6] adds r1, r4 ldrb r2, [r1, 0x9] lsrs r2, 2 lsls r1, r2, 3 subs r1, r2 ldr r2, =gTypeNames adds r1, r2 bl StringCopy ldr r1, =gUnknown_082EF718 _0801671E: movs r0, 0x2E bl sub_8015664 b _08016878 .pool _08016738: adds r0, r6, 0 adds r0, 0x16 movs r1, 0 bl sub_80170B8 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0801675E cmp r1, 0 bgt _08016758 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08016762 b _08016878 _08016758: cmp r1, 0x1 beq _08016762 b _08016878 _0801675E: movs r0, 0x32 b _08016876 _08016762: movs r0, 0x1 bl sub_801818C movs r0, 0x4 b _08016876 _0801676C: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gUnknown_082EF4C4 bl sub_8017064 lsls r0, 24 cmp r0, 0 bne _0801677E b _08016878 _0801677E: ldr r4, =gUnknown_02022C40 movs r0, 0x2 strh r0, [r4] ldr r2, =gUnknown_02022C38 movs r3, 0x2 ldrsh r0, [r7, r3] ldr r1, [r6] lsls r0, 5 adds r0, r1 ldr r0, [r0] str r0, [r2] ldr r2, =gUnknown_02022C3E ldr r1, [r6] movs r3, 0x2 ldrsh r0, [r7, r3] lsls r0, 5 adds r1, r0 ldrb r0, [r1, 0x9] lsrs r0, 2 strb r0, [r2] ldr r2, =gUnknown_02022C3C ldr r1, [r6] movs r3, 0x2 ldrsh r0, [r7, r3] lsls r0, 5 adds r1, r0 ldrh r0, [r1, 0x8] lsls r0, 22 lsrs r0, 22 strh r0, [r2] ldr r1, =gFieldCallback ldr r0, =sub_80AF128 str r0, [r1] ldr r1, =c2_exit_to_overworld_2_switch movs r0, 0x9 bl sub_81B8904 adds r0, r6, 0 bl sub_80156B0 ldrh r0, [r7, 0x2] strb r0, [r4, 0x8] b _08016878 .pool _080167F4: ldr r1, =gUnknown_02022C2C movs r0, 0x44 strb r0, [r1] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r0, 5 ldr r1, [r6] adds r1, r0 adds r0, r1, 0 adds r0, 0x10 movs r2, 0x44 bl sub_8012188 ldr r0, =gStringVar1 movs r3, 0x2 ldrsh r2, [r7, r3] lsls r2, 5 ldr r1, [r6] adds r1, r2 bl sub_8018404 ldr r0, =gUnknown_082EE17C ldr r0, [r0, 0x8] bl sub_8017020 movs r0, 0x19 b _08016876 .pool _08016838: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _08016878 movs r0, 0x1 bl sub_801818C movs r1, 0 ldrsh r0, [r7, r1] movs r2, 0x2 ldrsh r1, [r7, r2] ldr r2, [r6] bl sub_801A3D0 movs r0, 0x4 b _08016876 .pool _08016864: adds r0, r6, 0 adds r0, 0x16 ldr r1, =gStringVar4 bl sub_8017064 lsls r0, 24 cmp r0, 0 beq _08016878 ldrb r0, [r6, 0x15] _08016876: strb r0, [r6, 0x14] _08016878: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80156E0 thumb_func_start var_800D_set_xB var_800D_set_xB: @ 8016884 push {lr} bl InUnionRoom cmp r0, 0x1 bne _08016894 ldr r1, =gScriptResult movs r0, 0xB strh r0, [r1] _08016894: pop {r0} bx r0 .pool thumb_func_end var_800D_set_xB thumb_func_start sub_801689C sub_801689C: @ 801689C push {r4,r5,lr} adds r2, r0, 0 ldr r3, =gUnknown_03003090 ldrh r5, [r3, 0x12] adds r4, r5, 0 cmp r4, 0 beq _080168D0 ldrh r0, [r3, 0x10] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _080168D0 adds r0, r2, 0 adds r0, 0x9A strh r5, [r0] cmp r4, 0x44 bne _080168D0 ldrh r1, [r3, 0x14] adds r0, 0x2 strh r1, [r0] ldrh r1, [r3, 0x16] adds r0, 0x2 strh r1, [r0] _080168D0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801689C thumb_func_start sub_80168DC sub_80168DC: @ 80168DC push {r4,r5,lr} adds r4, r0, 0 adds r5, r4, 0 adds r5, 0x9A ldrh r0, [r5] cmp r0, 0 beq _0801692C ldr r0, =gStringVar4 ldr r1, =gLinkPlayers adds r1, 0x2F ldrb r1, [r1] adds r2, r5, 0 adds r3, r4, 0 bl sub_8017EA0 cmp r0, 0 beq _0801692C cmp r0, 0x1 bne _0801691C movs r0, 0x23 strb r0, [r4, 0x14] ldr r1, =gUnknown_02022C2C ldrh r0, [r5] strb r0, [r1] movs r0, 0 b _0801692E .pool _0801691C: cmp r0, 0x2 bne _0801692C movs r0, 0x24 strb r0, [r4, 0x14] bl sub_800AC34 movs r0, 0 b _0801692E _0801692C: movs r0, 0x1 _0801692E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80168DC thumb_func_start sub_8016934 sub_8016934: @ 8016934 push {r4,r5,lr} ldr r5, =gUnknown_02022C20 movs r0, 0xFF strb r0, [r5] ldr r0, =task00_081199FC movs r1, 0 bl CreateTask ldr r4, =gUnknown_02022C30 movs r0, 0x9B lsls r0, 2 bl AllocZeroed str r0, [r4] ldr r1, =gUnknown_03000DA8 str r0, [r1] movs r1, 0 strb r1, [r0, 0x14] strb r1, [r0, 0x16] strh r1, [r0, 0x10] strh r1, [r0, 0x12] movs r0, 0x1 negs r0, r0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8016934 thumb_func_start task00_081199FC task00_081199FC: @ 801697C push {r4-r6,lr} sub sp, 0x20 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02022C30 ldr r5, [r0] ldrb r0, [r5, 0x14] cmp r0, 0x4 bls _08016990 b _08016AC8 _08016990: lsls r0, 2 ldr r1, =_080169A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080169A4: .4byte _080169B8 .4byte _080169BE .4byte _080169E0 .4byte _08016A30 .4byte _08016A94 _080169B8: movs r0, 0x1 strb r0, [r5, 0x14] b _08016AC8 _080169BE: movs r0, 0xC movs r1, 0 movs r2, 0 bl sub_8010F84 bl sub_800B488 bl sub_8009734 bl sub_8011C84 movs r0, 0x1 bl sub_80111B0 movs r0, 0x2 strb r0, [r5, 0x14] b _08016AC8 _080169E0: movs r0, 0x70 bl AllocZeroed str r0, [r5, 0x4] movs r1, 0x4 bl sub_80175EC movs r0, 0x70 bl AllocZeroed str r0, [r5, 0xC] movs r1, 0x4 bl sub_80175EC movs r0, 0x80 lsls r0, 1 bl AllocZeroed str r0, [r5] movs r1, 0x8 bl sub_8017580 movs r0, 0x20 bl AllocZeroed str r0, [r5, 0x8] movs r1, 0x1 bl sub_8017580 ldr r0, [r5, 0xC] ldr r1, [r5, 0x4] movs r2, 0xA bl sub_8016DF0 adds r1, r5, 0 adds r1, 0x20 strb r0, [r1] movs r0, 0x3 strb r0, [r5, 0x14] b _08016AC8 _08016A30: bl sub_8016B00 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 blt _08016AC8 cmp r0, 0x2 bgt _08016AC8 ldr r0, =gUnknown_02022C20 ldrb r0, [r0] cmp r0, 0xFF bne _08016AC8 movs r6, 0 _08016A4A: ldr r0, [r5] lsls r4, r6, 5 adds r1, r0, r4 ldrb r0, [r1, 0x1A] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _08016A78 mov r0, sp bl sub_8018404 ldr r0, [r5] adds r0, r4 adds r0, 0x2 bl sub_8015658 lsls r0, 16 lsrs r0, 16 mov r1, sp bl sub_800E540 cmp r0, 0 bne _08016A84 _08016A78: adds r6, 0x1 cmp r6, 0x7 ble _08016A4A b _08016AC8 .pool _08016A84: ldr r0, =gUnknown_02022C20 mov r1, sp bl StringCopy b _08016AC8 .pool _08016A94: ldr r0, [r5, 0x8] bl Free ldr r0, [r5] bl Free ldr r0, [r5, 0xC] bl Free ldr r0, [r5, 0x4] bl Free adds r0, r5, 0 adds r0, 0x20 ldrb r0, [r0] bl DestroyTask ldr r0, =gUnknown_02022C30 ldr r0, [r0] bl Free bl sub_800EDD4 adds r0, r4, 0 bl DestroyTask _08016AC8: add sp, 0x20 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end task00_081199FC thumb_func_start sp182_move_string sp182_move_string: @ 8016AD4 push {r4,lr} ldr r4, =gUnknown_02022C20 ldrb r0, [r4] cmp r0, 0xFF bne _08016AE8 movs r0, 0 b _08016AF6 .pool _08016AE8: ldr r0, =gStringVar1 adds r1, r4, 0 bl StringCopy movs r0, 0xFF strb r0, [r4] movs r0, 0x1 _08016AF6: pop {r4} pop {r1} bx r1 .pool thumb_func_end sp182_move_string thumb_func_start sub_8016B00 sub_8016B00: @ 8016B00 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, =gUnknown_02022C30 ldr r4, [r0] movs r7, 0 movs r6, 0 movs r5, 0 _08016B12: ldr r0, [r4, 0xC] adds r0, r5 ldr r1, =gUnknown_082F045C bl sub_8017630 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x1 bne _08016B5C ldr r1, [r4, 0xC] ldr r0, [r4, 0x8] adds r1, r5 ldm r1!, {r2,r5,r6} stm r0!, {r2,r5,r6} ldm r1!, {r2,r5,r6} stm r0!, {r2,r5,r6} ldr r1, [r4, 0x8] movs r0, 0 strh r0, [r1, 0x18] ldr r2, [r4, 0x8] ldrb r1, [r2, 0x1A] movs r5, 0x4 negs r5, r5 adds r0, r5, 0 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r2, 0x1A] ldr r0, [r4, 0x8] strb r3, [r0, 0x1B] movs r0, 0x4 b _08016C90 .pool _08016B5C: adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _08016B12 movs r6, 0 mov r9, r6 _08016B68: ldr r0, [r4] mov r1, r9 lsls r5, r1, 5 adds r2, r0, r5 ldrb r0, [r2, 0x1A] lsls r0, 30 mov r8, r5 cmp r0, 0 beq _08016C5C ldr r1, [r4, 0x4] adds r0, r2, 0 bl sub_80176E4 adds r6, r0, 0 cmp r6, 0xFF beq _08016C02 ldr r0, [r4] adds r2, r0, r5 ldrb r1, [r2, 0x1A] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x1 bne _08016BE0 lsls r0, r6, 3 subs r0, r6 lsls r6, r0, 2 ldr r1, [r4, 0x4] adds r1, r6 adds r0, r2, 0 bl sub_8017678 cmp r0, 0 beq _08016BC6 ldr r1, [r4] ldr r0, [r4, 0x4] adds r1, r5 adds r0, r6 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r4] adds r0, r5 movs r1, 0x40 strb r1, [r0, 0x1B] movs r7, 0x1 b _08016BF8 _08016BC6: ldr r0, [r4] adds r1, r0, r5 ldrb r0, [r1, 0x1B] cmp r0, 0 beq _08016BF8 subs r0, 0x1 strb r0, [r1, 0x1B] ldr r0, [r4] adds r0, r5 ldrb r0, [r0, 0x1B] cmp r0, 0 bne _08016BF8 b _08016BF6 _08016BE0: movs r3, 0x4 negs r3, r3 adds r0, r3, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x1A] ldr r0, [r4] adds r0, r5 movs r1, 0 strb r1, [r0, 0x1B] _08016BF6: movs r7, 0x2 _08016BF8: ldr r0, [r4] add r0, r8 movs r1, 0 strh r1, [r0, 0x18] b _08016C5C _08016C02: ldr r0, [r4] adds r1, r0, r5 ldrb r0, [r1, 0x1A] lsls r2, r0, 30 lsrs r0, r2, 30 cmp r0, 0x2 beq _08016C3C ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] ldr r0, [r4] adds r2, r0, r5 ldrh r1, [r2, 0x18] ldr r0, =0x00000257 cmp r1, r0 bls _08016C5C ldrb r0, [r2, 0x1A] movs r5, 0x4 negs r5, r5 adds r1, r5, 0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x1A] movs r7, 0x2 b _08016C5C .pool _08016C3C: lsrs r0, r2, 30 cmp r0, 0x2 bne _08016C5C ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] ldr r0, [r4] adds r2, r0, r5 ldrh r1, [r2, 0x18] ldr r0, =0x00000383 cmp r1, r0 bls _08016C5C adds r0, r2, 0 movs r1, 0x1 bl sub_8017580 _08016C5C: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0x7 bhi _08016C6C b _08016B68 _08016C6C: movs r5, 0 movs r6, 0x3 _08016C70: ldr r0, [r4] ldr r1, [r4, 0x4] adds r1, r5 movs r2, 0x8 bl sub_8017734 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08016C86 movs r7, 0x1 _08016C86: adds r5, 0x1C subs r6, 0x1 cmp r6, 0 bge _08016C70 adds r0, r7, 0 _08016C90: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8016B00 thumb_func_start sub_8016CA0 sub_8016CA0: @ 8016CA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 movs r7, 0 mov r0, sp adds r0, 0x10 str r0, [sp, 0x18] _08016CC4: lsls r2, r7, 24 lsrs r2, 24 mov r0, sp ldr r1, [sp, 0x18] bl sub_800DE7C lsls r0, 24 lsrs r4, r0, 24 mov r0, sp ldrb r0, [r0, 0xA] lsls r0, 25 lsrs r0, 25 mov r2, r10 lsls r1, r2, 2 add r1, r10 lsls r1, 3 ldr r3, =gTasks adds r1, r3 movs r5, 0x10 ldrsh r1, [r1, r5] bl sub_8013D88 cmp r0, 0 bne _08016D00 mov r1, sp ldr r0, =gUnknown_082F045C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _08016D00: mov r0, sp ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _08016D18 mov r1, sp ldr r0, =gUnknown_082F045C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _08016D18: cmp r4, 0 bne _08016D9C lsls r0, r7, 3 mov r8, r0 adds r1, r7, 0x1 mov r9, r1 cmp r7, 0 ble _08016D58 movs r2, 0 str r2, [sp, 0x1C] adds r4, r7, 0 _08016D2E: ldr r0, [r6, 0x4] ldr r3, [sp, 0x1C] adds r0, r3 mov r1, sp bl sub_8017630 lsls r0, 24 cmp r0, 0 bne _08016D4C mov r1, sp ldr r0, =gUnknown_082F045C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} _08016D4C: ldr r5, [sp, 0x1C] adds r5, 0x1C str r5, [sp, 0x1C] subs r4, 0x1 cmp r4, 0 bne _08016D2E _08016D58: ldr r1, [r6, 0x4] mov r0, r8 subs r4, r0, r7 lsls r4, 2 adds r1, r4 mov r0, sp ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r6, 0x4] adds r0, r4 ldr r1, =gUnknown_082F045C bl sub_8017630 ldr r3, [r6, 0x4] adds r3, r4 movs r2, 0x1 ands r2, r0 ldrb r0, [r3, 0x18] movs r4, 0x2 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x18] b _08016DD4 .pool _08016D9C: ldr r1, [r6] lsls r4, r7, 3 subs r4, r7 lsls r4, 2 adds r1, r4 mov r0, sp ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r6] adds r0, r4 ldr r1, =gUnknown_082F045C bl sub_8017630 ldr r3, [r6] adds r3, r4 movs r2, 0x1 ands r2, r0 ldrb r0, [r3, 0x18] movs r4, 0x2 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x18] adds r7, 0x1 mov r9, r7 _08016DD4: mov r7, r9 cmp r7, 0x3 bgt _08016DDC b _08016CC4 _08016DDC: 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_8016CA0 thumb_func_start sub_8016DF0 sub_8016DF0: @ 8016DF0 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, =sub_8016CA0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r2, =gTasks + 0x8 adds r3, r1, r2 str r4, [r3] str r5, [r3, 0x4] adds r2, r1 strh r6, [r2, 0x8] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8016DF0 thumb_func_start sub_8016E24 sub_8016E24: @ 8016E24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 movs r3, 0 _08016E42: lsls r4, r3, 3 subs r0, r4, r3 lsls r5, r0, 2 ldr r0, [r6] adds r0, r5 adds r1, r0, 0 adds r1, 0x10 lsls r2, r3, 24 lsrs r2, 24 str r3, [sp] bl sub_800DE7C ldr r0, [r6] adds r0, r5 ldrb r0, [r0, 0xA] lsls r0, 25 lsrs r0, 25 mov r2, r10 lsls r1, r2, 2 add r1, r10 lsls r1, 3 ldr r7, =gTasks adds r1, r7 movs r2, 0xC ldrsh r1, [r1, r2] bl sub_8013D88 mov r8, r4 ldr r3, [sp] cmp r0, 0 bne _08016E8E ldr r1, [r6] adds r1, r5 ldr r0, =gUnknown_082F045C ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} ldm r0!, {r2,r4,r7} stm r1!, {r2,r4,r7} _08016E8E: adds r4, r3, 0x1 mov r9, r4 cmp r3, 0 ble _08016ED2 str r5, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] adds r4, r3, 0 _08016E9E: ldr r1, [r6] ldr r7, [sp, 0x8] adds r0, r1, r7 ldr r2, [sp, 0x4] adds r1, r2 str r3, [sp] bl sub_8017630 lsls r0, 24 ldr r3, [sp] cmp r0, 0 bne _08016EC6 ldr r1, [r6] ldr r5, [sp, 0x4] adds r1, r5 ldr r0, =gUnknown_082F045C ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} _08016EC6: ldr r7, [sp, 0x8] adds r7, 0x1C str r7, [sp, 0x8] subs r4, 0x1 cmp r4, 0 bne _08016E9E _08016ED2: mov r0, r8 subs r4, r0, r3 lsls r4, 2 ldr r0, [r6] adds r0, r4 ldr r1, =gUnknown_082F045C bl sub_8017630 ldr r3, [r6] adds r3, r4 movs r2, 0x1 ands r2, r0 ldrb r0, [r3, 0x18] movs r4, 0x2 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x18] mov r3, r9 cmp r3, 0x3 ble _08016E42 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8016E24 thumb_func_start sub_8016F1C sub_8016F1C: @ 8016F1C push {lr} lsls r1, 16 asrs r1, 16 cmp r1, 0x7 bne _08016F2C ldrb r1, [r0] movs r0, 0x20 b _08016F34 _08016F2C: cmp r1, 0x8 bne _08016F3E ldrb r1, [r0] movs r0, 0x10 _08016F34: ands r0, r1 cmp r0, 0 beq _08016F3E movs r0, 0x1 b _08016F40 _08016F3E: movs r0, 0 _08016F40: pop {r1} bx r1 thumb_func_end sub_8016F1C thumb_func_start sub_8016F44 sub_8016F44: @ 8016F44 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r6, 0 subs r0, 0x8 movs r5, 0 adds r1, r0 mov r8, r1 _08016F62: ldr r0, [r4] adds r0, r5 adds r1, r0, 0 adds r1, 0x10 lsls r2, r6, 24 lsrs r2, 24 bl sub_800DF34 lsls r0, 24 cmp r0, 0 beq _08016F86 ldr r0, [r4] adds r0, r5 mov r2, r8 movs r3, 0xC ldrsh r1, [r2, r3] bl sub_8016F1C _08016F86: ldr r0, [r4] adds r0, r5 ldr r1, =gUnknown_082F045C bl sub_8017630 ldr r3, [r4] adds r3, r5 movs r2, 0x1 ands r2, r0 ldrb r0, [r3, 0x18] movs r7, 0x2 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x18] adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _08016F62 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8016F44 thumb_func_start sub_8016FC0 sub_8016FC0: @ 8016FC0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, =sub_8016E24 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r1, =gTasks + 0x8 adds r3, r2, r1 str r4, [r3] adds r1, r2 strh r5, [r1, 0x4] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8016FC0 thumb_func_start sub_8016FF0 sub_8016FF0: @ 8016FF0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r0, =sub_8016F44 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r1, =gTasks + 0x8 adds r3, r2, r1 str r4, [r3] adds r1, r2 strh r5, [r1, 0x4] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8016FF0 thumb_func_start sub_8017020 sub_8017020: @ 8017020 push {r4,lr} adds r4, r0, 0 bl sub_81973A4 movs r0, 0 movs r1, 0x1 bl sub_81973C4 ldr r0, =gStringVar4 adds r1, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0x1 bl AddTextPrinterWithCustomSpeedForMessage movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8017020 thumb_func_start sub_801704C sub_801704C: @ 801704C push {lr} bl sub_8197224 lsls r0, 16 cmp r0, 0 beq _0801705C movs r0, 0 b _0801705E _0801705C: movs r0, 0x1 _0801705E: pop {r1} bx r1 thumb_func_end sub_801704C thumb_func_start sub_8017064 sub_8017064: @ 8017064 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] cmp r0, 0 beq _08017076 cmp r0, 0x1 beq _0801709C b _080170AE _08017076: bl sub_81973A4 movs r0, 0 movs r1, 0x1 bl sub_81973C4 ldr r0, =gStringVar4 adds r1, r5, 0 bl StringExpandPlaceholders movs r0, 0x1 bl AddTextPrinterForMessage_2 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080170AE .pool _0801709C: bl sub_8197224 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _080170AE strb r0, [r4] movs r0, 0x1 b _080170B0 _080170AE: movs r0, 0 _080170B0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8017064 thumb_func_start sub_80170B8 sub_80170B8: @ 80170B8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4] cmp r0, 0 beq _080170CA cmp r0, 0x1 beq _080170E0 b _0801710C _080170CA: cmp r5, 0 beq _080170D4 movs r0, 0x3 negs r0, r0 b _08017110 _080170D4: bl sub_8197930 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801710C _080170E0: cmp r5, 0 beq _080170F2 bl sub_8198C78 movs r0, 0 strb r0, [r4] movs r0, 0x3 negs r0, r0 b _08017110 _080170F2: bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 movs r2, 0x80 lsls r2, 17 adds r0, r2 lsrs r0, 24 cmp r0, 0x2 bhi _0801710C strb r5, [r4] adds r0, r1, 0 b _08017110 _0801710C: movs r0, 0x2 negs r0, r0 _08017110: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80170B8 thumb_func_start sub_8017118 sub_8017118: @ 8017118 push {r4,lr} sub sp, 0x8 bl AddWindow adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl sub_81973FC adds r0, r4, 0 movs r1, 0xFF bl FillWindowPixelBuffer ldr r2, =gUnknown_082EFD94 movs r0, 0x1 str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] adds r0, r4, 0 movs r1, 0x1 movs r3, 0x8 bl sub_80173E0 adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 add sp, 0x8 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8017118 thumb_func_start sub_8017168 sub_8017168: @ 8017168 push {lr} lsls r0, 24 lsrs r0, 24 bl RemoveWindow pop {r0} bx r0 thumb_func_end sub_8017168 thumb_func_start sub_8017178 sub_8017178: @ 8017178 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r7, r0, 0 adds r5, r1, 0 mov r9, r2 ldrb r4, [r7] cmp r4, 0 beq _08017194 cmp r4, 0x1 beq _08017228 b _0801728E _08017194: ldr r0, [r3] ldr r1, [r3, 0x4] str r0, [sp] str r1, [sp, 0x4] ldr r0, [sp, 0x24] bl sub_81DB41C adds r1, r0, 0 ldr r2, [sp] lsrs r0, r2, 24 cmp r0, r1 ble _080171B6 lsls r1, 24 ldr r0, =0x00ffffff ands r0, r2 orrs r0, r1 str r0, [sp] _080171B6: ldr r2, [sp] lsrs r0, r2, 8 lsls r0, 24 lsrs r0, 24 lsrs r1, r2, 24 adds r0, r1 cmp r0, 0x1D ble _080171DC movs r0, 0x1D subs r0, r1 cmp r0, 0 bge _080171D0 movs r0, 0 _080171D0: lsls r1, r0, 24 lsrs r1, 16 ldr r0, =0xffff00ff ands r0, r2 orrs r0, r1 str r0, [sp] _080171DC: mov r0, sp bl AddWindow strb r0, [r5] ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, [sp, 0x24] ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldm r1!, {r3,r4,r6} stm r2!, {r3,r4,r6} ldrb r1, [r5] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit mov r1, r9 strb r0, [r1] ldrb r0, [r5] movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _0801728E .pool _08017228: mov r3, r9 ldrb r0, [r3] bl ListMenuHandleInput mov r8, r0 ldr r0, =gMain ldrh r1, [r0, 0x2E] ands r4, r1 cmp r4, 0 beq _08017264 mov r4, r9 ldrb r0, [r4] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r5] movs r1, 0x1 bl sub_819746C ldrb r0, [r5] bl RemoveWindow movs r0, 0 strb r0, [r7] mov r0, r8 b _08017292 .pool _08017264: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801728E mov r6, r9 ldrb r0, [r6] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r5] movs r1, 0x1 bl sub_819746C ldrb r0, [r5] bl RemoveWindow strb r4, [r7] movs r0, 0x2 negs r0, r0 b _08017292 _0801728E: movs r0, 0x1 negs r0, r0 _08017292: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8017178 thumb_func_start sub_80172A0 sub_80172A0: @ 80172A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 adds r6, r1, 0 mov r10, r2 mov r9, r3 ldrb r4, [r5] cmp r4, 0x1 beq _0801730C cmp r4, 0x1 bgt _080172C2 cmp r4, 0 beq _080172C8 b _0801739C _080172C2: cmp r4, 0x2 beq _0801731C b _0801739C _080172C8: ldr r0, =gUnknown_082F0344 bl sub_8017118 mov r1, r9 strb r0, [r1] ldr r0, [sp, 0x20] bl AddWindow strb r0, [r6] ldrb r0, [r6] movs r1, 0 bl sub_81973FC ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, [sp, 0x24] ldm r1!, {r3,r4,r7} stm r2!, {r3,r4,r7} ldm r1!, {r3,r4,r7} stm r2!, {r3,r4,r7} ldrb r1, [r6] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0x1 bl ListMenuInit mov r1, r10 strb r0, [r1] b _08017314 .pool _0801730C: ldrb r0, [r6] movs r1, 0x1 bl CopyWindowToVram _08017314: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _0801739C _0801731C: mov r3, r10 ldrb r0, [r3] bl ListMenuHandleInput adds r1, r0, 0 ldr r0, =gMain ldrh r2, [r0, 0x2E] movs r0, 0x3 ands r0, r2 cmp r0, 0 beq _0801739C cmp r1, 0x8 beq _0801733E ands r4, r2 mov r8, r4 cmp r4, 0 beq _08017368 _0801733E: mov r4, r10 ldrb r0, [r4] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r6] bl RemoveWindow mov r7, r9 ldrb r0, [r7] bl sub_8017168 movs r0, 0 strb r0, [r5] movs r0, 0x2 negs r0, r0 b _080173A0 .pool _08017368: ldr r0, [sp, 0x28] bl sub_8017CB0 adds r4, r0, 0 cmp r4, 0 blt _08017396 mov r1, r10 ldrb r0, [r1] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r6] bl RemoveWindow mov r3, r9 ldrb r0, [r3] bl sub_8017168 mov r7, r8 strb r7, [r5] adds r0, r4, 0 b _080173A0 _08017396: movs r0, 0x7 bl PlaySE _0801739C: movs r0, 0x1 negs r0, r0 _080173A0: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80172A0 thumb_func_start sub_80173B0 sub_80173B0: @ 80173B0 push {lr} sub sp, 0xC movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0xC pop {r0} bx r0 thumb_func_end sub_80173B0 thumb_func_start sub_80173D4 sub_80173D4: @ 80173D4 push {lr} bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_80173D4 thumb_func_start sub_80173E0 sub_80173E0: @ 80173E0 push {r4,r5,lr} sub sp, 0x10 ldr r5, [sp, 0x1C] ldr r4, [sp, 0x20] lsls r3, 24 lsrs r3, 24 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 str r2, [sp] mov r2, sp strb r0, [r2, 0x4] mov r0, sp strb r1, [r0, 0x5] strb r3, [r0, 0x6] strb r5, [r0, 0x7] strb r3, [r0, 0x8] strb r5, [r0, 0x9] ldrb r1, [r2, 0xC] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r2, 0xC] ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] cmp r4, 0x6 bls _08017422 b _0801756E _08017422: lsls r0, r4, 2 ldr r1, =_08017434 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08017434: .4byte _08017450 .4byte _0801747C .4byte _080174A8 .4byte _080174D4 .4byte _08017500 .4byte _0801752C .4byte _08017544 _08017450: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0xD] ands r0, r3 movs r1, 0x30 b _0801756A _0801747C: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0xD] ands r0, r3 movs r1, 0x50 b _0801756A _080174A8: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x60 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0xD] ands r0, r3 movs r1, 0x70 b _0801756A _080174D4: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0xD] ands r0, r3 movs r1, 0x30 b _0801756A _08017500: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0xD] ands r0, r3 movs r1, 0x30 b _0801756A _0801752C: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r4, 0xF movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0x70 b _0801755A _08017544: mov r0, sp movs r1, 0 strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r4, 0xF movs r3, 0xF adds r0, r3, 0 ands r0, r1 movs r1, 0xE0 _0801755A: orrs r0, r1 strb r0, [r2, 0xC] mov r1, sp ldrb r0, [r1, 0xD] orrs r0, r4 strb r0, [r1, 0xD] ands r0, r3 movs r1, 0x90 _0801756A: orrs r0, r1 strb r0, [r2, 0xD] _0801756E: mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80173E0 thumb_func_start sub_8017580 sub_8017580: @ 8017580 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r1, 24 lsrs r1, 24 cmp r1, 0 beq _080175D8 ldr r2, =gUnknown_082F045C mov r8, r2 movs r5, 0 mov r9, r5 movs r6, 0x4 negs r6, r6 mov r12, r6 adds r2, r0, 0 adds r2, 0x18 adds r4, r0, 0 movs r7, 0xFF mov r10, r7 adds r3, r1, 0 _080175AC: adds r1, r4, 0 mov r0, r8 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} mov r0, r10 strh r0, [r2] ldrb r1, [r2, 0x2] mov r0, r12 ands r0, r1 movs r1, 0x5 negs r1, r1 ands r0, r1 strb r0, [r2, 0x2] mov r5, r9 strb r5, [r2, 0x3] adds r2, 0x20 adds r4, 0x20 subs r3, 0x1 cmp r3, 0 bne _080175AC _080175D8: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8017580 thumb_func_start sub_80175EC sub_80175EC: @ 80175EC push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, =gUnknown_082F045C mov r12, r1 movs r5, 0x2 negs r5, r5 mov r8, r5 adds r2, r0, 0 adds r2, 0x18 adds r3, r0, 0 movs r4, 0x3 _08017604: adds r1, r3, 0 mov r0, r12 ldm r0!, {r5-r7} stm r1!, {r5-r7} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldrb r1, [r2] mov r0, r8 ands r0, r1 strb r0, [r2] adds r2, 0x1C adds r3, 0x1C subs r4, 0x1 cmp r4, 0 bge _08017604 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80175EC thumb_func_start sub_8017630 sub_8017630: @ 8017630 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 movs r2, 0 adds r4, r5, 0x2 adds r3, r6, 0x2 _0801763C: adds r0, r4, r2 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _08017664 adds r2, 0x1 cmp r2, 0x1 ble _0801763C movs r2, 0 adds r4, r5, 0 adds r4, 0x10 adds r3, r6, 0 adds r3, 0x10 _08017658: adds r0, r4, r2 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _08017668 _08017664: movs r0, 0x1 b _08017670 _08017668: adds r2, 0x1 cmp r2, 0x7 ble _08017658 movs r0, 0 _08017670: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8017630 thumb_func_start sub_8017678 sub_8017678: @ 8017678 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldrb r3, [r5, 0xA] movs r0, 0x7F ldrb r2, [r6, 0xA] adds r1, r0, 0 ands r1, r3 ands r0, r2 cmp r1, r0 bne _080176DC movs r0, 0x80 adds r1, r0, 0 ands r1, r3 ands r0, r2 cmp r1, r0 bne _080176DC movs r2, 0 adds r4, r5, 0x4 adds r3, r6, 0x4 _080176A0: adds r0, r4, r2 adds r1, r3, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _080176DC adds r2, 0x1 cmp r2, 0x3 ble _080176A0 ldrh r2, [r5, 0x8] ldr r0, =0x000003ff ldrh r3, [r6, 0x8] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _080176DC ldrb r2, [r5, 0x9] movs r0, 0xFC ldrb r3, [r6, 0x9] adds r1, r0, 0 ands r1, r2 ands r0, r3 cmp r1, r0 bne _080176DC movs r0, 0 b _080176DE .pool _080176DC: movs r0, 0x1 _080176DE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8017678 thumb_func_start sub_80176E4 sub_80176E4: @ 80176E4 push {r4-r7,lr} mov r7, r8 push {r7} mov r8, r0 movs r7, 0xFF movs r6, 0 adds r4, r1, 0 adds r4, 0x18 adds r5, r1, 0 _080176F6: ldrb r1, [r4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801771E mov r0, r8 adds r1, r5, 0 bl sub_8017630 lsls r0, 24 cmp r0, 0 bne _0801771E lsls r0, r6, 24 lsrs r7, r0, 24 ldrb r0, [r4] movs r2, 0x2 negs r2, r2 adds r1, r2, 0 ands r0, r1 strb r0, [r4] _0801771E: adds r4, 0x1C adds r5, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080176F6 adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80176E4 thumb_func_start sub_8017734 sub_8017734: @ 8017734 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r3, r0, 0 mov r8, r1 lsls r2, 24 lsrs r6, r2, 24 ldrb r1, [r1, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080177A8 movs r5, 0 cmp r5, r6 bge _080177A8 movs r0, 0x4 negs r0, r0 mov r9, r0 movs r1, 0x2 negs r1, r1 mov r12, r1 adds r2, r3, 0 adds r2, 0x18 adds r1, r3, 0 _08017766: ldrb r0, [r2, 0x2] movs r3, 0x3 ands r3, r0 cmp r3, 0 bne _0801779E mov r0, r8 ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} ldm r0!, {r4,r6,r7} stm r1!, {r4,r6,r7} strh r3, [r2] ldrb r1, [r2, 0x2] mov r0, r9 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] movs r0, 0x40 strb r0, [r2, 0x3] mov r0, r8 ldrb r1, [r0, 0x18] mov r0, r12 ands r0, r1 mov r1, r8 strb r0, [r1, 0x18] lsls r0, r5, 24 lsrs r0, 24 b _080177AA _0801779E: adds r2, 0x20 adds r1, 0x20 adds r5, 0x1 cmp r5, r6 blt _08017766 _080177A8: movs r0, 0xFF _080177AA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8017734 thumb_func_start sub_80177B8 sub_80177B8: @ 80177B8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r4, r1, 0 adds r6, r3, 0 ldr r3, [sp, 0x2C] ldr r1, [sp, 0x30] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r1, 24 lsrs r1, 24 ldr r5, =gStringVar4 adds r1, 0x1 adds r0, r5, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r1, =gText_Colon adds r0, r5, 0 bl StringAppend str r7, [sp] movs r0, 0 str r0, [sp, 0x4] mov r0, r8 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl sub_80173E0 adds r4, 0x12 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6, 0xA] lsls r0, 25 lsrs r2, r0, 25 ldrb r1, [r6, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08017884 movs r0, 0x40 ands r2, r0 cmp r2, 0 bne _08017884 adds r0, r5, 0 adds r1, r6, 0 bl sub_8018404 str r7, [sp] mov r0, r9 str r0, [sp, 0x4] mov r0, r8 movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl sub_80173E0 ldrb r1, [r6, 0x2] ldrb r0, [r6, 0x3] lsls r0, 8 orrs r1, r0 add r0, sp, 0x8 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN ldr r1, =gText_UnkCtrlCodeF907 adds r0, r5, 0 bl StringCopy adds r0, r5, 0 add r1, sp, 0x8 bl StringAppend movs r0, 0x1 adds r1, r5, 0 movs r2, 0x88 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 str r7, [sp] mov r0, r9 str r0, [sp, 0x4] mov r0, r8 movs r1, 0x1 adds r2, r5, 0 bl sub_80173E0 _08017884: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80177B8 thumb_func_start sub_80178A0 sub_80178A0: @ 80178A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r5, r3, 0 ldr r3, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 ldrb r1, [r5, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801792A ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r5, 0 bl sub_8018404 mov r0, r8 str r0, [sp] str r7, [sp, 0x4] mov r0, r9 movs r1, 0x1 adds r2, r4, 0 adds r3, r6, 0 bl sub_80173E0 ldrb r1, [r5, 0x2] ldrb r0, [r5, 0x3] lsls r0, 8 orrs r1, r0 add r0, sp, 0x8 movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN ldr r1, =gText_UnkCtrlCodeF907 adds r0, r4, 0 bl StringCopy adds r0, r4, 0 add r1, sp, 0x8 bl StringAppend movs r0, 0x1 adds r1, r4, 0 movs r2, 0x68 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r0, r8 str r0, [sp] str r7, [sp, 0x4] mov r0, r9 movs r1, 0x1 adds r2, r4, 0 bl sub_80173E0 _0801792A: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80178A0 thumb_func_start sub_8017940 sub_8017940: @ 8017940 push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x9 bne _08017978 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x8 bne _08017978 ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x2 beq _0801796E cmp r0, 0 bne _08017978 _0801796E: movs r0, 0x1 b _0801797A .pool _08017978: movs r0, 0 _0801797A: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8017940 thumb_func_start sub_8017984 sub_8017984: @ 8017984 push {lr} cmp r0, 0x4 beq _0801799C cmp r0, 0x4 ble _080179A4 cmp r0, 0x5 beq _08017998 cmp r0, 0x8 beq _080179A0 b _080179A4 _08017998: movs r0, 0x1 b _080179A6 _0801799C: movs r0, 0x2 b _080179A6 _080179A0: movs r0, 0x3 b _080179A6 _080179A4: movs r0, 0 _080179A6: pop {r1} bx r1 thumb_func_end sub_8017984 thumb_func_start sub_80179AC sub_80179AC: @ 80179AC push {r4,lr} sub sp, 0x20 adds r4, r0, 0 mov r0, sp adds r1, r4, 0 bl sub_8018404 adds r4, 0x2 adds r0, r4, 0 bl sub_8015658 lsls r0, 16 lsrs r0, 16 mov r1, sp bl sub_800E540 add sp, 0x20 pop {r4} pop {r1} bx r1 thumb_func_end sub_80179AC thumb_func_start sub_80179D4 sub_80179D4: @ 80179D4 push {r4-r6,lr} adds r6, r3, 0 lsls r1, 24 lsrs r4, r1, 24 lsls r2, 24 lsrs r2, 19 adds r5, r0, r2 ldrb r1, [r5, 0xA] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08017A4C cmp r4, 0 bne _08017A4C ldr r4, =gStringVar1 adds r0, r4, 0 adds r1, r5, 0 bl sub_8018404 adds r0, r5, 0x2 bl sub_8015658 lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl sub_800E540 adds r2, r0, 0 ldrb r1, [r5, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 bne _08017A38 ldr r0, =gStringVar4 ldr r3, =gUnknown_082EE6B8 lsls r1, r6, 2 lsls r2, 3 adds r1, r2 adds r1, r3 ldr r1, [r1] bl StringExpandPlaceholders movs r0, 0x2 b _08017B2A .pool _08017A38: ldr r0, =gUnknown_082EE17C lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] bl sub_8017020 movs r0, 0x1 b _08017B2A .pool _08017A4C: ldr r0, =gStringVar1 adds r1, r5, 0 bl sub_8018404 cmp r4, 0 beq _08017A62 adds r0, r5, r4 ldrb r0, [r0, 0x3] lsrs r6, r0, 3 movs r0, 0x1 ands r6, r0 _08017A62: ldrb r0, [r5, 0xA] lsls r0, 25 lsrs r0, 25 movs r1, 0x3F ands r1, r0 cmp r1, 0x4 beq _08017AB0 cmp r1, 0x4 bgt _08017A80 cmp r1, 0x1 beq _08017A8A b _08017B20 .pool _08017A80: cmp r1, 0x5 beq _08017AD0 cmp r1, 0x8 beq _08017AF4 b _08017B20 _08017A8A: ldr r5, =gStringVar4 ldr r4, =gUnknown_082EEEAC bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r1, 14 lsls r0, r6, 4 adds r1, r0 adds r1, r4 ldr r1, [r1] b _08017B0E .pool _08017AB0: ldr r5, =gStringVar4 ldr r4, =gUnknown_082EF1CC bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 lsls r0, 2 lsls r1, r6, 4 b _08017B08 .pool _08017AD0: ldr r5, =gStringVar4 ldr r4, =gUnknown_082EF010 bl Random lsls r0, 16 movs r1, 0xC0 lsls r1, 10 ands r1, r0 lsrs r1, 14 lsls r0, r6, 4 adds r1, r0 adds r1, r4 ldr r1, [r1] b _08017B0E .pool _08017AF4: ldr r5, =gStringVar4 ldr r4, =gUnknown_082EF100 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 lsls r0, 2 lsls r1, r6, 3 _08017B08: adds r0, r1 adds r0, r4 ldr r1, [r0] _08017B0E: adds r0, r5, 0 bl StringExpandPlaceholders b _08017B28 .pool _08017B20: ldr r0, =gStringVar4 ldr r1, =gUnknown_082EE6C8 bl StringExpandPlaceholders _08017B28: movs r0, 0 _08017B2A: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_80179D4 thumb_func_start nullsub_14 nullsub_14: @ 8017B38 bx lr thumb_func_end nullsub_14 thumb_func_start sub_8017B3C sub_8017B3C: @ 8017B3C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r4, [sp, 0x28] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r4, 24 lsrs r4, 24 ldrh r0, [r2, 0x8] lsls r0, 22 lsrs r0, 22 mov r8, r0 ldrb r0, [r2, 0x9] lsrs r7, r0, 2 ldrb r0, [r2, 0xB] lsrs r0, 1 mov r9, r0 str r5, [sp] str r4, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 adds r2, r3, 0 movs r3, 0x8 bl sub_80173E0 movs r0, 0xCE lsls r0, 1 cmp r8, r0 bne _08017B94 ldr r2, =gUnknown_082EF7D0 str r5, [sp] str r4, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 movs r3, 0x44 bl sub_80173E0 b _08017BD4 .pool _08017B94: adds r1, r7, 0x1 adds r0, r6, 0 movs r2, 0x44 adds r3, r5, 0 bl blit_move_info_icon movs r0, 0xB mov r2, r8 muls r2, r0 ldr r0, =gSpeciesNames adds r2, r0 str r5, [sp] str r4, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 movs r3, 0x76 bl sub_80173E0 add r0, sp, 0x8 mov r1, r9 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN str r5, [sp] str r4, [sp, 0x4] adds r0, r6, 0 movs r1, 0x1 add r2, sp, 0x8 movs r3, 0xC6 bl sub_80173E0 _08017BD4: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8017B3C thumb_func_start sub_8017BE8 sub_8017BE8: @ 8017BE8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, 24 lsrs r7, r2, 24 ldr r0, =gUnknown_02022C30 ldr r0, [r0] mov r8, r0 movs r0, 0x3 negs r0, r0 cmp r4, r0 bne _08017C6C ldr r0, =gUnknown_082F03A4 ldrb r0, [r0, 0x14] lsls r0, 28 lsrs r0, 28 cmp r7, r0 bne _08017C6C bl sub_800F7DC adds r2, r0, 0 ldrh r1, [r2, 0x8] ldr r0, =0x000003ff ands r0, r1 cmp r0, 0 beq _08017CA0 ldr r0, =gSaveBlock2Ptr ldr r3, [r0] movs r0, 0x5 str r0, [sp] mov r0, r9 adds r1, r7, 0 bl sub_8017B3C b _08017CA0 .pool _08017C4C: mov r0, r12 adds r1, r0, r4 add r0, sp, 0x4 bl sub_8018404 mov r0, r8 ldr r2, [r0] adds r2, r4 movs r0, 0x6 str r0, [sp] mov r0, r9 adds r1, r7, 0 add r3, sp, 0x4 bl sub_8017B3C b _08017CA0 _08017C6C: movs r5, 0 movs r1, 0 mov r2, r8 ldr r2, [r2] mov r12, r2 adds r2, 0x8 movs r3, 0 adds r6, r4, 0x1 _08017C7C: ldrb r0, [r2, 0x12] lsls r0, 30 lsrs r0, 30 adds r4, r3, 0 cmp r0, 0x1 bne _08017C92 ldrh r0, [r2] lsls r0, 22 cmp r0, 0 beq _08017C92 adds r5, 0x1 _08017C92: cmp r5, r6 beq _08017C4C adds r2, 0x20 adds r3, 0x20 adds r1, 0x1 cmp r1, 0x7 ble _08017C7C _08017CA0: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8017BE8 thumb_func_start sub_8017CB0 sub_8017CB0: @ 8017CB0 push {r4-r7,lr} movs r4, 0 movs r3, 0 movs r7, 0x3 ldr r6, =0x000003ff adds r2, r0, 0 adds r2, 0x8 adds r5, r1, 0x1 _08017CC0: ldrb r1, [r2, 0x12] adds r0, r7, 0 ands r0, r1 cmp r0, 0x1 bne _08017CD6 ldrh r1, [r2] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08017CD6 adds r4, 0x1 _08017CD6: cmp r4, r5 bne _08017CE4 adds r0, r3, 0 b _08017CF0 .pool _08017CE4: adds r2, 0x20 adds r3, 0x1 cmp r3, 0x7 ble _08017CC0 movs r0, 0x1 negs r0, r0 _08017CF0: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8017CB0 thumb_func_start sub_8017CF8 sub_8017CF8: @ 8017CF8 lsls r0, 5 adds r0, r1 ldrb r0, [r0, 0xB] lsls r0, 31 lsrs r0, 31 bx lr thumb_func_end sub_8017CF8 thumb_func_start sub_8017D04 sub_8017D04: @ 8017D04 push {r4-r6,lr} adds r5, r0, 0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _08017D44 movs r4, 0 b _08017D2E _08017D14: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x41 bl GetMonData adds r1, r0, 0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _08017D74 adds r4, 0x1 _08017D2E: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 blt _08017D14 movs r0, 0x2 b _08017D90 .pool _08017D44: movs r4, 0 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bge _08017D8E ldr r6, =gBaseStats _08017D50: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x41 bl GetMonData adds r1, r0, 0 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r1, r0, r6 ldrb r0, [r1, 0x6] cmp r0, r5 beq _08017D74 ldrb r0, [r1, 0x7] cmp r0, r5 bne _08017D84 _08017D74: movs r0, 0 b _08017D90 .pool _08017D84: adds r4, 0x1 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 blt _08017D50 _08017D8E: movs r0, 0x1 _08017D90: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8017D04 thumb_func_start sub_8017D9C sub_8017D9C: @ 8017D9C push {lr} adds r3, r0, 0 cmp r1, 0x44 beq _08017DD8 cmp r1, 0x44 bgt _08017DAE cmp r1, 0x41 beq _08017DB8 b _08017DF6 _08017DAE: cmp r1, 0x45 beq _08017DC8 cmp r1, 0x48 beq _08017DE8 b _08017DF6 _08017DB8: ldr r0, =gUnknown_082EEA68 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] b _08017DDA .pool _08017DC8: ldr r0, =gUnknown_082EED3C lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] b _08017DDA .pool _08017DD8: ldr r1, =gUnknown_082EF7B0 _08017DDA: adds r0, r3, 0 bl StringExpandPlaceholders b _08017DF6 .pool _08017DE8: ldr r0, =gUnknown_082EEB08 lsls r1, r2, 2 adds r1, r0 ldr r1, [r1] adds r0, r3, 0 bl StringExpandPlaceholders _08017DF6: pop {r0} bx r0 .pool thumb_func_end sub_8017D9C thumb_func_start sub_8017E00 sub_8017E00: @ 8017E00 push {r4-r6,lr} adds r5, r0, 0 lsls r1, 24 lsrs r4, r1, 24 adds r6, r4, 0 bl GetMultiplayerId lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gLinkPlayers movs r0, 0x1 adds r1, r3, 0 eors r1, r0 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x13] cmp r4, 0x44 beq _08017E54 cmp r4, 0x44 bgt _08017E38 cmp r4, 0x41 beq _08017E3E b _08017E94 .pool _08017E38: cmp r6, 0x45 beq _08017E78 b _08017E94 _08017E3E: ldr r2, =gUnknown_082EE984 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r0 b _08017E66 .pool _08017E54: ldr r2, =gUnknown_082EE984 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r0 adds r2, 0x8 _08017E66: adds r1, r2 ldr r1, [r1] adds r0, r5, 0 bl StringCopy b _08017E94 .pool _08017E78: ldr r2, =gUnknown_082EE984 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 lsls r0, r3, 1 adds r0, r3 lsls r0, 3 adds r1, r0 adds r2, 0x4 adds r1, r2 ldr r1, [r1] adds r0, r5, 0 bl StringCopy _08017E94: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8017E00 thumb_func_start sub_8017EA0 sub_8017EA0: @ 8017EA0 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 adds r5, r2, 0 adds r6, r3, 0 movs r2, 0 mov r8, r2 ldrh r0, [r5] subs r0, 0x40 cmp r0, 0x8 bls _08017EBA b _08017FC6 _08017EBA: lsls r0, 2 ldr r1, =_08017EC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08017EC8: .4byte _08017FBC .4byte _08017EEC .4byte _08017FC6 .4byte _08017FC6 .4byte _08017EFC .4byte _08017EF4 .4byte _08017FC6 .4byte _08017FC6 .4byte _08017FAC _08017EEC: ldr r1, =gUnknown_082EE3DC b _08017FAE .pool _08017EF4: ldr r1, =gUnknown_082EE430 b _08017FAE .pool _08017EFC: adds r0, r6, 0 adds r0, 0x58 ldr r4, =gUnknown_02022C40 ldrh r1, [r4, 0xC] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r0, r6, 0 adds r0, 0x68 ldrh r2, [r4, 0xA] movs r1, 0xB muls r1, r2 ldr r2, =gSpeciesNames adds r1, r2 bl StringCopy movs r4, 0 b _08017F2E .pool _08017F2C: adds r4, 0x1 _08017F2E: cmp r4, 0x3 bgt _08017F64 ldr r0, =gUnknown_03007890 ldr r0, [r0] lsls r1, r4, 5 adds r0, r1 ldrh r0, [r0, 0x18] cmp r0, 0x2 bne _08017F2C ldrh r1, [r5, 0x4] adds r0, r6, 0 adds r0, 0x78 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldrh r1, [r5, 0x2] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r6, 0 adds r0, 0x88 bl StringCopy ldrh r5, [r5, 0x2] mov r8, r5 _08017F64: movs r0, 0xCE lsls r0, 1 cmp r8, r0 bne _08017F84 ldr r1, =gUnknown_082EE4F0 adds r0, r7, 0 bl StringCopy b _08017FB4 .pool _08017F84: movs r4, 0 adds r5, r6, 0 adds r5, 0x58 _08017F8A: lsls r0, r4, 24 lsrs r0, 24 adds r1, r5, 0 bl sub_81AFC0C adds r5, 0x10 adds r4, 0x1 cmp r4, 0x3 ble _08017F8A ldr r1, =gUnknown_082EE47C adds r0, r7, 0 bl sub_81AFC28 b _08017FB4 .pool _08017FAC: ldr r1, =gUnknown_082EE380 _08017FAE: adds r0, r7, 0 bl StringExpandPlaceholders _08017FB4: movs r2, 0x1 b _08017FC6 .pool _08017FBC: ldr r1, =gUnknown_082EE544 adds r0, r7, 0 bl StringExpandPlaceholders movs r2, 0x2 _08017FC6: adds r0, r2, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8017EA0 thumb_func_start sub_8017FD8 sub_8017FD8: @ 8017FD8 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_03003090 ldrh r1, [r0, 0x2] cmp r1, 0 beq _08017FFC cmp r1, 0x51 beq _08017FEC cmp r1, 0x52 bne _08017FFC _08017FEC: adds r0, r2, 0 adds r0, 0x98 strh r1, [r0] movs r0, 0x1 b _08017FFE .pool _08017FFC: movs r0, 0 _08017FFE: pop {r1} bx r1 thumb_func_end sub_8017FD8 thumb_func_start InUnionRoom InUnionRoom: @ 8018004 push {lr} movs r2, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x00003c19 cmp r1, r0 bne _08018016 movs r2, 0x1 _08018016: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end InUnionRoom thumb_func_start sub_8018024 sub_8018024: @ 8018024 push {r4-r6,lr} movs r6, 0 movs r5, 0 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r6, r0 bge _08018064 _08018032: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x38 bl GetMonData cmp r0, 0x1E bhi _0801805A adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _0801805A adds r6, 0x1 _0801805A: adds r5, 0x1 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _08018032 _08018064: cmp r6, 0x1 bgt _08018074 movs r0, 0 b _08018076 .pool _08018074: movs r0, 0x1 _08018076: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8018024 thumb_func_start sub_801807C sub_801807C: @ 801807C movs r1, 0 strh r1, [r0] strh r1, [r0, 0x2] str r1, [r0, 0x4] strh r1, [r0, 0xA] strh r1, [r0, 0xC] strh r1, [r0, 0xE] strh r1, [r0, 0x10] str r1, [r0, 0x14] bx lr thumb_func_end sub_801807C thumb_func_start sub_8018090 sub_8018090: @ 8018090 push {lr} ldr r0, =gUnknown_02022C40 bl sub_801807C pop {r0} bx r0 .pool thumb_func_end sub_8018090 thumb_func_start sub_80180A0 sub_80180A0: @ 80180A0 push {r4,r5,lr} adds r5, r1, 0 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData strh r0, [r5, 0xA] adds r0, r4, 0 movs r1, 0x38 bl GetMonData strh r0, [r5, 0xC] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [r5, 0x4] ldrh r1, [r5, 0xA] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _080180E0 movs r0, 0 b _080180E2 .pool _080180E0: movs r0, 0x1 _080180E2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80180A0 thumb_func_start sub_80180E8 sub_80180E8: @ 80180E8 push {r4,r5,lr} adds r5, r1, 0 movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData strh r0, [r5, 0xE] adds r0, r4, 0 movs r1, 0x38 bl GetMonData strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [r5, 0x14] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80180E8 thumb_func_start sub_8018120 sub_8018120: @ 8018120 push {r4-r7,lr} mov r7, r8 push {r7} lsls r1, 24 movs r2, 0 mov r8, r2 cmp r1, 0 bne _0801813E ldrh r7, [r0, 0xA] ldr r6, [r0, 0x4] b _08018142 _08018136: lsls r0, r5, 16 lsrs r0, 16 mov r8, r0 b _08018176 _0801813E: ldrh r7, [r0, 0xE] ldr r6, [r0, 0x14] _08018142: movs r5, 0 b _0801816E _08018146: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0 bl GetMonData cmp r0, r6 bne _0801816C adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, r7 beq _08018136 _0801816C: adds r5, 0x1 _0801816E: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r5, r0 blt _08018146 _08018176: mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8018120 thumb_func_start sub_801818C sub_801818C: @ 801818C push {r4,lr} adds r4, r0, 0 bl sub_80173B0 bl ScriptContext2_Disable bl sub_8098524 ldr r1, =gUnknown_02022C2C movs r0, 0 strb r0, [r1] cmp r4, 0 beq _080181BC ldr r2, =gUnknown_02022C40 ldrh r0, [r2, 0x2] ldrh r1, [r2, 0xA] ldrh r2, [r2, 0xC] bl sub_8010FCC movs r0, 0x40 movs r1, 0 movs r2, 0 bl sub_8011090 _080181BC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801818C thumb_func_start sub_80181CC sub_80181CC: @ 80181CC push {lr} bl ScriptContext2_Enable bl ScriptFreezeMapObjects pop {r0} bx r0 thumb_func_end sub_80181CC thumb_func_start sub_80181DC sub_80181DC: @ 80181DC push {r4,lr} movs r3, 0x80 movs r2, 0 ldr r4, [r0, 0xC] _080181E4: lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r1, r4, r0 ldrb r0, [r1, 0x18] lsls r0, 31 cmp r0, 0 beq _0801820C ldrb r0, [r1, 0xB] lsls r0, 31 lsrs r0, 31 lsls r0, 3 orrs r3, r0 ldrb r1, [r1, 0x2] movs r0, 0x7 ands r0, r1 orrs r3, r0 lsls r0, r3, 24 lsrs r3, r0, 24 b _08018216 _0801820C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080181E4 _08018216: adds r0, r3, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_80181DC thumb_func_start sub_8018220 sub_8018220: @ 8018220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp] bl GetMultiplayerId movs r1, 0x1 eors r0, r1 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, =gUnknown_02039B58 adds r1, r0 mov r8, r1 bl sub_81AFBF0 mov r6, r9 adds r6, 0xC0 bl sub_8068BB0 lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, =gTrainerClassNames adds r1, r0 adds r0, r6, 0 bl StringCopy movs r0, 0 adds r1, r6, 0 bl sub_81AFC0C mov r1, r8 adds r1, 0x30 movs r0, 0x1 bl sub_81AFC0C movs r4, 0xBA lsls r4, 1 add r4, r9 ldr r1, =gUnknown_082EFF50 mov r2, r8 ldrb r0, [r2, 0x1] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringCopy movs r0, 0x2 adds r1, r4, 0 bl sub_81AFC0C mov r5, r9 adds r5, 0xDE mov r0, r8 ldrh r1, [r0, 0xC] adds r0, r5, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 bl sub_81AFC0C movs r2, 0xED add r2, r9 mov r10, r2 mov r0, r8 ldrh r1, [r0, 0x10] mov r0, r10 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r4, r9 adds r4, 0xFC mov r2, r8 ldrh r1, [r2, 0x12] adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN movs r0, 0x4 mov r1, r10 bl sub_81AFC0C movs r0, 0x5 adds r1, r4, 0 bl sub_81AFC0C movs r4, 0xD2 lsls r4, 1 add r4, r9 ldr r1, =gUnknown_082EFF64 adds r0, r4, 0 bl sub_81AFC28 ldr r0, =gStringVar4 adds r1, r4, 0 bl StringCopy mov r0, r8 ldrh r1, [r0, 0x14] ldr r4, =0x0000270f cmp r1, r4 ble _0801830C adds r1, r4, 0 _0801830C: adds r0, r6, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN movs r0, 0 adds r1, r6, 0 bl sub_81AFC0C mov r2, r8 ldrh r1, [r2, 0x16] cmp r1, r4 ble _08018328 adds r1, r4, 0 _08018328: mov r4, r9 adds r4, 0xCF adds r0, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN movs r0, 0x2 adds r1, r4, 0 bl sub_81AFC0C mov r0, r8 ldrh r1, [r0, 0x20] adds r0, r5, 0 movs r2, 0 movs r3, 0x5 bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 bl sub_81AFC0C movs r7, 0 movs r6, 0x80 lsls r6, 19 mov r5, r8 adds r5, 0x28 mov r4, r10 _08018360: ldrh r1, [r5] adds r0, r4, 0 bl CopyEasyChatWord lsrs r0, r6, 24 adds r1, r4, 0 bl sub_81AFC0C movs r2, 0x80 lsls r2, 17 adds r6, r2 adds r5, 0x2 adds r4, 0xF adds r7, 0x1 cmp r7, 0x3 ble _08018360 movs r4, 0xD2 lsls r4, 1 add r4, r9 ldr r1, =gUnknown_082EFFA4 adds r0, r4, 0 bl sub_81AFC28 ldr r5, =gStringVar4 adds r0, r5, 0 adds r1, r4, 0 bl StringAppend ldr r0, [sp] cmp r0, 0x1 bne _080183D0 ldr r1, =gUnknown_082F0020 adds r0, r4, 0 bl sub_81AFC28 adds r0, r5, 0 adds r1, r4, 0 bl StringAppend b _080183F0 .pool _080183D0: ldr r2, [sp] cmp r2, 0 bne _080183F0 ldr r0, =gUnknown_082F0018 mov r2, r8 ldrb r1, [r2] lsls r1, 2 adds r1, r0 ldr r1, [r1] adds r0, r4, 0 bl sub_81AFC28 adds r0, r5, 0 adds r1, r4, 0 bl StringAppend _080183F0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8018220 thumb_func_start sub_8018404 sub_8018404: @ 8018404 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r1, 0x10 bl StringCopy7 ldrb r1, [r4] lsls r1, 28 lsrs r1, 28 adds r0, r5, 0 bl ConvertInternationalString pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8018404 thumb_func_start sub_8018424 sub_8018424: @ 8018424 push {lr} bl ProcessSpriteCopyRequests bl LoadOam bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8018424 thumb_func_start sub_8018438 sub_8018438: @ 8018438 push {lr} bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_8018438 thumb_func_start sub_8018450 sub_8018450: @ 8018450 push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r6, r0, r1 ldrb r0, [r6] cmp r0, 0x1 bne _08018466 b _08018574 _08018466: cmp r0, 0x1 bgt _08018474 cmp r0, 0 beq _08018482 b _08018644 .pool _08018474: cmp r0, 0x2 bne _0801847A b _080185F8 _0801847A: cmp r0, 0x3 bne _08018480 b _08018618 _08018480: b _08018644 _08018482: movs r0, 0 bl SetVBlankCallback bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks bl remove_some_task movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F0598 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 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0x2 bl SetBgTilemapBuffer adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x3 bl bgid_upload_textbox_1 ldr r0, =gUnknown_082F05A8 bl InitWindows bl DeactivateAllTextPrinters movs r1, 0xC0 lsls r1, 7 movs r0, 0 bl ClearGpuRegBits movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg b _08018610 .pool _08018574: ldr r0, =gUnkTextboxBorderPal movs r1, 0 movs r2, 0x20 bl LoadPalette movs r0, 0x2 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette movs r0, 0xC0 bl sub_81978B0 movs r0, 0 movs r1, 0xA movs r2, 0xE0 bl sub_809882C movs r0, 0 movs r1, 0x1 movs r2, 0xF0 bl box_border_load_tiles_and_pal movs r4, 0x20 str r4, [sp] str r4, [sp, 0x4] movs r5, 0x11 str r5, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0x3 bl sub_8018798 lsls r0, r7, 24 lsrs r0, 24 movs r1, 0 bl sub_80186EC b _08018610 .pool _080185F8: movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0 bl CopyBgTilemapBufferToVram _08018610: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _08018644 _08018618: movs r0, 0 bl ShowBg movs r0, 0x3 bl ShowBg ldr r0, =0x0000021d bl PlayBGM ldr r0, =sub_8018424 bl SetVBlankCallback movs r0, 0xC5 bl EnableInterrupts movs r0, 0x1 b _08018646 .pool _08018644: movs r0, 0 _08018646: add sp, 0xC pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8018450 thumb_func_start c2_mystery_gift c2_mystery_gift: @ 8018650 push {lr} movs r0, 0 bl sub_8018450 cmp r0, 0 beq _0801866C ldr r0, =sub_8018438 bl SetMainCallback2 ldr r1, =gUnknown_02022C60 movs r0, 0 strb r0, [r1] bl task_add_00_mystery_gift _0801866C: bl RunTasks pop {r0} bx r0 .pool thumb_func_end c2_mystery_gift thumb_func_start sub_801867C sub_801867C: @ 801867C push {lr} movs r0, 0x1 bl sub_8018450 cmp r0, 0 beq _08018698 ldr r0, =sub_8018438 bl SetMainCallback2 ldr r1, =gUnknown_02022C60 movs r0, 0x1 strb r0, [r1] bl sub_81D5014 _08018698: pop {r0} bx r0 .pool thumb_func_end sub_801867C thumb_func_start sub_80186A4 sub_80186A4: @ 80186A4 push {lr} ldr r1, =gUnknown_02022C60 movs r0, 0 strb r0, [r1] bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer bl Free movs r0, 0x1 bl GetBgTilemapBuffer bl Free movs r0, 0x2 bl GetBgTilemapBuffer bl Free movs r0, 0x3 bl GetBgTilemapBuffer bl Free ldr r0, =c2_title_screen_1 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_80186A4 thumb_func_start sub_80186EC sub_80186EC: @ 80186EC push {r4-r7,lr} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer cmp r4, 0 bne _0801871C ldr r0, =gText_MysteryGift ldr r7, =gText_PickOKCancel cmp r5, 0 bne _08018720 ldr r7, =gText_PickOKExit b _08018720 .pool _0801871C: ldr r0, =gJPText_MysteryGift ldr r7, =gJPText_DecideStop _08018720: movs r4, 0 str r4, [sp] str r4, [sp, 0x4] ldr r6, =gUnknown_082F0720 str r6, [sp, 0x8] movs r5, 0x1 negs r5, r5 str r5, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0 movs r1, 0x1 movs r2, 0x4 movs r3, 0x1 bl AddTextPrinterParametrized2 movs r0, 0 adds r1, r7, 0 movs r2, 0xDE bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] str r5, [sp, 0xC] str r7, [sp, 0x10] movs r0, 0 movs r1, 0 movs r3, 0x1 bl AddTextPrinterParametrized2 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl PutWindowTilemap add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80186EC thumb_func_start sub_8018784 sub_8018784: @ 8018784 push {lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x1 movs r2, 0xF bl sub_8098858 pop {r0} bx r0 thumb_func_end sub_8018784 thumb_func_start sub_8018798 sub_8018798: @ 8018798 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 movs r0, 0 mov r9, r0 lsls r4, 24 lsrs r0, r4, 24 movs r1, 0x20 str r1, [sp] movs r1, 0x2 str r1, [sp, 0x4] movs r1, 0x11 str r1, [sp, 0x8] movs r1, 0x3 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect mov r8, r4 movs r4, 0x1 _080187C8: movs r7, 0 mov r0, r9 adds r0, 0x2 movs r1, 0x1 add r1, r9 mov r10, r1 lsls r5, r0, 24 movs r6, 0 _080187D8: mov r1, r9 ands r1, r4 adds r0, r7, 0 ands r0, r4 cmp r1, r0 beq _080187FC lsrs r2, r6, 24 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] mov r1, r8 lsrs r0, r1, 24 movs r1, 0x1 lsrs r3, r5, 24 bl FillBgTilemapBufferRect b _08018812 _080187FC: lsrs r2, r6, 24 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] mov r1, r8 lsrs r0, r1, 24 movs r1, 0x2 lsrs r3, r5, 24 bl FillBgTilemapBufferRect _08018812: movs r0, 0x80 lsls r0, 17 adds r6, r0 adds r7, 0x1 cmp r7, 0x1F ble _080187D8 mov r9, r10 mov r1, r9 cmp r1, 0x11 ble _080187C8 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8018798 thumb_func_start sub_8018838 sub_8018838: @ 8018838 push {lr} sub sp, 0xC cmp r0, 0 beq _08018846 cmp r0, 0x1 beq _0801885E b _08018876 _08018846: movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect b _08018876 _0801885E: movs r0, 0x20 str r0, [sp] movs r0, 0x1E str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x2 bl FillBgTilemapBufferRect _08018876: movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0xC pop {r0} bx r0 thumb_func_end sub_8018838 thumb_func_start sub_8018884 sub_8018884: @ 8018884 push {r4,lr} sub sp, 0x14 adds r1, r0, 0 ldr r4, =gStringVar4 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer movs r1, 0 str r1, [sp] str r1, [sp, 0x4] ldr r0, =gUnknown_082F0728 str r0, [sp, 0x8] str r1, [sp, 0xC] str r4, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0x1 bl AddTextPrinterParametrized2 movs r0, 0x1 movs r1, 0x1 movs r2, 0xF bl sub_8098858 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram add sp, 0x14 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8018884 thumb_func_start sub_80188DC sub_80188DC: @ 80188DC push {lr} movs r0, 0x1 bl rbox_fill_rectangle movs r0, 0x1 bl ClearWindowTilemap movs r0, 0x1 movs r1, 0x1 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_80188DC thumb_func_start mevent_0814257C mevent_0814257C: @ 80188F8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 adds r0, r1, 0 ldrb r2, [r4] cmp r2, 0x1 beq _08018920 cmp r2, 0x1 bgt _08018910 cmp r2, 0 beq _0801891A b _08018980 _08018910: cmp r2, 0x2 beq _08018954 cmp r2, 0xFF beq _0801897C b _08018980 _0801891A: bl sub_8018884 b _08018944 _08018920: movs r0, 0 str r0, [sp] ldr r0, =gUnknown_02022C58 str r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0xD0 movs r2, 0x14 movs r3, 0x1 bl DrawDownArrow ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08018980 _08018944: ldrb r0, [r4] adds r0, 0x1 b _0801897E .pool _08018954: movs r0, 0x1 str r0, [sp] ldr r0, =gUnknown_02022C58 str r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0xD0 movs r2, 0x14 movs r3, 0x1 bl DrawDownArrow movs r0, 0 strb r0, [r4] bl sub_80188DC movs r0, 0x1 b _08018982 .pool _0801897C: movs r0, 0x2 _0801897E: strb r0, [r4] _08018980: movs r0, 0 _08018982: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end mevent_0814257C thumb_func_start sub_801898C sub_801898C: @ 801898C push {lr} sub sp, 0xC movs r0, 0 str r0, [sp] ldr r0, =gUnknown_02022C58 str r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0xD0 movs r2, 0x14 movs r3, 0x1 bl DrawDownArrow add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_801898C thumb_func_start sub_80189B4 sub_80189B4: @ 80189B4 push {lr} sub sp, 0xC movs r0, 0x1 str r0, [sp] ldr r0, =gUnknown_02022C58 str r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0xD0 movs r2, 0x14 movs r3, 0x1 bl DrawDownArrow add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_80189B4 thumb_func_start sub_80189DC sub_80189DC: @ 80189DC push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _080189EC cmp r0, 0x1 beq _08018A08 b _08018A14 _080189EC: bl sub_801898C ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08018A14 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08018A14 .pool _08018A08: bl sub_80189B4 movs r0, 0 strb r0, [r4] movs r0, 0x1 b _08018A16 _08018A14: movs r0, 0 _08018A16: pop {r4} pop {r1} bx r1 thumb_func_end sub_80189DC thumb_func_start sub_8018A1C sub_8018A1C: @ 8018A1C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 bne _08018A2C adds r0, r1, 0 bl sub_8018884 _08018A2C: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0x78 bhi _08018A3E movs r0, 0 b _08018A48 _08018A3E: movs r0, 0 strb r0, [r4] bl sub_80188DC movs r0, 0x1 _08018A48: pop {r4} pop {r1} bx r1 thumb_func_end sub_8018A1C thumb_func_start sub_8018A50 sub_8018A50: @ 8018A50 push {r4,r5,lr} sub sp, 0x24 lsls r2, 24 add r1, sp, 0x4 ldr r0, =gUnknown_082F0638 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, =gUnknown_082F05E0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x1C] str r1, [sp, 0x20] cmp r2, 0 bne _08018A80 ldr r0, =gUnknown_082F0608 b _08018A82 .pool _08018A80: ldr r0, =gUnknown_082F0620 _08018A82: str r0, [sp, 0x4] add r0, sp, 0x4 bl sub_81DB41C adds r3, r0, 0 movs r0, 0x1 ands r0, r3 cmp r0, 0 beq _08018A96 adds r3, 0x1 _08018A96: lsls r1, r3, 24 ldr r0, =0x00ffffff ldr r2, [sp, 0x1C] ands r2, r0 orrs r2, r1 str r2, [sp, 0x1C] cmp r3, 0x1D bgt _08018ACC movs r0, 0x1E subs r0, r3 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 24 lsrs r0, 16 ldr r1, =0xffff00ff ands r1, r2 orrs r1, r0 str r1, [sp, 0x1C] b _08018AD2 .pool _08018ACC: ldr r0, =0xffff00ff ands r2, r0 str r2, [sp, 0x1C] _08018AD2: add r0, sp, 0x1C movs r1, 0xE0 str r1, [sp] add r1, sp, 0x4 movs r2, 0x1 movs r3, 0xA bl DoMysteryGiftListMenu adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08018AFA movs r0, 0x2 bl ClearWindowTilemap movs r0, 0x2 movs r1, 0x1 bl CopyWindowToVram _08018AFA: adds r0, r4, 0 add sp, 0x24 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8018A50 thumb_func_start sub_8018B08 sub_8018B08: @ 8018B08 push {r4-r6,lr} sub sp, 0x1C adds r5, r0, 0 adds r4, r1, 0 adds r1, r3, 0 lsls r2, 24 lsrs r6, r2, 24 ldrb r0, [r5] cmp r0, 0x1 beq _08018B98 cmp r0, 0x1 bgt _08018B26 cmp r0, 0 beq _08018B30 b _08018C3E _08018B26: cmp r0, 0x2 beq _08018BE4 cmp r0, 0xFF beq _08018C1A b _08018C3E _08018B30: ldr r0, =gStringVar4 bl StringExpandPlaceholders cmp r6, 0 bne _08018B48 ldr r0, =gUnknown_082F05C8 b _08018B4A .pool _08018B48: ldr r0, =gUnknown_082F05D0 _08018B4A: bl AddWindow strh r0, [r4] ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer ldrb r0, [r4] movs r2, 0 str r2, [sp] str r2, [sp, 0x4] ldr r1, =gUnknown_082F0728 str r1, [sp, 0x8] str r2, [sp, 0xC] ldr r1, =gStringVar4 str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x1 bl AddTextPrinterParametrized2 ldrb r0, [r4] movs r1, 0x1 movs r2, 0xF bl sub_8098858 ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r4] bl PutWindowTilemap b _08018BD6 .pool _08018B98: ldr r0, =gUnknown_082F05E8 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x14] str r1, [sp, 0x18] cmp r6, 0 bne _08018BBC ldr r0, =0xff00ffff ldr r1, [sp, 0x14] ands r1, r0 movs r0, 0x90 lsls r0, 12 b _08018BC6 .pool _08018BBC: ldr r0, =0xff00ffff ldr r1, [sp, 0x14] ands r1, r0 movs r0, 0xF0 lsls r0, 12 _08018BC6: orrs r1, r0 str r1, [sp, 0x14] add r0, sp, 0x14 movs r1, 0xA movs r2, 0xE movs r3, 0 bl CreateYesNoMenu _08018BD6: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08018C3E .pool _08018BE4: bl sub_8198C58 lsls r0, 24 asrs r6, r0, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r0, 24 cmp r0, 0x2 bhi _08018C3E movs r0, 0 strb r0, [r5] ldrb r0, [r4] bl rbox_fill_rectangle ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r4] bl RemoveWindow adds r0, r6, 0 b _08018C42 _08018C1A: movs r0, 0 strb r0, [r5] ldrb r0, [r4] bl rbox_fill_rectangle ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r4] bl RemoveWindow movs r0, 0x1 negs r0, r0 b _08018C42 _08018C3E: movs r0, 0x2 negs r0, r0 _08018C42: add sp, 0x1C pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8018B08 thumb_func_start sub_8018C4C sub_8018C4C: @ 8018C4C push {r4-r6,lr} sub sp, 0x14 adds r6, r0, 0 adds r5, r1, 0 ldrb r0, [r6] cmp r0, 0x1 beq _08018CE8 cmp r0, 0x1 bgt _08018C64 cmp r0, 0 beq _08018C6C b _08018D8C _08018C64: cmp r0, 0xFF bne _08018C6A b _08018D68 _08018C6A: b _08018D8C _08018C6C: cmp r2, 0 bne _08018C84 ldr r0, =gStringVar4 ldr r1, =gText_WhatToDoWithCards bl StringExpandPlaceholders b _08018C8C .pool _08018C84: ldr r0, =gStringVar4 ldr r1, =gText_WhatToDoWithNews bl StringExpandPlaceholders _08018C8C: ldr r0, =gUnknown_082F05D8 bl AddWindow strh r0, [r5] lsls r0, 24 lsrs r0, 24 movs r1, 0x11 bl FillWindowPixelBuffer ldrb r0, [r5] movs r2, 0 str r2, [sp] str r2, [sp, 0x4] ldr r1, =gUnknown_082F0728 str r1, [sp, 0x8] str r2, [sp, 0xC] ldr r1, =gStringVar4 str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0x1 bl AddTextPrinterParametrized2 ldrb r0, [r5] movs r1, 0x1 movs r2, 0xF bl sub_8098858 ldrb r0, [r5] movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _08018D8C .pool _08018CE8: cmp r3, 0 beq _08018D10 cmp r2, 0 bne _08018D00 ldr r0, =gUnknown_082F05F8 ldr r1, =gUnknown_082F06C8 b _08018D28 .pool _08018D00: ldr r0, =gUnknown_082F0600 ldr r1, =gUnknown_082F06F8 b _08018D28 .pool _08018D10: cmp r2, 0 bne _08018D24 ldr r0, =gUnknown_082F05F0 ldr r1, =gUnknown_082F06B0 b _08018D28 .pool _08018D24: ldr r0, =gUnknown_082F05F8 ldr r1, =gUnknown_082F06E0 _08018D28: movs r2, 0xE0 str r2, [sp] movs r2, 0x1 movs r3, 0xA bl DoMysteryGiftListMenu adds r4, r0, 0 movs r0, 0x1 negs r0, r0 cmp r4, r0 beq _08018D8C movs r0, 0 strb r0, [r6] ldrb r0, [r5] bl rbox_fill_rectangle ldrb r0, [r5] bl ClearWindowTilemap ldrb r0, [r5] movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r5] bl RemoveWindow adds r0, r4, 0 b _08018D90 .pool _08018D68: movs r0, 0 strb r0, [r6] ldrb r0, [r5] bl rbox_fill_rectangle ldrb r0, [r5] bl ClearWindowTilemap ldrb r0, [r5] movs r1, 0x1 bl CopyWindowToVram ldrb r0, [r5] bl RemoveWindow movs r0, 0x2 negs r0, r0 b _08018D90 _08018D8C: movs r0, 0x1 negs r0, r0 _08018D90: add sp, 0x14 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8018C4C thumb_func_start sub_8018D98 sub_8018D98: @ 8018D98 push {lr} cmp r0, 0 beq _08018DA4 bl sub_801B0CC b _08018DA8 _08018DA4: bl sub_801B27C _08018DA8: pop {r1} bx r1 thumb_func_end sub_8018D98 thumb_func_start sub_8018DAC sub_8018DAC: @ 8018DAC push {r4,r5,lr} adds r5, r0, 0 ldrb r0, [r5] cmp r0, 0 beq _08018DBC cmp r0, 0x1 beq _08018DE4 b _08018E00 _08018DBC: cmp r1, 0 bne _08018DD4 bl sav1_get_mevent_buffer_1 adds r4, r0, 0 bl sav1_get_mevent_buffer_2 adds r1, r0, 0 adds r0, r4, 0 bl sub_801BAAC b _08018DDC _08018DD4: bl sub_801B00C bl sub_801C6C8 _08018DDC: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08018E00 _08018DE4: cmp r1, 0 bne _08018DF2 bl sub_801BB74 _08018DEC: cmp r0, 0 bne _08018DF8 b _08018E00 _08018DF2: bl sub_801C758 b _08018DEC _08018DF8: movs r0, 0 strb r0, [r5] movs r0, 0x1 b _08018E02 _08018E00: movs r0, 0 _08018E02: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8018DAC thumb_func_start sub_8018E08 sub_8018E08: @ 8018E08 push {lr} cmp r0, 0 bne _08018E14 bl sub_801B1E8 b _08018E18 _08018E14: bl sub_801B06C _08018E18: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_8018E08 thumb_func_start sub_8018E20 sub_8018E20: @ 8018E20 push {lr} cmp r0, 0 bne _08018E36 adds r0, r1, 0 bl sub_801BDA4 cmp r0, 0 beq _08018E40 bl sub_801BB48 b _08018E48 _08018E36: adds r0, r1, 0 bl sub_801CA50 cmp r0, 0 bne _08018E44 _08018E40: movs r0, 0 b _08018E4A _08018E44: bl sub_801C72C _08018E48: movs r0, 0x1 _08018E4A: pop {r1} bx r1 thumb_func_end sub_8018E20 thumb_func_start sub_8018E50 sub_8018E50: @ 8018E50 push {lr} cmp r2, 0 beq _08018E60 ldr r3, =gText_OkayToDiscardNews b _08018E62 .pool _08018E60: ldr r3, =gText_IfThrowAwayCardEventWontHappen _08018E62: movs r2, 0x1 bl sub_8018B08 lsls r0, 24 asrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8018E50 thumb_func_start mevent_message_was_thrown_away mevent_message_was_thrown_away: @ 8018E74 push {lr} cmp r1, 0 beq _08018E84 ldr r1, =gText_WonderNewsThrownAway b _08018E86 .pool _08018E84: ldr r1, =gText_WonderCardThrownAway _08018E86: bl mevent_0814257C pop {r1} bx r1 .pool thumb_func_end mevent_message_was_thrown_away thumb_func_start mevent_save_game mevent_save_game: @ 8018E94 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x4 bhi _08018F04 lsls r0, 2 ldr r1, =_08018EAC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08018EAC: .4byte _08018EC0 .4byte _08018ECC .4byte _08018ED4 .4byte _08018EE0 .4byte _08018EF8 _08018EC0: ldr r0, =gText_DataWillBeSaved bl sub_8018884 b _08018EEC .pool _08018ECC: movs r0, 0 bl TrySavingData b _08018EEC _08018ED4: ldr r0, =gText_SaveCompletedPressA bl sub_8018884 b _08018EEC .pool _08018EE0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08018F04 _08018EEC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _08018F04 .pool _08018EF8: movs r0, 0 strb r0, [r4] bl sub_80188DC movs r0, 0x1 b _08018F06 _08018F04: movs r0, 0 _08018F06: pop {r4} pop {r1} bx r1 thumb_func_end mevent_save_game thumb_func_start mevent_message mevent_message: @ 8018F0C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 movs r2, 0 str r2, [r4] cmp r3, 0xE bls _08018F22 b _08019034 _08018F22: lsls r0, r3, 2 ldr r1, =_08018F30 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08018F30: .4byte _08018F6C .4byte _08018F78 .4byte _08018F84 .4byte _08018F9C .4byte _08018FB4 .4byte _08018FC0 .4byte _08018FCC .4byte _08018FD8 .4byte _08018FE4 .4byte _08018FF0 .4byte _08018FFC .4byte _08019014 .4byte _08019020 .4byte _0801902C .4byte _08019030 _08018F6C: movs r0, 0 str r0, [r4] ldr r2, =gText_NothingSentOver b _08019034 .pool _08018F78: movs r0, 0 str r0, [r4] ldr r2, =gText_RecordUploadedViaWireless b _08019034 .pool _08018F84: movs r0, 0x1 str r0, [r4] ldr r2, =gText_WonderCardReceivedFrom cmp r5, 0 bne _08019034 ldr r2, =gText_WonderCardReceived b _08019034 .pool _08018F9C: movs r0, 0x1 str r0, [r4] ldr r2, =gText_WonderNewsReceivedFrom cmp r5, 0 bne _08019034 ldr r2, =gText_WonderNewsReceived b _08019034 .pool _08018FB4: movs r0, 0x1 str r0, [r4] ldr r2, =gText_NewStampReceived b _08019034 .pool _08018FC0: movs r0, 0 str r0, [r4] ldr r2, =gText_AlreadyHadCard b _08019034 .pool _08018FCC: movs r0, 0 str r0, [r4] ldr r2, =gText_AlreadyHadStamp b _08019034 .pool _08018FD8: movs r0, 0 str r0, [r4] ldr r2, =gText_AlreadyHadNews b _08019034 .pool _08018FE4: movs r0, 0 str r0, [r4] ldr r2, =gText_NoMoreRoomForStamps b _08019034 .pool _08018FF0: movs r0, 0 str r0, [r4] ldr r2, =gText_CommunicationCanceled b _08019034 .pool _08018FFC: movs r0, 0 str r0, [r4] ldr r2, =gText_CantAcceptNewsFromTrainer cmp r6, 0 bne _08019034 ldr r2, =gText_CantAcceptCardFromTrainer b _08019034 .pool _08019014: movs r0, 0 str r0, [r4] ldr r2, =gText_CommunicationError b _08019034 .pool _08019020: movs r0, 0x1 str r0, [r4] ldr r2, =gText_NewTrainerReceived b _08019034 .pool _0801902C: movs r0, 0x1 b _08019032 _08019030: movs r0, 0 _08019032: str r0, [r4] _08019034: adds r0, r2, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end mevent_message thumb_func_start mevent_08142CE8 mevent_08142CE8: @ 801903C push {r4-r6,lr} adds r6, r0, 0 adds r0, r1, 0 adds r5, r2, 0 ldrb r4, [r6] cmp r4, 0x1 beq _0801906E cmp r4, 0x1 bgt _08019054 cmp r4, 0 beq _0801905A b _0801909A _08019054: cmp r4, 0x2 beq _08019084 b _0801909A _0801905A: cmp r0, 0 beq _08019062 bl sub_8018884 _08019062: movs r0, 0xB9 lsls r0, 1 bl PlayFanfare strh r4, [r5] b _0801907C _0801906E: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r0, 0xF0 bls _0801909A _0801907C: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _0801909A _08019084: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0801909A movs r0, 0 strb r0, [r6] bl sub_80188DC movs r0, 0x1 b _0801909C _0801909A: movs r0, 0 _0801909C: pop {r4-r6} pop {r1} bx r1 thumb_func_end mevent_08142CE8 thumb_func_start mevent_message_stamp_card_etc_send_status mevent_message_stamp_card_etc_send_status: @ 80190A4 push {r4,lr} adds r3, r0, 0 ldr r1, =gText_CommunicationError movs r0, 0 str r0, [r3] adds r4, r1, 0 cmp r2, 0xE bhi _08019166 lsls r0, r2, 2 ldr r1, =_080190C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080190C8: .4byte _08019104 .4byte _0801910C .4byte _08019114 .4byte _0801911C .4byte _08019128 .4byte _08019130 .4byte _08019138 .4byte _08019140 .4byte _08019148 .4byte _08019150 .4byte _08019164 .4byte _08019158 .4byte _0801915C .4byte _0801915C .4byte _08019164 _08019104: ldr r1, =gText_NothingSentOver b _08019166 .pool _0801910C: ldr r1, =gText_RecordUploadedViaWireless b _08019166 .pool _08019114: ldr r1, =gText_WonderCardSentTo b _0801911E .pool _0801911C: ldr r1, =gText_WonderNewsSentTo _0801911E: movs r0, 0x1 str r0, [r3] b _08019166 .pool _08019128: ldr r1, =gText_StampSentTo b _08019166 .pool _08019130: ldr r1, =gText_OtherTrainerHasCard b _08019166 .pool _08019138: ldr r1, =gText_OtherTrainerHasStamp b _08019166 .pool _08019140: ldr r1, =gText_OtherTrainerHasNews b _08019166 .pool _08019148: ldr r1, =gText_NoMoreRoomForStamps b _08019166 .pool _08019150: ldr r1, =gText_OtherTrainerCanceled b _08019166 .pool _08019158: adds r1, r4, 0 b _08019166 _0801915C: ldr r1, =gText_GiftSentTo b _08019166 .pool _08019164: ldr r1, =gText_CantSendGiftToTrainer _08019166: adds r0, r1, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end mevent_message_stamp_card_etc_send_status thumb_func_start sub_8019174 sub_8019174: @ 8019174 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r1, r2, 0 adds r2, r3, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp bl mevent_message_stamp_card_etc_send_status adds r1, r0, 0 ldr r0, [sp] cmp r0, 0 bne _0801919A adds r0, r4, 0 bl mevent_0814257C b _080191A2 _0801919A: adds r0, r4, 0 adds r2, r5, 0 bl mevent_08142CE8 _080191A2: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8019174 thumb_func_start task_add_00_mystery_gift task_add_00_mystery_gift: @ 80191AC push {r4,lr} ldr r0, =task00_mystery_gift movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 movs r0, 0 strb r0, [r4, 0x8] strb r0, [r4, 0x9] strb r0, [r4, 0xA] strb r0, [r4, 0xB] strb r0, [r4, 0xC] strb r0, [r4, 0xD] movs r1, 0 strh r0, [r4] strh r0, [r4, 0x2] strh r0, [r4, 0x4] strh r0, [r4, 0x6] strb r1, [r4, 0xE] movs r0, 0x40 bl AllocZeroed str r0, [r4, 0x10] pop {r4} pop {r0} bx r0 .pool thumb_func_end task_add_00_mystery_gift thumb_func_start task00_mystery_gift task00_mystery_gift: @ 80191F4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldrb r0, [r5, 0x8] cmp r0, 0x25 bls _0801920E b _08019922 _0801920E: lsls r0, 2 ldr r1, =_08019220 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08019220: .4byte _080192B8 .4byte _080192BE .4byte _08019300 .4byte _08019338 .4byte _0801935C .4byte _080193AC .4byte _0801940C .4byte _08019444 .4byte _08019454 .4byte _080194CC .4byte _080194F0 .4byte _08019508 .4byte _08019538 .4byte _08019574 .4byte _0801958C .4byte _080195BC .4byte _080198EC .4byte _0801961A .4byte _0801962A .4byte _08019922 .4byte _0801963C .4byte _08019688 .4byte _080196FE .4byte _0801972E .4byte _08019764 .4byte _0801977E .4byte _08019792 .4byte _0801979E .4byte _080197B2 .4byte _080197C6 .4byte _080197F8 .4byte _0801982C .4byte _08019870 .4byte _08019884 .4byte _080198A0 .4byte _080198B8 .4byte _080198EC .4byte _0801990C _080192B8: movs r0, 0x1 strb r0, [r5, 0x8] b _08019922 _080192BE: adds r0, r5, 0 adds r0, 0x9 adds r1, r5, 0 movs r2, 0 bl sub_8018A50 adds r1, r0, 0 cmp r1, 0x1 beq _080192E8 cmp r1, 0x1 bcc _080192DE movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080192FA b _08019922 _080192DE: movs r0, 0 strb r0, [r5, 0xC] bl sub_801B27C b _080192EE _080192E8: strb r1, [r5, 0xC] bl sub_801B0CC _080192EE: cmp r0, 0x1 bne _080192F4 b _08019820 _080192F4: movs r0, 0x2 strb r0, [r5, 0x8] b _08019922 _080192FA: movs r0, 0x25 strb r0, [r5, 0x8] b _08019922 _08019300: ldrb r0, [r5, 0xC] cmp r0, 0 bne _08019314 adds r0, r5, 0 adds r0, 0x9 ldr r1, =gText_DontHaveCardNewOneInput b _0801931A .pool _08019314: adds r0, r5, 0 adds r0, 0x9 ldr r1, =gText_DontHaveNewsNewOneInput _0801931A: bl mevent_0814257C cmp r0, 0 bne _08019324 b _08019922 _08019324: movs r0, 0x3 strb r0, [r5, 0x8] movs r0, 0 movs r1, 0x1 bl sub_80186EC b _08019922 .pool _08019338: ldrb r0, [r5, 0xC] cmp r0, 0 bne _0801934C ldr r0, =gText_WhereShouldCardBeAccessed bl sub_8018884 b _08019352 .pool _0801934C: ldr r0, =gText_WhereShouldNewsBeAccessed bl sub_8018884 _08019352: movs r0, 0x4 strb r0, [r5, 0x8] b _08019922 .pool _0801935C: adds r0, r5, 0 adds r0, 0x9 adds r1, r5, 0 movs r2, 0x1 bl sub_8018A50 adds r4, r0, 0 cmp r4, 0x1 beq _0801938A cmp r4, 0x1 bcc _0801937C movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _08019396 b _08019922 _0801937C: bl sub_80188DC movs r1, 0 movs r0, 0x5 strb r0, [r5, 0x8] strb r1, [r5, 0xD] b _08019922 _0801938A: bl sub_80188DC movs r0, 0x5 strb r0, [r5, 0x8] strb r4, [r5, 0xD] b _08019922 _08019396: bl sub_80188DC ldrb r0, [r5, 0xC] bl sub_8018D98 cmp r0, 0 beq _080193A6 b _08019820 _080193A6: strb r0, [r5, 0x8] movs r0, 0 b _080198FE _080193AC: ldr r0, =gStringVar1 movs r1, 0xFF strb r1, [r0] ldr r0, =gStringVar2 strb r1, [r0] ldr r0, =gStringVar3 strb r1, [r0] ldrb r0, [r5, 0xC] cmp r0, 0 beq _080193D4 cmp r0, 0x1 beq _080193EE b _08019406 .pool _080193D4: ldrb r0, [r5, 0xD] cmp r0, 0x1 bne _080193E2 movs r0, 0x15 bl sub_8014EFC b _08019406 _080193E2: cmp r0, 0 bne _08019406 movs r0, 0x15 bl sub_80152A8 b _08019406 _080193EE: ldrb r0, [r5, 0xD] cmp r0, 0x1 bne _080193FC movs r0, 0x16 bl sub_8014EFC b _08019406 _080193FC: cmp r0, 0 bne _08019406 movs r0, 0x16 bl sub_80152A8 _08019406: movs r0, 0x6 strb r0, [r5, 0x8] b _08019922 _0801940C: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0801942C movs r0, 0x1 bl sub_8018838 movs r0, 0x7 strb r0, [r5, 0x8] ldrb r0, [r5, 0xC] bl sub_801D484 b _08019922 .pool _0801942C: ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x5 beq _08019436 b _08019922 _08019436: movs r0, 0x1 bl sub_8018838 b _080197C0 .pool _08019444: ldr r0, =gText_Communicating bl sub_8018884 movs r0, 0x8 strb r0, [r5, 0x8] b _08019922 .pool _08019454: adds r0, r5, 0 bl sub_801D4A8 subs r0, 0x2 cmp r0, 0x4 bls _08019462 b _08019922 _08019462: lsls r0, 2 ldr r1, =_08019470 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08019470: .4byte _080194AE .4byte _080194A8 .4byte _080194B4 .4byte _08019492 .4byte _08019484 _08019484: bl task_add_05_task_del_08FA224_when_no_RfuFunc ldrh r0, [r5] strb r0, [r5, 0xE] movs r0, 0xD strb r0, [r5, 0x8] b _08019922 _08019492: ldr r4, [r5, 0x10] bl sub_801D4F4 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x40 bl memcpy bl sub_801D4E4 b _08019922 _080194A8: movs r0, 0xA strb r0, [r5, 0x8] b _08019922 _080194AE: movs r0, 0x9 strb r0, [r5, 0x8] b _08019922 _080194B4: movs r0, 0xB strb r0, [r5, 0x8] ldr r0, =gStringVar1 ldr r1, =gLinkPlayers + 8 bl StringCopy b _08019922 .pool _080194CC: adds r4, r5, 0 adds r4, 0x9 bl sub_801D4F4 adds r3, r0, 0 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 bl sub_8018B08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0x1 beq _08019564 cmp r1, 0x1 bcs _08019552 movs r0, 0 b _08019566 _080194F0: adds r4, r5, 0 adds r4, 0x9 bl sub_801D4F4 adds r1, r0, 0 adds r0, r4, 0 bl mevent_0814257C cmp r0, 0 bne _08019506 b _08019922 _08019506: b _0801956A _08019508: adds r0, r5, 0 adds r0, 0x9 ldr r3, =gText_ThrowAwayWonderCard adds r1, r5, 0 movs r2, 0 bl sub_8018B08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0x1 beq _08019564 cmp r1, 0x1 bcs _08019552 bl sub_801B3F8 cmp r0, 0x1 bne _08019534 movs r0, 0xC strb r0, [r5, 0x8] b _08019922 .pool _08019534: movs r0, 0 b _08019566 _08019538: adds r0, r5, 0 adds r0, 0x9 ldr r3, =gText_HaventReceivedCardsGift adds r1, r5, 0 movs r2, 0 bl sub_8018B08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0x1 beq _08019564 cmp r1, 0x1 bcc _08019560 _08019552: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _08019564 b _08019922 .pool _08019560: movs r0, 0 b _08019566 _08019564: movs r0, 0x1 _08019566: bl sub_801D500 _0801956A: bl sub_801D4E4 movs r0, 0x7 strb r0, [r5, 0x8] b _08019922 _08019574: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0801957E b _08019922 _0801957E: bl sub_800E084 movs r0, 0xE strb r0, [r5, 0x8] b _08019922 .pool _0801958C: adds r0, r5, 0 adds r0, 0x9 ldr r1, =gText_CommunicationCompleted bl sub_8018A1C cmp r0, 0 bne _0801959C b _08019922 _0801959C: ldrb r0, [r5, 0xD] cmp r0, 0x1 bne _080195AA ldr r0, =gStringVar1 ldr r1, =gLinkPlayers + 8 bl StringCopy _080195AA: movs r0, 0xF strb r0, [r5, 0x8] b _08019922 .pool _080195BC: ldrb r1, [r5, 0xC] ldrb r2, [r5, 0xD] ldrb r3, [r5, 0xE] mov r0, sp bl mevent_message adds r1, r0, 0 cmp r1, 0 bne _080195D0 ldr r1, [r5, 0x10] _080195D0: ldr r0, [sp] cmp r0, 0 beq _080195E2 adds r0, r5, 0 adds r0, 0x9 adds r2, r5, 0 bl mevent_08142CE8 b _080195EA _080195E2: adds r0, r5, 0 adds r0, 0x9 bl mevent_0814257C _080195EA: adds r1, r0, 0 cmp r1, 0 bne _080195F2 b _08019922 _080195F2: ldrb r0, [r5, 0xE] cmp r0, 0x3 bne _0801960C ldrb r0, [r5, 0xD] cmp r0, 0x1 bne _08019606 movs r0, 0x1 bl sub_801DB68 b _0801960C _08019606: movs r0, 0x2 bl sub_801DB68 _0801960C: ldr r0, [sp] cmp r0, 0 beq _08019614 b _080198DC _08019614: strb r0, [r5, 0x8] movs r0, 0 b _080198FE _0801961A: adds r0, r5, 0 adds r0, 0x9 bl mevent_save_game cmp r0, 0 bne _08019628 b _08019922 _08019628: b _08019820 _0801962A: adds r0, r5, 0 adds r0, 0x9 ldrb r1, [r5, 0xC] bl sub_8018DAC cmp r0, 0 bne _0801963A b _08019922 _0801963A: b _080196F8 _0801963C: ldrb r0, [r5, 0xC] cmp r0, 0 bne _08019664 ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08019652 movs r0, 0x15 strb r0, [r5, 0x8] _08019652: ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0801965E b _08019922 _0801965E: b _08019682 .pool _08019664: ldr r0, =gMain ldrh r0, [r0, 0x2E] bl sub_801CCD0 cmp r0, 0 beq _0801967C cmp r0, 0x1 beq _08019682 b _08019922 .pool _0801967C: bl sub_801CC38 b _0801975E _08019682: movs r0, 0x1B strb r0, [r5, 0x8] b _08019922 _08019688: ldrb r0, [r5, 0xC] cmp r0, 0 bne _080196A2 bl sub_801B308 cmp r0, 0 beq _080196B6 adds r0, r5, 0 adds r0, 0x9 ldrb r2, [r5, 0xC] adds r1, r5, 0 movs r3, 0 b _080196C0 _080196A2: bl sub_801B128 cmp r0, 0 beq _080196B6 adds r0, r5, 0 adds r0, 0x9 ldrb r2, [r5, 0xC] adds r1, r5, 0 movs r3, 0 b _080196C0 _080196B6: adds r0, r5, 0 adds r0, 0x9 ldrb r2, [r5, 0xC] adds r1, r5, 0 movs r3, 0x1 _080196C0: bl sub_8018C4C adds r1, r0, 0 cmp r1, 0x1 beq _080196E2 cmp r1, 0x1 bcc _080196DC cmp r1, 0x2 beq _080196E8 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _080196EE b _08019922 _080196DC: movs r0, 0x1C strb r0, [r5, 0x8] b _08019922 _080196E2: movs r0, 0x1D strb r0, [r5, 0x8] b _08019922 _080196E8: movs r0, 0x16 strb r0, [r5, 0x8] b _08019922 _080196EE: ldrb r0, [r5, 0xC] cmp r0, 0x1 bne _080196F8 bl sub_801CC80 _080196F8: movs r0, 0x14 strb r0, [r5, 0x8] b _08019922 _080196FE: adds r0, r5, 0 adds r0, 0x9 ldrb r2, [r5, 0xC] adds r1, r5, 0 bl sub_8018E50 adds r1, r0, 0 cmp r1, 0 beq _0801971A cmp r1, 0 ble _08019748 cmp r1, 0x1 beq _0801975E b _08019922 _0801971A: ldrb r0, [r5, 0xC] cmp r0, 0 bne _08019758 bl sub_801B3F8 cmp r0, 0x1 bne _08019758 movs r0, 0x17 strb r0, [r5, 0x8] b _08019922 _0801972E: adds r0, r5, 0 adds r0, 0x9 ldr r3, =gText_HaventReceivedGiftOkayToDiscard adds r1, r5, 0 movs r2, 0x1 bl sub_8018B08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0x1 beq _0801975E cmp r1, 0x1 bcc _08019758 _08019748: movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0801975E b _08019922 .pool _08019758: movs r0, 0x18 strb r0, [r5, 0x8] b _08019922 _0801975E: movs r0, 0x15 strb r0, [r5, 0x8] b _08019922 _08019764: ldrb r0, [r5, 0xC] movs r1, 0x1 bl sub_8018E20 cmp r0, 0 bne _08019772 b _08019922 _08019772: ldrb r0, [r5, 0xC] bl sub_8018E08 movs r0, 0x19 strb r0, [r5, 0x8] b _08019922 _0801977E: adds r0, r5, 0 adds r0, 0x9 bl mevent_save_game cmp r0, 0 bne _0801978C b _08019922 _0801978C: movs r0, 0x1A strb r0, [r5, 0x8] b _08019922 _08019792: adds r0, r5, 0 adds r0, 0x9 ldrb r1, [r5, 0xC] bl mevent_message_was_thrown_away b _080198F6 _0801979E: ldrb r0, [r5, 0xC] movs r1, 0 bl sub_8018E20 cmp r0, 0 bne _080197AC b _08019922 _080197AC: movs r0, 0 strb r0, [r5, 0x8] b _08019922 _080197B2: ldrb r0, [r5, 0xC] movs r1, 0x1 bl sub_8018E20 cmp r0, 0 bne _080197C0 b _08019922 _080197C0: movs r0, 0x3 strb r0, [r5, 0x8] b _08019922 _080197C6: ldrb r0, [r5, 0xC] movs r1, 0x1 bl sub_8018E20 cmp r0, 0 bne _080197D4 b _08019922 _080197D4: ldrb r0, [r5, 0xC] cmp r0, 0 beq _080197E0 cmp r0, 0x1 beq _080197E8 b _080197EE _080197E0: movs r0, 0x15 bl sub_8014A00 b _080197EE _080197E8: movs r0, 0x16 bl sub_8014A00 _080197EE: movs r0, 0x1 strb r0, [r5, 0xD] movs r0, 0x1E strb r0, [r5, 0x8] b _08019922 _080197F8: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08019810 movs r0, 0x1 bl sub_8018838 movs r0, 0x1F strb r0, [r5, 0x8] b _08019922 .pool _08019810: ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0x5 beq _0801981A b _08019922 _0801981A: movs r0, 0x1 bl sub_8018838 _08019820: movs r0, 0x12 strb r0, [r5, 0x8] b _08019922 .pool _0801982C: ldr r0, =gStringVar1 movs r1, 0xFF strb r1, [r0] ldr r0, =gStringVar2 strb r1, [r0] ldr r0, =gStringVar3 strb r1, [r0] ldrb r0, [r5, 0xC] cmp r0, 0 bne _0801985C ldr r0, =gText_SendingWonderCard bl sub_8018884 bl mevent_srv_new_wcard b _08019866 .pool _0801985C: ldr r0, =gText_SendingWonderNews bl sub_8018884 bl mevent_srv_init_wnews _08019866: movs r0, 0x20 strb r0, [r5, 0x8] b _08019922 .pool _08019870: adds r0, r5, 0 bl sub_801D0C4 cmp r0, 0x3 bne _08019922 ldrh r0, [r5] strb r0, [r5, 0xE] movs r0, 0x21 strb r0, [r5, 0x8] b _08019922 _08019884: bl task_add_05_task_del_08FA224_when_no_RfuFunc ldr r0, =gStringVar1 ldr r1, =gUnknown_02022A0C bl StringCopy movs r0, 0x22 strb r0, [r5, 0x8] b _08019922 .pool _080198A0: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _08019922 bl sub_800E084 movs r0, 0x23 strb r0, [r5, 0x8] b _08019922 .pool _080198B8: adds r0, r5, 0 adds r0, 0x9 ldrb r2, [r5, 0xD] ldrb r3, [r5, 0xE] adds r1, r5, 0 bl sub_8019174 cmp r0, 0 beq _08019922 ldr r0, [r5, 0xC] ldr r1, =0x00ffff00 ands r0, r1 ldr r1, =0x00030100 cmp r0, r1 bne _080198FA movs r0, 0x3 bl sub_801DB68 _080198DC: movs r0, 0x11 strb r0, [r5, 0x8] b _08019922 .pool _080198EC: adds r0, r5, 0 adds r0, 0x9 ldr r1, =gText_CommunicationError bl mevent_0814257C _080198F6: cmp r0, 0 beq _08019922 _080198FA: movs r0, 0 strb r0, [r5, 0x8] _080198FE: movs r1, 0 bl sub_80186EC b _08019922 .pool _0801990C: bl sub_80097E8 ldr r0, [r5, 0x10] bl Free adds r0, r4, 0 bl DestroyTask ldr r0, =sub_80186A4 bl SetMainCallback2 _08019922: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end task00_mystery_gift thumb_func_start sub_8019930 sub_8019930: @ 8019930 ldr r0, =0x000001a9 bx lr .pool thumb_func_end sub_8019930 thumb_func_start bgid_upload_textbox_1 bgid_upload_textbox_1: @ 8019938 push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnkTextboxBorderGfx movs r2, 0x80 lsls r2, 1 movs r3, 0 str r3, [sp] bl copy_decompressed_tile_data_to_vram_autofree add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end bgid_upload_textbox_1 thumb_func_start is_walking_or_running is_walking_or_running: @ 8019958 push {lr} ldr r0, =gPlayerAvatar ldrb r0, [r0, 0x3] cmp r0, 0x2 beq _08019966 cmp r0, 0 bne _08019970 _08019966: movs r0, 0x1 b _08019972 .pool _08019970: movs r0, 0 _08019972: pop {r1} bx r1 thumb_func_end is_walking_or_running thumb_func_start sub_8019978 sub_8019978: @ 8019978 ldr r3, =gUnknown_082F072C movs r2, 0x7 ands r2, r1 lsls r1, r0, 2 adds r1, r0 lsls r1, 1 adds r2, r1 adds r2, r3 ldrb r0, [r2] bx lr .pool thumb_func_end sub_8019978 thumb_func_start sub_8019990 sub_8019990: @ 8019990 push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, =gUnknown_082F0740 mov r8, r4 lsls r0, 2 adds r4, r0, r4 movs r6, 0 ldrsh r5, [r4, r6] ldr r6, =gUnknown_082F0760 lsls r1, 1 adds r4, r1, r6 ldrb r4, [r4] lsls r4, 24 asrs r4, 24 adds r5, r4 adds r5, 0x7 str r5, [r2] movs r2, 0x2 add r8, r2 add r0, r8 movs r4, 0 ldrsh r0, [r0, r4] adds r6, 0x1 adds r1, r6 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 adds r0, r1 adds r0, 0x7 str r0, [r3] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8019990 thumb_func_start sub_80199E0 sub_80199E0: @ 80199E0 push {r4-r7,lr} mov r12, r3 ldr r7, =gUnknown_082F0740 lsls r5, r0, 2 adds r0, r5, r7 movs r4, 0 ldrsh r3, [r0, r4] ldr r6, =gUnknown_082F0760 lsls r4, r1, 1 adds r0, r4, r6 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r3, r0 adds r3, 0x7 cmp r3, r2 bne _08019A28 adds r0, r7, 0x2 adds r0, r5, r0 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r6, 0x1 adds r0, r4, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 adds r1, r0 adds r1, 0x7 cmp r1, r12 bne _08019A28 movs r0, 0x1 b _08019A2A .pool _08019A28: movs r0, 0 _08019A2A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80199E0 thumb_func_start sub_8019A30 sub_8019A30: @ 8019A30 push {lr} ldr r1, =0x000002bf adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8019A30 thumb_func_start flag_set_x63 flag_set_x63: @ 8019A4C push {lr} ldr r1, =0x000002bf adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagSet pop {r0} bx r0 .pool thumb_func_end flag_set_x63 thumb_func_start flag_clear_x63 flag_clear_x63: @ 8019A64 push {lr} ldr r1, =0x000002bf adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagClear pop {r0} bx r0 .pool thumb_func_end flag_clear_x63 thumb_func_start sub_8019A7C sub_8019A7C: @ 8019A7C push {lr} ldr r2, =0x00004010 adds r0, r2 lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 bl VarSet pop {r0} bx r0 .pool thumb_func_end sub_8019A7C thumb_func_start sub_8019A98 sub_8019A98: @ 8019A98 push {lr} ldr r1, =gUnknown_082F0774 adds r0, r1 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl show_sprite pop {r0} bx r0 .pool thumb_func_end sub_8019A98 thumb_func_start sub_8019AB8 sub_8019AB8: @ 8019AB8 push {lr} ldr r1, =gUnknown_082F0774 adds r0, r1 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl RemoveFieldObjectByLocalIdAndMap pop {r0} bx r0 .pool thumb_func_end sub_8019AB8 thumb_func_start sub_8019AD8 sub_8019AD8: @ 8019AD8 push {r4,r5,lr} sub sp, 0x4 adds r5, r1, 0 ldr r1, =gUnknown_082F0774 adds r0, r1 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08019B30 mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive lsls r0, 24 cmp r0, 0 bne _08019B30 ldrb r1, [r5] adds r0, r4, 0 bl FieldObjectSetSpecialAnim lsls r0, 24 cmp r0, 0 bne _08019B30 movs r0, 0x1 b _08019B32 .pool _08019B30: movs r0, 0 _08019B32: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8019AD8 thumb_func_start sub_8019B3C sub_8019B3C: @ 8019B3C push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_082F0774 adds r0, r1 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] mov r3, sp bl TryGetFieldObjectIdByLocalIdAndMap lsls r0, 24 cmp r0, 0 bne _08019B9C mov r0, sp ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r4, r0, r1 adds r0, r4, 0 bl FieldObjectClearAnimIfSpecialAnimFinished lsls r0, 24 cmp r0, 0 bne _08019B84 movs r0, 0 b _08019B9E .pool _08019B84: bl ScriptContext2_IsEnabled lsls r0, 24 cmp r0, 0 bne _08019B96 adds r0, r4, 0 bl npc_sync_anim_pause_bits b _08019B9C _08019B96: adds r0, r4, 0 bl sub_8097404 _08019B9C: movs r0, 0x1 _08019B9E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_8019B3C thumb_func_start sub_8019BA8 sub_8019BA8: @ 8019BA8 push {lr} ldr r2, =gUnknown_02022C68 movs r1, 0 str r1, [r2] ldr r1, =gUnknown_02022C64 str r0, [r1] movs r1, 0 movs r2, 0x7 _08019BB8: strb r1, [r0] strb r1, [r0, 0x1] strb r1, [r0, 0x2] strb r1, [r0, 0x3] adds r0, 0x4 subs r2, 0x1 cmp r2, 0 bge _08019BB8 bl sub_8019DF4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8019BA8 thumb_func_start sub_8019BDC sub_8019BDC: @ 8019BDC push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 beq _08019BF0 cmp r0, 0x1 beq _08019C10 b _08019C2E _08019BF0: ldr r1, =gUnknown_082F078C adds r0, r4, 0 bl sub_8019AD8 cmp r0, 0x1 bne _08019C2E adds r0, r4, 0 bl flag_set_x63 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _08019C2E .pool _08019C10: adds r0, r4, 0 bl sub_8019B3C cmp r0, 0 beq _08019C2E adds r0, r4, 0 bl sub_8019AB8 adds r0, r4, 0 bl flag_set_x63 movs r0, 0 strb r0, [r5] movs r0, 0x1 b _08019C30 _08019C2E: movs r0, 0 _08019C30: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8019BDC thumb_func_start sub_8019C38 sub_8019C38: @ 8019C38 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 movs r0, 0 ldrsb r0, [r6, r0] cmp r0, 0x2 beq _08019CD4 cmp r0, 0x2 bgt _08019C54 cmp r0, 0 beq _08019C5A b _08019CE6 _08019C54: cmp r0, 0x3 beq _08019CBC b _08019CE6 _08019C5A: bl is_walking_or_running cmp r0, 0 beq _08019CE6 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 ldrsh r3, [r4, r0] adds r0, r5, 0 movs r1, 0 bl sub_80199E0 cmp r0, 0x1 beq _08019CE6 mov r0, sp adds r1, r4, 0 bl plaer_get_pos_including_state_based_drift mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 ldrsh r3, [r4, r0] adds r0, r5, 0 movs r1, 0 bl sub_80199E0 cmp r0, 0x1 beq _08019CE6 ldrb r1, [r7, 0x1] adds r0, r5, 0 bl sub_8019A7C adds r0, r5, 0 bl sub_8019A98 adds r0, r5, 0 bl flag_clear_x63 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _08019CBC: ldr r1, =gUnknown_082F078E adds r0, r5, 0 bl sub_8019AD8 cmp r0, 0x1 bne _08019CE6 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _08019CE6 .pool _08019CD4: adds r0, r5, 0 bl sub_8019B3C cmp r0, 0 beq _08019CE6 movs r0, 0 strb r0, [r6] movs r0, 0x1 b _08019CE8 _08019CE6: movs r0, 0 _08019CE8: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8019C38 thumb_func_start sub_8019CF0 sub_8019CF0: @ 8019CF0 push {r4,lr} ldr r3, =gUnknown_02022C64 lsls r0, 2 ldr r4, [r3] adds r4, r0 movs r0, 0x1 strb r0, [r4, 0x3] adds r0, r1, 0 adds r1, r2, 0 bl sub_8019978 strb r0, [r4, 0x1] ldrb r0, [r4] cmp r0, 0 beq _08019D18 movs r0, 0 b _08019D1A .pool _08019D18: movs r0, 0x1 _08019D1A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8019CF0 thumb_func_start AGBAssert AGBAssert: @ 8019D20 push {lr} ldr r1, =gUnknown_02022C64 lsls r0, 2 ldr r1, [r1] adds r1, r0 movs r0, 0x2 strb r0, [r1, 0x3] ldrb r0, [r1] cmp r0, 0x1 beq _08019D3C movs r0, 0 b _08019D3E .pool _08019D3C: movs r0, 0x1 _08019D3E: pop {r1} bx r1 thumb_func_end AGBAssert thumb_func_start sub_8019D44 sub_8019D44: @ 8019D44 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r1, [r4] cmp r1, 0x1 beq _08019DA6 cmp r1, 0x1 bgt _08019D5A cmp r1, 0 beq _08019D64 b _08019DC6 _08019D5A: cmp r1, 0x2 beq _08019D70 cmp r1, 0x3 beq _08019DB4 b _08019DC6 _08019D64: ldrb r0, [r4, 0x3] cmp r0, 0x1 bne _08019DC6 movs r0, 0x2 strb r0, [r4] strb r1, [r4, 0x2] _08019D70: adds r0, r5, 0 movs r1, 0 bl sub_8019F8C adds r1, r0, 0 cmp r1, 0 bne _08019D96 ldrb r0, [r4, 0x3] cmp r0, 0x2 bne _08019D96 strb r1, [r4] strb r1, [r4, 0x2] adds r0, r5, 0 bl sub_8019AB8 adds r0, r5, 0 bl flag_set_x63 b _08019DC6 _08019D96: adds r0, r4, 0x2 adds r1, r5, 0 adds r2, r4, 0 bl sub_8019C38 cmp r0, 0x1 bne _08019DC6 b _08019DC4 _08019DA6: ldrb r0, [r4, 0x3] cmp r0, 0x2 bne _08019DC6 movs r1, 0 movs r0, 0x3 strb r0, [r4] strb r1, [r4, 0x2] _08019DB4: adds r0, r4, 0x2 adds r1, r5, 0 adds r2, r4, 0 bl sub_8019BDC cmp r0, 0x1 bne _08019DC6 movs r0, 0 _08019DC4: strb r0, [r4] _08019DC6: movs r0, 0 strb r0, [r4, 0x3] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8019D44 thumb_func_start sub_8019DD0 sub_8019DD0: @ 8019DD0 push {r4,r5,lr} movs r4, 0 ldr r5, =gUnknown_02022C64 _08019DD6: lsls r0, r4, 2 ldr r1, [r5] adds r1, r0 adds r0, r4, 0 bl sub_8019D44 adds r4, 0x1 cmp r4, 0x7 ble _08019DD6 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8019DD0 thumb_func_start sub_8019DF4 sub_8019DF4: @ 8019DF4 push {r4,lr} ldr r4, =sub_8019DD0 adds r0, r4, 0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08019E18 adds r0, r4, 0 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 b _08019E1A .pool _08019E18: movs r0, 0x10 _08019E1A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8019DF4 thumb_func_start sub_8019E20 sub_8019E20: @ 8019E20 push {lr} ldr r0, =sub_8019DD0 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bhi _08019E34 bl DestroyTask _08019E34: pop {r0} bx r0 .pool thumb_func_end sub_8019E20 thumb_func_start sub_8019E3C sub_8019E3C: @ 8019E3C push {r4,lr} movs r4, 0 _08019E40: adds r0, r4, 0 bl sub_8019A30 cmp r0, 0 bne _08019E56 adds r0, r4, 0 bl sub_8019AB8 adds r0, r4, 0 bl flag_set_x63 _08019E56: adds r4, 0x1 cmp r4, 0x7 ble _08019E40 ldr r1, =gUnknown_02022C64 movs r0, 0 str r0, [r1] bl sub_8019E20 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8019E3C thumb_func_start sub_8019E70 sub_8019E70: @ 8019E70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r0, [sp, 0x8] mov r9, r1 movs r7, 0 mov r0, r9 lsls r0, 2 mov r8, r0 ldr r0, =gUnknown_082F0740 mov r2, r8 adds r1, r2, r0 ldrh r1, [r1] mov r2, sp strh r1, [r2, 0xC] adds r0, 0x2 add r0, r8 ldrh r0, [r0] mov r10, r0 ldr r6, =gUnknown_082F0760 _08019E9E: mov r5, r8 add r5, r9 adds r5, r7 adds r4, r5, 0 subs r4, 0x38 lsls r4, 24 lsrs r4, 24 movs r2, 0 ldrsb r2, [r6, r2] mov r0, sp ldrh r0, [r0, 0xC] adds r2, r0, r2 lsls r2, 16 asrs r2, 16 movs r3, 0x1 ldrsb r3, [r6, r3] add r3, r10 lsls r3, 16 asrs r3, 16 movs r0, 0x3 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x41 adds r1, r4, 0 bl sprite_new ldr r1, [sp, 0x8] adds r5, r1, r5 strb r0, [r5] adds r0, r4, 0 movs r1, 0x1 bl sub_8097C44 adds r6, 0x2 adds r7, 0x1 cmp r7, 0x4 ble _08019E9E add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8019E70 thumb_func_start sub_8019F04 sub_8019F04: @ 8019F04 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 ldr r6, =gSprites _08019F0C: adds r0, r5, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite adds r4, 0x1 cmp r4, 0x27 ble _08019F0C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8019F04 thumb_func_start sub_8019F2C sub_8019F2C: @ 8019F2C push {r4-r7,lr} sub sp, 0x8 movs r5, 0 add r7, sp, 0x4 _08019F34: movs r4, 0 adds r6, r5, 0x1 _08019F38: adds r0, r5, 0 adds r1, r4, 0 mov r2, sp adds r3, r7, 0 bl sub_8019990 ldr r0, [sp] ldr r1, [sp, 0x4] movs r2, 0 bl sub_8088B94 adds r4, 0x1 cmp r4, 0x4 ble _08019F38 adds r5, r6, 0 cmp r5, 0x7 ble _08019F34 add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8019F2C thumb_func_start sub_8019F64 sub_8019F64: @ 8019F64 push {lr} adds r1, r0, 0 cmp r1, 0 beq _08019F78 ldr r0, =gUnknown_082F076F adds r0, r1, r0 ldrb r0, [r0] b _08019F88 .pool _08019F78: ldrb r1, [r2, 0xA] movs r0, 0x7F ands r0, r1 cmp r0, 0x45 beq _08019F86 movs r0, 0x4 b _08019F88 _08019F86: movs r0, 0x1 _08019F88: pop {r1} bx r1 thumb_func_end sub_8019F64 thumb_func_start sub_8019F8C sub_8019F8C: @ 8019F8C push {lr} adds r2, r0, 0 lsls r0, r2, 2 adds r0, r2 adds r0, r1 subs r0, 0x38 lsls r0, 24 lsrs r0, 24 bl sub_8097C8C pop {r1} bx r1 thumb_func_end sub_8019F8C thumb_func_start sub_8019FA4 sub_8019FA4: @ 8019FA4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r5, r0, 0 adds r6, r1, 0 mov r9, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r0, r5, 2 adds r0, r5 adds r7, r0, r6 adds r0, r5, 0 bl sub_8019F8C cmp r0, 0x1 bne _08019FE2 adds r4, r7, 0 subs r4, 0x38 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl sub_8097C44 adds r0, r4, 0 movs r1, 0x1 bl sub_8097CC4 _08019FE2: adds r0, r7, 0 subs r0, 0x38 lsls r0, 24 lsrs r0, 24 mov r1, r8 bl sub_8097BB4 adds r0, r6, 0 adds r1, r5, 0 mov r2, r9 bl sub_8019F64 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r6, 0 adds r1, r5, 0 bl sub_801A3B0 add r3, sp, 0x4 adds r0, r5, 0 adds r1, r6, 0 mov r2, sp bl sub_8019990 ldr r0, [sp] ldr r1, [sp, 0x4] movs r2, 0x1 bl sub_8088B94 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8019FA4 thumb_func_start sub_801A02C sub_801A02C: @ 801A02C push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r4, 2 adds r0, r4 adds r0, r5 subs r0, 0x38 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 bl sub_8097CC4 add r3, sp, 0x4 adds r0, r4, 0 adds r1, r5, 0 mov r2, sp bl sub_8019990 ldr r0, [sp] ldr r1, [sp, 0x4] movs r2, 0 bl sub_8088B94 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801A02C thumb_func_start sub_801A064 sub_801A064: @ 801A064 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r7, r0, 0 mov r8, r1 mov r6, sp adds r6, 0x2 mov r0, sp adds r1, r6, 0 bl PlayerGetDestCoords add r4, sp, 0x4 mov r5, sp adds r5, 0x6 adds r0, r4, 0 adds r1, r5, 0 bl plaer_get_pos_including_state_based_drift lsls r0, r7, 2 adds r0, r7 subs r0, 0x38 lsls r0, 24 lsrs r0, 24 bl sub_8097C8C mov r10, r6 mov r9, r4 adds r6, r5, 0 cmp r0, 0x1 bne _0801A0F0 mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] mov r0, r10 movs r1, 0 ldrsh r3, [r0, r1] adds r0, r7, 0 movs r1, 0 bl sub_80199E0 cmp r0, 0x1 beq _0801A15C movs r0, 0 ldrsh r2, [r4, r0] movs r1, 0 ldrsh r3, [r6, r1] adds r0, r7, 0 movs r1, 0 bl sub_80199E0 cmp r0, 0x1 beq _0801A15C mov r2, r8 ldrb r0, [r2, 0xB] lsls r0, 31 lsrs r0, 31 ldrb r1, [r2, 0x2] bl sub_8019978 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 movs r1, 0 mov r3, r8 bl sub_8019FA4 _0801A0F0: movs r5, 0x1 mov r4, r8 adds r4, 0x4 _0801A0F6: ldrb r0, [r4] cmp r0, 0 bne _0801A106 adds r0, r7, 0 adds r1, r5, 0 bl sub_801A02C b _0801A154 _0801A106: mov r0, sp movs r1, 0 ldrsh r2, [r0, r1] mov r0, r10 movs r1, 0 ldrsh r3, [r0, r1] adds r0, r7, 0 adds r1, r5, 0 bl sub_80199E0 cmp r0, 0 bne _0801A154 mov r0, r9 movs r1, 0 ldrsh r2, [r0, r1] movs r0, 0 ldrsh r3, [r6, r0] adds r0, r7, 0 adds r1, r5, 0 bl sub_80199E0 cmp r0, 0 bne _0801A154 ldrb r2, [r4] lsrs r0, r2, 3 movs r1, 0x1 ands r0, r1 movs r1, 0x7 ands r1, r2 bl sub_8019978 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r5, 0 mov r3, r8 bl sub_8019FA4 _0801A154: adds r4, 0x1 adds r5, 0x1 cmp r5, 0x4 ble _0801A0F6 _0801A15C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801A064 thumb_func_start sub_801A16C sub_801A16C: @ 801A16C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 ldrb r0, [r4, 0xA] lsls r0, 25 lsrs r0, 25 subs r0, 0x40 cmp r0, 0x14 bhi _0801A20E lsls r0, 2 ldr r1, =_0801A18C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801A18C: .4byte _0801A1E0 .4byte _0801A200 .4byte _0801A20E .4byte _0801A20E .4byte _0801A200 .4byte _0801A200 .4byte _0801A20E .4byte _0801A20E .4byte _0801A200 .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A20E .4byte _0801A200 .4byte _0801A200 .4byte _0801A200 .4byte _0801A1E0 _0801A1E0: ldrb r1, [r4, 0xB] lsls r1, 31 lsrs r1, 31 ldrb r2, [r4, 0x2] adds r0, r5, 0 bl sub_8019CF0 movs r4, 0 _0801A1F0: adds r0, r5, 0 adds r1, r4, 0 bl sub_801A02C adds r4, 0x1 cmp r4, 0x4 bls _0801A1F0 b _0801A20E _0801A200: adds r0, r5, 0 bl AGBAssert adds r0, r5, 0 adds r1, r4, 0 bl sub_801A064 _0801A20E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801A16C thumb_func_start sub_801A214 sub_801A214: @ 801A214 push {r4,r5,lr} adds r5, r0, 0 bl AGBAssert movs r4, 0 _0801A21E: adds r0, r5, 0 adds r1, r4, 0 bl sub_801A02C adds r4, 0x1 cmp r4, 0x4 ble _0801A21E pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801A214 thumb_func_start sub_801A234 sub_801A234: @ 801A234 push {r4,r5,lr} ldr r2, =gUnknown_02022C68 movs r1, 0 str r1, [r2] movs r5, 0 ldr r4, [r0] _0801A240: ldrb r0, [r4, 0x1A] movs r1, 0x3 ands r1, r0 cmp r1, 0x1 bne _0801A258 adds r0, r5, 0 adds r1, r4, 0 bl sub_801A16C b _0801A264 .pool _0801A258: cmp r1, 0x2 bne _0801A264 adds r0, r5, 0 adds r1, r4, 0 bl sub_801A214 _0801A264: adds r4, 0x20 adds r5, 0x1 cmp r5, 0x7 ble _0801A240 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801A234 thumb_func_start sub_801A274 sub_801A274: @ 801A274 ldr r1, =gUnknown_02022C68 movs r0, 0x96 lsls r0, 1 str r0, [r1] bx lr .pool thumb_func_end sub_801A274 thumb_func_start sub_801A284 sub_801A284: @ 801A284 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_02022C68 ldr r1, [r0] adds r1, 0x1 str r1, [r0] movs r0, 0x96 lsls r0, 1 cmp r1, r0 bls _0801A29E adds r0, r2, 0 bl sub_801A234 _0801A29E: pop {r0} bx r0 .pool thumb_func_end sub_801A284 thumb_func_start sub_801A2A8 sub_801A2A8: @ 801A2A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r5, r0, 0 str r1, [sp, 0x4] str r2, [sp, 0x8] bl is_walking_or_running cmp r0, 0 bne _0801A2F0 b _0801A396 _0801A2C4: ldr r4, =gUnknown_082F076A bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 adds r0, r4 ldrb r2, [r0] adds r0, r6, 0 ldr r1, [sp, 0xC] bl sub_801A3B0 ldr r0, [sp, 0x4] strh r6, [r0] mov r1, sp ldrh r2, [r1, 0xC] ldr r1, [sp, 0x8] strh r2, [r1] movs r0, 0x1 b _0801A398 .pool _0801A2F0: mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r0, 0 str r0, [sp, 0xC] ldr r0, =gUnknown_082F0740 adds r7, r5, 0 movs r1, 0 mov r10, r1 adds r2, r0, 0x2 str r2, [sp, 0x10] str r0, [sp, 0x14] _0801A30E: movs r6, 0 ldr r4, [sp, 0x14] movs r0, 0 ldrsh r4, [r4, r0] mov r9, r4 ldr r1, [sp, 0x10] mov r8, r1 ldr r5, =gUnknown_082F0760 _0801A31E: mov r2, r10 adds r3, r2, r6 mov r0, sp movs r4, 0 ldrsh r1, [r0, r4] movs r0, 0 ldrsb r0, [r5, r0] add r0, r9 adds r0, 0x7 cmp r1, r0 bne _0801A372 mov r1, sp movs r2, 0x2 ldrsh r0, [r1, r2] mov r4, r8 movs r2, 0 ldrsh r1, [r4, r2] movs r2, 0x1 ldrsb r2, [r5, r2] adds r1, r2 adds r1, 0x7 cmp r0, r1 bne _0801A372 adds r0, r3, 0 subs r0, 0x38 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_8097C8C cmp r0, 0 bne _0801A372 adds r0, r4, 0 bl sub_8097D9C cmp r0, 0 bne _0801A372 ldrb r1, [r7, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 beq _0801A2C4 _0801A372: adds r5, 0x2 adds r6, 0x1 cmp r6, 0x4 ble _0801A31E adds r7, 0x20 movs r4, 0x5 add r10, r4 ldr r0, [sp, 0x10] adds r0, 0x4 str r0, [sp, 0x10] ldr r1, [sp, 0x14] adds r1, 0x4 str r1, [sp, 0x14] ldr r2, [sp, 0xC] adds r2, 0x1 str r2, [sp, 0xC] cmp r2, 0x7 ble _0801A30E _0801A396: movs r0, 0 _0801A398: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_801A2A8 thumb_func_start sub_801A3B0 sub_801A3B0: @ 801A3B0 push {r4,lr} adds r4, r0, 0 adds r3, r1, 0 lsls r1, r2, 24 lsrs r1, 24 lsls r0, r3, 2 adds r0, r3 subs r0, 0x38 adds r0, r4 lsls r0, 24 lsrs r0, 24 bl sub_8097B78 pop {r4} pop {r0} bx r0 thumb_func_end sub_801A3B0 thumb_func_start sub_801A3D0 sub_801A3D0: @ 801A3D0 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 lsls r3, r4, 5 adds r3, r2 adds r2, r3, 0 bl sub_8019F64 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_801A3B0 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801A3D0 thumb_func_start sub_801A3F4 sub_801A3F4: @ 801A3F4 push {lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801A414 bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade _0801A414: pop {r0} bx r0 thumb_func_end sub_801A3F4 thumb_func_start sub_801A418 sub_801A418: @ 801A418 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_801A418 thumb_func_start sub_801A42C sub_801A42C: @ 801A42C push {lr} ldr r0, =sub_801A43C bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_801A42C thumb_func_start sub_801A43C sub_801A43C: @ 801A43C push {r4,r5,lr} sub sp, 0xC movs r0, 0 movs r1, 0 bl SetGpuReg ldr r5, =gUnknown_03000DAC movs r0, 0x6C bl AllocZeroed str r0, [r5] movs r0, 0 bl SetVBlankCallback movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F0D34 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r4, 0 bl Alloc adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, =gWirelessInfoScreenGfx movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gWirelessInfoScreenTilemap movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r0, =gUnknown_082F0D3C bl InitWindows bl DeactivateAllTextPrinters bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl remove_some_task bl m4aSoundVSyncOn ldr r0, =sub_801A418 bl SetVBlankCallback ldr r0, =sub_801A6C0 movs r1, 0 bl CreateTask ldr r1, [r5] adds r1, 0x60 strb r0, [r1] bl sub_8013C40 ldr r1, [r5] adds r1, 0x61 strb r0, [r1] ldr r1, [r5] movs r0, 0x1 str r0, [r1, 0x1C] movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, =gWirelessInfoScreenPal movs r1, 0 movs r2, 0x20 bl LoadPalette movs r0, 0xF0 bl sub_81978B0 bl sub_81AFBF0 movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r0, =sub_801A3F4 bl SetMainCallback2 bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801A43C thumb_func_start sub_801A584 sub_801A584: @ 801A584 push {r4,lr} bl FreeAllWindowBuffers movs r4, 0 _0801A58C: lsls r0, r4, 24 lsrs r0, 24 bl GetBgTilemapBuffer bl Free adds r4, 0x1 cmp r4, 0x1 ble _0801A58C ldr r0, =gUnknown_03000DAC ldr r0, [r0] bl Free ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801A584 thumb_func_start sub_801A5BC sub_801A5BC: @ 801A5BC push {lr} adds r2, r0, 0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _0801A5E4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bne _0801A5E0 movs r0, 0 strh r0, [r1] _0801A5E0: movs r0, 0 strh r0, [r2] _0801A5E4: movs r2, 0 ldrsh r0, [r1, r2] adds r0, 0x2 lsls r0, 5 ldr r1, =gWirelessInfoScreenPal adds r0, r1 movs r1, 0 movs r2, 0x10 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_801A5BC thumb_func_start sub_801A600 sub_801A600: @ 801A600 push {r4,r5,lr} sub sp, 0x8 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gUnknown_082F0D5C ldr r4, [r5] movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC0 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x6 str r0, [sp] movs r0, 0x3 str r0, [sp, 0x4] movs r0, 0 movs r1, 0x1 adds r2, r4, 0 bl sub_801A8B0 movs r1, 0 _0801A644: adds r4, r1, 0x1 lsls r0, r4, 2 adds r0, r5 ldr r2, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 25 movs r1, 0x80 lsls r1, 20 adds r0, r1 lsrs r0, 24 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x1 movs r3, 0 bl sub_801A8B0 adds r1, r4, 0 cmp r4, 0x2 ble _0801A644 ldr r1, =gUnknown_082F0D5C adds r0, r4, 0x1 lsls r0, 2 adds r0, r1 ldr r2, [r0] lsls r0, r4, 4 subs r0, r4 lsls r0, 25 movs r1, 0x80 lsls r1, 20 adds r0, r1 lsrs r0, 24 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r3, 0 bl sub_801A8B0 movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801A600 thumb_func_start sub_801A6C0 sub_801A6C0: @ 801A6C0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x5 bls _0801A6E2 b _0801A89C _0801A6E2: lsls r0, 2 ldr r1, =_0801A6F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801A6F4: .4byte _0801A70C .4byte _0801A728 .4byte _0801A74C .4byte _0801A768 .4byte _0801A85C .4byte _0801A884 _0801A70C: bl sub_801A600 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0801A89C .pool _0801A728: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1 bl ShowBg movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0 bl ShowBg b _0801A86C _0801A74C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0801A75A b _0801A89C _0801A75A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 b _0801A876 .pool _0801A768: ldr r0, =gUnknown_03000DAC ldr r0, [r0] adds r1, r0, 0 adds r1, 0x10 adds r2, r0, 0 adds r2, 0x20 adds r3, r0, 0 adds r3, 0x61 ldrb r3, [r3] bl sub_801AA30 lsls r1, r5, 2 mov r8, r1 cmp r0, 0 beq _0801A7F8 movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer movs r4, 0 ldr r6, =gStringVar4 movs r7, 0x80 lsls r7, 20 _0801A796: ldr r0, =gUnknown_03000DAC ldr r0, [r0] lsls r1, r4, 2 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN cmp r4, 0x3 beq _0801A7CC lsrs r0, r7, 24 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x2 movs r1, 0x1 adds r2, r6, 0 movs r3, 0xC bl sub_801A8B0 b _0801A7DE .pool _0801A7CC: movs r0, 0x62 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r1, 0x1 adds r2, r6, 0 movs r3, 0xC bl sub_801A8B0 _0801A7DE: movs r2, 0xF0 lsls r2, 21 adds r7, r2 adds r4, 0x1 cmp r4, 0x3 ble _0801A796 movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram _0801A7F8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801A80C movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801A836 _0801A80C: movs r0, 0x5 bl PlaySE ldr r2, =gTasks ldr r0, =gUnknown_03000DAC ldr r0, [r0] adds r0, 0x61 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0xFF strh r1, [r0, 0x26] mov r0, r8 adds r1, r0, r5 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0801A836: mov r2, r8 adds r1, r2, r5 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 adds r0, r1, 0 adds r0, 0xE adds r1, 0x10 bl sub_801A5BC b _0801A89C .pool _0801A85C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0801A86C: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 _0801A876: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _0801A89C .pool _0801A884: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0801A89C ldr r0, =sub_801A584 bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _0801A89C: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801A6C0 thumb_func_start sub_801A8B0 sub_801A8B0: @ 801A8B0 push {r4-r7,lr} sub sp, 0x18 mov r12, r2 ldr r2, [sp, 0x2C] ldr r4, [sp, 0x30] lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r3, 24 lsrs r5, r3, 24 lsls r2, 24 lsrs r3, r2, 24 lsls r4, 24 lsrs r0, r4, 24 cmp r0, 0x4 bhi _0801A93A lsls r0, 2 ldr r1, =_0801A8E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801A8E0: .4byte _0801A8F4 .4byte _0801A902 .4byte _0801A910 .4byte _0801A91E .4byte _0801A92C _0801A8F4: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] movs r0, 0x3 b _0801A938 _0801A902: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x3 b _0801A938 _0801A910: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] movs r0, 0x5 b _0801A938 _0801A91E: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] movs r0, 0x6 b _0801A938 _0801A92C: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x2 _0801A938: strb r0, [r1, 0x2] _0801A93A: movs r0, 0 str r0, [sp] str r0, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] mov r0, r12 str r0, [sp, 0x10] adds r0, r7, 0 adds r1, r6, 0 adds r2, r5, 0 bl AddTextPrinterParametrized2 add sp, 0x18 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801A8B0 thumb_func_start sub_801A960 sub_801A960: @ 801A960 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r12, r0 adds r7, r1, 0 ldrb r0, [r0, 0xA] lsls r0, 25 lsrs r0, 25 mov r8, r0 movs r4, 0 ldr r0, =gUnknown_082F0D70 mov r9, r0 movs r1, 0x1 add r1, r9 mov r10, r1 mov r3, r12 adds r3, 0x4 str r3, [sp] _0801A98A: lsls r0, r4, 1 adds r2, r0, r4 mov r3, r9 adds r1, r2, r3 adds r5, r0, 0 adds r6, r4, 0x1 ldrb r1, [r1] cmp r8, r1 bne _0801A9EE mov r0, r12 ldrb r1, [r0, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801A9EE mov r0, r9 adds r0, 0x2 adds r3, r2, r0 ldrb r0, [r3] cmp r0, 0 bne _0801A9DC movs r2, 0 movs r1, 0 ldr r3, [sp] _0801A9BA: adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0801A9C4 adds r2, 0x1 _0801A9C4: adds r1, 0x1 cmp r1, 0x3 ble _0801A9BA adds r2, 0x1 adds r0, r5, r4 add r0, r10 ldrb r1, [r0] lsls r1, 2 adds r1, r7 b _0801A9E8 .pool _0801A9DC: mov r1, r10 adds r0, r2, r1 ldrb r1, [r0] lsls r1, 2 adds r1, r7 ldrb r2, [r3] _0801A9E8: ldr r0, [r1] adds r0, r2 str r0, [r1] _0801A9EE: adds r4, r6, 0 cmp r4, 0x1E bls _0801A98A mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801A960 thumb_func_start sub_801AA08 sub_801AA08: @ 801AA08 push {r4,lr} movs r4, 0 adds r3, r1, 0 adds r2, r0, 0 _0801AA10: ldr r1, [r2] ldr r0, [r3] cmp r1, r0 beq _0801AA1C movs r0, 0x1 b _0801AA28 _0801AA1C: adds r3, 0x4 adds r2, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _0801AA10 movs r0, 0 _0801AA28: pop {r4} pop {r1} bx r1 thumb_func_end sub_801AA08 thumb_func_start sub_801AA30 sub_801AA30: @ 801AA30 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r6, r0, 0 mov r9, r1 adds r5, r2, 0 lsls r4, r3, 24 lsrs r4, 24 movs r0, 0 mov r8, r0 mov r0, sp movs r1, 0 movs r2, 0x10 bl memset lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 movs r4, 0 _0801AA5E: lsls r1, r4, 5 ldr r0, [r7] adds r0, r1 mov r1, sp bl sub_801A960 adds r1, r0, 0 ldr r0, [r5] cmp r1, r0 beq _0801AA78 str r1, [r5] movs r2, 0x1 mov r8, r2 _0801AA78: adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0801AA5E mov r0, sp mov r1, r9 bl sub_801AA08 cmp r0, 0 bne _0801AA9C mov r3, r8 cmp r3, 0x1 beq _0801AAC4 movs r0, 0 b _0801AAC6 .pool _0801AA9C: adds r1, r6, 0 mov r0, sp ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] mov r1, r9 mov r0, sp ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] ldr r0, [r6] ldr r1, [r6, 0x4] adds r0, r1 ldr r1, [r6, 0x8] adds r0, r1 ldr r1, [r6, 0xC] adds r0, r1 str r0, [r6, 0xC] _0801AAC4: movs r0, 0x1 _0801AAC6: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801AA30 thumb_func_start sub_801AAD4 sub_801AAD4: @ 801AAD4 push {r4-r7,lr} movs r0, 0xA bl sub_8014210 movs r4, 0 movs r7, 0x64 ldr r6, =gPlayerParty ldr r5, =gEnemyParty _0801AAE4: ldr r0, =gUnknown_0203CEF8 adds r0, r4, r0 ldrb r0, [r0] subs r0, 0x1 adds r1, r0, 0 muls r1, r7 adds r1, r6 adds r0, r5, 0 movs r2, 0x64 bl memcpy adds r5, 0x64 adds r4, 0x1 cmp r4, 0x1 ble _0801AAE4 ldr r4, =gPlayerParty movs r0, 0xFA lsls r0, 1 adds r5, r4, r0 _0801AB0A: adds r0, r4, 0 bl ZeroMonData adds r4, 0x64 cmp r4, r5 ble _0801AB0A ldr r4, =gPlayerParty movs r5, 0 adds r6, r4, 0 adds r6, 0x64 _0801AB1E: ldr r1, =gEnemyParty adds r1, r5, r1 adds r0, r4, 0 movs r2, 0x64 bl memcpy adds r4, 0x64 adds r5, 0x64 cmp r4, r6 ble _0801AB1E movs r0, 0x32 bl IncrementGameStat bl CalculatePlayerPartyCount ldr r0, =gTrainerBattleOpponent_A movs r2, 0xC0 lsls r2, 4 adds r1, r2, 0 strh r1, [r0] ldr r0, =CB2_InitBattle bl SetMainCallback2 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801AAD4 thumb_func_start sub_801AB68 sub_801AB68: @ 801AB68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r5, r0, 0 adds r7, r1, 0 adds r6, r2, 0 ldr r4, [sp, 0x38] lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 movs r0, 0 mov r9, r0 movs r1, 0x1 mov r10, r1 ldr r0, =gUnknown_082F0DE4 mov r8, r0 ldrb r0, [r0] lsls r1, r0, 4 orrs r1, r0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 str r3, [sp, 0x14] bl FillWindowPixelBuffer mov r1, r9 str r1, [sp] mov r0, r10 str r0, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] lsls r4, 24 asrs r4, 24 str r4, [sp, 0xC] str r7, [sp, 0x10] adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 ldr r3, [sp, 0x14] bl AddTextPrinterParametrized2 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801AB68 thumb_func_start sub_801ABDC sub_801ABDC: @ 801ABDC push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0801ABF4 cmp r0, 0x1 beq _0801AC22 b _0801AC36 _0801ABF4: movs r0, 0 movs r1, 0x1 movs r2, 0xD bl sub_8098858 str r5, [sp] movs r0, 0 adds r1, r6, 0 movs r2, 0 movs r3, 0x1 bl sub_801AB68 movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0801AC36 _0801AC22: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _0801AC36 strh r0, [r4] movs r0, 0x1 b _0801AC38 _0801AC36: movs r0, 0 _0801AC38: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801ABDC thumb_func_start sub_801AC40 sub_801AC40: @ 801AC40 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_801AC40 thumb_func_start sub_801AC54 sub_801AC54: @ 801AC54 push {r4,lr} sub sp, 0xC ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x33 bls _0801AC6A b _0801AFAE _0801AC6A: lsls r0, 2 ldr r1, =_0801AC7C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801AC7C: .4byte _0801AD4C .4byte _0801ADFC .4byte _0801AE24 .4byte _0801AE48 .4byte _0801AE98 .4byte _0801AFAE .4byte _0801AF7C .4byte _0801AF58 .4byte _0801AF7C .4byte _0801AF98 .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AFAE .4byte _0801AF24 .4byte _0801AF40 _0801AD4C: movs r0, 0 movs r1, 0 bl SetGpuReg ldr r4, =gUnknown_02022C6C movs r0, 0x4 bl AllocZeroed str r0, [r4] bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F0DD0 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates bl reset_temp_tile_data_buffers ldr r0, =gUnknown_082F0DD4 bl InitWindows lsls r0, 16 cmp r0, 0 bne _0801AD8C b _0801AFC2 _0801AD8C: bl DeactivateAllTextPrinters movs r0, 0 bl ClearWindowTilemap movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0 movs r1, 0x1 movs r2, 0xD0 bl sub_809882C movs r0, 0 movs r1, 0x1 movs r2, 0xD0 bl box_border_load_tiles_and_pal bl sub_819789C ldr r0, =sub_801AC40 bl SetVBlankCallback ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0801AF8A .pool _0801ADFC: ldr r0, =gUnknown_02022C6C ldr r0, [r0] ldr r1, =gText_CommStandbyAwaitingOtherPlayer movs r2, 0 bl sub_801ABDC cmp r0, 0 bne _0801AE0E b _0801AFAE _0801AE0E: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0801AF8A .pool _0801AE24: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0 bl ShowBg ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0801AF8A .pool _0801AE48: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _0801AE54 b _0801AFAE _0801AE54: ldr r4, =gUnknown_020228C4 adds r0, r4, 0 movs r1, 0 movs r2, 0x20 bl memset ldr r0, =gUnknown_0203CEF8 ldrb r1, [r0] ldrb r0, [r0, 0x1] cmn r1, r0 bne _0801AE78 movs r0, 0x52 b _0801AE7A .pool _0801AE78: movs r0, 0x51 _0801AE7A: strb r0, [r4] ldr r1, =gUnknown_020228C4 movs r0, 0 movs r2, 0x20 bl SendBlock ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0801AF8A .pool _0801AE98: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0801AEA6 b _0801AFAE _0801AEA6: ldr r1, =gBlockRecvBuffer ldrh r0, [r1] cmp r0, 0x51 bne _0801AEE0 movs r2, 0x80 lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0x51 bne _0801AEE0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x32 b _0801AF16 .pool _0801AEE0: bl sub_800AC34 ldr r4, =gBlockRecvBuffer bl GetMultiplayerId lsls r0, 24 lsrs r0, 16 adds r0, r4 ldrh r0, [r0] cmp r0, 0x52 bne _0801AF0C ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x6 b _0801AF16 .pool _0801AF0C: ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x8 _0801AF16: strb r1, [r0] bl ResetBlockReceivedFlags b _0801AFAE .pool _0801AF24: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0801AFAE bl sub_800ADF8 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0801AF8A .pool _0801AF40: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801AFAE ldr r0, =sub_801AAD4 bl SetMainCallback2 b _0801AFAE .pool _0801AF58: ldr r0, =gUnknown_02022C6C ldr r0, [r0] ldr r1, =gText_RefusedBattle movs r2, 0x1 bl sub_801ABDC cmp r0, 0 beq _0801AFAE ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 b _0801AFAE .pool _0801AF7C: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801AFAE movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 _0801AF8A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0801AFAE .pool _0801AF98: ldr r0, =gUnknown_02022C6C ldr r0, [r0] ldr r1, =gText_BattleWasRefused movs r2, 0x1 bl sub_801ABDC cmp r0, 0 beq _0801AFAE ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 _0801AFAE: bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade _0801AFC2: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801AC54 thumb_func_start sub_801AFD8 sub_801AFD8: @ 801AFD8 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r0, =gSaveBlock1Ptr ldr r1, [r0] ldr r0, =0x0000322c adds r1, r0 ldr r2, =0x050000db mov r0, sp bl CpuSet bl sub_801B180 bl sub_811F8BC add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_801AFD8 thumb_func_start sub_801B00C sub_801B00C: @ 801B00C ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003230 adds r0, r1 bx lr .pool thumb_func_end sub_801B00C thumb_func_start sav1_get_mevent_buffer_1 sav1_get_mevent_buffer_1: @ 801B020 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r0, r1 bx lr .pool thumb_func_end sav1_get_mevent_buffer_1 thumb_func_start sav1_get_mevent_buffer_2 sav1_get_mevent_buffer_2: @ 801B034 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xD5 lsls r1, 6 adds r0, r1 bx lr .pool thumb_func_end sav1_get_mevent_buffer_2 thumb_func_start sub_801B044 sub_801B044: @ 801B044 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x0000356c adds r0, r1 bx lr .pool thumb_func_end sub_801B044 thumb_func_start sub_801B058 sub_801B058: @ 801B058 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003564 adds r0, r1 bx lr .pool thumb_func_end sub_801B058 thumb_func_start sub_801B06C sub_801B06C: @ 801B06C push {lr} bl sub_801B14C pop {r0} bx r0 thumb_func_end sub_801B06C thumb_func_start sub_801B078 sub_801B078: @ 801B078 push {r4-r7,lr} adds r7, r0, 0 bl sub_801B114 cmp r0, 0 beq _0801B0C4 bl sub_801B14C ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r5, =0x00003230 adds r0, r5 movs r6, 0xDE lsls r6, 1 adds r1, r7, 0 adds r2, r6, 0 bl memcpy ldr r0, [r4] adds r0, r5 adds r1, r6, 0 bl CalcCRC16WithTable ldr r1, [r4] ldr r2, =0x0000322c adds r1, r2 lsls r0, 16 lsrs r0, 16 str r0, [r1] movs r0, 0x1 b _0801B0C6 .pool _0801B0C4: movs r0, 0 _0801B0C6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801B078 thumb_func_start sub_801B0CC sub_801B0CC: @ 801B0CC push {r4,lr} ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r1, =0x00003230 adds r0, r1 movs r1, 0xDE lsls r1, 1 bl CalcCRC16WithTable lsls r0, 16 lsrs r0, 16 ldr r4, [r4] ldr r2, =0x0000322c adds r1, r4, r2 ldr r1, [r1] cmp r0, r1 bne _0801B10C ldr r1, =0x00003230 adds r0, r4, r1 bl sub_801B114 cmp r0, 0 beq _0801B10C movs r0, 0x1 b _0801B10E .pool _0801B10C: movs r0, 0 _0801B10E: pop {r4} pop {r1} bx r1 thumb_func_end sub_801B0CC thumb_func_start sub_801B114 sub_801B114: @ 801B114 push {lr} ldrh r0, [r0] cmp r0, 0 beq _0801B120 movs r0, 0x1 b _0801B122 _0801B120: movs r0, 0 _0801B122: pop {r1} bx r1 thumb_func_end sub_801B114 thumb_func_start sub_801B128 sub_801B128: @ 801B128 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003230 adds r0, r1 ldrb r0, [r0, 0x2] cmp r0, 0 beq _0801B144 movs r0, 0x1 b _0801B146 .pool _0801B144: movs r0, 0 _0801B146: pop {r1} bx r1 thumb_func_end sub_801B128 thumb_func_start sub_801B14C sub_801B14C: @ 801B14C push {r4,lr} sub sp, 0x4 movs r4, 0 str r4, [sp] bl sub_801B00C adds r1, r0, 0 ldr r2, =0x0500006f mov r0, sp bl CpuSet ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x0000322c adds r0, r1 str r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801B14C thumb_func_start sub_801B180 sub_801B180: @ 801B180 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801B044 adds r1, r0, 0 ldr r2, =0x05000001 mov r0, sp bl CpuSet bl sub_801DBC0 add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_801B180 thumb_func_start sub_801B1A4 sub_801B1A4: @ 801B1A4 push {r4,r5,lr} adds r5, r0, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003230 adds r4, r0, r1 bl sub_801B0CC cmp r0, 0 bne _0801B1C4 _0801B1B8: movs r0, 0 b _0801B1DC .pool _0801B1C4: movs r2, 0 ldr r3, =0x000001bb _0801B1C8: adds r0, r4, r2 adds r1, r5, r2 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _0801B1B8 adds r2, 0x1 cmp r2, r3 bls _0801B1C8 movs r0, 0x1 _0801B1DC: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_801B1A4 thumb_func_start sub_801B1E8 sub_801B1E8: @ 801B1E8 push {lr} bl sub_801B330 bl sub_801B368 bl sub_801B9F8 bl ClearRamScript bl sub_809D4D8 bl sub_809D570 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000bec adds r0, r1 bl sub_816534C pop {r0} bx r0 .pool thumb_func_end sub_801B1E8 thumb_func_start sub_801B21C sub_801B21C: @ 801B21C push {r4-r7,lr} adds r7, r0, 0 bl sub_801B2CC cmp r0, 0 beq _0801B274 bl sub_801B1E8 ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r5, =0x000033f0 adds r0, r5 movs r6, 0xA6 lsls r6, 1 adds r1, r7, 0 adds r2, r6, 0 bl memcpy ldr r0, [r4] adds r0, r5 adds r1, r6, 0 bl CalcCRC16WithTable ldr r1, [r4] ldr r3, =0x000033ec adds r2, r1, r3 lsls r0, 16 lsrs r0, 16 str r0, [r2] movs r0, 0xD5 lsls r0, 6 adds r2, r1, r0 adds r1, r5 ldrh r0, [r1, 0x2] strh r0, [r2, 0x6] movs r0, 0x1 b _0801B276 .pool _0801B274: movs r0, 0 _0801B276: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801B21C thumb_func_start sub_801B27C sub_801B27C: @ 801B27C push {r4,r5,lr} ldr r5, =gSaveBlock1Ptr ldr r0, [r5] ldr r1, =0x000033ec adds r4, r0, r1 adds r1, 0x4 adds r0, r1 movs r1, 0xA6 lsls r1, 1 bl CalcCRC16WithTable lsls r0, 16 lsrs r0, 16 ldr r1, [r4] cmp r1, r0 bne _0801B2C4 ldr r0, [r5] ldr r1, =0x000033f0 adds r0, r1 bl sub_801B2CC cmp r0, 0 beq _0801B2C4 bl sub_80991F8 cmp r0, 0 beq _0801B2C4 movs r0, 0x1 b _0801B2C6 .pool _0801B2C4: movs r0, 0 _0801B2C6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801B27C thumb_func_start sub_801B2CC sub_801B2CC: @ 801B2CC push {lr} adds r2, r0, 0 ldrh r0, [r2] cmp r0, 0 beq _0801B302 ldrb r1, [r2, 0x8] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x2 bhi _0801B302 movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0801B2F0 cmp r0, 0x40 beq _0801B2F0 cmp r0, 0x80 bne _0801B302 _0801B2F0: lsls r0, r1, 26 lsrs r0, 28 cmp r0, 0x7 bhi _0801B302 ldrb r0, [r2, 0x9] cmp r0, 0x7 bhi _0801B302 movs r0, 0x1 b _0801B304 _0801B302: movs r0, 0 _0801B304: pop {r1} bx r1 thumb_func_end sub_801B2CC thumb_func_start sub_801B308 sub_801B308: @ 801B308 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _0801B328 movs r0, 0x1 b _0801B32A .pool _0801B328: movs r0, 0 _0801B32A: pop {r1} bx r1 thumb_func_end sub_801B308 thumb_func_start sub_801B330 sub_801B330: @ 801B330 push {r4,r5,lr} sub sp, 0x4 movs r5, 0 str r5, [sp] ldr r4, =gSaveBlock1Ptr ldr r1, [r4] ldr r0, =0x000033f0 adds r1, r0 ldr r2, =0x05000053 mov r0, sp bl CpuSet ldr r0, [r4] ldr r1, =0x000033ec adds r0, r1 str r5, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801B330 thumb_func_start sub_801B368 sub_801B368: @ 801B368 push {r4,lr} sub sp, 0x4 movs r4, 0 str r4, [sp] bl sav1_get_mevent_buffer_2 adds r1, r0, 0 ldr r2, =0x05000009 mov r0, sp bl CpuSet ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x0000353c adds r0, r1 str r4, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801B368 thumb_func_start sub_801B39C sub_801B39C: @ 801B39C push {lr} bl sub_801B27C cmp r0, 0 bne _0801B3AA movs r0, 0 b _0801B3B4 _0801B3AA: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r0, r1 ldrh r0, [r0] _0801B3B4: pop {r1} bx r1 .pool thumb_func_end sub_801B39C thumb_func_start sub_801B3C0 sub_801B3C0: @ 801B3C0 push {lr} adds r2, r0, 0 ldrb r1, [r2, 0x8] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 bne _0801B3D4 movs r0, 0x3F ands r0, r1 strb r0, [r2, 0x8] _0801B3D4: pop {r0} bx r0 thumb_func_end sub_801B3C0 thumb_func_start sub_801B3D8 sub_801B3D8: @ 801B3D8 push {lr} lsls r0, 16 ldr r1, =0xfc180000 adds r0, r1 lsrs r0, 16 cmp r0, 0x13 bls _0801B3F0 movs r0, 0 b _0801B3F2 .pool _0801B3F0: movs r0, 0x1 _0801B3F2: pop {r1} bx r1 thumb_func_end sub_801B3D8 thumb_func_start sub_801B3F8 sub_801B3F8: @ 801B3F8 push {r4,lr} bl sub_801B39C lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl sub_801B3D8 cmp r0, 0 beq _0801B430 ldr r1, =gUnknown_082F0DE8 ldr r2, =0xfffffc18 adds r0, r4, r2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0801B430 movs r0, 0x1 b _0801B432 .pool _0801B430: movs r0, 0 _0801B432: pop {r4} pop {r1} bx r1 thumb_func_end sub_801B3F8 thumb_func_start sub_801B438 sub_801B438: @ 801B438 push {lr} movs r3, 0 cmp r3, r1 bge _0801B45A adds r2, r0, 0 adds r2, 0x8 _0801B444: ldrh r0, [r2, 0xE] cmp r0, 0 beq _0801B452 ldrh r0, [r2] cmp r0, 0 beq _0801B452 adds r3, 0x1 _0801B452: adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bne _0801B444 _0801B45A: adds r0, r3, 0 pop {r1} bx r1 thumb_func_end sub_801B438 thumb_func_start sub_801B460 sub_801B460: @ 801B460 push {r4-r7,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 cmp r1, r2 bge _0801B49A ldrh r6, [r4, 0x2] movs r0, 0x16 adds r0, r5 mov r12, r0 _0801B474: lsls r3, r1, 1 mov r7, r12 ldrh r0, [r7] cmp r0, r6 beq _0801B48C adds r0, r5, 0 adds r0, 0x8 adds r0, r3 ldrh r0, [r0] ldrh r3, [r4] cmp r0, r3 bne _0801B490 _0801B48C: movs r0, 0x1 b _0801B49C _0801B490: movs r7, 0x2 add r12, r7 adds r1, 0x1 cmp r1, r2 blt _0801B474 _0801B49A: movs r0, 0 _0801B49C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801B460 thumb_func_start sub_801B4A4 sub_801B4A4: @ 801B4A4 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2] cmp r0, 0 beq _0801B4C4 ldrh r1, [r1] cmp r1, 0 beq _0801B4C4 ldr r0, =0x0000019b cmp r1, r0 bhi _0801B4C4 movs r0, 0x1 b _0801B4C6 .pool _0801B4C4: movs r0, 0 _0801B4C6: pop {r1} bx r1 thumb_func_end sub_801B4A4 thumb_func_start sub_801B4CC sub_801B4CC: @ 801B4CC push {lr} bl sub_801B27C cmp r0, 0 beq _0801B500 ldr r0, =gSaveBlock1Ptr ldr r3, [r0] ldr r0, =0x000033f0 adds r2, r3, r0 ldrb r1, [r2, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801B500 movs r1, 0xD5 lsls r1, 6 adds r0, r3, r1 ldrb r1, [r2, 0x9] bl sub_801B438 b _0801B502 .pool _0801B500: movs r0, 0 _0801B502: pop {r1} bx r1 thumb_func_end sub_801B4CC thumb_func_start sub_801B508 sub_801B508: @ 801B508 push {r4-r6,lr} adds r5, r0, 0 ldr r6, =gSaveBlock1Ptr ldr r0, [r6] ldr r1, =0x000033f0 adds r0, r1 ldrb r4, [r0, 0x9] adds r0, r5, 0 bl sub_801B4A4 cmp r0, 0 beq _0801B572 ldr r0, [r6] movs r1, 0xD5 lsls r1, 6 adds r0, r1 adds r1, r5, 0 adds r2, r4, 0 bl sub_801B460 cmp r0, 0 beq _0801B54C b _0801B572 .pool _0801B540: ldrh r0, [r5, 0x2] strh r0, [r1] ldrh r0, [r5] strh r0, [r2] movs r0, 0x1 b _0801B574 _0801B54C: movs r3, 0 cmp r3, r4 bge _0801B572 ldr r0, [r6] ldr r6, =0x00003548 adds r2, r0, r6 adds r6, 0xE adds r1, r0, r6 _0801B55C: ldrh r0, [r2, 0xE] cmp r0, 0 bne _0801B568 ldrh r0, [r2] cmp r0, 0 beq _0801B540 _0801B568: adds r2, 0x2 adds r1, 0x2 adds r3, 0x1 cmp r3, r4 blt _0801B55C _0801B572: movs r0, 0 _0801B574: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_801B508 thumb_func_start sub_801B580 sub_801B580: @ 801B580 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 movs r0, 0 str r0, [sp] ldr r2, =0x05000019 mov r0, sp adds r1, r5, 0 bl CpuSet ldr r0, =0x00000101 str r0, [r5] movs r0, 0x1 strh r0, [r5, 0x4] str r0, [r5, 0x8] cmp r4, 0 beq _0801B5C0 movs r0, 0x5 strh r0, [r5, 0xC] ldr r0, =0x00000201 b _0801B5C8 .pool _0801B5C0: movs r0, 0x4 strh r0, [r5, 0xC] movs r0, 0x80 lsls r0, 2 _0801B5C8: str r0, [r5, 0x10] bl sub_801B27C cmp r0, 0 beq _0801B5FC bl sav1_get_mevent_buffer_1 ldrh r0, [r0] strh r0, [r5, 0x14] bl sav1_get_mevent_buffer_2 adds r1, r5, 0 adds r1, 0x20 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sav1_get_mevent_buffer_1 ldrb r1, [r0, 0x9] adds r0, r5, 0 adds r0, 0x44 strb r1, [r0] b _0801B5FE _0801B5FC: strh r0, [r5, 0x14] _0801B5FE: adds r4, r5, 0 adds r4, 0x4C ldr r0, =gSaveBlock2Ptr mov r8, r0 adds r6, r5, 0 adds r6, 0x45 adds r7, r5, 0 adds r7, 0x50 movs r1, 0x5C adds r1, r5 mov r9, r1 movs r2, 0x60 adds r2, r5 mov r10, r2 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r3, =0x00003564 adds r2, r0, r3 adds r1, r5, 0 adds r1, 0x16 movs r3, 0x3 _0801B628: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _0801B628 mov r0, r8 ldr r1, [r0] adds r1, 0xA adds r0, r4, 0 bl CopyUnalignedWord mov r2, r8 ldr r1, [r2] adds r0, r6, 0 bl StringCopy ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r3, =0x00002bb0 adds r2, r0, r3 adds r1, r7, 0 movs r3, 0x5 _0801B658: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _0801B658 ldr r1, =RomHeaderGameCode mov r0, r9 movs r2, 0x4 bl memcpy ldr r0, =RomHeaderSoftwareVersion ldrb r0, [r0] mov r4, r10 strb r0, [r4] add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801B580 thumb_func_start sub_801B6A0 sub_801B6A0: @ 801B6A0 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 ldr r1, [r2] ldr r0, =0x00000101 cmp r1, r0 bne _0801B6DC ldrh r1, [r2, 0x4] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0801B6DC ldr r0, [r2, 0x8] ands r0, r3 cmp r0, 0 beq _0801B6DC cmp r4, 0 bne _0801B6E4 ldrh r1, [r2, 0xC] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801B6DC ldr r0, [r2, 0x10] movs r1, 0xE0 lsls r1, 2 ands r0, r1 cmp r0, 0 bne _0801B6E4 _0801B6DC: movs r0, 0 b _0801B6E6 .pool _0801B6E4: movs r0, 0x1 _0801B6E6: pop {r4} pop {r1} bx r1 thumb_func_end sub_801B6A0 thumb_func_start sub_801B6EC sub_801B6EC: @ 801B6EC push {lr} ldrh r1, [r1, 0x14] cmp r1, 0 bne _0801B6F8 movs r0, 0 b _0801B704 _0801B6F8: ldrh r0, [r0] cmp r0, r1 beq _0801B702 movs r0, 0x2 b _0801B704 _0801B702: movs r0, 0x1 _0801B704: pop {r1} bx r1 thumb_func_end sub_801B6EC thumb_func_start sub_801B708 sub_801B708: @ 801B708 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 adds r5, r4, 0 adds r5, 0x20 adds r4, 0x44 ldrb r1, [r4] adds r0, r5, 0 bl sub_801B438 ldrb r2, [r4] subs r4, r2, r0 cmp r4, 0 bne _0801B728 movs r0, 0x1 b _0801B742 _0801B728: adds r0, r5, 0 adds r1, r6, 0 bl sub_801B460 cmp r0, 0 beq _0801B738 movs r0, 0x3 b _0801B742 _0801B738: cmp r4, 0x1 beq _0801B740 movs r0, 0x2 b _0801B742 _0801B740: movs r0, 0x4 _0801B742: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801B708 thumb_func_start sub_801B748 sub_801B748: @ 801B748 push {r4,lr} movs r3, 0 adds r2, r0, 0 adds r2, 0x16 _0801B750: ldrh r0, [r2] ldrh r4, [r1] cmp r0, r4 beq _0801B75C movs r0, 0 b _0801B768 _0801B75C: adds r1, 0x2 adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _0801B750 movs r0, 0x1 _0801B768: pop {r4} pop {r1} bx r1 thumb_func_end sub_801B748 thumb_func_start sub_801B770 sub_801B770: @ 801B770 push {lr} adds r2, r0, 0 adds r2, 0x20 adds r0, 0x44 ldrb r1, [r0] adds r0, r2, 0 bl sub_801B438 pop {r1} bx r1 thumb_func_end sub_801B770 thumb_func_start sub_801B784 sub_801B784: @ 801B784 push {lr} adds r2, r0, 0 cmp r1, 0x4 bhi _0801B7D0 lsls r0, r1, 2 ldr r1, =_0801B79C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801B79C: .4byte _0801B7B0 .4byte _0801B7B4 .4byte _0801B7B8 .4byte _0801B7BC .4byte _0801B7C8 _0801B7B0: ldrh r0, [r2, 0x20] b _0801B7D2 _0801B7B4: ldrh r0, [r2, 0x22] b _0801B7D2 _0801B7B8: ldrh r0, [r2, 0x24] b _0801B7D2 _0801B7BC: adds r0, r2, 0 bl sub_801B770 lsls r0, 16 lsrs r0, 16 b _0801B7D2 _0801B7C8: adds r0, r2, 0 adds r0, 0x44 ldrb r0, [r0] b _0801B7D2 _0801B7D0: movs r0, 0 _0801B7D2: pop {r1} bx r1 thumb_func_end sub_801B784 thumb_func_start sub_801B7D8 sub_801B7D8: @ 801B7D8 push {r4,lr} adds r4, r0, 0 ldr r2, =gSaveBlock1Ptr ldr r0, [r2] ldr r1, =0x000033f0 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 adds r3, r2, 0 cmp r0, 0x2 bne _0801B850 movs r2, 0 cmp r4, 0x4 bhi _0801B83A lsls r0, r4, 2 ldr r1, =_0801B80C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801B80C: .4byte _0801B820 .4byte _0801B828 .4byte _0801B834 .4byte _0801B83A .4byte _0801B83A _0801B820: ldr r0, [r3] movs r1, 0xD5 lsls r1, 6 b _0801B838 _0801B828: ldr r0, [r3] ldr r1, =0x00003542 b _0801B838 .pool _0801B834: ldr r0, [r3] ldr r1, =0x00003544 _0801B838: adds r2, r0, r1 _0801B83A: cmp r2, 0 beq _0801B850 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 ldr r1, =0x000003e7 cmp r0, r1 bls _0801B850 strh r1, [r2] _0801B850: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801B7D8 thumb_func_start mevent_081445C0 mevent_081445C0: @ 801B860 push {lr} cmp r0, 0x4 bhi _0801B938 lsls r0, 2 ldr r1, =_0801B874 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801B874: .4byte _0801B888 .4byte _0801B8AC .4byte _0801B8D0 .4byte _0801B8F4 .4byte _0801B918 _0801B888: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r1, =0x000033f0 adds r0, r2, r1 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0801B938 movs r1, 0xD5 lsls r1, 6 adds r0, r2, r1 ldrh r0, [r0] b _0801B93A .pool _0801B8AC: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r1, =0x000033f0 adds r0, r2, r1 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0801B938 movs r1, 0xD5 lsls r1, 6 adds r0, r2, r1 ldrh r0, [r0, 0x2] b _0801B93A .pool _0801B8D0: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r1, =0x000033f0 adds r0, r2, r1 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 bne _0801B938 movs r1, 0xD5 lsls r1, 6 adds r0, r2, r1 ldrh r0, [r0, 0x4] b _0801B93A .pool _0801B8F4: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r0, r1 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801B938 bl sub_801B4CC lsls r0, 16 lsrs r0, 16 b _0801B93A .pool _0801B918: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r2, r0, r1 ldrb r1, [r2, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801B938 ldrb r0, [r2, 0x9] b _0801B93A .pool _0801B938: movs r0, 0 _0801B93A: pop {r1} bx r1 thumb_func_end mevent_081445C0 thumb_func_start sub_801B940 sub_801B940: @ 801B940 ldr r1, =gUnknown_02022C70 movs r0, 0 str r0, [r1] bx lr .pool thumb_func_end sub_801B940 thumb_func_start sub_801B94C sub_801B94C: @ 801B94C push {r4,r5,lr} lsls r0, 16 lsrs r0, 16 adds r4, r0, 0 ldr r5, =gUnknown_02022C70 movs r0, 0 str r0, [r5] cmp r4, 0 beq _0801B98A bl sub_801B27C cmp r0, 0 beq _0801B988 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x000033f0 adds r0, r1 ldrh r0, [r0] cmp r0, r4 bne _0801B988 movs r0, 0x1 str r0, [r5] b _0801B98A .pool _0801B988: movs r0, 0 _0801B98A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801B94C thumb_func_start sub_801B990 sub_801B990: @ 801B990 push {lr} adds r2, r0, 0 ldr r0, =gUnknown_02022C70 ldr r0, [r0] cmp r0, 0 beq _0801B9EC cmp r2, 0x1 beq _0801B9DC cmp r2, 0x1 bcc _0801B9C0 cmp r2, 0x2 bne _0801B9EC ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r0, =0x00003584 adds r2, r0 movs r0, 0x2 b _0801B9CA .pool _0801B9C0: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r0, =0x00003570 adds r2, r0 movs r0, 0 _0801B9CA: movs r3, 0x5 bl sub_801BA8C b _0801B9EC .pool _0801B9DC: ldr r0, =gSaveBlock1Ptr ldr r2, [r0] ldr r0, =0x00003570 adds r2, r0 movs r0, 0x1 movs r3, 0x5 bl sub_801BA8C _0801B9EC: pop {r0} bx r0 .pool thumb_func_end sub_801B990 thumb_func_start sub_801B9F8 sub_801B9F8: @ 801B9F8 push {lr} sub sp, 0x4 movs r0, 0 str r0, [sp] ldr r0, =gSaveBlock1Ptr ldr r1, [r0] ldr r0, =0x00003570 adds r1, r0 ldr r2, =0x0500000a mov r0, sp bl CpuSet add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_801B9F8 thumb_func_start sub_801BA24 sub_801BA24: @ 801BA24 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0 cmp r1, r2 bge _0801BA46 ldr r0, [r4] cmp r0, r5 beq _0801BA46 adds r3, r4, 0 _0801BA38: adds r3, 0x4 adds r1, 0x1 cmp r1, r2 bge _0801BA46 ldr r0, [r3] cmp r0, r5 bne _0801BA38 _0801BA46: cmp r1, r2 bne _0801BA68 subs r3, r1, 0x1 cmp r3, 0 ble _0801BA62 lsls r0, r3, 2 subs r0, 0x4 adds r2, r0, r4 _0801BA56: ldr r0, [r2] str r0, [r2, 0x4] subs r2, 0x4 subs r3, 0x1 cmp r3, 0 bgt _0801BA56 _0801BA62: str r5, [r4] movs r0, 0x1 b _0801BA84 _0801BA68: adds r3, r1, 0 cmp r3, 0 ble _0801BA80 lsls r0, r3, 2 subs r0, 0x4 adds r2, r0, r4 _0801BA74: ldr r0, [r2] str r0, [r2, 0x4] subs r2, 0x4 subs r3, 0x1 cmp r3, 0 bgt _0801BA74 _0801BA80: str r5, [r4] movs r0, 0 _0801BA84: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801BA24 thumb_func_start sub_801BA8C sub_801BA8C: @ 801BA8C push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 adds r1, r2, 0 adds r2, r3, 0 bl sub_801BA24 cmp r0, 0 beq _0801BAA4 adds r0, r4, 0 bl sub_801B7D8 _0801BAA4: pop {r4} pop {r0} bx r0 thumb_func_end sub_801BA8C thumb_func_start sub_801BAAC sub_801BAAC: @ 801BAAC push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 cmp r5, 0 beq _0801BAC8 cmp r6, 0 beq _0801BAC8 ldr r7, =gUnknown_02022C74 ldr r0, =0x0000145c bl AllocZeroed str r0, [r7] cmp r0, 0 bne _0801BAD4 _0801BAC8: movs r0, 0 b _0801BB3E .pool _0801BAD4: movs r4, 0xA6 lsls r4, 1 adds r1, r5, 0 adds r2, r4, 0 bl memcpy ldr r1, [r7] adds r1, r4 adds r0, r6, 0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r7] ldrb r1, [r2, 0x8] lsls r0, r1, 26 lsrs r0, 28 cmp r0, 0x7 bls _0801BB06 movs r0, 0x3D negs r0, r0 ands r0, r1 strb r0, [r2, 0x8] _0801BB06: ldr r2, [r7] ldrb r1, [r2, 0x8] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x2 bls _0801BB1A movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r2, 0x8] _0801BB1A: ldr r1, [r7] ldrb r0, [r1, 0x9] cmp r0, 0x7 bls _0801BB26 movs r0, 0 strb r0, [r1, 0x9] _0801BB26: ldr r0, [r7] movs r1, 0xB8 lsls r1, 1 adds r2, r0, r1 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 28 lsls r0, 4 ldr r1, =gUnknown_082F1D60 adds r0, r1 str r0, [r2] movs r0, 0x1 _0801BB3E: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_801BAAC thumb_func_start sub_801BB48 sub_801BB48: @ 801BB48 push {r4,lr} ldr r4, =gUnknown_02022C74 ldr r0, [r4] cmp r0, 0 beq _0801BB64 ldr r2, =0x0000145c movs r1, 0 bl memset ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _0801BB64: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801BB48 thumb_func_start sub_801BB74 sub_801BB74: @ 801BB74 push {r4-r6,lr} sub sp, 0x24 ldr r5, =gUnknown_02022C74 ldr r0, [r5] cmp r0, 0 bne _0801BB8C movs r0, 0x1 negs r0, r0 b _0801BD98 .pool _0801BB8C: movs r4, 0xBA lsls r4, 1 adds r0, r4 ldrb r0, [r0] cmp r0, 0x7 bls _0801BB9A b _0801BD70 _0801BB9A: lsls r0, 2 ldr r1, =_0801BBA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801BBA8: .4byte _0801BBC8 .4byte _0801BBDA .4byte _0801BBE8 .4byte _0801BC8C .4byte _0801BD14 .4byte _0801BD1A .4byte _0801BD34 .4byte _0801BD3A _0801BBC8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0801BD86 _0801BBDA: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0801BBE6 b _0801BD86 _0801BBE6: b _0801BD96 _0801BBE8: movs r5, 0x1E str r5, [sp] movs r4, 0x14 str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r5, =gUnknown_02022C74 ldr r0, [r5] movs r1, 0xB8 lsls r1, 1 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x4] movs r0, 0 str r0, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0x8 bl decompress_and_copy_tile_data_to_vram ldr r4, =gUnknown_082F0E1C adds r0, r4, 0 bl AddWindow ldr r1, [r5] movs r2, 0xBB lsls r2, 1 adds r1, r2 strh r0, [r1] adds r0, r4, 0 adds r0, 0x8 bl AddWindow ldr r1, [r5] movs r2, 0xBC lsls r2, 1 adds r1, r2 strh r0, [r1] adds r4, 0x10 adds r0, r4, 0 bl AddWindow ldr r1, [r5] movs r2, 0xBD lsls r2, 1 adds r1, r2 strh r0, [r1] b _0801BD86 .pool _0801BC8C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0801BC9A b _0801BD96 _0801BC9A: movs r0, 0x1 bl stdpal_get movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r5, =gUnknown_02022C74 ldr r0, [r5] movs r4, 0xB8 lsls r4, 1 adds r0, r4 ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r1, [r5] adds r4, r1, r4 ldr r0, [r4] ldr r0, [r0, 0x8] ldr r4, =0x0000045c adds r1, r4 bl LZ77UnCompWram ldr r1, [r5] adds r1, r4 movs r2, 0x1E str r2, [sp] movs r0, 0x14 str r0, [sp, 0x4] str r6, [sp, 0x8] str r6, [sp, 0xC] str r2, [sp, 0x10] str r0, [sp, 0x14] movs r0, 0x1 str r0, [sp, 0x18] movs r0, 0x8 str r0, [sp, 0x1C] str r6, [sp, 0x20] movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyRectToBgTilemapBufferRect movs r0, 0x2 bl CopyBgTilemapBufferToVram b _0801BD86 .pool _0801BD14: bl sub_801BEF8 b _0801BD86 _0801BD1A: movs r0, 0 bl sub_801C178 movs r0, 0x1 bl sub_801C178 movs r0, 0x2 bl sub_801C178 movs r0, 0x1 bl CopyBgTilemapBufferToVram b _0801BD86 _0801BD34: bl sub_80D2F04 b _0801BD86 _0801BD3A: movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] bl sub_801C4C0 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl UpdatePaletteFade b _0801BD86 .pool _0801BD70: bl UpdatePaletteFade lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0801BD96 ldr r0, [r5] adds r0, r4 strb r1, [r0] movs r0, 0x1 b _0801BD98 _0801BD86: ldr r0, =gUnknown_02022C74 ldr r1, [r0] movs r0, 0xBA lsls r0, 1 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0801BD96: movs r0, 0 _0801BD98: add sp, 0x24 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_801BB74 thumb_func_start sub_801BDA4 sub_801BDA4: @ 801BDA4 push {r4,r5,lr} sub sp, 0x8 adds r2, r0, 0 ldr r5, =gUnknown_02022C74 ldr r0, [r5] cmp r0, 0 bne _0801BDBC movs r0, 0x1 negs r0, r0 b _0801BEEC .pool _0801BDBC: movs r4, 0xBA lsls r4, 1 adds r0, r4 ldrb r0, [r0] cmp r0, 0x5 bls _0801BDCA b _0801BEC4 _0801BDCA: lsls r0, 2 ldr r1, =_0801BDD8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801BDD8: .4byte _0801BDF0 .4byte _0801BE02 .4byte _0801BE0E .4byte _0801BE56 .4byte _0801BE94 .4byte _0801BE9E _0801BDF0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0801BEDA _0801BE02: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _0801BEDA b _0801BEEA _0801BE0E: movs r5, 0x1E str r5, [sp] movs r4, 0x14 str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram b _0801BEDA _0801BE56: movs r0, 0x1 bl HideBg movs r0, 0x2 bl HideBg ldr r4, =gUnknown_02022C74 ldr r0, [r4] movs r1, 0xBD lsls r1, 1 adds r0, r1 ldrb r0, [r0] bl RemoveWindow ldr r0, [r4] movs r1, 0xBC lsls r1, 1 adds r0, r1 ldrb r0, [r0] bl RemoveWindow ldr r0, [r4] movs r1, 0xBB lsls r1, 1 adds r0, r1 ldrb r0, [r0] bl RemoveWindow b _0801BEDA .pool _0801BE94: bl sub_801C61C bl sub_80D2F9C b _0801BEDA _0801BE9E: ldr r0, =gUnknown_02022C60 ldrb r0, [r0] adds r1, r2, 0 bl sub_80186EC movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0801BEDA .pool _0801BEC4: bl UpdatePaletteFade lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _0801BEEA ldr r0, [r5] adds r0, r4 strb r1, [r0] movs r0, 0x1 b _0801BEEC _0801BEDA: ldr r0, =gUnknown_02022C74 ldr r1, [r0] movs r0, 0xBA lsls r0, 1 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0801BEEA: movs r0, 0 _0801BEEC: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_801BDA4 thumb_func_start sub_801BEF8 sub_801BEF8: @ 801BEF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r5, 0 mov r0, sp movs r1, 0 movs r2, 0x6 bl memset ldr r4, =gUnknown_02022C74 ldr r1, [r4] ldr r2, =0x0000018b adds r0, r1, r2 adds r1, 0xA movs r2, 0x28 bl memcpy ldr r0, [r4] ldr r3, =0x000001b3 adds r1, r0, r3 movs r0, 0xFF strb r0, [r1] ldr r1, [r4] movs r2, 0xDA lsls r2, 1 adds r0, r1, r2 adds r1, 0x32 movs r2, 0x28 bl memcpy ldr r0, [r4] movs r3, 0xEE lsls r3, 1 adds r0, r3 movs r1, 0x1 negs r1, r1 strb r1, [r0] ldr r1, [r4] ldr r0, [r1, 0x4] ldr r2, =0x000f423f cmp r0, r2 bls _0801BF54 str r2, [r1, 0x4] _0801BF54: ldr r1, [r4] ldr r2, =0x000001dd adds r0, r1, r2 ldr r1, [r1, 0x4] movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN adds r6, r4, 0 _0801BF66: ldr r2, [r6] lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r5 adds r0, r4, r2 movs r3, 0xF2 lsls r3, 1 adds r0, r3 adds r1, r2 adds r1, 0x5A movs r2, 0x28 bl memcpy ldr r1, [r6] movs r0, 0x83 lsls r0, 2 adds r1, r0 adds r1, r4 movs r2, 0x1 negs r2, r2 adds r7, r2, 0 movs r0, 0xFF strb r0, [r1] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _0801BF66 ldr r6, =gUnknown_02022C74 ldr r1, [r6] movs r3, 0xA2 lsls r3, 2 adds r0, r1, r3 adds r1, 0xFA movs r2, 0x28 bl memcpy ldr r0, [r6] movs r4, 0xAC lsls r4, 2 adds r0, r4 movs r1, 0x1 negs r1, r1 adds r4, r1, 0 movs r1, 0xFF strb r1, [r0] ldr r1, [r6] ldrb r0, [r1, 0x8] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 beq _0801C018 cmp r0, 0x1 bgt _0801BFF0 cmp r0, 0 beq _0801BFF6 b _0801C168 .pool _0801BFF0: cmp r0, 0x2 beq _0801C028 b _0801C168 _0801BFF6: ldr r2, =0x000002b1 adds r0, r1, r2 movs r3, 0x91 lsls r3, 1 adds r1, r3 movs r2, 0x28 bl memcpy ldr r1, [r6] ldr r0, =0x000002d9 adds r1, r0 b _0801C01C .pool _0801C018: ldr r2, =0x000002b1 adds r1, r2 _0801C01C: ldrb r0, [r1] orrs r0, r4 strb r0, [r1] b _0801C168 .pool _0801C028: ldr r3, =0x000002b1 adds r0, r1, r3 ldrb r1, [r0] orrs r1, r7 strb r1, [r0] mov r3, sp ldr r1, [r6] movs r4, 0xA6 lsls r4, 1 adds r0, r1, r4 ldrh r0, [r0] ldr r2, =0x000003e7 cmp r0, r2 bls _0801C046 adds r0, r2, 0 _0801C046: strh r0, [r3] mov r3, sp movs r4, 0xA7 lsls r4, 1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, r2 bls _0801C058 adds r0, r2, 0 _0801C058: strh r0, [r3, 0x2] mov r3, sp movs r4, 0xA8 lsls r4, 1 adds r0, r1, r4 ldrh r0, [r0] cmp r0, r2 bls _0801C06A adds r0, r2, 0 _0801C06A: strh r0, [r3, 0x4] movs r5, 0 _0801C06E: lsls r4, r5, 1 adds r4, r5 lsls r4, 4 movs r0, 0xB7 lsls r0, 2 adds r4, r0 ldr r0, [r6] adds r0, r4 adds r0, 0x2A movs r1, 0xFF movs r2, 0x4 bl memset ldr r0, [r6] adds r0, r4 adds r0, 0x1 movs r1, 0xFF movs r2, 0x29 bl memset adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x7 bls _0801C06E movs r5, 0 movs r6, 0 ldr r1, =gUnknown_02022C74 mov r8, r1 movs r2, 0x91 lsls r2, 1 mov r10, r2 ldr r7, =0x00000175 movs r3, 0xB7 lsls r3, 2 mov r9, r3 _0801C0B6: mov r4, r8 ldr r2, [r4] mov r0, r10 adds r1, r2, r0 adds r0, r1, r5 ldrb r3, [r0] cmp r3, 0xF7 beq _0801C0F8 ldr r1, =0x00000175 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 adds r0, r6, r0 ldr r4, =0x000002dd adds r1, r2, r4 adds r1, r0 strb r3, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 b _0801C15E .pool _0801C0F8: adds r0, r5, 0x1 adds r0, r1, r0 ldrb r3, [r0] cmp r3, 0x2 bls _0801C108 adds r0, r5, 0x2 lsls r0, 16 b _0801C15C _0801C108: adds r0, r2, r7 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 add r0, r9 adds r0, r2, r0 adds r0, 0x2A lsls r1, r3, 1 add r1, sp ldrh r1, [r1] movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, r8 ldr r1, [r0] adds r0, r1, r7 ldrb r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r0, r1, r0 adds r4, r5, 0x2 add r1, r10 adds r1, r4 ldrb r1, [r1] add r0, r9 strb r1, [r0] mov r2, r8 ldr r1, [r2] adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r0, r7 ldrb r0, [r0] cmp r0, 0x7 bhi _0801C168 movs r6, 0 lsls r0, r4, 16 _0801C15C: lsrs r5, r0, 16 _0801C15E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x27 bls _0801C0B6 _0801C168: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801BEF8 thumb_func_start sub_801C178 sub_801C178: @ 801C178 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 movs r0, 0 str r0, [sp, 0xC] ldr r7, =gUnknown_02022C74 ldr r0, [r7] lsls r1, r4, 1 movs r2, 0xBB lsls r2, 1 adds r0, r2 adds r0, r1 ldrh r0, [r0] lsls r6, r0, 24 lsrs r5, r6, 24 adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer cmp r4, 0x1 beq _0801C2A0 cmp r4, 0x1 bgt _0801C1C4 cmp r4, 0 beq _0801C1D0 mov r9, r6 b _0801C498 .pool _0801C1C4: mov r0, r8 cmp r0, 0x2 bne _0801C1CC b _0801C304 _0801C1CC: mov r9, r6 b _0801C498 _0801C1D0: ldr r2, [r7] movs r1, 0xB8 lsls r1, 1 mov r10, r1 adds r0, r2, r1 ldr r0, [r0] ldrb r0, [r0] lsls r0, 28 lsrs r0, 28 lsls r1, r0, 1 adds r1, r0 ldr r0, =gUnknown_082F0E10 mov r8, r0 add r1, r8 str r1, [sp] ldr r1, [sp, 0xC] str r1, [sp, 0x4] ldr r0, =0x0000018b adds r2, r0 str r2, [sp, 0x8] adds r0, r5, 0 movs r1, 0x3 movs r2, 0 movs r3, 0x1 bl box_print ldr r4, [r7] movs r1, 0xDA lsls r1, 1 mov r9, r1 add r4, r9 movs r0, 0x3 movs r1, 0x2 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x3 adds r1, r4, 0 bl GetStringWidth movs r1, 0xA0 subs r1, r0 cmp r1, 0 bge _0801C22E movs r1, 0 _0801C22E: lsls r2, r1, 24 lsrs r2, 24 ldr r3, [r7] mov r1, r10 adds r0, r3, r1 ldr r0, [r0] ldrb r1, [r0] lsls r1, 28 lsrs r1, 28 lsls r0, r1, 1 adds r0, r1 add r0, r8 str r0, [sp] ldr r0, [sp, 0xC] str r0, [sp, 0x4] add r3, r9 str r3, [sp, 0x8] adds r0, r5, 0 movs r1, 0x3 movs r3, 0x11 bl box_print ldr r2, [r7] ldr r0, [r2, 0x4] mov r9, r6 cmp r0, 0 bne _0801C266 b _0801C498 _0801C266: mov r1, r10 adds r0, r2, r1 ldr r0, [r0] ldrb r1, [r0] lsls r1, 28 lsrs r1, 28 lsls r0, r1, 1 adds r0, r1 add r0, r8 str r0, [sp] ldr r0, [sp, 0xC] str r0, [sp, 0x4] ldr r1, =0x000001dd adds r0, r2, r1 str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 movs r2, 0xA6 movs r3, 0x11 bl box_print b _0801C498 .pool _0801C2A0: mov r9, r6 _0801C2A2: ldr r2, [sp, 0xC] lsls r4, r2, 24 asrs r4, 24 lsls r3, r4, 4 adds r3, 0x2 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_02022C74 ldr r2, [r0] movs r1, 0xB8 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldrb r0, [r0] lsrs r0, 4 lsls r1, r0, 1 adds r1, r0 ldr r0, =gUnknown_082F0E10 adds r1, r0 str r1, [sp] movs r0, 0 str r0, [sp, 0x4] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r4 movs r1, 0xF2 lsls r1, 1 adds r0, r1 adds r2, r0 str r2, [sp, 0x8] mov r2, r9 lsrs r0, r2, 24 movs r1, 0x3 movs r2, 0 bl box_print adds r4, 0x1 lsls r4, 24 lsrs r0, r4, 24 str r0, [sp, 0xC] asrs r4, 24 cmp r4, 0x3 ble _0801C2A2 b _0801C498 .pool _0801C304: ldr r4, =gUnknown_082F0E18 ldr r2, [r7] ldrb r0, [r2, 0x8] lsls r0, 30 lsrs r0, 30 adds r0, r4 ldrb r3, [r0] movs r1, 0xB8 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 lsls r1, r0, 1 adds r1, r0 ldr r0, =gUnknown_082F0E10 mov r10, r0 add r1, r10 str r1, [sp] ldr r1, [sp, 0xC] str r1, [sp, 0x4] movs r1, 0xA2 lsls r1, 2 adds r0, r2, r1 str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x3 movs r2, 0 bl box_print ldr r2, [r7] ldrb r1, [r2, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 beq _0801C398 lsls r0, r1, 30 lsrs r0, 30 adds r0, r4 ldrb r3, [r0] adds r3, 0x10 lsls r3, 24 lsrs r3, 24 movs r1, 0xB8 lsls r1, 1 adds r0, r2, r1 ldr r0, [r0] ldrb r1, [r0, 0x1] lsls r1, 28 lsrs r1, 28 lsls r0, r1, 1 adds r0, r1 add r0, r10 str r0, [sp] ldr r0, [sp, 0xC] str r0, [sp, 0x4] ldr r1, =0x000002b1 adds r0, r2, r1 str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x3 movs r2, 0 bl box_print mov r9, r6 b _0801C498 .pool _0801C398: movs r2, 0 mov r8, r2 lsls r0, r1, 30 lsrs r0, 30 adds r0, r4 ldrb r0, [r0] adds r4, r0, 0 adds r4, 0x10 movs r0, 0x3 movs r1, 0x2 bl GetFontAttribute lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r7] ldr r1, =0x00000175 adds r0, r1 mov r9, r6 ldr r1, [sp, 0xC] ldrb r0, [r0] cmp r1, r0 bge _0801C498 str r5, [sp, 0x10] lsls r0, r4, 24 lsrs r0, 24 str r0, [sp, 0x14] mov r10, r2 _0801C3CE: mov r0, r8 lsls r2, r0, 24 lsrs r2, 24 ldr r3, [r7] movs r1, 0xB8 lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] ldrb r1, [r0, 0x1] lsls r1, 28 lsrs r1, 28 lsls r0, r1, 1 adds r0, r1 ldr r1, =gUnknown_082F0E10 adds r0, r1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r1, [sp, 0xC] lsls r0, r1, 24 asrs r6, r0, 24 lsls r0, r6, 1 adds r0, r6 lsls r5, r0, 4 movs r0, 0xB7 lsls r0, 2 adds r4, r5, r0 adds r3, r4 adds r3, 0x1 str r3, [sp, 0x8] ldr r0, [sp, 0x10] movs r1, 0x3 ldr r3, [sp, 0x14] bl box_print ldr r1, [r7] adds r0, r1, r5 ldr r2, =0x00000306 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF beq _0801C482 adds r1, r4 adds r1, 0x1 movs r0, 0x3 mov r2, r10 bl GetStringWidth add r8, r0 mov r0, r8 lsls r2, r0, 24 lsrs r2, 24 ldr r3, [r7] movs r1, 0xB8 lsls r1, 1 adds r0, r3, r1 ldr r0, [r0] ldrb r1, [r0, 0x1] lsls r1, 28 lsrs r1, 28 lsls r0, r1, 1 adds r0, r1 ldr r1, =gUnknown_082F0E10 adds r0, r1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] adds r3, r4 adds r3, 0x2A str r3, [sp, 0x8] ldr r0, [sp, 0x10] movs r1, 0x3 ldr r3, [sp, 0x14] bl box_print ldr r1, [r7] adds r1, r4 adds r1, 0x2A movs r0, 0x3 mov r2, r10 bl GetStringWidth ldr r1, [r7] adds r1, r5 movs r2, 0xB7 lsls r2, 2 adds r1, r2 ldrb r1, [r1] adds r0, r1 add r8, r0 _0801C482: adds r1, r6, 0x1 lsls r1, 24 lsrs r0, r1, 24 str r0, [sp, 0xC] asrs r1, 24 ldr r0, [r7] ldr r2, =0x00000175 adds r0, r2 ldrb r0, [r0] cmp r1, r0 blt _0801C3CE _0801C498: mov r1, r9 lsrs r0, r1, 24 movs r1, 0x3 bl CopyWindowToVram add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801C178 thumb_func_start sub_801C4C0 sub_801C4C0: @ 801C4C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r7, 0 ldr r4, =gUnknown_02022C74 ldr r0, [r4] movs r1, 0xBE lsls r1, 1 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r0, [r4] movs r2, 0xA9 lsls r2, 1 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 beq _0801C52C bl sub_80D2E84 lsls r0, 16 lsrs r0, 16 ldr r1, =SpriteCallbackDummy str r7, [sp] str r7, [sp, 0x4] movs r2, 0xDC movs r3, 0x14 bl sub_80D2D78 ldr r1, [r4] movs r2, 0xBE lsls r2, 1 adds r1, r2 strb r0, [r1] ldr r2, =gSprites ldr r0, [r4] movs r1, 0xBE lsls r1, 1 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x8 orrs r1, r2 strb r1, [r0, 0x5] _0801C52C: ldr r1, [r4] ldrb r0, [r1, 0x9] cmp r0, 0 beq _0801C5EE ldrb r1, [r1, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801C5EE ldr r0, =gUnknown_082F1D00 bl LoadCompressedObjectPicUsingHeap ldr r0, [r4] movs r2, 0xB8 lsls r2, 1 adds r0, r2 ldr r0, [r0] ldrb r0, [r0, 0x1] lsrs r0, 4 lsls r0, 3 ldr r1, =gUnknown_082F1D08 adds r0, r1 bl LoadSpritePalette ldr r0, [r4] ldrb r0, [r0, 0x9] cmp r7, r0 bcs _0801C5EE adds r6, r4, 0 ldr r0, =0x0000017d mov r10, r0 movs r1, 0 mov r9, r1 movs r2, 0xFF mov r8, r2 _0801C572: ldr r1, [r6] lsls r4, r7, 1 add r1, r10 adds r1, r4 ldrb r0, [r1] mov r2, r8 orrs r0, r2 strb r0, [r1] ldr r1, [r6] movs r0, 0xBF lsls r0, 1 adds r1, r0 adds r1, r4 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] lsls r1, r7, 5 movs r0, 0xD8 subs r5, r0, r1 ldr r0, =gUnknown_082F1D48 adds r1, r5, 0 movs r2, 0x90 movs r3, 0x8 bl CreateSprite ldr r1, [r6] add r1, r10 adds r1, r4 strb r0, [r1] ldr r0, [r6] movs r1, 0xAA lsls r1, 1 adds r0, r1 adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0 beq _0801C5E0 bl sub_80D2E84 lsls r0, 16 lsrs r0, 16 mov r2, r9 str r2, [sp] str r2, [sp, 0x4] ldr r1, =SpriteCallbackDummy adds r2, r5, 0 movs r3, 0x88 bl sub_80D2D78 ldr r1, [r6] movs r2, 0xBF lsls r2, 1 adds r1, r2 adds r1, r4 strb r0, [r1] _0801C5E0: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r0, [r6] ldrb r0, [r0, 0x9] cmp r7, r0 bcc _0801C572 _0801C5EE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801C4C0 thumb_func_start sub_801C61C sub_801C61C: @ 801C61C push {r4-r7,lr} movs r5, 0 ldr r4, =gUnknown_02022C74 ldr r0, [r4] movs r2, 0xBE lsls r2, 1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xFF beq _0801C640 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl sub_80D2EF8 _0801C640: ldr r0, [r4] ldrb r2, [r0, 0x9] cmp r2, 0 beq _0801C6B4 ldrb r1, [r0, 0x8] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0801C6B4 cmp r5, r2 bcs _0801C6A4 adds r6, r4, 0 ldr r7, =gSprites _0801C65A: ldr r0, [r6] lsls r4, r5, 1 ldr r1, =0x0000017d adds r0, r1 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0xFF beq _0801C678 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 bl DestroySprite _0801C678: ldr r0, [r6] movs r2, 0xBF lsls r2, 1 adds r0, r2 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0xFF beq _0801C696 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 bl sub_80D2EF8 _0801C696: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r6] ldrb r0, [r0, 0x9] cmp r5, r0 bcc _0801C65A _0801C6A4: movs r4, 0x80 lsls r4, 8 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag _0801C6B4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801C61C thumb_func_start sub_801C6C8 sub_801C6C8: @ 801C6C8 push {r4-r6,lr} adds r4, r0, 0 cmp r4, 0 beq _0801C6DE ldr r5, =gUnknown_02022C78 ldr r0, =0x000013a4 bl AllocZeroed str r0, [r5] cmp r0, 0 bne _0801C6EC _0801C6DE: movs r0, 0 b _0801C71C .pool _0801C6EC: movs r6, 0xDE lsls r6, 1 adds r1, r4, 0 adds r2, r6, 0 bl memcpy ldr r1, [r5] ldrb r0, [r1, 0x3] cmp r0, 0x7 bls _0801C704 movs r0, 0 strb r0, [r1, 0x3] _0801C704: ldr r2, [r5] adds r3, r2, r6 ldrb r0, [r2, 0x3] lsls r0, 4 ldr r1, =gUnknown_082F24C8 adds r0, r1 str r0, [r3] ldr r0, =0x000001c1 adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] movs r0, 0x1 _0801C71C: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_801C6C8 thumb_func_start sub_801C72C sub_801C72C: @ 801C72C push {r4,lr} ldr r4, =gUnknown_02022C78 ldr r0, [r4] cmp r0, 0 beq _0801C748 ldr r2, =0x000013a4 movs r1, 0 bl memset ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _0801C748: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801C72C thumb_func_start sub_801C758 sub_801C758: @ 801C758 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r5, =gUnknown_02022C78 ldr r0, [r5] cmp r0, 0 bne _0801C778 movs r0, 0x1 negs r0, r0 b _0801CA3A .pool _0801C778: movs r4, 0xE0 lsls r4, 1 adds r0, r4 ldrb r0, [r0] lsrs r0, 1 cmp r0, 0x6 bls _0801C788 b _0801CA04 _0801C788: lsls r0, 2 ldr r1, =_0801C798 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801C798: .4byte _0801C7B4 .4byte _0801C7C6 .4byte _0801C82C .4byte _0801C8D4 .4byte _0801C990 .4byte _0801C996 .4byte _0801C9A8 _0801C7B4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0801CA1E _0801C7C6: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _0801C7D2 b _0801CA38 _0801C7D2: movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r1, =0x00001a98 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x1F bl SetGpuReg movs r0, 0x4A movs r1, 0x1B bl SetGpuReg movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits b _0801CA1E .pool _0801C82C: movs r5, 0x1E str r5, [sp] movs r4, 0x14 str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r5, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r5, =gUnknown_02022C78 ldr r0, [r5] movs r1, 0xDE lsls r1, 1 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x4] movs r0, 0 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0x8 bl decompress_and_copy_tile_data_to_vram ldr r4, =gUnknown_082F1DE8 adds r0, r4, 0 bl AddWindow ldr r1, [r5] movs r2, 0xE4 lsls r2, 1 adds r1, r2 strh r0, [r1] adds r4, 0x8 adds r0, r4, 0 bl AddWindow ldr r1, [r5] movs r3, 0xE5 lsls r3, 1 adds r1, r3 strh r0, [r1] b _0801CA1E .pool _0801C8D4: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 beq _0801C8E2 b _0801CA38 _0801C8E2: movs r0, 0x1 bl stdpal_get movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r0, =gUnknown_02022C78 mov r8, r0 ldr r0, [r0] movs r4, 0xDE lsls r4, 1 adds r0, r4 ldr r0, [r0] ldr r0, [r0, 0xC] movs r1, 0x10 movs r2, 0x20 bl LoadPalette mov r2, r8 ldr r1, [r2] adds r4, r1, r4 ldr r0, [r4] ldr r0, [r0, 0x8] movs r6, 0xE9 lsls r6, 2 adds r1, r6 bl LZ77UnCompWram mov r3, r8 ldr r1, [r3] adds r1, r6 movs r4, 0x1E str r4, [sp] movs r5, 0x3 str r5, [sp, 0x4] str r7, [sp, 0x8] str r7, [sp, 0xC] str r4, [sp, 0x10] str r5, [sp, 0x14] movs r0, 0x1 mov r10, r0 str r0, [sp, 0x18] movs r2, 0x8 mov r9, r2 str r2, [sp, 0x1C] str r7, [sp, 0x20] movs r2, 0 movs r3, 0 bl CopyRectToBgTilemapBufferRect mov r3, r8 ldr r1, [r3] adds r1, r6 str r4, [sp] movs r0, 0x17 str r0, [sp, 0x4] str r7, [sp, 0x8] str r5, [sp, 0xC] str r4, [sp, 0x10] str r0, [sp, 0x14] mov r0, r10 str r0, [sp, 0x18] mov r2, r9 str r2, [sp, 0x1C] str r7, [sp, 0x20] movs r0, 0x3 movs r2, 0 movs r3, 0x3 bl CopyRectToBgTilemapBufferRect movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _0801CA1E .pool _0801C990: bl sub_801CDCC b _0801CA1E _0801C996: bl sub_801CE7C movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram b _0801CA1E _0801C9A8: movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r4, =gUnknown_02022C78 ldr r1, [r4] movs r3, 0xE5 lsls r3, 2 adds r0, r1, r3 movs r2, 0xE3 lsls r2, 1 adds r1, r2 bl AddScrollIndicatorArrowPair ldr r1, [r4] ldr r3, =0x000001c1 adds r2, r1, r3 movs r1, 0 strb r0, [r2] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl UpdatePaletteFade b _0801CA1E .pool _0801CA04: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0801CA38 ldr r0, [r5] adds r0, r4 ldrb r2, [r0] movs r1, 0x1 ands r1, r2 strb r1, [r0] movs r0, 0x1 b _0801CA3A _0801CA1E: ldr r0, =gUnknown_02022C78 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r2, r0 ldrb r3, [r2] lsrs r1, r3, 1 adds r1, 0x1 lsls r1, 1 movs r0, 0x1 ands r0, r3 orrs r0, r1 strb r0, [r2] _0801CA38: movs r0, 0 _0801CA3A: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_801C758 thumb_func_start sub_801CA50 sub_801CA50: @ 801CA50 push {r4,r5,lr} sub sp, 0x8 adds r2, r0, 0 ldr r5, =gUnknown_02022C78 ldr r0, [r5] cmp r0, 0 bne _0801CA68 movs r0, 0x1 negs r0, r0 b _0801CC2A .pool _0801CA68: movs r4, 0xE0 lsls r4, 1 adds r0, r4 ldrb r0, [r0] lsrs r0, 1 cmp r0, 0x5 bls _0801CA78 b _0801CBF4 _0801CA78: lsls r0, 2 ldr r1, =_0801CA88 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801CA88: .4byte _0801CAA0 .4byte _0801CAB2 .4byte _0801CAF4 .4byte _0801CB54 .4byte _0801CB84 .4byte _0801CBC0 _0801CAA0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0801CC0E _0801CAB2: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _0801CABE b _0801CC28 _0801CABE: movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits b _0801CC0E _0801CAF4: movs r4, 0x1E str r4, [sp] movs r5, 0x14 str r5, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r5, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r5, 0x18 str r5, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r5, [sp, 0x4] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _0801CC0E _0801CB54: movs r0, 0x1 bl HideBg movs r0, 0x2 bl HideBg ldr r4, =gUnknown_02022C78 ldr r0, [r4] movs r1, 0xE5 lsls r1, 1 adds r0, r1 ldrb r0, [r0] bl RemoveWindow ldr r0, [r4] movs r2, 0xE4 lsls r2, 1 adds r0, r2 ldrb r0, [r0] bl RemoveWindow b _0801CC0E .pool _0801CB84: movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r4, =gUnknown_02022C78 ldr r0, [r4] ldr r2, =0x000001c1 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xFF beq _0801CC0E bl RemoveScrollIndicatorArrowPair ldr r0, [r4] ldr r2, =0x000001c1 adds r1, r0, r2 movs r0, 0xFF strb r0, [r1] b _0801CC0E .pool _0801CBC0: ldr r0, =gUnknown_02022C60 ldrb r0, [r0] adds r1, r2, 0 bl sub_80186EC movs r0, 0x3 bl sub_8018798 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0801CC0E .pool _0801CBF4: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0801CC28 ldr r0, [r5] adds r0, r4 ldrb r2, [r0] movs r1, 0x1 ands r1, r2 strb r1, [r0] movs r0, 0x1 b _0801CC2A _0801CC0E: ldr r0, =gUnknown_02022C78 ldr r2, [r0] movs r0, 0xE0 lsls r0, 1 adds r2, r0 ldrb r3, [r2] lsrs r1, r3, 1 adds r1, 0x1 lsls r1, 1 movs r0, 0x1 ands r0, r3 orrs r0, r1 strb r0, [r2] _0801CC28: movs r0, 0 _0801CC2A: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_801CA50 thumb_func_start sub_801CC38 sub_801CC38: @ 801CC38 push {r4,r5,lr} ldr r4, =gUnknown_02022C78 ldr r2, [r4] movs r5, 0xE0 lsls r5, 1 adds r0, r2, r5 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0801CC72 ldr r0, =0x000001c1 adds r1, r2, r0 ldrb r0, [r1] cmp r0, 0xFF beq _0801CC72 bl RemoveScrollIndicatorArrowPair ldr r0, [r4] ldr r2, =0x000001c1 adds r1, r0, r2 movs r0, 0xFF strb r0, [r1] ldr r1, [r4] adds r1, r5 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] _0801CC72: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801CC38 thumb_func_start sub_801CC80 sub_801CC80: @ 801CC80 push {r4,lr} ldr r4, =gUnknown_02022C78 ldr r2, [r4] movs r1, 0xE0 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801CCC0 movs r3, 0xE5 lsls r3, 2 adds r0, r2, r3 movs r3, 0xE3 lsls r3, 1 adds r1, r2, r3 bl AddScrollIndicatorArrowPair ldr r1, [r4] ldr r2, =0x000001c1 adds r1, r2 strb r0, [r1] ldr r1, [r4] movs r3, 0xE0 lsls r3, 1 adds r1, r3 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1] _0801CCC0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801CC80 thumb_func_start sub_801CCD0 sub_801CCD0: @ 801CCD0 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 adds r3, r4, 0 ldr r2, =gUnknown_02022C78 ldr r0, [r2] mov r12, r0 movs r0, 0xE1 lsls r0, 1 add r0, r12 ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _0801CD00 bl sub_801CFA4 _0801CCF6: movs r0, 0xFF b _0801CDC6 .pool _0801CD00: cmp r4, 0x2 beq _0801CD1C cmp r4, 0x2 bgt _0801CD0E cmp r4, 0x1 beq _0801CD18 b _0801CCF6 _0801CD0E: cmp r3, 0x40 beq _0801CD20 cmp r3, 0x80 beq _0801CD50 b _0801CCF6 _0801CD18: movs r0, 0 b _0801CDC6 _0801CD1C: movs r0, 0x1 b _0801CDC6 _0801CD20: movs r0, 0xE3 lsls r0, 1 add r0, r12 ldrh r0, [r0] cmp r0, 0 beq _0801CCF6 movs r0, 0xE0 lsls r0, 1 add r0, r12 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0801CCF6 ldr r2, =0x000001c3 add r2, r12 ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 b _0801CD7E .pool _0801CD50: movs r0, 0xE3 lsls r0, 1 add r0, r12 movs r1, 0xE2 lsls r1, 1 add r1, r12 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 beq _0801CCF6 movs r0, 0xE0 lsls r0, 1 add r0, r12 ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0801CCF6 ldr r2, =0x000001c3 add r2, r12 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 _0801CD7E: strb r0, [r2] ldr r2, [r6] movs r4, 0xE1 lsls r4, 1 adds r2, r4 ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r3, [r6] adds r3, r4 ldrb r1, [r3] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldr r1, [r6] adds r4, 0x1 adds r1, r4 ldrb r3, [r1] adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r0, [r0] ands r2, r0 cmp r2, 0 beq _0801CDC4 movs r0, 0x3 b _0801CDC6 .pool _0801CDC4: movs r0, 0x2 _0801CDC6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801CCD0 thumb_func_start sub_801CDCC sub_801CDCC: @ 801CDCC push {r4-r6,lr} movs r5, 0 ldr r4, =gUnknown_02022C78 ldr r1, [r4] movs r2, 0xE7 lsls r2, 1 adds r0, r1, r2 adds r1, 0x4 movs r2, 0x28 bl memcpy ldr r0, [r4] movs r3, 0xFB lsls r3, 1 adds r1, r0, r3 movs r0, 0xFF strb r0, [r1] adds r6, r4, 0 _0801CDF0: ldr r2, [r6] lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r5 adds r0, r4, r2 ldr r3, =0x000001f7 adds r0, r3 adds r1, r2 adds r1, 0x2C movs r2, 0x28 bl memcpy ldr r0, [r6] ldr r1, =0x0000021f adds r0, r1 adds r0, r4 movs r1, 0xFF strb r1, [r0] cmp r5, 0x7 bls _0801CE34 ldr r1, [r6] ldr r2, =0x000001f7 adds r0, r1, r2 adds r0, r4 ldrb r0, [r0] cmp r0, 0xFF beq _0801CE34 movs r3, 0xE2 lsls r3, 1 adds r1, r3 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0801CE34: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0801CDF0 ldr r2, =gUnknown_02022C78 ldr r1, [r2] movs r4, 0xE5 lsls r4, 2 adds r1, r4 ldr r0, =gUnknown_082F1DF8 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] ldr r2, [r2] movs r5, 0xE2 lsls r5, 1 adds r0, r2, r5 ldrh r1, [r0] movs r3, 0xE7 lsls r3, 2 adds r0, r2, r3 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801CDCC thumb_func_start sub_801CE7C sub_801CE7C: @ 801CE7C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC movs r5, 0 ldr r6, =gUnknown_02022C78 ldr r0, [r6] movs r7, 0xE4 lsls r7, 1 adds r0, r7 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r6] movs r4, 0xE5 lsls r4, 1 adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r6] adds r0, r7 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r6] adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer ldr r4, [r6] movs r0, 0xE7 lsls r0, 1 mov r8, r0 add r4, r8 movs r0, 0x3 movs r1, 0x2 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x3 adds r1, r4, 0 bl GetStringWidth movs r1, 0xE0 subs r1, r0 lsrs r0, r1, 31 adds r1, r0 asrs r1, 1 cmp r1, 0 bge _0801CEEC movs r1, 0 _0801CEEC: ldr r4, [r6] adds r0, r4, r7 ldrb r0, [r0] lsls r2, r1, 24 lsrs r2, 24 movs r3, 0xDE lsls r3, 1 adds r1, r4, r3 ldr r1, [r1] ldrb r1, [r1] lsls r1, 28 lsrs r1, 28 lsls r3, r1, 1 adds r3, r1 ldr r1, =gUnknown_082F1DE0 adds r3, r1 str r3, [sp] str r5, [sp, 0x4] add r4, r8 str r4, [sp, 0x8] movs r1, 0x3 movs r3, 0x6 bl box_print _0801CF1C: ldr r6, =gUnknown_02022C78 ldr r4, [r6] movs r1, 0xE5 lsls r1, 1 adds r0, r4, r1 ldrb r0, [r0] lsls r3, r5, 4 adds r3, 0x2 lsls r3, 24 lsrs r3, 24 movs r2, 0xDE lsls r2, 1 adds r1, r4, r2 ldr r1, [r1] ldrb r1, [r1] lsrs r1, 4 lsls r2, r1, 1 adds r2, r1 ldr r1, =gUnknown_082F1DE0 adds r2, r1 str r2, [sp] movs r1, 0 str r1, [sp, 0x4] lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r5 ldr r2, =0x000001f7 adds r1, r2 adds r4, r1 str r4, [sp, 0x8] movs r1, 0x3 movs r2, 0 bl box_print adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0801CF1C ldr r0, [r6] movs r3, 0xE4 lsls r3, 1 adds r0, r3 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram ldr r0, [r6] movs r1, 0xE5 lsls r1, 1 adds r0, r1 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801CE7C thumb_func_start sub_801CFA4 sub_801CFA4: @ 801CFA4 push {r4-r6,lr} ldr r0, =gUnknown_02022C78 ldr r1, [r0] movs r2, 0xE1 lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] lsrs r4, r0, 1 lsls r4, 8 ldr r6, =0x000001c3 adds r0, r1, r6 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801CFE4 movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 bl ChangeBgY movs r0, 0x3 adds r1, r4, 0 movs r2, 0x1 bl ChangeBgY b _0801CFF8 .pool _0801CFE4: movs r0, 0x2 adds r1, r4, 0 movs r2, 0x2 bl ChangeBgY movs r0, 0x3 adds r1, r4, 0 movs r2, 0x2 bl ChangeBgY _0801CFF8: ldr r3, =gUnknown_02022C78 ldr r0, [r3] ldr r2, =0x000001c3 adds r5, r0, r2 ldrb r4, [r5] lsrs r1, r4, 1 movs r6, 0xE1 lsls r6, 1 adds r0, r6 ldrb r0, [r0] lsrs r0, 1 adds r1, r0 lsls r1, 1 movs r6, 0x1 adds r0, r6, 0 ands r0, r4 orrs r0, r1 strb r0, [r5] ldr r1, [r3] adds r2, r1, r2 ldrb r2, [r2] lsrs r0, r2, 1 cmp r0, 0xF bls _0801D070 adds r0, r6, 0 ands r0, r2 cmp r0, 0 beq _0801D044 movs r0, 0xE3 lsls r0, 1 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 b _0801D04E .pool _0801D044: movs r2, 0xE3 lsls r2, 1 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 _0801D04E: strh r0, [r1] ldr r0, [r3] movs r6, 0xE1 lsls r6, 1 adds r2, r0, r6 ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, [r3] ldr r1, =0x000001c3 adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 strb r0, [r2] _0801D070: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801CFA4 thumb_func_start mevent_srv_init_wnews mevent_srv_init_wnews: @ 801D07C push {r4,lr} ldr r4, =gUnknown_02022C7C movs r0, 0x60 bl AllocZeroed str r0, [r4] ldr r1, =gUnknown_082F298C movs r2, 0 movs r3, 0x1 bl mevent_srv_init_common pop {r4} pop {r0} bx r0 .pool thumb_func_end mevent_srv_init_wnews thumb_func_start mevent_srv_new_wcard mevent_srv_new_wcard: @ 801D0A0 push {r4,lr} ldr r4, =gUnknown_02022C7C movs r0, 0x60 bl AllocZeroed str r0, [r4] ldr r1, =gUnknown_082F29EC movs r2, 0 movs r3, 0x1 bl mevent_srv_init_common pop {r4} pop {r0} bx r0 .pool thumb_func_end mevent_srv_new_wcard thumb_func_start sub_801D0C4 sub_801D0C4: @ 801D0C4 push {r4-r6,lr} adds r6, r0, 0 ldr r4, =gUnknown_02022C7C ldr r0, [r4] cmp r0, 0 bne _0801D0D8 movs r0, 0x3 b _0801D0F8 .pool _0801D0D8: bl mevent_dispatch_08145600 adds r5, r0, 0 cmp r5, 0x3 bne _0801D0F6 ldr r0, [r4] ldr r1, [r0, 0x4] strh r1, [r6] bl mevent_srv_free_resources ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _0801D0F6: adds r0, r5, 0 _0801D0F8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801D0C4 thumb_func_start mevent_srv_init_common mevent_srv_init_common: @ 801D100 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 mov r9, r3 movs r5, 0 str r5, [r4] str r5, [r4, 0x8] movs r0, 0xA6 lsls r0, 1 bl AllocZeroed str r0, [r4, 0x18] movs r0, 0xDE lsls r0, 1 bl AllocZeroed str r0, [r4, 0x1C] movs r0, 0x80 lsls r0, 3 bl AllocZeroed str r0, [r4, 0x14] movs r0, 0x64 bl AllocZeroed str r0, [r4, 0x20] str r6, [r4, 0x10] str r5, [r4, 0xC] adds r4, 0x38 adds r0, r4, 0 mov r1, r8 mov r2, r9 bl sub_801D8D8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end mevent_srv_init_common thumb_func_start mevent_srv_free_resources mevent_srv_free_resources: @ 801D158 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x18] bl Free ldr r0, [r4, 0x1C] bl Free ldr r0, [r4, 0x14] bl Free ldr r0, [r4, 0x20] bl Free pop {r4} pop {r0} bx r0 thumb_func_end mevent_srv_free_resources thumb_func_start mevent_srv_814501C mevent_srv_814501C: @ 801D17C push {lr} adds r0, 0x38 bl sub_801D904 pop {r0} bx r0 thumb_func_end mevent_srv_814501C thumb_func_start sub_801D188 sub_801D188: @ 801D188 push {lr} cmp r0, 0 bne _0801D190 adds r0, r1, 0 _0801D190: pop {r1} bx r1 thumb_func_end sub_801D188 thumb_func_start sub_801D194 sub_801D194: @ 801D194 push {lr} cmp r1, r0 bcs _0801D19E movs r0, 0 b _0801D1A8 _0801D19E: cmp r1, r0 beq _0801D1A6 movs r0, 0x2 b _0801D1A8 _0801D1A6: movs r0, 0x1 _0801D1A8: pop {r1} bx r1 thumb_func_end sub_801D194 thumb_func_start sub_801D1AC sub_801D1AC: @ 801D1AC movs r1, 0x4 str r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end sub_801D1AC thumb_func_start sub_801D1B4 sub_801D1B4: @ 801D1B4 movs r0, 0x3 bx lr thumb_func_end sub_801D1B4 thumb_func_start sub_801D1B8 sub_801D1B8: @ 801D1B8 push {r4,lr} adds r4, r0, 0 adds r0, 0x38 bl sub_801D8C0 cmp r0, 0 beq _0801D1CA movs r0, 0x4 str r0, [r4, 0x8] _0801D1CA: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_801D1B8 thumb_func_start sub_801D1D4 sub_801D1D4: @ 801D1D4 push {r4,lr} adds r4, r0, 0 adds r0, 0x38 bl sub_801D8CC cmp r0, 0 beq _0801D1E6 movs r0, 0x4 str r0, [r4, 0x8] _0801D1E6: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_801D1D4 thumb_func_start sub_801D1F0 sub_801D1F0: @ 801D1F0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0xC] lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r2, [r5, 0x10] adds r3, r2, r1 adds r0, 0x1 str r0, [r5, 0xC] ldr r0, [r3] cmp r0, 0x1E bls _0801D20C b _0801D464 _0801D20C: lsls r0, 2 ldr r1, =_0801D21C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801D21C: .4byte _0801D298 .4byte _0801D2A2 .4byte _0801D2A8 .4byte _0801D2E2 .4byte _0801D2D8 .4byte _0801D2BA .4byte _0801D2C6 .4byte _0801D2EC .4byte _0801D300 .4byte _0801D308 .4byte _0801D31E .4byte _0801D32E .4byte _0801D33A .4byte _0801D360 .4byte _0801D348 .4byte _0801D390 .4byte _0801D378 .4byte _0801D3DC .4byte _0801D3A8 .4byte _0801D3C0 .4byte _0801D3CE .4byte _0801D406 .4byte _0801D3EA .4byte _0801D3F8 .4byte _0801D40E .4byte _0801D418 .4byte _0801D422 .4byte _0801D43C .4byte _0801D450 .4byte _0801D458 .4byte _0801D2CC _0801D298: movs r0, 0x1 str r0, [r5, 0x8] ldr r0, [r3, 0x4] str r0, [r5, 0x4] b _0801D464 _0801D2A2: movs r0, 0x3 str r0, [r5, 0x8] b _0801D464 _0801D2A8: adds r0, r5, 0 adds r0, 0x38 ldr r1, [r3, 0x4] ldr r2, [r5, 0x14] bl sub_801D928 movs r0, 0x2 str r0, [r5, 0x8] b _0801D464 _0801D2BA: ldr r0, [r5, 0x20] ldr r1, [r5, 0x14] movs r2, 0x64 bl memcpy b _0801D464 _0801D2C6: ldr r0, [r5, 0x20] movs r1, 0 b _0801D2D0 _0801D2CC: ldr r0, [r5, 0x20] movs r1, 0x1 _0801D2D0: bl sub_801B6A0 str r0, [r5, 0x4] b _0801D464 _0801D2D8: ldr r1, [r5, 0x4] ldr r0, [r3, 0x4] cmp r1, r0 beq _0801D2E2 b _0801D464 _0801D2E2: movs r0, 0 str r0, [r5, 0xC] ldr r0, [r3, 0x8] str r0, [r5, 0x10] b _0801D464 _0801D2EC: ldr r0, [r3, 0x8] ldr r1, [r5, 0x18] bl sub_801D188 adds r2, r0, 0 ldr r1, [r5, 0x20] bl sub_801B6EC str r0, [r5, 0x4] b _0801D464 _0801D300: ldr r0, [r5, 0x14] ldr r0, [r0] str r0, [r5, 0x4] b _0801D464 _0801D308: ldr r0, [r3, 0x8] adds r1, r5, 0 adds r1, 0x34 bl sub_801D188 adds r2, r0, 0 ldr r1, [r5, 0x20] bl sub_801B708 str r0, [r5, 0x4] b _0801D464 _0801D31E: ldr r0, [r5, 0x20] ldr r1, [r3, 0x4] bl sub_801B784 lsls r0, 16 lsrs r0, 16 str r0, [r5, 0x4] b _0801D464 _0801D32E: ldr r0, [r5, 0x20] ldr r1, [r3, 0x8] bl sub_801B748 str r0, [r5, 0x4] b _0801D464 _0801D33A: ldr r0, [r3, 0x8] ldr r1, [r5, 0x14] ldr r1, [r1] bl sub_801D194 str r0, [r5, 0x4] b _0801D464 _0801D348: ldr r0, [r3, 0x8] ldr r1, [r5, 0x1C] bl sub_801D188 adds r2, r0, 0 movs r3, 0xDE lsls r3, 1 adds r0, r5, 0 movs r1, 0x17 bl mevent_srv_814501C b _0801D464 _0801D360: ldr r0, [r3, 0x8] ldr r1, [r5, 0x18] bl sub_801D188 adds r2, r0, 0 movs r3, 0xA6 lsls r3, 1 adds r0, r5, 0 movs r1, 0x16 bl mevent_srv_814501C b _0801D464 _0801D378: ldr r0, [r3, 0x8] adds r1, r5, 0 adds r1, 0x34 bl sub_801D188 adds r2, r0, 0 adds r0, r5, 0 movs r1, 0x18 movs r3, 0x4 bl mevent_srv_814501C b _0801D464 _0801D390: ldr r2, [r3, 0x8] cmp r2, 0 bne _0801D39C ldr r2, [r5, 0x24] ldr r3, [r5, 0x28] b _0801D39E _0801D39C: ldr r3, [r3, 0x4] _0801D39E: adds r0, r5, 0 movs r1, 0x19 bl mevent_srv_814501C b _0801D464 _0801D3A8: ldr r2, [r3, 0x8] cmp r2, 0 bne _0801D3B4 ldr r2, [r5, 0x2C] ldr r3, [r5, 0x30] b _0801D3B6 _0801D3B4: ldr r3, [r3, 0x4] _0801D3B6: adds r0, r5, 0 movs r1, 0x10 bl mevent_srv_814501C b _0801D464 _0801D3C0: ldr r2, [r3, 0x8] adds r0, r5, 0 movs r1, 0x1A movs r3, 0xBC bl mevent_srv_814501C b _0801D464 _0801D3CE: ldr r2, [r3, 0x8] ldr r3, [r3, 0x4] adds r0, r5, 0 movs r1, 0x15 bl mevent_srv_814501C b _0801D464 _0801D3DC: ldr r2, [r3, 0x8] ldr r3, [r3, 0x4] adds r0, r5, 0 movs r1, 0x1C bl mevent_srv_814501C b _0801D464 _0801D3EA: ldr r0, [r5, 0x18] ldr r1, [r3, 0x8] movs r2, 0xA6 lsls r2, 1 bl memcpy b _0801D464 _0801D3F8: ldr r0, [r5, 0x1C] ldr r1, [r3, 0x8] movs r2, 0xDE lsls r2, 1 bl memcpy b _0801D464 _0801D406: ldr r0, [r3, 0x8] ldr r0, [r0] str r0, [r5, 0x34] b _0801D464 _0801D40E: ldr r0, [r3, 0x8] str r0, [r5, 0x24] ldr r0, [r3, 0x4] str r0, [r5, 0x28] b _0801D464 _0801D418: ldr r0, [r3, 0x8] str r0, [r5, 0x2C] ldr r0, [r3, 0x4] str r0, [r5, 0x30] b _0801D464 _0801D422: ldr r4, [r5, 0x18] bl sav1_get_mevent_buffer_1 adds r1, r0, 0 movs r2, 0xA6 lsls r2, 1 adds r0, r4, 0 bl memcpy ldr r0, [r5, 0x18] bl sub_801B3C0 b _0801D464 _0801D43C: ldr r4, [r5, 0x1C] bl sub_801B00C adds r1, r0, 0 movs r2, 0xDE lsls r2, 1 adds r0, r4, 0 bl memcpy b _0801D464 _0801D450: bl sub_8099244 str r0, [r5, 0x24] b _0801D464 _0801D458: ldr r2, [r3, 0x8] ldr r3, [r3, 0x4] adds r0, r5, 0 movs r1, 0x1B bl mevent_srv_814501C _0801D464: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801D1F0 thumb_func_start mevent_dispatch_08145600 mevent_dispatch_08145600: @ 801D46C push {lr} ldr r2, =gUnknown_082F2548 ldr r1, [r0, 0x8] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl _call_via_r1 pop {r1} bx r1 .pool thumb_func_end mevent_dispatch_08145600 thumb_func_start sub_801D484 sub_801D484: @ 801D484 push {r4,r5,lr} adds r5, r0, 0 ldr r4, =gUnknown_02022C80 movs r0, 0x50 bl AllocZeroed str r0, [r4] movs r1, 0x1 movs r2, 0 bl mevent_srv_ish_init ldr r0, [r4] str r5, [r0, 0x4C] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801D484 thumb_func_start sub_801D4A8 sub_801D4A8: @ 801D4A8 push {r4-r6,lr} adds r6, r0, 0 ldr r4, =gUnknown_02022C80 ldr r0, [r4] cmp r0, 0 bne _0801D4BC movs r0, 0x6 b _0801D4DC .pool _0801D4BC: bl mevent_srv_ish_exec adds r5, r0, 0 cmp r5, 0x6 bne _0801D4DA ldr r0, [r4] ldr r1, [r0, 0x4] strh r1, [r6] bl sub_801D55C ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] _0801D4DA: adds r0, r5, 0 _0801D4DC: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801D4A8 thumb_func_start sub_801D4E4 sub_801D4E4: @ 801D4E4 ldr r0, =gUnknown_02022C80 ldr r1, [r0] ldr r0, [r1, 0xC] adds r0, 0x1 str r0, [r1, 0xC] bx lr .pool thumb_func_end sub_801D4E4 thumb_func_start sub_801D4F4 sub_801D4F4: @ 801D4F4 ldr r0, =gUnknown_02022C80 ldr r0, [r0] ldr r0, [r0, 0x20] bx lr .pool thumb_func_end sub_801D4F4 thumb_func_start sub_801D500 sub_801D500: @ 801D500 ldr r1, =gUnknown_02022C80 ldr r1, [r1] str r0, [r1, 0x4] bx lr .pool thumb_func_end sub_801D500 thumb_func_start mevent_srv_ish_init mevent_srv_ish_init: @ 801D50C push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r6, r1, 0 mov r8, r2 movs r0, 0 str r0, [r4] str r0, [r4, 0x8] str r0, [r4, 0xC] movs r5, 0x80 lsls r5, 3 adds r0, r5, 0 bl AllocZeroed str r0, [r4, 0x14] adds r0, r5, 0 bl AllocZeroed str r0, [r4, 0x18] adds r0, r5, 0 bl AllocZeroed str r0, [r4, 0x1C] movs r0, 0x40 bl AllocZeroed str r0, [r4, 0x20] adds r4, 0x24 adds r0, r4, 0 adds r1, r6, 0 mov r2, r8 bl sub_801D8D8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end mevent_srv_ish_init thumb_func_start sub_801D55C sub_801D55C: @ 801D55C push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x14] bl Free ldr r0, [r4, 0x18] bl Free ldr r0, [r4, 0x1C] bl Free ldr r0, [r4, 0x20] bl Free pop {r4} pop {r0} bx r0 thumb_func_end sub_801D55C thumb_func_start sub_801D580 sub_801D580: @ 801D580 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x1C] ldr r1, [r4, 0x18] movs r2, 0x80 lsls r2, 3 bl memcpy movs r0, 0 str r0, [r4, 0x10] pop {r4} pop {r0} bx r0 thumb_func_end sub_801D580 thumb_func_start sub_801D59C sub_801D59C: @ 801D59C push {r4-r6,lr} sub sp, 0x4 adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 movs r0, 0 str r0, [sp] ldr r1, [r4, 0x14] ldr r2, =0x05000100 mov r0, sp bl CpuSet ldr r2, [r4, 0x14] str r5, [r2] adds r4, 0x24 adds r0, r4, 0 adds r1, r6, 0 movs r3, 0x4 bl sub_801D904 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801D59C thumb_func_start sub_801D5D0 sub_801D5D0: @ 801D5D0 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x1C] ldr r1, =gUnknown_082F2598 movs r2, 0x80 lsls r2, 3 bl memcpy movs r1, 0 str r1, [r4, 0x10] movs r0, 0x4 str r0, [r4, 0x8] str r1, [r4, 0xC] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801D5D0 thumb_func_start sub_801D5F8 sub_801D5F8: @ 801D5F8 movs r0, 0x6 bx lr thumb_func_end sub_801D5F8 thumb_func_start sub_801D5FC sub_801D5FC: @ 801D5FC push {r4,lr} adds r4, r0, 0 adds r0, 0x24 bl sub_801D8C0 cmp r0, 0 beq _0801D612 movs r0, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] _0801D612: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_801D5FC thumb_func_start sub_801D61C sub_801D61C: @ 801D61C push {r4,lr} adds r4, r0, 0 adds r0, 0x24 bl sub_801D8CC cmp r0, 0 beq _0801D632 movs r0, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] _0801D632: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_801D61C thumb_func_start sub_801D63C sub_801D63C: @ 801D63C push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x10] lsls r2, r0, 3 ldr r1, [r4, 0x1C] adds r2, r1, r2 adds r0, 0x1 str r0, [r4, 0x10] ldr r0, [r2] cmp r0, 0x15 bls _0801D654 b _0801D804 _0801D654: lsls r0, 2 ldr r1, =_0801D664 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801D664: .4byte _0801D804 .4byte _0801D6BC .4byte _0801D6C4 .4byte _0801D6D4 .4byte _0801D70E .4byte _0801D716 .4byte _0801D6FE .4byte _0801D708 .4byte _0801D764 .4byte _0801D790 .4byte _0801D788 .4byte _0801D72C .4byte _0801D742 .4byte _0801D758 .4byte _0801D77C .4byte _0801D7B8 .4byte _0801D7BC .4byte _0801D7C4 .4byte _0801D7D0 .4byte _0801D6EA .4byte _0801D6D8 .4byte _0801D7F0 _0801D6BC: ldr r0, [r2, 0x4] str r0, [r4, 0x4] movs r0, 0x1 b _0801D7FE _0801D6C4: adds r0, r4, 0 adds r0, 0x24 ldr r1, [r2, 0x4] ldr r2, [r4, 0x18] bl sub_801D928 movs r0, 0x2 b _0801D7FE _0801D6D4: movs r0, 0x3 b _0801D7FE _0801D6D8: adds r0, r4, 0 adds r0, 0x24 ldr r2, [r4, 0x14] movs r1, 0x14 movs r3, 0 bl sub_801D904 movs r0, 0x3 b _0801D7FE _0801D6EA: ldrb r0, [r2, 0x4] bl GetGameStat adds r2, r0, 0 adds r0, r4, 0 movs r1, 0x12 bl sub_801D59C movs r0, 0x3 b _0801D7FE _0801D6FE: ldr r0, [r4, 0x4] cmp r0, 0 beq _0801D706 b _0801D804 _0801D706: b _0801D70E _0801D708: ldr r0, [r4, 0x4] cmp r0, 0x1 bne _0801D804 _0801D70E: adds r0, r4, 0 bl sub_801D580 b _0801D804 _0801D716: ldr r0, [r4, 0x20] ldr r1, [r4, 0x18] movs r2, 0x40 bl memcpy movs r0, 0x5 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] movs r0, 0x2 b _0801D806 _0801D72C: ldr r0, [r4, 0x20] ldr r1, [r4, 0x18] movs r2, 0x40 bl memcpy movs r0, 0x5 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] movs r0, 0x3 b _0801D806 _0801D742: ldr r0, [r4, 0x20] ldr r1, [r4, 0x18] movs r2, 0x40 bl memcpy movs r0, 0x5 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] movs r0, 0x5 b _0801D806 _0801D758: movs r0, 0x5 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] movs r0, 0x4 b _0801D806 _0801D764: ldr r0, [r4, 0x14] ldr r1, [r4, 0x4C] bl sub_801B580 adds r0, r4, 0 adds r0, 0x24 ldr r2, [r4, 0x14] movs r1, 0x11 movs r3, 0x64 bl sub_801D904 b _0801D804 _0801D77C: ldr r2, [r4, 0x4] adds r0, r4, 0 movs r1, 0x13 bl sub_801D59C b _0801D804 _0801D788: ldr r0, [r4, 0x18] bl sub_801B21C b _0801D804 _0801D790: ldr r0, [r4, 0x18] bl sub_801B1A4 cmp r0, 0 bne _0801D7AC ldr r0, [r4, 0x18] bl sub_801B078 adds r0, r4, 0 movs r1, 0x13 movs r2, 0 bl sub_801D59C b _0801D804 _0801D7AC: adds r0, r4, 0 movs r1, 0x13 movs r2, 0x1 bl sub_801D59C b _0801D804 _0801D7B8: movs r0, 0x6 b _0801D7FE _0801D7BC: ldr r0, [r4, 0x18] bl sub_801B508 b _0801D804 _0801D7C4: ldr r0, [r4, 0x18] movs r1, 0xFA lsls r1, 2 bl sub_80992A0 b _0801D804 _0801D7D0: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000bec adds r0, r1 ldr r1, [r4, 0x18] movs r2, 0xBC bl memcpy bl sub_81652B4 b _0801D804 .pool _0801D7F0: ldr r0, =0x0201c000 ldr r1, [r4, 0x18] movs r2, 0x80 lsls r2, 3 bl memcpy movs r0, 0x7 _0801D7FE: str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] _0801D804: movs r0, 0x1 _0801D806: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801D63C thumb_func_start sub_801D810 sub_801D810: @ 801D810 push {lr} adds r1, r0, 0 ldr r0, [r1, 0xC] cmp r0, 0 beq _0801D822 movs r0, 0x4 str r0, [r1, 0x8] movs r0, 0 str r0, [r1, 0xC] _0801D822: movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_801D810 thumb_func_start sub_801D828 sub_801D828: @ 801D828 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0xC] cmp r0, 0 beq _0801D838 cmp r0, 0x1 beq _0801D846 b _0801D858 _0801D838: ldr r0, [r4, 0x18] bl sub_8153870 ldr r0, [r4, 0xC] adds r0, 0x1 str r0, [r4, 0xC] b _0801D858 _0801D846: adds r0, r4, 0x4 bl sub_8153884 adds r1, r0, 0 cmp r1, 0 bne _0801D858 movs r0, 0x4 str r0, [r4, 0x8] str r1, [r4, 0xC] _0801D858: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_801D828 thumb_func_start sub_801D860 sub_801D860: @ 801D860 push {r4,lr} adds r4, r0, 0 ldr r3, =0x0201c000 adds r0, r4, 0x4 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r2, =gSaveBlock1Ptr ldr r2, [r2] bl _call_via_r3 cmp r0, 0x1 bne _0801D880 movs r0, 0x4 str r0, [r4, 0x8] movs r0, 0 str r0, [r4, 0xC] _0801D880: movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801D860 thumb_func_start mevent_srv_ish_exec mevent_srv_ish_exec: @ 801D894 push {r4,r5,lr} sub sp, 0x20 mov r2, sp ldr r1, =gUnknown_082F255C ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3,r4} stm r2!, {r3,r4} ldr r1, [r0, 0x8] lsls r1, 2 add r1, sp ldr r1, [r1] bl _call_via_r1 add sp, 0x20 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end mevent_srv_ish_exec thumb_func_start sub_801D8C0 sub_801D8C0: @ 801D8C0 push {lr} ldr r1, [r0, 0x20] bl _call_via_r1 pop {r1} bx r1 thumb_func_end sub_801D8C0 thumb_func_start sub_801D8CC sub_801D8CC: @ 801D8CC push {lr} ldr r1, [r0, 0x24] bl _call_via_r1 pop {r1} bx r1 thumb_func_end sub_801D8CC thumb_func_start sub_801D8D8 sub_801D8D8: @ 801D8D8 movs r3, 0 strb r1, [r0, 0x4] strb r2, [r0, 0x5] str r3, [r0] strh r3, [r0, 0x12] strh r3, [r0, 0x14] strh r3, [r0, 0x10] strh r3, [r0, 0xA] strh r3, [r0, 0xC] strh r3, [r0, 0x8] str r3, [r0, 0x1C] str r3, [r0, 0x18] ldr r1, =sub_801DA5C str r1, [r0, 0x24] ldr r1, =sub_801D988 str r1, [r0, 0x20] bx lr .pool thumb_func_end sub_801D8D8 thumb_func_start sub_801D904 sub_801D904: @ 801D904 push {r4,lr} adds r4, r0, 0 movs r0, 0 str r0, [r4] strh r1, [r4, 0xE] strh r0, [r4, 0x10] strh r0, [r4, 0x12] cmp r3, 0 beq _0801D91A strh r3, [r4, 0x14] b _0801D920 _0801D91A: movs r0, 0x80 lsls r0, 3 strh r0, [r4, 0x14] _0801D920: str r2, [r4, 0x1C] pop {r4} pop {r0} bx r0 thumb_func_end sub_801D904 thumb_func_start sub_801D928 sub_801D928: @ 801D928 movs r3, 0 str r3, [r0] strh r1, [r0, 0x6] strh r3, [r0, 0x8] strh r3, [r0, 0xA] strh r3, [r0, 0xC] str r2, [r0, 0x18] bx lr thumb_func_end sub_801D928 thumb_func_start sub_801D938 sub_801D938: @ 801D938 push {lr} adds r3, r0, 0 adds r0, r1, 0 lsls r3, 8 ldr r1, =gBlockRecvBuffer adds r3, r1 adds r1, r3, 0 bl memcpy pop {r0} bx r0 .pool thumb_func_end sub_801D938 thumb_func_start sub_801D954 sub_801D954: @ 801D954 push {r4,lr} adds r4, r0, 0 bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0801D96E movs r0, 0 b _0801D970 _0801D96E: movs r0, 0x1 _0801D970: pop {r4} pop {r1} bx r1 thumb_func_end sub_801D954 thumb_func_start sub_801D978 sub_801D978: @ 801D978 push {lr} lsls r0, 24 lsrs r0, 24 bl ResetBlockReceivedFlag pop {r0} bx r0 thumb_func_end sub_801D978 thumb_func_start sub_801D988 sub_801D988: @ 801D988 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 ldr r6, [r5] cmp r6, 0x1 beq _0801D9EC cmp r6, 0x1 bgt _0801D99E cmp r6, 0 beq _0801D9A4 b _0801DA52 _0801D99E: cmp r6, 0x2 beq _0801DA38 b _0801DA52 _0801D9A4: ldrb r0, [r5, 0x5] bl sub_801D954 cmp r0, 0 beq _0801DA52 ldrb r0, [r5, 0x5] mov r4, sp mov r1, sp movs r2, 0x8 bl sub_801D938 ldrh r1, [r4, 0x4] strh r1, [r5, 0xC] ldrh r0, [r4, 0x2] strh r0, [r5, 0xA] lsls r1, 16 movs r0, 0x80 lsls r0, 19 cmp r1, r0 bls _0801D9D2 _0801D9CC: bl sub_8010198 b _0801DA52 _0801D9D2: mov r1, sp ldrh r0, [r5, 0x6] ldrh r1, [r1] cmp r0, r1 bne _0801D9CC strh r6, [r5, 0x8] ldrb r0, [r5, 0x5] bl sub_801D978 ldr r0, [r5] adds r0, 0x1 str r0, [r5] b _0801DA52 _0801D9EC: ldrb r0, [r5, 0x5] bl sub_801D954 cmp r0, 0 beq _0801DA52 ldrh r0, [r5, 0x8] lsls r1, r0, 6 subs r1, r0 lsls r3, r1, 2 ldrh r0, [r5, 0xC] subs r2, r0, r3 cmp r2, 0xFC bhi _0801DA1E ldrb r0, [r5, 0x5] ldr r1, [r5, 0x18] adds r1, r3 bl sub_801D938 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] ldr r0, [r5] adds r0, 0x1 str r0, [r5] b _0801DA30 _0801DA1E: ldrb r0, [r5, 0x5] ldr r1, [r5, 0x18] adds r1, r3 movs r2, 0xFC bl sub_801D938 ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] _0801DA30: ldrb r0, [r5, 0x5] bl sub_801D978 b _0801DA52 _0801DA38: ldr r0, [r5, 0x18] ldrh r1, [r5, 0xC] bl CalcCRC16WithTable lsls r0, 16 lsrs r0, 16 ldrh r1, [r5, 0xA] cmp r0, r1 bne _0801D9CC movs r0, 0 str r0, [r5] movs r0, 0x1 b _0801DA54 _0801DA52: movs r0, 0 _0801DA54: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801D988 thumb_func_start sub_801DA5C sub_801DA5C: @ 801DA5C push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldr r5, [r4] cmp r5, 0x1 beq _0801DAC8 cmp r5, 0x1 bgt _0801DA72 cmp r5, 0 beq _0801DA7C b _0801DB5E _0801DA72: cmp r5, 0x2 beq _0801DB1C cmp r5, 0x3 beq _0801DB46 b _0801DB5E _0801DA7C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801DB5E ldrh r1, [r4, 0xE] ldr r2, =0xffff0000 ldr r0, [sp] ands r0, r2 orrs r0, r1 str r0, [sp] ldrh r1, [r4, 0x14] ldr r0, [sp, 0x4] ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] ldr r0, [r4, 0x1C] bl CalcCRC16WithTable lsls r0, 16 ldr r2, =0x0000ffff ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] lsrs r1, 16 strh r1, [r4, 0x12] strh r5, [r4, 0x10] movs r0, 0 mov r1, sp movs r2, 0x8 bl SendBlock b _0801DB3E .pool _0801DAC8: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801DB5E ldrb r0, [r4, 0x4] bl sub_801D954 cmp r0, 0 beq _0801DB5E ldrb r0, [r4, 0x4] bl sub_801D978 ldrh r1, [r4, 0x10] lsls r0, r1, 6 subs r0, r1 lsls r3, r0, 2 ldrh r0, [r4, 0x14] subs r0, r3 cmp r0, 0xFC bhi _0801DB08 ldr r1, [r4, 0x1C] adds r1, r3 lsls r2, r0, 16 lsrs r2, 16 movs r0, 0 bl SendBlock ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] b _0801DB3E _0801DB08: ldr r1, [r4, 0x1C] adds r1, r3 movs r0, 0 movs r2, 0xFC bl SendBlock ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] b _0801DB5E _0801DB1C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801DB5E ldr r0, [r4, 0x1C] ldrh r1, [r4, 0x14] bl CalcCRC16WithTable lsls r0, 16 lsrs r0, 16 ldrh r1, [r4, 0x12] cmp r0, r1 beq _0801DB3E bl sub_8010198 b _0801DB5E _0801DB3E: ldr r0, [r4] adds r0, 0x1 str r0, [r4] b _0801DB5E _0801DB46: ldrb r0, [r4, 0x4] bl sub_801D954 cmp r0, 0 beq _0801DB5E ldrb r0, [r4, 0x4] bl sub_801D978 movs r0, 0 str r0, [r4] movs r0, 0x1 b _0801DB60 _0801DB5E: movs r0, 0 _0801DB60: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_801DA5C thumb_func_start sub_801DB68 sub_801DB68: @ 801DB68 push {r4,r5,lr} adds r4, r0, 0 bl sub_801B044 adds r5, r0, 0 movs r0, 0x3 adds r1, r4, 0 ands r1, r0 ldrb r2, [r5] movs r0, 0x4 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5] cmp r4, 0x2 bhi _0801DB8E cmp r4, 0x1 bcs _0801DB94 b _0801DBB8 _0801DB8E: cmp r4, 0x3 beq _0801DBA6 b _0801DBB8 _0801DB94: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF bl __umodsi3 adds r0, 0x10 b _0801DBB6 _0801DBA6: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF bl __umodsi3 adds r0, 0x1 _0801DBB6: strb r0, [r5, 0x1] _0801DBB8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801DB68 thumb_func_start sub_801DBC0 sub_801DBC0: @ 801DBC0 push {lr} bl sub_801B044 movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] ldr r0, =0x0000402e bl VarSet pop {r0} bx r0 .pool thumb_func_end sub_801DBC0 thumb_func_start sub_801DBDC sub_801DBDC: @ 801DBDC push {r4,lr} ldr r0, =0x0000402e bl GetVarPointer adds r4, r0, 0 bl sub_801B044 adds r2, r0, 0 ldr r0, [r2] lsls r0, 24 lsrs r0, 29 cmp r0, 0x4 bls _0801DC10 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 ldr r1, =0x01f30000 cmp r0, r1 bls _0801DC10 ldrb r0, [r2] movs r1, 0x1F ands r1, r0 strb r1, [r2] movs r0, 0 strh r0, [r4] _0801DC10: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801DBDC thumb_func_start sub_801DC20 sub_801DC20: @ 801DC20 push {r4-r6,lr} ldr r6, =gScriptResult bl sub_801B044 adds r4, r0, 0 bl IsMysteryEventEnabled cmp r0, 0 beq _0801DC3A bl sub_801B0CC cmp r0, 0 bne _0801DC44 _0801DC3A: movs r0, 0 b _0801DCA6 .pool _0801DC44: adds r0, r4, 0 bl sub_801DD44 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x6 bhi _0801DCA4 lsls r0, r5, 2 ldr r1, =_0801DC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801DC60: .4byte _0801DCA4 .4byte _0801DC7C .4byte _0801DC7C .4byte _0801DCA4 .4byte _0801DC86 .4byte _0801DC96 .4byte _0801DCA4 _0801DC7C: adds r0, r4, 0 bl sub_801DCAC strh r0, [r6] b _0801DCA4 _0801DC86: adds r0, r4, 0 bl sub_801DCAC strh r0, [r6] adds r0, r4, 0 bl sub_801DCD8 b _0801DCA4 _0801DC96: adds r0, r4, 0 bl sub_801DCAC strh r0, [r6] adds r0, r4, 0 bl sub_801DCCC _0801DCA4: adds r0, r5, 0 _0801DCA6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801DC20 thumb_func_start sub_801DCAC sub_801DCAC: @ 801DCAC push {r4,lr} ldrb r2, [r0] movs r1, 0x4 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r4, [r0, 0x1] adds r4, 0x84 movs r1, 0 strb r1, [r0, 0x1] bl sub_801DD10 adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_801DCAC thumb_func_start sub_801DCCC sub_801DCCC: @ 801DCCC ldrb r2, [r0] movs r1, 0x1D negs r1, r1 ands r1, r2 strb r1, [r0] bx lr thumb_func_end sub_801DCCC thumb_func_start sub_801DCD8 sub_801DCD8: @ 801DCD8 push {r4,lr} adds r3, r0, 0 ldr r0, [r3] lsls r0, 27 lsrs r0, 29 adds r0, 0x1 movs r1, 0x7 ands r0, r1 lsls r0, 2 ldrb r1, [r3] movs r4, 0x1D negs r4, r4 adds r2, r4, 0 ands r2, r1 orrs r2, r0 strb r2, [r3] ldr r0, [r3] lsls r0, 27 lsrs r0, 29 cmp r0, 0x4 bls _0801DD0A ands r2, r4 movs r0, 0x10 orrs r2, r0 strb r2, [r3] _0801DD0A: pop {r4} pop {r0} bx r0 thumb_func_end sub_801DCD8 thumb_func_start sub_801DD10 sub_801DD10: @ 801DD10 push {r4,lr} adds r3, r0, 0 ldr r0, [r3] lsls r0, 24 lsrs r0, 29 adds r0, 0x1 lsls r0, 5 ldrb r1, [r3] movs r4, 0x1F adds r2, r4, 0 ands r2, r1 orrs r2, r0 strb r2, [r3] ldr r0, [r3] lsls r0, 24 lsrs r0, 29 cmp r0, 0x5 bls _0801DD3C ands r2, r4 movs r0, 0xA0 orrs r2, r0 strb r2, [r3] _0801DD3C: pop {r4} pop {r0} bx r0 thumb_func_end sub_801DD10 thumb_func_start sub_801DD44 sub_801DD44: @ 801DD44 push {lr} adds r2, r0, 0 ldrb r1, [r2] movs r0, 0xE0 ands r0, r1 cmp r0, 0xA0 bne _0801DD56 movs r0, 0x6 b _0801DD92 _0801DD56: ldr r1, [r2] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x1 beq _0801DD78 cmp r0, 0x1 bgt _0801DD6A cmp r0, 0 beq _0801DD74 b _0801DD90 _0801DD6A: cmp r0, 0x2 beq _0801DD7C cmp r0, 0x3 beq _0801DD80 b _0801DD90 _0801DD74: movs r0, 0x3 b _0801DD92 _0801DD78: movs r0, 0x1 b _0801DD92 _0801DD7C: movs r0, 0x2 b _0801DD92 _0801DD80: lsls r0, r1, 27 lsrs r0, 29 cmp r0, 0x2 bhi _0801DD8C movs r0, 0x4 b _0801DD92 _0801DD8C: movs r0, 0x5 b _0801DD92 _0801DD90: movs r0, 0 _0801DD92: pop {r1} bx r1 thumb_func_end sub_801DD44 thumb_func_start sub_801DD98 sub_801DD98: @ 801DD98 push {r4,lr} ldr r4, =gUnknown_02022C84 movs r0, 0xDE lsls r0, 1 bl Alloc str r0, [r4] bl sub_801DDD0 ldr r1, =gKeyRepeatStartDelay movs r0, 0x14 strh r0, [r1] movs r0, 0 bl SetVBlankCallback ldr r0, =c2_081284E0 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801DD98 thumb_func_start sub_801DDD0 sub_801DDD0: @ 801DDD0 push {r4-r7,lr} adds r4, r0, 0 movs r5, 0 movs r0, 0 strh r0, [r4, 0x4] strh r0, [r4, 0x6] strb r5, [r4, 0x10] strb r5, [r4, 0x11] strb r5, [r4, 0x12] strb r5, [r4, 0x14] strb r5, [r4, 0x15] strb r5, [r4, 0x16] movs r0, 0xFF strb r0, [r4, 0x1A] bl GetLinkPlayerCount strb r0, [r4, 0xD] bl GetMultiplayerId strb r0, [r4, 0x13] strb r5, [r4, 0x17] strb r5, [r4, 0x18] movs r1, 0xC8 lsls r1, 1 adds r0, r4, r1 bl sub_801EF1C ldr r7, =gSaveBlock1Ptr ldr r6, =0x00003c88 adds r4, 0xB9 movs r5, 0x9 _0801DE0E: ldr r1, [r7] adds r1, r6 adds r0, r4, 0 bl StringCopy adds r6, 0x15 adds r4, 0x15 subs r5, 0x1 cmp r5, 0 bge _0801DE0E pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801DDD0 thumb_func_start sub_801DE30 sub_801DE30: @ 801DE30 push {r4,lr} ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrb r0, [r0, 0xE] bl DestroyTask ldr r0, [r4] ldrb r0, [r0, 0xF] bl DestroyTask ldr r0, [r4] bl Free pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801DE30 thumb_func_start c2_081284E0 c2_081284E0: @ 801DE54 push {r4-r6,lr} sub sp, 0x4 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r6, r0, r1 ldrb r0, [r6] cmp r0, 0x1 beq _0801DE8C cmp r0, 0x1 bgt _0801DE74 cmp r0, 0 beq _0801DE7A b _0801DF04 .pool _0801DE74: cmp r0, 0x2 beq _0801DEC8 b _0801DF04 _0801DE7A: bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes bl sub_801F4D0 b _0801DEBC _0801DE8C: bl sub_801F5B8 bl sub_801F534 adds r5, r0, 0 cmp r5, 0 bne _0801DF04 movs r4, 0x1 negs r4, r4 adds r0, r4, 0 movs r1, 0x10 movs r2, 0 bl BlendPalettes str r5, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =sub_801DF20 bl SetVBlankCallback _0801DEBC: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _0801DF04 .pool _0801DEC8: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0801DF04 ldr r0, =sub_801DF38 bl SetMainCallback2 ldr r0, =sub_801DF54 movs r1, 0x8 bl CreateTask ldr r4, =gUnknown_02022C84 ldr r1, [r4] strb r0, [r1, 0xE] ldr r0, =sub_801F2B4 movs r1, 0x7 bl CreateTask ldr r1, [r4] strb r0, [r1, 0xF] bl sub_800E0E8 movs r0, 0xE8 movs r1, 0x96 bl sub_800DFB4 _0801DF04: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end c2_081284E0 thumb_func_start sub_801DF20 sub_801DF20: @ 801DF20 push {lr} bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests bl sub_80BA0A8 pop {r0} bx r0 thumb_func_end sub_801DF20 thumb_func_start sub_801DF38 sub_801DF38: @ 801DF38 push {lr} bl RunTasks bl sub_801F5B8 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_801DF38 thumb_func_start sub_801DF54 sub_801DF54: @ 801DF54 push {r4,lr} ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrb r0, [r0, 0x17] cmp r0, 0x2 beq _0801DF7A cmp r0, 0x2 bgt _0801DF70 cmp r0, 0x1 beq _0801DF76 b _0801DF8A .pool _0801DF70: cmp r0, 0x3 beq _0801DF7E b _0801DF8A _0801DF76: movs r0, 0x6 b _0801DF80 _0801DF7A: movs r0, 0x7 b _0801DF80 _0801DF7E: movs r0, 0x8 _0801DF80: bl sub_801EBD4 ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x17] _0801DF8A: ldr r1, =gUnknown_082F2A7C ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrh r0, [r0, 0x4] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801DF54 thumb_func_start sub_801DFAC sub_801DFAC: @ 801DFAC push {r4,lr} ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrh r1, [r0, 0x6] cmp r1, 0x1 beq _0801DFE0 cmp r1, 0x1 bgt _0801DFC8 cmp r1, 0 beq _0801DFCE b _0801E028 .pool _0801DFC8: cmp r1, 0x2 beq _0801E018 b _0801E028 _0801DFCE: movs r1, 0xC8 lsls r1, 1 adds r0, r1 bl sub_801EF24 ldr r1, [r4] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] _0801DFE0: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E028 bl sub_8011A9C cmp r0, 0 bne _0801E028 ldr r4, =gUnknown_02022C84 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r0, 0 movs r2, 0x28 bl SendBlock lsls r0, 24 cmp r0, 0 beq _0801E028 ldr r1, [r4] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E028 .pool _0801E018: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E028 movs r0, 0x1 bl sub_801EBD4 _0801E028: pop {r4} pop {r0} bx r0 thumb_func_end sub_801DFAC thumb_func_start sub_801E030 sub_801E030: @ 801E030 push {r4,r5,lr} ldr r5, =gUnknown_02022C84 ldr r3, [r5] ldrh r0, [r3, 0x6] cmp r0, 0 beq _0801E048 cmp r0, 0x1 beq _0801E0F6 b _0801E118 .pool _0801E048: ldr r1, =gMain ldrh r2, [r1, 0x2E] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _0801E068 ldrb r0, [r3, 0x15] cmp r0, 0 beq _0801E118 movs r0, 0x4 bl sub_801EBD4 b _0801E118 .pool _0801E068: movs r0, 0x4 ands r0, r2 cmp r0, 0 beq _0801E078 movs r0, 0x2 bl sub_801EBD4 b _0801E118 _0801E078: ldrh r1, [r1, 0x30] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0801E0A4 ldrb r0, [r3, 0x15] cmp r0, 0 beq _0801E09C bl sub_801ED68 movs r0, 0x8 movs r1, 0 bl sub_801F5EC ldr r1, [r5] movs r0, 0x1 strh r0, [r1, 0x6] b _0801E118 _0801E09C: movs r0, 0x3 bl sub_801EBD4 b _0801E118 _0801E0A4: movs r4, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0801E0C0 bl sub_801EC94 movs r0, 0x8 movs r1, 0 bl sub_801F5EC movs r0, 0x2 movs r1, 0x1 b _0801E0EC _0801E0C0: movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0801E0E0 ldrb r0, [r3, 0x10] cmp r0, 0x3 beq _0801E0D8 bl sub_801ED94 movs r0, 0x8 b _0801E0EA _0801E0D8: movs r0, 0x5 bl sub_801EBD4 b _0801E118 _0801E0E0: bl sub_801EBE4 cmp r0, 0 beq _0801E118 movs r0, 0x1 _0801E0EA: movs r1, 0 _0801E0EC: bl sub_801F5EC ldr r0, [r5] strh r4, [r0, 0x6] b _0801E118 _0801E0F6: movs r0, 0 bl sub_801F644 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 bl sub_801F644 lsls r0, 24 lsrs r1, r0, 24 cmp r4, 0 bne _0801E118 cmp r1, 0 bne _0801E118 ldr r0, [r5] strh r1, [r0, 0x6] _0801E118: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801E030 thumb_func_start sub_801E120 sub_801E120: @ 801E120 push {r4-r6,lr} ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrh r0, [r0, 0x6] cmp r0, 0x4 bls _0801E12E b _0801E23A _0801E12E: lsls r0, 2 ldr r1, =_0801E140 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E140: .4byte _0801E154 .4byte _0801E15E .4byte _0801E17C .4byte _0801E208 .4byte _0801E21C _0801E154: movs r0, 0x3 movs r1, 0 bl sub_801F5EC b _0801E16A _0801E15E: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E23A _0801E16A: ldr r0, =gUnknown_02022C84 ldr r1, [r0] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E23A .pool _0801E17C: bl ProcessMenuInput lsls r0, 24 asrs r0, 8 lsrs r6, r0, 16 asrs r4, r0, 16 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0801E1B4 adds r0, 0x1 cmp r4, r0 beq _0801E1D4 movs r0, 0x4 movs r1, 0 bl sub_801F5EC ldr r5, =gUnknown_02022C84 ldr r2, [r5] ldrb r0, [r2, 0x10] cmp r0, r4 beq _0801E1DC cmp r4, 0x3 ble _0801E1EC b _0801E1DC .pool _0801E1B4: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0801E23A movs r0, 0x5 bl PlaySE movs r0, 0x1 bl MoveMenuCursor b _0801E23A .pool _0801E1D4: movs r0, 0x4 movs r1, 0 bl sub_801F5EC _0801E1DC: ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x3 strh r0, [r1, 0x6] b _0801E23A .pool _0801E1EC: movs r1, 0 strb r1, [r2, 0x11] ldr r0, [r5] strb r1, [r0, 0x12] movs r0, 0x5 movs r1, 0x1 bl sub_801F5EC ldr r0, [r5] strb r6, [r0, 0x10] ldr r1, [r5] movs r0, 0x4 strh r0, [r1, 0x6] b _0801E23A _0801E208: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E23A movs r0, 0x1 bl sub_801EBD4 b _0801E23A _0801E21C: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E23A movs r0, 0x1 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E23A movs r0, 0x1 bl sub_801EBD4 _0801E23A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_801E120 thumb_func_start sub_801E240 sub_801E240: @ 801E240 push {r4,r5,lr} ldr r1, =gUnknown_02022C84 ldr r0, [r1] ldrh r0, [r0, 0x6] adds r2, r1, 0 cmp r0, 0xA bls _0801E250 b _0801E458 _0801E250: lsls r0, 2 ldr r1, =_0801E264 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E264: .4byte _0801E290 .4byte _0801E2A8 .4byte _0801E2C4 .4byte _0801E322 .4byte _0801E3D4 .4byte _0801E424 .4byte _0801E458 .4byte _0801E458 .4byte _0801E378 .4byte _0801E338 .4byte _0801E35C _0801E290: movs r0, 0x6 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x1 strh r0, [r1, 0x6] b _0801E458 .pool _0801E2A8: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801E2B6 b _0801E458 _0801E2B6: ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x2 strh r0, [r1, 0x6] b _0801E458 .pool _0801E2C4: bl sub_801FF08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0801E2E6 cmp r1, 0 bgt _0801E2DE movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0801E396 b _0801E458 _0801E2DE: cmp r1, 0x1 beq _0801E2E4 b _0801E458 _0801E2E4: b _0801E396 _0801E2E6: ldr r4, =gUnknown_02022C84 ldr r1, [r4] ldrb r0, [r1, 0x13] cmp r0, 0 bne _0801E310 movs r2, 0xC8 lsls r2, 1 adds r0, r1, r2 bl sub_801EFD0 movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r1, [r4] movs r0, 0x9 strh r0, [r1, 0x6] b _0801E458 .pool _0801E310: movs r2, 0xC8 lsls r2, 1 adds r0, r1, r2 bl sub_801EF7C ldr r1, [r4] movs r0, 0x4 strh r0, [r1, 0x6] b _0801E458 _0801E322: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801E330 b _0801E458 _0801E330: movs r0, 0x1 bl sub_801EBD4 b _0801E458 _0801E338: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801E346 b _0801E458 _0801E346: movs r0, 0x14 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0xA strh r0, [r1, 0x6] b _0801E458 .pool _0801E35C: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801E36A b _0801E458 _0801E36A: ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x8 strh r0, [r1, 0x6] b _0801E458 .pool _0801E378: bl sub_801FF08 lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _0801E3AC cmp r5, 0 bgt _0801E392 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _0801E396 b _0801E458 _0801E392: cmp r5, 0x1 bne _0801E458 _0801E396: movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x3 strh r0, [r1, 0x6] b _0801E458 .pool _0801E3AC: bl sub_80104B0 ldr r4, =gUnknown_02022C84 ldr r0, [r4] movs r1, 0xC8 lsls r1, 1 adds r0, r1 bl sub_801EFD0 ldr r0, [r4] movs r1, 0x4 strh r1, [r0, 0x6] movs r2, 0xDC lsls r2, 1 adds r0, r2 strh r5, [r0] b _0801E458 .pool _0801E3D4: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E414 bl sub_8011A9C cmp r0, 0 bne _0801E414 ldr r4, =gUnknown_02022C84 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r0, 0 movs r2, 0x28 bl SendBlock lsls r0, 24 cmp r0, 0 beq _0801E414 ldr r1, [r4] ldrb r0, [r1, 0x13] cmp r0, 0 bne _0801E410 movs r0, 0x6 b _0801E412 .pool _0801E410: movs r0, 0x5 _0801E412: strh r0, [r1, 0x6] _0801E414: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E458 b _0801E42C .pool _0801E424: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E438 _0801E42C: movs r0, 0x9 bl sub_801EBD4 b _0801E458 .pool _0801E438: ldr r3, [r2] movs r1, 0xDC lsls r1, 1 adds r2, r3, r1 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 movs r1, 0x96 lsls r1, 17 cmp r0, r1 bls _0801E458 movs r0, 0 strh r0, [r2] movs r0, 0x4 strh r0, [r3, 0x6] _0801E458: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801E240 thumb_func_start sub_801E460 sub_801E460: @ 801E460 push {r4,lr} ldr r1, =gUnknown_02022C84 ldr r0, [r1] ldrh r0, [r0, 0x6] adds r2, r1, 0 cmp r0, 0x7 bls _0801E470 b _0801E5BC _0801E470: lsls r0, 2 ldr r1, =_0801E484 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E484: .4byte _0801E4A4 .4byte _0801E4C8 .4byte _0801E4E8 .4byte _0801E50C .4byte _0801E540 .4byte _0801E560 .4byte _0801E584 .4byte _0801E5A8 _0801E4A4: ldr r0, =sub_801F2B4 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _0801E4B2 b _0801E5BC _0801E4B2: movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] b _0801E59A .pool _0801E4C8: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E5BC movs r0, 0x12 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] b _0801E59A .pool _0801E4E8: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E5BC ldr r4, =gUnknown_02022C84 ldr r0, [r4] movs r1, 0xC8 lsls r1, 1 adds r0, r1 bl sub_801EFA8 ldr r1, [r4] b _0801E59A .pool _0801E50C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E5BC bl sub_8011A9C cmp r0, 0 bne _0801E5BC ldr r4, =gUnknown_02022C84 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r0, 0 movs r2, 0x28 bl SendBlock lsls r0, 24 cmp r0, 0 beq _0801E5BC ldr r1, [r4] b _0801E59A .pool _0801E540: bl GetBlockReceivedStatus movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0801E5BC bl sub_8011A9C cmp r0, 0 bne _0801E5BC ldr r0, =gUnknown_02022C84 ldr r1, [r0] b _0801E59A .pool _0801E560: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E5BC bl sub_8011A9C adds r4, r0, 0 cmp r4, 0 bne _0801E5BC bl sub_800AC34 ldr r0, =gUnknown_02022C84 ldr r1, [r0] strh r4, [r1, 0xA] b _0801E59A .pool _0801E584: ldr r1, [r2] ldrh r0, [r1, 0xA] cmp r0, 0x95 bhi _0801E590 adds r0, 0x1 strh r0, [r1, 0xA] _0801E590: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E5BC ldr r1, [r2] _0801E59A: ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E5BC .pool _0801E5A8: ldr r1, [r2] ldrh r0, [r1, 0xA] cmp r0, 0x95 bls _0801E5B8 movs r0, 0x9 bl sub_801EBD4 b _0801E5BC _0801E5B8: adds r0, 0x1 strh r0, [r1, 0xA] _0801E5BC: pop {r4} pop {r0} bx r0 thumb_func_end sub_801E460 thumb_func_start sub_801E5C4 sub_801E5C4: @ 801E5C4 push {r4,r5,lr} ldr r5, =gUnknown_02022C84 ldr r1, [r5] ldrh r0, [r1, 0x6] cmp r0, 0x1 beq _0801E604 cmp r0, 0x1 bgt _0801E5E0 cmp r0, 0 beq _0801E5EA b _0801E662 .pool _0801E5E0: cmp r0, 0x2 beq _0801E62E cmp r0, 0x3 beq _0801E650 b _0801E662 _0801E5EA: ldr r0, =sub_801F2B4 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0801E662 movs r0, 0x7 movs r1, 0 bl sub_801F5EC b _0801E640 .pool _0801E604: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E662 bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E662 bl sub_8011A9C adds r4, r0, 0 cmp r4, 0 bne _0801E662 bl sub_800AC34 ldr r1, [r5] strh r4, [r1, 0xA] b _0801E642 _0801E62E: ldrh r0, [r1, 0xA] cmp r0, 0x95 bhi _0801E638 adds r0, 0x1 strh r0, [r1, 0xA] _0801E638: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E662 _0801E640: ldr r1, [r5] _0801E642: ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E662 .pool _0801E650: ldrh r0, [r1, 0xA] cmp r0, 0x95 bls _0801E65E movs r0, 0x9 bl sub_801EBD4 b _0801E662 _0801E65E: adds r0, 0x1 strh r0, [r1, 0xA] _0801E662: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_801E5C4 thumb_func_start sub_801E668 sub_801E668: @ 801E668 push {r4,lr} ldr r1, =gUnknown_02022C84 ldr r0, [r1] ldrh r0, [r0, 0x6] adds r2, r1, 0 cmp r0, 0x4 bhi _0801E75C lsls r0, 2 ldr r1, =_0801E688 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E688: .4byte _0801E69C .4byte _0801E6C8 .4byte _0801E6F0 .4byte _0801E724 .4byte _0801E748 _0801E69C: ldr r0, =sub_801F2B4 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0801E75C ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrb r0, [r0, 0x13] cmp r0, 0 beq _0801E6BA movs r0, 0x7 movs r1, 0 bl sub_801F5EC _0801E6BA: ldr r1, [r4] b _0801E73A .pool _0801E6C8: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E75C ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrb r0, [r0, 0x13] cmp r0, 0 beq _0801E6E6 movs r0, 0x13 movs r1, 0 bl sub_801F5EC _0801E6E6: ldr r1, [r4] b _0801E73A .pool _0801E6F0: movs r0, 0 bl sub_801F644 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0801E75C bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E75C bl sub_8011A9C adds r4, r0, 0 cmp r4, 0 bne _0801E75C bl sub_800AC34 ldr r0, =gUnknown_02022C84 ldr r1, [r0] strh r4, [r1, 0xA] b _0801E73A .pool _0801E724: ldr r1, [r2] ldrh r0, [r1, 0xA] cmp r0, 0x95 bhi _0801E730 adds r0, 0x1 strh r0, [r1, 0xA] _0801E730: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E75C ldr r1, [r2] _0801E73A: ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E75C .pool _0801E748: ldr r1, [r2] ldrh r0, [r1, 0xA] cmp r0, 0x95 bls _0801E758 movs r0, 0x9 bl sub_801EBD4 b _0801E75C _0801E758: adds r0, 0x1 strh r0, [r1, 0xA] _0801E75C: pop {r4} pop {r0} bx r0 thumb_func_end sub_801E668 thumb_func_start sub_801E764 sub_801E764: @ 801E764 push {r4,lr} ldr r1, =gUnknown_02022C84 ldr r0, [r1] ldrh r0, [r0, 0x6] adds r4, r1, 0 cmp r0, 0x4 bhi _0801E830 lsls r0, 2 ldr r1, =_0801E784 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E784: .4byte _0801E798 .4byte _0801E7C0 .4byte _0801E7F4 .4byte _0801E802 .4byte _0801E820 _0801E798: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801E7AC movs r0, 0x1 bl sub_801EBD4 b _0801E830 .pool _0801E7AC: ldr r0, [r4] movs r1, 0xC8 lsls r1, 1 adds r0, r1 bl sub_801EF4C ldr r1, [r4] ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] _0801E7C0: bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0801E830 bl sub_8011A9C cmp r0, 0 bne _0801E830 ldr r4, =gUnknown_02022C84 ldr r1, [r4] movs r0, 0xC8 lsls r0, 1 adds r1, r0 movs r0, 0 movs r2, 0x28 bl SendBlock lsls r0, 24 cmp r0, 0 beq _0801E830 ldr r1, [r4] b _0801E812 .pool _0801E7F4: bl sub_801EE10 movs r0, 0x8 movs r1, 0 bl sub_801F5EC b _0801E80E _0801E802: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E830 _0801E80E: ldr r0, =gUnknown_02022C84 ldr r1, [r0] _0801E812: ldrh r0, [r1, 0x6] adds r0, 0x1 strh r0, [r1, 0x6] b _0801E830 .pool _0801E820: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0801E830 movs r0, 0x1 bl sub_801EBD4 _0801E830: pop {r4} pop {r0} bx r0 thumb_func_end sub_801E764 thumb_func_start sub_801E838 sub_801E838: @ 801E838 push {r4,lr} ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrh r0, [r0, 0x6] cmp r0, 0x6 bls _0801E846 b _0801E968 _0801E846: lsls r0, 2 ldr r1, =_0801E858 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E858: .4byte _0801E874 .4byte _0801E8A4 .4byte _0801E8F8 .4byte _0801E910 .4byte _0801E920 .4byte _0801E934 .4byte _0801E94C _0801E874: bl sub_801EDC4 cmp r0, 0 beq _0801E890 movs r0, 0x9 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x2 b _0801E966 .pool _0801E890: movs r0, 0xD movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x5 b _0801E966 .pool _0801E8A4: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0801E8CC bl sub_801EDE0 movs r0, 0xB movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x3 b _0801E966 .pool _0801E8CC: movs r4, 0x2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0801E8DA movs r0, 0xA b _0801E95A _0801E8DA: bl sub_801EBE4 cmp r0, 0 beq _0801E968 movs r0, 0x1 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r0, [r0] strh r4, [r0, 0x6] b _0801E968 .pool _0801E8F8: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E968 ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x1 b _0801E966 .pool _0801E910: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E968 movs r0, 0xA b _0801E95A _0801E920: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E968 movs r0, 0x1 bl sub_801EBD4 b _0801E968 _0801E934: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801E968 ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x6 b _0801E966 .pool _0801E94C: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0801E968 movs r0, 0x7 _0801E95A: movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x4 _0801E966: strh r0, [r1, 0x6] _0801E968: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801E838 thumb_func_start sub_801E978 sub_801E978: @ 801E978 push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_02022C84 ldr r0, [r1] ldrh r0, [r0, 0x6] adds r4, r1, 0 cmp r0, 0xD bls _0801E98A b _0801EBC2 _0801E98A: lsls r0, 2 ldr r1, =_0801E99C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801E99C: .4byte _0801E9D4 .4byte _0801E9EE .4byte _0801EA14 .4byte _0801EA58 .4byte _0801EA7C .4byte _0801EA98 .4byte _0801EADC .4byte _0801EB04 .4byte _0801EB28 .4byte _0801EB40 .4byte _0801EB64 .4byte _0801EB72 .4byte _0801EB88 .4byte _0801EBA8 _0801E9D4: ldr r1, [r4] ldrb r0, [r1, 0x18] cmp r0, 0 bne _0801E9DE b _0801EB82 _0801E9DE: movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0x6] b _0801EBC2 _0801E9EE: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801E9FC b _0801EBC2 _0801E9FC: movs r0, 0xE movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x2 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EA14: bl sub_801FF08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0801EA40 cmp r1, 0 bgt _0801EA2E movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0801EA34 b _0801EBC2 _0801EA2E: cmp r1, 0x1 beq _0801EA34 b _0801EBC2 _0801EA34: ldr r0, =gUnknown_02022C84 ldr r1, [r0] b _0801EB82 .pool _0801EA40: movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x3 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EA58: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801EA66 b _0801EBC2 _0801EA66: movs r0, 0xF movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x4 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EA7C: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 beq _0801EA8A b _0801EBC2 _0801EA8A: ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x5 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EA98: bl sub_801FF08 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0801EAC4 cmp r1, 0 bgt _0801EAB2 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0801EAB8 b _0801EBC2 _0801EAB2: cmp r1, 0x1 beq _0801EAB8 b _0801EBC2 _0801EAB8: ldr r0, =gUnknown_02022C84 ldr r1, [r0] b _0801EB82 .pool _0801EAC4: movs r0, 0x7 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x6 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EADC: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801EBC2 movs r0, 0x10 movs r1, 0 bl sub_801F5EC bl sub_801EE2C ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x7 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EB04: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801EBC2 bl sub_8076D5C movs r0, 0 bl TrySavingData ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x8 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EB28: movs r0, 0x11 movs r1, 0 bl sub_801F5EC ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x9 strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EB40: movs r0, 0 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801EBC2 movs r0, 0x37 bl PlaySE bl sav2_gender2_inplace_and_xFE ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0xA strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EB64: ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x19] ldr r1, [r4] movs r0, 0xB strh r0, [r1, 0x6] b _0801EBC2 _0801EB72: ldr r0, [r4] ldrb r1, [r0, 0x19] adds r1, 0x1 strb r1, [r0, 0x19] ldr r1, [r4] ldrb r0, [r1, 0x19] cmp r0, 0x78 bls _0801EBC2 _0801EB82: movs r0, 0xC strh r0, [r1, 0x6] b _0801EBC2 _0801EB88: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0xD strh r0, [r1, 0x6] b _0801EBC2 .pool _0801EBA8: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0801EBC2 bl sub_801F544 bl sub_801DE30 ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 _0801EBC2: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801E978 thumb_func_start sub_801EBD4 sub_801EBD4: @ 801EBD4 ldr r1, =gUnknown_02022C84 ldr r1, [r1] movs r2, 0 strh r0, [r1, 0x4] strh r2, [r1, 0x6] bx lr .pool thumb_func_end sub_801EBD4 thumb_func_start sub_801EBE4 sub_801EBE4: @ 801EBE4 push {lr} ldr r0, =gMain ldrh r2, [r0, 0x30] movs r0, 0x40 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _0801EC6E movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _0801EC24 ldr r0, =gUnknown_02022C84 ldr r2, [r0] ldr r1, =gUnknown_082F2AA4 ldrb r0, [r2, 0x10] adds r0, r1 ldrb r1, [r2, 0x12] ldrb r0, [r0] cmp r1, r0 bcs _0801EC20 adds r0, r1, 0x1 b _0801EC88 .pool _0801EC20: strb r3, [r2, 0x12] b _0801EC8A _0801EC24: ldr r0, =gUnknown_02022C84 ldr r1, [r0] ldrb r0, [r1, 0x10] cmp r0, 0x3 beq _0801EC6A movs r0, 0x20 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _0801EC52 ldrb r0, [r1, 0x11] cmp r0, 0 beq _0801EC4C subs r0, 0x1 strb r0, [r1, 0x11] b _0801EC8A .pool _0801EC4C: movs r0, 0x4 strb r0, [r1, 0x11] b _0801EC8A _0801EC52: movs r0, 0x10 ands r0, r2 cmp r0, 0 beq _0801EC6A ldrb r0, [r1, 0x11] cmp r0, 0x3 bhi _0801EC66 adds r0, 0x1 strb r0, [r1, 0x11] b _0801EC8A _0801EC66: strb r3, [r1, 0x11] b _0801EC8A _0801EC6A: movs r0, 0 b _0801EC8C _0801EC6E: ldr r0, =gUnknown_02022C84 ldr r2, [r0] ldrb r0, [r2, 0x12] cmp r0, 0 beq _0801EC80 subs r0, 0x1 b _0801EC88 .pool _0801EC80: ldr r0, =gUnknown_082F2AA4 ldrb r1, [r2, 0x10] adds r1, r0 ldrb r0, [r1] _0801EC88: strb r0, [r2, 0x12] _0801EC8A: movs r0, 0x1 _0801EC8C: pop {r1} bx r1 .pool thumb_func_end sub_801EBE4 thumb_func_start sub_801EC94 sub_801EC94: @ 801EC94 push {r4-r6,lr} sub sp, 0x18 ldr r0, =gUnknown_02022C84 ldr r5, [r0] ldrb r0, [r5, 0x10] cmp r0, 0x3 beq _0801ECDC ldr r3, =gUnknown_082F2BA8 ldrb r1, [r5, 0x12] lsls r1, 2 adds r2, r0, 0 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r3 ldr r4, [r1] ldrb r0, [r5, 0x11] cmp r0, 0 beq _0801ECCE adds r1, r0, 0 _0801ECBE: ldrb r0, [r4] cmp r0, 0xF9 bne _0801ECC6 adds r4, 0x1 _0801ECC6: adds r4, 0x1 subs r1, 0x1 cmp r1, 0 bne _0801ECBE _0801ECCE: movs r5, 0x1 b _0801ED02 .pool _0801ECDC: ldrb r0, [r5, 0x12] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r0 adds r1, 0xB9 adds r1, r5, r1 mov r0, sp bl StringCopy movs r1, 0 strb r1, [r0] movs r1, 0xFF strb r1, [r0, 0x1] mov r4, sp mov r0, sp bl StringLength_Multibyte adds r5, r0, 0 _0801ED02: ldr r6, =gUnknown_02022C84 ldr r1, [r6] ldrb r0, [r1, 0x15] strb r0, [r1, 0x14] cmp r4, 0 beq _0801ED5A bl sub_801EE84 adds r2, r0, 0 subs r5, 0x1 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _0801ED56 ldr r0, [r6] ldrb r0, [r0, 0x15] cmp r0, 0xE bhi _0801ED56 adds r3, r6, 0 _0801ED28: ldrb r0, [r4] cmp r0, 0xF9 bne _0801ED34 strb r0, [r2] adds r4, 0x1 adds r2, 0x1 _0801ED34: ldrb r0, [r4] strb r0, [r2] adds r4, 0x1 adds r2, 0x1 ldr r1, [r3] ldrb r0, [r1, 0x15] adds r0, 0x1 strb r0, [r1, 0x15] subs r5, 0x1 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _0801ED56 ldr r0, [r3] ldrb r0, [r0, 0x15] cmp r0, 0xE bls _0801ED28 _0801ED56: movs r0, 0xFF strb r0, [r2] _0801ED5A: add sp, 0x18 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801EC94 thumb_func_start sub_801ED68 sub_801ED68: @ 801ED68 push {r4,lr} ldr r4, =gUnknown_02022C84 ldr r1, [r4] ldrb r0, [r1, 0x15] strb r0, [r1, 0x14] ldr r0, [r4] ldrb r0, [r0, 0x15] cmp r0, 0 beq _0801ED8A bl sub_801EEA8 movs r1, 0xFF strb r1, [r0] ldr r1, [r4] ldrb r0, [r1, 0x15] subs r0, 0x1 strb r0, [r1, 0x15] _0801ED8A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801ED68 thumb_func_start sub_801ED94 sub_801ED94: @ 801ED94 push {lr} ldr r0, =gUnknown_02022C84 ldr r1, [r0] ldrb r0, [r1, 0x15] subs r0, 0x1 strb r0, [r1, 0x14] bl sub_801EEA8 adds r2, r0, 0 ldrb r0, [r2] cmp r0, 0xF9 beq _0801EDB8 ldr r1, =gUnknown_082F2AA8 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _0801EDB8 strb r0, [r2] _0801EDB8: pop {r0} bx r0 .pool thumb_func_end sub_801ED94 thumb_func_start sub_801EDC4 sub_801EDC4: @ 801EDC4 push {lr} ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0 bne _0801EDD8 movs r0, 0 b _0801EDDA .pool _0801EDD8: movs r0, 0x1 _0801EDDA: pop {r1} bx r1 thumb_func_end sub_801EDC4 thumb_func_start sub_801EDE0 sub_801EDE0: @ 801EDE0 push {r4,lr} bl sub_801F114 adds r1, r0, 0 ldr r4, =gUnknown_02022C84 ldr r0, [r4] ldrb r3, [r0, 0x12] lsls r2, r3, 2 adds r2, r3 lsls r2, 2 adds r2, r3 adds r2, 0xB9 adds r0, r2 bl StringCopy ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x18] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EDE0 thumb_func_start sub_801EE10 sub_801EE10: @ 801EE10 ldr r1, =gUnknown_02022C84 ldr r2, [r1] movs r0, 0xFF strb r0, [r2, 0x1A] ldr r2, [r1] movs r3, 0 movs r0, 0xF strb r0, [r2, 0x14] ldr r0, [r1] strb r3, [r0, 0x15] bx lr .pool thumb_func_end sub_801EE10 thumb_func_start sub_801EE2C sub_801EE2C: @ 801EE2C push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gSaveBlock1Ptr mov r8, r0 ldr r7, =gUnknown_02022C84 movs r6, 0xB9 ldr r5, =0x00003c88 movs r4, 0x9 _0801EE3E: mov r1, r8 ldr r0, [r1] adds r0, r5 ldr r1, [r7] adds r1, r6 bl StringCopy adds r6, 0x15 adds r5, 0x15 subs r4, 0x1 cmp r4, 0 bge _0801EE3E pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801EE2C thumb_func_start sub_801EE6C sub_801EE6C: @ 801EE6C ldr r2, =gUnknown_02022C84 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r0 adds r1, 0xB9 ldr r0, [r2] adds r0, r1 bx lr .pool thumb_func_end sub_801EE6C thumb_func_start sub_801EE84 sub_801EE84: @ 801EE84 push {lr} ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x1A ldrb r0, [r0, 0x1A] cmp r0, 0xFF beq _0801EE9C _0801EE94: adds r1, 0x1 ldrb r0, [r1] cmp r0, 0xFF bne _0801EE94 _0801EE9C: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_801EE84 thumb_func_start sub_801EEA8 sub_801EEA8: @ 801EEA8 push {lr} ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r2, r0, 0 adds r2, 0x1A adds r1, r2, 0 ldrb r0, [r0, 0x1A] cmp r0, 0xFF beq _0801EECC _0801EEBA: adds r2, r1, 0 ldrb r0, [r2] cmp r0, 0xF9 bne _0801EEC4 adds r1, r2, 0x1 _0801EEC4: adds r1, 0x1 ldrb r0, [r1] cmp r0, 0xFF bne _0801EEBA _0801EECC: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_801EEA8 thumb_func_start sub_801EED8 sub_801EED8: @ 801EED8 push {r4,lr} ldr r4, =gUnknown_02022C84 ldr r0, [r4] adds r0, 0x1A bl StringLength_Multibyte adds r2, r0, 0 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x1A movs r4, 0 cmp r2, 0xA bls _0801EF0C subs r2, 0xA movs r3, 0 cmp r4, r2 bcs _0801EF0C _0801EEFA: ldrb r0, [r1] cmp r0, 0xF9 bne _0801EF02 adds r1, 0x1 _0801EF02: adds r1, 0x1 adds r4, 0x1 adds r3, 0x1 cmp r3, r2 bcc _0801EEFA _0801EF0C: lsls r0, r4, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801EED8 thumb_func_start sub_801EF1C sub_801EF1C: @ 801EF1C movs r1, 0 strb r1, [r0] bx lr thumb_func_end sub_801EF1C thumb_func_start sub_801EF24 sub_801EF24: @ 801EF24 push {r4,lr} adds r4, r0, 0 movs r0, 0x2 strb r0, [r4] adds r0, r4, 0x1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EF24 thumb_func_start sub_801EF4C sub_801EF4C: @ 801EF4C push {r4,lr} adds r4, r0, 0 movs r0, 0x1 strb r0, [r4] adds r0, r4, 0x1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy adds r4, 0x9 ldr r0, =gUnknown_02022C84 ldr r1, [r0] adds r1, 0x1A adds r0, r4, 0 bl StringCopy pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EF4C thumb_func_start sub_801EF7C sub_801EF7C: @ 801EF7C push {r4,lr} adds r4, r0, 0 movs r0, 0x3 strb r0, [r4] adds r0, r4, 0x1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] bl sub_8011A50 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EF7C thumb_func_start sub_801EFA8 sub_801EFA8: @ 801EFA8 push {r4,lr} adds r4, r0, 0 movs r0, 0x4 strb r0, [r4] adds r0, r4, 0x1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EFA8 thumb_func_start sub_801EFD0 sub_801EFD0: @ 801EFD0 push {r4,lr} adds r4, r0, 0 movs r0, 0x5 strb r0, [r4] adds r0, r4, 0x1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] strb r0, [r4, 0x9] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801EFD0 thumb_func_start sub_801EFF8 sub_801EFF8: @ 801EFF8 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 ldrb r0, [r5] adds r1, r0, 0 adds r4, r5, 0x1 adds r5, r4, 0 adds r5, 0x8 cmp r0, 0x2 beq _0801F020 cmp r0, 0x2 bgt _0801F016 cmp r0, 0x1 beq _0801F044 b _0801F0A8 _0801F016: cmp r1, 0x3 beq _0801F07A cmp r1, 0x5 beq _0801F06E b _0801F0A8 _0801F020: ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] ldrb r1, [r4, 0x8] cmp r0, r1 beq _0801F0A8 bl sub_81AFBF0 movs r0, 0 adds r1, r4, 0 bl sub_81AFC0C ldr r1, =gText_F700JoinedChat b _0801F094 .pool _0801F044: adds r0, r6, 0 adds r1, r4, 0 bl StringCopy movs r1, 0xFC strb r1, [r0] adds r0, 0x1 movs r1, 0x13 strb r1, [r0] adds r0, 0x1 movs r1, 0x2A strb r1, [r0] adds r0, 0x1 movs r1, 0xF0 strb r1, [r0] adds r0, 0x1 adds r1, r5, 0 bl StringCopy movs r0, 0x1 b _0801F0AA _0801F06E: ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r0, 0x79 adds r1, r4, 0 bl StringCopy _0801F07A: ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x13] ldrb r5, [r5] cmp r0, r5 beq _0801F0A8 bl sub_81AFBF0 movs r0, 0 adds r1, r4, 0 bl sub_81AFC0C ldr r1, =gText_F700LeftChat _0801F094: adds r0, r6, 0 bl sub_81AFC28 movs r0, 0x1 b _0801F0AA .pool _0801F0A8: movs r0, 0 _0801F0AA: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801EFF8 thumb_func_start sub_801F0B0 sub_801F0B0: @ 801F0B0 ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x10] bx lr .pool thumb_func_end sub_801F0B0 thumb_func_start sub_801F0BC sub_801F0BC: @ 801F0BC ldr r2, =gUnknown_02022C84 ldr r3, [r2] ldrb r2, [r3, 0x11] strb r2, [r0] ldrb r0, [r3, 0x12] strb r0, [r1] bx lr .pool thumb_func_end sub_801F0BC thumb_func_start sub_801F0D0 sub_801F0D0: @ 801F0D0 ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r0, 0x1A bx lr .pool thumb_func_end sub_801F0D0 thumb_func_start sub_801F0DC sub_801F0DC: @ 801F0DC push {lr} bl sub_801F0D0 bl StringLength_Multibyte pop {r1} bx r1 thumb_func_end sub_801F0DC thumb_func_start sub_801F0EC sub_801F0EC: @ 801F0EC push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r3, [r0, 0x15] ldrb r2, [r0, 0x14] subs r0, r3, r2 cmp r0, 0 bge _0801F108 negs r0, r0 str r3, [r4] b _0801F10A .pool _0801F108: str r2, [r4] _0801F10A: str r0, [r1] pop {r4} pop {r0} bx r0 thumb_func_end sub_801F0EC thumb_func_start sub_801F114 sub_801F114: @ 801F114 push {lr} bl sub_801EED8 lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x1A cmp r2, 0 beq _0801F13A _0801F12A: ldrb r0, [r1] cmp r0, 0xF9 bne _0801F132 adds r1, 0x1 _0801F132: adds r1, 0x1 subs r2, 0x1 cmp r2, 0 bne _0801F12A _0801F13A: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_801F114 thumb_func_start sub_801F144 sub_801F144: @ 801F144 push {r4,lr} bl sub_801EED8 lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x1A movs r2, 0 movs r3, 0 cmp r2, r4 bcs _0801F174 _0801F15E: ldrb r0, [r1] cmp r0, 0xF9 bne _0801F166 adds r1, 0x1 _0801F166: adds r1, 0x1 adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 adds r3, 0x1 cmp r3, r4 bcc _0801F15E _0801F174: adds r0, r2, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_801F144 thumb_func_start sub_801F180 sub_801F180: @ 801F180 ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r0, 0x39 bx lr .pool thumb_func_end sub_801F180 thumb_func_start sub_801F18C sub_801F18C: @ 801F18C ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x16] bx lr .pool thumb_func_end sub_801F18C thumb_func_start sub_801F198 sub_801F198: @ 801F198 ldr r0, =gUnknown_02022C84 ldr r0, [r0] ldrb r0, [r0, 0x15] bx lr .pool thumb_func_end sub_801F198 thumb_func_start sub_801F1A4 sub_801F1A4: @ 801F1A4 push {lr} bl sub_801EEA8 ldrb r1, [r0] cmp r1, 0xFF bhi _0801F1BE ldr r0, =gUnknown_082F2AA8 adds r0, r1, r0 ldrb r0, [r0] cmp r0, r1 beq _0801F1BE cmp r0, 0 bne _0801F1C8 _0801F1BE: movs r0, 0x3 b _0801F1CA .pool _0801F1C8: movs r0, 0 _0801F1CA: pop {r1} bx r1 thumb_func_end sub_801F1A4 thumb_func_start sub_801F1D0 sub_801F1D0: @ 801F1D0 ldr r0, =gUnknown_02022C84 ldr r0, [r0] adds r0, 0x79 bx lr .pool thumb_func_end sub_801F1D0 thumb_func_start copy_strings_to_sav1 copy_strings_to_sav1: @ 801F1DC push {r4,lr} ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r1, =0x00003c88 adds r0, r1 ldr r1, =gText_Hello bl StringCopy ldr r0, [r4] ldr r1, =0x00003c9d adds r0, r1 ldr r1, =gText_Pokemon2 bl StringCopy ldr r0, [r4] ldr r1, =0x00003cb2 adds r0, r1 ldr r1, =gText_Trade bl StringCopy ldr r0, [r4] ldr r1, =0x00003cc7 adds r0, r1 ldr r1, =gText_Battle bl StringCopy ldr r0, [r4] ldr r1, =0x00003cdc adds r0, r1 ldr r1, =gText_Lets bl StringCopy ldr r0, [r4] ldr r1, =0x00003cf1 adds r0, r1 ldr r1, =gText_Ok bl StringCopy ldr r0, [r4] ldr r1, =0x00003d06 adds r0, r1 ldr r1, =gText_Sorry bl StringCopy ldr r0, [r4] ldr r1, =0x00003d1b adds r0, r1 ldr r1, =gText_YayUnkF9F9 bl StringCopy ldr r0, [r4] ldr r1, =0x00003d30 adds r0, r1 ldr r1, =gText_ThankYou bl StringCopy ldr r0, [r4] ldr r1, =0x00003d45 adds r0, r1 ldr r1, =gText_ByeBye bl StringCopy pop {r4} pop {r0} bx r0 .pool thumb_func_end copy_strings_to_sav1 thumb_func_start sub_801F2B4 sub_801F2B4: @ 801F2B4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x7 bls _0801F2CE b _0801F4C4 _0801F2CE: lsls r0, 2 ldr r1, =_0801F2E0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801F2E0: .4byte _0801F300 .4byte _0801F30E .4byte _0801F4A8 .4byte _0801F35C .4byte _0801F448 .4byte _0801F480 .4byte _0801F494 .4byte _0801F438 _0801F300: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0801F30A b _0801F49C _0801F30A: movs r0, 0x1 strh r0, [r4] _0801F30E: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 strh r0, [r4, 0x8] ldr r3, =gUnknown_02022C84 ldr r0, [r3] ldrb r1, [r0, 0xD] movs r5, 0x8 ldrsh r0, [r4, r5] cmp r1, r0 beq _0801F33C movs r0, 0x2 strh r0, [r4] ldr r0, [r3] strb r2, [r0, 0xD] b _0801F4C4 .pool _0801F33C: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x6] cmp r0, 0 bne _0801F354 bl sub_8011A9C cmp r0, 0 beq _0801F354 b _0801F4C4 _0801F354: movs r0, 0 strh r0, [r4, 0x2] movs r0, 0x3 strh r0, [r4] _0801F35C: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _0801F396 movs r2, 0x6 ldrsh r0, [r4, r2] movs r3, 0x2 ldrsh r1, [r4, r3] asrs r0, r1 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _0801F396 movs r2, 0x1 _0801F378: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _0801F396 movs r5, 0x6 ldrsh r0, [r4, r5] movs r3, 0x2 ldrsh r1, [r4, r3] asrs r0, r1 ands r0, r2 cmp r0, 0 beq _0801F378 _0801F396: ldrh r1, [r4, 0x2] movs r5, 0x2 ldrsh r0, [r4, r5] cmp r0, 0x5 bne _0801F3A2 b _0801F4C0 _0801F3A2: strh r1, [r4, 0x4] lsls r0, r1, 24 lsrs r0, 24 bl ResetBlockReceivedFlag movs r1, 0x2 ldrsh r0, [r4, r1] lsls r0, 8 ldr r1, =gBlockRecvBuffer adds r0, r1 ldrb r0, [r0] subs r0, 0x1 cmp r0, 0x4 bhi _0801F3E4 lsls r0, 2 ldr r1, =_0801F3D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801F3D0: .4byte _0801F3E4 .4byte _0801F3E8 .4byte _0801F3EC .4byte _0801F3F0 .4byte _0801F3F4 _0801F3E4: movs r0, 0x3 b _0801F3F6 _0801F3E8: movs r0, 0x3 b _0801F3F6 _0801F3EC: movs r0, 0x4 b _0801F3F6 _0801F3F0: movs r0, 0x5 b _0801F3F6 _0801F3F4: movs r0, 0x6 _0801F3F6: strh r0, [r4, 0xA] ldr r5, =gUnknown_02022C84 ldr r0, [r5] adds r0, 0x39 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 8 ldr r2, =gBlockRecvBuffer adds r1, r2 bl sub_801EFF8 cmp r0, 0 beq _0801F42C ldr r0, [r5] ldrh r1, [r4, 0x2] strb r1, [r0, 0x16] movs r0, 0xC movs r1, 0x2 bl sub_801F5EC movs r0, 0x7 b _0801F42E .pool _0801F42C: ldrh r0, [r4, 0xA] _0801F42E: strh r0, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] b _0801F4C4 _0801F438: movs r0, 0x2 bl sub_801F644 lsls r0, 24 cmp r0, 0 bne _0801F4C4 ldrh r0, [r4, 0xA] b _0801F4C2 _0801F448: ldr r6, =gUnknown_02022C84 ldr r0, [r6] ldrb r0, [r0, 0x13] cmp r0, 0 bne _0801F47C movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 beq _0801F47C bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0801F474 bl sub_80104B0 ldr r1, [r6] movs r0, 0x1 b _0801F49A .pool _0801F474: movs r5, 0x4 ldrsh r0, [r4, r5] bl sub_8011DE0 _0801F47C: movs r0, 0x3 b _0801F4C2 _0801F480: ldr r0, =gUnknown_02022C84 ldr r1, [r0] ldrb r0, [r1, 0x13] cmp r0, 0 beq _0801F49C movs r0, 0x2 b _0801F49A .pool _0801F494: ldr r0, =gUnknown_02022C84 ldr r1, [r0] movs r0, 0x3 _0801F49A: strb r0, [r1, 0x17] _0801F49C: adds r0, r5, 0 bl DestroyTask b _0801F4C4 .pool _0801F4A8: bl sub_8011A9C cmp r0, 0 bne _0801F4C4 ldr r0, =gUnknown_02022C84 ldr r1, [r0] ldrb r0, [r1, 0x13] cmp r0, 0 bne _0801F4C0 ldrb r0, [r1, 0xD] bl sub_80110B8 _0801F4C0: movs r0, 0x1 _0801F4C2: strh r0, [r4] _0801F4C4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801F2B4 thumb_func_start sub_801F4D0 sub_801F4D0: @ 801F4D0 push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r0, =0x00002168 bl Alloc str r0, [r4] cmp r0, 0 beq _0801F52C bl sub_8020890 cmp r0, 0 beq _0801F52C movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F2C60 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gUnknown_082F2C70 bl InitWindows bl reset_temp_tile_data_buffers bl sub_8020770 ldr r0, [r4] bl sub_801F574 bl sub_801F580 movs r0, 0 movs r1, 0 bl sub_801F5EC movs r0, 0x1 b _0801F52E .pool _0801F52C: movs r0, 0 _0801F52E: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F4D0 thumb_func_start sub_801F534 sub_801F534: @ 801F534 push {lr} movs r0, 0 bl sub_801F644 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_801F534 thumb_func_start sub_801F544 sub_801F544: @ 801F544 push {r4,lr} bl sub_80208D0 ldr r4, =gUnknown_02022C88 ldr r0, [r4] cmp r0, 0 beq _0801F55A bl Free movs r0, 0 str r0, [r4] _0801F55A: bl FreeAllWindowBuffers ldr r1, =gUnknown_02039B28 movs r0, 0x3 strb r0, [r1, 0x15] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801F544 thumb_func_start sub_801F574 sub_801F574: @ 801F574 movs r2, 0 movs r1, 0xFF strh r1, [r0, 0x18] strh r1, [r0, 0x1E] strh r2, [r0, 0x1A] bx lr thumb_func_end sub_801F574 thumb_func_start sub_801F580 sub_801F580: @ 801F580 push {r4,r5,lr} ldr r1, =gUnknown_02022C88 ldr r0, [r1] cmp r0, 0 beq _0801F5A8 movs r2, 0 adds r4, r1, 0 ldr r5, =sub_801FDD8 movs r3, 0 _0801F592: ldr r0, [r4] lsls r1, r2, 3 adds r0, r1 str r5, [r0] strb r3, [r0, 0x4] ldr r0, [r4] adds r0, r1 strb r3, [r0, 0x5] adds r2, 0x1 cmp r2, 0x2 ble _0801F592 _0801F5A8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_801F580 thumb_func_start sub_801F5B8 sub_801F5B8: @ 801F5B8 push {r4-r6,lr} ldr r1, =gUnknown_02022C88 ldr r0, [r1] cmp r0, 0 beq _0801F5E0 movs r5, 0 adds r6, r1, 0 _0801F5C6: ldr r1, [r6] lsls r4, r5, 3 adds r1, r4 adds r0, r1, 0x5 ldr r1, [r1] bl _call_via_r1 ldr r1, [r6] adds r1, r4 strb r0, [r1, 0x4] adds r5, 0x1 cmp r5, 0x2 ble _0801F5C6 _0801F5E0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_801F5B8 thumb_func_start sub_801F5EC sub_801F5EC: @ 801F5EC push {r4-r7,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 ldr r3, =gUnknown_02022C88 ldr r0, [r3] lsrs r1, 21 adds r0, r1 ldr r2, =sub_801FDD8 str r2, [r0] movs r4, 0 adds r5, r3, 0 adds r3, r1, 0 mov r12, r4 ldr r1, =gUnknown_082F2C98 movs r7, 0x1 adds r2, r1, 0x4 _0801F60E: ldrh r0, [r1] cmp r0, r6 bne _0801F634 ldr r1, [r5] adds r1, r3 ldr r0, [r2] str r0, [r1] strb r7, [r1, 0x4] ldr r0, [r5] adds r0, r3 mov r1, r12 strb r1, [r0, 0x5] b _0801F63E .pool _0801F634: adds r1, 0x8 adds r2, 0x8 adds r4, 0x1 cmp r4, 0x14 bls _0801F60E _0801F63E: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_801F5EC thumb_func_start sub_801F644 sub_801F644: @ 801F644 lsls r0, 24 ldr r1, =gUnknown_02022C88 ldr r1, [r1] lsrs r0, 21 adds r1, r0 ldrb r0, [r1, 0x4] bx lr .pool thumb_func_end sub_801F644 thumb_func_start sub_801F658 sub_801F658: @ 801F658 push {r4,lr} adds r4, r0, 0 bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0801F6EE ldrb r0, [r4] cmp r0, 0x6 bhi _0801F6E4 lsls r0, 2 ldr r1, =_0801F67C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801F67C: .4byte _0801F698 .4byte _0801F6A2 .4byte _0801F6A8 .4byte _0801F6AE .4byte _0801F6B4 .4byte _0801F6BA .4byte _0801F6CC _0801F698: bl sub_8020480 bl sub_8020538 b _0801F6E8 _0801F6A2: bl sub_8020584 b _0801F6E8 _0801F6A8: bl sub_80205B4 b _0801F6E8 _0801F6AE: bl task_tutorial_story_unknown b _0801F6E8 _0801F6B4: bl sub_8020680 b _0801F6E8 _0801F6BA: bl sub_80206A4 bl sub_80206D0 bl sub_8020740 bl sub_80206E8 b _0801F6E8 _0801F6CC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801F6E8 bl sub_80208E8 bl sub_8020A68 bl sub_8020B20 b _0801F6E8 _0801F6E4: movs r0, 0 b _0801F6F0 _0801F6E8: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0801F6EE: movs r0, 0x1 _0801F6F0: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F658 thumb_func_start sub_801F6F8 sub_801F6F8: @ 801F6F8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801F708 cmp r0, 0x1 beq _0801F716 b _0801F720 _0801F708: bl sub_80203B0 movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram b _0801F720 _0801F716: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801F728 _0801F720: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _0801F728: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F6F8 thumb_func_start sub_801F730 sub_801F730: @ 801F730 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801F740 cmp r0, 0x1 beq _0801F74E b _0801F758 _0801F740: bl sub_802040C movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram b _0801F758 _0801F74E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801F760 _0801F758: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _0801F760: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F730 thumb_func_start sub_801F768 sub_801F768: @ 801F768 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x1 beq _0801F79E cmp r0, 0x1 bgt _0801F77C cmp r0, 0 beq _0801F782 b _0801F7C4 _0801F77C: cmp r0, 0x2 beq _0801F7AA b _0801F7C4 _0801F782: movs r0, 0x1 bl sub_802091C bl sub_8020320 cmp r0, 0 bne _0801F7CA bl sub_80201A4 movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram b _0801F7C4 _0801F79E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _0801F7C4 b _0801F7CA _0801F7AA: bl sub_8020368 cmp r0, 0 bne _0801F7CA bl sub_802093C movs r0, 0 bl sub_802091C bl sub_8020B80 movs r0, 0 b _0801F7CC _0801F7C4: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0801F7CA: movs r0, 0x1 _0801F7CC: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F768 thumb_func_start sub_801F7D4 sub_801F7D4: @ 801F7D4 push {lr} bl sub_802093C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_801F7D4 thumb_func_start sub_801F7E0 sub_801F7E0: @ 801F7E0 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801F7F0 cmp r0, 0x1 beq _0801F814 b _0801F81E _0801F7F0: movs r0, 0 movs r1, 0 bl sub_801FF18 movs r0, 0x17 movs r1, 0xB movs r2, 0x1 bl sub_801FDDC ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _0801F81E .pool _0801F814: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801F826 _0801F81E: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] movs r0, 0x1 _0801F826: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F7E0 thumb_func_start sub_801F82C sub_801F82C: @ 801F82C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801F83C cmp r0, 0x1 beq _0801F84C b _0801F862 _0801F83C: bl sub_8020094 bl sub_801FEBC movs r0, 0 bl CopyBgTilemapBufferToVram b _0801F862 _0801F84C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801F868 bl sub_80200C8 bl sub_801FEE4 movs r0, 0 b _0801F86A _0801F862: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0801F868: movs r0, 0x1 _0801F86A: pop {r4} pop {r1} bx r1 thumb_func_end sub_801F82C thumb_func_start sub_801F870 sub_801F870: @ 801F870 push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801F882 cmp r0, 0x1 beq _0801F8BA b _0801F8CC _0801F882: add r1, sp, 0x8 add r0, sp, 0x4 bl sub_801F0EC ldr r0, [sp, 0x4] lsls r0, 16 lsrs r0, 16 ldr r1, [sp, 0x8] lsls r1, 16 lsrs r1, 16 movs r2, 0 bl sub_80200EC bl sub_801F0D0 adds r1, r0, 0 movs r0, 0x2 str r0, [sp] movs r0, 0 movs r2, 0x3 movs r3, 0x1 bl sub_8020118 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0801F8CC _0801F8BA: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801F8D2 bl sub_8020B80 movs r0, 0 b _0801F8D4 _0801F8CC: ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] _0801F8D2: movs r0, 0x1 _0801F8D4: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_801F870 thumb_func_start sub_801F8DC sub_801F8DC: @ 801F8DC push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x1 beq _0801F938 cmp r0, 0x1 bgt _0801F8F2 cmp r0, 0 beq _0801F8FC b _0801F972 _0801F8F2: cmp r0, 0x2 beq _0801F95C cmp r0, 0x3 beq _0801F96E b _0801F972 _0801F8FC: bl sub_801F144 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_801F114 adds r5, r0, 0 bl StringLength_Multibyte adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x66 bl sub_80200EC movs r0, 0x5 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0 movs r3, 0x4 bl sub_8020118 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0801F972 _0801F938: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801F978 movs r0, 0x1 movs r1, 0x10 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _0801F972 .pool _0801F95C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801F978 movs r0, 0x1 bl sub_80209AC b _0801F972 _0801F96E: movs r0, 0 b _0801F97A _0801F972: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0801F978: movs r0, 0x1 _0801F97A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801F8DC thumb_func_start sub_801F984 sub_801F984: @ 801F984 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x1 beq _0801F9E0 cmp r0, 0x1 bgt _0801F99A cmp r0, 0 beq _0801F9A4 b _0801FA1A _0801F99A: cmp r0, 0x2 beq _0801FA00 cmp r0, 0x3 beq _0801FA16 b _0801FA1A _0801F9A4: bl sub_801F144 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_801F114 adds r5, r0, 0 bl StringLength_Multibyte adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl sub_80200EC movs r0, 0x2 str r0, [sp] adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 movs r3, 0x1 bl sub_8020118 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0801FA1A _0801F9E0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801FA20 bl sub_8020094 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram b _0801FA1A .pool _0801FA00: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801FA20 movs r0, 0 bl sub_80209AC bl sub_80200C8 b _0801FA1A _0801FA16: movs r0, 0 b _0801FA22 _0801FA1A: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0801FA20: movs r0, 0x1 _0801FA22: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801F984 thumb_func_start sub_801FA2C sub_801FA2C: @ 801FA2C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FA3C cmp r0, 0x1 beq _0801FA50 b _0801FA5E _0801FA3C: bl sub_80201A4 movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FA5E _0801FA50: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801FA5E movs r0, 0 b _0801FA60 _0801FA5E: movs r0, 0x1 _0801FA60: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FA2C thumb_func_start sub_801FA68 sub_801FA68: @ 801FA68 push {r4-r6,lr} adds r6, r0, 0 ldrb r0, [r6] cmp r0, 0x4 bhi _0801FB3A lsls r0, 2 ldr r1, =_0801FA80 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0801FA80: .4byte _0801FA94 .4byte _0801FAC0 .4byte _0801FAF0 .4byte _0801FB14 .4byte _0801FADE _0801FA94: ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrh r5, [r0, 0x1A] bl sub_801F180 adds r4, r0, 0 bl sub_801F18C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_8020420 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _0801FB34 .pool _0801FAC0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0801FB3A ldr r0, =gUnknown_02022C88 ldr r1, [r0] ldrh r0, [r1, 0x1A] cmp r0, 0x8 bhi _0801FAE8 adds r0, 0x1 strh r0, [r1, 0x1A] movs r0, 0x4 strb r0, [r6] _0801FADE: movs r0, 0 b _0801FB3C .pool _0801FAE8: strh r2, [r1, 0x1C] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0801FAF0: movs r0, 0 movs r1, 0 movs r2, 0x5 movs r3, 0x11 bl ScrollWindow movs r0, 0 movs r1, 0x2 bl CopyWindowToVram ldr r0, =gUnknown_02022C88 ldr r1, [r0] ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] _0801FB14: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0801FB3A ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrh r0, [r0, 0x1C] cmp r0, 0x2 bhi _0801FB34 ldrb r0, [r6] subs r0, 0x1 b _0801FB38 .pool _0801FB34: ldrb r0, [r6] adds r0, 0x1 _0801FB38: strb r0, [r6] _0801FB3A: movs r0, 0x1 _0801FB3C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_801FA68 thumb_func_start sub_801FB44 sub_801FB44: @ 801FB44 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FB54 cmp r0, 0x1 beq _0801FB60 b _0801FB66 _0801FB54: bl sub_80209E0 ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FB66 _0801FB60: bl sub_8020A1C b _0801FB68 _0801FB66: movs r0, 0x1 _0801FB68: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FB44 thumb_func_start sub_801FB70 sub_801FB70: @ 801FB70 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FB80 cmp r0, 0x1 beq _0801FBA0 b _0801FBAA _0801FB80: movs r0, 0x3 movs r1, 0x10 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FBAA .pool _0801FBA0: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FBAC _0801FBAA: movs r0, 0x1 _0801FBAC: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FB70 thumb_func_start sub_801FBB4 sub_801FBB4: @ 801FBB4 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FBC4 cmp r0, 0x1 beq _0801FBE4 b _0801FBEE _0801FBC4: movs r0, 0x4 movs r1, 0 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FBEE .pool _0801FBE4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FBF0 _0801FBEE: movs r0, 0x1 _0801FBF0: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FBB4 thumb_func_start sub_801FBF8 sub_801FBF8: @ 801FBF8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FC08 cmp r0, 0x1 beq _0801FC38 b _0801FC42 _0801FC08: bl sub_81AFBF0 bl sub_801F1D0 adds r1, r0, 0 movs r0, 0 bl sub_81AFC0C movs r0, 0x5 movs r1, 0 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FC42 .pool _0801FC38: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FC44 _0801FC42: movs r0, 0x1 _0801FC44: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FBF8 thumb_func_start sub_801FC4C sub_801FC4C: @ 801FC4C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FC5C cmp r0, 0x1 beq _0801FC88 b _0801FC92 _0801FC5C: movs r0, 0x6 movs r1, 0 bl sub_801FF18 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_801FDDC ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FC92 .pool _0801FC88: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FC94 _0801FC92: movs r0, 0x1 _0801FC94: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FC4C thumb_func_start sub_801FC9C sub_801FC9C: @ 801FC9C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FCAC cmp r0, 0x1 beq _0801FCD8 b _0801FCE2 _0801FCAC: movs r0, 0x7 movs r1, 0 bl sub_801FF18 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_801FDDC ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FCE2 .pool _0801FCD8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FCE4 _0801FCE2: movs r0, 0x1 _0801FCE4: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FC9C thumb_func_start sub_801FCEC sub_801FCEC: @ 801FCEC push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FCFC cmp r0, 0x1 beq _0801FD1C b _0801FD26 _0801FCFC: movs r0, 0x8 movs r1, 0 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FD26 .pool _0801FD1C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FD28 _0801FD26: movs r0, 0x1 _0801FD28: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FCEC thumb_func_start sub_801FD30 sub_801FD30: @ 801FD30 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FD40 cmp r0, 0x1 beq _0801FD74 b _0801FD7E _0801FD40: bl sub_81AFBF0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0 bl sub_81AFC0C movs r0, 0x9 movs r1, 0 bl sub_801FF18 ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FD7E .pool _0801FD74: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FD80 _0801FD7E: movs r0, 0x1 _0801FD80: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FD30 thumb_func_start sub_801FD88 sub_801FD88: @ 801FD88 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0 beq _0801FD98 cmp r0, 0x1 beq _0801FDC4 b _0801FDCE _0801FD98: movs r0, 0xA movs r1, 0 bl sub_801FF18 movs r0, 0x17 movs r1, 0xA movs r2, 0x1 bl sub_801FDDC ldr r0, =gUnknown_02022C88 ldr r0, [r0] ldrb r0, [r0, 0x1E] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _0801FDCE .pool _0801FDC4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0801FDD0 _0801FDCE: movs r0, 0x1 _0801FDD0: pop {r4} pop {r1} bx r1 thumb_func_end sub_801FD88 thumb_func_start sub_801FDD8 sub_801FDD8: @ 801FDD8 movs r0, 0 bx lr thumb_func_end sub_801FDD8 thumb_func_start sub_801FDDC sub_801FDDC: @ 801FDDC push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsls r1, 24 lsls r2, 24 lsrs r7, r2, 24 ldr r4, =0xffffff00 ldr r2, [sp, 0xC] ands r2, r4 lsrs r0, 16 ldr r3, =0xffff00ff ands r2, r3 orrs r2, r0 lsrs r1, 8 ldr r0, =0xff00ffff ands r2, r0 orrs r2, r1 ldr r0, =0x00ffffff ands r2, r0 movs r0, 0xC0 lsls r0, 19 orrs r2, r0 str r2, [sp, 0xC] ldr r0, [sp, 0x10] ands r0, r4 movs r1, 0x4 orrs r0, r1 ands r0, r3 movs r1, 0xE0 lsls r1, 4 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0xA4 lsls r1, 15 orrs r0, r1 str r0, [sp, 0x10] add r0, sp, 0xC bl AddWindow adds r1, r0, 0 ldr r5, =gUnknown_02022C88 ldr r0, [r5] movs r6, 0 strh r1, [r0, 0x18] lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF beq _0801FE94 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, [r5] ldrb r0, [r0, 0x18] bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x18] ldr r2, =gText_Yes movs r1, 0x1 str r1, [sp] movs r4, 0xFF str r4, [sp, 0x4] str r6, [sp, 0x8] movs r3, 0x8 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x18] ldr r2, =gText_No movs r1, 0x11 str r1, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x18] movs r1, 0x1 movs r2, 0xD bl sub_8098858 ldr r0, [r5] ldrb r0, [r0, 0x18] movs r1, 0x2 adds r2, r7, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed _0801FE94: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801FDDC thumb_func_start sub_801FEBC sub_801FEBC: @ 801FEBC push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r0, [r4] ldrh r0, [r0, 0x18] cmp r0, 0xFF beq _0801FEDA lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8198070 ldr r0, [r4] ldrb r0, [r0, 0x18] bl ClearWindowTilemap _0801FEDA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801FEBC thumb_func_start sub_801FEE4 sub_801FEE4: @ 801FEE4 push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r0, [r4] ldrh r0, [r0, 0x18] cmp r0, 0xFF beq _0801FEFE lsls r0, 24 lsrs r0, 24 bl RemoveWindow ldr r1, [r4] movs r0, 0xFF strh r0, [r1, 0x18] _0801FEFE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_801FEE4 thumb_func_start sub_801FF08 sub_801FF08: @ 801FF08 push {lr} bl ProcessMenuInput lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_801FF08 thumb_func_start sub_801FF18 sub_801FF18: @ 801FF18 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C adds r7, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r1, =0xffffff00 ldr r3, [sp, 0x14] ands r3, r1 ldr r2, =0xffff00ff ands r3, r2 movs r0, 0x80 lsls r0, 4 orrs r3, r0 ldr r0, =0xff00ffff ands r3, r0 movs r0, 0x80 lsls r0, 13 orrs r3, r0 ldr r5, =0x00ffffff ands r3, r5 movs r0, 0xA8 lsls r0, 21 orrs r3, r0 str r3, [sp, 0x14] ldr r0, [sp, 0x18] ands r0, r1 movs r1, 0x4 orrs r0, r1 ands r0, r2 movs r1, 0xE0 lsls r1, 4 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0xD4 lsls r1, 15 orrs r0, r1 str r0, [sp, 0x18] ldr r1, =gUnknown_082F2D40 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4, 0xA] cmp r0, 0 beq _0801FF98 lsls r0, r3, 16 movs r1, 0xF9 lsls r1, 24 adds r0, r1 lsrs r0, 16 ands r2, r3 orrs r2, r0 lsrs r1, r2, 24 adds r1, 0x7 lsls r1, 24 adds r0, r5, 0 ands r0, r2 orrs r0, r1 str r0, [sp, 0x14] _0801FF98: add r0, sp, 0x14 bl AddWindow ldr r5, =gUnknown_02022C88 ldr r1, [r5] strh r0, [r1, 0x1E] ldrh r0, [r1, 0x1E] mov r8, r0 cmp r0, 0xFF beq _08020082 ldrb r0, [r4, 0x9] cmp r0, 0 beq _0801FFE0 adds r0, r1, 0 adds r0, 0x22 ldr r1, [r4] bl sub_81AFC28 ldr r0, [r5] adds r6, r0, 0 adds r6, 0x22 b _0801FFE2 .pool _0801FFE0: ldr r6, [r4] _0801FFE2: mov r0, r9 lsls r1, r0, 8 movs r0, 0 movs r2, 0 bl ChangeBgY mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap ldr r1, =gUnknown_082F2D40 lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r4, r0, r1 ldrb r0, [r4, 0x4] cmp r0, 0x1 bne _08020050 adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 bl sub_80989E0 ldrb r3, [r4, 0x5] adds r3, 0x8 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4, 0x6] adds r0, 0x8 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] ldrb r0, [r4, 0x7] str r0, [sp, 0xC] ldrb r0, [r4, 0x8] str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 bl sub_8199F74 b _0802007A .pool _08020050: adds r0, r5, 0 movs r1, 0xA movs r2, 0x2 bl sub_8098858 ldrb r3, [r4, 0x5] ldrb r0, [r4, 0x6] str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] ldrb r0, [r4, 0x7] str r0, [sp, 0xC] ldrb r0, [r4, 0x8] str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 bl sub_8199F74 _0802007A: ldr r0, =gUnknown_02022C88 ldr r0, [r0] mov r1, r8 strh r1, [r0, 0x1E] _08020082: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_801FF18 thumb_func_start sub_8020094 sub_8020094: @ 8020094 push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r0, [r4] ldrh r0, [r0, 0x1E] cmp r0, 0xFF beq _080200B2 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8198070 ldr r0, [r4] ldrb r0, [r0, 0x1E] bl ClearWindowTilemap _080200B2: movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8020094 thumb_func_start sub_80200C8 sub_80200C8: @ 80200C8 push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r0, [r4] ldrh r0, [r0, 0x1E] cmp r0, 0xFF beq _080200E2 lsls r0, 24 lsrs r0, 24 bl RemoveWindow ldr r1, [r4] movs r0, 0xFF strh r0, [r1, 0x1E] _080200E2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80200C8 thumb_func_start sub_80200EC sub_80200EC: @ 80200EC push {lr} sub sp, 0x8 adds r3, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 19 lsrs r3, 16 lsls r1, 19 lsrs r1, 16 str r1, [sp] movs r0, 0xE str r0, [sp, 0x4] movs r0, 0x1 adds r1, r2, 0 adds r2, r3, 0 movs r3, 0x1 bl FillWindowPixelRect add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80200EC thumb_func_start sub_8020118 sub_8020118: @ 8020118 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 mov r10, r1 ldr r1, [sp, 0x54] lsls r0, 16 lsrs r5, r0, 16 mov r9, r5 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 lsls r3, 24 lsrs r7, r3, 24 lsls r1, 24 lsrs r6, r1, 24 cmp r4, 0 beq _08020154 bl sub_801F198 adds r1, r0, 0 subs r1, r5 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 adds r2, r4, 0 bl sub_80200EC _08020154: add r0, sp, 0xC mov r1, r8 strb r1, [r0] strb r7, [r0, 0x1] strb r6, [r0, 0x2] add r4, sp, 0x10 movs r0, 0xFC strb r0, [r4] movs r0, 0x14 strb r0, [r4, 0x1] movs r0, 0x8 strb r0, [r4, 0x2] mov r0, sp adds r0, 0x13 mov r1, r10 bl StringCopy mov r0, r9 lsls r2, r0, 27 lsrs r2, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r3, 0x1 bl box_print add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8020118 thumb_func_start sub_80201A4 sub_80201A4: @ 80201A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C movs r0, 0x2 movs r1, 0xFF bl FillWindowPixelBuffer bl sub_801F0B0 lsls r0, 24 lsrs r2, r0, 24 add r1, sp, 0xC movs r0, 0 strb r0, [r1] movs r0, 0xE strb r0, [r1, 0x1] movs r0, 0xD strb r0, [r1, 0x2] cmp r2, 0x3 beq _08020240 add r1, sp, 0x10 movs r0, 0xFC strb r0, [r1] movs r0, 0x14 strb r0, [r1, 0x1] movs r0, 0x8 strb r0, [r1, 0x2] str r0, [sp, 0x40] str r1, [sp, 0x44] cmp r2, 0x2 bne _080201EC movs r1, 0x6 str r1, [sp, 0x40] _080201EC: movs r7, 0 movs r6, 0 lsls r0, r2, 2 ldr r1, =gUnknown_082F2BA8 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldr r0, [sp, 0x40] lsls r5, r0, 24 _080201FE: ldr r1, [r4] cmp r1, 0 bne _08020206 b _0802030C _08020206: mov r0, sp adds r0, 0x13 bl StringCopy lsls r3, r6, 24 lsrs r3, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, [sp, 0x44] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 lsrs r2, r5, 24 bl box_print adds r4, 0x4 adds r7, 0x1 adds r0, r6, 0 adds r0, 0xC lsls r0, 16 lsrs r6, r0, 16 cmp r7, 0x9 ble _080201FE b _0802030C .pool _08020240: movs r1, 0x4 str r1, [sp, 0x40] movs r7, 0 movs r6, 0 _08020248: adds r0, r7, 0 bl sub_801EE6C adds r5, r0, 0 movs r0, 0 adds r1, r5, 0 movs r2, 0 bl GetStringWidth cmp r0, 0x28 bgt _08020286 lsls r3, r6, 24 lsrs r3, 24 add r4, sp, 0xC str r4, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r4, 0x80 lsls r4, 19 lsrs r2, r4, 24 bl box_print adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC mov r10, r6 b _08020300 _08020286: adds r0, r5, 0 bl StringLength_Multibyte adds r4, r0, 0 mov r1, sp adds r1, 0x10 str r1, [sp, 0x44] ldr r0, [sp, 0x40] lsls r0, 24 mov r8, r0 lsls r1, r6, 24 mov r9, r1 adds r0, r7, 0x1 str r0, [sp, 0x48] adds r6, 0xC mov r10, r6 ldr r7, [sp, 0x40] adds r7, 0x23 ldr r6, [sp, 0x44] _080202AC: subs r4, 0x1 adds r0, r6, 0 adds r1, r5, 0 adds r2, r4, 0 bl StringCopyN_Multibyte movs r0, 0 adds r1, r6, 0 movs r2, 0 bl GetStringWidth cmp r0, 0x23 bgt _080202AC mov r1, r8 lsrs r2, r1, 24 mov r0, r9 lsrs r4, r0, 24 add r1, sp, 0xC str r1, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r1, [sp, 0x44] str r1, [sp, 0x8] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl box_print adds r2, r7, 0 add r0, sp, 0xC str r0, [sp] movs r1, 0x1 negs r1, r1 str r1, [sp, 0x4] ldr r0, =gText_Ellipsis str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 adds r3, r4, 0 bl box_print _08020300: ldr r7, [sp, 0x48] mov r4, r10 lsls r0, r4, 16 lsrs r6, r0, 16 cmp r7, 0x9 ble _08020248 _0802030C: add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80201A4 thumb_func_start sub_8020320 sub_8020320: @ 8020320 push {r4,lr} ldr r1, =gUnknown_02022C88 ldr r2, [r1] ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0x37 bgt _08020354 adds r0, r3, 0 adds r0, 0xC strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 cmp r0, 0x37 ble _08020348 movs r0, 0x38 strh r0, [r2, 0x20] b _08020354 .pool _08020348: movs r1, 0x20 ldrsh r0, [r2, r1] bl sub_80207C0 movs r0, 0x1 b _08020360 _08020354: ldr r0, [r1] movs r4, 0x20 ldrsh r0, [r0, r4] bl sub_8020818 movs r0, 0 _08020360: pop {r4} pop {r1} bx r1 thumb_func_end sub_8020320 thumb_func_start sub_8020368 sub_8020368: @ 8020368 push {r4,lr} ldr r1, =gUnknown_02022C88 ldr r2, [r1] ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, 0 ble _0802039C adds r0, r3, 0 subs r0, 0xC strh r0, [r2, 0x20] lsls r0, 16 cmp r0, 0 bgt _08020390 movs r0, 0 strh r0, [r2, 0x20] b _0802039C .pool _08020390: movs r1, 0x20 ldrsh r0, [r2, r1] bl sub_80207C0 movs r0, 0x1 b _080203A8 _0802039C: ldr r0, [r1] movs r4, 0x20 ldrsh r0, [r0, r4] bl sub_8020818 movs r0, 0 _080203A8: pop {r4} pop {r1} bx r1 thumb_func_end sub_8020368 thumb_func_start sub_80203B0 sub_80203B0: @ 80203B0 push {r4,r5,lr} sub sp, 0xC movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0x1 movs r2, 0xD bl sub_8098858 movs r5, 0xE str r5, [sp] movs r4, 0x5 str r4, [sp, 0x4] ldr r0, =gUnknown_082F2DC8 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x2 movs r2, 0x8 movs r3, 0x1 bl PrintTextArray bl sub_801F0B0 lsls r0, 24 lsrs r0, 24 str r5, [sp] str r4, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x2 movs r2, 0 movs r3, 0x1 bl sub_81983AC movs r0, 0x3 bl PutWindowTilemap add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80203B0 thumb_func_start sub_802040C sub_802040C: @ 802040C push {lr} movs r0, 0x3 movs r1, 0 bl sub_8198070 movs r0, 0x3 bl ClearWindowTilemap pop {r0} bx r0 thumb_func_end sub_802040C thumb_func_start sub_8020420 sub_8020420: @ 8020420 push {r4,r5,lr} sub sp, 0x10 adds r5, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r2, 24 add r3, sp, 0xC movs r1, 0x1 strb r1, [r3] lsrs r2, 23 adds r1, r2, 0x2 strb r1, [r3, 0x1] adds r1, r3, 0 adds r2, 0x3 strb r2, [r1, 0x2] lsls r4, r0, 4 subs r4, r0 lsls r3, r4, 16 lsrs r3, 16 movs r0, 0xA8 str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] movs r0, 0 movs r1, 0x11 movs r2, 0 bl FillWindowPixelRect adds r4, 0x1 lsls r4, 24 lsrs r4, 24 add r0, sp, 0xC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0 adds r3, r4, 0 bl box_print add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8020420 thumb_func_start sub_8020480 sub_8020480: @ 8020480 push {lr} movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuRegBits movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r1, 0xE0 lsls r1, 8 movs r0, 0 bl ClearGpuRegBits movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldr r1, =0x000040f0 movs r0, 0x40 bl SetGpuReg movs r0, 0x44 movs r1, 0x90 bl SetGpuReg movs r0, 0x48 movs r1, 0x3D bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg pop {r0} bx r0 .pool thumb_func_end sub_8020480 thumb_func_start sub_8020538 sub_8020538: @ 8020538 push {r4,lr} ldr r4, =gUnknown_02022C88 ldr r1, [r4] movs r0, 0x94 lsls r0, 1 adds r1, r0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000928 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001128 adds r1, r0 movs r0, 0x3 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001928 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8020538 thumb_func_start sub_8020584 sub_8020584: @ 8020584 push {lr} sub sp, 0x8 movs r1, 0xC0 lsls r1, 19 movs r0, 0 movs r2, 0x20 movs r3, 0x1 bl RequestDma3Fill movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8020584 thumb_func_start sub_80205B4 sub_80205B4: @ 80205B4 push {lr} sub sp, 0x4 ldr r0, =gUnknown_08DD4BD0 movs r1, 0x70 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_08DD4BB0 movs r1, 0xC0 movs r2, 0x20 bl LoadPalette ldr r1, =gUnknown_08DD4BF0 movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DD4C4C movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_80205B4 thumb_func_start task_tutorial_story_unknown task_tutorial_story_unknown: @ 8020604 push {r4,r5,lr} sub sp, 0x4 ldr r0, =gUnknown_08DD4860 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, =gUnknown_08DD4880 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram adds r5, r0, 0 cmp r5, 0 beq _0802064E movs r1, 0x88 lsls r1, 2 adds r0, r5, r1 ldr r4, =gUnknown_02022C88 ldr r1, [r4] ldr r2, =0x00002128 adds r1, r2 movs r2, 0x8 bl CpuFastSet movs r1, 0x84 lsls r1, 3 adds r0, r5, r1 ldr r1, [r4] ldr r2, =0x00002148 adds r1, r2 movs r2, 0x8 bl CpuFastSet _0802064E: ldr r1, =gUnknown_08DD4AB8 movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x2 bl CopyBgTilemapBufferToVram add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end task_tutorial_story_unknown thumb_func_start sub_8020680 sub_8020680: @ 8020680 push {lr} ldr r0, =gUnknown_082F2C20 movs r1, 0x80 movs r2, 0x20 bl LoadPalette ldr r1, =0x06004020 movs r0, 0 movs r2, 0x20 movs r3, 0x1 bl RequestDma3Fill pop {r0} bx r0 .pool thumb_func_end sub_8020680 thumb_func_start sub_80206A4 sub_80206A4: @ 80206A4 push {lr} ldr r0, =gUnknown_082F2C40 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 .pool thumb_func_end sub_80206A4 thumb_func_start sub_80206D0 sub_80206D0: @ 80206D0 push {lr} movs r0, 0x2 bl PutWindowTilemap bl sub_80201A4 movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_80206D0 thumb_func_start sub_80206E8 sub_80206E8: @ 80206E8 push {r4,lr} sub sp, 0xC add r1, sp, 0x8 movs r0, 0 strb r0, [r1] movs r0, 0xFF strb r0, [r1, 0x1] movs r4, 0 _080206F8: ldr r0, =gUnknown_02022C88 ldr r1, [r0] ldr r0, =0x00002128 adds r1, r0 lsls r2, r4, 19 lsrs r2, 16 movs r0, 0x8 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 movs r3, 0 bl BlitBitmapToWindow adds r4, 0x1 cmp r4, 0xE ble _080206F8 movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80206E8 thumb_func_start sub_8020740 sub_8020740: @ 8020740 push {lr} movs r0, 0x3 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0x1 movs r2, 0xD0 bl sub_809882C movs r0, 0x3 movs r1, 0xA movs r2, 0x20 bl box_border_load_tiles_and_pal ldr r0, =gUnknown_0860F074 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_8020740 thumb_func_start sub_8020770 sub_8020770: @ 8020770 push {lr} sub sp, 0x10 ldr r0, =0xa2600001 str r0, [sp, 0x4] ldr r0, =0x04000014 str r0, [sp] mov r2, sp movs r1, 0 movs r0, 0x1 strb r0, [r2, 0x8] mov r0, sp strb r1, [r0, 0x9] ldr r0, =gUnknown_02022C88 ldr r0, [r0] strh r1, [r0, 0x20] str r1, [sp, 0xC] add r0, sp, 0xC ldr r1, =gUnknown_02038C28 ldr r2, =0x010003c0 bl CpuFastSet ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] bl sub_80BA038 add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_8020770 thumb_func_start sub_80207C0 sub_80207C0: @ 80207C0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 mov r1, sp strh r0, [r1] ldr r5, =gUnknown_02039B28 ldrb r0, [r5, 0x14] lsls r1, r0, 4 subs r1, r0 lsls r1, 7 ldr r4, =gUnknown_02038C28 adds r1, r4 ldr r2, =0x01000090 mov r0, sp bl CpuSet mov r0, sp adds r0, 0x2 movs r1, 0 strh r1, [r0] ldrb r2, [r5, 0x14] lsls r1, r2, 4 subs r1, r2 lsls r1, 7 movs r2, 0x90 lsls r2, 1 adds r4, r2 adds r1, r4 ldr r2, =0x01000010 bl CpuSet add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80207C0 thumb_func_start sub_8020818 sub_8020818: @ 8020818 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 mov r0, sp strh r4, [r0] ldr r5, =gUnknown_02038C28 ldr r0, =0x01000090 mov r9, r0 mov r0, sp adds r1, r5, 0 mov r2, r9 bl CpuSet mov r0, sp adds r0, 0x2 movs r6, 0 strh r6, [r0] movs r2, 0x90 lsls r2, 1 adds r1, r5, r2 ldr r2, =0x01000010 mov r8, r2 bl CpuSet add r0, sp, 0x4 strh r4, [r0] movs r2, 0xF0 lsls r2, 3 adds r1, r5, r2 mov r2, r9 bl CpuSet mov r0, sp adds r0, 0x6 strh r6, [r0] movs r1, 0x8A lsls r1, 4 adds r5, r1 adds r1, r5, 0 mov r2, r8 bl CpuSet add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8020818 thumb_func_start sub_8020890 sub_8020890: @ 8020890 push {r4,r5,lr} movs r5, 0 ldr r4, =gUnknown_082F3134 _08020896: adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 bls _08020896 ldr r0, =gUnknown_082F315C bl LoadSpritePalette ldr r4, =gUnknown_02022C8C movs r0, 0x18 bl Alloc str r0, [r4] cmp r0, 0 beq _080208C8 movs r0, 0x1 b _080208CA .pool _080208C8: movs r0, 0 _080208CA: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8020890 thumb_func_start sub_80208D0 sub_80208D0: @ 80208D0 push {lr} ldr r0, =gUnknown_02022C8C ldr r0, [r0] cmp r0, 0 beq _080208DE bl Free _080208DE: pop {r0} bx r0 .pool thumb_func_end sub_80208D0 thumb_func_start sub_80208E8 sub_80208E8: @ 80208E8 push {lr} ldr r0, =gUnknown_082F319C movs r1, 0xA movs r2, 0x18 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022C8C ldr r2, [r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r1, r0 str r1, [r2] pop {r0} bx r0 .pool thumb_func_end sub_80208E8 thumb_func_start sub_802091C sub_802091C: @ 802091C ldr r1, =gUnknown_02022C8C ldr r1, [r1] ldr r2, [r1] adds r2, 0x3E movs r1, 0x1 ands r0, r1 lsls r0, 2 ldrb r3, [r2] movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .pool thumb_func_end sub_802091C thumb_func_start sub_802093C sub_802093C: @ 802093C push {r4,r5,lr} sub sp, 0x4 bl sub_801F0B0 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r5, sp adds r5, 0x1 mov r0, sp adds r1, r5, 0 bl sub_801F0BC cmp r4, 0x3 beq _0802097C ldr r4, =gUnknown_02022C8C ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl StartSpriteAnim ldr r1, [r4] ldr r2, [r1] mov r0, sp ldrb r0, [r0] lsls r0, 3 adds r0, 0xA strh r0, [r2, 0x20] ldr r2, [r1] b _08020992 .pool _0802097C: ldr r4, =gUnknown_02022C8C ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim ldr r2, [r4] ldr r1, [r2] movs r0, 0x18 strh r0, [r1, 0x20] ldr r2, [r2] _08020992: ldrb r1, [r5] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, 0x18 strh r0, [r2, 0x22] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802093C thumb_func_start sub_80209AC sub_80209AC: @ 80209AC push {r4,lr} adds r4, r0, 0 lsls r4, 2 ldr r0, =gUnknown_082F2DF0+2 adds r4, r0 movs r0, 0 bl IndexOfSpritePaletteTag adds r1, r0, 0 lsls r1, 24 lsrs r1, 4 ldr r0, =0x01010000 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 movs r2, 0x4 bl LoadPalette pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80209AC thumb_func_start sub_80209E0 sub_80209E0: @ 80209E0 push {lr} bl sub_801F0B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08020A00 ldr r0, =gUnknown_02022C8C ldr r0, [r0] ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim b _08020A0C .pool _08020A00: ldr r0, =gUnknown_02022C8C ldr r0, [r0] ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim _08020A0C: ldr r0, =gUnknown_02022C8C ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x14] pop {r0} bx r0 .pool thumb_func_end sub_80209E0 thumb_func_start sub_8020A1C sub_8020A1C: @ 8020A1C push {r4,lr} ldr r4, =gUnknown_02022C8C ldr r1, [r4] ldrh r0, [r1, 0x14] cmp r0, 0x3 bls _08020A30 _08020A28: movs r0, 0 b _08020A62 .pool _08020A30: adds r0, 0x1 strh r0, [r1, 0x14] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bls _08020A60 bl sub_801F0B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _08020A54 ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl StartSpriteAnim b _08020A28 _08020A54: ldr r0, [r4] ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim b _08020A28 _08020A60: movs r0, 0x1 _08020A62: pop {r4} pop {r1} bx r1 thumb_func_end sub_8020A1C thumb_func_start sub_8020A68 sub_8020A68: @ 8020A68 push {r4,r5,lr} ldr r0, =gUnknown_082F31BC movs r1, 0x4C movs r2, 0x98 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_02022C8C ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, =gSprites adds r1, r4 str r1, [r2, 0x8] ldr r0, =gUnknown_082F31D4 movs r1, 0x40 movs r2, 0x98 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2, 0x4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8020A68 thumb_func_start sub_8020ABC sub_8020ABC: @ 8020ABC push {r4,lr} adds r4, r0, 0 bl sub_801F198 adds r3, r0, 0 cmp r3, 0xF bne _08020AD8 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08020AEC _08020AD8: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] lsls r0, r3, 3 adds r0, 0x4C strh r0, [r4, 0x20] _08020AEC: pop {r4} pop {r0} bx r0 thumb_func_end sub_8020ABC thumb_func_start sub_8020AF4 sub_8020AF4: @ 8020AF4 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x2E] adds r0, 0x1 movs r2, 0 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08020B1A strh r2, [r1, 0x2E] ldrh r0, [r1, 0x24] adds r0, 0x1 strh r0, [r1, 0x24] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _08020B1A strh r2, [r1, 0x24] _08020B1A: pop {r0} bx r0 thumb_func_end sub_8020AF4 thumb_func_start sub_8020B20 sub_8020B20: @ 8020B20 push {r4,r5,lr} ldr r0, =gUnknown_082F322C movs r1, 0x8 movs r2, 0x98 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_02022C8C ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, =gSprites adds r1, r4 str r1, [r2, 0xC] ldr r0, =gUnknown_082F3244 movs r1, 0x20 movs r2, 0x98 movs r3, 0x4 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 str r1, [r2, 0x10] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8020B20 thumb_func_start sub_8020B80 sub_8020B80: @ 8020B80 push {r4,lr} bl sub_801F0B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _08020BB8 bl sub_801F0DC cmp r0, 0 beq _08020BC2 ldr r3, =gUnknown_02022C8C ldr r0, [r3] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x10] movs r1, 0x3 bl StartSpriteAnim b _08020BF6 .pool _08020BB8: bl sub_801F1A4 adds r4, r0, 0 cmp r4, 0x3 bne _08020BD8 _08020BC2: ldr r0, =gUnknown_02022C8C ldr r0, [r0] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] b _08020BF6 .pool _08020BD8: ldr r3, =gUnknown_02022C8C ldr r0, [r3] ldr r1, [r0, 0x10] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r3] ldr r0, [r0, 0x10] lsls r1, r4, 24 lsrs r1, 24 bl StartSpriteAnim _08020BF6: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8020B80 thumb_func_start sub_8020C00 sub_8020C00: @ 8020C00 ldr r0, =gUnknown_02022C90 ldr r0, [r0] bx lr .pool thumb_func_end sub_8020C00 thumb_func_start sub_8020C0C sub_8020C0C: @ 8020C0C push {r4,r5,lr} adds r4, r0, 0 ldr r5, =gUnknown_02022C90 ldr r0, [r5] cmp r0, 0 bne _08020C20 movs r0, 0x2 b _08020C5C .pool _08020C20: cmp r4, 0 bne _08020C26 ldr r4, [r0] _08020C26: ldrb r0, [r0, 0xA] bl DestroyTask ldr r0, [r5] bl Free movs r0, 0 str r0, [r5] adds r0, r4, 0 bl SetMainCallback2 ldr r0, =c2_exit_to_overworld_2_switch cmp r4, r0 bne _08020C5A ldr r2, =gTextFlags ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0xC8 lsls r0, 1 bl PlayNewMapMusic ldr r0, =c1_overworld bl set_callback1 _08020C5A: movs r0, 0 _08020C5C: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8020C0C thumb_func_start sub_8020C70 sub_8020C70: @ 8020C70 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r0, 0 movs r0, 0 mov r8, r0 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _08020C8E ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] cmp r0, 0 bne _08020CAC _08020C8E: adds r0, r4, 0 bl SetMainCallback2 ldr r0, =gUnknown_03005000 mov r1, r8 strh r1, [r0, 0x10] strh r1, [r0, 0x12] b _08020CF8 .pool _08020CAC: bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 bl GetMultiplayerId lsls r0, 24 lsrs r7, r0, 24 mov r0, r8 cmp r0, 0x1 bls _08020CC8 cmp r7, r8 bcc _08020CDC _08020CC8: adds r0, r4, 0 bl SetMainCallback2 ldr r0, =gUnknown_03005000 movs r1, 0 strh r1, [r0, 0x10] strh r1, [r0, 0x12] b _08020CF8 .pool _08020CDC: ldr r6, =gUnknown_02022C90 ldr r0, =0x000041c0 bl AllocZeroed adds r5, r0, 0 str r5, [r6] cmp r5, 0 bne _08020D10 adds r0, r4, 0 bl SetMainCallback2 ldr r0, =gUnknown_03005000 strh r5, [r0, 0x10] strh r5, [r0, 0x12] _08020CF8: adds r0, 0xEE ldrb r1, [r0] movs r1, 0x1 strb r1, [r0] b _08020D74 .pool _08020D10: str r4, [r5] movs r4, 0 strb r7, [r5, 0x8] ldr r0, [r6] mov r1, r8 strb r1, [r0, 0x9] ldr r0, [r6] bl sub_8020FC4 ldr r1, [r6] movs r2, 0x1 movs r0, 0x1 strh r0, [r1, 0x12] strb r2, [r1, 0xE] ldr r1, [r6] movs r0, 0x6 strb r0, [r1, 0xF] ldr r0, [r6] adds r0, 0x36 movs r2, 0x1 negs r2, r2 movs r1, 0x10 str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl sub_8024604 ldr r2, [r6] adds r2, 0x36 movs r0, 0x4 movs r1, 0x1 bl sub_8022BEC ldr r0, =sub_8020F88 bl SetMainCallback2 ldr r0, =sub_8020FA0 movs r1, 0x8 bl CreateTask ldr r1, [r6] strb r0, [r1, 0xA] ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08020D74: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8020C70 thumb_func_start sub_8020D8C sub_8020D8C: @ 8020D8C push {r4,lr} sub sp, 0xC ldr r1, =gScriptItemId ldrh r0, [r1] subs r0, 0x85 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2B bls _08020DA8 movs r0, 0x85 strh r0, [r1] b _08020DB0 .pool _08020DA8: ldrh r0, [r1] movs r1, 0x1 bl RemoveBagItem _08020DB0: ldr r4, =gUnknown_02022C90 ldr r2, [r4] ldrb r0, [r2, 0x8] lsls r0, 5 adds r0, r2, r0 ldr r1, =gScriptItemId ldrh r1, [r1] subs r1, 0x85 adds r0, 0xA4 movs r3, 0 strh r1, [r0] movs r0, 0x1 strb r0, [r2, 0xE] ldr r1, [r4] movs r0, 0x9 strb r0, [r1, 0xF] ldr r0, [r4] adds r0, 0x36 movs r2, 0x1 negs r2, r2 movs r1, 0x10 str r1, [sp] str r3, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0 bl sub_8024604 ldr r2, [r4] adds r2, 0x36 movs r0, 0x4 movs r1, 0x1 bl sub_8022BEC ldr r0, =sub_8020FA0 movs r1, 0x8 bl CreateTask ldr r1, [r4] strb r0, [r1, 0xA] ldr r0, =sub_8020F88 bl SetMainCallback2 add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8020D8C thumb_func_start sub_8020E1C sub_8020E1C: @ 8020E1C push {lr} ldr r0, =gUnknown_02022C90 ldr r0, [r0] ldrb r0, [r0, 0xA] bl DestroyTask ldr r0, =sub_8020D8C bl sub_81AABF0 pop {r0} bx r0 .pool thumb_func_end sub_8020E1C thumb_func_start sub_8020E3C sub_8020E3C: @ 8020E3C push {lr} ldr r0, =sub_8020F74 bl SetVBlankCallback pop {r0} bx r0 .pool thumb_func_end sub_8020E3C thumb_func_start sub_8020E4C sub_8020E4C: @ 8020E4C push {lr} movs r0, 0 bl SetVBlankCallback pop {r0} bx r0 thumb_func_end sub_8020E4C thumb_func_start sub_8020E58 sub_8020E58: @ 8020E58 push {r4-r6,lr} ldr r4, =gUnknown_02022C90 ldr r0, [r4] adds r0, 0x6C ldrh r2, [r0] lsls r2, 8 movs r1, 0xF0 lsls r1, 6 adds r0, r2, 0 bl sub_81515FC adds r2, r0, 0 ldr r0, [r4] adds r0, 0x72 ldrh r3, [r0] lsls r3, 8 adds r0, r3, 0 adds r1, r2, 0 bl sub_81515FC adds r3, r0, 0 ldr r0, =0x0000ffff ands r3, r0 ldr r2, [r4] strh r3, [r2, 0x16] ldrb r0, [r2, 0x9] cmp r0, 0x3 beq _08020EDC cmp r0, 0x3 bgt _08020EA4 cmp r0, 0x2 beq _08020EAE b _08020F48 .pool _08020EA4: cmp r0, 0x4 beq _08020EEC cmp r0, 0x5 beq _08020F20 b _08020F48 _08020EAE: ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r0, 0xF6 lsls r0, 1 adds r1, r0 lsls r0, r3, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bls _08020F48 adds r2, 0x25 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, [r5] ldr r1, [r4] ldrh r1, [r1, 0x16] movs r2, 0xF6 lsls r2, 1 b _08020F14 .pool _08020EDC: ldr r5, =gSaveBlock2Ptr ldr r0, [r5] movs r6, 0xF7 lsls r6, 1 b _08020F28 .pool _08020EEC: ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r0, 0xF8 lsls r0, 1 adds r1, r0 lsls r0, r3, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bls _08020F48 adds r2, 0x25 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r0, [r5] ldr r1, [r4] ldrh r1, [r1, 0x16] movs r2, 0xF8 lsls r2, 1 _08020F14: adds r0, r2 strh r1, [r0] b _08020F48 .pool _08020F20: ldr r5, =gSaveBlock2Ptr ldr r0, [r5] movs r6, 0xF9 lsls r6, 1 _08020F28: adds r1, r0, r6 lsls r0, r3, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bls _08020F48 adds r2, 0x25 ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r1, [r5] ldr r0, [r4] ldrh r0, [r0, 0x16] adds r1, r6 strh r0, [r1] _08020F48: ldr r4, =gUnknown_02022C90 ldr r1, [r4] ldr r0, [r1, 0x68] str r0, [r1, 0x1C] bl sub_8024700 lsls r0, 24 cmp r0, 0 bne _08020F66 ldr r0, [r4] adds r0, 0x25 ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] _08020F66: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8020E58 thumb_func_start sub_8020F74 sub_8020F74: @ 8020F74 push {lr} bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_8020F74 thumb_func_start sub_8020F88 sub_8020F88: @ 8020F88 push {lr} bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer pop {r0} bx r0 thumb_func_end sub_8020F88 thumb_func_start sub_8020FA0 sub_8020FA0: @ 8020FA0 push {r4,lr} ldr r4, =gUnknown_02022C90 ldr r0, [r4] ldr r2, [r0, 0x4] cmp r2, 0 beq _08020FB4 adds r1, r0, 0 adds r1, 0x36 bl _call_via_r2 _08020FB4: ldr r0, [r4] bl sub_8021450 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8020FA0 thumb_func_start sub_8020FC4 sub_8020FC4: @ 8020FC4 push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 b _08020FE6 _08020FCC: lsls r0, r5, 5 adds r0, 0x98 adds r0, r6, r0 lsls r1, r5, 3 subs r1, r5 lsls r1, 2 ldr r2, =gLinkPlayers + 8 adds r1, r2 bl StringCopy adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _08020FE6: ldrb r0, [r6, 0x9] cmp r5, r0 bcc _08020FCC cmp r5, 0x4 bhi _08021012 _08020FF0: lsls r4, r5, 5 adds r0, r4, 0 adds r0, 0x98 adds r0, r6, r0 movs r1, 0x1 movs r2, 0x7 bl memset adds r4, r6, r4 adds r4, 0x9F movs r0, 0xFF strb r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08020FF0 _08021012: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x14] lsls r0, 29 lsrs r0, 29 cmp r0, 0x1 beq _0802103E cmp r0, 0x1 bgt _08021034 cmp r0, 0 beq _0802103A b _08021046 .pool _08021034: cmp r0, 0x2 beq _08021042 b _08021046 _0802103A: movs r0, 0x8 b _08021044 _0802103E: movs r0, 0x4 b _08021044 _08021042: movs r0, 0x1 _08021044: strb r0, [r6, 0xB] _08021046: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8020FC4 thumb_func_start sub_802104C sub_802104C: @ 802104C push {r4,r5,lr} sub sp, 0xC bl sub_8020C00 adds r5, r0, 0 cmp r5, 0 bne _08021060 movs r0, 0x1 negs r0, r0 b _08021304 _08021060: ldrb r0, [r5, 0xC] cmp r0, 0x9 bls _08021068 b _080212FC _08021068: lsls r0, 2 ldr r1, =_08021078 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08021078: .4byte _080210A0 .4byte _080210BE .4byte _080210E4 .4byte _080210F2 .4byte _08021178 .4byte _080211BE .4byte _080211EC .4byte _0802121C .4byte _08021278 .4byte _080212B4 _080210A0: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback movs r0, 0 movs r1, 0 bl SetGpuReg bl remove_some_task bl reset_temp_tile_data_buffers b _080212FC _080210BE: add r0, sp, 0x8 movs r4, 0 strh r4, [r0] movs r1, 0xE0 lsls r1, 19 ldr r2, =0x01000200 bl CpuSet ldr r0, =gReservedSpritePaletteCount strb r4, [r0] movs r0, 0x3 bl sub_8034C54 b _080212FC .pool _080210E4: bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes b _080212FC _080210F2: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082F32C8 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r0, 0xE0 lsls r0, 1 adds r1, r5, r0 movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x87 lsls r0, 6 adds r1, r5, r0 movs r0, 0x2 bl SetBgTilemapBuffer movs r0, 0xC7 lsls r0, 6 adds r1, r5, r0 movs r0, 0x3 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg b _080212FC .pool _08021178: movs r4, 0x20 str r4, [sp] str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r0, 0x40 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 b _080212FC _080211BE: movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r1, =gUnknown_08DE34B8 movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _080212FC .pool _080211EC: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _080211F8 b _08021302 _080211F8: bl sub_81971D0 bl sub_8197200 adds r0, r5, 0 bl sub_8022588 adds r0, r5, 0 bl sub_8022600 ldr r0, =gPaletteFade ldrb r1, [r0, 0x8] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x8] b _080212FC .pool _0802121C: ldr r0, =gUnknown_08DE3398 movs r2, 0xC0 lsls r2, 1 movs r1, 0 bl LoadPalette ldr r1, =gBerryCrushGrinderTopTilemap movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gBerryCrushContainerCapTilemap movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gBerryCrushBackgroundTilemap movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer adds r0, r5, 0 bl sub_80226D0 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080212FC .pool _08021278: bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 adds r0, r5, 0 bl sub_8022730 ldr r0, =gSpriteCoordOffsetY ldrh r1, [r0] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x16 bl SetGpuReg movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY b _080212FC .pool _080212B4: ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuRegBits bl sub_8020E3C movs r0, 0 strb r0, [r5, 0xC] movs r0, 0x1 b _08021304 .pool _080212FC: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _08021302: movs r0, 0 _08021304: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802104C thumb_func_start sub_802130C sub_802130C: @ 802130C push {r4,r5,lr} sub sp, 0x8 bl sub_8020C00 adds r5, r0, 0 cmp r5, 0 bne _08021320 movs r0, 0x1 negs r0, r0 b _08021446 _08021320: ldrb r0, [r5, 0xC] cmp r0, 0x7 bls _08021328 b _0802143E _08021328: lsls r0, 2 ldr r1, =_08021338 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08021338: .4byte _08021358 .4byte _0802135E .4byte _08021368 .4byte _0802137E .4byte _0802138A .4byte _080213E6 .4byte _08021426 .4byte _08021436 _08021358: bl sub_8010434 b _0802143E _0802135E: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08021444 _08021368: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl UpdatePaletteFade b _0802143E _0802137E: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _0802143E b _08021444 _0802138A: movs r4, 0x20 str r4, [sp] str r4, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _0802143E _080213E6: bl FreeAllWindowBuffers movs r0, 0 bl HideBg movs r0, 0 bl UnsetBgTilemapBuffer movs r0, 0x1 bl HideBg movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x2 bl HideBg movs r0, 0x2 bl UnsetBgTilemapBuffer movs r0, 0x3 bl HideBg movs r0, 0x3 bl UnsetBgTilemapBuffer movs r1, 0x82 lsls r1, 5 movs r0, 0 bl ClearGpuRegBits b _0802143E _08021426: bl sub_800E084 adds r0, r5, 0 bl sub_8022960 bl sub_8034CC8 b _0802143E _08021436: movs r0, 0 strb r0, [r5, 0xC] movs r0, 0x1 b _08021446 _0802143E: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _08021444: movs r0, 0 _08021446: add sp, 0x8 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802130C thumb_func_start sub_8021450 sub_8021450: @ 8021450 push {r4,lr} adds r4, r0, 0 ldr r0, =gSpriteCoordOffsetY ldrh r1, [r4, 0x2C] ldrh r2, [r4, 0x2A] adds r1, r2 strh r1, [r0] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x16 bl SetGpuReg ldrh r0, [r4, 0x12] cmp r0, 0x7 bne _0802147C movs r1, 0x9C lsls r1, 1 adds r0, r4, r1 ldrh r1, [r4, 0x28] bl sub_8022524 _0802147C: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8021450 thumb_func_start sub_8021488 sub_8021488: @ 8021488 movs r1, 0 ldr r2, =0x0000ff98 strh r2, [r0, 0x2A] strh r1, [r0, 0x2C] ldr r0, =gSpriteCoordOffsetX strh r1, [r0] ldr r0, =gSpriteCoordOffsetY strh r2, [r0] bx lr .pool thumb_func_end sub_8021488 thumb_func_start sub_80214A8 sub_80214A8: @ 80214A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r10, r0 str r1, [sp] movs r0, 0 mov r9, r0 mov r1, r10 ldrb r1, [r1, 0x9] cmp r9, r1 bcc _080214C6 b _080215E4 _080214C6: ldr r1, =gUnknown_082F41E8 mov r2, r9 lsls r0, r2, 1 adds r0, r1 ldrh r2, [r0] mov r1, r9 lsls r0, r1, 5 add r0, r10 adds r0, 0xA4 ldrh r3, [r0] adds r3, 0x85 lsls r3, 16 lsrs r3, 16 ldr r0, =gUnknown_082F436C adds r1, r2, 0 bl AddItemIconObjectWithCustomObjectTemplate lsls r0, 24 lsrs r0, 24 mov r2, r9 lsls r3, r2, 2 ldr r1, [sp] adds r1, 0x38 adds r6, r1, r3 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r1, r0 str r1, [r6] ldrb r0, [r1, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r1, 0x5] ldr r2, [r6] adds r2, 0x2C ldrb r0, [r2] movs r1, 0x80 orrs r0, r1 strb r0, [r2] ldr r1, [r6] ldr r0, [sp] adds r0, 0xC adds r0, r3 mov r8, r0 ldr r0, [r0] ldrh r0, [r0, 0x8] adds r0, 0x78 strh r0, [r1, 0x20] ldr r1, [r6] ldr r0, =0x0000fff0 strh r0, [r1, 0x22] ldr r3, [r6] adds r5, r3, 0 adds r5, 0x2E movs r0, 0x80 lsls r0, 2 strh r0, [r5, 0x2] movs r0, 0x20 strh r0, [r5, 0x4] movs r0, 0x70 strh r0, [r5, 0xE] mov r2, r8 ldr r1, [r2] ldrh r0, [r1, 0xA] ldrh r1, [r1, 0x8] subs r0, r1 lsls r0, 16 asrs r1, r0, 16 adds r0, r1, 0 cmp r1, 0 bge _08021558 adds r0, r1, 0x3 _08021558: asrs r0, 2 strh r0, [r5, 0xC] lsls r0, r1, 23 lsrs r7, r0, 16 movs r2, 0x80 lsls r2, 2 adds r2, 0x20 lsrs r2, 1 movs r0, 0x7 movs r1, 0xFE lsls r1, 6 str r3, [sp, 0x4] bl sub_81515D4 adds r4, r0, 0 ldr r0, [r6] ldrh r0, [r0, 0x20] lsls r0, 7 ldr r3, [sp, 0x4] strh r0, [r3, 0x2E] lsls r1, r7, 16 asrs r1, 16 lsls r4, 16 asrs r4, 16 movs r0, 0x7 adds r2, r4, 0 bl sub_81515D4 strh r0, [r5, 0x6] movs r0, 0x7 adds r1, r4, 0 movs r2, 0x55 bl sub_8151550 adds r2, r0, 0 movs r0, 0 strh r0, [r5, 0x8] lsls r2, 16 asrs r2, 16 movs r0, 0x7 movs r1, 0xFE lsls r1, 6 bl sub_81515D4 strh r0, [r5, 0xA] ldrh r0, [r5, 0xE] ldr r2, =0xffff8000 adds r1, r2, 0 orrs r0, r1 strh r0, [r5, 0xE] mov r1, r8 ldr r0, [r1] movs r2, 0x8 ldrsh r0, [r0, r2] cmp r0, 0 bge _080215D0 ldr r0, [r6] movs r1, 0x1 bl StartSpriteAffineAnim _080215D0: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r0, r10 ldrb r0, [r0, 0x9] cmp r9, r0 bcs _080215E4 b _080214C6 _080215E4: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80214A8 thumb_func_start sub_8021608 sub_8021608: @ 8021608 push {r4-r6,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x2E ldrh r0, [r4, 0x4] ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 24 ldrh r2, [r5, 0x26] adds r0, r2 strh r0, [r5, 0x26] movs r1, 0xE ldrsh r0, [r4, r1] movs r6, 0x80 lsls r6, 8 ands r0, r6 cmp r0, 0 beq _0802166E ldrh r0, [r4, 0x6] ldrh r2, [r5, 0x2E] adds r0, r2 strh r0, [r5, 0x2E] ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 23 movs r2, 0xC ldrsh r1, [r4, r2] bl Sin strh r0, [r5, 0x24] movs r1, 0xE ldrsh r0, [r4, r1] ands r0, r6 cmp r0, 0 beq _0802166E ldrh r0, [r4, 0x8] lsls r0, 16 asrs r0, 23 cmp r0, 0x7E ble _0802166E movs r0, 0 strh r0, [r5, 0x24] ldrh r1, [r4, 0xE] ldr r0, =0x00007fff ands r0, r1 strh r0, [r4, 0xE] _0802166E: ldrh r0, [r4] lsls r0, 16 asrs r0, 23 strh r0, [r5, 0x20] movs r2, 0x22 ldrsh r1, [r5, r2] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 ldrh r2, [r4, 0xE] ldr r0, =0x00007fff ands r0, r2 cmp r1, r0 blt _0802169A ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] adds r0, r5, 0 bl FreeSpriteOamMatrix adds r0, r5, 0 bl DestroySprite _0802169A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8021608 thumb_func_start sub_80216A8 sub_80216A8: @ 80216A8 push {r4-r7,lr} adds r6, r0, 0 movs r5, 0 ldrb r0, [r6, 0x9] cmp r5, r0 bcs _080216D4 ldr r7, =gUnknown_082F41E8 _080216B6: lsls r0, r5, 1 adds r0, r7 ldrh r4, [r0] adds r0, r4, 0 bl FreeSpritePaletteByTag adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6, 0x9] cmp r5, r0 bcc _080216B6 _080216D4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80216A8 thumb_func_start sub_80216E0 sub_80216E0: @ 80216E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r6, r0, 0 str r1, [sp] movs r0, 0 str r0, [sp, 0x4] movs r1, 0x4E adds r1, r6 mov r10, r1 mov r9, r0 ldrb r2, [r6, 0x9] cmp r0, r2 bcs _080217AE ldr r7, =gUnknown_082F41CC _08021704: mov r3, r10 ldrh r0, [r3, 0xA] mov r4, r9 lsls r1, r4, 1 add r1, r9 asrs r0, r1 lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 16 mov r8, r1 cmp r1, 0 beq _0802179E ldr r0, [sp, 0x4] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08021748 lsls r4, 2 ldr r5, [sp] adds r5, 0x24 adds r0, r5, r4 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim b _0802175A .pool _08021748: mov r0, r9 lsls r4, r0, 2 ldr r5, [sp] adds r5, 0x24 adds r0, r5, r4 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim _0802175A: adds r3, r5, r4 ldr r2, [r3] adds r2, 0x3E ldrb r0, [r2] movs r4, 0x5 negs r4, r4 adds r1, r4, 0 ands r0, r1 strb r0, [r2] ldr r2, [r3] adds r2, 0x2C ldrb r0, [r2] subs r4, 0x3C adds r1, r4, 0 ands r0, r1 strb r0, [r2] ldr r2, [r3] movs r0, 0x3 mov r1, r8 ands r1, r0 mov r8, r1 subs r1, 0x1 lsls r1, 1 adds r0, r1, r7 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 strh r0, [r2, 0x24] ldr r2, [r3] ldr r3, =gUnknown_082F41CC+1 adds r1, r3 movs r0, 0 ldrsb r0, [r1, r0] strh r0, [r2, 0x26] _0802179E: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r4, [r6, 0x9] cmp r9, r4 bcc _08021704 _080217AE: ldr r0, [sp, 0x4] cmp r0, 0 bne _080217C0 adds r2, r6, 0 adds r2, 0x25 ldrb r1, [r2] b _0802189C .pool _080217C0: ldrh r0, [r6, 0x28] movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r1, r8 str r1, [sp, 0x8] movs r2, 0 mov r9, r2 mov r3, r10 ldrh r1, [r3, 0xC] lsls r0, r1, 1 adds r0, 0x3 adds r6, 0x25 str r6, [sp, 0xC] adds r3, r1, 0 cmp r9, r0 bge _08021890 _080217E8: mov r4, r9 lsls r1, r4, 2 ldr r0, [sp] adds r0, 0x4C adds r7, r0, r1 ldr r2, [r7] adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0802187E ldr r0, =sub_8022B28 str r0, [r2, 0x1C] lsls r1, r4, 1 ldr r3, =gUnknown_082F41CC+6 adds r0, r1, r3 movs r4, 0 ldrsb r4, [r0, r4] adds r0, r4, 0 adds r0, 0x78 strh r0, [r2, 0x20] ldr r2, [r7] ldr r0, =gUnknown_082F41CC+7 adds r1, r0 movs r6, 0 ldrsb r6, [r1, r6] mov r1, r8 lsls r0, r1, 2 subs r0, 0x88 subs r0, r6, r0 strh r0, [r2, 0x22] ldr r5, [r7] ldr r2, [sp, 0x8] lsls r1, r2, 2 adds r0, r4, 0 bl __divsi3 adds r4, r0 strh r4, [r5, 0x24] ldr r0, [r7] strh r6, [r0, 0x26] mov r3, r10 ldrb r1, [r3, 0x4] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08021860 ldr r0, [r7] movs r1, 0x1 bl StartSpriteAnim b _08021868 .pool _08021860: ldr r0, [r7] movs r1, 0 bl StartSpriteAnim _08021868: mov r0, r8 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r8, r0 mov r4, r10 ldrh r3, [r4, 0xC] cmp r0, 0x3 bls _0802187E movs r0, 0 mov r8, r0 _0802187E: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, r3, 1 adds r0, 0x3 cmp r9, r0 blt _080217E8 _08021890: ldr r2, [sp, 0xC] ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080218A6 _0802189C: movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] b _080218C4 _080218A6: ldr r3, [sp, 0x4] cmp r3, 0x1 bne _080218B4 movs r0, 0x4E bl PlaySE b _080218BA _080218B4: movs r0, 0x4D bl PlaySE _080218BA: ldr r4, [sp, 0xC] ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] _080218C4: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80216E0 thumb_func_start sub_80218D4 sub_80218D4: @ 80218D4 push {r4-r7,lr} adds r5, r0, 0 adds r6, r1, 0 movs r2, 0 ldrb r0, [r5, 0x9] cmp r2, r0 bcs _08021906 adds r4, r6, 0 adds r4, 0x24 movs r7, 0x4 adds r3, r0, 0 _080218EA: lsls r0, r2, 2 adds r0, r4, r0 ldr r0, [r0] adds r0, 0x3E ldrb r1, [r0] adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08021920 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _080218EA _08021906: movs r2, 0 adds r3, r6, 0 adds r3, 0x4C movs r4, 0x4 _0802190E: lsls r0, r2, 2 adds r0, r3, r0 ldr r0, [r0] adds r0, 0x3E ldrb r1, [r0] adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _08021924 _08021920: movs r0, 0 b _0802193C _08021924: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _0802190E movs r1, 0x2C ldrsh r0, [r5, r1] cmp r0, 0 beq _0802193A movs r0, 0 strh r0, [r5, 0x2C] _0802193A: movs r0, 0x1 _0802193C: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80218D4 thumb_func_start sub_8021944 sub_8021944: @ 8021944 push {r4-r7,lr} adds r6, r0, 0 lsls r4, r1, 16 lsrs r4, 16 movs r7, 0 movs r5, 0xE1 lsls r5, 4 adds r0, r4, 0 adds r1, r5, 0 bl __udivsi3 strh r0, [r6, 0x4] adds r0, r4, 0 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x3C bl __udivsi3 strh r0, [r6, 0x6] adds r0, r4, 0 movs r1, 0x3C bl __umodsi3 lsls r0, 24 asrs r0, 16 movs r1, 0x4 bl sub_8151534 adds r2, r7, 0 lsls r0, 16 asrs r3, r0, 16 movs r0, 0x7 mov r12, r0 ldr r5, =gUnknown_082F334C movs r4, 0x1 _08021990: mov r0, r12 subs r1, r0, r2 adds r0, r3, 0 asrs r0, r1 ands r0, r4 cmp r0, 0 beq _080219A6 lsls r0, r2, 2 adds r0, r5 ldr r0, [r0] adds r7, r0 _080219A6: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _08021990 ldr r1, =0x000f4240 adds r0, r7, 0 bl __udivsi3 strh r0, [r6, 0x8] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8021944 thumb_func_start sub_80219C8 sub_80219C8: @ 80219C8 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r8, r3 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r2, 0x1 negs r2, r2 movs r0, 0x2 mov r1, r8 bl GetStringWidth lsls r4, 2 lsrs r0, 1 subs r4, r0 lsls r4, 24 lsrs r4, 24 lsls r0, r5, 1 adds r0, r5 ldr r1, =gUnknown_082F32D8 adds r0, r1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] adds r0, r6, 0 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl box_print add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80219C8 thumb_func_start sub_8021A28 sub_8021A28: @ 8021A28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C str r0, [sp, 0xC] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x10] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x14] lsls r3, 24 movs r0, 0 str r0, [sp, 0x18] movs r1, 0 str r1, [sp, 0x1C] ldr r2, [sp, 0xC] adds r2, 0x68 str r2, [sp, 0x20] movs r4, 0xF0 lsls r4, 24 adds r3, r4 lsrs r3, 24 ldr r0, [sp, 0x10] cmp r0, 0x2 bne _08021A68 adds r0, r3, 0 subs r0, 0x2A lsls r0, 24 lsrs r3, r0, 24 _08021A68: ldr r2, [sp, 0xC] ldrb r1, [r2, 0x9] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 subs r6, r3, r0 cmp r6, 0 ble _08021A84 lsrs r0, r6, 31 adds r0, r6, r0 asrs r0, 1 adds r6, r0, 0 adds r6, 0x10 b _08021A86 _08021A84: movs r6, 0x10 _08021A86: movs r5, 0 ldr r3, [sp, 0xC] ldrb r3, [r3, 0x9] cmp r5, r3 bcc _08021A92 b _08021D14 _08021A92: ldr r4, [sp, 0x10] lsls r4, 2 str r4, [sp, 0x24] _08021A98: bl sub_81AFBF0 ldr r0, [sp, 0x10] cmp r0, 0x1 beq _08021B48 cmp r0, 0x1 bgt _08021AC0 cmp r0, 0 beq _08021ADE ldr r4, [sp, 0x14] subs r4, 0x4 lsls r1, r6, 24 mov r10, r1 ldr r2, [sp, 0x1C] adds r2, 0xA2 mov r9, r2 ldr r3, [sp, 0x18] lsls r3, 5 mov r8, r3 b _08021C5A _08021AC0: ldr r4, [sp, 0x10] cmp r4, 0x2 bne _08021AC8 b _08021C1C _08021AC8: ldr r4, [sp, 0x14] subs r4, 0x4 lsls r0, r6, 24 mov r10, r0 ldr r1, [sp, 0x1C] adds r1, 0xA2 mov r9, r1 ldr r2, [sp, 0x18] lsls r2, 5 mov r8, r2 b _08021C5A _08021ADE: ldr r0, [sp, 0x20] adds r0, 0x20 adds r0, r5 ldrb r0, [r0] str r0, [sp, 0x18] lsls r3, r5, 1 ldr r2, [sp, 0x20] adds r2, 0xC cmp r5, 0 beq _08021B04 adds r0, r2, r3 subs r1, r5, 0x1 lsls r1, 1 adds r1, r2, r1 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 beq _08021B04 str r5, [sp, 0x1C] _08021B04: ldr r4, [sp, 0x24] ldr r1, [sp, 0x10] adds r0, r4, r1 lsls r0, 1 adds r0, r3, r0 adds r0, r2, r0 ldrh r1, [r0] ldr r0, =gStringVar4 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_082F43B4 adds r0, r4, r0 ldr r1, [r0] ldr r0, =gStringVar4 bl StringAppend ldr r4, [sp, 0x14] subs r4, 0x4 lsls r2, r6, 24 mov r10, r2 ldr r3, [sp, 0x1C] adds r3, 0xA2 mov r9, r3 ldr r0, [sp, 0x18] lsls r0, 5 mov r8, r0 b _08021C5A .pool _08021B48: ldr r1, [sp, 0x20] adds r0, r1, r5 adds r0, 0x28 ldrb r0, [r0] str r0, [sp, 0x18] lsls r3, r5, 1 adds r2, r1, 0 adds r2, 0xC cmp r5, 0 beq _08021B72 adds r0, r3, 0 adds r0, 0xA adds r0, r2, r0 adds r1, r3, 0 adds r1, 0x8 adds r1, r2, r1 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 beq _08021B72 str r5, [sp, 0x1C] _08021B72: ldr r0, [sp, 0x24] ldr r1, [sp, 0x10] adds r4, r0, r1 lsls r4, 1 adds r4, r3, r4 adds r4, r2, r4 ldrh r1, [r4] lsrs r1, 4 ldr r0, =gStringVar1 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r7, 0 ldrb r0, [r4] movs r3, 0xF ands r3, r0 movs r2, 0 ldr r4, [sp, 0x10] lsls r4, 2 str r4, [sp, 0x28] ldr r4, [sp, 0x14] subs r4, 0x4 lsls r0, r6, 24 mov r10, r0 ldr r1, [sp, 0x1C] adds r1, 0xA2 mov r9, r1 ldr r0, [sp, 0x18] lsls r0, 5 mov r8, r0 adds r6, 0xE adds r5, 0x1 ldr r1, =gUnknown_082F334C mov r12, r1 _08021BB8: movs r0, 0x3 subs r1, r0, r2 adds r0, r3, 0 asrs r0, r1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08021BD0 lsls r0, r2, 2 add r0, r12 ldr r0, [r0] adds r7, r0 _08021BD0: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _08021BB8 adds r0, r7, 0 ldr r1, =0x000f4240 bl __udivsi3 lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gStringVar2 adds r1, r3, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_082F43B4 ldr r2, [sp, 0x28] adds r0, r2, r0 ldr r1, [r0] ldr r0, =gStringVar4 bl StringExpandPlaceholders b _08021C5E .pool _08021C1C: str r5, [sp, 0x18] str r5, [sp, 0x1C] lsls r7, r5, 5 ldr r3, [sp, 0xC] adds r0, r3, r7 adds r0, 0xA4 ldrb r2, [r0] cmp r2, 0x2B bls _08021C30 movs r2, 0 _08021C30: lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, =gBerries adds r1, r0 ldr r0, =gStringVar1 bl StringCopy ldr r0, =gUnknown_082F43B4 ldr r1, [r0, 0x8] ldr r0, =gStringVar4 bl StringExpandPlaceholders ldr r4, [sp, 0x14] subs r4, 0x4 lsls r0, r6, 24 mov r10, r0 movs r1, 0xA2 adds r1, r5 mov r9, r1 mov r8, r7 _08021C5A: adds r6, 0xE adds r5, 0x1 _08021C5E: movs r0, 0x2 ldr r1, =gStringVar4 adds r2, r4, 0 bl GetStringRightAlignXOffset adds r2, r0, 0 ldr r3, [sp, 0xC] movs r4, 0xDD lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] lsls r2, 24 lsrs r2, 24 mov r1, r10 lsrs r3, r1, 24 ldr r1, =gUnknown_082F32D8 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r1, =gStringVar4 str r1, [sp, 0x8] movs r1, 0x2 bl box_print ldr r3, [sp, 0x18] ldr r2, [sp, 0xC] ldrb r2, [r2, 0x8] cmp r3, r2 bne _08021CC0 ldr r0, =gStringVar3 ldr r1, =gText_1DotBlueF700 bl StringCopy b _08021CC8 .pool _08021CC0: ldr r0, =gStringVar3 ldr r1, =gText_1DotF700 bl StringCopy _08021CC8: ldr r4, =gStringVar3 mov r3, r9 strb r3, [r4] mov r1, r8 adds r1, 0x98 ldr r0, [sp, 0xC] adds r1, r0, r1 movs r0, 0 bl sub_81AFC0C ldr r0, =gStringVar4 adds r1, r4, 0 bl sub_81AFC28 ldr r1, [sp, 0xC] movs r2, 0xDD lsls r2, 1 adds r0, r1, r2 ldrb r0, [r0] mov r4, r10 lsrs r3, r4, 24 ldr r1, =gUnknown_082F32D8 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r2, =gStringVar4 str r2, [sp, 0x8] movs r1, 0x2 movs r2, 0x4 bl box_print lsls r0, r5, 24 lsrs r5, r0, 24 ldr r3, [sp, 0xC] ldrb r3, [r3, 0x9] cmp r5, r3 bcs _08021D14 b _08021A98 _08021D14: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8021A28 thumb_func_start sub_8021D34 sub_8021D34: @ 8021D34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r8, r0 movs r0, 0 mov r10, r0 movs r6, 0 movs r1, 0 str r1, [sp, 0xC] mov r2, r8 adds r2, 0x68 str r2, [sp, 0x10] movs r4, 0xDD lsls r4, 1 add r4, r8 mov r9, r4 ldrb r0, [r4] movs r1, 0x4 bl GetWindowAttribute lsls r0, 27 movs r1, 0xD6 lsls r1, 24 adds r0, r1 lsrs r7, r0, 24 movs r0, 0x9C lsls r0, 1 add r0, r8 ldr r2, [sp, 0x10] ldrh r1, [r2, 0x4] bl sub_8021944 ldrb r0, [r4] ldr r4, =gUnknown_082F32D8 str r4, [sp] str r6, [sp, 0x4] ldr r1, =gText_TimeColon str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 adds r3, r7, 0 bl box_print ldr r4, =gText_SpaceSec movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 negs r2, r2 bl GetStringWidth movs r1, 0xB0 subs r0, r1, r0 lsls r0, 24 lsrs r6, r0, 24 mov r2, r9 ldrb r0, [r2] ldr r1, =gUnknown_082F32D8 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print movs r0, 0x9F lsls r0, 1 add r0, r8 movs r4, 0 ldrsh r1, [r0, r4] ldr r0, =gStringVar1 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gStringVar2 movs r1, 0xA0 lsls r1, 1 add r1, r8 movs r2, 0 ldrsh r1, [r1, r2] movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 ldr r1, =gText_XDotY2 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 adds r1, r5, 0 movs r2, 0x1 negs r2, r2 bl GetStringWidth subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 mov r4, r9 ldrb r0, [r4] ldr r1, =gUnknown_082F32D8 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print ldr r4, =gText_SpaceMin movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 negs r2, r2 bl GetStringWidth subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 mov r1, r9 ldrb r0, [r1] ldr r2, =gUnknown_082F32D8 str r2, [sp] mov r1, r10 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print movs r0, 0x9E lsls r0, 1 add r0, r8 movs r2, 0 ldrsh r1, [r0, r2] ldr r0, =gStringVar1 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r1, =gText_StrVar1 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x2 adds r1, r5, 0 movs r2, 0x1 negs r2, r2 bl GetStringWidth subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 mov r4, r9 ldrb r0, [r4] ldr r1, =gUnknown_082F32D8 str r1, [sp] mov r2, r10 str r2, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print adds r0, r7, 0 adds r0, 0xE lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] ldr r4, =gUnknown_082F32D8 str r4, [sp] mov r1, r10 str r1, [sp, 0x4] ldr r1, =gText_PressingSpeed str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 adds r3, r7, 0 bl box_print ldr r4, =gText_TimesPerSec movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 negs r2, r2 bl GetStringWidth movs r2, 0xB0 subs r0, r2, r0 lsls r0, 24 str r0, [sp, 0x18] lsrs r6, r0, 24 mov r1, r9 ldrb r0, [r1] ldr r2, =gUnknown_082F32D8 str r2, [sp] mov r1, r10 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print mov r4, r8 ldrb r2, [r4, 0x16] ldrh r0, [r4, 0x16] mov r12, r0 movs r1, 0x7 mov r9, r1 movs r5, 0x1 ldr r3, =gUnknown_082F334C _08021EEC: mov r4, r9 mov r0, r10 subs r1, r4, r0 adds r0, r2, 0 asrs r0, r1 ands r0, r5 cmp r0, 0 beq _08021F0A mov r1, r10 lsls r0, r1, 2 adds r0, r3 ldr r0, [r0] ldr r4, [sp, 0xC] adds r4, r0 str r4, [sp, 0xC] _08021F0A: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0x7 bls _08021EEC ldr r0, =gStringVar1 mov r2, r12 lsrs r1, r2, 8 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar2 ldr r1, =0x000f4240 ldr r0, [sp, 0xC] bl __udivsi3 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_XDotY3 adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0x1 negs r2, r2 movs r0, 0x2 adds r1, r4, 0 bl GetStringWidth subs r0, r6, r0 lsls r0, 24 lsrs r6, r0, 24 mov r0, r8 adds r0, 0x25 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08021FC4 movs r0, 0xDD lsls r0, 1 add r0, r8 ldrb r0, [r0] ldr r1, =gUnknown_082F32E7 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print b _08021FDE .pool _08021FC4: movs r0, 0xDD lsls r0, 1 add r0, r8 ldrb r0, [r0] ldr r1, =gUnknown_082F32D8 str r1, [sp] str r2, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print _08021FDE: adds r0, r7, 0 adds r0, 0xE lsls r0, 24 lsrs r7, r0, 24 movs r4, 0xDD lsls r4, 1 add r8, r4 mov r1, r8 ldrb r0, [r1] ldr r2, =gUnknown_082F32D8 mov r9, r2 str r2, [sp] movs r5, 0 str r5, [sp, 0x4] ldr r1, =gText_Silkiness str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 adds r3, r7, 0 bl box_print ldr r0, =gStringVar1 ldr r4, [sp, 0x10] ldrh r1, [r4, 0x8] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_Var1Percent adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0x1 negs r2, r2 movs r0, 0x2 adds r1, r4, 0 bl GetStringWidth movs r1, 0xB0 subs r1, r0 lsls r1, 24 lsrs r6, r1, 24 mov r1, r8 ldrb r0, [r1] mov r2, r9 str r2, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x2 adds r2, r6, 0 adds r3, r7, 0 bl box_print 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_8021D34 thumb_func_start sub_8022070 sub_8022070: @ 8022070 push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 adds r6, r1, 0 adds r0, r6, 0 adds r0, 0x80 ldrb r0, [r0] cmp r0, 0x5 bls _08022084 b _08022218 _08022084: lsls r0, 2 ldr r1, =_08022094 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08022094: .4byte _080220AC .4byte _080220F8 .4byte _0802210C .4byte _08022130 .4byte _080221F8 .4byte _08022200 _080220AC: ldrb r0, [r4, 0x9] subs r0, 0x2 lsls r0, 24 lsrs r5, r0, 24 adds r0, r6, 0 bl sub_8022554 ldrh r0, [r4, 0x12] lsls r0, 3 ldr r2, =gUnknown_082F32CC mov r1, sp adds r0, r2 ldm r0!, {r2,r3} stm r1!, {r2,r3} ldrh r0, [r4, 0x12] cmp r0, 0xD bne _080220DC ldr r0, =gUnknown_082F3344 adds r0, 0x4 b _080220DE .pool _080220DC: ldr r0, =gUnknown_082F3344 _080220DE: adds r0, r5, r0 ldrb r1, [r0] mov r0, sp strb r1, [r0, 0x4] mov r0, sp bl AddWindow adds r1, r6, 0 adds r1, 0x82 strb r0, [r1] b _08022218 .pool _080220F8: adds r4, r6, 0 adds r4, 0x82 ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 bl FillWindowPixelBuffer b _08022218 _0802210C: adds r5, r6, 0 adds r5, 0x82 ldrb r0, [r5] ldr r4, =0x0000021d adds r1, r4, 0 movs r2, 0xD0 bl box_border_load_tiles_and_pal ldrb r0, [r5] movs r1, 0 adds r2, r4, 0 movs r3, 0xD bl SetWindowBorderStyle b _08022218 .pool _08022130: ldrb r0, [r4, 0x9] subs r0, 0x2 lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x12] cmp r0, 0xC beq _08022184 cmp r0, 0xC bgt _08022148 cmp r0, 0xB beq _0802214E b _08022218 _08022148: cmp r0, 0xD beq _080221C8 b _08022218 _0802214E: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] ldr r3, =gText_PressesRankings movs r1, 0x14 movs r2, 0x3 bl sub_80219C8 ldr r0, =gUnknown_082F3344 adds r0, r5, r0 ldrb r3, [r0] lsls r3, 27 lsrs r3, 24 adds r0, r4, 0 movs r1, 0 movs r2, 0xA0 bl sub_8021A28 adds r1, r6, 0 adds r1, 0x80 movs r0, 0x5 b _08022220 .pool _08022184: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] ldr r2, =gUnknown_082F43B4 adds r1, r4, 0 adds r1, 0x8F ldrb r1, [r1] adds r1, 0x3 lsls r1, 2 adds r1, r2 ldr r3, [r1] movs r1, 0x14 movs r2, 0x4 bl sub_80219C8 ldr r0, =gUnknown_082F3344 adds r0, r5, r0 ldrb r3, [r0] lsls r3, 27 lsrs r3, 24 adds r0, r4, 0 movs r1, 0x1 movs r2, 0xA0 bl sub_8021A28 adds r1, r6, 0 adds r1, 0x80 movs r0, 0x5 b _08022220 .pool _080221C8: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] ldr r3, =gText_CrushingResults movs r1, 0x16 movs r2, 0x3 bl sub_80219C8 ldr r0, =gUnknown_082F3344 adds r0, 0x4 adds r0, r5, r0 ldrb r3, [r0] lsls r3, 27 lsrs r3, 24 adds r0, r4, 0 movs r1, 0x2 movs r2, 0xB0 bl sub_8021A28 b _08022218 .pool _080221F8: adds r0, r4, 0 bl sub_8021D34 b _08022218 _08022200: adds r0, r6, 0 adds r0, 0x82 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram adds r1, r6, 0 adds r1, 0x80 movs r0, 0 strb r0, [r1] movs r0, 0x1 b _08022224 _08022218: adds r1, r6, 0 adds r1, 0x80 ldrb r0, [r1] adds r0, 0x1 _08022220: strb r0, [r1] movs r0, 0 _08022224: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8022070 thumb_func_start sub_802222C sub_802222C: @ 802222C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0xDD lsls r0, 1 adds r5, r4, r0 ldrb r0, [r5] movs r1, 0x1 bl sub_8198070 ldrb r0, [r5] bl RemoveWindow adds r0, r4, 0 bl sub_8022600 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802222C thumb_func_start sub_8022250 sub_8022250: @ 8022250 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 mov r9, r0 movs r1, 0 str r1, [sp, 0xC] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0x1 beq _080222D0 cmp r0, 0x1 bgt _08022288 cmp r0, 0 beq _08022296 b _080224BA .pool _08022288: cmp r0, 0x2 bne _0802228E b _08022480 _0802228E: cmp r0, 0x3 bne _08022294 b _08022494 _08022294: b _080224BA _08022296: ldr r0, =gUnknown_082F32EC bl AddWindow strh r0, [r6, 0x2] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldrb r0, [r6, 0x2] movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r6, 0x2] ldr r4, =0x0000021d adds r1, r4, 0 movs r2, 0xD0 bl box_border_load_tiles_and_pal ldrb r0, [r6, 0x2] movs r1, 0 adds r2, r4, 0 movs r3, 0xD bl SetWindowBorderStyle b _080224BA .pool _080222D0: ldr r0, =gText_BerryCrush2 mov r10, r0 movs r1, 0x1 negs r1, r1 mov r8, r1 movs r0, 0x1 mov r1, r10 mov r2, r8 bl GetStringWidth lsrs r0, 1 movs r4, 0x60 subs r0, r4, r0 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x2] ldr r5, =gUnknown_082F32E1 str r5, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 movs r3, 0x1 bl box_print ldr r0, =gText_PressingSpeedRankings mov r10, r0 movs r0, 0x1 mov r1, r10 mov r2, r8 bl GetStringWidth lsrs r0, 1 subs r4, r0 lsls r4, 24 lsrs r7, r4, 24 ldrb r0, [r6, 0x2] str r5, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 movs r3, 0x11 bl box_print movs r0, 0x29 mov r10, r0 _08022336: mov r1, r9 adds r1, 0x2 ldr r0, =gStringVar1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, =gStringVar4 ldr r1, =gText_Var1Players bl StringExpandPlaceholders ldrb r0, [r6, 0x2] ldr r1, =gUnknown_082F32D8 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r1, =gStringVar4 str r1, [sp, 0x8] movs r1, 0x1 movs r2, 0 mov r3, r10 bl box_print movs r0, 0x1 ldr r1, =gText_TimesPerSec movs r2, 0x1 negs r2, r2 bl GetStringWidth movs r1, 0xC0 subs r1, r0 lsls r1, 24 lsrs r7, r1, 24 ldrb r0, [r6, 0x2] ldr r1, =gUnknown_082F32D8 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r1, =gText_TimesPerSec str r1, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 mov r3, r10 bl box_print movs r2, 0 mov r0, r9 lsls r4, r0, 1 mov r1, r10 adds r1, 0x10 str r1, [sp, 0x10] movs r0, 0x1 add r9, r0 adds r0, r4, r6 ldrb r3, [r0, 0x4] movs r1, 0x7 mov r12, r1 movs r0, 0x1 mov r8, r0 ldr r5, =gUnknown_082F334C _080223AE: mov r0, r12 subs r1, r0, r2 adds r0, r3, 0 asrs r0, r1 mov r1, r8 ands r0, r1 cmp r0, 0 beq _080223CA lsls r0, r2, 2 adds r0, r5 ldr r0, [r0] ldr r1, [sp, 0xC] adds r1, r0 str r1, [sp, 0xC] _080223CA: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _080223AE adds r0, r4, r6 ldrh r1, [r0, 0x4] lsrs r1, 8 ldr r0, =gStringVar1 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r0, [sp, 0xC] ldr r1, =0x000f4240 bl __udivsi3 adds r1, r0, 0 ldr r0, =gStringVar2 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, =gStringVar4 ldr r1, =gText_XDotY3 bl StringExpandPlaceholders movs r0, 0x1 ldr r1, =gStringVar4 movs r2, 0x1 negs r2, r2 bl GetStringWidth subs r0, r7, r0 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x2] ldr r1, =gUnknown_082F32D8 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r1, =gStringVar4 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 mov r3, r10 bl box_print ldr r1, [sp, 0x10] lsls r0, r1, 24 lsrs r0, 24 mov r10, r0 movs r0, 0 str r0, [sp, 0xC] mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0x3 bhi _08022444 b _08022336 _08022444: ldrb r0, [r6, 0x2] movs r1, 0x3 bl CopyWindowToVram b _080224BA .pool _08022480: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _080224BA b _080224C0 .pool _08022494: ldrb r0, [r6, 0x2] movs r1, 0x1 bl sub_8198070 ldrb r0, [r6, 0x2] bl ClearWindowTilemap ldrb r0, [r6, 0x2] bl RemoveWindow adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts bl ScriptContext2_Disable mov r0, r9 b _080224BE _080224BA: ldrh r0, [r6] adds r0, 0x1 _080224BE: strh r0, [r6] _080224C0: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022250 thumb_func_start sub_80224D0 sub_80224D0: @ 80224D0 push {lr} bl ScriptContext2_Enable ldr r0, =sub_8022250 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] movs r3, 0xF6 lsls r3, 1 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, 0xC] adds r3, 0x2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, 0xE] adds r3, 0x2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, 0x10] adds r3, 0x2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1, 0x12] pop {r0} bx r0 .pool thumb_func_end sub_80224D0 thumb_func_start sub_8022524 sub_8022524: @ 8022524 push {r4,lr} adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 bl sub_8021944 movs r0, 0x4 ldrsh r1, [r4, r0] movs r0, 0 bl sub_8035044 movs r0, 0x6 ldrsh r1, [r4, r0] movs r0, 0x1 bl sub_8035044 movs r0, 0x8 ldrsh r1, [r4, r0] movs r0, 0x2 bl sub_8035044 pop {r4} pop {r0} bx r0 thumb_func_end sub_8022524 thumb_func_start sub_8022554 sub_8022554: @ 8022554 push {lr} ldr r2, [r0, 0x78] adds r2, 0x3E ldrb r1, [r2] movs r3, 0x4 orrs r1, r3 strb r1, [r2] ldr r1, [r0, 0x7C] adds r1, 0x3E ldrb r0, [r1] orrs r0, r3 strb r0, [r1] movs r0, 0x2 movs r1, 0x1 bl sub_803547C movs r0, 0x1 movs r1, 0x1 bl sub_803547C movs r0, 0 movs r1, 0x1 bl sub_803547C pop {r0} bx r0 thumb_func_end sub_8022554 thumb_func_start sub_8022588 sub_8022588: @ 8022588 push {r4-r7,lr} adds r5, r0, 0 movs r6, 0 ldrb r0, [r5, 0x9] cmp r6, r0 bcs _080225E8 ldr r7, =gUnknown_082F417C _08022596: lsls r0, r6, 2 movs r1, 0xA2 lsls r1, 1 adds r2, r5, r1 adds r2, r0 ldrb r1, [r5, 0x9] subs r1, 0x2 lsls r0, r1, 2 adds r0, r1 adds r0, r6, r0 adds r0, r7 ldrb r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_082F4190 adds r0, r1 str r0, [r2] ldrb r0, [r0] lsls r0, 3 ldr r1, =gUnknown_082F32F4 adds r0, r1 bl AddWindow ldr r1, =0x000001bb adds r4, r5, r1 adds r4, r6 strb r0, [r4] ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0 bl FillWindowPixelBuffer adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r5, 0x9] cmp r6, r0 bcc _08022596 _080225E8: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8022588 thumb_func_start sub_8022600 sub_8022600: @ 8022600 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r6, r0, 0 movs r7, 0 ldrb r0, [r6, 0x9] cmp r7, r0 bcs _080226B6 movs r1, 0 mov r8, r1 _08022616: ldr r1, =0x000001bb adds r0, r6, r1 adds r5, r0, r7 ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r6, 0x8] cmp r7, r0 bne _08022668 lsls r4, r7, 5 adds r4, 0x98 adds r4, r6, r4 movs r0, 0x2 adds r1, r4, 0 movs r2, 0 bl GetStringWidth lsrs r0, 1 movs r2, 0x24 subs r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r0, [r5] mov r1, r8 str r1, [sp] str r1, [sp, 0x4] ldr r1, =gUnknown_082F32DB str r1, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParametrized2 b _0802269C .pool _08022668: lsls r4, r7, 5 adds r4, 0x98 adds r4, r6, r4 movs r0, 0x2 adds r1, r4, 0 movs r2, 0 bl GetStringWidth lsrs r0, 1 movs r2, 0x24 subs r2, r0 lsls r2, 24 lsrs r2, 24 ldrb r0, [r5] mov r1, r8 str r1, [sp] str r1, [sp, 0x4] ldr r1, =gUnknown_082F32DE str r1, [sp, 0x8] mov r1, r8 str r1, [sp, 0xC] str r4, [sp, 0x10] movs r1, 0x2 movs r3, 0x1 bl AddTextPrinterParametrized2 _0802269C: ldr r1, =0x000001bb adds r0, r6, r1 adds r0, r7 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x9] cmp r7, r0 bcc _08022616 _080226B6: movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8022600 thumb_func_start sub_80226D0 sub_80226D0: @ 80226D0 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 movs r5, 0 ldr r0, =gUnknown_08DE3FD4 ldr r4, =0x0201c000 adds r1, r4, 0 bl LZ77UnCompWram b _0802271A .pool _080226EC: lsls r1, r5, 2 movs r2, 0xA2 lsls r2, 1 adds r0, r6, r2 adds r0, r1 ldr r3, [r0] ldrb r0, [r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4, r1 ldrb r2, [r3, 0x1] ldrb r3, [r3, 0x2] movs r0, 0xA str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x3 bl CopyToBgTilemapBufferRect adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0802271A: ldrb r0, [r6, 0x9] cmp r5, r0 bcc _080226EC movs r0, 0x3 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80226D0 thumb_func_start sub_8022730 sub_8022730: @ 8022730 push {r4-r7,lr} adds r6, r0, 0 movs r5, 0 ldr r0, =0x0000ff98 strh r0, [r6, 0x2A] strh r5, [r6, 0x2C] ldr r1, =gSpriteCoordOffsetX strh r5, [r1] ldr r1, =gSpriteCoordOffsetY strh r0, [r1] ldr r4, =gUnknown_082F41F4 _08022746: lsls r0, r5, 3 adds r0, r4 bl LoadCompressedObjectPic adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08022746 ldr r0, =gUnknown_082F421C bl LoadSpritePalettes ldr r0, =gUnknown_082F430C movs r1, 0x78 movs r2, 0x58 movs r3, 0x5 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xAC lsls r0, 1 adds r3, r6, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldr r1, [r3] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 strb r0, [r1] movs r5, 0 ldrb r1, [r6, 0x9] cmp r5, r1 bcs _08022822 movs r7, 0x4 _080227AA: lsls r4, r5, 2 movs r3, 0xA2 lsls r3, 1 adds r0, r6, r3 adds r0, r4 ldr r0, [r0] ldrh r1, [r0, 0x4] adds r1, 0x78 lsls r1, 16 asrs r1, 16 ldrh r2, [r0, 0x6] adds r2, 0x20 lsls r2, 16 asrs r2, 16 ldr r0, =gUnknown_082F4324 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xAE lsls r0, 1 adds r3, r6, r0 adds r3, r4 lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r0, =gSprites adds r1, r0 str r1, [r3] ldrb r0, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r2, r4, 0 ands r0, r2 orrs r0, r7 strb r0, [r1, 0x5] ldr r1, [r3] adds r1, 0x3E ldrb r0, [r1] orrs r0, r7 strb r0, [r1] ldr r2, [r3] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] ldr r2, [r3] adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6, 0x9] cmp r5, r0 bcc _080227AA _08022822: movs r5, 0 ldr r4, =gUnknown_082F41CC+6 adds r7, r4, 0x1 _08022828: lsls r2, r5, 1 adds r0, r2, r4 movs r1, 0 ldrsb r1, [r0, r1] adds r1, 0x78 adds r2, r7 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 adds r2, 0x88 ldr r0, =gUnknown_082F433C movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r5, 2 movs r1, 0xC2 lsls r1, 1 adds r3, r6, r1 adds r3, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] movs r2, 0xC orrs r1, r2 strb r1, [r0, 0x5] ldr r2, [r3] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r2, [r3] adds r2, 0x2C ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r0, [r3] strh r5, [r0, 0x2E] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xA bls _08022828 movs r5, 0 _0802288E: lsls r1, r5, 1 adds r1, r5 lsls r1, 19 movs r3, 0xB0 lsls r3, 16 adds r1, r3 asrs r1, 16 ldr r0, =gUnknown_082F4354 movs r2, 0x8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 lsls r0, r5, 2 movs r4, 0xD8 lsls r4, 1 adds r3, r6, r4 adds r3, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r3] ldrb r1, [r0, 0x5] movs r4, 0xD negs r4, r4 adds r2, r4, 0 ands r1, r2 strb r1, [r0, 0x5] ldr r2, [r3] adds r2, 0x3E ldrb r0, [r2] adds r4, 0x8 adds r1, r4, 0 ands r0, r1 strb r0, [r2] ldr r2, [r3] adds r2, 0x2C ldrb r0, [r2] movs r3, 0x41 negs r3, r3 adds r1, r3, 0 ands r0, r1 strb r0, [r2] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _0802288E ldr r4, =gUnknown_082F4384 movs r0, 0 movs r1, 0 adds r2, r4, 0 bl sub_8034D14 adds r2, r4, 0 adds r2, 0x10 movs r0, 0x1 movs r1, 0 bl sub_8034D14 adds r4, 0x20 movs r0, 0x2 movs r1, 0 adds r2, r4, 0 bl sub_8034D14 ldrh r0, [r6, 0x12] cmp r0, 0x1 bne _08022928 movs r4, 0x9C lsls r4, 1 adds r0, r6, r4 bl sub_8022554 _08022928: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8022730 thumb_func_start sub_8022960 sub_8022960: @ 8022960 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 movs r0, 0x4 bl FreeSpriteTilesByTag movs r0, 0x3 bl FreeSpriteTilesByTag movs r0, 0x2 bl FreeSpriteTilesByTag movs r0, 0x1 bl FreeSpriteTilesByTag movs r0, 0x4 bl FreeSpritePaletteByTag movs r0, 0x2 bl FreeSpritePaletteByTag movs r0, 0x1 bl FreeSpritePaletteByTag movs r0, 0xD8 lsls r0, 1 adds r6, r5, r0 _08022996: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _08022996 movs r0, 0x2 bl sub_80353DC movs r0, 0x1 bl sub_80353DC movs r0, 0 bl sub_80353DC movs r4, 0 movs r1, 0xC2 lsls r1, 1 adds r6, r5, r1 _080229C4: lsls r0, r4, 2 adds r0, r6, r0 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xA bls _080229C4 movs r4, 0 ldrb r2, [r5, 0x9] cmp r4, r2 bcs _080229FC _080229E0: lsls r1, r4, 2 movs r2, 0xAE lsls r2, 1 adds r0, r5, r2 adds r0, r1 ldr r0, [r0] bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5, 0x9] cmp r4, r0 bcc _080229E0 _080229FC: movs r1, 0xAC lsls r1, 1 adds r0, r5, r1 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08022A18 adds r0, r2, 0 bl DestroySprite _08022A18: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8022960 thumb_func_start sub_8022A20 sub_8022A20: @ 8022A20 push {lr} adds r3, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08022A46 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] _08022A46: pop {r0} bx r0 thumb_func_end sub_8022A20 thumb_func_start sub_8022A4C sub_8022A4C: @ 8022A4C push {r4,r5,lr} adds r3, r0, 0 movs r1, 0 ldr r5, =SpriteCallbackDummy adds r2, r3, 0 adds r2, 0x2E movs r4, 0 _08022A5A: lsls r0, r1, 1 adds r0, r2, r0 strh r4, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _08022A5A movs r0, 0 strh r0, [r3, 0x24] strh r0, [r3, 0x26] adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] str r5, [r3, 0x1C] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8022A4C thumb_func_start sub_8022A94 sub_8022A94: @ 8022A94 push {r4-r6,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x2E ldrh r0, [r4, 0x4] ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 24 ldrh r2, [r5, 0x26] adds r0, r2 strh r0, [r5, 0x26] movs r1, 0xE ldrsh r0, [r4, r1] movs r6, 0x80 lsls r6, 8 ands r0, r6 cmp r0, 0 beq _08022AFA ldrh r0, [r4, 0x6] ldrh r2, [r5, 0x2E] adds r0, r2 strh r0, [r5, 0x2E] ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 23 movs r2, 0xC ldrsh r1, [r4, r2] bl Sin strh r0, [r5, 0x24] movs r1, 0xE ldrsh r0, [r4, r1] ands r0, r6 cmp r0, 0 beq _08022AFA ldrh r0, [r4, 0x8] lsls r0, 16 asrs r0, 23 cmp r0, 0x7E ble _08022AFA movs r0, 0 strh r0, [r5, 0x24] ldrh r1, [r4, 0xE] ldr r0, =0x00007fff ands r0, r1 strh r0, [r4, 0xE] _08022AFA: ldrh r0, [r4] lsls r0, 16 asrs r0, 23 strh r0, [r5, 0x20] movs r2, 0x22 ldrsh r1, [r5, r2] movs r2, 0x26 ldrsh r0, [r5, r2] adds r1, r0 ldrh r2, [r4, 0xE] ldr r0, =0x00007fff ands r0, r2 cmp r1, r0 ble _08022B1A ldr r0, =sub_8022A4C str r0, [r5, 0x1C] _08022B1A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8022A94 thumb_func_start sub_8022B28 sub_8022B28: @ 8022B28 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 adds r7, r6, 0 adds r7, 0x2E movs r0, 0 mov r8, r0 movs r2, 0xA0 lsls r2, 2 strh r2, [r7, 0x2] movs r0, 0x20 strh r0, [r7, 0x4] movs r1, 0xA8 strh r1, [r7, 0xE] movs r0, 0x24 ldrsh r4, [r6, r0] lsls r4, 23 lsrs r4, 16 ldrh r0, [r6, 0x22] subs r1, r0 lsls r1, 23 asrs r1, 16 adds r2, 0x20 asrs r2, 1 movs r0, 0x7 bl sub_81515D4 adds r5, r0, 0 ldrh r0, [r6, 0x20] lsls r0, 7 strh r0, [r6, 0x2E] lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 movs r0, 0x7 adds r1, r4, 0 adds r2, r5, 0 bl sub_81515D4 strh r0, [r7, 0x6] movs r0, 0x7 adds r1, r5, 0 movs r2, 0x55 bl sub_8151550 adds r2, r0, 0 mov r1, r8 strh r1, [r7, 0x8] movs r1, 0xFE lsls r1, 6 lsls r2, 16 asrs r2, 16 movs r0, 0x7 bl sub_81515D4 strh r0, [r7, 0xA] movs r2, 0x24 ldrsh r0, [r6, r2] cmp r0, 0 bge _08022BA6 adds r0, 0x3 _08022BA6: asrs r0, 2 strh r0, [r7, 0xC] ldrh r0, [r7, 0xE] ldr r2, =0xffff8000 adds r1, r2, 0 orrs r0, r1 strh r0, [r7, 0xE] mov r0, r8 strh r0, [r6, 0x26] strh r0, [r6, 0x24] ldr r0, =sub_8022A94 str r0, [r6, 0x1C] adds r2, r6, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r2, 0x12 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8022B28 thumb_func_start sub_8022BEC sub_8022BEC: @ 8022BEC push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r2, 0 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r4, r1, 24 mov r8, r4 bl sub_8020C00 adds r6, r0, 0 cmp r5, 0x19 bls _08022C0A movs r5, 0 _08022C0A: cmp r4, 0 beq _08022C14 cmp r4, 0x1 beq _08022C40 b _08022C4A _08022C14: cmp r5, 0 beq _08022C28 ldr r0, =gUnknown_082F43CC lsls r1, r5, 2 adds r1, r0 ldr r2, [r1] adds r0, r6, 0 adds r1, r7, 0 bl _call_via_r2 _08022C28: ldrb r0, [r6, 0xE] cmp r0, 0x19 bls _08022C32 mov r0, r8 strb r0, [r6, 0xE] _08022C32: ldr r0, =gUnknown_082F43CC ldrb r1, [r6, 0xE] lsls r1, 2 b _08022C44 .pool _08022C40: ldr r0, =gUnknown_082F43CC lsls r1, r5, 2 _08022C44: adds r1, r0 ldr r0, [r1] str r0, [r6, 0x4] _08022C4A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8022BEC thumb_func_start sub_8022C58 sub_8022C58: @ 8022C58 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 ldrb r2, [r1] ldrb r3, [r1, 0x1] lsls r3, 8 orrs r2, r3 ldrb r3, [r1, 0x2] lsls r3, 16 orrs r2, r3 ldrb r3, [r1, 0x3] lsls r3, 24 adds r0, r2, 0 orrs r0, r3 ldrb r2, [r1, 0x9] strb r2, [r1] ldrb r4, [r1, 0x8] lsls r4, 8 ldrb r2, [r1, 0x7] orrs r4, r2 ldr r5, =gPaletteFade ldrb r3, [r5, 0x8] movs r2, 0x7F ands r2, r3 strb r2, [r5, 0x8] movs r5, 0x4 ldrsb r5, [r1, r5] ldrb r2, [r1, 0x5] ldrb r3, [r1, 0x6] str r4, [sp] adds r1, r5, 0 bl BeginNormalPaletteFade bl UpdatePaletteFade movs r0, 0x2 strb r0, [r6, 0xE] movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8022C58 thumb_func_start sub_8022CB0 sub_8022CB0: @ 8022CB0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0xC] cmp r0, 0x1 beq _08022CE4 cmp r0, 0x1 bgt _08022CC6 cmp r0, 0 beq _08022CD0 b _08022D06 _08022CC6: cmp r0, 0x2 beq _08022CEA cmp r0, 0x3 beq _08022CF6 b _08022D06 _08022CD0: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08022D0C ldrb r0, [r5] cmp r0, 0 bne _08022D06 movs r0, 0x3 b _08022D0A _08022CE4: bl sub_8010434 b _08022D06 _08022CEA: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08022D06 b _08022D0C _08022CF6: ldrb r0, [r4, 0xF] movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0 strb r0, [r4, 0xC] b _08022D0E _08022D06: ldrb r0, [r4, 0xC] adds r0, 0x1 _08022D0A: strb r0, [r4, 0xC] _08022D0C: movs r0, 0 _08022D0E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8022CB0 thumb_func_start sub_8022D14 sub_8022D14: @ 8022D14 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 adds r7, r0, 0 adds r5, r1, 0 ldrb r4, [r5, 0x3] lsls r4, 8 ldrb r0, [r5, 0x2] orrs r4, r0 ldrb r6, [r7, 0xC] cmp r6, 0x1 beq _08022DC0 cmp r6, 0x1 bgt _08022D38 cmp r6, 0 beq _08022D42 b _08022E08 _08022D38: cmp r6, 0x2 beq _08022DD8 cmp r6, 0x3 beq _08022DE8 b _08022E08 _08022D42: movs r0, 0 movs r1, 0 bl sub_81973C4 ldrb r1, [r5, 0x1] movs r0, 0x2 mov r8, r0 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 beq _08022D90 ldr r4, =gStringVar4 ldr r1, =gUnknown_082F32A4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders ldrb r3, [r7, 0xB] str r6, [sp] mov r0, r8 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 adds r2, r4, 0 bl AddTextPrinterParametrized b _08022DB2 .pool _08022D90: ldr r1, =gUnknown_082F32A4 ldrb r0, [r5] lsls r0, 2 adds r0, r1 ldr r2, [r0] ldrb r3, [r7, 0xB] str r4, [sp] mov r0, r8 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized _08022DB2: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram b _08022E08 .pool _08022DC0: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _08022E0E cmp r4, 0 bne _08022E08 ldrb r0, [r7, 0xC] adds r0, 0x1 strb r0, [r7, 0xC] b _08022E08 _08022DD8: ldr r0, =gMain ldrh r0, [r0, 0x2E] ands r4, r0 cmp r4, 0 bne _08022E08 b _08022E0E .pool _08022DE8: ldrb r1, [r5, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08022DFA movs r0, 0 movs r1, 0x1 bl sub_8197434 _08022DFA: ldrb r0, [r7, 0xE] movs r1, 0x1 movs r2, 0 bl sub_8022BEC ldrb r0, [r5, 0x4] b _08022E0C _08022E08: ldrb r0, [r7, 0xC] adds r0, 0x1 _08022E0C: strb r0, [r7, 0xC] _08022E0E: movs r0, 0 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8022D14 thumb_func_start sub_8022E1C sub_8022E1C: @ 8022E1C push {r4,lr} adds r4, r0, 0 bl sub_802104C cmp r0, 0 beq _08022E34 ldrb r0, [r4, 0xE] adds r2, r4, 0 adds r2, 0x36 movs r1, 0 bl sub_8022BEC _08022E34: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8022E1C thumb_func_start sub_8022E3C sub_8022E3C: @ 8022E3C push {r4,lr} adds r4, r0, 0 bl sub_802130C cmp r0, 0 beq _08022E54 ldrb r0, [r4, 0xE] adds r2, r4, 0 adds r2, 0x36 movs r1, 0 bl sub_8022BEC _08022E54: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8022E3C thumb_func_start sub_8022E5C sub_8022E5C: @ 8022E5C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xC] cmp r0, 0 beq _08022E6C cmp r0, 0x1 beq _08022E72 b _08022E9C _08022E6C: bl sub_8010434 b _08022E9C _08022E72: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08022EA2 ldr r0, =0x000001e5 bl PlayNewMapMusic movs r0, 0x7 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0x3 strh r0, [r4, 0x12] strb r1, [r4, 0xC] b _08022EA2 .pool _08022E9C: ldrb r0, [r4, 0xC] adds r0, 0x1 strb r0, [r4, 0xC] _08022EA2: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8022E5C thumb_func_start sub_8022EAC sub_8022EAC: @ 8022EAC push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 ldrb r0, [r4, 0xC] cmp r0, 0 beq _08022EC2 cmp r0, 0x1 beq _08022EE8 adds r0, 0x1 b _08022EF8 _08022EC2: adds r0, r4, 0 bl sub_8024578 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r1, 0 movs r2, 0x1 movs r3, 0 bl sub_8024644 movs r0, 0x7 strb r0, [r4, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _08022EFA _08022EE8: movs r0, 0x8 strb r0, [r4, 0xE] movs r0, 0x5 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0x2 _08022EF8: strb r0, [r4, 0xC] _08022EFA: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8022EAC thumb_func_start sub_8022F04 sub_8022F04: @ 8022F04 push {lr} movs r1, 0 str r1, [r0, 0x4] ldr r0, =sub_8020E1C bl SetMainCallback2 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_8022F04 thumb_func_start sub_8022F1C sub_8022F1C: @ 8022F1C push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r2, r1, 0 ldrb r0, [r5, 0xC] cmp r0, 0x5 bls _08022F2C b _08023060 _08022F2C: lsls r0, 2 ldr r1, =_08022F3C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08022F3C: .4byte _08022F54 .4byte _08022F74 .4byte _08022F7A .4byte _08022FAA .4byte _08022FBA .4byte _08023044 _08022F54: movs r0, 0x1 str r0, [sp] adds r0, r2, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl sub_8024644 movs r0, 0x9 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _08023066 _08022F74: bl sub_8010434 b _08023060 _08022F7A: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023066 adds r4, r5, 0 adds r4, 0x42 adds r0, r4, 0 movs r1, 0 movs r2, 0xC bl memset ldrb r0, [r5, 0x8] lsls r0, 5 adds r0, r5, r0 adds r0, 0xA4 ldrh r0, [r0] strh r0, [r4] movs r0, 0 adds r1, r4, 0 movs r2, 0x2 bl SendBlock b _08023060 _08022FAA: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023066 movs r0, 0 strh r0, [r5, 0x10] b _08023060 _08022FBA: bl GetBlockReceivedStatus ldr r2, =gUnknown_082F4448 ldrb r4, [r5, 0x9] subs r1, r4, 0x2 adds r1, r2 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _08023066 movs r3, 0 cmp r3, r4 bcs _0802301E ldr r7, =gBlockRecvBuffer movs r6, 0 ldr r4, =gUnknown_0858AB24 _08022FDC: lsls r0, r3, 5 adds r0, r5, r0 lsls r1, r3, 8 adds r1, r7 ldrh r1, [r1] adds r2, r0, 0 adds r2, 0xA4 strh r1, [r2] lsls r1, 16 lsrs r1, 16 cmp r1, 0xB0 bls _08022FF6 strh r6, [r2] _08022FF6: ldrh r1, [r2] lsls r1, 2 adds r1, r4 ldrh r0, [r5, 0x18] ldrb r1, [r1] adds r0, r1 strh r0, [r5, 0x18] ldrh r0, [r2] lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x2] ldr r0, [r5, 0x1C] adds r0, r1 str r0, [r5, 0x1C] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r5, 0x9] cmp r3, r0 bcc _08022FDC _0802301E: movs r0, 0 strh r0, [r5, 0x10] bl ResetBlockReceivedFlags movs r1, 0x18 ldrsh r0, [r5, r1] lsls r0, 8 movs r1, 0x80 lsls r1, 6 bl sub_81515FC str r0, [r5, 0x20] b _08023060 .pool _08023044: movs r0, 0 movs r1, 0x1 bl sub_8197434 movs r0, 0xA movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0x4 strh r0, [r5, 0x12] strb r1, [r5, 0xC] b _08023066 _08023060: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _08023066: movs r0, 0 add sp, 0x4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8022F1C thumb_func_start sub_8023070 sub_8023070: @ 8023070 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0xC] cmp r0, 0x6 bls _0802307C b _080231A8 _0802307C: lsls r0, 2 ldr r1, =_0802308C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802308C: .4byte _080230A8 .4byte _080230BA .4byte _080230E8 .4byte _08023120 .4byte _08023150 .4byte _08023172 .4byte _08023184 _080230A8: movs r0, 0x9C lsls r0, 1 adds r1, r4, r0 adds r0, r4, 0 bl sub_80214A8 bl sub_8010434 b _080231A8 _080230BA: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080231AE movs r2, 0x9C lsls r2, 1 adds r1, r4, r2 movs r0, 0 strb r0, [r1] ldr r3, =0x00000139 adds r1, r4, r3 strb r0, [r1] adds r2, 0x2 adds r1, r4, r2 strb r0, [r1] adds r3, 0x2 adds r1, r4, r3 strb r0, [r1] b _080231A8 .pool _080230E8: movs r0, 0x9C lsls r0, 1 adds r3, r4, r0 ldrb r0, [r3] lsls r0, 2 movs r2, 0xB8 lsls r2, 1 adds r1, r4, r2 adds r0, r1, r0 ldr r2, [r0] ldr r0, =sub_8021608 str r0, [r2, 0x1C] ldrb r0, [r3] lsls r0, 2 adds r1, r0 ldr r1, [r1] adds r1, 0x2C ldrb r2, [r1] movs r0, 0x7F ands r0, r2 strb r0, [r1] movs r0, 0x3D bl PlaySE b _080231A8 .pool _08023120: movs r3, 0x9C lsls r3, 1 adds r2, r4, r3 ldrb r0, [r2] lsls r0, 2 adds r3, 0x38 adds r1, r4, r3 adds r3, r1, r0 ldr r0, [r3] ldr r1, [r0, 0x1C] ldr r0, =sub_8021608 cmp r1, r0 beq _080231AE movs r0, 0 str r0, [r3] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] bl sub_8010434 b _080231A8 .pool _08023150: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080231AE movs r0, 0x9C lsls r0, 1 adds r1, r4, r0 ldrb r0, [r1] ldrb r2, [r4, 0x9] cmp r0, r2 bcs _0802316C movs r0, 0x2 b _080231AC _0802316C: movs r0, 0 strb r0, [r1] b _080231A8 _08023172: movs r3, 0x9C lsls r3, 1 adds r1, r4, r3 adds r0, r4, 0 bl sub_80216A8 bl sub_8010434 b _080231A8 _08023184: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080231AE movs r0, 0x2B bl PlaySE movs r0, 0xB movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0x5 strh r0, [r4, 0x12] strb r1, [r4, 0xC] b _080231AE _080231A8: ldrb r0, [r4, 0xC] adds r0, 0x1 _080231AC: strb r0, [r4, 0xC] _080231AE: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8023070 thumb_func_start sub_80231B8 sub_80231B8: @ 80231B8 push {r4-r7,lr} adds r4, r0, 0 ldrb r1, [r4, 0xC] cmp r1, 0x1 beq _0802321C cmp r1, 0x1 bgt _080231CC cmp r1, 0 beq _080231D6 b _080232DC _080231CC: cmp r1, 0x2 beq _0802329C cmp r1, 0x3 beq _080232BE b _080232DC _080231D6: ldrh r0, [r4, 0x2A] adds r0, 0x4 strh r0, [r4, 0x2A] lsls r0, 16 cmp r0, 0 bge _080231E4 b _080232E2 _080231E4: strh r1, [r4, 0x2A] ldr r0, =0x00000139 adds r3, r4, r0 movs r0, 0x4 strb r0, [r3] movs r2, 0x9C lsls r2, 1 adds r1, r4, r2 movs r0, 0 strb r0, [r1] ldr r2, =gUnknown_082F326C ldrb r1, [r3] lsls r0, r1, 3 subs r0, r1 adds r0, r2 ldrb r0, [r0] movs r2, 0x9D lsls r2, 1 adds r1, r4, r2 strb r0, [r1] movs r0, 0xD6 bl PlaySE b _080232DC .pool _0802321C: ldr r7, =gUnknown_082F326C movs r0, 0x9C lsls r0, 1 adds r6, r4, r0 ldr r1, =0x00000139 adds r5, r4, r1 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 ldrb r2, [r6] adds r0, r2 adds r0, r7 movs r1, 0 ldrsb r1, [r0, r1] strh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x12 bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1E bl SetGpuReg ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] movs r1, 0x9D lsls r1, 1 adds r2, r4, r1 lsls r0, 24 lsrs r0, 24 ldrb r1, [r2] cmp r0, r1 bcc _080232E2 ldrb r0, [r5] cmp r0, 0 beq _080232DC subs r0, 0x1 strb r0, [r5] ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 adds r0, r7 ldrb r0, [r0] strb r0, [r2] movs r0, 0 strb r0, [r6] b _080232E2 .pool _0802329C: movs r0, 0 strh r0, [r4, 0x2C] movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg bl sub_8010434 b _080232DC _080232BE: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080232E2 movs r0, 0xC movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0x6 strh r0, [r4, 0x12] strb r1, [r4, 0xC] b _080232E2 _080232DC: ldrb r0, [r4, 0xC] adds r0, 0x1 strb r0, [r4, 0xC] _080232E2: movs r0, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80231B8 thumb_func_start sub_80232EC sub_80232EC: @ 80232EC push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldrb r0, [r4, 0xC] cmp r0, 0x1 beq _0802330C cmp r0, 0x1 bgt _08023302 cmp r0, 0 beq _08023332 b _0802338C _08023302: cmp r0, 0x2 beq _0802332A cmp r0, 0x3 beq _08023338 b _0802338C _0802330C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023392 movs r1, 0x80 lsls r1, 5 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x78 movs r3, 0x50 bl sub_802EB24 b _0802338C _0802332A: bl sub_802EB84 cmp r0, 0 bne _08023392 _08023332: bl sub_8010434 b _0802338C _08023338: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023392 movs r0, 0x9C lsls r0, 1 adds r1, r4, r0 movs r0, 0 strb r0, [r1] ldr r2, =0x00000139 adds r1, r4, r2 strb r0, [r1] adds r2, 0x1 adds r1, r4, r2 strb r0, [r1] adds r2, 0x1 adds r1, r4, r2 strb r0, [r1] strh r0, [r4, 0x10] ldrb r0, [r4, 0x8] cmp r0, 0 bne _08023378 movs r0, 0xD movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _08023382 .pool _08023378: movs r0, 0xE movs r1, 0x1 movs r2, 0 bl sub_8022BEC _08023382: movs r1, 0 movs r0, 0x7 strh r0, [r4, 0x12] strb r1, [r4, 0xC] b _08023392 _0802338C: ldrb r0, [r4, 0xC] adds r0, 0x1 strb r0, [r4, 0xC] _08023392: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80232EC thumb_func_start sub_802339C sub_802339C: @ 802339C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r4, r0, 0 movs r0, 0 mov r8, r0 movs r2, 0 adds r7, r2, 0 ldrb r1, [r4, 0x9] cmp r7, r1 bcs _080234AA movs r2, 0x5E adds r2, r4 mov r9, r2 ldr r3, =gUnknown_082F325C mov r10, r3 _080233C0: lsls r0, r7, 4 ldr r1, =gUnknown_03003090 adds r2, r0, r1 ldrh r1, [r2] movs r0, 0xFF lsls r0, 8 ands r0, r1 movs r3, 0xBC lsls r3, 6 cmp r0, r3 bne _0802349E ldrh r0, [r2, 0x2] cmp r0, 0x2 bne _0802349E ldrb r1, [r2, 0x4] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08023496 mov r0, r9 ldrb r2, [r0] lsrs r1, r2, 3 mov r3, r10 adds r0, r7, r3 ldrb r0, [r0] orrs r1, r0 lsls r1, 3 movs r0, 0x7 ands r0, r2 orrs r0, r1 mov r1, r9 strb r0, [r1] lsls r2, r7, 5 adds r3, r4, r2 mov r12, r3 mov r1, r12 adds r1, 0xB5 movs r0, 0x1 strb r0, [r1] subs r1, 0x7 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 subs r1, 0x8 ldrh r0, [r4, 0x28] ldrh r1, [r1] subs r0, r1 lsls r0, 16 lsrs r3, r0, 16 mov r5, r12 adds r5, 0xAA ldrh r1, [r5] subs r0, r1, 0x1 adds r6, r2, 0 cmp r3, r0 blt _08023468 adds r0, r1, 0x1 cmp r3, r0 bgt _08023468 mov r1, r12 adds r1, 0xA8 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] strh r3, [r5] mov r0, r12 adds r0, 0xAC ldrh r1, [r1] ldrh r2, [r0] cmp r1, r2 bls _08023476 strh r1, [r0] b _08023476 .pool _08023468: adds r0, r4, r6 adds r2, r0, 0 adds r2, 0xA8 movs r1, 0 strh r1, [r2] adds r0, 0xAA strh r3, [r0] _08023476: adds r1, r4, r6 ldrh r0, [r4, 0x28] adds r3, r1, 0 adds r3, 0xA6 movs r2, 0 strh r0, [r3] adds r1, 0xB4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bls _0802349E strb r2, [r1] b _0802349E _08023496: lsls r0, r7, 5 adds r0, r4, r0 adds r0, 0xB5 strb r1, [r0] _0802349E: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r3, [r4, 0x9] cmp r7, r3 bcc _080233C0 _080234AA: mov r0, r8 cmp r0, 0x1 bls _080234E0 movs r7, 0 ldrb r1, [r4, 0x9] cmp r7, r1 bcs _080234E0 movs r3, 0x2 _080234BA: lsls r0, r7, 5 adds r1, r4, r0 adds r2, r1, 0 adds r2, 0xB5 ldrb r0, [r2] cmp r0, 0 beq _080234D4 orrs r0, r3 strb r0, [r2] adds r1, 0xB0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080234D4: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrb r2, [r4, 0x9] cmp r7, r2 bcc _080234BA _080234E0: mov r3, r8 cmp r3, 0 beq _08023548 ldrh r0, [r4, 0x2E] add r0, r8 strh r0, [r4, 0x2E] ldr r1, =gUnknown_082F3264 mov r0, r8 subs r0, 0x1 adds r0, r1 ldrb r0, [r0] add r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrh r0, [r4, 0x34] add r0, r8 strh r0, [r4, 0x34] ldrh r0, [r4, 0x1A] add r0, r8 strh r0, [r4, 0x1A] movs r1, 0x18 ldrsh r0, [r4, r1] movs r3, 0x1A ldrsh r2, [r4, r3] subs r0, r2 cmp r0, 0 ble _08023534 lsls r2, 8 ldr r1, [r4, 0x20] adds r0, r2, 0 bl sub_81515FC adds r2, r0, 0 asrs r2, 8 adds r0, r4, 0 adds r0, 0x24 strb r2, [r0] b _08023548 .pool _08023534: adds r1, r4, 0 adds r1, 0x24 movs r0, 0x20 strb r0, [r1] adds r2, r4, 0 adds r2, 0x5E ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] _08023548: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802339C thumb_func_start sub_8023558 sub_8023558: @ 8023558 push {r4-r6,lr} adds r3, r0, 0 movs r6, 0 movs r1, 0 adds r4, r1, 0 ldrb r0, [r3, 0x9] cmp r4, r0 bcs _080235B0 adds r5, r3, 0 adds r5, 0x64 _0802356C: lsls r0, r4, 5 adds r1, r3, r0 adds r0, r1, 0 adds r0, 0xB5 ldrb r2, [r0] cmp r2, 0 beq _080235A4 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r1, 0 adds r0, 0xB4 ldrb r0, [r0] adds r1, r0, 0x1 movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08023594 movs r0, 0x4 orrs r1, r0 _08023594: lsls r0, r4, 1 adds r0, r4 lsls r1, r0 lsls r0, r1, 16 lsrs r1, r0, 16 ldrh r0, [r5] orrs r1, r0 strh r1, [r5] _080235A4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r1, [r3, 0x9] cmp r4, r1 bcc _0802356C _080235B0: adds r0, r3, 0 adds r0, 0x24 ldrb r1, [r0] adds r0, 0x3C strh r1, [r0] cmp r6, 0 bne _080235D4 ldr r2, =0x0000013b adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0 beq _080236A0 movs r4, 0x9C lsls r4, 1 adds r1, r3, r4 b _08023612 .pool _080235D4: ldr r5, =0x0000013b adds r2, r3, r5 ldrb r0, [r2] cmp r0, 0 beq _0802361A ldr r0, =0x00000139 adds r1, r3, r0 ldrb r2, [r1] cmp r6, r2 beq _0802360C subs r0, r6, 0x1 strb r0, [r1] ldr r1, =gUnknown_082F3290 lsls r0, 2 adds r0, r1 ldrb r0, [r0] movs r4, 0x9D lsls r4, 1 adds r1, r3, r4 strb r0, [r1] b _08023640 .pool _0802360C: movs r5, 0x9C lsls r5, 1 adds r1, r3, r5 _08023612: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08023640 _0802361A: movs r0, 0x9C lsls r0, 1 adds r1, r3, r0 movs r0, 0 strb r0, [r1] subs r0, r6, 0x1 ldr r4, =0x00000139 adds r1, r3, r4 strb r0, [r1] ldr r1, =gUnknown_082F3290 lsls r0, 2 adds r0, r1 ldrb r0, [r0] movs r5, 0x9D lsls r5, 1 adds r1, r3, r5 strb r0, [r1] movs r0, 0x1 strb r0, [r2] _08023640: ldr r0, =0x0000013b adds r4, r3, r0 ldrb r0, [r4] cmp r0, 0 beq _080236A0 movs r2, 0x9C lsls r2, 1 adds r1, r3, r2 movs r5, 0x9D lsls r5, 1 adds r2, r3, r5 ldrb r0, [r1] ldrb r5, [r2] cmp r0, r5 bcc _0802367C movs r0, 0 strb r0, [r1] ldr r5, =0x00000139 adds r1, r3, r5 strb r0, [r1] strb r0, [r2] strb r0, [r4] movs r1, 0 b _08023690 .pool _0802367C: ldr r2, =gUnknown_082F3290 ldrb r1, [r1] ldr r4, =0x00000139 adds r0, r3, r4 ldrb r0, [r0] lsls r0, 2 adds r0, 0x1 adds r1, r0 adds r1, r2 ldrb r1, [r1] _08023690: adds r0, r3, 0 adds r0, 0x5F strb r1, [r0] b _080236A8 .pool _080236A0: adds r1, r3, 0 adds r1, 0x5F movs r0, 0 strb r0, [r1] _080236A8: ldrh r1, [r3, 0x26] adds r0, r3, 0 adds r0, 0x62 strh r1, [r0] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8023558 thumb_func_start sub_80236B8 sub_80236B8: @ 80236B8 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 ldr r3, =gMain ldrh r1, [r3, 0x2E] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080236DA adds r2, r5, 0 adds r2, 0x5E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080236DA: ldrh r1, [r3, 0x2C] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080236FA ldrb r0, [r5, 0x8] lsls r0, 5 adds r0, r5, r0 adds r1, r0, 0 adds r1, 0xB2 ldrh r0, [r1] ldrh r2, [r5, 0x28] cmp r0, r2 bcs _080236FA adds r0, 0x1 strh r0, [r1] _080236FA: ldrb r0, [r5, 0x8] adds r7, r5, 0 adds r7, 0x5E cmp r0, 0 beq _08023710 ldrb r1, [r7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _08023710 b _0802384C _08023710: adds r4, r5, 0 adds r4, 0x5C movs r0, 0x2 strh r0, [r4] ldrh r0, [r5, 0x28] movs r1, 0x1E bl __umodsi3 lsls r0, 16 mov r8, r4 adds r6, r5, 0 adds r6, 0x25 cmp r0, 0 bne _08023768 movs r0, 0x2E ldrsh r2, [r5, r0] ldr r1, =gUnknown_082F4444 ldrb r0, [r5, 0x9] subs r0, 0x2 adds r0, r1 ldrb r0, [r0] cmp r2, r0 ble _08023754 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] ldrb r0, [r6] movs r1, 0x10 orrs r0, r1 b _0802375C .pool _08023754: ldrb r1, [r6] movs r0, 0x11 negs r0, r0 ands r0, r1 _0802375C: strb r0, [r6] movs r0, 0 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] _08023768: ldrh r0, [r5, 0x28] movs r1, 0xF bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _080237DE movs r0, 0x34 ldrsh r2, [r5, r0] ldr r3, =gUnknown_082F4434 ldrb r0, [r5, 0x9] subs r0, 0x2 lsls r1, r0, 2 adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bge _08023798 ldrb r1, [r6] movs r0, 0x1F ands r0, r1 strb r0, [r6] b _080237D8 .pool _08023798: adds r0, r3, 0x1 adds r0, r1, r0 ldrb r0, [r0] cmp r2, r0 bge _080237AC ldrb r0, [r6] movs r1, 0x1F ands r1, r0 movs r0, 0x20 b _080237D4 _080237AC: adds r0, r3, 0x2 adds r0, r1, r0 ldrb r0, [r0] cmp r2, r0 bge _080237BC movs r0, 0x2 strh r0, [r5, 0x34] b _080237D8 _080237BC: adds r0, r3, 0x3 adds r0, r1, r0 ldrb r0, [r0] cmp r2, r0 bge _080237CC movs r0, 0x3 strh r0, [r5, 0x34] b _080237D8 _080237CC: ldrb r0, [r6] movs r1, 0x1F ands r1, r0 movs r0, 0x80 _080237D4: orrs r1, r0 strb r1, [r6] _080237D8: movs r0, 0 strh r0, [r5, 0x34] b _0802380A _080237DE: ldrh r0, [r5, 0x10] adds r0, 0x1 strh r0, [r5, 0x10] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3C bls _0802380A cmp r0, 0x46 bls _080237FA bl sub_8011AC8 movs r0, 0 strh r0, [r5, 0x10] b _0802380A _080237FA: ldrb r0, [r7] movs r4, 0xF8 ands r4, r0 cmp r4, 0 bne _0802380A bl sub_8011AC8 strh r4, [r5, 0x10] _0802380A: ldrh r1, [r5, 0x28] ldr r0, =0x00008c9f cmp r1, r0 bls _0802381A ldrb r0, [r7] movs r1, 0x1 orrs r0, r1 strb r0, [r7] _0802381A: ldrb r1, [r6] lsls r1, 27 lsrs r1, 31 lsls r1, 1 ldrb r2, [r7] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r7] ldrb r0, [r6] lsrs r0, 5 adds r2, r5, 0 adds r2, 0x66 strh r0, [r2] adds r4, r5, 0 adds r4, 0x42 adds r0, r4, 0 mov r1, r8 movs r2, 0xC bl memcpy adds r0, r4, 0 bl sub_800FE50 _0802384C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80236B8 thumb_func_start sub_802385C sub_802385C: @ 802385C push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 ldr r3, =gUnknown_03003090 ldrb r0, [r5, 0x9] cmp r4, r0 bcs _08023880 movs r1, 0 _0802386C: lsls r0, r4, 5 adds r0, r5, r0 adds r0, 0xB5 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5, 0x9] cmp r4, r0 bcc _0802386C _08023880: adds r2, r3, 0 ldrh r0, [r2] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _08023898 ldrh r0, [r2, 0x2] cmp r0, 0x2 beq _080238AC _08023898: adds r2, r5, 0 adds r2, 0x25 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] b _080238EA .pool _080238AC: adds r4, r5, 0 adds r4, 0x4E adds r0, r4, 0 adds r1, r3, 0 movs r2, 0xE bl memcpy ldrh r0, [r4, 0x6] strh r0, [r5, 0x2A] movs r0, 0x5 ldrsb r0, [r4, r0] strh r0, [r5, 0x2C] ldrh r0, [r4, 0x8] strh r0, [r5, 0x28] movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 adds r0, r5, 0 bl sub_80216E0 ldrb r1, [r4, 0x4] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080238EA adds r0, r5, 0 adds r0, 0x25 ldrb r1, [r0] movs r2, 0x8 orrs r1, r2 strb r1, [r0] _080238EA: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802385C thumb_func_start sub_80238F0 sub_80238F0: @ 80238F0 push {r4,lr} adds r4, r0, 0 adds r0, 0x5C movs r1, 0 movs r2, 0xC bl memset adds r0, r4, 0 adds r0, 0x4E movs r1, 0 movs r2, 0xE bl memset adds r0, r4, 0 bl sub_802385C ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x12 bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1E bl SetGpuReg adds r0, r4, 0 adds r0, 0x25 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08023978 ldrh r1, [r4, 0x28] ldr r0, =0x00008c9f cmp r1, r0 bls _08023964 adds r0, 0x1 strh r0, [r4, 0x28] movs r0, 0x10 movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _0802396E .pool _08023964: movs r0, 0xF movs r1, 0x1 movs r2, 0 bl sub_8022BEC _0802396E: movs r1, 0 movs r0, 0 strh r0, [r4, 0x10] strb r1, [r4, 0xC] b _08023992 _08023978: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] adds r0, r4, 0 bl sub_802339C adds r0, r4, 0 bl sub_8023558 adds r0, r4, 0 bl sub_80236B8 movs r0, 0 _08023992: pop {r4} pop {r1} bx r1 thumb_func_end sub_80238F0 thumb_func_start sub_8023998 sub_8023998: @ 8023998 push {r4,lr} adds r4, r0, 0 adds r0, 0x5C movs r1, 0 movs r2, 0xC bl memset adds r0, r4, 0 adds r0, 0x4E movs r1, 0 movs r2, 0xE bl memset adds r0, r4, 0 bl sub_802385C ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x12 bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1E bl SetGpuReg adds r0, r4, 0 adds r0, 0x25 ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _08023A20 ldrh r1, [r4, 0x28] ldr r0, =0x00008c9f cmp r1, r0 bls _08023A0C adds r0, 0x1 strh r0, [r4, 0x28] movs r0, 0x10 movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _08023A16 .pool _08023A0C: movs r0, 0xF movs r1, 0x1 movs r2, 0 bl sub_8022BEC _08023A16: movs r1, 0 movs r0, 0 strh r0, [r4, 0x10] strb r1, [r4, 0xC] b _08023A28 _08023A20: adds r0, r4, 0 bl sub_80236B8 movs r0, 0 _08023A28: pop {r4} pop {r1} bx r1 thumb_func_end sub_8023998 thumb_func_start sub_8023A30 sub_8023A30: @ 8023A30 push {r4-r7,lr} adds r4, r0, 0 ldrb r0, [r4, 0xC] cmp r0, 0x5 bls _08023A3C b _08023BB2 _08023A3C: lsls r0, 2 ldr r1, =_08023A4C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08023A4C: .4byte _08023A64 .4byte _08023A8C .4byte _08023ADC .4byte _08023B5C .4byte _08023B7A .4byte _08023B94 _08023A64: movs r0, 0x8 strh r0, [r4, 0x12] movs r0, 0xD6 bl PlaySE movs r0, 0x1 negs r0, r0 ldr r2, =0x000003ff movs r1, 0x8 bl BlendPalettes movs r0, 0x9C lsls r0, 1 adds r1, r4, r0 movs r0, 0x2 strb r0, [r1] b _08023BB2 .pool _08023A8C: movs r1, 0x9C lsls r1, 1 adds r5, r4, r1 ldrb r0, [r5] subs r0, 0x1 strb r0, [r5] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _08023AA2 b _08023BB8 _08023AA2: movs r0, 0x1 negs r0, r0 ldr r2, =0x000003ff movs r1, 0 bl BlendPalettes ldr r2, =0x00000139 adds r1, r4, r2 movs r0, 0x4 strb r0, [r1] movs r0, 0 strb r0, [r5] ldr r2, =gUnknown_082F326C ldrb r1, [r1] lsls r0, r1, 3 subs r0, r1 adds r0, r2 ldrb r0, [r0] movs r2, 0x9D lsls r2, 1 adds r1, r4, r2 strb r0, [r1] b _08023BB2 .pool _08023ADC: ldr r7, =gUnknown_082F326C movs r0, 0x9C lsls r0, 1 adds r6, r4, r0 ldr r1, =0x00000139 adds r5, r4, r1 ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 ldrb r2, [r6] adds r0, r2 adds r0, r7 movs r1, 0 ldrsb r1, [r0, r1] strh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x12 bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldrh r1, [r4, 0x2C] negs r1, r1 lsls r1, 16 lsrs r1, 16 movs r0, 0x1E bl SetGpuReg ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] movs r1, 0x9D lsls r1, 1 adds r2, r4, r1 lsls r0, 24 lsrs r0, 24 ldrb r1, [r2] cmp r0, r1 bcc _08023BB8 ldrb r0, [r5] cmp r0, 0 beq _08023BB2 subs r0, 0x1 strb r0, [r5] ldrb r1, [r5] lsls r0, r1, 3 subs r0, r1 adds r0, r7 ldrb r0, [r0] strb r0, [r2] movs r0, 0 strb r0, [r6] b _08023BB8 .pool _08023B5C: movs r0, 0 strh r0, [r4, 0x2C] movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg b _08023BB2 _08023B7A: movs r2, 0x9C lsls r2, 1 adds r1, r4, r2 adds r0, r4, 0 bl sub_80218D4 cmp r0, 0 beq _08023BB8 bl sub_8010434 movs r0, 0 strh r0, [r4, 0x10] b _08023BB2 _08023B94: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023BB8 movs r0, 0x11 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0 strh r0, [r4, 0x10] strb r1, [r4, 0xC] b _08023BBA _08023BB2: ldrb r0, [r4, 0xC] adds r0, 0x1 strb r0, [r4, 0xC] _08023BB8: movs r0, 0 _08023BBA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8023A30 thumb_func_start sub_8023BC0 sub_8023BC0: @ 8023BC0 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldrb r0, [r5, 0xC] cmp r0, 0x1 beq _08023C04 cmp r0, 0x1 bgt _08023BD8 cmp r0, 0 beq _08023BE2 b _08023C9C _08023BD8: cmp r0, 0x2 beq _08023C2A cmp r0, 0x3 beq _08023C5C b _08023C9C _08023BE2: movs r0, 0x9 strh r0, [r5, 0x12] movs r0, 0x20 bl PlaySE movs r0, 0x1 negs r0, r0 movs r1, 0x8 movs r2, 0x1F bl BlendPalettes movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 movs r0, 0x4 strb r0, [r1] b _08023C9C _08023C04: movs r0, 0x9C lsls r0, 1 adds r4, r5, r0 ldrb r0, [r4] subs r0, 0x1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08023CA2 movs r0, 0x1 negs r0, r0 movs r1, 0 movs r2, 0x1F bl BlendPalettes movs r0, 0 strb r0, [r4] b _08023C9C _08023C2A: movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 adds r0, r5, 0 bl sub_80218D4 cmp r0, 0 beq _08023CA2 bl sub_8010434 movs r0, 0 strh r0, [r5, 0x10] movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg b _08023C9C _08023C5C: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08023CA2 ldr r0, =gStringVar1 ldr r1, [r5, 0x1C] movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN movs r4, 0 str r4, [sp] adds r0, r6, 0 movs r1, 0x7 movs r2, 0x1 movs r3, 0 bl sub_8024644 movs r0, 0x13 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0 strh r4, [r5, 0x10] b _08023CA0 .pool _08023C9C: ldrb r0, [r5, 0xC] adds r0, 0x1 _08023CA0: strb r0, [r5, 0xC] _08023CA2: movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8023BC0 thumb_func_start sub_8023CAC sub_8023CAC: @ 8023CAC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r7, r0, 0 ldrb r0, [r7, 0xC] cmp r0, 0x7 bls _08023CC2 b _0802402E _08023CC2: lsls r0, 2 ldr r1, =_08023CD0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08023CD0: .4byte _08023CF0 .4byte _08023D2A .4byte _08023D38 .4byte _08023DA0 .4byte _08023F20 .4byte _08023FD0 .4byte _08023FDC .4byte _08024010 _08023CF0: adds r4, r7, 0 adds r4, 0x42 adds r0, r4, 0 movs r1, 0 movs r2, 0x4 bl memset ldrb r0, [r7, 0x8] lsls r0, 5 adds r0, r7, r0 adds r2, r0, 0 adds r2, 0xB2 ldrh r1, [r7, 0x28] ldrh r0, [r2] cmp r0, r1 bls _08023D12 strh r1, [r2] _08023D12: ldrb r0, [r7, 0x8] lsls r0, 5 adds r0, r7, r0 adds r0, 0xB2 ldrh r0, [r0] strh r0, [r4] movs r0, 0 adds r1, r4, 0 movs r2, 0x2 bl SendBlock b _0802402E _08023D2A: bl sub_800A520 lsls r0, 24 cmp r0, 0 bne _08023D36 b _08024034 _08023D36: b _08024004 _08023D38: bl GetBlockReceivedStatus ldr r2, =gUnknown_082F4448 ldrb r3, [r7, 0x9] subs r1, r3, 0x2 adds r1, r2 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 beq _08023D50 b _08024034 _08023D50: movs r0, 0 mov r8, r0 adds r4, r7, 0 adds r4, 0x42 cmp r8, r3 bcs _08023D7E ldr r2, =gBlockRecvBuffer _08023D5E: mov r3, r8 lsls r1, r3, 5 adds r1, r7, r1 lsls r0, r3, 8 adds r0, r2 ldrh r0, [r0] adds r1, 0xB2 strh r0, [r1] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r6, [r7, 0x9] cmp r8, r6 bcc _08023D5E _08023D7E: movs r0, 0 strh r0, [r7, 0x10] strh r0, [r4] bl ResetBlockReceivedFlags ldrb r0, [r7, 0x8] cmp r0, 0 bne _08023D9C movs r0, 0x3 b _08024032 .pool _08023D9C: movs r0, 0x6 b _08024032 _08023DA0: adds r0, r7, 0 adds r0, 0x68 movs r1, 0 movs r2, 0x30 bl memset ldrh r1, [r7, 0x28] adds r0, r7, 0 adds r0, 0x6C strh r1, [r0] movs r0, 0x18 ldrsh r4, [r7, r0] ldrh r0, [r7, 0x28] movs r1, 0x3C bl __udivsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl __divsi3 adds r1, r7, 0 adds r1, 0x6E strh r0, [r1] movs r1, 0x30 ldrsh r0, [r7, r1] lsls r0, 8 movs r4, 0xC8 lsls r4, 6 adds r1, r4, 0 bl sub_8151574 adds r2, r0, 0 movs r3, 0x32 ldrsh r1, [r7, r3] lsls r1, 8 bl sub_81515FC adds r2, r0, r4 asrs r2, 8 movs r1, 0x7F adds r0, r2, 0 ands r0, r1 adds r1, r7, 0 adds r1, 0x70 strh r0, [r1] lsls r2, 8 movs r1, 0xC8 lsls r1, 7 adds r0, r2, 0 bl sub_81515FC adds r2, r0, 0 ldrb r1, [r7, 0x9] ldr r0, [r7, 0x1C] muls r0, r1 lsls r4, r0, 8 adds r0, r4, 0 adds r1, r2, 0 bl sub_8151574 adds r4, r0, 0 asrs r0, r4, 8 str r0, [r7, 0x68] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 adds r1, r7, 0 adds r1, 0x8F strb r0, [r1] movs r6, 0 mov r8, r6 mov r9, r1 ldrb r0, [r7, 0x9] cmp r8, r0 bcc _08023E44 b _0802402E _08023E44: adds r0, r7, 0 adds r0, 0x88 add r0, r8 mov r1, r8 strb r1, [r0] adds r0, r7, 0 adds r0, 0x90 add r0, r8 strb r1, [r0] mov r3, r8 lsls r2, r3, 1 adds r1, r7, 0 adds r1, 0x74 adds r1, r2 lsls r0, r3, 5 adds r3, r7, r0 adds r5, r3, 0 adds r5, 0xAE ldrh r0, [r5] strh r0, [r1] adds r1, r7, 0 adds r1, 0x72 ldrh r6, [r1] adds r0, r6 strh r0, [r1] mov r1, r9 ldrb r0, [r1] adds r6, r2, 0 cmp r0, 0x1 beq _08023EAE cmp r0, 0x1 bgt _08023E8A cmp r0, 0 beq _08023E90 b _08023F04 _08023E8A: cmp r0, 0x2 beq _08023ECC b _08023F04 _08023E90: ldrh r0, [r5] cmp r0, 0 beq _08023ED2 adds r0, r3, 0 adds r0, 0xAC ldrh r2, [r0] lsls r2, 8 adds r0, r2, 0 movs r1, 0xC8 lsls r1, 7 bl sub_8151574 adds r2, r0, 0 ldrh r4, [r5] b _08023EFA _08023EAE: ldrh r0, [r5] cmp r0, 0 beq _08023ED2 adds r0, r3, 0 adds r0, 0xB0 ldrh r2, [r0] lsls r2, 8 adds r0, r2, 0 movs r1, 0xC8 lsls r1, 7 bl sub_8151574 adds r2, r0, 0 ldrh r4, [r5] b _08023EFA _08023ECC: ldrh r0, [r5] cmp r0, 0 bne _08023ED6 _08023ED2: movs r4, 0 b _08023F04 _08023ED6: adds r1, r3, 0 adds r1, 0xB2 ldrh r0, [r1] ldrh r2, [r7, 0x28] cmp r0, r2 bcc _08023EE8 movs r4, 0xC8 lsls r4, 7 b _08023F04 _08023EE8: ldrh r2, [r1] lsls r2, 8 adds r0, r2, 0 movs r1, 0xC8 lsls r1, 7 bl sub_8151574 adds r2, r0, 0 ldrh r4, [r7, 0x28] _08023EFA: lsls r4, 8 adds r1, r4, 0 bl sub_81515FC adds r4, r0, 0 _08023F04: asrs r4, 4 adds r0, r7, 0 adds r0, 0x7E adds r0, r6 strh r4, [r0] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r3, [r7, 0x9] cmp r8, r3 bcc _08023E44 b _0802402E _08023F20: movs r6, 0 mov r8, r6 ldrb r0, [r7, 0x9] subs r0, 0x1 adds r1, r7, 0 adds r1, 0x68 str r1, [sp, 0xC] cmp r8, r0 bge _08023FC4 _08023F32: ldrb r0, [r7, 0x9] subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 mov r2, r8 adds r2, 0x1 str r2, [sp, 0x8] cmp r4, r8 bls _08023FB4 adds r3, r7, 0 adds r3, 0x74 str r3, [sp] adds r6, r7, 0 adds r6, 0x88 str r6, [sp, 0x4] movs r0, 0x90 adds r0, r7 mov r10, r0 movs r1, 0x7E adds r1, r7 mov r9, r1 _08023F5C: subs r2, r4, 0x1 mov r12, r2 lsls r6, r2, 1 ldr r0, [sp] adds r3, r0, r6 lsls r5, r4, 1 adds r1, r0, r5 ldrh r2, [r3] ldrh r0, [r1] cmp r2, r0 bcs _08023F86 ldrh r0, [r1] strh r2, [r1] strh r0, [r3] ldr r1, [sp, 0x4] adds r2, r1, r4 ldrb r3, [r2] add r1, r12 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] _08023F86: mov r2, r9 adds r3, r2, r6 adds r1, r2, r5 ldrh r2, [r3] ldrh r6, [r1] cmp r2, r6 bcs _08023FAA ldrh r0, [r1] strh r2, [r1] strh r0, [r3] mov r0, r10 adds r2, r0, r4 ldrb r3, [r2] mov r1, r10 add r1, r12 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] _08023FAA: mov r1, r12 lsls r0, r1, 24 lsrs r4, r0, 24 cmp r4, r8 bhi _08023F5C _08023FB4: ldr r2, [sp, 0x8] lsls r0, r2, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r7, 0x9] subs r0, 0x1 cmp r8, r0 blt _08023F32 _08023FC4: movs r0, 0 ldr r1, [sp, 0xC] movs r2, 0x30 bl SendBlock b _0802402E _08023FD0: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _08024034 b _08024004 _08023FDC: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08024034 adds r4, r7, 0 adds r4, 0x68 adds r0, r4, 0 movs r1, 0 movs r2, 0x30 bl memset ldr r1, =gBlockRecvBuffer adds r0, r4, 0 movs r2, 0x30 bl memcpy bl ResetBlockReceivedFlags _08024004: movs r0, 0 strh r0, [r7, 0x10] b _0802402E .pool _08024010: bl sub_8020E58 movs r0, 0x12 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0 movs r1, 0xB strh r1, [r7, 0x12] strb r0, [r7, 0xC] adds r1, r7, 0 adds r1, 0x24 strb r0, [r1] b _08024034 _0802402E: ldrb r0, [r7, 0xC] adds r0, 0x1 _08024032: strb r0, [r7, 0xC] _08024034: movs r0, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8023CAC thumb_func_start sub_8024048 sub_8024048: @ 8024048 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldrb r0, [r5, 0xC] cmp r0, 0x4 bhi _08024124 lsls r0, 2 ldr r1, =_08024064 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08024064: .4byte _08024078 .4byte _0802408A .4byte _0802409C .4byte _080240CC .4byte _080240DC _08024078: movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 adds r0, r5, 0 bl sub_8022070 cmp r0, 0 bne _08024124 b _0802412A _0802408A: movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 movs r0, 0x1E strb r0, [r1] b _08024124 _0802409C: movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 ldrb r0, [r1] cmp r0, 0 beq _080240AE subs r0, 0x1 strb r0, [r1] b _0802412A _080240AE: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802412A movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_802222C b _08024124 .pool _080240CC: ldrh r0, [r5, 0x12] cmp r0, 0xC bhi _08024124 adds r0, 0x1 movs r1, 0 strh r0, [r5, 0x12] strb r1, [r5, 0xC] b _0802412A _080240DC: ldr r0, =gStringVar1 ldr r1, [r5, 0x1C] movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, =gStringVar2 bl sub_80247BC adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN movs r4, 0 str r4, [sp] adds r0, r6, 0 movs r1, 0x2 movs r2, 0x3 movs r3, 0 bl sub_8024644 movs r0, 0x13 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC strb r4, [r5, 0xC] b _0802412A .pool _08024124: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _0802412A: movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8024048 thumb_func_start sub_8024134 sub_8024134: @ 8024134 push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 adds r4, r1, 0 ldrb r0, [r5, 0xC] cmp r0, 0x4 bhi _08024218 lsls r0, 2 ldr r1, =_08024150 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08024150: .4byte _08024164 .4byte _080241A0 .4byte _080241A6 .4byte _080241F0 .4byte _08024204 _08024164: ldrh r1, [r5, 0x28] ldr r0, =0x00008c9f cmp r1, r0 bls _08024176 movs r1, 0x9C lsls r1, 1 adds r0, r5, r1 bl sub_8022554 _08024176: movs r0, 0x1 str r0, [sp] adds r0, r4, 0 movs r1, 0x8 movs r2, 0 movs r3, 0 bl sub_8024644 movs r4, 0 movs r0, 0x13 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC strb r4, [r5, 0xC] b _0802421E .pool _080241A0: bl sub_8010434 b _08024218 _080241A6: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0802421E movs r0, 0 movs r1, 0 bl sub_81973C4 ldr r2, =gUnknown_082C8959 movs r0, 0 str r0, [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 AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =sub_8153688 movs r1, 0 bl CreateTask b _08024218 .pool _080241F0: ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08024218 b _0802421E .pool _08024204: movs r0, 0x14 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r1, 0 movs r0, 0xF strh r0, [r5, 0x12] strb r1, [r5, 0xC] b _0802421E _08024218: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _0802421E: movs r0, 0 add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8024134 thumb_func_start sub_8024228 sub_8024228: @ 8024228 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 ldrb r0, [r5, 0xC] cmp r0, 0x1 beq _0802426A cmp r0, 0x1 bgt _08024240 cmp r0, 0 beq _08024246 b _080242D0 _08024240: cmp r0, 0x2 beq _08024270 b _080242D0 _08024246: movs r0, 0x1 str r0, [sp] adds r0, r6, 0 movs r1, 0x4 movs r2, 0 movs r3, 0 bl sub_8024644 movs r0, 0x14 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0 strb r0, [r5, 0xC] b _080242D8 _0802426A: bl sub_8197930 b _080242D0 _08024270: bl sub_8198C58 lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _080242D6 adds r0, r5, 0 adds r0, 0x42 movs r1, 0 movs r2, 0xC bl memset cmp r4, 0 bne _080242A2 bl HasAtLeastOneBerry lsls r0, 24 cmp r0, 0 beq _0802429E strh r4, [r5, 0x14] b _080242A6 _0802429E: movs r0, 0x3 b _080242A4 _080242A2: movs r0, 0x1 _080242A4: strh r0, [r5, 0x14] _080242A6: movs r0, 0 movs r1, 0x1 bl sub_8197434 movs r4, 0 str r4, [sp] adds r0, r6, 0 movs r1, 0x8 movs r2, 0 movs r3, 0 bl sub_8024644 movs r0, 0x15 strb r0, [r5, 0xE] movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_8022BEC strb r4, [r5, 0xC] b _080242D6 _080242D0: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _080242D6: movs r0, 0 _080242D8: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8024228 thumb_func_start sub_80242E0 sub_80242E0: @ 80242E0 push {r4-r7,lr} adds r4, r0, 0 movs r5, 0 ldrb r0, [r4, 0xC] cmp r0, 0x1 beq _08024306 cmp r0, 0x1 bgt _080242F6 cmp r0, 0 beq _08024300 b _080243AC _080242F6: cmp r0, 0x2 beq _08024328 cmp r0, 0x3 beq _08024336 b _080243AC _08024300: bl sub_8010434 b _080243AC _08024306: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080243B2 ldrh r0, [r4, 0x14] adds r1, r4, 0 adds r1, 0x42 strh r0, [r1] adds r0, r4, 0 adds r0, 0x4E strh r5, [r0] movs r0, 0 movs r2, 0x2 bl SendBlock b _080243AC _08024328: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080243B2 strh r5, [r4, 0x10] b _080243AC _08024336: bl GetBlockReceivedStatus ldr r2, =gUnknown_082F4448 ldrb r3, [r4, 0x9] subs r1, r3, 0x2 adds r1, r2 lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _080243B2 adds r7, r4, 0 adds r7, 0x42 adds r6, r4, 0 adds r6, 0x4E cmp r5, r3 bcs _08024374 adds r1, r6, 0 ldr r2, =gBlockRecvBuffer _0802435C: lsls r0, r5, 8 adds r0, r2 ldrh r0, [r0] ldrh r3, [r1] adds r0, r3 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4, 0x9] cmp r5, r0 bcc _0802435C _08024374: ldrh r0, [r6] cmp r0, 0 beq _08024390 movs r0, 0x17 movs r1, 0x1 movs r2, 0 bl sub_8022BEC b _0802439A .pool _08024390: movs r0, 0x16 movs r1, 0x1 movs r2, 0 bl sub_8022BEC _0802439A: bl ResetBlockReceivedFlags movs r1, 0 movs r0, 0 strh r0, [r7] strh r0, [r6] strh r0, [r4, 0x10] strb r1, [r4, 0xC] b _080243B4 _080243AC: ldrb r0, [r4, 0xC] adds r0, 0x1 strb r0, [r4, 0xC] _080243B2: movs r0, 0 _080243B4: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80242E0 thumb_func_start sub_80243BC sub_80243BC: @ 80243BC push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrb r4, [r5, 0xC] cmp r4, 0x1 beq _080243EA cmp r4, 0x1 bgt _080243D2 cmp r4, 0 beq _080243DC b _08024434 _080243D2: cmp r4, 0x2 beq _080243F6 cmp r4, 0x3 beq _0802441A b _08024434 _080243DC: movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0x1 movs r2, 0 movs r3, 0x10 b _08024410 _080243EA: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 beq _08024434 b _0802443A _080243F6: movs r0, 0 movs r1, 0x1 bl sub_8197434 adds r0, r5, 0 bl sub_8021488 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 _08024410: bl BeginNormalPaletteFade bl UpdatePaletteFade b _08024434 _0802441A: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0802443A movs r0, 0x7 movs r1, 0x1 movs r2, 0 bl sub_8022BEC movs r0, 0 strh r4, [r5, 0x12] b _08024438 _08024434: ldrb r0, [r5, 0xC] adds r0, 0x1 _08024438: strb r0, [r5, 0xC] _0802443A: movs r0, 0 add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80243BC thumb_func_start sub_8024444 sub_8024444: @ 8024444 push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 ldrb r4, [r5, 0xC] cmp r4, 0x1 beq _080244BC cmp r4, 0x1 bgt _0802445A cmp r4, 0 beq _08024460 b _080244F6 _0802445A: cmp r4, 0x2 beq _080244D4 b _080244F6 _08024460: movs r0, 0 movs r1, 0 bl sub_81973C4 ldrh r1, [r5, 0x14] cmp r1, 0x3 bne _08024490 ldr r0, =gUnknown_082F32A4 ldr r2, [r0, 0x14] ldrb r3, [r5, 0xB] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] str r1, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized b _080244AC .pool _08024490: ldr r0, =gUnknown_082F32A4 ldr r2, [r0, 0x18] ldrb r3, [r5, 0xB] 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 bl AddTextPrinterParametrized _080244AC: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram b _080244F6 .pool _080244BC: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _080244FC movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 movs r0, 0x78 strb r0, [r1] b _080244F6 _080244D4: movs r0, 0x9C lsls r0, 1 adds r1, r5, r0 ldrb r0, [r1] adds r4, r0, 0 cmp r4, 0 beq _080244E8 subs r0, 0x1 strb r0, [r1] b _080244FC _080244E8: movs r0, 0x18 movs r1, 0x1 movs r2, 0 bl sub_8022BEC strb r4, [r5, 0xC] b _080244FC _080244F6: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _080244FC: movs r0, 0 add sp, 0x10 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8024444 thumb_func_start sub_8024508 sub_8024508: @ 8024508 push {r4,r5,lr} adds r5, r0, 0 ldrb r4, [r5, 0xC] cmp r4, 0x1 beq _08024528 cmp r4, 0x1 bgt _0802451C cmp r4, 0 beq _08024522 b _08024558 _0802451C: cmp r4, 0x2 beq _08024538 b _08024558 _08024522: bl sub_8010434 b _08024558 _08024528: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0802455E bl sub_800AC34 b _08024558 _08024538: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0802455E movs r0, 0x19 strb r0, [r5, 0xE] movs r0, 0x5 movs r1, 0x1 movs r2, 0 bl sub_8022BEC strb r4, [r5, 0xC] b _0802455E .pool _08024558: ldrb r0, [r5, 0xC] adds r0, 0x1 strb r0, [r5, 0xC] _0802455E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8024508 thumb_func_start sub_8024568 sub_8024568: @ 8024568 push {lr} movs r0, 0 bl sub_8020C0C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8024568 thumb_func_start sub_8024578 sub_8024578: @ 8024578 push {r4-r6,lr} adds r4, r0, 0 movs r5, 0 movs r0, 0x33 bl IncrementGameStat strb r5, [r4, 0xD] movs r1, 0 strh r5, [r4, 0x10] movs r0, 0x2 strh r0, [r4, 0x12] strh r5, [r4, 0x14] str r5, [r4, 0x1C] strh r5, [r4, 0x18] strh r5, [r4, 0x1A] str r5, [r4, 0x20] adds r0, r4, 0 adds r0, 0x24 strb r1, [r0] adds r1, r4, 0 adds r1, 0x25 movs r0, 0 strb r0, [r1] strh r5, [r4, 0x26] strh r5, [r4, 0x28] strh r5, [r4, 0x2E] ldr r0, =0x0000ffff strh r0, [r4, 0x32] strh r5, [r4, 0x30] strh r5, [r4, 0x34] movs r6, 0 movs r3, 0 _080245B8: lsls r0, r5, 5 adds r2, r4, r0 adds r1, r2, 0 adds r1, 0xA4 ldr r0, =0x0000ffff strh r0, [r1] adds r0, r2, 0 adds r0, 0xA6 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r1, 0x6 movs r0, 0x1 strh r0, [r1] adds r0, r2, 0 adds r0, 0xAC strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strh r3, [r0] adds r0, 0x2 strb r6, [r0] adds r0, 0x1 strb r6, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _080245B8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8024578 thumb_func_start sub_8024604 sub_8024604: @ 8024604 push {r4-r6,lr} sub sp, 0x8 str r2, [sp, 0x4] ldr r5, [sp, 0x18] ldr r6, [sp, 0x1C] ldr r4, [sp, 0x20] mov r2, sp strh r4, [r2] add r4, sp, 0x4 ldrb r2, [r4] strb r2, [r0] ldrb r2, [r4, 0x1] strb r2, [r0, 0x1] ldrb r2, [r4, 0x2] strb r2, [r0, 0x2] ldrb r2, [r4, 0x3] strb r2, [r0, 0x3] strb r3, [r0, 0x4] strb r5, [r0, 0x5] strb r6, [r0, 0x6] mov r2, sp ldrb r2, [r2] strb r2, [r0, 0x7] mov r2, sp ldrb r2, [r2, 0x1] strb r2, [r0, 0x8] strb r1, [r0, 0x9] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8024604 thumb_func_start sub_8024644 sub_8024644: @ 8024644 push {r4,r5,lr} sub sp, 0x4 ldr r5, [sp, 0x10] mov r4, sp strh r3, [r4] strb r1, [r0] strb r2, [r0, 0x1] mov r1, sp ldrb r1, [r1] strb r1, [r0, 0x2] mov r1, sp ldrb r1, [r1, 0x1] strb r1, [r0, 0x3] strb r5, [r0, 0x4] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8024644 thumb_func_start sub_8024668 sub_8024668: @ 8024668 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] adds r1, 0xAC ldr r0, [r0] ldr r1, [r1] eors r0, r1 bx lr .pool thumb_func_end sub_8024668 thumb_func_start SetBerryPowder SetBerryPowder: @ 802467C ldr r2, =gSaveBlock2Ptr ldr r2, [r2] adds r2, 0xAC ldr r2, [r2] eors r2, r1 str r2, [r0] bx lr .pool thumb_func_end SetBerryPowder thumb_func_start ApplyNewEncyprtionKeyToBerryPowder ApplyNewEncyprtionKeyToBerryPowder: @ 8024690 push {lr} adds r1, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r2, 0xFA lsls r2, 1 adds r0, r2 bl ApplyNewEncyprtionKeyToWord pop {r0} bx r0 .pool thumb_func_end ApplyNewEncyprtionKeyToBerryPowder thumb_func_start sub_80246AC sub_80246AC: @ 80246AC push {r4,lr} adds r4, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r0, r1 bl sub_8024668 cmp r0, r4 bcc _080246CC movs r0, 0x1 b _080246CE .pool _080246CC: movs r0, 0 _080246CE: pop {r4} pop {r1} bx r1 thumb_func_end sub_80246AC thumb_func_start sub_80246D4 sub_80246D4: @ 80246D4 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r0, r1 bl sub_8024668 ldr r1, =gSpecialVar_0x8004 ldrh r1, [r1] cmp r0, r1 bcc _080246F8 movs r0, 0x1 b _080246FA .pool _080246F8: movs r0, 0 _080246FA: pop {r1} bx r1 thumb_func_end sub_80246D4 thumb_func_start sub_8024700 sub_8024700: @ 8024700 push {r4,r5,lr} adds r4, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r5, r0, r1 adds r0, r5, 0 bl sub_8024668 adds r1, r0, r4 ldr r2, =0x0001869f cmp r1, r2 bhi _08024730 adds r0, r5, 0 bl SetBerryPowder movs r0, 0x1 b _0802473A .pool _08024730: adds r0, r5, 0 adds r1, r2, 0 bl SetBerryPowder movs r0, 0 _0802473A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8024700 thumb_func_start sub_8024740 sub_8024740: @ 8024740 push {r4,r5,lr} adds r5, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r4, r0, r1 adds r0, r5, 0 bl sub_80246AC lsls r0, 24 cmp r0, 0 beq _08024774 adds r0, r4, 0 bl sub_8024668 adds r1, r0, 0 subs r1, r5 adds r0, r4, 0 bl SetBerryPowder movs r0, 0x1 b _08024776 .pool _08024774: movs r0, 0 _08024776: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8024740 thumb_func_start sub_802477C sub_802477C: @ 802477C push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r4, r0, r1 ldr r5, =gSpecialVar_0x8004 ldrh r0, [r5] bl sub_80246AC lsls r0, 24 cmp r0, 0 beq _080247B4 adds r0, r4, 0 bl sub_8024668 adds r1, r0, 0 ldrh r0, [r5] subs r1, r0 adds r0, r4, 0 bl SetBerryPowder movs r0, 0x1 b _080247B6 .pool _080247B4: movs r0, 0 _080247B6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802477C thumb_func_start sub_80247BC sub_80247BC: @ 80247BC push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFA lsls r1, 1 adds r0, r1 bl sub_8024668 pop {r1} bx r1 .pool thumb_func_end sub_80247BC thumb_func_start sub_80247D4 sub_80247D4: @ 80247D4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC adds r6, r0, 0 mov r8, r2 adds r4, r3, 0 ldr r5, [sp, 0x24] lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r0, =gStringVar1 mov r9, r0 movs r2, 0x1 movs r3, 0x5 bl ConvertIntToDecimalStringN str r4, [sp] str r5, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r6, 0 movs r1, 0x1 mov r2, r9 mov r3, r8 bl PrintTextOnWindow add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80247D4 thumb_func_start sub_802482C sub_802482C: @ 802482C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC adds r6, r0, 0 adds r4, r1, 0 adds r5, r2, 0 mov r8, r3 lsls r6, 24 lsrs r6, 24 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle ldr r2, =gText_Powder movs r0, 0x1 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] adds r0, r6, 0 movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow str r4, [sp] adds r0, r6, 0 mov r1, r8 movs r2, 0x1A movs r3, 0x11 bl sub_80247D4 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802482C thumb_func_start sub_802488C sub_802488C: @ 802488C push {lr} sub sp, 0x4 bl sub_80247BC adds r1, r0, 0 ldr r0, =gUnknown_02022C94 ldrb r0, [r0] movs r2, 0 str r2, [sp] movs r2, 0x1A movs r3, 0x11 bl sub_80247D4 add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_802488C thumb_func_start sub_80248B0 sub_80248B0: @ 80248B0 push {r4,r5,lr} sub sp, 0x18 movs r0, 0x7 str r0, [sp] movs r0, 0x4 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x1C str r0, [sp, 0xC] add r0, sp, 0x10 movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl SetWindowTemplateFields ldr r4, =gUnknown_02022C94 add r0, sp, 0x10 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] ldr r5, =0x0000021d adds r1, r5, 0 movs r2, 0xD0 bl box_border_load_tiles_and_pal ldrb r4, [r4] bl sub_80247BC adds r3, r0, 0 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD bl sub_802482C add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80248B0 thumb_func_start sub_8024918 sub_8024918: @ 8024918 push {r4,lr} ldr r4, =gUnknown_02022C94 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl sub_8198070 ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8024918 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 sub_800A520 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 sub_800DFB4 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 sub_800A520 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 sub_800A520 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 sub_800A520 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 sub_800A520 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 sub_800A520 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 sub_800A520 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 sub_800A520 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, =gScriptResult _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, =gScriptResult 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 box_border_load_tiles_and_pal 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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, =gUnknown_03003090 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, =gUnknown_03003090 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, =gUnknown_03003090 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, =gUnknown_03003090 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 sub_8098758 ldr r1, [r0] movs r2, 0x90 lsls r2, 1 movs r0, 0 movs r3, 0x1 bl LoadBgTiles adds r0, r4, 0 bl sub_8098758 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 box_border_load_tiles_and_pal 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 box_print 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 PrintTextOnWindow 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 box_print 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 box_print 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 box_print 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 PrintTextOnWindow _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 PrintTextOnWindow 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 PrintTextOnWindow bl sub_81AFBF0 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 sub_81AFC0C ldr r7, =gStringVar4 ldr r1, =gText_FirstPlacePrize adds r0, r7, 0 bl sub_81AFC28 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 PrintTextOnWindow 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 sub_81AFBF0 bl sub_802762C lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl CopyItemName movs r0, 0 adds r1, r5, 0 bl sub_81AFC0C cmp r4, 0x2 bne _08029E9C ldr r1, =gText_CantHoldAnyMore adds r0, r7, 0 bl sub_81AFC28 b _08029EA8 .pool _08029E9C: cmp r6, 0x1 bne _08029EA8 ldr r1, =gText_FilledStorageSpace adds r0, r7, 0 bl sub_81AFC28 _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 PrintTextOnWindow _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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 PrintTextOnWindow 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 sub_81973C4 ldr r2, =gUnknown_082C8959 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 AddTextPrinterParametrized 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 PrintTextOnWindow 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 PrintTextOnWindow 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 sub_81971D0 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 thumb_func_start sub_802A9A8 sub_802A9A8: @ 802A9A8 push {r4-r7,lr} adds r6, r1, 0 lsls r0, 16 lsrs r7, r0, 16 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0802AA3C ldr r5, =gUnknown_02022CFC ldr r0, =0x000083b0 bl Alloc str r0, [r5] cmp r0, 0 beq _0802AA3C bl ResetTasks ldr r0, =sub_802ACA0 movs r1, 0x1 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, [r5] movs r1, 0 strh r1, [r0, 0x8] str r6, [r0] strb r4, [r0, 0x4] bl GetMultiplayerId ldr r1, [r5] strb r0, [r1, 0x6] ldr r0, [r5] ldrb r2, [r0, 0x6] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 ldr r2, =0x000082a8 adds r1, r2 adds r0, r1 movs r1, 0x64 muls r1, r7 ldr r2, =gPlayerParty adds r1, r2 bl sub_802AC2C ldr r0, [r5] bl sub_802AA60 ldr r2, [r5] adds r0, r4, 0 movs r1, 0x2 bl SetWordTaskArg ldr r0, =sub_802AC6C bl SetMainCallback2 b _0802AA42 .pool _0802AA3C: adds r0, r6, 0 bl SetMainCallback2 _0802AA42: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802A9A8 thumb_func_start sub_802AA48 sub_802AA48: @ 802AA48 push {lr} bl sub_802D0AC ldr r0, =gUnknown_02022CFC ldr r0, [r0] bl Free pop {r0} bx r0 .pool thumb_func_end sub_802AA48 thumb_func_start sub_802AA60 sub_802AA60: @ 802AA60 push {r4,lr} adds r4, r0, 0 bl GetLinkPlayerCount movs r2, 0 strb r0, [r4, 0x5] adds r1, r4, 0 adds r1, 0x70 movs r0, 0x5 strb r0, [r1] adds r0, r4, 0 adds r0, 0x72 strh r2, [r0] bl sub_802AB20 adds r0, r4, 0 bl sub_802AA94 ldrb r0, [r4, 0x5] cmp r0, 0x5 bne _0802AA8E bl sub_802E3A8 _0802AA8E: pop {r4} pop {r0} bx r0 thumb_func_end sub_802AA60 thumb_func_start sub_802AA94 sub_802AA94: @ 802AA94 push {r4-r6,lr} adds r4, r0, 0 movs r0, 0x6 str r0, [r4, 0x14] str r0, [r4, 0x18] adds r0, r4, 0 adds r0, 0x4A movs r6, 0 movs r5, 0 strh r5, [r0] str r5, [r4, 0x1C] str r5, [r4, 0x5C] bl GetMultiplayerId movs r1, 0 lsls r0, 24 cmp r0, 0 bne _0802AABA movs r1, 0x1 _0802AABA: adds r0, r4, 0 adds r0, 0x47 strb r1, [r0] strh r5, [r4, 0x8] strh r5, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] str r5, [r4, 0x58] strh r5, [r4, 0x3A] subs r0, 0x3 strb r6, [r0] str r5, [r4, 0x54] adds r0, 0x2 strb r6, [r0] adds r0, 0x3 strb r6, [r0] subs r0, 0x1 movs r1, 0x1 strb r1, [r0] str r5, [r4, 0x78] adds r0, 0x29 strb r6, [r0] adds r0, 0x3 strh r5, [r0] str r1, [r4, 0x60] subs r0, 0x27 strb r6, [r0] str r5, [r4, 0x68] str r5, [r4, 0x64] str r5, [r4, 0x2C] str r5, [r4, 0x30] bl sub_802AB98 bl sub_802C0E8 movs r2, 0 adds r5, r4, 0 adds r5, 0x7C movs r3, 0 adds r1, r4, 0 adds r1, 0x9A _0802AB0C: adds r0, r5, r2 strb r3, [r0] strh r3, [r1] adds r1, 0x2 adds r2, 0x1 cmp r2, 0x4 ble _0802AB0C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802AA94 thumb_func_start sub_802AB20 sub_802AB20: @ 802AB20 push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, =gUnknown_02022CFC movs r6, 0 movs r5, 0 ldr r0, =gPkmnJumpSpecies mov r8, r0 movs r4, 0x4 _0802AB32: ldr r0, [r7] adds r0, r5 ldr r1, =0x000082a8 adds r0, r1 ldrh r0, [r0] bl sub_802AC00 lsls r0, 16 ldr r1, [r7] adds r1, r6 asrs r0, 14 add r0, r8 ldrh r0, [r0, 0x2] ldr r2, =0x000082f0 adds r1, r2 strh r0, [r1] adds r6, 0x28 adds r5, 0xC subs r4, 0x1 cmp r4, 0 bge _0802AB32 ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldr r0, =0x000083ac adds r3, r1, r0 ldrb r2, [r1, 0x6] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r2, =0x000082e4 adds r0, r2 adds r1, r0 str r1, [r3] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802AB20 thumb_func_start sub_802AB98 sub_802AB98: @ 802AB98 push {r4-r7,lr} movs r5, 0 ldr r6, =gUnknown_02022CFC movs r4, 0 movs r3, 0 _0802ABA2: ldr r2, [r6] adds r1, r2, r3 ldr r7, =0x000082f2 adds r0, r1, r7 strh r4, [r0] adds r7, 0x2 adds r0, r1, r7 strh r4, [r0] ldr r0, =0x000082f6 adds r1, r0 strh r4, [r1] ldr r1, =0x000082e4 adds r0, r2, r1 adds r0, r3 str r4, [r0] subs r7, 0xC adds r0, r2, r7 adds r0, r3 ldr r1, =0x7fffffff str r1, [r0] ldr r1, =0x000082f8 adds r0, r2, r1 adds r0, r3 str r4, [r0] adds r2, 0x8B adds r2, r5 movs r0, 0x9 strb r0, [r2] adds r3, 0x28 adds r5, 0x1 cmp r5, 0x4 ble _0802ABA2 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802AB98 thumb_func_start sub_802AC00 sub_802AC00: @ 802AC00 push {lr} lsls r0, 16 lsrs r3, r0, 16 movs r1, 0 ldr r2, =gPkmnJumpSpecies _0802AC0A: ldrh r0, [r2] cmp r0, r3 bne _0802AC1C lsls r0, r1, 16 asrs r0, 16 b _0802AC28 .pool _0802AC1C: adds r2, 0x4 adds r1, 0x1 cmp r1, 0x63 bls _0802AC0A movs r0, 0x1 negs r0, r0 _0802AC28: pop {r1} bx r1 thumb_func_end sub_802AC00 thumb_func_start sub_802AC2C sub_802AC2C: @ 802AC2C push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 movs r1, 0xB bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x1 bl GetMonData str r0, [r5, 0x4] adds r0, r4, 0 movs r1, 0 bl GetMonData str r0, [r5, 0x8] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802AC2C thumb_func_start sub_802AC58 sub_802AC58: @ 802AC58 push {lr} bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests pop {r0} bx r0 thumb_func_end sub_802AC58 thumb_func_start sub_802AC6C sub_802AC6C: @ 802AC6C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_802AC6C thumb_func_start sub_802AC84 sub_802AC84: @ 802AC84 push {lr} movs r1, 0x1 bl CreateTask ldr r2, =gUnknown_02022CFC ldr r1, [r2] movs r3, 0 strb r0, [r1, 0x4] ldr r0, [r2] strh r3, [r0, 0x8] pop {r0} bx r0 .pool thumb_func_end sub_802AC84 thumb_func_start sub_802ACA0 sub_802ACA0: @ 802ACA0 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0x8] adds r2, r1, 0 cmp r0, 0x5 bls _0802ACB6 b _0802AE08 _0802ACB6: lsls r0, 2 ldr r1, =_0802ACC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802ACC8: .4byte _0802ACE0 .4byte _0802AD0C .4byte _0802AD3C .4byte _0802AD68 .4byte _0802ADA4 .4byte _0802ADD0 _0802ACE0: movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, =sub_802BD84 movs r1, 0x5 bl sub_802BE60 movs r0, 0x4 bl FadeOutMapMusic ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802ADC0 .pool _0802AD0C: ldr r0, =sub_802BD84 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0802AE08 ldr r4, =gUnknown_02022CFC ldr r0, [r4] adds r0, 0xA4 bl sub_802D074 bl sub_800E0E8 movs r0, 0 movs r1, 0 bl sub_800DFB4 ldr r1, [r4] b _0802ADC0 .pool _0802AD3C: bl sub_802D0F0 cmp r0, 0 bne _0802AE08 bl IsNotWaitingForBGMStop lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0802AE08 ldr r0, =0x0000021a movs r1, 0x8 bl FadeOutAndPlayNewMapMusic ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802ADC0 .pool _0802AD68: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _0802AE08 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 adds r1, r4, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =sub_802AC58 bl SetVBlankCallback ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802ADC0 .pool _0802ADA4: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _0802AE08 ldr r1, =gUnknown_02022CFC ldr r0, [r1] strb r2, [r0, 0x7] ldr r1, [r1] _0802ADC0: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802AE08 .pool _0802ADD0: ldr r0, [r2] ldrb r1, [r0, 0x7] adds r1, 0x1 strb r1, [r0, 0x7] ldr r1, [r2] ldrb r0, [r1, 0x7] cmp r0, 0x13 bls _0802AE08 adds r0, r1, 0 adds r0, 0x47 ldrb r0, [r0] cmp r0, 0 beq _0802ADF8 ldr r0, =sub_802AF80 bl sub_802AC84 b _0802ADFE .pool _0802ADF8: ldr r0, =sub_802B194 bl sub_802AC84 _0802ADFE: bl sub_802BE80 adds r0, r4, 0 bl DestroyTask _0802AE08: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802ACA0 thumb_func_start sub_802AE14 sub_802AE14: @ 802AE14 push {lr} adds r1, r0, 0 cmp r1, 0 bne _0802AE34 ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldr r0, =0x00001111 str r0, [r1, 0x30] movs r0, 0x1 str r0, [r1, 0x2C] b _0802AE46 .pool _0802AE34: ldr r0, =gUnknown_02022CFC ldr r2, [r0] subs r1, 0x1 movs r0, 0x1 lsls r0, r1 subs r0, 0x1 str r0, [r2, 0x30] movs r0, 0 str r0, [r2, 0x2C] _0802AE46: pop {r0} bx r0 .pool thumb_func_end sub_802AE14 thumb_func_start sub_802AE50 sub_802AE50: @ 802AE50 push {r4-r6,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] adds r1, 0x70 movs r2, 0 strb r0, [r1] ldr r0, [r4] movs r3, 0 strh r2, [r0, 0x8] strh r2, [r0, 0xA] adds r0, 0x48 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0x49 strb r3, [r0] movs r3, 0x1 ldr r0, [r4] ldrb r0, [r0, 0x5] cmp r3, r0 bge _0802AE94 adds r6, r4, 0 ldr r5, =0x000082fc movs r4, 0 movs r2, 0x28 _0802AE82: ldr r1, [r6] adds r0, r1, r5 adds r0, r2 str r4, [r0] adds r2, 0x28 adds r3, 0x1 ldrb r1, [r1, 0x5] cmp r3, r1 blt _0802AE82 _0802AE94: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802AE50 thumb_func_start sub_802AEA4 sub_802AEA4: @ 802AEA4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r4, 0x1 movs r0, 0 str r0, [sp, 0x4] ldr r7, =gUnknown_02022CFC ldr r0, [r7] ldrb r0, [r0, 0x5] cmp r4, r0 bge _0802AF48 adds r1, r7, 0 mov r10, r1 movs r2, 0x2 add r2, sp mov r8, r2 ldr r3, =0x0000830c mov r9, r3 movs r6, 0x28 _0802AED0: mov r1, r10 ldr r0, [r1] adds r1, r0, r6 ldr r2, =0x000082f4 adds r1, r2 ldrh r5, [r1] add r0, r9 adds r1, r4, 0 mov r2, sp mov r3, r8 bl sub_802E264 cmp r0, 0 beq _0802AF10 ldr r2, [r7] lsls r1, r4, 1 adds r0, r2, 0 adds r0, 0x90 adds r0, r1 mov r3, r8 ldrh r1, [r3] strh r1, [r0] adds r2, 0x8B adds r2, r4 mov r0, sp ldrb r0, [r0] strb r0, [r2] ldr r0, [r7] adds r0, r6 ldr r1, =0x000082f6 adds r0, r1 strh r5, [r0] _0802AF10: mov r2, r10 ldr r1, [r2] ldr r3, =0x000082fc adds r0, r1, r3 adds r0, r6 ldr r0, [r0] cmp r0, 0 beq _0802AF36 adds r0, r1, 0 adds r0, 0x8B adds r0, r4 adds r1, 0x70 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bne _0802AF36 ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] _0802AF36: movs r1, 0x28 add r9, r1 adds r6, 0x28 adds r4, 0x1 ldr r7, =gUnknown_02022CFC ldr r0, [r7] ldrb r0, [r0, 0x5] cmp r4, r0 blt _0802AED0 _0802AF48: ldr r2, =gUnknown_02022CFC ldr r1, [r2] ldrb r0, [r1, 0x5] subs r0, 0x1 ldr r3, [sp, 0x4] cmp r3, r0 bne _0802AF5C adds r1, 0x49 movs r0, 0x1 strb r0, [r1] _0802AF5C: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802AEA4 thumb_func_start sub_802AF80 sub_802AF80: @ 802AF80 push {r4,r5,lr} bl sub_802AEA4 bl sub_802C43C ldr r0, =gUnknown_02022CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0 bne _0802AFB2 adds r0, r1, 0 adds r0, 0x49 ldrb r0, [r0] cmp r0, 0 beq _0802AFB2 adds r0, r1, 0 adds r0, 0x4C ldrb r0, [r0] bl sub_802AE50 movs r0, 0x3 bl sub_802AE14 _0802AFB2: ldr r4, =gUnknown_02022CFC ldr r2, [r4] adds r0, r2, 0 adds r0, 0x48 ldrb r5, [r0] cmp r5, 0x1 bne _0802AFEE ldr r1, =gUnknown_082FB5F4 adds r0, 0x28 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 adds r1, r0, 0 cmp r1, 0 bne _0802AFEE ldr r0, [r4] adds r0, 0x48 strb r1, [r0] ldr r1, [r4] ldrb r2, [r1, 0x6] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r2, =0x000082fc adds r1, r2 adds r1, r0 str r5, [r1] _0802AFEE: bl sub_802C1DC bl sub_802B008 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802AF80 thumb_func_start sub_802B008 sub_802B008: @ 802B008 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldr r0, [r1, 0x2C] cmp r0, 0 bne _0802B01E ldr r2, =0x000082e4 adds r0, r1, r2 adds r1, 0x70 bl sub_802E138 _0802B01E: ldr r1, [r4] ldr r2, [r1, 0x30] ldr r0, =0x00001111 cmp r2, r0 beq _0802B030 ldr r0, [r1, 0x2C] adds r0, 0x1 ands r0, r2 str r0, [r1, 0x2C] _0802B030: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802B008 thumb_func_start sub_802B044 sub_802B044: @ 802B044 ldr r2, =gUnknown_02022CFC ldr r1, [r2] adds r1, 0x70 movs r3, 0 strb r0, [r1] ldr r0, [r2] strh r3, [r0, 0x8] strh r3, [r0, 0xA] adds r0, 0x48 movs r1, 0x1 strb r1, [r0] ldr r1, [r2] ldrb r2, [r1, 0x6] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r2, =0x000082fc adds r1, r2 adds r1, r0 str r3, [r1] bx lr .pool thumb_func_end sub_802B044 thumb_func_start sub_802B078 sub_802B078: @ 802B078 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldr r2, =0x000082f4 adds r1, r0, r2 ldrh r1, [r1] mov r8, r1 ldr r3, =0x000082e4 adds r0, r3 mov r1, sp bl sub_802E1BC cmp r0, 0 beq _0802B128 ldr r2, [r4] ldrb r0, [r2, 0x6] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r3, =0x000082fc adds r0, r2, r3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0802B0C6 mov r0, sp adds r1, r2, 0 adds r1, 0x70 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _0802B0C6 mov r0, sp ldrb r0, [r0] bl sub_802B044 _0802B0C6: ldr r3, =gUnknown_02022CFC ldr r2, [r3] ldr r0, [r2, 0x78] ldr r1, [sp, 0x8] cmp r0, r1 beq _0802B108 str r1, [r2, 0x78] movs r4, 0x1 str r4, [r2, 0x5C] mov r0, sp ldrb r1, [r0, 0x1] adds r0, r2, 0 adds r0, 0x71 strb r1, [r0] ldr r0, [r3] adds r1, r0, 0 adds r1, 0x71 ldrb r1, [r1] cmp r1, 0 beq _0802B104 adds r0, 0x4D strb r4, [r0] b _0802B108 .pool _0802B104: adds r0, 0x4D strb r1, [r0] _0802B108: ldr r0, =gUnknown_02022CFC ldr r1, [r0] mov r0, sp ldrh r0, [r0, 0x2] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] mov r0, sp ldrh r2, [r0, 0x4] adds r0, r1, 0 adds r0, 0x74 strh r2, [r0] ldr r0, =0x000082f6 adds r1, r0 mov r2, r8 strh r2, [r1] _0802B128: movs r4, 0x1 ldr r2, =gUnknown_02022CFC ldr r0, [r2] ldrb r0, [r0, 0x5] cmp r4, r0 bge _0802B176 adds r7, r2, 0 ldr r6, =0x0000830c movs r5, 0x28 _0802B13A: ldr r1, [r7] ldrb r3, [r1, 0x6] cmp r4, r3 beq _0802B168 adds r0, r1, r5 ldr r3, =0x000082f4 adds r0, r3 ldrh r0, [r0] mov r8, r0 adds r0, r1, r6 adds r1, r4, 0 str r2, [sp, 0xC] bl sub_802E2D0 ldr r2, [sp, 0xC] cmp r0, 0 beq _0802B168 ldr r0, [r7] adds r0, r5 ldr r1, =0x000082f6 adds r0, r1 mov r3, r8 strh r3, [r0] _0802B168: adds r6, 0x28 adds r5, 0x28 adds r4, 0x1 ldr r0, [r2] ldrb r0, [r0, 0x5] cmp r4, r0 blt _0802B13A _0802B176: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802B078 thumb_func_start sub_802B194 sub_802B194: @ 802B194 push {r4,lr} bl sub_802B078 ldr r4, =gUnknown_02022CFC ldr r2, [r4] adds r0, r2, 0 adds r0, 0x48 ldrb r0, [r0] cmp r0, 0 beq _0802B1E0 ldr r1, =gUnknown_082FB618 adds r0, r2, 0 adds r0, 0x70 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 adds r1, r0, 0 cmp r1, 0 bne _0802B1E0 ldr r0, [r4] adds r0, 0x48 strb r1, [r0] ldr r1, [r4] ldrb r2, [r1, 0x6] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r2, =0x000082fc adds r1, r2 adds r1, r0 movs r0, 0x1 str r0, [r1] movs r0, 0x3 bl sub_802AE14 _0802B1E0: bl sub_802C1DC bl sub_802B1FC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802B194 thumb_func_start sub_802B1FC sub_802B1FC: @ 802B1FC push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r2, [r4] ldr r0, [r2, 0x2C] cmp r0, 0 bne _0802B224 ldrb r1, [r2, 0x6] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, =0x000082e4 adds r0, r1 adds r0, r2, r0 adds r1, r2, 0 adds r1, 0x70 ldrb r1, [r1] adds r2, 0x42 ldrh r2, [r2] bl sub_802E234 _0802B224: ldr r1, [r4] ldr r2, [r1, 0x30] ldr r0, =0x00001111 cmp r2, r0 beq _0802B236 ldr r0, [r1, 0x2C] adds r0, 0x1 ands r0, r2 str r0, [r1, 0x2C] _0802B236: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802B1FC thumb_func_start sub_802B248 sub_802B248: @ 802B248 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B260 cmp r0, 0x1 beq _0802B26E b _0802B294 .pool _0802B260: movs r0, 0x3 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B26E: bl sub_802B7E0 cmp r0, 0 bne _0802B294 ldr r0, =gUnknown_02022CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x4A ldrh r0, [r0] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] adds r1, 0x4C movs r0, 0x1 strb r0, [r1] movs r0, 0 b _0802B296 .pool _0802B294: movs r0, 0x1 _0802B296: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B248 thumb_func_start sub_802B29C sub_802B29C: @ 802B29C push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B2B4 cmp r0, 0x1 beq _0802B2CA movs r0, 0x1 b _0802B2CE .pool _0802B2B4: movs r0, 0 bl sub_802AE14 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x72 ldrh r0, [r0] str r0, [r1, 0x24] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B2CA: bl sub_802B7E0 _0802B2CE: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B29C thumb_func_start sub_802B2D4 sub_802B2D4: @ 802B2D4 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0 beq _0802B2EC cmp r0, 0x1 beq _0802B300 b _0802B314 .pool _0802B2EC: bl sub_802C0E8 movs r0, 0x5 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B314 _0802B300: adds r0, r1, 0 adds r0, 0x49 ldrb r0, [r0] cmp r0, 0 beq _0802B314 adds r1, 0x4C movs r0, 0x2 strb r0, [r1] movs r0, 0 b _0802B316 _0802B314: movs r0, 0x1 _0802B316: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B2D4 thumb_func_start sub_802B31C sub_802B31C: @ 802B31C push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B334 cmp r0, 0x1 beq _0802B352 b _0802B35E .pool _0802B334: bl sub_802C0E8 movs r0, 0 bl sub_802AE14 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x72 ldrh r0, [r0] adds r2, r1, 0 adds r2, 0x4A strh r0, [r2] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B352: bl sub_802C70C cmp r0, 0 beq _0802B35E movs r0, 0 b _0802B360 _0802B35E: movs r0, 0x1 _0802B360: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B31C thumb_func_start sub_802B368 sub_802B368: @ 802B368 push {lr} bl sub_802B8CC cmp r0, 0 bne _0802B390 ldr r0, =gUnknown_02022CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x4A ldrh r0, [r0] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] adds r1, 0x4C movs r0, 0x1 strb r0, [r1] b _0802B3AA .pool _0802B390: bl sub_802C538 cmp r0, 0 beq _0802B39C movs r0, 0x1 b _0802B3AC _0802B39C: bl sub_802C0B8 ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x4C movs r1, 0x3 strb r1, [r0] _0802B3AA: movs r0, 0 _0802B3AC: pop {r1} bx r1 .pool thumb_func_end sub_802B368 thumb_func_start sub_802B3B4 sub_802B3B4: @ 802B3B4 push {lr} bl sub_802B8CC cmp r0, 0 beq _0802B3CE bl sub_802C538 cmp r0, 0 beq _0802B3CA movs r0, 0x1 b _0802B3D0 _0802B3CA: bl sub_802C0B8 _0802B3CE: movs r0, 0 _0802B3D0: pop {r1} bx r1 thumb_func_end sub_802B3B4 thumb_func_start sub_802B3D4 sub_802B3D4: @ 802B3D4 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0x1 beq _0802B40C cmp r0, 0x1 bgt _0802B3F0 cmp r0, 0 beq _0802B3F6 b _0802B468 .pool _0802B3F0: cmp r0, 0x2 beq _0802B460 b _0802B468 _0802B3F6: bl sub_802C538 bl sub_802C5DC cmp r0, 0 beq _0802B468 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B468 _0802B40C: bl sub_802B964 cmp r0, 0 bne _0802B468 bl sub_802C7BC cmp r0, 0 beq _0802B42E bl sub_802C7E0 ldr r1, [r4] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] adds r1, 0x4C movs r0, 0x7 b _0802B454 _0802B42E: ldr r1, [r4] adds r0, r1, 0 adds r0, 0x74 ldrh r0, [r0] cmp r0, 0xC7 bls _0802B448 ldrh r0, [r1, 0xE] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] adds r1, 0x4C movs r0, 0x8 b _0802B454 _0802B448: ldrh r0, [r1, 0xE] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] adds r1, 0x4C movs r0, 0x4 _0802B454: strb r0, [r1] ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B460: movs r0, 0 b _0802B46A .pool _0802B468: movs r0, 0x1 _0802B46A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B3D4 thumb_func_start sub_802B470 sub_802B470: @ 802B470 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0x1 beq _0802B4B0 cmp r0, 0x1 bgt _0802B48C cmp r0, 0 beq _0802B492 b _0802B4C4 .pool _0802B48C: cmp r0, 0x2 beq _0802B4C0 b _0802B4C4 _0802B492: bl sub_802C538 cmp r0, 0 bne _0802B49E bl sub_802C0B8 _0802B49E: bl sub_802C5DC cmp r0, 0 beq _0802B4C4 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B4C4 _0802B4B0: bl sub_802B964 cmp r0, 0 bne _0802B4C4 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B4C0: movs r0, 0 b _0802B4C6 _0802B4C4: movs r0, 0x1 _0802B4C6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B470 thumb_func_start sub_802B4CC sub_802B4CC: @ 802B4CC push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r1, [r0, 0x8] cmp r1, 0x1 beq _0802B500 cmp r1, 0x1 bgt _0802B4E8 cmp r1, 0 beq _0802B4F2 b _0802B560 .pool _0802B4E8: cmp r1, 0x2 beq _0802B52C cmp r1, 0x3 beq _0802B556 b _0802B560 _0802B4F2: movs r0, 0x4 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B500: bl sub_802BB84 cmp r0, 0 bne _0802B560 ldr r4, =gUnknown_02022CFC ldr r2, [r4] ldr r0, [r2, 0x78] adds r1, r2, 0 adds r1, 0x74 ldrh r1, [r1] adds r2, 0x72 ldrh r2, [r2] bl sub_802E354 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B560 .pool _0802B52C: adds r0, 0x49 ldrb r0, [r0] cmp r0, 0 beq _0802B560 bl sub_802C650 cmp r0, 0 beq _0802B544 ldr r0, [r4] adds r0, 0x4C movs r1, 0x5 b _0802B54A _0802B544: ldr r0, [r4] adds r0, 0x4C movs r1, 0x6 _0802B54A: strb r1, [r0] ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B556: movs r0, 0 b _0802B562 .pool _0802B560: movs r0, 0x1 _0802B562: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B4CC thumb_func_start sub_802B568 sub_802B568: @ 802B568 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B580 cmp r0, 0x1 beq _0802B58E b _0802B5C0 .pool _0802B580: movs r0, 0 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B58E: bl sub_802BB84 cmp r0, 0 bne _0802B5C0 ldr r4, =gUnknown_02022CFC ldr r2, [r4] ldr r0, [r2, 0x78] adds r1, r2, 0 adds r1, 0x74 ldrh r1, [r1] adds r2, 0x72 ldrh r2, [r2] bl sub_802E354 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x45 ldrb r1, [r1] adds r0, 0x42 strh r1, [r0] movs r0, 0 b _0802B5C2 .pool _0802B5C0: movs r0, 0x1 _0802B5C2: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B568 thumb_func_start sub_802B5C8 sub_802B5C8: @ 802B5C8 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0 beq _0802B5E0 cmp r0, 0x1 beq _0802B5F2 b _0802B61E .pool _0802B5E0: bl sub_802BD30 cmp r0, 0 bne _0802B61E ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B61E _0802B5F2: adds r0, r1, 0 adds r0, 0x49 ldrb r0, [r0] cmp r0, 0 beq _0802B61E adds r0, r1, 0 bl sub_802AA94 bl Random ldr r1, [r4] lsls r0, 16 lsrs r0, 16 str r0, [r1, 0x24] adds r3, r1, 0 adds r3, 0x72 movs r2, 0 strh r0, [r3] adds r1, 0x4C strb r2, [r1] movs r0, 0 b _0802B620 _0802B61E: movs r0, 0x1 _0802B620: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B5C8 thumb_func_start sub_802B628 sub_802B628: @ 802B628 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B640 cmp r0, 0x1 beq _0802B656 b _0802B65A .pool _0802B640: bl sub_802BD30 cmp r0, 0 bne _0802B65A ldr r0, [r4] bl sub_802AA94 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] _0802B656: movs r0, 0 b _0802B65C _0802B65A: movs r0, 0x1 _0802B65C: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B628 thumb_func_start sub_802B664 sub_802B664: @ 802B664 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldrh r0, [r1, 0x8] cmp r0, 0x1 beq _0802B68C cmp r0, 0x1 bgt _0802B680 cmp r0, 0 beq _0802B686 b _0802B6B0 .pool _0802B680: cmp r0, 0x2 beq _0802B69C b _0802B6B0 _0802B686: movs r0, 0x1 strh r0, [r1, 0x8] b _0802B6B0 _0802B68C: movs r0, 0 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B6B0 _0802B69C: bl sub_802BC60 cmp r0, 0 bne _0802B6B0 ldr r0, [r4] ldr r0, [r0] bl SetMainCallback2 bl sub_802AA48 _0802B6B0: movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end sub_802B664 thumb_func_start sub_802B6B8 sub_802B6B8: @ 802B6B8 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x8] cmp r0, 0 beq _0802B6D0 cmp r0, 0x1 beq _0802B6E0 b _0802B6FC .pool _0802B6D0: movs r0, 0x4 bl sub_802AE14 ldr r1, [r4] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B6FC _0802B6E0: bl sub_802BA58 cmp r0, 0 bne _0802B6FC ldr r0, [r4] ldrh r1, [r0, 0xE] adds r2, r0, 0 adds r2, 0x72 strh r1, [r2] adds r0, 0x4C movs r1, 0x8 strb r1, [r0] movs r0, 0 b _0802B6FE _0802B6FC: movs r0, 0x1 _0802B6FE: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B6B8 thumb_func_start sub_802B704 sub_802B704: @ 802B704 push {lr} movs r0, 0 bl sub_802AE14 bl sub_802BA58 cmp r0, 0 beq _0802B718 movs r0, 0x1 b _0802B71A _0802B718: movs r0, 0 _0802B71A: pop {r1} bx r1 thumb_func_end sub_802B704 thumb_func_start sub_802B720 sub_802B720: @ 802B720 push {r4,lr} ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0x8] adds r4, r1, 0 cmp r0, 0x4 bhi _0802B7D8 lsls r0, 2 ldr r1, =_0802B740 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802B740: .4byte _0802B754 .4byte _0802B770 .4byte _0802B780 .4byte _0802B798 .4byte _0802B7BC _0802B754: ldr r2, [r4] ldr r0, [r2, 0x78] adds r1, r2, 0 adds r1, 0x74 ldrh r1, [r1] adds r2, 0x72 ldrh r2, [r2] bl sub_802E354 movs r0, 0x5 bl sub_802D0C8 ldr r1, [r4] b _0802B7AC _0802B770: bl sub_802D0F0 cmp r0, 0 bne _0802B7D8 movs r0, 0 bl sub_802AE14 b _0802B7A8 _0802B780: bl sub_802C70C cmp r0, 0 beq _0802B7D8 ldr r0, =sub_8153688 movs r1, 0x6 bl CreateTask b _0802B7A8 .pool _0802B798: ldr r0, =sub_8153688 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _0802B7D8 bl sub_802DA14 _0802B7A8: ldr r0, =gUnknown_02022CFC ldr r1, [r0] _0802B7AC: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0802B7D8 .pool _0802B7BC: bl sub_802DA44 cmp r0, 0 bne _0802B7D8 ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x4C movs r1, 0x4 strb r1, [r0] movs r0, 0 b _0802B7DA .pool _0802B7D8: movs r0, 0x1 _0802B7DA: pop {r4} pop {r1} bx r1 thumb_func_end sub_802B720 thumb_func_start sub_802B7E0 sub_802B7E0: @ 802B7E0 push {r4,r5,lr} ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0xA] adds r4, r1, 0 cmp r0, 0x7 bhi _0802B8C4 lsls r0, 2 ldr r1, =_0802B800 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802B800: .4byte _0802B820 .4byte _0802B82C .4byte _0802B84C .4byte _0802B866 .4byte _0802B878 .4byte _0802B880 .4byte _0802B8A0 .4byte _0802B8BA _0802B820: movs r0, 0x2 bl sub_802D0C8 bl sub_802DDE0 b _0802B890 _0802B82C: bl sub_802D0F0 adds r5, r0, 0 cmp r5, 0 bne _0802B8C4 ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrb r0, [r0, 0x6] bl sub_802DDF4 ldr r1, [r4] strh r5, [r1, 0x3C] b _0802B894 .pool _0802B84C: ldr r1, [r4] ldrh r0, [r1, 0x3C] adds r0, 0x1 strh r0, [r1, 0x3C] lsls r0, 16 lsrs r0, 16 cmp r0, 0x78 bls _0802B8C4 movs r0, 0x3 bl sub_802D0C8 ldr r1, [r4] b _0802B894 _0802B866: bl sub_802D0F0 cmp r0, 0x1 beq _0802B8C4 bl sub_802DE08 cmp r0, 0x1 beq _0802B8C4 b _0802B890 _0802B878: movs r0, 0x9 bl sub_802D0C8 b _0802B890 _0802B880: bl sub_802D0F0 cmp r0, 0 bne _0802B8C4 bl sub_802C260 bl sub_802D764 _0802B890: ldr r0, =gUnknown_02022CFC ldr r1, [r0] _0802B894: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802B8C4 .pool _0802B8A0: bl sub_802D788 cmp r0, 0 bne _0802B8C4 bl sub_802C270 bl sub_802BEA0 ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0802B8BA: movs r0, 0 b _0802B8C6 .pool _0802B8C4: movs r0, 0x1 _0802B8C6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802B7E0 thumb_func_start sub_802B8CC sub_802B8CC: @ 802B8CC push {r4,r5,lr} bl sub_802BEE4 ldr r5, =gUnknown_02022CFC ldr r1, [r5] ldrh r4, [r1, 0x36] cmp r4, 0 beq _0802B8E8 movs r0, 0 strh r0, [r1, 0x36] b _0802B95C .pool _0802B8E8: ldrh r0, [r1, 0xA] cmp r0, 0x1 beq _0802B914 cmp r0, 0x1 bgt _0802B8F8 cmp r0, 0 beq _0802B902 b _0802B95A _0802B8F8: cmp r0, 0x2 beq _0802B938 cmp r0, 0x3 beq _0802B94C b _0802B95A _0802B902: movs r0, 0 bl sub_802C130 cmp r0, 0 beq _0802B95A ldr r1, [r5] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0802B914: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0802B95A bl sub_802C164 movs r0, 0x3 bl sub_802AE14 ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802B944 .pool _0802B938: movs r0, 0x1 bl sub_802C130 cmp r0, 0x1 bne _0802B95A ldr r1, [r5] _0802B944: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802B95A _0802B94C: movs r0, 0 bl sub_802C130 cmp r0, 0x1 bne _0802B95A ldr r0, [r5] strh r4, [r0, 0xA] _0802B95A: movs r0, 0x1 _0802B95C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802B8CC thumb_func_start sub_802B964 sub_802B964: @ 802B964 push {r4-r6,lr} ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0xA] adds r5, r1, 0 cmp r0, 0x4 bhi _0802BA50 lsls r0, 2 ldr r1, =_0802B984 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802B984: .4byte _0802B998 .4byte _0802B9BC .4byte _0802BA00 .4byte _0802BA24 .4byte _0802BA46 _0802B998: movs r4, 0 ldr r0, [r5] ldrb r0, [r0, 0x5] cmp r4, r0 bge _0802B9B8 adds r6, r5, 0 _0802B9A4: adds r0, r4, 0 bl sub_802DDB8 cmp r0, 0x1 beq _0802BA50 adds r4, 0x1 ldr r0, [r6] ldrb r0, [r0, 0x5] cmp r4, r0 blt _0802B9A4 _0802B9B8: ldr r1, [r5] b _0802BA1C _0802B9BC: movs r4, 0 ldr r0, [r5] ldrb r0, [r0, 0x5] cmp r4, r0 bge _0802B9EC adds r6, r5, 0 movs r5, 0 _0802B9CA: ldr r0, [r6] adds r0, r5 ldr r1, =0x000082f4 adds r0, r1 ldrh r0, [r0] cmp r0, 0x2 bne _0802B9E0 lsls r0, r4, 24 lsrs r0, 24 bl sub_802DDA0 _0802B9E0: adds r5, 0x28 adds r4, 0x1 ldr r0, [r6] ldrb r0, [r0, 0x5] cmp r4, r0 blt _0802B9CA _0802B9EC: movs r0, 0x1 bl sub_802D0C8 ldr r0, =gUnknown_02022CFC ldr r1, [r0] b _0802BA18 .pool _0802BA00: ldr r1, [r5] ldrh r0, [r1, 0x3C] adds r0, 0x1 strh r0, [r1, 0x3C] lsls r0, 16 lsrs r0, 16 cmp r0, 0x64 bls _0802BA50 movs r0, 0x3 bl sub_802D0C8 ldr r1, [r5] _0802BA18: movs r0, 0 strh r0, [r1, 0x3C] _0802BA1C: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802BA50 _0802BA24: bl sub_802D0F0 adds r5, r0, 0 cmp r5, 0 bne _0802BA50 bl sub_802DDCC ldr r4, =gUnknown_02022CFC ldr r0, [r4] adds r0, 0x71 strb r5, [r0] bl sub_802C114 ldr r1, [r4] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0802BA46: movs r0, 0 b _0802BA52 .pool _0802BA50: movs r0, 0x1 _0802BA52: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802B964 thumb_func_start sub_802BA58 sub_802BA58: @ 802BA58 push {r4,lr} ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0xA] adds r4, r1, 0 cmp r0, 0x6 bls _0802BA68 b _0802BB7C _0802BA68: lsls r0, 2 ldr r1, =_0802BA7C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802BA7C: .4byte _0802BA98 .4byte _0802BAB8 .4byte _0802BAD0 .4byte _0802BB00 .4byte _0802BAB8 .4byte _0802BAD0 .4byte _0802BB70 _0802BA98: ldr r2, [r4] adds r0, r2, 0 adds r0, 0x72 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x3E adds r2, 0x40 bl sub_802C808 ldr r1, [r4] ldrh r0, [r1, 0x3E] adds r1, 0x40 ldrh r1, [r1] bl sub_802D7E8 b _0802BAF0 _0802BAB8: bl sub_802D974 adds r2, r0, 0 cmp r2, 0 bne _0802BB7C ldr r0, =gUnknown_02022CFC ldr r1, [r0] strh r2, [r1, 0x3C] b _0802BAF2 .pool _0802BAD0: ldr r1, [r4] ldrh r0, [r1, 0x3C] adds r2, r0, 0x1 strh r2, [r1, 0x3C] ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0802BAEC lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0xB4 bls _0802BB7C _0802BAEC: bl sub_802DA14 _0802BAF0: ldr r1, [r4] _0802BAF2: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802BB7C .pool _0802BB00: bl sub_802DA44 cmp r0, 0 bne _0802BB7C ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldrh r0, [r1, 0x3E] adds r1, 0x40 ldrh r1, [r1] bl sub_802C880 ldr r1, [r4] adds r2, r1, 0 adds r2, 0x40 strh r0, [r2] lsls r0, 16 cmp r0, 0 beq _0802BB58 ldrh r0, [r1, 0x3E] ldrh r1, [r2] bl AddBagItem lsls r0, 24 cmp r0, 0 beq _0802BB58 ldr r0, [r4] ldrh r0, [r0, 0x3E] movs r1, 0x1 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 bne _0802BB50 ldr r0, [r4] ldrh r0, [r0, 0x3E] bl sub_802D884 b _0802BB62 .pool _0802BB50: ldr r1, [r4] movs r0, 0x6 strh r0, [r1, 0xA] b _0802BB7C _0802BB58: ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0x3E] bl sub_802D8FC _0802BB62: ldr r1, [r4] movs r0, 0x4 strh r0, [r1, 0xA] b _0802BB7C .pool _0802BB70: bl sub_802DA44 cmp r0, 0 bne _0802BB7C movs r0, 0 b _0802BB7E _0802BB7C: movs r0, 0x1 _0802BB7E: pop {r4} pop {r1} bx r1 thumb_func_end sub_802BA58 thumb_func_start sub_802BB84 sub_802BB84: @ 802BB84 push {r4,lr} ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrh r0, [r0, 0xA] cmp r0, 0x6 bhi _0802BC58 lsls r0, 2 ldr r1, =_0802BBA4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802BBA4: .4byte _0802BBC0 .4byte _0802BBC4 .4byte _0802BBCE .4byte _0802BC1C .4byte _0802BC26 .4byte _0802BC3C .4byte _0802BC4E _0802BBC0: movs r0, 0x4 b _0802BC28 _0802BBC4: bl sub_802D0F0 cmp r0, 0 bne _0802BC58 b _0802BC2C _0802BBCE: bl sub_802DA8C lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0802BC04 cmp r1, 0 bgt _0802BBE8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0802BBEC b _0802BC58 _0802BBE8: cmp r1, 0x1 bne _0802BC58 _0802BBEC: ldr r4, =gUnknown_02022CFC ldr r0, [r4] adds r0, 0x45 movs r1, 0x1 strb r1, [r0] movs r0, 0x6 bl sub_802D0C8 ldr r1, [r4] b _0802BC30 .pool _0802BC04: ldr r4, =gUnknown_02022CFC ldr r0, [r4] adds r0, 0x45 movs r1, 0x2 strb r1, [r0] movs r0, 0x6 bl sub_802D0C8 ldr r1, [r4] b _0802BC30 .pool _0802BC1C: bl sub_802D0F0 cmp r0, 0 bne _0802BC58 b _0802BC2C _0802BC26: movs r0, 0x8 _0802BC28: bl sub_802D0C8 _0802BC2C: ldr r0, =gUnknown_02022CFC ldr r1, [r0] _0802BC30: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802BC58 .pool _0802BC3C: bl sub_802D0F0 cmp r0, 0 bne _0802BC58 ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0802BC4E: movs r0, 0 b _0802BC5A .pool _0802BC58: movs r0, 0x1 _0802BC5A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802BB84 thumb_func_start sub_802BC60 sub_802BC60: @ 802BC60 push {r4,lr} sub sp, 0x4 ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrh r0, [r0, 0xA] adds r4, r1, 0 cmp r0, 0x5 bhi _0802BD24 lsls r0, 2 ldr r1, =_0802BC84 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802BC84: .4byte _0802BC9C .4byte _0802BCA2 .4byte _0802BCB2 .4byte _0802BCC8 .4byte _0802BCEE .4byte _0802BD14 _0802BC9C: bl sub_802DA14 b _0802BCFE _0802BCA2: bl sub_802DA44 cmp r0, 0 bne _0802BD24 movs r0, 0x7 bl sub_802D0C8 b _0802BCFE _0802BCB2: bl sub_802D0F0 adds r2, r0, 0 cmp r2, 0 bne _0802BD24 ldr r0, =gUnknown_02022CFC ldr r1, [r0] strh r2, [r1, 0x3C] b _0802BD02 .pool _0802BCC8: ldr r1, [r4] ldrh r0, [r1, 0x3C] adds r0, 0x1 strh r0, [r1, 0x3C] lsls r0, 16 lsrs r0, 16 cmp r0, 0x78 bls _0802BD24 movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, [r4] b _0802BD02 _0802BCEE: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0802BD24 bl sub_800AC34 _0802BCFE: ldr r0, =gUnknown_02022CFC ldr r1, [r0] _0802BD02: ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802BD24 .pool _0802BD14: ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0802BD24 movs r0, 0 b _0802BD26 .pool _0802BD24: movs r0, 0x1 _0802BD26: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_802BC60 thumb_func_start sub_802BD30 sub_802BD30: @ 802BD30 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldrh r0, [r0, 0xA] cmp r0, 0x1 beq _0802BD66 cmp r0, 0x1 bgt _0802BD4C cmp r0, 0 beq _0802BD52 b _0802BD7A .pool _0802BD4C: cmp r0, 0x2 beq _0802BD76 b _0802BD7A _0802BD52: bl sub_802DA14 movs r0, 0 bl sub_802DD64 ldr r1, [r4] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] b _0802BD7A _0802BD66: bl sub_802DA44 cmp r0, 0 bne _0802BD7A ldr r1, [r4] ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0802BD76: movs r0, 0 b _0802BD7C _0802BD7A: movs r0, 0x1 _0802BD7C: pop {r4} pop {r1} bx r1 thumb_func_end sub_802BD30 thumb_func_start sub_802BD84 sub_802BD84: @ 802BD84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r0, 2 add r0, r10 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 mov r0, r10 movs r1, 0xE bl GetWordTaskArg mov r8, r0 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 beq _0802BDC8 cmp r0, 0x1 beq _0802BDDC b _0802BE48 .pool _0802BDBC: bl sub_802AB20 mov r0, r10 bl DestroyTask b _0802BE48 _0802BDC8: movs r1, 0 adds r0, r6, 0 adds r0, 0x8 _0802BDCE: strh r1, [r0, 0x4] subs r0, 0x2 cmp r0, r6 bge _0802BDCE ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] _0802BDDC: mov r3, r8 ldrb r1, [r3, 0x6] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r4, =0x000082a8 adds r0, r4 add r0, r8 bl sub_802E0AC movs r2, 0 adds r5, r6, 0x4 mov r9, r2 movs r7, 0x83 lsls r7, 8 add r7, r8 add r4, r8 _0802BDFE: movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 bne _0802BE38 adds r0, r2, 0 adds r1, r4, 0 str r2, [sp] bl sub_802E0D0 ldr r2, [sp] cmp r0, 0 beq _0802BE38 ldr r1, =gLinkPlayers + 8 add r1, r9 adds r0, r7, 0 bl StringCopy movs r0, 0x1 strh r0, [r5] ldrh r0, [r6, 0x2] adds r0, 0x1 strh r0, [r6, 0x2] movs r3, 0x2 ldrsh r0, [r6, r3] ldr r2, [sp] mov r1, r8 ldrb r1, [r1, 0x5] cmp r0, r1 beq _0802BDBC _0802BE38: adds r5, 0x2 movs r3, 0x1C add r9, r3 adds r7, 0x28 adds r4, 0xC adds r2, 0x1 cmp r2, 0x4 ble _0802BDFE _0802BE48: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802BD84 thumb_func_start sub_802BE60 sub_802BE60: @ 802BE60 push {lr} lsls r1, 24 lsrs r1, 24 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02022CFC ldr r2, [r1] movs r1, 0xE bl SetWordTaskArg pop {r0} bx r0 .pool thumb_func_end sub_802BE60 thumb_func_start sub_802BE80 sub_802BE80: @ 802BE80 ldr r0, =gUnknown_02022CFC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4A movs r1, 0 strh r1, [r0] movs r0, 0x6 str r0, [r2, 0x14] strh r1, [r2, 0x34] str r1, [r2, 0x1C] strh r1, [r2, 0x36] str r1, [r2, 0x10] bx lr .pool thumb_func_end sub_802BE80 thumb_func_start sub_802BEA0 sub_802BEA0: @ 802BEA0 push {r4,lr} ldr r3, =gUnknown_02022CFC ldr r0, [r3] adds r1, r0, 0 adds r1, 0x4A movs r4, 0 movs r2, 0 strh r2, [r1] ldr r1, =0x000006ff strh r1, [r0, 0x34] movs r1, 0x7 str r1, [r0, 0x14] strh r2, [r0, 0x36] str r2, [r0, 0x10] adds r0, 0x51 strb r4, [r0] ldr r0, [r3] adds r0, 0x50 strb r4, [r0] ldr r0, [r3] str r2, [r0, 0x20] adds r1, r0, 0 adds r1, 0x4E strh r2, [r1] str r2, [r0, 0x6C] bl sub_802BF7C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802BEA0 thumb_func_start sub_802BEE4 sub_802BEE4: @ 802BEE4 push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x46 ldrb r0, [r0] cmp r0, 0 beq _0802BF34 adds r1, 0x4A ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] bl sub_802BF48 ldr r3, [r4] ldrh r1, [r3, 0x34] adds r2, r1, r0 strh r2, [r3, 0x34] lsls r1, r2, 16 ldr r0, =0x09fe0000 cmp r1, r0 bls _0802BF16 ldr r1, =0xfffff601 adds r0, r2, r1 strh r0, [r3, 0x34] _0802BF16: ldr r1, [r4] ldr r2, [r1, 0x14] str r2, [r1, 0x18] ldrh r0, [r1, 0x34] lsrs r0, 8 str r0, [r1, 0x14] cmp r0, 0x6 bls _0802BF34 cmp r2, 0x6 bhi _0802BF34 ldrh r0, [r1, 0x36] adds r0, 0x1 strh r0, [r1, 0x36] bl sub_802BF7C _0802BF34: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802BEE4 thumb_func_start sub_802BF48 sub_802BF48: @ 802BF48 push {lr} ldr r0, =gUnknown_02022CFC ldr r2, [r0] ldr r0, [r2, 0x10] cmp r0, 0 beq _0802BF5C movs r0, 0 b _0802BF72 .pool _0802BF5C: ldr r3, [r2, 0x1C] ldrh r1, [r2, 0x34] ldr r0, =0x000005ff cmp r1, r0 bhi _0802BF70 ldr r0, [r2, 0x20] adds r0, 0x50 str r0, [r2, 0x20] lsrs r0, 8 adds r3, r0 _0802BF70: adds r0, r3, 0 _0802BF72: pop {r1} bx r1 .pool thumb_func_end sub_802BF48 thumb_func_start sub_802BF7C sub_802BF7C: @ 802BF7C push {r4,lr} ldr r4, =gUnknown_02022CFC ldr r3, [r4] movs r0, 0 str r0, [r3, 0x20] adds r1, r3, 0 adds r1, 0x4E ldrh r0, [r1] cmp r0, 0 beq _0802BFC0 subs r0, 0x1 strh r0, [r1] ldr r0, [r3, 0x6C] cmp r0, 0 beq _0802C08A bl sub_802C098 movs r1, 0x3 ands r1, r0 cmp r1, 0 beq _0802BFB0 ldr r1, [r4] b _0802C086 .pool _0802BFB0: ldr r1, [r4] ldr r0, [r1, 0x28] cmp r0, 0x36 bls _0802BFBC movs r0, 0x1E b _0802C088 _0802BFBC: movs r0, 0x52 b _0802C088 _0802BFC0: adds r2, r3, 0 adds r2, 0x50 ldrb r1, [r2] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _0802C014 ldr r0, =gUnknown_082FB63C ldrb r1, [r2] lsls r1, 1 adds r1, r0 adds r0, r3, 0 adds r0, 0x51 ldrb r2, [r0] lsls r0, r2, 3 subs r0, r2 ldrh r1, [r1] adds r0, r1 str r0, [r3, 0x28] bl sub_802C098 ldr r2, [r4] ldr r3, =gUnknown_082FB64C movs r1, 0x3 ands r1, r0 lsls r1, 1 adds r1, r3 ldrh r0, [r1] adds r0, 0x2 adds r1, r2, 0 adds r1, 0x4E strh r0, [r1] adds r2, 0x50 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] b _0802C082 .pool _0802C014: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0x8 bne _0802C030 adds r1, r3, 0 adds r1, 0x51 ldrb r0, [r1] cmp r0, 0x2 bhi _0802C02C adds r0, 0x1 strb r0, [r1] b _0802C030 _0802C02C: movs r0, 0x1 str r0, [r3, 0x6C] _0802C030: ldr r2, =gUnknown_082FB63C ldr r4, =gUnknown_02022CFC ldr r0, [r4] mov r12, r0 mov r3, r12 adds r3, 0x50 ldrb r0, [r3] movs r1, 0xF subs r1, r0 lsls r1, 1 adds r1, r2 mov r0, r12 adds r0, 0x51 ldrb r2, [r0] lsls r0, r2, 3 subs r0, r2 ldrh r1, [r1] adds r0, r1 mov r1, r12 str r0, [r1, 0x28] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0802C082 bl sub_802C098 movs r1, 0x3 ands r1, r0 cmp r1, 0 bne _0802C07A ldr r1, [r4] ldr r0, [r1, 0x28] subs r0, 0x5 str r0, [r1, 0x28] _0802C07A: ldr r0, [r4] adds r0, 0x50 movs r1, 0 strb r1, [r0] _0802C082: ldr r0, =gUnknown_02022CFC ldr r1, [r0] _0802C086: ldr r0, [r1, 0x28] _0802C088: str r0, [r1, 0x1C] _0802C08A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802BF7C thumb_func_start sub_802C098 sub_802C098: @ 802C098 ldr r0, =gUnknown_02022CFC ldr r2, [r0] ldr r1, [r2, 0x24] ldr r0, =0x41c64e6d muls r0, r1 ldr r1, =0x00006073 adds r0, r1 str r0, [r2, 0x24] lsrs r0, 16 bx lr .pool thumb_func_end sub_802C098 thumb_func_start sub_802C0B8 sub_802C0B8: @ 802C0B8 push {lr} ldr r0, =gUnknown_02022CFC ldr r1, [r0] movs r0, 0x1 str r0, [r1, 0x10] movs r0, 0x6 str r0, [r1, 0x14] ldr r0, =0x000005ff strh r0, [r1, 0x34] bl sub_802C270 pop {r0} bx r0 .pool thumb_func_end sub_802C0B8 thumb_func_start sub_802C0DC sub_802C0DC: @ 802C0DC ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldr r0, [r0, 0x10] bx lr .pool thumb_func_end sub_802C0DC thumb_func_start sub_802C0E8 sub_802C0E8: @ 802C0E8 push {r4,r5,lr} ldr r5, =gUnknown_02022CFC ldr r4, =0x000082f8 movs r3, 0 movs r2, 0 movs r1, 0x4 _0802C0F4: ldr r0, [r5] adds r0, r4 adds r0, r2 str r3, [r0] adds r2, 0x28 subs r1, 0x1 cmp r1, 0 bge _0802C0F4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802C0E8 thumb_func_start sub_802C114 sub_802C114: @ 802C114 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldr r1, =0x000083ac adds r0, r1 ldr r1, [r0] movs r2, 0 strh r2, [r1, 0x10] ldr r0, [r0] strh r2, [r0, 0x12] bx lr .pool thumb_func_end sub_802C114 thumb_func_start sub_802C130 sub_802C130: @ 802C130 push {lr} lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_02022CFC ldr r2, [r1] ldrb r3, [r2, 0x6] lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r2, r1 ldr r1, =0x000082f4 adds r2, r1 ldrh r1, [r2] cmp r1, r0 beq _0802C15C movs r0, 0 b _0802C15E .pool _0802C15C: movs r0, 0x1 _0802C15E: pop {r1} bx r1 thumb_func_end sub_802C130 thumb_func_start sub_802C164 sub_802C164: @ 802C164 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldr r1, =0x000083ac adds r2, r0, r1 ldr r1, [r2] adds r0, 0x4A ldrh r0, [r0] strh r0, [r1, 0xE] ldr r1, [r2] ldrh r0, [r1, 0x10] strh r0, [r1, 0x12] ldr r1, [r2] movs r0, 0x1 strh r0, [r1, 0x10] bx lr .pool thumb_func_end sub_802C164 thumb_func_start sub_802C18C sub_802C18C: @ 802C18C push {r4,lr} ldr r0, =gUnknown_02022CFC ldr r2, [r0] ldr r0, =0x000083ac adds r3, r2, r0 ldr r1, [r3] ldrh r0, [r1, 0x10] strh r0, [r1, 0x12] ldr r0, [r3] movs r4, 0x2 strh r4, [r0, 0x10] ldr r1, [r3] adds r2, 0x4A ldrh r0, [r2] strh r0, [r1, 0xE] ldr r0, [r3] str r4, [r0, 0x14] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802C18C thumb_func_start sub_802C1BC sub_802C1BC: @ 802C1BC ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldr r1, =0x000083ac adds r0, r1 ldr r1, [r0] ldrh r2, [r1, 0x10] movs r3, 0 strh r2, [r1, 0x12] ldr r0, [r0] strh r3, [r0, 0x10] bx lr .pool thumb_func_end sub_802C1BC thumb_func_start sub_802C1DC sub_802C1DC: @ 802C1DC push {r4,r5,lr} ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldr r0, [r1, 0x5C] cmp r0, 0 beq _0802C21C ldr r0, [r1, 0x78] bl sub_802DD64 ldr r1, [r4] movs r5, 0 str r5, [r1, 0x5C] adds r0, r1, 0 adds r0, 0x4D ldrb r0, [r0] cmp r0, 0 beq _0802C21C adds r0, r1, 0 adds r0, 0x71 ldrb r0, [r0] bl sub_802DCCC ldr r1, =gUnknown_082FB654 subs r0, 0x2 lsls r0, 1 adds r0, r1 ldrh r0, [r0] bl PlaySE ldr r0, [r4] adds r0, 0x4D strb r5, [r0] _0802C21C: ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x74 ldrh r0, [r0] bl sub_802DD74 bl sub_802C280 bl sub_802C240 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802C1DC thumb_func_start sub_802C240 sub_802C240: @ 802C240 push {lr} ldr r0, =gUnknown_02022CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x46 ldrb r0, [r0] cmp r0, 0 beq _0802C256 ldr r0, [r1, 0x14] bl sub_802DC9C _0802C256: pop {r0} bx r0 .pool thumb_func_end sub_802C240 thumb_func_start sub_802C260 sub_802C260: @ 802C260 ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x46 movs r1, 0 strb r1, [r0] bx lr .pool thumb_func_end sub_802C260 thumb_func_start sub_802C270 sub_802C270: @ 802C270 ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x46 movs r1, 0x1 strb r1, [r0] bx lr .pool thumb_func_end sub_802C270 thumb_func_start sub_802C280 sub_802C280: @ 802C280 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 movs r6, 0 ldr r2, =gUnknown_02022CFC ldr r0, [r2] ldrb r0, [r0, 0x5] mov r9, r0 movs r5, 0 cmp r6, r9 bge _0802C360 mov r10, r2 mov r8, r5 movs r7, 0 _0802C2A2: mov r0, r10 ldr r3, [r0] adds r1, r3, r7 ldr r2, =0x000082f4 adds r0, r1, r2 ldrh r2, [r0] cmp r2, 0x1 beq _0802C2D4 cmp r2, 0x1 bgt _0802C2C4 cmp r2, 0 beq _0802C2CA b _0802C354 .pool _0802C2C4: cmp r2, 0x2 beq _0802C338 b _0802C354 _0802C2CA: adds r0, r5, 0 movs r1, 0 bl sub_802DC80 b _0802C354 _0802C2D4: ldr r0, =0x000082f6 adds r4, r1, r0 ldrh r0, [r4] cmp r0, 0x1 bne _0802C2F6 ldr r0, =0x000082f2 adds r0, r1 adds r1, r3, 0 adds r1, 0x9A add r1, r8 str r1, [sp] ldrh r1, [r0] mov r12, r1 ldr r0, [sp] ldrh r0, [r0] cmp r12, r0 beq _0802C31E _0802C2F6: ldrb r3, [r3, 0x6] cmp r5, r3 bne _0802C2FE strh r2, [r4] _0802C2FE: orrs r6, r2 mov r1, r10 ldr r2, [r1] ldr r1, =0x000082e8 adds r0, r2, r1 adds r0, r7 ldr r1, =0x7fffffff str r1, [r0] adds r1, r2, 0 adds r1, 0x9A add r1, r8 adds r2, r7 ldr r0, =0x000082f2 adds r2, r0 ldrh r0, [r2] strh r0, [r1] _0802C31E: adds r0, r5, 0 bl sub_802C398 b _0802C354 .pool _0802C338: ldr r0, =0x000082f6 adds r1, r0 ldrh r0, [r1] cmp r0, 0x2 beq _0802C354 ldrb r3, [r3, 0x6] cmp r5, r3 bne _0802C34A strh r2, [r1] _0802C34A: orrs r6, r2 lsls r0, r5, 24 lsrs r0, 24 bl sub_802DD88 _0802C354: movs r1, 0x2 add r8, r1 adds r7, 0x28 adds r5, 0x1 cmp r5, r9 blt _0802C2A2 _0802C360: movs r0, 0x2 ands r0, r6 cmp r0, 0 beq _0802C378 movs r0, 0x83 lsls r0, 1 bl PlaySE b _0802C386 .pool _0802C378: movs r0, 0x1 ands r6, r0 cmp r6, 0 beq _0802C386 movs r0, 0xA bl PlaySE _0802C386: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802C280 thumb_func_start sub_802C398 sub_802C398: @ 802C398 push {r4-r6,lr} adds r6, r0, 0 ldr r0, =gUnknown_02022CFC ldr r2, [r0] ldr r0, [r2, 0x68] cmp r0, 0 bne _0802C432 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =0x000082e4 adds r0, r1 adds r5, r2, r0 ldr r1, [r5, 0x4] ldr r0, =0x7fffffff cmp r1, r0 beq _0802C3D0 adds r0, r1, 0x1 str r0, [r5, 0x4] adds r3, r0, 0 b _0802C3E8 .pool _0802C3D0: adds r0, r2, 0 adds r0, 0x4A ldrh r1, [r0] ldrh r0, [r5, 0xE] subs r3, r1, r0 ldr r0, =0x0000fde7 cmp r3, r0 ble _0802C3E6 ldr r0, =0xffff0218 adds r3, r0 adds r3, r1 _0802C3E6: str r3, [r5, 0x4] _0802C3E8: cmp r3, 0x3 ble _0802C432 subs r3, 0x4 cmp r3, 0x2F bgt _0802C414 ldr r2, =gUnknown_082FB65C ldrh r1, [r5, 0xC] lsls r0, r1, 1 adds r0, r1 lsls r0, 4 adds r0, r3, r0 adds r0, r2 movs r4, 0 ldrsb r4, [r0, r4] b _0802C416 .pool _0802C414: movs r4, 0 _0802C416: adds r1, r4, 0 adds r0, r6, 0 bl sub_802DC80 cmp r4, 0 bne _0802C430 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrb r0, [r0, 0x6] cmp r6, r0 bne _0802C430 bl sub_802C1BC _0802C430: str r4, [r5] _0802C432: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802C398 thumb_func_start sub_802C43C sub_802C43C: @ 802C43C push {r4,r5,lr} ldr r5, =gUnknown_02022CFC ldr r1, [r5] ldr r0, [r1, 0x14] cmp r0, 0x8 bne _0802C4CE ldr r0, [r1, 0x18] cmp r0, 0x7 bne _0802C4CE ldr r4, [r1, 0x58] cmp r4, 0 bne _0802C46C bl sub_802C780 ldr r0, [r5] str r4, [r0, 0x54] movs r1, 0x1 str r1, [r0, 0x58] adds r0, 0x71 strb r4, [r0] b _0802C4CE .pool _0802C46C: ldr r0, [r1, 0x54] cmp r0, 0x5 bne _0802C480 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] ldrh r0, [r1, 0xC] bl sub_802C7A0 b _0802C484 _0802C480: movs r0, 0 strh r0, [r1, 0xC] _0802C484: ldr r4, =gUnknown_02022CFC ldr r1, [r4] ldr r0, [r1, 0x54] cmp r0, 0x1 ble _0802C49E movs r0, 0x1 str r0, [r1, 0x64] adds r0, r1, 0 adds r0, 0x86 adds r1, 0x81 movs r2, 0x5 bl memcpy _0802C49E: bl sub_802C780 ldr r0, [r4] movs r2, 0 str r2, [r0, 0x54] movs r1, 0x1 str r1, [r0, 0x58] adds r0, 0x71 strb r2, [r0] ldr r0, [r4] adds r2, r0, 0 adds r2, 0x74 ldrh r1, [r2] ldr r0, =0x0000270e cmp r1, r0 bhi _0802C4C2 adds r0, r1, 0x1 strh r0, [r2] _0802C4C2: movs r0, 0xA bl sub_802C688 movs r0, 0x3 bl sub_802AE14 _0802C4CE: ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldr r0, [r0, 0x64] cmp r0, 0 beq _0802C504 bl sub_802C618 cmp r0, 0x1 beq _0802C4E8 ldr r0, [r4] ldr r0, [r0, 0x14] cmp r0, 0 bne _0802C504 _0802C4E8: ldr r0, [r4] adds r0, 0x86 bl sub_802C73C bl sub_802C790 bl sub_802C688 movs r0, 0x3 bl sub_802AE14 ldr r1, [r4] movs r0, 0 str r0, [r1, 0x64] _0802C504: ldr r4, =gUnknown_02022CFC ldr r0, [r4] ldr r0, [r0, 0x58] cmp r0, 0 beq _0802C52A bl sub_802C6B0 adds r2, r0, 0 ldr r1, [r4] ldr r0, [r1, 0x54] cmp r2, r0 ble _0802C52A str r2, [r1, 0x54] adds r0, r1, 0 adds r0, 0x81 adds r1, 0x7C movs r2, 0x5 bl memcpy _0802C52A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802C43C thumb_func_start sub_802C538 sub_802C538: @ 802C538 push {r4,r5,lr} ldr r5, =gUnknown_02022CFC ldr r1, [r5] ldr r0, [r1, 0x14] cmp r0, 0x6 bne _0802C582 ldr r4, =0x000083ac adds r0, r1, r4 ldr r1, [r0] ldr r0, [r1] cmp r0, 0 bne _0802C582 ldrh r0, [r1, 0x12] cmp r0, 0x1 bne _0802C578 bl sub_802C0DC adds r1, r0, 0 cmp r1, 0x1 bne _0802C578 ldr r0, [r5] adds r0, r4 ldr r0, [r0] str r1, [r0, 0x14] b _0802C582 .pool _0802C574: movs r0, 0 b _0802C5CA _0802C578: bl sub_802C18C movs r0, 0x3 bl sub_802AE14 _0802C582: ldr r0, =gUnknown_02022CFC ldr r1, [r0] ldr r0, [r1, 0x14] cmp r0, 0x7 bne _0802C5A8 ldr r0, [r1, 0x18] cmp r0, 0x6 bne _0802C5A8 ldr r2, =0x000083ac adds r0, r1, r2 ldr r1, [r0] ldrh r0, [r1, 0x10] cmp r0, 0x2 beq _0802C5A8 movs r0, 0x1 str r0, [r1, 0x14] movs r0, 0x3 bl sub_802AE14 _0802C5A8: movs r2, 0 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrb r1, [r0, 0x5] cmp r2, r1 bge _0802C5C8 adds r3, r1, 0 ldr r4, =0x000082f4 adds r1, r0, r4 _0802C5BA: ldrh r0, [r1] cmp r0, 0x2 beq _0802C574 adds r1, 0x28 adds r2, 0x1 cmp r2, r3 blt _0802C5BA _0802C5C8: movs r0, 0x1 _0802C5CA: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_802C538 thumb_func_start sub_802C5DC sub_802C5DC: @ 802C5DC push {r4,lr} ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrb r3, [r0, 0x5] movs r4, 0 cmp r4, r3 bge _0802C600 ldr r1, =0x000082f8 adds r2, r0, r1 adds r1, r3, 0 _0802C5F0: ldr r0, [r2] cmp r0, 0 beq _0802C5F8 adds r4, 0x1 _0802C5F8: adds r2, 0x28 subs r1, 0x1 cmp r1, 0 bne _0802C5F0 _0802C600: movs r0, 0 cmp r4, r3 bne _0802C608 movs r0, 0x1 _0802C608: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_802C5DC thumb_func_start sub_802C618 sub_802C618: @ 802C618 push {r4,lr} movs r2, 0 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrb r1, [r0, 0x5] cmp r2, r1 bge _0802C648 adds r3, r1, 0 ldr r4, =0x000082f8 adds r1, r0, r4 _0802C62C: ldr r0, [r1] cmp r0, 0x1 beq _0802C640 movs r0, 0 b _0802C64A .pool _0802C640: adds r1, 0x28 adds r2, 0x1 cmp r2, r3 blt _0802C62C _0802C648: movs r0, 0x1 _0802C64A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802C618 thumb_func_start sub_802C650 sub_802C650: @ 802C650 push {lr} ldr r0, =gUnknown_02022CFC ldr r1, [r0] adds r0, r1, 0 adds r0, 0x45 ldrb r0, [r0] cmp r0, 0x1 bne _0802C668 _0802C660: movs r0, 0 b _0802C684 .pool _0802C668: movs r2, 0x1 ldrb r0, [r1, 0x5] cmp r2, r0 bge _0802C682 adds r3, r0, 0 adds r1, 0x92 _0802C674: ldrh r0, [r1] cmp r0, 0x1 beq _0802C660 adds r1, 0x2 adds r2, 0x1 cmp r2, r3 blt _0802C674 _0802C682: movs r0, 0x1 _0802C684: pop {r1} bx r1 thumb_func_end sub_802C650 thumb_func_start sub_802C688 sub_802C688: @ 802C688 push {lr} ldr r1, =gUnknown_02022CFC ldr r2, [r1] ldr r1, [r2, 0x78] adds r1, r0 str r1, [r2, 0x78] movs r0, 0x1 str r0, [r2, 0x5C] ldr r0, =0x00018695 cmp r1, r0 bls _0802C6A2 adds r0, 0x1 str r0, [r2, 0x78] _0802C6A2: pop {r0} bx r0 .pool thumb_func_end sub_802C688 thumb_func_start sub_802C6B0 sub_802C6B0: @ 802C6B0 push {r4-r7,lr} movs r5, 0 ldr r1, =gUnknown_02022CFC ldr r0, [r1] ldrb r4, [r0, 0x5] movs r2, 0 cmp r5, r4 bge _0802C702 mov r12, r1 movs r3, 0 ldr r7, =0x000082e4 movs r6, 0x1E negs r6, r6 _0802C6CA: mov r0, r12 ldr r1, [r0] adds r0, r1, r7 adds r0, r3 ldr r0, [r0] cmp r0, r6 bne _0802C6F0 adds r0, r1, 0 adds r0, 0x7C adds r0, r2 movs r1, 0x1 strb r1, [r0] adds r5, 0x1 b _0802C6FA .pool _0802C6F0: adds r0, r1, 0 adds r0, 0x7C adds r0, r2 movs r1, 0 strb r1, [r0] _0802C6FA: adds r3, 0x28 adds r2, 0x1 cmp r2, r4 blt _0802C6CA _0802C702: adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_802C6B0 thumb_func_start sub_802C70C sub_802C70C: @ 802C70C push {lr} movs r2, 0 ldr r1, =gUnknown_03005000 ldr r3, =0x000009e6 adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0802C728 ldr r3, =0x00000c1a adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _0802C728 movs r2, 0x1 _0802C728: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_802C70C thumb_func_start sub_802C73C sub_802C73C: @ 802C73C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 ldr r6, =gUnknown_02022CFC movs r5, 0x1 _0802C74A: adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _0802C75A adds r0, r5, 0 lsls r0, r1 orrs r2, r0 adds r3, 0x1 _0802C75A: adds r1, 0x1 cmp r1, 0x4 ble _0802C74A ldr r0, [r6] adds r0, 0x71 strb r2, [r0] cmp r2, 0 beq _0802C772 ldr r0, [r6] adds r0, 0x4D movs r1, 0x1 strb r1, [r0] _0802C772: adds r0, r3, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_802C73C thumb_func_start sub_802C780 sub_802C780: @ 802C780 ldr r0, =gUnknown_02022CFC ldr r0, [r0] adds r0, 0x44 movs r1, 0 strb r1, [r0] bx lr .pool thumb_func_end sub_802C780 thumb_func_start sub_802C790 sub_802C790: @ 802C790 ldr r1, =gUnknown_082FB6EC lsls r0, 2 adds r0, r1 ldr r0, [r0] bx lr .pool thumb_func_end sub_802C790 thumb_func_start sub_802C7A0 sub_802C7A0: @ 802C7A0 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrh r2, [r0, 0xE] cmp r1, r2 bls _0802C7B2 strh r1, [r0, 0xE] _0802C7B2: pop {r0} bx r0 .pool thumb_func_end sub_802C7A0 thumb_func_start sub_802C7BC sub_802C7BC: @ 802C7BC push {lr} ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldr r1, =gUnknown_082FB714 ldr r2, [r0, 0x78] ldr r0, [r1] cmp r2, r0 bcs _0802C7D8 movs r0, 0 b _0802C7DA .pool _0802C7D8: movs r0, 0x1 _0802C7DA: pop {r1} bx r1 thumb_func_end sub_802C7BC thumb_func_start sub_802C7E0 sub_802C7E0: @ 802C7E0 push {r4,lr} bl sub_802C818 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_802C838 lsls r0, 16 lsrs r0, 4 ldr r1, =0x00000fff ands r4, r1 orrs r0, r4 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_802C7E0 thumb_func_start sub_802C808 sub_802C808: @ 802C808 lsls r0, 16 lsrs r3, r0, 28 strh r3, [r2] lsls r0, 4 lsrs r0, 20 strh r0, [r1] bx lr thumb_func_end sub_802C808 thumb_func_start sub_802C818 sub_802C818: @ 802C818 push {lr} bl Random lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 ldr r0, =gUnknown_082FB704 lsrs r1, 15 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .pool thumb_func_end sub_802C818 thumb_func_start sub_802C838 sub_802C838: @ 802C838 push {r4-r6,lr} movs r5, 0 movs r4, 0 ldr r3, =gUnknown_02022CFC ldr r0, [r3] ldr r2, =gUnknown_082FB714 ldr r1, [r0, 0x78] ldr r0, [r2] cmp r1, r0 bcc _0802C874 ldr r5, [r2, 0x4] adds r6, r3, 0 adds r3, r2, 0x4 _0802C852: adds r3, 0x8 adds r2, 0x8 adds r4, 0x1 cmp r4, 0x4 bhi _0802C874 ldr r0, [r6] ldr r1, [r0, 0x78] ldr r0, [r2] cmp r1, r0 bcc _0802C874 ldr r5, [r3] b _0802C852 .pool _0802C874: lsls r0, r5, 16 lsrs r0, 16 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802C838 thumb_func_start sub_802C880 sub_802C880: @ 802C880 push {r4,r5,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 b _0802C892 _0802C88C: subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _0802C892: cmp r4, 0 beq _0802C8A4 adds r0, r5, 0 adds r1, r4, 0 bl CheckBagHasSpace lsls r0, 24 cmp r0, 0 beq _0802C88C _0802C8A4: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802C880 thumb_func_start sub_802C8AC sub_802C8AC: @ 802C8AC push {lr} bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_802C8AC thumb_func_start sub_802C8BC sub_802C8BC: @ 802C8BC ldr r0, =gUnknown_02022CFC ldr r0, [r0] ldrb r0, [r0, 0x6] bx lr .pool thumb_func_end sub_802C8BC thumb_func_start sub_802C8C8 sub_802C8C8: @ 802C8C8 lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02022CFC lsls r1, r0, 1 adds r1, r0 lsls r1, 2 ldr r0, =0x000082a8 adds r1, r0 ldr r0, [r2] adds r0, r1 bx lr .pool thumb_func_end sub_802C8C8 thumb_func_start sub_802C8E8 sub_802C8E8: @ 802C8E8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_02022CFC lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, [r2] adds r0, r1 movs r1, 0x83 lsls r1, 8 adds r0, r1 bx lr .pool thumb_func_end sub_802C8E8 thumb_func_start sub_802C908 sub_802C908: @ 802C908 push {lr} lsls r0, 16 lsrs r0, 16 bl sub_802AC00 lsls r0, 16 asrs r0, 16 mvns r0, r0 lsrs r0, 31 pop {r1} bx r1 thumb_func_end sub_802C908 thumb_func_start sub_802C920 sub_802C920: @ 802C920 push {r4,r5,lr} movs r5, 0 _0802C924: 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 _0802C95C adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r0, 16 bl sub_802C908 cmp r0, 0 beq _0802C95C ldr r1, =gScriptResult movs r0, 0x1 b _0802C966 .pool _0802C95C: adds r5, 0x1 cmp r5, 0x5 ble _0802C924 ldr r1, =gScriptResult movs r0, 0 _0802C966: strh r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802C920 thumb_func_start sub_802C974 sub_802C974: @ 802C974 push {r4-r6,lr} adds r6, r0, 0 movs r4, 0 ldr r5, =gUnknown_082FBE08 _0802C97C: adds r0, r5, 0 bl LoadCompressedObjectPic adds r5, 0x8 adds r4, 0x1 cmp r4, 0x4 bls _0802C97C movs r4, 0 ldr r5, =gUnknown_082FBE30 _0802C98E: adds r0, r5, 0 bl LoadSpritePalette adds r5, 0x8 adds r4, 0x1 cmp r4, 0x1 bls _0802C98E movs r0, 0x5 bl IndexOfSpritePaletteTag strb r0, [r6, 0xE] movs r0, 0x6 bl IndexOfSpritePaletteTag strb r0, [r6, 0xF] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802C974 thumb_func_start sub_802C9BC sub_802C9BC: @ 802C9BC push {lr} movs r2, 0 movs r1, 0x7 adds r0, 0x3C _0802C9C4: strh r2, [r0] subs r0, 0x2 subs r1, 0x1 cmp r1, 0 bge _0802C9C4 pop {r0} bx r0 thumb_func_end sub_802C9BC thumb_func_start sub_802C9D4 sub_802C9D4: @ 802C9D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 mov r9, r0 adds r7, r1, 0 ldr r0, [sp, 0x54] lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x28] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x2C] lsls r0, 24 lsrs r6, r0, 24 mov r1, sp ldr r0, =gUnknown_082FBE40 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} movs r0, 0x80 lsls r0, 6 bl Alloc mov r8, r0 movs r0, 0x80 lsls r0, 4 bl Alloc mov r10, r0 bl sub_802C8BC lsls r0, 16 lsrs r0, 16 cmp r6, r0 bne _0802CA2C movs r0, 0x3 b _0802CA32 .pool _0802CA2C: adds r0, r6, 0x4 lsls r0, 24 lsrs r0, 24 _0802CA32: str r0, [sp, 0x30] mov r1, r8 cmp r1, 0 beq _0802CAF4 mov r2, r10 cmp r2, 0 beq _0802CAF4 ldrh r2, [r7] lsls r0, r2, 3 ldr r1, =gMonStillFrontPicTable adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 bl HandleLoadSpecialPokePic mov r3, r8 str r3, [sp, 0x18] adds r4, r6, 0 add r0, sp, 0x18 ldr r5, =0xffff0000 lsls r1, r4, 16 movs r2, 0x80 lsls r2, 4 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpriteSheet ldrh r0, [r7] ldr r1, [r7, 0x4] ldr r2, [r7, 0x8] bl species_and_otid_get_pal str r0, [sp, 0x20] add r0, sp, 0x20 ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r4 str r1, [r0, 0x4] bl LoadCompressedObjectPalette mov r0, r8 bl Free mov r0, r10 bl Free mov r1, sp mov r0, sp ldrh r0, [r0] adds r0, r6 strh r0, [r1] mov r0, sp ldrh r0, [r0, 0x2] adds r0, r6 strh r0, [r1, 0x2] ldr r4, [sp, 0x28] lsls r1, r4, 16 asrs r1, 16 ldr r0, [sp, 0x2C] lsls r2, r0, 16 asrs r2, 16 mov r0, sp ldr r3, [sp, 0x30] bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0802CAF4 lsls r0, r6, 2 ldr r2, =0x000081a8 add r2, r9 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] ldr r0, =0x000081fc add r0, r9 adds r0, r6 add r1, sp, 0x30 ldrb r1, [r1] strb r1, [r0] b _0802CB00 .pool _0802CAF4: lsls r0, r6, 2 ldr r1, =0x000081a8 add r1, r9 adds r1, r0 movs r0, 0 str r0, [r1] _0802CB00: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802C9D4 thumb_func_start sub_802CB14 sub_802CB14: @ 802CB14 push {r4-r6,lr} adds r4, r0, 0 lsls r6, r1, 2 ldr r0, =0x000081bc adds r5, r4, r0 adds r5, r6 ldr r0, [r5] bl sub_802C9BC ldr r2, [r5] ldr r0, =0x000081a8 adds r4, r0 adds r4, r6 ldr r1, [r4] ldr r0, =gSprites subs r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r1, r0, 8 adds r0, r1 lsls r1, r0, 16 adds r0, r1 negs r0, r0 asrs r0, 2 strh r0, [r2, 0x3C] ldr r1, [r5] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r5] movs r0, 0x60 strh r0, [r1, 0x22] ldr r0, [r5] ldr r1, =sub_802CB7C str r1, [r0, 0x1C] movs r1, 0x1 bl StartSpriteAnim pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802CB14 thumb_func_start sub_802CB7C sub_802CB7C: @ 802CB7C push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _0802CBA8 cmp r0, 0x1 bgt _0802CB92 cmp r0, 0 beq _0802CB98 b _0802CBE6 _0802CB92: cmp r0, 0x2 beq _0802CBC8 b _0802CBE6 _0802CB98: adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0802CBE6 b _0802CBD6 _0802CBA8: ldrh r1, [r2, 0x22] subs r1, 0x1 strh r1, [r2, 0x22] ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r1, 16 asrs r1, 16 cmp r1, 0x48 bgt _0802CBE6 movs r0, 0x48 strh r0, [r2, 0x22] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] b _0802CBE6 _0802CBC8: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x2F ble _0802CBE6 _0802CBD6: adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _0802CBE6: pop {r0} bx r0 .pool thumb_func_end sub_802CB7C thumb_func_start sub_802CBF0 sub_802CBF0: @ 802CBF0 push {lr} lsls r1, 2 ldr r2, =0x000081a8 adds r0, r2 adds r0, r1 ldr r2, [r0] ldr r1, =sub_802CC40 str r1, [r2, 0x1C] movs r1, 0 strh r1, [r2, 0x26] ldr r0, [r0] bl sub_802C9BC pop {r0} bx r0 .pool thumb_func_end sub_802CBF0 thumb_func_start sub_802CC18 sub_802CC18: @ 802CC18 push {lr} movs r2, 0 lsls r1, 2 ldr r3, =0x000081a8 adds r0, r3 adds r0, r1 ldr r0, [r0] ldr r1, [r0, 0x1C] ldr r0, =sub_802CC40 cmp r1, r0 bne _0802CC30 movs r2, 0x1 _0802CC30: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_802CC18 thumb_func_start sub_802CC40 sub_802CC40: @ 802CC40 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _0802CC6C ldrh r0, [r2, 0x32] adds r0, 0x1 strh r0, [r2, 0x32] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _0802CC64 movs r0, 0x2 b _0802CC66 _0802CC64: ldr r0, =0x0000fffe _0802CC66: strh r0, [r2, 0x26] movs r0, 0 strh r0, [r2, 0x30] _0802CC6C: movs r1, 0x32 ldrsh r0, [r2, r1] cmp r0, 0xC ble _0802CC7C movs r0, 0 strh r0, [r2, 0x26] ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] _0802CC7C: pop {r0} bx r0 .pool thumb_func_end sub_802CC40 thumb_func_start sub_802CC88 sub_802CC88: @ 802CC88 push {r4,lr} adds r4, r0, 0 lsls r1, 2 ldr r0, =0x000081a8 adds r4, r0 adds r4, r1 ldr r0, [r4] bl sub_802C9BC ldr r1, [r4] ldr r0, =sub_802CD08 str r0, [r1, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802CC88 thumb_func_start sub_802CCB0 sub_802CCB0: @ 802CCB0 push {r4-r7,lr} adds r4, r0, 0 bl sub_802C8AC lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _0802CCF4 movs r1, 0x5 negs r1, r1 mov r12, r1 ldr r1, =0x000081a8 adds r3, r4, r1 ldr r7, =sub_802CD08 ldr r6, =SpriteCallbackDummy movs r5, 0xA adds r4, r0, 0 _0802CCD2: ldr r2, [r3] ldr r0, [r2, 0x1C] cmp r0, r7 bne _0802CCEC adds r2, 0x3E ldrb r1, [r2] mov r0, r12 ands r0, r1 strb r0, [r2] ldr r0, [r3] str r6, [r0, 0x1C] adds r0, 0x43 strb r5, [r0] _0802CCEC: adds r3, 0x4 subs r4, 0x1 cmp r4, 0 bne _0802CCD2 _0802CCF4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802CCB0 thumb_func_start sub_802CD08 sub_802CD08: @ 802CD08 push {lr} adds r3, r0, 0 ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _0802CD36 movs r0, 0 strh r0, [r3, 0x2E] adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _0802CD36: pop {r0} bx r0 thumb_func_end sub_802CD08 thumb_func_start sub_802CD3C sub_802CD3C: @ 802CD3C push {r4,r5,lr} adds r4, r0, 0 bl sub_802C8AC lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 cmp r2, r3 bge _0802CD66 ldr r0, =0x000081fc adds r5, r4, r0 subs r0, 0x54 adds r4, r0 _0802CD56: ldm r4!, {r0} adds r1, r5, r2 ldrb r1, [r1] adds r0, 0x43 strb r1, [r0] adds r2, 0x1 cmp r2, r3 blt _0802CD56 _0802CD66: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802CD3C thumb_func_start sub_802CD70 sub_802CD70: @ 802CD70 push {r4,lr} adds r4, r0, 0 lsls r1, 2 ldr r0, =0x000081a8 adds r4, r0 adds r4, r1 ldr r0, [r4] bl sub_802C9BC ldr r1, [r4] ldr r0, =sub_802CDD4 str r0, [r1, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802CD70 thumb_func_start sub_802CD98 sub_802CD98: @ 802CD98 push {r4,r5,lr} adds r4, r0, 0 bl sub_802C8AC lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 cmp r2, r3 bge _0802CDCC ldr r5, =sub_802CDD4 ldr r0, =0x000081a8 adds r1, r4, r0 _0802CDB0: ldr r0, [r1] ldr r0, [r0, 0x1C] cmp r0, r5 bne _0802CDC4 movs r0, 0x1 b _0802CDCE .pool _0802CDC4: adds r1, 0x4 adds r2, 0x1 cmp r2, r3 blt _0802CDB0 _0802CDCC: movs r0, 0 _0802CDCE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802CD98 thumb_func_start sub_802CDD4 sub_802CDD4: @ 802CDD4 push {r4,r5,lr} adds r5, r0, 0 movs r0, 0x2E ldrsh r4, [r5, r0] cmp r4, 0 beq _0802CDE6 cmp r4, 0x1 beq _0802CDF4 b _0802CE3C _0802CDE6: movs r0, 0x22 bl PlaySE strh r4, [r5, 0x30] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0802CDF4: ldrh r0, [r5, 0x30] adds r0, 0x4 strh r0, [r5, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _0802CE06 movs r0, 0 strh r0, [r5, 0x30] _0802CE06: ldr r1, =gSineTable movs r2, 0x30 ldrsh r0, [r5, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 negs r0, r0 strh r0, [r5, 0x26] movs r0, 0x30 ldrsh r1, [r5, r0] cmp r1, 0 bne _0802CE3C ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bgt _0802CE38 strh r1, [r5, 0x2E] b _0802CE3C .pool _0802CE38: ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _0802CE3C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802CDD4 thumb_func_start sub_802CE48 sub_802CE48: @ 802CE48 push {r4,r5,lr} adds r5, r0, 0 lsls r3, 24 lsrs r4, r3, 24 ldr r0, =gUnknown_082FC00C lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _0802CE88 ldr r0, =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x4 orrs r0, r2 strb r0, [r3] lsls r2, r4, 2 ldr r3, =0x000081bc adds r0, r5, r3 adds r0, r2 str r1, [r0] _0802CE88: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802CE48 thumb_func_start sub_802CE9C sub_802CE9C: @ 802CE9C push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 movs r4, 0 ldr r6, =gUnknown_082FBE58 _0802CEA6: ldr r1, =gUnknown_082FBEB8 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldr r2, =gUnknown_082FBEA8 lsls r1, r5, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] movs r3, 0 ldrsh r2, [r6, r3] movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 2 ldr r3, =0x000081d0 adds r2, r7, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] adds r5, 0x1 adds r6, 0x14 adds r4, 0x1 cmp r4, 0x3 ble _0802CEA6 movs r4, 0x3 movs r6, 0x3C _0802CEE8: ldr r1, =gUnknown_082FBEB8 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] ldr r2, =gUnknown_082FBEA8 lsls r1, r5, 1 adds r1, r2 movs r2, 0 ldrsh r1, [r1, r2] ldr r2, =gUnknown_082FBE58 adds r2, r6, r2 movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 lsls r0, r5, 2 ldr r3, =0x000081d0 adds r2, r7, r3 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] adds r0, 0x3F ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] adds r5, 0x1 subs r6, 0x14 subs r4, 0x1 cmp r4, 0 bge _0802CEE8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802CE9C thumb_func_start sub_802CF50 sub_802CF50: @ 802CF50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp, 0x8] cmp r1, 0x5 ble _0802CF70 movs r0, 0xA subs r1, r0, r1 movs r0, 0x3 str r0, [sp] ldr r2, [sp, 0x8] ldrb r0, [r2, 0xF] b _0802CF78 _0802CF70: movs r3, 0x2 str r3, [sp] ldr r7, [sp, 0x8] ldrb r0, [r7, 0xE] _0802CF78: movs r6, 0 lsls r2, r1, 1 str r2, [sp, 0x4] lsls r0, 4 mov r9, r0 lsls r1, 24 mov r8, r1 ldr r0, =gUnknown_082FBE58 adds r4, r2, r0 ldr r3, [sp] lsls r3, 2 mov r10, r3 movs r5, 0x3 _0802CF92: lsls r0, r6, 2 ldr r7, [sp, 0x8] ldr r1, =0x000081d0 adds r2, r7, r1 adds r2, r0 ldr r1, [r2] ldrh r0, [r4] strh r0, [r1, 0x22] ldr r3, [r2] ldrb r0, [r3, 0x5] movs r7, 0xD negs r7, r7 adds r1, r7, 0 ands r0, r1 mov r1, r10 orrs r0, r1 strb r0, [r3, 0x5] ldr r3, [r2] ldrb r1, [r3, 0x5] movs r0, 0xF ands r0, r1 mov r7, r9 orrs r0, r7 strb r0, [r3, 0x5] ldr r0, [r2] mov r2, r8 lsrs r1, r2, 24 bl StartSpriteAnim adds r6, 0x1 adds r4, 0x14 subs r5, 0x1 cmp r5, 0 bge _0802CF92 movs r5, 0x3 ldr r0, =gUnknown_082FBE58 ldr r3, [sp, 0x4] adds r0, r3, r0 adds r4, r0, 0 adds r4, 0x3C ldr r7, [sp] lsls r7, 2 mov r10, r7 _0802CFE8: lsls r0, r6, 2 ldr r1, [sp, 0x8] ldr r3, =0x000081d0 adds r2, r1, r3 adds r2, r0 ldr r1, [r2] ldrh r0, [r4] strh r0, [r1, 0x22] ldr r3, [r2] ldrb r0, [r3, 0x5] movs r7, 0xD negs r7, r7 adds r1, r7, 0 ands r0, r1 mov r1, r10 orrs r0, r1 strb r0, [r3, 0x5] ldr r3, [r2] ldrb r1, [r3, 0x5] movs r0, 0xF ands r0, r1 mov r7, r9 orrs r0, r7 strb r0, [r3, 0x5] ldr r0, [r2] mov r2, r8 lsrs r1, r2, 24 bl StartSpriteAnim adds r6, 0x1 subs r4, 0x14 subs r5, 0x1 cmp r5, 0 bge _0802CFE8 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802CF50 thumb_func_start sub_802D044 sub_802D044: @ 802D044 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r0, 0 str r0, [sp] movs r0, 0x9 movs r1, 0x7 movs r2, 0x78 movs r3, 0x50 bl sub_802EB24 adds r0, r4, 0 bl sub_802CD3C add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_802D044 thumb_func_start sub_802D068 sub_802D068: @ 802D068 push {lr} bl sub_802EB84 pop {r1} bx r1 thumb_func_end sub_802D068 thumb_func_start sub_802D074 sub_802D074: @ 802D074 push {r4,lr} ldr r4, =gUnknown_02022D00 str r0, [r4] bl sub_802D0BC ldr r0, =sub_802D12C movs r1, 0x3 bl CreateTask ldr r1, [r4] strb r0, [r1, 0x6] ldr r2, [r4] ldrb r0, [r2, 0x6] movs r1, 0x2 bl SetWordTaskArg ldr r0, =sub_802D150 bl sub_802D108 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802D074 thumb_func_start sub_802D0AC sub_802D0AC: @ 802D0AC push {lr} bl FreeAllWindowBuffers bl sub_8034CC8 pop {r0} bx r0 thumb_func_end sub_802D0AC thumb_func_start sub_802D0BC sub_802D0BC: @ 802D0BC movs r1, 0 strh r1, [r0, 0x4] str r1, [r0] movs r1, 0xFF strh r1, [r0, 0x12] bx lr thumb_func_end sub_802D0BC thumb_func_start sub_802D0C8 sub_802D0C8: @ 802D0C8 push {r4-r6,lr} adds r6, r0, 0 movs r5, 0 ldr r4, =gUnknown_082FE18C _0802D0D0: ldr r0, [r4] cmp r0, r6 bne _0802D0DC ldr r0, [r4, 0x4] bl sub_802D108 _0802D0DC: adds r4, 0x8 adds r5, 0x1 cmp r5, 0x9 bls _0802D0D0 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802D0C8 thumb_func_start sub_802D0F0 sub_802D0F0: @ 802D0F0 ldr r0, =gUnknown_02022D00 ldr r0, [r0] ldr r1, [r0] movs r0, 0x1 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr .pool thumb_func_end sub_802D0F0 thumb_func_start sub_802D108 sub_802D108: @ 802D108 push {r4,lr} adds r2, r0, 0 ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldrb r0, [r0, 0x6] movs r1, 0 bl SetWordTaskArg ldr r1, [r4] movs r0, 0 strh r0, [r1, 0x4] str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802D108 thumb_func_start sub_802D12C sub_802D12C: @ 802D12C push {lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gUnknown_02022D00 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 bne _0802D148 adds r0, r1, 0 movs r1, 0 bl GetWordTaskArg bl _call_via_r0 _0802D148: pop {r0} bx r0 .pool thumb_func_end sub_802D12C thumb_func_start sub_802D150 sub_802D150: @ 802D150 push {r4-r6,lr} sub sp, 0x8 ldr r6, =gUnknown_02022D00 ldr r1, [r6] ldrh r5, [r1, 0x4] cmp r5, 0x1 bne _0802D160 b _0802D298 _0802D160: cmp r5, 0x1 bgt _0802D170 cmp r5, 0 beq _0802D178 b _0802D2DA .pool _0802D170: cmp r5, 0x2 bne _0802D176 b _0802D2D6 _0802D176: b _0802D2DA _0802D178: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_082FE164 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gUnknown_082FE174 bl InitWindows bl reset_temp_tile_data_buffers ldr r0, [r6] bl sub_802C974 bl sub_802DD08 ldr r0, =gPkmnJumpBgPal movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, =gPkmnJumpBgGfx str r5, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gPkmnJumpBgTilemap movs r4, 0x1 str r4, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r0, =gPkmnJumpVenusaurPal movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r1, =gPkmnJumpVenusaurGfx str r5, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gPkmnJumpVenusaurTilemap str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r0, =gPkmnJumpResultsPal movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r1, =gPkmnJumpResultsGfx str r5, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gPkmnJumpResultsTilemap str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r0, =gPkmnJumpPal3 movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r1, [r6] movs r0, 0xD3 lsls r0, 1 adds r1, r0 movs r0, 0 bl SetBgTilemapBuffer movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 bl sub_802DB8C movs r0, 0 bl sub_802DD64 movs r0, 0 movs r1, 0x1 movs r2, 0xE0 bl sub_8098C6C movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram bl sub_8199D98 b _0802D2CC .pool _0802D298: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _0802D2DA bl sub_802DBF8 ldr r0, [r6] bl sub_802CE9C ldr r0, [r6] movs r1, 0x6 bl sub_802CF50 movs r0, 0x3 bl ShowBg movs r0, 0 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x1 bl HideBg _0802D2CC: ldr r1, [r6] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D2DA _0802D2D6: movs r0, 0x1 str r0, [r1] _0802D2DA: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802D150 thumb_func_start sub_802D2E4 sub_802D2E4: @ 802D2E4 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldrh r0, [r0, 0x4] cmp r0, 0x1 beq _0802D310 cmp r0, 0x1 bgt _0802D300 cmp r0, 0 beq _0802D30A b _0802D34A .pool _0802D300: cmp r0, 0x2 beq _0802D322 cmp r0, 0x3 beq _0802D33A b _0802D34A _0802D30A: bl sub_802DE1C b _0802D330 _0802D310: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D34A movs r0, 0 bl sub_802DF70 b _0802D330 _0802D322: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D34A bl sub_802DFD4 _0802D330: ldr r1, [r4] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D34A _0802D33A: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D34A ldr r1, [r4] movs r0, 0x1 str r0, [r1] _0802D34A: pop {r4} pop {r0} bx r0 thumb_func_end sub_802D2E4 thumb_func_start sub_802D350 sub_802D350: @ 802D350 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldrh r0, [r0, 0x4] cmp r0, 0x1 beq _0802D37C cmp r0, 0x1 bgt _0802D36C cmp r0, 0 beq _0802D376 b _0802D3B6 .pool _0802D36C: cmp r0, 0x2 beq _0802D38E cmp r0, 0x3 beq _0802D3A6 b _0802D3B6 _0802D376: bl sub_802DE1C b _0802D39C _0802D37C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D3B6 movs r0, 0x1 bl sub_802DF70 b _0802D39C _0802D38E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D3B6 bl sub_802DFD4 _0802D39C: ldr r1, [r4] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D3B6 _0802D3A6: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D3B6 ldr r1, [r4] movs r0, 0x1 str r0, [r1] _0802D3B6: pop {r4} pop {r0} bx r0 thumb_func_end sub_802D350 thumb_func_start sub_802D3BC sub_802D3BC: @ 802D3BC push {r4,r5,lr} bl sub_802C8AC lsls r0, 16 lsrs r5, r0, 16 ldr r0, =gUnknown_02022D00 ldr r0, [r0] ldrh r0, [r0, 0x4] cmp r0, 0 beq _0802D3DC cmp r0, 0x1 beq _0802D410 b _0802D43E .pool _0802D3DC: movs r4, 0 cmp r4, r5 bge _0802D3F8 _0802D3E2: ldr r0, =gUnknown_02022D00 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x1C adds r0, r1 ldrb r0, [r0] bl ClearWindowTilemap adds r4, 0x1 cmp r4, r5 blt _0802D3E2 _0802D3F8: movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02022D00 ldr r1, [r0] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D43E .pool _0802D410: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D43E movs r4, 0 cmp r4, r5 bge _0802D436 _0802D420: ldr r0, =gUnknown_02022D00 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x1C adds r0, r1 ldrb r0, [r0] bl RemoveWindow adds r4, 0x1 cmp r4, r5 blt _0802D420 _0802D436: ldr r0, =gUnknown_02022D00 ldr r1, [r0] movs r0, 0x1 str r0, [r1] _0802D43E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802D3BC thumb_func_start sub_802D448 sub_802D448: @ 802D448 push {r4,r5,lr} sub sp, 0xC ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0x1 beq _0802D4A4 cmp r4, 0x1 bgt _0802D464 cmp r4, 0 beq _0802D46A b _0802D4EC .pool _0802D464: cmp r4, 0x2 beq _0802D4DC b _0802D4EC _0802D46A: movs r0, 0x1 movs r1, 0x8 movs r2, 0x14 movs r3, 0x2 bl sub_802DA9C ldr r1, [r5] strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 ldr r2, =gText_WantToPlayAgain2 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram b _0802D4D2 .pool _0802D4A4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D4EC ldr r0, [r5] ldrb r0, [r0, 0x12] bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE bl sub_8098858 movs r0, 0x17 movs r1, 0x7 movs r2, 0 bl sub_802DB18 movs r0, 0 bl CopyBgTilemapBufferToVram _0802D4D2: ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D4EC _0802D4DC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D4EC ldr r1, [r5] movs r0, 0x1 str r0, [r1] _0802D4EC: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D448 thumb_func_start sub_802D4F4 sub_802D4F4: @ 802D4F4 push {r4,r5,lr} sub sp, 0xC ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0x1 beq _0802D550 cmp r4, 0x1 bgt _0802D510 cmp r4, 0 beq _0802D516 b _0802D58E .pool _0802D510: cmp r4, 0x2 beq _0802D57E b _0802D58E _0802D516: movs r0, 0x2 movs r1, 0x7 movs r2, 0x1A movs r3, 0x4 bl sub_802DA9C ldr r1, [r5] strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_082C8959 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram b _0802D574 .pool _0802D550: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D58E ldr r0, [r5] ldrb r0, [r0, 0x12] bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE bl sub_8098858 movs r0, 0 bl CopyBgTilemapBufferToVram _0802D574: ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D58E _0802D57E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D58E ldr r1, [r5] movs r0, 0x1 str r0, [r1] _0802D58E: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D4F4 thumb_func_start sub_802D598 sub_802D598: @ 802D598 push {r4,r5,lr} ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0 beq _0802D5B0 cmp r4, 0x1 beq _0802D5C8 b _0802D5DE .pool _0802D5B0: bl sub_802DA14 bl sub_8198C78 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D5DE _0802D5C8: bl sub_802DA44 cmp r0, 0 bne _0802D5DE bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D5DE ldr r0, [r5] str r4, [r0] _0802D5DE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D598 thumb_func_start sub_802D5E4 sub_802D5E4: @ 802D5E4 push {r4,r5,lr} sub sp, 0xC ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0x1 beq _0802D640 cmp r4, 0x1 bgt _0802D600 cmp r4, 0 beq _0802D606 b _0802D67E .pool _0802D600: cmp r4, 0x2 beq _0802D66E b _0802D67E _0802D606: movs r0, 0x2 movs r1, 0x8 movs r2, 0x16 movs r3, 0x4 bl sub_802DA9C ldr r1, [r5] strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 ldr r2, =gText_SomeoneDroppedOut2 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram b _0802D664 .pool _0802D640: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D67E ldr r0, [r5] ldrb r0, [r0, 0x12] bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE bl sub_8098858 movs r0, 0 bl CopyBgTilemapBufferToVram _0802D664: ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D67E _0802D66E: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D67E ldr r1, [r5] movs r0, 0x1 str r0, [r1] _0802D67E: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D5E4 thumb_func_start sub_802D688 sub_802D688: @ 802D688 push {r4,r5,lr} sub sp, 0xC ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0x1 beq _0802D6E4 cmp r4, 0x1 bgt _0802D6A4 cmp r4, 0 beq _0802D6AA b _0802D722 .pool _0802D6A4: cmp r4, 0x2 beq _0802D712 b _0802D722 _0802D6AA: movs r0, 0x7 movs r1, 0xA movs r2, 0x10 movs r3, 0x2 bl sub_802DA9C ldr r1, [r5] strh r0, [r1, 0x12] lsls r0, 24 lsrs r0, 24 ldr r2, =gText_CommunicationStandby4 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram b _0802D708 .pool _0802D6E4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D722 ldr r0, [r5] ldrb r0, [r0, 0x12] bl PutWindowTilemap ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE bl sub_8098858 movs r0, 0 bl CopyBgTilemapBufferToVram _0802D708: ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D722 _0802D712: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802D722 ldr r1, [r5] movs r0, 0x1 str r0, [r1] _0802D722: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D688 thumb_func_start sub_802D72C sub_802D72C: @ 802D72C push {r4,r5,lr} ldr r5, =gUnknown_02022D00 ldr r0, [r5] ldrh r4, [r0, 0x4] cmp r4, 0 beq _0802D744 cmp r4, 0x1 beq _0802D752 b _0802D75E .pool _0802D744: bl sub_802D044 ldr r1, [r5] ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] b _0802D75E _0802D752: bl sub_802D068 cmp r0, 0 bne _0802D75E ldr r0, [r5] str r4, [r0] _0802D75E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802D72C thumb_func_start sub_802D764 sub_802D764: @ 802D764 push {lr} ldr r1, =gUnknown_02022D00 ldr r0, [r1] movs r2, 0 strb r2, [r0, 0xA] ldr r0, [r1] strb r2, [r0, 0xB] ldr r2, [r1] movs r0, 0x6 strb r0, [r2, 0xC] ldr r0, [r1] ldrb r0, [r0, 0xC] bl sub_802DC9C pop {r0} bx r0 .pool thumb_func_end sub_802D764 thumb_func_start sub_802D788 sub_802D788: @ 802D788 push {r4,lr} ldr r0, =gUnknown_02022D00 ldr r2, [r0] ldrb r3, [r2, 0xA] adds r4, r0, 0 cmp r3, 0 beq _0802D7A0 cmp r3, 0x1 beq _0802D7DA b _0802D7DE .pool _0802D7A0: ldrb r0, [r2, 0xB] adds r0, 0x1 strb r0, [r2, 0xB] ldr r1, [r4] ldrb r0, [r1, 0xB] cmp r0, 0xA bls _0802D7CA strb r3, [r1, 0xB] ldr r0, [r4] ldrb r1, [r0, 0xC] adds r1, 0x1 strb r1, [r0, 0xC] ldr r1, [r4] ldrb r0, [r1, 0xC] cmp r0, 0x9 bls _0802D7CA strb r3, [r1, 0xC] ldr r1, [r4] ldrb r0, [r1, 0xA] adds r0, 0x1 strb r0, [r1, 0xA] _0802D7CA: ldr r0, [r4] ldrb r0, [r0, 0xC] bl sub_802DC9C ldr r0, [r4] ldrb r0, [r0, 0xC] cmp r0, 0x7 bne _0802D7DE _0802D7DA: movs r0, 0 b _0802D7E0 _0802D7DE: movs r0, 0x1 _0802D7E0: pop {r4} pop {r1} bx r1 thumb_func_end sub_802D788 thumb_func_start sub_802D7E8 sub_802D7E8: @ 802D7E8 push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 ldr r5, =gUnknown_02022D00 ldr r1, [r5] adds r1, 0x26 adds r2, r4, 0 bl CopyItemNameHandlePlural ldr r0, [r5] adds r0, 0x66 adds r1, r4, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN bl sub_81AFBF0 ldr r1, [r5] adds r1, 0x26 movs r0, 0 bl sub_81AFC0C ldr r1, [r5] adds r1, 0x66 movs r0, 0x1 bl sub_81AFC0C ldr r0, [r5] adds r0, 0xA6 ldr r1, =gText_AwesomeWonF701F700 bl sub_81AFC28 movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 movs r3, 0x4 bl sub_802DA9C ldr r2, [r5] movs r4, 0 movs r3, 0 strh r0, [r2, 0x12] lsls r0, 24 lsrs r0, 24 adds r2, 0xA6 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r3, [sp, 0x8] movs r1, 0x1 bl PrintTextOnWindow ldr r0, [r5] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram ldr r1, [r5] ldr r0, =0x0000016f strh r0, [r1, 0x14] strb r4, [r1, 0xD] add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802D7E8 thumb_func_start sub_802D884 sub_802D884: @ 802D884 push {r4-r6,lr} sub sp, 0xC lsls r0, 16 lsrs r0, 16 ldr r4, =gUnknown_02022D00 ldr r1, [r4] adds r1, 0x26 bl CopyItemName bl sub_81AFBF0 ldr r1, [r4] adds r1, 0x26 movs r0, 0 bl sub_81AFC0C ldr r0, [r4] adds r0, 0xA6 ldr r1, =gText_FilledStorageSpace2 bl sub_81AFC28 movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 movs r3, 0x4 bl sub_802DA9C ldr r2, [r4] movs r6, 0 movs r5, 0 strh r0, [r2, 0x12] lsls r0, 24 lsrs r0, 24 adds r2, 0xA6 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] strh r5, [r0, 0x14] strb r6, [r0, 0xD] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802D884 thumb_func_start sub_802D8FC sub_802D8FC: @ 802D8FC push {r4-r6,lr} sub sp, 0xC lsls r0, 16 lsrs r0, 16 ldr r4, =gUnknown_02022D00 ldr r1, [r4] adds r1, 0x26 bl CopyItemName bl sub_81AFBF0 ldr r1, [r4] adds r1, 0x26 movs r0, 0 bl sub_81AFC0C ldr r0, [r4] adds r0, 0xA6 ldr r1, =gText_CantHoldMore bl sub_81AFC28 movs r0, 0x4 movs r1, 0x9 movs r2, 0x16 movs r3, 0x2 bl sub_802DA9C ldr r2, [r4] movs r6, 0 movs r5, 0 strh r0, [r2, 0x12] lsls r0, 24 lsrs r0, 24 adds r2, 0xA6 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] strh r5, [r0, 0x14] strb r6, [r0, 0xD] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802D8FC thumb_func_start sub_802D974 sub_802D974: @ 802D974 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldrb r0, [r0, 0xD] cmp r0, 0x1 beq _0802D9C8 cmp r0, 0x1 bgt _0802D990 cmp r0, 0 beq _0802D99A b _0802DA0C .pool _0802D990: cmp r0, 0x2 beq _0802D9EE cmp r0, 0x3 beq _0802DA02 b _0802DA0C _0802D99A: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802DA0C ldr r0, [r4] ldrb r0, [r0, 0x12] bl PutWindowTilemap ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x1 movs r2, 0xE bl sub_8098858 movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [r4] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] b _0802DA0C _0802D9C8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802DA0C ldr r1, [r4] ldrh r0, [r1, 0x14] cmp r0, 0 bne _0802D9E0 ldrb r0, [r1, 0xD] adds r0, 0x2 b _0802DA00 _0802D9E0: ldrh r0, [r1, 0x14] bl PlayFanfare ldr r1, [r4] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] _0802D9EE: bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _0802DA0C ldr r0, =gUnknown_02022D00 ldr r1, [r0] ldrb r0, [r1, 0xD] adds r0, 0x1 _0802DA00: strb r0, [r1, 0xD] _0802DA02: movs r0, 0 b _0802DA0E .pool _0802DA0C: movs r0, 0x1 _0802DA0E: pop {r4} pop {r1} bx r1 thumb_func_end sub_802D974 thumb_func_start sub_802DA14 sub_802DA14: @ 802DA14 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldrh r0, [r0, 0x12] cmp r0, 0xFF beq _0802DA38 lsls r0, 24 lsrs r0, 24 bl rbox_fill_rectangle ldr r0, [r4] ldrb r0, [r0, 0x12] movs r1, 0x1 bl CopyWindowToVram ldr r1, [r4] movs r0, 0 strb r0, [r1, 0xD] _0802DA38: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802DA14 thumb_func_start sub_802DA44 sub_802DA44: @ 802DA44 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r1, [r4] ldrh r0, [r1, 0x12] cmp r0, 0xFF bne _0802DA58 _0802DA50: movs r0, 0 b _0802DA84 .pool _0802DA58: ldrb r0, [r1, 0xD] cmp r0, 0 bne _0802DA7E bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802DA82 ldr r0, [r4] ldrb r0, [r0, 0x12] bl RemoveWindow ldr r1, [r4] movs r0, 0xFF strh r0, [r1, 0x12] ldrb r0, [r1, 0xD] adds r0, 0x1 strb r0, [r1, 0xD] b _0802DA50 _0802DA7E: cmp r0, 0x1 beq _0802DA50 _0802DA82: movs r0, 0x1 _0802DA84: pop {r4} pop {r1} bx r1 thumb_func_end sub_802DA44 thumb_func_start sub_802DA8C sub_802DA8C: @ 802DA8C push {lr} bl sub_8198C58 lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_802DA8C thumb_func_start sub_802DA9C sub_802DA9C: @ 802DA9C push {r4-r6,lr} sub sp, 0x8 ldr r6, =0xffffff00 ldr r4, [sp] ands r4, r6 lsls r0, 24 lsrs r0, 16 ldr r5, =0xffff00ff ands r4, r5 orrs r4, r0 lsls r1, 24 lsrs r1, 8 ldr r0, =0xff00ffff ands r4, r0 orrs r4, r1 lsls r2, 24 ldr r0, =0x00ffffff ands r4, r0 orrs r4, r2 str r4, [sp] lsls r3, 24 lsrs r3, 24 ldr r0, [sp, 0x4] ands r0, r6 orrs r0, r3 ands r0, r5 movs r1, 0xF0 lsls r1, 4 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0x86 lsls r1, 15 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl AddWindow adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 lsls r0, r4, 24 lsrs r0, 24 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r4, 0 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_802DA9C thumb_func_start sub_802DB18 sub_802DB18: @ 802DB18 push {r4,r5,lr} sub sp, 0x8 adds r3, r2, 0 lsls r3, 24 lsrs r3, 24 ldr r5, =0xffffff00 ldr r2, [sp] ands r2, r5 lsls r0, 24 lsrs r0, 16 ldr r4, =0xffff00ff ands r2, r4 orrs r2, r0 lsls r1, 24 lsrs r1, 8 ldr r0, =0xff00ffff ands r2, r0 orrs r2, r1 ldr r0, =0x00ffffff ands r2, r0 movs r0, 0xC0 lsls r0, 19 orrs r2, r0 str r2, [sp] ldr r0, [sp, 0x4] ands r0, r5 movs r1, 0x4 orrs r0, r1 ands r0, r4 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0xAC lsls r1, 14 orrs r0, r1 str r0, [sp, 0x4] mov r0, sp movs r1, 0x1 movs r2, 0xD bl CreateYesNoMenu add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802DB18 thumb_func_start sub_802DB8C sub_802DB8C: @ 802DB8C push {r4,lr} sub sp, 0x10 ldr r1, =gUnknown_082FE1DC add r0, sp, 0xC movs r2, 0x3 bl memcpy movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer add r0, sp, 0xC str r0, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r0, =gText_SpacePoints2 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl box_print add r0, sp, 0xC str r0, [sp] str r4, [sp, 0x4] ldr r0, =gText_SpaceTimes3 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x1 bl box_print add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802DB8C thumb_func_start sub_802DBF8 sub_802DBF8: @ 802DBF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 bl sub_802C8AC lsls r0, 16 lsrs r0, 16 mov r10, r0 ldr r1, =gUnknown_082FE260 subs r0, 0x2 lsls r0, 2 adds r0, r1 ldr r5, [r0] movs r6, 0 cmp r6, r10 bge _0802DC62 ldr r0, =gMonFrontPicCoords mov r9, r0 ldr r1, =gUnknown_02022D00 mov r8, r1 _0802DC26: lsls r4, r6, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_802C8C8 adds r1, r0, 0 ldrh r0, [r1] lsls r0, 2 add r0, r9 ldrb r3, [r0, 0x1] mov r2, r8 ldr r0, [r2] movs r7, 0 ldrsh r2, [r5, r7] adds r3, 0x70 str r4, [sp] bl sub_802C9D4 mov r1, r8 ldr r0, [r1] movs r2, 0 ldrsh r1, [r5, r2] movs r2, 0x70 adds r3, r4, 0 bl sub_802CE48 adds r5, 0x2 adds r6, 0x1 cmp r6, r10 blt _0802DC26 _0802DC62: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802DBF8 thumb_func_start sub_802DC80 sub_802DC80: @ 802DC80 ldr r2, =gUnknown_02022D00 ldr r2, [r2] lsls r0, 2 ldr r3, =0x000081a8 adds r2, r3 adds r2, r0 ldr r0, [r2] strh r1, [r0, 0x26] bx lr .pool thumb_func_end sub_802DC80 thumb_func_start sub_802DC9C sub_802DC9C: @ 802DC9C push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_02022D00 ldr r0, [r0] adds r1, r4, 0 bl sub_802CF50 ldr r0, =gUnknown_082FE1DF adds r4, r0 ldrb r0, [r4] lsls r1, r0, 2 adds r1, r0 lsls r1, 13 movs r0, 0x2 movs r2, 0 bl ChangeBgY pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802DC9C thumb_func_start sub_802DCCC sub_802DCCC: @ 802DCCC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 movs r5, 0 movs r6, 0 _0802DCD6: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0802DCEA ldr r0, =gUnknown_02022D00 ldr r0, [r0] adds r1, r5, 0 bl sub_802CB14 adds r6, 0x1 _0802DCEA: lsrs r4, 1 adds r5, 0x1 cmp r5, 0x4 ble _0802DCD6 subs r0, r6, 0x2 lsls r0, 24 lsrs r0, 24 bl sub_802E00C adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_802DCCC thumb_func_start sub_802DD08 sub_802DD08: @ 802DD08 push {r4,lr} sub sp, 0x10 mov r1, sp movs r0, 0x40 strb r0, [r1] movs r0, 0x5 strb r0, [r1, 0x1] movs r0, 0x8 strb r0, [r1, 0x2] movs r0, 0x6C strh r0, [r1, 0x4] movs r4, 0x6 strh r4, [r1, 0x6] ldr r0, =gUnknown_082FE1EC str r0, [sp, 0x8] ldr r0, =gUnknown_082FE1F4 str r0, [sp, 0xC] movs r0, 0x2 bl sub_8034C54 movs r0, 0 movs r1, 0 mov r2, sp bl sub_8034D14 mov r1, sp movs r0, 0x4 strb r0, [r1, 0x1] movs r0, 0x1E strh r0, [r1, 0x4] mov r0, sp strh r4, [r0, 0x6] movs r0, 0x1 movs r1, 0 mov r2, sp bl sub_8034D14 add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802DD08 thumb_func_start sub_802DD64 sub_802DD64: @ 802DD64 push {lr} adds r1, r0, 0 movs r0, 0 bl sub_8035044 pop {r0} bx r0 thumb_func_end sub_802DD64 thumb_func_start sub_802DD74 sub_802DD74: @ 802DD74 push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x1 bl sub_8035044 pop {r0} bx r0 thumb_func_end sub_802DD74 thumb_func_start sub_802DD88 sub_802DD88: @ 802DD88 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CBF0 pop {r0} bx r0 .pool thumb_func_end sub_802DD88 thumb_func_start sub_802DDA0 sub_802DDA0: @ 802DDA0 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CC88 pop {r0} bx r0 .pool thumb_func_end sub_802DDA0 thumb_func_start sub_802DDB8 sub_802DDB8: @ 802DDB8 push {lr} adds r1, r0, 0 ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CC18 pop {r1} bx r1 .pool thumb_func_end sub_802DDB8 thumb_func_start sub_802DDCC sub_802DDCC: @ 802DDCC push {lr} ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CCB0 pop {r0} bx r0 .pool thumb_func_end sub_802DDCC thumb_func_start sub_802DDE0 sub_802DDE0: @ 802DDE0 push {lr} ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CD3C pop {r0} bx r0 .pool thumb_func_end sub_802DDE0 thumb_func_start sub_802DDF4 sub_802DDF4: @ 802DDF4 push {lr} adds r1, r0, 0 ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CD70 pop {r0} bx r0 .pool thumb_func_end sub_802DDF4 thumb_func_start sub_802DE08 sub_802DE08: @ 802DE08 push {lr} ldr r0, =gUnknown_02022D00 ldr r0, [r0] bl sub_802CD98 pop {r1} bx r1 .pool thumb_func_end sub_802DE08 thumb_func_start sub_802DE1C sub_802DE1C: @ 802DE1C push {r4-r7,lr} sub sp, 0x8 bl sub_802C8AC lsls r0, 16 lsrs r7, r0, 16 ldr r1, =gUnknown_082FE234 subs r0, r7, 0x2 lsls r0, 2 adds r0, r1 ldr r4, [r0] ldr r2, =0xffffff00 ldr r0, [sp] ands r0, r2 ldr r1, =0x00ffffff ands r0, r1 movs r1, 0x80 lsls r1, 20 orrs r0, r1 str r0, [sp] ldr r0, [sp, 0x4] ands r0, r2 movs r1, 0x2 orrs r0, r1 ldr r1, =0xffff00ff ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 ldr r1, =0x0000ffff ands r0, r1 movs r1, 0xAC lsls r1, 14 orrs r0, r1 str r0, [sp, 0x4] movs r5, 0 cmp r5, r7 bge _0802DEAC mov r6, sp _0802DE6A: ldrb r0, [r4] lsls r0, 8 ldr r2, =0xffff00ff ldr r1, [sp] ands r1, r2 orrs r1, r0 str r1, [sp] ldrb r2, [r4, 0x2] lsls r2, 16 ldr r0, =0xff00ffff ands r0, r1 orrs r0, r2 str r0, [sp] mov r0, sp bl AddWindow ldr r1, =gUnknown_02022D00 ldr r1, [r1] lsls r2, r5, 1 adds r1, 0x1C adds r1, r2 strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap ldrh r0, [r6, 0x6] adds r0, 0x10 strh r0, [r6, 0x6] adds r4, 0x4 adds r5, 0x1 cmp r5, r7 blt _0802DE6A _0802DEAC: movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802DE1C thumb_func_start sub_802DED8 sub_802DED8: @ 802DED8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 adds r5, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 add r0, sp, 0xC strb r1, [r0] strb r2, [r0, 0x1] strb r3, [r0, 0x2] ldr r6, =gUnknown_02022D00 ldr r0, [r6] lsls r1, r5, 1 mov r8, r1 adds r0, 0x1C add r0, r8 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl sub_802C8E8 adds r1, r0, 0 movs r2, 0x1 negs r2, r2 mov r9, r2 movs r0, 0x1 bl GetStringWidth movs r4, 0x40 subs r4, r0 lsrs r4, 1 adds r0, r5, 0 bl sub_802C8E8 adds r1, r0, 0 ldr r0, [r6] adds r0, 0x1C add r0, r8 ldrb r0, [r0] lsls r4, 24 lsrs r4, 24 add r2, sp, 0xC str r2, [sp] mov r2, r9 str r2, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0x1 bl box_print ldr r0, [r6] adds r0, 0x1C add r0, r8 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802DED8 thumb_func_start sub_802DF70 sub_802DF70: @ 802DF70 push {r4-r6,lr} adds r4, r0, 0 bl sub_802C8AC lsls r0, 16 lsrs r5, r0, 16 cmp r4, 0 bne _0802DF9A movs r4, 0 cmp r4, r5 bge _0802DFCC _0802DF86: adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x3 bl sub_802DED8 adds r4, 0x1 cmp r4, r5 blt _0802DF86 b _0802DFCC _0802DF9A: bl sub_802C8BC lsls r0, 16 lsrs r6, r0, 16 movs r4, 0 cmp r4, r5 bge _0802DFCC _0802DFA8: cmp r6, r4 beq _0802DFBA adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0x3 bl sub_802DED8 b _0802DFC6 _0802DFBA: adds r0, r4, 0 movs r1, 0 movs r2, 0x4 movs r3, 0x5 bl sub_802DED8 _0802DFC6: adds r4, 0x1 cmp r4, r5 blt _0802DFA8 _0802DFCC: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802DF70 thumb_func_start sub_802DFD4 sub_802DFD4: @ 802DFD4 push {r4,r5,lr} bl sub_802C8AC lsls r0, 16 lsrs r5, r0, 16 movs r4, 0 cmp r4, r5 bge _0802DFFA _0802DFE4: ldr r0, =gUnknown_02022D00 ldr r0, [r0] lsls r1, r4, 1 adds r0, 0x1C adds r0, r1 ldrb r0, [r0] bl PutWindowTilemap adds r4, 0x1 cmp r4, r5 blt _0802DFE4 _0802DFFA: movs r0, 0 bl CopyBgTilemapBufferToVram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802DFD4 thumb_func_start sub_802E00C sub_802E00C: @ 802E00C push {r4,lr} adds r1, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_02022D00 ldr r2, [r0] movs r0, 0 str r0, [r2, 0x18] lsrs r1, 25 lsls r1, 16 movs r0, 0x1 movs r2, 0 bl ChangeBgX movs r0, 0x1 ands r4, r0 lsls r4, 8 subs r4, 0x28 lsls r4, 8 adds r1, r4, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 bl ShowBg ldr r0, =sub_802E090 movs r1, 0x4 bl CreateTask pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802E00C thumb_func_start sub_802E058 sub_802E058: @ 802E058 push {r4,lr} ldr r4, =gUnknown_02022D00 ldr r0, [r4] ldr r0, [r0, 0x18] cmp r0, 0x1F bls _0802E06C movs r0, 0 b _0802E08A .pool _0802E06C: movs r0, 0x1 movs r1, 0x80 movs r2, 0x1 bl ChangeBgY ldr r1, [r4] ldr r0, [r1, 0x18] adds r0, 0x1 str r0, [r1, 0x18] cmp r0, 0x1F bls _0802E088 movs r0, 0x1 bl HideBg _0802E088: movs r0, 0x1 _0802E08A: pop {r4} pop {r1} bx r1 thumb_func_end sub_802E058 thumb_func_start sub_802E090 sub_802E090: @ 802E090 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_802E058 cmp r0, 0 bne _0802E0A4 adds r0, r4, 0 bl DestroyTask _0802E0A4: pop {r4} pop {r0} bx r0 thumb_func_end sub_802E090 thumb_func_start sub_802E0AC sub_802E0AC: @ 802E0AC push {lr} sub sp, 0xC mov r2, sp movs r1, 0x1 strb r1, [r2] ldrh r1, [r0] strh r1, [r2, 0x2] ldr r1, [r0, 0x4] str r1, [sp, 0x8] ldr r0, [r0, 0x8] str r0, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0xC pop {r0} bx r0 thumb_func_end sub_802E0AC thumb_func_start sub_802E0D0 sub_802E0D0: @ 802E0D0 push {r4,lr} sub sp, 0xC adds r4, r1, 0 ldr r3, =gUnknown_03003090 lsls r2, r0, 4 adds r0, r2, r3 ldrh r1, [r0] movs r0, 0xFF lsls r0, 8 ands r0, r1 movs r1, 0xBC lsls r1, 6 cmp r0, r1 bne _0802E100 adds r1, r3, 0x2 adds r1, r2, r1 mov r0, sp movs r2, 0xC bl memcpy mov r0, sp ldrb r0, [r0] cmp r0, 0x1 beq _0802E108 _0802E100: movs r0, 0 b _0802E118 .pool _0802E108: mov r0, sp ldrh r0, [r0, 0x2] strh r0, [r4] ldr r0, [sp, 0x8] str r0, [r4, 0x4] ldr r0, [sp, 0x4] str r0, [r4, 0x8] movs r0, 0x1 _0802E118: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_802E0D0 thumb_func_start sub_802E120 sub_802E120: @ 802E120 push {lr} sub sp, 0xC mov r2, sp movs r1, 0x2 strb r1, [r2] str r0, [sp, 0x4] mov r0, sp bl sub_800FE50 add sp, 0xC pop {r0} bx r0 thumb_func_end sub_802E120 thumb_func_start sub_802E138 sub_802E138: @ 802E138 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC mov r3, sp movs r2, 0x3 strb r2, [r3] ldr r3, [r1, 0x8] lsls r3, 15 ldr r2, [sp, 0x8] ldr r4, =0x00007fff mov r8, r4 ands r2, r4 orrs r2, r3 str r2, [sp, 0x8] mov r6, sp ldrb r2, [r1, 0x1] movs r5, 0x1F adds r3, r5, 0 ands r3, r2 ldrb r4, [r6, 0x3] movs r2, 0x20 negs r2, r2 ands r2, r4 orrs r2, r3 strb r2, [r6, 0x3] mov r3, sp ldrb r2, [r1] strb r2, [r3, 0x1] ldrh r2, [r1, 0x2] strh r2, [r3, 0x6] mov r4, sp ldrh r2, [r1, 0x4] mov r1, r8 ands r2, r1 ldrh r3, [r4, 0x8] ldr r1, =0xffff8000 ands r1, r3 orrs r1, r2 strh r1, [r4, 0x8] mov r2, sp ldrh r1, [r0, 0x10] strb r1, [r2, 0x2] mov r3, sp ldr r1, [r0, 0x14] lsls r1, 5 ldrb r2, [r3, 0x3] ands r5, r2 orrs r5, r1 strb r5, [r3, 0x3] mov r1, sp ldrh r0, [r0, 0xE] strh r0, [r1, 0x4] mov r0, sp bl sub_800FE50 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802E138 thumb_func_start sub_802E1BC sub_802E1BC: @ 802E1BC push {r4,r5,lr} sub sp, 0xC adds r5, r0, 0 adds r4, r1, 0 ldr r2, =gUnknown_03003090 ldrh r0, [r2] movs r1, 0xFF lsls r1, 8 ands r1, r0 movs r0, 0xBC lsls r0, 6 cmp r1, r0 bne _0802E228 adds r1, r2, 0x2 mov r0, sp movs r2, 0xC bl memcpy mov r0, sp ldrb r0, [r0] cmp r0, 0x3 bne _0802E228 ldr r0, [sp, 0x8] lsrs r0, 15 str r0, [r4, 0x8] mov r0, sp ldrb r1, [r0, 0x3] lsls r0, r1, 27 lsrs r0, 27 strb r0, [r4, 0x1] mov r0, sp ldrb r0, [r0, 0x1] strb r0, [r4] mov r0, sp ldrh r0, [r0, 0x6] strh r0, [r4, 0x2] mov r0, sp ldrh r0, [r0, 0x8] lsls r0, 17 lsrs r0, 17 strh r0, [r4, 0x4] mov r0, sp ldrb r0, [r0, 0x2] strh r0, [r5, 0x10] lsls r1, 24 lsrs r1, 29 str r1, [r5, 0x14] mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r5, 0xE] movs r0, 0x1 b _0802E22A .pool _0802E228: movs r0, 0 _0802E22A: add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_802E1BC thumb_func_start sub_802E234 sub_802E234: @ 802E234 push {r4,lr} sub sp, 0xC mov r4, sp movs r3, 0x4 strb r3, [r4] ldrh r3, [r0, 0x10] strb r3, [r4, 0x1] ldr r3, [r0, 0x14] strb r3, [r4, 0x2] ldr r3, [r0, 0x18] strb r3, [r4, 0x3] mov r3, sp ldrh r0, [r0, 0xE] strh r0, [r3, 0x4] mov r0, sp strb r1, [r0, 0x6] strh r2, [r0, 0x8] bl sub_800FE50 add sp, 0xC pop {r4} pop {r0} bx r0 thumb_func_end sub_802E234 thumb_func_start sub_802E264 sub_802E264: @ 802E264 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, =gUnknown_03003090 lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] movs r0, 0xFF lsls r0, 8 ands r0, r1 movs r1, 0xBC lsls r1, 6 cmp r0, r1 bne _0802E2C4 adds r1, r3, 0x2 adds r1, r2, r1 mov r0, sp movs r2, 0xC bl memcpy mov r0, sp ldrb r0, [r0] cmp r0, 0x4 bne _0802E2C4 mov r0, sp ldrb r0, [r0, 0x1] strh r0, [r4, 0x10] mov r0, sp ldrb r0, [r0, 0x2] str r0, [r4, 0x14] mov r0, sp ldrb r0, [r0, 0x3] str r0, [r4, 0x18] mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r4, 0xE] mov r0, sp ldrb r0, [r0, 0x6] strb r0, [r5] mov r0, sp ldrh r0, [r0, 0x8] strh r0, [r6] movs r0, 0x1 b _0802E2C6 .pool _0802E2C4: movs r0, 0 _0802E2C6: add sp, 0xC pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_802E264 thumb_func_start sub_802E2D0 sub_802E2D0: @ 802E2D0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 ldr r3, =gUnknown_03003090 lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] movs r0, 0xFF lsls r0, 8 ands r0, r1 movs r1, 0xBC lsls r1, 6 cmp r0, r1 bne _0802E320 adds r1, r3, 0x2 adds r1, r2, r1 mov r0, sp movs r2, 0xC bl memcpy mov r0, sp ldrb r0, [r0] cmp r0, 0x4 bne _0802E320 mov r0, sp ldrb r0, [r0, 0x1] strh r0, [r4, 0x10] mov r0, sp ldrb r0, [r0, 0x2] str r0, [r4, 0x14] mov r0, sp ldrb r0, [r0, 0x3] str r0, [r4, 0x18] mov r0, sp ldrh r0, [r0, 0x4] strh r0, [r4, 0xE] movs r0, 0x1 b _0802E322 .pool _0802E320: movs r0, 0 _0802E322: add sp, 0xC pop {r4} pop {r1} bx r1 thumb_func_end sub_802E2D0 thumb_func_start sub_802E32C sub_802E32C: @ 802E32C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xFE lsls r1, 1 adds r0, r1 bx lr .pool thumb_func_end sub_802E32C thumb_func_start ResetPokeJumpResults ResetPokeJumpResults: @ 802E33C push {lr} bl sub_802E32C movs r1, 0 strh r1, [r0] str r1, [r0, 0xC] strh r1, [r0, 0x4] strh r1, [r0, 0x6] str r1, [r0, 0x8] strh r1, [r0, 0x2] pop {r0} bx r0 thumb_func_end ResetPokeJumpResults thumb_func_start sub_802E354 sub_802E354: @ 802E354 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsrs r6, r2, 16 bl sub_802E32C adds r1, r0, 0 movs r2, 0 ldr r0, [r1, 0xC] cmp r0, r4 bcs _0802E378 ldr r0, =0x00018696 cmp r4, r0 bhi _0802E378 str r4, [r1, 0xC] movs r2, 0x1 _0802E378: ldrh r0, [r1] cmp r0, r5 bcs _0802E388 ldr r0, =0x0000270f cmp r5, r0 bhi _0802E388 strh r5, [r1] movs r2, 0x1 _0802E388: ldrh r0, [r1, 0x4] cmp r0, r6 bcs _0802E398 ldr r0, =0x0000270f cmp r6, r0 bhi _0802E398 strh r6, [r1, 0x4] movs r2, 0x1 _0802E398: adds r0, r2, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_802E354 thumb_func_start sub_802E3A8 sub_802E3A8: @ 802E3A8 push {lr} bl sub_802E32C adds r2, r0, 0 ldrh r1, [r2, 0x6] ldr r0, =0x0000270e cmp r1, r0 bhi _0802E3BC adds r0, r1, 0x1 strh r0, [r2, 0x6] _0802E3BC: pop {r0} bx r0 .pool thumb_func_end sub_802E3A8 thumb_func_start sub_802E3C4 sub_802E3C4: @ 802E3C4 push {r4,lr} ldr r4, =sub_802E3E4 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_802E3C4 thumb_func_start sub_802E3E4 sub_802E3E4: @ 802E3E4 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 _0802E4A8 cmp r0, 0x1 bgt _0802E40C cmp r0, 0 beq _0802E416 b _0802E4F6 .pool _0802E40C: cmp r0, 0x2 beq _0802E4B4 cmp r0, 0x3 beq _0802E4DC b _0802E4F6 _0802E416: ldr r0, =gUnknown_082FE270 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp] str r1, [sp, 0x4] ldr r1, =gText_PkmnJumpRecords movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r4, r0, 0 movs r6, 0 ldr r5, =gUnknown_082FE278 _0802E430: ldr r1, [r5] movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r0, 0x26 cmp r0, r4 ble _0802E442 adds r4, r0, 0 _0802E442: adds r5, 0x4 adds r6, 0x1 cmp r6, 0x2 bls _0802E430 adds r0, r4, 0x7 cmp r0, 0 bge _0802E452 adds r0, 0x7 _0802E452: asrs r4, r0, 3 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _0802E45E adds r4, 0x1 _0802E45E: 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] ldrh r0, [r7, 0x2] adds r1, r4, 0 bl sub_802E500 ldrb r0, [r7, 0x2] movs r1, 0x3 b _0802E4CA .pool _0802E4A8: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802E4F6 b _0802E4CE _0802E4B4: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0802E4F6 ldrb r0, [r7, 0x2] bl rbox_fill_rectangle ldrb r0, [r7, 0x2] movs r1, 0x1 _0802E4CA: bl CopyWindowToVram _0802E4CE: ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] b _0802E4F6 .pool _0802E4DC: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0802E4F6 ldrb r0, [r7, 0x2] bl RemoveWindow adds r0, r4, 0 bl DestroyTask bl EnableBothScriptContexts _0802E4F6: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802E3E4 thumb_func_start sub_802E500 sub_802E500: @ 802E500 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 str r1, [sp, 0x1C] lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x18] bl sub_802E32C ldrh r1, [r0] str r1, [sp, 0xC] ldr r1, [r0, 0xC] str r1, [sp, 0x10] ldrh r0, [r0, 0x4] str r0, [sp, 0x14] ldr r0, [sp, 0x18] lsls r4, r0, 24 lsrs r4, 24 ldr r5, =0x0000021d adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD0 bl box_border_load_tiles_and_pal adds r0, r4, 0 adds r1, r5, 0 movs r2, 0xD bl sub_8098858 adds r0, r4, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r5, =gText_PkmnJumpRecords ldr r1, [sp, 0x1C] lsls r2, r1, 3 movs r0, 0x1 adds r1, r5, 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, r4, 0 movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow movs r6, 0 adds r7, r4, 0 movs r0, 0xFF mov r10, r0 mov r9, r6 mov r1, sp adds r1, 0xC str r1, [sp, 0x20] movs r0, 0xC8 lsls r0, 21 mov r8, r0 ldr r5, =gStringVar1 _0802E58A: ldr r1, =gUnknown_082FE278 lsls r0, r6, 2 adds r0, r1 ldr r2, [r0] mov r1, r8 lsrs r4, r1, 24 str r4, [sp] mov r0, r10 str r0, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldr r0, [sp, 0x20] ldm r0!, {r1} str r0, [sp, 0x20] adds r0, r5, 0 movs r2, 0 movs r3, 0x5 bl ConvertIntToDecimalStringN adds r0, r5, 0 bl sub_802E620 movs r0, 0x1 adds r1, r5, 0 movs r2, 0 bl GetStringWidth ldr r1, [sp, 0x1C] lsls r3, r1, 3 subs r3, r0 lsls r3, 24 lsrs r3, 24 str r4, [sp] mov r0, r10 str r0, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow movs r0, 0x80 lsls r0, 21 add r8, r0 adds r6, 0x1 ldr r1, [sp, 0x18] lsls r0, r1, 24 cmp r6, 0x2 bls _0802E58A lsrs r0, 24 bl PutWindowTilemap add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802E500 thumb_func_start sub_802E620 sub_802E620: @ 802E620 push {lr} adds r1, r0, 0 b _0802E628 _0802E626: adds r1, 0x1 _0802E628: ldrb r0, [r1] cmp r0, 0xFF beq _0802E636 cmp r0, 0 bne _0802E626 movs r0, 0xFF strb r0, [r1] _0802E636: pop {r0} bx r0 thumb_func_end sub_802E620 thumb_func_start sub_802E63C sub_802E63C: @ 802E63C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r1, 24 lsrs r1, 24 ldr r0, =sub_802E6D0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] strh r5, [r0, 0xA] ldr r0, =gUnknown_082FE748 lsls r5, 4 adds r5, r0 ldr r1, [r5] adds r0, r4, 0 bl _call_via_r1 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_802E63C thumb_func_start sub_802E688 sub_802E688: @ 802E688 push {lr} ldr r0, =sub_802E6D0 bl FindTaskIdByFunc lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _0802E6B4 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] movs r0, 0x1 b _0802E6B6 .pool _0802E6B4: movs r0, 0 _0802E6B6: pop {r1} bx r1 thumb_func_end sub_802E688 thumb_func_start sub_802E6BC sub_802E6BC: @ 802E6BC push {lr} ldr r0, =sub_802E6D0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_802E6BC thumb_func_start sub_802E6D0 sub_802E6D0: @ 802E6D0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x3 beq _0802E71C cmp r0, 0x3 bgt _0802E6F8 cmp r0, 0x2 beq _0802E6FE b _0802E752 .pool _0802E6F8: cmp r0, 0x4 beq _0802E738 b _0802E752 _0802E6FE: ldr r1, =gUnknown_082FE748 movs r2, 0x2 ldrsh r0, [r4, r2] lsls r0, 4 adds r1, 0x8 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 movs r0, 0x3 strh r0, [r4] b _0802E752 .pool _0802E71C: ldr r0, =gUnknown_082FE748 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 4 adds r0, 0xC adds r1, r0 ldr r1, [r1] adds r0, r5, 0 bl _call_via_r1 b _0802E752 .pool _0802E738: ldr r0, =gUnknown_082FE748 movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 4 adds r0, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r5, 0 bl _call_via_r1 adds r0, r5, 0 bl DestroyTask _0802E752: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802E6D0 thumb_func_start sub_802E75C sub_802E75C: @ 802E75C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r1, 0x6 ldrsh r0, [r4, r1] lsls r0, 3 ldr r1, =gUnknown_082FE6C8 adds r0, r1 bl LoadCompressedObjectPic movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 3 ldr r1, =gUnknown_082FE6D8 adds r0, r1 bl LoadSpritePalette movs r5, 0 movs r3, 0x10 ldrsh r0, [r4, r3] cmp r5, r0 bge _0802E7C4 _0802E790: movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, =gUnknown_082FE730 adds r0, r1 movs r2, 0x12 ldrsh r1, [r4, r2] movs r3, 0x14 ldrsh r2, [r4, r3] ldrb r3, [r4, 0xE] bl CreateSprite lsls r1, r5, 1 adds r1, r4 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x1A] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r5, r0 blt _0802E790 _0802E7C4: movs r5, 0 movs r2, 0x10 ldrsh r0, [r4, r2] cmp r5, r0 bge _0802E820 movs r7, 0x3 movs r3, 0xD negs r3, r3 mov r12, r3 ldr r6, =gSprites _0802E7D8: lsls r0, r5, 1 adds r0, r4 movs r1, 0x1A ldrsh r0, [r0, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldrb r1, [r4, 0xC] ands r1, r7 lsls r1, 2 ldrb r3, [r2, 0x5] mov r0, r12 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x5] adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r4, 0xA] strh r0, [r2, 0x30] mov r3, r8 strh r3, [r2, 0x34] strh r5, [r2, 0x36] ldrh r0, [r4, 0x1A] strh r0, [r2, 0x38] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r5, r0 blt _0802E7D8 _0802E820: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802E75C thumb_func_start sub_802E83C sub_802E83C: @ 802E83C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r1, =gTasks + 0x8 adds r4, r1 movs r5, 0 strh r5, [r4, 0x4] strh r5, [r4, 0x6] strh r5, [r4, 0x8] movs r1, 0x3C strh r1, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] movs r1, 0x3 strh r1, [r4, 0x10] movs r1, 0x78 strh r1, [r4, 0x12] movs r1, 0x58 strh r1, [r4, 0x14] adds r1, r4, 0 bl sub_802E75C movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gSprites adds r0, r5 movs r1, 0x4 bl StartSpriteAnim movs r0, 0x1C ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x0000ffe0 strh r1, [r0, 0x24] movs r0, 0x1E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x5 bl StartSpriteAnim movs r0, 0x1E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x20 strh r1, [r0, 0x24] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802E83C thumb_func_start sub_802E8C8 sub_802E8C8: @ 802E8C8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r5, 0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 b _0802E8FC .pool _0802E8E0: lsls r0, r5, 1 adds r0, r4 movs r2, 0x1A ldrsh r1, [r0, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _0802E8FC: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r5, r0 blt _0802E8E0 ldr r1, =gUnknown_082FE6C8 movs r2, 0x6 ldrsh r0, [r4, r2] lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x6] bl FreeSpriteTilesByTag ldr r1, =gUnknown_082FE6D8 movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802E8C8 thumb_func_start sub_802E938 sub_802E938: @ 802E938 push {r4-r6,lr} adds r6, r0, 0 movs r0, 0x34 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 movs r1, 0x16 ldrsh r0, [r5, r1] movs r2, 0xA ldrsh r1, [r5, r2] bl __modsi3 cmp r0, 0 bne _0802EA4A ldrh r2, [r5, 0x16] movs r3, 0x16 ldrsh r1, [r5, r3] movs r3, 0x14 ldrsh r0, [r5, r3] cmp r1, r0 beq _0802EA4A strh r2, [r5, 0x14] movs r1, 0x32 ldrsh r0, [r6, r1] cmp r0, 0x4 bhi _0802EA44 lsls r0, 2 ldr r1, =_0802E984 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802E984: .4byte _0802E998 .4byte _0802E9A6 .4byte _0802E9A6 .4byte _0802E9BA .4byte _0802EA04 _0802E998: adds r2, r6, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0802E9A6: movs r0, 0x38 bl PlaySE ldrh r1, [r6, 0x32] lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl StartSpriteAnim b _0802EA44 _0802E9BA: movs r0, 0x15 bl PlaySE ldrh r1, [r6, 0x32] lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl StartSpriteAnim ldr r4, =gSprites movs r2, 0x1C ldrsh r0, [r5, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r3, 0x1E ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] b _0802EA44 .pool _0802EA04: adds r1, r6, 0 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r3, =gSprites movs r0, 0x1C ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] movs r0, 0x1E ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] movs r0, 0x4 strh r0, [r5] b _0802EA4A .pool _0802EA44: ldrh r0, [r6, 0x32] adds r0, 0x1 strh r0, [r6, 0x32] _0802EA4A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_802E938 thumb_func_start sub_802EA50 sub_802EA50: @ 802EA50 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, =gTasks + 0x8 adds r6, r4, r5 movs r0, 0x38 bl PlaySE ldr r2, =gSprites movs r0, 0x1A ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_802E938 str r1, [r0] movs r0, 0x1A ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] subs r5, 0x8 adds r4, r5 movs r0, 0x3 strh r0, [r4, 0x8] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802EA50 thumb_func_start sub_802EAB0 sub_802EAB0: @ 802EAB0 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 ldr r0, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0802EB14 ldr r1, =gUnknown_03003090 ldrh r0, [r1, 0x2] ldr r5, =0x00007fff cmp r0, r5 bne _0802EAD8 ldrh r0, [r1, 0x4] strh r0, [r4, 0x16] _0802EAD8: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _0802EB1A ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] mov r0, sp movs r1, 0 movs r2, 0xC bl memset mov r0, sp strh r5, [r0] mov r1, sp ldrh r0, [r4, 0x18] strh r0, [r1, 0x2] mov r0, sp bl sub_800FE50 b _0802EB1A .pool _0802EB14: ldrh r0, [r4, 0x16] adds r0, 0x1 strh r0, [r4, 0x16] _0802EB1A: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_802EAB0 thumb_func_start sub_802EB24 sub_802EB24: @ 802EB24 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [sp, 0x18] lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, =sub_802EB98 movs r1, 0x50 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0xC] strh r5, [r1, 0xE] strh r6, [r1, 0x10] ldr r3, [sp] strh r3, [r1, 0x12] mov r0, r8 strh r0, [r1, 0x14] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802EB24 thumb_func_start sub_802EB84 sub_802EB84: @ 802EB84 push {lr} ldr r0, =sub_802EB98 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_802EB84 thumb_func_start sub_802EB98 sub_802EB98: @ 802EB98 push {r4-r6,lr} sub sp, 0xC 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 r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _0802EC08 cmp r0, 0x1 bgt _0802EBC0 cmp r0, 0 beq _0802EBC6 b _0802EC8A .pool _0802EBC0: cmp r0, 0x2 beq _0802EC4C b _0802EC8A _0802EBC6: ldrh r0, [r5, 0x4] ldrh r1, [r5, 0x6] bl sub_802EF50 ldrh r0, [r5, 0x4] ldrh r1, [r5, 0x6] movs r3, 0x8 ldrsh r2, [r5, r3] movs r4, 0xA ldrsh r3, [r5, r4] ldrb r4, [r5, 0xC] str r4, [sp] bl sub_802EFA8 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrh r0, [r5, 0x4] ldrh r1, [r5, 0x6] movs r3, 0x8 ldrsh r2, [r5, r3] movs r4, 0xA ldrsh r3, [r5, r4] ldrb r4, [r5, 0xC] str r4, [sp] adds r4, r5, 0 adds r4, 0x10 str r4, [sp, 0x4] adds r4, 0x2 str r4, [sp, 0x8] bl sub_802EFFC b _0802EC3E _0802EC08: ldrb r0, [r5, 0xE] bl sub_802EC98 cmp r0, 0 bne _0802EC8A ldrb r0, [r5, 0xE] ldrb r1, [r5, 0x10] ldrb r2, [r5, 0x12] bl sub_802EDCC movs r0, 0xE ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 bl FreeSpriteOamMatrix movs r3, 0xE ldrsh r1, [r5, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite _0802EC3E: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _0802EC8A .pool _0802EC4C: ldrb r0, [r5, 0x10] bl sub_802EE30 cmp r0, 0 bne _0802EC8A movs r4, 0x10 ldrsh r1, [r5, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 bl DestroySprite movs r0, 0x12 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldrh r0, [r5, 0x4] bl FreeSpriteTilesByTag ldrh r0, [r5, 0x6] bl FreeSpritePaletteByTag adds r0, r6, 0 bl DestroyTask _0802EC8A: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802EB98 thumb_func_start sub_802EC98 sub_802EC98: @ 802EC98 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r4, r1, r0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x7 bls _0802ECB2 b _0802EDC4 _0802ECB2: lsls r0, 2 ldr r1, =_0802ECC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802ECC4: .4byte _0802ECE4 .4byte _0802ECF6 .4byte _0802ED1C .4byte _0802ED2C .4byte _0802ED4E .4byte _0802ED86 .4byte _0802EDAC .4byte _0802ED82 _0802ECE4: movs r1, 0x80 lsls r1, 4 adds r0, r4, 0 movs r2, 0x1A bl sub_8007E18 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _0802ECF6: movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 bne _0802ED04 movs r0, 0x39 bl PlaySE _0802ED04: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _0802EDC4 movs r0, 0 strh r0, [r4, 0x32] adds r0, r4, 0 movs r1, 0x1 b _0802EDA2 _0802ED1C: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802EDC4 b _0802EDA6 _0802ED2C: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _0802EDC4 movs r0, 0 strh r0, [r4, 0x32] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAffineAnim b _0802EDC4 _0802ED4E: ldrh r0, [r4, 0x22] subs r0, 0x4 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0802EDC4 ldrh r1, [r4, 0x36] movs r2, 0x36 ldrsh r0, [r4, r2] cmp r0, 0x1 bgt _0802ED7E adds r1, 0x1 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0x32] b _0802EDA6 _0802ED7E: movs r0, 0x7 strh r0, [r4, 0x2E] _0802ED82: movs r0, 0 b _0802EDC6 _0802ED86: ldrh r0, [r4, 0x22] adds r0, 0x4 strh r0, [r4, 0x22] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0802EDC4 movs r0, 0 strh r0, [r4, 0x32] adds r0, r4, 0 movs r1, 0x3 _0802EDA2: bl StartSpriteAffineAnim _0802EDA6: ldrh r0, [r4, 0x2E] adds r0, 0x1 b _0802EDC2 _0802EDAC: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0802EDC4 ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] movs r0, 0x1 _0802EDC2: strh r0, [r4, 0x2E] _0802EDC4: movs r0, 0x1 _0802EDC6: pop {r4} pop {r1} bx r1 thumb_func_end sub_802EC98 thumb_func_start sub_802EDCC sub_802EDCC: @ 802EDCC push {r4-r6,lr} mov r6, r8 push {r6} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gSprites mov r8, r0 lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r5, r4, r0 ldr r0, =0x0000ffd8 strh r0, [r5, 0x26] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 mov r1, r8 adds r2, r3, r1 strh r0, [r2, 0x26] adds r5, 0x3E ldrb r6, [r5] movs r1, 0x5 negs r1, r1 adds r0, r1, 0 ands r0, r6 strb r0, [r5] adds r2, 0x3E ldrb r0, [r2] ands r1, r0 strb r1, [r2] movs r0, 0x1C add r8, r0 add r4, r8 ldr r0, =sub_802EE5C str r0, [r4] add r3, r8 str r0, [r3] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_802EDCC thumb_func_start sub_802EE30 sub_802EE30: @ 802EE30 push {lr} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r2, 0x1C adds r1, r2 ldr r1, [r1] ldr r0, =sub_802EE5C cmp r1, r0 bne _0802EE4E movs r3, 0x1 _0802EE4E: adds r0, r3, 0 pop {r1} bx r1 .pool thumb_func_end sub_802EE30 thumb_func_start sub_802EE5C sub_802EE5C: @ 802EE5C push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x2E movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0x4 bhi _0802EF46 lsls r0, 2 ldr r1, =_0802EE7C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0802EE7C: .4byte _0802EE90 .4byte _0802EEA0 .4byte _0802EEC8 .4byte _0802EEFC .4byte _0802EF34 _0802EE90: movs r0, 0x40 strh r0, [r4, 0x8] ldrh r0, [r5, 0x26] lsls r0, 4 strh r0, [r4, 0xA] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0802EEA0: ldrh r1, [r4, 0x8] ldrh r2, [r4, 0xA] adds r0, r1, r2 strh r0, [r4, 0xA] adds r1, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x26] cmp r0, 0 blt _0802EF46 movs r0, 0x39 bl PlaySE movs r0, 0 strh r0, [r5, 0x26] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _0802EF46 _0802EEC8: ldrh r0, [r4, 0x2] adds r0, 0xC strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _0802EEE6 movs r0, 0x39 bl PlaySE movs r0, 0 strh r0, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0802EEE6: ldr r0, =gSineTable movs r2, 0x2 ldrsh r1, [r4, r2] lsls r1, 1 adds r1, r0 movs r2, 0 ldrsh r0, [r1, r2] asrs r0, 4 b _0802EF2A .pool _0802EEFC: ldrh r0, [r4, 0x2] adds r0, 0x10 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _0802EF1A movs r0, 0x39 bl PlaySE movs r0, 0 strh r0, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0802EF1A: ldr r1, =gSineTable movs r2, 0x2 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 _0802EF2A: negs r0, r0 strh r0, [r5, 0x26] b _0802EF46 .pool _0802EF34: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 ble _0802EF46 ldr r0, =SpriteCallbackDummy str r0, [r5, 0x1C] _0802EF46: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_802EE5C thumb_func_start sub_802EF50 sub_802EF50: @ 802EF50 push {r4,lr} sub sp, 0x10 lsls r1, 16 lsrs r1, 16 ldr r2, =gUnknown_082FEBCC ldr r3, [r2, 0x4] ldr r2, [r2] str r2, [sp] str r3, [sp, 0x4] ldr r2, =gUnknown_082FEBD4 ldr r3, [r2, 0x4] ldr r2, [r2] str r2, [sp, 0x8] str r3, [sp, 0xC] lsls r0, 16 ldr r3, =0x0000ffff ldr r2, [sp, 0x4] ands r2, r3 orrs r2, r0 str r2, [sp, 0x4] ldr r2, =0xffff0000 add r4, sp, 0x8 ldr r0, [r4, 0x4] ands r0, r2 orrs r0, r1 str r0, [r4, 0x4] mov r0, sp bl LoadCompressedObjectPic adds r0, r4, 0 bl LoadSpritePalette add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_802EF50 thumb_func_start sub_802EFA8 sub_802EFA8: @ 802EFA8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 mov r12, r3 ldr r3, [sp, 0x30] lsls r1, 16 lsrs r1, 16 lsls r3, 24 lsrs r3, 24 mov r8, r3 mov r5, sp ldr r4, =gUnknown_082FEC90 ldm r4!, {r3,r6,r7} stm r5!, {r3,r6,r7} ldm r4!, {r3,r6,r7} stm r5!, {r3,r6,r7} mov r4, sp strh r0, [r4] mov r0, sp strh r1, [r0, 0x2] lsls r2, 16 asrs r2, 16 mov r0, r12 lsls r6, r0, 16 asrs r6, 16 mov r0, sp adds r1, r2, 0 adds r2, r6, 0 mov r3, r8 bl CreateSprite lsls r0, 24 lsrs r0, 24 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_802EFA8 thumb_func_start sub_802EFFC sub_802EFFC: @ 802EFFC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r12, r3 ldr r6, [sp, 0x38] ldr r3, [sp, 0x3C] mov r9, r3 ldr r4, [sp, 0x40] mov r8, r4 lsls r1, 16 lsrs r1, 16 lsls r6, 24 lsrs r6, 24 mov r10, r6 mov r4, sp ldr r3, =gUnknown_082FECA8 ldm r3!, {r5-r7} stm r4!, {r5-r7} ldm r3!, {r5-r7} stm r4!, {r5-r7} mov r3, sp strh r0, [r3] mov r0, sp strh r1, [r0, 0x2] lsls r2, 16 asrs r4, r2, 16 ldr r0, =0xffe00000 adds r2, r0 asrs r2, 16 mov r1, r12 lsls r5, r1, 16 asrs r5, 16 mov r0, sp adds r1, r2, 0 adds r2, r5, 0 mov r3, r10 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r3, r9 strh r0, [r3] adds r4, 0x20 lsls r4, 16 asrs r4, 16 mov r0, sp adds r1, r4, 0 adds r2, r5, 0 mov r3, r10 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 strh r0, [r4] ldr r2, =gSprites mov r5, r9 movs r6, 0 ldrsh r1, [r5, r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x4 orrs r1, r3 strb r1, [r0] movs r7, 0 ldrsh r1, [r4, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 bl StartSpriteAnim add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_802EFFC .align 2, 0 @ Don't pad with nop.