diff options
author | YamaArashi <shadow962@live.com> | 2017-01-15 17:14:00 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2017-01-15 17:14:00 -0800 |
commit | 0f27bfba8ddfa194fcb0f2242ccd138799b3f806 (patch) | |
tree | 300a9055a98a40784ce6fe9973ec89f7bb226f07 /asm/credits.s | |
parent | 3c6e4dba69d8ab1fa819b81435af60de9eb829ea (diff) |
split more code
Diffstat (limited to 'asm/credits.s')
-rw-r--r-- | asm/credits.s | 3903 |
1 files changed, 3903 insertions, 0 deletions
diff --git a/asm/credits.s b/asm/credits.s new file mode 100644 index 000000000..88c8739e4 --- /dev/null +++ b/asm/credits.s @@ -0,0 +1,3903 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_81754C8 +sub_81754C8: @ 81754C8 + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + pop {r0} + bx r0 + thumb_func_end sub_81754C8 + + thumb_func_start sub_81754DC +sub_81754DC: @ 81754DC + push {lr} + bl RunTasks + bl CallObjectCallbacks + ldr r0, =gUnknown_030022C0 + ldrh r1, [r0, 0x2C] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08175522 + ldr r0, =gUnknown_0203BCE4 + 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 CallObjectCallbacks + ldr r1, =gUnknown_0203BCE5 + movs r0, 0x1 + strb r0, [r1] +_08175522: + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + 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 gpu_pal_apply + 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 sub_80A1A74 + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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 pal_fade_maybe + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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, =gUnknown_030022C0 + 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 ResetAllObjectData + bl dp13_810BB8C + bl ResetObjectPaletteAllocator + ldr r1, =gUnknown_0300301C + movs r0, 0x8 + strb r0, [r1] + ldr r0, =gUnknown_085B0E04 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, =gUnknown_085B0C0C + ldr r1, =0x06003800 + bl LZ77UnCompVram + ldr r0, =gUnknown_085B0A02 + movs r1, 0x1 + movs r2, 0x3E + bl gpu_pal_apply + 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 LoadObjectPic + ldr r0, =gUnknown_085E702C + bl LoadTaggedObjectPalette + ldr r1, =gUnknown_030022C0 + 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 pal_fade_maybe + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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 sub_80A1A74 + movs r1, 0xE0 + lsls r1, 6 + movs r0, 0 + movs r2, 0 + bl sub_8176D1C + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x8 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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, =gUnknown_030022C0 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _08175C94 +_08175C62: + movs r0, 0x4 + bl play_sound_effect + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =sub_8175CC8 + str r0, [r4] + b _08175CB8 + .pool +_08175C94: + ldr r0, =0x00001be8 + cmp r1, r0 + bne _08175CA0 + movs r0, 0x8 + bl play_sound_effect +_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, =gUnknown_02037FD4 + 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, =gUnknown_02037FD4 + 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 pal_fade_maybe + 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, =gUnknown_02037FD4 + 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 pal_fade_maybe + b _0817602A + .pool +_08175FC8: + ldr r0, =gUnknown_02037FD4 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_02020630 + 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, =gUnknown_030022C0 + 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 ResetAllObjectData + bl ResetObjectPaletteAllocator + 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 LoadTaggedObjectPalettes + 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, =gUnknown_02020630 + 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 LoadTaggedObjectPalettes + 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, =gUnknown_02020630 + 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, =gUnknown_030022C0 + 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 gpu_pal_apply + 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 RemoveObjectAndFreeTiles + 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 StartObjectImageAnimIfDifferent + b _08176F88 +_08176F3E: + adds r0, r4, 0 + movs r1, 0x1 + b _08176F72 +_08176F44: + adds r0, r4, 0 + movs r1, 0x2 + bl StartObjectImageAnimIfDifferent + b _08176F88 +_08176F4E: + adds r0, r4, 0 + movs r1, 0x3 + bl StartObjectImageAnimIfDifferent + b _08176F88 +_08176F58: + adds r0, r4, 0 + movs r1, 0 + bl StartObjectImageAnimIfDifferent + 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 StartObjectImageAnimIfDifferent + 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 RemoveObjectAndFreeTiles + 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 StartObjectImageAnimIfDifferent + b _08177048 +_08176FD4: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + ble _08176FE6 + adds r0, r4, 0 + movs r1, 0x1 + bl StartObjectImageAnimIfDifferent + b _08176FEE +_08176FE6: + adds r0, r4, 0 + movs r1, 0x2 + bl StartObjectImageAnimIfDifferent +_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 StartObjectImageAnimIfDifferent + 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 StartObjectImageAnimIfDifferent + 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 SetSpriteTransformationMatrix + 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 SetSpriteTransformationMatrix + 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, =gUnknown_02020630 + 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 AddObjectToFront + 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 StartObjectImageAnimIfDifferent + 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, =gUnknown_02020630 + 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 RemoveObjectAndFreeTiles + 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 sub_8133EDC + 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 pokedex_flag_operation + 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. |