.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_817354C sub_817354C: @ 817354C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_817354C thumb_func_start sub_8173560 sub_8173560: @ 8173560 push {lr} bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8173560 thumb_func_start sub_817357C sub_817357C: @ 817357C push {r4,lr} sub sp, 0x4 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bls _08173590 b _08173688 _08173590: lsls r0, 2 ldr r1, =_081735A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081735A4: .4byte _081735B8 .4byte _081735E8 .4byte _081735EE .4byte _08173620 .4byte _0817365C _081735B8: movs r0, 0 bl SetVBlankCallback bl sub_8174EC4 ldr r4, =gUnknown_0203BCDC ldr r0, =0x00002014 bl AllocZeroed str r0, [r4] ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _08173688 .pool _081735E8: bl sub_8174F70 b _08173642 _081735EE: ldr r1, =0x00003f42 movs r0, 0x50 bl SetGpuReg movs r1, 0xE2 lsls r1, 3 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl sub_8174FAC ldr r0, =gUnknown_0203BCDC ldr r1, [r0] movs r0, 0 strh r0, [r1] b _08173642 .pool _08173620: bl sub_8175024 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08173688 ldr r0, =sub_817354C bl SetVBlankCallback movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _08173642: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08173688 .pool _0817365C: bl UpdatePaletteFade ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08173688 ldr r0, =sub_8173560 bl SetMainCallback2 movs r0, 0xDA lsls r0, 1 bl PlayBGM movs r0, 0 b _0817368A .pool _08173688: movs r0, 0x1 _0817368A: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_817357C thumb_func_start sub_8173694 sub_8173694: @ 8173694 push {r4,lr} bl sub_817357C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081736C4 ldr r0, =sub_817371C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] ldr r4, =gUnknown_0203BCD8 movs r0, 0x78 bl AllocZeroed str r0, [r4] _081736C4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8173694 thumb_func_start sub_81736D8 sub_81736D8: @ 81736D8 push {r4,lr} bl sub_817357C lsls r0, 24 cmp r0, 0 bne _08173708 ldr r0, =sub_817371C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] ldr r4, =gUnknown_0203BCD8 movs r0, 0x78 bl AllocZeroed str r0, [r4] _08173708: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81736D8 thumb_func_start sub_817371C sub_817371C: @ 817371C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r7, 0 ldr r0, =gUnknown_0203BCD8 mov r9, r0 _08173740: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r5, r0, 0 cmp r5, 0 beq _0817380C adds r0, r6, 0 movs r1, 0x41 bl GetMonData mov r1, r9 ldr r3, [r1] lsls r4, r7, 2 adds r4, r7 lsls r4, 2 adds r3, r4 ldr r2, =0x000001ff adds r1, r2, 0 ands r0, r1 ldrh r1, [r3, 0x8] ldr r5, =0xfffffe00 adds r2, r5, 0 ands r1, r2 orrs r1, r0 strh r1, [r3, 0x8] adds r0, r6, 0 movs r1, 0x1 bl GetMonData mov r2, r9 ldr r1, [r2] adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0 bl GetMonData mov r5, r9 ldr r1, [r5] adds r1, 0x4 adds r1, r4 str r0, [r1] adds r0, r6, 0 movs r1, 0x38 bl GetMonData ldr r2, [r5] adds r2, r4 lsls r0, 1 ldrb r3, [r2, 0x9] movs r1, 0x1 ands r1, r3 orrs r1, r0 strb r1, [r2, 0x9] adds r0, r6, 0 movs r1, 0x2 mov r2, sp bl GetMonData movs r2, 0 mov r6, r8 lsls r5, r6, 2 ldr r3, =gUnknown_0203BCD8 _081737CA: ldr r0, [r3] adds r1, r2, r4 adds r0, 0xA adds r0, r1 mov r6, sp adds r1, r6, r2 ldrb r1, [r1] strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x9 bls _081737CA ldr r0, =gTasks mov r2, r8 adds r1, r5, r2 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] b _08173840 .pool _0817380C: mov r6, r9 ldr r3, [r6] lsls r2, r7, 2 adds r2, r7 lsls r2, 2 adds r4, r3, r2 ldrh r0, [r4, 0x8] ldr r6, =0xfffffe00 adds r1, r6, 0 ands r0, r1 strh r0, [r4, 0x8] str r5, [r4] adds r3, 0x4 adds r3, r2 str r5, [r3] ldrb r1, [r4, 0x9] movs r0, 0x1 ands r0, r1 strb r0, [r4, 0x9] mov r1, r9 ldr r0, [r1] adds r0, r2 movs r1, 0xFF strb r1, [r0, 0xA] mov r2, r8 lsls r5, r2, 2 _08173840: adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bhi _0817384C b _08173740 _0817384C: ldr r0, =gUnknown_0203BCD4 movs r3, 0 str r3, [r0] ldr r4, =gTasks mov r6, r8 adds r1, r5, r6 lsls r1, 3 adds r2, r1, r4 strh r3, [r2, 0xA] movs r0, 0xFF strh r0, [r2, 0x10] movs r7, 0 adds r3, r4, 0 adds r3, 0x8 movs r2, 0xFF _0817386A: adds r0, r7, 0x5 lsls r0, 1 adds r0, r1 adds r0, r3 strh r2, [r0] adds r0, r7, 0x1 lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0x5 bls _0817386A mov r1, r8 adds r0, r5, r1 lsls r0, 3 adds r1, r0, r4 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _081738A4 ldr r0, =sub_8173A8C b _081738A6 .pool _081738A4: ldr r0, =sub_81738BC _081738A6: str r0, [r1] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_817371C thumb_func_start sub_81738BC sub_81738BC: @ 81738BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r7, =0x0201c000 ldr r0, =gUnknown_0203BCE4 ldrb r0, [r0] cmp r0, 0 bne _081738EC movs r2, 0x80 lsls r2, 6 adds r0, r7, 0 movs r1, 0 bl memset b _08173906 .pool _081738EC: movs r0, 0x3 bl sub_81534D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08173906 movs r2, 0x80 lsls r2, 6 adds r0, r7, 0 movs r1, 0 bl memset _08173906: movs r5, 0 ldrh r1, [r7, 0x8] ldr r2, =0x000001ff adds r0, r2, 0 ands r0, r1 mov r1, r9 lsls r1, 2 mov r8, r1 cmp r0, 0 beq _08173930 _0817391A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r7, 0x78 cmp r5, 0x31 bhi _08173934 ldrh r1, [r7, 0x8] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _0817391A _08173930: cmp r5, 0x31 bls _08173956 _08173934: ldr r4, =0x0201c000 adds r6, r4, 0 adds r4, 0x78 movs r5, 0 subs r7, 0x78 _0817393E: adds r0, r6, 0 adds r1, r4, 0 movs r2, 0x78 bl memcpy adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x78 adds r4, 0x78 cmp r5, 0x30 bls _0817393E _08173956: ldr r0, =gUnknown_0203BCD8 ldr r1, [r0] adds r0, r7, 0 movs r2, 0x78 bl memcpy movs r0, 0 movs r1, 0 bl sub_81973C4 ldr r2, =gUnknown_082C8959 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 movs r3, 0 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, =gTasks mov r0, r8 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, =sub_81739C4 str r1, [r0] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81738BC thumb_func_start sub_81739C4 sub_81739C4: @ 81739C4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gGameContinueCallback ldr r0, =sub_81736D8 str r0, [r1] movs r0, 0x3 bl TrySavingData lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF bne _08173A34 ldr r0, =gDamagedSaveSectors ldr r0, [r0] cmp r0, 0 beq _08173A34 movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x3 bl UnsetBgTilemapBuffer bl FreeAllWindowBuffers ldr r5, =gUnknown_0203BCDC ldr r0, [r5] cmp r0, 0 beq _08173A06 bl Free movs r0, 0 str r0, [r5] _08173A06: ldr r5, =gUnknown_0203BCD8 ldr r0, [r5] cmp r0, 0 beq _08173A16 bl Free movs r0, 0 str r0, [r5] _08173A16: adds r0, r4, 0 bl DestroyTask b _08173A4C .pool _08173A34: movs r0, 0x37 bl PlaySE ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_8173A5C str r1, [r0] movs r1, 0x20 strh r1, [r0, 0xE] _08173A4C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81739C4 thumb_func_start sub_8173A5C sub_8173A5C: @ 8173A5C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _08173A80 subs r0, r2, 0x1 strh r0, [r1, 0xE] b _08173A84 .pool _08173A80: ldr r0, =sub_8173A8C str r0, [r1] _08173A84: pop {r0} bx r0 .pool thumb_func_end sub_8173A5C thumb_func_start sub_8173A8C sub_8173A8C: @ 8173A8C lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, =sub_8173AA8 str r0, [r1] bx lr .pool thumb_func_end sub_8173A8C thumb_func_start sub_8173AA8 sub_8173AA8: @ 8173AA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r6, [r1, 0xA] ldr r2, =gUnknown_0203BCD8 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 ldr r2, [r2] adds r7, r2, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0x3 ble _08173AEC ldr r1, =gUnknown_085E53B4 b _08173AEE .pool _08173AEC: ldr r1, =gUnknown_085E53E4 _08173AEE: lsls r2, r6, 3 adds r0, r2, r1 ldrh r3, [r0] adds r0, r1, 0x2 adds r0, r2, r0 ldrh r4, [r0] adds r0, r1, 0x4 adds r0, r2, r0 ldrh r0, [r0] mov r9, r0 adds r1, 0x6 adds r2, r1 ldrh r5, [r2] ldrh r2, [r7, 0x8] ldr r0, =0x000001ff ands r0, r2 movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08173B20 lsls r0, r5, 16 movs r1, 0xA0 lsls r1, 12 adds r0, r1 lsrs r5, r0, 16 _08173B20: lsls r0, r2, 23 lsrs r0, 23 ldr r1, [r7] ldr r2, [r7, 0x4] lsls r3, 16 asrs r3, 16 str r3, [sp] lsls r3, r4, 16 asrs r3, 16 str r3, [sp, 0x4] lsls r3, r6, 24 lsrs r3, 24 str r3, [sp, 0x8] ldr r3, =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 bl sub_818D3E4 lsls r0, 24 lsrs r0, 24 ldr r4, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r3, r2, r4 movs r1, 0 mov r12, r1 mov r1, r9 strh r1, [r3, 0x30] strh r5, [r3, 0x32] mov r1, r12 strh r1, [r3, 0x2E] ldrh r1, [r7, 0x8] lsls r1, 23 lsrs r1, 23 strh r1, [r3, 0x3C] adds r4, 0x1C adds r2, r4 ldr r1, =sub_8175120 str r1, [r2] ldr r5, =gTasks adds r1, r6, 0x5 lsls r1, 1 mov r2, r8 lsls r4, r2, 2 add r4, r8 lsls r4, 3 adds r1, r4 adds r2, r5, 0 adds r2, 0x8 adds r1, r2 strh r0, [r1] movs r0, 0 movs r1, 0x1 bl sub_8197434 adds r4, r5 ldr r0, =sub_8173BC0 str r0, [r4] add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8173AA8 thumb_func_start sub_8173BC0 sub_8173BC0: @ 8173BC0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gTasks lsls r3, r0, 2 adds r3, r0 lsls r3, 3 adds r5, r3, r4 ldrh r0, [r5, 0xA] ldr r2, =gUnknown_0203BCD8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r2, [r2] adds r2, r1 adds r0, 0x5 lsls r0, 1 adds r0, r3 adds r4, 0x8 adds r0, r4 movs r3, 0 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r3, r0, r1 ldr r1, [r3, 0x1C] ldr r0, =SpriteCallbackDummy cmp r1, r0 bne _08173C1A ldrb r1, [r3, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r3, 0x1] adds r0, r2, 0 movs r1, 0 movs r2, 0xE bl sub_8174A88 movs r0, 0x78 strh r0, [r5, 0xE] ldr r0, =sub_8173C34 str r0, [r5] _08173C1A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8173BC0 thumb_func_start sub_8173C34 sub_8173C34: @ 8173C34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 adds r4, r6, r2 ldrh r3, [r4, 0xA] ldr r1, =gUnknown_0203BCD8 lsls r0, r3, 2 adds r0, r3 lsls r0, 2 ldr r1, [r1] adds r1, r0 mov r9, r1 ldrh r1, [r4, 0xE] movs r7, 0xE ldrsh r0, [r4, r7] mov r12, r2 cmp r0, 0 beq _08173C78 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _08173D10 .pool _08173C78: ldr r2, =gUnknown_0203BCD4 ldr r0, =gSprites mov r8, r0 adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 mov r1, r12 adds r1, 0x8 adds r6, r0, r1 movs r7, 0 ldrsh r1, [r6, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x5] lsrs r0, 4 movs r1, 0x80 lsls r1, 9 lsls r1, r0 ldr r3, [r2] orrs r3, r1 str r3, [r2] ldrh r2, [r4, 0xA] movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x4 bgt _08173D04 mov r7, r9 ldrh r1, [r7, 0x1C] ldr r0, =0x000001ff ands r0, r1 cmp r0, 0 beq _08173D04 adds r0, r2, 0x1 strh r0, [r4, 0xA] ldr r0, =0x000063b0 str r0, [sp] adds r0, r3, 0 movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 ldrsh r1, [r6, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x5] ldr r0, =sub_8173AA8 str r0, [r4] b _08173D10 .pool _08173D04: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 add r0, r12 ldr r1, =sub_8173D24 str r1, [r0] _08173D10: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8173C34 thumb_func_start sub_8173D24 sub_8173D24: @ 8173D24 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =0xffff0000 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0 bl BeginNormalPaletteFade movs r3, 0 lsls r1, r4, 2 adds r0, r1, r4 lsls r5, r0, 3 ldr r0, =gTasks + 0x8 mov r12, r0 mov r8, r1 ldr r6, =gSprites movs r7, 0xD negs r7, r7 _08173D52: adds r0, r3, 0x5 lsls r0, 1 adds r0, r5 mov r2, r12 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _08173D74 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x5] _08173D74: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08173D52 movs r0, 0 movs r1, 0xF bl sub_8174A38 movs r0, 0x69 bl PlaySE ldr r1, =gTasks mov r2, r8 adds r0, r2, r4 lsls r0, 3 adds r0, r1 movs r1, 0xC8 lsls r1, 1 strh r1, [r0, 0xE] ldr r1, =sub_8173DC0 str r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8173D24 thumb_func_start sub_8173DC0 sub_8173DC0: @ 8173DC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gTasks lsls r4, r6, 2 adds r0, r4, r6 lsls r5, r0, 3 adds r1, r5, r7 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0 beq _08173E04 subs r2, 0x1 strh r2, [r1, 0xE] movs r0, 0x3 ands r0, r2 cmp r0, 0 bne _08173E7E lsls r0, r2, 16 asrs r0, 16 cmp r0, 0x6E ble _08173E7E bl sub_81751FC b _08173E7E .pool _08173E04: movs r3, 0 mov r9, r4 ldr r0, =gUnknown_0203BCD4 mov r10, r0 adds r4, r5, 0 adds r7, 0x8 mov r8, r7 ldr r7, =gSprites movs r1, 0xD negs r1, r1 mov r12, r1 movs r5, 0x4 _08173E1C: adds r0, r3, 0x5 lsls r0, 1 adds r0, r4 mov r2, r8 adds r1, r0, r2 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0xFF beq _08173E40 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r12 ands r0, r2 orrs r0, r5 strb r0, [r1, 0x5] _08173E40: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _08173E1C mov r3, r10 ldr r0, [r3] ldr r1, =0x000063b0 str r1, [sp] movs r1, 0 movs r2, 0xC movs r3, 0xC bl BeginNormalPaletteFade movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, =gTasks mov r2, r9 adds r0, r2, r6 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0xE] ldr r1, =sub_8173EA4 str r1, [r0] _08173E7E: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8173DC0 thumb_func_start sub_8173EA4 sub_8173EA4: @ 8173EA4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xE] movs r3, 0xE ldrsh r0, [r1, r3] cmp r0, 0xF ble _08173ECC ldr r0, =sub_8173EE4 str r0, [r1] b _08173EDE .pool _08173ECC: adds r0, r2, 0x1 strh r0, [r1, 0xE] movs r0, 0xE ldrsh r1, [r1, r0] lsls r1, 24 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg _08173EDE: pop {r0} bx r0 thumb_func_end sub_8173EA4 thumb_func_start sub_8173EE4 sub_8173EE4: @ 8173EE4 push {r4-r6,lr} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x3 bl ShowBg ldr r6, =gSaveBlock2Ptr ldr r0, [r6] ldrb r0, [r0, 0x8] movs r1, 0x1 bl sub_818D97C lsls r0, 16 lsrs r0, 16 movs r1, 0x6 str r1, [sp] ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 movs r2, 0x78 movs r3, 0x48 bl sub_818D8AC ldr r1, =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r1 strh r0, [r4, 0x10] ldr r0, =gUnknown_085E5380 bl AddWindow ldr r0, [r6] ldrb r1, [r0, 0x14] lsrs r1, 3 ldr r2, =0x0000021d movs r0, 0x1 movs r3, 0xD0 bl sub_80987D4 movs r0, 0x1 bl stdpal_get movs r1, 0xE0 movs r2, 0x20 bl LoadPalette movs r0, 0x78 strh r0, [r4, 0xE] ldr r0, =sub_8173F84 str r0, [r4] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8173EE4 thumb_func_start sub_8173F84 sub_8173F84: @ 8173F84 push {r4,r5,lr} sub sp, 0x10 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, 0xE] movs r1, 0xE ldrsh r5, [r4, r1] cmp r5, 0 beq _08173FAC subs r0, 0x1 strh r0, [r4, 0xE] b _08174018 .pool _08173FAC: ldr r2, =gSprites movs r3, 0x10 ldrsh r1, [r4, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0xC0 beq _08173FD0 adds r0, r2, 0x1 strh r0, [r1, 0x20] b _08174018 .pool _08173FD0: movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 movs r1, 0x2 bl sub_8174C98 movs r0, 0 movs r1, 0 bl sub_81973C4 ldr r2, =gUnknown_085E8C14 str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 movs r3, 0 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =sub_8174028 str r0, [r4] _08174018: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8173F84 thumb_func_start sub_8174028 sub_8174028: @ 8174028 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0817404E movs r0, 0x4 bl FadeOutBGM ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_8174060 str r0, [r1] _0817404E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8174028 thumb_func_start sub_8174060 sub_8174060: @ 8174060 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gPlttBufferFaded ldr r1, =gPlttBufferUnfaded movs r2, 0x80 lsls r2, 2 bl CpuSet movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x8 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81740B0 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8174060 thumb_func_start sub_81740B0 sub_81740B0: @ 81740B0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08174164 lsls r0, r7, 2 mov r8, r0 ldr r1, =gTasks adds r0, r7 lsls r0, 3 adds r1, 0x12 adds r5, r0, r1 ldr r2, =gSprites mov r9, r2 movs r6, 0x5 _081740DC: ldrb r4, [r5] cmp r4, 0xFF beq _081740FA lsls r0, r4, 4 adds r0, r4 lsls r0, 2 add r0, r9 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix adds r0, r4, 0 bl sub_818D820 _081740FA: adds r5, 0x2 subs r6, 0x1 cmp r6, 0 bge _081740DC ldr r0, =gTasks mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] bl sub_818D8F0 movs r0, 0 bl HideBg movs r0, 0x1 bl HideBg movs r0, 0x3 bl HideBg bl FreeAllWindowBuffers movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x3 bl UnsetBgTilemapBuffer movs r0, 0 bl ResetBgsAndClearDma3BusyFlags adds r0, r7, 0 bl DestroyTask ldr r4, =gUnknown_0203BCDC ldr r0, [r4] cmp r0, 0 beq _08174150 bl Free movs r0, 0 str r0, [r4] _08174150: ldr r4, =gUnknown_0203BCD8 ldr r0, [r4] cmp r0, 0 beq _08174160 bl Free movs r0, 0 str r0, [r4] _08174160: bl sub_8174184 _08174164: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81740B0 thumb_func_start sub_8174184 sub_8174184: @ 8174184 push {lr} ldr r0, =sub_8175620 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_8174184 thumb_func_start sub_8174194 sub_8174194: @ 8174194 push {r4,lr} ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x5 bhi _081741D0 lsls r0, 2 ldr r1, =_081741B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081741B8: .4byte _081741D0 .4byte _08174200 .4byte _08174214 .4byte _08174240 .4byte _08174280 .4byte _081742B0 _081741D0: movs r0, 0 bl SetVBlankCallback bl sub_8174EC4 ldr r4, =gUnknown_0203BCDC ldr r0, =0x00002014 bl AllocZeroed str r0, [r4] ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _08174308 .pool _08174200: bl sub_8174F70 ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _081742A2 .pool _08174214: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl sub_8174FAC ldr r1, =gMain movs r4, 0x87 lsls r4, 3 adds r1, r4 b _081742A2 .pool _08174240: bl sub_8175024 lsls r0, 24 cmp r0, 0 bne _08174308 ldr r1, =0x0201c000 ldr r0, =gUnknown_085E56D4 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3} stm r1!, {r2,r3} movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80F9BCC ldr r0, =sub_817354C bl SetVBlankCallback ldr r1, =gMain movs r4, 0x87 lsls r4, 3 adds r1, r4 b _081742A2 .pool _08174280: bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade bl sub_80F9C1C lsls r0, 24 cmp r0, 0 bne _08174308 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _081742A2: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _08174308 .pool _081742B0: ldr r1, =0x00003f42 movs r0, 0x50 bl SetGpuReg movs r1, 0xE2 lsls r1, 3 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, =sub_8174324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 movs r2, 0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r4, =gTasks + 0x8 movs r3, 0xFF _081742E2: adds r0, r2, 0x5 lsls r0, 1 adds r0, r1 adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _081742E2 ldr r4, =gUnknown_0203BCD8 movs r0, 0x80 lsls r0, 6 bl AllocZeroed str r0, [r4] ldr r0, =sub_8173560 bl SetMainCallback2 _08174308: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8174194 thumb_func_start sub_8174324 sub_8174324: @ 8174324 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =0x00000226 str r0, [sp] movs r0, 0 movs r1, 0x1E movs r2, 0 movs r3, 0xC bl sub_81980F0 movs r0, 0x3 bl sub_81534D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _08174364 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81749A0 b _081743DA .pool _08174364: ldr r0, =0x0201c000 ldr r4, =gUnknown_0203BCD8 ldr r1, [r4] movs r2, 0x80 lsls r2, 5 bl CpuSet ldr r4, [r4] movs r2, 0 ldrh r1, [r4, 0x8] ldr r3, =0x000001ff adds r0, r3, 0 ands r0, r1 lsls r5, r6, 2 cmp r0, 0 beq _0817439A _08174384: adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 adds r4, 0x78 cmp r2, 0x31 bhi _081743BC ldrh r1, [r4, 0x8] adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _08174384 _0817439A: cmp r2, 0x31 bhi _081743BC ldr r0, =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r0 subs r0, r2, 0x1 b _081743C6 .pool _081743BC: ldr r0, =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r0 movs r0, 0x31 _081743C6: strh r0, [r1, 0x8] movs r0, 0xA bl GetGameStat ldr r2, =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r2 strh r0, [r1, 0xA] ldr r0, =sub_81743EC _081743DA: str r0, [r1] add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8174324 thumb_func_start sub_81743EC sub_81743EC: @ 81743EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, =gUnknown_0203BCD8 ldr r3, [r0] movs r5, 0 ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r4, 0x8 ldrsh r0, [r0, r4] adds r4, r1, 0 ldr r2, =gUnknown_0203BCD4 cmp r5, r0 bge _0817442A adds r1, r0, 0 _0817441E: adds r3, 0x78 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r1 blt _0817441E _0817442A: adds r6, r3, 0 movs r0, 0 str r0, [r2] mov r5, r8 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r4 strh r0, [r1, 0xC] strh r0, [r1, 0x10] movs r5, 0 str r2, [sp, 0x14] ldr r4, =0x000001ff adds r2, r1, 0 _08174446: ldrh r1, [r6, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _08174456 ldrh r0, [r2, 0x10] adds r0, 0x1 strh r0, [r2, 0x10] _08174456: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x14 cmp r5, 0x5 bls _08174446 adds r6, r3, 0 movs r5, 0 ldr r1, =gTasks ldr r0, [sp, 0x14] add r0, r8 lsls r0, 3 mov r9, r0 adds r0, r1 str r0, [sp, 0x10] ldr r1, =0x000001ff mov r10, r1 _08174478: ldrh r0, [r6, 0x8] mov r1, r10 ands r1, r0 adds r7, r0, 0 cmp r1, 0 beq _08174540 ldr r2, [sp, 0x10] movs r4, 0x10 ldrsh r0, [r2, r4] cmp r0, 0x3 ble _081744B8 lsls r1, r5, 3 ldr r0, =gUnknown_085E53B4 adds r0, 0x4 adds r0, r1, r0 ldrh r3, [r0] ldr r0, =gUnknown_085E53BA adds r1, r0 ldrh r4, [r1] b _081744C8 .pool _081744B8: ldr r0, =gUnknown_085E53E4 lsls r2, r5, 3 adds r1, r0, 0x4 adds r1, r2, r1 ldrh r3, [r1] adds r0, 0x6 adds r2, r0 ldrh r4, [r2] _081744C8: mov r1, r10 ands r1, r7 movs r0, 0xCE lsls r0, 1 cmp r1, r0 bne _081744DE lsls r0, r4, 16 movs r1, 0xA0 lsls r1, 12 adds r0, r1 lsrs r4, r0, 16 _081744DE: lsls r0, r7, 23 lsrs r0, 23 ldr r1, [r6] ldr r2, [r6, 0x4] lsls r3, 16 asrs r3, 16 str r3, [sp] lsls r3, r4, 16 asrs r3, 16 str r3, [sp, 0x4] lsls r3, r5, 24 lsrs r3, 24 str r3, [sp, 0x8] ldr r3, =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 bl sub_818D7D8 lsls r0, 16 lsrs r0, 16 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r2, r4, 0 ands r3, r2 movs r2, 0x4 orrs r3, r2 strb r3, [r1, 0x5] adds r1, r5, 0x5 lsls r1, 1 add r1, r9 ldr r2, =gTasks + 0x8 adds r1, r2 strh r0, [r1] b _0817454E .pool _08174540: adds r0, r5, 0x5 lsls r0, 1 add r0, r9 ldr r4, =gTasks + 0x8 adds r0, r4 movs r1, 0xFF strh r1, [r0] _0817454E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r6, 0x14 cmp r5, 0x5 bls _08174478 ldr r0, =0xffff0000 ldr r2, =0x000063b0 movs r1, 0xC bl BlendPalettes ldr r0, =gStringVar1 ldr r1, =gTasks ldr r4, [sp, 0x14] add r4, r8 lsls r4, 3 adds r4, r1 movs r5, 0xA ldrsh r1, [r4, r5] movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 ldr r1, =gUnknown_085E8C00 adds r0, r5, 0 bl StringExpandPlaceholders movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bgt _081745C0 ldr r1, =gUnknown_085E8574 movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 bl sub_8198204 b _081745D0 .pool _081745C0: ldr r1, =gUnknown_085E855C movs r0, 0x1 str r0, [sp] adds r0, r5, 0 movs r2, 0 movs r3, 0 bl sub_8198204 _081745D0: ldr r0, =gTasks ldr r1, [sp, 0x14] add r1, r8 lsls r1, 3 adds r1, r0 ldr r0, =sub_81745FC str r0, [r1] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81743EC thumb_func_start sub_81745FC sub_81745FC: @ 81745FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203BCD8 ldr r5, [r0] movs r3, 0 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] cmp r3, r0 bge _08174630 adds r1, r0, 0 _08174624: adds r5, 0x78 adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r1 blt _08174624 _08174630: movs r3, 0 lsls r7, r4, 2 adds r0, r7, r4 lsls r6, r0, 3 ldr r0, =gTasks + 0x8 mov r10, r0 ldr r1, =gSprites mov r8, r1 movs r2, 0xD negs r2, r2 mov r9, r2 movs r0, 0x4 mov r12, r0 _0817464A: adds r0, r3, 0x5 lsls r0, 1 adds r0, r6 add r0, r10 ldrh r1, [r0] cmp r1, 0xFF beq _0817466C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r2, [r0, 0x5] mov r1, r9 ands r1, r2 mov r2, r12 orrs r1, r2 strb r1, [r0, 0x5] _0817466C: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x5 bls _0817464A adds r1, r7, r4 lsls r1, 3 ldr r0, =gTasks adds r6, r1, r0 movs r2, 0xC ldrsh r0, [r6, r2] adds r0, 0x5 lsls r0, 1 adds r0, r1 ldr r1, =gTasks adds r1, 0x8 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] lsrs r1, 4 movs r0, 0x80 lsls r0, 9 lsls r0, r1 ldr r1, =0xffff0000 eors r0, r1 ldr r2, =gUnknown_0203BCD4 str r0, [r2] ldr r2, =0x000063b0 movs r1, 0xC bl BlendPalettesUnfaded movs r0, 0xC ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r4, r5, r0 ldrh r1, [r4, 0x8] ldr r0, =0x000001ff ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _081746E6 bl StopCryAndClearCrySongs ldrh r0, [r4, 0x8] lsls r0, 23 lsrs r0, 23 movs r1, 0 bl PlayCry1 _081746E6: adds r0, r4, 0 movs r1, 0 movs r2, 0xE bl sub_8174A88 ldr r0, =sub_8174728 str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81745FC thumb_func_start sub_8174728 sub_8174728: @ 8174728 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gMain ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r3, r1, 0 cmp r0, 0 beq _081747E4 ldr r0, =gTasks mov r12, r0 lsls r0, r6, 2 adds r1, r0, r6 lsls r3, r1, 3 mov r1, r12 adds r4, r3, r1 ldrh r2, [r4, 0x8] movs r5, 0x8 ldrsh r1, [r4, r5] mov r9, r0 cmp r1, 0 beq _081747B8 subs r0, r2, 0x1 strh r0, [r4, 0x8] movs r5, 0 adds r7, r3, 0 movs r0, 0x8 add r0, r12 mov r8, r0 _0817476A: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 mov r1, r8 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF beq _08174782 bl sub_818D820 movs r0, 0xFF strh r0, [r4] _08174782: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x5 bls _0817476A ldr r0, =gTasks mov r2, r9 adds r1, r2, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _081747A4 subs r0, r2, 0x1 strh r0, [r1, 0xA] _081747A4: ldr r0, =sub_81743EC str r0, [r1] b _08174884 .pool _081747B8: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _081747D2 bl StopCryAndClearCrySongs ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _081747D2: ldr r0, =sub_8174898 str r0, [r4] b _08174884 .pool _081747E4: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _08174828 bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 beq _08174806 bl StopCryAndClearCrySongs ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl _08174806: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_8174898 str r0, [r1] b _08174884 .pool _08174828: movs r0, 0x40 ands r0, r2 cmp r0, 0 beq _08174858 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xC] movs r4, 0xC ldrsh r0, [r1, r4] cmp r0, 0 beq _08174858 subs r0, r2, 0x1 strh r0, [r1, 0xC] ldr r0, =sub_81745FC str r0, [r1] b _08174884 .pool _08174858: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08174884 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r2, r0, r1 movs r5, 0xC ldrsh r1, [r2, r5] movs r3, 0x10 ldrsh r0, [r2, r3] subs r0, 0x1 cmp r1, r0 bge _08174884 ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] ldr r0, =sub_81745FC str r0, [r2] _08174884: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8174728 thumb_func_start sub_8174898 sub_8174898: @ 8174898 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gPlttBufferFaded ldr r1, =gPlttBufferUnfaded movs r2, 0x80 lsls r2, 2 bl CpuSet ldr r1, =0x0201c000 ldr r0, =gUnknown_085E56D4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3} stm r1!, {r2,r3} movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80F9BF4 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81748F0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8174898 thumb_func_start sub_81748F0 sub_81748F0: @ 81748F0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 bl sub_80F9C30 lsls r0, 24 cmp r0, 0 bne _08174988 movs r5, 0 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, =gTasks + 0x8 mov r8, r0 _08174910: adds r0, r5, 0x5 lsls r0, 1 adds r0, r7 mov r1, r8 adds r4, r0, r1 ldrh r0, [r4] cmp r0, 0xFF beq _08174928 bl sub_818D820 movs r0, 0xFF strh r0, [r4] _08174928: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08174910 movs r0, 0 bl HideBg movs r0, 0x1 bl HideBg movs r0, 0x3 bl HideBg bl sub_8198314 bl FreeAllWindowBuffers movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x3 bl UnsetBgTilemapBuffer movs r0, 0 bl ResetBgsAndClearDma3BusyFlags adds r0, r6, 0 bl DestroyTask ldr r4, =gUnknown_0203BCDC ldr r0, [r4] cmp r0, 0 beq _08174974 bl Free movs r0, 0 str r0, [r4] _08174974: ldr r4, =gUnknown_0203BCD8 ldr r0, [r4] cmp r0, 0 beq _08174984 bl Free movs r0, 0 str r0, [r4] _08174984: bl sub_8137C3C _08174988: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81748F0 thumb_func_start sub_81749A0 sub_81749A0: @ 81749A0 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_085E8588 movs r1, 0x8 movs r2, 0x1 bl sub_8198180 movs r0, 0 movs r1, 0 bl sub_81973C4 ldr r2, =gUnknown_085E8BDC movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 movs r3, 0 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_8174A08 str r1, [r0] add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81749A0 thumb_func_start sub_8174A08 sub_8174A08: @ 8174A08 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08174A28 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_8174898 str r0, [r1] _08174A28: pop {r0} bx r0 .pool thumb_func_end sub_8174A08 thumb_func_start sub_8174A38 sub_8174A38: @ 8174A38 push {r4,lr} sub sp, 0xC movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap ldr r4, =gUnknown_085E8B3E movs r0, 0x1 adds r1, r4, 0 movs r2, 0xD0 bl GetStringCenterAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_085E5388 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8174A38 thumb_func_start sub_8174A88 sub_8174A88: @ 8174A88 push {r4-r7,lr} sub sp, 0x2C adds r7, r0, 0 movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap ldrh r0, [r7, 0x8] ldr r1, =0x000001ff ands r1, r0 movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _08174B30 ldr r1, =gUnknown_085E8C36 add r0, sp, 0xC bl StringCopy adds r6, r0, 0 ldrh r0, [r7, 0x8] lsls r0, 23 lsrs r0, 23 bl SpeciesToPokedexNum lsls r0, 16 lsrs r4, r0, 16 ldr r0, =0x0000ffff cmp r4, r0 beq _08174B04 adds r0, r4, 0 movs r1, 0x64 bl __divsi3 subs r0, 0x5F strb r0, [r6] adds r6, 0x1 adds r0, r4, 0 movs r1, 0x64 bl __modsi3 adds r4, r0, 0 movs r1, 0xA bl __divsi3 subs r0, 0x5F strb r0, [r6] adds r6, 0x1 adds r0, r4, 0 movs r1, 0xA bl __modsi3 subs r0, 0x5F b _08174B0E .pool _08174B04: movs r0, 0xAC strb r0, [r6] adds r6, 0x1 strb r0, [r6] adds r6, 0x1 _08174B0E: strb r0, [r6] adds r6, 0x1 movs r0, 0xFF strb r0, [r6] ldr r0, =gUnknown_085E5388 str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r2, 0x10 movs r3, 0x1 bl box_print _08174B30: adds r1, r7, 0 adds r1, 0xA add r0, sp, 0xC movs r2, 0xA bl memcpy add r1, sp, 0xC movs r0, 0xFF strb r0, [r1, 0xA] ldrh r1, [r7, 0x8] ldr r4, =0x000001ff adds r0, r4, 0 ands r0, r1 movs r1, 0xCE lsls r1, 1 cmp r0, r1 bne _08174B8C movs r0, 0x1 add r1, sp, 0xC movs r2, 0xD0 bl GetStringCenterAlignXOffset lsls r2, r0, 24 lsrs r2, 24 ldr r0, =gUnknown_085E5388 str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0 movs r1, 0x3 bl CopyWindowToVram b _08174C82 .pool _08174B8C: movs r0, 0x1 add r1, sp, 0xC movs r2, 0x80 bl GetStringRightAlignXOffset lsls r2, r0, 24 lsrs r2, 24 ldr r0, =gUnknown_085E5388 str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r3, 0x1 bl box_print add r1, sp, 0xC movs r0, 0xBA strb r0, [r1] mov r0, sp adds r0, 0xD ldrh r1, [r7, 0x8] lsls r1, 23 lsrs r1, 23 movs r2, 0xB muls r1, r2 ldr r2, =gSpeciesNames adds r1, r2 bl StringCopy adds r6, r0, 0 ldrh r1, [r7, 0x8] adds r0, r4, 0 ands r0, r1 cmp r0, 0x20 beq _08174C0A cmp r0, 0x1D beq _08174C0A lsls r0, r1, 23 lsrs r0, 23 ldr r1, [r7, 0x4] bl GetGenderFromSpeciesAndPersonality lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08174C00 cmp r0, 0xFE beq _08174C04 b _08174C0A .pool _08174C00: movs r0, 0xB5 b _08174C06 _08174C04: movs r0, 0xB6 _08174C06: strb r0, [r6] adds r6, 0x1 _08174C0A: movs r0, 0xFF strb r0, [r6] ldr r5, =gUnknown_085E5388 str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r2, 0x80 movs r3, 0x1 bl box_print ldr r1, =gUnknown_085E8C3B add r0, sp, 0xC bl StringCopy adds r6, r0, 0 ldrb r1, [r7, 0x9] lsrs r1, 1 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r2, 0x24 movs r3, 0x11 bl box_print ldr r1, =gUnknown_085E8C4D add r0, sp, 0xC bl StringCopy adds r6, r0, 0 ldrh r1, [r7] movs r2, 0x2 movs r3, 0x5 bl ConvertIntToDecimalStringN str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r2, 0x68 movs r3, 0x11 bl box_print movs r0, 0 movs r1, 0x3 bl CopyWindowToVram _08174C82: add sp, 0x2C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8174A88 thumb_func_start sub_8174C98 sub_8174C98: @ 8174C98 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0x1 bl PutWindowTilemap ldr r2, =0x0000021d movs r0, 0x1 movs r1, 0 movs r3, 0xD bl SetWindowBorderStyle ldr r0, =gUnknown_085E538C mov r8, r0 str r0, [sp] movs r1, 0x1 negs r1, r1 mov r9, r1 str r1, [sp, 0x4] ldr r0, =gUnknown_085E8C48 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0x1 bl box_print ldr r0, =gSaveBlock2Ptr mov r10, r0 ldr r1, [r0] movs r0, 0x1 movs r2, 0x70 bl GetStringRightAlignXOffset lsls r2, r0, 24 lsrs r2, 24 mov r1, r8 str r1, [sp] mov r0, r9 str r0, [sp, 0x4] mov r1, r10 ldr r0, [r1] str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 bl box_print mov r1, r10 ldr r0, [r1] ldrb r4, [r0, 0xA] ldrb r0, [r0, 0xB] lsls r0, 8 orrs r4, r0 mov r0, r8 str r0, [sp] movs r7, 0 str r7, [sp, 0x4] ldr r0, =gUnknown_085E8C4D str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0x11 bl box_print add r6, sp, 0xC ldr r1, =0x000186a0 adds r0, r4, 0 bl __modsi3 ldr r5, =0x00002710 adds r1, r5, 0 bl __divsi3 subs r0, 0x5F strb r0, [r6] add r6, sp, 0xC adds r0, r4, 0 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r5, 0xFA lsls r5, 2 adds r1, r5, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r6, 0x1] add r6, sp, 0xC adds r0, r4, 0 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r6, 0x2] add r5, sp, 0xC adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x3] add r5, sp, 0xC adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x4] add r1, sp, 0xC movs r0, 0xFF strb r0, [r1, 0x5] movs r0, 0x1 movs r2, 0x70 bl GetStringRightAlignXOffset lsls r2, r0, 24 lsrs r2, 24 mov r1, r8 str r1, [sp] mov r0, r9 str r0, [sp, 0x4] add r1, sp, 0xC str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x11 bl box_print mov r0, r8 str r0, [sp] mov r1, r9 str r1, [sp, 0x4] ldr r0, =gUnknown_085E84CE str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0x21 bl box_print add r5, sp, 0xC mov r0, r10 ldr r4, [r0] ldrh r0, [r4, 0xE] movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r5] add r5, sp, 0xC ldrh r0, [r4, 0xE] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] add r5, sp, 0xC ldrh r0, [r4, 0xE] movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] add r0, sp, 0xC ldrb r0, [r0] cmp r0, 0xA1 bne _08174E1E add r0, sp, 0xC strb r7, [r0] _08174E1E: add r0, sp, 0xC ldrb r1, [r0] cmp r1, 0 bne _08174E30 ldrb r0, [r0, 0x1] cmp r0, 0xA1 bne _08174E30 add r0, sp, 0xC strb r1, [r0, 0x8] _08174E30: add r1, sp, 0xC movs r0, 0xF0 strb r0, [r1, 0x3] adds r4, r1, 0 ldr r0, =gSaveBlock2Ptr ldr r5, [r0] ldrb r0, [r5, 0x10] movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4, 0x4] add r4, sp, 0xC ldrb r0, [r5, 0x10] movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4, 0x5] add r1, sp, 0xC movs r0, 0xFF strb r0, [r1, 0x6] movs r0, 0x1 movs r2, 0x70 bl GetStringRightAlignXOffset lsls r2, r0, 24 lsrs r2, 24 ldr r0, =gUnknown_085E538C str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r1, sp, 0xC str r1, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x21 bl box_print movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8174C98 thumb_func_start sub_8174EC4 sub_8174EC4: @ 8174EC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08174EEA: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _08174EEA strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] bl ResetPaletteFade ldr r0, =gUnknown_085E54E8 movs r1, 0 movs r2, 0x20 bl LoadPalette add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8174EC4 thumb_func_start sub_8174F70 sub_8174F70: @ 8174F70 push {lr} bl remove_some_task bl ResetTasks bl ResetSpriteData bl reset_temp_tile_data_buffers bl dp13_810BB8C bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gUnknown_085E5394 bl LoadCompressedObjectPic ldr r0, =gUnknown_085E53A4 bl LoadCompressedObjectPalette pop {r0} bx r0 .pool thumb_func_end sub_8174F70 thumb_func_start sub_8174FAC sub_8174FAC: @ 8174FAC push {r4,lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085E5374 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_0203BCDC ldr r1, [r4] adds r1, 0x12 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001012 adds r1, r0 movs r0, 0x3 bl SetBgTilemapBuffer movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8174FAC thumb_func_start sub_8175024 sub_8175024: @ 8175024 push {r4,lr} sub sp, 0x8 ldr r0, =gUnknown_0203BCDC ldr r0, [r0] ldrh r0, [r0] cmp r0, 0x4 bhi _08175108 lsls r0, 2 ldr r1, =_08175044 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08175044: .4byte _08175058 .4byte _08175070 .4byte _0817507C .4byte _081750D2 .4byte _081750DC _08175058: ldr r1, =gUnknown_085E5508 movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _08175108 .pool _08175070: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _08175108 b _08175112 _0817507C: movs r4, 0x20 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r0, 0xB str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x3 bl FillBgTilemapBufferRect_Palette0 str r4, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r2, 0 movs r3, 0xE bl FillBgTilemapBufferRect_Palette0 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 movs r1, 0x2 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _08175108 _081750D2: bl sub_81971D0 bl sub_8197200 b _08175108 _081750DC: movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x3 bl ShowBg ldr r0, =gUnknown_0203BCDC ldr r1, [r0] movs r0, 0 strh r0, [r1] b _08175114 .pool _08175108: ldr r0, =gUnknown_0203BCDC ldr r1, [r0] ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _08175112: movs r0, 0x1 _08175114: add sp, 0x8 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8175024 thumb_func_start sub_8175120 sub_8175120: @ 8175120 push {r4,lr} adds r2, r0, 0 ldr r1, [r2, 0x20] ldr r0, [r2, 0x30] cmp r1, r0 beq _08175176 ldrh r3, [r2, 0x20] movs r1, 0x20 ldrsh r0, [r2, r1] movs r4, 0x30 ldrsh r1, [r2, r4] cmp r0, r1 bge _08175140 adds r0, r3, 0 adds r0, 0xF strh r0, [r2, 0x20] _08175140: ldrh r3, [r2, 0x20] movs r4, 0x20 ldrsh r0, [r2, r4] cmp r0, r1 ble _08175150 adds r0, r3, 0 subs r0, 0xF strh r0, [r2, 0x20] _08175150: ldrh r3, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r4, 0x32 ldrsh r1, [r2, r4] cmp r0, r1 bge _08175164 adds r0, r3, 0 adds r0, 0xA strh r0, [r2, 0x22] _08175164: ldrh r3, [r2, 0x22] movs r4, 0x22 ldrsh r0, [r2, r4] cmp r0, r1 ble _0817519C adds r0, r3, 0 subs r0, 0xA strh r0, [r2, 0x22] b _0817519C _08175176: ldrh r0, [r2, 0x3C] lsls r1, r0, 16 movs r0, 0xCE lsls r0, 17 cmp r1, r0 bne _08175190 lsrs r1, 16 adds r0, r2, 0 movs r2, 0x1 movs r3, 0x3 bl sub_806ED40 b _0817519C _08175190: lsrs r1, 16 adds r0, r2, 0 movs r2, 0 movs r3, 0x3 bl sub_806ED40 _0817519C: pop {r4} pop {r0} bx r0 thumb_func_end sub_8175120 thumb_func_start sub_81751A4 sub_81751A4: @ 81751A4 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0x26] movs r2, 0x26 ldrsh r0, [r5, r2] cmp r0, 0x78 ble _081751BA adds r0, r5, 0 bl DestroySprite b _081751F2 _081751BA: adds r0, r1, 0x1 ldrh r1, [r5, 0x30] adds r0, r1 strh r0, [r5, 0x26] ldrh r4, [r5, 0x2E] lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, 0x8 ldr r1, =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] muls r0, r1 cmp r0, 0 bge _081751E8 adds r0, 0xFF _081751E8: asrs r0, 8 strh r0, [r5, 0x24] ldrh r0, [r5, 0x2E] adds r0, 0x4 strh r0, [r5, 0x2E] _081751F2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81751A4 thumb_func_start sub_81751FC sub_81751FC: @ 81751FC push {r4,lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl Random adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 movs r0, 0x7 ands r2, r0 negs r2, r2 ldr r0, =gUnknown_085E54D0 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r1, r4, 0 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites adds r4, r1, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0 beq _08175274 movs r0, 0 b _08175276 .pool _08175274: movs r0, 0x1 _08175276: strh r0, [r4, 0x30] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81751FC thumb_func_start sub_8175280 sub_8175280: @ 8175280 push {r4,lr} ldr r4, =gSpecialVar_0x8004 movs r0, 0xB4 strh r0, [r4] ldr r0, =sub_8175364 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xFF beq _081752AA ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldrh r1, [r4] strh r1, [r0, 0xA] ldr r0, =gSpecialVar_0x8005 strh r2, [r0] _081752AA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8175280 thumb_func_start sub_81752C0 sub_81752C0: @ 81752C0 push {r4,lr} ldr r0, =sub_8175364 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081752D4 bl DestroyTask _081752D4: bl sub_8152254 ldr r4, =0x000003e9 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81752C0 thumb_func_start sub_81752F4 sub_81752F4: @ 81752F4 push {r4,r5,lr} adds r5, r0, 0 ldrh r1, [r5, 0xE] movs r2, 0xE ldrsh r0, [r5, r2] cmp r0, 0x6E ble _08175324 ldr r2, =gTasks movs r0, 0x28 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r0, 0x26] subs r1, 0x1 strh r1, [r0, 0x26] ldrb r0, [r5, 0x16] bl sub_81525D0 b _08175358 .pool _08175324: adds r0, r1, 0x1 ldrh r1, [r5, 0x1C] adds r0, r1 strh r0, [r5, 0xE] ldrb r4, [r5, 0x1A] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 ands r0, r1 adds r0, 0x8 ldr r1, =gSineTable lsls r4, 1 adds r4, r1 movs r2, 0 ldrsh r1, [r4, r2] muls r0, r1 cmp r0, 0 bge _0817534E adds r0, 0xFF _0817534E: asrs r0, 8 strh r0, [r5, 0xC] ldrh r0, [r5, 0x1A] adds r0, 0x4 strh r0, [r5, 0x1A] _08175358: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81752F4 thumb_func_start sub_8175364 sub_8175364: @ 8175364 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 movs r7, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldrh r0, [r6] cmp r0, 0x1 beq _081753E0 cmp r0, 0x1 bgt _08175394 cmp r0, 0 beq _0817539C b _081754B0 .pool _08175394: cmp r0, 0xFF bne _0817539A b _081754A0 _0817539A: b _081754B0 _0817539C: movs r0, 0x40 bl sub_81521C0 cmp r0, 0 bne _081753B8 adds r0, r4, 0 bl DestroyTask ldr r0, =gSpecialVar_0x8004 strh r7, [r0] ldr r1, =gSpecialVar_0x8005 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] _081753B8: ldr r0, =gUnknown_085E5394 bl LoadCompressedObjectPic ldr r0, =gUnknown_085E53A4 bl LoadCompressedObjectPalette ldrh r0, [r6] adds r0, 0x1 strh r0, [r6] b _081754B0 .pool _081753E0: ldrh r0, [r6, 0x2] cmp r0, 0 beq _08175478 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _08175478 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xF0 bl __umodsi3 adds r5, r0, 0 lsls r5, 16 asrs r5, 16 bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x7 ands r4, r0 negs r4, r4 lsls r4, 16 asrs r4, 16 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_085E53FC ldr r2, =0x000003e9 str r4, [sp] str r0, [sp, 0x4] str r7, [sp, 0x8] adds r0, r1, 0 adds r1, r2, 0 adds r3, r5, 0 bl sub_81524C4 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xFF beq _08175478 adds r4, r7, 0 ldr r1, =sub_81752F4 adds r0, r4, 0 bl sub_8152438 bl Random movs r1, 0x3 ands r1, r0 cmp r1, 0 bne _08175468 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x1 bl sub_8152474 _08175468: adds r0, r4, 0 movs r1, 0x7 mov r2, r8 bl sub_8152474 ldrh r0, [r6, 0x1E] adds r0, 0x1 strh r0, [r6, 0x1E] _08175478: bl sub_81522D4 ldrh r0, [r6, 0x2] cmp r0, 0 beq _08175494 subs r0, 0x1 strh r0, [r6, 0x2] b _081754B0 .pool _08175494: ldrh r0, [r6, 0x1E] cmp r0, 0 bne _081754B0 movs r0, 0xFF strh r0, [r6] b _081754B0 _081754A0: bl sub_81752C0 ldr r0, =gSpecialVar_0x8004 strh r7, [r0] ldr r1, =gSpecialVar_0x8005 ldr r2, =0x0000ffff adds r0, r2, 0 strh r0, [r1] _081754B0: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8175364 .align 2, 0 @ Don't pad with nop.