.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_81754C8 sub_81754C8: @ 81754C8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81754C8 thumb_func_start sub_81754DC sub_81754DC: @ 81754DC push {lr} bl RunTasks bl AnimateSprites ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08175522 ldr r0, =gHasHallOfFameRecords ldrb r0, [r0] cmp r0, 0 beq _08175522 ldr r2, =gTasks ldr r0, =gUnknown_0203BCE2 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r0] ldr r0, =sub_8175774 cmp r1, r0 bne _08175522 bl sub_81754C8 bl RunTasks bl AnimateSprites ldr r1, =gUnknown_0203BCE5 movs r0, 0x1 strb r0, [r1] _08175522: bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 .pool thumb_func_end sub_81754DC thumb_func_start sub_8175548 sub_8175548: @ 8175548 push {lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085E6F68 movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates movs r0, 0x80 lsls r0, 4 bl AllocZeroed adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer ldr r0, =gUnknown_085E56F0 movs r1, 0x80 movs r2, 0x40 bl LoadPalette ldr r0, =gUnknown_085E6F6C bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0 bl ShowBg pop {r0} bx r0 .pool thumb_func_end sub_8175548 thumb_func_start sub_81755A4 sub_81755A4: @ 81755A4 push {lr} bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer cmp r0, 0 beq _081755B8 bl Free _081755B8: pop {r0} bx r0 thumb_func_end sub_81755A4 thumb_func_start sub_81755BC sub_81755BC: @ 81755BC push {r4,r5,lr} sub sp, 0x18 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 add r1, sp, 0x14 movs r0, 0 strb r0, [r1] cmp r2, 0x1 bne _081755DC movs r0, 0x3 strb r0, [r1, 0x1] movs r0, 0x4 b _081755E4 _081755DC: add r1, sp, 0x14 movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x2 _081755E4: strb r0, [r1, 0x2] movs r0, 0x1 adds r1, r4, 0 movs r2, 0xF0 movs r3, 0x1 bl GetStringCenterAlignXOffsetWithLetterSpacing adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] str r4, [sp, 0x10] movs r0, 0 movs r1, 0x1 adds r3, r5, 0 bl AddTextPrinterParametrized2 add sp, 0x18 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81755BC thumb_func_start sub_8175620 sub_8175620: @ 8175620 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 bl sub_8175CE4 movs r0, 0 bl SetVBlankCallback ldr r0, =0x02000000 movs r1, 0xE0 lsls r1, 9 bl InitHeap bl ResetPaletteFade bl ResetTasks bl sub_8175548 ldr r0, =sub_8175744 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x10] strh r1, [r0, 0x16] strh r1, [r0, 0x1E] movs r1, 0x1 strh r1, [r0, 0x22] _0817566A: movs r0, 0 adds r1, r7, 0 bl sub_8176AB0 lsls r0, 24 cmp r0, 0 beq _0817566A ldr r5, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r5 movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0 mov r8, r1 movs r6, 0 movs r1, 0x28 strh r1, [r0, 0x8] ldr r1, =0x0000fffc movs r0, 0x12 bl SetGpuReg ldr r0, =sub_8175DA0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r5 strh r7, [r1, 0xA] strh r0, [r4, 0x26] movs r0, 0x1 negs r0, r0 str r6, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1 bl EnableInterrupts ldr r0, =sub_81754C8 bl SetVBlankCallback ldr r0, =0x000001c7 bl m4aSongNumStart ldr r0, =sub_81754DC bl SetMainCallback2 ldr r0, =gUnknown_0203BCE5 mov r1, r8 strb r1, [r0] ldr r4, =gUnknown_0203BCE8 movs r0, 0xEB lsls r0, 2 bl AllocZeroed str r0, [r4] bl sub_8177388 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8E strh r6, [r0] adds r0, 0x2 strh r6, [r0] adds r0, 0x2 strh r6, [r0] ldr r0, =gUnknown_0203BCE2 strh r7, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8175620 thumb_func_start sub_8175744 sub_8175744: @ 8175744 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08175764 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_8175774 str r0, [r1] _08175764: pop {r0} bx r0 .pool thumb_func_end sub_8175744 thumb_func_start sub_8175774 sub_8175774: @ 8175774 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x10 ldrsh r1, [r4, r0] cmp r1, 0 beq _081757B0 movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1E strh r1, [r0, 0x8] movs r0, 0x80 lsls r0, 1 strh r0, [r4, 0x20] ldr r0, =sub_8175A9C b _081757FA .pool _081757B0: ldr r0, =gUnknown_0203BCE0 strh r1, [r0] ldrh r2, [r4, 0x1E] movs r3, 0x1E ldrsh r0, [r4, r3] cmp r0, 0x1 bne _081757E0 strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_8175808 b _081757FA .pool _081757E0: cmp r0, 0x2 bne _081757FC strh r2, [r4, 0x22] strh r1, [r4, 0x1E] movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_81758A4 _081757FA: str r0, [r4] _081757FC: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175774 thumb_func_start sub_8175808 sub_8175808: @ 8175808 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08175836 movs r0, 0 movs r1, 0 bl SetGpuReg adds r0, r4, 0 bl sub_8176CA0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =c2_080C9BFC str r0, [r1] _08175836: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175808 thumb_func_start c2_080C9BFC c2_080C9BFC: @ 8175848 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrb r0, [r5, 0x16] adds r1, r4, 0 bl sub_8176AB0 lsls r0, 24 cmp r0, 0 beq _08175890 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1 bl EnableInterrupts ldr r0, =sub_81754C8 bl SetVBlankCallback ldr r0, =sub_8175744 str r0, [r5] _08175890: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end c2_080C9BFC thumb_func_start sub_81758A4 sub_81758A4: @ 81758A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081758D2 movs r0, 0 movs r1, 0 bl SetGpuReg adds r0, r4, 0 bl sub_8176CA0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81758E4 str r0, [r1] _081758D2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81758A4 thumb_func_start sub_81758E4 sub_81758E4: @ 81758E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r1, r0 mov r8, r1 ldrb r7, [r1] cmp r7, 0 beq _08175906 cmp r7, 0x1 beq _081759F0 _08175906: bl ResetSpriteData bl dp13_810BB8C bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gBirchHelpGfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram ldr r0, =gBirchGrassTilemap ldr r1, =0x06003800 bl LZ77UnCompVram ldr r0, =gBirchBagGrassPal + 0x2 movs r1, 0x1 movs r2, 0x3E bl LoadPalette movs r1, 0 ldr r4, =0x0201c000 movs r3, 0x11 ldr r2, =0x000007ff _0817593C: adds r0, r1, r4 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _0817593C movs r1, 0 ldr r2, =0x0201d800 ldr r6, =gUnknown_085E701C ldr r0, =0xfffff000 adds r5, r2, r0 movs r4, 0x22 ldr r3, =0x000007ff _08175958: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _08175958 movs r1, 0 ldr r5, =0x0201d000 movs r4, 0x33 ldr r3, =0x000007ff _0817596E: adds r0, r1, r5 strb r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r3 bls _0817596E movs r0, 0 strh r0, [r2] ldr r1, =0x000053ff adds r0, r1, 0 strh r0, [r2, 0x2] ldr r1, =0x0000529f adds r0, r1, 0 strh r0, [r2, 0x4] ldr r1, =0x00007e94 adds r0, r1, 0 strh r0, [r2, 0x6] adds r0, r6, 0 bl LoadSpriteSheet ldr r0, =gUnknown_085E702C bl LoadSpritePalette ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08175A7A .pool _081759F0: ldr r0, =sub_81760FC movs r1, 0 bl CreateTask ldr r2, =gTasks lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r2 lsls r0, 24 lsrs r0, 24 movs r1, 0 mov r9, r1 movs r5, 0 strh r0, [r4, 0xE] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r7, [r0, 0x8] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r6, [r0, 0xA] movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r4, 0x16] strh r1, [r0, 0xC] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1C movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0x20 bl SetGpuReg ldr r1, =0x00000703 movs r0, 0xE bl SetGpuReg movs r1, 0xCA lsls r1, 5 movs r0, 0 bl SetGpuReg mov r0, r9 mov r1, r8 strb r0, [r1] ldr r0, =gUnknown_0203BD28 strh r5, [r0] ldr r0, =sub_8175744 str r0, [r4] _08175A7A: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81758E4 thumb_func_start sub_8175A9C sub_8175A9C: @ 8175A9C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x20] movs r2, 0x20 ldrsh r1, [r4, r2] cmp r1, 0 beq _08175AC4 subs r0, 0x1 strh r0, [r4, 0x20] b _08175AD8 .pool _08175AC4: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0xC movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_8175AE4 str r0, [r4] _08175AD8: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175A9C thumb_func_start sub_8175AE4 sub_8175AE4: @ 8175AE4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08175B0A adds r0, r4, 0 bl sub_8176CA0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_8175B1C str r0, [r1] _08175B0A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175AE4 thumb_func_start sub_8175B1C sub_8175B1C: @ 8175B1C push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8175CE4 bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl sub_8176D1C bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x8 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0xE0 lsls r1, 3 movs r0, 0x8 bl SetGpuReg movs r0, 0x1 bl EnableInterrupts movs r1, 0xA0 lsls r1, 1 movs r0, 0 bl SetGpuReg ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xEB strh r1, [r0, 0x8] ldr r1, =sub_8175B90 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175B1C thumb_func_start sub_8175B90 sub_8175B90: @ 8175B90 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] movs r2, 0x8 ldrsh r1, [r4, r2] cmp r1, 0 beq _08175BB8 subs r0, 0x1 strh r0, [r4, 0x8] b _08175BCC .pool _08175BB8: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0x6 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_8175BD8 str r0, [r4] _08175BCC: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175B90 thumb_func_start sub_8175BD8 sub_8175BD8: @ 8175BD8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08175C1E movs r0, 0xE0 lsls r0, 6 movs r1, 0 bl sub_8176E40 movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xE1 lsls r1, 5 strh r1, [r0, 0x8] ldr r1, =sub_8175C34 str r1, [r0] _08175C1E: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8175BD8 thumb_func_start sub_8175C34 sub_8175C34: @ 8175C34 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08175CB8 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0 beq _08175C62 ldr r0, =gMain ldrh r0, [r0, 0x2E] cmp r0, 0 beq _08175C94 _08175C62: movs r0, 0x4 bl FadeOutBGM movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_8175CC8 str r0, [r4] b _08175CB8 .pool _08175C94: ldr r0, =0x00001be8 cmp r1, r0 bne _08175CA0 movs r0, 0x8 bl FadeOutBGM _08175CA0: movs r0, 0x8 ldrsh r1, [r4, r0] ldr r0, =0x00001ab8 cmp r1, r0 bne _08175CB2 movs r0, 0xE4 lsls r0, 1 bl m4aSongNumStart _08175CB2: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] _08175CB8: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175C34 thumb_func_start sub_8175CC8 sub_8175CC8: @ 8175CC8 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08175CDC movs r0, 0xFF bl SoftReset _08175CDC: pop {r0} bx r0 .pool thumb_func_end sub_8175CC8 thumb_func_start sub_8175CE4 sub_8175CE4: @ 8175CE4 push {lr} sub sp, 0x8 movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0x1C movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, =0x040000d4 mov r0, sp str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r2, [r0] str r0, [r1] ldr r0, =0x05000002 str r0, [r1, 0x4] ldr r0, =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end sub_8175CE4 thumb_func_start sub_8175DA0 sub_8175DA0: @ 8175DA0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0xA bhi _08175E00 lsls r0, 2 ldr r1, =_08175DD4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08175DD4: .4byte _08175E00 .4byte _08175E40 .4byte _08175E60 .4byte _08175F38 .4byte _08175F5C .4byte _08175FC8 .4byte _08175E00 .4byte _08175E00 .4byte _08175E00 .4byte _08175E00 .4byte _08175FFC _08175E00: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _08175E12 b _0817602A _08175E12: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 movs r1, 0x1 strh r1, [r0, 0x8] movs r1, 0x48 strh r1, [r0, 0xE] movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0x24] ldr r0, =gUnknown_0203BCE0 strh r2, [r0] b _0817602A .pool _08175E40: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r5 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _08175E58 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _0817602A _08175E58: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0817602A _08175E60: lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r3, r0, r5 movs r0, 0xA ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r5, r0, r5 ldr r1, [r5] ldr r0, =sub_8175774 mov r9, r2 cmp r1, r0 bne _08175F32 movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0x38 bgt _08175F2C movs r5, 0 ldr r2, =gUnknown_085E6AF4 mov r8, r2 adds r7, r3, 0 movs r6, 0xA0 lsls r6, 19 _08175E92: movs r3, 0xC ldrsh r1, [r7, r3] lsls r0, r1, 2 adds r0, r1 adds r0, r5 lsls r0, 2 add r0, r8 ldr r2, [r0] ldr r0, [r2, 0x4] lsrs r1, r6, 24 ldrb r2, [r2, 0x1] bl sub_81755BC movs r0, 0x80 lsls r0, 21 adds r6, r0 adds r5, 0x1 cmp r5, 0x4 ble _08175E92 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram ldr r3, =gTasks mov r2, r9 adds r1, r2, r4 lsls r1, 3 adds r1, r3 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] movs r0, 0xA ldrsh r2, [r1, r0] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r3 movs r2, 0x1 strh r2, [r0, 0x24] movs r2, 0xA ldrsh r1, [r1, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r3 movs r3, 0x22 ldrsh r0, [r0, r3] cmp r0, 0x1 bne _08175F14 movs r0, 0xC0 lsls r0, 2 ldr r1, =0x0000328d b _08175F1A .pool _08175F14: movs r0, 0xC0 lsls r0, 2 ldr r1, =0x00001967 _08175F1A: str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0817602A .pool _08175F2C: movs r0, 0xA strh r0, [r3, 0x8] b _0817602A _08175F32: movs r0, 0 strh r0, [r5, 0x24] b _0817602A _08175F38: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0817602A lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 movs r1, 0x73 strh r1, [r0, 0xE] ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _0817602A .pool _08175F5C: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r5 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _08175F74 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _0817602A _08175F74: ldrb r0, [r4, 0xC] ldrb r1, [r4, 0xA] bl sub_817603C lsls r0, 24 cmp r0, 0 beq _08175F8A ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0817602A _08175F8A: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] movs r3, 0xA ldrsh r1, [r4, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r1, 0x22 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _08175FB0 movs r0, 0xC0 lsls r0, 2 ldr r1, =0x0000328d b _08175FB6 .pool _08175FB0: movs r0, 0xC0 lsls r0, 2 ldr r1, =0x00001967 _08175FB6: str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0817602A .pool _08175FC8: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0817602A movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x2 bl CopyWindowToVram ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] b _0817602A .pool _08175FFC: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 movs r2, 0xA ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r5, 0 movs r1, 0x1 strh r1, [r0, 0x10] adds r0, r4, 0 bl DestroyTask bl sub_81755A4 ldr r4, =gUnknown_0203BCE8 ldr r0, [r4] bl Free str r5, [r4] _0817602A: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8175DA0 thumb_func_start sub_817603C sub_817603C: @ 817603C push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 lsls r1, 24 lsrs r2, r1, 24 adds r5, r2, 0 ldr r4, =gTasks cmp r3, 0x6 bne _0817605C lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _0817605C: cmp r3, 0xC bne _0817606E lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x16] strh r1, [r0, 0x1E] _0817606E: cmp r3, 0x12 bne _0817607E lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _0817607E: cmp r3, 0x18 bne _08176092 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _08176092: cmp r3, 0x1E bne _081760A2 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081760A2: cmp r3, 0x24 bne _081760B6 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x3 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081760B6: cmp r3, 0x2A bne _081760C6 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x1E] _081760C6: cmp r6, 0x30 bne _081760DA lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r4 movs r1, 0x4 strh r1, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x1E] _081760DA: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r4 movs r1, 0x1E ldrsh r0, [r0, r1] cmp r0, 0 bne _081760F4 movs r0, 0 b _081760F6 .pool _081760F4: movs r0, 0x1 _081760F6: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_817603C thumb_func_start sub_81760FC sub_81760FC: @ 81760FC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r4 movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0x1 beq _0817612C cmp r0, 0x1 bgt _0817611A b _08176244 _0817611A: cmp r0, 0x2 beq _08176158 cmp r0, 0x3 bne _08176124 b _08176230 _08176124: b _08176244 .pool _0817612C: ldr r0, =gUnknown_0203BCE8 ldr r0, [r0] adds r0, 0x90 ldrh r0, [r0] cmp r0, 0 bne _0817614E movs r3, 0xA ldrsh r0, [r2, r3] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r3, 0x24 ldrsh r0, [r1, r3] cmp r0, 0 bne _0817614E b _08176244 _0817614E: ldrh r0, [r2, 0x8] adds r0, 0x1 b _08176242 .pool _08176158: ldr r6, =gUnknown_0203BCE8 ldr r3, [r6] adds r0, r3, 0 adds r0, 0x8E ldrh r0, [r0] cmp r0, 0x47 beq _08176244 movs r0, 0xA ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 ldr r1, [r0] ldr r0, =sub_8175774 cmp r1, r0 bne _08176244 adds r0, r3, 0 adds r0, 0x92 ldrh r0, [r0] lsls r0, 1 adds r0, r3, r0 ldrh r0, [r0] ldr r4, =gUnknown_085E6F7C adds r1, r3, 0 adds r1, 0x90 ldrh r3, [r1] lsls r2, r3, 1 adds r1, r2, r4 ldrb r1, [r1] adds r4, 0x1 adds r2, r4 ldrb r2, [r2] bl sub_8177224 lsls r0, 24 lsrs r2, r0, 24 ldr r0, [r6] adds r1, r0, 0 adds r1, 0x92 ldrh r3, [r1] adds r0, 0x94 ldrh r0, [r0] subs r0, 0x1 cmp r3, r0 bge _081761D8 adds r0, r3, 0x1 strh r0, [r1] ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x32 b _081761EA .pool _081761D8: movs r0, 0 strh r0, [r1] ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0x80 lsls r1, 2 _081761EA: strh r1, [r0, 0x34] ldr r0, =gUnknown_0203BCE8 ldr r1, [r0] adds r2, r1, 0 adds r2, 0x8E ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] adds r1, 0x90 ldrh r0, [r1] cmp r0, 0x2 bne _08176210 movs r0, 0 b _08176212 .pool _08176210: adds r0, 0x1 _08176212: strh r0, [r1] ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0x32 strh r0, [r1, 0xE] ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08176244 .pool _08176230: ldrh r1, [r2, 0xE] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 beq _08176240 subs r0, r1, 0x1 strh r0, [r2, 0xE] b _08176244 _08176240: movs r0, 0x1 _08176242: strh r0, [r2, 0x8] _08176244: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81760FC thumb_func_start sub_817624C sub_817624C: @ 817624C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r6, r1, 0 cmp r0, 0x32 bls _08176268 b _08176514 _08176268: lsls r0, 2 ldr r1, =_0817627C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0817627C: .4byte _08176348 .4byte _0817636C .4byte _081763C0 .4byte _081763D8 .4byte _08176414 .4byte _08176438 .4byte _08176484 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176490 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _081764B0 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _081764D4 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176514 .4byte _08176508 _08176348: lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl Sin ldr r1, =gUnknown_0203BD26 strh r0, [r1] b _08176390 .pool _0817636C: ldr r7, =gUnknown_0203BD26 movs r3, 0 ldrsh r4, [r7, r3] cmp r4, 0 beq _0817639C lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r6 ldrh r0, [r4, 0x12] lsls r0, 16 asrs r0, 17 movs r1, 0x7F ands r0, r1 movs r1, 0xC bl Sin strh r0, [r7] _08176390: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] b _08176514 .pool _0817639C: ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 strh r2, [r0, 0x2E] strh r4, [r1, 0x12] b _08176430 .pool _081763C0: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x12] movs r3, 0x12 ldrsh r0, [r1, r3] cmp r0, 0x3F bgt _08176430 adds r0, r2, 0x1 strh r0, [r1, 0x12] b _0817644E _081763D8: ldr r3, =gSprites lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x2E] movs r0, 0x78 strh r0, [r2, 0x10] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _08176514 .pool _08176414: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r1, r0, r6 ldrh r2, [r1, 0x10] movs r3, 0x10 ldrsh r0, [r1, r3] cmp r0, 0 beq _0817642C subs r0, r2, 0x1 strh r0, [r1, 0x10] b _08176514 _0817642C: movs r0, 0x40 strh r0, [r1, 0x12] _08176430: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08176514 _08176438: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r6 ldrh r1, [r4, 0x12] movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0 ble _08176464 subs r0, r1, 0x1 strh r0, [r4, 0x12] _0817644E: movs r1, 0x7F ands r0, r1 movs r1, 0x14 bl Sin ldr r1, =gUnknown_0203BD26 strh r0, [r1] b _08176514 .pool _08176464: ldr r2, =gSprites movs r3, 0xC ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x2E] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08176514 .pool _08176484: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0x32 b _08176512 _08176490: ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x2 b _081764C8 .pool _081764B0: ldr r3, =gSprites lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r6 movs r0, 0xC ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 movs r2, 0x4 _081764C8: strh r2, [r0, 0x2E] movs r0, 0x32 strh r0, [r1, 0x8] b _08176514 .pool _081764D4: ldr r3, =gSprites lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r6 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x5 strh r1, [r0, 0x2E] movs r0, 0xE ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x3 strh r1, [r0, 0x2E] movs r0, 0x32 strh r0, [r2, 0x8] b _08176514 .pool _08176508: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 _08176512: strh r1, [r0, 0x8] _08176514: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_817624C thumb_func_start sub_817651C sub_817651C: @ 817651C push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r3, 0x8 ldrsh r0, [r0, r3] adds r4, r1, 0 cmp r0, 0x4 bhi _0817655C lsls r0, 2 ldr r1, =_08176548 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08176548: .4byte _0817655C .4byte _081765A0 .4byte _081765AC .4byte _081765F4 .4byte _08176640 _0817655C: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r1, 0xA ldrsh r0, [r2, r1] ldr r5, =0x00007fff cmp r0, r5 beq _081765A0 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0x2 bne _081765A0 movs r1, 0xA ldrsh r0, [r3, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r4 movs r0, 0x14 strh r0, [r1, 0x8] strh r5, [r2, 0xA] _081765A0: movs r0, 0 bl sub_817B540 b _08176646 .pool _081765AC: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 movs r3, 0xA ldrsh r0, [r2, r3] ldr r5, =0x00007fff cmp r0, r5 beq _08176638 movs r0, 0xC ldrsh r1, [r2, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r3, r0, r4 ldrh r1, [r3, 0x12] movs r0, 0x80 negs r0, r0 ands r0, r1 movs r1, 0xA0 lsls r1, 2 cmp r0, r1 bne _08176638 movs r0, 0x1 strh r0, [r3, 0x8] strh r5, [r2, 0xA] b _08176638 .pool _081765F4: lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r2, r0, r4 ldrh r3, [r2, 0xA] movs r0, 0xA ldrsh r1, [r2, r0] ldr r5, =0x00007fff cmp r1, r5 beq _08176638 movs r0, 0x92 lsls r0, 2 cmp r1, r0 bne _08176634 movs r3, 0xC ldrsh r1, [r2, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r1, [r0, r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xA strh r1, [r0, 0x8] strh r5, [r2, 0xA] b _08176638 .pool _08176634: adds r0, r3, 0x1 strh r0, [r2, 0xA] _08176638: movs r0, 0x1 bl sub_817B540 b _08176646 _08176640: movs r0, 0x2 bl sub_817B540 _08176646: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_817651C thumb_func_start sub_817664C sub_817664C: @ 817664C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 cmp r0, 0x4 bls _08176662 b _081769E0 _08176662: lsls r0, 2 ldr r1, =_08176670 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08176670: .4byte _08176684 .4byte _0817672C .4byte _081767D8 .4byte _08176884 .4byte _08176934 _08176684: ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r2, 0x88 lsls r2, 1 strh r2, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _081769D4 .pool _0817672C: ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r0, 0 movs r2, 0x20 b _081769D4 .pool _081767D8: ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x88 lsls r1, 1 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _081769D4 .pool _08176884: ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x78 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =0x0000ffe0 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x1 b _081769D4 .pool _08176934: ldr r5, =gSprites ldr r0, =gTasks lsls r4, r7, 2 adds r4, r7 lsls r4, 3 adds r4, r0 movs r1, 0x12 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r3, 0 movs r1, 0x58 strh r1, [r0, 0x20] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x98 strh r1, [r0, 0x20] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r2, 0x2E strh r2, [r0, 0x22] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] movs r0, 0x12 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r3, [r0, 0x2E] movs r1, 0x80 lsls r1, 6 movs r2, 0x80 lsls r2, 2 movs r0, 0x2 _081769D4: movs r3, 0x8 bl sub_817B3DC lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] _081769E0: ldr r0, =sub_817651C movs r1, 0 bl CreateTask ldr r6, =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r5, r1, r6 lsls r0, 24 lsrs r0, 24 movs r4, 0 strh r0, [r5, 0xC] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 mov r1, r8 strh r1, [r0, 0x8] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0xA] movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xC] ldr r0, =sub_817624C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x8] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r7, [r0, 0xA] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x12] strh r1, [r0, 0xC] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 ldrh r1, [r5, 0x14] strh r1, [r0, 0xE] movs r0, 0xA ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r6 strh r4, [r0, 0x10] mov r1, r8 cmp r1, 0x2 bne _08176A94 movs r1, 0xA ldrsh r0, [r5, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r6 movs r0, 0x45 strh r0, [r1, 0x12] _08176A94: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_817664C thumb_func_start sub_8176AB0 sub_8176AB0: @ 8176AB0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r6, r0, r1 ldrb r0, [r6] cmp r0, 0x1 beq _08176B30 cmp r0, 0x1 ble _08176AD6 cmp r0, 0x2 beq _08176B54 cmp r0, 0x3 bne _08176AD6 b _08176C80 _08176AD6: movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0x1C movs r1, 0x8 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 strb r0, [r6] b _08176C96 .pool _08176B30: ldr r1, =gUnknown_0203BD24 movs r0, 0x22 strh r0, [r1] ldr r1, =gUnknown_0203BD26 movs r0, 0 strh r0, [r1] adds r0, r4, 0 bl sub_817B1C8 ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _08176C96 .pool _08176B54: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08176BD8 ldr r0, =gUnknown_085F5334 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F53BC bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5354 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5384 bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_817B834 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, =sub_8176EE8 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, =gUnknown_085E6FD0 str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_817B88C b _08176C2C .pool _08176BD8: ldr r0, =gUnknown_085F5344 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F53AC bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5354 bl LoadCompressedObjectPic ldr r0, =gUnknown_085F5384 bl LoadSpritePalettes movs r0, 0x78 movs r1, 0x2E bl sub_817B88C lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 strh r2, [r4, 0x12] ldr r6, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r6, 0 adds r5, 0x1C adds r2, r0, r5 ldr r1, =sub_8176EE8 str r1, [r2] adds r6, 0x8 adds r0, r6 ldr r1, =gUnknown_085E6FD0 str r1, [r0] movs r0, 0x88 lsls r0, 1 movs r1, 0x2E bl sub_817B834 _08176C2C: lsls r0, 24 lsrs r2, r0, 24 strh r2, [r4, 0x14] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r5, r0, r5 ldr r1, =sub_8176F90 str r1, [r5] adds r0, r6 ldr r1, =gUnknown_085E7010 str r1, [r0] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08176C96 .pool _08176C80: adds r0, r4, 0 adds r1, r5, 0 bl sub_817664C adds r0, r4, 0 bl sub_817B3A8 movs r0, 0 strb r0, [r6] movs r0, 0x1 b _08176C98 _08176C96: movs r0, 0 _08176C98: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8176AB0 thumb_func_start sub_8176CA0 sub_8176CA0: @ 8176CA0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0x8] movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0 beq _08176CC6 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0x8] _08176CC6: ldrh r1, [r4, 0xA] movs r2, 0xA ldrsh r0, [r4, r2] cmp r0, 0 beq _08176CDC lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xA] _08176CDC: ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 beq _08176CF2 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xC] _08176CF2: ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _08176D08 lsls r0, r1, 24 lsrs r0, 24 bl DestroyTask movs r0, 0 strh r0, [r4, 0xE] _08176D08: ldr r1, =gUnknown_0203BD28 movs r0, 0x1 strh r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8176CA0 thumb_func_start sub_8176D1C sub_8176D1C: @ 8176D1C push {r4-r7,lr} adds r3, r0, 0 adds r4, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r1, 16 lsrs r7, r1, 16 lsls r4, 16 lsrs r5, r4, 16 ldr r0, =gUnknown_085E5770 movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, =gIntroCopyright_Pal adds r1, r5, 0 movs r2, 0x20 bl LoadPalette lsrs r4, 20 lsls r4, 28 lsrs r4, 16 movs r1, 0 adds r4, 0x1 ldr r2, =0x000003ff _08176D52: lsls r0, r1, 1 adds r0, r7 adds r0, r6 strh r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, r2 bls _08176D52 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8176D1C thumb_func_start sub_8176D78 sub_8176D78: @ 8176D78 push {lr} lsls r0, 24 lsrs r2, r0, 24 adds r3, r2, 0 movs r0, 0x3F ands r0, r2 adds r1, r0, 0 adds r1, 0x50 cmp r2, 0xFF bne _08176D90 movs r0, 0x1 b _08176DB6 _08176D90: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _08176DA0 movs r2, 0x80 lsls r2, 4 adds r0, r2, 0 orrs r1, r0 _08176DA0: movs r0, 0x40 ands r3, r0 cmp r3, 0 beq _08176DB4 movs r2, 0x80 lsls r2, 3 adds r0, r2, 0 orrs r1, r0 lsls r0, r1, 16 lsrs r1, r0, 16 _08176DB4: adds r0, r1, 0 _08176DB6: pop {r1} bx r1 thumb_func_end sub_8176D78 thumb_func_start sub_8176DBC sub_8176DBC: @ 8176DBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r0, [sp] ldr r0, [sp, 0x2C] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x4] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x8] lsls r0, 16 lsrs r0, 20 lsls r0, 28 lsrs r0, 16 mov r9, r0 movs r5, 0 _08176DEA: movs r4, 0 lsls r7, r5, 1 ldr r1, [sp, 0x4] adds r0, r1, r5 adds r2, r5, 0x1 mov r8, r2 lsls r0, 6 ldr r1, [sp, 0x8] adds r6, r0, r1 _08176DFC: adds r0, r7, r5 adds r0, r4 ldr r2, [sp] adds r0, r2, r0 ldrb r0, [r0] bl sub_8176D78 mov r2, r10 adds r1, r2, r4 lsls r1, 1 adds r1, r6 movs r2, 0xC0 lsls r2, 19 adds r1, r2 add r0, r9 strh r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08176DFC mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08176DEA add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8176DBC thumb_func_start sub_8176E40 sub_8176E40: @ 8176E40 push {r4-r7,lr} sub sp, 0x4 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsrs r1, 20 lsls r1, 28 lsrs r1, 16 movs r2, 0 ldr r7, =gUnknown_085E5BAC movs r4, 0xC0 lsls r4, 19 adds r1, 0x1 ldr r3, =0x000003ff _08176E5E: lsls r0, r2, 1 adds r0, r5 adds r0, r4 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, r3 bls _08176E5E str r6, [sp] adds r0, r7, 0 movs r1, 0x3 movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC ldr r0, =gUnknown_085E5BBB str r6, [sp] movs r1, 0x7 movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC ldr r4, =gUnknown_085E5BCA str r6, [sp] adds r0, r4, 0 movs r1, 0xB movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC str r6, [sp] adds r0, r4, 0 movs r1, 0x10 movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC ldr r0, =gUnknown_085E5BD9 str r6, [sp] movs r1, 0x14 movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC ldr r0, =gUnknown_085E5BE8 str r6, [sp] movs r1, 0x18 movs r2, 0x7 adds r3, r5, 0 bl sub_8176DBC add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8176E40 thumb_func_start sub_8176EE8 sub_8176EE8: @ 8176EE8 push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_0203BD28 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08176F04 adds r0, r4, 0 bl DestroySprite b _08176F88 .pool _08176F04: movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0x5 bhi _08176F88 lsls r0, 2 ldr r1, =_08176F1C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08176F1C: .4byte _08176F34 .4byte _08176F3E .4byte _08176F44 .4byte _08176F4E .4byte _08176F58 .4byte _08176F6E _08176F34: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _08176F88 _08176F3E: adds r0, r4, 0 movs r1, 0x1 b _08176F72 _08176F44: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent b _08176F88 _08176F4E: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnimIfDifferent b _08176F88 _08176F58: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x78 ble _08176F88 subs r0, r1, 0x1 b _08176F86 _08176F6E: adds r0, r4, 0 movs r1, 0 _08176F72: bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08176F88 subs r0, r2, 0x1 _08176F86: strh r0, [r4, 0x20] _08176F88: pop {r4} pop {r0} bx r0 thumb_func_end sub_8176EE8 thumb_func_start sub_8176F90 sub_8176F90: @ 8176F90 push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_0203BD28 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _08176FAC adds r0, r4, 0 bl DestroySprite b _08177048 .pool _08176FAC: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _08176FD4 cmp r0, 0x1 bgt _08176FBE cmp r0, 0 beq _08176FC8 b _08177048 _08176FBE: cmp r0, 0x2 beq _08177010 cmp r0, 0x3 beq _0817702E b _08177048 _08176FC8: strh r0, [r4, 0x26] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent b _08177048 _08176FD4: movs r1, 0x20 ldrsh r0, [r4, r1] cmp r0, 0xC8 ble _08176FE6 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent b _08176FEE _08176FE6: adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnimIfDifferent _08176FEE: ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08177000 subs r0, r2, 0x2 strh r0, [r4, 0x20] _08177000: ldr r0, =gUnknown_0203BD26 ldrh r0, [r0] negs r0, r0 strh r0, [r4, 0x26] b _08177048 .pool _08177010: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r1, [r4, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08177048 ldrh r0, [r4, 0x20] adds r0, 0x1 b _08177046 _0817702E: adds r0, r4, 0 movs r1, 0 bl StartSpriteAnimIfDifferent ldrh r2, [r4, 0x20] movs r0, 0x20 ldrsh r1, [r4, r0] movs r0, 0x20 negs r0, r0 cmp r1, r0 ble _08177048 subs r0, r2, 0x1 _08177046: strh r0, [r4, 0x20] _08177048: pop {r4} pop {r0} bx r0 thumb_func_end sub_8176F90 thumb_func_start sub_8177050 sub_8177050: @ 8177050 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldr r0, =gUnknown_0203BD28 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 beq _0817706C ldrh r0, [r5, 0x3A] bl sub_818D820 b _0817721C .pool _0817706C: ldrh r0, [r5, 0x3C] adds r0, 0x1 strh r0, [r5, 0x3C] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0xA bhi _081770B4 lsls r0, 2 ldr r1, =_08177088 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08177088: .4byte _081770B4 .4byte _0817710E .4byte _08177190 .4byte _081771C6 .4byte _081770B4 .4byte _081770B4 .4byte _081770B4 .4byte _081770B4 .4byte _081770B4 .4byte _081771FE .4byte _08177206 _081770B4: ldrb r1, [r5, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x30 ldrsh r1, [r5, r0] movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r5, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x3] movs r0, 0x10 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x80 lsls r0, 9 movs r1, 0x10 bl __divsi3 adds r1, r0, 0 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r0, 0x1 strh r0, [r5, 0x2E] b _0817721C _0817710E: ldrh r1, [r5, 0x32] movs r2, 0x32 ldrsh r0, [r5, r2] cmp r0, 0xFF bgt _08177144 adds r0, r1, 0 adds r0, 0x8 strh r0, [r5, 0x32] ldrh r4, [r5, 0x30] lsls r4, 24 lsrs r4, 24 movs r0, 0x32 ldrsh r1, [r5, r0] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 str r1, [sp] adds r0, r4, 0 movs r2, 0 movs r3, 0 bl SetOamMatrix b _0817714A _08177144: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _0817714A: movs r2, 0x30 ldrsh r1, [r5, r2] cmp r1, 0x2 beq _0817721C cmp r1, 0x2 bgt _0817715C cmp r1, 0x1 beq _08177162 b _0817721C _0817715C: cmp r1, 0x3 beq _0817717A b _0817721C _08177162: ldrh r1, [r5, 0x3C] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08177172 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08177172: ldrh r0, [r5, 0x20] subs r0, 0x2 strh r0, [r5, 0x20] b _0817721C _0817717A: ldrh r0, [r5, 0x3C] ands r1, r0 cmp r1, 0 bne _08177188 ldrh r0, [r5, 0x22] adds r0, 0x1 strh r0, [r5, 0x22] _08177188: ldrh r0, [r5, 0x20] adds r0, 0x2 strh r0, [r5, 0x20] b _0817721C _08177190: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _081771A0 subs r0, r1, 0x1 strh r0, [r5, 0x34] b _0817721C _081771A0: movs r1, 0xF4 lsls r1, 4 movs r0, 0x50 bl SetGpuReg movs r0, 0x52 movs r1, 0x10 bl SetGpuReg ldrb r1, [r5, 0x1] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r5, 0x1] movs r0, 0x10 strh r0, [r5, 0x34] b _081771FE _081771C6: ldrh r1, [r5, 0x34] movs r2, 0x34 ldrsh r0, [r5, r2] cmp r0, 0 beq _081771EC subs r1, 0x1 strh r1, [r5, 0x34] movs r0, 0x34 ldrsh r2, [r5, r0] movs r0, 0x10 subs r0, r2 lsls r0, 8 adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg b _0817721C _081771EC: adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] movs r0, 0x9 strh r0, [r5, 0x2E] b _0817721C _081771FE: ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] b _0817721C _08177206: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg ldrh r0, [r5, 0x3A] bl sub_818D820 _0817721C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8177050 thumb_func_start sub_8177224 sub_8177224: @ 8177224 push {r4-r7,lr} adds r5, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r5, 16 lsrs r5, 16 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r3, r5, 0 bl sub_80C0E9C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r2, r1, r6 ldrb r3, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 movs r3, 0x4 orrs r0, r3 strb r0, [r2, 0x5] adds r0, r5, 0x1 strh r0, [r2, 0x30] movs r0, 0x3E adds r0, r2 mov r12, r0 ldrb r0, [r0] orrs r0, r3 mov r3, r12 strb r0, [r3] adds r0, r6, 0 adds r0, 0x1C adds r1, r0 ldr r0, =sub_8177050 str r0, [r1] strh r4, [r2, 0x3A] ldr r0, =gUnknown_085E7068 movs r7, 0x20 ldrsh r1, [r2, r7] movs r3, 0x22 ldrsh r2, [r2, r3] movs r3, 0x1 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r4, [r0, 0x2E] lsls r5, 24 lsrs r5, 24 adds r1, r5, 0 bl StartSpriteAnimIfDifferent adds r0, r4, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8177224 thumb_func_start sub_81772B8 sub_81772B8: @ 81772B8 push {r4,lr} adds r3, r0, 0 ldr r4, =gSprites movs r1, 0x2E ldrsh r0, [r3, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0xA beq _081772DC ldr r0, =gUnknown_0203BD28 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, 0 beq _081772EC _081772DC: adds r0, r3, 0 bl DestroySprite b _08177380 .pool _081772EC: adds r0, r1, 0 adds r0, 0x3E ldrb r0, [r0] movs r1, 0x3E adds r1, r3 mov r12, r1 movs r1, 0x4 ands r1, r0 mov r0, r12 ldrb r2, [r0] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x1] movs r0, 0xC ands r0, r1 ldrb r2, [r3, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r0, 0x2E ldrsh r2, [r3, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x1] lsls r0, 30 lsrs r0, 30 movs r2, 0x4 negs r2, r2 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x1] movs r2, 0x2E ldrsh r1, [r3, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x3] movs r1, 0x3E ands r1, r0 ldrb r2, [r3, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r3, 0x20] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x22] strh r0, [r3, 0x22] _08177380: pop {r4} pop {r0} bx r0 thumb_func_end sub_81772B8 thumb_func_start sub_8177388 sub_8177388: @ 8177388 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =0x00004023 bl VarGet lsls r0, 16 lsrs r0, 16 bl GetStarterPokemon lsls r0, 16 lsrs r0, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r4, 0x1 movs r6, 0 ldr r5, =0x00000181 _081773B4: adds r0, r4, 0 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _081773D4 ldr r0, =gUnknown_0203BCE8 ldr r0, [r0] lsls r1, r6, 1 adds r0, 0x96 adds r0, r1 strh r4, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _081773D4: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bls _081773B4 adds r4, r6, 0 ldr r0, =0x00000181 ldr r1, =gUnknown_0203BCE8 mov r8, r1 lsls r7, r4, 16 cmp r4, r0 bhi _08177406 mov r5, r8 movs r3, 0 adds r2, r0, 0 _081773F2: ldr r0, [r5] lsls r1, r4, 1 adds r0, 0x96 adds r0, r1 strh r3, [r0] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, r2 bls _081773F2 _08177406: mov r2, r8 ldr r1, [r2] ldr r2, =0x0000039a adds r0, r1, r2 strh r6, [r0] lsrs r0, r7, 16 cmp r0, 0x46 bhi _08177430 adds r0, r1, 0 adds r0, 0x94 strh r6, [r0] b _08177436 .pool _08177430: adds r1, 0x94 movs r0, 0x47 strh r0, [r1] _08177436: movs r6, 0 ldr r0, =gUnknown_0203BCE8 mov r9, r0 ldr r1, =0x0000039a mov r8, r1 movs r7, 0 b _08177450 .pool _0817744C: cmp r6, 0x46 bhi _081774AC _08177450: bl Random mov r2, r9 ldr r4, [r2] mov r1, r8 adds r5, r4, r1 lsls r0, 16 lsrs r0, 16 ldrh r1, [r5] bl __umodsi3 lsls r0, 16 lsrs r3, r0, 16 lsls r1, r6, 1 adds r1, r4, r1 lsls r0, r3, 1 adds r4, 0x96 adds r2, r4, r0 ldrh r0, [r2] strh r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 strh r7, [r2] ldrh r0, [r5] subs r0, 0x1 strh r0, [r5] lsls r0, 16 lsrs r0, 16 cmp r3, r0 beq _081774A0 ldrh r0, [r5] lsls r0, 1 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r2] ldrh r0, [r5] lsls r0, 1 adds r0, r4, r0 strh r7, [r0] _081774A0: mov r2, r9 ldr r0, [r2] add r0, r8 ldrh r0, [r0] cmp r0, 0 bne _0817744C _081774AC: ldr r1, =gUnknown_0203BCE8 ldr r2, [r1] adds r3, r2, 0 adds r3, 0x94 ldrh r0, [r3] mov r8, r1 cmp r0, 0x46 bhi _081774F8 adds r6, r0, 0 movs r3, 0 cmp r6, 0x46 bhi _081774EE mov r4, r8 _081774C6: ldr r2, [r4] lsls r1, r6, 1 adds r1, r2, r1 lsls r0, r3, 1 adds r0, r2, r0 ldrh r0, [r0] strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r2, 0x94 ldrh r2, [r2] cmp r3, r2 bne _081774E4 movs r3, 0 _081774E4: adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0x46 bls _081774C6 _081774EE: mov r1, r8 ldr r0, [r1] b _08177538 .pool _081774F8: movs r4, 0 ldrh r0, [r2] cmp r0, r10 beq _08177516 adds r1, r2, 0 _08177502: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r1, r0 ldrh r0, [r0] cmp r0, r10 beq _08177516 cmp r4, 0x46 bls _08177502 _08177516: mov r0, r8 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x94 ldrh r0, [r0] subs r0, 0x1 cmp r4, r0 bge _08177536 lsls r0, r4, 1 adds r0, r2, r0 adds r2, 0x8C ldrh r1, [r2] strh r1, [r0] mov r1, r10 strh r1, [r2] b _0817753E _08177536: adds r0, r2, 0 _08177538: adds r0, 0x8C mov r2, r10 strh r2, [r0] _0817753E: mov r1, r8 ldr r0, [r1] adds r0, 0x94 movs r1, 0x47 strh r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8177388 .align 2, 0 @ Don't pad with nop.