diff options
Diffstat (limited to 'asm/field_effect.s')
-rw-r--r-- | asm/field_effect.s | 8032 |
1 files changed, 8032 insertions, 0 deletions
diff --git a/asm/field_effect.s b/asm/field_effect.s index aa3359a7d..cb549efed 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -498,4 +498,8036 @@ _080B5E68: bx r1 thumb_func_end FieldEffectActiveListContains + thumb_func_start sub_80B5E6C +sub_80B5E6C: @ 80B5E6C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r9, r3 + ldr r7, [sp, 0x34] + lsls r4, 24 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsrs r4, 21 + ldr r3, =gTrainerFrontPicPaletteTable + mov r8, r3 + add r8, r4 + mov r0, r8 + adds r1, r7, 0 + bl LoadCompressedObjectPaletteOverrideBuffer + ldr r0, =gTrainerFrontPicTable + adds r4, r0 + adds r0, r4, 0 + adds r1, r7, 0 + bl LoadCompressedObjectPicOverrideBuffer + mov r1, sp + ldrh r0, [r4, 0x6] + movs r2, 0 + strh r0, [r1] + mov r3, r8 + ldrh r0, [r3, 0x4] + strh r0, [r1, 0x2] + ldr r0, =gNewGameBirchOamAttributes + str r0, [sp, 0x4] + ldr r0, =gDummyObjectImageAnimTable + str r0, [sp, 0x8] + str r2, [sp, 0xC] + ldr r0, =gDummyObjectRotScalAnimTable + str r0, [sp, 0x10] + ldr r0, =DummyObjectCallback + str r0, [sp, 0x14] + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + mov r0, sp + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, r9 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B5E6C + + thumb_func_start sub_80B5F0C +sub_80B5F0C: @ 80B5F0C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r1, r2, 0 + lsls r4, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r0, =gTrainerFrontPicTable + lsrs r4, 21 + adds r0, r4, r0 + ldr r0, [r0] + bl LZDecompressVram + ldr r0, =gTrainerFrontPicPaletteTable + adds r4, r0 + ldr r0, [r4] + adds r1, r5, 0 + movs r2, 0x20 + bl decompress_palette + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B5F0C + + thumb_func_start AddNewGameBirchObject +AddNewGameBirchObject: @ 80B5F44 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + ldr r0, =gNewGameBirchObjectPaletteInfo + bl LoadTaggedObjectPalette + ldr r0, =gNewGameBirchObjectTemplate + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end AddNewGameBirchObject + + thumb_func_start sub_80B5F84 +sub_80B5F84: @ 80B5F84 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 16 + lsrs r0, 16 + movs r3, 0x80 + lsls r3, 8 + lsls r1, 16 + asrs r1, 16 + str r1, [sp] + lsls r2, 16 + asrs r2, 16 + str r2, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + ldr r1, =gMonPaletteTable + lsls r4, r0, 3 + adds r4, r1 + ldrh r1, [r4, 0x4] + str r1, [sp, 0xC] + movs r1, 0 + adds r2, r3, 0 + movs r3, 0x1 + bl sub_818D7D8 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r4, 0x4] + bl IndexOfObjectPaletteTag + adds r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + bl sub_80AC3F8 + ldr r0, =0x0000ffff + cmp r5, r0 + beq _080B5FDC + lsls r0, r5, 24 + lsrs r0, 24 + b _080B5FDE + .pool +_080B5FDC: + movs r0, 0x40 +_080B5FDE: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B5F84 + + thumb_func_start sub_80B5FE8 +sub_80B5FE8: @ 80B5FE8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x10 + adds r6, r0, 0 + mov r9, r1 + mov r10, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x2C] + lsls r6, 16 + lsrs r6, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + bl sub_806E7CC + mov r8, r0 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + mov r1, r8 + ldrh r0, [r1, 0x4] + str r0, [sp, 0xC] + adds r0, r6, 0 + mov r1, r9 + mov r2, r10 + movs r3, 0x1 + bl sub_818D7D8 + lsls r0, 16 + lsrs r4, r0, 16 + mov r1, r8 + ldrh r0, [r1, 0x4] + bl IndexOfObjectPaletteTag + adds r0, 0x10 + lsls r0, 24 + lsrs r0, 24 + bl sub_80AC3F8 + ldr r0, =0x0000ffff + cmp r4, r0 + beq _080B605C + lsls r0, r4, 24 + lsrs r0, 24 + b _080B605E + .pool +_080B605C: + movs r0, 0x40 +_080B605E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80B5FE8 + + thumb_func_start sub_80B6070 +sub_80B6070: @ 80B6070 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl sub_80AC428 + ldrb r0, [r4, 0x1] + lsls r0, 30 + cmp r0, 0 + beq _080B608E + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl rotscale_free_entry +_080B608E: + adds r0, r5, 0 + bl sub_818D820 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B6070 + + thumb_func_start sub_80B609C +sub_80B609C: @ 80B609C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 16 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r4, =gUnknown_02037714 + lsrs r0, 15 + adds r4, r0, r4 + ldrh r4, [r4] + movs r5, 0x1F + mov r9, r5 + mov r8, r4 + mov r6, r8 + ands r6, r5 + mov r8, r6 + movs r6, 0xF8 + lsls r6, 2 + ands r6, r4 + lsrs r6, 5 + movs r5, 0xF8 + lsls r5, 7 + ands r4, r5 + lsrs r4, 10 + mov r7, r9 + mov r5, r8 + subs r7, r5 + mov r12, r7 + mov r7, r12 + muls r7, r1 + adds r1, r7, 0 + asrs r1, 4 + add r8, r1 + mov r5, r9 + subs r1, r5, r6 + muls r1, r2 + asrs r1, 4 + adds r6, r1 + subs r5, r4 + mov r9, r5 + mov r1, r9 + muls r1, r3 + asrs r1, 4 + adds r4, r1 + mov r7, r8 + lsls r7, 16 + lsls r6, 21 + orrs r6, r7 + lsls r4, 26 + orrs r4, r6 + lsrs r4, 16 + ldr r1, =gUnknown_02037B14 + adds r0, r1 + strh r4, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B609C + + thumb_func_start sub_80B6128 +sub_80B6128: @ 80B6128 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 16 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r4, =gUnknown_02037714 + lsrs r0, 15 + adds r4, r0, r4 + ldrh r4, [r4] + movs r5, 0x1F + mov r8, r5 + mov r6, r8 + ands r6, r4 + mov r8, r6 + movs r5, 0xF8 + lsls r5, 2 + ands r5, r4 + lsrs r5, 5 + movs r6, 0xF8 + lsls r6, 7 + ands r4, r6 + lsrs r4, 10 + mov r6, r8 + muls r6, r1 + adds r1, r6, 0 + asrs r1, 4 + mov r6, r8 + subs r6, r1 + adds r1, r5, 0 + muls r1, r2 + asrs r1, 4 + subs r5, r1 + adds r1, r4, 0 + muls r1, r3 + asrs r1, 4 + subs r4, r1 + lsls r6, 16 + lsls r5, 21 + orrs r5, r6 + lsls r4, 26 + orrs r4, r5 + lsrs r4, 16 + ldr r1, =gUnknown_02037B14 + adds r0, r1 + strh r4, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6128 + + thumb_func_start sub_80B61A0 +sub_80B61A0: @ 80B61A0 + push {r4,lr} + bl calc_player_party_count + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =sub_80B61E4 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r1, r0 + strh r4, [r1, 0xA] + movs r0, 0x5D + strh r0, [r1, 0xC] + movs r0, 0x24 + strh r0, [r1, 0xE] + movs r0, 0x7C + strh r0, [r1, 0x10] + movs r0, 0x18 + strh r0, [r1, 0x12] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B61A0 + + thumb_func_start sub_80B61E4 +sub_80B61E4: @ 80B61E4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r1, r0 + ldr r2, =gUnknown_0855C364 + movs r3, 0x8 + ldrsh r0, [r1, r3] + lsls r0, 2 + adds r0, r2 + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B61E4 + + thumb_func_start sub_80B6214 +sub_80B6214: @ 80B6214 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r3, 0xE + ldrsh r2, [r4, r3] + movs r3, 0x1 + bl sub_80B646C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + movs r1, 0x10 + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl sub_80B6850 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x16] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B6214 + + thumb_func_start sub_80B6250 +sub_80B6250: @ 80B6250 + push {r4,lr} + adds r2, r0, 0 + ldr r3, =gUnknown_02020630 + movs r1, 0x14 + ldrsh r0, [r2, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r4, 0x2E + ldrsh r0, [r1, r4] + cmp r0, 0x1 + ble _080B6282 + movs r0, 0x16 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x2E] + adds r1, 0x1 + strh r1, [r0, 0x2E] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_080B6282: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6250 + + thumb_func_start sub_80B628C +sub_80B628C: @ 80B628C + push {lr} + adds r3, r0, 0 + ldr r2, =gUnknown_02020630 + movs r0, 0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0x4 + ble _080B62AC + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B62AC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B628C + + thumb_func_start sub_80B62B4 +sub_80B62B4: @ 80B62B4 + push {lr} + ldr r2, =gUnknown_02020630 + movs r3, 0x14 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x6 + ble _080B62E6 + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles + movs r0, 0x19 + bl FieldEffectActiveListRemove + ldr r0, =sub_80B61E4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B62E6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B62B4 + + thumb_func_start sub_80B62F4 +sub_80B62F4: @ 80B62F4 + push {r4,lr} + bl calc_player_party_count + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =sub_80B6330 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r1, r0 + strh r4, [r1, 0xA] + movs r0, 0x75 + strh r0, [r1, 0xC] + movs r0, 0x34 + strh r0, [r1, 0xE] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B62F4 + + thumb_func_start sub_80B6330 +sub_80B6330: @ 80B6330 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r1, r0 + ldr r2, =gUnknown_0855C374 + movs r3, 0x8 + ldrsh r0, [r1, r3] + lsls r0, 2 + adds r0, r2 + ldr r2, [r0] + adds r0, r1, 0 + bl _call_via_r2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6330 + + thumb_func_start sub_80B6360 +sub_80B6360: @ 80B6360 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r3, 0xE + ldrsh r2, [r4, r3] + movs r3, 0 + bl sub_80B646C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x14] + ldr r0, =sub_80B6330 + bl FindTaskIdByFunc + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x78 + movs r2, 0x18 + movs r3, 0 + bl sub_80B68EC + adds r0, r4, 0 + movs r1, 0x28 + movs r2, 0x8 + movs r3, 0x1 + bl sub_80B68EC + adds r0, r4, 0 + movs r1, 0x48 + movs r2, 0x8 + movs r3, 0x1 + bl sub_80B68EC + adds r0, r4, 0 + movs r1, 0xA8 + movs r2, 0x8 + movs r3, 0x1 + bl sub_80B68EC + adds r0, r4, 0 + movs r1, 0xC8 + movs r2, 0x8 + movs r3, 0x1 + bl sub_80B68EC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6360 + + thumb_func_start sub_80B63D4 +sub_80B63D4: @ 80B63D4 + push {lr} + adds r3, r0, 0 + ldr r2, =gUnknown_02020630 + movs r0, 0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0x1 + ble _080B63FA + ldrh r0, [r3, 0x26] + adds r0, 0x1 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B63FA: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B63D4 + + thumb_func_start sub_80B6404 +sub_80B6404: @ 80B6404 + push {lr} + adds r3, r0, 0 + ldr r2, =gUnknown_02020630 + movs r0, 0x14 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0x4 + ble _080B6424 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B6424: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6404 + + thumb_func_start sub_80B642C +sub_80B642C: @ 80B642C + push {lr} + ldr r2, =gUnknown_02020630 + movs r3, 0x14 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x6 + ble _080B645E + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles + movs r0, 0x3E + bl FieldEffectActiveListRemove + ldr r0, =sub_80B6330 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B645E: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B642C + + thumb_func_start sub_80B646C +sub_80B646C: @ 80B646C + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, =sub_80B64C0 + bl obj_add_empty_with_callback + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, =gUnknown_02020630 + adds r1, r2 + strh r4, [r1, 0x24] + strh r5, [r1, 0x26] + strh r6, [r1, 0x38] + mov r2, r8 + strh r2, [r1, 0x3A] + strh r0, [r1, 0x3C] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B646C + + thumb_func_start sub_80B64C0 +sub_80B64C0: @ 80B64C0 + push {lr} + ldr r2, =gUnknown_0855C384 + movs r3, 0x2E + ldrsh r1, [r0, r3] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B64C0 + + thumb_func_start sub_80B64DC +sub_80B64DC: @ 80B64DC + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B64F4 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B6550 +_080B64F4: + movs r0, 0x19 + strh r0, [r4, 0x30] + ldr r0, =gUnknown_0855C304 + ldr r1, =gUnknown_0855C3A4 + movs r2, 0x32 + ldrsh r3, [r4, r2] + lsls r3, 2 + adds r3, r1 + ldrh r1, [r4, 0x24] + ldrh r2, [r3] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r4, 0x26] + ldrh r3, [r3, 0x2] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl AddObjectToBack + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_02020630 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldrh r0, [r4, 0x3C] + strh r0, [r1, 0x2E] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x3A] + subs r0, 0x1 + strh r0, [r4, 0x3A] + movs r0, 0x17 + bl audio_play +_080B6550: + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B6562 + movs r0, 0x20 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080B6562: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B64DC + + thumb_func_start sub_80B6574 +sub_80B6574: @ 80B6574 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bne _080B65A4 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + movs r0, 0x8 + strh r0, [r1, 0x30] + strh r2, [r1, 0x32] + strh r2, [r1, 0x34] + movs r2, 0x38 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B65A4 + movs r0, 0xB8 + lsls r0, 1 + bl fanfare_play +_080B65A4: + pop {r0} + bx r0 + thumb_func_end sub_80B6574 + + thumb_func_start sub_80B65A8 +sub_80B65A8: @ 80B65A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + ldrh r0, [r7, 0x30] + subs r0, 0x1 + strh r0, [r7, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B65D8 + movs r0, 0x8 + strh r0, [r7, 0x30] + ldrh r0, [r7, 0x32] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r7, 0x32] + cmp r0, 0 + bne _080B65D8 + ldrh r0, [r7, 0x34] + adds r0, 0x1 + strh r0, [r7, 0x34] +_080B65D8: + ldrh r4, [r7, 0x32] + adds r4, 0x3 + movs r0, 0x3 + mov r8, r0 + mov r1, r8 + ands r4, r1 + ldr r3, =0x00001007 + mov r10, r3 + mov r0, r10 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x84 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldr r6, =gUnknown_0855C3BC + adds r1, r4, r6 + ldrb r1, [r1] + ldr r5, =gUnknown_0855C3C0 + adds r2, r4, r5 + ldrb r2, [r2] + ldr r3, =gUnknown_0855C3C4 + mov r9, r3 + add r4, r9 + ldrb r3, [r4] + bl sub_80B609C + ldrh r4, [r7, 0x32] + adds r4, 0x2 + mov r0, r8 + ands r4, r0 + mov r0, r10 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x83 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + adds r1, r4, r6 + ldrb r1, [r1] + adds r2, r4, r5 + ldrb r2, [r2] + add r4, r9 + ldrb r3, [r4] + bl sub_80B609C + ldrh r4, [r7, 0x32] + adds r4, 0x1 + mov r3, r8 + ands r4, r3 + mov r0, r10 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x81 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + adds r1, r4, r6 + ldrb r1, [r1] + adds r2, r4, r5 + ldrb r2, [r2] + add r4, r9 + ldrb r3, [r4] + bl sub_80B609C + ldrh r4, [r7, 0x32] + lsls r4, 24 + lsrs r4, 24 + mov r0, r10 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r3, =0x01050000 + adds r0, r3 + lsrs r0, 16 + adds r6, r4, r6 + ldrb r6, [r6] + adds r5, r4, r5 + ldrb r5, [r5] + add r4, r9 + ldrb r4, [r4] + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + mov r0, r10 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r1, =0x01030000 + adds r0, r1 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + movs r3, 0x34 + ldrsh r0, [r7, r3] + cmp r0, 0x2 + ble _080B66C2 + ldrh r0, [r7, 0x2E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r7, 0x2E] + movs r0, 0x8 + strh r0, [r7, 0x30] + strh r1, [r7, 0x32] +_080B66C2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B65A8 + + thumb_func_start sub_80B66E8 +sub_80B66E8: @ 80B66E8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B6718 + movs r0, 0x8 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + movs r1, 0x3 + ands r0, r1 + strh r0, [r2, 0x32] + cmp r0, 0x3 + bne _080B6718 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + movs r0, 0x1E + strh r0, [r2, 0x30] +_080B6718: + ldrh r4, [r2, 0x32] + lsls r4, 24 + lsrs r4, 24 + ldr r0, =0x00001007 + mov r8, r0 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x84 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldr r1, =gUnknown_0855C3BC + adds r1, r4, r1 + ldrb r6, [r1] + ldr r1, =gUnknown_0855C3C0 + adds r1, r4, r1 + ldrb r5, [r1] + ldr r1, =gUnknown_0855C3C4 + adds r4, r1 + ldrb r4, [r4] + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + mov r0, r8 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x83 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + mov r0, r8 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + movs r1, 0x81 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + mov r0, r8 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r1, =0x01050000 + adds r0, r1 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + mov r0, r8 + bl IndexOfObjectPaletteTag + lsls r0, 24 + lsrs r0, 4 + ldr r1, =0x01030000 + adds r0, r1 + lsrs r0, 16 + adds r1, r6, 0 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80B609C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B66E8 + + thumb_func_start sub_80B67DC +sub_80B67DC: @ 80B67DC + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B67F2 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] +_080B67F2: + pop {r0} + bx r0 + thumb_func_end sub_80B67DC + + thumb_func_start sub_80B67F8 +sub_80B67F8: @ 80B67F8 + ldrh r1, [r0, 0x2E] + adds r1, 0x1 + strh r1, [r0, 0x2E] + bx lr + thumb_func_end sub_80B67F8 + + thumb_func_start sub_80B6800 +sub_80B6800: @ 80B6800 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B6816 + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + beq _080B681C +_080B6816: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_080B681C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B6800 + + thumb_func_start nullsub_97 +nullsub_97: @ 80B6824 + bx lr + thumb_func_end nullsub_97 + + thumb_func_start sub_80B6828 +sub_80B6828: @ 80B6828 + push {lr} + adds r3, r0, 0 + ldr r2, =gUnknown_02020630 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0x4 + ble _080B6848 + adds r0, r3, 0 + bl FieldEffectFreeGraphicsResources +_080B6848: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6828 + + thumb_func_start sub_80B6850 +sub_80B6850: @ 80B6850 + push {r4,lr} + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, =gUnknown_0855C31C + lsls r3, 16 + asrs r3, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r3, 0 + movs r3, 0 + bl AddObjectToBack + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x5] + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldr r1, =gUnknown_0855C2AC + bl SetSpriteOamTables_NoPriorityFromTable + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6850 + + thumb_func_start sub_80B68AC +sub_80B68AC: @ 80B68AC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B68D0 + movs r0, 0 + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartObjectImageAnim +_080B68D0: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B68E4 + adds r0, r4, 0 + bl FieldEffectFreeGraphicsResources +_080B68E4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B68AC + + thumb_func_start sub_80B68EC +sub_80B68EC: @ 80B68EC + push {r4,r5,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + cmp r3, 0 + bne _080B6934 + ldr r0, =gUnknown_0855C334 + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl AddObjectToBack + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + ldr r1, =gUnknown_0855C2C4 + bl SetSpriteOamTables_NoPriorityFromTable + b _080B6948 + .pool +_080B6934: + ldr r0, =gUnknown_0855C34C + lsls r1, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl AddObjectToBack + lsls r0, 24 + lsrs r4, r0, 24 +_080B6948: + ldr r1, =gUnknown_02020630 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + strh r5, [r0, 0x2E] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B68EC + + thumb_func_start sub_80B6970 +sub_80B6970: @ 80B6970 + push {lr} + adds r3, r0, 0 + ldr r2, =gTasks + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B69C6 + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080B699E + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B69C0 +_080B699E: + movs r0, 0x10 + strh r0, [r3, 0x30] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] +_080B69C0: + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] +_080B69C6: + movs r2, 0x32 + ldrsh r0, [r3, r2] + cmp r0, 0x7F + ble _080B69D4 + adds r0, r3, 0 + bl FieldEffectFreeGraphicsResources +_080B69D4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6970 + + thumb_func_start sub_80B69DC +sub_80B69DC: @ 80B69DC + push {lr} + ldr r0, =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + ldr r1, =gUnknown_03005DAC + ldr r0, =mapldr_080842E8 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B69DC + + thumb_func_start mapldr_080842E8 +mapldr_080842E8: @ 80B69FC + push {lr} + bl pal_fill_black + ldr r0, =task00_8084310 + movs r1, 0 + bl CreateTask + bl script_env_2_enable + bl player_bitmagic + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end mapldr_080842E8 + + thumb_func_start task00_8084310 +task00_8084310: @ 80B6A24 + push {r4-r6,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 r0, 0x8 + ldrsh r6, [r4, r0] + cmp r6, 0 + bne _080B6A64 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _080B6A8A + bl brm_get_pokemon_selection + ldr r1, =gUnknown_02038C08 + lsls r0, 24 + lsrs r0, 24 + str r0, [r1] + cmp r0, 0x5 + ble _080B6A58 + str r6, [r1] +_080B6A58: + movs r0, 0x1F + bl FieldEffectStart + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6A64: + movs r0, 0x1F + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B6A8A + bl flag_var_implications_of_teleport_ + bl warp_in + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r1, =gUnknown_03005DAC + ldr r0, =mapldr_08084390 + str r0, [r1] + adds r0, r5, 0 + bl DestroyTask +_080B6A8A: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task00_8084310 + + thumb_func_start mapldr_08084390 +mapldr_08084390: @ 80B6AA4 + push {r4,lr} + bl sub_8085784 + bl pal_fill_black + ldr r0, =c3_080843F8 + movs r1, 0 + bl CreateTask + ldr r4, =gUnknown_02037350 + ldr r3, =gUnknown_02037590 + ldrb r1, [r3, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + ldrb r1, [r3] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B6AE6 + ldrb r1, [r3, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x3 + bl FieldObjectTurn +_080B6AE6: + bl script_env_2_enable + bl player_bitmagic + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end mapldr_08084390 + + thumb_func_start c3_080843F8 +c3_080843F8: @ 80B6B0C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + 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, 0 + bne _080B6B3E + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B6B58 + movs r0, 0x20 + bl FieldEffectStart + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6B3E: + movs r0, 0x20 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B6B58 + bl script_env_2_disable + bl sub_809757C + adds r0, r5, 0 + bl DestroyTask +_080B6B58: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end c3_080843F8 + + thumb_func_start sub_80B6B68 +sub_80B6B68: @ 80B6B68 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl script_env_2_enable + bl player_bitmagic + ldr r0, =sub_80B6B94 + movs r1, 0 + bl CreateTask + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6B68 + + thumb_func_start sub_80B6B94 +sub_80B6B94: @ 80B6B94 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r4, r1, r0 + ldr r5, =gUnknown_0855C3C8 +_080B6BA6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B6BA6 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6B94 + + thumb_func_start sub_80B6BCC +sub_80B6BCC: @ 80B6BCC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r9, r0 + ldr r6, =gUnknown_02037590 + ldrb r0, [r6, 0x5] + lsls r5, r0, 3 + adds r5, r0 + lsls r5, 2 + ldr r0, =gUnknown_02037350 + mov r8, r0 + add r5, r8 + ldrb r0, [r6, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + bl CameraObjectReset2 + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r0, 0x1 + strb r0, [r6, 0x6] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetSpecialAnim + adds r3, r4, 0 + adds r3, 0x42 + ldrb r0, [r3] + lsrs r0, 6 + mov r1, r9 + strh r0, [r1, 0x10] + ldrb r0, [r5, 0x3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r5, 0x3] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + ldrb r1, [r3] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r3] + mov r1, r9 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x1 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6BCC + + thumb_func_start sub_80B6C74 +sub_80B6C74: @ 80B6C74 + push {r4,lr} + adds r4, r0, 0 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _080B6C88 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6C88: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6C74 + + thumb_func_start sub_80B6C90 +sub_80B6C90: @ 80B6C90 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, =gUnknown_02037590 + ldrb r0, [r6, 0x4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + adds r0, r2, 0 + adds r0, 0x29 + movs r4, 0 + ldrsb r4, [r0, r4] + lsls r0, r4, 17 + negs r0, r0 + ldrh r1, [r2, 0x22] + ldr r3, =gUnknown_02021BBE + adds r1, r4 + ldrh r3, [r3] + adds r1, r3 + asrs r0, 16 + adds r0, r1 + negs r0, r0 + movs r1, 0 + strh r0, [r2, 0x26] + movs r0, 0x1 + strh r0, [r5, 0xA] + strh r1, [r5, 0xC] + ldr r2, =gUnknown_02037350 + ldrb r0, [r6, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + movs r0, 0x2B + bl audio_play + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6C90 + + thumb_func_start sub_80B6D04 +sub_80B6D04: @ 80B6D04 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r2, =gUnknown_02037590 + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r6, r0, r1 + ldrb r1, [r2, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r5, r0, r1 + ldrh r0, [r4, 0xA] + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r2, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bgt _080B6D46 + ldrh r1, [r4, 0xC] + adds r0, r2, r1 + strh r0, [r4, 0xC] + movs r1, 0xF + ands r0, r1 + cmp r0, 0 + beq _080B6D46 + lsls r0, r2, 1 + strh r0, [r4, 0xA] +_080B6D46: + ldrh r2, [r4, 0xE] + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B6D84 + movs r0, 0x26 + ldrsh r1, [r5, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + blt _080B6D84 + adds r0, r2, 0x1 + strh r0, [r4, 0xE] + ldrb r1, [r6, 0x3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r6, 0x3] + ldrb r1, [r4, 0x10] + adds r3, r5, 0 + adds r3, 0x42 + lsls r1, 6 + ldrb r2, [r3] + movs r0, 0x3F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r6] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r6] +_080B6D84: + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080B6DA8 + movs r0, 0xD6 + bl audio_play + ldrb r0, [r6] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0x20 + orrs r0, r1 + strb r0, [r6] + movs r0, 0 + strh r0, [r5, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6DA8: + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6D04 + + thumb_func_start sub_80B6DBC +sub_80B6DBC: @ 80B6DBC + push {lr} + ldrh r1, [r0, 0x8] + adds r1, 0x1 + movs r2, 0 + strh r1, [r0, 0x8] + movs r1, 0x4 + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_80B6DBC + + thumb_func_start sub_80B6DD8 +sub_80B6DD8: @ 80B6DD8 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning + ldrh r0, [r4, 0xA] + negs r2, r0 + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _080B6E00 + lsls r0, r2, 16 + asrs r0, 17 + strh r0, [r4, 0xA] +_080B6E00: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B6E0E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6E0E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6DD8 + + thumb_func_start sub_80B6E18 +sub_80B6E18: @ 80B6E18 + push {lr} + ldr r1, =gUnknown_02037590 + movs r0, 0 + strb r0, [r1, 0x6] + bl script_env_2_disable + bl CameraObjectReset1 + bl sub_809757C + bl InstallCameraPanAheadCallback + ldr r0, =sub_80B6B94 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6E18 + + thumb_func_start sub_80B6E4C +sub_80B6E4C: @ 80B6E4C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =sub_80B6E88 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0xA] + cmp r4, 0x6A + bne _080B6E78 + movs r0, 0x1 + strh r0, [r1, 0xA] +_080B6E78: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6E4C + + thumb_func_start sub_80B6E88 +sub_80B6E88: @ 80B6E88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r4, r1, r0 + ldr r5, =gUnknown_0855C3E4 +_080B6E9A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B6E9A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6E88 + + thumb_func_start sub_80B6EC0 +sub_80B6EC0: @ 80B6EC0 + push {r4,lr} + adds r4, r0, 0 + bl player_bitmagic + bl CameraObjectReset2 + ldrb r0, [r4, 0xA] + bl sub_80E1558 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6EC0 + + thumb_func_start sub_80B6EE0 +sub_80B6EE0: @ 80B6EE0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B6F0A + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B6F3E +_080B6F0A: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldrh r0, [r5, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r5, 0x8] + strh r1, [r5, 0xC] + strh r1, [r5, 0xE] + ldrb r0, [r5, 0xA] + cmp r0, 0 + bne _080B6F38 + movs r0, 0x4 + strh r0, [r5, 0x8] +_080B6F38: + movs r0, 0x50 + bl audio_play +_080B6F3E: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B6EE0 + + thumb_func_start sub_80B6F50 +sub_80B6F50: @ 80B6F50 + push {r4,lr} + adds r4, r0, 0 + bl sub_80B6FB8 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080B6F6A + bl sub_80B7050 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6F6A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6F50 + + thumb_func_start sub_80B6F74 +sub_80B6F74: @ 80B6F74 + push {lr} + bl sub_80B6FB8 + bl sub_80B7060 + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B6F74 + + thumb_func_start sub_80B6F84 +sub_80B6F84: @ 80B6F84 + push {r4,lr} + adds r4, r0, 0 + bl sub_80B7004 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080B6F9E + bl sub_80B7050 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B6F9E: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B6F84 + + thumb_func_start sub_80B6FA8 +sub_80B6FA8: @ 80B6FA8 + push {lr} + bl sub_80B7004 + bl sub_80B7060 + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80B6FA8 + + thumb_func_start sub_80B6FB8 +sub_80B6FB8: @ 80B6FB8 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r0, 0x84 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r0, 0x94 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B6FF6 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] +_080B6FF6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B6FB8 + + thumb_func_start sub_80B7004 +sub_80B7004: @ 80B7004 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r0, 0x7C + bl Cos + strh r0, [r4, 0x24] + movs r0, 0xC + ldrsh r1, [r5, r0] + movs r0, 0x76 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B7042 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] +_080B7042: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7004 + + thumb_func_start sub_80B7050 +sub_80B7050: @ 80B7050 + push {lr} + bl music_something + bl sub_80AF0B4 + pop {r0} + bx r0 + thumb_func_end sub_80B7050 + + thumb_func_start sub_80B7060 +sub_80B7060: @ 80B7060 + push {lr} + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B709C + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B709C + bl sub_80E1570 + bl warp_in + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80B70B4 + str r0, [r1] + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r0, =sub_80B6E88 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B709C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7060 + + thumb_func_start sub_80B70B4 +sub_80B70B4: @ 80B70B4 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl script_env_2_enable + ldr r0, =sub_80B70DC + movs r1, 0 + bl CreateTask + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B70B4 + + thumb_func_start sub_80B70DC +sub_80B70DC: @ 80B70DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r4, r1, r0 + ldr r5, =gUnknown_0855C3FC +_080B70EE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B70EE + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B70DC + + thumb_func_start sub_80B7114 +sub_80B7114: @ 80B7114 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + bl CameraObjectReset2 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02037350 + adds r4, r0 + movs r0, 0x4 + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + 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 r1, r0, 24 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x10 + strh r0, [r5, 0xA] + cmp r1, 0x6B + bne _080B717C + movs r1, 0x1 + movs r0, 0x3 + strh r0, [r5, 0x8] + b _080B717E + .pool +_080B717C: + movs r1, 0 +_080B717E: + adds r0, r1, 0 + bl sub_80E1558 + movs r0, 0x1 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B7114 + + thumb_func_start sub_80B7190 +sub_80B7190: @ 80B7190 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x84 + bl Cos + strh r0, [r4, 0x24] + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x94 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7190 + + thumb_func_start sub_80B71D0 +sub_80B71D0: @ 80B71D0 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r5, r0, r1 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0x84 + bl Cos + strh r0, [r5, 0x24] + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0x94 + bl Sin + strh r0, [r5, 0x26] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B720E + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] +_080B720E: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B721E + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + movs r0, 0x5 + strh r0, [r4, 0x8] +_080B721E: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B71D0 + + thumb_func_start sub_80B7230 +sub_80B7230: @ 80B7230 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x7C + bl Cos + strh r0, [r4, 0x24] + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x76 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7230 + + thumb_func_start sub_80B7270 +sub_80B7270: @ 80B7270 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r5, r0, r1 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0x7C + bl Cos + strh r0, [r5, 0x24] + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0x76 + bl Sin + strh r0, [r5, 0x26] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B72AE + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] +_080B72AE: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B72C0 + strh r0, [r5, 0x24] + strh r0, [r5, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B72C0: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7270 + + thumb_func_start sub_80B72D0 +sub_80B72D0: @ 80B72D0 + push {r4,lr} + adds r4, r0, 0 + bl sub_80E1584 + lsls r0, 24 + cmp r0, 0 + bne _080B72EC + bl sub_80E1570 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _080B72EE +_080B72EC: + movs r0, 0 +_080B72EE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B72D0 + + thumb_func_start sub_80B72F4 +sub_80B72F4: @ 80B72F4 + push {r4,lr} + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B7338 + bl CameraObjectReset1 + bl script_env_2_disable + movs r0, 0x4 + bl GetGoSpeed0AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldr r0, =sub_80B70DC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B7338: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B72F4 + + thumb_func_start oei_waterfall +oei_waterfall: @ 80B734C + push {r4,lr} + ldr r4, =sub_80B7384 + adds r0, r4, 0 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, =gUnknown_02038C08 + ldr r2, [r2] + strh r2, [r1, 0xA] + bl _call_via_r4 + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end oei_waterfall + + thumb_func_start sub_80B7384 +sub_80B7384: @ 80B7384 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0855C418 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B7396: + movs r0, 0x8 + ldrsh r2, [r4, r0] + lsls r2, 2 + adds r2, r5 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r1, r0 + ldr r2, [r2] + adds r0, r4, 0 + bl _call_via_r2 + lsls r0, 24 + cmp r0, 0 + bne _080B7396 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7384 + + thumb_func_start sub_80B73D0 +sub_80B73D0: @ 80B73D0 + push {r4,lr} + adds r4, r0, 0 + bl script_env_2_enable + ldr r1, =gUnknown_02037590 + movs r0, 0x1 + strb r0, [r1, 0x6] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B73D0 + + thumb_func_start waterfall_1_do_anim_probably +waterfall_1_do_anim_probably: @ 80B73F0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + bl script_env_2_enable + adds r0, r5, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + bne _080B7420 + adds r0, r5, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + ldr r1, =gUnknown_02038C08 + movs r2, 0xA + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, 0x3B + bl FieldEffectStart + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B7420: + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end waterfall_1_do_anim_probably + + thumb_func_start waterfall_2_wait_anim_finish_probably +waterfall_2_wait_anim_finish_probably: @ 80B742C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B7446 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _080B7448 +_080B7446: + movs r0, 0 +_080B7448: + pop {r4} + pop {r1} + bx r1 + thumb_func_end waterfall_2_wait_anim_finish_probably + + thumb_func_start sub_80B7450 +sub_80B7450: @ 80B7450 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0x2 + bl GetSimpleGoAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B7450 + + thumb_func_start sub_80B7478 +sub_80B7478: @ 80B7478 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + bne _080B748E + movs r0, 0 + b _080B74CA +_080B748E: + ldrb r0, [r4, 0x1E] + bl MetatileBehavior_IsWaterfall + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080B74C4 + bl script_env_2_disable + ldr r0, =gUnknown_02037590 + strb r4, [r0, 0x6] + ldr r0, =sub_80B7384 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0x2B + bl FieldEffectActiveListRemove + movs r0, 0 + b _080B74CA + .pool +_080B74C4: + movs r0, 0x3 + strh r0, [r5, 0x8] + movs r0, 0x1 +_080B74CA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80B7478 + + thumb_func_start sub_80B74D0 +sub_80B74D0: @ 80B74D0 + push {r4,lr} + ldr r4, =sub_80B750C + adds r0, r4, 0 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r3, =gUnknown_02038C08 + ldr r2, [r3] + strh r2, [r1, 0x26] + ldr r2, [r3, 0x4] + strh r2, [r1, 0x24] + bl _call_via_r4 + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B74D0 + + thumb_func_start sub_80B750C +sub_80B750C: @ 80B750C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =gUnknown_0855C42C + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B751E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080B751E + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B750C + + thumb_func_start dive_1_lock +dive_1_lock: @ 80B7544 + ldr r2, =gUnknown_02037590 + movs r1, 0x1 + strb r1, [r2, 0x6] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + movs r0, 0 + bx lr + .pool + thumb_func_end dive_1_lock + + thumb_func_start dive_2_unknown +dive_2_unknown: @ 80B7558 + push {r4,lr} + adds r4, r0, 0 + bl script_env_2_enable + ldr r1, =gUnknown_02038C08 + movs r2, 0x26 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, 0x3B + bl FieldEffectStart + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end dive_2_unknown + + thumb_func_start dive_3_unknown +dive_3_unknown: @ 80B7580 + push {lr} + sub sp, 0x8 + mov r1, sp + adds r1, 0x2 + mov r0, sp + bl PlayerGetDestCoords + movs r0, 0x6 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B75C4 + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1E] + mov r0, sp + bl dive_warp + ldr r0, =sub_80B750C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0x2C + bl FieldEffectActiveListRemove +_080B75C4: + movs r0, 0 + add sp, 0x8 + pop {r1} + bx r1 + .pool + thumb_func_end dive_3_unknown + + thumb_func_start sub_80B75D8 +sub_80B75D8: @ 80B75D8 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =sub_80B75F0 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B75D8 + + thumb_func_start sub_80B75F0 +sub_80B75F0: @ 80B75F0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r6, =gUnknown_0855C438 + ldr r2, =gTasks + ldr r5, =gUnknown_02037590 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B7604: + movs r0, 0x8 + ldrsh r3, [r4, r0] + lsls r3, 2 + adds r3, r6 + ldrb r0, [r5, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r1, r0 + ldrb r0, [r5, 0x4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 + lsls r0, 24 + cmp r0, 0 + bne _080B7604 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B75F0 + + thumb_func_start sub_80B764C +sub_80B764C: @ 80B764C + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + bl player_bitmagic + bl CameraObjectReset2 + movs r0, 0 + bl SetCameraPanningCallback + ldr r0, =gUnknown_02037590 + movs r2, 0x1 + strb r2, [r0, 0x6] + ldrb r0, [r5, 0x3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x3] + strh r2, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B764C + + thumb_func_start sub_80B7684 +sub_80B7684: @ 80B7684 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning + ldrh r0, [r4, 0xA] + negs r0, r0 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080B76B0 + movs r0, 0 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B76B0: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B7684 + + thumb_func_start sub_80B76B8 +sub_80B76B8: @ 80B76B8 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0 + strh r0, [r2, 0x26] + movs r0, 0x1 + strh r0, [r4, 0xE] + ldr r3, =gUnknown_02038C08 + movs r5, 0x10 + ldrsh r0, [r1, r5] + str r0, [r3] + movs r5, 0x12 + ldrsh r0, [r1, r5] + str r0, [r3, 0x4] + adds r0, r2, 0 + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 + str r0, [r3, 0x8] + ldrb r0, [r2, 0x5] + lsls r0, 28 + lsrs r0, 30 + str r0, [r3, 0xC] + movs r0, 0x32 + bl FieldEffectStart + movs r0, 0xB2 + bl audio_play + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B76B8 + + thumb_func_start sub_80B7704 +sub_80B7704: @ 80B7704 + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r5, r2, 0 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning + ldrh r0, [r4, 0xA] + negs r2, r0 + strh r2, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r1, r0, 0x1 + strh r1, [r4, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x11 + bgt _080B773E + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080B7750 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x3 + bgt _080B7750 + lsls r0, r2, 1 + b _080B774E +_080B773E: + movs r0, 0x4 + ands r1, r0 + cmp r1, 0 + bne _080B7750 + lsls r0, r2, 16 + cmp r0, 0 + ble _080B7750 + asrs r0, 17 +_080B774E: + strh r0, [r4, 0xA] +_080B7750: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x6 + ble _080B779C + adds r0, r5, 0 + adds r0, 0x29 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r2, r1, 17 + negs r2, r2 + movs r7, 0x26 + ldrsh r3, [r5, r7] + movs r7, 0x22 + ldrsh r0, [r5, r7] + adds r0, r1 + ldr r1, =gUnknown_02021BBE + movs r7, 0 + ldrsh r1, [r1, r7] + adds r0, r1 + asrs r2, 16 + adds r0, r2 + cmn r3, r0 + ble _080B7798 + ldrh r0, [r5, 0x26] + ldrh r1, [r4, 0xE] + subs r0, r1 + strh r0, [r5, 0x26] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080B779C + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + b _080B779C + .pool +_080B7798: + movs r0, 0x1 + strh r0, [r4, 0x10] +_080B779C: + ldrh r2, [r4, 0x12] + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B77DA + movs r7, 0x26 + ldrsh r1, [r5, r7] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _080B77DA + adds r0, r2, 0x1 + strh r0, [r4, 0x12] + ldrb r0, [r6, 0x3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r6, 0x3] + ldrb r1, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] + adds r2, r5, 0 + adds r2, 0x42 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] +_080B77DA: + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B77F0 + movs r7, 0x10 + ldrsh r0, [r4, r7] + cmp r0, 0 + beq _080B77F0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B77F0: + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80B7704 + + thumb_func_start sub_80B77F8 +sub_80B77F8: @ 80B77F8 + push {r4,lr} + adds r4, r0, 0 + bl music_something + bl sub_80AF0B4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B77F8 + + thumb_func_start sub_80B7814 +sub_80B7814: @ 80B7814 + push {lr} + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B784C + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B784C + bl warp_in + ldr r1, =gUnknown_03005DAC + ldr r0, =mapldr_080851BC + str r0, [r1] + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r0, =sub_80B75F0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B784C: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7814 + + thumb_func_start mapldr_080851BC +mapldr_080851BC: @ 80B7868 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl script_env_2_enable + ldr r0, =gUnknown_03005DAC + movs r1, 0 + str r1, [r0] + ldr r0, =sub_80B7890 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end mapldr_080851BC + + thumb_func_start sub_80B7890 +sub_80B7890: @ 80B7890 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r6, =gUnknown_0855C450 + ldr r2, =gTasks + ldr r5, =gUnknown_02037590 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B78A4: + movs r0, 0x8 + ldrsh r3, [r4, r0] + lsls r3, 2 + adds r3, r6 + ldrb r0, [r5, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r1, r0 + ldrb r0, [r5, 0x4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 + lsls r0, 24 + cmp r0, 0 + bne _080B78A4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7890 + + thumb_func_start sub_80B78EC +sub_80B78EC: @ 80B78EC + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl CameraObjectReset2 + bl player_bitmagic + ldr r1, =gUnknown_02037590 + movs r0, 0x1 + strb r0, [r1, 0x6] + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B78EC + + thumb_func_start sub_80B791C +sub_80B791C: @ 80B791C + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _080B795C + ldr r1, =gUnknown_02038C08 + movs r2, 0x10 + ldrsh r0, [r5, r2] + str r0, [r1] + movs r2, 0x12 + ldrsh r0, [r5, r2] + str r0, [r1, 0x4] + adds r0, r6, 0 + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 + str r0, [r1, 0x8] + ldrb r0, [r6, 0x5] + lsls r0, 28 + lsrs r0, 30 + str r0, [r1, 0xC] + movs r0, 0x31 + bl FieldEffectStart + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B795C: + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B791C + + thumb_func_start sub_80B7968 +sub_80B7968: @ 80B7968 + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + movs r0, 0xA + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bls _080B79B0 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldrb r1, [r4, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + bl CameraObjectReset1 + movs r0, 0xAF + bl audio_play + movs r0, 0x4 + bl sub_8093514 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim +_080B79B0: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7968 + + thumb_func_start sub_80B79BC +sub_80B79BC: @ 80B79BC + push {lr} + adds r0, r1, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B79E6 + ldr r1, =gUnknown_02037590 + movs r0, 0 + strb r0, [r1, 0x6] + bl script_env_2_disable + bl sub_809757C + ldr r0, =sub_80B7890 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B79E6: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B79BC + + thumb_func_start sub_80B79F4 +sub_80B79F4: @ 80B79F4 + push {r4,lr} + ldr r4, =gUnknown_02038C08 + adds r1, r4, 0x4 + adds r0, r4, 0 + movs r2, 0x8 + movs r3, 0x8 + bl sub_80930E0 + ldr r0, =gFieldEffectObjectTemplatePointers + adds r0, 0x84 + ldr r0, [r0] + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0x4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, 0x8] + bl AddObjectToBack + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_02020630 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + movs r1, 0x3 + ldrb r3, [r4, 0xC] + ands r3, r1 + lsls r3, 2 + ldrb r4, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + orrs r1, r3 + strb r1, [r2, 0x5] + adds r2, 0x3E + ldrb r1, [r2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B79F4 + + thumb_func_start sub_80B7A58 +sub_80B7A58: @ 80B7A58 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B7A70 + adds r0, r2, 0 + movs r1, 0x32 + bl FieldEffectStop +_080B7A70: + pop {r0} + bx r0 + thumb_func_end sub_80B7A58 + + thumb_func_start sub_80B7A74 +sub_80B7A74: @ 80B7A74 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, =sub_80B7A8C + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7A74 + + thumb_func_start sub_80B7A8C +sub_80B7A8C: @ 80B7A8C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r6, =gUnknown_0855C460 + ldr r2, =gTasks + ldr r5, =gUnknown_02037590 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080B7AA0: + movs r0, 0x8 + ldrsh r3, [r4, r0] + lsls r3, 2 + adds r3, r6 + ldrb r0, [r5, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02037350 + adds r1, r0 + ldrb r0, [r5, 0x4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 + lsls r0, 24 + cmp r0, 0 + bne _080B7AA0 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7A8C + + thumb_func_start sub_80B7AE8 +sub_80B7AE8: @ 80B7AE8 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl player_bitmagic + bl CameraObjectReset2 + ldr r1, =gUnknown_02037590 + movs r0, 0x1 + strb r0, [r1, 0x6] + ldrb r0, [r4, 0x3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x3] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7AE8 + + thumb_func_start sub_80B7B18 +sub_80B7B18: @ 80B7B18 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + adds r6, r2, 0 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B7B8C + ldrh r1, [r5, 0xA] + movs r2, 0xA + ldrsh r0, [r5, r2] + cmp r0, 0x3 + ble _080B7B6C + ldr r1, =gUnknown_02038C08 + movs r2, 0x10 + ldrsh r0, [r4, r2] + str r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + str r0, [r1, 0x4] + adds r0, r6, 0 + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 + str r0, [r1, 0x8] + ldrb r0, [r6, 0x5] + lsls r0, 28 + lsrs r0, 30 + str r0, [r1, 0xC] + movs r0, 0x31 + bl FieldEffectStart + strh r0, [r5, 0xA] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080B7B8C + .pool +_080B7B6C: + adds r0, r1, 0x1 + strh r0, [r5, 0xA] + ldrb r0, [r4, 0x18] + lsls r0, 28 + lsrs r0, 28 + bl GetStepInPlaceDelay4AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + movs r0, 0x27 + bl audio_play +_080B7B8C: + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80B7B18 + + thumb_func_start sub_80B7B94 +sub_80B7B94: @ 80B7B94 + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + ldr r2, =gUnknown_02020630 + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x2 + bne _080B7BBE + ldrb r0, [r4, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B7BBE: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7B94 + + thumb_func_start sub_80B7BCC +sub_80B7BCC: @ 80B7BCC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x31 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B7BEA + bl music_something + bl sub_80AF0B4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B7BEA: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B7BCC + + thumb_func_start sub_80B7BF4 +sub_80B7BF4: @ 80B7BF4 + push {lr} + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B7C2C + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B7C2C + bl warp_in + ldr r1, =gUnknown_03005DAC + ldr r0, =sub_80B6B68 + str r0, [r1] + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r0, =sub_80B7A8C + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B7C2C: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7BF4 + + thumb_func_start sub_80B7C48 +sub_80B7C48: @ 80B7C48 + push {r4,lr} + ldr r4, =gUnknown_02038C08 + adds r1, r4, 0x4 + adds r0, r4, 0 + movs r2, 0x8 + movs r3, 0x8 + bl sub_80930E0 + ldr r0, =gFieldEffectObjectTemplatePointers + adds r0, 0x80 + ldr r0, [r0] + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0x4 + ldrsh r2, [r4, r3] + ldrb r3, [r4, 0x8] + bl AddObjectToBack + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gUnknown_02020630 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + movs r1, 0x3 + ldrb r3, [r4, 0xC] + ands r3, r1 + lsls r3, 2 + ldrb r4, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r4 + orrs r1, r3 + strb r1, [r2, 0x5] + adds r2, 0x3E + ldrb r1, [r2] + movs r3, 0x2 + orrs r1, r3 + strb r1, [r2] + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B7C48 + + thumb_func_start sub_80B7CAC +sub_80B7CAC: @ 80B7CAC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B7CC4 + adds r0, r2, 0 + movs r1, 0x31 + bl FieldEffectStop +_080B7CC4: + pop {r0} + bx r0 + thumb_func_end sub_80B7CAC + + thumb_func_start sub_80B7CC8 +sub_80B7CC8: @ 80B7CC8 + push {lr} + bl script_env_2_enable + bl player_bitmagic + ldr r0, =sub_80B7CE4 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7CC8 + + thumb_func_start sub_80B7CE4 +sub_80B7CE4: @ 80B7CE4 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C474 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7CE4 + + thumb_func_start sub_80B7D14 +sub_80B7D14: @ 80B7D14 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x40 + strh r0, [r4, 0x24] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7D14 + + thumb_func_start sub_80B7D34 +sub_80B7D34: @ 80B7D34 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldrh r1, [r4, 0x24] + movs r2, 0x24 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B7D60 + subs r0, r1, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080B7D60 + bl music_something + bl sub_80AF0B4 +_080B7D60: + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r5, r0, r1 + adds r0, r5, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B7D86 + adds r0, r5, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B7E40 +_080B7D86: + movs r1, 0x24 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B7DF8 + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B7DF8 + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B7DF8 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetDirection + bl sub_8084E14 + bl warp_in + ldr r1, =gUnknown_03005DAC + ldr r0, =mapldr_080859D4 + str r0, [r1] + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r0, =sub_80B7CE4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _080B7E40 + .pool +_080B7DF8: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B7E0C + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080B7E40 +_080B7E0C: + ldrb r0, [r5, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r0, [r0] + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetSpecialAnim + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0xB + bgt _080B7E34 + adds r0, r1, 0x1 + strh r0, [r4, 0xC] +_080B7E34: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 18 + movs r0, 0x8 + asrs r0, r1 + strh r0, [r4, 0xA] +_080B7E40: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B7D34 + + thumb_func_start mapldr_080859D4 +mapldr_080859D4: @ 80B7E48 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl script_env_2_enable + bl player_bitmagic + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + ldr r0, =sub_80B7E94 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end mapldr_080859D4 + + thumb_func_start sub_80B7E94 +sub_80B7E94: @ 80B7E94 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C484 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7E94 + + thumb_func_start sub_80B7EC4 +sub_80B7EC4: @ 80B7EC4 + push {r4,lr} + adds r4, r0, 0 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _080B7EE2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] +_080B7EE2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B7EC4 + + thumb_func_start sub_80B7EE8 +sub_80B7EE8: @ 80B7EE8 + push {r4-r6,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r6, r0, r1 + ldrh r1, [r5, 0xA] + movs r2, 0xA + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080B7F1A + subs r0, r1, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080B7FAC +_080B7F1A: + adds r0, r6, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B7F32 + adds r0, r6, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B7FC0 +_080B7F32: + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x1F + ble _080B7F7C + movs r2, 0x26 + ldrsh r4, [r5, r2] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _080B7F7C + ldrb r1, [r6, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r6, 0x1] + bl script_env_2_disable + bl sub_809757C + ldr r0, =sub_80B7E94 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + b _080B7FC0 + .pool +_080B7F7C: + ldrb r0, [r6, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r0, [r0] + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl FieldObjectSetSpecialAnim + ldrh r1, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0x1F + bgt _080B7FA4 + adds r0, r1, 0x1 + strh r0, [r5, 0xC] +_080B7FA4: + ldrh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 18 + strh r0, [r5, 0xA] +_080B7FAC: + ldrb r2, [r6, 0x1] + lsls r1, r2, 26 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 5 + subs r0, 0x22 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x1] +_080B7FC0: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80B7EE8 + + thumb_func_start sub_80B7FC8 +sub_80B7FC8: @ 80B7FC8 + push {lr} + ldr r0, =sub_80B7FDC + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7FC8 + + thumb_func_start sub_80B7FDC +sub_80B7FDC: @ 80B7FDC + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C48C + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B7FDC + + thumb_func_start sub_80B800C +sub_80B800C: @ 80B800C + push {r4,lr} + adds r4, r0, 0 + bl script_env_2_enable + bl player_bitmagic + bl CameraObjectReset2 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B800C + + thumb_func_start sub_80B8034 +sub_80B8034: @ 80B8034 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r5, r0, r1 + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B8066 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080B8080 +_080B8066: + ldrb r0, [r5, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r1, [r0] + adds r0, r5, 0 + bl FieldObjectTurn + movs r0, 0x8 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] +_080B8080: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x7 + ble _080B80AE + movs r2, 0x26 + ldrsh r1, [r4, r2] + ldrb r0, [r5, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r1, r0 + bne _080B80AE + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x4 + strh r0, [r4, 0xA] + movs r0, 0x8 + strh r0, [r4, 0xC] + movs r0, 0x1 + strh r0, [r4, 0xE] + movs r0, 0x2D + bl audio_play +_080B80AE: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8034 + + thumb_func_start sub_80B80C4 +sub_80B80C4: @ 80B80C4 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldr r2, =gUnknown_02037590 + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r3, r0, r1 + ldrb r1, [r2, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r5, r0, r1 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bgt _080B810E + movs r0, 0x4 + strh r0, [r4, 0xA] + ldrb r0, [r3, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r1, [r0] + adds r0, r3, 0 + bl FieldObjectTurn +_080B810E: + ldrh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + subs r0, r1 + strh r0, [r5, 0x22] + ldrh r1, [r4, 0xE] + ldrh r2, [r4, 0x10] + adds r0, r1, r2 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _080B813A + movs r0, 0x4 + strh r0, [r4, 0xC] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x7 + bgt _080B813A + lsls r0, r1, 1 + strh r0, [r4, 0xE] +_080B813A: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + ble _080B8168 + ldrb r1, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x5] + adds r2, r5, 0 + adds r2, 0x42 + ldrb r1, [r2] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _080B8168 + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] +_080B8168: + movs r2, 0x10 + ldrsh r0, [r4, r2] + cmp r0, 0xA7 + ble _080B817E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + bl music_something + bl sub_80AF0B4 +_080B817E: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B80C4 + + thumb_func_start sub_80B8198 +sub_80B8198: @ 80B8198 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B81E6 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B81B8 + bl sub_81BE72C + movs r0, 0x1 + strh r0, [r4, 0x12] +_080B81B8: + bl sub_80859A0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B81E6 + bl copy_saved_warp3_bank_and_enter_x_to_warp1 + bl warp_in + ldr r0, =c2_load_new_map + bl SetMainCallback2 + ldr r1, =gUnknown_03005DAC + ldr r0, =mapldr_08085D88 + str r0, [r1] + ldr r0, =sub_80B7FDC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B81E6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8198 + + thumb_func_start mapldr_08085D88 +mapldr_08085D88: @ 80B8200 + push {lr} + bl sub_8085784 + bl pal_fill_for_maplights + bl script_env_2_enable + bl player_bitmagic + ldr r1, =gUnknown_03005DAC + movs r0, 0 + str r0, [r1] + ldr r2, =gUnknown_02037350 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x1] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x1] + bl CameraObjectReset2 + ldr r0, =sub_80B8250 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .pool + thumb_func_end mapldr_08085D88 + + thumb_func_start sub_80B8250 +sub_80B8250: @ 80B8250 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C49C + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8250 + + thumb_func_start sub_80B8280 +sub_80B8280: @ 80B8280 + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_80ABDFC + lsls r0, 24 + cmp r0, 0 + beq _080B82F6 + ldr r5, =gUnknown_02037590 + ldrb r0, [r5, 0x4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + adds r0, r2, 0 + adds r0, 0x29 + movs r4, 0 + ldrsb r4, [r0, r4] + lsls r0, r4, 17 + negs r0, r0 + ldrh r1, [r2, 0x22] + ldr r3, =gUnknown_02021BBE + adds r1, r4 + ldrh r3, [r3] + adds r1, r3 + asrs r0, 16 + adds r0, r1 + negs r0, r0 + strh r0, [r2, 0x26] + ldr r3, =gUnknown_02037350 + ldrb r0, [r5, 0x5] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r3, [r1, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r3 + strb r0, [r1, 0x1] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0x8 + strh r0, [r6, 0xA] + movs r0, 0x1 + strh r0, [r6, 0xC] + adds r2, 0x42 + ldrb r0, [r2] + lsrs r0, 6 + strh r0, [r6, 0x24] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + movs r0, 0x2D + bl audio_play +_080B82F6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8280 + + thumb_func_start sub_80B830C +sub_80B830C: @ 80B830C + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldr r2, =gUnknown_02037590 + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r6, r0, r1 + ldrb r1, [r2, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r5, r0, r1 + ldrh r0, [r4, 0xA] + ldrh r1, [r5, 0x26] + adds r0, r1 + strh r0, [r5, 0x26] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x8 + negs r1, r1 + cmp r0, r1 + blt _080B8384 + ldrh r1, [r4, 0x22] + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B83AA + adds r0, r1, 0x1 + strh r0, [r4, 0x22] + ldrb r0, [r6] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r6] + ldrh r1, [r4, 0x24] + adds r3, r5, 0 + adds r3, 0x42 + lsls r1, 6 + ldrb r2, [r3] + movs r0, 0x3F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080B83AA + .pool +_080B8384: + ldrb r1, [r5, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x5] + adds r2, r5, 0 + adds r2, 0x42 + ldrb r1, [r2] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _080B83AA + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] +_080B83AA: + ldrh r2, [r5, 0x26] + movs r3, 0x26 + ldrsh r1, [r5, r3] + movs r0, 0x30 + negs r0, r0 + cmp r1, r0 + blt _080B83CE + ldrh r1, [r4, 0xA] + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0x1 + ble _080B83CE + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _080B83CE + subs r0, r1, 0x1 + strh r0, [r4, 0xA] +_080B83CE: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + movs r7, 0 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080B83F0 + movs r0, 0x4 + strh r0, [r4, 0xC] + ldrb r0, [r6, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r1, [r0] + adds r0, r6, 0 + bl FieldObjectTurn +_080B83F0: + movs r1, 0x26 + ldrsh r0, [r5, r1] + cmp r0, 0 + blt _080B8406 + strh r7, [r5, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + strh r0, [r4, 0xA] + strh r7, [r4, 0xC] +_080B8406: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80B830C + + thumb_func_start sub_80B8410 +sub_80B8410: @ 80B8410 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C47C + mov r0, sp + movs r2, 0x5 + bl memcpy + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r5, r0, r1 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080B8484 + ldrb r0, [r5, 0x18] + lsls r0, 28 + lsrs r0, 28 + add r0, sp + ldrb r1, [r0] + adds r0, r5, 0 + bl FieldObjectTurn + movs r0, 0x8 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080B8484 + movs r0, 0x24 + ldrsh r1, [r4, r0] + ldrb r0, [r5, 0x18] + lsls r0, 28 + lsrs r0, 28 + cmp r1, r0 + bne _080B8484 + bl script_env_2_disable + bl CameraObjectReset1 + bl sub_809757C + ldr r0, =sub_80B8250 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B8484: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8410 + + thumb_func_start sub_80B849C +sub_80B849C: @ 80B849C + push {r4,lr} + bl sav1_map_get_light_level + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080B84BC + ldr r0, =sub_80B8554 + b _080B84BE + .pool +_080B84BC: + ldr r0, =sub_80B88B4 +_080B84BE: + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, =gUnknown_02038C08 + ldr r0, [r2] + ldr r1, [r2, 0x4] + ldr r2, [r2, 0x8] + bl sub_80B8C60 + ldr r2, =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x26] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B849C + + thumb_func_start sub_80B84F8 +sub_80B84F8: @ 80B84F8 + push {r4-r6,lr} + ldr r5, =gUnknown_02038C08 + ldr r0, [r5] + movs r6, 0x80 + lsls r6, 24 + ands r6, r0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r0, =gUnknown_020244EC + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl pokemon_getattr + str r0, [r5] + adds r0, r4, 0 + movs r1, 0x1 + bl pokemon_getattr + str r0, [r5, 0x4] + adds r0, r4, 0 + movs r1, 0 + bl pokemon_getattr + str r0, [r5, 0x8] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + movs r0, 0x6 + bl FieldEffectStart + movs r0, 0x3B + bl FieldEffectActiveListRemove + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B84F8 + + thumb_func_start sub_80B8554 +sub_80B8554: @ 80B8554 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C4A8 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8554 + + thumb_func_start sub_80B8584 +sub_80B8584: @ 80B8584 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =0x04000048 + ldrh r0, [r0] + strh r0, [r4, 0x1E] + ldr r0, =0x0400004a + ldrh r0, [r0] + strh r0, [r4, 0x20] + adds r0, r4, 0 + adds r0, 0x22 + ldr r1, =gUnknown_030022C0 + ldr r1, [r1, 0xC] + bl StoreWordInTwoHalfwords + ldr r1, =0x0000f0f1 + strh r1, [r4, 0xA] + ldr r0, =0x00005051 + strh r0, [r4, 0xC] + movs r0, 0x3F + strh r0, [r4, 0xE] + movs r0, 0x3E + strh r0, [r4, 0x10] + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0xC] + movs r0, 0x44 + bl SetGpuReg + ldrh r1, [r4, 0xE] + movs r0, 0x48 + bl SetGpuReg + ldrh r1, [r4, 0x10] + movs r0, 0x4A + bl SetGpuReg + ldr r0, =sub_80B880C + bl SetVBlankCallback + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8584 + + thumb_func_start sub_80B85F8 +sub_80B85F8: @ 80B85F8 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r0, =0x04000008 + ldrh r1, [r0] + lsrs r1, 2 + lsls r1, 30 + lsrs r1, 16 + ldrh r4, [r0] + lsrs r4, 8 + lsls r4, 27 + lsrs r4, 16 + ldr r0, =gUnknown_0855AE50 + movs r5, 0xC0 + lsls r5, 19 + adds r1, r5 + movs r2, 0x80 + lsls r2, 1 + bl CpuSet + movs r0, 0 + str r0, [sp] + adds r5, r4, r5 + ldr r2, =0x05000200 + mov r0, sp + adds r1, r5, 0 + bl CpuSet + ldr r0, =gUnknown_0855B050 + movs r1, 0xF0 + movs r2, 0x20 + bl gpu_pal_apply + adds r0, r4, 0 + bl sub_80B8874 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B85F8 + + thumb_func_start sub_80B8660 +sub_80B8660: @ 80B8660 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x12] + subs r0, 0x10 + strh r0, [r3, 0x12] + ldrh r6, [r3, 0xA] + ldrh r2, [r3, 0xC] + movs r7, 0xFF + lsrs r1, r6, 8 + subs r1, 0x10 + lsls r1, 16 + lsrs r0, r2, 8 + subs r0, 0x2 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r7, 0 + ands r0, r2 + adds r5, r0, 0x2 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080B868C + movs r2, 0 +_080B868C: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0x27 + bgt _080B8696 + movs r4, 0x28 +_080B8696: + cmp r5, 0x78 + ble _080B869C + movs r5, 0x78 +_080B869C: + lsls r2, 16 + asrs r2, 16 + lsls r1, r2, 8 + adds r0, r7, 0 + ands r0, r6 + orrs r1, r0 + strh r1, [r3, 0xA] + lsls r0, r4, 16 + asrs r4, r0, 16 + lsls r0, r4, 8 + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r3, 0xC] + cmp r2, 0 + bne _080B86DC + cmp r4, 0x28 + bne _080B86DC + cmp r1, 0x78 + bne _080B86DC + ldr r2, =gUnknown_02020630 + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_80B8CC0 + str r1, [r0] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B86DC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8660 + + thumb_func_start sub_80B86EC +sub_80B86EC: @ 80B86EC + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x12] + subs r0, 0x10 + strh r0, [r3, 0x12] + ldr r2, =gUnknown_02020630 + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3C + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B8712 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B8712: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B86EC + + thumb_func_start sub_80B871C +sub_80B871C: @ 80B871C + push {r4,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x12] + subs r0, 0x10 + strh r0, [r3, 0x12] + ldrh r2, [r3, 0xC] + lsls r1, r2, 16 + movs r0, 0xFF + asrs r1, 24 + adds r1, 0x6 + lsls r1, 16 + ands r0, r2 + subs r0, 0x6 + lsls r0, 16 + lsrs r2, r0, 16 + lsrs r4, r1, 16 + asrs r1, 16 + cmp r1, 0x50 + ble _080B8744 + movs r4, 0x50 +_080B8744: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x50 + bgt _080B874E + movs r2, 0x51 +_080B874E: + lsls r0, r4, 16 + asrs r0, 16 + lsls r1, r0, 8 + lsls r2, 16 + asrs r2, 16 + orrs r1, r2 + strh r1, [r3, 0xC] + cmp r0, 0x50 + bne _080B876A + cmp r2, 0x51 + bne _080B876A + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080B876A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B871C + + thumb_func_start sub_80B8770 +sub_80B8770: @ 80B8770 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r0, =0x04000008 + ldrh r1, [r0] + lsrs r1, 8 + lsls r1, 27 + lsrs r1, 16 + movs r0, 0 + str r0, [sp] + movs r0, 0xC0 + lsls r0, 19 + adds r1, r0 + ldr r2, =0x05000200 + mov r0, sp + bl CpuSet + movs r0, 0xF1 + strh r0, [r4, 0xA] + movs r0, 0xA1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x1E] + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x10] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8770 + + thumb_func_start overworld_bg_setup_2 +overworld_bg_setup_2: @ 80B87B8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r0, 0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl SetVBlankCallback + bl sub_8197200 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + bl sub_80B6070 + movs r0, 0x6 + bl FieldEffectActiveListRemove + ldr r0, =sub_80B8554 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end overworld_bg_setup_2 + + thumb_func_start sub_80B880C +sub_80B880C: @ 80B880C + push {r4,lr} + sub sp, 0x4 + ldr r0, =sub_80B8554 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl _call_via_r0 + ldrh r1, [r4, 0xA] + movs r0, 0x40 + bl SetGpuReg + ldrh r1, [r4, 0xC] + movs r0, 0x44 + bl SetGpuReg + ldrh r1, [r4, 0xE] + movs r0, 0x48 + bl SetGpuReg + ldrh r1, [r4, 0x10] + movs r0, 0x4A + bl SetGpuReg + ldrh r1, [r4, 0x12] + movs r0, 0x10 + bl SetGpuReg + ldrh r1, [r4, 0x14] + movs r0, 0x12 + bl SetGpuReg + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B880C + + thumb_func_start sub_80B8874 +sub_80B8874: @ 80B8874 + push {r4,r5,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r1, =0x06000140 + adds r2, r0, r1 + movs r1, 0 + ldr r5, =gUnknown_0855B070 + movs r0, 0xF0 + lsls r0, 8 + adds r4, r0, 0 + ldr r3, =0x0000013f +_080B888A: + lsls r0, r1, 1 + adds r0, r5 + ldrh r0, [r0] + orrs r0, r4 + strh r0, [r2] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, 0x2 + cmp r1, r3 + bls _080B888A + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8874 + + thumb_func_start sub_80B88B4 +sub_80B88B4: @ 80B88B4 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C4C4 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B88B4 + + thumb_func_start sub_80B88E4 +sub_80B88E4: @ 80B88E4 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0xA] + movs r0, 0x10 + bl SetGpuReg + ldrh r1, [r4, 0xC] + movs r0, 0x12 + bl SetGpuReg + adds r0, r4, 0 + adds r0, 0x22 + ldr r1, =gUnknown_030022C0 + ldr r1, [r1, 0xC] + bl StoreWordInTwoHalfwords + ldr r0, =sub_80B8AE0 + bl SetVBlankCallback + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B88E4 + + thumb_func_start sub_80B8920 +sub_80B8920: @ 80B8920 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + adds r6, r0, 0 + ldr r0, =0x04000008 + ldrh r1, [r0] + lsrs r1, 2 + lsls r1, 30 + lsrs r1, 16 + ldrh r4, [r0] + lsrs r4, 8 + lsls r4, 27 + lsrs r4, 16 + movs r0, 0 + mov r8, r0 + strh r4, [r6, 0x20] + ldr r0, =gUnknown_0855B2F0 + movs r5, 0xC0 + lsls r5, 19 + adds r1, r5 + movs r2, 0x40 + bl CpuSet + mov r0, r8 + str r0, [sp] + adds r4, r5 + ldr r2, =0x05000200 + mov r0, sp + adds r1, r4, 0 + bl CpuSet + ldr r0, =gUnknown_0855B370 + movs r1, 0xF0 + movs r2, 0x20 + bl gpu_pal_apply + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8920 + + thumb_func_start sub_80B898C +sub_80B898C: @ 80B898C + push {r4,lr} + adds r4, r0, 0 + bl sub_80B8B38 + lsls r0, 24 + cmp r0, 0 + beq _080B89C4 + movs r0, 0x42 + movs r1, 0xF0 + bl SetGpuReg + ldr r1, =0x00002878 + movs r0, 0x46 + bl SetGpuReg + ldr r2, =gUnknown_02020630 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, =sub_80B8CC0 + str r1, [r0] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B89C4: + adds r0, r4, 0 + bl sub_80B8B28 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B898C + + thumb_func_start sub_80B89DC +sub_80B89DC: @ 80B89DC + push {r4,lr} + adds r4, r0, 0 + bl sub_80B8B28 + ldr r2, =gUnknown_02020630 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3C + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _080B8A00 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B8A00: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B89DC + + thumb_func_start sub_80B8A0C +sub_80B8A0C: @ 80B8A0C + push {r4,r5,lr} + adds r4, r0, 0 + bl sub_80B8B28 + ldrh r1, [r4, 0xA] + movs r0, 0x7 + ands r0, r1 + movs r1, 0 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + ldr r5, =0x0000ffff + movs r0, 0x42 + adds r1, r5, 0 + bl SetGpuReg + movs r0, 0x46 + adds r1, r5, 0 + bl SetGpuReg + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8A0C + + thumb_func_start sub_80B8A44 +sub_80B8A44: @ 80B8A44 + push {r4,lr} + adds r4, r0, 0 + bl sub_80B8B28 + adds r0, r4, 0 + bl sub_80B8BF0 + lsls r0, 24 + cmp r0, 0 + beq _080B8A5E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B8A5E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B8A44 + + thumb_func_start sub_80B8A64 +sub_80B8A64: @ 80B8A64 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, =0x04000008 + ldrh r1, [r0] + lsrs r1, 8 + lsls r1, 27 + lsrs r1, 16 + movs r0, 0 + str r0, [sp] + movs r0, 0xC0 + lsls r0, 19 + adds r1, r0 + ldr r2, =0x05000200 + mov r0, sp + bl CpuSet + adds r0, r4, 0 + adds r0, 0x22 + add r1, sp, 0x4 + bl LoadWordFromTwoHalfwords + ldr r0, [sp, 0x4] + bl SetVBlankCallback + bl sub_8197200 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + ldrh r1, [r4, 0x26] + lsls r1, 24 + lsrs r1, 24 + bl sub_80B6070 + movs r0, 0x6 + bl FieldEffectActiveListRemove + ldr r0, =sub_80B88B4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8A64 + + thumb_func_start sub_80B8AE0 +sub_80B8AE0: @ 80B8AE0 + push {r4,lr} + sub sp, 0x4 + ldr r0, =sub_80B88B4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x22 + mov r1, sp + bl LoadWordFromTwoHalfwords + ldr r0, [sp] + bl _call_via_r0 + ldrh r1, [r4, 0xA] + movs r0, 0x10 + bl SetGpuReg + ldrh r1, [r4, 0xC] + movs r0, 0x12 + bl SetGpuReg + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8AE0 + + thumb_func_start sub_80B8B28 +sub_80B8B28: @ 80B8B28 + ldrh r1, [r0, 0xA] + subs r1, 0x10 + strh r1, [r0, 0xA] + ldrh r1, [r0, 0xE] + adds r1, 0x10 + strh r1, [r0, 0xE] + bx lr + thumb_func_end sub_80B8B28 + + thumb_func_start sub_80B8B38 +sub_80B8B38: @ 80B8B38 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x10] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1F + ble _080B8B54 + movs r0, 0x1 + b _080B8BD8 +_080B8B54: + ldrh r0, [r5, 0xE] + lsls r0, 16 + asrs r3, r0, 19 + movs r1, 0x1F + ands r3, r1 + movs r4, 0x10 + ldrsh r0, [r5, r4] + cmp r3, r0 + blt _080B8BD6 + movs r0, 0x20 + subs r3, r0, r3 + ands r3, r1 + subs r0, r2 + mov r12, r0 + mov r7, r12 + ands r7, r1 + mov r12, r7 + ldrh r0, [r5, 0x20] + ldr r1, =0x06000140 + adds r1, r0 + mov r8, r1 + movs r4, 0 + ldr r7, =gUnknown_0855B390 + mov r10, r7 + movs r0, 0xF0 + lsls r0, 8 + mov r9, r0 + adds r1, r3, 0x1 + movs r0, 0x1F + ands r1, r0 + str r1, [sp] + mov r6, r12 + adds r6, 0x1 + ands r6, r0 +_080B8B98: + lsls r1, r4, 5 + adds r2, r1, r3 + lsls r2, 1 + add r2, r8 + mov r7, r12 + adds r0, r7, r1 + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r7, r9 + orrs r0, r7 + strh r0, [r2] + ldr r0, [sp] + adds r2, r1, r0 + lsls r2, 1 + add r2, r8 + adds r1, r6, r1 + lsls r1, 1 + add r1, r10 + ldrh r0, [r1] + mov r1, r9 + orrs r0, r1 + strh r0, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x9 + bls _080B8B98 + ldrh r0, [r5, 0x10] + adds r0, 0x2 + strh r0, [r5, 0x10] +_080B8BD6: + movs r0, 0 +_080B8BD8: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B8B38 + + thumb_func_start sub_80B8BF0 +sub_80B8BF0: @ 80B8BF0 + push {r4-r7,lr} + adds r5, r0, 0 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0x1F + ble _080B8C00 + movs r0, 0x1 + b _080B8C54 +_080B8C00: + ldrh r0, [r5, 0xE] + lsls r0, 16 + asrs r0, 19 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r2, r0 + blt _080B8C52 + ldrh r0, [r5, 0xA] + lsls r0, 16 + asrs r2, r0, 19 + movs r0, 0x1F + ands r2, r0 + ldrh r0, [r5, 0x20] + ldr r1, =0x06000140 + adds r6, r0, r1 + movs r3, 0 + movs r0, 0xF0 + lsls r0, 8 + adds r7, r0, 0 + adds r4, r2, 0x1 + movs r0, 0x1F + ands r4, r0 +_080B8C30: + lsls r0, r3, 5 + adds r1, r0, r2 + lsls r1, 1 + adds r1, r6 + strh r7, [r1] + adds r0, r4 + lsls r0, 1 + adds r0, r6 + strh r7, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bls _080B8C30 + ldrh r0, [r5, 0x10] + adds r0, 0x2 + strh r0, [r5, 0x10] +_080B8C52: + movs r0, 0 +_080B8C54: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B8BF0 + + thumb_func_start sub_80B8C60 +sub_80B8C60: @ 80B8C60 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + movs r5, 0x80 + lsls r5, 24 + ands r5, r6 + lsrs r5, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, =0x7fffffff + ands r6, r0 + lsls r0, r6, 16 + lsrs r0, 16 + movs r3, 0xA0 + lsls r3, 1 + movs r4, 0x50 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + bl sub_80B5FE8 + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r1, =gUnknown_02020630 + adds r2, r1 + ldr r1, =DummyObjectCallback + str r1, [r2, 0x1C] + ldrb r3, [r2, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + strb r1, [r2, 0x5] + strh r6, [r2, 0x2E] + strh r5, [r2, 0x3A] + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B8C60 + + thumb_func_start sub_80B8CC0 +sub_80B8CC0: @ 80B8CC0 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x20] + subs r0, 0x14 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + bgt _080B8D00 + movs r0, 0x78 + strh r0, [r1, 0x20] + movs r0, 0x1E + strh r0, [r1, 0x30] + ldr r0, =sub_80B8D04 + str r0, [r1, 0x1C] + movs r2, 0x3A + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080B8CF8 + ldrh r0, [r1, 0x2E] + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80A32C0 + b _080B8D00 + .pool +_080B8CF8: + ldrh r0, [r1, 0x2E] + movs r1, 0 + bl cry_related +_080B8D00: + pop {r0} + bx r0 + thumb_func_end sub_80B8CC0 + + thumb_func_start sub_80B8D04 +sub_80B8D04: @ 80B8D04 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + subs r0, 0x1 + strh r0, [r1, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _080B8D18 + ldr r0, =sub_80B8D20 + str r0, [r1, 0x1C] +_080B8D18: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8D04 + + thumb_func_start sub_80B8D20 +sub_80B8D20: @ 80B8D20 + push {lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x20] + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + bge _080B8D38 + movs r0, 0x1 + strh r0, [r2, 0x3C] + b _080B8D3E +_080B8D38: + adds r0, r3, 0 + subs r0, 0x14 + strh r0, [r2, 0x20] +_080B8D3E: + pop {r0} + bx r0 + thumb_func_end sub_80B8D20 + + thumb_func_start sub_80B8D44 +sub_80B8D44: @ 80B8D44 + push {lr} + ldr r0, =sub_80B8D84 + movs r1, 0xFF + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =gUnknown_02038C08 + ldr r0, [r0] + strh r0, [r1, 0x26] + bl sav1_reset_battle_music_maybe + ldr r0, =0x0000016d + bl sub_80858C4 + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B8D44 + + thumb_func_start sub_80B8D84 +sub_80B8D84: @ 80B8D84 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C4E0 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8D84 + + thumb_func_start sub_80B8DB4 +sub_80B8DB4: @ 80B8DB4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + bl script_env_2_enable + bl player_bitmagic + ldr r5, =gUnknown_02037590 + movs r0, 0x1 + strb r0, [r5, 0x6] + movs r0, 0x8 + bl SetPlayerAvatarStateMask + adds r6, r4, 0 + adds r6, 0xA + movs r0, 0xC + adds r0, r4 + mov r8, r0 + adds r0, r6, 0 + mov r1, r8 + bl PlayerGetDestCoords + ldr r2, =gUnknown_02037350 + ldrb r1, [r5, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x18] + lsrs r0, 4 + adds r1, r6, 0 + mov r2, r8 + bl MoveCoords + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8DB4 + + thumb_func_start sub_80B8E14 +sub_80B8E14: @ 80B8E14 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B8E3E + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B8E50 +_080B8E3E: + bl sub_808C114 + adds r0, r4, 0 + movs r1, 0x39 + bl FieldObjectSetSpecialAnim + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080B8E50: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8E14 + + thumb_func_start sub_80B8E60 +sub_80B8E60: @ 80B8E60 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + lsls r0, 24 + cmp r0, 0 + beq _080B8E96 + ldr r2, =gUnknown_02038C08 + movs r1, 0x26 + ldrsh r0, [r4, r1] + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r2] + movs r0, 0x3B + bl FieldEffectStart + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B8E96: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8E60 + + thumb_func_start sub_80B8EA8 +sub_80B8EA8: @ 80B8EA8 + push {r4-r6,lr} + adds r6, r0, 0 + movs r0, 0x6 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B8F12 + ldr r5, =gUnknown_02037590 + ldrb r0, [r5, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02037350 + adds r4, r0 + movs r0, 0x3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetGraphicsId + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl sub_8093540 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldr r1, =gUnknown_02038C08 + movs r2, 0xA + ldrsh r0, [r6, r2] + str r0, [r1] + movs r2, 0xC + ldrsh r0, [r6, r2] + str r0, [r1, 0x4] + ldrb r0, [r5, 0x5] + str r0, [r1, 0x8] + movs r0, 0x8 + bl FieldEffectStart + strb r0, [r4, 0x1A] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_080B8F12: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8EA8 + + thumb_func_start sub_80B8F24 +sub_80B8F24: @ 80B8F24 + push {r4,r5,lr} + ldr r5, =gUnknown_02037590 + ldrb r1, [r5, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B8F84 + movs r0, 0 + strb r0, [r5, 0x6] + ldrb r1, [r5] + movs r0, 0xDF + ands r0, r1 + strb r0, [r5] + ldrb r0, [r4, 0x18] + lsrs r0, 4 + bl GetFaceDirectionAnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldrb r0, [r4, 0x1A] + movs r1, 0x1 + bl sub_81555AC + bl sub_809757C + bl script_env_2_disable + movs r0, 0x9 + bl FieldEffectActiveListRemove + ldr r0, =sub_80B8D84 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B8F84: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B8F24 + + thumb_func_start sub_80B8F98 +sub_80B8F98: @ 80B8F98 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, =gFieldEffectObjectTemplatePointers + adds r0, 0x90 + ldr r0, [r0] + movs r2, 0x18 + negs r2, r2 + movs r1, 0x78 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, r0, 4 + add r1, r8 + lsls r1, 2 + ldr r0, =gUnknown_02020630 + adds r1, r0 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x4 + orrs r0, r2 + movs r2, 0xF + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r1, 0x5] + movs r2, 0 + strh r2, [r1, 0x2E] + strh r2, [r1, 0x30] + strh r2, [r1, 0x32] + ldr r0, =0x0000ffff + strh r0, [r1, 0x34] + ldrh r0, [r1, 0x22] + strh r0, [r1, 0x36] + strh r2, [r1, 0x38] + ldr r1, =0x00003e41 + movs r0, 0x50 + bl SetGpuReg + ldr r1, =0x00000e0e + movs r0, 0x52 + bl SetGpuReg + ldr r1, =0x00003f3f + movs r0, 0x48 + bl SetGpuReg + ldr r0, =gUnknown_0855B610 + movs r1, 0xC0 + movs r2, 0x20 + bl gpu_pal_apply + movs r0, 0x12 + movs r1, 0x78 + bl SetGpuReg + movs r4, 0x3 + ldr r7, =0x0600f800 + ldr r0, =0x0000bff4 + adds r6, r0, 0 +_080B901A: + movs r2, 0xC + lsls r0, r4, 1 + lsls r5, r4, 5 + adds r0, r4 + lsls r3, r0, 1 +_080B9024: + adds r0, r5, r2 + lsls r0, 1 + adds r0, r7 + adds r1, r2, r6 + adds r1, r3, r1 + adds r1, 0x1 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x11 + bls _080B9024 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xE + bls _080B901A + movs r0, 0 + ldr r5, =gUnknown_0855B630 +_080B904A: + movs r4, 0 + adds r7, r0, 0x1 + lsls r6, r0, 5 +_080B9050: + lsls r1, r4, 2 + adds r1, r6, r1 + ldr r0, =0x06008020 + adds r3, r1, r0 + adds r0, r1, 0x1 + adds r0, r5 + ldrb r2, [r0] + lsls r2, 8 + adds r0, r1, r5 + ldrb r0, [r0] + adds r0, r2 + strh r0, [r3] + ldr r0, =0x06008022 + adds r3, r1, r0 + adds r0, r1, 0x3 + adds r0, r5 + ldrb r2, [r0] + lsls r2, 8 + adds r1, 0x2 + adds r1, r5 + ldrb r0, [r1] + adds r0, r2 + strh r0, [r3] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _080B9050 + lsls r0, r7, 24 + lsrs r0, 24 + cmp r0, 0x59 + bls _080B904A + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B8F98 + + thumb_func_start sub_80B90CC +sub_80B90CC: @ 80B90CC + push {r4,lr} + ldr r0, =gFieldEffectObjectTemplatePointers + ldr r0, [r0, 0x68] + movs r1, 0x78 + movs r2, 0 + movs r3, 0x1 + bl AddObjectToFront + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + ldr r0, =gUnknown_02020630 + adds r2, r0 + ldrb r1, [r2, 0x5] + movs r0, 0xF + ands r0, r1 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, =sub_80B9128 + str r0, [r2, 0x1C] + ldr r0, =gUnknown_02038C08 + ldr r0, [r0] + strh r0, [r2, 0x30] + movs r0, 0x9E + bl audio_play + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B90CC + + thumb_func_start sub_80B9128 +sub_80B9128: @ 80B9128 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x8C + bl Cos + movs r5, 0 + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x48 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B918A + movs r2, 0x30 + ldrsh r0, [r4, r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02020630 + adds r1, r0 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + subs r0, 0x8 + strh r0, [r1, 0x22] + strh r5, [r1, 0x24] + strh r5, [r1, 0x26] +_080B918A: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080B919A + adds r0, r4, 0 + movs r1, 0x1E + bl FieldEffectStop +_080B919A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9128 + + thumb_func_start sub_80B91A4 +sub_80B91A4: @ 80B91A4 + push {lr} + ldr r0, =sub_80B91D4 + movs r1, 0xFE + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =gUnknown_02038C08 + ldr r0, [r0] + strh r0, [r1, 0xA] + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B91A4 + + thumb_func_start sub_80B91D4 +sub_80B91D4: @ 80B91D4 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C4F4 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B91D4 + + thumb_func_start sub_80B9204 +sub_80B9204: @ 80B9204 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, =gUnknown_02037590 + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B922E + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B924C +_080B922E: + ldrb r0, [r6] + strh r0, [r5, 0x26] + movs r0, 0x1 + strb r0, [r6, 0x6] + bl SetPlayerAvatarStateMask + bl sub_808C114 + adds r0, r4, 0 + movs r1, 0x39 + bl FieldObjectSetSpecialAnim + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080B924C: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9204 + + thumb_func_start sub_80B925C +sub_80B925C: @ 80B925C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B928C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r1, =gUnknown_02038C08 + movs r2, 0xA + ldrsh r0, [r4, r2] + str r0, [r1] + movs r0, 0x3B + bl FieldEffectStart +_080B928C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B925C + + thumb_func_start sub_80B92A0 +sub_80B92A0: @ 80B92A0 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x6 + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080B92E8 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r5, r0, r1 + ldrh r1, [r4, 0x26] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B92D8 + ldrb r0, [r5, 0x1A] + movs r1, 0x2 + bl sub_81555AC + ldrb r0, [r5, 0x1A] + movs r1, 0 + bl sub_81555D8 +_080B92D8: + bl sub_80B94C4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B92E8: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B92A0 + + thumb_func_start sub_80B92F8 +sub_80B92F8: @ 80B92F8 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0xA] + bl sub_80B9508 + lsls r0, 24 + cmp r0, 0 + beq _080B932C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x10 + strh r0, [r4, 0xC] + movs r0, 0x1 + bl SetPlayerAvatarTransitionFlags + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + movs r1, 0x2 + bl FieldObjectSetSpecialAnim +_080B932C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B92F8 + + thumb_func_start sub_80B933C +sub_80B933C: @ 80B933C + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r2, r0, r1 + ldrh r1, [r4, 0xC] + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080B9362 + subs r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080B9380 +_080B9362: + adds r0, r2, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B9380 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x9E + bl audio_play + ldrb r0, [r4, 0xA] + bl sub_80B9524 +_080B9380: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B933C + + thumb_func_start sub_80B9390 +sub_80B9390: @ 80B9390 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _080B9406 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + movs r0, 0x3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetGraphicsId + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r6, =gUnknown_02020630 + adds r0, r6 + movs r1, 0x16 + bl StartObjectImageAnim + ldrb r0, [r4, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + movs r1, 0x48 + bl FieldObjectSetSpecialAnim + ldrh r1, [r5, 0x26] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B93FC + ldrb r1, [r4, 0x1A] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl RemoveObjectAndFreeTiles +_080B93FC: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + strh r0, [r5, 0xC] +_080B9406: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9390 + + thumb_func_start sub_80B9418 +sub_80B9418: @ 80B9418 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _080B9464 + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02037350 + adds r4, r0 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimActive + ldrb r1, [r4, 0x1] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x2] + ldrb r0, [r5, 0xA] + ldrb r1, [r4, 0x4] + bl sub_80B9560 + bl CameraObjectReset2 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] +_080B9464: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9418 + + thumb_func_start sub_80B9474 +sub_80B9474: @ 80B9474 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0xA] + bl sub_80B9508 + lsls r0, 24 + cmp r0, 0 + beq _080B948E + bl sub_80AF0B4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B948E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80B9474 + + thumb_func_start sub_80B9494 +sub_80B9494: @ 80B9494 + push {lr} + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B94B6 + movs r0, 0x1F + bl FieldEffectActiveListRemove + ldr r0, =sub_80B91D4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B94B6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9494 + + thumb_func_start sub_80B94C4 +sub_80B94C4: @ 80B94C4 + push {lr} + ldr r0, =gFieldEffectObjectTemplatePointers + ldr r0, [r0, 0x68] + movs r1, 0xFF + movs r2, 0xB4 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r1, =gUnknown_02020630 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + movs r3, 0xD + negs r3, r3 + ands r1, r3 + movs r3, 0x4 + orrs r1, r3 + strb r1, [r2, 0x5] + ldr r1, =sub_80B957C + str r1, [r2, 0x1C] + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B94C4 + + thumb_func_start sub_80B9508 +sub_80B9508: @ 80B9508 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gUnknown_02020630 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x3C] + lsls r0, 24 + lsrs r0, 24 + bx lr + .pool + thumb_func_end sub_80B9508 + + thumb_func_start sub_80B9524 +sub_80B9524: @ 80B9524 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + ldr r0, =sub_80B963C + str r0, [r4, 0x1C] + movs r1, 0 + movs r0, 0x78 + strh r0, [r4, 0x20] + strh r1, [r4, 0x22] + strh r1, [r4, 0x24] + strh r1, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x2E + movs r2, 0x10 + bl memset + movs r0, 0x40 + strh r0, [r4, 0x3A] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9524 + + thumb_func_start sub_80B9560 +sub_80B9560: @ 80B9560 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_02020630 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + strh r1, [r2, 0x3A] + bx lr + .pool + thumb_func_end sub_80B9560 + + thumb_func_start sub_80B957C +sub_80B957C: @ 80B957C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B9628 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B95C0 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, =gUnknown_0855C548 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl obj_alloc_rotscale_entry + adds r0, r4, 0 + movs r1, 0 + bl StartObjectRotScalAnim + movs r0, 0x76 + strh r0, [r4, 0x20] + ldr r0, =0x0000ffd0 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x40 + strh r0, [r4, 0x30] + adds r0, 0xC0 + strh r0, [r4, 0x32] +_080B95C0: + ldrh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x78 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x78 + bl Sin + strh r0, [r4, 0x26] + ldrh r2, [r4, 0x32] + movs r0, 0x32 + ldrsh r1, [r4, r0] + ldr r0, =0x000007ff + cmp r1, r0 + bgt _080B95F6 + adds r0, r2, 0 + adds r0, 0x60 + strh r0, [r4, 0x32] +_080B95F6: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x81 + ble _080B9628 + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl rotscale_free_entry + ldrb r1, [r4, 0x1] + lsrs r1, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + adds r0, r4, 0 + movs r3, 0 + bl CalcVecFromObjectCenterToObjectUpperLeft +_080B9628: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B957C + + thumb_func_start sub_80B963C +sub_80B963C: @ 80B963C + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0x8C + bl Cos + movs r5, 0 + strh r0, [r4, 0x24] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r1, 0x48 + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x4 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x32] + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x40 + beq _080B969A + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02020630 + adds r1, r0 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r3] + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + subs r0, 0x8 + strh r0, [r1, 0x22] + strh r5, [r1, 0x24] + strh r5, [r1, 0x26] +_080B969A: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x7F + ble _080B96A6 + movs r0, 0x1 + strh r0, [r4, 0x3C] +_080B96A6: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B963C + + thumb_func_start sub_80B96B0 +sub_80B96B0: @ 80B96B0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B9784 + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080B96FA + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, =gUnknown_0855C548 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl obj_alloc_rotscale_entry + adds r0, r4, 0 + movs r1, 0x1 + bl StartObjectRotScalAnim + movs r0, 0x5E + strh r0, [r4, 0x20] + ldr r0, =0x0000ffe0 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0xF0 + strh r0, [r4, 0x30] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r4, 0x32] + movs r0, 0x80 + strh r0, [r4, 0x36] +_080B96FA: + ldrh r1, [r4, 0x32] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r2, r1 + ldrh r0, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x30] + movs r3, 0x30 + ldrsh r0, [r4, r3] + movs r1, 0x20 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x78 + bl Sin + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + movs r2, 0x80 + lsls r2, 1 + cmp r0, r2 + ble _080B973C + ldrh r0, [r4, 0x36] + subs r0, r1, r0 + strh r0, [r4, 0x32] +_080B973C: + ldrh r1, [r4, 0x36] + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0xFF + bgt _080B974C + adds r0, r1, 0 + adds r0, 0x18 + strh r0, [r4, 0x36] +_080B974C: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0xFF + bgt _080B9756 + strh r2, [r4, 0x32] +_080B9756: + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0x3B + ble _080B9784 + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl rotscale_free_entry + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080B9784: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B96B0 + + thumb_func_start sub_80B9794 +sub_80B9794: @ 80B9794 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_80B9524 + ldr r1, =gUnknown_02020630 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, =sub_80B96B0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9794 + + thumb_func_start sub_80B97C0 +sub_80B97C0: @ 80B97C0 + push {lr} + ldr r0, =sub_80B97D4 + movs r1, 0xFE + bl CreateTask + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B97C0 + + thumb_func_start sub_80B97D4 +sub_80B97D4: @ 80B97D4 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r3, =gUnknown_0855C550 + ldr r2, =gTasks + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r2, 0x8 + ldrsh r1, [r0, r2] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B97D4 + + thumb_func_start sub_80B9804 +sub_80B9804: @ 80B9804 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, =gUnknown_02037590 + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080B982E + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B98A6 +_080B982E: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x11 + strh r0, [r5, 0xC] + ldrb r0, [r6] + strh r0, [r5, 0x26] + movs r0, 0x1 + strb r0, [r6, 0x6] + bl SetPlayerAvatarStateMask + ldrh r1, [r5, 0x26] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B9856 + ldrb r0, [r4, 0x1A] + movs r1, 0 + bl sub_81555AC +_080B9856: + movs r0, 0x3 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetGraphicsId + bl CameraObjectReset2 + adds r0, r4, 0 + movs r1, 0x3 + bl FieldObjectTurn + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + movs r1, 0x16 + bl StartObjectImageAnim + ldrb r1, [r4, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + bl sub_80B94C4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xA] + bl sub_80B9524 + ldrb r0, [r5, 0xA] + ldrb r1, [r4, 0x4] + bl sub_80B9560 +_080B98A6: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9804 + + thumb_func_start sub_80B98B8 +sub_80B98B8: @ 80B98B8 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080B98D0 + subs r0, r1, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _080B9910 +_080B98D0: + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + ldrb r0, [r0, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + ldrb r0, [r5, 0xA] + movs r1, 0x40 + bl sub_80B9560 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x24] + strh r1, [r4, 0x26] + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + strh r1, [r5, 0xC] +_080B9910: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B98B8 + + thumb_func_start sub_80B9924 +sub_80B9924: @ 80B9924 + push {r4,lr} + sub sp, 0x24 + adds r4, r0, 0 + ldr r1, =gUnknown_0855C56C + mov r0, sp + movs r2, 0x24 + bl memcpy + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gUnknown_02020630 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r1, 0x26] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + ble _080B9962 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080B9962: + add sp, 0x24 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9924 + + thumb_func_start sub_80B9978 +sub_80B9978: @ 80B9978 + push {r4-r6,lr} + adds r6, r0, 0 + ldrb r0, [r6, 0xA] + bl sub_80B9508 + lsls r0, 24 + cmp r0, 0 + beq _080B99DC + ldr r0, =gUnknown_02037590 + ldrb r0, [r0, 0x5] + lsls r5, r0, 3 + adds r5, r0 + lsls r5, 2 + ldr r0, =gUnknown_02037350 + adds r5, r0 + ldrb r0, [r5, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + ldrb r1, [r5, 0x1] + movs r0, 0x11 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x1] + movs r0, 0x10 + ldrsh r1, [r5, r0] + movs r0, 0x12 + ldrsh r2, [r5, r0] + adds r0, r5, 0 + bl sub_808EB08 + movs r0, 0 + strh r0, [r4, 0x24] + strh r0, [r4, 0x26] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4] + bl sub_808C114 + adds r0, r5, 0 + movs r1, 0x39 + bl FieldObjectSetSpecialAnim + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_080B99DC: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9978 + + thumb_func_start sub_80B99F0 +sub_80B99F0: @ 80B99F0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gUnknown_02037590 + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r0, r1 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080B9A18 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldrb r0, [r4, 0xA] + bl sub_80B9794 +_080B9A18: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B99F0 + + thumb_func_start sub_80B9A28 +sub_80B9A28: @ 80B9A28 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0xA] + bl sub_80B9508 + lsls r0, 24 + cmp r0, 0 + beq _080B9A54 + movs r0, 0xA + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r0, r1 + bl RemoveObjectAndFreeTiles + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x10 + strh r0, [r4, 0xA] +_080B9A54: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9A28 + + thumb_func_start sub_80B9A60 +sub_80B9A60: @ 80B9A60 + push {r4-r7,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0xA] + subs r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _080B9ACA + ldr r6, =gUnknown_02037590 + ldrb r1, [r6, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02037350 + adds r4, r0, r1 + movs r7, 0 + ldrh r1, [r5, 0x26] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080B9A94 + movs r7, 0x3 + ldrb r0, [r4, 0x1A] + movs r1, 0x1 + bl sub_81555AC +_080B9A94: + adds r0, r7, 0 + bl GetPlayerAvatarGraphicsIdByStateId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetGraphicsId + adds r0, r4, 0 + movs r1, 0x1 + bl FieldObjectTurn + ldrh r0, [r5, 0x26] + strb r0, [r6] + movs r0, 0 + strb r0, [r6, 0x6] + movs r0, 0x20 + bl FieldEffectActiveListRemove + ldr r0, =sub_80B97D4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask +_080B9ACA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9A60 + + thumb_func_start sub_80B9ADC +sub_80B9ADC: @ 80B9ADC + push {r4,lr} + sub sp, 0x4 + ldr r4, =gUnknown_02038C08 + ldrb r0, [r4] + ldrb r1, [r4, 0x4] + ldrb r2, [r4, 0x8] + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _080B9B2C + ldr r0, =sub_80B9BE8 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, sp + ldrb r0, [r0] + strh r0, [r1, 0xC] + ldr r0, [r4] + strh r0, [r1, 0x14] + ldr r0, [r4, 0x4] + strh r0, [r1, 0x16] + ldr r0, [r4, 0x8] + strh r0, [r1, 0x18] + b _080B9B32 + .pool +_080B9B2C: + movs r0, 0x41 + bl FieldEffectActiveListRemove +_080B9B32: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80B9ADC + + thumb_func_start sub_80B9B3C +sub_80B9B3C: @ 80B9B3C + 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, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080B9B78 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + ble _080B9B7C + movs r0, 0 + strh r0, [r4, 0xC] + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080B9B7C + subs r0, r1, 0x1 + b _080B9B7A + .pool +_080B9B78: + movs r0, 0x4 +_080B9B7A: + strh r0, [r4, 0xA] +_080B9B7C: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080B9BB6 + movs r0, 0 + strh r0, [r4] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080B9BAC + ldrh r1, [r4, 0xA] + negs r1, r1 + lsls r1, 16 + asrs r1, 16 + movs r0, 0 + bl SetCameraPanning + b _080B9BB6 +_080B9BAC: + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning +_080B9BB6: + bl UpdateCameraPanning + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080B9BC8 + adds r0, r5, 0 + bl DestroyTask +_080B9BC8: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80B9B3C + + thumb_func_start sub_80B9BD0 +sub_80B9BD0: @ 80B9BD0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x16] + bx lr + .pool + thumb_func_end sub_80B9BD0 + + thumb_func_start sub_80B9BE8 +sub_80B9BE8: @ 80B9BE8 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, =gTasks + 0x8 + adds r4, r0 + bl InstallCameraPanAheadCallback + movs r0, 0 + bl SetCameraPanningCallback + ldr r1, =gUnknown_0855C590 + movs r2, 0x2 + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + adds r0, r4, 0 + adds r1, r5, 0 + bl _call_via_r2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9BE8 + + thumb_func_start sub_80B9C28 +sub_80B9C28: @ 80B9C28 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =sub_80B9B3C + movs r1, 0x5A + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x58 + bl audio_play + strh r4, [r5, 0xA] + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9C28 + + thumb_func_start sub_80B9C54 +sub_80B9C54: @ 80B9C54 + push {r4-r7,lr} + sub sp, 0x4 + adds r7, r0, 0 + ldrh r0, [r7, 0x6] + adds r0, 0x1 + strh r0, [r7, 0x6] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x78 + ble _080B9CC2 + ldr r2, =gUnknown_02037350 + movs r1, 0x4 + ldrsh r0, [r7, r1] + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x4] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + ldrb r0, [r1, 0x1] + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x1] + ldr r6, =0x0000ffff + ldr r5, =0x00007fff + adds r0, r6, 0 + movs r1, 0x10 + adds r2, r5, 0 + bl sub_80A2A20 + str r5, [sp] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + adds r0, r4, 0 + bl sub_80B9D24 + movs r0, 0x57 + bl audio_play + ldrb r0, [r7, 0xA] + bl sub_80B9BD0 + movs r0, 0 + strh r0, [r7, 0x6] + ldrh r0, [r7, 0x2] + adds r0, 0x1 + strh r0, [r7, 0x2] +_080B9CC2: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9C54 + + thumb_func_start sub_80B9CDC +sub_80B9CDC: @ 80B9CDC + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, =gUnknown_02037FD4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080B9D16 + ldr r0, =sub_80B9B3C + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080B9D16 + bl InstallCameraPanAheadCallback + ldrb r0, [r4, 0xC] + ldrb r1, [r4, 0xE] + ldrb r2, [r4, 0x10] + bl RemoveFieldObjectByLocalIdAndMap + movs r0, 0x41 + bl FieldEffectActiveListRemove + adds r0, r5, 0 + bl DestroyTask +_080B9D16: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9CDC + + thumb_func_start sub_80B9D24 +sub_80B9D24: @ 80B9D24 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r0, =gUnknown_03005DEC + movs r1, 0 + ldrsh r2, [r0, r1] + movs r3, 0x20 + ldrsh r0, [r6, r3] + adds r2, r0 + movs r1, 0x24 + ldrsh r0, [r6, r1] + adds r2, r0 + ldr r0, =gUnknown_03005DE8 + movs r3, 0 + ldrsh r0, [r0, r3] + movs r3, 0x22 + ldrsh r1, [r6, r3] + adds r0, r1 + movs r3, 0x26 + ldrsh r1, [r6, r3] + adds r0, r1 + subs r0, 0x4 + movs r5, 0 + lsls r2, 16 + mov r8, r2 + lsls r7, r0, 16 +_080B9D5A: + ldr r0, =gUnknown_0855C5EC + mov r2, r8 + asrs r1, r2, 16 + asrs r2, r7, 16 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080B9D96 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02020630 + adds r4, r0 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartObjectImageAnim + strh r5, [r4, 0x2E] + ldrb r1, [r6, 0x5] + lsrs r1, 4 + lsls r1, 4 + ldrb r2, [r4, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x5] +_080B9D96: + adds r5, 0x1 + cmp r5, 0x3 + ble _080B9D5A + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9D24 + + thumb_func_start sub_80B9DB8 +sub_80B9DB8: @ 80B9DB8 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _080B9DE4 + cmp r0, 0x1 + bgt _080B9DCE + cmp r0, 0 + beq _080B9DD8 + b _080B9E02 +_080B9DCE: + cmp r0, 0x2 + beq _080B9DF0 + cmp r0, 0x3 + beq _080B9DF6 + b _080B9E02 +_080B9DD8: + ldrh r0, [r1, 0x20] + subs r0, 0x10 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x22] + subs r0, 0xC + b _080B9E00 +_080B9DE4: + ldrh r0, [r1, 0x20] + adds r0, 0x10 + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x22] + subs r0, 0xC + b _080B9E00 +_080B9DF0: + ldrh r0, [r1, 0x20] + subs r0, 0x10 + b _080B9DFA +_080B9DF6: + ldrh r0, [r1, 0x20] + adds r0, 0x10 +_080B9DFA: + strh r0, [r1, 0x20] + ldrh r0, [r1, 0x22] + adds r0, 0xC +_080B9E00: + strh r0, [r1, 0x22] +_080B9E02: + ldrh r0, [r1, 0x20] + adds r0, 0x4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xF8 + bhi _080B9E1E + movs r0, 0x22 + ldrsh r2, [r1, r0] + movs r0, 0x4 + negs r0, r0 + cmp r2, r0 + blt _080B9E1E + cmp r2, 0xA4 + ble _080B9E24 +_080B9E1E: + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles +_080B9E24: + pop {r0} + bx r0 + thumb_func_end sub_80B9DB8 + + thumb_func_start sub_80B9E28 +sub_80B9E28: @ 80B9E28 + push {r4-r7,lr} + sub sp, 0x4 + ldr r7, =gUnknown_02038C08 + ldrb r0, [r7] + ldrb r1, [r7, 0x4] + ldrb r2, [r7, 0x8] + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _080B9EBE + mov r0, sp + ldrb r0, [r0] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02037350 + adds r4, r0 + movs r0, 0x10 + ldrsh r5, [r4, r0] + subs r5, 0x7 + movs r0, 0x12 + ldrsh r6, [r4, r0] + subs r6, 0x7 + ldr r1, [r7, 0xC] + subs r5, r1, r5 + lsls r5, 4 + ldr r2, [r7, 0x10] + subs r6, r2, r6 + lsls r6, 4 + adds r1, 0x7 + lsls r1, 16 + asrs r1, 16 + adds r2, 0x7 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + bl npc_coords_shift + ldr r0, =sub_80B9EDC + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + ldrb r0, [r4, 0x4] + strh r0, [r2, 0xA] + ldr r3, =gUnknown_02020630 + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x20] + adds r0, r5 + strh r0, [r2, 0xC] + ldrb r1, [r4, 0x4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x22] + adds r0, r6 + strh r0, [r2, 0xE] + ldr r0, [r7, 0x14] + strh r0, [r2, 0x18] + mov r0, sp + ldrb r0, [r0] + strh r0, [r2, 0x1A] +_080B9EBE: + movs r0, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B9E28 + + thumb_func_start sub_80B9EDC +sub_80B9EDC: @ 80B9EDC + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r5, r0, r1 + movs r0, 0x2 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_02020630 + adds r6, r0, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080B9F10 + cmp r0, 0x1 + beq _080B9F4E + b _080B9FAC + .pool +_080B9F10: + ldrh r0, [r6, 0x20] + lsls r0, 4 + strh r0, [r5, 0x8] + ldrh r0, [r6, 0x22] + lsls r0, 4 + strh r0, [r5, 0xA] + movs r2, 0x4 + ldrsh r0, [r5, r2] + lsls r0, 4 + movs r2, 0x8 + ldrsh r1, [r5, r2] + subs r0, r1 + movs r2, 0x10 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0xC] + movs r1, 0x6 + ldrsh r0, [r5, r1] + lsls r0, 4 + movs r2, 0xA + ldrsh r1, [r5, r2] + subs r0, r1 + movs r2, 0x10 + ldrsh r1, [r5, r2] + bl __divsi3 + strh r0, [r5, 0xE] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_080B9F4E: + ldrh r1, [r5, 0x10] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _080B9F7C + subs r0, r1, 0x1 + strh r0, [r5, 0x10] + ldrh r1, [r5, 0xC] + ldrh r0, [r5, 0x8] + adds r1, r0 + strh r1, [r5, 0x8] + ldrh r0, [r5, 0xE] + ldrh r2, [r5, 0xA] + adds r0, r2 + strh r0, [r5, 0xA] + lsls r1, 16 + asrs r1, 20 + strh r1, [r6, 0x20] + ldrh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 20 + strh r0, [r6, 0x22] + b _080B9FAC +_080B9F7C: + movs r1, 0x12 + ldrsh r0, [r5, r1] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 2 + ldr r0, =gUnknown_02037350 + adds r4, r0 + ldrh r0, [r5, 0x4] + strh r0, [r6, 0x20] + ldrh r0, [r5, 0x6] + strh r0, [r6, 0x22] + adds r0, r4, 0 + bl npc_coords_shift_still + ldrb r0, [r4] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r4] + movs r0, 0x42 + bl FieldEffectActiveListRemove + adds r0, r7, 0 + bl DestroyTask +_080B9FAC: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B9EDC + .align 2, 0 @ Don't pad with nop. |