.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start s00_nop s00_nop: @ 80992CC movs r0, 0 bx lr thumb_func_end s00_nop thumb_func_start s01_nop s01_nop: @ 80992D0 movs r0, 0 bx lr thumb_func_end s01_nop thumb_func_start s02_end s02_end: @ 80992D4 push {lr} bl StopScript movs r0, 0 pop {r1} bx r1 thumb_func_end s02_end thumb_func_start s24_execute_ASM_2 s24_execute_ASM_2: @ 80992E0 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end s24_execute_ASM_2 thumb_func_start s25_extended_cmd s25_extended_cmd: @ 80992F8 push {lr} bl ScriptReadHalfword lsls r0, 16 ldr r1, =gUnknown_081DBA64 lsrs r0, 14 adds r0, r1 ldr r0, [r0] bl _call_via_r0 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s25_extended_cmd thumb_func_start s26_extended_cmd_setvar s26_extended_cmd_setvar: @ 8099318 push {r4-r6,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r6, r0, 0 ldr r4, =gUnknown_081DBA64 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 14 adds r0, r4 ldr r0, [r0] bl _call_via_r0 strh r0, [r6] movs r0, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end s26_extended_cmd_setvar thumb_func_start s23_execute_ASM s23_execute_ASM: @ 809934C push {lr} bl ScriptReadWord bl _call_via_r0 movs r0, 0 pop {r1} bx r1 thumb_func_end s23_execute_ASM thumb_func_start s27_set_to_waitstate s27_set_to_waitstate: @ 809935C push {lr} bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end s27_set_to_waitstate thumb_func_start s05_goto s05_goto: @ 8099368 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 adds r0, r4, 0 bl ScriptJump movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s05_goto thumb_func_start s03_return s03_return: @ 8099380 push {lr} bl ScriptReturn movs r0, 0 pop {r1} bx r1 thumb_func_end s03_return thumb_func_start s04_call s04_call: @ 809938C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 adds r0, r4, 0 bl ScriptCall movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s04_call thumb_func_start s06_if_jump @ int s06_if_jump(script_env *env) s06_if_jump: @ 80993A4 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadWord adds r2, r0, 0 ldr r1, =gUnknown_085102C0 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080993D2 adds r0, r5, 0 adds r1, r2, 0 bl ScriptJump _080993D2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s06_if_jump thumb_func_start s07_if_call s07_if_call: @ 80993E0 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadWord adds r2, r0, 0 ldr r1, =gUnknown_085102C0 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0809940E adds r0, r5, 0 adds r1, r2, 0 bl ScriptCall _0809940E: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s07_if_call thumb_func_start sB8_set_virtual_address @ int sB8_set_virtual_address(script_env *env) sB8_set_virtual_address: @ 809941C push {r4,lr} ldr r4, [r0, 0x8] subs r4, 0x1 bl ScriptReadWord ldr r1, =gUnknown_020375C4 subs r0, r4 str r0, [r1] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sB8_set_virtual_address thumb_func_start sB9_virtual_jump @ int sB9_virtual_jump(script_env *env) sB9_virtual_jump: @ 8099438 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, =gUnknown_020375C4 ldr r0, [r0] subs r1, r0 adds r0, r4, 0 bl ScriptJump movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sB9_virtual_jump thumb_func_start sBA_virtual_call sBA_virtual_call: @ 809945C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r1, r0, 0 ldr r0, =gUnknown_020375C4 ldr r0, [r0] subs r1, r0 adds r0, r4, 0 bl ScriptCall movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sBA_virtual_call thumb_func_start sBB_virtual_if_jump sBB_virtual_if_jump: @ 8099480 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadWord ldr r1, =gUnknown_020375C4 ldr r1, [r1] subs r2, r0, r1 ldr r1, =gUnknown_085102C0 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080994B2 adds r0, r5, 0 adds r1, r2, 0 bl ScriptJump _080994B2: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sBB_virtual_if_jump thumb_func_start sBC_virtual_if_call sBC_virtual_if_call: @ 80994C4 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadWord ldr r1, =gUnknown_020375C4 ldr r1, [r1] subs r2, r0, r1 ldr r1, =gUnknown_085102C0 lsls r0, r4, 1 adds r0, r4 ldrb r3, [r5, 0x2] adds r0, r3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080994F6 adds r0, r5, 0 adds r1, r2, 0 bl ScriptCall _080994F6: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sBC_virtual_if_call thumb_func_start s08_jumpstd s08_jumpstd: @ 8099508 push {lr} adds r2, r0, 0 ldr r0, [r2, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r2, 0x8] lsls r1, 2 ldr r0, =gUnknown_081DC2A0 adds r1, r0 ldr r0, =gUnknown_081DC2CC cmp r1, r0 bcs _08099528 ldr r1, [r1] adds r0, r2, 0 bl ScriptJump _08099528: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s08_jumpstd thumb_func_start s09_callstd s09_callstd: @ 8099538 push {lr} adds r2, r0, 0 ldr r0, [r2, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r2, 0x8] lsls r1, 2 ldr r0, =gUnknown_081DC2A0 adds r1, r0 ldr r0, =gUnknown_081DC2CC cmp r1, r0 bcs _08099558 ldr r1, [r1] adds r0, r2, 0 bl ScriptCall _08099558: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s09_callstd thumb_func_start s0A_jumpstd_if s0A_jumpstd_if: @ 8099568 push {r4,lr} adds r3, r0, 0 ldr r0, [r3, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldr r1, =gUnknown_085102C0 lsls r0, r2, 1 adds r0, r2 ldrb r2, [r3, 0x2] adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080995A0 lsls r0, r4, 2 ldr r1, =gUnknown_081DC2A0 adds r1, r0, r1 ldr r0, =gUnknown_081DC2CC cmp r1, r0 bcs _080995A0 ldr r1, [r1] adds r0, r3, 0 bl ScriptJump _080995A0: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s0A_jumpstd_if thumb_func_start s0B_callstd_if s0B_callstd_if: @ 80995B4 push {r4,lr} adds r3, r0, 0 ldr r0, [r3, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r3, 0x8] ldr r1, =gUnknown_085102C0 lsls r0, r2, 1 adds r0, r2 ldrb r2, [r3, 0x2] adds r0, r2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080995EC lsls r0, r4, 2 ldr r1, =gUnknown_081DC2A0 adds r1, r0, r1 ldr r0, =gUnknown_081DC2CC cmp r1, r0 bcs _080995EC ldr r1, [r1] adds r0, r3, 0 bl ScriptCall _080995EC: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s0B_callstd_if thumb_func_start s0C_restore_execution_after_sCF s0C_restore_execution_after_sCF: @ 8099600 push {lr} ldr r1, =gUnknown_020375C0 ldr r1, [r1] bl ScriptJump movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s0C_restore_execution_after_sCF thumb_func_start s0D_endscript_killram s0D_endscript_killram: @ 8099614 push {r4,lr} adds r4, r0, 0 bl ClearRamScript adds r0, r4, 0 bl StopScript movs r0, 0x1 pop {r4} pop {r1} bx r1 thumb_func_end s0D_endscript_killram thumb_func_start s0E_set_byte s0E_set_byte: @ 809962C push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl sub_81538C4 movs r0, 0 pop {r1} bx r1 thumb_func_end s0E_set_byte thumb_func_start s0F_u32_var_to_const @ int s0F_u32_var_to_const(script_env *env) s0F_u32_var_to_const: @ 8099644 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord lsls r5, 2 adds r4, 0x64 adds r4, r5 str r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s0F_u32_var_to_const thumb_func_start s12_u32_var_to_ptr @ int s12_u32_var_to_ptr(script_env *env) s12_u32_var_to_ptr: @ 8099668 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord lsls r5, 2 adds r4, 0x64 adds r4, r5 ldrb r0, [r0] str r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s12_u32_var_to_ptr thumb_func_start s11_u8_ptr_to_const @ int s11_u8_ptr_to_const(script_env *env) s11_u8_ptr_to_const: @ 809968C push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadWord strb r4, [r0] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s11_u8_ptr_to_const thumb_func_start s10_u8_var_to_const @ int s10_u8_var_to_const(script_env *env) s10_u8_var_to_const: @ 80996A4 ldr r1, [r0, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r0, 0x8] lsls r3, 2 adds r2, r0, 0 adds r2, 0x64 adds r2, r3 ldrb r3, [r1] str r3, [r2] adds r1, 0x1 str r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end s10_u8_var_to_const thumb_func_start s13_u8_var_to_ptr @ int s13_u8_var_to_ptr(script_env *env) s13_u8_var_to_ptr: @ 80996C0 push {r4,r5,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r5, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord lsls r5, 2 adds r4, 0x64 adds r4, r5 ldr r1, [r4] strb r1, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s13_u8_var_to_ptr thumb_func_start s14_u32_var_to_var s14_u32_var_to_var: @ 80996E4 ldr r1, [r0, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] lsls r3, 2 adds r0, 0x64 adds r3, r0, r3 lsls r2, 2 adds r0, r2 ldr r0, [r0] str r0, [r3] movs r0, 0 bx lr thumb_func_end s14_u32_var_to_var thumb_func_start s15_u8_ptr_to_ptr s15_u8_ptr_to_ptr: @ 8099704 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadWord adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadWord ldrb r0, [r0] strb r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s15_u8_ptr_to_ptr thumb_func_start s16_u16_gvar_to_const s16_u16_gvar_to_const: @ 8099720 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 adds r0, r5, 0 bl ScriptReadHalfword strh r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s16_u16_gvar_to_const thumb_func_start s19_u16_gvar_gvar s19_u16_gvar_gvar: @ 8099744 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r0, [r0] strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s19_u16_gvar_gvar thumb_func_start s1A_u16_gvar_gvar s1A_u16_gvar_gvar: @ 8099770 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s1A_u16_gvar_gvar thumb_func_start compare_012 compare_012: @ 809979C push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 cmp r0, r1 bcs _080997AE movs r0, 0 b _080997B8 _080997AE: cmp r0, r1 beq _080997B6 movs r0, 0x2 b _080997B8 _080997B6: movs r0, 0x1 _080997B8: pop {r1} bx r1 thumb_func_end compare_012 thumb_func_start s1B_cmp_u8_var_var s1B_cmp_u8_var_var: @ 80997BC push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] lsls r0, 2 adds r3, r4, 0 adds r3, 0x64 adds r0, r3, r0 ldrb r0, [r0] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r3, r1 ldrb r1, [r3] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1B_cmp_u8_var_var thumb_func_start s1C_cmp_u8_var_const s1C_cmp_u8_var_const: @ 80997EC push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r0, 0x64 adds r0, r1 ldrb r0, [r0] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1C_cmp_u8_var_const thumb_func_start s1D_cmp_u8_var_ptr s1D_cmp_u8_var_ptr: @ 8099814 push {r4,r5,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r1, [r2] lsls r1, 2 adds r0, 0x64 adds r0, r1 ldrb r5, [r0] adds r2, 0x1 str r2, [r4, 0x8] adds r0, r4, 0 bl ScriptReadWord ldrb r1, [r0] adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s1D_cmp_u8_var_ptr thumb_func_start s1E_cmp_u8_ptr_var s1E_cmp_u8_ptr_var: @ 8099840 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord ldrb r0, [r0] ldr r3, [r4, 0x8] ldrb r2, [r3] lsls r2, 2 adds r1, r4, 0 adds r1, 0x64 adds r1, r2 ldrb r1, [r1] adds r3, 0x1 str r3, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1E_cmp_u8_ptr_var thumb_func_start s1F_cmp_u8_ptr_const s1F_cmp_u8_ptr_const: @ 809986C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord ldrb r0, [r0] ldr r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s1F_cmp_u8_ptr_const thumb_func_start s20_cmp_u8_ptr_ptr s20_cmp_u8_ptr_ptr: @ 809988C push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadWord ldrb r5, [r0] adds r0, r4, 0 bl ScriptReadWord ldrb r1, [r0] adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s20_cmp_u8_ptr_ptr thumb_func_start s21_cmp_u16_gvar_const s21_cmp_u16_gvar_const: @ 80998B0 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r5, [r0] adds r0, r4, 0 bl ScriptReadHalfword adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s21_cmp_u16_gvar_const thumb_func_start s22_cmp_u16_gvar_gvar s22_cmp_u16_gvar_gvar: @ 80998E0 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldrh r2, [r5] ldrh r1, [r0] adds r0, r2, 0 bl compare_012 strb r0, [r4, 0x2] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s22_cmp_u16_gvar_gvar thumb_func_start s17_u16_gvar_add_const s17_u16_gvar_add_const: @ 8099914 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 adds r0, r5, 0 bl ScriptReadHalfword ldrh r1, [r4] adds r0, r1 strh r0, [r4] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s17_u16_gvar_add_const thumb_func_start sub_809993C sub_809993C: @ 809993C push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldrh r1, [r5] subs r1, r0 strh r1, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809993C thumb_func_start s8F_get_random_val s8F_get_random_val: @ 809996C push {r4,r5,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r5, =gScriptResult bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __umodsi3 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s8F_get_random_val thumb_func_start sub_80999A0 sub_80999A0: @ 80999A0 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl AddBagItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80999A0 thumb_func_start sub_80999E4 sub_80999E4: @ 80999E4 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RemoveBagItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80999E4 thumb_func_start sub_8099A28 sub_8099A28: @ 8099A28 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl CheckBagHasSpace lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8099A28 thumb_func_start sub_8099A6C sub_8099A6C: @ 8099A6C push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r5, =gScriptResult lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl CheckBagHasItem lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8099A6C thumb_func_start s48_get_item_type s48_get_item_type: @ 8099AB0 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r4, =gScriptResult bl GetPocketByItemId lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s48_get_item_type thumb_func_start sub_8099ADC sub_8099ADC: @ 8099ADC push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r5, =gScriptResult adds r0, r4, 0 bl sub_80D6D70 lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8099ADC thumb_func_start sub_8099B20 sub_8099B20: @ 8099B20 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r5, =gScriptResult adds r0, r4, 0 bl sub_80D6D1C lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8099B20 thumb_func_start sub_8099B64 sub_8099B64: @ 8099B64 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl DecorationAdd lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8099B64 thumb_func_start sub_8099B90 sub_8099B90: @ 8099B90 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl DecorationRemove lsls r0, 24 asrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8099B90 thumb_func_start sub_8099BBC sub_8099BBC: @ 8099BBC push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl DecorationCheckSpace lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8099BBC thumb_func_start sub_8099BE8 sub_8099BE8: @ 8099BE8 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl sub_8161918 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8099BE8 thumb_func_start s29_flag_set @ int s29_flag_set(script_env *env) s29_flag_set: @ 8099C14 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl FlagSet movs r0, 0 pop {r1} bx r1 thumb_func_end s29_flag_set thumb_func_start s2A_flag_clear @ int s2A_flag_clear(script_env *env) s2A_flag_clear: @ 8099C28 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl FlagReset movs r0, 0 pop {r1} bx r1 thumb_func_end s2A_flag_clear thumb_func_start s2B_flag_check @ int s2B_flag_check(script_env *env) s2B_flag_check: @ 8099C3C push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl FlagGet strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s2B_flag_check thumb_func_start sC3_unknown @ int sC3_unknown(script_env *env) sC3_unknown: @ 8099C58 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl IncrementGameStat movs r0, 0 pop {r1} bx r1 thumb_func_end sC3_unknown thumb_func_start s9A_unknown @ int s9A_unknown(script_env *env) s9A_unknown: @ 8099C70 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl sub_80B009C bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end s9A_unknown thumb_func_start s99_unknown @ int s99_unknown(script_env *env) s99_unknown: @ 8099C8C push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_80854EC movs r0, 0 pop {r1} bx r1 thumb_func_end s99_unknown thumb_func_start sub_8099CA8 sub_8099CA8: @ 8099CA8 push {lr} ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08099CC0 movs r0, 0 b _08099CC2 .pool _08099CC0: movs r0, 0x1 _08099CC2: pop {r1} bx r1 thumb_func_end sub_8099CA8 thumb_func_start s97_screen_special_effect @ int s97_screen_special_effect(script_env *env) s97_screen_special_effect: @ 8099CC8 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x8] ldrb r0, [r1] adds r1, 0x1 str r1, [r4, 0x8] movs r1, 0 bl fade_screen ldr r1, =sub_8099CA8 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s97_screen_special_effect thumb_func_start s98_refade_with_timer @ int s98_refade_with_timer(script_env *env) s98_refade_with_timer: @ 8099CF0 push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] ldrb r0, [r2] adds r2, 0x1 str r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] lsls r1, 24 asrs r1, 24 bl fade_screen ldr r1, =sub_8099CA8 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s98_refade_with_timer thumb_func_start sub_8099D20 @ int sub_8099D20(script_env *env) sub_8099D20: @ 8099D20 push {r4,r5,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r4, [r0] adds r0, 0x1 str r0, [r5, 0x8] cmp r4, 0x1 beq _08099D3E cmp r4, 0x1 bgt _08099D3A cmp r4, 0 beq _08099D60 b _08099D3E _08099D3A: cmp r4, 0x2 beq _08099D60 _08099D3E: ldr r0, =gPlttBufferUnfaded ldr r1, =gPaletteDecompressionBuffer ldr r2, =0x04000100 bl CpuSet adds r0, r4, 0 movs r1, 0 bl fade_screen b _08099D72 .pool _08099D60: ldr r0, =gPaletteDecompressionBuffer ldr r1, =gPlttBufferUnfaded ldr r2, =0x04000100 bl CpuSet adds r0, r4, 0 movs r1, 0 bl fade_screen _08099D72: ldr r1, =sub_8099CA8 adds r0, r5, 0 bl SetupNativeScript movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8099D20 thumb_func_start s28_pause_asm s28_pause_asm: @ 8099D94 push {lr} ldr r1, =gUnknown_020375C8 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] lsls r0, 16 cmp r0, 0 beq _08099DAC movs r0, 0 b _08099DAE .pool _08099DAC: movs r0, 0x1 _08099DAE: pop {r1} bx r1 thumb_func_end s28_pause_asm thumb_func_start s28_pause @ int s28_pause(script_env *env) s28_pause: @ 8099DB4 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword ldr r1, =gUnknown_020375C8 strh r0, [r1] ldr r1, =s28_pause_asm adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s28_pause thumb_func_start s2C_unknown @ int s2C_unknown(script_env *env) s2C_unknown: @ 8099DD8 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RtcInitLocalTimeOffset movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s2C_unknown thumb_func_start s2D_unknown @ int s2D_unknown(script_env *env) s2D_unknown: @ 8099E10 push {lr} bl sub_809E7B0 movs r0, 0 pop {r1} bx r1 thumb_func_end s2D_unknown thumb_func_start s2E_unknown @ int s2E_unknown(script_env *env) s2E_unknown: @ 8099E1C push {lr} bl RtcCalcLocalTime ldr r2, =gSpecialVar_0x8000 ldr r1, =gLocalTime movs r0, 0x2 ldrsb r0, [r1, r0] strh r0, [r2] ldr r2, =gSpecialVar_0x8001 movs r0, 0x3 ldrsb r0, [r1, r0] strh r0, [r2] ldr r2, =gSpecialVar_0x8002 movs r0, 0x4 ldrsb r0, [r1, r0] strh r0, [r2] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s2E_unknown thumb_func_start sA4_set_weather_data @ int sA4_set_weather_data(script_env *env) sA4_set_weather_data: @ 8099E54 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_80AED7C movs r0, 0 pop {r1} bx r1 thumb_func_end sA4_set_weather_data thumb_func_start sA3_set_standard_weather_data @ int sA3_set_standard_weather_data(script_env *env) sA3_set_standard_weather_data: @ 8099E70 push {lr} bl sub_80AEDBC movs r0, 0 pop {r1} bx r1 thumb_func_end sA3_set_standard_weather_data thumb_func_start sub_8099E7C @ int sub_8099E7C(script_env *env) sub_8099E7C: @ 8099E7C push {lr} bl sub_80AEE20 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_8099E7C thumb_func_start sA6_activate_per_step_callback_eg_ash @ int sA6_activate_per_step_callback_eg_ash(script_env *env) sA6_activate_per_step_callback_eg_ash: @ 8099E88 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] adds r0, r2, 0 bl activate_per_step_callback movs r0, 0 pop {r1} bx r1 thumb_func_end sA6_activate_per_step_callback_eg_ash thumb_func_start sA7_set_new_map_footer @ int sA7_set_new_map_footer(script_env *env) sA7_set_new_map_footer: @ 8099EA0 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl sub_8085524 movs r0, 0 pop {r1} bx r1 thumb_func_end sA7_set_new_map_footer thumb_func_start s39_warp_sfx @ int s39_warp_sfx(script_env *env) s39_warp_sfx: @ 8099EBC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_80AF734 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s39_warp_sfx thumb_func_start s3A_warp_new_music @ int s3A_warp_new_music(script_env *env) s3A_warp_new_music: @ 8099F44 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sp13E_warp_to_last_warp bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3A_warp_new_music thumb_func_start s3B_warp_keep_music @ int s3B_warp_keep_music(script_env *env) s3B_warp_keep_music: @ 8099FCC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_80AF7D0 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3B_warp_keep_music thumb_func_start sub_809A054 sub_809A054: @ 809A054 push {r4-r6,lr} sub sp, 0x8 ldr r1, [r0, 0x8] ldrb r6, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] mov r4, sp adds r4, 0x6 add r0, sp, 0x4 adds r1, r4, 0 bl PlayerGetDestCoords cmp r6, 0xFF bne _0809A092 cmp r5, 0xFF bne _0809A092 add r0, sp, 0x4 ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 asrs r0, 16 ldrh r1, [r4] subs r1, 0x7 lsls r1, 16 asrs r1, 16 bl sub_8084EBC b _0809A0B6 _0809A092: lsls r0, r6, 24 asrs r0, 24 lsls r1, r5, 24 asrs r1, 24 movs r2, 0x1 negs r2, r2 add r3, sp, 0x4 ldrb r3, [r3] subs r3, 0x7 lsls r3, 24 asrs r3, 24 ldrb r4, [r4] subs r4, 0x7 lsls r4, 24 asrs r4, 24 str r4, [sp] bl warp1_set _0809A0B6: bl sp13F_fall_to_last_warp bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809A054 thumb_func_start s3D_warp_v4 s3D_warp_v4: @ 809A0C8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_80AF848 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3D_warp_v4 thumb_func_start sub_809A150 sub_809A150: @ 809A150 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_80AF87C bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809A150 thumb_func_start s3E_set_new_map s3E_set_new_map: @ 809A1D8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3E_set_new_map thumb_func_start s3F_set_new_map_DMA s3F_set_new_map_DMA: @ 809A258 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 str r4, [sp] lsls r0, 24 asrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r1, r9 mov r2, r8 adds r3, r6, 0 bl saved_warp2_set_2 movs r0, 0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end s3F_set_new_map_DMA thumb_func_start sub_809A2DC sub_809A2DC: @ 809A2DC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_8084E2C movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809A2DC thumb_func_start sub_809A35C sub_809A35C: @ 809A35C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_8084E80 movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809A35C thumb_func_start sC4_unknown sC4_unknown: @ 809A3DC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl sub_8084DD4 movs r0, 0 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sC4_unknown thumb_func_start s42_get_map_camera_pos @ int s42_get_map_camera_pos(script_env *env) s42_get_map_camera_pos: @ 809A45C push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r5, r0, 0 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer ldr r2, =gSaveBlock1Ptr ldr r1, [r2] ldrh r1, [r1] strh r1, [r5] ldr r1, [r2] ldrh r1, [r1, 0x2] strh r1, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s42_get_map_camera_pos thumb_func_start s43_get_player_party_count s43_get_player_party_count: @ 809A498 push {r4,lr} ldr r4, =gScriptResult bl CalculatePlayerPartyCount lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s43_get_player_party_count thumb_func_start s2F_music_play s2F_music_play: @ 809A4B4 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl PlaySE movs r0, 0 pop {r1} bx r1 thumb_func_end s2F_music_play thumb_func_start s30_music_check_asm s30_music_check_asm: @ 809A4C8 push {lr} bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _0809A4D8 movs r0, 0 b _0809A4DA _0809A4D8: movs r0, 0x1 _0809A4DA: pop {r1} bx r1 thumb_func_end s30_music_check_asm thumb_func_start s30_music_check s30_music_check: @ 809A4E0 push {lr} ldr r1, =s30_music_check_asm bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end s30_music_check thumb_func_start s31_PlayFanfare s31_PlayFanfare: @ 809A4F4 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl PlayFanfare movs r0, 0 pop {r1} bx r1 thumb_func_end s31_PlayFanfare thumb_func_start s32_fanfare_wait_asm s32_fanfare_wait_asm: @ 809A508 push {lr} bl IsFanfareTaskInactive lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end s32_fanfare_wait_asm thumb_func_start s32_fanfare_wait s32_fanfare_wait: @ 809A518 push {lr} ldr r1, =s32_fanfare_wait_asm bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end s32_fanfare_wait thumb_func_start s33_play_music @ int s33_play_music(script_env *env) s33_play_music: @ 809A52C push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r2, r0, 16 adds r5, r2, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0x1 bne _0809A54C adds r0, r2, 0 bl sav1_set_battle_music_maybe _0809A54C: adds r0, r5, 0 bl PlayNewMapMusic movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s33_play_music thumb_func_start s34_unknown s34_unknown: @ 809A55C push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl sav1_set_battle_music_maybe movs r0, 0 pop {r1} bx r1 thumb_func_end s34_unknown thumb_func_start s35_fade_to_default s35_fade_to_default: @ 809A570 push {lr} bl sub_8085898 movs r0, 0 pop {r1} bx r1 thumb_func_end s35_fade_to_default thumb_func_start s36_fade_to_music s36_fade_to_music: @ 809A57C push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl sub_80858C4 movs r0, 0 pop {r1} bx r1 thumb_func_end s36_fade_to_music thumb_func_start s37_fadeout s37_fadeout: @ 809A590 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 beq _0809A5AA lsls r0, r1, 26 lsrs r0, 24 bl FadeOutBGMTemporarily b _0809A5B0 _0809A5AA: movs r0, 0x4 bl FadeOutBGMTemporarily _0809A5B0: ldr r1, =IsBGMPausedOrStopped adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s37_fadeout thumb_func_start s38_fadein s38_fadein: @ 809A5C4 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] cmp r2, 0 beq _0809A5DC lsls r0, r2, 26 lsrs r0, 24 bl FadeInBGM b _0809A5E2 _0809A5DC: movs r0, 0x4 bl FadeInBGM _0809A5E2: movs r0, 0 pop {r1} bx r1 thumb_func_end s38_fadein thumb_func_start s4F_execute_movement s4F_execute_movement: @ 809A5E8 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadWord adds r3, r0, 0 lsls r0, r4, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl exec_movement ldr r0, =gUnknown_020375CA strh r4, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s4F_execute_movement thumb_func_start s50_execute_movement_remote s50_execute_movement_remote: @ 809A62C push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadWord adds r3, r0, 0 ldr r0, [r5, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r5, 0x8] lsls r0, r4, 24 lsrs r0, 24 bl exec_movement ldr r0, =gUnknown_020375CA strh r4, [r0] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s50_execute_movement_remote thumb_func_start s51a_0806B288 s51a_0806B288: @ 809A670 push {lr} ldr r0, =gUnknown_020375CA ldrb r0, [r0] ldr r1, =gUnknown_020375CE ldrb r1, [r1] ldr r2, =gUnknown_020375CC ldrb r2, [r2] bl sub_80D3340 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end s51a_0806B288 thumb_func_start s51_waitmove s51_waitmove: @ 809A698 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0809A6B4 ldr r0, =gUnknown_020375CA strh r1, [r0] _0809A6B4: ldr r1, =gUnknown_020375CC ldr r0, =gSaveBlock1Ptr ldr r2, [r0] movs r0, 0x4 ldrsb r0, [r2, r0] strh r0, [r1] ldr r1, =gUnknown_020375CE movs r0, 0x5 ldrsb r0, [r2, r0] strh r0, [r1] ldr r1, =s51a_0806B288 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s51_waitmove thumb_func_start s52_waitmove_remote s52_waitmove_remote: @ 809A6EC push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _0809A708 ldr r0, =gUnknown_020375CA strh r1, [r0] _0809A708: ldr r0, [r4, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] ldr r0, =gUnknown_020375CC strh r2, [r0] ldr r0, =gUnknown_020375CE strh r1, [r0] ldr r1, =s51a_0806B288 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s52_waitmove_remote thumb_func_start s53_hide_sprite s53_hide_sprite: @ 809A740 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl RemoveFieldObjectByLocalIdAndMap movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s53_hide_sprite thumb_func_start s54_hide_sprite_set_coords s54_hide_sprite_set_coords: @ 809A768 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl RemoveFieldObjectByLocalIdAndMap movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s54_hide_sprite_set_coords thumb_func_start s55_show_sprite s55_show_sprite: @ 809A798 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl show_sprite movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s55_show_sprite thumb_func_start s56_show_sprite_set_coords s56_show_sprite_set_coords: @ 809A7C0 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl show_sprite movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s56_show_sprite_set_coords thumb_func_start s57_move_sprites s57_move_sprites: @ 809A7F0 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r5, 24 lsrs r5, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] lsls r4, 16 asrs r4, 16 lsls r0, 16 asrs r0, 16 str r0, [sp] adds r0, r5, 0 adds r3, r4, 0 bl sub_808EBA8 movs r0, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end s57_move_sprites thumb_func_start s63_new_sprite_location_permanent s63_new_sprite_location_permanent: @ 809A858 push {r4-r6,lr} adds r6, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r6, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r2, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 16 asrs r4, 16 lsls r2, 16 asrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl update_saveblock1_field_object_coords movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end s63_new_sprite_location_permanent thumb_func_start s64_set_sprite_top_left_corner s64_set_sprite_top_left_corner: @ 809A8B0 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl sub_808F254 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s64_set_sprite_top_left_corner thumb_func_start s58_npc_f1_clear_x20 s58_npc_f1_clear_x20: @ 809A8D8 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 movs r3, 0 bl npc_by_local_id_and_map_set_field_1_bit_x20 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s58_npc_f1_clear_x20 thumb_func_start s59_npc_f1_set_x20 s59_npc_f1_set_x20: @ 809A908 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 movs r3, 0x1 bl npc_by_local_id_and_map_set_field_1_bit_x20 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s59_npc_f1_set_x20 thumb_func_start sA8_unknown sA8_unknown: @ 809A938 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r5, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r5, 0x8] ldrb r1, [r3] adds r4, r3, 0x1 str r4, [r5, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r5, 0x8] lsls r0, 24 lsrs r0, 24 adds r3, 0x53 lsls r3, 24 lsrs r3, 24 bl sub_808E78C movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sA8_unknown thumb_func_start sA9_unknown sA9_unknown: @ 809A974 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_808E7E4 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sA9_unknown thumb_func_start s5A_face_player s5A_face_player: @ 809A9A4 push {r4,lr} ldr r2, =gMapObjects ldr r0, =gSelectedMapObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r4, r0, r2 ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _0809A9CC bl player_get_direction_lower_nybble adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectFaceOppositeDirection _0809A9CC: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s5A_face_player thumb_func_start s5B_npc_set_direction s5B_npc_set_direction: @ 809A9DC push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, [r4, 0x8] ldrb r3, [r1] adds r1, 0x1 str r1, [r4, 0x8] lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl FieldObjectTurnByLocalIdAndMap movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s5B_npc_set_direction thumb_func_start s65_set_sprite_behaviour s65_set_sprite_behaviour: @ 809AA10 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r2, [r4, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl update_saveblock1_field_object_movement_behavior movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s65_set_sprite_behaviour thumb_func_start sAA_create_new_sprite sAA_create_new_sprite: @ 809AA38 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r3, r0, 0 ldr r0, [r5, 0x8] ldrb r2, [r0] adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r5, 0x8] lsls r4, 16 asrs r4, 16 lsls r3, 16 asrs r3, 16 str r2, [sp] str r1, [sp, 0x4] mov r0, r8 adds r1, r6, 0 adds r2, r4, 0 bl sprite_new movs r0, 0 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sAA_create_new_sprite thumb_func_start sAB_unknown sAB_unknown: @ 809AAA8 push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl sub_8097B78 movs r0, 0 pop {r1} bx r1 thumb_func_end sAB_unknown thumb_func_start sub_809AAC4 sub_809AAC4: @ 809AAC4 push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active cmp r0, 0 bne _0809AAE4 bl sub_80983E8 ldr r1, =sub_80983C4 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 b _0809AAE6 .pool _0809AAE4: movs r0, 0 _0809AAE6: pop {r4} pop {r1} bx r1 thumb_func_end sub_809AAC4 thumb_func_start sub_809AAEC sub_809AAEC: @ 809AAEC push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active cmp r0, 0 beq _0809AAFC movs r0, 0 b _0809AB3A _0809AAFC: ldr r2, =gMapObjects ldr r0, =gSelectedMapObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0809AB2C bl sub_80984A0 ldr r1, =sub_809847C adds r0, r4, 0 bl SetupNativeScript b _0809AB38 .pool _0809AB2C: bl sub_80983E8 ldr r1, =sub_80983C4 adds r0, r4, 0 bl SetupNativeScript _0809AB38: movs r0, 0x1 _0809AB3A: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809AAEC thumb_func_start s6B_release s6B_release: @ 809AB44 push {lr} bl textbox_close movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C bl sub_809757C movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s6B_release thumb_func_start s6C_release_2 s6C_release_2: @ 809AB7C push {r4,lr} bl textbox_close ldr r4, =gMapObjects ldr r0, =gSelectedMapObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r1, r0, r4 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 beq _0809AB9E adds r0, r1, 0 bl FieldObjectClearAnimIfSpecialAnimFinished _0809AB9E: movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C bl sub_809757C movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s6C_release_2 thumb_func_start s67_execute_box s67_execute_box: @ 809ABD4 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord cmp r0, 0 bne _0809ABE2 ldr r0, [r4, 0x64] _0809ABE2: bl box_related_two__2 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s67_execute_box thumb_func_start sub_809ABF0 sub_809ABF0: @ 809ABF0 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord cmp r0, 0 bne _0809ABFE ldr r0, [r4, 0x64] _0809ABFE: bl sub_8098238 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809ABF0 thumb_func_start s9B_unknown s9B_unknown: @ 809AC0C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r3, r0, 0 cmp r3, 0 bne _0809AC1C ldr r3, [r4, 0x64] _0809AC1C: ldr r2, =gTextFlags ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2] adds r0, r3, 0 bl box_related_two__3 movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s9B_unknown thumb_func_start sub_809AC3C sub_809AC3C: @ 809AC3C push {r4,r5,lr} sub sp, 0xC adds r5, r0, 0 bl ScriptReadWord adds r4, r0, 0 cmp r4, 0 bne _0809AC4E ldr r4, [r5, 0x64] _0809AC4E: bl sub_81973A4 movs r0, 0 movs r1, 0x1 bl sub_81973C4 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0 add sp, 0xC pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809AC3C thumb_func_start sub_809AC78 sub_809AC78: @ 809AC78 push {lr} ldr r1, =sub_809833C bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_809AC78 thumb_func_start s68_close_box s68_close_box: @ 809AC8C push {lr} bl textbox_close movs r0, 0 pop {r1} bx r1 thumb_func_end s68_close_box thumb_func_start sub_809AC98 sub_809AC98: @ 809AC98 push {lr} ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0809ACB8 movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0809ACB8 movs r0, 0 b _0809ACBA .pool _0809ACB8: movs r0, 0x1 _0809ACBA: pop {r1} bx r1 thumb_func_end sub_809AC98 thumb_func_start sub_809ACC0 sub_809ACC0: @ 809ACC0 push {lr} ldr r1, =sub_809AC98 bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_809ACC0 thumb_func_start s6E_yes_no s6E_yes_no: @ 809ACD4 push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r2, 0x1 str r2, [r0, 0x8] adds r0, r3, 0 bl yes_no_box lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809ACF6 movs r0, 0 b _0809ACFC _0809ACF6: bl ScriptContext1_Stop movs r0, 0x1 _0809ACFC: pop {r1} bx r1 thumb_func_end s6E_yes_no thumb_func_start s6F_multichoice s6F_multichoice: @ 809AD00 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r4, r3, 0x1 str r4, [r0, 0x8] ldrb r3, [r3, 0x1] adds r4, 0x1 str r4, [r0, 0x8] adds r0, r5, 0 bl Multichoice lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809AD2E movs r0, 0 b _0809AD34 _0809AD2E: bl ScriptContext1_Stop movs r0, 0x1 _0809AD34: pop {r4,r5} pop {r1} bx r1 thumb_func_end s6F_multichoice thumb_func_start sub_809AD3C sub_809AD3C: @ 809AD3C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r2, [r0, 0x8] ldrb r1, [r2] mov r8, r1 adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r5, r3, 0x1 str r5, [r0, 0x8] ldrb r6, [r3, 0x1] adds r4, r5, 0x1 str r4, [r0, 0x8] ldrb r3, [r5, 0x1] adds r4, 0x1 str r4, [r0, 0x8] str r6, [sp] mov r0, r8 bl sub_80E1E58 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809AD7A movs r0, 0 b _0809AD80 _0809AD7A: bl ScriptContext1_Stop movs r0, 0x1 _0809AD80: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809AD3C thumb_func_start sub_809AD8C sub_809AD8C: @ 809AD8C movs r0, 0 bx lr thumb_func_end sub_809AD8C thumb_func_start sub_809AD90 sub_809AD90: @ 809AD90 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 ldr r2, [r0, 0x8] ldrb r1, [r2] mov r8, r1 adds r2, 0x1 str r2, [r0, 0x8] ldrb r1, [r2] adds r3, r2, 0x1 str r3, [r0, 0x8] ldrb r2, [r2, 0x1] adds r5, r3, 0x1 str r5, [r0, 0x8] ldrb r6, [r3, 0x1] adds r4, r5, 0x1 str r4, [r0, 0x8] ldrb r3, [r5, 0x1] adds r4, 0x1 str r4, [r0, 0x8] str r6, [sp] mov r0, r8 bl sub_80E21D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0809ADCE movs r0, 0 b _0809ADD4 _0809ADCE: bl ScriptContext1_Stop movs r0, 0x1 _0809ADD4: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809AD90 thumb_func_start s73_nop_skip_word s73_nop_skip_word: @ 809ADE0 ldr r1, [r0, 0x8] adds r1, 0x4 str r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end s73_nop_skip_word thumb_func_start sub_809ADEC sub_809ADEC: @ 809ADEC ldr r1, [r0, 0x8] adds r1, 0x4 str r1, [r0, 0x8] movs r0, 0 bx lr thumb_func_end sub_809ADEC thumb_func_start sub_809ADF8 sub_809ADF8: @ 809ADF8 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r3, [r4, 0x8] ldrb r1, [r3] adds r3, 0x1 str r3, [r4, 0x8] ldrb r2, [r3] adds r3, 0x1 str r3, [r4, 0x8] bl sub_80E2900 movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809ADF8 thumb_func_start s76_close_picture_box s76_close_picture_box: @ 809AE28 push {r4,lr} adds r4, r0, 0 bl picbox_close adds r1, r0, 0 cmp r1, 0 beq _0809AE40 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 b _0809AE42 _0809AE40: movs r0, 0 _0809AE42: pop {r4} pop {r1} bx r1 thumb_func_end s76_close_picture_box thumb_func_start sub_809AE48 sub_809AE48: @ 809AE48 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] cmp r2, 0 beq _0809AE5C adds r0, r2, 0 bl sub_812FDA8 _0809AE5C: bl sub_80F8ADC bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809AE48 thumb_func_start sub_809AE6C sub_809AE6C: @ 809AE6C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x20 bl ScriptReadWord adds r1, r0, 0 ldr r4, =gStringVar4 adds r1, 0x6 adds r0, r4, 0 bl StringExpandPlaceholders movs r2, 0x1 negs r2, r2 movs r0, 0x6 adds r1, r4, 0 bl GetStringWidth lsrs r0, 3 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1C bls _0809AE9C movs r7, 0x1C _0809AE9C: movs r5, 0x4 ldrb r0, [r4] adds r2, r7, 0x2 add r1, sp, 0x18 mov r8, r1 cmp r0, 0xFF beq _0809AEC0 adds r1, r4, 0 _0809AEAC: ldrb r0, [r1] adds r1, 0x1 cmp r0, 0xFE bne _0809AEBA adds r0, r5, 0x3 lsls r0, 24 lsrs r5, r0, 24 _0809AEBA: ldrb r0, [r1] cmp r0, 0xFF bne _0809AEAC _0809AEC0: cmp r5, 0x12 bls _0809AEC6 movs r5, 0x12 _0809AEC6: lsls r0, r2, 24 lsrs r0, 24 movs r2, 0x1E subs r2, r0 lsrs r0, r2, 31 adds r2, r0 asrs r2, 1 lsls r2, 24 adds r0, r5, 0x2 lsls r0, 24 lsrs r0, 24 movs r4, 0x14 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 lsls r4, 24 lsrs r6, r2, 24 movs r0, 0x80 lsls r0, 17 adds r2, r0 lsrs r2, 24 lsrs r3, r4, 24 movs r1, 0x80 lsls r1, 18 adds r4, r1 lsrs r4, 24 subs r6, r2, r6 subs r6, 0x1 lsls r6, 3 adds r6, 0x3 lsls r6, 24 lsrs r6, 24 subs r4, r3 subs r4, 0x1 lsls r4, 27 lsrs r4, 24 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 str r7, [sp] str r5, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x1 str r0, [sp, 0xC] add r0, sp, 0x10 movs r1, 0 bl sub_8198A50 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] str r1, [sp, 0x1C] ldr r5, =gUnknown_03000F30 mov r0, r8 bl AddWindow strb r0, [r5] ldrb r0, [r5] movs r1, 0x85 lsls r1, 2 movs r2, 0xE0 bl sub_809882C ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r5] movs r1, 0x11 bl FillWindowPixelBuffer ldrb r0, [r5] ldr r2, =gStringVar4 str r4, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x6 adds r3, r6, 0 bl PrintTextOnWindow ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram movs r0, 0 add sp, 0x20 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_809AE6C thumb_func_start sub_809AF94 sub_809AF94: @ 809AF94 push {lr} bl sub_809BDB4 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_809AF94 thumb_func_start sBD_virtual_message sBD_virtual_message: @ 809AFA0 push {lr} bl ScriptReadWord ldr r1, =gUnknown_020375C4 ldr r1, [r1] subs r0, r1 bl box_related_two__2 movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sBD_virtual_message thumb_func_start s7D_load_pokename s7D_load_pokename: @ 809AFBC push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r2, [r4] movs r1, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s7D_load_pokename thumb_func_start s7E_load_first_pokenames s7E_load_first_pokenames: @ 809AFFC push {r4,lr} ldr r1, [r0, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldr r0, =gUnknown_085102D4 lsls r2, 2 adds r2, r0 ldr r4, [r2] bl sub_8139688 lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData movs r1, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s7E_load_first_pokenames thumb_func_start s7F_load_pokename_team s7F_load_pokename_team: @ 809B048 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r4, [r4] movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s7F_load_pokename_team thumb_func_start s80_load_item_name s80_load_item_name: @ 809B090 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r1, [r4] bl CopyItemName movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s80_load_item_name thumb_func_start sub_809B0C4 sub_809B0C4: @ 809B0C4 push {r4-r6,lr} adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 ldr r0, =gUnknown_085102D4 lsls r6, 2 adds r6, r0 ldr r1, [r6] adds r0, r4, 0 bl CopyItemNameHandlePlural movs r0, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_809B0C4 thumb_func_start sub_809B114 sub_809B114: @ 809B114 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 ldr r0, =gUnknown_085102D4 lsls r4, 2 adds r4, r0 ldr r0, [r4] lsrs r1, 11 ldr r2, =gUnknown_085A5C09 adds r1, r2 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809B114 thumb_func_start s82_load_item_name s82_load_item_name: @ 809B150 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r2, [r4] movs r1, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s82_load_item_name thumb_func_start s83_load_textvar_var s83_load_textvar_var: @ 809B190 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 bl sub_80EF370 adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_085102D4 lsls r5, 2 adds r5, r0 ldr r0, [r5] adds r1, r4, 0 movs r2, 0 bl ConvertIntToDecimalStringN movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s83_load_textvar_var thumb_func_start s84_load_textvar_std_expression s84_load_textvar_std_expression: @ 809B1D4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r2, [r4] ldr r1, =gUnknown_0858BAF0 lsrs r0, 14 adds r0, r1 ldr r1, [r0] adds r0, r2, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s84_load_textvar_std_expression thumb_func_start sub_809B214 sub_809B214: @ 809B214 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 ldr r0, =gUnknown_085102D4 lsls r4, 2 adds r4, r0 ldr r0, [r4] lsls r1, 24 lsrs r1, 24 bl sub_818E868 movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809B214 thumb_func_start s85_load_textvar_pointer s85_load_textvar_pointer: @ 809B248 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadWord adds r1, r0, 0 ldr r0, =gUnknown_085102D4 lsls r4, 2 adds r4, r0 ldr r0, [r4] bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s85_load_textvar_pointer thumb_func_start sBE_virtual_load_text sBE_virtual_load_text: @ 809B270 push {lr} bl ScriptReadWord adds r1, r0, 0 ldr r0, =gUnknown_020375C4 ldr r0, [r0] subs r1, r0 ldr r0, =gStringVar4 bl StringExpandPlaceholders movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sBE_virtual_load_text thumb_func_start sBF_virtual_load_textbuffer sBF_virtual_load_textbuffer: @ 809B294 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadWord adds r1, r0, 0 ldr r0, =gUnknown_020375C4 ldr r0, [r0] subs r1, r0 ldr r0, =gUnknown_085102D4 lsls r4, 2 adds r4, r0 ldr r0, [r4] bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sBF_virtual_load_textbuffer thumb_func_start sC6_load_textvar_box_label sC6_load_textvar_box_label: @ 809B2C8 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r4, [r4] lsls r0, 24 lsrs r0, 24 bl sav3_get_box_name adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sC6_load_textvar_box_label thumb_func_start s79_give_pokemon s79_give_pokemon: @ 809B304 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x8 adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 ldr r0, [r4, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 bl ScriptReadWord mov r8, r0 adds r0, r4, 0 bl ScriptReadWord ldr r1, [r4, 0x8] ldrb r2, [r1] adds r1, 0x1 str r1, [r4, 0x8] ldr r4, =gScriptResult str r0, [sp] str r2, [sp, 0x4] adds r0, r6, 0 mov r1, r9 adds r2, r5, 0 mov r3, r8 bl sub_80F9244 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end s79_give_pokemon thumb_func_start s7A_create_egg s7A_create_egg: @ 809B384 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r4, =gScriptResult bl sub_80F92C8 lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s7A_create_egg thumb_func_start s7B_change_pokedata_AP s7B_change_pokedata_AP: @ 809B3B0 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 adds r2, r4, 0 bl sub_80F9400 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end s7B_change_pokedata_AP thumb_func_start sub_809B3DC sub_809B3DC: @ 809B3DC push {r4-r7,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r7, r0, 16 ldr r1, =gScriptResult movs r0, 0x6 strh r0, [r1] movs r6, 0 b _0809B42A .pool _0809B3F4: adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _0809B424 adds r0, r4, 0 adds r1, r7, 0 bl pokemon_has_move lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809B424 ldr r0, =gScriptResult strh r6, [r0] ldr r0, =gSpecialVar_0x8004 strh r5, [r0] b _0809B44A .pool _0809B424: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0809B42A: cmp r6, 0x5 bhi _0809B44A movs r0, 0x64 adds r1, r6, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0809B3F4 _0809B44A: movs r0, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_809B3DC thumb_func_start s90_AddMoney @ int s90_AddMoney(script_env *env) s90_AddMoney: @ 809B458 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _0809B47E ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 adds r1, r2, 0 bl AddMoney _0809B47E: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s90_AddMoney thumb_func_start s91_SubtractMoney @ int s91_SubtractMoney(script_env *env) s91_SubtractMoney: @ 809B48C push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _0809B4B2 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 adds r1, r2, 0 bl SubtractMoney _0809B4B2: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s91_SubtractMoney thumb_func_start s92_check_money @ int s92_check_money(script_env *env) s92_check_money: @ 809B4C0 push {r4,lr} adds r4, r0, 0 bl ScriptReadWord adds r2, r0, 0 ldr r0, [r4, 0x8] ldrb r1, [r0] adds r0, 0x1 str r0, [r4, 0x8] cmp r1, 0 bne _0809B4EE ldr r4, =gScriptResult ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 adds r1, r2, 0 bl IsEnoughMoney lsls r0, 24 lsrs r0, 24 strh r0, [r4] _0809B4EE: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s92_check_money thumb_func_start s93_display_money @ int s93_display_money(script_env *env) s93_display_money: @ 809B500 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r1, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r1, 0 bne _0809B530 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 bl GetMoney adds r1, r5, 0 adds r2, r4, 0 bl sub_80E52EC _0809B530: movs r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end s93_display_money thumb_func_start s94_hide_money s94_hide_money: @ 809B53C push {lr} bl sub_80E5384 movs r0, 0 pop {r1} bx r1 thumb_func_end s94_hide_money thumb_func_start s95_update_money @ int s95_update_money(script_env *env) s95_update_money: @ 809B548 push {lr} ldr r1, [r0, 0x8] adds r1, 0x1 adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r1, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r1, 0 bne _0809B56E ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 bl GetMoney bl sub_80E52D4 _0809B56E: movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s95_update_money thumb_func_start sub_809B578 sub_809B578: @ 809B578 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl GetCoins lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 adds r2, r4, 0 bl ShowCoinsWindow movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B578 thumb_func_start sC1_hide_coins sC1_hide_coins: @ 809B5A0 push {lr} ldr r1, [r0, 0x8] adds r1, 0x2 str r1, [r0, 0x8] bl HideCoinsWindow movs r0, 0 pop {r1} bx r1 thumb_func_end sC1_hide_coins thumb_func_start sC2_update_coins sC2_update_coins: @ 809B5B4 push {lr} ldr r1, [r0, 0x8] adds r1, 0x2 str r1, [r0, 0x8] bl GetCoins lsls r0, 16 lsrs r0, 16 bl PrintCoinsString movs r0, 0 pop {r1} bx r1 thumb_func_end sC2_update_coins thumb_func_start s5C_trainer_battle_configure_and_start s5C_trainer_battle_configure_and_start: @ 809B5D0 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] bl TrainerBattleConfigure str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s5C_trainer_battle_configure_and_start thumb_func_start sub_809B5E4 sub_809B5E4: @ 809B5E4 push {lr} bl sub_80B17E0 movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809B5E4 thumb_func_start sub_809B5F0 sub_809B5F0: @ 809B5F0 push {r4,lr} adds r4, r0, 0 bl sub_80B1AF8 str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809B5F0 thumb_func_start sub_809B604 @ bool8 sub_809B604(struct script_env *env) sub_809B604: @ 809B604 push {r4,lr} adds r4, r0, 0 bl sub_80B1B10 str r0, [r4, 0x8] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809B604 thumb_func_start s60_check_trainer_flag s60_check_trainer_flag: @ 809B618 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_check strb r0, [r4, 0x2] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end s60_check_trainer_flag thumb_func_start s61_set_trainer_flag s61_set_trainer_flag: @ 809B63C push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_set movs r0, 0 pop {r1} bx r1 thumb_func_end s61_set_trainer_flag thumb_func_start s62_unset_trainer_flag s62_unset_trainer_flag: @ 809B658 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl trainer_flag_clear movs r0, 0 pop {r1} bx r1 thumb_func_end s62_unset_trainer_flag thumb_func_start sB6_load_battle sB6_load_battle: @ 809B674 push {r4-r6,lr} adds r4, r0, 0 bl ScriptReadHalfword adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r0, [r4, 0x8] ldrb r6, [r0] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadHalfword adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r6, 0 bl sub_80F93A0 movs r0, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sB6_load_battle thumb_func_start sub_809B6A8 sub_809B6A8: @ 809B6A8 push {lr} bl sub_80B08A8 bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809B6A8 thumb_func_start s86_pokemart s86_pokemart: @ 809B6B8 push {lr} bl ScriptReadWord bl CreatePokemartMenu bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end s86_pokemart thumb_func_start s87_pokemartdecor s87_pokemartdecor: @ 809B6CC push {lr} bl ScriptReadWord bl CreateDecorationShop1Menu bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end s87_pokemartdecor thumb_func_start s88_pokemartbp s88_pokemartbp: @ 809B6E0 push {lr} bl ScriptReadWord bl CreateDecorationShop2Menu bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end s88_pokemartbp thumb_func_start s89_open_casino_game1 s89_open_casino_game1: @ 809B6F4 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 ldr r1, =c2_exit_to_overworld_1_continue_scripts_restart_music bl sub_812A540 bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end s89_open_casino_game1 thumb_func_start berry_script_cmd @ bool8 berry_script_cmd(struct script_env *env) berry_script_cmd: @ 809B71C push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] adds r1, 0x1 str r1, [r0, 0x8] ldrb r3, [r1] adds r2, r1, 0x1 str r2, [r0, 0x8] ldrb r4, [r1, 0x1] adds r2, 0x1 str r2, [r0, 0x8] cmp r3, 0 bne _0809B744 adds r0, r5, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0 bl PlantBerryTree b _0809B750 _0809B744: adds r0, r5, 0 adds r1, r3, 0 adds r2, r4, 0 movs r3, 0 bl PlantBerryTree _0809B750: movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end berry_script_cmd thumb_func_start sub_809B758 sub_809B758: @ 809B758 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl GetPriceReduction lsls r0, 24 lsrs r0, 24 strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809B758 thumb_func_start sub_809B784 sub_809B784: @ 809B784 push {lr} bl sub_81B9404 bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809B784 thumb_func_start sub_809B794 sub_809B794: @ 809B794 push {lr} bl sub_80F840C bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809B794 thumb_func_start sub_809B7A4 sub_809B7A4: @ 809B7A4 push {lr} bl sub_80F8484 bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 thumb_func_end sub_809B7A4 thumb_func_start sub_809B7B4 sub_809B7B4: @ 809B7B4 push {lr} ldr r0, =gUnknown_02039F2C ldrb r0, [r0] bl sub_80F84C4 bl ScriptContext1_Stop movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_809B7B4 thumb_func_start s9C_execute_HM s9C_execute_HM: @ 809B7CC push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_020375D0 strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl FieldEffectStart movs r0, 0 pop {r1} bx r1 .pool thumb_func_end s9C_execute_HM thumb_func_start s9D_set_HM_animation_data s9D_set_HM_animation_data: @ 809B7F4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, =gFieldEffectSpawnParams lsls r4, 2 adds r4, r1 lsls r0, 16 asrs r0, 16 str r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end s9D_set_HM_animation_data thumb_func_start sub_809B824 sub_809B824: @ 809B824 push {lr} ldr r0, =gUnknown_020375D0 ldrb r0, [r0] bl FieldEffectActiveListContains lsls r0, 24 cmp r0, 0 beq _0809B83C movs r0, 0 b _0809B83E .pool _0809B83C: movs r0, 0x1 _0809B83E: pop {r1} bx r1 thumb_func_end sub_809B824 thumb_func_start s9E_checkarray_HM_animation s9E_checkarray_HM_animation: @ 809B844 push {r4,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet ldr r1, =gUnknown_020375D0 strh r0, [r1] ldr r1, =sub_809B824 adds r0, r4, 0 bl SetupNativeScript movs r0, 0x1 pop {r4} pop {r1} bx r1 .pool thumb_func_end s9E_checkarray_HM_animation thumb_func_start s9F_changeposition_fly s9F_changeposition_fly: @ 809B870 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_8084D1C movs r0, 0 pop {r1} bx r1 thumb_func_end s9F_changeposition_fly thumb_func_start sA0_check_gender sA0_check_gender: @ 809B88C ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] strh r0, [r1] movs r0, 0 bx lr .pool thumb_func_end sA0_check_gender thumb_func_start sA1_play_cry sA1_play_cry: @ 809B8A4 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl PlayCry5 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sA1_play_cry thumb_func_start sub_809B8DC sub_809B8DC: @ 809B8DC push {lr} ldr r1, =IsCryFinished bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_809B8DC thumb_func_start sA2_setmaptile sA2_setmaptile: @ 809B8F0 push {r4-r7,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r7, r0, 16 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 adds r1, r6, 0x7 lsls r1, 16 lsrs r6, r1, 16 adds r1, r5, 0x7 lsls r1, 16 lsrs r5, r1, 16 cmp r0, 0 bne _0809B954 adds r0, r6, 0 adds r1, r5, 0 adds r2, r7, 0 bl MapGridSetMetatileIdAt b _0809B966 _0809B954: movs r1, 0xC0 lsls r1, 4 adds r0, r1, 0 adds r2, r7, 0 orrs r2, r0 adds r0, r6, 0 adds r1, r5, 0 bl MapGridSetMetatileIdAt _0809B966: movs r0, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sA2_setmaptile thumb_func_start sAC_open_door sAC_open_door: @ 809B970 push {r4,r5,lr} adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 adds r5, 0x7 lsls r5, 16 lsrs r5, 16 movs r0, 0xE0 lsls r0, 11 adds r4, r0 lsrs r4, 16 adds r0, r5, 0 adds r1, r4, 0 bl cur_mapdata_get_door_sound_at lsls r0, 16 lsrs r0, 16 bl PlaySE adds r0, r5, 0 adds r1, r4, 0 bl task_overworld_door_add_if_role_69_for_opening_door_at movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sAC_open_door thumb_func_start sub_809B9C8 sub_809B9C8: @ 809B9C8 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_808A8AC movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B9C8 thumb_func_start sub_809BA0C sub_809BA0C: @ 809BA0C push {lr} bl sub_808A91C lsls r0, 24 cmp r0, 0 beq _0809BA1C movs r0, 0 b _0809BA1E _0809BA1C: movs r0, 0x1 _0809BA1E: pop {r1} bx r1 thumb_func_end sub_809BA0C thumb_func_start sub_809BA24 sub_809BA24: @ 809BA24 push {lr} ldr r1, =sub_809BA0C bl SetupNativeScript movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_809BA24 thumb_func_start sub_809BA38 sub_809BA38: @ 809BA38 push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_808A854 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809BA38 thumb_func_start sub_809BA7C sub_809BA7C: @ 809BA7C push {r4,r5,lr} adds r5, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r1, r0, 0 lsls r1, 16 adds r4, 0x7 lsls r4, 16 lsrs r4, 16 movs r0, 0xE0 lsls r0, 11 adds r1, r0 lsrs r1, 16 adds r0, r4, 0 bl sub_808A880 movs r0, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809BA7C thumb_func_start sub_809BAC0 sub_809BAC0: @ 809BAC0 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] adds r0, 0x1 str r0, [r4, 0x8] adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r0, r4, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_809BAC0 thumb_func_start sub_809BAFC sub_809BAFC: @ 809BAFC movs r0, 0 bx lr thumb_func_end sub_809BAFC thumb_func_start sB3_get_coin_amount sB3_get_coin_amount: @ 809BB00 push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl GetVarPointer adds r4, r0, 0 bl GetCoins strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sB3_get_coin_amount thumb_func_start sub_809BB20 sub_809BB20: @ 809BB20 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl AddCoins lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809BB48 ldr r1, =gScriptResult movs r0, 0 b _0809BB4C .pool _0809BB48: ldr r1, =gScriptResult movs r0, 0x1 _0809BB4C: strh r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809BB20 thumb_func_start sub_809BB58 sub_809BB58: @ 809BB58 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 bl SubtractCoins lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0809BB80 ldr r1, =gScriptResult movs r0, 0 b _0809BB84 .pool _0809BB80: ldr r1, =gScriptResult movs r0, 0x1 _0809BB84: strh r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809BB58 thumb_func_start sub_809BB90 sub_809BB90: @ 809BB90 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_81A89A0 ldr r1, =gUnknown_020375CA strh r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809BB90 thumb_func_start sub_809BBB4 sub_809BBB4: @ 809BBB4 push {lr} bl sub_81A8AF8 movs r0, 0 pop {r1} bx r1 thumb_func_end sub_809BBB4 thumb_func_start ScrCmd_MossdeepGymSwitch ScrCmd_MossdeepGymSwitch: @ 809BBC0 push {lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_81A8934 movs r0, 0 pop {r1} bx r1 thumb_func_end ScrCmd_MossdeepGymSwitch thumb_func_start sub_809BBDC sub_809BBDC: @ 809BBDC push {lr} bl sub_81A895C movs r0, 0 pop {r1} bx r1 thumb_func_end sub_809BBDC thumb_func_start sub_809BBE8 sub_809BBE8: @ 809BBE8 push {lr} bl sub_80B47BC ldr r1, =gSelectedMapObject strb r0, [r1] movs r0, 0 pop {r1} bx r1 .pool thumb_func_end sub_809BBE8 thumb_func_start sub_809BBFC sub_809BBFC: @ 809BBFC push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active cmp r0, 0 beq _0809BC0C movs r0, 0 b _0809BC30 _0809BC0C: ldr r2, =gMapObjects ldr r0, =gSelectedMapObject ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0] lsls r0, 31 cmp r0, 0 beq _0809BC2E bl sub_8098630 ldr r1, =sub_8098734 adds r0, r4, 0 bl SetupNativeScript _0809BC2E: movs r0, 0x1 _0809BC30: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809BBFC thumb_func_start sCD_set_obedient_bit sCD_set_obedient_bit: @ 809BC44 push {lr} sub sp, 0x4 movs r2, 0x1 mov r1, sp strb r2, [r1] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 movs r1, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x50 mov r2, sp bl SetMonData movs r0, 0 add sp, 0x4 pop {r1} bx r1 .pool thumb_func_end sCD_set_obedient_bit thumb_func_start sCE_check_obedient_bit sCE_check_obedient_bit: @ 809BC7C push {r4,lr} bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r4, =gScriptResult movs r1, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x50 movs r2, 0 bl GetMonData strh r0, [r4] movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sCE_check_obedient_bit thumb_func_start sCF_execute_RAM_script_DMA sCF_execute_RAM_script_DMA: @ 809BCB4 push {r4,lr} adds r4, r0, 0 bl sub_8099244 adds r2, r0, 0 cmp r2, 0 beq _0809BCD0 ldr r1, =gUnknown_020375C0 ldr r0, [r4, 0x8] str r0, [r1] adds r0, r4, 0 adds r1, r2, 0 bl ScriptJump _0809BCD0: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sCF_execute_RAM_script_DMA thumb_func_start sD1_warp_v5 sD1_warp_v5: @ 809BCDC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl player_get_direction_lower_nybble lsls r0, 24 lsrs r0, 24 bl sub_808D074 bl sub_80B0244 bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sD1_warp_v5 thumb_func_start sub_809BD70 sub_809BD70: @ 809BD70 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r3, r0, 16 ldr r0, [r4, 0x8] ldrb r2, [r0] mov r1, sp strb r2, [r1] adds r0, 0x1 str r0, [r4, 0x8] cmp r3, 0x5 bhi _0809BDA6 movs r0, 0x64 muls r0, r3 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x23 mov r2, sp bl SetMonData _0809BDA6: movs r0, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809BD70 thumb_func_start sub_809BDB4 sub_809BDB4: @ 809BDB4 push {r4,lr} ldr r4, =gUnknown_03000F30 ldrb r0, [r4] movs r1, 0x1 bl sub_819746C ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_809BDB4 thumb_func_start sub_809BDD0 sub_809BDD0: @ 809BDD0 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r4, [r4] bl GetTrainerClassNameFromId adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809BDD0 thumb_func_start sub_809BE0C sub_809BE0C: @ 809BE0C push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] adds r1, 0x1 str r1, [r0, 0x8] bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_085102D4 lsls r4, 2 adds r4, r1 ldr r4, [r4] bl GetTrainerNameFromId adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_809BE0C thumb_func_start sub_809BE48 sub_809BE48: @ 809BE48 ldr r1, =gUnknown_020375CA strh r0, [r1] bx lr .pool thumb_func_end sub_809BE48 thumb_func_start sub_809BE54 sub_809BE54: @ 809BE54 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r5, r0, 0 ldr r0, [r5, 0x8] ldrb r1, [r0] mov r9, r1 adds r0, 0x1 str r0, [r5, 0x8] ldrb r1, [r0] mov r8, r1 adds r1, r0, 0x1 str r1, [r5, 0x8] ldrb r6, [r0, 0x1] adds r1, 0x1 str r1, [r5, 0x8] adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 bl ScriptReadHalfword lsls r0, 16 lsrs r0, 16 bl VarGet mov r1, r9 lsls r1, 24 asrs r1, 24 mov r9, r1 mov r1, r8 lsls r1, 24 asrs r1, 24 mov r8, r1 lsls r6, 24 asrs r6, 24 lsls r4, 24 asrs r4, 24 lsls r0, 24 asrs r0, 24 str r0, [sp] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl warp1_set bl sub_80AF79C bl player_avatar_init_params_reset movs r0, 0x1 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809BE54 .align 2, 0 @ Don't pad with nop.