.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_804C600 sub_804C600: @ 804C600 push {r4,r5,lr} sub sp, 0xC bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks bl ResetPaletteFade ldr r2, _0804C6F8 @ =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r0, _0804C6FC @ =sub_804D4F8 bl SetVBlankCallback ldr r4, _0804C700 @ =gTMCaseMainWindowPalette adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x14 bl LoadPalette adds r0, r4, 0 movs r1, 0xD0 movs r2, 0x14 bl LoadPalette movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0804C704 @ =gUnknown_8261F1C movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, _0804C708 @ =gUnknown_2031DA8 ldr r1, [r0] movs r0, 0x8F lsls r0, 4 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r0, _0804C70C @ =gUnknown_8261F2C bl InitWindows lsls r0, 16 cmp r0, 0 beq _0804C6F0 bl DeactivateAllTextPrinters ldr r1, _0804C710 @ =gUnknown_3000E78 ldr r2, _0804C714 @ =0x0000024e adds r0, r2, 0 strh r0, [r1] movs r5, 0 _0804C674: lsls r4, r5, 24 lsrs r4, 24 adds r0, r4, 0 bl ClearWindowTilemap adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r5, 0x1 cmp r5, 0x11 bls _0804C674 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, 0x14 movs r2, 0xC0 bl TextWindow_SetStdFrame0_WithPal movs r0, 0x2 movs r1, 0x1 movs r2, 0xE0 bl TextWindow_SetUserSelectedFrame bl sub_809707C ldr r2, _0804C708 @ =gUnknown_2031DA8 ldr r0, [r2] adds r0, 0x69 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0x6F strb r1, [r0] ldr r0, [r2] adds r0, 0x70 strb r1, [r0] ldr r0, [r2] adds r0, 0x74 strb r1, [r0] ldr r0, [r2] adds r0, 0x75 strb r1, [r0] ldr r0, [r2] adds r0, 0x7A strb r1, [r0] ldr r0, [r2] adds r0, 0x7B strb r1, [r0] ldr r0, [r2] adds r0, 0xA8 strb r1, [r0] _0804C6F0: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804C6F8: .4byte gPaletteFade _0804C6FC: .4byte sub_804D4F8 _0804C700: .4byte gTMCaseMainWindowPalette _0804C704: .4byte gUnknown_8261F1C _0804C708: .4byte gUnknown_2031DA8 _0804C70C: .4byte gUnknown_8261F2C _0804C710: .4byte gUnknown_3000E78 _0804C714: .4byte 0x0000024e thumb_func_end sub_804C600 thumb_func_start sub_804C718 sub_804C718: @ 804C718 push {lr} ldr r0, _0804C724 @ =sub_804C728 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0804C724: .4byte sub_804C728 thumb_func_end sub_804C718 thumb_func_start sub_804C728 sub_804C728: @ 804C728 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 ldr r1, _0804C74C @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x16 bls _0804C742 b _0804CEE6 _0804C742: lsls r0, 2 ldr r1, _0804C750 @ =_0804C754 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804C74C: .4byte gMain _0804C750: .4byte _0804C754 .align 2, 0 _0804C754: .4byte _0804C7B0 .4byte _0804C7FC .4byte _0804C8C8 .4byte _0804C8F4 .4byte _0804C950 .4byte _0804C9B0 .4byte _0804C9F0 .4byte _0804CA10 .4byte _0804CB50 .4byte _0804CB78 .4byte _0804CB9C .4byte _0804CC30 .4byte _0804CC3E .4byte _0804CD10 .4byte _0804CDE0 .4byte _0804CE20 .4byte _0804CE3A .4byte _0804CE48 .4byte _0804CE5C .4byte _0804CE7C .4byte _0804CE9C .4byte _0804CEB0 .4byte _0804CED0 _0804C7B0: ldr r4, _0804C7E8 @ =gUnknown_2031DA8 ldr r0, _0804C7EC @ =0x000010f0 bl AllocZeroed str r0, [r4] bl sub_804C600 ldr r4, _0804C7F0 @ =gUnknown_2031C90 movs r0, 0xE0 lsls r0, 4 bl AllocZeroed str r0, [r4] movs r6, 0 ldr r2, _0804C7F4 @ =gUnknown_2031C94 _0804C7CE: lsls r1, r6, 8 ldr r0, [r4] adds r0, r1 stm r2!, {r0} adds r6, 0x1 cmp r6, 0xD ble _0804C7CE ldr r1, _0804C7F8 @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804CEC2 .align 2, 0 _0804C7E8: .4byte gUnknown_2031DA8 _0804C7EC: .4byte 0x000010f0 _0804C7F0: .4byte gUnknown_2031C90 _0804C7F4: .4byte gUnknown_2031C94 _0804C7F8: .4byte gMain _0804C7FC: ldr r2, _0804C864 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r6, 0 movs r4, 0 _0804C80A: movs r0, 0x64 muls r0, r6 ldr r1, _0804C868 @ =gEnemyParty adds r0, r1 str r4, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] movs r1, 0 movs r2, 0 movs r3, 0x20 bl CreateMon adds r6, 0x1 cmp r6, 0x5 ble _0804C80A movs r0, 0 bl sub_804F5BC movs r0, 0 bl ShowBg ldr r0, _0804C86C @ =gReceivedRemoteLinkPlayers ldrb r2, [r0] cmp r2, 0 bne _0804C8B4 ldr r1, _0804C870 @ =gLinkType ldr r5, _0804C874 @ =0x00001122 adds r0, r5, 0 strh r0, [r1] ldr r0, _0804C878 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0xA8 strb r2, [r0] ldr r0, _0804C87C @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804C880 bl sub_800B1F4 bl sub_8009804 bl sub_80FBB20 b _0804C892 .align 2, 0 _0804C864: .4byte gPaletteFade _0804C868: .4byte gEnemyParty _0804C86C: .4byte gReceivedRemoteLinkPlayers _0804C870: .4byte gLinkType _0804C874: .4byte 0x00001122 _0804C878: .4byte gUnknown_2031DA8 _0804C87C: .4byte gWirelessCommType _0804C880: bl sub_8009804 ldr r1, _0804C8A8 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804C892: ldr r0, _0804C8AC @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804C89C b _0804CEE6 _0804C89C: ldr r0, _0804C8B0 @ =sub_8081A90 movs r1, 0x1 bl CreateTask b _0804CEE6 .align 2, 0 _0804C8A8: .4byte gMain _0804C8AC: .4byte gWirelessCommType _0804C8B0: .4byte sub_8081A90 _0804C8B4: ldr r0, _0804C8C4 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x4 strb r1, [r0] b _0804CEE6 .align 2, 0 _0804C8C4: .4byte gMain _0804C8C8: ldr r2, _0804C8F0 @ =gUnknown_2031DA8 ldr r1, [r2] adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r1, r0, 0 adds r1, 0xA8 ldrb r0, [r1] cmp r0, 0xB bhi _0804C8E2 b _0804CEE6 _0804C8E2: movs r0, 0 strb r0, [r1] movs r2, 0x87 lsls r2, 3 adds r1, r3, r2 b _0804CEC2 .align 2, 0 _0804C8F0: .4byte gUnknown_2031DA8 _0804C8F4: bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800A944 lsls r4, 24 lsls r0, 24 cmp r4, r0 bcs _0804C908 b _0804CEE6 _0804C908: bl sub_800AA48 lsls r0, 24 cmp r0, 0 beq _0804C940 ldr r0, _0804C938 @ =gUnknown_2031DA8 ldr r1, [r0] adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0x1E bhi _0804C928 b _0804CEE6 _0804C928: bl sub_800A5BC ldr r1, _0804C93C @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804CEC2 .align 2, 0 _0804C938: .4byte gUnknown_2031DA8 _0804C93C: .4byte gMain _0804C940: ldr r1, _0804C94C @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804CEC2 .align 2, 0 _0804C94C: .4byte gMain _0804C950: ldr r0, _0804C9A0 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 beq _0804C95A b _0804CEE6 _0804C95A: bl IsLinkPlayerDataExchangeComplete lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0804C968 b _0804CEE6 _0804C968: bl sub_80FBB4C bl CalculatePlayerPartyCount ldr r1, _0804C9A4 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _0804C9A8 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0xA8 strb r2, [r0] ldr r0, _0804C9AC @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 bne _0804C992 b _0804CEE6 _0804C992: movs r0, 0x1 bl sub_80FA484 bl sub_800AB9C b _0804CEE6 .align 2, 0 _0804C9A0: .4byte gReceivedRemoteLinkPlayers _0804C9A4: .4byte gMain _0804C9A8: .4byte gUnknown_2031DA8 _0804C9AC: .4byte gWirelessCommType _0804C9B0: ldr r0, _0804C9E0 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804C9E8 bl IsNoOneConnected lsls r0, 24 cmp r0, 0 bne _0804C9C4 b _0804CEE6 _0804C9C4: ldr r1, _0804C9E4 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_80FCEA8 movs r0, 0 movs r1, 0 bl sub_80FCD74 b _0804CEE6 .align 2, 0 _0804C9E0: .4byte gWirelessCommType _0804C9E4: .4byte gMain _0804C9E8: movs r2, 0x87 lsls r2, 3 adds r1, r3, r2 b _0804CEC2 _0804C9F0: bl shedinja_maker_maybe lsls r0, 24 cmp r0, 0 bne _0804C9FC b _0804CEE6 _0804C9FC: bl sub_804F9D8 ldr r1, _0804CA0C @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804CEC2 .align 2, 0 _0804CA0C: .4byte gMain _0804CA10: bl CalculateEnemyPartyCount movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg ldr r2, _0804CB2C @ =gUnknown_2031DA8 ldr r0, [r2] ldr r1, _0804CB30 @ =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x36 strb r1, [r0] ldr r0, [r2] ldr r1, _0804CB34 @ =gEnemyPartyCount ldrb r1, [r1] adds r0, 0x37 strb r1, [r0] movs r6, 0 ldr r0, [r2] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 bge _0804CAA8 mov r8, r2 ldr r7, _0804CB38 @ =gUnknown_8261E40 _0804CA4A: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804CB3C @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData ldrb r2, [r7] lsls r2, 19 movs r1, 0xE0 lsls r1, 12 adds r2, r1 asrs r2, 16 ldrb r3, [r7, 0x1] lsls r3, 19 ldr r1, _0804CB40 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] str r1, [sp, 0x8] adds r0, r5, 0 ldr r1, _0804CB44 @ =sub_809718C bl sub_8096E18 mov r2, r8 ldr r1, [r2] adds r1, 0x28 adds r1, r6 strb r0, [r1] adds r7, 0x2 adds r6, 0x1 ldr r0, [r2] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 blt _0804CA4A _0804CAA8: movs r6, 0 ldr r1, _0804CB2C @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 bge _0804CB20 ldr r0, _0804CB38 @ =gUnknown_8261E40 mov r8, r1 adds r7, r0, 0 adds r7, 0xC _0804CABE: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804CB48 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData ldrb r2, [r7] lsls r2, 19 movs r3, 0xE0 lsls r3, 12 adds r2, r3 asrs r2, 16 ldrb r3, [r7, 0x1] lsls r3, 19 ldr r1, _0804CB40 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, _0804CB44 @ =sub_809718C bl sub_8096E18 mov r2, r8 ldr r1, [r2] adds r1, 0x2E adds r1, r6 strb r0, [r1] adds r7, 0x2 adds r6, 0x1 ldr r0, [r2] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 blt _0804CABE _0804CB20: ldr r1, _0804CB4C @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804CEC2 .align 2, 0 _0804CB2C: .4byte gUnknown_2031DA8 _0804CB30: .4byte gPlayerPartyCount _0804CB34: .4byte gEnemyPartyCount _0804CB38: .4byte gUnknown_8261E40 _0804CB3C: .4byte gPlayerParty _0804CB40: .4byte 0xfff40000 _0804CB44: .4byte sub_809718C _0804CB48: .4byte gEnemyParty _0804CB4C: .4byte gMain _0804CB50: bl sub_8122550 ldr r0, _0804CB70 @ =gUnknown_2031DA8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x36 adds r1, 0x28 movs r2, 0 bl sub_812256C ldr r1, _0804CB74 @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804CEC2 .align 2, 0 _0804CB70: .4byte gUnknown_2031DA8 _0804CB74: .4byte gMain _0804CB78: ldr r0, _0804CB94 @ =gUnknown_2031DA8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x36 adds r1, 0x28 movs r2, 0x1 bl sub_812256C ldr r1, _0804CB98 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 b _0804CEC2 .align 2, 0 _0804CB94: .4byte gUnknown_2031DA8 _0804CB98: .4byte gMain _0804CB9C: ldr r0, _0804CC14 @ =gSaveBlock2Ptr ldr r0, [r0] ldr r6, _0804CC18 @ =gUnknown_2031C94 ldr r1, [r6] ldr r5, _0804CC1C @ =gDecompressionBuffer str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 bl GetMultiplayerId lsls r0, 24 movs r1, 0x80 lsls r1, 17 eors r1, r0 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804CC20 @ =gLinkPlayers + 8 adds r0, r1 ldr r1, [r6, 0xC] str r5, [sp] str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 ldr r4, _0804CC24 @ =gUnknown_8261ECC ldr r0, [r4] ldr r1, [r6, 0x18] str r5, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 ldr r0, [r4, 0x4] ldr r1, [r6, 0x20] movs r2, 0x18 bl sub_804F728 ldr r1, _0804CC28 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _0804CC2C @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0xA8 strb r2, [r0] b _0804CEE6 .align 2, 0 _0804CC14: .4byte gSaveBlock2Ptr _0804CC18: .4byte gUnknown_2031C94 _0804CC1C: .4byte gDecompressionBuffer _0804CC20: .4byte gLinkPlayers + 8 _0804CC24: .4byte gUnknown_8261ECC _0804CC28: .4byte gMain _0804CC2C: .4byte gUnknown_2031DA8 _0804CC30: bl sub_804F610 lsls r0, 24 cmp r0, 0 bne _0804CC3C b _0804CEE6 _0804CC3C: b _0804CEBA _0804CC3E: ldr r0, _0804CCFC @ =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0x38 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 movs r6, 0 add r5, sp, 0x10 ldr r3, _0804CD00 @ =gUnknown_8261E8A mov r8, r3 asrs r0, 1 ldrb r7, [r3, 0x4] adds r4, r0, r7 _0804CC62: add r1, sp, 0x10 ldr r0, _0804CD04 @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldrh r0, [r5] adds r0, r6 strh r0, [r5] lsls r1, r4, 16 asrs r1, 16 add r0, sp, 0x10 mov r3, r8 ldrb r2, [r3, 0x5] movs r3, 0x1 bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 ble _0804CC62 bl GetMultiplayerId lsls r0, 24 movs r1, 0x80 lsls r1, 17 eors r1, r0 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804CD08 @ =gLinkPlayers + 8 adds r1, r0, r1 movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0x38 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 movs r6, 0 add r5, sp, 0x10 ldr r7, _0804CD00 @ =gUnknown_8261E8A mov r8, r7 asrs r0, 1 mov r1, r8 ldrb r1, [r1, 0x6] adds r4, r0, r1 _0804CCC6: add r1, sp, 0x10 ldr r0, _0804CD04 @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r6, 0x3 ldrh r1, [r5] adds r0, r1 strh r0, [r5] lsls r1, r4, 16 asrs r1, 16 add r0, sp, 0x10 mov r3, r8 ldrb r2, [r3, 0x7] movs r3, 0x1 bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 ble _0804CCC6 ldr r1, _0804CD0C @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804CEC2 .align 2, 0 _0804CCFC: .4byte gSaveBlock2Ptr _0804CD00: .4byte gUnknown_8261E8A _0804CD04: .4byte gUnknown_8261CC8 _0804CD08: .4byte gLinkPlayers + 8 _0804CD0C: .4byte gMain _0804CD10: ldr r4, _0804CDCC @ =gUnknown_8261CC8 add r1, sp, 0x10 adds r0, r4, 0 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} add r1, sp, 0x10 adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x6 strh r0, [r1] adds r0, r1, 0 movs r1, 0xD7 movs r2, 0x97 movs r3, 0x1 bl CreateSprite add r0, sp, 0x10 ldm r4!, {r3,r5,r7} stm r0!, {r3,r5,r7} ldm r4!, {r1-r3} stm r0!, {r1-r3} add r1, sp, 0x10 adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x7 strh r0, [r1] adds r0, r1, 0 movs r1, 0xF7 movs r2, 0x97 movs r3, 0x1 bl CreateSprite movs r6, 0 add r4, sp, 0x10 movs r5, 0xC0 lsls r5, 13 _0804CD5C: add r1, sp, 0x10 ldr r0, _0804CDCC @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r6, 0 adds r0, 0x8 ldrh r7, [r4] adds r0, r7 strh r0, [r4] asrs r1, r5, 16 add r0, sp, 0x10 movs r2, 0x96 movs r3, 0x1 bl CreateSprite movs r0, 0x80 lsls r0, 14 adds r5, r0 adds r6, 0x1 cmp r6, 0x5 ble _0804CD5C ldr r0, _0804CDD0 @ =gUnknown_8261CB0 ldr r2, _0804CDD4 @ =gUnknown_8261E40 ldrb r1, [r2] lsls r1, 19 movs r3, 0x80 lsls r3, 14 adds r1, r3 asrs r1, 16 ldrb r2, [r2, 0x1] lsls r2, 3 movs r3, 0x2 bl CreateSprite ldr r2, _0804CDD8 @ =gUnknown_2031DA8 ldr r1, [r2] adds r1, 0x34 movs r3, 0 strb r0, [r1] ldr r0, [r2] adds r0, 0x35 strb r3, [r0] ldr r1, _0804CDDC @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] movs r0, 0 bl rbox_fill_rectangle b _0804CEE6 .align 2, 0 _0804CDCC: .4byte gUnknown_8261CC8 _0804CDD0: .4byte gUnknown_8261CB0 _0804CDD4: .4byte gUnknown_8261E40 _0804CDD8: .4byte gUnknown_2031DA8 _0804CDDC: .4byte gMain _0804CDE0: movs r0, 0 bl sub_804F748 movs r0, 0 bl sub_804F020 ldr r2, _0804CE14 @ =gUnknown_2031DA8 ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x1] bl sub_804D764 ldr r1, _0804CE18 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, _0804CE1C @ =0x00000111 bl PlayBGM b _0804CEE6 .align 2, 0 _0804CE14: .4byte gUnknown_2031DA8 _0804CE18: .4byte gMain _0804CE1C: .4byte 0x00000111 _0804CE20: movs r0, 0x1 bl sub_804F748 movs r0, 0x1 bl sub_804F020 ldr r1, _0804CE44 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804CE3A: movs r0, 0 bl sub_804D694 b _0804CEBA .align 2, 0 _0804CE44: .4byte gMain _0804CE48: movs r0, 0x1 bl sub_804D694 ldr r1, _0804CE58 @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804CEC2 .align 2, 0 _0804CE58: .4byte gMain _0804CE5C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0804CE78 @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804CEC2 .align 2, 0 _0804CE78: .4byte gMain _0804CE7C: movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x2 bl sub_804D694 ldr r1, _0804CE98 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 b _0804CEC2 .align 2, 0 _0804CE98: .4byte gMain _0804CE9C: movs r0, 0 bl sub_804F890 ldr r1, _0804CEAC @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0804CEC2 .align 2, 0 _0804CEAC: .4byte gMain _0804CEB0: movs r0, 0x1 bl sub_804F890 bl sub_804F964 _0804CEBA: ldr r1, _0804CECC @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _0804CEC2: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804CEE6 .align 2, 0 _0804CECC: .4byte gMain _0804CED0: ldr r0, _0804CF08 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804CEE6 ldr r0, _0804CF0C @ =sub_804DFF0 str r0, [r3] ldr r0, _0804CF10 @ =sub_804D638 bl SetMainCallback2 _0804CEE6: bl RunTextPrinters bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804CF08: .4byte gPaletteFade _0804CF0C: .4byte sub_804DFF0 _0804CF10: .4byte sub_804D638 thumb_func_end sub_804C728 thumb_func_start sub_804CF14 sub_804CF14: @ 804CF14 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x24 ldr r1, _0804CF38 @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x16 bls _0804CF2E b _0804D4D2 _0804CF2E: lsls r0, 2 ldr r1, _0804CF3C @ =_0804CF40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804CF38: .4byte gMain _0804CF3C: .4byte _0804CF40 .align 2, 0 _0804CF40: .4byte _0804CF9C .4byte _0804CFB0 .4byte _0804CFB8 .4byte _0804CFC0 .4byte _0804CFC8 .4byte _0804CFDC .4byte _0804D004 .4byte _0804D00C .4byte _0804D150 .4byte _0804D178 .4byte _0804D19C .4byte _0804D230 .4byte _0804D24C .4byte _0804D320 .4byte _0804D4D2 .4byte _0804D4D2 .4byte _0804D414 .4byte _0804D41C .4byte _0804D444 .4byte _0804D480 .4byte _0804D4A0 .4byte _0804D4A8 .4byte _0804D4C0 _0804CF9C: bl sub_804C600 ldr r1, _0804CFAC @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804D4B4 .align 2, 0 _0804CFAC: .4byte gMain _0804CFB0: movs r5, 0x87 lsls r5, 3 adds r1, r2, r5 b _0804D200 _0804CFB8: movs r7, 0x87 lsls r7, 3 adds r1, r2, r7 b _0804D4B4 _0804CFC0: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _0804D4B4 _0804CFC8: bl CalculatePlayerPartyCount ldr r1, _0804CFD8 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0804D4B4 .align 2, 0 _0804CFD8: .4byte gMain _0804CFDC: ldr r0, _0804CFFC @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804CFF0 bl sub_80FCEA8 movs r0, 0 movs r1, 0 bl sub_80FCD74 _0804CFF0: ldr r1, _0804D000 @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804D4B4 .align 2, 0 _0804CFFC: .4byte gWirelessCommType _0804D000: .4byte gMain _0804D004: movs r5, 0x87 lsls r5, 3 adds r1, r2, r5 b _0804D4B4 _0804D00C: bl CalculateEnemyPartyCount ldr r4, _0804D12C @ =gUnknown_2031DA8 ldr r0, [r4] ldr r1, _0804D130 @ =gPlayerPartyCount ldrb r1, [r1] adds r0, 0x36 strb r1, [r0] ldr r0, [r4] ldr r1, _0804D134 @ =gEnemyPartyCount ldrb r1, [r1] adds r0, 0x37 strb r1, [r0] movs r0, 0 bl ClearWindowTilemap movs r0, 0 bl sub_804F020 movs r0, 0x1 bl sub_804F020 movs r6, 0 ldr r0, [r4] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 bge _0804D0A8 mov r8, r4 ldr r7, _0804D138 @ =gUnknown_8261E40 _0804D048: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804D13C @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData ldrb r2, [r7] lsls r2, 19 movs r1, 0xE0 lsls r1, 12 adds r2, r1 asrs r2, 16 ldrb r3, [r7, 0x1] lsls r3, 19 ldr r1, _0804D140 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] str r1, [sp, 0x8] adds r0, r5, 0 ldr r1, _0804D144 @ =sub_809718C bl sub_8096E18 mov r2, r8 ldr r1, [r2] adds r1, 0x28 adds r1, r6 strb r0, [r1] adds r7, 0x2 adds r6, 0x1 ldr r0, [r2] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 blt _0804D048 _0804D0A8: movs r6, 0 ldr r1, _0804D12C @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 bge _0804D120 ldr r0, _0804D138 @ =gUnknown_8261E40 mov r8, r1 adds r7, r0, 0 adds r7, 0xC _0804D0BE: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804D148 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 bl GetMonData ldrb r2, [r7] lsls r2, 19 movs r3, 0xE0 lsls r3, 12 adds r2, r3 asrs r2, 16 ldrb r3, [r7, 0x1] lsls r3, 19 ldr r1, _0804D140 @ =0xfff40000 adds r3, r1 asrs r3, 16 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r5, 0 ldr r1, _0804D144 @ =sub_809718C bl sub_8096E18 mov r2, r8 ldr r1, [r2] adds r1, 0x2E adds r1, r6 strb r0, [r1] adds r7, 0x2 adds r6, 0x1 ldr r0, [r2] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 blt _0804D0BE _0804D120: ldr r1, _0804D14C @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804D4B4 .align 2, 0 _0804D12C: .4byte gUnknown_2031DA8 _0804D130: .4byte gPlayerPartyCount _0804D134: .4byte gEnemyPartyCount _0804D138: .4byte gUnknown_8261E40 _0804D13C: .4byte gPlayerParty _0804D140: .4byte 0xfff40000 _0804D144: .4byte sub_809718C _0804D148: .4byte gEnemyParty _0804D14C: .4byte gMain _0804D150: bl sub_8122550 ldr r0, _0804D170 @ =gUnknown_2031DA8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x36 adds r1, 0x28 movs r2, 0 bl sub_812256C ldr r1, _0804D174 @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804D4B4 .align 2, 0 _0804D170: .4byte gUnknown_2031DA8 _0804D174: .4byte gMain _0804D178: ldr r0, _0804D194 @ =gUnknown_2031DA8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x36 adds r1, 0x28 movs r2, 0x1 bl sub_812256C ldr r1, _0804D198 @ =gMain movs r7, 0x87 lsls r7, 3 adds r1, r7 b _0804D4B4 .align 2, 0 _0804D194: .4byte gUnknown_2031DA8 _0804D198: .4byte gMain _0804D19C: ldr r0, _0804D214 @ =gSaveBlock2Ptr ldr r0, [r0] ldr r6, _0804D218 @ =gUnknown_2031C94 ldr r1, [r6] ldr r5, _0804D21C @ =gDecompressionBuffer str r5, [sp] movs r4, 0x3 str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 bl GetMultiplayerId lsls r0, 24 movs r1, 0x80 lsls r1, 17 eors r1, r0 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804D220 @ =gLinkPlayers + 8 adds r0, r1 ldr r1, [r6, 0xC] str r5, [sp] str r4, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 ldr r4, _0804D224 @ =gUnknown_8261ECC ldr r0, [r4] ldr r1, [r6, 0x18] str r5, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 ldr r0, [r4, 0x4] ldr r1, [r6, 0x20] movs r2, 0x18 bl sub_804F728 ldr r1, _0804D228 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _0804D200: ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, _0804D22C @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0xA8 strb r2, [r0] b _0804D4D2 .align 2, 0 _0804D214: .4byte gSaveBlock2Ptr _0804D218: .4byte gUnknown_2031C94 _0804D21C: .4byte gDecompressionBuffer _0804D220: .4byte gLinkPlayers + 8 _0804D224: .4byte gUnknown_8261ECC _0804D228: .4byte gMain _0804D22C: .4byte gUnknown_2031DA8 _0804D230: bl sub_804F610 lsls r0, 24 cmp r0, 0 bne _0804D23C b _0804D4D2 _0804D23C: ldr r1, _0804D248 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0804D4B4 .align 2, 0 _0804D248: .4byte gMain _0804D24C: ldr r0, _0804D30C @ =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0x38 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 movs r6, 0 add r5, sp, 0xC ldr r3, _0804D310 @ =gUnknown_8261E8A mov r8, r3 asrs r0, 1 ldrb r7, [r3, 0x4] adds r4, r0, r7 _0804D270: add r1, sp, 0xC ldr r0, _0804D314 @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldrh r0, [r5] adds r0, r6 strh r0, [r5] lsls r1, r4, 16 asrs r1, 16 add r0, sp, 0xC mov r3, r8 ldrb r2, [r3, 0x5] movs r3, 0x1 bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 ble _0804D270 bl GetMultiplayerId lsls r0, 24 movs r1, 0x80 lsls r1, 17 eors r1, r0 lsrs r1, 24 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r1, _0804D318 @ =gLinkPlayers + 8 adds r1, r0, r1 movs r0, 0x1 movs r2, 0 bl GetStringWidth adds r1, r0, 0 movs r0, 0x38 subs r0, r1 lsrs r1, r0, 31 adds r0, r1 movs r6, 0 add r5, sp, 0xC ldr r7, _0804D310 @ =gUnknown_8261E8A mov r8, r7 asrs r0, 1 mov r1, r8 ldrb r1, [r1, 0x6] adds r4, r0, r1 _0804D2D4: add r1, sp, 0xC ldr r0, _0804D314 @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r6, 0x3 ldrh r1, [r5] adds r0, r1 strh r0, [r5] lsls r1, r4, 16 asrs r1, 16 add r0, sp, 0xC mov r3, r8 ldrb r2, [r3, 0x7] movs r3, 0x1 bl CreateSprite adds r4, 0x20 adds r6, 0x1 cmp r6, 0x2 ble _0804D2D4 ldr r1, _0804D31C @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804D4B4 .align 2, 0 _0804D30C: .4byte gSaveBlock2Ptr _0804D310: .4byte gUnknown_8261E8A _0804D314: .4byte gUnknown_8261CC8 _0804D318: .4byte gLinkPlayers + 8 _0804D31C: .4byte gMain _0804D320: ldr r4, _0804D3B0 @ =gUnknown_8261CC8 add r1, sp, 0xC adds r0, r4, 0 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r5,r7} stm r1!, {r2,r5,r7} add r1, sp, 0xC adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x6 strh r0, [r1] adds r0, r1, 0 movs r1, 0xD7 movs r2, 0x97 movs r3, 0x1 bl CreateSprite add r0, sp, 0xC ldm r4!, {r3,r5,r7} stm r0!, {r3,r5,r7} ldm r4!, {r1-r3} stm r0!, {r1-r3} add r1, sp, 0xC adds r0, r1, 0 ldrh r0, [r0] adds r0, 0x7 strh r0, [r1] adds r0, r1, 0 movs r1, 0xF7 movs r2, 0x97 movs r3, 0x1 bl CreateSprite movs r6, 0 add r4, sp, 0xC movs r5, 0xC0 lsls r5, 13 _0804D36C: add r1, sp, 0xC ldr r0, _0804D3B0 @ =gUnknown_8261CC8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} adds r0, r6, 0 adds r0, 0x8 ldrh r7, [r4] adds r0, r7 strh r0, [r4] asrs r1, r5, 16 add r0, sp, 0xC movs r2, 0x96 movs r3, 0x1 bl CreateSprite movs r0, 0x80 lsls r0, 14 adds r5, r0 adds r6, 0x1 cmp r6, 0x5 ble _0804D36C ldr r4, _0804D3B4 @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x35 ldrb r0, [r0] cmp r0, 0x5 bhi _0804D3B8 bl sub_8138B20 ldr r1, [r4] b _0804D3C0 .align 2, 0 _0804D3B0: .4byte gUnknown_8261CC8 _0804D3B4: .4byte gUnknown_2031DA8 _0804D3B8: bl sub_8138B20 ldr r1, [r4] adds r0, 0x6 _0804D3C0: adds r1, 0x35 strb r0, [r1] ldr r0, _0804D404 @ =gUnknown_8261CB0 ldr r3, _0804D408 @ =gUnknown_8261E40 ldr r4, _0804D40C @ =gUnknown_2031DA8 ldr r1, [r4] adds r1, 0x35 ldrb r2, [r1] lsls r2, 1 adds r1, r2, r3 ldrb r1, [r1] lsls r1, 19 movs r5, 0x80 lsls r5, 14 adds r1, r5 asrs r1, 16 adds r3, 0x1 adds r2, r3 ldrb r2, [r2] lsls r2, 3 movs r3, 0x2 bl CreateSprite ldr r1, [r4] adds r1, 0x34 strb r0, [r1] ldr r0, _0804D410 @ =gMain movs r7, 0x87 lsls r7, 3 adds r0, r7 movs r1, 0x10 strb r1, [r0] b _0804D4D2 .align 2, 0 _0804D404: .4byte gUnknown_8261CB0 _0804D408: .4byte gUnknown_8261E40 _0804D40C: .4byte gUnknown_2031DA8 _0804D410: .4byte gMain _0804D414: movs r0, 0 bl sub_804D694 b _0804D4AC _0804D41C: movs r0, 0x1 bl sub_804D694 ldr r2, _0804D43C @ =gUnknown_2031DA8 ldr r0, [r2] movs r1, 0 strb r1, [r0] ldr r0, [r2] strb r1, [r0, 0x1] bl sub_804D764 ldr r1, _0804D440 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _0804D4B4 .align 2, 0 _0804D43C: .4byte gUnknown_2031DA8 _0804D440: .4byte gMain _0804D444: ldr r2, _0804D478 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] 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 r1, _0804D47C @ =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0804D4B4 .align 2, 0 _0804D478: .4byte gPaletteFade _0804D47C: .4byte gMain _0804D480: movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x2 bl sub_804D694 ldr r1, _0804D49C @ =gMain movs r5, 0x87 lsls r5, 3 adds r1, r5 b _0804D4B4 .align 2, 0 _0804D49C: .4byte gMain _0804D4A0: movs r7, 0x87 lsls r7, 3 adds r1, r2, r7 b _0804D4B4 _0804D4A8: bl sub_804F964 _0804D4AC: ldr r1, _0804D4BC @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _0804D4B4: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804D4D2 .align 2, 0 _0804D4BC: .4byte gMain _0804D4C0: ldr r0, _0804D4F0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804D4D2 ldr r0, _0804D4F4 @ =sub_804D638 bl SetMainCallback2 _0804D4D2: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x24 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804D4F0: .4byte gPaletteFade _0804D4F4: .4byte sub_804D638 thumb_func_end sub_804CF14 thumb_func_start sub_804D4F8 sub_804D4F8: @ 804D4F8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_804D4F8 thumb_func_start sub_804D50C sub_804D50C: @ 804D50C push {r4,lr} sub sp, 0x4 ldr r4, _0804D544 @ =gUnknown_2031DA8 ldr r1, [r4] adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] lsls r0, 24 lsrs r0, 24 cmp r0, 0xF bls _0804D53C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r4] adds r0, 0x6F movs r1, 0xA strb r1, [r0] _0804D53C: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0804D544: .4byte gUnknown_2031DA8 thumb_func_end sub_804D50C thumb_func_start sub_804D548 sub_804D548: @ 804D548 push {r4,lr} ldr r0, _0804D580 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804D59E ldr r1, _0804D584 @ =gUnknown_2031DA4 ldr r4, _0804D588 @ =gUnknown_2031DA8 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x35 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0 adds r0, 0x7E ldrb r0, [r0] strb r0, [r1, 0x1] ldr r0, _0804D58C @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804D590 adds r1, r2, 0 adds r1, 0x6F movs r0, 0x10 strb r0, [r1] b _0804D59E .align 2, 0 _0804D580: .4byte gPaletteFade _0804D584: .4byte gUnknown_2031DA4 _0804D588: .4byte gUnknown_2031DA8 _0804D58C: .4byte gWirelessCommType _0804D590: movs r0, 0x20 bl sub_800AA80 ldr r0, [r4] adds r0, 0x6F movs r1, 0xD strb r1, [r0] _0804D59E: pop {r4} pop {r0} bx r0 thumb_func_end sub_804D548 thumb_func_start sub_804D5A4 sub_804D5A4: @ 804D5A4 push {r4,r5,lr} ldr r5, _0804D5E4 @ =gMain ldr r0, _0804D5E8 @ =sub_804C718 str r0, [r5, 0x8] ldr r0, _0804D5EC @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804D5FC bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _0804D620 ldr r0, _0804D5F0 @ =gUnknown_2031C90 ldr r0, [r0] bl Free bl FreeAllWindowBuffers ldr r0, _0804D5F4 @ =gUnknown_2031DA8 ldr r0, [r0] bl Free movs r0, 0 str r0, [r5] bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804D5F8 @ =sub_8050138 bl SetMainCallback2 b _0804D620 .align 2, 0 _0804D5E4: .4byte gMain _0804D5E8: .4byte sub_804C718 _0804D5EC: .4byte gWirelessCommType _0804D5F0: .4byte gUnknown_2031C90 _0804D5F4: .4byte gUnknown_2031DA8 _0804D5F8: .4byte sub_8050138 _0804D5FC: ldr r0, _0804D628 @ =gReceivedRemoteLinkPlayers ldrb r4, [r0] cmp r4, 0 bne _0804D620 ldr r0, _0804D62C @ =gUnknown_2031C90 ldr r0, [r0] bl Free bl FreeAllWindowBuffers ldr r0, _0804D630 @ =gUnknown_2031DA8 ldr r0, [r0] bl Free str r4, [r5] ldr r0, _0804D634 @ =sub_8050138 bl SetMainCallback2 _0804D620: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804D628: .4byte gReceivedRemoteLinkPlayers _0804D62C: .4byte gUnknown_2031C90 _0804D630: .4byte gUnknown_2031DA8 _0804D634: .4byte sub_8050138 thumb_func_end sub_804D5A4 thumb_func_start sub_804D638 sub_804D638: @ 804D638 push {r4,lr} bl sub_804E9E4 bl sub_804F4DC movs r0, 0 bl sub_804EAE4 movs r0, 0x1 bl sub_804EAE4 ldr r4, _0804D690 @ =gUnknown_2031DA8 ldr r2, [r4] ldrb r1, [r2] adds r0, r1, 0x1 strb r0, [r2] lsls r1, 24 lsrs r1, 24 movs r0, 0x18 bl SetGpuReg ldr r2, [r4] ldrb r1, [r2, 0x1] adds r0, r1, 0 adds r0, 0xFF strb r0, [r2, 0x1] lsls r1, 24 lsrs r1, 24 movs r0, 0x1C bl SetGpuReg bl RunTextPrinters_CheckPrinter0Active bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} bx r0 .align 2, 0 _0804D690: .4byte gUnknown_2031DA8 thumb_func_end sub_804D638 thumb_func_start sub_804D694 sub_804D694: @ 804D694 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _0804D700 cmp r4, 0x1 bgt _0804D6AA cmp r4, 0 beq _0804D6B0 b _0804D75A _0804D6AA: cmp r4, 0x2 beq _0804D728 b _0804D75A _0804D6B0: ldr r0, _0804D6F0 @ =gUnknown_8E9CEDC movs r1, 0 movs r2, 0x60 bl LoadPalette ldr r1, _0804D6F4 @ =gUnknown_8E9CF5C movs r2, 0x94 lsls r2, 5 movs r0, 0x1 movs r3, 0 bl LoadBgTiles ldr r1, _0804D6F8 @ =gUnknown_8E9E9FC movs r0, 0x20 str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBufferRect_ChangePalette ldr r1, _0804D6FC @ =gUnknown_8260C30 movs r2, 0x80 lsls r2, 4 movs r0, 0x2 movs r3, 0 bl LoadBgTilemap b _0804D75A .align 2, 0 _0804D6F0: .4byte gUnknown_8E9CEDC _0804D6F4: .4byte gUnknown_8E9CF5C _0804D6F8: .4byte gUnknown_8E9E9FC _0804D6FC: .4byte gUnknown_8260C30 _0804D700: ldr r1, _0804D724 @ =gUnknown_8261430 movs r2, 0x80 lsls r2, 4 movs r0, 0x3 movs r3, 0 bl LoadBgTilemap movs r0, 0 bl sub_804F284 movs r0, 0x1 bl sub_804F284 movs r0, 0x1 bl CopyBgTilemapBufferToVram b _0804D75A .align 2, 0 _0804D724: .4byte gUnknown_8261430 _0804D728: movs r5, 0x80 lsls r5, 21 movs r4, 0x3 _0804D72E: lsrs r0, r5, 24 movs r1, 0 bl SetGpuReg movs r0, 0x80 lsls r0, 18 adds r5, r0 subs r4, 0x1 cmp r4, 0 bge _0804D72E movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _0804D75A: add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_804D694 thumb_func_start sub_804D764 sub_804D764: @ 804D764 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r3, 0 ldr r5, _0804D7B4 @ =gUnknown_2031DA8 mov r8, r5 ldr r0, _0804D7B8 @ =gSprites mov r12, r0 movs r1, 0x5 negs r1, r1 mov r9, r1 movs r4, 0x6 movs r7, 0x1 movs r6, 0 _0804D782: mov r1, r8 ldr r0, [r1] adds r1, r0, 0 adds r1, 0x36 ldrb r1, [r1] cmp r3, r1 bge _0804D7BC adds r0, 0x28 adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 adds r1, 0x3E ldrb r2, [r1] mov r0, r9 ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r0, 0x38 adds r0, r3 strb r7, [r0] b _0804D7C2 .align 2, 0 _0804D7B4: .4byte gUnknown_2031DA8 _0804D7B8: .4byte gSprites _0804D7BC: adds r0, 0x38 adds r0, r3 strb r6, [r0] _0804D7C2: mov r1, r8 ldr r0, [r1] adds r1, r0, 0 adds r1, 0x37 ldrb r1, [r1] cmp r3, r1 bge _0804D7F2 adds r0, 0x2E adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 adds r1, 0x3E ldrb r2, [r1] mov r0, r9 ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r0, 0x38 adds r0, r4 strb r7, [r0] b _0804D7F8 _0804D7F2: adds r0, 0x38 adds r0, r4 strb r6, [r0] _0804D7F8: adds r4, 0x1 adds r3, 0x1 cmp r3, 0x5 ble _0804D782 ldr r0, [r5] adds r0, 0x44 movs r1, 0x1 strb r1, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804D764 thumb_func_start sub_804D814 sub_804D814: @ 804D814 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r3, 0 cmp r3, r2 bcs _0804D82E _0804D820: adds r0, r5, r3 adds r1, r4, r3 ldrb r1, [r1] strb r1, [r0] adds r3, 0x1 cmp r3, r2 bcc _0804D820 _0804D82E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_804D814 thumb_func_start shedinja_maker_maybe shedinja_maker_maybe: @ 804D834 push {r4-r6,lr} sub sp, 0xC bl GetMultiplayerId lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0804D858 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x69 ldrb r0, [r0] cmp r0, 0x15 bls _0804D84E b _0804DB9E _0804D84E: lsls r0, 2 ldr r1, _0804D85C @ =_0804D860 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804D858: .4byte gUnknown_2031DA8 _0804D85C: .4byte _0804D860 .align 2, 0 _0804D860: .4byte _0804D8B8 .4byte _0804D8E4 .4byte _0804DB78 .4byte _0804D914 .4byte _0804D928 .4byte _0804D960 .4byte _0804DB78 .4byte _0804D97C .4byte _0804D990 .4byte _0804D9C8 .4byte _0804DB78 .4byte _0804D9E4 .4byte _0804D9F8 .4byte _0804DA30 .4byte _0804DB78 .4byte _0804DA58 .4byte _0804DA6C .4byte _0804DAA4 .4byte _0804DB78 .4byte _0804DACC .4byte _0804DAE0 .4byte _0804DB14 _0804D8B8: ldr r0, _0804D8D8 @ =gBlockSendBuffer ldr r1, _0804D8DC @ =gPlayerParty movs r2, 0xC8 bl sub_804D814 ldr r3, _0804D8E0 @ =gUnknown_2031DA8 ldr r1, [r3] adds r1, 0x69 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, [r3] adds r0, 0xA8 strb r2, [r0] b _0804DB9E .align 2, 0 _0804D8D8: .4byte gBlockSendBuffer _0804D8DC: .4byte gPlayerParty _0804D8E0: .4byte gUnknown_2031DA8 _0804D8E4: bl sub_800A4BC lsls r0, 24 cmp r0, 0 bne _0804D8F0 b _0804DB9E _0804D8F0: bl GetBlockReceivedStatus lsls r0, 24 cmp r0, 0 bne _0804D904 ldr r0, _0804D900 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D900: .4byte gUnknown_2031DA8 _0804D904: bl ResetBlockReceivedFlags ldr r0, _0804D910 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D910: .4byte gUnknown_2031DA8 _0804D914: cmp r5, 0 bne _0804D91E movs r0, 0x1 bl sub_800A474 _0804D91E: ldr r0, _0804D924 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D924: .4byte gUnknown_2031DA8 _0804D928: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0804D936 b _0804DB9E _0804D936: ldr r0, _0804D954 @ =gEnemyParty movs r2, 0x1 adds r1, r5, 0 eors r1, r2 lsls r1, 8 ldr r2, _0804D958 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_804D814 bl ResetBlockReceivedFlags ldr r0, _0804D95C @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D954: .4byte gEnemyParty _0804D958: .4byte gBlockRecvBuffer _0804D95C: .4byte gUnknown_2031DA8 _0804D960: ldr r0, _0804D970 @ =gBlockSendBuffer ldr r1, _0804D974 @ =gUnknown_202434C movs r2, 0xC8 bl sub_804D814 ldr r0, _0804D978 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D970: .4byte gBlockSendBuffer _0804D974: .4byte gUnknown_202434C _0804D978: .4byte gUnknown_2031DA8 _0804D97C: cmp r5, 0 bne _0804D986 movs r0, 0x1 bl sub_800A474 _0804D986: ldr r0, _0804D98C @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D98C: .4byte gUnknown_2031DA8 _0804D990: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0804D99E b _0804DB9E _0804D99E: ldr r0, _0804D9BC @ =gUnknown_20240F4 movs r2, 0x1 adds r1, r5, 0 eors r1, r2 lsls r1, 8 ldr r2, _0804D9C0 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_804D814 bl ResetBlockReceivedFlags ldr r0, _0804D9C4 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D9BC: .4byte gUnknown_20240F4 _0804D9C0: .4byte gBlockRecvBuffer _0804D9C4: .4byte gUnknown_2031DA8 _0804D9C8: ldr r0, _0804D9D8 @ =gBlockSendBuffer ldr r1, _0804D9DC @ =gUnknown_2024414 movs r2, 0xC8 bl sub_804D814 ldr r0, _0804D9E0 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D9D8: .4byte gBlockSendBuffer _0804D9DC: .4byte gUnknown_2024414 _0804D9E0: .4byte gUnknown_2031DA8 _0804D9E4: cmp r5, 0 bne _0804D9EE movs r0, 0x1 bl sub_800A474 _0804D9EE: ldr r0, _0804D9F4 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804D9F4: .4byte gUnknown_2031DA8 _0804D9F8: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0804DA06 b _0804DB9E _0804DA06: ldr r0, _0804DA24 @ =gUnknown_20241BC movs r2, 0x1 adds r1, r5, 0 eors r1, r2 lsls r1, 8 ldr r2, _0804DA28 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xC8 bl sub_804D814 bl ResetBlockReceivedFlags ldr r0, _0804DA2C @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DA24: .4byte gUnknown_20241BC _0804DA28: .4byte gBlockRecvBuffer _0804DA2C: .4byte gUnknown_2031DA8 _0804DA30: ldr r0, _0804DA48 @ =gBlockSendBuffer ldr r1, _0804DA4C @ =gSaveBlock1Ptr ldr r1, [r1] ldr r2, _0804DA50 @ =0x00002cd0 adds r1, r2 movs r2, 0xDC bl sub_804D814 ldr r0, _0804DA54 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DA48: .4byte gBlockSendBuffer _0804DA4C: .4byte gSaveBlock1Ptr _0804DA50: .4byte 0x00002cd0 _0804DA54: .4byte gUnknown_2031DA8 _0804DA58: cmp r5, 0 bne _0804DA62 movs r0, 0x3 bl sub_800A474 _0804DA62: ldr r0, _0804DA68 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DA68: .4byte gUnknown_2031DA8 _0804DA6C: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 beq _0804DA7A b _0804DB9E _0804DA7A: ldr r0, _0804DA98 @ =gUnknown_2031CCC movs r2, 0x1 adds r1, r5, 0 eors r1, r2 lsls r1, 8 ldr r2, _0804DA9C @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xD8 bl sub_804D814 bl ResetBlockReceivedFlags ldr r0, _0804DAA0 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DA98: .4byte gUnknown_2031CCC _0804DA9C: .4byte gBlockRecvBuffer _0804DAA0: .4byte gUnknown_2031DA8 _0804DAA4: ldr r0, _0804DABC @ =gBlockSendBuffer ldr r1, _0804DAC0 @ =gSaveBlock1Ptr ldr r1, [r1] ldr r2, _0804DAC4 @ =0x0000309c adds r1, r2 movs r2, 0xB bl sub_804D814 ldr r0, _0804DAC8 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DABC: .4byte gBlockSendBuffer _0804DAC0: .4byte gSaveBlock1Ptr _0804DAC4: .4byte 0x0000309c _0804DAC8: .4byte gUnknown_2031DA8 _0804DACC: cmp r5, 0 bne _0804DAD6 movs r0, 0x4 bl sub_800A474 _0804DAD6: ldr r0, _0804DADC @ =gUnknown_2031DA8 ldr r1, [r0] b _0804DB96 .align 2, 0 _0804DADC: .4byte gUnknown_2031DA8 _0804DAE0: bl GetBlockReceivedStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bne _0804DB9E ldr r4, _0804DB0C @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0xA9 movs r2, 0x1 adds r1, r5, 0 eors r1, r2 lsls r1, 8 ldr r2, _0804DB10 @ =gBlockRecvBuffer adds r1, r2 movs r2, 0xB bl sub_804D814 bl ResetBlockReceivedFlags ldr r1, [r4] b _0804DB96 .align 2, 0 _0804DB0C: .4byte gUnknown_2031DA8 _0804DB10: .4byte gBlockRecvBuffer _0804DB14: ldr r4, _0804DB68 @ =gEnemyParty ldr r6, _0804DB6C @ =0x0000012f movs r5, 0x5 _0804DB1A: adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, 0 beq _0804DB5A cmp r0, r6 bne _0804DB5A adds r0, r4, 0 movs r1, 0x3 bl GetMonData cmp r0, 0x1 beq _0804DB5A adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl GetMonData mov r0, sp ldr r1, _0804DB70 @ =gUnknown_8262034 bl StringCompareWithoutExtCtrlCodes cmp r0, 0 bne _0804DB5A adds r0, r4, 0 movs r1, 0x2 ldr r2, _0804DB74 @ = gSpeciesNames + 0xD05 bl SetMonData _0804DB5A: adds r4, 0x64 subs r5, 0x1 cmp r5, 0 bge _0804DB1A movs r0, 0x1 b _0804DBA0 .align 2, 0 _0804DB68: .4byte gEnemyParty _0804DB6C: .4byte 0x0000012f _0804DB70: .4byte gUnknown_8262034 _0804DB74: .4byte gSpeciesNames+0xD05 _0804DB78: ldr r2, _0804DBA8 @ =gUnknown_2031DA8 ldr r1, [r2] adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r1, r0, 0 adds r1, 0xA8 ldrb r0, [r1] cmp r0, 0xA bls _0804DB9E movs r0, 0 strb r0, [r1] ldr r1, [r2] _0804DB96: adds r1, 0x69 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804DB9E: movs r0, 0 _0804DBA0: add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0804DBA8: .4byte gUnknown_2031DA8 thumb_func_end shedinja_maker_maybe thumb_func_start sub_804DBAC sub_804DBAC: @ 804DBAC push {lr} ldr r0, _0804DBC8 @ =gUnknown_841E0A5 ldr r1, _0804DBCC @ =gUnknown_2031DA8 ldr r1, [r1] adds r1, 0x72 ldrh r1, [r1] lsls r1, 5 ldr r2, _0804DBD0 @ =0x06010000 adds r1, r2 movs r2, 0x18 bl sub_804F728 pop {r0} bx r0 .align 2, 0 _0804DBC8: .4byte gUnknown_841E0A5 _0804DBCC: .4byte gUnknown_2031DA8 _0804DBD0: .4byte 0x06010000 thumb_func_end sub_804DBAC thumb_func_start sub_804DBD4 sub_804DBD4: @ 804DBD4 push {r4,lr} lsls r1, 24 lsrs r4, r1, 24 movs r2, 0x1 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804DC58 ldr r0, _0804DBFC @ =gBlockRecvBuffer ldrh r1, [r0] ldr r0, _0804DC00 @ =0x0000bbbb cmp r1, r0 beq _0804DC38 cmp r1, r0 bgt _0804DC08 ldr r0, _0804DC04 @ =0x0000aabb cmp r1, r0 beq _0804DC28 b _0804DC52 .align 2, 0 _0804DBFC: .4byte gBlockRecvBuffer _0804DC00: .4byte 0x0000bbbb _0804DC04: .4byte 0x0000aabb _0804DC08: ldr r0, _0804DC1C @ =0x0000bbcc cmp r1, r0 beq _0804DC48 ldr r0, _0804DC20 @ =0x0000eeaa cmp r1, r0 bne _0804DC52 ldr r0, _0804DC24 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x78 b _0804DC4E .align 2, 0 _0804DC1C: .4byte 0x0000bbcc _0804DC20: .4byte 0x0000eeaa _0804DC24: .4byte gUnknown_2031DA8 _0804DC28: ldr r0, _0804DC34 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x78 strb r2, [r0] b _0804DC52 .align 2, 0 _0804DC34: .4byte gUnknown_2031DA8 _0804DC38: ldr r0, _0804DC44 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x7A strb r2, [r0] b _0804DC52 .align 2, 0 _0804DC44: .4byte gUnknown_2031DA8 _0804DC48: ldr r0, _0804DC80 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x7A _0804DC4E: movs r1, 0x2 strb r1, [r0] _0804DC52: movs r0, 0 bl ResetBlockReceivedFlag _0804DC58: movs r2, 0x2 adds r0, r4, 0 ands r0, r2 cmp r0, 0 beq _0804DCEA ldr r3, _0804DC84 @ =gBlockRecvBuffer movs r1, 0x80 lsls r1, 1 adds r0, r3, r1 ldrh r1, [r0] ldr r0, _0804DC88 @ =0x0000bbbb cmp r1, r0 beq _0804DCCC cmp r1, r0 bgt _0804DC90 ldr r0, _0804DC8C @ =0x0000aabb cmp r1, r0 beq _0804DCB0 b _0804DCE4 .align 2, 0 _0804DC80: .4byte gUnknown_2031DA8 _0804DC84: .4byte gBlockRecvBuffer _0804DC88: .4byte 0x0000bbbb _0804DC8C: .4byte 0x0000aabb _0804DC90: ldr r0, _0804DCA4 @ =0x0000bbcc cmp r1, r0 beq _0804DCDC ldr r0, _0804DCA8 @ =0x0000eeaa cmp r1, r0 bne _0804DCE4 ldr r0, _0804DCAC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x79 b _0804DCE2 .align 2, 0 _0804DCA4: .4byte 0x0000bbcc _0804DCA8: .4byte 0x0000eeaa _0804DCAC: .4byte gUnknown_2031DA8 _0804DCB0: ldr r2, _0804DCC8 @ =gUnknown_2031DA8 ldr r1, [r2] movs r4, 0x81 lsls r4, 1 adds r0, r3, r4 ldrb r0, [r0] adds r0, 0x6 adds r1, 0x7E strb r0, [r1] ldr r0, [r2] adds r0, 0x79 b _0804DCD2 .align 2, 0 _0804DCC8: .4byte gUnknown_2031DA8 _0804DCCC: ldr r0, _0804DCD8 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x7B _0804DCD2: movs r1, 0x1 strb r1, [r0] b _0804DCE4 .align 2, 0 _0804DCD8: .4byte gUnknown_2031DA8 _0804DCDC: ldr r0, _0804DCF0 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x7B _0804DCE2: strb r2, [r0] _0804DCE4: movs r0, 0x1 bl ResetBlockReceivedFlag _0804DCEA: pop {r4} pop {r0} bx r0 .align 2, 0 _0804DCF0: .4byte gUnknown_2031DA8 thumb_func_end sub_804DBD4 thumb_func_start sub_804DCF4 sub_804DCF4: @ 804DCF4 push {r4,r5,lr} sub sp, 0x4 lsls r1, 24 lsrs r5, r1, 24 movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0804DDD6 ldr r2, _0804DD20 @ =gBlockRecvBuffer ldrh r1, [r2] ldr r0, _0804DD24 @ =0x0000ddee cmp r1, r0 beq _0804DDC0 cmp r1, r0 bgt _0804DD30 ldr r0, _0804DD28 @ =0x0000ccdd cmp r1, r0 beq _0804DDA0 ldr r0, _0804DD2C @ =0x0000dddd cmp r1, r0 beq _0804DD6C b _0804DDD0 .align 2, 0 _0804DD20: .4byte gBlockRecvBuffer _0804DD24: .4byte 0x0000ddee _0804DD28: .4byte 0x0000ccdd _0804DD2C: .4byte 0x0000dddd _0804DD30: ldr r0, _0804DD40 @ =0x0000eebb cmp r1, r0 beq _0804DD44 adds r0, 0x11 cmp r1, r0 beq _0804DD68 b _0804DDD0 .align 2, 0 _0804DD40: .4byte 0x0000eebb _0804DD44: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x4 bl sub_804F5BC ldr r0, _0804DD64 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0xB b _0804DDCE .align 2, 0 _0804DD64: .4byte gUnknown_2031DA8 _0804DD68: movs r0, 0x5 b _0804DDC2 _0804DD6C: ldr r4, _0804DD9C @ =gUnknown_2031DA8 ldr r1, [r4] ldrb r0, [r2, 0x2] adds r0, 0x6 adds r1, 0x7E strb r0, [r1] movs r0, 0 bl rbox_fill_rectangle ldr r0, [r4] adds r0, 0x35 ldrb r0, [r0] bl sub_804EAAC ldr r0, [r4] adds r0, 0x7E ldrb r0, [r0] bl sub_804EAAC ldr r0, [r4] adds r0, 0x6F movs r1, 0x7 b _0804DDCE .align 2, 0 _0804DD9C: .4byte gUnknown_2031DA8 _0804DDA0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0804DDBC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0xA b _0804DDCE .align 2, 0 _0804DDBC: .4byte gUnknown_2031DA8 _0804DDC0: movs r0, 0x1 _0804DDC2: bl sub_804F5BC ldr r0, _0804DDEC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x8 _0804DDCE: strb r1, [r0] _0804DDD0: movs r0, 0 bl ResetBlockReceivedFlag _0804DDD6: movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _0804DDE4 movs r0, 0x1 bl ResetBlockReceivedFlag _0804DDE4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804DDEC: .4byte gUnknown_2031DA8 thumb_func_end sub_804DCF4 thumb_func_start sub_804DDF0 sub_804DDF0: @ 804DDF0 push {r4-r6,lr} sub sp, 0x4 ldr r6, _0804DE4C @ =gUnknown_2031DA8 ldr r2, [r6] adds r1, r2, 0 adds r1, 0x78 ldrb r0, [r1] cmp r0, 0 bne _0804DE04 b _0804DF38 _0804DE04: adds r0, r2, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0 bne _0804DE10 b _0804DF38 _0804DE10: ldrh r1, [r1] ldr r0, _0804DE50 @ =0x00000101 cmp r1, r0 bne _0804DE58 adds r1, r2, 0 adds r1, 0x6F movs r0, 0x6 strb r0, [r1] ldr r2, [r6] adds r1, r2, 0 adds r1, 0x80 movs r4, 0 ldr r0, _0804DE54 @ =0x0000dddd strh r0, [r1] adds r0, r2, 0 adds r0, 0x35 ldrb r1, [r0] adds r0, 0x4D strh r1, [r0] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r0, [r6] adds r2, r0, 0 adds r2, 0x79 strb r4, [r2] adds r0, 0x78 strb r4, [r0] b _0804DF38 .align 2, 0 _0804DE4C: .4byte gUnknown_2031DA8 _0804DE50: .4byte 0x00000101 _0804DE54: .4byte 0x0000dddd _0804DE58: ldr r0, _0804DEA0 @ =0x00000201 cmp r1, r0 bne _0804DEA8 movs r0, 0x1 bl sub_804F5BC ldr r1, [r6] adds r2, r1, 0 adds r2, 0x80 movs r4, 0 movs r3, 0 ldr r0, _0804DEA4 @ =0x0000eecc strh r0, [r2] adds r1, 0x82 strh r3, [r1] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x7B strb r4, [r1] adds r0, 0x7A strb r4, [r0] ldr r0, [r6] adds r1, r0, 0 adds r1, 0x79 strb r4, [r1] adds r0, 0x78 strb r4, [r0] ldr r0, [r6] adds r0, 0x6F movs r1, 0x8 b _0804DF36 .align 2, 0 _0804DEA0: .4byte 0x00000201 _0804DEA4: .4byte 0x0000eecc _0804DEA8: movs r0, 0x81 lsls r0, 1 cmp r1, r0 bne _0804DEF4 movs r0, 0x5 bl sub_804F5BC ldr r1, [r6] adds r2, r1, 0 adds r2, 0x80 movs r4, 0 movs r3, 0 ldr r0, _0804DEF0 @ =0x0000ddee strh r0, [r2] adds r1, 0x82 strh r3, [r1] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x7B strb r4, [r1] adds r0, 0x7A strb r4, [r0] ldr r0, [r6] adds r1, r0, 0 adds r1, 0x79 strb r4, [r1] adds r0, 0x78 strb r4, [r0] ldr r0, [r6] adds r0, 0x6F movs r1, 0x8 b _0804DF36 .align 2, 0 _0804DEF0: .4byte 0x0000ddee _0804DEF4: ldr r0, _0804DFD8 @ =0x00000202 cmp r1, r0 bne _0804DF38 adds r1, r2, 0 adds r1, 0x80 movs r5, 0 movs r4, 0 ldr r0, _0804DFDC @ =0x0000eebb strh r0, [r1] adds r0, r2, 0 adds r0, 0x82 strh r4, [r0] movs r0, 0x5 movs r1, 0 bl sub_804F488 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r6] adds r1, r0, 0 adds r1, 0x79 strb r5, [r1] adds r0, 0x78 strb r5, [r0] ldr r0, [r6] adds r0, 0x6F movs r1, 0xB _0804DF36: strb r1, [r0] _0804DF38: ldr r5, _0804DFE0 @ =gUnknown_2031DA8 ldr r3, [r5] adds r1, r3, 0 adds r1, 0x7A ldrb r0, [r1] cmp r0, 0 beq _0804DFD0 adds r0, r3, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0 beq _0804DFD0 ldrh r1, [r1] ldr r0, _0804DFE4 @ =0x00000101 cmp r1, r0 bne _0804DF86 adds r1, r3, 0 adds r1, 0x80 movs r4, 0 movs r2, 0 ldr r0, _0804DFE8 @ =0x0000ccdd strh r0, [r1] adds r0, r3, 0 adds r0, 0x82 strh r2, [r0] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r0, [r5] adds r0, 0x7A strb r4, [r0] ldr r0, [r5] adds r0, 0x7B strb r4, [r0] ldr r0, [r5] adds r0, 0x6F movs r1, 0x9 strb r1, [r0] _0804DF86: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x7A ldrb r0, [r0] cmp r0, 0x2 beq _0804DF9C adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] cmp r0, 0x2 bne _0804DFD0 _0804DF9C: movs r0, 0x1 bl sub_804F5BC ldr r1, [r5] adds r2, r1, 0 adds r2, 0x80 movs r4, 0 movs r3, 0 ldr r0, _0804DFEC @ =0x0000ddee strh r0, [r2] adds r1, 0x82 strh r3, [r1] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r0, [r5] adds r0, 0x7A strb r4, [r0] ldr r0, [r5] adds r0, 0x7B strb r4, [r0] ldr r0, [r5] adds r0, 0x6F movs r1, 0x8 strb r1, [r0] _0804DFD0: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804DFD8: .4byte 0x00000202 _0804DFDC: .4byte 0x0000eebb _0804DFE0: .4byte gUnknown_2031DA8 _0804DFE4: .4byte 0x00000101 _0804DFE8: .4byte 0x0000ccdd _0804DFEC: .4byte 0x0000ddee thumb_func_end sub_804DDF0 thumb_func_start sub_804DFF0 sub_804DFF0: @ 804DFF0 push {r4,lr} bl GetMultiplayerId lsls r0, 24 lsrs r4, r0, 24 bl GetBlockReceivedStatus lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0804E018 cmp r4, 0 bne _0804E012 movs r0, 0 bl sub_804DBD4 b _0804E018 _0804E012: adds r0, r4, 0 bl sub_804DCF4 _0804E018: cmp r4, 0 bne _0804E020 bl sub_804DDF0 _0804E020: pop {r4} pop {r0} bx r0 thumb_func_end sub_804DFF0 thumb_func_start sub_804E028 sub_804E028: @ 804E028 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 movs r6, 0 movs r5, 0 ldr r2, _0804E05C @ =gUnknown_2031DA8 ldr r3, [r2] ldr r4, _0804E060 @ =gUnknown_8261D08 lsls r2, r1, 1 adds r2, r1 lsls r2, 1 lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r3, 0x38 adds r2, r1 adds r2, r4 _0804E04E: ldrb r1, [r2] adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0804E064 adds r6, r1, 0 b _0804E06C .align 2, 0 _0804E05C: .4byte gUnknown_2031DA8 _0804E060: .4byte gUnknown_8261D08 _0804E064: adds r2, 0x1 adds r5, 0x1 cmp r5, 0x5 ble _0804E04E _0804E06C: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_804E028 thumb_func_start TradeMenuMoveCursor TradeMenuMoveCursor: @ 804E074 push {r4-r7,lr} adds r7, r0, 0 lsls r1, 24 lsrs r1, 24 ldrb r0, [r7] bl sub_804E028 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0xC bne _0804E0CC ldr r5, _0804E0C4 @ =gUnknown_2031DA8 ldr r0, [r5] adds r0, 0x34 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0804E0C8 @ =gSprites adds r0, r4 movs r1, 0x1 bl StartSpriteAnim ldr r2, [r5] adds r2, 0x34 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xE0 strh r1, [r0, 0x20] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xA0 strh r1, [r0, 0x22] b _0804E114 .align 2, 0 _0804E0C4: .4byte gUnknown_2031DA8 _0804E0C8: .4byte gSprites _0804E0CC: ldr r4, _0804E128 @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x34 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, _0804E12C @ =gSprites adds r0, r5 movs r1, 0 bl StartSpriteAnim ldr r4, [r4] adds r4, 0x34 ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldr r2, _0804E130 @ =gUnknown_8261E40 lsls r3, r6, 1 adds r0, r3, r2 ldrb r0, [r0] lsls r0, 3 adds r0, 0x20 strh r0, [r1, 0x20] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r2, 0x1 adds r3, r2 ldrb r0, [r3] lsls r0, 3 strh r0, [r1, 0x22] _0804E114: ldrb r0, [r7] cmp r0, r6 beq _0804E120 movs r0, 0x5 bl PlaySE _0804E120: strb r6, [r7] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804E128: .4byte gUnknown_2031DA8 _0804E12C: .4byte gSprites _0804E130: .4byte gUnknown_8261E40 thumb_func_end TradeMenuMoveCursor thumb_func_start sub_804E134 sub_804E134: @ 804E134 push {r4,lr} movs r0, 0 bl sub_804F5BC ldr r4, _0804E17C @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x6F movs r1, 0x5 strb r1, [r0] bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0804E184 ldr r2, [r4] adds r1, r2, 0 adds r1, 0x80 ldr r0, _0804E180 @ =0x0000aabb strh r0, [r1] adds r0, r2, 0 adds r0, 0x35 ldrb r1, [r0] adds r0, 0x4D strh r1, [r0] bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x80 movs r2, 0x14 bl SendBlock b _0804E18C .align 2, 0 _0804E17C: .4byte gUnknown_2031DA8 _0804E180: .4byte 0x0000aabb _0804E184: ldr r0, [r4] adds r0, 0x78 movs r1, 0x1 strb r1, [r0] _0804E18C: pop {r4} pop {r0} bx r0 thumb_func_end sub_804E134 thumb_func_start sub_804E194 sub_804E194: @ 804E194 push {r4,r5,lr} sub sp, 0xC ldr r0, _0804E1B4 @ =gMain ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0804E1BC ldr r0, _0804E1B8 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x35 movs r1, 0 bl TradeMenuMoveCursor b _0804E208 .align 2, 0 _0804E1B4: .4byte gMain _0804E1B8: .4byte gUnknown_2031DA8 _0804E1BC: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0804E1D8 ldr r0, _0804E1D4 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x35 movs r1, 0x1 bl TradeMenuMoveCursor b _0804E208 .align 2, 0 _0804E1D4: .4byte gUnknown_2031DA8 _0804E1D8: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0804E1F4 ldr r0, _0804E1F0 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x35 movs r1, 0x2 bl TradeMenuMoveCursor b _0804E208 .align 2, 0 _0804E1F0: .4byte gUnknown_2031DA8 _0804E1F4: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0804E208 ldr r0, _0804E27C @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x35 movs r1, 0x3 bl TradeMenuMoveCursor _0804E208: ldr r0, _0804E280 @ =gMain ldrh r1, [r0, 0x2E] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0804E2DE movs r0, 0x5 bl PlaySE ldr r4, _0804E27C @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x35 ldrb r0, [r0] cmp r0, 0x5 bhi _0804E288 movs r0, 0x1 movs r1, 0x1 movs r2, 0xE bl DrawTextBorderOuter movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, _0804E284 @ =gUnknown_8261EE4 str r0, [sp] movs r0, 0x1 movs r1, 0x3 movs r2, 0x10 movs r3, 0x2 bl sub_810FC80 movs r0, 0x10 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x3 movs r2, 0 movs r3, 0 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram ldr r0, [r4] adds r0, 0x6F movs r1, 0x1 strb r1, [r0] b _0804E2DE .align 2, 0 _0804E27C: .4byte gUnknown_2031DA8 _0804E280: .4byte gMain _0804E284: .4byte gUnknown_8261EE4 _0804E288: cmp r0, 0xB bhi _0804E2A6 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r4] adds r0, 0x6F movs r1, 0x2 strb r1, [r0] b _0804E2DE _0804E2A6: cmp r0, 0xC bne _0804E2DE ldr r0, _0804E31C @ =gUnknown_8261FC4 str r5, [sp] movs r1, 0xE str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x3 movs r2, 0 movs r3, 0x2 bl CreateYesNoMenu ldr r0, [r4] adds r0, 0x6F movs r1, 0x4 strb r1, [r0] ldr r0, _0804E320 @ =gUnknown_8261ECC ldr r0, [r0, 0x10] ldr r1, [r4] adds r1, 0x72 ldrh r1, [r1] lsls r1, 5 ldr r2, _0804E324 @ =0x06010000 adds r1, r2 movs r2, 0x18 bl sub_804F728 _0804E2DE: ldr r0, _0804E328 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _0804E314 movs r2, 0 ldr r3, _0804E32C @ =gUnknown_2031DA8 _0804E2F0: ldr r0, [r3] lsls r1, r2, 1 adds r0, 0x80 adds r0, r1 strh r2, [r0] adds r2, 0x1 cmp r2, 0x9 ble _0804E2F0 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0804E32C @ =gUnknown_2031DA8 ldr r1, [r1] adds r1, 0x80 movs r2, 0x14 bl SendBlock _0804E314: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E31C: .4byte gUnknown_8261FC4 _0804E320: .4byte gUnknown_8261ECC _0804E324: .4byte 0x06010000 _0804E328: .4byte gMain _0804E32C: .4byte gUnknown_2031DA8 thumb_func_end sub_804E194 thumb_func_start sub_804E330 sub_804E330: @ 804E330 push {lr} bl sub_804F3B4 ldr r3, _0804E378 @ =gUnknown_2031DA8 ldr r0, [r3] adds r0, 0x6F movs r1, 0 strb r1, [r0] ldr r2, _0804E37C @ =gSprites ldr r0, [r3] adds r0, 0x34 ldrb r1, [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] ldr r0, _0804E380 @ =gUnknown_8261ECC ldr r0, [r0, 0x4] ldr r1, [r3] adds r1, 0x72 ldrh r1, [r1] lsls r1, 5 ldr r2, _0804E384 @ =0x06010000 adds r1, r2 movs r2, 0x18 bl sub_804F728 pop {r0} bx r0 .align 2, 0 _0804E378: .4byte gUnknown_2031DA8 _0804E37C: .4byte gSprites _0804E380: .4byte gUnknown_8261ECC _0804E384: .4byte 0x06010000 thumb_func_end sub_804E330 thumb_func_start sub_804E388 sub_804E388: @ 804E388 push {lr} sub sp, 0x4 bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 beq _0804E3AA cmp r0, r1 ble _0804E462 cmp r0, 0 beq _0804E3B6 cmp r0, 0x1 beq _0804E3D4 b _0804E462 _0804E3AA: movs r0, 0x5 bl PlaySE bl sub_804E330 b _0804E462 _0804E3B6: str r0, [sp] adds r0, r1, 0 movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0804E3D0 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x2 b _0804E460 .align 2, 0 _0804E3D0: .4byte gUnknown_2031DA8 _0804E3D4: ldr r0, _0804E3F4 @ =gPlayerParty ldr r1, _0804E3F8 @ =gPlayerPartyCount ldrb r1, [r1] ldr r2, _0804E3FC @ =gUnknown_2031DA8 ldr r2, [r2] adds r2, 0x35 ldrb r2, [r2] bl sub_804FA14 cmp r0, 0x5 bhi _0804E462 lsls r0, 2 ldr r1, _0804E400 @ =_0804E404 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804E3F4: .4byte gPlayerParty _0804E3F8: .4byte gPlayerPartyCount _0804E3FC: .4byte gUnknown_2031DA8 _0804E400: .4byte _0804E404 .align 2, 0 _0804E404: .4byte _0804E41C .4byte _0804E444 .4byte _0804E44A .4byte _0804E450 .4byte _0804E44A .4byte _0804E450 _0804E41C: bl sub_804E134 ldr r2, _0804E43C @ =gSprites ldr r0, _0804E440 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x34 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _0804E460 .align 2, 0 _0804E43C: .4byte gSprites _0804E440: .4byte gUnknown_2031DA8 _0804E444: movs r0, 0x3 movs r1, 0x3 b _0804E454 _0804E44A: movs r0, 0x3 movs r1, 0x6 b _0804E454 _0804E450: movs r0, 0x3 movs r1, 0x7 _0804E454: bl sub_804F488 ldr r0, _0804E468 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x8 _0804E460: strb r1, [r0] _0804E462: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0804E468: .4byte gUnknown_2031DA8 thumb_func_end sub_804E388 thumb_func_start sub_804E46C sub_804E46C: @ 804E46C push {lr} ldr r0, _0804E490 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0804E482 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0804E48C _0804E482: movs r0, 0x5 bl PlaySE bl sub_804E330 _0804E48C: pop {r0} bx r0 .align 2, 0 _0804E490: .4byte gMain thumb_func_end sub_804E46C thumb_func_start sub_804E494 sub_804E494: @ 804E494 push {r4,lr} sub sp, 0x4 ldr r0, _0804E4CC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E4FC ldr r0, _0804E4D0 @ =gUnknown_2031DA8 ldr r2, [r0] adds r3, r2, 0 adds r3, 0x35 ldrb r1, [r3] cmp r1, 0x5 bhi _0804E4DC ldr r0, _0804E4D4 @ =gPlayerParty ldrb r1, [r3] adds r2, 0x36 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _0804E4D8 @ =sub_804CF14 movs r4, 0x4 str r4, [sp] bl sub_81344F8 b _0804E4F8 .align 2, 0 _0804E4CC: .4byte gPaletteFade _0804E4D0: .4byte gUnknown_2031DA8 _0804E4D4: .4byte gPlayerParty _0804E4D8: .4byte sub_804CF14 _0804E4DC: ldr r0, _0804E504 @ =gEnemyParty subs r1, 0x6 lsls r1, 24 lsrs r1, 24 adds r2, 0x37 ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, _0804E508 @ =sub_804CF14 movs r4, 0x4 str r4, [sp] bl sub_81344F8 _0804E4F8: bl FreeAllWindowBuffers _0804E4FC: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0804E504: .4byte gEnemyParty _0804E508: .4byte sub_804CF14 thumb_func_end sub_804E494 thumb_func_start sub_804E50C sub_804E50C: @ 804E50C push {r4-r7,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r4, 0 movs r3, 0 ldr r6, _0804E588 @ =gUnknown_2031DA8 ldr r7, _0804E58C @ =gEnemyParty cmp r4, r1 bge _0804E538 _0804E524: cmp r2, r3 beq _0804E532 adds r0, r5, r3 ldrb r0, [r0] adds r0, r4, r0 lsls r0, 24 lsrs r4, r0, 24 _0804E532: adds r3, 0x1 cmp r3, r1 blt _0804E524 _0804E538: ldr r0, [r6] adds r0, 0x7E ldrb r0, [r0] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r5, 0x64 muls r0, r5 adds r0, r7 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xCD lsls r0, 1 cmp r1, r0 beq _0804E564 cmp r1, 0x97 bne _0804E590 _0804E564: ldr r0, [r6] adds r0, 0x7E ldrb r0, [r0] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 muls r0, r5 adds r0, r7 movs r1, 0x50 bl GetMonData cmp r0, 0 bne _0804E590 movs r0, 0x2 b _0804E598 .align 2, 0 _0804E588: .4byte gUnknown_2031DA8 _0804E58C: .4byte gEnemyParty _0804E590: cmp r4, 0 beq _0804E596 movs r4, 0x1 _0804E596: adds r0, r4, 0 _0804E598: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804E50C thumb_func_start sub_804E5A0 sub_804E5A0: @ 804E5A0 push {r4,r5,lr} sub sp, 0xC movs r2, 0 ldr r0, _0804E5F4 @ =gUnknown_2031DA8 ldr r1, [r0] adds r3, r1, 0 adds r3, 0x36 adds r5, r0, 0 ldrb r0, [r3] cmp r2, r0 bge _0804E5CC adds r4, r1, 0 adds r4, 0x45 _0804E5BA: mov r1, sp adds r0, r1, r2 adds r1, r4, r2 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 ldrb r0, [r3] cmp r2, r0 blt _0804E5BA _0804E5CC: adds r4, r5, 0 ldr r0, [r4] adds r1, r0, 0 adds r1, 0x36 ldrb r1, [r1] adds r0, 0x35 ldrb r2, [r0] mov r0, sp bl sub_804E50C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0804E61C cmp r0, 0x1 bgt _0804E5F8 cmp r0, 0 beq _0804E5FE b _0804E668 .align 2, 0 _0804E5F4: .4byte gUnknown_2031DA8 _0804E5F8: cmp r0, 0x2 beq _0804E650 b _0804E668 _0804E5FE: movs r0, 0x3 movs r1, 0x3 bl sub_804F488 ldr r0, [r4] adds r0, 0x80 ldr r1, _0804E618 @ =0x0000bbcc strh r1, [r0] movs r0, 0xB4 movs r1, 0 bl sub_804F488 b _0804E668 .align 2, 0 _0804E618: .4byte 0x0000bbcc _0804E61C: movs r0, 0x3 movs r1, 0x1 bl sub_804F488 ldr r0, [r4] adds r0, 0x80 ldr r1, _0804E64C @ =0x0000bbbb strh r1, [r0] bl sub_800A4BC lsls r0, 24 cmp r0, 0 beq _0804E668 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x80 movs r2, 0x14 bl SendBlock b _0804E668 .align 2, 0 _0804E64C: .4byte 0x0000bbbb _0804E650: movs r0, 0x3 movs r1, 0x8 bl sub_804F488 ldr r0, [r5] adds r0, 0x80 ldr r1, _0804E670 @ =0x0000bbcc strh r1, [r0] movs r0, 0xB4 movs r1, 0 bl sub_804F488 _0804E668: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E670: .4byte 0x0000bbcc thumb_func_end sub_804E5A0 thumb_func_start sub_804E674 sub_804E674: @ 804E674 push {r4,lr} bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0804E696 cmp r1, 0 bgt _0804E690 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0804E6B0 b _0804E6EE _0804E690: cmp r1, 0x1 beq _0804E6B0 b _0804E6EE _0804E696: bl sub_804E5A0 ldr r0, _0804E6AC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x64 strb r1, [r0] movs r0, 0x11 bl PutWindowTilemap b _0804E6EE .align 2, 0 _0804E6AC: .4byte gUnknown_2031DA8 _0804E6B0: movs r0, 0x3 movs r1, 0x1 bl sub_804F488 bl sub_800A4BC lsls r0, 24 cmp r0, 0 beq _0804E6DE ldr r4, _0804E6F4 @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x80 ldr r1, _0804E6F8 @ =0x0000bbcc strh r1, [r0] bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x80 movs r2, 0x14 bl SendBlock _0804E6DE: ldr r0, _0804E6F4 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x64 strb r1, [r0] movs r0, 0x11 bl PutWindowTilemap _0804E6EE: pop {r4} pop {r0} bx r0 .align 2, 0 _0804E6F4: .4byte gUnknown_2031DA8 _0804E6F8: .4byte 0x0000bbcc thumb_func_end sub_804E674 thumb_func_start sub_804E6FC sub_804E6FC: @ 804E6FC push {r4-r6,lr} movs r5, 0 ldr r0, _0804E740 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x37 ldrb r0, [r0] subs r0, 0x4 cmp r5, r0 bge _0804E738 movs r6, 0xC0 lsls r6, 20 _0804E712: lsrs r4, r6, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x1 bl CopyWindowToVram movs r0, 0x80 lsls r0, 17 adds r6, r0 adds r5, 0x1 ldr r0, _0804E740 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x37 ldrb r0, [r0] subs r0, 0x4 cmp r5, r0 blt _0804E712 _0804E738: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804E740: .4byte gUnknown_2031DA8 thumb_func_end sub_804E6FC thumb_func_start sub_804E744 sub_804E744: @ 804E744 push {r4,r5,lr} bl Menu_ProcessInputNoWrapClearOnChoose lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _0804E766 cmp r5, 0 bgt _0804E760 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _0804E7B8 b _0804E7C2 _0804E760: cmp r5, 0x1 beq _0804E7B8 b _0804E7C2 _0804E766: movs r0, 0x4 bl sub_804F5BC ldr r4, _0804E7AC @ =gUnknown_2031DA8 ldr r0, [r4] adds r2, r0, 0 adds r2, 0x80 ldr r1, _0804E7B0 @ =0x0000eeaa strh r1, [r2] adds r0, 0x82 strh r5, [r0] movs r0, 0x5 movs r1, 0 bl sub_804F488 ldr r2, _0804E7B4 @ =gSprites ldr r0, [r4] adds r0, 0x34 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r4] adds r0, 0x6F movs r1, 0x64 strb r1, [r0] bl sub_804E6FC b _0804E7C2 .align 2, 0 _0804E7AC: .4byte gUnknown_2031DA8 _0804E7B0: .4byte 0x0000eeaa _0804E7B4: .4byte gSprites _0804E7B8: movs r0, 0x5 bl PlaySE bl sub_804E330 _0804E7C2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_804E744 thumb_func_start sub_804E7C8 sub_804E7C8: @ 804E7C8 push {r4,lr} bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _0804E7F0 movs r0, 0 bl rbox_fill_rectangle ldr r4, _0804E800 @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x35 ldrb r0, [r0] bl sub_804EAAC ldr r0, [r4] adds r0, 0x7E ldrb r0, [r0] bl sub_804EAAC _0804E7F0: ldr r0, _0804E800 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0x7 strb r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804E800: .4byte gUnknown_2031DA8 thumb_func_end sub_804E7C8 thumb_func_start sub_804E804 sub_804E804: @ 804E804 push {r4,lr} ldr r4, _0804E828 @ =gUnknown_2031DA8 ldr r0, [r4] adds r0, 0x74 ldrh r1, [r0] ldr r0, _0804E82C @ =0x00000505 cmp r1, r0 bne _0804E820 bl sub_804DBAC ldr r0, [r4] adds r0, 0x6F movs r1, 0xE strb r1, [r0] _0804E820: pop {r4} pop {r0} bx r0 .align 2, 0 _0804E828: .4byte gUnknown_2031DA8 _0804E82C: .4byte 0x00000505 thumb_func_end sub_804E804 thumb_func_start sub_804E830 sub_804E830: @ 804E830 push {r4,r5,lr} sub sp, 0xC ldr r4, _0804E878 @ =gUnknown_2031DA8 ldr r1, [r4] adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 movs r5, 0 strb r0, [r1] ldr r0, [r4] adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x78 bls _0804E870 ldr r0, _0804E87C @ =gUnknown_8261FC4 movs r1, 0x1 str r1, [sp] movs r1, 0xE str r1, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x3 movs r2, 0 movs r3, 0x2 bl CreateYesNoMenu ldr r0, [r4] adds r0, 0xA8 strb r5, [r0] ldr r0, [r4] adds r0, 0x6F movs r1, 0x3 strb r1, [r0] _0804E870: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804E878: .4byte gUnknown_2031DA8 _0804E87C: .4byte gUnknown_8261FC4 thumb_func_end sub_804E830 thumb_func_start sub_804E880 sub_804E880: @ 804E880 push {r4-r6,lr} ldr r0, _0804E8FC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0804E8F4 movs r0, 0x5 bl PlaySE movs r0, 0 bl rbox_fill_rectangle movs r0, 0x1 bl rbox_fill_rectangle movs r6, 0 movs r5, 0xE0 lsls r5, 20 _0804E8A6: lsrs r4, r5, 24 adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 bl rbox_fill_rectangle movs r0, 0x80 lsls r0, 17 adds r5, r0 adds r6, 0x1 cmp r6, 0x3 ble _0804E8A6 movs r0, 0 bl sub_804F3C8 movs r0, 0x1 bl sub_804F3C8 ldr r2, _0804E900 @ =gUnknown_2031DA8 ldr r0, [r2] adds r0, 0x6F movs r1, 0 strb r1, [r0] ldr r3, _0804E904 @ =gSprites ldr r0, [r2] adds r0, 0x34 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _0804E8F4: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804E8FC: .4byte gMain _0804E900: .4byte gUnknown_2031DA8 _0804E904: .4byte gSprites thumb_func_end sub_804E880 thumb_func_start sub_804E908 sub_804E908: @ 804E908 push {lr} ldr r0, _0804E924 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0804E93C ldr r0, _0804E928 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804E92C bl sub_800AB9C b _0804E932 .align 2, 0 _0804E924: .4byte gPaletteFade _0804E928: .4byte gWirelessCommType _0804E92C: movs r0, 0xC bl sub_800AA80 _0804E932: ldr r0, _0804E940 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0xC strb r1, [r0] _0804E93C: pop {r0} bx r0 .align 2, 0 _0804E940: .4byte gUnknown_2031DA8 thumb_func_end sub_804E908 thumb_func_start sub_804E944 sub_804E944: @ 804E944 push {lr} ldr r0, _0804E978 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0804E988 bl sub_800A4BC lsls r0, 24 cmp r0, 0 beq _0804E9AA ldr r0, _0804E97C @ =gUnknown_2031C90 ldr r0, [r0] bl Free ldr r0, _0804E980 @ =gUnknown_2031DA8 ldr r0, [r0] bl Free bl FreeAllWindowBuffers bl DestroyWirelessStatusIndicatorSprite ldr r0, _0804E984 @ =c2_8056854 bl SetMainCallback2 b _0804E9AA .align 2, 0 _0804E978: .4byte gWirelessCommType _0804E97C: .4byte gUnknown_2031C90 _0804E980: .4byte gUnknown_2031DA8 _0804E984: .4byte c2_8056854 _0804E988: ldr r0, _0804E9B0 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0804E9AA ldr r0, _0804E9B4 @ =gUnknown_2031C90 ldr r0, [r0] bl Free ldr r0, _0804E9B8 @ =gUnknown_2031DA8 ldr r0, [r0] bl Free bl FreeAllWindowBuffers ldr r0, _0804E9BC @ =c2_8056854 bl SetMainCallback2 _0804E9AA: pop {r0} bx r0 .align 2, 0 _0804E9B0: .4byte gReceivedRemoteLinkPlayers _0804E9B4: .4byte gUnknown_2031C90 _0804E9B8: .4byte gUnknown_2031DA8 _0804E9BC: .4byte c2_8056854 thumb_func_end sub_804E944 thumb_func_start sub_804E9C0 sub_804E9C0: @ 804E9C0 push {lr} movs r0, 0 bl sub_80FA484 lsls r0, 24 cmp r0, 0 bne _0804E9DC bl sub_800AB9C ldr r0, _0804E9E0 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F movs r1, 0xD strb r1, [r0] _0804E9DC: pop {r0} bx r0 .align 2, 0 _0804E9E0: .4byte gUnknown_2031DA8 thumb_func_end sub_804E9C0 thumb_func_start sub_804E9E4 sub_804E9E4: @ 804E9E4 push {lr} ldr r0, _0804E9FC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x6F ldrb r0, [r0] cmp r0, 0x10 bhi _0804EAA6 lsls r0, 2 ldr r1, _0804EA00 @ =_0804EA04 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804E9FC: .4byte gUnknown_2031DA8 _0804EA00: .4byte _0804EA04 .align 2, 0 _0804EA04: .4byte _0804EA48 .4byte _0804EA4E .4byte _0804EA54 .4byte _0804EA5A .4byte _0804EA60 .4byte _0804EAA6 .4byte _0804EA66 .4byte _0804EA6C .4byte _0804EA72 .4byte _0804EA78 .4byte _0804EA7E .4byte _0804EA84 .4byte _0804EA8A .4byte _0804EA90 .4byte _0804EA96 .4byte _0804EA9C .4byte _0804EAA2 _0804EA48: bl sub_804E194 b _0804EAA6 _0804EA4E: bl sub_804E388 b _0804EAA6 _0804EA54: bl sub_804E494 b _0804EAA6 _0804EA5A: bl sub_804E674 b _0804EAA6 _0804EA60: bl sub_804E744 b _0804EAA6 _0804EA66: bl sub_804E7C8 b _0804EAA6 _0804EA6C: bl sub_804E804 b _0804EAA6 _0804EA72: bl sub_804E880 b _0804EAA6 _0804EA78: bl sub_804D50C b _0804EAA6 _0804EA7E: bl sub_804D548 b _0804EAA6 _0804EA84: bl sub_804E908 b _0804EAA6 _0804EA8A: bl sub_804E944 b _0804EAA6 _0804EA90: bl sub_804D5A4 b _0804EAA6 _0804EA96: bl sub_804E830 b _0804EAA6 _0804EA9C: bl sub_804E46C b _0804EAA6 _0804EAA2: bl sub_804E9C0 _0804EAA6: pop {r0} bx r0 thumb_func_end sub_804E9E4 thumb_func_start sub_804EAAC sub_804EAAC: @ 804EAAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r2, r0, 24 ldr r3, _0804EAE0 @ =gUnknown_2031DA8 ldr r0, [r3] adds r0, 0x74 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0804EAD8 movs r0, 0x1 strb r0, [r1] ldr r0, [r3] adds r0, 0x76 adds r0, r2 strb r4, [r0] _0804EAD8: pop {r4} pop {r0} bx r0 .align 2, 0 _0804EAE0: .4byte gUnknown_2031DA8 thumb_func_end sub_804EAAC thumb_func_start sub_804EAE4 sub_804EAE4: @ 804EAE4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x68 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0804EB34 @ =gUnknown_2031DA8 ldr r4, [r0] adds r0, r4, 0 adds r0, 0x76 adds r0, r7 ldrb r0, [r0] movs r1, 0x1 str r1, [sp, 0x60] cmp r0, 0x5 bhi _0804EB0C movs r2, 0 str r2, [sp, 0x60] _0804EB0C: movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r0, 0 mov r8, r0 adds r0, r4, 0 adds r0, 0x74 adds r3, r0, r7 ldrb r0, [r3] cmp r0, 0x2 bne _0804EB2A b _0804ECB4 _0804EB2A: cmp r0, 0x2 bgt _0804EB38 cmp r0, 0x1 beq _0804EB46 b _0804EE54 .align 2, 0 _0804EB34: .4byte gUnknown_2031DA8 _0804EB38: cmp r0, 0x3 bne _0804EB3E b _0804ECEC _0804EB3E: cmp r0, 0x4 bne _0804EB44 b _0804EE1C _0804EB44: b _0804EE54 _0804EB46: movs r5, 0 adds r0, r4, 0 adds r0, 0x36 adds r0, r7 ldr r1, [sp, 0x60] lsls r1, 1 mov r9, r1 lsls r6, r7, 1 lsls r2, r7, 4 str r2, [sp, 0x64] ldrb r0, [r0] cmp r8, r0 bcs _0804EB9A ldr r0, _0804ECA0 @ =gSprites mov r8, r0 ldr r4, _0804ECA4 @ =gUnknown_2031DA8 ldr r0, [sp, 0x60] add r0, r9 lsls r2, r0, 1 movs r3, 0x4 _0804EB6E: ldr r0, [r4] adds r1, r5, r2 adds r0, 0x28 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r4] adds r0, 0x36 adds r0, r7 ldrb r0, [r0] cmp r5, r0 bcc _0804EB6E _0804EB9A: movs r5, 0 adds r0, r6, r7 lsls r0, 1 adds r4, r0, 0x2 _0804EBA2: lsls r0, r5, 24 asrs r0, 24 adds r0, r4 lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _0804EBA2 ldr r1, _0804ECA0 @ =gSprites mov r8, r1 ldr r2, _0804ECA4 @ =gUnknown_2031DA8 ldr r0, [r2] ldr r6, [sp, 0x60] add r6, r9 lsls r3, r6, 1 add r10, r3 adds r0, 0x28 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, _0804ECA4 @ =gUnknown_2031DA8 ldr r4, [r0] adds r4, 0x28 add r4, r10 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x14 strh r1, [r0, 0x2E] ldrb r0, [r4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 add r2, r8 ldr r5, _0804ECA8 @ =gUnknown_8261E40 lsls r6, 2 adds r0, r6, r5 ldrb r0, [r0] adds r3, 0x1 lsls r3, 1 adds r3, r5 ldrb r1, [r3] adds r0, r1 asrs r0, 1 lsls r0, 3 adds r0, 0xE strh r0, [r2, 0x32] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 adds r5, 0x1 adds r6, r5 ldrb r0, [r6] lsls r0, 3 subs r0, 0xC strh r0, [r1, 0x36] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldr r1, _0804ECAC @ =sub_809718C bl StoreSpriteCallbackInData6 ldr r2, _0804ECA4 @ =gUnknown_2031DA8 ldr r1, [r2] adds r1, 0x74 adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r0, 0x28 add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 bl sub_8075490 ldr r1, _0804ECB0 @ =gUnknown_8260A32 ldr r0, [sp, 0x64] subs r2, r0, r7 lsls r2, 24 lsrs r2, 24 movs r0, 0xF str r0, [sp] movs r0, 0x11 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r0, 0x1 movs r3, 0 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0 bl CopyBgTilemapBufferToVram ldr r1, [sp, 0x60] cmp r1, 0 beq _0804EC98 b _0804EE54 _0804EC98: bl sub_804F3B4 b _0804EE54 .align 2, 0 _0804ECA0: .4byte gSprites _0804ECA4: .4byte gUnknown_2031DA8 _0804ECA8: .4byte gUnknown_8261E40 _0804ECAC: .4byte sub_809718C _0804ECB0: .4byte gUnknown_8260A32 _0804ECB4: ldr r2, _0804ECE4 @ =gSprites ldr r1, [sp, 0x60] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r10 adds r1, r4, 0 adds r1, 0x28 adds r1, r0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _0804ECE8 @ =sub_809718C cmp r1, r0 beq _0804ECDC b _0804EE54 _0804ECDC: movs r0, 0x3 strb r0, [r3] b _0804EE54 .align 2, 0 _0804ECE4: .4byte gSprites _0804ECE8: .4byte sub_809718C _0804ECEC: ldr r1, _0804EE08 @ =gUnknown_8260834 ldr r0, [sp, 0x60] lsls r2, r0, 4 subs r2, r0 lsls r2, 24 lsrs r2, 24 movs r0, 0xF str r0, [sp] movs r0, 0x11 str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] movs r0, 0x1 movs r3, 0 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r6, _0804EE0C @ =gSprites ldr r1, _0804EE10 @ =gUnknown_2031DA8 ldr r4, [r1] ldr r2, [sp, 0x60] lsls r3, r2, 1 adds r3, r2 lsls r1, r3, 1 mov r2, r10 adds r0, r2, r1 adds r4, 0x28 adds r4, r0 ldrb r0, [r4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 ldr r5, _0804EE14 @ =gUnknown_8261E40 lsls r3, 2 adds r0, r3, r5 ldrb r0, [r0] adds r1, 0x1 lsls r1, 1 adds r1, r5 ldrb r1, [r1] adds r0, r1 asrs r0, 1 lsls r0, 3 adds r0, 0xE strh r0, [r2, 0x20] ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r5, 0x1 adds r3, r5 ldrb r0, [r3] lsls r0, 3 subs r0, 0xC strh r0, [r1, 0x22] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x24] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r2, r8 strh r2, [r0, 0x26] add r0, sp, 0x14 ldr r1, [sp, 0x60] mov r2, r10 bl sub_804EE6C lsls r4, r7, 1 adds r5, r4, 0 adds r5, 0xE lsls r5, 24 lsrs r5, 24 lsls r0, 24 asrs r0, 24 movs r2, 0x50 subs r2, r0 lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 lsls r2, 24 lsrs r2, 24 ldr r0, _0804EE18 @ =gUnknown_8261F18 mov r8, r0 str r0, [sp] movs r1, 0 str r1, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] adds r0, r5, 0 movs r3, 0x4 bl AddTextPrinterParameterized3 add r6, sp, 0x28 adds r0, r6, 0 ldr r1, [sp, 0x60] mov r2, r10 bl sub_804EED4 adds r4, 0xF lsls r4, 24 lsrs r4, 24 movs r1, 0 str r1, [sp] str r1, [sp, 0x4] mov r2, r8 str r2, [sp, 0x8] str r1, [sp, 0xC] str r6, [sp, 0x10] adds r0, r4, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl AddTextPrinterParameterized4 adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0804EE10 @ =gUnknown_2031DA8 ldr r1, [r0] b _0804EE4A .align 2, 0 _0804EE08: .4byte gUnknown_8260834 _0804EE0C: .4byte gSprites _0804EE10: .4byte gUnknown_2031DA8 _0804EE14: .4byte gUnknown_8261E40 _0804EE18: .4byte gUnknown_8261F18 _0804EE1C: ldr r0, _0804EE64 @ =gUnknown_8262055 lsls r1, r7, 1 adds r4, r1, r0 ldrb r2, [r4] adds r2, 0x4 lsls r2, 24 lsrs r2, 24 adds r0, 0x1 adds r1, r0 ldrb r3, [r1] adds r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r4] str r0, [sp] ldrb r0, [r1] str r0, [sp, 0x4] adds r0, r7, 0 mov r1, r10 bl sub_804F08C ldr r2, _0804EE68 @ =gUnknown_2031DA8 ldr r1, [r2] _0804EE4A: adds r1, 0x74 adds r1, r7 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0804EE54: add sp, 0x68 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804EE64: .4byte gUnknown_8262055 _0804EE68: .4byte gUnknown_2031DA8 thumb_func_end sub_804EAE4 thumb_func_start sub_804EE6C sub_804EE6C: @ 804EE6C push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r1, 24 lsls r2, 24 lsrs r2, 24 cmp r1, 0 bne _0804EE94 movs r0, 0x64 muls r0, r2 ldr r1, _0804EE90 @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData b _0804EEA4 .align 2, 0 _0804EE90: .4byte gPlayerParty _0804EE94: movs r0, 0x64 muls r0, r2 ldr r1, _0804EED0 @ =gEnemyParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData _0804EEA4: adds r0, r4, 0 mov r1, sp bl StringCopy10 movs r0, 0 movs r1, 0x2 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0 adds r1, r4, 0 bl GetStringWidth lsls r0, 24 lsrs r0, 24 add sp, 0xC pop {r4} pop {r1} bx r1 .align 2, 0 _0804EED0: .4byte gEnemyParty thumb_func_end sub_804EE6C thumb_func_start sub_804EED4 sub_804EED4: @ 804EED4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _0804EF1C @ =gUnknown_2031DA8 ldr r1, [r0] lsls r0, r7, 1 adds r0, r7 lsls r0, 1 adds r0, r2, r0 adds r1, 0x51 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _0804EF8C movs r4, 0 movs r0, 0x64 adds r5, r2, 0 muls r5, r0 ldr r0, _0804EF20 @ =gPlayerParty mov r9, r0 ldr r2, _0804EF24 @ =gEnemyParty mov r8, r2 _0804EF0E: cmp r7, 0 bne _0804EF28 adds r1, r4, 0 adds r1, 0xD mov r2, r9 b _0804EF2E .align 2, 0 _0804EF1C: .4byte gUnknown_2031DA8 _0804EF20: .4byte gPlayerParty _0804EF24: .4byte gEnemyParty _0804EF28: adds r1, r4, 0 adds r1, 0xD mov r2, r8 _0804EF2E: adds r0, r5, r2 movs r2, 0 bl GetMonData lsls r1, r4, 1 add r1, sp strh r0, [r1] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _0804EF0E ldr r1, _0804EF80 @ =gUnknown_8261EB6 adds r0, r6, 0 bl StringCopy movs r4, 0 _0804EF50: lsls r0, r4, 1 mov r2, sp adds r1, r2, r0 ldrh r0, [r1] cmp r0, 0 beq _0804EF6C adds r1, r0, 0 movs r0, 0xD muls r1, r0 ldr r0, _0804EF84 @ =gMoveNames adds r1, r0 adds r0, r6, 0 bl StringAppend _0804EF6C: adds r0, r6, 0 ldr r1, _0804EF88 @ =gUnknown_8261EC7 bl StringAppend adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _0804EF50 b _0804EF9C .align 2, 0 _0804EF80: .4byte gUnknown_8261EB6 _0804EF84: .4byte gMoveNames _0804EF88: .4byte gUnknown_8261EC7 _0804EF8C: ldr r1, _0804EFAC @ =gUnknown_8261EB6 adds r0, r6, 0 bl StringCopy ldr r1, _0804EFB0 @ =gUnknown_841E09F adds r0, r6, 0 bl StringAppend _0804EF9C: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804EFAC: .4byte gUnknown_8261EB6 _0804EFB0: .4byte gUnknown_841E09F thumb_func_end sub_804EED4 thumb_func_start sub_804EFB4 sub_804EFB4: @ 804EFB4 push {r4-r6,lr} sub sp, 0xC adds r4, r1, 0 adds r6, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 lsls r1, 1 adds r1, 0x2 lsls r4, 24 asrs r4, 24 adds r4, r1 lsls r4, 24 lsrs r4, 24 movs r5, 0 movs r0, 0 movs r1, 0x2 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0 adds r1, r6, 0 bl GetStringWidth movs r2, 0x40 subs r2, r0 lsrs r2, 1 lsls r2, 24 lsrs r2, 24 ldr r0, _0804F01C @ =gUnknown_8261F18 str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] adds r0, r4, 0 movs r1, 0 movs r3, 0x4 bl AddTextPrinterParameterized3 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804F01C: .4byte gUnknown_8261F18 thumb_func_end sub_804EFB4 thumb_func_start sub_804F020 sub_804F020: @ 804F020 push {r4-r7,lr} sub sp, 0x34 lsls r0, 24 lsrs r6, r0, 24 ldr r7, _0804F080 @ =gEnemyParty cmp r6, 0 bne _0804F030 ldr r7, _0804F084 @ =gPlayerParty _0804F030: movs r4, 0 ldr r0, _0804F088 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x36 adds r0, r6 ldrb r0, [r0] cmp r4, r0 bcs _0804F076 add r5, sp, 0x14 _0804F042: movs r0, 0x64 muls r0, r4 adds r0, r7, r0 movs r1, 0x2 mov r2, sp bl GetMonData adds r0, r5, 0 mov r1, sp bl StringCopy10 adds r0, r6, 0 adds r1, r4, 0 adds r2, r5, 0 bl sub_804EFB4 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0804F088 @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x36 adds r0, r6 ldrb r0, [r0] cmp r4, r0 bcc _0804F042 _0804F076: add sp, 0x34 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F080: .4byte gEnemyParty _0804F084: .4byte gPlayerParty _0804F088: .4byte gUnknown_2031DA8 thumb_func_end sub_804F020 thumb_func_start sub_804F08C sub_804F08C: @ 804F08C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C ldr r4, [sp, 0x3C] ldr r5, [sp, 0x40] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r10, r3 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r1, _0804F0E8 @ =gUnknown_8E9F1FC movs r0, 0x6 str r0, [sp] movs r0, 0x3 str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r0, 0x1 adds r2, r4, 0 adds r3, r5, 0 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl CopyBgTilemapBufferToVram mov r0, r8 cmp r0, 0 bne _0804F0F0 movs r0, 0x64 muls r0, r7 ldr r1, _0804F0EC @ =gPlayerParty b _0804F0F6 .align 2, 0 _0804F0E8: .4byte gUnknown_8E9F1FC _0804F0EC: .4byte gPlayerParty _0804F0F0: movs r0, 0x64 muls r0, r7 ldr r1, _0804F16C @ =gEnemyParty _0804F0F6: adds r0, r1 movs r1, 0x38 movs r2, 0 bl GetMonData lsls r0, 24 lsrs r6, r0, 24 ldr r4, _0804F170 @ =gUnknown_2031DA8 ldr r5, [r4] mov r1, r8 lsls r2, r1, 1 adds r1, r2, r1 lsls r1, 1 adds r1, r7, r1 adds r0, r5, 0 adds r0, 0x51 adds r0, r1 ldrb r0, [r0] str r2, [sp, 0x18] cmp r0, 0 bne _0804F174 adds r0, r6, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r2, r0, 24 mov r0, r10 lsls r3, r0, 5 cmp r2, 0 beq _0804F148 mov r1, r9 adds r0, r1, r3 lsls r0, 1 movs r1, 0x8F lsls r1, 4 adds r5, r1 adds r1, r5, r0 adds r0, r2, 0 adds r0, 0x60 strh r0, [r1] _0804F148: ldr r4, [r4] mov r1, r9 adds r0, r1, r3 adds r0, 0x1 lsls r0, 1 movs r3, 0x8F lsls r3, 4 adds r4, r3 adds r4, r0 adds r0, r6, 0 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 adds r0, 0x70 strh r0, [r4] b _0804F1B2 .align 2, 0 _0804F16C: .4byte gEnemyParty _0804F170: .4byte gUnknown_2031DA8 _0804F174: mov r1, r10 lsls r0, r1, 5 mov r1, r9 adds r3, r1, r0 adds r1, r3, 0 subs r1, 0x20 lsls r1, 1 movs r0, 0x8F lsls r0, 4 adds r2, r5, r0 adds r1, r2, r1 adds r0, r3, 0 subs r0, 0x21 lsls r0, 1 adds r0, r2, r0 ldrh r0, [r0] strh r0, [r1] adds r1, r3, 0 subs r1, 0x1F lsls r1, 1 adds r1, r2, r1 adds r0, r3, 0 subs r0, 0x24 lsls r0, 1 adds r2, r0 ldrh r2, [r2] movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 orrs r0, r2 strh r0, [r1] _0804F1B2: ldr r0, _0804F1D0 @ =gUnknown_2031DA8 ldr r1, [r0] ldr r0, [sp, 0x18] add r0, r8 lsls r0, 1 adds r0, r7, r0 adds r1, 0x51 adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _0804F1D4 movs r2, 0x90 lsls r2, 3 b _0804F256 .align 2, 0 _0804F1D0: .4byte gUnknown_2031DA8 _0804F1D4: mov r0, r8 cmp r0, 0 bne _0804F200 movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, _0804F1FC @ =gPlayerParty adds r4, r0 adds r0, r4, 0 bl GetMonGender lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x2 add r2, sp, 0xC bl GetMonData b _0804F21E .align 2, 0 _0804F1FC: .4byte gPlayerParty _0804F200: movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, _0804F22C @ =gEnemyParty adds r4, r0 adds r0, r4, 0 bl GetMonGender lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 movs r1, 0x2 add r2, sp, 0xC bl GetMonData _0804F21E: cmp r5, 0 beq _0804F230 cmp r5, 0xFE beq _0804F244 movs r2, 0x83 b _0804F256 .align 2, 0 _0804F22C: .4byte gEnemyParty _0804F230: add r0, sp, 0xC movs r1, 0 bl NameHasGenderSymbol lsls r0, 24 movs r2, 0x83 cmp r0, 0 bne _0804F256 movs r2, 0x84 b _0804F256 _0804F244: add r0, sp, 0xC movs r1, 0xFE bl NameHasGenderSymbol lsls r0, 24 movs r2, 0x83 cmp r0, 0 bne _0804F256 movs r2, 0x85 _0804F256: ldr r0, _0804F280 @ =gUnknown_2031DA8 ldr r1, [r0] mov r0, r10 subs r0, 0x1 lsls r0, 5 add r0, r9 adds r0, 0x1 lsls r0, 1 movs r3, 0x8F lsls r3, 4 adds r1, r3 adds r1, r0 strh r2, [r1] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F280: .4byte gUnknown_2031DA8 thumb_func_end sub_804F08C thumb_func_start sub_804F284 sub_804F284: @ 804F284 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 movs r7, 0 ldr r0, _0804F2DC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x36 adds r0, r6 ldrb r0, [r0] cmp r7, r0 bge _0804F2D4 lsls r0, r6, 1 adds r0, r6 ldr r1, _0804F2E0 @ =gUnknown_8261E5A lsls r0, 2 adds r5, r0, r1 ldr r1, _0804F2E4 @ =gUnknown_8261E72 adds r4, r0, r1 _0804F2AA: lsls r1, r7, 24 lsrs r1, 24 ldrb r2, [r5] ldrb r3, [r5, 0x1] ldrb r0, [r4] str r0, [sp] ldrb r0, [r4, 0x1] str r0, [sp, 0x4] adds r0, r6, 0 bl sub_804F08C adds r5, 0x2 adds r4, 0x2 adds r7, 0x1 ldr r0, _0804F2DC @ =gUnknown_2031DA8 ldr r0, [r0] adds r0, 0x36 adds r0, r6 ldrb r0, [r0] cmp r7, r0 blt _0804F2AA _0804F2D4: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F2DC: .4byte gUnknown_2031DA8 _0804F2E0: .4byte gUnknown_8261E5A _0804F2E4: .4byte gUnknown_8261E72 thumb_func_end sub_804F284 thumb_func_start sub_804F2E8 sub_804F2E8: @ 804F2E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r12, r0 movs r7, 0 ldr r3, _0804F3A8 @ =gUnknown_2031DA8 ldr r0, [r3] adds r0, 0x36 add r0, r12 ldrb r0, [r0] cmp r7, r0 bge _0804F39A ldr r6, _0804F3AC @ =gSprites mov r9, r3 mov r1, r12 lsls r0, r1, 1 add r0, r12 lsls r2, r0, 1 mov r10, r2 ldr r1, _0804F3B0 @ =gUnknown_8261E40 movs r2, 0 mov r8, r2 lsls r0, 2 adds r5, r0, r1 _0804F320: mov r1, r9 ldr r0, [r1] mov r2, r10 adds r4, r7, r2 adds r0, 0x28 adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] mov r0, r9 ldr r3, [r0] adds r2, r3, 0 adds r2, 0x28 adds r2, r4 ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r5] lsls r0, 3 adds r0, 0xE strh r0, [r1, 0x20] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r0, [r5, 0x1] lsls r0, 3 subs r0, 0xC strh r0, [r1, 0x22] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r8 strh r1, [r0, 0x24] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r2, r8 strh r2, [r0, 0x26] adds r5, 0x2 adds r7, 0x1 adds r3, 0x36 add r3, r12 ldrb r3, [r3] cmp r7, r3 blt _0804F320 _0804F39A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F3A8: .4byte gUnknown_2031DA8 _0804F3AC: .4byte gSprites _0804F3B0: .4byte gUnknown_8261E40 thumb_func_end sub_804F2E8 thumb_func_start sub_804F3B4 sub_804F3B4: @ 804F3B4 push {lr} movs r0, 0x1 bl rbox_fill_rectangle movs r0, 0x1 bl sub_804F020 pop {r0} bx r0 thumb_func_end sub_804F3B4 thumb_func_start sub_804F3C8 sub_804F3C8: @ 804F3C8 push {r4-r6,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, _0804F430 @ =gUnknown_8260A32 lsls r2, r4, 4 subs r2, r4 lsls r2, 24 lsrs r2, 24 movs r0, 0xF str r0, [sp] movs r0, 0x11 str r0, [sp, 0x4] movs r6, 0 str r6, [sp, 0x8] movs r0, 0x1 movs r3, 0 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl CopyBgTilemapBufferToVram adds r0, r4, 0 bl sub_804F284 adds r0, r4, 0 bl sub_804F020 adds r0, r4, 0 bl sub_804F2E8 ldr r0, _0804F434 @ =gUnknown_8261ECC ldr r0, [r0, 0x4] ldr r5, _0804F438 @ =gUnknown_2031DA8 ldr r1, [r5] adds r1, 0x72 ldrh r1, [r1] lsls r1, 5 ldr r2, _0804F43C @ =0x06010000 adds r1, r2 movs r2, 0x18 bl sub_804F728 ldr r0, [r5] adds r0, 0x74 adds r0, r4 strb r6, [r0] add sp, 0xC pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0804F430: .4byte gUnknown_8260A32 _0804F434: .4byte gUnknown_8261ECC _0804F438: .4byte gUnknown_2031DA8 _0804F43C: .4byte 0x06010000 thumb_func_end sub_804F3C8 thumb_func_start sub_804F440 sub_804F440: @ 804F440 push {lr} sub sp, 0x8 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 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_804F440 thumb_func_start sub_804F464 sub_804F464: @ 804F464 push {lr} sub sp, 0x8 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 add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_804F464 thumb_func_start sub_804F488 sub_804F488: @ 804F488 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r6, r1, 24 movs r3, 0 ldr r4, _0804F4C8 @ =gUnknown_2031DA8 mov r12, r4 movs r7, 0x8D lsls r7, 4 _0804F49C: mov r1, r12 ldr r0, [r1] lsls r1, r3, 3 adds r2, r0, r1 adds r0, r2, r7 ldrb r0, [r0] cmp r0, 0 bne _0804F4D0 ldr r3, _0804F4CC @ =0x000008d2 adds r0, r2, r3 strh r5, [r0] adds r3, 0x2 adds r0, r2, r3 strb r6, [r0] ldr r0, [r4] adds r0, r1 movs r1, 0x8D lsls r1, 4 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0804F4D6 .align 2, 0 _0804F4C8: .4byte gUnknown_2031DA8 _0804F4CC: .4byte 0x000008d2 _0804F4D0: adds r3, 0x1 cmp r3, 0x3 ble _0804F49C _0804F4D6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_804F488 thumb_func_start sub_804F4DC sub_804F4DC: @ 804F4DC push {r4,r5,lr} movs r4, 0 ldr r3, _0804F508 @ =gUnknown_2031DA8 _0804F4E2: ldr r0, [r3] lsls r1, r4, 3 adds r2, r0, r1 movs r5, 0x8D lsls r5, 4 adds r0, r2, r5 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _0804F5AC ldr r0, _0804F50C @ =0x000008d2 adds r1, r2, r0 ldrh r0, [r1] cmp r0, 0 beq _0804F510 subs r0, 0x1 strh r0, [r1] b _0804F5AC .align 2, 0 _0804F508: .4byte gUnknown_2031DA8 _0804F50C: .4byte 0x000008d2 _0804F510: ldr r1, _0804F524 @ =0x000008d4 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x8 bhi _0804F59A lsls r0, 2 ldr r1, _0804F528 @ =_0804F52C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804F524: .4byte 0x000008d4 _0804F528: .4byte _0804F52C .align 2, 0 _0804F52C: .4byte _0804F550 .4byte _0804F56C .4byte _0804F574 .4byte _0804F57C .4byte _0804F57C .4byte _0804F57C .4byte _0804F584 .4byte _0804F58C .4byte _0804F594 _0804F550: bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, _0804F568 @ =gUnknown_2031DA8 ldr r1, [r1] adds r1, 0x80 movs r2, 0x14 bl SendBlock b _0804F59A .align 2, 0 _0804F568: .4byte gUnknown_2031DA8 _0804F56C: movs r0, 0 bl sub_804F5BC b _0804F59A _0804F574: movs r0, 0x2 bl sub_804F5BC b _0804F59A _0804F57C: movs r0, 0x3 bl sub_804F5BC b _0804F59A _0804F584: movs r0, 0x6 bl sub_804F5BC b _0804F59A _0804F58C: movs r0, 0x7 bl sub_804F5BC b _0804F59A _0804F594: movs r0, 0x8 bl sub_804F5BC _0804F59A: ldr r0, _0804F5B8 @ =gUnknown_2031DA8 ldr r1, [r0] adds r1, r5 movs r2, 0x8D lsls r2, 4 adds r1, r2 movs r2, 0 strb r2, [r1] adds r3, r0, 0 _0804F5AC: adds r4, 0x1 cmp r4, 0x3 ble _0804F4E2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804F5B8: .4byte gUnknown_2031DA8 thumb_func_end sub_804F4DC thumb_func_start sub_804F5BC sub_804F5BC: @ 804F5BC push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, _0804F60C @ =gUnknown_8261EF4 lsls r4, 2 adds r4, r0 ldr r2, [r4] movs r0, 0x2 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x3 movs r3, 0 bl AddTextPrinterParameterized movs r0, 0 movs r1, 0x14 movs r2, 0xC bl DrawTextBorderOuter movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _0804F60C: .4byte gUnknown_8261EF4 thumb_func_end sub_804F5BC thumb_func_start sub_804F610 sub_804F610: @ 804F610 push {r4,lr} sub sp, 0x8 ldr r0, _0804F660 @ =gUnknown_2031DA8 ldr r1, [r0] adds r3, r1, 0 adds r3, 0xA8 ldrb r1, [r3] adds r4, r0, 0 cmp r1, 0xD bhi _0804F64C ldr r1, _0804F664 @ =gUnknown_2031C94 ldrb r0, [r3] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [sp] ldr r0, _0804F668 @ =0xffff0000 ldr r2, [sp, 0x4] ands r2, r0 movs r0, 0x80 lsls r0, 1 orrs r2, r0 str r2, [sp, 0x4] ldrb r1, [r3] adds r1, 0xC8 lsls r1, 16 ldr r0, _0804F66C @ =0x0000ffff ands r0, r2 orrs r0, r1 str r0, [sp, 0x4] _0804F64C: ldr r0, [r4] adds r0, 0xA8 ldrb r0, [r0] cmp r0, 0x11 bhi _0804F71C lsls r0, 2 ldr r1, _0804F670 @ =_0804F674 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0804F660: .4byte gUnknown_2031DA8 _0804F664: .4byte gUnknown_2031C94 _0804F668: .4byte 0xffff0000 _0804F66C: .4byte 0x0000ffff _0804F670: .4byte _0804F674 .align 2, 0 _0804F674: .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6BC .4byte _0804F6C0 .4byte _0804F6D8 .4byte _0804F6D8 .4byte _0804F6D8 .4byte _0804F6D8 .4byte _0804F6D8 .4byte _0804F6DC .4byte _0804F6E8 .4byte _0804F6F4 .4byte _0804F710 _0804F6BC: mov r0, sp b _0804F6F6 _0804F6C0: mov r0, sp bl LoadSpriteSheet ldr r1, _0804F6D4 @ =gUnknown_2031DA8 ldr r1, [r1] adds r2, r1, 0 adds r2, 0x72 strh r0, [r2] b _0804F6FE .align 2, 0 _0804F6D4: .4byte gUnknown_2031DA8 _0804F6D8: mov r0, sp b _0804F6F6 _0804F6DC: ldr r0, _0804F6E4 @ =gUnknown_8261D00 bl LoadSpritePalette b _0804F6FA .align 2, 0 _0804F6E4: .4byte gUnknown_8261D00 _0804F6E8: ldr r0, _0804F6F0 @ =gUnknown_8261C60 bl LoadSpritePalette b _0804F6FA .align 2, 0 _0804F6F0: .4byte gUnknown_8261C60 _0804F6F4: ldr r0, _0804F708 @ =gUnknown_8261C58 _0804F6F6: bl LoadSpriteSheet _0804F6FA: ldr r0, _0804F70C @ =gUnknown_2031DA8 ldr r1, [r0] _0804F6FE: adds r1, 0xA8 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0804F71C .align 2, 0 _0804F708: .4byte gUnknown_8261C58 _0804F70C: .4byte gUnknown_2031DA8 _0804F710: ldr r0, [r4] adds r0, 0xA8 movs r1, 0 strb r1, [r0] movs r0, 0x1 b _0804F71E _0804F71C: movs r0, 0 _0804F71E: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_804F610 thumb_func_start sub_804F728 sub_804F728: @ 804F728 push {lr} sub sp, 0x8 ldr r2, _0804F744 @ =gDecompressionBuffer str r2, [sp] movs r2, 0x6 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_808BEB4 add sp, 0x8 pop {r0} bx r0 .align 2, 0 _0804F744: .4byte gDecompressionBuffer thumb_func_end sub_804F728 thumb_func_start sub_804F748 sub_804F748: @ 804F748 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0 beq _0804F760 cmp r0, 0x1 beq _0804F7F4 b _0804F880 _0804F760: movs r7, 0 ldr r1, _0804F7A0 @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x36 ldrb r0, [r0] cmp r7, r0 blt _0804F770 b _0804F880 _0804F770: adds r6, r1, 0 movs r5, 0 mov r9, r5 _0804F776: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _0804F7A4 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0x1 bne _0804F7A8 ldr r0, [r6] adds r0, 0x45 adds r0, r5 mov r2, r9 strb r2, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 b _0804F7D8 .align 2, 0 _0804F7A0: .4byte gUnknown_2031DA8 _0804F7A4: .4byte gPlayerParty _0804F7A8: adds r0, r4, 0 movs r1, 0x39 bl GetMonData adds r1, r0, 0 cmp r1, 0 bne _0804F7C6 ldr r0, [r6] adds r0, 0x45 adds r0, r5 strb r1, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 b _0804F7D8 _0804F7C6: ldr r0, [r6] adds r0, 0x45 adds r0, r5 movs r1, 0x1 strb r1, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 mov r1, r9 _0804F7D8: strb r1, [r0] ldr r0, _0804F7F0 @ =gUnknown_2031DA8 adds r5, 0x1 adds r7, 0x1 ldr r0, [r0] adds r0, 0x36 add r0, r8 ldrb r0, [r0] cmp r7, r0 blt _0804F776 b _0804F880 .align 2, 0 _0804F7F0: .4byte gUnknown_2031DA8 _0804F7F4: movs r7, 0 ldr r1, _0804F834 @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x37 ldrb r0, [r0] cmp r7, r0 bge _0804F880 adds r6, r1, 0 movs r5, 0x6 movs r2, 0 mov r9, r2 _0804F80A: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _0804F838 @ =gEnemyParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0x1 bne _0804F83C ldr r0, [r6] adds r0, 0x45 adds r0, r5 mov r2, r9 strb r2, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 b _0804F86C .align 2, 0 _0804F834: .4byte gUnknown_2031DA8 _0804F838: .4byte gEnemyParty _0804F83C: adds r0, r4, 0 movs r1, 0x39 bl GetMonData adds r1, r0, 0 cmp r1, 0 bne _0804F85A ldr r0, [r6] adds r0, 0x45 adds r0, r5 strb r1, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 b _0804F86C _0804F85A: ldr r0, [r6] adds r0, 0x45 adds r0, r5 movs r1, 0x1 strb r1, [r0] ldr r0, [r6] adds r0, 0x51 adds r0, r5 mov r1, r9 _0804F86C: strb r1, [r0] ldr r0, _0804F88C @ =gUnknown_2031DA8 adds r5, 0x1 adds r7, 0x1 ldr r0, [r0] adds r0, 0x36 add r0, r8 ldrb r0, [r0] cmp r7, r0 blt _0804F80A _0804F880: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F88C: .4byte gUnknown_2031DA8 thumb_func_end sub_804F748 thumb_func_start sub_804F890 sub_804F890: @ 804F890 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0804F8A0 cmp r0, 0x1 beq _0804F900 b _0804F954 _0804F8A0: movs r6, 0 ldr r1, _0804F8F8 @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 bcs _0804F954 adds r7, r1, 0 _0804F8B0: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804F8FC @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r0, r5, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl GetHPBarLevel ldr r1, [r7] adds r1, 0x5D adds r1, r6 strb r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, [r7] adds r0, 0x36 ldrb r0, [r0] cmp r6, r0 bcc _0804F8B0 b _0804F954 .align 2, 0 _0804F8F8: .4byte gUnknown_2031DA8 _0804F8FC: .4byte gPlayerParty _0804F900: movs r6, 0 ldr r1, _0804F95C @ =gUnknown_2031DA8 ldr r0, [r1] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 bcs _0804F954 adds r7, r1, 0 _0804F910: movs r0, 0x64 adds r4, r6, 0 muls r4, r0 ldr r0, _0804F960 @ =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r0, r5, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl GetHPBarLevel ldr r1, [r7] adds r1, 0x63 adds r1, r6 strb r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, [r7] adds r0, 0x37 ldrb r0, [r0] cmp r6, r0 bcc _0804F910 _0804F954: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F95C: .4byte gUnknown_2031DA8 _0804F960: .4byte gEnemyParty thumb_func_end sub_804F890 thumb_func_start sub_804F964 sub_804F964: @ 804F964 push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 _0804F96C: movs r4, 0 ldr r2, _0804F9D0 @ =gUnknown_2031DA8 ldr r0, [r2] adds r0, 0x36 adds r0, r5 adds r1, r5, 0x1 mov r8, r1 ldrb r0, [r0] cmp r4, r0 bge _0804F9BE adds r6, r2, 0 lsls r0, r5, 1 adds r0, r5 lsls r7, r0, 1 _0804F988: ldr r2, [r6] adds r3, r4, r7 adds r0, r2, 0 adds r0, 0x28 adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _0804F9D4 @ =gSprites adds r0, r1 adds r2, 0x5D adds r2, r3 ldrb r2, [r2] movs r1, 0x4 subs r1, r2 lsls r1, 24 lsrs r1, 24 bl sub_8097414 adds r4, 0x1 ldr r0, [r6] adds r0, 0x36 adds r0, r5 ldrb r0, [r0] cmp r4, r0 blt _0804F988 _0804F9BE: mov r5, r8 cmp r5, 0x1 ble _0804F96C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0804F9D0: .4byte gUnknown_2031DA8 _0804F9D4: .4byte gSprites thumb_func_end sub_804F964 thumb_func_start sub_804F9D8 sub_804F9D8: @ 804F9D8 push {r4,r5,lr} movs r2, 0 ldr r5, _0804FA08 @ =gSaveBlock1Ptr ldr r4, _0804FA0C @ =0x0000309c ldr r3, _0804FA10 @ =gUnknown_2031DA8 _0804F9E2: ldr r0, [r5] adds r0, r4 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 bne _0804F9FC ldr r0, [r3] adds r0, 0xA9 adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _0804F9FC strb r0, [r1] _0804F9FC: adds r2, 0x1 cmp r2, 0xA ble _0804F9E2 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804FA08: .4byte gSaveBlock1Ptr _0804FA0C: .4byte 0x0000309c _0804FA10: .4byte gUnknown_2031DA8 thumb_func_end sub_804F9D8 thumb_func_start sub_804FA14 sub_804FA14: @ 804FA14 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x30 mov r8, r0 adds r7, r1, 0 mov r9, r2 movs r5, 0 cmp r5, r7 bge _0804FA4E mov r6, sp _0804FA2C: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 add r4, r8 adds r0, r4, 0 movs r1, 0x41 bl GetMonData str r0, [r6, 0x18] adds r0, r4, 0 movs r1, 0xB bl GetMonData stm r6!, {r0} adds r5, 0x1 cmp r5, r7 blt _0804FA2C _0804FA4E: bl sub_806E25C mov r1, r9 lsls r4, r1, 2 cmp r0, 0 bne _0804FA70 add r0, sp, 0x18 adds r0, r4 ldr r0, [r0] cmp r0, 0x97 ble _0804FA68 movs r0, 0x2 b _0804FB24 _0804FA68: cmp r0, 0 bne _0804FA70 movs r0, 0x3 b _0804FB24 _0804FA70: 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 r0, _0804FAB0 @ =gLinkPlayers adds r1, r0 ldrb r0, [r1] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0804FAB8 ldrb r1, [r1, 0x12] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _0804FAB8 add r0, sp, 0x18 adds r0, r4 ldr r1, [r0] movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _0804FAB4 movs r0, 0x5 b _0804FB24 .align 2, 0 _0804FAB0: .4byte gLinkPlayers _0804FAB4: cmp r1, 0x97 bgt _0804FADE _0804FAB8: mov r1, sp adds r0, r1, r4 ldr r1, [r0] movs r0, 0xCD lsls r0, 1 cmp r1, r0 beq _0804FACA cmp r1, 0x97 bne _0804FAE2 _0804FACA: movs r0, 0x64 mov r1, r9 muls r1, r0 adds r0, r1, 0 add r0, r8 movs r1, 0x50 bl GetMonData cmp r0, 0 bne _0804FAE2 _0804FADE: movs r0, 0x4 b _0804FB24 _0804FAE2: cmp r7, 0 ble _0804FB00 movs r3, 0xCE lsls r3, 1 movs r2, 0 add r1, sp, 0x18 adds r5, r7, 0 _0804FAF0: ldr r0, [r1] cmp r0, r3 bne _0804FAF8 str r2, [r1] _0804FAF8: adds r1, 0x4 subs r5, 0x1 cmp r5, 0 bne _0804FAF0 _0804FB00: movs r2, 0 movs r5, 0 cmp r2, r7 bge _0804FB1A add r1, sp, 0x18 _0804FB0A: cmp r5, r9 beq _0804FB12 ldr r0, [r1] adds r2, r0 _0804FB12: adds r1, 0x4 adds r5, 0x1 cmp r5, r7 blt _0804FB0A _0804FB1A: cmp r2, 0 bne _0804FB22 movs r0, 0x1 b _0804FB24 _0804FB22: movs r0, 0 _0804FB24: add sp, 0x30 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804FA14 thumb_func_start sub_804FB34 sub_804FB34: @ 804FB34 push {r4-r7,lr} ldr r0, _0804FBB4 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _0804FBC0 bl GetMultiplayerId ldr r6, _0804FBB8 @ =gLinkPlayers movs r7, 0x1 eors r0, r7 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r1, [r1] subs r0, r1, 0x4 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0804FBC0 subs r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 movs r4, 0x2 cmp r0, 0x1 bhi _0804FB6E movs r4, 0x1 _0804FB6E: cmp r4, 0 ble _0804FBC0 bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r1, [r1, 0x12] movs r5, 0xF0 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0804FBBC cmp r4, 0x2 bne _0804FBC0 bl GetMultiplayerId eors r0, r7 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r6 ldrb r1, [r1, 0x12] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _0804FBC0 movs r0, 0x2 b _0804FBC2 .align 2, 0 _0804FBB4: .4byte gReceivedRemoteLinkPlayers _0804FBB8: .4byte gLinkPlayers _0804FBBC: movs r0, 0x1 b _0804FBC2 _0804FBC0: movs r0, 0 _0804FBC2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_804FB34 thumb_func_start sub_804FBC8 sub_804FBC8: @ 804FBC8 push {lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 24 lsrs r1, 24 movs r0, 0xCD lsls r0, 1 cmp r2, r0 beq _0804FBDE cmp r2, 0x97 bne _0804FBE6 _0804FBDE: cmp r1, 0 bne _0804FBE6 movs r0, 0x1 b _0804FBE8 _0804FBE6: movs r0, 0 _0804FBE8: pop {r1} bx r1 thumb_func_end sub_804FBC8 thumb_func_start sub_804FBEC sub_804FBEC: @ 804FBEC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] ldr r5, [sp, 0x28] ldr r6, [sp, 0x2C] lsls r2, 16 lsrs r7, r2, 16 lsls r3, 16 lsrs r3, 16 lsls r4, 24 lsrs r4, 24 mov r8, r4 lsls r5, 16 lsrs r5, 16 lsls r6, 24 lsrs r6, 24 lsls r2, r0, 23 lsrs r2, 31 mov r9, r2 lsls r0, 24 lsrs r4, r0, 31 lsls r0, r1, 23 lsrs r0, 31 mov r10, r0 lsls r0, r1, 24 lsrs r0, 31 lsls r1, 18 lsrs r1, 28 subs r1, 0x4 lsls r1, 24 lsrs r1, 24 movs r2, 0x1 cmp r1, 0x1 bhi _0804FC3A movs r2, 0 _0804FC3A: cmp r2, 0 beq _0804FC4E cmp r4, 0 bne _0804FC46 movs r0, 0x8 b _0804FCCE _0804FC46: cmp r0, 0 bne _0804FC4E movs r0, 0x9 b _0804FCCE _0804FC4E: adds r0, r5, 0 adds r1, r6, 0 str r3, [sp] bl sub_804FBC8 ldr r3, [sp] cmp r0, 0 bne _0804FCB2 movs r0, 0xCE lsls r0, 1 cmp r3, r0 bne _0804FC6E cmp r7, r3 beq _0804FC8C movs r0, 0x2 b _0804FCCE _0804FC6E: ldr r0, _0804FC88 @ =gBaseStats lsls r1, r7, 3 subs r1, r7 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, r8 beq _0804FC8C ldrb r0, [r1, 0x7] cmp r0, r8 beq _0804FC8C movs r0, 0x1 b _0804FCCE .align 2, 0 _0804FC88: .4byte gBaseStats _0804FC8C: movs r0, 0xCE lsls r0, 1 cmp r7, r0 bne _0804FC9C cmp r7, r3 beq _0804FC9C movs r0, 0x3 b _0804FCCE _0804FC9C: mov r0, r9 cmp r0, 0 bne _0804FCBE movs r0, 0xCE lsls r0, 1 cmp r7, r0 bne _0804FCAE movs r0, 0x6 b _0804FCCE _0804FCAE: cmp r7, 0x97 bls _0804FCB6 _0804FCB2: movs r0, 0x4 b _0804FCCE _0804FCB6: cmp r3, 0x97 bls _0804FCBE movs r0, 0x5 b _0804FCCE _0804FCBE: mov r0, r10 cmp r0, 0 bne _0804FCCC cmp r7, 0x97 bls _0804FCCC movs r0, 0x7 b _0804FCCE _0804FCCC: movs r0, 0 _0804FCCE: 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_804FBEC thumb_func_start sub_804FCE0 sub_804FCE0: @ 804FCE0 push {r4-r6,lr} lsls r1, 16 lsrs r5, r1, 16 adds r6, r5, 0 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r3, 24 lsls r0, 23 lsrs r4, r0, 31 adds r0, r2, 0 adds r1, r3, 0 bl sub_804FBC8 cmp r0, 0 bne _0804FD18 cmp r4, 0 bne _0804FD1C movs r0, 0xCE lsls r0, 1 cmp r5, r0 bne _0804FD10 movs r0, 0x2 b _0804FD1E _0804FD10: cmp r6, 0x97 bls _0804FD1C cmp r6, r0 beq _0804FD1C _0804FD18: movs r0, 0x1 b _0804FD1E _0804FD1C: movs r0, 0 _0804FD1E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_804FCE0 thumb_func_start sub_804FD24 sub_804FD24: @ 804FD24 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0804FD40 movs r0, 0x17 bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] _0804FD40: pop {r4} pop {r0} bx r0 thumb_func_end sub_804FD24 thumb_func_start sub_804FD48 sub_804FD48: @ 804FD48 push {r4,r5,lr} adds r4, r0, 0 adds r0, 0x3E ldrb r1, [r0] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0804FD72 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _0804FD72 movs r0, 0xBB bl PlaySE strh r5, [r4, 0x2E] _0804FD72: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_804FD48 thumb_func_start sub_804FD78 sub_804FD78: @ 804FD78 push {lr} adds r2, r0, 0 movs r0, 0x30 ldrsh r1, [r2, r0] cmp r1, 0 bne _0804FDAE ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xC bne _0804FD94 strh r1, [r2, 0x2E] _0804FD94: movs r1, 0x2E ldrsh r0, [r2, r1] lsls r0, 1 ldr r1, _0804FDB4 @ =gUnknown_826CF60 adds r0, r1 ldrb r1, [r2, 0x5] lsrs r1, 4 adds r1, 0x10 lsls r1, 4 adds r1, 0x4 movs r2, 0x2 bl LoadPalette _0804FDAE: pop {r0} bx r0 .align 2, 0 _0804FDB4: .4byte gUnknown_826CF60 thumb_func_end sub_804FD78 thumb_func_start sub_804FDB8 sub_804FDB8: @ 804FDB8 push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] adds r1, 0x1 strh r1, [r2, 0x2E] ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0xA bne _0804FDD6 adds r0, r2, 0 bl DestroySprite _0804FDD6: pop {r0} bx r0 thumb_func_end sub_804FDB8 thumb_func_start sub_804FDDC sub_804FDDC: @ 804FDDC push {lr} adds r2, r0, 0 ldrh r1, [r2, 0x2E] adds r1, 0x1 strh r1, [r2, 0x2E] ldrh r0, [r2, 0x26] subs r0, 0x1 strh r0, [r2, 0x26] lsls r1, 16 asrs r1, 16 cmp r1, 0xA bne _0804FDFA adds r0, r2, 0 bl DestroySprite _0804FDFA: pop {r0} bx r0 thumb_func_end sub_804FDDC thumb_func_start sub_804FE00 sub_804FE00: @ 804FE00 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _0804FE1C movs r0, 0xC5 bl PlaySE movs r0, 0 strh r0, [r4, 0x2E] _0804FE1C: pop {r4} pop {r0} bx r0 thumb_func_end sub_804FE00 thumb_func_start sub_804FE24 sub_804FE24: @ 804FE24 push {r4,r5,lr} sub sp, 0x20 ldr r0, _0804FEB0 @ =gUnknown_2031DAC ldr r0, [r0] mov r12, r0 adds r0, 0xD4 ldrh r1, [r0] lsls r1, 8 adds r0, 0x2 ldrh r2, [r0] lsls r2, 8 adds r0, 0x6 movs r4, 0 ldrsh r3, [r0, r4] adds r0, 0x2 movs r5, 0 ldrsh r0, [r0, r5] str r0, [sp] mov r4, r12 adds r4, 0xE8 movs r5, 0 ldrsh r0, [r4, r5] str r0, [sp, 0x4] movs r5, 0 ldrsh r0, [r4, r5] str r0, [sp, 0x8] mov r0, r12 adds r0, 0xEC ldrh r0, [r0] str r0, [sp, 0xC] add r0, sp, 0x10 bl DoBgAffineSet add r0, sp, 0x10 ldrh r1, [r0] movs r0, 0x20 bl SetGpuReg add r0, sp, 0x10 ldrh r1, [r0, 0x2] movs r0, 0x22 bl SetGpuReg add r0, sp, 0x10 ldrh r1, [r0, 0x4] movs r0, 0x24 bl SetGpuReg add r0, sp, 0x10 ldrh r1, [r0, 0x6] movs r0, 0x26 bl SetGpuReg ldr r1, [sp, 0x18] lsls r1, 16 lsrs r1, 16 movs r0, 0x28 bl SetGpuReg ldr r1, [sp, 0x1C] lsls r1, 16 lsrs r1, 16 movs r0, 0x2C bl SetGpuReg add sp, 0x20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804FEB0: .4byte gUnknown_2031DAC thumb_func_end sub_804FE24 thumb_func_start sub_804FEB4 sub_804FEB4: @ 804FEB4 push {r4,lr} ldr r4, _0804FEFC @ =gUnknown_2031DAC ldr r0, [r4] adds r0, 0xE0 ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, [r4] adds r0, 0xE2 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg movs r0, 0 bl GetGpuReg lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 cmp r1, 0 bne _0804FF00 ldr r0, [r4] adds r0, 0xE4 ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg ldr r0, [r4] adds r0, 0xE6 ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg b _0804FF04 .align 2, 0 _0804FEFC: .4byte gUnknown_2031DAC _0804FF00: bl sub_804FE24 _0804FF04: pop {r4} pop {r0} bx r0 thumb_func_end sub_804FEB4 thumb_func_start sub_804FF0C sub_804FF0C: @ 804FF0C push {lr} bl sub_804FEB4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_804FF0C thumb_func_start sub_804FF24 sub_804FF24: @ 804FF24 push {r4,lr} ldr r3, _0804FF48 @ =gUnknown_2031DAC ldr r1, [r3] movs r0, 0x8A adds r0, r1 mov r12, r0 movs r2, 0 movs r0, 0 mov r4, r12 strh r0, [r4] adds r1, 0x88 strb r2, [r1] ldr r0, [r3] adds r0, 0x89 strb r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0804FF48: .4byte gUnknown_2031DAC thumb_func_end sub_804FF24 thumb_func_start sub_804FF4C sub_804FF4C: @ 804FF4C push {r4,r5,lr} ldr r0, _0804FF70 @ =gUnknown_2031DAC ldr r2, [r0] adds r1, r2, 0 adds r1, 0x88 adds r3, r2, 0 adds r3, 0x89 ldrb r1, [r1] adds r5, r0, 0 ldrb r3, [r3] cmp r1, r3 bne _0804FF74 adds r1, r2, 0 adds r1, 0x8A ldrh r0, [r1] adds r0, 0x1 b _0804FF7A .align 2, 0 _0804FF70: .4byte gUnknown_2031DAC _0804FF74: adds r1, r2, 0 adds r1, 0x8A movs r0, 0 _0804FF7A: strh r0, [r1] adds r4, r5, 0 ldr r0, [r4] adds r0, 0x8A ldrh r1, [r0] movs r0, 0x96 lsls r0, 1 cmp r1, r0 bls _0804FFAC bl CloseLink ldr r0, _0804FFC0 @ =c2_800ACD4 bl SetMainCallback2 ldr r1, [r4] adds r3, r1, 0 adds r3, 0x8A movs r2, 0 movs r0, 0 strh r0, [r3] adds r1, 0x89 strb r2, [r1] ldr r0, [r4] adds r0, 0x88 strb r2, [r0] _0804FFAC: ldr r0, [r5] adds r1, r0, 0 adds r1, 0x88 ldrb r1, [r1] adds r0, 0x89 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0804FFC0: .4byte c2_800ACD4 thumb_func_end sub_804FF4C thumb_func_start sub_804FFC4 sub_804FFC4: @ 804FFC4 push {lr} ldr r0, _0804FFD4 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _0804FFD8 movs r0, 0 b _0804FFE0 .align 2, 0 _0804FFD4: .4byte gReceivedRemoteLinkPlayers _0804FFD8: bl GetMultiplayerId lsls r0, 24 lsrs r0, 24 _0804FFE0: pop {r1} bx r1 thumb_func_end sub_804FFC4 thumb_func_start sub_804FFE4 sub_804FFE4: @ 804FFE4 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r4, 0 mov r8, r4 cmp r6, 0 bne _0805000A ldr r0, _08050034 @ =gUnknown_2031DA4 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, _08050038 @ =gPlayerParty adds r1, r0 mov r8, r1 movs r4, 0x1 _0805000A: cmp r6, 0x1 bne _08050028 ldr r0, _08050034 @ =gUnknown_2031DA4 ldrb r0, [r0, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _0805003C @ =gEnemyParty adds r1, r0 mov r8, r1 movs r4, 0x3 _08050028: cmp r5, 0 beq _08050040 cmp r5, 0x1 beq _080500C8 b _0805011E .align 2, 0 _08050034: .4byte gUnknown_2031DA4 _08050038: .4byte gPlayerParty _0805003C: .4byte gEnemyParty _08050040: mov r0, r8 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 mov r0, r8 movs r1, 0 bl GetMonData adds r7, r0, 0 cmp r6, 0 bne _0805007C lsls r0, r5, 3 ldr r1, _08050074 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08050078 @ =gMonSpritesGfxPtr ldr r1, [r1] ldr r1, [r1, 0x8] adds r2, r5, 0 adds r3, r7, 0 bl HandleLoadSpecialPokePic movs r4, 0 b _0805009A .align 2, 0 _08050074: .4byte gMonFrontPicTable _08050078: .4byte gMonSpritesGfxPtr _0805007C: lsls r0, r5, 3 ldr r1, _080500BC @ =gMonFrontPicTable adds r0, r1 ldr r1, _080500C0 @ =gMonSpritesGfxPtr ldr r2, [r1] lsls r4, r6, 1 adds r1, r4, 0x1 lsls r1, 2 adds r2, 0x4 adds r2, r1 ldr r1, [r2] adds r2, r5, 0 adds r3, r7, 0 bl HandleLoadSpecialPokePic_DontHandleDeoxys _0805009A: mov r0, r8 bl GetMonSpritePalStruct bl LoadCompressedSpritePalette ldr r0, _080500C4 @ =gUnknown_2031DAC ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF0 adds r0, r4 strh r5, [r0] lsls r0, r6, 2 adds r1, 0x68 adds r1, r0 str r7, [r1] b _0805011E .align 2, 0 _080500BC: .4byte gMonFrontPicTable _080500C0: .4byte gMonSpritesGfxPtr _080500C4: .4byte gUnknown_2031DAC _080500C8: mov r0, r8 bl GetMonSpritePalStruct ldrh r0, [r0, 0x4] adds r1, r4, 0 bl SetMultiuseSpriteTemplateToPokemon ldr r0, _08050128 @ =gMultiuseSpriteTemplate movs r1, 0x78 movs r2, 0x3C movs r3, 0x6 bl CreateSprite ldr r4, _0805012C @ =gUnknown_2031DAC ldr r1, [r4] adds r1, 0x8E adds r1, r6 strb r0, [r1] ldr r3, _08050130 @ =gSprites ldr r0, [r4] adds r0, 0x8E adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r4] adds r0, 0x8E adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, _08050134 @ =SpriteCallbackDummy str r1, [r0] _0805011E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08050128: .4byte gMultiuseSpriteTemplate _0805012C: .4byte gUnknown_2031DAC _08050130: .4byte gSprites _08050134: .4byte SpriteCallbackDummy thumb_func_end sub_804FFE4 thumb_func_start sub_8050138 sub_8050138: @ 8050138 push {r4-r6,lr} sub sp, 0x4 ldr r1, _08050158 @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xC bls _0805014E b _08050472 _0805014E: lsls r0, 2 ldr r1, _0805015C @ =_08050160 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050158: .4byte gMain _0805015C: .4byte _08050160 .align 2, 0 _08050160: .4byte _08050194 .4byte _08050240 .4byte _08050288 .4byte _080502A8 .4byte _080502F2 .4byte _08050320 .4byte _08050344 .4byte _0805035C .4byte _08050366 .4byte _08050380 .4byte _0805039C .4byte _08050430 .4byte _0805044C _08050194: ldr r0, _08050228 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080501A8 ldr r1, _0805022C @ =gLinkType ldr r2, _08050230 @ =0x00001144 adds r0, r2, 0 strh r0, [r1] bl CloseLink _080501A8: ldr r4, _08050234 @ =gUnknown_2031DAC movs r0, 0x88 lsls r0, 1 bl AllocZeroed str r0, [r4] bl AllocateMonSpritesGfx bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _08050238 @ =sub_804FF0C bl SetVBlankCallback bl sub_80504CC bl sub_804FF24 ldr r1, _0805023C @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8C strh r2, [r0] adds r0, 0x8 strh r2, [r0] adds r1, 0xEE movs r0, 0x1 strb r0, [r1] ldr r3, [r4] adds r0, r3, 0 adds r0, 0xD4 movs r1, 0x40 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r2, [r0] adds r0, 0x2 strh r2, [r0] adds r1, r3, 0 adds r1, 0xDC movs r0, 0x78 strh r0, [r1] adds r1, 0x2 movs r0, 0x50 strh r0, [r1] adds r1, 0xA adds r0, 0xB0 strh r0, [r1] adds r0, r3, 0 adds r0, 0xEC strh r2, [r0] b _08050472 .align 2, 0 _08050228: .4byte gReceivedRemoteLinkPlayers _0805022C: .4byte gLinkType _08050230: .4byte 0x00001144 _08050234: .4byte gUnknown_2031DAC _08050238: .4byte sub_804FF0C _0805023C: .4byte gMain _08050240: ldr r0, _08050270 @ =gReceivedRemoteLinkPlayers ldrb r5, [r0] cmp r5, 0 bne _0805027C ldr r4, _08050274 @ =gUnknown_2031DAC ldr r0, [r4] movs r1, 0x84 lsls r1, 1 adds r0, r1 movs r1, 0x1 strb r1, [r0] bl sub_8009804 ldr r1, _08050278 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r4] str r5, [r0, 0x64] b _08050472 .align 2, 0 _08050270: .4byte gReceivedRemoteLinkPlayers _08050274: .4byte gUnknown_2031DAC _08050278: .4byte gMain _0805027C: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 movs r0, 0x4 strb r0, [r1] b _08050472 _08050288: ldr r0, _080502A4 @ =gUnknown_2031DAC ldr r1, [r0] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C bhi _08050298 b _08050472 _08050298: movs r0, 0 str r0, [r1, 0x64] movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _08050440 .align 2, 0 _080502A4: .4byte gUnknown_2031DAC _080502A8: bl sub_800AA48 lsls r0, 24 cmp r0, 0 bne _080502B4 b _08050438 _080502B4: bl GetLinkPlayerCount_2 adds r4, r0, 0 bl sub_800A944 lsls r4, 24 lsls r0, 24 cmp r4, r0 bcc _080502EC ldr r0, _080502E4 @ =gUnknown_2031DAC ldr r1, [r0] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x1E bhi _080502D6 b _08050472 _080502D6: bl sub_800A5BC ldr r1, _080502E8 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08050440 .align 2, 0 _080502E4: .4byte gUnknown_2031DAC _080502E8: .4byte gMain _080502EC: bl sub_804FF4C b _08050472 _080502F2: bl sub_804FF4C ldr r0, _08050318 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0x1 beq _08050300 b _08050472 _08050300: bl IsLinkPlayerDataExchangeComplete lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0805030E b _08050472 _0805030E: ldr r1, _0805031C @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08050440 .align 2, 0 _08050318: .4byte gReceivedRemoteLinkPlayers _0805031C: .4byte gMain _08050320: ldr r2, _08050340 @ =gUnknown_2031DAC ldr r0, [r2] adds r0, 0x72 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0x73 strb r1, [r0] ldr r0, [r2] adds r0, 0x93 strb r1, [r0] movs r0, 0 bl sub_804FFE4 b _08050438 .align 2, 0 _08050340: .4byte gUnknown_2031DAC _08050344: movs r0, 0 movs r1, 0x1 bl sub_804FFE4 ldr r1, _08050358 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08050440 .align 2, 0 _08050358: .4byte gMain _0805035C: movs r0, 0x1 movs r1, 0 bl sub_804FFE4 b _08050438 _08050366: movs r0, 0x1 movs r1, 0x1 bl sub_804FFE4 bl sub_80504B0 ldr r1, _0805037C @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08050440 .align 2, 0 _0805037C: .4byte gMain _08050380: bl sub_8050DE0 ldr r0, _08050394 @ =gUnknown_826CDD4 bl LoadSpriteSheet ldr r0, _08050398 @ =gUnknown_826CDDC bl LoadSpritePalette b _08050438 .align 2, 0 _08050394: .4byte gUnknown_826CDD4 _08050398: .4byte gUnknown_826CDDC _0805039C: 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 r4, _08050418 @ =gUnknown_2031DA4 ldrb r0, [r4] movs r6, 0x64 muls r0, r6 ldr r1, _0805041C @ =gPlayerParty adds r0, r1 movs r1, 0x41 bl GetMonData ldr r5, _08050420 @ =gUnknown_2031DAC ldr r1, [r5] adds r1, 0xF8 strh r0, [r1] ldrb r0, [r4, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 muls r0, r6 ldr r1, _08050424 @ =gEnemyParty adds r0, r1 movs r1, 0x41 bl GetMonData ldr r4, [r5] adds r1, r4, 0 adds r1, 0xFA strh r0, [r1] adds r4, 0xFC 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 r0, _08050428 @ =gLinkPlayers + 8 adds r1, r0 adds r0, r4, 0 movs r2, 0x7 bl memcpy ldr r1, _0805042C @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _08050440 .align 2, 0 _08050418: .4byte gUnknown_2031DA4 _0805041C: .4byte gPlayerParty _08050420: .4byte gUnknown_2031DAC _08050424: .4byte gEnemyParty _08050428: .4byte gLinkPlayers + 8 _0805042C: .4byte gMain _08050430: bl sub_805049C bl sub_8050E24 _08050438: ldr r1, _08050448 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _08050440: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08050472 .align 2, 0 _08050448: .4byte gMain _0805044C: ldr r0, _08050490 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08050472 ldr r0, _08050494 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0805046C bl sub_80FCEA8 movs r0, 0 movs r1, 0 bl sub_80FCD74 _0805046C: ldr r0, _08050498 @ =sub_8053D84 bl SetMainCallback2 _08050472: bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08050490: .4byte gPaletteFade _08050494: .4byte gWirelessCommType _08050498: .4byte sub_8053D84 thumb_func_end sub_8050138 thumb_func_start sub_805049C sub_805049C: @ 805049C push {lr} movs r0, 0x5 bl sub_8050968 movs r0, 0 bl sub_8050968 pop {r0} bx r0 thumb_func_end sub_805049C thumb_func_start sub_80504B0 sub_80504B0: @ 80504B0 push {lr} movs r0, 0 movs r1, 0xFF bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_80504B0 thumb_func_start sub_80504CC sub_80504CC: @ 80504CC push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x4 movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080505B4 @ =gUnknown_826D1D4 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 r5, 0x80 lsls r5, 4 adds r0, r5, 0 bl Alloc adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer adds r0, r5, 0 bl Alloc adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r5, 0 bl Alloc adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer bl DeactivateAllTextPrinters ldr r0, _080505B8 @ =gBattleTextboxTiles mov r10, r0 movs r0, 0 mov r9, r0 str r0, [sp] mov r1, r10 movs r2, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap ldr r0, _080505BC @ =gFile_graphics_interface_menu_map_tilemap mov r8, r0 ldr r4, _080505C0 @ =gDecompressionBuffer adds r1, r4, 0 bl LZDecompressWram movs r0, 0 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r6, _080505C4 @ =gBattleTextboxPalette adds r0, r6, 0 movs r1, 0 movs r2, 0x20 bl LoadCompressedPalette ldr r0, _080505C8 @ =gUnknown_826D1BC bl InitWindows mov r0, r9 str r0, [sp] movs r0, 0 mov r1, r10 movs r2, 0 movs r3, 0 bl DecompressAndLoadBgGfxUsingHeap mov r0, r8 adds r1, r4, 0 bl LZDecompressWram movs r0, 0 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0 bl CopyToBgTilemapBuffer adds r0, r6, 0 movs r1, 0 movs r2, 0x20 bl LoadCompressedPalette add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080505B4: .4byte gUnknown_826D1D4 _080505B8: .4byte gBattleTextboxTiles _080505BC: .4byte gFile_graphics_interface_menu_map_tilemap _080505C0: .4byte gDecompressionBuffer _080505C4: .4byte gBattleTextboxPalette _080505C8: .4byte gUnknown_826D1BC thumb_func_end sub_80504CC thumb_func_start sub_80505CC sub_80505CC: @ 80505CC push {r4,r5,lr} sub sp, 0xC ldr r0, _080505EC @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0xC bls _080505E0 b _0805077E _080505E0: lsls r0, 2 ldr r1, _080505F0 @ =_080505F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080505EC: .4byte gMain _080505F0: .4byte _080505F4 .align 2, 0 _080505F4: .4byte _08050628 .4byte _0805077E .4byte _0805077E .4byte _0805077E .4byte _0805077E .4byte _080506EC .4byte _080506F6 .4byte _08050700 .4byte _08050710 .4byte _08050730 .4byte _0805074C .4byte _08050754 .4byte _08050778 _08050628: ldr r1, _080506CC @ =gUnknown_2031DA4 ldr r0, _080506D0 @ =gSpecialVar_0x8005 ldrh r0, [r0] movs r5, 0 strb r0, [r1] movs r0, 0x6 strb r0, [r1, 0x1] ldr r4, _080506D4 @ =gLinkPlayers + 8 ldr r0, _080506D8 @ =gSaveBlock2Ptr ldr r1, [r0] adds r0, r4, 0 bl StringCopy ldr r0, _080506DC @ =gEnemyParty movs r1, 0x7 mov r2, sp bl GetMonData adds r4, 0x1C adds r0, r4, 0 mov r1, sp bl StringCopy ldr r4, _080506E0 @ =gUnknown_2031DAC movs r0, 0x88 lsls r0, 1 bl AllocZeroed str r0, [r4] bl AllocateMonSpritesGfx bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, _080506E4 @ =sub_804FF0C bl SetVBlankCallback bl sub_80504CC ldr r0, [r4] adds r0, 0xEE strb r5, [r0] ldr r2, [r4] adds r0, r2, 0 adds r0, 0x8C strh r5, [r0] adds r0, 0x8 strh r5, [r0] adds r0, 0x40 movs r1, 0x40 strh r1, [r0] adds r0, 0x2 strh r1, [r0] adds r0, 0x2 strh r5, [r0] adds r0, 0x2 strh r5, [r0] adds r1, r2, 0 adds r1, 0xDC movs r0, 0x78 strh r0, [r1] adds r1, 0x2 movs r0, 0x50 strh r0, [r1] adds r1, 0xA adds r0, 0xB0 strh r0, [r1] adds r0, r2, 0 adds r0, 0xEC strh r5, [r0] str r5, [r2, 0x64] ldr r0, _080506E8 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x5 strb r1, [r0] b _0805077E .align 2, 0 _080506CC: .4byte gUnknown_2031DA4 _080506D0: .4byte gSpecialVar_0x8005 _080506D4: .4byte gLinkPlayers + 8 _080506D8: .4byte gSaveBlock2Ptr _080506DC: .4byte gEnemyParty _080506E0: .4byte gUnknown_2031DAC _080506E4: .4byte sub_804FF0C _080506E8: .4byte gMain _080506EC: movs r0, 0 movs r1, 0 bl sub_804FFE4 b _08050764 _080506F6: movs r0, 0 movs r1, 0x1 bl sub_804FFE4 b _08050764 _08050700: movs r0, 0x1 movs r1, 0 bl sub_804FFE4 movs r0, 0 bl ShowBg b _08050764 _08050710: movs r0, 0x1 movs r1, 0x1 bl sub_804FFE4 movs r0, 0 movs r1, 0xFF bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram b _08050764 _08050730: bl sub_8050DE0 ldr r0, _08050744 @ =gUnknown_826CDD4 bl LoadSpriteSheet ldr r0, _08050748 @ =gUnknown_826CDDC bl LoadSpritePalette b _08050764 .align 2, 0 _08050744: .4byte gUnknown_826CDD4 _08050748: .4byte gUnknown_826CDDC _0805074C: movs r0, 0 bl ShowBg b _08050764 _08050754: movs r0, 0x5 bl sub_8050968 movs r0, 0 bl sub_8050968 bl sub_8050E24 _08050764: ldr r1, _08050774 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0805077E .align 2, 0 _08050774: .4byte gMain _08050778: ldr r0, _0805079C @ =sub_8050948 bl SetMainCallback2 _0805077E: bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0805079C: .4byte sub_8050948 thumb_func_end sub_80505CC thumb_func_start sub_80507A0 sub_80507A0: @ 80507A0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r1, r0 ldr r0, _080507FC @ =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080507F4 adds r0, r5, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0 movs r2, 0 bl GetMonData adds r5, r0, 0 adds r0, r4, 0 bl SpeciesToNationalPokedexNum adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0x2 bl GetSetPokedexFlag adds r0, r4, 0 movs r1, 0x3 adds r2, r5, 0 bl HandleSetPokedexFlag _080507F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080507FC: .4byte gPlayerParty thumb_func_end sub_80507A0 thumb_func_start sub_8050800 sub_8050800: @ 8050800 push {lr} bl GetMultiplayerId pop {r0} bx r0 thumb_func_end sub_8050800 thumb_func_start sub_805080C sub_805080C: @ 805080C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r4, 24 lsrs r4, 24 movs r5, 0x64 mov r1, r9 muls r1, r5 ldr r0, _080508D8 @ =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x40 bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r1, r4, 0 muls r1, r5 ldr r0, _080508DC @ =gEnemyParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x40 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r6, 0xFF beq _08050866 ldr r0, _080508E0 @ =gSaveBlock1Ptr lsls r1, r6, 3 adds r1, r6 lsls r1, 2 ldr r2, _080508E4 @ =0x00002cd0 adds r1, r2 ldr r0, [r0] adds r0, r1 bl ClearMailStruct _08050866: ldr r4, _080508E8 @ =gUnknown_2031DAC ldr r0, [r4] adds r1, r7, 0 movs r2, 0x64 bl memcpy adds r0, r7, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy ldr r1, [r4] adds r0, r5, 0 movs r2, 0x64 bl memcpy movs r1, 0x46 mov r0, sp strb r1, [r0] adds r0, r7, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _080508A2 adds r0, r7, 0 movs r1, 0x20 mov r2, sp bl SetMonData _080508A2: mov r0, r8 cmp r0, 0xFF beq _080508B8 lsls r1, r0, 3 add r1, r8 lsls r1, 2 ldr r0, _080508EC @ =gUnknown_2031CCC adds r1, r0 adds r0, r7, 0 bl GiveMailToMon2 _080508B8: mov r0, r9 bl sub_80507A0 ldr r0, _080508F0 @ =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 beq _080508CA bl sub_8050800 _080508CA: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080508D8: .4byte gPlayerParty _080508DC: .4byte gEnemyParty _080508E0: .4byte gSaveBlock1Ptr _080508E4: .4byte 0x00002cd0 _080508E8: .4byte gUnknown_2031DAC _080508EC: .4byte gUnknown_2031CCC _080508F0: .4byte gReceivedRemoteLinkPlayers thumb_func_end sub_805080C thumb_func_start sub_80508F4 sub_80508F4: @ 80508F4 push {r4,lr} ldr r4, _08050908 @ =gUnknown_2031DAC ldr r0, [r4] adds r0, 0x93 ldrb r0, [r0] cmp r0, 0x1 beq _0805090C cmp r0, 0x2 beq _08050932 b _0805093C .align 2, 0 _08050908: .4byte gUnknown_2031DAC _0805090C: bl sub_800A4BC lsls r0, 24 cmp r0, 0 beq _08050932 bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x74 movs r2, 0x14 bl SendBlock ldr r1, [r4] adds r1, 0x93 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08050932: ldr r0, _08050944 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x93 movs r1, 0 strb r1, [r0] _0805093C: pop {r4} pop {r0} bx r0 .align 2, 0 _08050944: .4byte gUnknown_2031DAC thumb_func_end sub_80508F4 thumb_func_start sub_8050948 sub_8050948: @ 8050948 push {lr} bl sub_8050F14 bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8050948 thumb_func_start sub_8050968 sub_8050968: @ 8050968 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bls _08050974 b _08050DB4 _08050974: lsls r0, 2 ldr r1, _08050980 @ =_08050984 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050980: .4byte _08050984 .align 2, 0 _08050984: .4byte _080509A4 .4byte _08050A18 .4byte _08050AC4 .4byte _08050B3C .4byte _08050B84 .4byte _08050C54 .4byte _08050C6C .4byte _08050D48 _080509A4: ldr r0, _080509FC @ =gUnknown_2031DAC ldr r1, [r0] adds r2, r1, 0 adds r2, 0xE4 movs r0, 0 strh r0, [r2] adds r1, 0xE6 movs r0, 0xB4 strh r0, [r1] movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r1, _08050A00 @ =0x00005206 movs r0, 0xC bl SetGpuReg ldr r0, _08050A04 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette ldr r3, _08050A08 @ =gTradeGba_Gfx ldr r4, _08050A0C @ =0x06004000 movs r5, 0xA1 lsls r5, 5 ldr r1, _08050A10 @ =0x040000d4 ldr r6, _08050A14 @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _080509E6: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _080509E6 b _08050D98 .align 2, 0 _080509FC: .4byte gUnknown_2031DAC _08050A00: .4byte 0x00005206 _08050A04: .4byte gTradeGba2_Pal _08050A08: .4byte gTradeGba_Gfx _08050A0C: .4byte 0x06004000 _08050A10: .4byte 0x040000d4 _08050A14: .4byte 0x80000800 _08050A18: ldr r4, _08050A54 @ =gUnknown_2031DAC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xE2 movs r0, 0 strh r0, [r1] adds r2, 0xE0 movs r1, 0xAE lsls r1, 1 strh r1, [r2] movs r0, 0x16 bl SetGpuReg ldr r1, _08050A58 @ =0x00008502 movs r0, 0xA bl SetGpuReg ldr r1, _08050A5C @ =0x00009206 movs r0, 0xC bl SetGpuReg ldr r0, [r4] movs r1, 0x84 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08050A64 ldr r1, _08050A60 @ =gUnknown_826AA5C b _08050A66 .align 2, 0 _08050A54: .4byte gUnknown_2031DAC _08050A58: .4byte 0x00008502 _08050A5C: .4byte 0x00009206 _08050A60: .4byte gUnknown_826AA5C _08050A64: ldr r1, _08050AB0 @ =gUnknown_8269A5C _08050A66: ldr r2, _08050AB4 @ =0x06002800 ldr r0, _08050AB8 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050ABC @ =0x80000800 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r3, _08050AC0 @ =gTradeGba_Gfx movs r4, 0xC0 lsls r4, 19 movs r5, 0xA1 lsls r5, 5 ldr r1, _08050AB8 @ =0x040000d4 ldr r6, _08050ABC @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08050A8A: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _08050A8A str r3, [r1] str r4, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r1, 0x92 lsls r1, 5 b _08050B64 .align 2, 0 _08050AB0: .4byte gUnknown_8269A5C _08050AB4: .4byte 0x06002800 _08050AB8: .4byte 0x040000d4 _08050ABC: .4byte 0x80000800 _08050AC0: .4byte gTradeGba_Gfx _08050AC4: ldr r0, _08050AF4 @ =gUnknown_2031DAC ldr r2, [r0] adds r0, r2, 0 adds r0, 0xE0 movs r1, 0 strh r1, [r0] adds r0, 0x2 strh r1, [r0] movs r1, 0x84 lsls r1, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 bne _08050B04 ldr r1, _08050AF8 @ =0x00001241 movs r0, 0 bl SetGpuReg ldr r0, _08050AFC @ =gUnknown_3379A0Bin ldr r1, _08050B00 @ =0x06002800 bl LZ77UnCompVram movs r0, 0x8 b _08050B1E .align 2, 0 _08050AF4: .4byte gUnknown_2031DAC _08050AF8: .4byte 0x00001241 _08050AFC: .4byte gUnknown_3379A0Bin _08050B00: .4byte 0x06002800 _08050B04: ldr r1, _08050B28 @ =0x00001241 movs r0, 0 bl SetGpuReg ldr r1, _08050B2C @ =gUnknown_826407C ldr r2, _08050B30 @ =0x06002800 ldr r0, _08050B34 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050B38 @ =0x80000400 str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x1 _08050B1E: movs r1, 0x10 movs r2, 0 bl BlendPalettes b _08050DB4 .align 2, 0 _08050B28: .4byte 0x00001241 _08050B2C: .4byte gUnknown_826407C _08050B30: .4byte 0x06002800 _08050B34: .4byte 0x040000d4 _08050B38: .4byte 0x80000400 _08050B3C: ldr r0, _08050B6C @ =gUnknown_826BF5C movs r1, 0x30 movs r2, 0x20 bl LoadPalette ldr r0, _08050B70 @ =gWirelessSignal4bpp ldr r1, _08050B74 @ =0x06004000 bl LZ77UnCompVram ldr r0, _08050B78 @ =gUnknown_826C60C ldr r1, _08050B7C @ =0x06009000 bl LZ77UnCompVram ldr r0, _08050B80 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0xE4 movs r1, 0x50 strh r1, [r0] movs r1, 0xB2 lsls r1, 5 _08050B64: movs r0, 0 bl SetGpuReg b _08050DB4 .align 2, 0 _08050B6C: .4byte gUnknown_826BF5C _08050B70: .4byte gWirelessSignal4bpp _08050B74: .4byte 0x06004000 _08050B78: .4byte gUnknown_826C60C _08050B7C: .4byte 0x06009000 _08050B80: .4byte gUnknown_2031DAC _08050B84: ldr r1, _08050C0C @ =0x00001441 movs r0, 0 bl SetGpuReg ldr r1, _08050C10 @ =0x00001287 movs r0, 0xC bl SetGpuReg ldr r0, _08050C14 @ =gUnknown_2031DAC ldr r3, [r0] adds r1, r3, 0 adds r1, 0xD4 movs r2, 0 movs r0, 0x40 strh r0, [r1] adds r1, 0x2 movs r0, 0x5C strh r0, [r1] adds r1, 0x12 movs r0, 0x20 strh r0, [r1] adds r1, 0x2 movs r0, 0x80 lsls r0, 3 strh r0, [r1] adds r0, r3, 0 adds r0, 0xEC strh r2, [r0] ldr r3, _08050C18 @ =gUnknown_826701C ldr r4, _08050C1C @ =0x06004000 movs r5, 0xA1 lsls r5, 6 ldr r1, _08050C20 @ =0x040000d4 ldr r6, _08050C24 @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08050BD0: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _08050BD0 str r3, [r1] str r4, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, _08050C14 @ =gUnknown_2031DAC ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08050C34 ldr r1, _08050C28 @ =gUnknown_826985C ldr r2, _08050C2C @ =0x06009000 ldr r0, _08050C20 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050C30 @ =0x80000080 b _08050DB0 .align 2, 0 _08050C0C: .4byte 0x00001441 _08050C10: .4byte 0x00001287 _08050C14: .4byte gUnknown_2031DAC _08050C18: .4byte gUnknown_826701C _08050C1C: .4byte 0x06004000 _08050C20: .4byte 0x040000d4 _08050C24: .4byte 0x80000800 _08050C28: .4byte gUnknown_826985C _08050C2C: .4byte 0x06009000 _08050C30: .4byte 0x80000080 _08050C34: ldr r1, _08050C44 @ =gUnknown_826995C ldr r2, _08050C48 @ =0x06009000 ldr r0, _08050C4C @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050C50 @ =0x80000080 b _08050DB0 .align 2, 0 _08050C44: .4byte gUnknown_826995C _08050C48: .4byte 0x06009000 _08050C4C: .4byte 0x040000d4 _08050C50: .4byte 0x80000080 _08050C54: ldr r0, _08050C68 @ =gUnknown_2031DAC ldr r0, [r0] adds r1, r0, 0 adds r1, 0xE0 movs r2, 0 strh r2, [r1] adds r0, 0xE2 strh r2, [r0] b _08050DB4 .align 2, 0 _08050C68: .4byte gUnknown_2031DAC _08050C6C: ldr r1, _08050D00 @ =0x00001441 movs r0, 0 bl SetGpuReg ldr r1, _08050D04 @ =0x00001287 movs r0, 0xC bl SetGpuReg ldr r0, _08050D08 @ =gUnknown_2031DAC ldr r3, [r0] adds r1, r3, 0 adds r1, 0xD4 movs r2, 0 movs r0, 0x40 strh r0, [r1] adds r1, 0x2 movs r0, 0x5C strh r0, [r1] adds r1, 0x12 adds r0, 0xA4 strh r0, [r1] adds r1, 0x2 movs r0, 0x80 strh r0, [r1] subs r1, 0xE movs r0, 0x78 strh r0, [r1] adds r1, 0x2 movs r0, 0x50 strh r0, [r1] adds r0, r3, 0 adds r0, 0xEC strh r2, [r0] ldr r3, _08050D0C @ =gUnknown_826701C ldr r4, _08050D10 @ =0x06004000 movs r5, 0xA1 lsls r5, 6 ldr r1, _08050D14 @ =0x040000d4 ldr r6, _08050D18 @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08050CC2: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _08050CC2 str r3, [r1] str r4, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r0, _08050D08 @ =gUnknown_2031DAC ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _08050D28 ldr r1, _08050D1C @ =gUnknown_826985C ldr r2, _08050D20 @ =0x06009000 ldr r0, _08050D14 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050D24 @ =0x80000080 b _08050DB0 .align 2, 0 _08050D00: .4byte 0x00001441 _08050D04: .4byte 0x00001287 _08050D08: .4byte gUnknown_2031DAC _08050D0C: .4byte gUnknown_826701C _08050D10: .4byte 0x06004000 _08050D14: .4byte 0x040000d4 _08050D18: .4byte 0x80000800 _08050D1C: .4byte gUnknown_826985C _08050D20: .4byte 0x06009000 _08050D24: .4byte 0x80000080 _08050D28: ldr r1, _08050D38 @ =gUnknown_826995C ldr r2, _08050D3C @ =0x06009000 ldr r0, _08050D40 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050D44 @ =0x80000080 b _08050DB0 .align 2, 0 _08050D38: .4byte gUnknown_826995C _08050D3C: .4byte 0x06009000 _08050D40: .4byte 0x040000d4 _08050D44: .4byte 0x80000080 _08050D48: ldr r0, _08050DBC @ =gUnknown_2031DAC ldr r0, [r0] adds r1, r0, 0 adds r1, 0xE4 movs r2, 0 strh r2, [r1] adds r0, 0xE6 strh r2, [r0] movs r0, 0x50 movs r1, 0 bl SetGpuReg ldr r1, _08050DC0 @ =0x00005206 movs r0, 0xC bl SetGpuReg ldr r0, _08050DC4 @ =gTradeGba2_Pal movs r1, 0x10 movs r2, 0x60 bl LoadPalette ldr r3, _08050DC8 @ =gTradeGba_Gfx ldr r4, _08050DCC @ =0x06004000 movs r5, 0xA1 lsls r5, 5 ldr r1, _08050DD0 @ =0x040000d4 ldr r6, _08050DD4 @ =0x80000800 movs r2, 0x80 lsls r2, 5 movs r7, 0x80 lsls r7, 24 _08050D86: str r3, [r1] str r4, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r2 adds r4, r2 subs r5, r2 cmp r5, r2 bhi _08050D86 _08050D98: str r3, [r1] str r4, [r1, 0x4] lsrs r0, r5, 1 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _08050DD8 @ =gUnknown_08331F60 ldr r2, _08050DDC @ =0x06009000 ldr r0, _08050DD0 @ =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, _08050DD4 @ =0x80000800 _08050DB0: str r1, [r0, 0x8] ldr r0, [r0, 0x8] _08050DB4: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08050DBC: .4byte gUnknown_2031DAC _08050DC0: .4byte 0x00005206 _08050DC4: .4byte gTradeGba2_Pal _08050DC8: .4byte gTradeGba_Gfx _08050DCC: .4byte 0x06004000 _08050DD0: .4byte 0x040000d4 _08050DD4: .4byte 0x80000800 _08050DD8: .4byte gUnknown_08331F60 _08050DDC: .4byte 0x06009000 thumb_func_end sub_8050968 thumb_func_start sub_8050DE0 sub_8050DE0: @ 8050DE0 push {lr} ldr r0, _08050E0C @ =gUnknown_826CE2C bl LoadSpriteSheet ldr r0, _08050E10 @ =gUnknown_826CE7C bl LoadSpriteSheet ldr r0, _08050E14 @ =gUnknown_826CEB0 bl LoadSpriteSheet ldr r0, _08050E18 @ =gUnknown_826CF28 bl LoadSpriteSheet ldr r0, _08050E1C @ =gUnknown_826CE34 bl LoadSpritePalette ldr r0, _08050E20 @ =gUnknown_826CE3C bl LoadSpritePalette pop {r0} bx r0 .align 2, 0 _08050E0C: .4byte gUnknown_826CE2C _08050E10: .4byte gUnknown_826CE7C _08050E14: .4byte gUnknown_826CEB0 _08050E18: .4byte gUnknown_826CF28 _08050E1C: .4byte gUnknown_826CE34 _08050E20: .4byte gUnknown_826CE3C thumb_func_end sub_8050DE0 thumb_func_start sub_8050E24 sub_8050E24: @ 8050E24 push {r4,r5,lr} sub sp, 0x14 ldr r0, _08050E94 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0xEE ldrb r0, [r0] cmp r0, 0 beq _08050EB4 bl GetMultiplayerId lsls r0, 24 ldr r3, _08050E98 @ =gStringVar1 movs r2, 0x80 lsls r2, 17 eors r2, r0 lsrs r2, 24 lsls r1, r2, 3 subs r1, r2 lsls r1, 2 ldr r0, _08050E9C @ =gLinkPlayers + 8 adds r1, r0 adds r0, r3, 0 bl StringCopy ldr r5, _08050EA0 @ =gUnknown_2031DA4 ldrb r0, [r5, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r4, 0x64 muls r0, r4 ldr r1, _08050EA4 @ =gEnemyParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _08050EA8 @ =gStringVar3 mov r1, sp bl StringCopy10 ldrb r0, [r5] muls r0, r4 ldr r1, _08050EAC @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _08050EB0 @ =gStringVar2 mov r1, sp bl StringCopy10 b _08050EF0 .align 2, 0 _08050E94: .4byte gUnknown_2031DAC _08050E98: .4byte gStringVar1 _08050E9C: .4byte gLinkPlayers + 8 _08050EA0: .4byte gUnknown_2031DA4 _08050EA4: .4byte gEnemyParty _08050EA8: .4byte gStringVar3 _08050EAC: .4byte gPlayerParty _08050EB0: .4byte gStringVar2 _08050EB4: ldr r0, _08050EF8 @ =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _08050EFC @ =gUnknown_826CF8C adds r4, r0 ldr r0, _08050F00 @ =gStringVar1 adds r1, r4, 0 adds r1, 0x2B bl StringCopy ldr r0, _08050F04 @ =gStringVar3 adds r1, r4, 0 bl StringCopy10 ldr r0, _08050F08 @ =gSpecialVar_0x8005 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08050F0C @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _08050F10 @ =gStringVar2 mov r1, sp bl StringCopy10 _08050EF0: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08050EF8: .4byte gSpecialVar_0x8004 _08050EFC: .4byte gUnknown_826CF8C _08050F00: .4byte gStringVar1 _08050F04: .4byte gStringVar3 _08050F08: .4byte gSpecialVar_0x8005 _08050F0C: .4byte gPlayerParty _08050F10: .4byte gStringVar2 thumb_func_end sub_8050E24 thumb_func_start sub_8050F14 sub_8050F14: @ 8050F14 push {lr} ldr r0, _08050F2C @ =gUnknown_2031DAC ldr r0, [r0] movs r1, 0x84 lsls r1, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _08050F30 bl sub_805232C b _08050F34 .align 2, 0 _08050F2C: .4byte gUnknown_2031DAC _08050F30: bl sub_8050F3C _08050F34: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8050F14 thumb_func_start sub_8050F3C sub_8050F3C: @ 8050F3C push {r4-r7,lr} sub sp, 0x10 ldr r0, _08050F60 @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0x94 ldrh r5, [r1] ldr r1, _08050F64 @ =0x0000010b adds r7, r0, 0 cmp r5, r1 bls _08050F54 bl _08052318 _08050F54: lsls r0, r5, 2 ldr r1, _08050F68 @ =_08050F6C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08050F60: .4byte gUnknown_2031DAC _08050F64: .4byte 0x0000010b _08050F68: .4byte _08050F6C .align 2, 0 _08050F6C: .4byte _0805139C .4byte _08051414 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08051470 .4byte _080514B8 .4byte _0805152C .4byte _08052318 .4byte _08051598 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _080515BC .4byte _080515EC .4byte _080515FE .4byte _08051620 .4byte _08051668 .4byte _08051698 .4byte _080516E0 .4byte _08051730 .4byte _08051784 .4byte _08051808 .4byte _0805182C .4byte _08051878 .4byte _080518C4 .4byte _08051920 .4byte _08051980 .4byte _08051994 .4byte _080519A8 .4byte _080519BC .4byte _08051AE4 .4byte _08051BB4 .4byte _08051C3C .4byte _08051CB4 .4byte _08051CC4 .4byte _08051CE4 .4byte _08051D34 .4byte _08051D52 .4byte _08051D90 .4byte _08051DA0 .4byte _08051E1C .4byte _08052318 .4byte _08051E44 .4byte _08051E84 .4byte _08051EC4 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08051EE4 .4byte _08051F0C .4byte _08051F28 .4byte _08051F48 .4byte _08051FF0 .4byte _08052024 .4byte _08052070 .4byte _08052128 .4byte _080521B4 .4byte _08052200 .4byte _08052210 .4byte _08052216 .4byte _0805223C .4byte _08052298 .4byte _080522BC .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052160 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _080517B0 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052318 .4byte _08052198 _0805139C: ldr r3, _08051408 @ =gSprites ldr r0, [r7] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r4, [r7] adds r2, r4, 0 adds r2, 0x8E ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _0805140C @ =0x0000ff4c strh r1, [r0, 0x24] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08051410 @ =gUnknown_82349CC adds r0, r4, 0 adds r0, 0xF0 ldrh r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] strh r0, [r1, 0x26] adds r1, r4, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] bl GetCurrentMapMusic ldr r1, [r7] adds r1, 0xF4 strh r0, [r1] movs r0, 0x84 lsls r0, 1 bl PlayNewMapMusic bl _08052318 .align 2, 0 _08051408: .4byte gSprites _0805140C: .4byte 0x0000ff4c _08051410: .4byte gUnknown_82349CC _08051414: ldr r5, [r7] adds r6, r5, 0 adds r6, 0xE6 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 ble _08051448 ldr r2, _08051444 @ =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] adds r1, 0x3 strh r1, [r0, 0x24] ldrh r0, [r6] subs r0, 0x3 strh r0, [r6] bl _08052318 .align 2, 0 _08051444: .4byte gSprites _08051448: ldr r2, _0805146C @ =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] strh r1, [r6] adds r1, r5, 0 adds r1, 0x94 movs r0, 0xA strh r0, [r1] bl _08052318 .align 2, 0 _0805146C: .4byte gSprites _08051470: ldr r4, _080514AC @ =gStringVar4 ldr r1, _080514B0 @ =gUnknown_841E1E9 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r4, _080514B4 @ =gUnknown_2031DAC ldr r0, [r4] adds r2, r0, 0 adds r2, 0xF0 ldrh r1, [r2] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _0805149E adds r0, r1, 0 movs r1, 0 bl PlayCry1 _0805149E: ldr r3, [r4] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 movs r0, 0xB bl _0805218E .align 2, 0 _080514AC: .4byte gStringVar4 _080514B0: .4byte gUnknown_841E1E9 _080514B4: .4byte gUnknown_2031DAC _080514B8: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x50 beq _080514C8 bl _08052318 _080514C8: adds r0, r1, 0 adds r0, 0x8E ldrb r0, [r0] ldr r2, _0805151C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 movs r2, 0x2 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x14 str r2, [sp, 0x8] ldr r2, _08051520 @ =0x000fffff str r2, [sp, 0xC] movs r2, 0x78 movs r3, 0x20 bl sub_804BB98 ldr r1, [r7] adds r1, 0xD2 strb r0, [r1] ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r4, _08051524 @ =gStringVar4 ldr r1, _08051528 @ =gUnknown_841E200 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 bl _08052318 .align 2, 0 _0805151C: .4byte gSprites _08051520: .4byte 0x000fffff _08051524: .4byte gStringVar4 _08051528: .4byte gUnknown_841E200 _0805152C: ldr r5, _08051588 @ =gSprites ldr r0, [r7] adds r0, 0xD2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r5, 0 adds r4, 0x1C adds r0, r4 ldr r1, [r0] ldr r0, _0805158C @ =SpriteCallbackDummy cmp r1, r0 beq _0805154C bl _08052318 _0805154C: ldr r0, _08051590 @ =gUnknown_826CDE4 movs r1, 0x78 movs r2, 0x20 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0xD3 strb r0, [r1] ldr r2, [r7] adds r0, r2, 0 adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08051594 @ =sub_8053938 str r1, [r0] adds r2, 0xD2 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite ldr r1, [r7] bl _080522AC .align 2, 0 _08051588: .4byte gSprites _0805158C: .4byte SpriteCallbackDummy _08051590: .4byte gUnknown_826CDE4 _08051594: .4byte sub_8053938 _08051598: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080515B8 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x14 strh r1, [r0] bl _08052318 .align 2, 0 _080515B8: .4byte gUnknown_2031DAC _080515BC: ldr r0, _080515E8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080515CC bl _08052318 _080515CC: movs r0, 0x4 bl sub_8050968 movs r0, 0 movs r1, 0xFF bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram bl _080522A8 .align 2, 0 _080515E8: .4byte gPaletteFade _080515EC: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 bl _080522A4 _080515FE: ldr r0, _0805161C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805160E bl _08052318 _0805160E: ldr r0, [r7] adds r0, 0x94 movs r1, 0x17 strh r1, [r0] bl _08052318 .align 2, 0 _0805161C: .4byte gPaletteFade _08051620: ldr r4, _0805163C @ =gUnknown_2031DAC ldr r0, [r4] adds r2, r0, 0 adds r2, 0xEA ldrh r1, [r2] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bls _08051640 adds r0, r1, 0 subs r0, 0x34 strh r0, [r2] b _0805165C .align 2, 0 _0805163C: .4byte gUnknown_2031DAC _08051640: movs r0, 0x1 bl sub_8050968 ldr r3, [r4] adds r1, r3, 0 adds r1, 0xEA movs r2, 0 movs r0, 0x80 strh r0, [r1] subs r1, 0x56 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] str r2, [r3, 0x64] _0805165C: ldr r0, _08051664 @ =gUnknown_2031DAC ldr r4, [r0] bl _08051EB0 .align 2, 0 _08051664: .4byte gUnknown_2031DAC _08051668: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x14 bhi _08051678 bl _08052318 _08051678: bl sub_804FE24 ldr r0, _08051694 @ =gUnknown_826CF30 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] ldr r1, [r7] bl _080522AC .align 2, 0 _08051694: .4byte gUnknown_826CF30 _08051698: ldr r2, _080516D8 @ =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 blt _080516B8 bl _08052318 _080516B8: adds r0, r1, 0 bl DestroySprite movs r1, 0xC8 lsls r1, 3 movs r0, 0x50 bl SetGpuReg ldr r1, _080516DC @ =0x0000040c movs r0, 0x52 bl SetGpuReg ldr r1, [r7] bl _080522AC .align 2, 0 _080516D8: .4byte gSprites _080516DC: .4byte 0x0000040c _080516E0: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xE0 ldrh r1, [r0] subs r1, 0x1 strh r1, [r0] lsls r1, 16 movs r0, 0x9E lsls r0, 17 cmp r1, r0 bne _08051700 adds r1, r2, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08051700: ldr r0, [r7] adds r0, 0xE0 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0xA4 lsls r0, 1 cmp r1, r0 beq _08051714 bl _08052318 _08051714: ldr r0, _0805172C @ =gUnknown_826CEB8 movs r1, 0x80 movs r2, 0x41 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x92 strb r0, [r1] bl _08052318 .align 2, 0 _0805172C: .4byte gUnknown_826CEB8 _08051730: ldr r0, _08051774 @ =gUnknown_826CE44 movs r1, 0x80 movs r2, 0x50 movs r3, 0x3 bl CreateSprite ldr r4, _08051778 @ =gUnknown_2031DAC ldr r1, [r4] adds r1, 0x90 strb r0, [r1] ldr r0, _0805177C @ =gUnknown_826CE84 movs r1, 0x80 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] ldr r0, [r4] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08051780 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim ldr r1, [r4] bl _080522AC .align 2, 0 _08051774: .4byte gUnknown_826CE44 _08051778: .4byte gUnknown_2031DAC _0805177C: .4byte gUnknown_826CE84 _08051780: .4byte gSprites _08051784: ldr r2, [r7] adds r1, r2, 0 adds r1, 0xE0 ldrh r0, [r1] subs r0, 0x2 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA6 bne _0805179E subs r1, 0x4C movs r0, 0xC8 strh r0, [r1] _0805179E: ldr r1, _080517AC @ =0x00001241 movs r0, 0 bl SetGpuReg bl _08052318 .align 2, 0 _080517AC: .4byte 0x00001241 _080517B0: ldr r2, _08051804 @ =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x2 strh r1, [r0, 0x22] adds r0, r4, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x2 strh r1, [r0, 0x22] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x22 ldrsh r1, [r0, r3] movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _080517F6 bl _08052318 _080517F6: adds r1, r4, 0 adds r1, 0x94 movs r0, 0x1D strh r0, [r1] bl _08052318 .align 2, 0 _08051804: .4byte gSprites _08051808: 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, _08051828 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x1E strh r1, [r0] bl _08052318 .align 2, 0 _08051828: .4byte gUnknown_2031DAC _0805182C: ldr r0, _08051870 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805183C bl _08052318 _0805183C: ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08051874 @ =gSprites adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite movs r0, 0x2 bl sub_8050968 ldr r1, [r7] bl _080522AC .align 2, 0 _08051870: .4byte gPaletteFade _08051874: .4byte gSprites _08051878: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r5, _080518BC @ =gUnknown_826CE84 adds r0, r5, 0 movs r1, 0x6F movs r2, 0xAA movs r3, 0 bl CreateSprite ldr r4, _080518C0 @ =gUnknown_2031DAC ldr r1, [r4] adds r1, 0x90 strb r0, [r1] movs r2, 0xA negs r2, r2 adds r0, r5, 0 movs r1, 0x81 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] ldr r1, [r4] bl _080522AC .align 2, 0 _080518BC: .4byte gUnknown_826CE84 _080518C0: .4byte gUnknown_2031DAC _080518C4: ldr r0, _08051914 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080518E2 movs r0, 0x28 bl PlaySE ldr r0, _08051918 @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080518E2: ldr r3, _0805191C @ =gSprites ldr r0, _08051918 @ =gUnknown_2031DAC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r2, 0x91 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] bl _08052318 .align 2, 0 _08051914: .4byte gPaletteFade _08051918: .4byte gUnknown_2031DAC _0805191C: .4byte gSprites _08051920: ldr r5, _0805197C @ =gSprites ldr r4, [r7] adds r2, r4, 0 adds r2, 0x90 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r6, r4, 0 adds r6, 0x91 ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 movs r0, 0x26 ldrsh r1, [r3, r0] movs r0, 0x5A negs r0, r0 cmp r1, r0 ble _08051966 bl _08052318 _08051966: movs r2, 0x1 strh r2, [r3, 0x30] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x30] adds r1, r4, 0 bl _080522AC .align 2, 0 _0805197C: .4byte gSprites _08051980: ldr r2, _08051990 @ =0x0000ffff movs r0, 0x1 movs r1, 0x10 bl BlendPalettes bl _080522A8 .align 2, 0 _08051990: .4byte 0x0000ffff _08051994: ldr r2, _080519A4 @ =0x0000ffff movs r0, 0x1 movs r1, 0 bl BlendPalettes bl _080522A8 .align 2, 0 _080519A4: .4byte 0x0000ffff _080519A8: ldr r2, _080519B8 @ =0x0000ffff movs r0, 0x1 movs r1, 0x10 bl BlendPalettes bl _080522A8 .align 2, 0 _080519B8: .4byte 0x0000ffff _080519BC: ldr r5, _08051A28 @ =gUnknown_2031DAC ldr r0, [r5] adds r0, 0xF0 ldrh r0, [r0] bl IsPokeSpriteNotFlipped lsls r0, 24 cmp r0, 0 bne _08051A34 ldr r4, _08051A2C @ =gSprites ldr r2, [r5] adds r2, 0x8E ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x10 adds r0, r1 ldr r1, _08051A30 @ =gUnknown_826CF88 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim b _08051A4A .align 2, 0 _08051A28: .4byte gUnknown_2031DAC _08051A2C: .4byte gSprites _08051A30: .4byte gUnknown_826CF88 _08051A34: ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08051AD8 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAffineAnim _08051A4A: ldr r5, _08051ADC @ =gUnknown_2031DAC ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08051AD8 @ =gSprites adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim ldr r2, [r5] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x3C strh r1, [r0, 0x20] adds r2, 0x8F ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xB4 strh r1, [r0, 0x20] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xC0 strh r1, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08051AE0 @ =0x0000ffe0 strh r1, [r0, 0x22] ldrb r0, [r3] 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] ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] 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] ldr r1, [r5] bl _080522AC .align 2, 0 _08051AD8: .4byte gSprites _08051ADC: .4byte gUnknown_2031DAC _08051AE0: .4byte 0x0000ffe0 _08051AE4: ldr r4, _08051BAC @ =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] subs r1, 0x3 movs r5, 0 strh r1, [r0, 0x26] adds r2, 0x8F ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x26] adds r0, 0xA3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _08051B2C movs r0, 0x27 bl PlaySE _08051B2C: ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0x26 ldrsh r1, [r0, r6] movs r0, 0xDE negs r0, r0 cmp r1, r0 blt _08051B4C bl _08052318 _08051B4C: adds r0, r2, 0 adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x30] adds r0, r2, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x30] adds r1, r2, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r7] adds r0, 0x8F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r2, _08051BB0 @ =0x0000ffff movs r0, 0x1 movs r1, 0 bl BlendPalettes b _08052318 .align 2, 0 _08051BAC: .4byte gSprites _08051BB0: .4byte 0x0000ffff _08051BB4: ldr r4, _08051C38 @ =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r2, 0x91 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0x26 ldrsh r1, [r0, r2] movs r0, 0xDE negs r0, r0 cmp r1, r0 ble _08051BF6 b _08052318 _08051BF6: 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, [r7] adds r2, r1, 0 adds r2, 0x94 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x90 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite b _08052318 .align 2, 0 _08051C38: .4byte gSprites _08051C3C: ldr r0, _08051CA4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08051C4A b _08052318 _08051C4A: ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 bl sub_8050968 ldr r0, [r7] adds r0, 0xE0 movs r1, 0xA6 strh r1, [r0] ldr r0, _08051CA8 @ =gUnknown_826CE44 movs r4, 0x14 negs r4, r4 movs r1, 0x80 adds r2, r4, 0 movs r3, 0x3 bl CreateSprite ldr r1, [r7] adds r1, 0x90 strb r0, [r1] ldr r0, _08051CAC @ =gUnknown_826CE84 movs r1, 0x80 adds r2, r4, 0 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08051CB0 @ =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim b _08052318 .align 2, 0 _08051CA4: .4byte gPaletteFade _08051CA8: .4byte gUnknown_826CE44 _08051CAC: .4byte gUnknown_826CE84 _08051CB0: .4byte gSprites _08051CB4: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 b _080522A4 _08051CC4: movs r1, 0x92 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, _08051CE0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08051CDC b _08052318 _08051CDC: b _080522A8 .align 2, 0 _08051CE0: .4byte gPaletteFade _08051CE4: ldr r2, _08051D30 @ =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] adds r0, r4, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x26 ldrsh r1, [r0, r3] movs r6, 0x22 ldrsh r0, [r0, r6] adds r1, r0 cmp r1, 0x40 beq _08051D2A b _08052318 _08051D2A: adds r1, r4, 0 b _080522AC .align 2, 0 _08051D30: .4byte gSprites _08051D34: ldr r1, [r7] adds r5, r1, 0 adds r5, 0xE0 ldrh r0, [r5] adds r0, 0x2 strh r0, [r5] lsls r0, 16 asrs r0, 16 movs r6, 0x9E lsls r6, 1 cmp r0, r6 bgt _08051D4E b _08052318 _08051D4E: strh r6, [r5] b _080522AC _08051D52: ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08051D8C @ =gSprites adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r3, [r7] adds r2, r3, 0 adds r2, 0x94 ldrh r0, [r2] adds r0, 0x1 movs r1, 0 strh r0, [r2] str r1, [r3, 0x64] b _08052318 .align 2, 0 _08051D8C: .4byte gSprites _08051D90: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0xA beq _08051D9E b _08052318 _08051D9E: b _080522AC _08051DA0: ldr r1, [r7] adds r2, r1, 0 adds r2, 0xE0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 asrs r0, 16 movs r3, 0xAE lsls r3, 1 cmp r0, r3 ble _08051DC2 strh r3, [r2] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08051DC2: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xE0 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0xA4 lsls r0, 1 cmp r1, r0 beq _08051DD6 b _08052318 _08051DD6: movs r6, 0x84 lsls r6, 1 adds r0, r2, r6 ldrb r0, [r0] cmp r0, 0 bne _08051DE4 b _08052318 _08051DE4: ldr r0, _08051E10 @ =gUnknown_826CEB8 movs r1, 0x80 movs r2, 0x41 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x92 strb r0, [r1] ldr r2, _08051E14 @ =gSprites ldr r0, [r7] adds r0, 0x92 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, _08051E18 @ =sub_804FDDC str r1, [r0] b _08052318 .align 2, 0 _08051E10: .4byte gUnknown_826CEB8 _08051E14: .4byte gSprites _08051E18: .4byte sub_804FDDC _08051E1C: ldr r0, _08051E3C @ =gUnknown_826CF30 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r2, _08051E40 @ =gUnknown_2031DAC ldr r1, [r2] adds r1, 0x91 strb r0, [r1] ldr r0, [r2] adds r0, 0x94 movs r1, 0x32 strh r1, [r0] b _08052318 .align 2, 0 _08051E3C: .4byte gUnknown_826CF30 _08051E40: .4byte gUnknown_2031DAC _08051E44: ldr r2, _08051E80 @ =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 blt _08051E62 b _08052318 _08051E62: adds r0, r1, 0 bl DestroySprite movs r0, 0x6 bl sub_8050968 ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x98 bl PlaySE b _08052318 .align 2, 0 _08051E80: .4byte gSprites _08051E84: ldr r1, [r7] adds r2, r1, 0 adds r2, 0xEA ldrh r3, [r2] ldr r0, _08051E9C @ =0x000003ff cmp r3, r0 bhi _08051EA0 adds r0, r3, 0 adds r0, 0x34 strh r0, [r2] b _08051EAE .align 2, 0 _08051E9C: .4byte 0x000003ff _08051EA0: movs r0, 0x80 lsls r0, 3 strh r0, [r2] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08051EAE: ldr r4, [r7] _08051EB0: adds r0, r4, 0 adds r0, 0xEA ldrh r1, [r0] movs r0, 0x80 lsls r0, 8 bl __divsi3 adds r4, 0xE8 strh r0, [r4] b _08052318 _08051EC4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08051EE0 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x3C strh r1, [r0] b _08052318 .align 2, 0 _08051EE0: .4byte gUnknown_2031DAC _08051EE4: ldr r4, _08051F08 @ =gPaletteFade ldrb r1, [r4, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08051EF2 b _08052318 _08051EF2: movs r0, 0x5 bl sub_8050968 movs r0, 0x7 bl sub_8050968 ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] b _080522A8 .align 2, 0 _08051F08: .4byte gPaletteFade _08051F0C: ldr r2, _08051F24 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _080522A4 .align 2, 0 _08051F24: .4byte gPaletteFade _08051F28: movs r1, 0xA2 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, _08051F44 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08051F40 b _08052318 _08051F40: b _080522A8 .align 2, 0 _08051F44: .4byte gPaletteFade _08051F48: ldr r0, _08051FDC @ =gUnknown_826CDE4 movs r2, 0x8 negs r2, r2 movs r1, 0x78 movs r3, 0 bl CreateSprite ldr r5, _08051FE0 @ =gUnknown_2031DAC ldr r1, [r5] adds r1, 0xD3 movs r6, 0 strb r0, [r1] ldr r4, _08051FE4 @ =gSprites ldr r2, [r5] adds r2, 0xD3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x4A strh r1, [r0, 0x34] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08051FE8 @ =sub_8053A0C str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 ldr r2, _08051FEC @ =0x0000ffff movs r1, 0x10 bl BlendPalettes ldr r2, [r5] adds r1, r2, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] str r6, [r2, 0x64] b _08052318 .align 2, 0 _08051FDC: .4byte gUnknown_826CDE4 _08051FE0: .4byte gUnknown_2031DAC _08051FE4: .4byte gSprites _08051FE8: .4byte sub_8053A0C _08051FEC: .4byte 0x0000ffff _08051FF0: ldr r2, _0805201C @ =gSprites ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 ldr r1, _08052020 @ =0x0000ffff str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, [r7] b _080522AC .align 2, 0 _0805201C: .4byte gSprites _08052020: .4byte 0x0000ffff _08052024: ldr r2, _08052060 @ =gSprites ldr r3, [r7] adds r0, r3, 0 adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _08052064 @ =SpriteCallbackDummy cmp r1, r0 beq _08052042 b _08052318 _08052042: adds r0, r3, 0 adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 ldr r1, _08052068 @ =gMonFrontPicTable adds r0, r1 ldr r1, _0805206C @ =gMonSpritesGfxPtr ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] bl HandleLoadSpecialPokePic ldr r1, [r7] b _080522AC .align 2, 0 _08052060: .4byte gSprites _08052064: .4byte SpriteCallbackDummy _08052068: .4byte gMonFrontPicTable _0805206C: .4byte gMonSpritesGfxPtr _08052070: ldr r4, _0805211C @ =gSprites ldr r2, [r7] adds r6, r2, 0 adds r6, 0x8F ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r5, 0 movs r1, 0x78 strh r1, [r0, 0x20] ldrb r0, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r3, _08052120 @ =gUnknown_82349CC adds r2, 0xF2 ldrh r0, [r2] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] adds r0, 0x3C strh r0, [r1, 0x22] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x24] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x26] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 bl StartSpriteAnim ldr r0, [r7] adds r0, 0x8F ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] lsrs r1, 4 movs r2, 0x2 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x14 str r2, [sp, 0x8] ldr r2, _08052124 @ =0x000fffff str r2, [sp, 0xC] movs r2, 0x78 movs r3, 0x54 bl CreatePokeballSpriteToReleaseMon ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, [r7] b _080522AC .align 2, 0 _0805211C: .4byte gSprites _08052120: .4byte gUnknown_82349CC _08052124: .4byte 0x000fffff _08052128: movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r4, _08052154 @ =gStringVar4 ldr r1, _08052158 @ =gUnknown_841E20D adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r0, _0805215C @ =gUnknown_2031DAC ldr r3, [r0] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 movs r0, 0xA7 b _0805218E .align 2, 0 _08052154: .4byte gStringVar4 _08052158: .4byte gUnknown_841E20D _0805215C: .4byte gUnknown_2031DAC _08052160: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C bhi _0805216E b _08052318 _0805216E: adds r2, r1, 0 adds r2, 0xF2 ldrh r1, [r2] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _08052184 adds r0, r1, 0 movs r1, 0 bl PlayCry1 _08052184: ldr r3, [r7] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 ldr r0, _08052194 @ =0x0000010b _0805218E: strh r0, [r1] str r2, [r3, 0x64] b _08052318 .align 2, 0 _08052194: .4byte 0x0000010b _08052198: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _080521A4 b _08052318 _080521A4: ldr r0, _080521B0 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x44 strh r1, [r0] b _08052318 .align 2, 0 _080521B0: .4byte gUnknown_2031DAC _080521B4: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0xA bne _080521C6 ldr r0, _080521F4 @ =0x00000103 bl PlayFanfare _080521C6: ldr r1, [r7] ldr r0, [r1, 0x64] cmp r0, 0xFA beq _080521D0 b _08052318 _080521D0: adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 movs r5, 0 strh r0, [r1] ldr r4, _080521F8 @ =gStringVar4 ldr r1, _080521FC @ =gUnknown_841E21E adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r0, [r7] str r5, [r0, 0x64] b _08052318 .align 2, 0 _080521F4: .4byte 0x00000103 _080521F8: .4byte gStringVar4 _080521FC: .4byte gUnknown_841E21E _08052200: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C beq _0805220E b _08052318 _0805220E: b _080522AC _08052210: bl sub_80544AC b _080522A8 _08052216: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xEE ldrb r0, [r0] cmp r0, 0 beq _08052226 movs r0, 0x1 b _0805231A _08052226: ldr r0, _08052238 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08052318 adds r1, r2, 0 b _080522AC .align 2, 0 _08052238: .4byte gMain _0805223C: ldr r0, _08052280 @ =gSpecialVar_0x8005 ldrb r0, [r0] movs r1, 0 bl sub_805080C ldr r1, _08052284 @ =gUnknown_300537C ldr r0, _08052288 @ =sub_8050948 str r0, [r1] ldr r7, _0805228C @ =gUnknown_2031DA4 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _08052290 @ =gPlayerParty adds r0, r5 movs r1, 0x1 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080522A8 ldrb r3, [r7] adds r0, r3, 0 muls r0, r6 adds r0, r5 ldr r1, _08052294 @ =gUnknown_2031DAC ldr r1, [r1] adds r1, 0x8F ldrb r2, [r1] adds r1, r4, 0 bl TradeEvolutionScene b _080522A8 .align 2, 0 _08052280: .4byte gSpecialVar_0x8005 _08052284: .4byte gUnknown_300537C _08052288: .4byte sub_8050948 _0805228C: .4byte gUnknown_2031DA4 _08052290: .4byte gPlayerParty _08052294: .4byte gUnknown_2031DAC _08052298: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _080522A4: bl BeginNormalPaletteFade _080522A8: ldr r0, _080522B8 @ =gUnknown_2031DAC ldr r1, [r0] _080522AC: adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08052318 .align 2, 0 _080522B8: .4byte gUnknown_2031DAC _080522BC: ldr r0, _08052324 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08052318 ldr r0, [r7] adds r0, 0xF4 ldrh r0, [r0] bl PlayNewMapMusic ldr r0, [r7] cmp r0, 0 beq _0805230A bl FreeAllWindowBuffers movs r0, 0x3 bl GetBgTilemapBuffer bl Free movs r0, 0x1 bl GetBgTilemapBuffer bl Free movs r0, 0 bl GetBgTilemapBuffer bl Free bl FreeMonSpritesGfx ldr r0, [r7] bl Free str r4, [r7] _0805230A: ldr r0, _08052328 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 _08052318: movs r0, 0 _0805231A: add sp, 0x10 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08052324: .4byte gPaletteFade _08052328: .4byte CB2_ReturnToField thumb_func_end sub_8050F3C thumb_func_start sub_805232C sub_805232C: @ 805232C push {r4-r7,lr} sub sp, 0x10 ldr r0, _08052350 @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0x94 ldrh r5, [r1] ldr r1, _08052354 @ =0x0000010b adds r7, r0, 0 cmp r5, r1 bls _08052344 bl _08053774 _08052344: lsls r0, r5, 2 ldr r1, _08052358 @ =_0805235C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08052350: .4byte gUnknown_2031DAC _08052354: .4byte 0x0000010b _08052358: .4byte _0805235C .align 2, 0 _0805235C: .4byte _0805278C .4byte _08052804 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08052860 .4byte _080528A8 .4byte _0805291C .4byte _08053774 .4byte _08052988 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _080529AC .4byte _080529DC .4byte _080529EE .4byte _08052A10 .4byte _08053774 .4byte _08053774 .4byte _08052B08 .4byte _08052B28 .4byte _08052B94 .4byte _08052C18 .4byte _08052C3C .4byte _08052C88 .4byte _08052CD4 .4byte _08052D30 .4byte _08052D9C .4byte _08052DB0 .4byte _08052DC4 .4byte _08052DD8 .4byte _08052F00 .4byte _08052FD0 .4byte _08053058 .4byte _080530F8 .4byte _08053108 .4byte _08053128 .4byte _08053774 .4byte _08053774 .4byte _0805324C .4byte _0805325C .4byte _0805327A .4byte _08053774 .4byte _080532A0 .4byte _080532E0 .4byte _08053320 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053340 .4byte _08053368 .4byte _08053384 .4byte _080533A4 .4byte _0805344C .4byte _08053480 .4byte _080534CC .4byte _08053584 .4byte _08053610 .4byte _0805365C .4byte _0805366C .4byte _08053672 .4byte _08053698 .4byte _080536F4 .4byte _08053718 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08052A58 .4byte _08052A8C .4byte _08052AE0 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053180 .4byte _080531E8 .4byte _08053224 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _080535BC .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08052BC0 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _08053774 .4byte _080535F4 _0805278C: ldr r3, _080527F8 @ =gSprites ldr r0, [r7] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r4, [r7] adds r2, r4, 0 adds r2, 0x8E ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, _080527FC @ =0x0000ff4c strh r1, [r0, 0x24] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08052800 @ =gUnknown_82349CC adds r0, r4, 0 adds r0, 0xF0 ldrh r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] strh r0, [r1, 0x26] adds r1, r4, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] bl GetCurrentMapMusic ldr r1, [r7] adds r1, 0xF4 strh r0, [r1] movs r0, 0x84 lsls r0, 1 bl PlayNewMapMusic bl _08053774 .align 2, 0 _080527F8: .4byte gSprites _080527FC: .4byte 0x0000ff4c _08052800: .4byte gUnknown_82349CC _08052804: ldr r5, [r7] adds r6, r5, 0 adds r6, 0xE6 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 ble _08052838 ldr r2, _08052834 @ =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] adds r1, 0x3 strh r1, [r0, 0x24] ldrh r0, [r6] subs r0, 0x3 strh r0, [r6] bl _08053774 .align 2, 0 _08052834: .4byte gSprites _08052838: ldr r2, _0805285C @ =gSprites adds r0, r5, 0 adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0 strh r1, [r0, 0x24] strh r1, [r6] adds r1, r5, 0 adds r1, 0x94 movs r0, 0xA strh r0, [r1] bl _08053774 .align 2, 0 _0805285C: .4byte gSprites _08052860: ldr r4, _0805289C @ =gStringVar4 ldr r1, _080528A0 @ =gUnknown_841E1E9 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r4, _080528A4 @ =gUnknown_2031DAC ldr r0, [r4] adds r2, r0, 0 adds r2, 0xF0 ldrh r1, [r2] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _0805288E adds r0, r1, 0 movs r1, 0 bl PlayCry1 _0805288E: ldr r3, [r4] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 movs r0, 0xB bl _080535EA .align 2, 0 _0805289C: .4byte gStringVar4 _080528A0: .4byte gUnknown_841E1E9 _080528A4: .4byte gUnknown_2031DAC _080528A8: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x50 beq _080528B8 bl _08053774 _080528B8: adds r0, r1, 0 adds r0, 0x8E ldrb r0, [r0] ldr r2, _0805290C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 movs r2, 0x2 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x14 str r2, [sp, 0x8] ldr r2, _08052910 @ =0x000fffff str r2, [sp, 0xC] movs r2, 0x78 movs r3, 0x20 bl sub_804BB98 ldr r1, [r7] adds r1, 0xD2 strb r0, [r1] ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r4, _08052914 @ =gStringVar4 ldr r1, _08052918 @ =gUnknown_841E200 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 bl _08053774 .align 2, 0 _0805290C: .4byte gSprites _08052910: .4byte 0x000fffff _08052914: .4byte gStringVar4 _08052918: .4byte gUnknown_841E200 _0805291C: ldr r5, _08052978 @ =gSprites ldr r0, [r7] adds r0, 0xD2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r5, 0 adds r4, 0x1C adds r0, r4 ldr r1, [r0] ldr r0, _0805297C @ =SpriteCallbackDummy cmp r1, r0 beq _0805293C bl _08053774 _0805293C: ldr r0, _08052980 @ =gUnknown_826CDE4 movs r1, 0x78 movs r2, 0x20 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0xD3 strb r0, [r1] ldr r2, [r7] adds r0, r2, 0 adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08052984 @ =sub_8053938 str r1, [r0] adds r2, 0xD2 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite ldr r1, [r7] bl _08053708 .align 2, 0 _08052978: .4byte gSprites _0805297C: .4byte SpriteCallbackDummy _08052980: .4byte gUnknown_826CDE4 _08052984: .4byte sub_8053938 _08052988: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _080529A8 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x14 strh r1, [r0] bl _08053774 .align 2, 0 _080529A8: .4byte gUnknown_2031DAC _080529AC: ldr r0, _080529D8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080529BC bl _08053774 _080529BC: movs r0, 0x4 bl sub_8050968 movs r0, 0 movs r1, 0xFF bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram bl _08053704 .align 2, 0 _080529D8: .4byte gPaletteFade _080529DC: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 bl _08053700 _080529EE: ldr r0, _08052A0C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080529FE bl _08053774 _080529FE: ldr r0, [r7] adds r0, 0x94 movs r1, 0x17 strh r1, [r0] bl _08053774 .align 2, 0 _08052A0C: .4byte gPaletteFade _08052A10: ldr r4, _08052A2C @ =gUnknown_2031DAC ldr r0, [r4] adds r2, r0, 0 adds r2, 0xEA ldrh r1, [r2] movs r0, 0x80 lsls r0, 1 cmp r1, r0 bls _08052A30 adds r0, r1, 0 subs r0, 0x34 strh r0, [r2] b _08052A4A .align 2, 0 _08052A2C: .4byte gUnknown_2031DAC _08052A30: movs r0, 0x1 bl sub_8050968 ldr r3, [r4] adds r1, r3, 0 adds r1, 0xEA movs r2, 0 movs r0, 0x80 strh r0, [r1] subs r1, 0x56 movs r0, 0x7C strh r0, [r1] str r2, [r3, 0x64] _08052A4A: ldr r0, _08052A54 @ =gUnknown_2031DAC ldr r4, [r0] bl _0805330C .align 2, 0 _08052A54: .4byte gUnknown_2031DAC _08052A58: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x14 bhi _08052A68 bl _08053774 _08052A68: movs r0, 0x3 bl sub_8050968 ldr r0, _08052A88 @ =gUnknown_826CF48 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] ldr r1, [r7] bl _08053708 .align 2, 0 _08052A88: .4byte gUnknown_826CF48 _08052A8C: ldr r2, _08052AD4 @ =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 blt _08052AAC bl _08053774 _08052AAC: adds r0, r1, 0 bl DestroySprite ldr r1, _08052AD8 @ =0x00000452 movs r0, 0x50 bl SetGpuReg movs r1, 0x82 lsls r1, 3 movs r0, 0x52 bl SetGpuReg ldr r0, _08052ADC @ =c3_08054588 movs r1, 0x5 bl CreateTask ldr r1, [r7] bl _08053708 .align 2, 0 _08052AD4: .4byte gSprites _08052AD8: .4byte 0x00000452 _08052ADC: .4byte c3_08054588 _08052AE0: ldr r0, _08052B00 @ =c3_08054588 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _08052AF0 bl _08053774 _08052AF0: ldr r0, _08052B04 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x1A strh r1, [r0] bl _08053774 .align 2, 0 _08052B00: .4byte c3_08054588 _08052B04: .4byte gUnknown_2031DAC _08052B08: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xE0 ldrh r1, [r0] subs r1, 0x1 strh r1, [r0] lsls r1, 16 movs r0, 0x9E lsls r0, 17 cmp r1, r0 beq _08052B22 bl _08053774 _08052B22: adds r1, r2, 0 bl _08053708 _08052B28: ldr r0, _08052B80 @ =gUnknown_826CE44 movs r1, 0x78 movs r2, 0x50 movs r3, 0x3 bl CreateSprite ldr r4, _08052B84 @ =gUnknown_2031DAC ldr r1, [r4] adds r1, 0x90 strb r0, [r1] ldr r5, _08052B88 @ =gSprites ldr r0, [r4] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08052B8C @ =sub_804FD48 str r1, [r0] ldr r0, _08052B90 @ =gUnknown_826CE84 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] ldr r0, [r4] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim ldr r1, [r4] bl _08053708 .align 2, 0 _08052B80: .4byte gUnknown_826CE44 _08052B84: .4byte gUnknown_2031DAC _08052B88: .4byte gSprites _08052B8C: .4byte sub_804FD48 _08052B90: .4byte gUnknown_826CE84 _08052B94: ldr r2, [r7] adds r1, r2, 0 adds r1, 0xE0 ldrh r0, [r1] subs r0, 0x3 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA6 bne _08052BAE subs r1, 0x4C movs r0, 0xC8 strh r0, [r1] _08052BAE: ldr r1, _08052BBC @ =0x00001241 movs r0, 0 bl SetGpuReg bl _08053774 .align 2, 0 _08052BBC: .4byte 0x00001241 _08052BC0: ldr r2, _08052C14 @ =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x2 strh r1, [r0, 0x22] adds r0, r4, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x2 strh r1, [r0, 0x22] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r2, 0x22 ldrsh r1, [r0, r2] movs r0, 0x8 negs r0, r0 cmp r1, r0 blt _08052C06 bl _08053774 _08052C06: adds r1, r4, 0 adds r1, 0x94 movs r0, 0x1D strh r0, [r1] bl _08053774 .align 2, 0 _08052C14: .4byte gSprites _08052C18: 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, _08052C38 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x1E strh r1, [r0] bl _08053774 .align 2, 0 _08052C38: .4byte gUnknown_2031DAC _08052C3C: ldr r0, _08052C80 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08052C4C bl _08053774 _08052C4C: ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08052C84 @ =gSprites adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite movs r0, 0x2 bl sub_8050968 ldr r1, [r7] bl _08053708 .align 2, 0 _08052C80: .4byte gPaletteFade _08052C84: .4byte gSprites _08052C88: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r5, _08052CCC @ =gUnknown_826CE84 adds r0, r5, 0 movs r1, 0x6F movs r2, 0xAA movs r3, 0 bl CreateSprite ldr r4, _08052CD0 @ =gUnknown_2031DAC ldr r1, [r4] adds r1, 0x90 strb r0, [r1] movs r2, 0xA negs r2, r2 adds r0, r5, 0 movs r1, 0x81 movs r3, 0 bl CreateSprite ldr r1, [r4] adds r1, 0x91 strb r0, [r1] ldr r1, [r4] bl _08053708 .align 2, 0 _08052CCC: .4byte gUnknown_826CE84 _08052CD0: .4byte gUnknown_2031DAC _08052CD4: ldr r0, _08052D24 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08052CF2 movs r0, 0x28 bl PlaySE ldr r0, _08052D28 @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08052CF2: ldr r3, _08052D2C @ =gSprites ldr r0, _08052D28 @ =gUnknown_2031DAC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r2, 0x91 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] bl _08053774 .align 2, 0 _08052D24: .4byte gPaletteFade _08052D28: .4byte gUnknown_2031DAC _08052D2C: .4byte gSprites _08052D30: ldr r5, _08052D94 @ =gSprites ldr r4, [r7] adds r2, r4, 0 adds r2, 0x90 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r6, r4, 0 adds r6, 0x91 ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 movs r0, 0x26 ldrsh r1, [r3, r0] movs r0, 0x5A negs r0, r0 cmp r1, r0 ble _08052D76 bl _08053774 _08052D76: movs r2, 0x1 strh r2, [r3, 0x30] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x30] adds r1, r4, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldr r0, _08052D98 @ =c3_0805465C b _08052FBE .align 2, 0 _08052D94: .4byte gSprites _08052D98: .4byte c3_0805465C _08052D9C: ldr r2, _08052DAC @ =0x0000ffff movs r0, 0x8 movs r1, 0x10 bl BlendPalettes bl _08053704 .align 2, 0 _08052DAC: .4byte 0x0000ffff _08052DB0: ldr r2, _08052DC0 @ =0x0000ffff movs r0, 0x8 movs r1, 0x10 bl BlendPalettes bl _08053704 .align 2, 0 _08052DC0: .4byte 0x0000ffff _08052DC4: ldr r2, _08052DD4 @ =0x0000ffff movs r0, 0x8 movs r1, 0x10 bl BlendPalettes bl _08053704 .align 2, 0 _08052DD4: .4byte 0x0000ffff _08052DD8: ldr r5, _08052E44 @ =gUnknown_2031DAC ldr r0, [r5] adds r0, 0xF0 ldrh r0, [r0] bl IsPokeSpriteNotFlipped lsls r0, 24 cmp r0, 0 bne _08052E50 ldr r4, _08052E48 @ =gSprites ldr r2, [r5] adds r2, 0x8E ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x10 adds r0, r1 ldr r1, _08052E4C @ =gUnknown_826CF88 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r2, 0x3 orrs r1, r2 strb r1, [r0, 0x1] ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 movs r2, 0x3 movs r3, 0x3 bl CalcCenterToCornerVec ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim b _08052E66 .align 2, 0 _08052E44: .4byte gUnknown_2031DAC _08052E48: .4byte gSprites _08052E4C: .4byte gUnknown_826CF88 _08052E50: ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _08052EF4 @ =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAffineAnim _08052E66: ldr r5, _08052EF8 @ =gUnknown_2031DAC ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08052EF4 @ =gSprites adds r0, r4 movs r1, 0 bl StartSpriteAffineAnim ldr r2, [r5] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x28 strh r1, [r0, 0x20] adds r2, 0x8F ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xC8 strh r1, [r0, 0x20] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xC0 strh r1, [r0, 0x22] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, _08052EFC @ =0x0000ffe0 strh r1, [r0, 0x22] ldrb r0, [r3] 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] ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] 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] ldr r1, [r5] bl _08053708 .align 2, 0 _08052EF4: .4byte gSprites _08052EF8: .4byte gUnknown_2031DAC _08052EFC: .4byte 0x0000ffe0 _08052F00: ldr r4, _08052FC8 @ =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] subs r1, 0x3 movs r5, 0 strh r1, [r0, 0x26] adds r2, 0x8F ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x26] adds r0, 0xA3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 bhi _08052F48 movs r0, 0x27 bl PlaySE _08052F48: ldr r2, [r7] adds r3, r2, 0 adds r3, 0x8E ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r6, 0x26 ldrsh r1, [r0, r6] movs r0, 0xDE negs r0, r0 cmp r1, r0 blt _08052F68 bl _08053774 _08052F68: adds r0, r2, 0 adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x30] adds r0, r2, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x30] adds r1, r2, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r7] adds r0, 0x8F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, _08052FCC @ =sub_8054734 _08052FBE: movs r1, 0x5 bl CreateTask bl _08053774 .align 2, 0 _08052FC8: .4byte gSprites _08052FCC: .4byte sub_8054734 _08052FD0: ldr r4, _08053054 @ =gSprites ldr r2, [r7] adds r3, r2, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] subs r1, 0x3 strh r1, [r0, 0x26] adds r2, 0x91 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r1, [r0, 0x26] adds r1, 0x3 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r2, 0x26 ldrsh r1, [r0, r2] movs r0, 0xDE negs r0, r0 cmp r1, r0 ble _08053012 b _08053774 _08053012: 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, [r7] adds r2, r1, 0 adds r2, 0x94 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x90 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite b _08053774 .align 2, 0 _08053054: .4byte gSprites _08053058: ldr r0, _080530E4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08053066 b _08053774 _08053066: ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x1 bl sub_8050968 ldr r0, [r7] adds r0, 0xE0 movs r1, 0xA6 strh r1, [r0] movs r0, 0x3 bl sub_8050968 ldr r0, [r7] adds r0, 0xE4 movs r1, 0xCE lsls r1, 1 strh r1, [r0] ldr r0, _080530E8 @ =gUnknown_826CE44 movs r4, 0x14 negs r4, r4 movs r1, 0x78 adds r2, r4, 0 movs r3, 0x3 bl CreateSprite ldr r1, [r7] adds r1, 0x90 strb r0, [r1] ldr r5, _080530EC @ =gSprites ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, _080530F0 @ =sub_804FD48 str r1, [r0] ldr r0, _080530F4 @ =gUnknown_826CE84 movs r1, 0x78 adds r2, r4, 0 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r1, 0x91 strb r0, [r1] ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x1 bl StartSpriteAnim b _08053774 .align 2, 0 _080530E4: .4byte gPaletteFade _080530E8: .4byte gUnknown_826CE44 _080530EC: .4byte gSprites _080530F0: .4byte sub_804FD48 _080530F4: .4byte gUnknown_826CE84 _080530F8: movs r1, 0x1 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 b _08053700 _08053108: movs r1, 0x92 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, _08053124 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08053120 b _08053774 _08053120: b _08053704 .align 2, 0 _08053124: .4byte gPaletteFade _08053128: ldr r2, _0805317C @ =gSprites ldr r4, [r7] adds r3, r4, 0 adds r3, 0x90 ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x4 strh r1, [r0, 0x26] adds r0, r4, 0 adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x4 strh r1, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r6, 0x26 ldrsh r1, [r0, r6] movs r2, 0x22 ldrsh r0, [r0, r2] adds r1, r0 cmp r1, 0x40 beq _0805316E b _08053774 _0805316E: adds r0, r4, 0 adds r0, 0x94 movs r1, 0x90 strh r1, [r0] movs r0, 0 str r0, [r4, 0x64] b _08053774 .align 2, 0 _0805317C: .4byte gSprites _08053180: movs r1, 0xB2 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r4, _080531DC @ =gUnknown_2031DAC ldr r2, [r4] adds r1, r2, 0 adds r1, 0xE0 ldrh r0, [r1] adds r0, 0x3 strh r0, [r1] adds r1, 0x4 ldrh r0, [r1] adds r0, 0x3 strh r0, [r1] ldr r0, [r2, 0x64] adds r0, 0x1 str r0, [r2, 0x64] cmp r0, 0xA bne _080531C4 ldr r0, _080531E0 @ =c3_08054588 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _080531E4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0xC] _080531C4: ldr r1, [r4] adds r3, r1, 0 adds r3, 0xE0 movs r6, 0 ldrsh r0, [r3, r6] movs r2, 0x9E lsls r2, 1 cmp r0, r2 bgt _080531D8 b _08053774 _080531D8: strh r2, [r3] b _08053708 .align 2, 0 _080531DC: .4byte gUnknown_2031DAC _080531E0: .4byte c3_08054588 _080531E4: .4byte gTasks _080531E8: ldr r0, [r7] adds r0, 0x90 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08053220 @ =gSprites adds r0, r4 bl DestroySprite ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r3, [r7] adds r2, r3, 0 adds r2, 0x94 ldrh r0, [r2] adds r0, 0x1 movs r1, 0 strh r0, [r2] str r1, [r3, 0x64] b _08053774 .align 2, 0 _08053220: .4byte gSprites _08053224: ldr r0, _08053244 @ =c3_08054588 bl FuncIsActiveTask lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _08053234 b _08053774 _08053234: ldr r0, _08053248 @ =gUnknown_2031DAC ldr r2, [r0] adds r1, r2, 0 adds r1, 0x94 movs r0, 0x2E strh r0, [r1] str r3, [r2, 0x64] b _08053774 .align 2, 0 _08053244: .4byte c3_08054588 _08053248: .4byte gUnknown_2031DAC _0805324C: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0xA beq _0805325A b _08053774 _0805325A: b _08053708 _0805325C: ldr r1, [r7] adds r5, r1, 0 adds r5, 0xE0 ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] lsls r0, 16 asrs r0, 16 movs r6, 0xAE lsls r6, 1 cmp r0, r6 bgt _08053276 b _08053774 _08053276: strh r6, [r5] b _08053708 _0805327A: ldr r0, _08053298 @ =gUnknown_826CF30 movs r1, 0x78 movs r2, 0x50 movs r3, 0 bl CreateSprite ldr r2, _0805329C @ =gUnknown_2031DAC ldr r1, [r2] adds r1, 0x91 strb r0, [r1] ldr r0, [r2] adds r0, 0x94 movs r1, 0x32 strh r1, [r0] b _08053774 .align 2, 0 _08053298: .4byte gUnknown_826CF30 _0805329C: .4byte gUnknown_2031DAC _080532A0: ldr r2, _080532DC @ =gSprites ldr r0, [r7] adds r0, 0x91 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 27 cmp r0, 0 blt _080532BE b _08053774 _080532BE: adds r0, r1, 0 bl DestroySprite movs r0, 0x6 bl sub_8050968 ldr r1, [r7] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] movs r0, 0x98 bl PlaySE b _08053774 .align 2, 0 _080532DC: .4byte gSprites _080532E0: ldr r1, [r7] adds r2, r1, 0 adds r2, 0xEA ldrh r3, [r2] ldr r0, _080532F8 @ =0x000003ff cmp r3, r0 bhi _080532FC adds r0, r3, 0 adds r0, 0x34 strh r0, [r2] b _0805330A .align 2, 0 _080532F8: .4byte 0x000003ff _080532FC: movs r0, 0x80 lsls r0, 3 strh r0, [r2] adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _0805330A: ldr r4, [r7] _0805330C: adds r0, r4, 0 adds r0, 0xEA ldrh r1, [r0] movs r0, 0x80 lsls r0, 8 bl __divsi3 adds r4, 0xE8 strh r0, [r4] b _08053774 _08053320: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0805333C @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x3C strh r1, [r0] b _08053774 .align 2, 0 _0805333C: .4byte gUnknown_2031DAC _08053340: ldr r4, _08053364 @ =gPaletteFade ldrb r1, [r4, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805334E b _08053774 _0805334E: movs r0, 0x5 bl sub_8050968 movs r0, 0x7 bl sub_8050968 ldrb r0, [r4, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r4, 0x8] b _08053704 .align 2, 0 _08053364: .4byte gPaletteFade _08053368: ldr r2, _08053380 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 b _08053700 .align 2, 0 _08053380: .4byte gPaletteFade _08053384: movs r1, 0xA2 lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, _080533A0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0805339C b _08053774 _0805339C: b _08053704 .align 2, 0 _080533A0: .4byte gPaletteFade _080533A4: ldr r0, _08053438 @ =gUnknown_826CDE4 movs r2, 0x8 negs r2, r2 movs r1, 0x78 movs r3, 0 bl CreateSprite ldr r5, _0805343C @ =gUnknown_2031DAC ldr r1, [r5] adds r1, 0xD3 movs r6, 0 strb r0, [r1] ldr r4, _08053440 @ =gSprites ldr r2, [r5] adds r2, 0xD3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x4A strh r1, [r0, 0x34] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, _08053444 @ =sub_8053A0C str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, [r5] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 ldr r2, _08053448 @ =0x0000ffff movs r1, 0x10 bl BlendPalettes ldr r2, [r5] adds r1, r2, 0 adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] str r6, [r2, 0x64] b _08053774 .align 2, 0 _08053438: .4byte gUnknown_826CDE4 _0805343C: .4byte gUnknown_2031DAC _08053440: .4byte gSprites _08053444: .4byte sub_8053A0C _08053448: .4byte 0x0000ffff _0805344C: ldr r2, _08053478 @ =gSprites ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 ldr r1, _0805347C @ =0x0000ffff str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, [r7] b _08053708 .align 2, 0 _08053478: .4byte gSprites _0805347C: .4byte 0x0000ffff _08053480: ldr r2, _080534BC @ =gSprites ldr r3, [r7] adds r0, r3, 0 adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, _080534C0 @ =SpriteCallbackDummy cmp r1, r0 beq _0805349E b _08053774 _0805349E: adds r0, r3, 0 adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 ldr r1, _080534C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080534C8 @ =gMonSpritesGfxPtr ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] bl HandleLoadSpecialPokePic ldr r1, [r7] b _08053708 .align 2, 0 _080534BC: .4byte gSprites _080534C0: .4byte SpriteCallbackDummy _080534C4: .4byte gMonFrontPicTable _080534C8: .4byte gMonSpritesGfxPtr _080534CC: ldr r4, _08053578 @ =gSprites ldr r2, [r7] adds r6, r2, 0 adds r6, 0x8F ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r5, 0 movs r1, 0x78 strh r1, [r0, 0x20] ldrb r0, [r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r3, _0805357C @ =gUnknown_82349CC adds r2, 0xF2 ldrh r0, [r2] lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x1] adds r0, 0x3C strh r0, [r1, 0x22] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x24] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r5, [r0, 0x26] ldrb r1, [r6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0 bl StartSpriteAnim ldr r0, [r7] adds r0, 0x8F ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r1, [r1, 0x5] lsrs r1, 4 movs r2, 0x2 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0x14 str r2, [sp, 0x8] ldr r2, _08053580 @ =0x000fffff str r2, [sp, 0xC] movs r2, 0x78 movs r3, 0x54 bl CreatePokeballSpriteToReleaseMon ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r1, [r7] b _08053708 .align 2, 0 _08053578: .4byte gSprites _0805357C: .4byte gUnknown_82349CC _08053580: .4byte 0x000fffff _08053584: movs r1, 0xAA lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r4, _080535B0 @ =gStringVar4 ldr r1, _080535B4 @ =gUnknown_841E20D adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r0, _080535B8 @ =gUnknown_2031DAC ldr r3, [r0] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 movs r0, 0xA7 b _080535EA .align 2, 0 _080535B0: .4byte gStringVar4 _080535B4: .4byte gUnknown_841E20D _080535B8: .4byte gUnknown_2031DAC _080535BC: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C bhi _080535CA b _08053774 _080535CA: adds r2, r1, 0 adds r2, 0xF2 ldrh r1, [r2] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _080535E0 adds r0, r1, 0 movs r1, 0 bl PlayCry1 _080535E0: ldr r3, [r7] adds r1, r3, 0 adds r1, 0x94 movs r2, 0 ldr r0, _080535F0 @ =0x0000010b _080535EA: strh r0, [r1] str r2, [r3, 0x64] b _08053774 .align 2, 0 _080535F0: .4byte 0x0000010b _080535F4: bl IsCryFinished lsls r0, 24 cmp r0, 0 bne _08053600 b _08053774 _08053600: ldr r0, _0805360C @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0x44 strh r1, [r0] b _08053774 .align 2, 0 _0805360C: .4byte gUnknown_2031DAC _08053610: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0xA bne _08053622 ldr r0, _08053650 @ =0x00000103 bl PlayFanfare _08053622: ldr r1, [r7] ldr r0, [r1, 0x64] cmp r0, 0xFA beq _0805362C b _08053774 _0805362C: adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 movs r5, 0 strh r0, [r1] ldr r4, _08053654 @ =gStringVar4 ldr r1, _08053658 @ =gUnknown_841E21E adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 ldr r0, [r7] str r5, [r0, 0x64] b _08053774 .align 2, 0 _08053650: .4byte 0x00000103 _08053654: .4byte gStringVar4 _08053658: .4byte gUnknown_841E21E _0805365C: ldr r1, [r7] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C beq _0805366A b _08053774 _0805366A: b _08053708 _0805366C: bl sub_80544AC b _08053704 _08053672: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xEE ldrb r0, [r0] cmp r0, 0 beq _08053682 movs r0, 0x1 b _08053776 _08053682: ldr r0, _08053694 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08053774 adds r1, r2, 0 b _08053708 .align 2, 0 _08053694: .4byte gMain _08053698: ldr r0, _080536DC @ =gSpecialVar_0x8005 ldrb r0, [r0] movs r1, 0 bl sub_805080C ldr r1, _080536E0 @ =gUnknown_300537C ldr r0, _080536E4 @ =sub_8050948 str r0, [r1] ldr r7, _080536E8 @ =gUnknown_2031DA4 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _080536EC @ =gPlayerParty adds r0, r5 movs r1, 0x1 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08053704 ldrb r3, [r7] adds r0, r3, 0 muls r0, r6 adds r0, r5 ldr r1, _080536F0 @ =gUnknown_2031DAC ldr r1, [r1] adds r1, 0x8F ldrb r2, [r1] adds r1, r4, 0 bl TradeEvolutionScene b _08053704 .align 2, 0 _080536DC: .4byte gSpecialVar_0x8005 _080536E0: .4byte gUnknown_300537C _080536E4: .4byte sub_8050948 _080536E8: .4byte gUnknown_2031DA4 _080536EC: .4byte gPlayerParty _080536F0: .4byte gUnknown_2031DAC _080536F4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 _08053700: bl BeginNormalPaletteFade _08053704: ldr r0, _08053714 @ =gUnknown_2031DAC ldr r1, [r0] _08053708: adds r1, 0x94 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _08053774 .align 2, 0 _08053714: .4byte gUnknown_2031DAC _08053718: ldr r0, _08053780 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08053774 ldr r0, [r7] adds r0, 0xF4 ldrh r0, [r0] bl PlayNewMapMusic ldr r0, [r7] cmp r0, 0 beq _08053766 bl FreeAllWindowBuffers movs r0, 0x3 bl GetBgTilemapBuffer bl Free movs r0, 0x1 bl GetBgTilemapBuffer bl Free movs r0, 0 bl GetBgTilemapBuffer bl Free bl FreeMonSpritesGfx ldr r0, [r7] bl Free str r4, [r7] _08053766: ldr r0, _08053784 @ =CB2_ReturnToField bl SetMainCallback2 bl sub_8053AE4 bl sub_812B484 _08053774: movs r0, 0 _08053776: add sp, 0x10 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08053780: .4byte gPaletteFade _08053784: .4byte CB2_ReturnToField thumb_func_end sub_805232C thumb_func_start sub_8053788 sub_8053788: @ 8053788 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080537A4 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0 beq _080537A8 cmp r0, 0x4 beq _080537B8 b _08053814 .align 2, 0 _080537A4: .4byte gMain _080537A8: movs r0, 0x4 strb r0, [r1] ldr r1, _080537B4 @ =gSoftResetDisabled movs r0, 0x1 b _08053812 .align 2, 0 _080537B4: .4byte gSoftResetDisabled _080537B8: ldr r0, _080537F4 @ =gUnknown_300537C ldr r1, _080537F8 @ =sub_8053E8C mov r8, r1 str r1, [r0] ldr r7, _080537FC @ =gUnknown_2031DA4 ldrb r0, [r7] movs r6, 0x64 muls r0, r6 ldr r5, _08053800 @ =gPlayerParty adds r0, r5 movs r1, 0x1 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08053808 ldrb r3, [r7] adds r0, r3, 0 muls r0, r6 adds r0, r5 ldr r1, _08053804 @ =gUnknown_2031DAC ldr r1, [r1] adds r1, 0x8F ldrb r2, [r1] adds r1, r4, 0 bl TradeEvolutionScene b _0805380E .align 2, 0 _080537F4: .4byte gUnknown_300537C _080537F8: .4byte sub_8053E8C _080537FC: .4byte gUnknown_2031DA4 _08053800: .4byte gPlayerParty _08053804: .4byte gUnknown_2031DAC _08053808: mov r0, r8 bl SetMainCallback2 _0805380E: ldr r1, _08053838 @ =gUnknown_2031DA4 movs r0, 0xFF _08053812: strb r0, [r1] _08053814: bl HasLinkErrorOccurred lsls r0, 24 cmp r0, 0 bne _08053822 bl RunTasks _08053822: bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053838: .4byte gUnknown_2031DA4 thumb_func_end sub_8053788 thumb_func_start sub_805383C sub_805383C: @ 805383C push {r4-r6,lr} bl sub_804FFC4 bl GetBlockReceivedStatus lsls r0, 24 lsrs r5, r0, 24 movs r6, 0x1 adds r0, r5, 0 ands r0, r6 cmp r0, 0 beq _0805387A ldr r4, _080538A8 @ =gBlockRecvBuffer ldrh r1, [r4] ldr r0, _080538AC @ =0x0000dcba cmp r1, r0 bne _08053864 ldr r0, _080538B0 @ =sub_8053788 bl SetMainCallback2 _08053864: ldrh r1, [r4] ldr r0, _080538B4 @ =0x0000abcd cmp r1, r0 bne _08053874 ldr r0, _080538B8 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x72 strb r6, [r0] _08053874: movs r0, 0 bl ResetBlockReceivedFlag _0805387A: movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _080538A2 ldr r0, _080538A8 @ =gBlockRecvBuffer movs r1, 0x80 lsls r1, 1 adds r0, r1 ldrh r1, [r0] ldr r0, _080538B4 @ =0x0000abcd cmp r1, r0 bne _0805389C ldr r0, _080538B8 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x73 movs r1, 0x1 strb r1, [r0] _0805389C: movs r0, 0x1 bl ResetBlockReceivedFlag _080538A2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080538A8: .4byte gBlockRecvBuffer _080538AC: .4byte 0x0000dcba _080538B0: .4byte sub_8053788 _080538B4: .4byte 0x0000abcd _080538B8: .4byte gUnknown_2031DAC thumb_func_end sub_805383C thumb_func_start sub_80538BC sub_80538BC: @ 80538BC push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x2E ldrsh r0, [r5, r1] movs r1, 0xA bl __divsi3 ldrh r4, [r5, 0x22] adds r4, r0 strh r4, [r5, 0x22] ldrh r0, [r5, 0x30] ldrh r2, [r5, 0x38] adds r0, r2 strh r0, [r5, 0x38] movs r1, 0x38 ldrsh r0, [r5, r1] movs r1, 0xA bl __divsi3 strh r0, [r5, 0x20] lsls r4, 16 asrs r4, 16 cmp r4, 0x4C ble _0805390A movs r0, 0x4C strh r0, [r5, 0x22] movs r2, 0x2E ldrsh r1, [r5, r2] movs r2, 0x32 ldrsh r0, [r5, r2] muls r0, r1 negs r0, r0 movs r1, 0x64 bl __divsi3 strh r0, [r5, 0x2E] ldrh r0, [r5, 0x34] adds r0, 0x1 strh r0, [r5, 0x34] _0805390A: movs r1, 0x20 ldrsh r0, [r5, r1] cmp r0, 0x78 bne _08053916 movs r0, 0 strh r0, [r5, 0x30] _08053916: ldrh r0, [r5, 0x36] ldrh r2, [r5, 0x2E] adds r0, r2 strh r0, [r5, 0x2E] movs r1, 0x34 ldrsh r0, [r5, r1] cmp r0, 0x4 bne _0805392E movs r0, 0x1 strh r0, [r5, 0x3C] ldr r0, _08053934 @ =SpriteCallbackDummy str r0, [r5, 0x1C] _0805392E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08053934: .4byte SpriteCallbackDummy thumb_func_end sub_80538BC thumb_func_start sub_8053938 sub_8053938: @ 8053938 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, _080539A0 @ =gUnknown_826D1E4 movs r2, 0x2E ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r4, 0x26] adds r0, r1 strh r0, [r4, 0x26] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x16 bne _08053960 movs r0, 0x31 bl PlaySE _08053960: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x2C bne _08053996 movs r0, 0x85 bl PlaySE ldr r0, _080539A4 @ =sub_80539AC str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x2E] ldrb r1, [r4, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 movs r1, 0x1 negs r1, r1 ldr r2, _080539A8 @ =0x0000ffff str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _08053996: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080539A0: .4byte gUnknown_826D1E4 _080539A4: .4byte sub_80539AC _080539A8: .4byte 0x0000ffff thumb_func_end sub_8053938 thumb_func_start sub_80539AC sub_80539AC: @ 80539AC push {r4,lr} adds r4, r0, 0 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0x14 bne _080539C0 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim _080539C0: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080539FE ldr r1, _08053A04 @ =gUnknown_826D1E4 movs r2, 0x2E ldrsh r0, [r4, r2] adds r0, r1 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r4, 0x26] subs r0, r1 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x17 bne _080539FE adds r0, r4, 0 bl DestroySprite ldr r0, _08053A08 @ =gUnknown_2031DAC ldr r0, [r0] adds r0, 0x94 movs r1, 0xE strh r1, [r0] _080539FE: pop {r4} pop {r0} bx r0 .align 2, 0 _08053A04: .4byte gUnknown_826D1E4 _08053A08: .4byte gUnknown_2031DAC thumb_func_end sub_80539AC thumb_func_start sub_8053A0C sub_8053A0C: @ 8053A0C push {r4,lr} adds r4, r0, 0 ldrh r2, [r4, 0x32] movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 bne _08053A3C ldrh r0, [r4, 0x22] adds r0, 0x4 strh r0, [r4, 0x22] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 ble _08053A8C adds r0, r2, 0x1 strh r0, [r4, 0x32] movs r0, 0x16 strh r0, [r4, 0x2E] movs r0, 0x31 bl PlaySE b _08053A8C _08053A3C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x42 bne _08053A4A movs r0, 0x32 bl PlaySE _08053A4A: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5C bne _08053A58 movs r0, 0x33 bl PlaySE _08053A58: movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0x6B bne _08053A66 movs r0, 0x34 bl PlaySE _08053A66: ldr r1, _08053A94 @ =gUnknown_826D1E4 movs r2, 0x2E ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r3, [r4, 0x26] adds r0, r3 strh r0, [r4, 0x26] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x6C bne _08053A8C ldr r0, _08053A98 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _08053A8C: pop {r4} pop {r0} bx r0 .align 2, 0 _08053A94: .4byte gUnknown_826D1E4 _08053A98: .4byte SpriteCallbackDummy thumb_func_end sub_8053A0C thumb_func_start sub_8053A9C sub_8053A9C: @ 8053A9C push {r4-r6,lr} ldr r0, _08053AD0 @ =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _08053AD4 @ =gUnknown_826CF8C adds r4, r0 ldr r0, _08053AD8 @ =gStringVar1 ldrh r1, [r4, 0x38] movs r6, 0xB muls r1, r6 ldr r5, _08053ADC @ =gSpeciesNames adds r1, r5 bl StringCopy ldr r0, _08053AE0 @ =gStringVar2 ldrh r1, [r4, 0xC] muls r1, r6 adds r1, r5 bl StringCopy ldrh r0, [r4, 0x38] pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08053AD0: .4byte gSpecialVar_0x8004 _08053AD4: .4byte gUnknown_826CF8C _08053AD8: .4byte gStringVar1 _08053ADC: .4byte gSpeciesNames _08053AE0: .4byte gStringVar2 thumb_func_end sub_8053A9C thumb_func_start sub_8053AE4 sub_8053AE4: @ 8053AE4 push {r4,lr} sub sp, 0x20 ldr r0, _08053B2C @ =gSpecialVar_0x8004 ldrh r0, [r0] lsls r4, r0, 4 subs r4, r0 lsls r4, 2 ldr r0, _08053B30 @ =gUnknown_826CF8C adds r4, r0 ldr r0, _08053B34 @ =gSpecialVar_0x8005 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, _08053B38 @ =gPlayerParty adds r0, r1 movs r1, 0x2 mov r2, sp bl GetMonData ldr r0, _08053B3C @ =gStringVar1 mov r1, sp bl StringCopy10 ldr r0, _08053B40 @ =gStringVar2 ldrh r2, [r4, 0xC] movs r1, 0xB muls r1, r2 ldr r2, _08053B44 @ =gSpeciesNames adds r1, r2 bl StringCopy add sp, 0x20 pop {r4} pop {r0} bx r0 .align 2, 0 _08053B2C: .4byte gSpecialVar_0x8004 _08053B30: .4byte gUnknown_826CF8C _08053B34: .4byte gSpecialVar_0x8005 _08053B38: .4byte gPlayerParty _08053B3C: .4byte gStringVar1 _08053B40: .4byte gStringVar2 _08053B44: .4byte gSpeciesNames thumb_func_end sub_8053AE4 thumb_func_start sub_8053B48 sub_8053B48: @ 8053B48 push {r4-r7,lr} sub sp, 0x38 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, r1, 4 subs r2, r1 lsls r2, 2 ldr r1, _08053CA4 @ =gUnknown_826CF8C adds r5, r2, r1 movs r1, 0x64 muls r0, r1 ldr r1, _08053CA8 @ =gPlayerParty adds r0, r1 movs r1, 0x38 bl GetMonData adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 add r4, sp, 0x34 movs r0, 0xFE strb r0, [r4] ldr r6, _08053CAC @ =gEnemyParty ldrh r1, [r5, 0xC] movs r3, 0x1 str r3, [sp] ldr r0, [r5, 0x24] str r0, [sp, 0x4] str r3, [sp, 0x8] ldr r0, [r5, 0x18] str r0, [sp, 0xC] adds r0, r6, 0 movs r3, 0x20 bl CreateMon adds r2, r5, 0 adds r2, 0xE adds r0, r6, 0 movs r1, 0x27 bl SetMonData adds r2, r5, 0 adds r2, 0xF adds r0, r6, 0 movs r1, 0x28 bl SetMonData adds r2, r5, 0 adds r2, 0x10 adds r0, r6, 0 movs r1, 0x29 bl SetMonData adds r2, r5, 0 adds r2, 0x11 adds r0, r6, 0 movs r1, 0x2A bl SetMonData adds r2, r5, 0 adds r2, 0x12 adds r0, r6, 0 movs r1, 0x2B bl SetMonData adds r2, r5, 0 adds r2, 0x13 adds r0, r6, 0 movs r1, 0x2C bl SetMonData adds r0, r6, 0 movs r1, 0x2 adds r2, r5, 0 bl SetMonData adds r2, r5, 0 adds r2, 0x2B adds r0, r6, 0 movs r1, 0x7 bl SetMonData adds r2, r5, 0 adds r2, 0x36 adds r0, r6, 0 movs r1, 0x31 bl SetMonData adds r2, r5, 0 adds r2, 0x14 adds r0, r6, 0 movs r1, 0x2E bl SetMonData adds r2, r5, 0 adds r2, 0x1D adds r0, r6, 0 movs r1, 0x17 bl SetMonData adds r2, r5, 0 adds r2, 0x1E adds r0, r6, 0 movs r1, 0x18 bl SetMonData adds r2, r5, 0 adds r2, 0x1C adds r0, r6, 0 movs r1, 0x16 bl SetMonData adds r2, r5, 0 adds r2, 0x1F adds r0, r6, 0 movs r1, 0x21 bl SetMonData adds r2, r5, 0 adds r2, 0x20 adds r0, r6, 0 movs r1, 0x2F bl SetMonData adds r2, r5, 0 adds r2, 0x37 adds r0, r6, 0 movs r1, 0x30 bl SetMonData adds r0, r6, 0 movs r1, 0x23 adds r2, r4, 0 bl SetMonData mov r4, sp adds r4, 0x35 movs r0, 0 strb r0, [r4] ldrh r0, [r5, 0x28] cmp r0, 0 beq _08053CC0 bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _08053CB4 add r0, sp, 0x10 adds r1, r5, 0 bl sub_8053CD4 ldr r0, _08053CB0 @ =gUnknown_2031CCC add r1, sp, 0x10 ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} ldm r1!, {r2,r3,r7} stm r0!, {r2,r3,r7} adds r0, r6, 0 movs r1, 0x40 adds r2, r4, 0 bl SetMonData adds r2, r5, 0 adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC bl SetMonData b _08053CC0 .align 2, 0 _08053CA4: .4byte gUnknown_826CF8C _08053CA8: .4byte gPlayerParty _08053CAC: .4byte gEnemyParty _08053CB0: .4byte gUnknown_2031CCC _08053CB4: adds r2, r5, 0 adds r2, 0x28 adds r0, r6, 0 movs r1, 0xC bl SetMonData _08053CC0: ldr r0, _08053CD0 @ =gEnemyParty bl CalculateMonStats add sp, 0x38 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08053CD0: .4byte gEnemyParty thumb_func_end sub_8053B48 thumb_func_start sub_8053CD4 sub_8053CD4: @ 8053CD4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r2, _08053D28 @ =gUnknown_826D1A8 adds r0, r5, 0 adds r0, 0x2A ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, r0, r2 adds r1, r4, 0 movs r3, 0x8 _08053CEE: ldrh r0, [r2] strh r0, [r1] adds r2, 0x2 adds r1, 0x2 subs r3, 0x1 cmp r3, 0 bge _08053CEE adds r0, r4, 0 adds r0, 0x12 adds r1, r5, 0 adds r1, 0x2B bl StringCopy ldr r1, [r5, 0x18] lsrs r0, r1, 24 strb r0, [r4, 0x1A] lsrs r0, r1, 16 strb r0, [r4, 0x1B] lsrs r0, r1, 8 strb r0, [r4, 0x1C] strb r1, [r4, 0x1D] ldrh r0, [r5, 0xC] strh r0, [r4, 0x1E] ldrh r0, [r5, 0x28] strh r0, [r4, 0x20] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08053D28: .4byte gUnknown_826D1A8 thumb_func_end sub_8053CD4 thumb_func_start sub_8053D2C sub_8053D2C: @ 8053D2C push {r4-r6,lr} ldr r6, _08053D58 @ =gSpecialVar_0x8005 ldrh r0, [r6] movs r5, 0x64 muls r0, r5 ldr r4, _08053D5C @ =gPlayerParty adds r0, r4 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _08053D60 ldrh r0, [r6] muls r0, r5 adds r0, r4 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 b _08053D62 .align 2, 0 _08053D58: .4byte gSpecialVar_0x8005 _08053D5C: .4byte gPlayerParty _08053D60: movs r0, 0 _08053D62: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8053D2C thumb_func_start sub_8053D68 sub_8053D68: @ 8053D68 push {lr} ldr r0, _08053D7C @ =gSpecialVar_0x8005 ldrb r0, [r0] ldr r1, _08053D80 @ =gSpecialVar_0x8004 ldrb r1, [r1] bl sub_8053B48 pop {r0} bx r0 .align 2, 0 _08053D7C: .4byte gSpecialVar_0x8005 _08053D80: .4byte gSpecialVar_0x8004 thumb_func_end sub_8053D68 thumb_func_start sub_8053D84 sub_8053D84: @ 8053D84 push {r4-r6,lr} bl sub_8050F14 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bne _08053DE6 ldr r5, _08053E08 @ =gUnknown_2031DAC ldr r0, [r5] adds r0, 0x8E ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _08053E0C @ =gSprites adds r0, r4 bl DestroySprite ldr r0, [r5] adds r0, 0x8F ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl FreeSpriteOamMatrix ldr r0, _08053E10 @ =gUnknown_2031DA4 ldrb r4, [r0] ldrb r0, [r0, 0x1] movs r1, 0x6 bl __umodsi3 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_805080C ldr r0, [r5] adds r2, r0, 0 adds r2, 0x74 ldr r1, _08053E14 @ =0x0000abcd strh r1, [r2] adds r0, 0x93 strb r6, [r0] ldr r0, _08053E18 @ =sub_8053E1C bl SetMainCallback2 _08053DE6: bl sub_80508F4 bl sub_805383C bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08053E08: .4byte gUnknown_2031DAC _08053E0C: .4byte gSprites _08053E10: .4byte gUnknown_2031DA4 _08053E14: .4byte 0x0000abcd _08053E18: .4byte sub_8053E1C thumb_func_end sub_8053D84 thumb_func_start sub_8053E1C sub_8053E1C: @ 8053E1C push {r4,lr} bl sub_804FFC4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_805383C cmp r4, 0 bne _08053E68 ldr r4, _08053E80 @ =gUnknown_2031DAC ldr r2, [r4] adds r0, r2, 0 adds r0, 0x72 ldrh r1, [r0] ldr r0, _08053E84 @ =0x00000101 cmp r1, r0 bne _08053E68 adds r1, r2, 0 adds r1, 0x74 ldr r0, _08053E88 @ =0x0000dcba strh r0, [r1] bl bitmask_all_link_players_but_self lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x74 movs r2, 0x14 bl SendBlock ldr r0, [r4] adds r0, 0x72 movs r1, 0x2 strb r1, [r0] ldr r0, [r4] adds r0, 0x73 strb r1, [r0] _08053E68: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4} pop {r0} bx r0 .align 2, 0 _08053E80: .4byte gUnknown_2031DAC _08053E84: .4byte 0x00000101 _08053E88: .4byte 0x0000dcba thumb_func_end sub_8053E1C thumb_func_start sub_8053E8C sub_8053E8C: @ 8053E8C push {r4,lr} sub sp, 0x4 ldr r1, _08053EAC @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x65 bls _08053EA2 b _08054396 _08053EA2: lsls r0, 2 ldr r1, _08053EB0 @ =_08053EB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08053EAC: .4byte gMain _08053EB0: .4byte _08053EB4 .align 2, 0 _08053EB4: .4byte _0805404C .4byte _08054068 .4byte _080540DC .4byte _08054396 .4byte _080541E0 .4byte _080542A0 .4byte _080542C4 .4byte _080542E0 .4byte _08054304 .4byte _0805434C .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054204 .4byte _08054254 .4byte _0805427E .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054104 .4byte _08054184 .4byte _080541A0 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054396 .4byte _08054080 .4byte _080540BC _0805404C: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r4, _08054060 @ =gStringVar4 ldr r1, _08054064 @ =gUnknown_841E325 b _080540EA .align 2, 0 _08054060: .4byte gStringVar4 _08054064: .4byte gUnknown_841E325 _08054068: bl sub_800AB9C ldr r0, _0805407C @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r2, 0 movs r1, 0x64 b _080541F0 .align 2, 0 _0805407C: .4byte gMain _08054080: ldr r0, _080540B4 @ =gUnknown_2031DAC ldr r3, [r0] ldr r0, [r3, 0x64] adds r0, 0x1 str r0, [r3, 0x64] cmp r0, 0xB4 bls _0805409C movs r1, 0x87 lsls r1, 3 adds r0, r2, r1 movs r2, 0 movs r1, 0x65 strb r1, [r0] str r2, [r3, 0x64] _0805409C: bl sub_800A4BC lsls r0, 24 cmp r0, 0 bne _080540A8 b _08054396 _080540A8: ldr r0, _080540B8 @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 b _080540D0 .align 2, 0 _080540B4: .4byte gUnknown_2031DAC _080540B8: .4byte gMain _080540BC: bl sub_800A4BC lsls r0, 24 cmp r0, 0 bne _080540C8 b _08054396 _080540C8: ldr r0, _080540D8 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 _080540D0: movs r1, 0x2 strb r1, [r0] b _08054396 .align 2, 0 _080540D8: .4byte gMain _080540DC: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 movs r0, 0x32 strb r0, [r1] ldr r4, _080540FC @ =gStringVar4 ldr r1, _08054100 @ =gUnknown_8419F54 _080540EA: adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 adds r1, r4, 0 movs r2, 0 bl sub_8054508 b _08054396 .align 2, 0 _080540FC: .4byte gStringVar4 _08054100: .4byte gUnknown_8419F54 _08054104: bl InUnionRoom cmp r0, 0 beq _08054120 ldr r0, _0805411C @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0xF8 movs r0, 0x12 bl sub_8113550 b _08054132 .align 2, 0 _0805411C: .4byte gUnknown_2031DAC _08054120: ldr r0, _08054174 @ =gUnknown_2031DAC ldr r1, [r0] adds r1, 0xF8 movs r0, 0xC bl sub_8113550 movs r0, 0x15 bl IncrementGameStat _08054132: ldr r0, _08054178 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _0805415A ldr r4, _0805417C @ =gLinkPlayers 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 r4, 0x4 adds r1, r4 ldr r1, [r1] movs r0, 0x2 bl sub_8144714 _0805415A: bl sub_804C1C0 bl sub_80DA3AC ldr r1, _08054180 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] b _080541F2 .align 2, 0 _08054174: .4byte gUnknown_2031DAC _08054178: .4byte gWirelessCommType _0805417C: .4byte gLinkPlayers _08054180: .4byte gMain _08054184: ldr r0, _0805419C @ =gUnknown_2031DAC ldr r1, [r0] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x5 beq _08054194 b _08054396 _08054194: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _08054340 .align 2, 0 _0805419C: .4byte gUnknown_2031DAC _080541A0: bl sub_80DA3D8 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080541C4 bl sav2_gender2_inplace_and_xFE ldr r0, _080541C0 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x4 strb r1, [r0] b _08054396 .align 2, 0 _080541C0: .4byte gMain _080541C4: ldr r0, _080541D8 @ =gUnknown_2031DAC ldr r0, [r0] str r1, [r0, 0x64] ldr r0, _080541DC @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x33 strb r1, [r0] b _08054396 .align 2, 0 _080541D8: .4byte gUnknown_2031DAC _080541DC: .4byte gMain _080541E0: bl sub_80DA40C ldr r0, _080541FC @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r2, 0 movs r1, 0x28 _080541F0: strb r1, [r0] _080541F2: ldr r0, _08054200 @ =gUnknown_2031DAC ldr r0, [r0] str r2, [r0, 0x64] b _08054396 .align 2, 0 _080541FC: .4byte gMain _08054200: .4byte gUnknown_2031DAC _08054204: ldr r4, _08054238 @ =gUnknown_2031DAC ldr r1, [r4] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x32 bhi _08054214 b _08054396 _08054214: bl GetMultiplayerId lsls r0, 24 cmp r0, 0 bne _0805423C bl Random ldr r4, [r4] lsls r0, 16 lsrs r0, 16 movs r1, 0x1E bl __umodsi3 lsls r0, 16 lsrs r0, 16 str r0, [r4, 0x64] b _08054242 .align 2, 0 _08054238: .4byte gUnknown_2031DAC _0805423C: ldr r1, [r4] movs r0, 0 str r0, [r1, 0x64] _08054242: ldr r0, _08054250 @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x29 strb r1, [r0] b _08054396 .align 2, 0 _08054250: .4byte gMain _08054254: ldr r0, _08054270 @ =gUnknown_2031DAC ldr r1, [r0] ldr r0, [r1, 0x64] cmp r0, 0 bne _08054278 bl sub_800AB9C ldr r0, _08054274 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x2A strb r1, [r0] b _08054396 .align 2, 0 _08054270: .4byte gUnknown_2031DAC _08054274: .4byte gMain _08054278: subs r0, 0x1 str r0, [r1, 0x64] b _08054396 _0805427E: bl sub_800A4BC lsls r0, 24 cmp r0, 0 bne _0805428A b _08054396 _0805428A: bl sub_80DA434 ldr r0, _0805429C @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x5 strb r1, [r0] b _08054396 .align 2, 0 _0805429C: .4byte gMain _080542A0: ldr r0, _080542C0 @ =gUnknown_2031DAC ldr r1, [r0] ldr r0, [r1, 0x64] adds r0, 0x1 str r0, [r1, 0x64] cmp r0, 0x3C bls _08054396 movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] bl sub_800AB9C b _08054396 .align 2, 0 _080542C0: .4byte gUnknown_2031DAC _080542C4: bl sub_800A4BC lsls r0, 24 cmp r0, 0 beq _08054396 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _08054338 _080542E0: ldr r0, _080542FC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08054396 movs r0, 0x3 bl FadeOutBGM ldr r1, _08054300 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _08054340 .align 2, 0 _080542FC: .4byte gPaletteFade _08054300: .4byte gMain _08054304: bl IsBGMStopped lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08054396 ldr r0, _08054328 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _08054334 ldr r0, _0805432C @ =gMain ldr r1, [r0, 0x8] ldr r0, _08054330 @ =sub_804C718 cmp r1, r0 bne _08054334 bl sub_800AB9C b _08054338 .align 2, 0 _08054328: .4byte gWirelessCommType _0805432C: .4byte gMain _08054330: .4byte sub_804C718 _08054334: bl sub_800AAC0 _08054338: ldr r1, _08054348 @ =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _08054340: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08054396 .align 2, 0 _08054348: .4byte gMain _0805434C: ldr r0, _08054374 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _08054384 ldr r1, [r2, 0x8] ldr r0, _08054378 @ =sub_804C718 cmp r1, r0 bne _08054384 bl IsNoOneConnected lsls r0, 24 cmp r0, 0 beq _08054396 ldr r0, _0805437C @ =gSoftResetDisabled movs r1, 0 strb r1, [r0] ldr r0, _08054380 @ =sub_80543C4 bl SetMainCallback2 b _08054396 .align 2, 0 _08054374: .4byte gWirelessCommType _08054378: .4byte sub_804C718 _0805437C: .4byte gSoftResetDisabled _08054380: .4byte sub_80543C4 _08054384: ldr r0, _080543B8 @ =gReceivedRemoteLinkPlayers ldrb r1, [r0] cmp r1, 0 bne _08054396 ldr r0, _080543BC @ =gSoftResetDisabled strb r1, [r0] ldr r0, _080543C0 @ =sub_80543C4 bl SetMainCallback2 _08054396: bl HasLinkErrorOccurred lsls r0, 24 cmp r0, 0 bne _080543A4 bl RunTasks _080543A4: bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _080543B8: .4byte gReceivedRemoteLinkPlayers _080543BC: .4byte gSoftResetDisabled _080543C0: .4byte sub_80543C4 thumb_func_end sub_8053E8C thumb_func_start sub_80543C4 sub_80543C4: @ 80543C4 push {r4,r5,lr} ldr r0, _08054430 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0805441A bl FreeAllWindowBuffers movs r0, 0x3 bl GetBgTilemapBuffer bl Free movs r0, 0x1 bl GetBgTilemapBuffer bl Free movs r0, 0 bl GetBgTilemapBuffer bl Free bl FreeMonSpritesGfx ldr r4, _08054434 @ =gUnknown_2031DAC ldr r0, [r4] bl Free str r5, [r4] ldr r0, _08054438 @ =gWirelessCommType ldrb r0, [r0] cmp r0, 0 beq _08054412 bl DestroyWirelessStatusIndicatorSprite _08054412: ldr r0, _0805443C @ =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 _0805441A: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08054430: .4byte gPaletteFade _08054434: .4byte gUnknown_2031DAC _08054438: .4byte gWirelessCommType _0805443C: .4byte gMain thumb_func_end sub_80543C4 thumb_func_start sub_8054440 sub_8054440: @ 8054440 push {lr} sub sp, 0x4 bl ScriptContext2_Enable ldr r0, _0805446C @ =sub_8054470 movs r1, 0xA bl CreateTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl sub_812B478 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0805446C: .4byte sub_8054470 thumb_func_end sub_8054440 thumb_func_start sub_8054470 sub_8054470: @ 8054470 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0805449C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08054494 ldr r0, _080544A0 @ =sub_80505CC bl SetMainCallback2 ldr r1, _080544A4 @ =gFieldCallback ldr r0, _080544A8 @ =FieldCallback_ReturnToEventScript2 str r0, [r1] adds r0, r4, 0 bl DestroyTask _08054494: pop {r4} pop {r0} bx r0 .align 2, 0 _0805449C: .4byte gPaletteFade _080544A0: .4byte sub_80505CC _080544A4: .4byte gFieldCallback _080544A8: .4byte FieldCallback_ReturnToEventScript2 thumb_func_end sub_8054470 thumb_func_start sub_80544AC sub_80544AC: @ 80544AC push {r4,r5,lr} movs r5, 0 movs r4, 0 _080544B2: ldr r0, _080544F0 @ =gUnknown_2031DA4 ldrb r0, [r0, 0x1] movs r1, 0x6 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, _080544F4 @ =gEnemyParty adds r0, r1 adds r1, r4, 0 adds r1, 0x43 bl GetMonData adds r0, r5, r0 lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _080544B2 cmp r5, 0 beq _080544EA ldr r0, _080544F8 @ =0x0000083b bl FlagSet _080544EA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080544F0: .4byte gUnknown_2031DA4 _080544F4: .4byte gEnemyParty _080544F8: .4byte 0x0000083b thumb_func_end sub_80544AC thumb_func_start sub_80544FC sub_80544FC: @ 80544FC push {lr} bl sub_80504CC pop {r0} bx r0 thumb_func_end sub_80544FC thumb_func_start sub_8054508 sub_8054508: @ 8054508 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 adds r5, r0, 0 mov r8, r1 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0xFF bl FillWindowPixelBuffer ldr r2, _08054580 @ =gUnknown_2031DAC ldr r1, [r2] movs r6, 0x82 lsls r6, 1 adds r1, r6 movs r3, 0 movs r0, 0xF strb r0, [r1] ldr r0, [r2] ldr r7, _08054584 @ =0x00000105 adds r1, r0, r7 movs r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r7, 0x1 adds r1, r0, r7 movs r0, 0x6 strb r0, [r1] str r3, [sp] movs r0, 0x2 str r0, [sp, 0x4] ldr r0, [r2] adds r0, r6 str r0, [sp, 0x8] lsls r4, 24 asrs r4, 24 str r4, [sp, 0xC] mov r0, r8 str r0, [sp, 0x10] adds r0, r5, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl AddTextPrinterParameterized4 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08054580: .4byte gUnknown_2031DAC _08054584: .4byte 0x00000105 thumb_func_end sub_8054508 thumb_func_start c3_08054588 c3_08054588: @ 8054588 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080545C0 @ =gTasks+0x8 adds r4, r0, r1 ldr r1, _080545C4 @ =gUnknown_826D250 movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrb r0, [r0] lsls r1, r0, 4 adds r2, r1, 0 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 bne _080545CC movs r0, 0x80 lsls r0, 1 cmp r1, r0 beq _080545D4 lsls r0, r1, 1 ldr r1, _080545C8 @ =gUnknown_826BB5C adds r0, r1 b _080545D6 .align 2, 0 _080545C0: .4byte gTasks+0x8 _080545C4: .4byte gUnknown_826D250 _080545C8: .4byte gUnknown_826BB5C _080545CC: movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _080545E4 _080545D4: ldr r0, _080545E0 @ =gUnknown_826BF5C _080545D6: movs r1, 0x30 movs r2, 0x20 bl LoadPalette b _080545F2 .align 2, 0 _080545E0: .4byte gUnknown_826BF5C _080545E4: lsls r0, r2, 1 ldr r1, _08054648 @ =gUnknown_826BD5C adds r0, r1 movs r1, 0x30 movs r2, 0x20 bl LoadPalette _080545F2: ldr r0, _0805464C @ =gUnknown_826D250 movs r2, 0 ldrsh r1, [r4, r2] lsls r1, 1 adds r1, r0 ldrb r0, [r1] cmp r0, 0 bne _08054610 movs r3, 0x2 ldrsh r0, [r4, r3] cmp r0, 0 bne _08054610 movs r0, 0xBC bl PlaySE _08054610: movs r0, 0x2 ldrsh r2, [r4, r0] ldr r1, _0805464C @ =gUnknown_826D250 movs r3, 0 ldrsh r0, [r4, r3] lsls r0, 1 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] cmp r2, r0 bne _08054650 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r0, 0 strh r0, [r4, 0x2] movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 1 adds r0, r1 ldrb r0, [r0] cmp r0, 0xFF bne _08054656 adds r0, r5, 0 bl DestroyTask b _08054656 .align 2, 0 _08054648: .4byte gUnknown_826BD5C _0805464C: .4byte gUnknown_826D250 _08054650: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] _08054656: pop {r4,r5} pop {r0} bx r0 thumb_func_end c3_08054588 thumb_func_start c3_0805465C c3_0805465C: @ 805465C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, _08054728 @ =gTasks+0x8 adds r7, r0, r1 movs r0, 0 ldrsh r4, [r7, r0] cmp r4, 0 bne _080546BC ldr r1, _0805472C @ =gUnknown_2031DAC ldr r3, [r1] ldr r5, _08054730 @ =0x0000010b adds r2, r3, r5 movs r0, 0x78 strb r0, [r2] subs r5, 0x2 adds r2, r3, r5 strb r0, [r2] ldr r0, [r1] movs r2, 0x85 lsls r2, 1 adds r0, r2 strb r4, [r0] ldr r0, [r1] movs r3, 0x86 lsls r3, 1 adds r0, r3 movs r1, 0xA0 strb r1, [r0] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits movs r0, 0x4A movs r1, 0x10 bl SetGpuReg movs r0, 0x48 movs r1, 0x13 bl SetGpuReg _080546BC: ldr r4, _0805472C @ =gUnknown_2031DAC ldr r2, [r4] ldr r5, _08054730 @ =0x0000010b mov r8, r5 adds r0, r2, r5 ldrb r1, [r0] subs r5, 0x2 adds r2, r5 ldrb r0, [r2] lsls r0, 8 orrs r1, r0 movs r0, 0x40 bl SetGpuReg ldr r2, [r4] movs r1, 0x86 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] movs r3, 0x85 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 8 orrs r1, r0 movs r0, 0x44 bl SetGpuReg ldrh r0, [r7] adds r0, 0x1 strh r0, [r7] ldr r1, [r4] adds r1, r5 ldrb r0, [r1] subs r0, 0x5 strb r0, [r1] ldr r1, [r4] add r1, r8 ldrb r0, [r1] adds r0, 0x5 strb r0, [r1] ldr r0, [r4] adds r0, r5 ldrb r0, [r0] cmp r0, 0x4F bhi _0805471E adds r0, r6, 0 bl DestroyTask _0805471E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08054728: .4byte gTasks+0x8 _0805472C: .4byte gUnknown_2031DAC _08054730: .4byte 0x0000010b thumb_func_end c3_0805465C thumb_func_start sub_8054734 sub_8054734: @ 8054734 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, _080547E8 @ =gTasks+0x8 adds r6, r0, r1 movs r1, 0 ldrsh r0, [r6, r1] cmp r0, 0 bne _08054774 ldr r1, _080547EC @ =gUnknown_2031DAC ldr r0, [r1] ldr r3, _080547F0 @ =0x00000109 adds r2, r0, r3 movs r0, 0x50 strb r0, [r2] ldr r0, [r1] ldr r2, _080547F4 @ =0x0000010b adds r1, r0, r2 movs r0, 0xA0 strb r0, [r1] movs r0, 0x4A movs r1, 0x10 bl SetGpuReg movs r0, 0x48 movs r1, 0x13 bl SetGpuReg _08054774: ldr r5, _080547EC @ =gUnknown_2031DAC ldr r0, [r5] ldr r3, _080547F4 @ =0x0000010b adds r1, r0, r3 ldrb r1, [r1] ldr r4, _080547F0 @ =0x00000109 adds r0, r4 ldrb r0, [r0] lsls r0, 8 orrs r1, r0 movs r0, 0x40 bl SetGpuReg ldr r2, [r5] movs r1, 0x86 lsls r1, 1 adds r0, r2, r1 ldrb r1, [r0] movs r3, 0x85 lsls r3, 1 adds r0, r2, r3 ldrb r0, [r0] lsls r0, 8 orrs r1, r0 movs r0, 0x44 bl SetGpuReg ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0x78 beq _080547FC ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] ldr r0, [r5] adds r1, r0, r4 ldrb r0, [r1] adds r0, 0x5 strb r0, [r1] ldr r0, [r5] ldr r2, _080547F4 @ =0x0000010b adds r1, r0, r2 ldrb r0, [r1] subs r0, 0x5 strb r0, [r1] ldr r0, [r5] adds r0, r4 ldrb r0, [r0] cmp r0, 0x73 bls _0805480C ldr r2, _080547F8 @ =0x0000ffff movs r0, 0x8 movs r1, 0 bl BlendPalettes b _0805480C .align 2, 0 _080547E8: .4byte gTasks+0x8 _080547EC: .4byte gUnknown_2031DAC _080547F0: .4byte 0x00000109 _080547F4: .4byte 0x0000010b _080547F8: .4byte 0x0000ffff _080547FC: movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits adds r0, r7, 0 bl DestroyTask _0805480C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8054734 .align 2, 0 @ Don't pad with nop.