diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-09-16 21:32:37 -0400 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2017-09-16 21:32:37 -0400 |
commit | 16c05694fb02eb979f62a0de2f728772f715c883 (patch) | |
tree | e2848e1fa5244d21b38dcd98339ba8d7834e1667 /asm/field_screen.s | |
parent | d574795b729742efb26b80a1c5b798cd0f58c3f4 (diff) |
split remaining rom files.
Diffstat (limited to 'asm/field_screen.s')
-rw-r--r-- | asm/field_screen.s | 10509 |
1 files changed, 10509 insertions, 0 deletions
diff --git a/asm/field_screen.s b/asm/field_screen.s new file mode 100644 index 000000000..e30408654 --- /dev/null +++ b/asm/field_screen.s @@ -0,0 +1,10509 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AAFA4 +@ void sub_80AAFA4() +sub_80AAFA4: @ 80AAFA4 + push {r4-r6,lr} + ldr r0, =sub_80AB1B0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _080AB060 + movs r0, 0x90 + lsls r0, 5 + bl AllocSpritePalette + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_0854C270 + lsls r1, r5, 5 + ldr r2, =gPlttBufferUnfaded + 0x200 + adds r1, r2 + ldr r2, =0x04000008 + bl CpuSet + bl sub_80AB294 + ldr r4, =gUnknown_02038454 + ldr r1, =0x000006d5 + adds r0, r4, r1 + strb r5, [r0] + ldr r0, =0x00001201 + bl AllocSpritePalette + ldr r2, =0x000006d4 + adds r1, r4, r2 + strb r0, [r1] + ldr r1, =0x000006da + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0x4 + adds r0, r4, r2 + strb r6, [r0] + adds r1, 0x4 + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0xC + adds r0, r4, r2 + strb r6, [r0] + adds r1, 0x22 + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0x17 + adds r0, r4, r2 + strb r6, [r0] + adds r1, 0x24 + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0x1B + adds r0, r4, r2 + strb r6, [r0] + subs r1, 0xD + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0x18 + adds r0, r4, r2 + strb r6, [r0] + subs r1, 0x1D + adds r0, r4, r1 + strb r6, [r0] + movs r0, 0x10 + movs r1, 0 + bl sub_80AC124 + movs r2, 0xDA + lsls r2, 3 + adds r0, r4, r2 + strb r6, [r0] + ldr r0, =0x000006c6 + adds r1, r4, r0 + movs r0, 0x3 + strb r0, [r1] + movs r1, 0xD9 + lsls r1, 3 + adds r0, r4, r1 + strb r6, [r0] + adds r2, 0x3 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =sub_80AB160 + movs r1, 0x50 + bl CreateTask + ldr r1, =0x000006c9 + adds r4, r1 + strb r0, [r4] +_080AB060: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AAFA4 + + thumb_func_start weather_set +weather_set: @ 80AB098 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + beq _080AB0AE + cmp r4, 0x5 + beq _080AB0AE + cmp r4, 0xD + beq _080AB0AE + bl play_some_sound +_080AB0AE: + ldr r1, =gUnknown_02038454 + ldr r2, =0x000006d1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, r4 + beq _080AB0D2 + movs r3, 0xDA + lsls r3, 3 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, r4 + bne _080AB0D2 + ldr r0, =gUnknown_0854C150 + lsls r1, r4, 4 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080AB0D2: + ldr r1, =gUnknown_02038454 + ldr r2, =0x000006d3 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, =0x000006d1 + adds r0, r1, r3 + strb r4, [r0] + ldr r0, =0x000006ce + adds r1, r0 + strh r2, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end weather_set + + thumb_func_start sub_80AB104 +sub_80AB104: @ 80AB104 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl play_some_sound + ldr r0, =gUnknown_02038454 + movs r2, 0xDA + lsls r2, 3 + adds r1, r0, r2 + strb r4, [r1] + ldr r1, =0x000006d1 + adds r0, r1 + strb r4, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB104 + + thumb_func_start sub_80AB130 +sub_80AB130: @ 80AB130 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl play_some_sound + ldr r1, =gUnknown_02038454 + movs r2, 0xDA + lsls r2, 3 + adds r0, r1, r2 + strb r4, [r0] + adds r2, 0x1 + adds r0, r1, r2 + strb r4, [r0] + movs r0, 0xD9 + lsls r0, 3 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB130 + + thumb_func_start sub_80AB160 +sub_80AB160: @ 80AB160 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, =gUnknown_02038454 + movs r1, 0xD9 + lsls r1, 3 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080AB198 + ldr r1, =gUnknown_0854C150 + movs r3, 0xDA + lsls r3, 3 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, 4 + adds r1, 0x8 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80AB1B0 + str r1, [r0] +_080AB198: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB160 + + thumb_func_start sub_80AB1B0 +sub_80AB1B0: @ 80AB1B0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r5, =gUnknown_02038454 + movs r0, 0xDA + lsls r0, 3 + adds r6, r5, r0 + ldr r1, =0x000006d1 + adds r7, r5, r1 + ldrb r0, [r6] + ldrb r2, [r7] + cmp r0, r2 + beq _080AB22C + ldr r0, =gUnknown_0854C150 + mov r9, r0 + ldrb r0, [r6] + lsls r0, 4 + mov r1, r9 + adds r1, 0xC + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080AB23C + ldr r1, =0x000006c6 + adds r1, r5 + mov r8, r1 + ldrb r0, [r1] + cmp r0, 0x2 + beq _080AB23C + ldrb r0, [r7] + lsls r0, 4 + add r0, r9 + ldr r0, [r0] + bl _call_via_r0 + ldr r2, =0x000006c3 + adds r0, r5, r2 + strb r4, [r0] + mov r0, r8 + strb r4, [r0] + ldrb r0, [r7] + strb r0, [r6] + adds r2, 0x10 + adds r1, r5, r2 + movs r0, 0x1 + strb r0, [r1] + b _080AB23C + .pool +_080AB22C: + ldr r0, =gUnknown_0854C150 + ldrb r1, [r6] + lsls r1, 4 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080AB23C: + ldr r1, =gUnknown_0854C240 + ldr r0, =gUnknown_02038454 + ldr r2, =0x000006c6 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB1B0 + + thumb_func_start sub_80AB26C +sub_80AB26C: @ 80AB26C + ldr r0, =gUnknown_02038454 + ldr r2, =0x000006c1 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, =0x000006c2 + adds r0, r1 + strb r2, [r0] + bx lr + .pool + thumb_func_end sub_80AB26C + + thumb_func_start nullsub_36 +nullsub_36: @ 80AB28C + bx lr + thumb_func_end nullsub_36 + + thumb_func_start sub_80AB290 +sub_80AB290: @ 80AB290 + movs r0, 0 + bx lr + thumb_func_end sub_80AB290 + + thumb_func_start sub_80AB294 +sub_80AB294: @ 80AB294 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, =gUnknown_03000F50 + ldr r0, =gUnknown_0854C250 + str r0, [r1] + movs r0, 0 + mov r12, r0 + ldr r1, =gUnknown_020388B4 + mov r10, r1 +_080AB2AC: + mov r7, r10 + mov r0, r12 + cmp r0, 0 + bne _080AB2B8 + ldr r1, =0xfffffda0 + adds r7, r1 +_080AB2B8: + movs r5, 0 + movs r0, 0x1 + add r0, r12 + mov r9, r0 +_080AB2C0: + lsls r1, r5, 8 + lsls r0, r5, 24 + lsrs r2, r0, 16 + mov r0, r12 + cmp r0, 0 + bne _080AB2E4 + adds r0, r1, 0 + lsls r0, 12 + lsrs r4, r0, 16 + b _080AB2E6 + .pool +_080AB2E4: + movs r4, 0 +_080AB2E6: + movs r3, 0 + adds r1, r5, 0x1 + mov r8, r1 +_080AB2EC: + subs r1, r2, r4 + lsls r1, 16 + lsrs r2, r1, 16 + lsls r0, r3, 5 + adds r0, r7 + adds r0, r5 + lsrs r1, 24 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x2 + bls _080AB2EC + adds r6, r2, 0 + movs r0, 0xF8 + lsls r0, 5 + subs r0, r2 + cmp r0, 0 + bge _080AB314 + adds r0, 0xF +_080AB314: + lsls r0, 12 + lsrs r4, r0, 16 + cmp r5, 0xB + bhi _080AB35E + cmp r3, 0x12 + bhi _080AB384 +_080AB320: + adds r0, r2, r4 + lsls r0, 16 + lsrs r2, r0, 16 + subs r0, r2, r6 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + ble _080AB33C + lsrs r0, 31 + adds r0, r1, r0 + asrs r0, 1 + subs r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 +_080AB33C: + lsls r0, r3, 5 + adds r0, r7 + adds r1, r0, r5 + lsrs r0, r2, 8 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1F + bls _080AB352 + movs r0, 0x1F + strb r0, [r1] +_080AB352: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x12 + bls _080AB320 + b _080AB384 +_080AB35E: + cmp r3, 0x12 + bhi _080AB384 + movs r6, 0x1F +_080AB364: + adds r1, r2, r4 + lsls r1, 16 + lsrs r2, r1, 16 + lsls r0, r3, 5 + adds r0, r7 + adds r0, r5 + lsrs r1, 24 + strb r1, [r0] + cmp r1, 0x1F + bls _080AB37A + strb r6, [r0] +_080AB37A: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x12 + bls _080AB364 +_080AB384: + mov r1, r8 + lsls r0, r1, 16 + lsrs r5, r0, 16 + cmp r5, 0x1F + bls _080AB2C0 + mov r1, r9 + lsls r0, r1, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0x1 + bls _080AB2AC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AB294 + + thumb_func_start sub_80AB3A8 +sub_80AB3A8: @ 80AB3A8 + push {r4-r7,lr} + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r2, r0, r1 + ldrb r1, [r2] + adds r3, r0, 0 + cmp r1, 0x2 + beq _080AB42C + movs r7, 0xD8 + lsls r7, 3 + adds r4, r3, r7 + ldr r1, =0x000006c1 + adds r0, r3, r1 + ldrb r7, [r4] + mov r12, r7 + movs r6, 0 + ldrsb r6, [r4, r6] + movs r5, 0 + ldrsb r5, [r0, r5] + cmp r6, r5 + bne _080AB3E4 + movs r0, 0x3 + strb r0, [r2] + b _080AB42C + .pool +_080AB3E4: + ldr r0, =0x000006c3 + adds r2, r3, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldr r7, =0x000006c2 + adds r1, r3, r7 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _080AB42C + movs r0, 0 + strb r0, [r2] + mov r0, r12 + cmp r6, r5 + bge _080AB414 + adds r0, 0x1 + b _080AB418 + .pool +_080AB414: + mov r0, r12 + subs r0, 0x1 +_080AB418: + strb r0, [r4] + movs r1, 0xD8 + lsls r1, 3 + adds r0, r3, r1 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0 + movs r1, 0x20 + bl pal_fade_2 +_080AB42C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AB3A8 + + thumb_func_start sub_80AB434 +sub_80AB434: @ 80AB434 + push {lr} + ldr r2, =gUnknown_02038454 + ldr r0, =0x000006cb + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080AB452 + ldr r3, =0x000006ca + adds r1, r2, r3 + movs r0, 0 + strb r0, [r1] +_080AB452: + movs r1, 0xDA + lsls r1, 3 + adds r0, r2, r1 + ldrb r0, [r0] + subs r0, 0x3 + cmp r0, 0xA + bhi _080AB51C + lsls r0, 2 + ldr r1, =_080AB47C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AB47C: + .4byte _080AB4A8 + .4byte _080AB4A8 + .4byte _080AB4A8 + .4byte _080AB4F4 + .4byte _080AB51C + .4byte _080AB51C + .4byte _080AB51C + .4byte _080AB51C + .4byte _080AB4A8 + .4byte _080AB4D0 + .4byte _080AB4A8 +_080AB4A8: + bl sub_80AB54C + lsls r0, 24 + cmp r0, 0 + bne _080AB53C + ldr r0, =gUnknown_02038454 + movs r2, 0xD8 + lsls r2, 3 + adds r1, r0, r2 + movs r2, 0x3 + strb r2, [r1] + ldr r3, =0x000006c6 + adds r0, r3 + strb r2, [r0] + b _080AB53C + .pool +_080AB4D0: + bl sub_80AB5AC + lsls r0, 24 + cmp r0, 0 + bne _080AB53C + ldr r1, =gUnknown_02038454 + movs r0, 0xD8 + lsls r0, 3 + adds r2, r1, r0 + movs r0, 0xFA + strb r0, [r2] + ldr r2, =0x000006c6 + adds r1, r2 + b _080AB538 + .pool +_080AB4F4: + bl sub_80AB604 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080AB53C + ldr r0, =gUnknown_02038454 + movs r3, 0xD8 + lsls r3, 3 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, =0x000006c6 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + b _080AB53C + .pool +_080AB51C: + ldr r0, =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080AB53C + ldr r3, =0x000006c1 + adds r0, r2, r3 + ldrb r1, [r0] + subs r3, 0x1 + adds r0, r2, r3 + strb r1, [r0] + ldr r0, =0x000006c6 + adds r1, r2, r0 +_080AB538: + movs r0, 0x3 + strb r0, [r1] +_080AB53C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB434 + + thumb_func_start sub_80AB54C +sub_80AB54C: @ 80AB54C + push {r4,lr} + sub sp, 0x4 + ldr r2, =gUnknown_02038454 + ldr r0, =0x000006c7 + adds r4, r2, r0 + ldrb r0, [r4] + cmp r0, 0x10 + beq _080AB5A2 + adds r1, r0, 0x1 + strb r1, [r4] + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _080AB594 + movs r3, 0x10 + subs r3, r1 + lsls r3, 24 + lsrs r3, 24 + ldr r1, =0x000006c4 + adds r0, r2, r1 + ldrh r0, [r0] + str r0, [sp] + movs r0, 0 + movs r1, 0x20 + movs r2, 0x3 + bl sub_80AB848 + movs r0, 0x1 + b _080AB5A4 + .pool +_080AB594: + movs r0, 0 + movs r1, 0x20 + movs r2, 0x3 + bl pal_fade_2 + movs r0, 0x10 + strb r0, [r4] +_080AB5A2: + movs r0, 0 +_080AB5A4: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AB54C + + thumb_func_start sub_80AB5AC +sub_80AB5AC: @ 80AB5AC + push {r4,lr} + ldr r2, =gUnknown_02038454 + ldr r0, =0x000006c7 + adds r4, r2, r0 + ldrb r0, [r4] + cmp r0, 0x10 + beq _080AB5FC + adds r3, r0, 0x1 + strb r3, [r4] + lsls r0, r3, 24 + lsrs r0, 24 + cmp r0, 0xF + bhi _080AB5EC + movs r0, 0x6 + negs r0, r0 + movs r1, 0x10 + subs r1, r3 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =0x000006c4 + adds r2, r3 + ldrh r2, [r2] + bl sub_80AB990 + movs r0, 0x1 + b _080AB5FE + .pool +_080AB5EC: + movs r2, 0x6 + negs r2, r2 + movs r0, 0 + movs r1, 0x20 + bl pal_fade_2 + movs r0, 0x10 + strb r0, [r4] +_080AB5FC: + movs r0, 0 +_080AB5FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AB5AC + + thumb_func_start sub_80AB604 +sub_80AB604: @ 80AB604 + push {lr} + ldr r2, =gUnknown_02038454 + ldr r1, =0x000006c7 + adds r0, r2, r1 + ldrb r1, [r0] + cmp r1, 0x10 + beq _080AB638 + adds r1, 0x1 + strb r1, [r0] + movs r0, 0x10 + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x000006c4 + adds r1, r2, r3 + ldrh r1, [r1] + bl sub_80ABAB0 + movs r0, 0x1 + b _080AB63A + .pool +_080AB638: + movs r0, 0 +_080AB63A: + pop {r1} + bx r1 + thumb_func_end sub_80AB604 + + thumb_func_start nullsub_94 +nullsub_94: @ 80AB640 + bx lr + thumb_func_end nullsub_94 + + thumb_func_start pal_fade_2 +pal_fade_2: @ 80AB644 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + asrs r0, r2, 24 + cmp r0, 0 + ble _080AB754 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r6, r3, 4 + adds r0, r1, r3 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r4, r9 + bcc _080AB67C + b _080AB82E +_080AB67C: + ldr r1, [sp] + lsls r0, r1, 24 + asrs r0, 19 + str r0, [sp, 0x4] +_080AB684: + ldr r0, =gUnknown_03000F50 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080AB6C0 + lsls r1, r6, 1 + ldr r0, =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, =gPlttBufferFaded + adds r1, r2 + movs r2, 0x8 + bl CpuFastSet + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + mov r2, r9 + lsls r2, 16 + mov r8, r2 + adds r4, 0x1 + mov r12, r4 + b _080AB73E + .pool +_080AB6C0: + cmp r0, 0x2 + beq _080AB6D4 + adds r1, r4, 0 + subs r1, 0x10 + ldr r2, =gUnknown_02038454 + ldr r3, =0x000006d5 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r1, r0 + bne _080AB6E4 +_080AB6D4: + ldr r0, =gUnknown_020388B4 + b _080AB6EA + .pool +_080AB6E4: + movs r3, 0x80 + lsls r3, 2 + adds r0, r2, r3 +_080AB6EA: + ldr r1, [sp, 0x4] + adds r5, r1, r0 + movs r7, 0 + mov r2, r9 + lsls r2, 16 + mov r8, r2 + adds r4, 0x1 + mov r12, r4 + ldr r3, =gPlttBufferFaded + mov r10, r3 +_080AB6FE: + adds r2, r6, 0 + lsls r0, r2, 1 + ldr r1, =gPlttBufferUnfaded + adds r0, r1 + ldr r1, [r0] + lsls r0, r1, 27 + lsrs r0, 27 + adds r0, r5, r0 + ldrb r4, [r0] + lsls r0, r1, 22 + lsrs r0, 27 + adds r0, r5, r0 + ldrb r3, [r0] + lsls r1, 17 + lsrs r1, 27 + adds r1, r5, r1 + ldrb r1, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r2, 1 + add r2, r10 + lsls r1, 10 + lsls r3, 5 + orrs r1, r3 + orrs r1, r4 + strh r1, [r2] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xF + bls _080AB6FE +_080AB73E: + mov r2, r12 + lsls r0, r2, 16 + lsrs r4, r0, 16 + cmp r0, r8 + bcc _080AB684 + b _080AB82E + .pool +_080AB754: + cmp r0, 0 + bge _080AB81C + mvns r0, r0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r6, r3, 4 + adds r0, r1, r3 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r4, r3, 0 + cmp r4, r9 + bcs _080AB82E +_080AB770: + ldr r0, =gUnknown_03000F50 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080AB7AC + lsls r1, r6, 1 + ldr r0, =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, =gPlttBufferFaded + adds r1, r2 + movs r2, 0x8 + bl CpuFastSet + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + mov r3, r9 + lsls r3, 16 + mov r8, r3 + adds r4, 0x1 + mov r12, r4 + b _080AB804 + .pool +_080AB7AC: + movs r7, 0 + mov r0, r9 + lsls r0, 16 + mov r8, r0 + adds r4, 0x1 + mov r12, r4 + ldr r1, =gUnknown_0854014C + mov r10, r1 + ldr r2, [sp] + lsls r0, r2, 24 + asrs r5, r0, 11 +_080AB7C2: + lsls r0, r6, 1 + ldr r3, =gPlttBufferFaded + adds r4, r0, r3 + ldr r1, =gPlttBufferUnfaded + adds r0, r1 + ldrh r3, [r0] + lsls r3, 16 + lsrs r0, r3, 17 + movs r1, 0xF + ands r0, r1 + lsrs r1, r3, 18 + movs r2, 0xF0 + ands r1, r2 + orrs r0, r1 + lsrs r3, 19 + movs r2, 0xF0 + lsls r2, 4 + adds r1, r2, 0 + ands r3, r1 + orrs r0, r3 + lsls r0, 1 + adds r0, r5 + add r0, r10 + ldrh r0, [r0] + strh r0, [r4] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xF + bls _080AB7C2 +_080AB804: + mov r3, r12 + lsls r0, r3, 16 + lsrs r4, r0, 16 + cmp r0, r8 + bcc _080AB770 + b _080AB82E + .pool +_080AB81C: + lsls r1, r4, 5 + ldr r0, =gPlttBufferUnfaded + adds r0, r1, r0 + ldr r2, =gPlttBufferFaded + adds r1, r2 + mov r3, r9 + lsls r2, r3, 3 + bl CpuFastSet +_080AB82E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end pal_fade_2 + + thumb_func_start sub_80AB848 +sub_80AB848: @ 80AB848 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r4, [sp, 0x34] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + mov r1, sp + strh r4, [r1] + ldr r1, [sp] + lsls r3, r1, 27 + lsrs r3, 27 + str r3, [sp, 0x4] + lsls r3, r1, 22 + lsrs r3, 27 + str r3, [sp, 0x8] + lsls r1, 17 + lsrs r1, 27 + str r1, [sp, 0xC] + lsls r6, r0, 4 + mov r3, r10 + adds r1, r3, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + movs r1, 0xFF + lsls r1, 24 + adds r2, r1 + lsrs r2, 24 + adds r4, r0, 0 + cmp r4, r10 + bcs _080AB974 + lsls r0, r2, 24 + asrs r0, 19 + str r0, [sp, 0x10] +_080AB8A0: + ldr r0, =gUnknown_03000F50 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080AB8D4 + mov r0, sp + ldrh r3, [r0] + adds r0, r6, 0 + movs r1, 0x10 + mov r2, r8 + bl BlendPalette + adds r0, r6, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + mov r3, r10 + lsls r3, 16 + mov r9, r3 + adds r4, 0x1 + mov r12, r4 + b _080AB96A + .pool +_080AB8D4: + cmp r0, 0x1 + bne _080AB8E4 + ldr r0, =gUnknown_02038654 + ldr r1, [sp, 0x10] + adds r5, r1, r0 + b _080AB8EA + .pool +_080AB8E4: + ldr r0, =gUnknown_020388B4 + ldr r3, [sp, 0x10] + adds r5, r3, r0 +_080AB8EA: + movs r7, 0 + mov r0, r10 + lsls r0, 16 + mov r9, r0 + adds r4, 0x1 + mov r12, r4 +_080AB8F6: + adds r4, r6, 0 + lsls r0, r4, 1 + ldr r1, =gPlttBufferUnfaded + adds r0, r1 + ldr r1, [r0] + lsls r0, r1, 27 + lsrs r0, 27 + adds r0, r5, r0 + ldrb r3, [r0] + lsls r0, r1, 22 + lsrs r0, 27 + adds r0, r5, r0 + ldrb r2, [r0] + lsls r1, 17 + lsrs r1, 27 + adds r1, r5, r1 + ldrb r1, [r1] + ldr r6, [sp, 0x4] + subs r0, r6, r3 + mov r6, r8 + muls r6, r0 + adds r0, r6, 0 + asrs r0, 4 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldr r6, [sp, 0x8] + subs r0, r6, r2 + mov r6, r8 + muls r6, r0 + adds r0, r6, 0 + asrs r0, 4 + adds r2, r0 + lsls r2, 24 + ldr r6, [sp, 0xC] + subs r0, r6, r1 + mov r6, r8 + muls r6, r0 + adds r0, r6, 0 + asrs r0, 4 + adds r1, r0 + lsls r1, 24 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r4, 1 + ldr r0, =gPlttBufferFaded + adds r4, r0 + lsrs r1, 14 + lsrs r2, 19 + orrs r1, r2 + orrs r1, r3 + strh r1, [r4] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0xF + bls _080AB8F6 +_080AB96A: + mov r1, r12 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r0, r9 + bcc _080AB8A0 +_080AB974: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB848 + + thumb_func_start sub_80AB990 +sub_80AB990: @ 80AB990 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r1, 24 + lsrs r6, r1, 24 + mov r1, sp + strh r2, [r1] + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + eors r0, r1 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, [sp] + lsls r1, r0, 27 + lsrs r1, 27 + str r1, [sp, 0x8] + lsls r1, r0, 22 + lsrs r1, 27 + str r1, [sp, 0xC] + lsls r0, 17 + lsrs r0, 27 + mov r10, r0 + movs r5, 0 + movs r4, 0 +_080AB9C8: + ldr r0, =gUnknown_03000F50 + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _080AB9F4 + mov r0, sp + ldrh r3, [r0] + adds r0, r5, 0 + movs r1, 0x10 + adds r2, r6, 0 + bl BlendPalette + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x1 + mov r8, r4 + b _080ABA8A + .pool +_080AB9F4: + movs r0, 0 + mov r12, r0 + ldr r1, [sp, 0x4] + lsls r0, r1, 24 + adds r4, 0x1 + mov r8, r4 + movs r7, 0x1E + asrs r0, 11 + mov r9, r0 +_080ABA06: + adds r4, r5, 0 + lsls r0, r4, 1 + ldr r5, =gPlttBufferUnfaded + adds r0, r5 + ldr r0, [r0] + lsls r2, r0, 27 + lsrs r2, 27 + lsls r1, r0, 22 + lsrs r1, 27 + lsls r0, 17 + lsrs r0, 27 + ands r0, r7 + lsls r0, 7 + ands r1, r7 + lsls r1, 3 + orrs r0, r1 + ands r2, r7 + lsls r0, 1 + orrs r0, r2 + add r0, r9 + ldr r1, =gUnknown_0854014C + adds r0, r1 + ldr r1, [r0] + lsls r3, r1, 27 + lsrs r3, 27 + lsls r2, r1, 22 + lsrs r2, 27 + lsls r1, 17 + lsrs r1, 27 + ldr r5, [sp, 0x8] + subs r0, r5, r3 + muls r0, r6 + asrs r0, 4 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + ldr r5, [sp, 0xC] + subs r0, r5, r2 + muls r0, r6 + asrs r0, 4 + adds r2, r0 + lsls r2, 24 + mov r5, r10 + subs r0, r5, r1 + muls r0, r6 + asrs r0, 4 + adds r1, r0 + lsls r1, 24 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r4, 1 + ldr r0, =gPlttBufferFaded + adds r4, r0 + lsrs r1, 14 + lsrs r2, 19 + orrs r1, r2 + orrs r1, r3 + strh r1, [r4] + mov r0, r12 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r0, 0xF + bls _080ABA06 +_080ABA8A: + mov r1, r8 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x1F + bls _080AB9C8 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AB990 + + thumb_func_start sub_80ABAB0 +sub_80ABAB0: @ 80ABAB0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r3, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r3, 16 + lsrs r3, 16 + mov r0, sp + strh r3, [r0] + movs r1, 0x80 + lsls r1, 1 + movs r0, 0 + adds r2, r7, 0 + bl BlendPalette + ldr r0, [sp] + lsls r1, r0, 27 + lsrs r1, 27 + str r1, [sp, 0x4] + lsls r1, r0, 22 + lsrs r1, 27 + str r1, [sp, 0x8] + lsls r0, 17 + lsrs r0, 27 + mov r10, r0 + movs r4, 0x10 +_080ABAEC: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80ABC00 + lsls r0, 24 + cmp r0, 0 + beq _080ABB9C + adds r0, r4, 0x1 + lsls r1, r0, 20 + lsrs r1, 16 + mov r12, r1 + lsls r1, r4, 20 + lsrs r6, r1, 16 + mov r9, r0 + cmp r6, r12 + bcs _080ABBB0 + movs r0, 0x1C + mov r8, r0 +_080ABB10: + lsls r5, r6, 1 + ldr r0, =gPlttBufferUnfaded + adds r0, r5, r0 + ldr r2, [r0] + lsls r4, r2, 27 + lsrs r4, 27 + lsls r3, r2, 22 + lsrs r3, 27 + lsls r2, 17 + lsrs r2, 27 + mov r0, r8 + subs r1, r0, r4 + lsls r0, r1, 1 + adds r0, r1 + asrs r0, 2 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0x1F + subs r1, r3 + lsls r0, r1, 1 + adds r0, r1 + asrs r0, 2 + adds r3, r0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + subs r1, r0, r2 + lsls r0, r1, 1 + adds r0, r1 + asrs r0, 2 + adds r2, r0 + lsls r2, 24 + lsrs r2, 24 + ldr r1, [sp, 0x4] + subs r0, r1, r4 + muls r0, r7 + asrs r0, 4 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, [sp, 0x8] + subs r0, r1, r3 + muls r0, r7 + asrs r0, 4 + adds r3, r0 + lsls r3, 24 + mov r1, r10 + subs r0, r1, r2 + muls r0, r7 + asrs r0, 4 + adds r2, r0 + lsls r2, 24 + ldr r0, =gPlttBufferFaded + adds r5, r0 + lsrs r2, 14 + lsrs r3, 19 + orrs r2, r3 + orrs r2, r4 + strh r2, [r5] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r12 + bcc _080ABB10 + b _080ABBB0 + .pool +_080ABB9C: + lsls r0, r4, 20 + lsrs r0, 16 + mov r1, sp + ldrh r3, [r1] + movs r1, 0x10 + adds r2, r7, 0 + bl BlendPalette + adds r4, 0x1 + mov r9, r4 +_080ABBB0: + mov r1, r9 + lsls r0, r1, 16 + lsrs r4, r0, 16 + cmp r4, 0x1F + bls _080ABAEC + 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_80ABAB0 + + thumb_func_start sub_80ABBCC +sub_80ABBCC: @ 80ABBCC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, =gUnknown_02038454 + ldr r0, =0x000006fa + adds r1, r3, r0 + ldrb r0, [r1] + cmp r0, 0x5 + bhi _080ABBEE + ldr r4, =0x000006f4 + adds r0, r3, r4 + ldrb r3, [r1] + adds r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080ABBEE: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABBCC + + thumb_func_start sub_80ABC00 +sub_80ABC00: @ 80ABC00 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r1, 0 + ldr r2, =gUnknown_02038454 + ldr r4, =0x000006fa + adds r0, r2, r4 + ldrb r0, [r0] + cmp r1, r0 + bcs _080ABC3E + ldr r5, =0x000006f4 + adds r4, r2, r5 + adds r2, r0, 0 +_080ABC1A: + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080ABC34 + movs r0, 0x1 + b _080ABC40 + .pool +_080ABC34: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bcc _080ABC1A +_080ABC3E: + movs r0, 0 +_080ABC40: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80ABC00 + + thumb_func_start sub_80ABC48 +sub_80ABC48: @ 80ABC48 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080ABC6E + lsls r2, r4, 24 + asrs r2, 24 + movs r0, 0 + movs r1, 0x20 + bl pal_fade_2 + movs r1, 0xD8 + lsls r1, 3 + adds r0, r5, r1 + strb r4, [r0] +_080ABC6E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABC48 + + thumb_func_start sub_80ABC7C +sub_80ABC7C: @ 80ABC7C + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + ldr r3, =gUnknown_02038454 + ldr r0, =0x000006c6 + adds r2, r3, r0 + ldrb r0, [r2] + cmp r0, 0x3 + bne _080ABCBC + movs r1, 0 + strb r1, [r2] + movs r2, 0xD8 + lsls r2, 3 + adds r0, r3, r2 + strb r4, [r0] + adds r2, 0x1 + adds r0, r3, r2 + strb r5, [r0] + adds r2, 0x2 + adds r0, r3, r2 + strb r1, [r0] + ldr r1, =0x000006c2 + adds r0, r3, r1 + strb r6, [r0] + lsls r0, r4, 24 + asrs r0, 24 + bl sub_80ABC48 +_080ABCBC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABC7C + + thumb_func_start fade_screen +fade_screen: @ 80ABCD0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r0, 0x1 + beq _080ABD08 + cmp r0, 0x1 + bgt _080ABCEC + cmp r0, 0 + beq _080ABCF6 + b _080ABDE4 +_080ABCEC: + cmp r2, 0x2 + beq _080ABCFC + cmp r2, 0x3 + beq _080ABD0C + b _080ABDE4 +_080ABCF6: + movs r4, 0 + movs r1, 0 + b _080ABD10 +_080ABCFC: + ldr r4, =0x0000ffff + movs r1, 0 + b _080ABD10 + .pool +_080ABD08: + movs r4, 0 + b _080ABD0E +_080ABD0C: + ldr r4, =0x0000ffff +_080ABD0E: + movs r1, 0x1 +_080ABD10: + ldr r0, =gUnknown_02038454 + movs r2, 0xDA + lsls r2, 3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x3 + blt _080ABD38 + cmp r0, 0x6 + ble _080ABD2A + cmp r0, 0xD + bgt _080ABD38 + cmp r0, 0xB + blt _080ABD38 +_080ABD2A: + movs r2, 0x1 + b _080ABD3A + .pool +_080ABD38: + movs r2, 0 +_080ABD3A: + cmp r1, 0 + beq _080ABD7C + cmp r2, 0 + beq _080ABD4E + ldr r0, =gPlttBufferFaded + ldr r1, =gPlttBufferUnfaded + movs r2, 0x80 + lsls r2, 1 + bl CpuFastSet +_080ABD4E: + movs r0, 0x1 + negs r0, r0 + lsls r1, r5, 24 + asrs r1, 24 + str r4, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, =gUnknown_02038454 + ldr r3, =0x000006c6 + adds r0, r3 + movs r1, 0x2 + strb r1, [r0] + b _080ABDE4 + .pool +_080ABD7C: + ldr r1, =gUnknown_02038454 + ldr r3, =0x000006c4 + adds r0, r1, r3 + strh r4, [r0] + cmp r2, 0 + beq _080ABDA0 + ldr r0, =0x000006c7 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + b _080ABDB2 + .pool +_080ABDA0: + movs r0, 0x1 + negs r0, r0 + lsls r1, r5, 24 + asrs r1, 24 + str r4, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080ABDB2: + ldr r4, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r0, r4, r1 + movs r1, 0 + movs r5, 0x1 + strb r5, [r0] + ldr r2, =0x000006ca + adds r0, r4, r2 + strb r5, [r0] + ldr r3, =0x000006cb + adds r0, r4, r3 + strb r1, [r0] + movs r1, 0xE6 + lsls r1, 3 + adds r0, r4, r1 + ldrb r0, [r0] + adds r2, 0x68 + adds r1, r4, r2 + ldrb r1, [r1] + bl sub_80AC124 + movs r3, 0xD9 + lsls r3, 3 + adds r4, r3 + strb r5, [r4] +_080ABDE4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end fade_screen + + thumb_func_start sub_80ABDFC +sub_80ABDFC: @ 80ABDFC + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .pool + thumb_func_end sub_80ABDFC + + thumb_func_start sub_80ABE18 +@ void sub_80ABE18(u8 a1) +sub_80ABE18: @ 80ABE18 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 8 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 + ldr r5, =gUnknown_02038454 + ldr r2, =0x000006c6 + adds r0, r5, r2 + ldrb r0, [r0] + adds r1, r5, 0 + cmp r0, 0x1 + beq _080ABE60 + cmp r0, 0x2 + beq _080ABEAC + adds r2, 0xA + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080ABEE4 + lsls r0, r4, 24 + lsrs r0, 24 + subs r2, 0x10 + adds r1, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x1 + bl pal_fade_2 + b _080ABEF4 + .pool +_080ABE60: + ldr r2, =0x000006ca + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080ABEF4 + adds r2, 0x6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080ABE7C + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80ABBCC +_080ABE7C: + lsls r0, r4, 20 + lsrs r4, r0, 16 + movs r2, 0 + ldr r6, =gPlttBufferFaded + ldr r0, =0x000006c4 + adds r3, r5, r0 +_080ABE88: + adds r0, r4, r2 + lsls r0, 1 + adds r0, r6 + ldrh r1, [r3] + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080ABE88 + b _080ABEF4 + .pool +_080ABEAC: + lsls r0, r4, 20 + lsrs r4, r0, 16 + lsls r1, r4, 1 + ldr r0, =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x8 + bl CpuFastSet + ldr r0, =gPaletteFade + ldrh r2, [r0, 0x4] + lsls r2, 21 + lsrs r2, 27 + ldrh r3, [r0, 0x6] + lsls r3, 17 + lsrs r3, 17 + adds r0, r4, 0 + movs r1, 0x10 + bl BlendPalette + b _080ABEF4 + .pool +_080ABEE4: + lsls r0, r4, 20 + lsrs r4, r0, 16 + ldr r3, =0x000073fc + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0xC + bl BlendPalette +_080ABEF4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABE18 + + thumb_func_start sub_80ABF00 +sub_80ABF00: @ 80ABF00 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_02038454 + movs r2, 0xD8 + lsls r2, 3 + adds r1, r2 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x1 + bl pal_fade_2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABF00 + + thumb_func_start sub_80ABF20 +sub_80ABF20: @ 80ABF20 + push {lr} + ldr r1, =gUnknown_02038454 + ldr r2, =0x000006c6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080ABF3C + movs r0, 0 + b _080ABF42 + .pool +_080ABF3C: + ldr r2, =0x000006ca + adds r0, r1, r2 + ldrb r0, [r0] +_080ABF42: + pop {r1} + bx r1 + .pool + thumb_func_end sub_80ABF20 + + thumb_func_start sub_80ABF4C +sub_80ABF4C: @ 80ABF4C + push {r4,lr} + ldr r4, =gUnknown_02038454 + ldr r1, =0x000006d4 + adds r4, r1 + ldrb r1, [r4] + lsls r1, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadPalette + ldrb r0, [r4] + bl sub_80ABE18 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ABF4C + + thumb_func_start sub_80ABF7C +sub_80ABF7C: @ 80ABF7C + movs r2, 0x20 + strb r2, [r0] + strb r2, [r1] + bx lr + thumb_func_end sub_80ABF7C + + thumb_func_start sub_80ABF84 +sub_80ABF84: @ 80ABF84 + ldr r0, =gUnknown_02038454 + ldr r2, =0x0000074d + adds r1, r0, r2 + movs r2, 0x1 + strb r2, [r1] + ldr r1, =0x0000074e + adds r0, r1 + strb r2, [r0] + bx lr + .pool + thumb_func_end sub_80ABF84 + + thumb_func_start sub_80ABFA4 +sub_80ABFA4: @ 80ABFA4 + push {r4,lr} + ldr r1, =gUnknown_02038454 + ldr r0, =0x0000074d + adds r4, r1, r0 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1F + bgt _080ABFD8 + ldr r0, =0x0000074e + adds r1, r0 + adds r0, r4, 0 + bl sub_80ABF7C + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1F + bgt _080ABFD8 + movs r0, 0x1 + b _080ABFDA + .pool +_080ABFD8: + movs r0, 0 +_080ABFDA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80ABFA4 + + thumb_func_start sub_80ABFE0 +sub_80ABFE0: @ 80ABFE0 + push {lr} + lsls r0, 24 + asrs r0, 24 + mvns r0, r0 + bl sub_80ABC48 + pop {r0} + bx r0 + thumb_func_end sub_80ABFE0 + + thumb_func_start sub_80ABFF0 +sub_80ABFF0: @ 80ABFF0 + ldr r1, =gUnknown_02038454 + ldr r2, =0x0000073c + adds r0, r1, r2 + movs r2, 0 + strh r2, [r0] + movs r3, 0xE8 + lsls r3, 3 + adds r0, r1, r3 + strh r2, [r0] + adds r3, 0x2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, =0x0000073e + adds r1, r0 + strh r2, [r1] + bx lr + .pool + thumb_func_end sub_80ABFF0 + + thumb_func_start sub_80AC01C +sub_80AC01C: @ 80AC01C + push {r4-r7,lr} + ldr r5, =gUnknown_02038454 + ldr r0, =0x00000742 + adds r7, r5, r0 + movs r2, 0 + ldrsh r1, [r7, r2] + cmp r1, 0x1 + beq _080AC090 + cmp r1, 0x1 + bgt _080AC040 + cmp r1, 0 + beq _080AC046 + b _080AC118 + .pool +_080AC040: + cmp r1, 0x2 + beq _080AC0E4 + b _080AC118 +_080AC046: + movs r3, 0xE8 + lsls r3, 3 + adds r6, r5, r3 + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080AC118 + strh r1, [r6] + ldr r0, =0x0000073c + adds r4, r5, r0 + ldrh r0, [r4] + adds r1, r0, 0x1 + strh r1, [r4] + lsls r0, 24 + asrs r0, 24 + bl sub_80ABFE0 + ldrh r1, [r4] + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0x5 + ble _080AC118 + ldr r3, =0x0000073e + adds r0, r5, r3 + strh r1, [r0] + movs r0, 0x1 + strh r0, [r7] + movs r0, 0x3C + strh r0, [r6] + b _080AC118 + .pool +_080AC090: + movs r0, 0xE8 + lsls r0, 3 + adds r2, r5, r0 + ldrh r0, [r2] + adds r0, 0x3 + movs r1, 0x7F + ands r0, r1 + strh r0, [r2] + ldr r1, =gSineTable + movs r3, 0 + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + subs r0, 0x1 + asrs r0, 6 + adds r0, 0x2 + ldr r2, =0x0000073c + adds r6, r5, r2 + adds r2, r0, 0 + strh r0, [r6] + ldr r3, =0x0000073e + adds r4, r5, r3 + movs r3, 0 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _080AC0D0 + lsls r0, r2, 24 + asrs r0, 24 + bl sub_80ABFE0 +_080AC0D0: + ldrh r0, [r6] + strh r0, [r4] + b _080AC118 + .pool +_080AC0E4: + movs r0, 0xE8 + lsls r0, 3 + adds r1, r5, r0 + ldrh r0, [r1] + adds r0, 0x1 + movs r6, 0 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080AC118 + strh r6, [r1] + ldr r1, =0x0000073c + adds r4, r5, r1 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + lsls r0, 24 + asrs r0, 24 + bl sub_80ABFE0 + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bne _080AC118 + strh r6, [r7] +_080AC118: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC01C + + thumb_func_start sub_80AC124 +sub_80AC124: @ 80AC124 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_02038454 + movs r4, 0xE6 + lsls r4, 3 + adds r2, r3, r4 + strh r0, [r2] + adds r4, 0x2 + adds r2, r3, r4 + strh r1, [r2] + adds r4, 0x2 + adds r2, r3, r4 + strh r0, [r2] + ldr r2, =0x00000736 + adds r3, r2 + strh r1, [r3] + lsls r1, 8 + orrs r1, r0 + movs r0, 0x52 + bl SetGpuReg + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC124 + + thumb_func_start sub_80AC164 +sub_80AC164: @ 80AC164 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_02038454 + ldr r5, =0x00000734 + adds r4, r3, r5 + movs r5, 0 + strh r0, [r4] + ldr r4, =0x00000736 + adds r0, r3, r4 + strh r1, [r0] + ldr r1, =0x0000073a + adds r0, r3, r1 + strb r2, [r0] + adds r4, 0x3 + adds r0, r3, r4 + strb r5, [r0] + movs r0, 0xE7 + lsls r0, 3 + adds r3, r0 + strb r5, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC164 + + thumb_func_start sub_80AC1A8 +sub_80AC1A8: @ 80AC1A8 + push {r4-r6,lr} + ldr r0, =gUnknown_02038454 + movs r1, 0xE6 + lsls r1, 3 + adds r3, r0, r1 + ldr r2, [r3] + ldr r6, =0x00000734 + adds r4, r0, r6 + ldr r1, [r4] + adds r5, r0, 0 + cmp r2, r1 + beq _080AC26C + ldr r0, =0x00000739 + adds r2, r5, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldr r6, =0x0000073a + adds r1, r5, r6 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bls _080AC238 + movs r0, 0 + strb r0, [r2] + movs r0, 0xE7 + lsls r0, 3 + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC210 + ldrh r1, [r3] + adds r2, r1, 0 + ldrh r0, [r4] + cmp r2, r0 + bcs _080AC230 + adds r0, r1, 0x1 + b _080AC236 + .pool +_080AC210: + ldr r1, =0x00000732 + adds r3, r5, r1 + ldr r2, =0x00000736 + adds r0, r5, r2 + ldrh r1, [r3] + adds r2, r1, 0 + ldrh r0, [r0] + cmp r2, r0 + bcs _080AC230 + adds r0, r1, 0x1 + b _080AC236 + .pool +_080AC230: + cmp r2, r0 + bls _080AC238 + subs r0, r1, 0x1 +_080AC236: + strh r0, [r3] +_080AC238: + ldr r6, =0x00000732 + adds r0, r5, r6 + ldrh r1, [r0] + lsls r1, 8 + movs r0, 0xE6 + lsls r0, 3 + adds r4, r5, r0 + ldrh r0, [r4] + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + ldr r1, [r4] + ldr r2, =0x00000734 + adds r0, r5, r2 + ldr r0, [r0] + cmp r1, r0 + beq _080AC26C + movs r0, 0 + b _080AC26E + .pool +_080AC26C: + movs r0, 0x1 +_080AC26E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80AC1A8 + + thumb_func_start sub_80AC274 +sub_80AC274: @ 80AC274 + push {lr} + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x9 + bhi _080AC306 + lsls r0, 2 + ldr r1, =_080AC290 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AC290: + .4byte _080AC2B8 + .4byte _080AC2C0 + .4byte _080AC2C8 + .4byte _080AC2D0 + .4byte _080AC2D8 + .4byte _080AC2E0 + .4byte _080AC2E8 + .4byte _080AC2F0 + .4byte _080AC2F8 + .4byte _080AC300 +_080AC2B8: + movs r0, 0x1 + bl sub_80AEDF0 + b _080AC306 +_080AC2C0: + movs r0, 0x2 + bl sub_80AEDF0 + b _080AC306 +_080AC2C8: + movs r0, 0x3 + bl sub_80AEDF0 + b _080AC306 +_080AC2D0: + movs r0, 0x4 + bl sub_80AEDF0 + b _080AC306 +_080AC2D8: + movs r0, 0x5 + bl sub_80AEDF0 + b _080AC306 +_080AC2E0: + movs r0, 0x6 + bl sub_80AEDF0 + b _080AC306 +_080AC2E8: + movs r0, 0x9 + bl sub_80AEDF0 + b _080AC306 +_080AC2F0: + movs r0, 0x7 + bl sub_80AEDF0 + b _080AC306 +_080AC2F8: + movs r0, 0x8 + bl sub_80AEDF0 + b _080AC306 +_080AC300: + movs r0, 0xB + bl sub_80AEDF0 +_080AC306: + pop {r0} + bx r0 + thumb_func_end sub_80AC274 + + thumb_func_start weather_get_current +weather_get_current: @ 80AC30C + ldr r0, =gUnknown_02038454 + movs r1, 0xDA + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end weather_get_current + + thumb_func_start sub_80AC31C +sub_80AC31C: @ 80AC31C + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =gUnknown_02038454 + ldr r3, =0x000006c6 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080AC36E + cmp r2, 0x53 + beq _080AC354 + cmp r2, 0x53 + bgt _080AC344 + cmp r2, 0x51 + beq _080AC360 + b _080AC36E + .pool +_080AC344: + cmp r2, 0x55 + bne _080AC36E + ldr r0, =0x000006dd + adds r1, r0 + movs r0, 0 + b _080AC366 + .pool +_080AC354: + ldr r3, =0x000006dd + adds r1, r3 + movs r0, 0x1 + b _080AC366 + .pool +_080AC360: + ldr r0, =0x000006dd + adds r1, r0 + movs r0, 0x2 +_080AC366: + strb r0, [r1] + adds r0, r2, 0 + bl PlaySE +_080AC36E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC31C + + thumb_func_start play_some_sound +play_some_sound: @ 80AC378 + push {lr} + bl IsSpecialSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _080AC3B6 + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006dd + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080AC3A8 + cmp r0, 0x1 + bgt _080AC3B0 + cmp r0, 0 + bne _080AC3B0 + movs r0, 0x56 + bl PlaySE + b _080AC3B6 + .pool +_080AC3A8: + movs r0, 0x54 + bl PlaySE + b _080AC3B6 +_080AC3B0: + movs r0, 0x52 + bl PlaySE +_080AC3B6: + pop {r0} + bx r0 + thumb_func_end play_some_sound + + thumb_func_start sub_80AC3BC +sub_80AC3BC: @ 80AC3BC + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006d3 + adds r0, r1 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_80AC3BC + + thumb_func_start sub_80AC3D0 +sub_80AC3D0: @ 80AC3D0 + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_80AC3D0 + + thumb_func_start sub_80AC3E4 +sub_80AC3E4: @ 80AC3E4 + ldr r0, =gUnknown_02038454 + ldr r1, =0x000006c6 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_80AC3E4 + + thumb_func_start sub_80AC3F8 +sub_80AC3F8: @ 80AC3F8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_0854C250 + ldr r5, =gUnknown_02038BA4 + adds r1, r5, 0 + movs r2, 0x10 + bl CpuSet + adds r4, r5 + movs r0, 0 + strb r0, [r4] + ldr r0, =gUnknown_03000F50 + str r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC3F8 + + thumb_func_start sub_80AC428 +sub_80AC428: @ 80AC428 + ldr r1, =gUnknown_03000F50 + ldr r0, =gUnknown_0854C250 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_80AC428 + + thumb_func_start sub_80AC438 +sub_80AC438: @ 80AC438 + push {lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r2, =0x000006c1 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, =0x000006c2 + adds r3, r0, r1 + movs r1, 0x14 + strb r1, [r3] + ldr r3, =0x000006d2 + adds r1, r0, r3 + strb r2, [r1] + subs r3, 0x6 + adds r1, r0, r3 + strh r2, [r1] + ldr r1, =0x000006de + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AC46C + movs r0, 0 + movs r1, 0x10 + bl sub_80AC124 +_080AC46C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC438 + + thumb_func_start sub_80AC484 +sub_80AC484: @ 80AC484 + push {r4,lr} + bl sub_80AC438 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AC4A4 + adds r4, r1, r2 +_080AC49A: + bl sub_80AC4B4 + ldrb r0, [r4] + cmp r0, 0 + beq _080AC49A +_080AC4A4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC484 + + thumb_func_start sub_80AC4B4 +sub_80AC4B4: @ 80AC4B4 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x000006cc + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AC4E4 + cmp r0, 0x1 + bgt _080AC4D8 + cmp r0, 0 + beq _080AC4DE + b _080AC508 + .pool +_080AC4D8: + cmp r0, 0x2 + beq _080AC4F0 + b _080AC508 +_080AC4DE: + bl sub_80AC594 + b _080AC502 +_080AC4E4: + movs r0, 0xC + movs r1, 0x8 + movs r2, 0x1 + bl sub_80AC164 + b _080AC502 +_080AC4F0: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AC508 + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080AC502: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AC508: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC4B4 + + thumb_func_start sub_80AC514 +sub_80AC514: @ 80AC514 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ce + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0 + beq _080AC534 + cmp r0, 0x1 + beq _080AC540 + movs r0, 0 + b _080AC556 + .pool +_080AC534: + movs r0, 0 + movs r1, 0x10 + movs r2, 0x1 + bl sub_80AC164 + b _080AC54E +_080AC540: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AC554 + bl sub_80AC660 +_080AC54E: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AC554: + movs r0, 0x1 +_080AC556: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AC514 + + thumb_func_start sub_80AC55C +sub_80AC55C: @ 80AC55C + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006c1 + adds r2, r1, r0 + movs r0, 0 + strb r0, [r2] + ldr r0, =0x000006c2 + adds r1, r0 + movs r0, 0x14 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_80AC55C + + thumb_func_start sub_80AC580 +sub_80AC580: @ 80AC580 + push {lr} + bl sub_80AC55C + pop {r0} + bx r0 + thumb_func_end sub_80AC580 + + thumb_func_start nullsub_95 +nullsub_95: @ 80AC58C + bx lr + thumb_func_end nullsub_95 + + thumb_func_start sub_80AC590 +sub_80AC590: @ 80AC590 + movs r0, 0 + bx lr + thumb_func_end sub_80AC590 + + thumb_func_start sub_80AC594 +sub_80AC594: @ 80AC594 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006de + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080AC650 + ldr r0, =gUnknown_0854FB5C + bl LoadSpriteSheet + ldr r0, =gUnknown_0854C290 + bl sub_80ABF4C + movs r5, 0 +_080AC5B2: + ldr r0, =gUnknown_0854FB78 + movs r1, 0 + movs r2, 0 + movs r3, 0xFF + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080AC628 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + lsls r2, r5, 2 + movs r0, 0xFA + lsls r0, 1 + adds r1, r0 + adds r1, r2 + lsls r4, r3, 4 + adds r4, r3 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + str r4, [r1] + ldr r0, =gUnknown_0854FB50 + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x7 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r2, 0x2] + adds r1, 0x7 + lsls r1, 16 + asrs r1, 16 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + bl sub_8093038 + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4] + b _080AC63A + .pool +_080AC628: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + lsls r0, r5, 2 + movs r2, 0xFA + lsls r2, 1 + adds r1, r2 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080AC63A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x2 + bls _080AC5B2 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006de + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080AC650: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC594 + + thumb_func_start sub_80AC660 +sub_80AC660: @ 80AC660 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006de + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AC6A4 + movs r4, 0 + movs r0, 0xFA + lsls r0, 1 + adds r5, r1, r0 +_080AC678: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080AC686 + bl DestroySprite +_080AC686: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x2 + bls _080AC678 + movs r0, 0x90 + lsls r0, 5 + bl FreeSpriteTilesByTag + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006de + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080AC6A4: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC660 + + thumb_func_start sub_80AC6B4 +sub_80AC6B4: @ 80AC6B4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + movs r1, 0x1 + ands r0, r1 + strh r0, [r2, 0x2E] + cmp r0, 0 + beq _080AC6CC + ldrh r0, [r2, 0x20] + subs r0, 0x1 + strh r0, [r2, 0x20] +_080AC6CC: + pop {r0} + bx r0 + thumb_func_end sub_80AC6B4 + + thumb_func_start sub_80AC6D0 +sub_80AC6D0: @ 80AC6D0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006cc + adds r3, r1, r0 + movs r2, 0 + movs r0, 0 + strh r0, [r3] + ldr r3, =0x000006d2 + adds r0, r1, r3 + strb r2, [r0] + subs r3, 0x11 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, =0x000006c2 + adds r1, r0 + strb r2, [r1] + bx lr + .pool + thumb_func_end sub_80AC6D0 + + thumb_func_start sub_80AC704 +sub_80AC704: @ 80AC704 + push {r4,lr} + bl sub_80AC6D0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AC724 + adds r4, r1, r2 +_080AC71A: + bl sub_80AC734 + ldrb r0, [r4] + cmp r0, 0 + beq _080AC71A +_080AC724: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC704 + + thumb_func_start sub_80AC734 +sub_80AC734: @ 80AC734 + push {lr} + ldr r1, =gUnknown_0854C14C + ldr r0, [r1] + ldr r2, =0x000006cc + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080AC810 + lsls r0, 2 + ldr r1, =_080AC75C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AC75C: + .4byte _080AC770 + .4byte _080AC78C + .4byte _080AC7A4 + .4byte _080AC7C0 + .4byte _080AC7D8 +_080AC770: + ldr r1, [r2] + ldr r2, =0x000006c6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AC814 + ldr r0, =0x000006cc + adds r1, r0 + b _080AC7F8 + .pool +_080AC78C: + bl sub_80ABF84 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r1, r2 + b _080AC7F8 + .pool +_080AC7A4: + bl sub_80ABFA4 + lsls r0, 24 + cmp r0, 0 + bne _080AC814 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006cc + adds r1, r0 + b _080AC7F8 + .pool +_080AC7C0: + bl sub_80ABFF0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r1, r2 + b _080AC7F8 + .pool +_080AC7D8: + bl sub_80AC01C + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r1, =0x0000073c + adds r0, r2, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0x6 + bne _080AC814 + ldr r0, =0x000006d2 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =0x000006cc + adds r1, r2, r0 +_080AC7F8: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080AC814 + .pool +_080AC810: + bl sub_80AC01C +_080AC814: + pop {r0} + bx r0 + thumb_func_end sub_80AC734 + + thumb_func_start sub_80AC818 +sub_80AC818: @ 80AC818 + movs r0, 0 + bx lr + thumb_func_end sub_80AC818 + + thumb_func_start sub_80AC81C +sub_80AC81C: @ 80AC81C + push {lr} + ldr r0, =task50_0807B6D4 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC81C + + thumb_func_start task50_0807B6D4 +task50_0807B6D4: @ 80AC830 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _080AC922 + lsls r0, 2 + ldr r1, =_080AC85C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AC85C: + .4byte _080AC870 + .4byte _080AC89A + .4byte _080AC8C8 + .4byte _080AC8F8 + .4byte _080AC918 +_080AC870: + movs r0, 0 + strh r0, [r4, 0xA] + strh r0, [r4, 0xC] + ldr r0, =0x04000048 + ldrh r0, [r0] + strh r0, [r4, 0xE] + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0x9E + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080AC89A: + ldrh r0, [r4, 0xA] + adds r0, 0x3 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080AC8AC + movs r0, 0x10 + strh r0, [r4, 0xA] +_080AC8AC: + ldrh r1, [r4, 0xA] + movs r0, 0x54 + bl SetGpuReg + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0xF + ble _080AC922 + b _080AC910 + .pool +_080AC8C8: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _080AC922 + strh r1, [r4, 0xC] + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080AC8EE + strh r1, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080AC8EE: + ldrh r1, [r4, 0xA] + movs r0, 0x54 + bl SetGpuReg + b _080AC922 +_080AC8F8: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4, 0xE] + movs r0, 0x48 + bl SetGpuReg +_080AC910: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AC922 +_080AC918: + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask +_080AC922: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task50_0807B6D4 + + thumb_func_start sub_80AC928 +sub_80AC928: @ 80AC928 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r0, r1, r2 + movs r3, 0 + movs r2, 0 + strh r2, [r0] + ldr r4, =0x000006d2 + adds r0, r1, r4 + strb r3, [r0] + adds r4, 0x4 + adds r0, r1, r4 + strh r2, [r0] + ldr r0, =0x000006db + adds r2, r1, r0 + movs r0, 0x8 + strb r0, [r2] + ldr r2, =0x000006dc + adds r0, r1, r2 + strb r3, [r0] + adds r4, 0x3 + adds r2, r1, r4 + movs r0, 0xA + strb r0, [r2] + ldr r0, =0x000006c1 + adds r2, r1, r0 + movs r0, 0x3 + strb r0, [r2] + ldr r2, =0x000006c2 + adds r1, r2 + movs r0, 0x14 + strb r0, [r1] + movs r0, 0x55 + bl sub_80AC31C + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC928 + + thumb_func_start sub_80AC994 +sub_80AC994: @ 80AC994 + push {r4,lr} + bl sub_80AC928 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AC9B4 + adds r4, r1, r2 +_080AC9AA: + bl sub_80AC9C4 + ldrb r0, [r4] + cmp r0, 0 + beq _080AC9AA +_080AC9B4: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC994 + + thumb_func_start sub_80AC9C4 +sub_80AC9C4: @ 80AC9C4 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x000006cc + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AC9F4 + cmp r0, 0x1 + bgt _080AC9E8 + cmp r0, 0 + beq _080AC9EE + b _080ACA18 + .pool +_080AC9E8: + cmp r0, 0x2 + beq _080ACA00 + b _080ACA18 +_080AC9EE: + bl sub_80ACD68 + b _080ACA12 +_080AC9F4: + bl sub_80ACD78 + lsls r0, 24 + cmp r0, 0 + bne _080ACA18 + b _080ACA12 +_080ACA00: + bl sub_80ACEAC + lsls r0, 24 + cmp r0, 0 + bne _080ACA18 + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080ACA12: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080ACA18: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AC9C4 + + thumb_func_start sub_80ACA24 +sub_80ACA24: @ 80ACA24 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r1, =0x000006ce + adds r3, r2, r1 + ldrh r1, [r3] + adds r4, r0, 0 + cmp r1, 0 + beq _080ACA48 + cmp r1, 0x1 + beq _080ACA7C + movs r0, 0 + b _080ACAAA + .pool +_080ACA48: + ldr r5, =0x000006d1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, 0x3 + beq _080ACA5A + cmp r0, 0x5 + beq _080ACA5A + cmp r0, 0xD + bne _080ACA70 +_080ACA5A: + ldr r0, [r4] + ldr r1, =0x000006ce + adds r0, r1 + movs r1, 0xFF + strh r1, [r0] + movs r0, 0 + b _080ACAAA + .pool +_080ACA70: + ldr r4, =0x000006d9 + adds r0, r2, r4 + strb r1, [r0] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080ACA7C: + bl sub_80ACEAC + lsls r0, 24 + cmp r0, 0 + bne _080ACAA8 + bl sub_80ACF38 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r5, =0x000006ce + adds r1, r5 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080ACAAA + .pool +_080ACAA8: + movs r0, 0x1 +_080ACAAA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80ACA24 + + thumb_func_start sub_80ACAB0 +sub_80ACAB0: @ 80ACAB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r1, 0x30 + ldrsh r0, [r7, r1] + cmp r0, 0 + bne _080ACAC4 + ldr r0, =0x00000169 + strh r0, [r7, 0x30] +_080ACAC4: + movs r2, 0x30 + ldrsh r1, [r7, r2] + ldr r0, =0x41c64e6d + muls r0, r1 + ldr r3, =0x00003039 + adds r0, r3 + lsls r0, 1 + lsrs r0, 17 + movs r1, 0x96 + lsls r1, 2 + bl __umodsi3 + movs r1, 0 + mov r8, r1 + strh r0, [r7, 0x30] + ldr r1, =gUnknown_0854FC4C + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r2, =0x000006dc + adds r5, r2 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldrh r6, [r0] + movs r3, 0x30 + ldrsh r0, [r7, r3] + movs r1, 0x1E + bl __modsi3 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r0, r4, 3 + strh r0, [r7, 0x32] + movs r1, 0x30 + ldrsh r0, [r7, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + lsls r4, 7 + strh r4, [r7, 0x32] + asrs r0, 9 + strh r0, [r7, 0x34] + ldr r2, =gUnknown_0854FC44 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + muls r1, r6 + subs r4, r1 + strh r4, [r7, 0x32] + ldrb r1, [r5] + lsls r1, 2 + adds r2, 0x2 + adds r1, r2 + movs r2, 0 + ldrsh r1, [r1, r2] + muls r1, r6 + subs r0, r1 + strh r0, [r7, 0x34] + adds r0, r7, 0 + movs r1, 0 + bl StartSpriteAnim + mov r3, r8 + strh r3, [r7, 0x36] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + strh r6, [r7, 0x2E] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ACAB0 + + thumb_func_start sub_80ACB84 +sub_80ACB84: @ 80ACB84 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x36 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _080ACC60 + ldr r3, =gUnknown_0854FC44 + ldr r4, =gUnknown_0854C14C + ldr r2, [r4] + ldr r0, =0x000006dc + adds r2, r0 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0] + ldrh r0, [r5, 0x32] + adds r1, r0 + strh r1, [r5, 0x32] + ldrb r0, [r2] + lsls r0, 2 + adds r3, 0x2 + adds r0, r3 + ldrh r0, [r0] + ldrh r2, [r5, 0x34] + adds r0, r2 + strh r0, [r5, 0x34] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x20] + lsls r0, 16 + asrs r2, r0, 20 + strh r2, [r5, 0x22] + movs r3, 0x38 + ldrsh r0, [r5, r3] + adds r3, r4, 0 + cmp r0, 0 + beq _080ACC04 + adds r0, r1, 0 + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bhi _080ACC04 + adds r1, r2, 0 + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080ACC04 + cmp r1, 0xB0 + bgt _080ACC04 + adds r0, r5, 0 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + b _080ACC0E + .pool +_080ACC04: + adds r0, r5, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 +_080ACC0E: + strb r1, [r0] + adds r4, r0, 0 + ldrh r0, [r5, 0x2E] + subs r0, 0x1 + strh r0, [r5, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _080ACC80 + ldr r0, [r3] + ldr r1, =0x000006dc + adds r0, r1 + ldrb r1, [r0] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + movs r0, 0x1 + strh r0, [r5, 0x36] + ldr r1, =gSpriteCoordOffsetX + ldrh r0, [r5, 0x20] + ldrh r1, [r1] + subs r0, r1 + strh r0, [r5, 0x20] + ldr r1, =gSpriteCoordOffsetY + ldrh r0, [r5, 0x22] + ldrh r1, [r1] + subs r0, r1 + strh r0, [r5, 0x22] + ldrb r0, [r4] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4] + b _080ACC80 + .pool +_080ACC60: + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080ACC80 + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, 0 + bl sub_80ACAB0 +_080ACC80: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80ACB84 + + thumb_func_start sub_80ACC88 +sub_80ACC88: @ 80ACC88 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080ACCA8 + adds r0, r4, 0 + bl sub_80ACAB0 + ldr r0, =sub_80ACB84 + str r0, [r4, 0x1C] + b _080ACCAC + .pool +_080ACCA8: + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] +_080ACCAC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ACC88 + + thumb_func_start sub_80ACCB4 +sub_80ACCB4: @ 80ACCB4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + lsls r5, r1, 16 + lsrs r5, 16 + ldr r2, =gUnknown_0854FC4C + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006dc + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0, r2 + ldrh r1, [r1] + mov r8, r1 + adds r2, 0x2 + adds r0, r2 + ldrh r4, [r0] + add r4, r8 + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 16 + lsrs r4, r0, 16 + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x0000ffff + cmp r6, r0 + beq _080ACD12 + adds r5, r0, 0 +_080ACD02: + adds r0, r7, 0 + bl sub_80ACAB0 + subs r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r5 + bne _080ACD02 +_080ACD12: + cmp r4, r8 + bcs _080ACD48 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =0x0000ffff + cmp r4, r0 + beq _080ACD34 + adds r5, r0, 0 +_080ACD24: + adds r0, r7, 0 + bl sub_80ACB84 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bne _080ACD24 +_080ACD34: + movs r0, 0 + b _080ACD5C + .pool +_080ACD48: + mov r1, r8 + subs r0, r4, r1 + strh r0, [r7, 0x2E] + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1 +_080ACD5C: + strh r0, [r7, 0x3A] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80ACCB4 + + thumb_func_start sub_80ACD68 +sub_80ACD68: @ 80ACD68 + push {lr} + ldr r0, =gUnknown_0854FC54 + bl LoadSpriteSheet + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ACD68 + + thumb_func_start sub_80ACD78 +sub_80ACD78: @ 80ACD78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r0, =0x000006da + adds r2, r4, r0 + ldrb r0, [r2] + cmp r0, 0x18 + bne _080ACD92 + b _080ACE98 +_080ACD92: + ldrb r7, [r2] + ldr r0, =gUnknown_0854FC2C + ldr r2, =gUnknown_0854FB90 + lsls r6, r7, 2 + adds r2, r6, r2 + movs r3, 0 + ldrsh r1, [r2, r3] + movs r3, 0x2 + ldrsh r2, [r2, r3] + movs r3, 0x4E + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080ACE40 + ldr r3, =gSprites + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strh r0, [r1, 0x38] + lsls r2, r7, 3 + adds r0, r2, r7 + lsls r0, 4 + adds r0, r7 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + ldr r1, =0x00000257 + mov r10, r6 + mov r9, r3 + mov r12, r4 + mov r8, r2 + cmp r0, r1 + ble _080ACDF6 + adds r2, r1, 0 +_080ACDDE: + adds r0, r4, r5 + lsls r0, 2 + ldr r6, =gSprites + adds r0, r6 + ldr r3, =0xfffffda8 + ldrh r6, [r0, 0x30] + adds r1, r3, r6 + strh r1, [r0, 0x30] + lsls r1, 16 + asrs r1, 16 + cmp r1, r2 + bgt _080ACDDE +_080ACDF6: + mov r0, r12 + adds r4, r0, r5 + lsls r4, 2 + add r4, r9 + adds r0, r4, 0 + bl sub_80ACAB0 + mov r3, r8 + adds r1, r3, r7 + adds r0, r4, 0 + bl sub_80ACCB4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + add r0, r10 + str r4, [r0] + b _080ACE46 + .pool +_080ACE40: + adds r1, r4, r6 + movs r0, 0 + str r0, [r1] +_080ACE46: + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r6, =0x000006da + adds r1, r2, r6 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x18 + bne _080ACE9C + movs r3, 0 + adds r1, r2, 0 + ldr r5, =sub_80ACB84 + ldr r4, =sub_80ACC88 +_080ACE64: + lsls r0, r3, 2 + adds r0, r1, r0 + ldr r2, [r0] + cmp r2, 0 + beq _080ACE8E + movs r6, 0x3A + ldrsh r0, [r2, r6] + cmp r0, 0 + bne _080ACE8C + str r5, [r2, 0x1C] + b _080ACE8E + .pool +_080ACE8C: + str r4, [r2, 0x1C] +_080ACE8E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x17 + bls _080ACE64 +_080ACE98: + movs r0, 0 + b _080ACE9E +_080ACE9C: + movs r0, 0x1 +_080ACE9E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ACD78 + + thumb_func_start sub_80ACEAC +sub_80ACEAC: @ 80ACEAC + push {r4-r7,lr} + ldr r0, =gUnknown_0854C14C + ldr r3, [r0] + movs r0, 0xDB + lsls r0, 3 + adds r4, r3, r0 + ldr r1, =0x000006d9 + adds r5, r3, r1 + ldrb r0, [r4] + ldrb r7, [r5] + cmp r0, r7 + bne _080ACED0 + movs r0, 0 + b _080ACF32 + .pool +_080ACED0: + ldr r0, =0x000006d6 + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + movs r6, 0 + strh r0, [r2] + ldr r7, =0x000006db + adds r1, r3, r7 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1] + cmp r0, r1 + bls _080ACF30 + strh r6, [r2] + ldrb r0, [r4] + adds r1, r0, 0 + ldrb r5, [r5] + cmp r1, r5 + bcs _080ACF10 + adds r0, 0x1 + strb r0, [r4] + lsls r0, r1, 2 + adds r0, r3, r0 + ldr r1, [r0] + movs r0, 0x1 + strh r0, [r1, 0x38] + b _080ACF30 + .pool +_080ACF10: + subs r0, 0x1 + strb r0, [r4] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r3, r0 + ldr r0, [r0] + strh r6, [r0, 0x38] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r3, r0 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_080ACF30: + movs r0, 0x1 +_080ACF32: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ACEAC + + thumb_func_start sub_80ACF38 +sub_80ACF38: @ 80ACF38 + push {r4-r7,lr} + movs r4, 0 + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r3, =0x000006da + adds r1, r2, r3 + adds r7, r0, 0 + ldrb r1, [r1] + cmp r4, r1 + bcs _080ACF6A + adds r5, r2, 0 + adds r6, r5, r3 +_080ACF50: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080ACF5E + bl DestroySprite +_080ACF5E: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r6] + cmp r4, r0 + bcc _080ACF50 +_080ACF6A: + ldr r0, [r7] + ldr r1, =0x000006da + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, =0x00001206 + bl FreeSpriteTilesByTag + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ACF38 + + thumb_func_start sub_80ACF8C +sub_80ACF8C: @ 80ACF8C + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r0, r1, r2 + movs r2, 0 + movs r3, 0 + strh r3, [r0] + ldr r4, =0x000006d2 + adds r0, r1, r4 + strb r2, [r0] + ldr r0, =0x000006c1 + adds r2, r1, r0 + movs r0, 0x3 + strb r0, [r2] + subs r4, 0x10 + adds r2, r1, r4 + movs r0, 0x14 + strb r0, [r2] + ldr r0, =0x000006e5 + adds r2, r1, r0 + movs r0, 0x10 + strb r0, [r2] + movs r2, 0xDC + lsls r2, 3 + adds r1, r2 + strh r3, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ACF8C + + thumb_func_start sub_80ACFDC +sub_80ACFDC: @ 80ACFDC + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl sub_80ACF8C + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + ldr r3, =0x000006d2 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD032 + mov r8, r2 + adds r7, r1, r3 +_080ACFF8: + bl snowflakes_progress2 + movs r4, 0 + mov r1, r8 + ldr r0, [r1] + ldr r3, =0x000006e4 + adds r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bcs _080AD02C + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + adds r6, r5, r3 +_080AD012: + lsls r1, r4, 2 + adds r0, r5, 0 + adds r0, 0x60 + adds r0, r1 + ldr r0, [r0] + bl sub_80AD30C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r0, [r6] + cmp r4, r0 + bcc _080AD012 +_080AD02C: + ldrb r0, [r7] + cmp r0, 0 + beq _080ACFF8 +_080AD032: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ACFDC + + thumb_func_start snowflakes_progress2 +snowflakes_progress2: @ 80AD048 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x000006cc + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0 + bne _080AD070 + bl snowflakes_progress + lsls r0, 24 + cmp r0, 0 + bne _080AD070 + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AD070: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end snowflakes_progress2 + + thumb_func_start sub_80AD084 +sub_80AD084: @ 80AD084 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r0, =0x000006ce + adds r3, r2, r0 + ldrh r1, [r3] + cmp r1, 0 + beq _080AD0A4 + cmp r1, 0x1 + beq _080AD0B6 + movs r0, 0 + b _080AD0E2 + .pool +_080AD0A4: + ldr r4, =0x000006e5 + adds r0, r2, r4 + strb r1, [r0] + subs r4, 0x5 + adds r0, r2, r4 + strh r1, [r0] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080AD0B6: + bl snowflakes_progress + lsls r0, 24 + cmp r0, 0 + bne _080AD0E0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006ce + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0 + b _080AD0E2 + .pool +_080AD0E0: + movs r0, 0x1 +_080AD0E2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AD084 + + thumb_func_start snowflakes_progress +snowflakes_progress: @ 80AD0E8 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006e4 + adds r3, r1, r0 + ldr r4, =0x000006e5 + adds r2, r1, r4 + ldrb r0, [r3] + ldrb r4, [r2] + cmp r0, r4 + bne _080AD110 + movs r0, 0 + b _080AD152 + .pool +_080AD110: + movs r0, 0xDC + lsls r0, 3 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x24 + bls _080AD13A + movs r0, 0 + strh r0, [r1] + ldrb r0, [r3] + ldrb r2, [r2] + cmp r0, r2 + bcs _080AD136 + bl snowflake_add + b _080AD13A +_080AD136: + bl snowflake_remove +_080AD13A: + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r2, =0x000006e4 + adds r1, r0, r2 + ldr r4, =0x000006e5 + adds r0, r4 + ldrb r1, [r1] + ldrb r0, [r0] + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080AD152: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end snowflakes_progress + + thumb_func_start snowflake_add +snowflake_add: @ 80AD164 + push {r4-r6,lr} + ldr r0, =gUnknown_0854FC8C + movs r1, 0 + movs r2, 0 + movs r3, 0x4E + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AD1C8 + ldr r0, =gSprites + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x000006e4 + adds r6, r5, r0 + ldrb r0, [r6] + strh r0, [r4, 0x36] + adds r0, r4, 0 + bl sub_80AD204 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + adds r1, r0, 0x1 + strb r1, [r6] + lsls r0, 24 + lsrs r0, 22 + adds r5, 0x60 + adds r5, r0 + str r4, [r5] + movs r0, 0x1 + b _080AD1CA + .pool +_080AD1C8: + movs r0, 0 +_080AD1CA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end snowflake_add + + thumb_func_start snowflake_remove +snowflake_remove: @ 80AD1D0 + push {lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006e4 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _080AD1EC + movs r0, 0 + b _080AD200 + .pool +_080AD1EC: + subs r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 22 + adds r1, 0x60 + adds r1, r0 + ldr r0, [r1] + bl DestroySprite + movs r0, 0x1 +_080AD200: + pop {r1} + bx r1 + thumb_func_end snowflake_remove + + thumb_func_start sub_80AD204 +sub_80AD204: @ 80AD204 + push {r4-r7,lr} + adds r5, r0, 0 + bl Random + movs r1, 0x36 + ldrsh r2, [r5, r1] + lsls r1, r2, 2 + adds r1, r2 + movs r2, 0x7 + ands r1, r2 + lsls r4, r1, 4 + subs r4, r1 + lsls r4, 1 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1E + bl __umodsi3 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + ldr r1, =gSpriteCoordOffsetY + adds r0, r5, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + movs r2, 0x3 + negs r2, r2 + adds r1, r2, 0 + subs r1, r0 + movs r7, 0 + strh r1, [r5, 0x22] + ldr r1, =gSpriteCoordOffsetX + adds r0, r5, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + subs r4, r0 + strh r4, [r5, 0x20] + movs r1, 0x22 + ldrsh r0, [r5, r1] + lsls r0, 7 + strh r0, [r5, 0x2E] + strh r7, [r5, 0x24] + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r6, r0, 0 + movs r4, 0x3 + ands r4, r6 + lsls r0, r4, 2 + adds r0, r4 + adds r0, 0x40 + strh r0, [r5, 0x30] + strh r0, [r5, 0x3C] + movs r1, 0x1 + bics r1, r6 + adds r0, r5, 0 + bl StartSpriteAnim + strh r7, [r5, 0x34] + movs r0, 0x1 + cmp r4, 0 + bne _080AD294 + movs r0, 0x2 +_080AD294: + strh r0, [r5, 0x32] + movs r0, 0x1F + ands r0, r6 + adds r0, 0xD2 + strh r0, [r5, 0x3A] + strh r7, [r5, 0x38] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD204 + + thumb_func_start sub_80AD2B0 +sub_80AD2B0: @ 80AD2B0 + push {r4,lr} + adds r3, r0, 0 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006e2 + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x12 + bls _080AD2F6 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, =sub_80AD30C + str r0, [r3, 0x1C] + ldr r1, =gSpriteCoordOffsetY + adds r0, r3, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r1] + adds r0, r1 + movs r1, 0xFA + subs r1, r0 + movs r2, 0 + strh r1, [r3, 0x22] + movs r1, 0x22 + ldrsh r0, [r3, r1] + lsls r0, 7 + strh r0, [r3, 0x2E] + strh r2, [r4] +_080AD2F6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD2B0 + + thumb_func_start sub_80AD30C +sub_80AD30C: @ 80AD30C + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 23 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x34] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x34] + ldr r1, =gSineTable + movs r3, 0x34 + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _080AD33E + adds r0, 0x3F +_080AD33E: + asrs r0, 6 + strh r0, [r4, 0x24] + adds r0, r4, 0 + adds r0, 0x28 + movs r5, 0 + ldrsb r5, [r0, r5] + ldrh r0, [r4, 0x20] + adds r0, r5 + ldr r1, =gSpriteCoordOffsetX + ldrh r1, [r1] + adds r3, r1, r0 + ldr r2, =0x000001ff + adds r0, r2, 0 + ands r3, r0 + adds r2, r3, 0 + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _080AD370 + ldr r3, =0xffffff00 + adds r0, r3, 0 + orrs r2, r0 + lsls r0, r2, 16 + lsrs r3, r0, 16 +_080AD370: + lsls r0, r3, 16 + asrs r0, 16 + movs r2, 0x3 + negs r2, r2 + cmp r0, r2 + bge _080AD394 + adds r1, r5 + movs r0, 0xF2 + subs r0, r1 + b _080AD39C + .pool +_080AD394: + cmp r0, 0xF2 + ble _080AD39E + adds r0, r1, r5 + subs r0, r2, r0 +_080AD39C: + strh r0, [r4, 0x20] +_080AD39E: + adds r0, r4, 0 + adds r0, 0x29 + movs r3, 0 + ldrsb r3, [r0, r3] + ldrh r0, [r4, 0x22] + adds r0, r3 + ldr r1, =gSpriteCoordOffsetY + ldrh r1, [r1] + adds r2, r1, r0 + movs r0, 0xFF + ands r2, r0 + adds r0, r2, 0 + subs r0, 0xA4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bhi _080AD3E0 + adds r1, r3 + movs r0, 0xFA + subs r0, r1 + movs r1, 0 + strh r0, [r4, 0x22] + movs r2, 0x22 + ldrsh r0, [r4, r2] + lsls r0, 7 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x38] + movs r0, 0xDC + strh r0, [r4, 0x3A] + b _080AD40C + .pool +_080AD3E0: + adds r0, r2, 0 + subs r0, 0xF3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bhi _080AD40C + movs r1, 0 + movs r0, 0xA3 + strh r0, [r4, 0x22] + lsls r0, 7 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x38] + movs r0, 0xDC + strh r0, [r4, 0x3A] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =sub_80AD2B0 + str r0, [r4, 0x1C] +_080AD40C: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x3A + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _080AD438 + adds r0, r4, 0 + bl sub_80AD204 + movs r0, 0xFA + strh r0, [r4, 0x22] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, =sub_80AD2B0 + str r0, [r4, 0x1C] +_080AD438: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD30C + + thumb_func_start sub_80AD444 +sub_80AD444: @ 80AD444 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r0, r1, r2 + movs r3, 0 + movs r2, 0 + strh r2, [r0] + ldr r5, =0x000006d2 + adds r4, r1, r5 + strb r3, [r4] + adds r5, 0x4 + adds r0, r1, r5 + strh r2, [r0] + ldr r0, =0x000006db + adds r2, r1, r0 + movs r0, 0x4 + strb r0, [r2] + ldr r2, =0x000006dc + adds r0, r1, r2 + strb r3, [r0] + adds r5, 0x3 + adds r2, r1, r5 + movs r0, 0x10 + strb r0, [r2] + ldr r0, =0x000006c1 + adds r2, r1, r0 + movs r0, 0x3 + strb r0, [r2] + subs r5, 0x17 + adds r2, r1, r5 + movs r0, 0x14 + strb r0, [r2] + strb r3, [r4] + ldr r0, =0x000006ed + adds r1, r0 + strb r3, [r1] + movs r0, 0x51 + bl sub_80AC31C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD444 + + thumb_func_start sub_80AD4B8 +sub_80AD4B8: @ 80AD4B8 + push {r4,lr} + bl sub_80AD444 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD4D8 + adds r4, r1, r2 +_080AD4CE: + bl sub_80AD584 + ldrb r0, [r4] + cmp r0, 0 + beq _080AD4CE +_080AD4D8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD4B8 + + thumb_func_start sub_80AD4E8 +sub_80AD4E8: @ 80AD4E8 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r0, r1, r2 + movs r4, 0 + movs r2, 0 + strh r2, [r0] + ldr r5, =0x000006d2 + adds r3, r1, r5 + strb r4, [r3] + adds r5, 0x4 + adds r0, r1, r5 + strh r2, [r0] + ldr r0, =0x000006db + adds r2, r1, r0 + movs r0, 0x4 + strb r0, [r2] + adds r5, 0x6 + adds r2, r1, r5 + movs r0, 0x1 + strb r0, [r2] + ldr r0, =0x000006d9 + adds r2, r1, r0 + movs r0, 0x18 + strb r0, [r2] + subs r5, 0x1B + adds r2, r1, r5 + movs r0, 0x3 + strb r0, [r2] + ldr r0, =0x000006c2 + adds r1, r0 + movs r0, 0x14 + strb r0, [r1] + strb r4, [r3] + movs r0, 0x53 + bl sub_80AC31C + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD4E8 + + thumb_func_start sub_80AD554 +sub_80AD554: @ 80AD554 + push {r4,lr} + bl sub_80AD4E8 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD574 + adds r4, r1, r2 +_080AD56A: + bl sub_80AD584 + ldrb r0, [r4] + cmp r0, 0 + beq _080AD56A +_080AD574: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD554 + + thumb_func_start sub_80AD584 +sub_80AD584: @ 80AD584 + push {r4,r5,lr} + bl sub_80AD9F8 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006cc + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0xE + bls _080AD59A + b _080AD8FA +_080AD59A: + lsls r0, 2 + ldr r1, =_080AD5B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AD5B0: + .4byte _080AD5EC + .4byte _080AD608 + .4byte _080AD62C + .4byte _080AD65C + .4byte _080AD680 + .4byte _080AD6B0 + .4byte _080AD6E0 + .4byte _080AD70C + .4byte _080AD72A + .4byte _080AD788 + .4byte _080AD80C + .4byte _080AD834 + .4byte _080AD864 + .4byte _080AD8A8 + .4byte _080AD8DC +_080AD5EC: + bl sub_80ACD68 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006cc + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD608: + bl sub_80ACD78 + lsls r0, 24 + cmp r0, 0 + beq _080AD614 + b _080AD8FA +_080AD614: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r3, =0x000006cc + adds r1, r3 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD62C: + bl sub_80ACEAC + lsls r0, 24 + cmp r0, 0 + beq _080AD638 + b _080AD8FA +_080AD638: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006d2 + adds r2, r1, r0 + movs r0, 0x1 + strb r0, [r2] + ldr r2, =0x000006cc + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD65C: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r3, =0x000006c6 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD66C + b _080AD8FA +_080AD66C: + ldr r0, =0x000006cc + adds r1, r0 + movs r0, 0x6 + b _080AD8F8 + .pool +_080AD680: + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r2, =0x000006ea + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r5, 0xB4 + lsls r5, 1 + adds r1, r5, 0 + bl __umodsi3 + adds r0, r5 + ldr r3, =0x000006e6 + adds r1, r4, r3 + strh r0, [r1] + ldr r0, =0x000006cc + adds r4, r0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AD6B0: + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r3, =0x000006e6 + adds r1, r2, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _080AD6C6 + b _080AD8FA +_080AD6C6: + ldr r0, =0x000006cc + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD6E0: + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r1, =0x000006ea + adds r0, r4, r1 + movs r5, 0x1 + strb r5, [r0] + bl Random + lsls r0, 16 + lsrs r0, 16 + ands r0, r5 + ldr r2, =0x000006eb + adds r1, r4, r2 + strb r0, [r1] + b _080AD768 + .pool +_080AD70C: + bl Random + ldr r1, =gUnknown_0854C14C + ldr r2, [r1] + movs r1, 0x1 + ands r1, r0 + adds r1, 0x1 + ldr r3, =0x000006ec + adds r0, r2, r3 + strb r1, [r0] + ldr r0, =0x000006cc + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080AD72A: + movs r0, 0x13 + bl sub_80ABC48 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006eb + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD74E + ldr r3, =0x000006ec + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080AD74E + movs r0, 0x14 + bl sub_80AD9BC +_080AD74E: + bl Random + ldr r1, =gUnknown_0854C14C + ldr r4, [r1] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x6 + ldr r2, =0x000006e6 + adds r1, r4, r2 + strh r0, [r1] +_080AD768: + ldr r3, =0x000006cc + adds r4, r3 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AD8FA + .pool +_080AD788: + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r0, =0x000006e6 + adds r5, r4, r0 + ldrh r0, [r5] + subs r0, 0x1 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + beq _080AD79E + b _080AD8FA +_080AD79E: + movs r0, 0x3 + bl sub_80ABC48 + ldr r2, =0x000006ea + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r3, =0x000006ec + adds r1, r4, r3 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + beq _080AD7E8 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + adds r0, 0x3C + strh r0, [r5] + ldr r0, =0x000006cc + adds r1, r4, r0 + movs r0, 0xA + b _080AD8F8 + .pool +_080AD7E8: + ldr r1, =0x000006eb + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AD800 + ldr r2, =0x000006cc + adds r1, r4, r2 + b _080AD8F6 + .pool +_080AD800: + ldr r3, =0x000006cc + adds r1, r4, r3 + movs r0, 0xB + b _080AD8F8 + .pool +_080AD80C: + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r0, =0x000006e6 + adds r1, r2, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _080AD8FA + ldr r3, =0x000006cc + adds r1, r2, r3 + movs r0, 0x8 + b _080AD8F8 + .pool +_080AD834: + bl Random + ldr r1, =gUnknown_0854C14C + ldr r2, [r1] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + adds r0, 0x3C + ldr r3, =0x000006e6 + adds r1, r2, r3 + strh r0, [r1] + ldr r0, =0x000006cc + adds r2, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + b _080AD8FA + .pool +_080AD864: + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r1, =0x000006e6 + adds r4, r5, r1 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + lsls r0, 16 + cmp r0, 0 + bne _080AD8FA + movs r0, 0x64 + bl sub_80AD9BC + movs r0, 0x13 + bl sub_80ABC48 + bl Random + movs r1, 0xF + ands r1, r0 + adds r1, 0x1E + strh r1, [r4] + ldr r2, =0x000006cc + adds r1, r5, r2 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD8A8: + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r3, =0x000006e6 + adds r1, r4, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _080AD8FA + movs r0, 0x13 + movs r1, 0x3 + movs r2, 0x5 + bl sub_80ABC7C + ldr r0, =0x000006cc + adds r1, r4, r0 + ldrh r0, [r1] + adds r0, 0x1 + b _080AD8F8 + .pool +_080AD8DC: + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r1, =0x000006c6 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080AD8FA + ldr r3, =0x000006ea + adds r1, r2, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r0, =0x000006cc + adds r1, r2, r0 +_080AD8F6: + movs r0, 0x4 +_080AD8F8: + strh r0, [r1] +_080AD8FA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD584 + + thumb_func_start sub_80AD910 +sub_80AD910: @ 80AD910 + push {r4-r6,lr} + ldr r0, =gUnknown_0854C14C + ldr r6, [r0] + ldr r0, =0x000006ce + adds r5, r6, r0 + ldrh r1, [r5] + cmp r1, 0x1 + beq _080AD946 + cmp r1, 0x1 + bgt _080AD934 + cmp r1, 0 + beq _080AD93A + b _080AD9AC + .pool +_080AD934: + cmp r1, 0x2 + beq _080AD990 + b _080AD9AC +_080AD93A: + ldr r2, =0x000006ea + adds r0, r6, r2 + strb r1, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080AD946: + bl sub_80AD584 + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r1, =0x000006ea + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080AD9B4 + subs r1, 0x19 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _080AD9AC + cmp r0, 0x5 + beq _080AD9AC + cmp r0, 0xD + beq _080AD9AC + ldr r0, =0x000006d9 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + ldr r0, =0x000006ce + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080AD9B4 + .pool +_080AD990: + bl sub_80ACEAC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080AD9B4 + bl sub_80ACF38 + ldr r1, =0x000006ed + adds r0, r6, r1 + strb r4, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080AD9AC: + movs r0, 0 + b _080AD9B6 + .pool +_080AD9B4: + movs r0, 0x1 +_080AD9B6: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80AD910 + + thumb_func_start sub_80AD9BC +sub_80AD9BC: @ 80AD9BC + push {r4-r6,lr} + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r0, =0x000006ed + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0 + bne _080AD9EA + bl Random + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __umodsi3 + movs r2, 0xDD + lsls r2, 3 + adds r1, r4, r2 + strh r0, [r1] + movs r0, 0x1 + strb r0, [r5] +_080AD9EA: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AD9BC + + thumb_func_start sub_80AD9F8 +sub_80AD9F8: @ 80AD9F8 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006ed + adds r0, r1, r2 + ldrb r4, [r0] + cmp r4, 0x1 + bne _080ADA58 + movs r0, 0xDD + lsls r0, 3 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _080ADA54 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + bne _080ADA58 + bl Random + ands r4, r0 + cmp r4, 0 + beq _080ADA38 + movs r0, 0x57 + bl PlaySE + b _080ADA3E + .pool +_080ADA38: + movs r0, 0x58 + bl PlaySE +_080ADA3E: + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ed + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _080ADA58 + .pool +_080ADA54: + subs r0, 0x1 + strh r0, [r1] +_080ADA58: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AD9F8 + + thumb_func_start sub_80ADA60 +sub_80ADA60: @ 80ADA60 + push {lr} + ldr r0, =gUnknown_0854C14C + ldr r3, [r0] + ldr r0, =0x000006cc + adds r1, r3, r0 + movs r2, 0 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x000006d2 + adds r0, r3, r1 + strb r2, [r0] + subs r1, 0x11 + adds r0, r3, r1 + strb r2, [r0] + ldr r2, =0x000006c2 + adds r1, r3, r2 + movs r0, 0x14 + strb r0, [r1] + ldr r1, =0x000006fb + adds r0, r3, r1 + ldrb r1, [r0] + cmp r1, 0 + bne _080ADAA8 + adds r2, 0x2E + adds r0, r3, r2 + strh r1, [r0] + adds r2, 0x2 + adds r0, r3, r2 + strh r1, [r0] + subs r2, 0x4 + adds r0, r3, r2 + strh r1, [r0] + movs r0, 0 + movs r1, 0x10 + bl sub_80AC124 +_080ADAA8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADA60 + + thumb_func_start sub_80ADAC0 +sub_80ADAC0: @ 80ADAC0 + push {r4,lr} + bl sub_80ADA60 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080ADAE0 + adds r4, r1, r2 +_080ADAD6: + bl sub_80ADAF0 + ldrb r0, [r4] + cmp r0, 0 + beq _080ADAD6 +_080ADAE0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADAC0 + + thumb_func_start sub_80ADAF0 +sub_80ADAF0: @ 80ADAF0 + push {r4-r6,lr} + ldr r0, =gUnknown_0854C14C + ldr r6, [r0] + ldr r0, =gSpriteCoordOffsetX + ldr r1, =0x000006f2 + adds r2, r6, r1 + ldrh r0, [r0] + ldrh r1, [r2] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + ldr r3, =0x000006ee + adds r1, r6, r3 + strh r0, [r1] + movs r0, 0xDE + lsls r0, 3 + adds r1, r6, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bls _080ADB2A + movs r0, 0 + strh r0, [r1] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] +_080ADB2A: + ldr r1, =0x000006cc + adds r5, r6, r1 + ldrh r4, [r5] + cmp r4, 0 + beq _080ADB50 + cmp r4, 0x1 + beq _080ADB90 + b _080ADBA6 + .pool +_080ADB50: + bl sub_80ADCAC + movs r3, 0xDA + lsls r3, 3 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, 0x6 + bne _080ADB6C + movs r0, 0xC + movs r1, 0x8 + movs r2, 0x3 + bl sub_80AC164 + b _080ADB76 +_080ADB6C: + movs r0, 0x4 + movs r1, 0x10 + movs r2, 0 + bl sub_80AC164 +_080ADB76: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006cc + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080ADBA6 + .pool +_080ADB90: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080ADBA6 + ldr r1, =0x000006d2 + adds r0, r6, r1 + strb r4, [r0] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080ADBA6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADAF0 + + thumb_func_start sub_80ADBB0 +sub_80ADBB0: @ 80ADBB0 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r0, =gSpriteCoordOffsetX + ldr r1, =0x000006f2 + adds r3, r2, r1 + ldrh r0, [r0] + ldrh r1, [r3] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + ldr r4, =0x000006ee + adds r1, r2, r4 + strh r0, [r1] + movs r0, 0xDE + lsls r0, 3 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bls _080ADBEA + movs r0, 0 + strh r0, [r1] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080ADBEA: + ldr r1, =0x000006ce + adds r4, r2, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ADC26 + cmp r0, 0x1 + bgt _080ADC14 + cmp r0, 0 + beq _080ADC1A + b _080ADC3E + .pool +_080ADC14: + cmp r0, 0x2 + beq _080ADC32 + b _080ADC3E +_080ADC1A: + movs r0, 0 + movs r1, 0x10 + movs r2, 0x3 + bl sub_80AC164 + b _080ADC36 +_080ADC26: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080ADC42 + b _080ADC36 +_080ADC32: + bl sub_80ADD68 +_080ADC36: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ADC42 +_080ADC3E: + movs r0, 0 + b _080ADC44 +_080ADC42: + movs r0, 0x1 +_080ADC44: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80ADBB0 + + thumb_func_start sub_80ADC4C +sub_80ADC4C: @ 80ADC4C + push {r4,lr} + adds r3, r0, 0 + ldr r0, =gSpriteCoordOffsetY + ldrb r0, [r0] + strh r0, [r3, 0x26] + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ee + adds r2, r0, r1 + ldrh r1, [r2] + adds r1, 0x20 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 6 + adds r1, r0 + strh r1, [r3, 0x20] + lsls r1, 16 + ldr r0, =0x010f0000 + cmp r1, r0 + ble _080ADC90 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r2] + adds r1, r2 + movs r4, 0x2E + ldrsh r2, [r3, r4] + movs r0, 0x4 + subs r0, r2 + lsls r0, 6 + subs r1, r0 + ldr r0, =0x000001ff + ands r1, r0 + strh r1, [r3, 0x20] +_080ADC90: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADC4C + + thumb_func_start sub_80ADCAC +sub_80ADCAC: @ 80ADCAC + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006fb + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080ADD56 + ldr r0, =gUnknown_0854FD30 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r5, 0 +_080ADCD0: + ldr r0, =gUnknown_0854FD18 + movs r1, 0 + movs r2, 0 + movs r3, 0xFF + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080ADD34 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x2E] + lsls r0, 16 + lsrs r0, 10 + adds r0, 0x20 + strh r0, [r4, 0x20] + adds r0, r5, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 10 + adds r0, 0x20 + strh r0, [r4, 0x22] + ldr r2, =gUnknown_0854C14C + ldr r0, [r2] + lsls r1, r5, 2 + adds r0, 0xA0 + adds r0, r1 + str r4, [r0] + b _080ADD42 + .pool +_080ADD34: + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + lsls r0, r5, 2 + adds r1, 0xA0 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080ADD42: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x13 + bls _080ADCD0 + ldr r0, [r2] + ldr r1, =0x000006fb + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080ADD56: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADCAC + + thumb_func_start sub_80ADD68 +sub_80ADD68: @ 80ADD68 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006fb + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080ADDA8 + movs r4, 0 + adds r5, r1, 0 + adds r5, 0xA0 +_080ADD7E: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080ADD8C + bl DestroySprite +_080ADD8C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080ADD7E + ldr r0, =0x00001201 + bl FreeSpriteTilesByTag + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006fb + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080ADDA8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADD68 + + thumb_func_start sub_80ADDBC +sub_80ADDBC: @ 80ADDBC + push {lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006cc + adds r2, r1, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + ldr r2, =0x000006d2 + adds r0, r1, r2 + strb r3, [r0] + subs r2, 0x11 + adds r0, r1, r2 + strb r3, [r0] + ldr r3, =0x000006c2 + adds r0, r1, r3 + movs r2, 0x14 + strb r2, [r0] + adds r3, 0x3C + adds r0, r1, r3 + strh r2, [r0] + movs r0, 0xE0 + lsls r0, 3 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _080ADE04 + movs r0, 0 + movs r1, 0x10 + bl sub_80AC124 + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x52 + bl SetGpuReg +_080ADE04: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADDBC + + thumb_func_start sub_80ADE18 +sub_80ADE18: @ 80ADE18 + push {r4,lr} + bl sub_80ADDBC + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080ADE38 + adds r4, r1, r2 +_080ADE2E: + bl sub_80ADE48 + ldrb r0, [r4] + cmp r0, 0 + beq _080ADE2E +_080ADE38: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADE18 + + thumb_func_start sub_80ADE48 +sub_80ADE48: @ 80ADE48 + push {r4,r5,lr} + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + ldr r0, =gSpriteCoordOffsetX + ldrh r0, [r0] + ldr r3, =0x000001ff + ands r3, r0 + ldr r0, =0x000006fc + adds r1, r0 + strh r3, [r1] + cmp r3, 0xEF + bls _080ADE74 + adds r4, r1, 0 + adds r1, r3, 0 +_080ADE64: + adds r3, r1, 0 + subs r3, 0xF0 + adds r1, r3, 0 + lsls r0, r3, 16 + lsrs r0, 16 + cmp r0, 0xEF + bhi _080ADE64 + strh r3, [r4] +_080ADE74: + ldr r5, [r2] + ldr r1, =0x000006cc + adds r4, r5, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ADEAC + cmp r0, 0x1 + bgt _080ADEA0 + cmp r0, 0 + beq _080ADEA6 + b _080ADEE8 + .pool +_080ADEA0: + cmp r0, 0x2 + beq _080ADEC8 + b _080ADEE8 +_080ADEA6: + bl sub_80ADF5C + b _080ADEDA +_080ADEAC: + movs r1, 0xE0 + lsls r1, 3 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080ADEBC + bl sub_80ADF6C +_080ADEBC: + movs r0, 0x10 + movs r1, 0 + movs r2, 0x1 + bl sub_80AC164 + b _080ADEDA +_080ADEC8: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080ADEEC + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080ADEDA: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ADEEC + .pool +_080ADEE8: + bl sub_80AC1A8 +_080ADEEC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80ADE48 + + thumb_func_start sub_80ADEF4 +sub_80ADEF4: @ 80ADEF4 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ce + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080ADF2A + cmp r0, 0x1 + bgt _080ADF18 + cmp r0, 0 + beq _080ADF1E + b _080ADF4E + .pool +_080ADF18: + cmp r0, 0x2 + beq _080ADF40 + b _080ADF4E +_080ADF1E: + movs r0, 0 + movs r1, 0x10 + movs r2, 0x1 + bl sub_80AC164 + b _080ADF38 +_080ADF2A: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080ADF52 + bl sub_80AE014 +_080ADF38: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ADF52 +_080ADF40: + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080ADF4E: + movs r0, 0 + b _080ADF54 +_080ADF52: + movs r0, 0x1 +_080ADF54: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80ADEF4 + + thumb_func_start sub_80ADF5C +sub_80ADF5C: @ 80ADF5C + push {lr} + ldr r0, =gUnknown_0854FD38 + bl LoadSpriteSheet + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADF5C + + thumb_func_start sub_80ADF6C +sub_80ADF6C: @ 80ADF6C + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + movs r1, 0xE0 + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE008 + movs r5, 0 +_080ADF80: + ldr r0, =gUnknown_0854FD58 + movs r1, 0 + movs r2, 0 + movs r3, 0x4E + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080ADFE4 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r0, r5, 0 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + adds r0, r5, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x34] + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 6 + adds r0, 0x20 + strh r0, [r4, 0x2E] + ldr r2, =gUnknown_0854C14C + ldr r0, [r2] + lsls r1, r5, 2 + adds r0, 0xF0 + adds r0, r1 + str r4, [r0] + b _080ADFF2 + .pool +_080ADFE4: + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + lsls r0, r5, 2 + adds r1, 0xF0 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080ADFF2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080ADF80 + ldr r0, [r2] + movs r1, 0xE0 + lsls r1, 3 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080AE008: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80ADF6C + + thumb_func_start sub_80AE014 +sub_80AE014: @ 80AE014 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + movs r2, 0xE0 + lsls r2, 3 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AE058 + movs r4, 0 + adds r5, r1, 0 + adds r5, 0xF0 +_080AE02C: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080AE03A + bl DestroySprite +_080AE03A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080AE02C + ldr r0, =0x00001202 + bl FreeSpriteTilesByTag + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + movs r1, 0xE0 + lsls r1, 3 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080AE058: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE014 + + thumb_func_start sub_80AE068 +sub_80AE068: @ 80AE068 + push {r4,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080AE084 + movs r0, 0 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] +_080AE084: + ldr r1, =gSpriteCoordOffsetY + ldrh r0, [r3, 0x2E] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r3, 0x22] + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006fc + adds r2, r0, r1 + ldrh r1, [r2] + adds r1, 0x20 + movs r4, 0x32 + ldrsh r0, [r3, r4] + lsls r0, 6 + adds r1, r0 + strh r1, [r3, 0x20] + lsls r1, 16 + ldr r0, =0x010f0000 + cmp r1, r0 + ble _080AE0C8 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r2] + adds r1, r2 + movs r4, 0x32 + ldrsh r2, [r3, r4] + movs r0, 0x4 + subs r0, r2 + lsls r0, 6 + subs r1, r0 + ldr r0, =0x000001ff + ands r1, r0 + strh r1, [r3, 0x20] +_080AE0C8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE068 + + thumb_func_start sub_80AE0E4 +sub_80AE0E4: @ 80AE0E4 + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r3, [r0] + ldr r1, =0x000006cc + adds r0, r3, r1 + movs r1, 0 + movs r2, 0 + strh r2, [r0] + ldr r4, =0x000006d2 + adds r0, r3, r4 + strb r1, [r0] + subs r4, 0x11 + adds r0, r3, r4 + strb r1, [r0] + ldr r0, =0x000006c2 + adds r1, r3, r0 + movs r0, 0x14 + strb r0, [r1] + movs r1, 0xDE + lsls r1, 3 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x31 + adds r1, r3, r4 + movs r0, 0x1 + strh r0, [r1] + ldr r1, =0x00000724 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080AE14E + adds r4, 0x2A + adds r0, r3, r4 + strh r2, [r0] + subs r1, 0x6 + adds r0, r3, r1 + strh r2, [r0] + adds r4, 0x4 + adds r0, r3, r4 + strh r2, [r0] + adds r1, 0x4 + adds r0, r3, r1 + strh r2, [r0] + subs r4, 0x8 + adds r0, r3, r4 + strh r2, [r0] + subs r1, 0x8 + adds r0, r3, r1 + strh r2, [r0] + movs r0, 0 + movs r1, 0x10 + bl sub_80AC124 +_080AE14E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE0E4 + + thumb_func_start sub_80AE168 +sub_80AE168: @ 80AE168 + push {r4,lr} + bl sub_80AE0E4 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE188 + adds r4, r1, r2 +_080AE17E: + bl sub_80AE198 + ldrb r0, [r4] + cmp r0, 0 + beq _080AE17E +_080AE188: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE168 + + thumb_func_start sub_80AE198 +sub_80AE198: @ 80AE198 + push {r4,r5,lr} + bl sub_80AE25C + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x000006cc + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AE1CC + cmp r0, 0x1 + bgt _080AE1C0 + cmp r0, 0 + beq _080AE1C6 + b _080AE1F0 + .pool +_080AE1C0: + cmp r0, 0x2 + beq _080AE1D8 + b _080AE1F0 +_080AE1C6: + bl sub_80AE2F0 + b _080AE1EA +_080AE1CC: + movs r0, 0xC + movs r1, 0x8 + movs r2, 0x8 + bl sub_80AC164 + b _080AE1EA +_080AE1D8: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AE1F0 + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080AE1EA: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AE1F0: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE198 + + thumb_func_start sub_80AE1FC +sub_80AE1FC: @ 80AE1FC + push {r4,lr} + bl sub_80AE25C + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ce + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AE236 + cmp r0, 0x1 + bgt _080AE224 + cmp r0, 0 + beq _080AE22A + b _080AE24E + .pool +_080AE224: + cmp r0, 0x2 + beq _080AE242 + b _080AE24E +_080AE22A: + movs r0, 0 + movs r1, 0x10 + movs r2, 0x1 + bl sub_80AC164 + b _080AE246 +_080AE236: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AE252 + b _080AE246 +_080AE242: + bl sub_80AE3A8 +_080AE246: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AE252 +_080AE24E: + movs r0, 0 + b _080AE254 +_080AE252: + movs r0, 0x1 +_080AE254: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AE1FC + + thumb_func_start sub_80AE25C +sub_80AE25C: @ 80AE25C + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r3, [r0] + ldr r0, =0x0000071c + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + movs r5, 0 + strh r0, [r2] + ldr r1, =0x0000ffff + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _080AE288 + movs r0, 0xE4 + lsls r0, 3 + adds r1, r3, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + strh r5, [r2] +_080AE288: + ldr r1, =0x0000071e + adds r2, r3, r1 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ands r0, r4 + cmp r0, 0x4 + bls _080AE2A4 + ldr r0, =0x00000722 + adds r1, r3, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + strh r5, [r2] +_080AE2A4: + ldr r0, =gSpriteCoordOffsetX + movs r2, 0xE4 + lsls r2, 3 + adds r1, r3, r2 + ldrh r0, [r0] + ldrh r1, [r1] + subs r0, r1 + movs r1, 0xFF + ands r0, r1 + subs r2, 0x8 + adds r1, r3, r2 + strh r0, [r1] + ldr r1, =gSpriteCoordOffsetY + adds r2, 0xA + adds r0, r3, r2 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + subs r2, 0x8 + adds r1, r3, r2 + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE25C + + thumb_func_start sub_80AE2F0 +sub_80AE2F0: @ 80AE2F0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x00000724 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE396 + ldr r0, =gUnknown_0854FD70 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r6, 0 +_080AE314: + adds r0, r6, 0 + movs r1, 0x5 + bl __udivsi3 + adds r5, r0, 0 + lsls r2, r5, 22 + asrs r2, 16 + ldr r0, =gUnknown_0854FD8C + movs r1, 0 + movs r3, 0xFF + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080AE370 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r6, 0 + movs r1, 0x5 + bl __umodsi3 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x30] + ldr r2, =gUnknown_0854C14C + ldr r0, [r2] + lsls r1, r6, 2 + movs r3, 0xA0 + lsls r3, 1 + adds r0, r3 + adds r0, r1 + str r4, [r0] + b _080AE382 + .pool +_080AE370: + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + lsls r0, r6, 2 + movs r3, 0xA0 + lsls r3, 1 + adds r1, r3 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080AE382: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x13 + bls _080AE314 + ldr r0, [r2] + ldr r1, =0x00000724 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080AE396: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE2F0 + + thumb_func_start sub_80AE3A8 +sub_80AE3A8: @ 80AE3A8 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x00000724 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AE3EA + movs r4, 0 + movs r0, 0xA0 + lsls r0, 1 + adds r5, r1, r0 +_080AE3C0: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080AE3CE + bl DestroySprite +_080AE3CE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080AE3C0 + ldr r0, =0x00001203 + bl FreeSpriteTilesByTag + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x00000724 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080AE3EA: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE3A8 + + thumb_func_start sub_80AE3FC +sub_80AE3FC: @ 80AE3FC + push {r4,lr} + adds r3, r0, 0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x0000071a + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3, 0x26] + movs r4, 0xE3 + lsls r4, 3 + adds r2, r1, r4 + ldrh r1, [r2] + adds r1, 0x20 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 6 + adds r1, r0 + strh r1, [r3, 0x20] + lsls r1, 16 + ldr r0, =0x010f0000 + cmp r1, r0 + ble _080AE444 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r2] + adds r1, r2 + movs r4, 0x2E + ldrsh r2, [r3, r4] + movs r0, 0x4 + subs r0, r2 + lsls r0, 6 + subs r1, r0 + ldr r0, =0x000001ff + ands r1, r0 + strh r1, [r3, 0x20] +_080AE444: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE3FC + + thumb_func_start sub_80AE45C +sub_80AE45C: @ 80AE45C + push {r4,lr} + ldr r0, =gUnknown_0854C14C + ldr r3, [r0] + ldr r0, =0x000006cc + adds r1, r3, r0 + movs r2, 0 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x000006d2 + adds r0, r3, r1 + strb r2, [r0] + ldr r4, =0x000006c1 + adds r0, r3, r4 + strb r2, [r0] + ldr r0, =0x000006c2 + adds r1, r3, r0 + movs r0, 0x14 + strb r0, [r1] + ldr r1, =0x00000716 + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080AE4B8 + adds r4, 0x43 + adds r1, r3, r4 + adds r4, 0x4 + adds r0, r3, r4 + str r2, [r0] + str r2, [r1] + ldr r0, =0x00000712 + adds r1, r3, r0 + movs r0, 0x8 + strh r0, [r1] + adds r4, 0xC + adds r0, r3, r4 + strh r2, [r0] + ldrh r2, [r1] + cmp r2, 0x5F + bls _080AE4B0 + movs r0, 0x80 + subs r0, r2 + strh r0, [r1] +_080AE4B0: + movs r0, 0 + movs r1, 0x10 + bl sub_80AC124 +_080AE4B8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE45C + + thumb_func_start sub_80AE4DC +sub_80AE4DC: @ 80AE4DC + push {r4,lr} + bl sub_80AE45C + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE4FC + adds r4, r1, r2 +_080AE4F2: + bl sub_80AE50C + ldrb r0, [r4] + cmp r0, 0 + beq _080AE4F2 +_080AE4FC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE4DC + + thumb_func_start sub_80AE50C +sub_80AE50C: @ 80AE50C + push {r4,r5,lr} + bl sub_80AE624 + bl sub_80AE5EC + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x00000712 + adds r1, r5, r0 + ldrh r0, [r1] + cmp r0, 0x5F + bls _080AE528 + movs r0, 0x20 + strh r0, [r1] +_080AE528: + ldr r0, =0x000006cc + adds r4, r5, r0 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AE558 + cmp r0, 0x1 + bgt _080AE548 + cmp r0, 0 + beq _080AE54E + b _080AE57C + .pool +_080AE548: + cmp r0, 0x2 + beq _080AE564 + b _080AE57C +_080AE54E: + bl sub_80AE738 + bl sub_80AE7F8 + b _080AE576 +_080AE558: + movs r0, 0x10 + movs r1, 0 + movs r2, 0 + bl sub_80AC164 + b _080AE576 +_080AE564: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AE57C + ldr r0, =0x000006d2 + adds r1, r5, r0 + movs r0, 0x1 + strb r0, [r1] +_080AE576: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] +_080AE57C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE50C + + thumb_func_start sub_80AE588 +sub_80AE588: @ 80AE588 + push {r4,lr} + bl sub_80AE624 + bl sub_80AE5EC + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x000006ce + adds r4, r0, r1 + ldrh r0, [r4] + cmp r0, 0x1 + beq _080AE5C6 + cmp r0, 0x1 + bgt _080AE5B4 + cmp r0, 0 + beq _080AE5BA + b _080AE5DE + .pool +_080AE5B4: + cmp r0, 0x2 + beq _080AE5D2 + b _080AE5DE +_080AE5BA: + movs r0, 0 + movs r1, 0x10 + movs r2, 0 + bl sub_80AC164 + b _080AE5D6 +_080AE5C6: + bl sub_80AC1A8 + lsls r0, 24 + cmp r0, 0 + beq _080AE5E2 + b _080AE5D6 +_080AE5D2: + bl sub_80AE6A4 +_080AE5D6: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AE5E2 +_080AE5DE: + movs r0, 0 + b _080AE5E4 +_080AE5E2: + movs r0, 0x1 +_080AE5E4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AE588 + + thumb_func_start sub_80AE5EC +sub_80AE5EC: @ 80AE5EC + push {lr} + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r0, =0x00000714 + adds r3, r2, r0 + ldrh r0, [r3] + adds r1, r0, 0x1 + strh r1, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bls _080AE612 + ldr r1, =0x00000712 + adds r0, r2, r1 + ldrh r1, [r0] + adds r1, 0x1 + movs r2, 0 + strh r1, [r0] + strh r2, [r3] +_080AE612: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE5EC + + thumb_func_start sub_80AE624 +sub_80AE624: @ 80AE624 + push {r4-r6,lr} + ldr r0, =gUnknown_0854C14C + ldr r2, [r0] + ldr r0, =0x00000704 + adds r4, r2, r0 + ldr r6, =gSineTable + ldr r1, =0x00000712 + adds r5, r2, r1 + ldrh r0, [r5] + lsls r0, 1 + adds r0, r6 + movs r3, 0 + ldrsh r1, [r0, r3] + lsls r1, 2 + ldr r0, [r4] + subs r0, r1 + str r0, [r4] + movs r0, 0xE1 + lsls r0, 3 + adds r3, r2, r0 + ldrh r0, [r5] + lsls r0, 1 + adds r0, r6 + movs r5, 0 + ldrsh r1, [r0, r5] + ldr r0, [r3] + subs r0, r1 + str r0, [r3] + ldr r1, =gSpriteCoordOffsetX + ldr r0, [r4] + lsrs r0, 8 + ldrh r1, [r1] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + ldr r4, =0x0000070e + adds r1, r2, r4 + strh r0, [r1] + ldr r1, =gSpriteCoordOffsetY + ldr r0, [r3] + lsrs r0, 8 + ldrh r1, [r1] + adds r0, r1 + movs r5, 0xE2 + lsls r5, 3 + adds r2, r5 + strh r0, [r2] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE624 + + thumb_func_start sub_80AE6A4 +sub_80AE6A4: @ 80AE6A4 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x00000716 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AE6E6 + movs r4, 0 + movs r0, 0xC8 + lsls r0, 1 + adds r5, r1, r0 +_080AE6BC: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080AE6CA + bl DestroySprite +_080AE6CA: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080AE6BC + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x00000716 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, =0x00001204 + bl FreeSpriteTilesByTag +_080AE6E6: + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x00000717 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080AE720 + movs r4, 0 + movs r0, 0xF0 + lsls r0, 1 + adds r5, r1, r0 +_080AE6FC: + lsls r0, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080AE70A + bl DestroySprite +_080AE70A: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _080AE6FC + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x00000717 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080AE720: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE6A4 + + thumb_func_start sub_80AE738 +sub_80AE738: @ 80AE738 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x00000716 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE7E6 + ldr r0, =gUnknown_0854FDDC + bl LoadSpriteSheet + ldr r0, =gUnknown_0854C2B0 + bl sub_80ABF4C + movs r7, 0 +_080AE758: + adds r0, r7, 0 + movs r1, 0x5 + bl __udivsi3 + adds r6, r0, 0 + lsls r2, r6, 22 + asrs r2, 16 + ldr r0, =gUnknown_0854FDC4 + movs r1, 0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AE7C0 + ldr r2, =gUnknown_0854C14C + ldr r5, [r2] + lsls r0, r7, 2 + movs r3, 0xC8 + lsls r3, 1 + adds r5, r3 + adds r5, r0 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + str r4, [r5] + adds r0, r7, 0 + movs r1, 0x5 + str r2, [sp] + bl __umodsi3 + strh r0, [r4, 0x2E] + ldr r0, [r5] + strh r6, [r0, 0x30] + ldr r2, [sp] + b _080AE7D2 + .pool +_080AE7C0: + ldr r2, =gUnknown_0854C14C + ldr r1, [r2] + lsls r0, r7, 2 + movs r3, 0xC8 + lsls r3, 1 + adds r1, r3 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080AE7D2: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x13 + bls _080AE758 + ldr r0, [r2] + ldr r1, =0x00000716 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] +_080AE7E6: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE738 + + thumb_func_start sub_80AE7F8 +sub_80AE7F8: @ 80AE7F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, =gUnknown_0854C14C + ldr r0, [r4] + ldr r1, =0x00000717 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080AE8E4 + movs r7, 0 + mov r9, r4 + movs r2, 0 + mov r10, r2 +_080AE818: + lsls r0, r7, 1 + mov r8, r0 + adds r6, r0, r7 + lsls r5, r6, 4 + adds r1, r5, 0 + adds r1, 0x18 + lsls r1, 16 + asrs r1, 16 + ldr r0, =gUnknown_0854FDC4 + movs r2, 0xD0 + movs r3, 0x1 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080AE8BC + mov r2, r9 + ldr r4, [r2] + lsls r0, r7, 2 + movs r2, 0xF0 + lsls r2, 1 + adds r4, r2 + adds r4, r0 + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + ldr r0, =gSprites + adds r2, r0 + str r2, [r4] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x3] + ldr r1, [r4] + adds r0, r6, r5 + strh r0, [r1, 0x30] + ldr r1, [r4] + movs r0, 0x8 + strh r0, [r1, 0x2E] + ldr r0, [r4] + mov r1, r10 + strh r1, [r0, 0x32] + ldr r1, [r4] + ldr r0, =0x00006730 + strh r0, [r1, 0x36] + ldr r1, [r4] + ldr r0, =gUnknown_0854FDE4 + add r0, r8 + ldrh r0, [r0] + strh r0, [r1, 0x34] + ldr r0, [r4] + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, [r4] + movs r1, 0 + movs r2, 0x2 + movs r3, 0 + bl CalcCenterToCornerVec + ldr r1, [r4] + ldr r0, =sub_80AE958 + str r0, [r1, 0x1C] + b _080AE8CE + .pool +_080AE8BC: + mov r2, r9 + ldr r0, [r2] + lsls r1, r7, 2 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r2 + adds r0, r1 + mov r1, r10 + str r1, [r0] +_080AE8CE: + mov r2, r9 + ldr r0, [r2] + ldr r1, =0x00000717 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _080AE818 +_080AE8E4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE7F8 + + thumb_func_start sub_80AE8F8 +sub_80AE8F8: @ 80AE8F8 + push {r4,lr} + adds r3, r0, 0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + movs r2, 0xE2 + lsls r2, 3 + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3, 0x26] + ldr r4, =0x0000070e + adds r2, r1, r4 + ldrh r1, [r2] + adds r1, 0x20 + movs r4, 0x2E + ldrsh r0, [r3, r4] + lsls r0, 6 + adds r1, r0 + strh r1, [r3, 0x20] + lsls r1, 16 + ldr r0, =0x010f0000 + cmp r1, r0 + ble _080AE940 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r0, 0 + ldrh r2, [r2] + adds r1, r2 + movs r4, 0x2E + ldrsh r2, [r3, r4] + movs r0, 0x4 + subs r0, r2 + lsls r0, 6 + subs r1, r0 + ldr r0, =0x000001ff + ands r1, r0 + strh r1, [r3, 0x20] +_080AE940: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE8F8 + + thumb_func_start sub_80AE958 +sub_80AE958: @ 80AE958 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x34] + subs r0, 0x1 + strh r0, [r2, 0x34] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080AE972 + ldr r0, =sub_80AE97C + str r0, [r2, 0x1C] +_080AE972: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE958 + + thumb_func_start sub_80AE97C +sub_80AE97C: @ 80AE97C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x22] + subs r0, 0x1 + strh r0, [r5, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x30 + negs r1, r1 + cmp r0, r1 + bge _080AE99A + movs r0, 0xD0 + strh r0, [r5, 0x22] + movs r0, 0x4 + strh r0, [r5, 0x2E] +_080AE99A: + movs r0, 0x2E + ldrsh r4, [r5, r0] + ldr r3, =gSineTable + movs r2, 0x30 + ldrsh r1, [r5, r2] + lsls r0, r1, 1 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r2, r4, 0 + muls r2, r0 + adds r1, 0x40 + lsls r1, 1 + adds r1, r3 + movs r3, 0 + ldrsh r0, [r1, r3] + muls r0, r4 + lsrs r2, 8 + strh r2, [r5, 0x24] + lsrs r0, 8 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x30] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080AE9E6 + movs r0, 0 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080AE9E6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AE97C + + thumb_func_start sub_80AE9F0 +sub_80AE9F0: @ 80AE9F0 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x000006cc + adds r2, r1, r0 + movs r0, 0 + strh r0, [r2] + ldr r0, =0x000006c1 + adds r2, r1, r0 + movs r0, 0x3 + strb r0, [r2] + ldr r0, =0x000006c2 + adds r1, r0 + movs r0, 0x14 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_80AE9F0 + + thumb_func_start sub_80AEA20 +sub_80AEA20: @ 80AEA20 + push {lr} + bl sub_80AE9F0 + pop {r0} + bx r0 + thumb_func_end sub_80AEA20 + + thumb_func_start nullsub_96 +nullsub_96: @ 80AEA2C + bx lr + thumb_func_end nullsub_96 + + thumb_func_start sub_80AEA30 +sub_80AEA30: @ 80AEA30 + movs r0, 0 + bx lr + thumb_func_end sub_80AEA30 + + thumb_func_start sub_80AEA34 +sub_80AEA34: @ 80AEA34 + push {r4,r5,lr} + bl sub_80ADA60 + ldr r0, =gUnknown_0854C14C + ldr r4, [r0] + ldr r1, =0x0000072e + adds r0, r4, r1 + ldrb r5, [r0] + cmp r5, 0 + bne _080AEA6C + ldr r0, =gUnknown_0854FDF8 + bl LoadSpriteSheet + movs r2, 0xE5 + lsls r2, 3 + adds r0, r4, r2 + strh r5, [r0] + ldr r0, =gUnknown_0854FDF0 + ldrb r1, [r0] + subs r2, 0x2 + adds r0, r4, r2 + strh r1, [r0] + ldr r1, =0x0000072a + adds r0, r4, r1 + strh r5, [r0] + adds r2, 0x6 + adds r0, r4, r2 + strh r5, [r0] +_080AEA6C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEA34 + + thumb_func_start sub_80AEA88 +sub_80AEA88: @ 80AEA88 + push {r4,lr} + bl sub_80AEA34 + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r2, =0x000006d2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AEAA8 + adds r4, r1, r2 +_080AEA9E: + bl sub_80AEAB8 + ldrb r0, [r4] + cmp r0, 0 + beq _080AEA9E +_080AEAA8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEA88 + + thumb_func_start sub_80AEAB8 +sub_80AEAB8: @ 80AEAB8 + push {r4-r7,lr} + bl sub_80ADAF0 + ldr r0, =gUnknown_0854C14C + ldr r5, [r0] + ldr r0, =0x00000726 + adds r4, r5, r0 + ldrh r0, [r4] + adds r0, 0x1 + movs r6, 0 + strh r0, [r4] + ldr r1, =0x0000ffff + adds r7, r1, 0 + ldr r2, =gUnknown_0854FDF0 + movs r1, 0xE5 + lsls r1, 3 + adds r3, r5, r1 + ldrh r1, [r3] + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r1] + cmp r0, r1 + bls _080AEB10 + strh r6, [r4] + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + ands r0, r7 + cmp r0, 0x7 + bls _080AEAF8 + strh r6, [r3] +_080AEAF8: + ldr r0, =0x0000072a + adds r4, r5, r0 + ldrh r0, [r4] + bl sub_80AEB48 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ands r0, r7 + cmp r0, 0xC + bls _080AEB10 + strh r6, [r4] +_080AEB10: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEAB8 + + thumb_func_start sub_80AEB2C +sub_80AEB2C: @ 80AEB2C + push {lr} + bl sub_80ADBB0 + lsls r0, 24 + cmp r0, 0 + beq _080AEB3C + movs r0, 0x1 + b _080AEB42 +_080AEB3C: + bl sub_80AEBD0 + movs r0, 0 +_080AEB42: + pop {r1} + bx r1 + thumb_func_end sub_80AEB2C + + thumb_func_start sub_80AEB48 +sub_80AEB48: @ 80AEB48 + push {r4,lr} + lsls r0, 16 + ldr r1, =gUnknown_0854FE00 + lsrs r0, 14 + adds r3, r0, r1 + adds r1, 0x2 + adds r0, r1 + ldr r1, =gSpriteCoordOffsetY + ldrh r2, [r0] + ldrh r0, [r1] + subs r2, r0 + ldr r0, =gUnknown_0854FE44 + movs r4, 0 + ldrsh r1, [r3, r4] + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080AEBB0 + ldr r0, =gSprites + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x5] + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r3] + movs r0, 0 + strh r0, [r1, 0x2E] + strh r0, [r1, 0x30] + strh r0, [r1, 0x32] + ldr r0, =gUnknown_0854C14C + ldr r1, [r0] + ldr r0, =0x0000072c + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080AEBB0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEB48 + + thumb_func_start sub_80AEBD0 +sub_80AEBD0: @ 80AEBD0 + push {r4,r5,lr} + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x0000072c + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080AEC1A + movs r4, 0 + ldr r5, =gSprites +_080AEBE4: + lsls r0, r4, 4 + adds r0, r4 + lsls r2, r0, 2 + adds r0, r5, 0 + adds r0, 0x14 + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, =gUnknown_0854FE44 + cmp r1, r0 + bne _080AEBFE + adds r0, r2, r5 + bl DestroySprite +_080AEBFE: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3F + bls _080AEBE4 + ldr r0, =0x00001205 + bl FreeSpriteTilesByTag + ldr r0, =gUnknown_0854C14C + ldr r0, [r0] + ldr r1, =0x0000072c + adds r0, r1 + movs r1, 0 + strh r1, [r0] +_080AEC1A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEBD0 + + thumb_func_start unc_0807DAB4 +unc_0807DAB4: @ 80AEC34 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + movs r2, 0 + adds r0, 0x2 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080AEC74 + strh r2, [r1, 0x2E] + movs r3, 0x30 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080AEC66 + ldrh r0, [r1, 0x24] + adds r0, 0x1 + strh r0, [r1, 0x24] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080AEC74 + movs r0, 0x1 + strh r0, [r1, 0x30] + b _080AEC74 +_080AEC66: + ldrh r0, [r1, 0x24] + subs r0, 0x1 + strh r0, [r1, 0x24] + lsls r0, 16 + cmp r0, 0 + bgt _080AEC74 + strh r2, [r1, 0x30] +_080AEC74: + ldrh r0, [r1, 0x22] + subs r0, 0x3 + strh r0, [r1, 0x22] + ldrh r0, [r1, 0x32] + adds r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x77 + ble _080AEC8E + adds r0, r1, 0 + bl DestroySprite +_080AEC8E: + pop {r0} + bx r0 + thumb_func_end unc_0807DAB4 + + thumb_func_start sub_80AEC94 +sub_80AEC94: @ 80AEC94 + ldr r2, =gUnknown_02038BC4 + strb r0, [r2] + ldr r0, =gUnknown_02038BC6 + strh r1, [r0] + bx lr + .pool + thumb_func_end sub_80AEC94 + + thumb_func_start sub_80AECA8 +sub_80AECA8: @ 80AECA8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AECCC + cmp r0, 0x1 + beq _080AECF8 + b _080AED1C + .pool +_080AECCC: + ldrh r0, [r4, 0x1E] + subs r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080AED1C + ldrb r0, [r4, 0x2] + bl weather_set + ldr r1, =gUnknown_02038BC4 + ldrh r0, [r4, 0x2] + strb r0, [r1] + movs r1, 0x96 + lsls r1, 2 + adds r0, r1, 0 + strh r0, [r4, 0x1E] + ldrh r0, [r4] + adds r0, 0x1 + b _080AED1A + .pool +_080AECF8: + ldrh r0, [r4, 0x1E] + subs r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + cmp r0, 0 + bgt _080AED1C + ldrb r0, [r4, 0x4] + bl weather_set + ldr r1, =gUnknown_02038BC4 + ldrh r0, [r4, 0x4] + strb r0, [r1] + movs r1, 0x96 + lsls r1, 2 + adds r0, r1, 0 + strh r0, [r4, 0x1E] + movs r0, 0 +_080AED1A: + strh r0, [r4] +_080AED1C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AECA8 + + thumb_func_start bag_add_task0_by_acit +bag_add_task0_by_acit: @ 80AED28 + push {lr} + ldr r0, =sub_80AECA8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r1, r0 + movs r2, 0x96 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1, 0x1E] + ldr r3, =gUnknown_02038BC4 + ldrb r2, [r3] + cmp r2, 0xD + bne _080AED60 + movs r0, 0xC + b _080AED66 + .pool +_080AED60: + cmp r2, 0xC + bne _080AED6C + movs r0, 0xD +_080AED66: + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + b _080AED78 +_080AED6C: + movs r0, 0xD + strb r0, [r3] + movs r0, 0xC + strh r0, [r1, 0x2] + movs r0, 0xD + strh r0, [r1, 0x4] +_080AED78: + pop {r0} + bx r0 + thumb_func_end bag_add_task0_by_acit + + thumb_func_start sub_80AED7C +sub_80AED7C: @ 80AED7C + push {r4,r5,lr} + ldr r4, =gSaveBlock1Ptr + ldr r1, [r4] + adds r1, 0x2E + ldrb r5, [r1] + lsls r0, 24 + lsrs r0, 24 + bl sub_80AEEE8 + ldr r1, [r4] + adds r1, 0x2E + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x2E + ldrb r0, [r0] + adds r1, r5, 0 + bl sub_80AEFDC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AED7C + + thumb_func_start sav1_get_weather_probably +sav1_get_weather_probably: @ 80AEDAC + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + adds r0, 0x2E + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sav1_get_weather_probably + + thumb_func_start sub_80AEDBC +sub_80AEDBC: @ 80AEDBC + push {r4,r5,lr} + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + adds r0, 0x2E + ldrb r5, [r0] + ldr r0, =gMapHeader + ldrb r0, [r0, 0x16] + bl sub_80AEEE8 + ldr r1, [r4] + adds r1, 0x2E + strb r0, [r1] + ldr r0, [r4] + adds r0, 0x2E + ldrb r0, [r0] + adds r1, r5, 0 + bl sub_80AEFDC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEDBC + + thumb_func_start sub_80AEDF0 +sub_80AEDF0: @ 80AEDF0 + push {lr} + bl sub_80AED7C + bl sav1_get_weather_probably + lsls r0, 24 + lsrs r0, 24 + bl weather_set + pop {r0} + bx r0 + thumb_func_end sub_80AEDF0 + + thumb_func_start sub_80AEE08 +sub_80AEE08: @ 80AEE08 + push {lr} + bl sub_80AED7C + bl sav1_get_weather_probably + lsls r0, 24 + lsrs r0, 24 + bl sub_80AB104 + pop {r0} + bx r0 + thumb_func_end sub_80AEE08 + + thumb_func_start sub_80AEE20 +sub_80AEE20: @ 80AEE20 + push {r4,r5,lr} + bl sav1_get_weather_probably + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bne _080AEE4C + ldr r0, =sub_80AECA8 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080AEE3E + bl bag_add_task0_by_acit +_080AEE3E: + ldr r0, =gUnknown_02038BC4 + ldrb r4, [r0] + b _080AEE6E + .pool +_080AEE4C: + ldr r5, =sub_80AECA8 + adds r0, r5, 0 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080AEE68 + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080AEE68: + ldr r1, =gUnknown_02038BC4 + movs r0, 0xD + strb r0, [r1] +_080AEE6E: + adds r0, r4, 0 + bl weather_set + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEE20 + + thumb_func_start sub_80AEE84 +sub_80AEE84: @ 80AEE84 + push {r4,r5,lr} + bl sav1_get_weather_probably + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bne _080AEEB0 + ldr r0, =sub_80AECA8 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080AEEA2 + bl bag_add_task0_by_acit +_080AEEA2: + ldr r0, =gUnknown_02038BC4 + ldrb r4, [r0] + b _080AEED2 + .pool +_080AEEB0: + ldr r5, =sub_80AECA8 + adds r0, r5, 0 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + beq _080AEECC + adds r0, r5, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080AEECC: + ldr r1, =gUnknown_02038BC4 + movs r0, 0xD + strb r0, [r1] +_080AEED2: + adds r0, r4, 0 + bl sub_80AB104 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AEE84 + + thumb_func_start sub_80AEEE8 +sub_80AEEE8: @ 80AEEE8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x15 + bhi _080AEFB4 + lsls r0, 2 + ldr r1, =_080AEF00 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AEF00: + .4byte _080AEFB4 + .4byte _080AEF58 + .4byte _080AEF5C + .4byte _080AEF60 + .4byte _080AEF64 + .4byte _080AEF68 + .4byte _080AEF6C + .4byte _080AEF70 + .4byte _080AEF74 + .4byte _080AEF78 + .4byte _080AEF7C + .4byte _080AEF80 + .4byte _080AEF84 + .4byte _080AEF88 + .4byte _080AEF8C + .4byte _080AEF90 + .4byte _080AEFB4 + .4byte _080AEFB4 + .4byte _080AEFB4 + .4byte _080AEFB4 + .4byte _080AEF94 + .4byte _080AEF9C +_080AEF58: + movs r0, 0x1 + b _080AEFB6 +_080AEF5C: + movs r0, 0x2 + b _080AEFB6 +_080AEF60: + movs r0, 0x3 + b _080AEFB6 +_080AEF64: + movs r0, 0x4 + b _080AEFB6 +_080AEF68: + movs r0, 0x5 + b _080AEFB6 +_080AEF6C: + movs r0, 0x6 + b _080AEFB6 +_080AEF70: + movs r0, 0x7 + b _080AEFB6 +_080AEF74: + movs r0, 0x8 + b _080AEFB6 +_080AEF78: + movs r0, 0x9 + b _080AEFB6 +_080AEF7C: + movs r0, 0xA + b _080AEFB6 +_080AEF80: + movs r0, 0xB + b _080AEFB6 +_080AEF84: + movs r0, 0xC + b _080AEFB6 +_080AEF88: + movs r0, 0xD + b _080AEFB6 +_080AEF8C: + movs r0, 0xE + b _080AEFB6 +_080AEF90: + movs r0, 0xF + b _080AEFB6 +_080AEF94: + ldr r1, =gUnknown_0854FE5C + b _080AEF9E + .pool +_080AEF9C: + ldr r1, =gUnknown_0854FE60 +_080AEF9E: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + adds r0, 0x2F + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + b _080AEFB6 + .pool +_080AEFB4: + movs r0, 0 +_080AEFB6: + pop {r1} + bx r1 + thumb_func_end sub_80AEEE8 + + thumb_func_start sub_80AEFBC +sub_80AEFBC: @ 80AEFBC + lsls r0, 16 + ldr r1, =gSaveBlock1Ptr + ldr r2, [r1] + adds r2, 0x2F + lsrs r0, 16 + ldrb r1, [r2] + adds r0, r1 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 16 + strb r1, [r2] + bx lr + .pool + thumb_func_end sub_80AEFBC + + thumb_func_start sub_80AEFDC +sub_80AEFDC: @ 80AEFDC + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r2, r0, 24 + cmp r0, r1 + beq _080AEFF6 + cmp r2, 0x3 + beq _080AEFF0 + cmp r2, 0x5 + bne _080AEFF6 +_080AEFF0: + movs r0, 0x28 + bl IncrementGameStat +_080AEFF6: + pop {r0} + bx r0 + thumb_func_end sub_80AEFDC + + thumb_func_start palette_bg_faded_fill_white +palette_bg_faded_fill_white: @ 80AEFFC + push {lr} + sub sp, 0x4 + ldr r0, =0x7fff7fff + str r0, [sp] + ldr r1, =gPlttBufferFaded + ldr r2, =0x01000100 + mov r0, sp + bl CpuFastSet + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end palette_bg_faded_fill_white + + thumb_func_start palette_bg_faded_fill_black +palette_bg_faded_fill_black: @ 80AF020 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r1, =gPlttBufferFaded + ldr r2, =0x01000100 + mov r0, sp + bl CpuFastSet + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end palette_bg_faded_fill_black + + thumb_func_start pal_fill_for_maplights +pal_fill_for_maplights: @ 80AF040 + push {r4,lr} + bl get_map_light_from_warp0 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sav1_map_get_light_level + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl fade_type_for_given_maplight_pair + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080AF06A + cmp r0, 0x1 + beq _080AF078 + b _080AF084 +_080AF06A: + bl palette_bg_faded_fill_black + movs r0, 0 + movs r1, 0 + bl fade_screen + b _080AF084 +_080AF078: + bl palette_bg_faded_fill_white + movs r0, 0x2 + movs r1, 0 + bl fade_screen +_080AF084: + pop {r4} + pop {r0} + bx r0 + thumb_func_end pal_fill_for_maplights + + thumb_func_start sub_80AF08C +sub_80AF08C: @ 80AF08C + push {lr} + bl palette_bg_faded_fill_white + movs r0, 0x2 + movs r1, 0x8 + bl fade_screen + pop {r0} + bx r0 + thumb_func_end sub_80AF08C + + thumb_func_start pal_fill_black +pal_fill_black: @ 80AF0A0 + push {lr} + bl palette_bg_faded_fill_black + movs r0, 0 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + thumb_func_end pal_fill_black + + thumb_func_start sub_80AF0B4 +sub_80AF0B4: @ 80AF0B4 + push {r4,lr} + bl sav1_map_get_light_level + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl warp1_get_mapheader + ldrb r1, [r0, 0x17] + adds r0, r4, 0 + bl sub_8137360 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080AF0DA + cmp r0, 0x1 + beq _080AF0E4 + b _080AF0EC +_080AF0DA: + movs r0, 0x1 + movs r1, 0 + bl fade_screen + b _080AF0EC +_080AF0E4: + movs r0, 0x3 + movs r1, 0 + bl fade_screen +_080AF0EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF0B4 + + thumb_func_start sub_80AF0F4 +sub_80AF0F4: @ 80AF0F4 + push {lr} + lsls r0, 24 + movs r1, 0 + cmp r0, 0 + bne _080AF100 + movs r1, 0x1 +_080AF100: + adds r0, r1, 0 + bl sub_808C0A8 + pop {r0} + bx r0 + thumb_func_end sub_80AF0F4 + + thumb_func_start task0A_nop_for_a_while +task0A_nop_for_a_while: @ 80AF10C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF120 + adds r0, r4, 0 + bl DestroyTask +_080AF120: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task0A_nop_for_a_while + + thumb_func_start sub_80AF128 +sub_80AF128: @ 80AF128 + push {lr} + bl ScriptContext2_Enable + bl sub_8085784 + bl pal_fill_black + ldr r0, =task0A_nop_for_a_while + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF128 + + thumb_func_start task0A_asap_script_env_2_enable_and_set_ctx_running +task0A_asap_script_env_2_enable_and_set_ctx_running: @ 80AF148 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF160 + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080AF160: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task0A_asap_script_env_2_enable_and_set_ctx_running + + thumb_func_start sub_80AF168 +sub_80AF168: @ 80AF168 + push {lr} + bl ScriptContext2_Enable + bl sub_8085784 + bl pal_fill_black + ldr r0, =task0A_asap_script_env_2_enable_and_set_ctx_running + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF168 + + thumb_func_start sub_80AF188 +sub_80AF188: @ 80AF188 + push {lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, =task0A_asap_script_env_2_enable_and_set_ctx_running + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF188 + + thumb_func_start task_mpl_807DD60 +task_mpl_807DD60: @ 80AF1A4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r2, =gTasks + adds r4, r0, r2 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AF1DE + cmp r0, 0x1 + bgt _080AF1CC + cmp r0, 0 + beq _080AF1D2 + b _080AF20E + .pool +_080AF1CC: + cmp r0, 0x2 + beq _080AF1FC + b _080AF20E +_080AF1D2: + bl sub_80B3050 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + b _080AF1F4 +_080AF1DE: + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080AF20E + bl pal_fill_for_maplights +_080AF1F4: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AF20E +_080AF1FC: + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF20E + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080AF20E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_mpl_807DD60 + + thumb_func_start sub_80AF214 +sub_80AF214: @ 80AF214 + push {lr} + bl ScriptContext2_Enable + bl sub_8085784 + bl palette_bg_faded_fill_black + ldr r0, =task_mpl_807DD60 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF214 + + thumb_func_start sub_80AF234 +sub_80AF234: @ 80AF234 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AF268 + cmp r0, 0x1 + bgt _080AF25C + cmp r0, 0 + beq _080AF262 + b _080AF2AE + .pool +_080AF25C: + cmp r0, 0x2 + beq _080AF298 + b _080AF2AE +_080AF262: + bl sub_800ADF8 + b _080AF290 +_080AF268: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + bne _080AF28C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + movs r1, 0xE1 + lsls r1, 19 + cmp r0, r1 + ble _080AF2AE + movs r0, 0xC0 + lsls r0, 7 + bl sub_8011170 + b _080AF2AE +_080AF28C: + bl pal_fill_for_maplights +_080AF290: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AF2AE +_080AF298: + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF2AE + bl sub_8009F18 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080AF2AE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AF234 + + thumb_func_start sub_80AF2B4 +sub_80AF2B4: @ 80AF2B4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AF2E8 + cmp r0, 0x1 + bgt _080AF2DC + cmp r0, 0 + beq _080AF2E2 + b _080AF30C + .pool +_080AF2DC: + cmp r0, 0x2 + beq _080AF2FA + b _080AF30C +_080AF2E2: + bl sub_800ADF8 + b _080AF2F2 +_080AF2E8: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _080AF30C +_080AF2F2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AF30C +_080AF2FA: + bl sub_8009F18 + bl sub_8086C2C + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080AF30C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AF2B4 + + thumb_func_start sub_80AF314 +sub_80AF314: @ 80AF314 + push {lr} + bl ScriptContext2_Enable + bl sub_8085784 + bl palette_bg_faded_fill_black + ldr r0, =sub_80AF234 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF314 + + thumb_func_start sub_80AF334 +sub_80AF334: @ 80AF334 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl PlayerGetDestCoords + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8088EFC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080AF36C + ldr r1, =sub_80AF438 + b _080AF37E + .pool +_080AF36C: + adds r0, r4, 0 + bl sub_8088F58 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =task_map_chg_seq_0807E2CC + cmp r0, 0x1 + bne _080AF37E + ldr r1, =task_map_chg_seq_0807E20C +_080AF37E: + adds r0, r1, 0 + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF334 + + thumb_func_start mapldr_default +mapldr_default: @ 80AF398 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl sub_80AF334 + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end mapldr_default + + thumb_func_start sub_80AF3B0 +sub_80AF3B0: @ 80AF3B0 + push {lr} + bl sub_8085784 + bl sub_80AF08C + bl sub_80AF334 + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end sub_80AF3B0 + + thumb_func_start sub_80AF3C8 +sub_80AF3C8: @ 80AF3C8 + push {lr} + bl sub_81D6534 + cmp r0, 0 + bne _080AF3D6 + bl sub_8085784 +_080AF3D6: + bl pal_fill_black + bl sub_80AF334 + bl ScriptContext2_Enable + pop {r0} + bx r0 + thumb_func_end sub_80AF3C8 + + thumb_func_start sub_80AF3E8 +sub_80AF3E8: @ 80AF3E8 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + movs r0, 0x2E + bl PlaySE + ldr r0, =task0A_mpl_807E31C + movs r1, 0xA + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF3E8 + + thumb_func_start sub_80AF40C +sub_80AF40C: @ 80AF40C + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + movs r0, 0x2E + bl PlaySE + ldr r0, =task_map_chg_seq_0807E2CC + movs r1, 0xA + bl CreateTask + bl ScriptContext2_Enable + movs r0, 0xE + bl sub_8085540 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF40C + + thumb_func_start sub_80AF438 +sub_80AF438: @ 80AF438 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + adds r6, r5, 0 + adds r6, 0xC + adds r7, r5, 0 + adds r7, 0xE + movs r2, 0x8 + ldrsh r0, [r5, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _080AF54A + lsls r0, 2 + ldr r1, =_080AF46C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AF46C: + .4byte _080AF480 + .4byte _080AF4A4 + .4byte _080AF4DC + .4byte _080AF520 + .4byte _080AF540 +_080AF480: + movs r0, 0 + bl sub_80AF0F4 + bl player_bitmagic + adds r0, r6, 0 + adds r1, r7, 0 + bl PlayerGetDestCoords + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0 + ldrsh r1, [r7, r2] + bl sub_808A854 + movs r0, 0x1 + strh r0, [r5, 0x8] + b _080AF54A +_080AF4A4: + bl sub_80AF71C + cmp r0, 0 + beq _080AF54A + movs r0, 0x1 + bl sub_80AF0F4 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gMapObjects + adds r0, r1 + movs r1, 0x8 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080AF54A + .pool +_080AF4DC: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _080AF54A + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0 + ldrsh r1, [r7, r2] + bl sub_808A8AC + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gMapObjects + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080AF54A + .pool +_080AF520: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080AF536 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080AF54A +_080AF536: + bl sub_809757C + movs r0, 0x4 + strh r0, [r5, 0x8] + b _080AF54A +_080AF540: + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_080AF54A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AF438 + + thumb_func_start task_map_chg_seq_0807E20C +task_map_chg_seq_0807E20C: @ 80AF550 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + adds r5, r0, r1 + adds r6, r5, 0 + adds r6, 0xC + adds r7, r5, 0 + adds r7, 0xE + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _080AF5A2 + cmp r0, 0x1 + bgt _080AF580 + cmp r0, 0 + beq _080AF58A + b _080AF60A + .pool +_080AF580: + cmp r0, 0x2 + beq _080AF5EC + cmp r0, 0x3 + beq _080AF600 + b _080AF60A +_080AF58A: + movs r0, 0 + bl sub_80AF0F4 + bl player_bitmagic + adds r0, r6, 0 + adds r1, r7, 0 + bl PlayerGetDestCoords + movs r0, 0x1 + strh r0, [r5, 0x8] + b _080AF60A +_080AF5A2: + bl sub_80AF71C + cmp r0, 0 + beq _080AF60A + movs r0, 0x1 + bl sub_80AF0F4 + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gMapObjects + adds r4, r0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetGoSpeed0AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080AF60A + .pool +_080AF5EC: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _080AF60A + bl sub_809757C + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080AF60A +_080AF600: + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_080AF60A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E20C + + thumb_func_start task_map_chg_seq_0807E2CC +task_map_chg_seq_0807E2CC: @ 80AF610 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080AF634 + cmp r0, 0x1 + beq _080AF644 + b _080AF65A + .pool +_080AF634: + bl player_bitmagic + bl ScriptContext2_Enable + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AF65A +_080AF644: + bl sub_80AF71C + cmp r0, 0 + beq _080AF65A + bl sub_809757C + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080AF65A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_map_chg_seq_0807E2CC + + thumb_func_start sub_80AF660 +sub_80AF660: @ 80AF660 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF67C + adds r0, r4, 0 + bl DestroyTask + ldr r0, =sub_809FA34 + movs r1, 0x50 + bl CreateTask +_080AF67C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF660 + + thumb_func_start sub_80AF688 +sub_80AF688: @ 80AF688 + push {lr} + bl pal_fill_black + ldr r0, =sub_80AF660 + movs r1, 0x50 + bl CreateTask + bl ScriptContext2_Enable + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF688 + + thumb_func_start sub_80AF6A4 +sub_80AF6A4: @ 80AF6A4 + push {lr} + bl sub_809FA18 + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80AF6A4 + + thumb_func_start task_mpl_807E3C8 +task_mpl_807E3C8: @ 80AF6B0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80AF71C + cmp r0, 0x1 + bne _080AF6CC + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + bl sub_80984F4 +_080AF6CC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task_mpl_807E3C8 + + thumb_func_start sub_80AF6D4 +sub_80AF6D4: @ 80AF6D4 + push {lr} + bl ScriptContext2_Enable + bl pal_fill_black + ldr r0, =task_mpl_807E3C8 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF6D4 + + thumb_func_start sub_80AF6F0 +sub_80AF6F0: @ 80AF6F0 + push {lr} + bl ScriptContext2_Enable + bl sub_8085784 + bl pal_fill_black + ldr r0, =task_mpl_807E3C8 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF6F0 + + thumb_func_start sub_80AF710 +sub_80AF710: @ 80AF710 + ldr r0, =gPaletteFade + ldrb r0, [r0, 0x7] + lsrs r0, 7 + bx lr + .pool + thumb_func_end sub_80AF710 + + thumb_func_start sub_80AF71C +sub_80AF71C: @ 80AF71C + push {lr} + bl sub_80ABDFC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080AF72E + movs r0, 0 + b _080AF730 +_080AF72E: + movs r0, 0x1 +_080AF730: + pop {r1} + bx r1 + thumb_func_end sub_80AF71C + + thumb_func_start sub_80AF734 +sub_80AF734: @ 80AF734 + push {lr} + bl ScriptContext2_Enable + bl music_something + bl sub_80AF0B4 + bl play_some_sound + movs r0, 0x9 + bl PlaySE + ldr r0, =gUnknown_03005DAC + ldr r1, =mapldr_default + str r1, [r0] + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF734 + + thumb_func_start sp13E_warp_to_last_warp +sp13E_warp_to_last_warp: @ 80AF76C + push {lr} + bl ScriptContext2_Enable + bl music_something + bl sub_80AF0B4 + bl play_some_sound + ldr r0, =gUnknown_03005DAC + ldr r1, =mapldr_default + str r1, [r0] + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sp13E_warp_to_last_warp + + thumb_func_start sub_80AF79C +sub_80AF79C: @ 80AF79C + push {lr} + bl ScriptContext2_Enable + bl music_something + movs r0, 0x3 + movs r1, 0x8 + bl fade_screen + bl play_some_sound + ldr r0, =gUnknown_03005DAC + ldr r1, =sub_80AF3B0 + str r1, [r0] + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF79C + + thumb_func_start sub_80AF7D0 +sub_80AF7D0: @ 80AF7D0 + push {lr} + bl ScriptContext2_Enable + ldr r0, =gUnknown_03005DAC + ldr r1, =mapldr_default + str r1, [r0] + ldr r0, =sub_80AFA88 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF7D0 + + thumb_func_start sp13F_fall_to_last_warp +sp13F_fall_to_last_warp: @ 80AF7F4 + push {lr} + bl sp13E_warp_to_last_warp + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80B6B68 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sp13F_fall_to_last_warp + + thumb_func_start sub_80AF80C +sub_80AF80C: @ 80AF80C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ScriptContext2_Enable + adds r0, r4, 0 + movs r1, 0xA + bl sub_80B6E4C + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AF80C + + thumb_func_start sub_80AF828 +sub_80AF828: @ 80AF828 + push {lr} + bl ScriptContext2_Enable + movs r0, 0xA + bl sub_80B75D8 + pop {r0} + bx r0 + thumb_func_end sub_80AF828 + + thumb_func_start sub_80AF838 +sub_80AF838: @ 80AF838 + push {lr} + bl ScriptContext2_Enable + movs r0, 0xA + bl sub_80B7A74 + pop {r0} + bx r0 + thumb_func_end sub_80AF838 + + thumb_func_start sub_80AF848 +sub_80AF848: @ 80AF848 + push {lr} + bl ScriptContext2_Enable + bl music_something + bl sub_80AF0B4 + movs r0, 0x2D + bl PlaySE + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80AF3E8 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF848 + + thumb_func_start sub_80AF87C +sub_80AF87C: @ 80AF87C + push {lr} + movs r0, 0x1 + bl sub_8085540 + bl ScriptContext2_Enable + bl save_serialize_npcs + bl music_something + bl sub_80AF0B4 + movs r0, 0x2D + bl PlaySE + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80AF40C + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF87C + + thumb_func_start sub_80AF8B8 +sub_80AF8B8: @ 80AF8B8 + push {lr} + bl ScriptContext2_Enable + bl sub_80AF0B4 + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80FB768 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF8B8 + + thumb_func_start sub_80AF8E0 +sub_80AF8E0: @ 80AF8E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AF914 + cmp r0, 0x1 + bgt _080AF908 + cmp r0, 0 + beq _080AF90E + b _080AF93E + .pool +_080AF908: + cmp r0, 0x2 + beq _080AF92E + b _080AF93E +_080AF90E: + bl ScriptContext2_Enable + b _080AF926 +_080AF914: + bl sub_80AF710 + cmp r0, 0 + bne _080AF93E + bl sub_80859A0 + lsls r0, 24 + cmp r0, 0 + beq _080AF93E +_080AF926: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AF93E +_080AF92E: + bl warp_in + ldr r0, =sub_8086074 + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_080AF93E: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF8E0 + + thumb_func_start sub_80AF948 +sub_80AF948: @ 80AF948 + push {lr} + bl ScriptContext2_Enable + bl music_something + bl sub_80AF0B4 + movs r0, 0x9 + bl PlaySE + ldr r0, =sub_80AF8E0 + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF948 + + thumb_func_start sub_80AF96C +sub_80AF96C: @ 80AF96C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AF9B2 + cmp r0, 0x1 + bgt _080AF994 + cmp r0, 0 + beq _080AF99A + b _080AF9E8 + .pool +_080AF994: + cmp r0, 0x2 + beq _080AF9D0 + b _080AF9E8 +_080AF99A: + bl sub_8009FAC + movs r0, 0x1 + movs r1, 0 + bl fade_screen + bl music_something + movs r0, 0x9 + bl PlaySE + b _080AF9C8 +_080AF9B2: + bl sub_80AF710 + cmp r0, 0 + bne _080AF9E8 + bl sub_80859A0 + lsls r0, 24 + cmp r0, 0 + beq _080AF9E8 + bl sub_800AC34 +_080AF9C8: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080AF9E8 +_080AF9D0: + ldr r0, =gUnknown_03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _080AF9E8 + bl warp_in + ldr r0, =c2_load_new_map + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_080AF9E8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF96C + + thumb_func_start sub_80AF9F8 +sub_80AF9F8: @ 80AF9F8 + push {lr} + ldr r0, =sub_80AF96C + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AF9F8 + + thumb_func_start sub_80AFA0C +sub_80AFA0C: @ 80AFA0C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080AFA44 + cmp r5, 0x1 + bgt _080AFA34 + cmp r5, 0 + beq _080AFA3A + b _080AFA7C + .pool +_080AFA34: + cmp r5, 0x2 + beq _080AFA6C + b _080AFA7C +_080AFA3A: + bl player_bitmagic + bl ScriptContext2_Enable + b _080AFA64 +_080AFA44: + bl sub_80AF710 + cmp r0, 0 + bne _080AFA7C + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080AFA5A + bl sub_81BE72C + strh r5, [r4, 0xA] +_080AFA5A: + bl sub_80859A0 + lsls r0, 24 + cmp r0, 0 + beq _080AFA7C +_080AFA64: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AFA7C +_080AFA6C: + bl warp_in + ldr r0, =c2_load_new_map + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_080AFA7C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AFA0C + + thumb_func_start sub_80AFA88 +sub_80AFA88: @ 80AFA88 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r5, r1, r0 + adds r4, r5, 0 + adds r4, 0xC + adds r6, r5, 0 + adds r6, 0xE + movs r2, 0x8 + ldrsh r1, [r5, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bls _080AFAAC + b _080AFBE8 +_080AFAAC: + lsls r0, r1, 2 + ldr r1, =_080AFAC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080AFAC0: + .4byte _080AFAD4 + .4byte _080AFB10 + .4byte _080AFB6C + .4byte _080AFBB8 + .4byte _080AFBD4 +_080AFAD4: + bl player_bitmagic + adds r0, r4, 0 + adds r1, r6, 0 + bl PlayerGetDestCoords + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl cur_mapdata_get_door_sound_at + lsls r0, 16 + lsrs r0, 16 + bl PlaySE + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl task_overworld_door_add_if_role_69_for_opening_door_at + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0x1 + strh r0, [r5, 0x8] + b _080AFBE8 +_080AFB10: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080AFB26 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080AFBE8 +_080AFB26: + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r4, =gMapObjects + adds r0, r4 + bl FieldObjectClearAnimIfSpecialAnimActive + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x9 + bl FieldObjectSetSpecialAnim + movs r0, 0x2 + strh r0, [r5, 0x8] + b _080AFBE8 + .pool +_080AFB6C: + bl walkrun_is_standing_still + lsls r0, 24 + cmp r0, 0 + beq _080AFBE8 + movs r2, 0 + ldrsh r0, [r4, r2] + movs r2, 0 + ldrsh r1, [r6, r2] + subs r1, 0x1 + bl sub_808A8AC + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + bl GetFieldObjectIdByLocalIdAndMap + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gMapObjects + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + movs r0, 0 + bl sub_80AF0F4 + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080AFBE8 + .pool +_080AFBB8: + movs r1, 0xA + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080AFBCE + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + beq _080AFBE8 +_080AFBCE: + movs r0, 0x4 + strh r0, [r5, 0x8] + b _080AFBE8 +_080AFBD4: + bl music_something + bl sub_80AF0B4 + bl play_some_sound + movs r0, 0 + strh r0, [r5, 0x8] + ldr r0, =sub_80AFA0C + str r0, [r5] +_080AFBE8: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AFA88 + + thumb_func_start task0A_fade_n_map_maybe +task0A_fade_n_map_maybe: @ 80AFBF4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AFC2C + cmp r0, 0x1 + bgt _080AFC1C + cmp r0, 0 + beq _080AFC22 + b _080AFC56 + .pool +_080AFC1C: + cmp r0, 0x2 + beq _080AFC46 + b _080AFC56 +_080AFC22: + bl player_bitmagic + bl ScriptContext2_Enable + b _080AFC3E +_080AFC2C: + bl sub_80AF710 + cmp r0, 0 + bne _080AFC56 + bl sub_80859A0 + lsls r0, 24 + cmp r0, 0 + beq _080AFC56 +_080AFC3E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080AFC56 +_080AFC46: + bl warp_in + ldr r0, =sub_8086024 + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_080AFC56: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task0A_fade_n_map_maybe + + thumb_func_start sub_80AFC60 +sub_80AFC60: @ 80AFC60 + push {lr} + bl ScriptContext2_Enable + bl music_something + bl sub_80AF0B4 + bl play_some_sound + movs r0, 0x9 + bl PlaySE + ldr r0, =gUnknown_03005DAC + ldr r1, =sub_80AF3C8 + str r1, [r0] + ldr r0, =task0A_fade_n_map_maybe + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AFC60 + + thumb_func_start sub_80AFC98 +sub_80AFC98: @ 80AFC98 + push {lr} + cmp r1, 0xA0 + bhi _080AFCC0 + cmp r2, 0 + bge _080AFCA4 + movs r2, 0 +_080AFCA4: + cmp r2, 0xFF + ble _080AFCAA + movs r2, 0xFF +_080AFCAA: + cmp r3, 0 + bge _080AFCB0 + movs r3, 0 +_080AFCB0: + cmp r3, 0xFF + ble _080AFCB6 + movs r3, 0xFF +_080AFCB6: + lsls r1, 1 + adds r1, r0 + lsls r0, r2, 8 + orrs r0, r3 + strh r0, [r1] +_080AFCC0: + pop {r0} + bx r0 + thumb_func_end sub_80AFC98 + + thumb_func_start sub_80AFCC4 +sub_80AFCC4: @ 80AFCC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + mov r10, r1 + mov r9, r2 + adds r6, r3, 0 + mov r8, r6 + movs r7, 0 + cmp r6, 0 + blt _080AFD40 +_080AFCE0: + mov r0, r9 + subs r1, r0, r7 + mov r0, r10 + subs r4, r0, r6 + adds r5, r0, r6 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFC98 + mov r0, r9 + adds r1, r0, r7 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFC98 + mov r0, r9 + subs r1, r0, r6 + mov r0, r10 + subs r4, r0, r7 + adds r5, r0, r7 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFC98 + mov r0, r9 + adds r1, r0, r6 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFC98 + mov r1, r8 + adds r1, 0x1 + lsls r0, r7, 1 + subs r1, r0 + mov r8, r1 + adds r7, 0x1 + cmp r1, 0 + bge _080AFD3C + subs r1, r6, 0x1 + lsls r0, r1, 1 + add r8, r0 + adds r6, r1, 0 +_080AFD3C: + cmp r6, r7 + bge _080AFCE0 +_080AFD40: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AFCC4 + + thumb_func_start sub_80AFD50 +sub_80AFD50: @ 80AFD50 + push {lr} + cmp r1, 0xA0 + bhi _080AFD78 + cmp r2, 0 + bge _080AFD5C + movs r2, 0 +_080AFD5C: + cmp r2, 0xF0 + ble _080AFD62 + movs r2, 0xF0 +_080AFD62: + cmp r3, 0 + bge _080AFD68 + movs r3, 0 +_080AFD68: + cmp r3, 0xF0 + ble _080AFD6E + movs r3, 0xF0 +_080AFD6E: + lsls r1, 1 + adds r1, r0 + lsls r0, r2, 8 + orrs r0, r3 + strh r0, [r1] +_080AFD78: + pop {r0} + bx r0 + thumb_func_end sub_80AFD50 + + thumb_func_start sub_80AFD7C +sub_80AFD7C: @ 80AFD7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + mov r10, r1 + mov r9, r2 + adds r6, r3, 0 + mov r8, r6 + movs r7, 0 + cmp r6, 0 + blt _080AFDF8 +_080AFD98: + mov r0, r9 + subs r1, r0, r7 + mov r0, r10 + subs r4, r0, r6 + adds r5, r0, r6 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFD50 + mov r0, r9 + adds r1, r0, r7 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFD50 + mov r0, r9 + subs r1, r0, r6 + mov r0, r10 + subs r4, r0, r7 + adds r5, r0, r7 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFD50 + mov r0, r9 + adds r1, r0, r6 + ldr r0, [sp] + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_80AFD50 + mov r1, r8 + adds r1, 0x1 + lsls r0, r7, 1 + subs r1, r0 + mov r8, r1 + adds r7, 0x1 + cmp r1, 0 + bge _080AFDF4 + subs r1, r6, 0x1 + lsls r0, r1, 1 + add r8, r0 + adds r6, r1, 0 +_080AFDF4: + cmp r6, r7 + bge _080AFD98 +_080AFDF8: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80AFD7C + + thumb_func_start sub_80AFE08 +sub_80AFE08: @ 80AFE08 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AFE64 + cmp r0, 0x1 + bgt _080AFE30 + cmp r0, 0 + beq _080AFE36 + b _080AFEC6 + .pool +_080AFE30: + cmp r0, 0x2 + beq _080AFEBC + b _080AFEC6 +_080AFE36: + ldr r0, =gUnknown_02039B28 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, =gUnknown_02038C28 + adds r0, r1 + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r3, 0x4 + ldrsh r2, [r4, r3] + movs r5, 0x6 + ldrsh r3, [r4, r5] + bl sub_80AFCC4 + movs r0, 0x1 + strh r0, [r4] + b _080AFEC6 + .pool +_080AFE64: + ldr r0, =gUnknown_02039B28 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, =gUnknown_02038C28 + adds r0, r1 + movs r6, 0x2 + ldrsh r1, [r4, r6] + movs r3, 0x4 + ldrsh r2, [r4, r3] + movs r6, 0x6 + ldrsh r3, [r4, r6] + bl sub_80AFCC4 + movs r0, 0 + strh r0, [r4] + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x8 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080AFEC6 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080AFEB4 + bl remove_some_task + movs r0, 0x2 + strh r0, [r4] + b _080AFEC6 + .pool +_080AFEB4: + adds r0, r5, 0 + bl DestroyTask + b _080AFEC6 +_080AFEBC: + bl dp12_8087EA4 + adds r0, r5, 0 + bl DestroyTask +_080AFEC6: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AFE08 + + thumb_func_start sub_80AFECC +sub_80AFECC: @ 80AFECC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080AFF28 + cmp r0, 0x1 + bgt _080AFEF4 + cmp r0, 0 + beq _080AFEFA + b _080AFF8A + .pool +_080AFEF4: + cmp r0, 0x2 + beq _080AFF80 + b _080AFF8A +_080AFEFA: + ldr r0, =gUnknown_02039B28 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, =gUnknown_02038C28 + adds r0, r1 + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r3, 0x4 + ldrsh r2, [r4, r3] + movs r5, 0x6 + ldrsh r3, [r4, r5] + bl sub_80AFD7C + movs r0, 0x1 + strh r0, [r4] + b _080AFF8A + .pool +_080AFF28: + ldr r0, =gUnknown_02039B28 + ldrb r1, [r0, 0x14] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 7 + ldr r1, =gUnknown_02038C28 + adds r0, r1 + movs r6, 0x2 + ldrsh r1, [r4, r6] + movs r3, 0x4 + ldrsh r2, [r4, r3] + movs r6, 0x6 + ldrsh r3, [r4, r6] + bl sub_80AFD7C + movs r0, 0 + strh r0, [r4] + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r4, 0x6] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x8 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080AFF8A + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _080AFF78 + bl remove_some_task + movs r0, 0x2 + strh r0, [r4] + b _080AFF8A + .pool +_080AFF78: + adds r0, r5, 0 + bl DestroyTask + b _080AFF8A +_080AFF80: + bl dp12_8087EA4 + adds r0, r5, 0 + bl DestroyTask +_080AFF8A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80AFECC + + thumb_func_start sub_80AFF90 +sub_80AFF90: @ 80AFF90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =sub_80AFE08 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080AFFAC + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_080AFFAC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AFF90 + + thumb_func_start sub_80AFFB8 +sub_80AFFB8: @ 80AFFB8 + push {r4,lr} + ldr r4, =sub_80AFF90 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080AFFD0 + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask +_080AFFD0: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80AFFB8 + + thumb_func_start sub_80AFFDC +sub_80AFFDC: @ 80AFFDC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + mov r9, r1 + adds r5, r2, 0 + adds r4, r3, 0 + ldr r6, [sp, 0x1C] + ldr r0, [sp, 0x20] + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =sub_80AFE08 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r1, r0, r1 + strh r5, [r1, 0x6] + strh r4, [r1, 0x8] + mov r0, r8 + strh r0, [r1, 0x2] + mov r0, r9 + strh r0, [r1, 0x4] + strh r6, [r1, 0xC] + cmp r5, r4 + bge _080B0028 + strh r7, [r1, 0xA] + b _080B002C + .pool +_080B0028: + negs r0, r7 + strh r0, [r1, 0xA] +_080B002C: + adds r0, r2, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AFFDC + + thumb_func_start sub_80B003C +sub_80B003C: @ 80B003C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + mov r9, r1 + adds r5, r2, 0 + adds r4, r3, 0 + ldr r6, [sp, 0x1C] + ldr r0, [sp, 0x20] + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =sub_80AFECC + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r1, r0, r1 + strh r5, [r1, 0x6] + strh r4, [r1, 0x8] + mov r0, r8 + strh r0, [r1, 0x2] + mov r0, r9 + strh r0, [r1, 0x4] + strh r6, [r1, 0xC] + cmp r5, r4 + bge _080B0088 + strh r7, [r1, 0xA] + b _080B008C + .pool +_080B0088: + negs r0, r7 + strh r0, [r1, 0xA] +_080B008C: + adds r0, r2, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B003C + + thumb_func_start sub_80B009C +sub_80B009C: @ 80B009C + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + bl sav1_get_flash_used_on_map + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + cmp r4, 0 + bne _080B00B6 + movs r5, 0x1 +_080B00B6: + ldr r1, =gUnknown_0854FE64 + lsls r0, 1 + adds r0, r1 + ldrh r2, [r0] + lsls r0, r4, 1 + adds r0, r1 + ldrh r3, [r0] + str r5, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x78 + movs r1, 0x50 + bl sub_80AFFDC + bl sub_80AFFB8 + bl ScriptContext2_Enable + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B009C + + thumb_func_start sub_80B00E8 +sub_80B00E8: @ 80B00E8 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080B0116 + ldr r4, =gUnknown_02038C28 + ldr r1, =gUnknown_0854FE64 + lsls r0, 1 + adds r0, r1 + ldrh r3, [r0] + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x50 + bl sub_80AFCC4 + movs r0, 0xF0 + lsls r0, 3 + adds r1, r4, r0 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r4, 0 + bl CpuFastSet +_080B0116: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B00E8 + + thumb_func_start door_upload_tiles +door_upload_tiles: @ 80B0124 + push {r4,lr} + ldr r4, =gUnknown_02038C28 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000e68 + adds r0, r1 + ldrb r3, [r0] + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x50 + bl sub_80AFCC4 + movs r0, 0xF0 + lsls r0, 3 + adds r1, r4, r0 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r4, 0 + bl CpuFastSet + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end door_upload_tiles + + thumb_func_start task0A_mpl_807E31C +task0A_mpl_807E31C: @ 80B0160 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B0184 + cmp r0, 0x1 + beq _080B0198 + b _080B01B6 + .pool +_080B0184: + bl player_bitmagic + bl ScriptContext2_Enable + bl sub_808D194 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B01B6 +_080B0198: + bl sub_80AF71C + cmp r0, 0 + beq _080B01B6 + bl sub_808D1B4 + cmp r0, 0x1 + beq _080B01B6 + bl sub_809757C + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080B01B6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task0A_mpl_807E31C + + thumb_func_start sub_80B01BC +sub_80B01BC: @ 80B01BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080B0202 + cmp r0, 0x1 + bgt _080B01E4 + cmp r0, 0 + beq _080B01EE + b _080B023A + .pool +_080B01E4: + cmp r0, 0x2 + beq _080B0210 + cmp r0, 0x3 + beq _080B022A + b _080B023A +_080B01EE: + bl player_bitmagic + bl ScriptContext2_Enable + movs r0, 0x2D + bl PlaySE + bl sub_808D1C8 + b _080B0222 +_080B0202: + bl sub_808D1E8 + cmp r0, 0 + bne _080B023A + bl sub_80AF0B4 + b _080B0222 +_080B0210: + bl sub_80AF710 + cmp r0, 0 + bne _080B023A + bl sub_80859A0 + lsls r0, 24 + cmp r0, 0 + beq _080B023A +_080B0222: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080B023A +_080B022A: + bl warp_in + ldr r0, =c2_load_new_map + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_080B023A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B01BC + + thumb_func_start sub_80B0244 +sub_80B0244: @ 80B0244 + push {lr} + bl ScriptContext2_Enable + ldr r0, =sub_80AFA0C + movs r1, 0xA + bl CreateTask + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80AF3E8 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B0244 + + thumb_func_start sub_80B0268 +sub_80B0268: @ 80B0268 + push {lr} + bl ScriptContext2_Enable + ldr r0, =gUnknown_03005DAC + ldr r1, =mapldr_default + str r1, [r0] + ldr r0, =sub_80B01BC + movs r1, 0xA + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B0268 + + thumb_func_start sub_80B028C +sub_80B028C: @ 80B028C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + cmp r0, 0 + bne _080B029A + movs r1, 0x1F + b _080B02A0 +_080B029A: + movs r0, 0xF8 + lsls r0, 7 + adds r1, r0, 0 +_080B02A0: + mov r0, sp + strh r1, [r0] + movs r5, 0 + movs r4, 0xF0 + lsls r4, 16 +_080B02AA: + lsrs r1, r4, 16 + mov r0, sp + movs r2, 0x2 + bl LoadPalette + movs r0, 0x80 + lsls r0, 9 + adds r4, r0 + adds r5, 0x1 + cmp r5, 0xF + ble _080B02AA + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B028C + + thumb_func_start sub_80B02C8 +sub_80B02C8: @ 80B02C8 + push {r4,r5,lr} + lsls r0, 16 + ldr r2, =0x04000052 + ldrh r1, [r2] + lsls r1, 24 + lsrs r5, r1, 24 + ldrh r1, [r2] + lsrs r4, r1, 8 + cmp r0, 0 + beq _080B02EC + cmp r5, 0 + beq _080B02F6 + subs r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + b _080B02F6 + .pool +_080B02EC: + cmp r4, 0xF + bhi _080B02F6 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080B02F6: + lsls r1, r4, 8 + orrs r1, r5 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + cmp r5, 0 + bne _080B0310 + cmp r4, 0x10 + bne _080B0310 + movs r0, 0x1 + b _080B0312 +_080B0310: + movs r0, 0 +_080B0312: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B02C8 + + thumb_func_start sub_80B0318 +sub_80B0318: @ 80B0318 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x7 + bls _080B0334 + b _080B052C +_080B0334: + lsls r0, 2 + ldr r1, =_080B0348 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080B0348: + .4byte _080B0368 + .4byte _080B0424 + .4byte _080B0450 + .4byte _080B046C + .4byte _080B0482 + .4byte _080B04F2 + .4byte _080B04AC + .4byte _080B04BA +_080B0368: + movs r0, 0x80 + lsls r0, 19 + ldrh r0, [r0] + strh r0, [r5, 0xC] + ldr r0, =0x04000050 + ldrh r0, [r0] + strh r0, [r5, 0xE] + ldr r0, =0x04000052 + ldrh r0, [r0] + strh r0, [r5, 0x10] + ldr r0, =0x04000048 + ldrh r0, [r0] + strh r0, [r5, 0x12] + ldr r0, =0x0400004a + ldrh r0, [r0] + strh r0, [r5, 0x14] + movs r1, 0x80 + lsls r1, 7 + movs r0, 0 + bl ClearGpuRegBits + ldr r0, =gUnknown_82EC7CC + ldrh r1, [r0] + movs r0, 0x50 + bl SetGpuRegBits + ldr r1, =0x0000070c + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0x1E + bl SetGpuReg + movs r0, 0x14 + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1E + bl sub_8199C30 + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r4, =gUnknown_02038C28 + movs r2, 0x4 + ldrsh r1, [r5, r2] + movs r0, 0x6 + ldrsh r2, [r5, r0] + adds r0, r4, 0 + movs r3, 0x1 + bl sub_80AFD7C + movs r2, 0xF0 + lsls r2, 3 + adds r1, r4, r2 + movs r2, 0xF0 + lsls r2, 1 + adds r0, r4, 0 + bl CpuFastSet + ldr r2, =gUnknown_0854FE7C + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80BA038 + movs r0, 0x1 + strh r0, [r5] + b _080B052C + .pool +_080B0424: + movs r0, 0 + movs r1, 0x11 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + ldrb r0, [r5, 0x2] + bl sub_80B028C + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r2, 0x6 + ldrsh r1, [r5, r2] + movs r2, 0x1 + str r2, [sp] + movs r4, 0x2 + str r4, [sp, 0x4] + movs r3, 0xA0 + bl sub_80B003C + strh r4, [r5] + b _080B052C +_080B0450: + ldr r0, =sub_80AFECC + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080B052C + bl EnableBothScriptContexts + movs r0, 0x3 + strh r0, [r5] + b _080B052C + .pool +_080B046C: + bl InstallCameraPanAheadCallback + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0 + strh r0, [r5, 0xA] + movs r0, 0x4 + strh r0, [r5, 0x8] + strh r0, [r5] + b _080B052C +_080B0482: + ldrh r0, [r5, 0x8] + subs r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bne _080B052C + movs r0, 0x4 + strh r0, [r5, 0x8] + ldrh r0, [r5, 0xA] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0xA] + movs r1, 0x4 + negs r1, r1 + cmp r0, 0 + beq _080B04A4 + movs r1, 0x4 +_080B04A4: + movs r0, 0 + bl SetCameraPanning + b _080B052C +_080B04AC: + bl InstallCameraPanAheadCallback + movs r0, 0x8 + strh r0, [r5, 0x8] + movs r0, 0x7 + strh r0, [r5] + b _080B052C +_080B04BA: + ldrh r0, [r5, 0x8] + subs r0, 0x1 + strh r0, [r5, 0x8] + lsls r0, 16 + cmp r0, 0 + bne _080B052C + movs r0, 0x8 + strh r0, [r5, 0x8] + ldrh r0, [r5, 0xA] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80B02C8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B052C + movs r0, 0x5 + strh r0, [r5] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x1 + bl sub_8199DF0 + b _080B052C +_080B04F2: + movs r0, 0x40 + movs r1, 0xFF + bl SetGpuReg + ldrh r1, [r5, 0xC] + movs r0, 0 + bl SetGpuReg + ldrh r1, [r5, 0xE] + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r5, 0x10] + movs r0, 0x52 + bl SetGpuReg + ldrh r1, [r5, 0x12] + movs r0, 0x48 + bl SetGpuReg + ldrh r1, [r5, 0x14] + movs r0, 0x4A + bl SetGpuReg + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_080B052C: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B0318 + + thumb_func_start sub_80B0534 +sub_80B0534: @ 80B0534 + push {lr} + ldr r0, =sub_80B0318 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + 0x8 + adds r1, r0 + ldr r0, =gScriptResult + ldrh r0, [r0] + cmp r0, 0 + bne _080B0568 + strh r0, [r1, 0x2] + movs r0, 0x68 + b _080B0580 + .pool +_080B0568: + cmp r0, 0x1 + bne _080B0572 + strh r0, [r1, 0x2] + movs r0, 0x88 + b _080B0580 +_080B0572: + cmp r0, 0x2 + bne _080B057A + movs r0, 0 + b _080B057C +_080B057A: + movs r0, 0x1 +_080B057C: + strh r0, [r1, 0x2] + movs r0, 0x78 +_080B0580: + strh r0, [r1, 0x4] + movs r0, 0x50 + strh r0, [r1, 0x6] + pop {r0} + bx r0 + thumb_func_end sub_80B0534 + + thumb_func_start sub_80B058C +sub_80B058C: @ 80B058C + push {lr} + ldr r0, =sub_80B0318 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x6 + strh r0, [r1, 0x8] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B058C + + thumb_func_start sub_80B05B4 +sub_80B05B4: @ 80B05B4 + push {lr} + bl sub_80859B0 + ldr r0, =task50_0807F0C8 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B05B4 + + thumb_func_start task50_0807F0C8 +task50_0807F0C8: @ 80B05CC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B05E8 + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts +_080B05E8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end task50_0807F0C8 + + .align 2, 0 @ Don't pad with nop. |