.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 FadeScreen FadeScreen: @ 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 FadeScreen thumb_func_start IsWeatherNotFadingIn IsWeatherNotFadingIn: @ 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 IsWeatherNotFadingIn thumb_func_start UpdateSpritePaletteWithWeather @ void UpdateSpritePaletteWithWeather(u8 a1) UpdateSpritePaletteWithWeather: @ 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 UpdateSpritePaletteWithWeather thumb_func_start ApplyWeatherGammaShiftToPal ApplyWeatherGammaShiftToPal: @ 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 ApplyWeatherGammaShiftToPal 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 UpdateSpritePaletteWithWeather 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 SetWeather b _080AC306 _080AC2C0: movs r0, 0x2 bl SetWeather b _080AC306 _080AC2C8: movs r0, 0x3 bl SetWeather b _080AC306 _080AC2D0: movs r0, 0x4 bl SetWeather b _080AC306 _080AC2D8: movs r0, 0x5 bl SetWeather b _080AC306 _080AC2E0: movs r0, 0x6 bl SetWeather b _080AC306 _080AC2E8: movs r0, 0x9 bl SetWeather b _080AC306 _080AC2F0: movs r0, 0x7 bl SetWeather b _080AC306 _080AC2F8: movs r0, 0x8 bl SetWeather b _080AC306 _080AC300: movs r0, 0xB bl SetWeather _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 IsWeatherChangeComplete IsWeatherChangeComplete: @ 80AC3BC ldr r0, =gUnknown_02038454 ldr r1, =0x000006d3 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end IsWeatherChangeComplete 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 PreservePaletteInWeather PreservePaletteInWeather: @ 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 PreservePaletteInWeather thumb_func_start ResetPreservedPalettesInWeather ResetPreservedPalettesInWeather: @ 80AC428 ldr r1, =gUnknown_03000F50 ldr r0, =gUnknown_0854C250 str r0, [r1] bx lr .pool thumb_func_end ResetPreservedPalettesInWeather 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, =sCloudSpriteSheet bl LoadSpriteSheet ldr r0, =gUnknown_0854C290 bl sub_80ABF4C movs r5, 0 _080AC5B2: ldr r0, =sCloudSpriteTemplate 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, =gSpriteTemplate_854FC2C 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, =gSpriteTemplate_854FD18 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, =gSpriteTemplate_854FD58 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, =gSpriteTemplate_854FD8C 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, =gSpriteTemplate_854FDC4 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, =gSpriteTemplate_854FDC4 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, =gSpriteTemplate_854FE44 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, =gSpriteTemplate_854FE44 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 sub_80AEC34 sub_80AEC34: @ 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 sub_80AEC34 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 SetSav1Weather SetSav1Weather: @ 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 SetSav1Weather thumb_func_start GetSav1Weather GetSav1Weather: @ 80AEDAC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] adds r0, 0x2E ldrb r0, [r0] bx lr .pool thumb_func_end GetSav1Weather thumb_func_start SetSav1WeatherFromCurrMapHeader SetSav1WeatherFromCurrMapHeader: @ 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 SetSav1WeatherFromCurrMapHeader thumb_func_start SetWeather SetWeather: @ 80AEDF0 push {lr} bl SetSav1Weather bl GetSav1Weather lsls r0, 24 lsrs r0, 24 bl weather_set pop {r0} bx r0 thumb_func_end SetWeather thumb_func_start sub_80AEE08 sub_80AEE08: @ 80AEE08 push {lr} bl SetSav1Weather bl GetSav1Weather lsls r0, 24 lsrs r0, 24 bl sub_80AB104 pop {r0} bx r0 thumb_func_end sub_80AEE08 thumb_func_start DoCurrentWeather DoCurrentWeather: @ 80AEE20 push {r4,r5,lr} bl GetSav1Weather 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 DoCurrentWeather thumb_func_start sub_80AEE84 sub_80AEE84: @ 80AEE84 push {r4,r5,lr} bl GetSav1Weather 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 UpdateWeatherPerDay UpdateWeatherPerDay: @ 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 UpdateWeatherPerDay 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 Overworld_GetMapTypeOfSaveblockLocation 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 FadeScreen b _080AF084 _080AF078: bl palette_bg_faded_fill_white movs r0, 0x2 movs r1, 0 bl FadeScreen _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 FadeScreen 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 FadeScreen pop {r0} bx r0 thumb_func_end pal_fill_black thumb_func_start sub_80AF0B4 sub_80AF0B4: @ 80AF0B4 push {r4,lr} bl Overworld_GetMapTypeOfSaveblockLocation 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 FadeScreen b _080AF0EC _080AF0E4: movs r0, 0x3 movs r1, 0 bl FadeScreen _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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic 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 MetatileBehavior_IsDoor lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080AF36C ldr r1, =sub_80AF438 b _080AF37E .pool _080AF36C: adds r0, r4, 0 bl MetatileBehavior_IsNonAnimDoor 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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic _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 Overworld_PlaySpecialMapMusic 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 Overworld_PlaySpecialMapMusic 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 FreezeEventObjects 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 FieldSetDoorOpened 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 GetEventObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gEventObjects adds r0, r1 movs r1, 0x8 bl EventObjectSetHeldMovement 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 FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetEventObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gEventObjects adds r0, r1 bl EventObjectClearHeldMovementIfFinished 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 UnfreezeEventObjects 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 FreezeEventObjects 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 GetEventObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 lsls r4, r0, 3 adds r4, r0 lsls r4, 2 ldr r0, =gEventObjects adds r4, r0 bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl GetWalkNormalMovementAction adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl EventObjectSetHeldMovement 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 UnfreezeEventObjects 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 FreezeEventObjects 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 UnfreezeEventObjects 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 ScriptUnfreezeEventObjects _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 Overworld_PlaySpecialMapMusic 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 IsWeatherNotFadingIn 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, =gFieldCallback 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, =gFieldCallback 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 FadeScreen bl play_some_sound ldr r0, =gFieldCallback 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, =gFieldCallback 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, =gFieldCallback 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, =gFieldCallback 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 SaveEventObjects bl music_something bl sub_80AF0B4 movs r0, 0x2D bl PlaySE ldr r0, =sub_80AFA0C movs r1, 0xA bl CreateTask ldr r1, =gFieldCallback 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, =gFieldCallback 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 ClearLinkCallback_2 movs r0, 0x1 movs r1, 0 bl FadeScreen 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, =gReceivedRemoteLinkPlayers ldrb r0, [r0] cmp r0, 0 bne _080AF9E8 bl warp_in ldr r0, =CB2_LoadMap 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 FreezeEventObjects 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, =CB2_LoadMap 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 FreezeEventObjects 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 GetDoorSoundEffect 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 FieldAnimateDoorOpen 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 GetEventObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, =gEventObjects adds r0, r4 bl EventObjectClearHeldMovementIfActive movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetEventObjectIdByLocalIdAndMap 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 EventObjectSetHeldMovement 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 FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetEventObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gEventObjects adds r0, r1 bl EventObjectClearHeldMovementIfFinished 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 FreezeEventObjects 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, =gFieldCallback 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, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, =gScanlineEffectRegBuffers 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, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, =gScanlineEffectRegBuffers 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 ScanlineEffect_Stop movs r0, 0x2 strh r0, [r4] b _080AFEC6 .pool _080AFEB4: adds r0, r5, 0 bl DestroyTask b _080AFEC6 _080AFEBC: bl ScanlineEffect_Clear 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, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, =gScanlineEffectRegBuffers 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, =gScanlineEffect ldrb r1, [r0, 0x14] lsls r0, r1, 4 subs r0, r1 lsls r0, 7 ldr r1, =gScanlineEffectRegBuffers 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 ScanlineEffect_Stop movs r0, 0x2 strh r0, [r4] b _080AFF8A .pool _080AFF78: adds r0, r5, 0 bl DestroyTask b _080AFF8A _080AFF80: bl ScanlineEffect_Clear 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 Overworld_GetFlashLevel 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, =gScanlineEffectRegBuffers 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, =gScanlineEffectRegBuffers 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 FreezeEventObjects 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 UnfreezeEventObjects 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 FreezeEventObjects 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, =CB2_LoadMap 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, =gFieldCallback 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, =gFieldCallback 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, =gScanlineEffectRegBuffers 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 ScanlineEffect_SetParams 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, =gSpecialVar_Result 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 Overworld_FadeOutMapMusic 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.