diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-11 09:55:45 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-11 09:55:45 -0400 |
commit | d2b0f36b7daa93d0708f19db347ad2befe2a4f07 (patch) | |
tree | f08aa20fb6995fedf34e374547715c78f70ea236 | |
parent | 6af8c04d8fa6aaeaeb6c8b919e7770a65b9a883d (diff) |
Port PSS utility functions
-rw-r--r-- | asm/pokemon_storage_system.s | 23026 | ||||
-rw-r--r-- | asm/pokemon_storage_system_2.s | 22320 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/field_specials.c | 4 | ||||
-rw-r--r-- | src/pokemon.c | 2 | ||||
-rw-r--r-- | src/pokemon_storage_system.c | 189 | ||||
-rw-r--r-- | src/quest_log.c | 8 |
8 files changed, 22521 insertions, 23037 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 3227d5dcd..2428f2984 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,23030 +5,4 @@ .text - thumb_func_start sub_808B9C0 -sub_808B9C0: @ 808B9C0 - push {lr} - ldr r1, _0808B9D0 @ =gPokemonStoragePtr - ldr r1, [r1] - ldr r2, _0808B9D4 @ =0x000083d0 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_0808B9D0: .4byte gPokemonStoragePtr -_0808B9D4: .4byte 0x000083d0 - thumb_func_end sub_808B9C0 - - thumb_func_start sub_808B9D8 -sub_808B9D8: @ 808B9D8 - push {lr} - adds r1, r0, 0 - ldr r0, _0808B9EC @ =gPokemonStoragePtr - ldr r0, [r0] - ldr r2, _0808B9F0 @ =0x000083d0 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_0808B9EC: .4byte gPokemonStoragePtr -_0808B9F0: .4byte 0x000083d0 - thumb_func_end sub_808B9D8 - - thumb_func_start StorageGetCurrentBox -StorageGetCurrentBox: @ 808B9F4 - ldr r0, _0808B9FC @ =gPokemonStoragePtr - ldr r0, [r0] - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808B9FC: .4byte gPokemonStoragePtr - thumb_func_end StorageGetCurrentBox - - thumb_func_start sub_808BA00 -sub_808BA00: @ 808BA00 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bhi _0808BA10 - ldr r0, _0808BA14 @ =gPokemonStoragePtr - ldr r0, [r0] - strb r1, [r0] -_0808BA10: - pop {r0} - bx r0 - .align 2, 0 -_0808BA14: .4byte gPokemonStoragePtr - thumb_func_end sub_808BA00 - - thumb_func_start GetBoxMonDataFromAnyBox -GetBoxMonDataFromAnyBox: @ 808BA18 - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BA54 - cmp r4, 0x1D - bhi _0808BA54 - ldr r2, _0808BA50 @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - adds r1, r5, 0 - bl GetBoxMonData - b _0808BA56 - .align 2, 0 -_0808BA50: .4byte gPokemonStoragePtr -_0808BA54: - movs r0, 0 -_0808BA56: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetBoxMonDataFromAnyBox - - thumb_func_start SetBoxMonDataFromAnyBox -SetBoxMonDataFromAnyBox: @ 808BA5C - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BA94 - cmp r4, 0x1D - bhi _0808BA94 - ldr r2, _0808BA9C @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - adds r1, r5, 0 - adds r2, r6, 0 - bl SetBoxMonData -_0808BA94: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808BA9C: .4byte gPokemonStoragePtr - thumb_func_end SetBoxMonDataFromAnyBox - - thumb_func_start GetBoxMonDataFromSelectedBox -GetBoxMonDataFromSelectedBox: @ 808BAA0 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0808BABC @ =gPokemonStoragePtr - ldr r0, [r0] - ldrb r0, [r0] - adds r1, r3, 0 - bl GetBoxMonDataFromAnyBox - pop {r1} - bx r1 - .align 2, 0 -_0808BABC: .4byte gPokemonStoragePtr - thumb_func_end GetBoxMonDataFromSelectedBox - - thumb_func_start SetBoxMonDataFromSelectedBox -SetBoxMonDataFromSelectedBox: @ 808BAC0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0808BAE0 @ =gPokemonStoragePtr - ldr r0, [r0] - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl SetBoxMonDataFromAnyBox - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BAE0: .4byte gPokemonStoragePtr - thumb_func_end SetBoxMonDataFromSelectedBox - - thumb_func_start GetBoxMonNickFromAnyBox -GetBoxMonNickFromAnyBox: @ 808BAE4 - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BB20 - cmp r4, 0x1D - bhi _0808BB20 - ldr r2, _0808BB1C @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - movs r1, 0x2 - adds r2, r5, 0 - bl GetBoxMonData - b _0808BB24 - .align 2, 0 -_0808BB1C: .4byte gPokemonStoragePtr -_0808BB20: - movs r0, 0xFF - strb r0, [r5] -_0808BB24: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end GetBoxMonNickFromAnyBox - - thumb_func_start SetBoxMonNickFromAnyBox -SetBoxMonNickFromAnyBox: @ 808BB2C - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BB62 - cmp r4, 0x1D - bhi _0808BB62 - ldr r2, _0808BB68 @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - movs r1, 0x2 - adds r2, r5, 0 - bl SetBoxMonData -_0808BB62: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BB68: .4byte gPokemonStoragePtr - thumb_func_end SetBoxMonNickFromAnyBox - - thumb_func_start GetAndCopyBoxMonDataFromAnyBox -GetAndCopyBoxMonDataFromAnyBox: @ 808BB6C - push {r4-r6,lr} - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BBAC - cmp r4, 0x1D - bhi _0808BBAC - ldr r2, _0808BBA8 @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - adds r1, r5, 0 - adds r2, r6, 0 - bl GetBoxMonData - b _0808BBAE - .align 2, 0 -_0808BBA8: .4byte gPokemonStoragePtr -_0808BBAC: - movs r0, 0 -_0808BBAE: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetAndCopyBoxMonDataFromAnyBox - - thumb_func_start CopyBoxMonFromAnyBox -CopyBoxMonFromAnyBox: @ 808BBB4 - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r4, 0xD - bhi _0808BBEA - cmp r1, 0x1D - bhi _0808BBEA - ldr r0, _0808BBF0 @ =gPokemonStoragePtr - ldr r0, [r0] - lsls r3, r1, 2 - adds r3, r1 - lsls r3, 4 - lsls r2, r4, 2 - adds r2, r4 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - adds r3, r1 - adds r0, r3 - adds r0, 0x4 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy -_0808BBEA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BBF0: .4byte gPokemonStoragePtr - thumb_func_end CopyBoxMonFromAnyBox - - thumb_func_start sub_808BBF4 -sub_808BBF4: @ 808BBF4 - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r4, 0xD - bhi _0808BC2A - cmp r2, 0x1D - bhi _0808BC2A - ldr r0, _0808BC30 @ =gPokemonStoragePtr - ldr r1, [r0] - lsls r3, r2, 2 - adds r3, r2 - lsls r3, 4 - lsls r2, r4, 2 - adds r2, r4 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - adds r3, r0 - adds r1, r3 - adds r1, 0x4 - adds r0, r5, 0 - movs r2, 0x50 - bl memcpy -_0808BC2A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BC30: .4byte gPokemonStoragePtr - thumb_func_end sub_808BBF4 - - thumb_func_start sub_808BC34 -sub_808BC34: @ 808BC34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r4, [sp, 0x30] - ldr r5, [sp, 0x34] - ldr r6, [sp, 0x3C] - mov r12, r6 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r0, r12 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r7, 0xD - bhi _0808BCA0 - cmp r6, 0x1D - bhi _0808BCA0 - ldr r2, _0808BCB0 @ =gPokemonStoragePtr - lsls r0, r7, 2 - adds r0, r7 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - adds r0, r1 - str r5, [sp] - ldr r1, [sp, 0x38] - str r1, [sp, 0x4] - str r3, [sp, 0x8] - ldr r1, [sp, 0x40] - str r1, [sp, 0xC] - mov r1, r9 - mov r2, r8 - adds r3, r4, 0 - bl CreateBoxMon -_0808BCA0: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808BCB0: .4byte gPokemonStoragePtr - thumb_func_end sub_808BC34 - - thumb_func_start sub_808BCB4 -sub_808BCB4: @ 808BCB4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BCE4 - cmp r4, 0x1D - bhi _0808BCE4 - ldr r2, _0808BCEC @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - bl ZeroBoxMonData -_0808BCE4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808BCEC: .4byte gPokemonStoragePtr - thumb_func_end sub_808BCB4 - - thumb_func_start sub_808BCF0 -sub_808BCF0: @ 808BCF0 - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BD24 - cmp r4, 0x1D - bhi _0808BD24 - ldr r2, _0808BD2C @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - adds r1, r5, 0 - bl BoxMonToMon -_0808BD24: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808BD2C: .4byte gPokemonStoragePtr - thumb_func_end sub_808BCF0 - - thumb_func_start GetBoxedMonPtr -GetBoxedMonPtr: @ 808BD30 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r3, 0xD - bhi _0808BD64 - cmp r4, 0x1D - bhi _0808BD64 - ldr r2, _0808BD60 @ =gPokemonStoragePtr - lsls r0, r3, 2 - adds r0, r3 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - adds r1, 0x4 - ldr r0, [r2] - adds r0, r1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 4 - adds r0, r1 - b _0808BD66 - .align 2, 0 -_0808BD60: .4byte gPokemonStoragePtr -_0808BD64: - movs r0, 0 -_0808BD66: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetBoxedMonPtr - - thumb_func_start GetBoxNamePtr -GetBoxNamePtr: @ 808BD6C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _0808BD7A - movs r0, 0 - b _0808BD88 -_0808BD7A: - ldr r0, _0808BD8C @ =gPokemonStoragePtr - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _0808BD90 @ =0x00008344 - adds r1, r2 - ldr r0, [r0] - adds r0, r1 -_0808BD88: - pop {r1} - bx r1 - .align 2, 0 -_0808BD8C: .4byte gPokemonStoragePtr -_0808BD90: .4byte 0x00008344 - thumb_func_end GetBoxNamePtr - - thumb_func_start sub_808BD94 -sub_808BD94: @ 808BD94 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _0808BDA2 - movs r0, 0 - b _0808BDAE -_0808BDA2: - ldr r0, _0808BDB4 @ =gPokemonStoragePtr - ldr r0, [r0] - ldr r2, _0808BDB8 @ =0x000083c2 - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] -_0808BDAE: - pop {r1} - bx r1 - .align 2, 0 -_0808BDB4: .4byte gPokemonStoragePtr -_0808BDB8: .4byte 0x000083c2 - thumb_func_end sub_808BD94 - - thumb_func_start sub_808BDBC -sub_808BDBC: @ 808BDBC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r2, 0xD - bhi _0808BDDA - cmp r1, 0xF - bhi _0808BDDA - ldr r0, _0808BDE0 @ =gPokemonStoragePtr - ldr r0, [r0] - ldr r3, _0808BDE4 @ =0x000083c2 - adds r0, r3 - adds r0, r2 - strb r1, [r0] -_0808BDDA: - pop {r0} - bx r0 - .align 2, 0 -_0808BDE0: .4byte gPokemonStoragePtr -_0808BDE4: .4byte 0x000083c2 - thumb_func_end sub_808BDBC - - thumb_func_start sub_808BDE8 -sub_808BDE8: @ 808BDE8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r0, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - adds r4, r3, 0 - ldr r2, _0808BE4C @ =0x0000ffff - cmp r3, 0x1 - bhi _0808BE0A - movs r2, 0x1 - cmp r3, 0x1 - beq _0808BE0E -_0808BE0A: - cmp r4, 0x3 - bne _0808BE58 -_0808BE0E: - lsls r0, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _0808BEA4 - cmp r1, r7 - bgt _0808BEA4 -_0808BE26: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _0808BE50 - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _0808BEA4 - cmp r2, r7 - ble _0808BE26 - b _0808BEA4 - .align 2, 0 -_0808BE4C: .4byte 0x0000ffff -_0808BE50: - adds r0, r4, 0 - b _0808BEA8 -_0808BE54: - adds r0, r5, 0 - b _0808BEA8 -_0808BE58: - lsls r0, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _0808BEA4 - cmp r1, r7 - bgt _0808BEA4 -_0808BE70: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _0808BE94 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _0808BE54 -_0808BE94: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _0808BEA4 - cmp r2, r7 - ble _0808BE70 -_0808BEA4: - movs r0, 0x1 - negs r0, r0 -_0808BEA8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808BDE8 - - thumb_func_start PSS_RenderTextToVramViaBuffer -PSS_RenderTextToVramViaBuffer: @ 808BEB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp, 0x24] - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x28] - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - ldr r1, _0808BF30 @ =0x00ffffff - ldr r0, [sp, 0x1C] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 21 - orrs r0, r1 - str r0, [sp, 0x1C] - ldr r1, _0808BF34 @ =0xffffff00 - add r5, sp, 0x1C - ldr r0, [r5, 0x4] - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - str r0, [r5, 0x4] - adds r0, r5, 0 - bl AddWindow - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r4, r0, 24 - lsrs r4, 24 - mov r0, r9 - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r6, r0, 0 - ldrb r0, [r5, 0x3] - lsls r0, 5 - adds r0, r6 - mov r8, r0 - ldr r1, [sp, 0x28] - cmp r1, 0 - bne _0808BF38 - add r0, sp, 0x14 - b _0808BF3C - .align 2, 0 -_0808BF30: .4byte 0x00ffffff -_0808BF34: .4byte 0xffffff00 -_0808BF38: - add r0, sp, 0x14 - mov r1, r9 -_0808BF3C: - strb r1, [r0] - add r1, sp, 0x14 - movs r2, 0 - movs r0, 0xF - strb r0, [r1, 0x1] - movs r0, 0xE - strb r0, [r1, 0x2] - mov r0, r10 - lsls r4, r0, 24 - lsrs r0, r4, 24 - str r2, [sp] - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0xC] - ldr r1, [sp, 0x24] - str r1, [sp, 0x10] - movs r1, 0x1 - movs r3, 0x2 - bl AddTextPrinterParameterized4 - ldr r0, [sp, 0x50] - mov r10, r4 - cmp r0, 0x6 - ble _0808BF72 - movs r0, 0x6 -_0808BF72: - ldr r4, [sp, 0x50] - subs r4, 0x6 - cmp r0, 0 - ble _0808BFA4 - adds r5, r0, 0 -_0808BF7C: - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x40 - bl CpuSet - adds r1, r7, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x40 - bl CpuSet - adds r6, 0x80 - movs r2, 0x80 - add r8, r2 - movs r0, 0x80 - lsls r0, 1 - adds r7, r0 - subs r5, 0x1 - cmp r5, 0 - bne _0808BF7C -_0808BFA4: - cmp r4, 0 - ble _0808BFC4 - add r0, sp, 0x18 - mov r2, r9 - lsls r1, r2, 4 - orrs r1, r2 - strh r1, [r0] - lsls r2, r4, 7 - ldr r1, _0808BFDC @ =0x001fffff - ands r2, r1 - movs r1, 0x80 - lsls r1, 17 - orrs r2, r1 - adds r1, r7, 0 - bl CpuSet -_0808BFC4: - mov r1, r10 - lsrs r0, r1, 24 - bl RemoveWindow - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808BFDC: .4byte 0x001fffff - thumb_func_end PSS_RenderTextToVramViaBuffer - - thumb_func_start sub_808BFE0 -sub_808BFE0: @ 808BFE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp, 0x20] - str r1, [sp, 0x24] - adds r6, r3, 0 - ldr r0, [sp, 0x4C] - mov r9, r0 - ldr r1, [sp, 0x50] - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x28] - lsls r6, 24 - lsrs r6, 24 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, [sp, 0x20] - bl StringLength_Multibyte - lsls r0, 24 - ldr r2, _0808C0CC @ =0x00ffffff - ldr r1, [sp, 0x18] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x18] - ldr r1, _0808C0D0 @ =0xffffff00 - add r2, sp, 0x18 - mov r8, r2 - ldr r0, [r2, 0x4] - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r5, [sp, 0x18] - lsrs r5, 24 - lsls r5, 5 - mov r0, r8 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, r6, 4 - orrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r7, r0, 0 - mov r0, r8 - ldrb r0, [r0, 0x3] - lsls r0, 5 - mov r8, r0 - add r8, r7 - add r0, sp, 0x14 - movs r1, 0 - strb r6, [r0] - mov r2, r9 - strb r2, [r0, 0x1] - mov r2, r10 - strb r2, [r0, 0x2] - str r1, [sp] - str r1, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - ldr r0, [sp, 0x20] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParameterized4 - lsrs r5, 1 - adds r0, r7, 0 - ldr r1, [sp, 0x24] - adds r2, r5, 0 - bl CpuSet - ldr r2, [sp, 0x24] - ldr r0, [sp, 0x28] - adds r1, r2, r0 - mov r0, r8 - adds r2, r5, 0 - bl CpuSet - adds r0, r4, 0 - bl RemoveWindow - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808C0CC: .4byte 0x00ffffff -_0808C0D0: .4byte 0xffffff00 - thumb_func_end sub_808BFE0 - - thumb_func_start CountMonsInBox -CountMonsInBox: @ 808C0D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - movs r5, 0 -_0808C0DE: - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - beq _0808C0F4 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0808C0F4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0808C0DE - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CountMonsInBox - - thumb_func_start GetFirstFreeBoxSpot -GetFirstFreeBoxSpot: @ 808C108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 -_0808C110: - lsls r1, r4, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _0808C126 - lsls r0, r4, 16 - asrs r0, 16 - b _0808C134 -_0808C126: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0808C110 - movs r0, 0x1 - negs r0, r0 -_0808C134: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetFirstFreeBoxSpot - - thumb_func_start CountPartyNonEggMons -CountPartyNonEggMons: @ 808C13C - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_0808C142: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0808C180 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0808C16A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0808C16A - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0808C16A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0808C142 - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0808C180: .4byte gPlayerParty - thumb_func_end CountPartyNonEggMons - - thumb_func_start CountPartyAliveNonEggMonsExcept -CountPartyAliveNonEggMonsExcept: @ 808C184 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_0808C18E: - cmp r5, r7 - beq _0808C1C6 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0808C1DC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0808C1C6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0808C1C6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0808C1C6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_0808C1C6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0808C18E - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808C1DC: .4byte gPlayerParty - thumb_func_end CountPartyAliveNonEggMonsExcept - - thumb_func_start CountPartyAliveNonEggMons_IgnoreVar0x8004Slot -CountPartyAliveNonEggMons_IgnoreVar0x8004Slot: @ 808C1E0 - push {lr} - ldr r0, _0808C1F4 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0808C1F4: .4byte gSpecialVar_0x8004 - thumb_func_end CountPartyAliveNonEggMons_IgnoreVar0x8004Slot - - thumb_func_start CountPartyMons -CountPartyMons: @ 808C1F8 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_0808C1FE: - movs r0, 0x64 - muls r0, r4 - ldr r1, _0808C22C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0808C216 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0808C216: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _0808C1FE - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808C22C: .4byte gPlayerParty - thumb_func_end CountPartyMons - - thumb_func_start StringCopyAndFillWithSpaces -StringCopyAndFillWithSpaces: @ 808C230 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _0808C24E - movs r0, 0 -_0808C246: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _0808C246 -_0808C24E: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end StringCopyAndFillWithSpaces - - thumb_func_start sub_808C25C -sub_808C25C: @ 808C25C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _0808C2CC - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_0808C2B2: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _0808C2B2 -_0808C2CC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808C25C - - thumb_func_start sub_808C2D8 -sub_808C2D8: @ 808C2D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _0808C382 - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, _0808C344 @ =0x040000d4 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_0808C31E: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _0808C348 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _0808C376 - .align 2, 0 -_0808C344: .4byte 0x040000d4 -_0808C348: - movs r4, 0 - strh r4, [r5] - ldr r1, _0808C394 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, _0808C398 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _0808C348 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_0808C376: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _0808C31E -_0808C382: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808C394: .4byte 0x040000d4 -_0808C398: .4byte 0x81000800 - thumb_func_end sub_808C2D8 - - thumb_func_start c3_0808C39C -c3_0808C39C: @ 808C39C - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0808C3C4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _0808C3B8 - b _0808C69C -_0808C3B8: - lsls r0, 2 - ldr r1, _0808C3C8 @ =_0808C3CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808C3C4: .4byte gTasks -_0808C3C8: .4byte _0808C3CC - .align 2, 0 -_0808C3CC: - .4byte _0808C3E0 - .4byte _0808C448 - .4byte _0808C45C - .4byte _0808C5A6 - .4byte _0808C680 -_0808C3E0: - movs r0, 0x1C @ HELPCONTEXT_BILLS_PC - bl SetHelpContext - ldrb r0, [r5, 0xA] - adds r1, r5, 0 - adds r1, 0x26 - bl sub_808C72C - bl LoadStdWindowFrameGfx - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, _0808C444 @ =gUnknown_83CDA20 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - movs r3, 0xFF - bl AddTextPrinterParameterized2 - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl CopyWindowToVram - b _0808C454 - .align 2, 0 -_0808C444: .4byte gUnknown_83CDA20 -_0808C448: - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - bne _0808C454 - b _0808C69C -_0808C454: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _0808C69C -_0808C45C: - bl Menu_ProcessInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0xC] - movs r3, 0xC - ldrsh r1, [r5, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0808C50C - cmp r1, r0 - bgt _0808C47E - subs r0, 0x1 - cmp r1, r0 - beq _0808C484 - b _0808C530 -_0808C47E: - cmp r1, 0x4 - beq _0808C50C - b _0808C530 -_0808C484: - ldrh r3, [r5, 0xA] - strh r3, [r5, 0xE] - ldr r2, _0808C504 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0808C4A2 - subs r0, r3, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _0808C4A2 - movs r0, 0x4 - strh r0, [r5, 0xE] -_0808C4A2: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0808C4BE - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0808C4BE - movs r0, 0 - strh r0, [r5, 0xE] -_0808C4BE: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r5, 0xE] - movs r3, 0xE - ldrsh r1, [r5, r3] - cmp r0, r1 - bne _0808C4CE - b _0808C69C -_0808C4CE: - movs r4, 0 - strh r2, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, _0808C508 @ =gUnknown_83CDA20 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized2 - b _0808C69C - .align 2, 0 -_0808C504: .4byte gMain -_0808C508: .4byte gUnknown_83CDA20 -_0808C50C: - movs r0, 0 - movs r1, 0x1 - bl ClearStdWindowAndFrame - ldrh r0, [r5, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl ClearStdWindowAndFrame - bl ScriptContext2_Disable - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask - b _0808C69C -_0808C530: - movs r3, 0xC - ldrsh r4, [r5, r3] - cmp r4, 0 - bne _0808C564 - bl CountPartyMons - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _0808C564 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _0808C560 @ =gUnknown_84186B0 - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r4, 0x3 - str r4, [sp, 0xC] - b _0808C66E - .align 2, 0 -_0808C560: .4byte gUnknown_84186B0 -_0808C564: - movs r1, 0xC - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _0808C598 - bl CountPartyMons - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0808C598 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, _0808C594 @ =gUnknown_8418690 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r4, 0x3 - str r4, [sp, 0xC] - b _0808C66E - .align 2, 0 -_0808C594: .4byte gUnknown_8418690 -_0808C598: - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - movs r0, 0x4 - strh r0, [r5, 0x8] - b _0808C69C -_0808C5A6: - ldr r0, _0808C5D0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r7, 0x3 - adds r4, r7, 0 - ands r4, r1 - cmp r4, 0 - beq _0808C5D8 - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, _0808C5D4 @ =gUnknown_83CDA20 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - str r0, [sp] - b _0808C664 - .align 2, 0 -_0808C5D0: .4byte gMain -_0808C5D4: .4byte gUnknown_83CDA20 -_0808C5D8: - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _0808C624 - ldrh r0, [r5, 0xA] - subs r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0808C5F4 - movs r0, 0x4 - strh r0, [r5, 0xA] -_0808C5F4: - movs r0, 0x1 - negs r0, r0 - bl Menu_MoveCursor - bl Menu_GetCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, _0808C620 @ =gUnknown_83CDA20 - movs r3, 0xA - ldrsh r0, [r5, r3] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r4, [sp] - b _0808C664 - .align 2, 0 -_0808C620: .4byte gUnknown_83CDA20 -_0808C624: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0808C69C - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0808C63C - strh r6, [r5, 0xA] -_0808C63C: - movs r0, 0x1 - bl Menu_MoveCursor - bl Menu_GetCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r1, _0808C67C @ =gUnknown_83CDA20 - movs r2, 0xA - ldrsh r0, [r5, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r2, [r0] - str r6, [sp] -_0808C664: - movs r4, 0x2 - str r4, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r7, [sp, 0xC] -_0808C66E: - movs r0, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized2 - strh r4, [r5, 0x8] - b _0808C69C - .align 2, 0 -_0808C67C: .4byte gUnknown_83CDA20 -_0808C680: - ldr r0, _0808C6A4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808C69C - bl CleanupOverworldWindowsAndTilemaps - ldrb r0, [r5, 0xC] - bl sub_808CDE4 - adds r0, r4, 0 - bl DestroyTask -_0808C69C: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808C6A4: .4byte gPaletteFade - thumb_func_end c3_0808C39C - - thumb_func_start ShowPokemonStorageSystem -ShowPokemonStorageSystem: @ 808C6A8 - push {lr} - ldr r0, _0808C6D0 @ =c3_0808C39C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0808C6D4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0808C6D0: .4byte c3_0808C39C -_0808C6D4: .4byte gTasks - thumb_func_end ShowPokemonStorageSystem - - thumb_func_start mapldr_0808C6D8 -mapldr_0808C6D8: @ 808C6D8 - push {r4,r5,lr} - ldr r0, _0808C71C @ =gMain - ldr r5, [r0, 0xC] - movs r0, 0 - bl SetVBlankCallback - ldr r4, _0808C720 @ =c3_0808C39C - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0808C724 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - ldr r2, _0808C728 @ =sPreviousBoxOption - ldrb r2, [r2] - strh r2, [r1, 0xA] - bl _call_via_r4 - adds r0, r5, 0 - bl SetVBlankCallback - bl FadeInFromBlack - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808C71C: .4byte gMain -_0808C720: .4byte c3_0808C39C -_0808C724: .4byte gTasks -_0808C728: .4byte sPreviousBoxOption - thumb_func_end mapldr_0808C6D8 - - thumb_func_start sub_808C72C -sub_808C72C: @ 808C72C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - adds r6, r0, 0 - mov r10, r1 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0808C7AC @ =gUnknown_83CDA48 - bl AddWindow - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, r5, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl DrawStdWindowFrame - movs r0, 0x2 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x10 - mov r9, r0 - str r0, [sp] - movs r0, 0x5 - mov r8, r0 - str r0, [sp, 0x4] - ldr r0, _0808C7B0 @ =gUnknown_83CDA20 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x2 - movs r3, 0x2 - bl PrintTextArray - mov r0, r9 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl Menu_InitCursor - mov r0, r10 - strh r5, [r0] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808C7AC: .4byte gUnknown_83CDA48 -_0808C7B0: .4byte gUnknown_83CDA20 - thumb_func_end sub_808C72C - - thumb_func_start sub_808C7B4 -sub_808C7B4: @ 808C7B4 - push {lr} - bl sub_808FDF0 - ldr r1, _0808C7D0 @ =sPreviousBoxOption - strb r0, [r1] - ldr r1, _0808C7D4 @ =gFieldCallback - ldr r0, _0808C7D8 @ =mapldr_0808C6D8 - str r0, [r1] - ldr r0, _0808C7DC @ =CB2_ReturnToField - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0808C7D0: .4byte sPreviousBoxOption -_0808C7D4: .4byte gFieldCallback -_0808C7D8: .4byte mapldr_0808C6D8 -_0808C7DC: .4byte CB2_ReturnToField - thumb_func_end sub_808C7B4 - - thumb_func_start ResetPokemonStorageSystem -ResetPokemonStorageSystem: @ 808C7E0 - push {r4-r6,lr} - movs r0, 0 - bl sub_808BA00 - movs r5, 0 -_0808C7EA: - movs r4, 0 - lsls r6, r5, 24 -_0808C7EE: - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r6, 24 - bl sub_808BCB4 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0808C7EE - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0808C7EA - movs r5, 0 -_0808C80E: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBoxNamePtr - ldr r1, _0808C850 @ =gUnknown_84186CD - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _0808C80E - movs r5, 0 -_0808C832: - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x3 - ands r1, r5 - bl sub_808BDBC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0808C832 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808C850: .4byte gUnknown_84186CD - thumb_func_end ResetPokemonStorageSystem - - thumb_func_start sub_808C854 -sub_808C854: @ 808C854 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r6, r1, 0 - lsls r2, 16 - lsrs r2, 16 - adds r7, r2, 0 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r0, _0808C8E8 @ =gUnknown_83CDA98 - str r0, [sp, 0x18] - ldr r1, _0808C8EC @ =0xffff0000 - add r4, sp, 0x18 - ldr r0, [r4, 0x4] - ands r0, r1 - orrs r0, r7 - str r0, [r4, 0x4] - mov r1, sp - ldr r0, _0808C8F0 @ =gUnknown_83CDAB8 - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r6, [r1, 0x6] - ldr r0, _0808C8F4 @ =gUnknown_83CE2B8 - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r6, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, [sp, 0x38] - cmp r0, 0 - beq _0808C8B2 - adds r0, r4, 0 - bl LoadSpritePalette -_0808C8B2: - mov r0, sp - bl LoadSpriteSheets - ldr r0, _0808C8F8 @ =gUnknown_20397AC - str r5, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r5, r1 - strh r6, [r0] - adds r1, 0x2 - adds r0, r5, r1 - strh r7, [r0] - adds r1, 0x4 - adds r0, r5, r1 - mov r1, r8 - strb r1, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r5, r1 - ldr r1, [sp, 0x38] - str r1, [r0] - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808C8E8: .4byte gUnknown_83CDA98 -_0808C8EC: .4byte 0xffff0000 -_0808C8F0: .4byte gUnknown_83CDAB8 -_0808C8F4: .4byte gUnknown_83CE2B8 -_0808C8F8: .4byte gUnknown_20397AC - thumb_func_end sub_808C854 - - thumb_func_start sub_808C8FC -sub_808C8FC: @ 808C8FC - push {r4,r5,lr} - ldr r5, _0808C93C @ =gUnknown_20397AC - ldr r1, [r5] - movs r2, 0x8F - lsls r2, 2 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _0808C918 - adds r2, 0x6 - adds r0, r1, r2 - ldrh r0, [r0] - bl FreeSpritePaletteByTag -_0808C918: - ldr r0, [r5] - movs r4, 0x90 - lsls r4, 2 - adds r0, r4 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r5] - adds r0, r4 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808C93C: .4byte gUnknown_20397AC - thumb_func_end sub_808C8FC - - thumb_func_start sub_808C940 -sub_808C940: @ 808C940 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_808C9C4 - pop {r0} - bx r0 - thumb_func_end sub_808C940 - - thumb_func_start sub_808C950 -sub_808C950: @ 808C950 - push {lr} - bl sub_808CBA4 - pop {r0} - bx r0 - thumb_func_end sub_808C950 - - thumb_func_start sub_808C95C -sub_808C95C: @ 808C95C - push {lr} - ldr r0, _0808C974 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0808C978 - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _0808C9C0 - .align 2, 0 -_0808C974: .4byte gMain -_0808C978: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0808C998 - movs r0, 0x5 - bl PlaySE - ldr r0, _0808C994 @ =gUnknown_20397AC - ldr r0, [r0] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _0808C9C0 - .align 2, 0 -_0808C994: .4byte gUnknown_20397AC -_0808C998: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0808C9AC - movs r0, 0x5 - bl PlaySE - bl sub_808CC44 - b _0808C9BE -_0808C9AC: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0808C9BE - movs r0, 0x5 - bl PlaySE - bl sub_808CC10 -_0808C9BE: - movs r0, 0xC8 -_0808C9C0: - pop {r1} - bx r1 - thumb_func_end sub_808C95C - - thumb_func_start sub_808C9C4 -sub_808C9C4: @ 808C9C4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, _0808CB78 @ =0xffff0fff - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r0, sp, 0x1C - mov r8, r0 - movs r1, 0 - strh r1, [r0] - mov r0, sp - adds r0, 0x1E - strh r1, [r0] - str r4, [sp, 0x20] - ldr r0, _0808CB7C @ =gDummySpriteAnimTable - str r0, [sp, 0x24] - str r1, [sp, 0x28] - ldr r0, _0808CB80 @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x2C] - ldr r0, _0808CB84 @ =SpriteCallbackDummy - str r0, [sp, 0x30] - add r0, sp, 0x4 - mov r1, r8 - movs r2, 0x18 - bl memcpy - ldr r1, _0808CB88 @ =gUnknown_83CDA94 - mov r0, r8 - movs r2, 0x4 - bl memcpy - ldr r6, _0808CB8C @ =gUnknown_20397AC - ldr r0, [r6] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _0808CB90 @ =0x00000242 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808CB94 @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _0808CB98 @ =gUnknown_83CDA70 - str r0, [sp, 0xC] - movs r4, 0 - mov r7, r8 -_0808CA90: - ldr r0, [r6] - ldr r1, _0808CB9C @ =0x00000246 - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808CB94 @ =gSprites - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _0808CACA - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_0808CACA: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0808CAEE - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0808CAEE: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _0808CA90 - movs r4, 0 - ldr r5, _0808CB8C @ =gUnknown_20397AC -_0808CB0C: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, _0808CB9C @ =0x00000246 - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_809223C - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _0808CB54 - movs r1, 0x1 - cmp r4, 0 - bne _0808CB4C - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_0808CB4C: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _0808CBA0 @ =sub_808CD64 - str r0, [r1, 0x1C] -_0808CB54: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808CB0C - bl sub_808CC74 - adds r0, r7, 0 - movs r1, 0x5 - movs r2, 0x3 - bl sub_808CCFC - add sp, 0x3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808CB78: .4byte 0xffff0fff -_0808CB7C: .4byte gDummySpriteAnimTable -_0808CB80: .4byte gDummySpriteAffineAnimTable -_0808CB84: .4byte SpriteCallbackDummy -_0808CB88: .4byte gUnknown_83CDA94 -_0808CB8C: .4byte gUnknown_20397AC -_0808CB90: .4byte 0x00000242 -_0808CB94: .4byte gSprites -_0808CB98: .4byte gUnknown_83CDA70 -_0808CB9C: .4byte 0x00000246 -_0808CBA0: .4byte sub_808CD64 - thumb_func_end sub_808C9C4 - - thumb_func_start sub_808CBA4 -sub_808CBA4: @ 808CBA4 - push {r4-r6,lr} - ldr r4, _0808CC0C @ =gUnknown_20397AC - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0808CBBA - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_0808CBBA: - movs r5, 0 - adds r6, r4, 0 -_0808CBBE: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _0808CBDA - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_0808CBDA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _0808CBBE - movs r5, 0 -_0808CBE6: - ldr r0, _0808CC0C @ =gUnknown_20397AC - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0808CBFA - bl DestroySprite -_0808CBFA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0808CBE6 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808CC0C: .4byte gUnknown_20397AC - thumb_func_end sub_808CBA4 - - thumb_func_start sub_808CC10 -sub_808CC10: @ 808CC10 - push {lr} - ldr r2, _0808CC40 @ =gUnknown_20397AC - ldr r1, [r2] - movs r0, 0x91 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _0808CC36 - ldr r0, [r2] - movs r1, 0x91 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0808CC36: - bl sub_808CC74 - pop {r0} - bx r0 - .align 2, 0 -_0808CC40: .4byte gUnknown_20397AC - thumb_func_end sub_808CC10 - - thumb_func_start sub_808CC44 -sub_808CC44: @ 808CC44 - push {lr} - ldr r0, _0808CC5C @ =gUnknown_20397AC - ldr r2, [r0] - movs r1, 0x91 - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808CC60 - subs r1, r0, 0x1 - b _0808CC62 - .align 2, 0 -_0808CC5C: .4byte gUnknown_20397AC -_0808CC60: - movs r1, 0xD -_0808CC62: - movs r3, 0x91 - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_808CC74 - pop {r0} - bx r0 - thumb_func_end sub_808CC44 - - thumb_func_start sub_808CC74 -sub_808CC74: @ 808CC74 - push {r4-r7,lr} - ldr r6, _0808CCF8 @ =gUnknown_20397AC - ldr r0, [r6] - movs r5, 0x91 - lsls r5, 2 - adds r0, r5 - ldrb r0, [r0] - bl CountMonsInBox - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, [r6] - movs r1, 0x8A - lsls r1, 2 - adds r4, r0, r1 - adds r0, r5 - ldrb r0, [r0] - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - adds r1, r0, 0 - ldr r0, [r6] - movs r2, 0x8C - lsls r2, 2 - adds r0, r2 - cmp r1, r0 - bcs _0808CCC0 - movs r4, 0 - adds r3, r6, 0 -_0808CCB4: - strb r4, [r1] - adds r1, 0x1 - ldr r0, [r3] - adds r0, r2 - cmp r1, r0 - bcc _0808CCB4 -_0808CCC0: - movs r0, 0xFF - strb r0, [r1] - ldr r5, _0808CCF8 @ =gUnknown_20397AC - ldr r0, [r5] - movs r4, 0x8A - lsls r4, 2 - adds r0, r4 - movs r1, 0 - movs r2, 0x1 - bl sub_808CCFC - ldr r0, [r5] - adds r0, r4 - adds r1, r7, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r5] - adds r0, r4 - movs r1, 0x3 - movs r2, 0x3 - bl sub_808CCFC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808CCF8: .4byte gUnknown_20397AC - thumb_func_end sub_808CC74 - - thumb_func_start sub_808CCFC -sub_808CCFC: @ 808CCFC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - ldr r6, _0808CD5C @ =gUnknown_20397AC - ldr r0, [r6] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 11 - lsls r4, 8 - ldr r0, _0808CD60 @ =0x06010000 - adds r4, r0 - adds r1, r4 - lsls r5, 5 - adds r1, r5 - movs r2, 0x80 - lsls r2, 1 - movs r0, 0xF - str r0, [sp] - movs r0, 0xE - str r0, [sp, 0x4] - ldr r0, [r6] - adds r0, 0x28 - str r0, [sp, 0x8] - mov r0, r8 - movs r3, 0x4 - bl sub_808BFE0 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808CD5C: .4byte gUnknown_20397AC -_0808CD60: .4byte 0x06010000 - thumb_func_end sub_808CCFC - - thumb_func_start sub_808CD64 -sub_808CD64: @ 808CD64 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0808CD94 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0808CD94 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_0808CD94: - pop {r0} - bx r0 - thumb_func_end sub_808CD64 - - thumb_func_start sub_808CD98 -sub_808CD98: @ 808CD98 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_8096BF8 - bl TransferPlttBuffer - ldr r0, _0808CDC0 @ =sPSSData - ldr r0, [r0] - movs r1, 0xB3 - lsls r1, 2 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x18 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0808CDC0: .4byte sPSSData - thumb_func_end sub_808CD98 - - thumb_func_start c2_Box -c2_Box: @ 808CDC4 - push {lr} - bl RunTasks - bl DoScheduledBgTilemapCopiesToVram - bl sub_808EFC8 - bl sub_808F99C - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end c2_Box - - thumb_func_start sub_808CDE4 -sub_808CDE4: @ 808CDE4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl ResetTasks - ldr r0, _0808CE08 @ =sCurrentBoxOption - strb r5, [r0] - ldr r4, _0808CE0C @ =sPSSData - ldr r0, _0808CE10 @ =0x000062bc - bl Alloc - str r0, [r4] - cmp r0, 0 - bne _0808CE18 - ldr r0, _0808CE14 @ =sub_808C7B4 - bl SetMainCallback2 - b _0808CE4A - .align 2, 0 -_0808CE08: .4byte sCurrentBoxOption -_0808CE0C: .4byte sPSSData -_0808CE10: .4byte 0x000062bc -_0808CE14: .4byte sub_808C7B4 -_0808CE18: - movs r2, 0 - strb r5, [r0, 0x1] - ldr r0, [r4] - strb r2, [r0, 0x3] - ldr r0, _0808CE50 @ =gUnknown_20397BA - movs r1, 0 - strh r2, [r0] - ldr r0, [r4] - strb r1, [r0] - ldr r0, _0808CE54 @ =task_box_related_3 - movs r1, 0x3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, 0x4] - movs r0, 0x1C @ HELPCONTEXT_BILLS_PC - bl SetHelpContext - bl StorageGetCurrentBox - ldr r1, _0808CE58 @ =sLastUsedBox - strb r0, [r1] - ldr r0, _0808CE5C @ =c2_Box - bl SetMainCallback2 -_0808CE4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808CE50: .4byte gUnknown_20397BA -_0808CE54: .4byte task_box_related_3 -_0808CE58: .4byte sLastUsedBox -_0808CE5C: .4byte c2_Box - thumb_func_end sub_808CDE4 - - thumb_func_start sub_808CE60 -sub_808CE60: @ 808CE60 - push {r4,lr} - bl ResetTasks - ldr r4, _0808CE80 @ =sPSSData - ldr r0, _0808CE84 @ =0x000062bc - bl Alloc - adds r1, r0, 0 - str r1, [r4] - cmp r1, 0 - bne _0808CE8C - ldr r0, _0808CE88 @ =sub_808C7B4 - bl SetMainCallback2 - b _0808CEB6 - .align 2, 0 -_0808CE80: .4byte sPSSData -_0808CE84: .4byte 0x000062bc -_0808CE88: .4byte sub_808C7B4 -_0808CE8C: - ldr r0, _0808CEBC @ =sCurrentBoxOption - ldrb r0, [r0] - movs r2, 0 - strb r0, [r1, 0x1] - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x3] - ldr r0, [r4] - strb r2, [r0] - ldr r0, _0808CEC0 @ =task_box_related_3 - movs r1, 0x3 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, 0x4] - movs r0, 0x1C @ HELPCONTEXT_BILLS_PC - bl SetHelpContext - ldr r0, _0808CEC4 @ =c2_Box - bl SetMainCallback2 -_0808CEB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808CEBC: .4byte sCurrentBoxOption -_0808CEC0: .4byte task_box_related_3 -_0808CEC4: .4byte c2_Box - thumb_func_end sub_808CE60 - - thumb_func_start sub_808CEC8 -sub_808CEC8: @ 808CEC8 - push {lr} - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end sub_808CEC8 - - thumb_func_start sub_808CF10 -sub_808CF10: @ 808CF10 - push {r4,lr} - sub sp, 0x4 - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ClearDma3Requests - ldr r1, _0808CF80 @ =gReservedSpriteTileCount - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _0808CF84 @ =sPSSData - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x8 - adds r1, 0x10 - movs r2, 0x8 - bl sub_8096BE4 - ldr r1, _0808CF88 @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - bl ClearScheduledBgCopiesToVram - movs r0, 0x3 - bl sub_80F7AD8 - ldr r2, _0808CF8C @ =gUnknown_83CE6F8 - movs r0, 0x4 - str r0, [sp] - movs r0, 0 - movs r1, 0x1 - movs r3, 0x8 - bl sub_80F7B80 - movs r0, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_80F7CAC - ldr r0, [r4] - ldr r1, _0808CF90 @ =0x000002c7 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808CF80: .4byte gReservedSpriteTileCount -_0808CF84: .4byte sPSSData -_0808CF88: .4byte gKeyRepeatStartDelay -_0808CF8C: .4byte gUnknown_83CE6F8 -_0808CF90: .4byte 0x000002c7 - thumb_func_end sub_808CF10 - - thumb_func_start sub_808CF94 -sub_808CF94: @ 808CF94 - push {lr} - bl sub_8092B50 - ldr r2, _0808CFB8 @ =sInPartyMenu - movs r1, 0 - ldr r0, _0808CFBC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _0808CFAA - movs r1, 0x1 -_0808CFAA: - strb r1, [r2] - ldr r1, _0808CFC0 @ =gUnknown_20397B6 - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0808CFB8: .4byte sInPartyMenu -_0808CFBC: .4byte sPSSData -_0808CFC0: .4byte gUnknown_20397B6 - thumb_func_end sub_808CF94 - - thumb_func_start sub_808CFC4 -sub_808CFC4: @ 808CFC4 - push {lr} - ldr r0, _0808CFF0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0808CFE2 - movs r1, 0xFC - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldr r1, _0808CFF4 @ =0x00000b07 - movs r0, 0x52 - bl SetGpuReg -_0808CFE2: - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - pop {r0} - bx r0 - .align 2, 0 -_0808CFF0: .4byte sPSSData -_0808CFF4: .4byte 0x00000b07 - thumb_func_end sub_808CFC4 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 808CFF8 - push {r4,lr} - ldr r4, _0808D018 @ =gTasks - ldr r1, _0808D01C @ =sPSSData - ldr r3, [r1] - ldrb r2, [r3, 0x4] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r4 - str r0, [r1] - movs r0, 0 - strb r0, [r3] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D018: .4byte gTasks -_0808D01C: .4byte sPSSData - thumb_func_end add_to_c3_somehow - - thumb_func_start task_box_related_3 -task_box_related_3: @ 808D020 - push {lr} - sub sp, 0x4 - ldr r0, _0808D03C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xA - bls _0808D030 - b _0808D216 -_0808D030: - lsls r0, 2 - ldr r1, _0808D040 @ =_0808D044 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D03C: .4byte sPSSData -_0808D040: .4byte _0808D044 - .align 2, 0 -_0808D044: - .4byte _0808D070 - .4byte _0808D0C8 - .4byte _0808D0D6 - .4byte _0808D104 - .4byte _0808D120 - .4byte _0808D13E - .4byte _0808D15E - .4byte _0808D164 - .4byte _0808D16A - .4byte _0808D178 - .4byte _0808D1BE -_0808D070: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl sub_808CF10 - ldr r0, _0808D0A0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0808D0BE - ldr r0, _0808D0A4 @ =sWhichToReshow - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808D0AE - cmp r0, 0x1 - bgt _0808D0A8 - cmp r0, 0 - beq _0808D0B4 - b _0808D0BE - .align 2, 0 -_0808D0A0: .4byte sPSSData -_0808D0A4: .4byte sWhichToReshow -_0808D0A8: - cmp r0, 0x2 - beq _0808D0BA - b _0808D0BE -_0808D0AE: - bl sub_8093660 - b _0808D0BE -_0808D0B4: - bl sub_80937B4 - b _0808D0BE -_0808D0BA: - bl sub_808EF0C -_0808D0BE: - bl sub_808EFE4 - bl sub_808F068 - b _0808D20C -_0808D0C8: - bl sub_808F044 - lsls r0, 24 - cmp r0, 0 - beq _0808D0D4 - b _0808D20C -_0808D0D4: - b _0808D148 -_0808D0D6: - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0 - str r0, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _0808D100 @ =0x05000080 - mov r0, sp - bl CpuSet - movs r0, 0x1 - movs r1, 0xB - movs r2, 0xE0 - bl TextWindow_SetUserSelectedFrame - b _0808D20C - .align 2, 0 -_0808D100: .4byte 0x05000080 -_0808D104: - bl sub_808CEC8 - ldr r0, _0808D11C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0808D114 - b _0808D20C -_0808D114: - bl sub_808CF94 - b _0808D20C - .align 2, 0 -_0808D11C: .4byte sPSSData -_0808D120: - bl sub_808FFAC - ldr r0, _0808D134 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0808D138 - bl sub_80922C0 - b _0808D20C - .align 2, 0 -_0808D134: .4byte sPSSData -_0808D138: - bl sub_8092340 - b _0808D20C -_0808D13E: - bl sub_8095050 - lsls r0, 24 - cmp r0, 0 - bne _0808D154 -_0808D148: - ldr r0, _0808D150 @ =sub_808EE18 - bl add_to_c3_somehow - b _0808D216 - .align 2, 0 -_0808D150: .4byte sub_808EE18 -_0808D154: - bl sub_808EF8C - bl sub_808FB68 - b _0808D20C -_0808D15E: - bl sub_808F078 - b _0808D20C -_0808D164: - bl sub_808F68C - b _0808D20C -_0808D16A: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - bl sub_80913DC - b _0808D20C -_0808D178: - bl sub_809140C - lsls r0, 24 - cmp r0, 0 - bne _0808D216 - ldr r0, _0808D1A8 @ =sPSSData - ldr r2, [r0] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - beq _0808D1B4 - movs r1, 0xDA - lsls r1, 4 - adds r0, r2, r1 - movs r1, 0xD - strh r1, [r0] - ldr r1, _0808D1AC @ =0x00000da2 - adds r2, r1 - ldr r1, _0808D1B0 @ =0x0000dace - strh r1, [r2] - bl SetMonMarkingsMenuPointer - bl LoadMonMarkingsFrameGfx - b _0808D20C - .align 2, 0 -_0808D1A8: .4byte sPSSData -_0808D1AC: .4byte 0x00000da2 -_0808D1B0: .4byte 0x0000dace -_0808D1B4: - bl sub_8095B5C - bl sub_808FDFC - b _0808D20C -_0808D1BE: - bl sub_808CFC4 - ldr r0, _0808D1E0 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0808D1E8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _0808D1E4 @ =sub_808D220 - bl add_to_c3_somehow - b _0808D1FA - .align 2, 0 -_0808D1E0: .4byte sPSSData -_0808D1E4: .4byte sub_808D220 -_0808D1E8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r0, _0808D204 @ =sub_808D26C - bl add_to_c3_somehow -_0808D1FA: - ldr r0, _0808D208 @ =sub_808CD98 - bl SetVBlankCallback - b _0808D216 - .align 2, 0 -_0808D204: .4byte sub_808D26C -_0808D208: .4byte sub_808CD98 -_0808D20C: - ldr r0, _0808D21C @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0808D216: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0808D21C: .4byte sPSSData - thumb_func_end task_box_related_3 - - thumb_func_start sub_808D220 -sub_808D220: @ 808D220 - push {r4,lr} - ldr r4, _0808D234 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808D238 - cmp r0, 0x1 - beq _0808D252 - b _0808D262 - .align 2, 0 -_0808D234: .4byte sPSSData -_0808D238: - movs r0, 0x2 - bl PlaySE - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1 - bl sub_80A0A48 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D262 -_0808D252: - bl sub_80A0A98 - lsls r0, 24 - cmp r0, 0 - bne _0808D262 - ldr r0, _0808D268 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D262: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D268: .4byte sub_808D2BC - thumb_func_end sub_808D220 - - thumb_func_start sub_808D26C -sub_808D26C: @ 808D26C - push {r4,lr} - sub sp, 0x4 - ldr r4, _0808D280 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808D284 - cmp r0, 0x1 - beq _0808D29E - b _0808D2AE - .align 2, 0 -_0808D280: .4byte sPSSData -_0808D284: - movs r1, 0x1 - negs r1, r1 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D2AE -_0808D29E: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0808D2AE - ldr r0, _0808D2B8 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D2AE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D2B8: .4byte sub_808D2BC - thumb_func_end sub_808D26C - - thumb_func_start sub_808D2BC -sub_808D2BC: @ 808D2BC - push {r4,r5,lr} - ldr r0, _0808D2D4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xB - bls _0808D2CA - b _0808D7B2 -_0808D2CA: - lsls r0, 2 - ldr r1, _0808D2D8 @ =_0808D2DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D2D4: .4byte sPSSData -_0808D2D8: .4byte _0808D2DC - .align 2, 0 -_0808D2DC: - .4byte _0808D30C - .4byte _0808D630 - .4byte _0808D670 - .4byte _0808D6C8 - .4byte _0808D6EC - .4byte _0808D6F6 - .4byte _0808D710 - .4byte _0808D730 - .4byte _0808D736 - .4byte _0808D74C - .4byte _0808D778 - .4byte _0808D7A0 -_0808D30C: - bl sub_80948B4 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x19 - bls _0808D31C - b _0808D7B2 -_0808D31C: - lsls r0, 2 - ldr r1, _0808D328 @ =_0808D32C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D328: .4byte _0808D32C - .align 2, 0 -_0808D32C: - .4byte _0808D394 - .4byte _0808D7B2 - .4byte _0808D7B2 - .4byte _0808D424 - .4byte _0808D3A8 - .4byte _0808D3DC - .4byte _0808D43C - .4byte _0808D450 - .4byte _0808D45C - .4byte _0808D494 - .4byte _0808D4D8 - .4byte _0808D55C - .4byte _0808D51C - .4byte _0808D52E - .4byte _0808D570 - .4byte _0808D584 - .4byte _0808D598 - .4byte _0808D5AC - .4byte _0808D430 - .4byte _0808D5C0 - .4byte _0808D5E0 - .4byte _0808D5CA - .4byte _0808D5EA - .4byte _0808D628 - .4byte _0808D5EE - .4byte _0808D608 -_0808D394: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D3A4 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D3A4: .4byte sPSSData -_0808D3A8: - ldr r4, _0808D3C8 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0, 0x1] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0808D3CC - movs r0, 0x10 - bl sub_808FBA4 - ldr r1, [r4] - movs r0, 0x3 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D3C8: .4byte sPSSData -_0808D3CC: - bl sub_8092B50 - ldr r0, _0808D3D8 @ =sub_808D7BC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D3D8: .4byte sub_808D7BC -_0808D3DC: - ldr r4, _0808D408 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _0808D410 - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - beq _0808D416 - ldr r0, [r4] - ldr r1, _0808D40C @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0808D404 - b _0808D4F6 -_0808D404: - b _0808D416 - .align 2, 0 -_0808D408: .4byte sPSSData -_0808D40C: .4byte 0x00000ce2 -_0808D410: - cmp r0, 0x3 - beq _0808D416 - b _0808D7B2 -_0808D416: - ldr r0, _0808D420 @ =sub_808D7FC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D420: .4byte sub_808D7FC -_0808D424: - ldr r0, _0808D42C @ =sub_808EBB0 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D42C: .4byte sub_808EBB0 -_0808D430: - ldr r0, _0808D438 @ =sub_808ECE4 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D438: .4byte sub_808ECE4 -_0808D43C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D44C @ =box_related - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D44C: .4byte box_related -_0808D450: - ldr r0, _0808D458 @ =sub_808D878 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D458: .4byte sub_808D878 -_0808D45C: - movs r0, 0x5 - bl PlaySE - bl StorageGetCurrentBox - ldr r4, _0808D48C @ =sPSSData - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - ldr r2, _0808D490 @ =0x000002ca - adds r1, r2 - strh r0, [r1] - cmp r0, 0xD - ble _0808D47E - movs r0, 0 - strh r0, [r1] -_0808D47E: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - beq _0808D4CC - adds r0, r1, r2 - b _0808D78A - .align 2, 0 -_0808D48C: .4byte sPSSData -_0808D490: .4byte 0x000002ca -_0808D494: - movs r0, 0x5 - bl PlaySE - bl StorageGetCurrentBox - ldr r4, _0808D4C4 @ =sPSSData - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - ldr r2, _0808D4C8 @ =0x000002ca - adds r1, r2 - strh r0, [r1] - cmp r0, 0 - bge _0808D4B6 - movs r0, 0xD - strh r0, [r1] -_0808D4B6: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - beq _0808D4CC - adds r0, r1, r2 - b _0808D78A - .align 2, 0 -_0808D4C4: .4byte sPSSData -_0808D4C8: .4byte 0x000002ca -_0808D4CC: - bl sub_8094D60 - ldr r1, [r4] - movs r0, 0xA - strb r0, [r1] - b _0808D7B2 -_0808D4D8: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808D538 - ldr r4, _0808D500 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D504 @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0808D508 -_0808D4F6: - ldr r1, [r4] - movs r0, 0x5 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D500: .4byte sPSSData -_0808D504: .4byte 0x00000ce2 -_0808D508: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D518 @ =sub_808DD88 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D518: .4byte sub_808DD88 -_0808D51C: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808D538 - movs r0, 0x5 - bl PlaySE - b _0808D740 -_0808D52E: - bl sub_809393C - lsls r0, 24 - cmp r0, 0 - bne _0808D548 -_0808D538: - ldr r0, _0808D544 @ =sPSSData - ldr r1, [r0] - movs r0, 0x4 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D544: .4byte sPSSData -_0808D548: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D558 @ =sub_808DC50 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D558: .4byte sub_808DC50 -_0808D55C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D56C @ =sub_808DC9C - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D56C: .4byte sub_808DC9C -_0808D570: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D580 @ =sub_808DBF0 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D580: .4byte sub_808DBF0 -_0808D584: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D594 @ =sub_808E140 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D594: .4byte sub_808E140 -_0808D598: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D5A8 @ =sub_808E1F4 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D5A8: .4byte sub_808E1F4 -_0808D5AC: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808D5BC @ =sub_808E3C8 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D5BC: .4byte sub_808E3C8 -_0808D5C0: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - b _0808D616 -_0808D5CA: - movs r0, 0x1 - bl sub_80950BC - ldr r0, _0808D5DC @ =sPSSData - ldr r1, [r0] - movs r0, 0x8 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D5DC: .4byte sPSSData -_0808D5E0: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - b _0808D5F6 -_0808D5EA: - movs r0, 0x3 - b _0808D616 -_0808D5EE: - movs r0, 0x5 - bl PlaySE - movs r0, 0x4 -_0808D5F6: - bl sub_80950BC - ldr r0, _0808D604 @ =sPSSData - ldr r1, [r0] - movs r0, 0x9 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D604: .4byte sPSSData -_0808D608: - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - bl sub_808FE54 - movs r0, 0x5 -_0808D616: - bl sub_80950BC - ldr r0, _0808D624 @ =sPSSData - ldr r1, [r0] - movs r0, 0x7 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D624: .4byte sPSSData -_0808D628: - movs r0, 0x1A - bl PlaySE - b _0808D7B2 -_0808D630: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - beq _0808D63C - b _0808D7B2 -_0808D63C: - bl sub_80939C8 - lsls r0, 24 - cmp r0, 0 - beq _0808D64C - bl sub_808F948 - b _0808D650 -_0808D64C: - bl sub_808F974 -_0808D650: - ldr r4, _0808D668 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D66C @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D662 - bl BoxSetMosaic -_0808D662: - ldr r1, [r4] - b _0808D6DC - .align 2, 0 -_0808D668: .4byte sPSSData -_0808D66C: .4byte 0x00000ce6 -_0808D670: - bl sub_80915FC - lsls r0, 24 - cmp r0, 0 - beq _0808D67C - b _0808D7B2 -_0808D67C: - ldr r0, _0808D6BC @ =sPSSData - ldr r0, [r0] - ldr r1, _0808D6C0 @ =0x000002ca - adds r0, r1 - ldrb r0, [r0] - bl sub_808BA00 - ldr r0, _0808D6C4 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - bne _0808D6A4 - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - bne _0808D6A4 - bl sub_8092F54 - bl BoxSetMosaic -_0808D6A4: - ldr r4, _0808D6BC @ =sPSSData - ldr r1, [r4] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - bne _0808D6DC - bl sub_8094D84 - ldr r1, [r4] - movs r0, 0xB - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D6BC: .4byte sPSSData -_0808D6C0: .4byte 0x000002ca -_0808D6C4: .4byte sInPartyMenu -_0808D6C8: - ldr r0, _0808D6E4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808D7B2 - bl sub_808FD20 - ldr r0, _0808D6E8 @ =sPSSData - ldr r1, [r0] -_0808D6DC: - movs r0, 0 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D6E4: .4byte gMain -_0808D6E8: .4byte sPSSData -_0808D6EC: - movs r0, 0x1A - bl PlaySE - movs r0, 0xD - b _0808D6FE -_0808D6F6: - movs r0, 0x1A - bl PlaySE - movs r0, 0x16 -_0808D6FE: - bl sub_808FBA4 - ldr r0, _0808D70C @ =sPSSData - ldr r1, [r0] - movs r0, 0x6 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D70C: .4byte sPSSData -_0808D710: - ldr r0, _0808D728 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808D7B2 - bl sub_808FD20 - ldr r0, _0808D72C @ =sub_808D2BC - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D728: .4byte gMain -_0808D72C: .4byte sub_808D2BC -_0808D730: - bl sub_80950D0 - b _0808D7A4 -_0808D736: - bl sub_80950D0 - lsls r0, 24 - cmp r0, 0 - bne _0808D7B2 -_0808D740: - ldr r0, _0808D748 @ =sub_808DB94 - bl add_to_c3_somehow - b _0808D7B2 - .align 2, 0 -_0808D748: .4byte sub_808DB94 -_0808D74C: - bl sub_80950D0 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808D7B2 - ldr r5, _0808D770 @ =sPSSData - ldr r0, [r5] - ldr r1, _0808D774 @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D76A - bl BoxSetMosaic -_0808D76A: - ldr r0, [r5] - strb r4, [r0] - b _0808D7B2 - .align 2, 0 -_0808D770: .4byte sPSSData -_0808D774: .4byte 0x00000ce6 -_0808D778: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808D7B2 - ldr r4, _0808D798 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808D79C @ =0x000002ca - adds r0, r1 -_0808D78A: - ldrb r0, [r0] - bl sub_8091514 - ldr r1, [r4] - movs r0, 0x2 - strb r0, [r1] - b _0808D7B2 - .align 2, 0 -_0808D798: .4byte sPSSData -_0808D79C: .4byte 0x000002ca -_0808D7A0: - bl sub_809610C -_0808D7A4: - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0808D7B2 - ldr r0, _0808D7B8 @ =sPSSData - ldr r0, [r0] - strb r1, [r0] -_0808D7B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808D7B8: .4byte sPSSData - thumb_func_end sub_808D2BC - - thumb_func_start sub_808D7BC -sub_808D7BC: @ 808D7BC - push {r4,lr} - ldr r4, _0808D7D0 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808D7D4 - cmp r0, 0x1 - beq _0808D7E2 - b _0808D7F2 - .align 2, 0 -_0808D7D0: .4byte sPSSData -_0808D7D4: - bl sub_808FAD4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D7F2 -_0808D7E2: - bl sub_808FAF8 - lsls r0, 24 - cmp r0, 0 - bne _0808D7F2 - ldr r0, _0808D7F8 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D7F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D7F8: .4byte sub_808D2BC - thumb_func_end sub_808D7BC - - thumb_func_start sub_808D7FC -sub_808D7FC: @ 808D7FC - push {r4,lr} - ldr r4, _0808D814 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808D82A - cmp r0, 0x1 - bgt _0808D818 - cmp r0, 0 - beq _0808D81E - b _0808D86A - .align 2, 0 -_0808D814: .4byte sPSSData -_0808D818: - cmp r0, 0x2 - beq _0808D84A - b _0808D86A -_0808D81E: - movs r0, 0x5 - bl PlaySE - bl sub_808F810 - b _0808D840 -_0808D82A: - bl sub_808F850 - lsls r0, 24 - cmp r0, 0 - bne _0808D86A - bl sub_8092B70 - lsls r0, 24 - lsrs r0, 24 - bl sub_8092B3C -_0808D840: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808D86A -_0808D84A: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - bne _0808D86A - ldr r0, [r4] - ldr r1, _0808D870 @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808D864 - bl BoxSetMosaic -_0808D864: - ldr r0, _0808D874 @ =sub_808D2BC - bl add_to_c3_somehow -_0808D86A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808D870: .4byte 0x00000ce6 -_0808D874: .4byte sub_808D2BC - thumb_func_end sub_808D7FC - - thumb_func_start sub_808D878 -sub_808D878: @ 808D878 - push {r4,lr} - ldr r0, _0808D890 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x6 - bls _0808D886 - b _0808DB86 -_0808D886: - lsls r0, 2 - ldr r1, _0808D894 @ =_0808D898 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D890: .4byte sPSSData -_0808D894: .4byte _0808D898 - .align 2, 0 -_0808D898: - .4byte _0808D8B4 - .4byte _0808D918 - .4byte _0808D934 - .4byte _0808DB40 - .4byte _0808DB54 - .4byte _0808DB4A - .4byte _0808DB70 -_0808D8B4: - bl sub_808F258 - lsls r0, 24 - cmp r0, 0 - beq _0808D8C0 - b _0808DB86 -_0808D8C0: - movs r0, 0x5 - bl PlaySE - ldr r4, _0808D8D8 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - beq _0808D8DC - movs r0, 0x4 - bl sub_808FBA4 - b _0808D906 - .align 2, 0 -_0808D8D8: .4byte sPSSData -_0808D8DC: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - bne _0808D8F2 - ldr r0, [r4] - ldr r1, _0808D8FC @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0808D900 -_0808D8F2: - movs r0, 0x17 - bl sub_808FBA4 - b _0808D906 - .align 2, 0 -_0808D8FC: .4byte 0x00000ce2 -_0808D900: - movs r0, 0x18 - bl sub_808FBA4 -_0808D906: - bl sub_8094E88 - ldr r0, _0808D914 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808D914: .4byte sPSSData -_0808D918: - bl sub_8094F90 - lsls r0, 24 - cmp r0, 0 - beq _0808D924 - b _0808DB86 -_0808D924: - ldr r0, _0808D930 @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808D930: .4byte sPSSData -_0808D934: - bl sub_8094F94 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x12 - bls _0808D944 - b _0808DB86 -_0808D944: - lsls r0, 2 - ldr r1, _0808D950 @ =_0808D954 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808D950: .4byte _0808D954 - .align 2, 0 -_0808D954: - .4byte _0808D9A0 - .4byte _0808D9A0 - .4byte _0808DA20 - .4byte _0808DA08 - .4byte _0808D9B0 - .4byte _0808D9E8 - .4byte _0808D9D0 - .4byte _0808DAC0 - .4byte _0808DA5C - .4byte _0808DAD4 - .4byte _0808DB86 - .4byte _0808DB86 - .4byte _0808DB86 - .4byte _0808DAE8 - .4byte _0808DAFC - .4byte _0808DB28 - .4byte _0808DB1C - .4byte _0808DB10 - .4byte _0808DB34 -_0808D9A0: - bl sub_808FD20 - ldr r0, _0808D9AC @ =sub_808D2BC - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808D9AC: .4byte sub_808D2BC -_0808D9B0: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808DA66 - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808D9CC @ =sub_808DB94 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808D9CC: .4byte sub_808DB94 -_0808D9D0: - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808D9E4 @ =sub_808DBF0 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808D9E4: .4byte sub_808DBF0 -_0808D9E8: - bl sub_809393C - lsls r0, 24 - cmp r0, 0 - beq _0808DA66 - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA04 @ =sub_808DC50 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DA04: .4byte sub_808DC50 -_0808DA08: - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA1C @ =sub_808DC9C - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DA1C: .4byte sub_808DC9C -_0808DA20: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - bne _0808DA66 - ldr r4, _0808DA50 @ =sPSSData - ldr r0, [r4] - ldr r2, _0808DA54 @ =0x00000ce2 - adds r0, r2 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _0808DAA0 - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808DA58 @ =sub_808DD88 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DA50: .4byte sPSSData -_0808DA54: .4byte 0x00000ce2 -_0808DA58: .4byte sub_808DD88 -_0808DA5C: - bl sub_8093900 - lsls r0, 24 - cmp r0, 0 - beq _0808DA74 -_0808DA66: - ldr r0, _0808DA70 @ =sPSSData - ldr r1, [r0] - movs r0, 0x3 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808DA70: .4byte sPSSData -_0808DA74: - ldr r4, _0808DA88 @ =sPSSData - ldr r1, [r4] - ldr r2, _0808DA8C @ =0x00000ce9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0808DA90 - movs r0, 0x5 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808DA88: .4byte sPSSData -_0808DA8C: .4byte 0x00000ce9 -_0808DA90: - ldr r2, _0808DAA8 @ =0x00000ce2 - adds r0, r1, r2 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0808DAAC -_0808DAA0: - ldr r1, [r4] - movs r0, 0x4 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808DAA8: .4byte 0x00000ce2 -_0808DAAC: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808DABC @ =sub_808DECC - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DABC: .4byte sub_808DECC -_0808DAC0: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808DAD0 @ =sub_808EAF0 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DAD0: .4byte sub_808EAF0 -_0808DAD4: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808DAE4 @ =sub_808E0BC - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DAE4: .4byte sub_808E0BC -_0808DAE8: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808DAF8 @ =sub_808E140 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DAF8: .4byte sub_808E140 -_0808DAFC: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808DB0C @ =sub_808E1F4 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DB0C: .4byte sub_808E1F4 -_0808DB10: - ldr r0, _0808DB18 @ =sub_808E2B0 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DB18: .4byte sub_808E2B0 -_0808DB1C: - ldr r0, _0808DB24 @ =sub_808E3C8 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DB24: .4byte sub_808E3C8 -_0808DB28: - ldr r0, _0808DB30 @ =sub_808EB50 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DB30: .4byte sub_808EB50 -_0808DB34: - ldr r0, _0808DB3C @ =sub_808E4B0 - bl add_to_c3_somehow - b _0808DB86 - .align 2, 0 -_0808DB3C: .4byte sub_808E4B0 -_0808DB40: - movs r0, 0x1A - bl PlaySE - movs r0, 0xD - b _0808DB5C -_0808DB4A: - movs r0, 0x1A - bl PlaySE - movs r0, 0x11 - b _0808DB5C -_0808DB54: - movs r0, 0x1A - bl PlaySE - movs r0, 0x16 -_0808DB5C: - bl sub_808FBA4 - ldr r0, _0808DB6C @ =sPSSData - ldr r1, [r0] - movs r0, 0x6 - strb r0, [r1] - b _0808DB86 - .align 2, 0 -_0808DB6C: .4byte sPSSData -_0808DB70: - ldr r0, _0808DB8C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808DB86 - bl sub_808FD20 - ldr r0, _0808DB90 @ =sub_808D2BC - bl add_to_c3_somehow -_0808DB86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DB8C: .4byte gMain -_0808DB90: .4byte sub_808D2BC - thumb_func_end sub_808D878 - - thumb_func_start sub_808DB94 -sub_808DB94: @ 808DB94 - push {r4,lr} - ldr r4, _0808DBA8 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808DBAC - cmp r0, 0x1 - beq _0808DBBC - b _0808DBE6 - .align 2, 0 -_0808DBA8: .4byte sPSSData -_0808DBAC: - movs r0, 0 - bl sub_8092B7C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808DBE6 -_0808DBBC: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DBE6 - ldr r0, _0808DBD8 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808DBE0 - ldr r0, _0808DBDC @ =sub_808E688 - bl add_to_c3_somehow - b _0808DBE6 - .align 2, 0 -_0808DBD8: .4byte sInPartyMenu -_0808DBDC: .4byte sub_808E688 -_0808DBE0: - ldr r0, _0808DBEC @ =sub_808D2BC - bl add_to_c3_somehow -_0808DBE6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DBEC: .4byte sub_808D2BC - thumb_func_end sub_808DB94 - - thumb_func_start sub_808DBF0 -sub_808DBF0: @ 808DBF0 - push {r4,lr} - ldr r4, _0808DC04 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808DC08 - cmp r0, 0x1 - beq _0808DC1E - b _0808DC46 - .align 2, 0 -_0808DC04: .4byte sPSSData -_0808DC08: - movs r0, 0x1 - bl sub_808FE54 - movs r0, 0x1 - bl sub_8092B7C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808DC46 -_0808DC1E: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DC46 - ldr r0, _0808DC38 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808DC40 - ldr r0, _0808DC3C @ =sub_808E688 - bl add_to_c3_somehow - b _0808DC46 - .align 2, 0 -_0808DC38: .4byte sInPartyMenu -_0808DC3C: .4byte sub_808E688 -_0808DC40: - ldr r0, _0808DC4C @ =sub_808D2BC - bl add_to_c3_somehow -_0808DC46: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DC4C: .4byte sub_808D2BC - thumb_func_end sub_808DBF0 - - thumb_func_start sub_808DC50 -sub_808DC50: @ 808DC50 - push {r4,lr} - ldr r4, _0808DC64 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808DC68 - cmp r0, 0x1 - beq _0808DC7E - b _0808DC92 - .align 2, 0 -_0808DC64: .4byte sPSSData -_0808DC68: - movs r0, 0 - bl sub_808FE54 - movs r0, 0x2 - bl sub_8092B7C - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808DC92 -_0808DC7E: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DC92 - bl BoxSetMosaic - ldr r0, _0808DC98 @ =sub_808D2BC - bl add_to_c3_somehow -_0808DC92: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DC98: .4byte sub_808D2BC - thumb_func_end sub_808DC50 - - thumb_func_start sub_808DC9C -sub_808DC9C: @ 808DC9C - push {lr} - ldr r0, _0808DCB4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x5 - bhi _0808DD7E - lsls r0, 2 - ldr r1, _0808DCB8 @ =_0808DCBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808DCB4: .4byte sPSSData -_0808DCB8: .4byte _0808DCBC - .align 2, 0 -_0808DCBC: - .4byte _0808DCD4 - .4byte _0808DD0C - .4byte _0808DD2C - .4byte _0808DD42 - .4byte _0808DD5A - .4byte _0808DD78 -_0808DCD4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _0808DCF4 - movs r0, 0xE - bl sub_808FBA4 - ldr r0, _0808DCF0 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808DD7E - .align 2, 0 -_0808DCF0: .4byte sPSSData -_0808DCF4: - bl sub_8092B5C - movs r0, 0 - bl sub_8092B7C - ldr r0, _0808DD08 @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - b _0808DD7E - .align 2, 0 -_0808DD08: .4byte sPSSData -_0808DD0C: - ldr r0, _0808DD24 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808DD7E - bl sub_808FD20 - ldr r0, _0808DD28 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808DD7E - .align 2, 0 -_0808DD24: .4byte gMain -_0808DD28: .4byte sub_808D2BC -_0808DD2C: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DD7E - movs r0, 0x1 - bl sub_8091184 - bl sub_808FAD4 - b _0808DD68 -_0808DD42: - bl sub_808FAF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DD7E - movs r0, 0x1 - bl sub_808FE54 - movs r0, 0x1 - bl sub_8092B7C - b _0808DD68 -_0808DD5A: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0808DD7E - bl sub_808FAA8 -_0808DD68: - ldr r0, _0808DD74 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808DD7E - .align 2, 0 -_0808DD74: .4byte sPSSData -_0808DD78: - ldr r0, _0808DD84 @ =sub_808D7FC - bl add_to_c3_somehow -_0808DD7E: - pop {r0} - bx r0 - .align 2, 0 -_0808DD84: .4byte sub_808D7FC - thumb_func_end sub_808DC9C - - thumb_func_start sub_808DD88 -sub_808DD88: @ 808DD88 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0808DDA4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x4 - bls _0808DD98 - b _0808DEBA -_0808DD98: - lsls r0, 2 - ldr r1, _0808DDA8 @ =_0808DDAC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808DDA4: .4byte sPSSData -_0808DDA8: .4byte _0808DDAC - .align 2, 0 -_0808DDAC: - .4byte _0808DDC0 - .4byte _0808DDFC - .4byte _0808DE64 - .4byte _0808DE7C - .4byte _0808DEA0 -_0808DDC0: - movs r0, 0x6 - bl sub_808FBA4 - ldr r4, _0808DDEC @ =sPSSData - ldr r0, [r4] - ldr r1, _0808DDF0 @ =0x00001e58 - adds r0, r1 - ldr r2, _0808DDF4 @ =0x0000dac7 - movs r1, 0 - str r1, [sp] - movs r1, 0xA - movs r3, 0x3 - bl sub_808C854 - ldr r0, _0808DDF8 @ =gUnknown_20397B6 - ldrb r0, [r0] - bl sub_808C940 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - b _0808DEB8 - .align 2, 0 -_0808DDEC: .4byte sPSSData -_0808DDF0: .4byte 0x00001e58 -_0808DDF4: .4byte 0x0000dac7 -_0808DDF8: .4byte gUnknown_20397B6 -_0808DDFC: - bl sub_808C95C - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r0, 0xC8 - beq _0808DEBA - cmp r0, 0xC9 - bne _0808DE1C - bl sub_808FD20 - bl sub_808C950 - bl sub_808C8FC - b _0808DE92 -_0808DE1C: - adds r0, r4, 0 - bl sub_80930E4 - lsls r0, 24 - cmp r0, 0 - beq _0808DE50 - ldr r0, _0808DE48 @ =gUnknown_20397B6 - strb r4, [r0] - movs r0, 0x2 - bl sub_808FE54 - bl sub_808FD20 - bl sub_808C950 - bl sub_808C8FC - ldr r0, _0808DE4C @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - b _0808DEB8 - .align 2, 0 -_0808DE48: .4byte gUnknown_20397B6 -_0808DE4C: .4byte sPSSData -_0808DE50: - movs r0, 0x8 - bl sub_808FBA4 - ldr r0, _0808DE60 @ =sPSSData - ldr r1, [r0] - movs r0, 0x4 - b _0808DEB8 - .align 2, 0 -_0808DE60: .4byte sPSSData -_0808DE64: - bl CompactPartySlots - bl sub_80909F4 - ldr r0, _0808DE78 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - b _0808DEB8 - .align 2, 0 -_0808DE78: .4byte sPSSData -_0808DE7C: - bl sub_8090A60 - lsls r0, 24 - cmp r0, 0 - bne _0808DEBA - bl sub_8093174 - bl BoxSetMosaic - bl sub_808FAA8 -_0808DE92: - ldr r0, _0808DE9C @ =sub_808D2BC - bl add_to_c3_somehow - b _0808DEBA - .align 2, 0 -_0808DE9C: .4byte sub_808D2BC -_0808DEA0: - ldr r0, _0808DEC4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808DEBA - movs r0, 0x6 - bl sub_808FBA4 - ldr r0, _0808DEC8 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 -_0808DEB8: - strb r0, [r1] -_0808DEBA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808DEC4: .4byte gMain -_0808DEC8: .4byte sPSSData - thumb_func_end sub_808DD88 - - thumb_func_start sub_808DECC -sub_808DECC: @ 808DECC - push {lr} - ldr r0, _0808DEE4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0xD - bls _0808DEDA - b _0808E0AE -_0808DEDA: - lsls r0, 2 - ldr r1, _0808DEE8 @ =_0808DEEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808DEE4: .4byte sPSSData -_0808DEE8: .4byte _0808DEEC - .align 2, 0 -_0808DEEC: - .4byte _0808DF24 - .4byte _0808DF3A - .4byte _0808DF72 - .4byte _0808DF98 - .4byte _0808DFA4 - .4byte _0808DFBC - .4byte _0808DFF8 - .4byte _0808E010 - .4byte _0808E01C - .4byte _0808E020 - .4byte _0808E034 - .4byte _0808E050 - .4byte _0808E062 - .4byte _0808E098 -_0808DF24: - movs r0, 0x9 - bl sub_808FBA4 - movs r0, 0x1 - bl sub_808FCE8 - ldr r0, _0808DF54 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0808DF3A: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0808DF64 - cmp r1, 0 - bgt _0808DF58 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0808DF5E - b _0808E0AE - .align 2, 0 -_0808DF54: .4byte sPSSData -_0808DF58: - cmp r1, 0x1 - beq _0808DF5E - b _0808E0AE -_0808DF5E: - bl sub_808FD20 - b _0808E010 -_0808DF64: - bl sub_808FD20 - bl sub_809328C - bl sub_8093194 - b _0808E074 -_0808DF72: - bl sub_8093420 - bl sub_80931EC - lsls r0, 24 - cmp r0, 0 - beq _0808DF82 - b _0808E0AE -_0808DF82: - b _0808DF8A -_0808DF84: - cmp r0, 0 - bne _0808DF8A - b _0808E088 -_0808DF8A: - bl sub_8093420 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0808DF84 - b _0808E074 -_0808DF98: - bl sub_8093218 - bl sub_808F1D0 - movs r0, 0xA - b _0808E070 -_0808DFA4: - ldr r0, _0808DFB8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - bne _0808DFB2 - b _0808E0AE -_0808DFB2: - movs r0, 0xB - b _0808E070 - .align 2, 0 -_0808DFB8: .4byte gMain -_0808DFBC: - ldr r0, _0808DFE0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E0AE - bl sub_808FD20 - ldr r0, _0808DFE4 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808DFE8 - bl CompactPartySlots - bl sub_80909F4 - b _0808E074 - .align 2, 0 -_0808DFE0: .4byte gMain -_0808DFE4: .4byte sInPartyMenu -_0808DFE8: - ldr r0, _0808DFF4 @ =sPSSData - ldr r1, [r0] - movs r0, 0x7 - strb r0, [r1] - b _0808E0AE - .align 2, 0 -_0808DFF4: .4byte sPSSData -_0808DFF8: - bl sub_8090A60 - lsls r0, 24 - cmp r0, 0 - bne _0808E0AE - bl sub_8092F54 - bl BoxSetMosaic - bl sub_808FAA8 - b _0808E074 -_0808E010: - ldr r0, _0808E018 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808E0AE - .align 2, 0 -_0808E018: .4byte sub_808D2BC -_0808E01C: - movs r0, 0xA - b _0808E070 -_0808E020: - ldr r0, _0808E030 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E0AE - movs r0, 0x15 - b _0808E070 - .align 2, 0 -_0808E030: .4byte gMain -_0808E034: - ldr r0, _0808E04C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E0AE - bl sub_808FD20 - bl sub_8091114 - b _0808E074 - .align 2, 0 -_0808E04C: .4byte gMain -_0808E050: - bl sub_8091150 - lsls r0, 24 - cmp r0, 0 - bne _0808E0AE - bl sub_8093264 - movs r0, 0x13 - b _0808E070 -_0808E062: - ldr r0, _0808E080 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E0AE - movs r0, 0x14 -_0808E070: - bl sub_808FBA4 -_0808E074: - ldr r0, _0808E084 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E0AE - .align 2, 0 -_0808E080: .4byte gMain -_0808E084: .4byte sPSSData -_0808E088: - ldr r0, _0808E094 @ =sPSSData - ldr r1, [r0] - movs r0, 0x8 - strb r0, [r1] - b _0808E0AE - .align 2, 0 -_0808E094: .4byte sPSSData -_0808E098: - ldr r0, _0808E0B4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E0AE - bl sub_808FD20 - ldr r0, _0808E0B8 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E0AE: - pop {r0} - bx r0 - .align 2, 0 -_0808E0B4: .4byte gMain -_0808E0B8: .4byte sub_808D2BC - thumb_func_end sub_808DECC - - thumb_func_start sub_808E0BC -sub_808E0BC: @ 808E0BC - push {r4,lr} - ldr r4, _0808E0D0 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808E0D4 - cmp r0, 0x1 - beq _0808E108 - b _0808E130 - .align 2, 0 -_0808E0D0: .4byte sPSSData -_0808E0D4: - movs r0, 0xC - bl sub_808FBA4 - ldr r0, [r4] - ldr r2, _0808E100 @ =0x00000ce7 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r3, _0808E104 @ =0x00000da4 - adds r0, r3 - strb r1, [r0] - ldr r0, [r4] - adds r0, r2 - ldrb r0, [r0] - movs r1, 0xB0 - movs r2, 0x10 - bl DrawMonMarkingsMenu - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E130 - .align 2, 0 -_0808E100: .4byte 0x00000ce7 -_0808E104: .4byte 0x00000da4 -_0808E108: - bl MonMarkingsHandleInput - lsls r0, 24 - cmp r0, 0 - bne _0808E130 - bl TeardownMonMarkingsMenu - bl sub_808FD20 - ldr r0, [r4] - ldr r1, _0808E138 @ =0x00000da4 - adds r0, r1 - ldrb r0, [r0] - bl sub_8093878 - bl sub_808F1D0 - ldr r0, _0808E13C @ =sub_808D2BC - bl add_to_c3_somehow -_0808E130: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E138: .4byte 0x00000da4 -_0808E13C: .4byte sub_808D2BC - thumb_func_end sub_808E0BC - - thumb_func_start sub_808E140 -sub_808E140: @ 808E140 - push {r4,r5,lr} - ldr r5, _0808E158 @ =sPSSData - ldr r0, [r5] - ldrb r1, [r0] - cmp r1, 0x1 - beq _0808E18C - cmp r1, 0x1 - bgt _0808E15C - cmp r1, 0 - beq _0808E166 - b _0808E1EA - .align 2, 0 -_0808E158: .4byte sPSSData -_0808E15C: - cmp r1, 0x2 - beq _0808E1B4 - cmp r1, 0x3 - beq _0808E1DA - b _0808E1EA -_0808E166: - ldr r1, _0808E17C @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _0808E180 - bl sub_808FD20 - b _0808E1D0 - .align 2, 0 -_0808E17C: .4byte 0x00000ce2 -_0808E180: - ldr r0, _0808E188 @ =sub_808E6D0 - bl add_to_c3_somehow - b _0808E1EA - .align 2, 0 -_0808E188: .4byte sub_808E6D0 -_0808E18C: - movs r0, 0x2 - bl sub_8094D14 - ldr r0, _0808E1B0 @ =sInPartyMenu - ldrb r0, [r0] - negs r4, r0 - orrs r4, r0 - lsrs r4, 31 - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095D84 - b _0808E1D0 - .align 2, 0 -_0808E1B0: .4byte sInPartyMenu -_0808E1B4: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808E1EA - movs r0, 0x3 - bl sub_8094D14 - bl sub_808FD20 - bl sub_8092F54 - bl sub_808F49C -_0808E1D0: - ldr r1, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E1EA -_0808E1DA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E1EA - ldr r0, _0808E1F0 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E1EA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E1F0: .4byte sub_808D2BC - thumb_func_end sub_808E140 - - thumb_func_start sub_808E1F4 -sub_808E1F4: @ 808E1F4 - push {r4,lr} - ldr r0, _0808E20C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0808E2A4 - lsls r0, 2 - ldr r1, _0808E210 @ =_0808E214 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E20C: .4byte sPSSData -_0808E210: .4byte _0808E214 - .align 2, 0 -_0808E214: - .4byte _0808E27C - .4byte _0808E228 - .4byte _0808E250 - .4byte _0808E270 - .4byte _0808E294 -_0808E228: - movs r0, 0x2 - bl sub_8094D14 - ldr r0, _0808E24C @ =sInPartyMenu - ldrb r0, [r0] - negs r4, r0 - orrs r4, r0 - lsrs r4, 31 - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095F74 - b _0808E280 - .align 2, 0 -_0808E24C: .4byte sInPartyMenu -_0808E250: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808E2A4 - movs r0, 0 - bl sub_8094D14 - bl sub_8092F54 - bl sub_808F49C - movs r0, 0x1C - bl sub_808FBA4 - b _0808E280 -_0808E270: - ldr r0, _0808E28C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E2A4 -_0808E27C: - bl sub_808FD20 -_0808E280: - ldr r0, _0808E290 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E2A4 - .align 2, 0 -_0808E28C: .4byte gMain -_0808E290: .4byte sPSSData -_0808E294: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E2A4 - ldr r0, _0808E2AC @ =sub_808D2BC - bl add_to_c3_somehow -_0808E2A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E2AC: .4byte sub_808D2BC - thumb_func_end sub_808E1F4 - - thumb_func_start sub_808E2B0 -sub_808E2B0: @ 808E2B0 - push {r4,r5,lr} - ldr r1, _0808E2CC @ =sPSSData - ldr r0, [r1] - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x4 - bls _0808E2C0 - b _0808E3BA -_0808E2C0: - lsls r0, 2 - ldr r1, _0808E2D0 @ =_0808E2D4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E2CC: .4byte sPSSData -_0808E2D0: .4byte _0808E2D4 - .align 2, 0 -_0808E2D4: - .4byte _0808E2E8 - .4byte _0808E340 - .4byte _0808E360 - .4byte _0808E3A4 - .4byte _0808E38C -_0808E2E8: - ldr r0, [r5] - ldr r1, _0808E310 @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - bne _0808E314 - movs r0, 0x1A - bl PlaySE - movs r0, 0x1A - bl sub_808FBA4 - ldr r1, [r5] - movs r0, 0x3 - strb r0, [r1] - b _0808E3BA - .align 2, 0 -_0808E310: .4byte 0x00000ce2 -_0808E314: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808E33C @ =sInPartyMenu - ldrb r0, [r0] - negs r4, r0 - orrs r4, r0 - lsrs r4, 31 - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8096008 - ldr r1, [r5] - movs r0, 0x1 - strb r0, [r1] - b _0808E3BA - .align 2, 0 -_0808E33C: .4byte sInPartyMenu -_0808E340: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808E3BA - movs r0, 0x19 - bl sub_808FBA4 - ldr r0, _0808E35C @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - b _0808E3BA - .align 2, 0 -_0808E35C: .4byte sPSSData -_0808E360: - ldr r0, _0808E384 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E3BA - bl sub_808FD20 - bl sub_8092F54 - bl sub_808F49C - ldr r0, _0808E388 @ =sPSSData - ldr r1, [r0] - movs r0, 0x4 - strb r0, [r1] - b _0808E3BA - .align 2, 0 -_0808E384: .4byte gMain -_0808E388: .4byte sPSSData -_0808E38C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E3BA - ldr r0, _0808E3A0 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808E3BA - .align 2, 0 -_0808E3A0: .4byte sub_808D2BC -_0808E3A4: - ldr r0, _0808E3C0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E3BA - bl sub_808FD20 - ldr r0, _0808E3C4 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E3BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E3C0: .4byte gMain -_0808E3C4: .4byte sub_808D2BC - thumb_func_end sub_808E2B0 - - thumb_func_start sub_808E3C8 -sub_808E3C8: @ 808E3C8 - push {r4,lr} - ldr r1, _0808E3E0 @ =sPSSData - ldr r0, [r1] - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _0808E4A4 - lsls r0, 2 - ldr r1, _0808E3E4 @ =_0808E3E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E3E0: .4byte sPSSData -_0808E3E4: .4byte _0808E3E8 - .align 2, 0 -_0808E3E8: - .4byte _0808E3FC - .4byte _0808E428 - .4byte _0808E450 - .4byte _0808E470 - .4byte _0808E494 -_0808E3FC: - ldr r0, [r4] - ldr r1, _0808E418 @ =0x00000ce2 - adds r0, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _0808E41C - bl sub_808FD20 - ldr r1, [r4] - b _0808E484 - .align 2, 0 -_0808E418: .4byte 0x00000ce2 -_0808E41C: - ldr r0, _0808E424 @ =sub_808E6D0 - bl add_to_c3_somehow - b _0808E4A4 - .align 2, 0 -_0808E424: .4byte sub_808E6D0 -_0808E428: - movs r0, 0x2 - bl sub_8094D14 - ldr r0, _0808E44C @ =sInPartyMenu - ldrb r0, [r0] - negs r4, r0 - orrs r4, r0 - lsrs r4, 31 - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095EA0 - b _0808E480 - .align 2, 0 -_0808E44C: .4byte sInPartyMenu -_0808E450: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808E4A4 - movs r0, 0x3 - bl sub_8094D14 - bl sub_8092F54 - bl sub_808F49C - movs r0, 0x1D - bl sub_808FBA4 - b _0808E480 -_0808E470: - ldr r0, _0808E48C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E4A4 - bl sub_808FD20 -_0808E480: - ldr r0, _0808E490 @ =sPSSData - ldr r1, [r0] -_0808E484: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E4A4 - .align 2, 0 -_0808E48C: .4byte gMain -_0808E490: .4byte sPSSData -_0808E494: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E4A4 - ldr r0, _0808E4AC @ =sub_808D2BC - bl add_to_c3_somehow -_0808E4A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E4AC: .4byte sub_808D2BC - thumb_func_end sub_808E3C8 - - thumb_func_start sub_808E4B0 -sub_808E4B0: @ 808E4B0 - push {lr} - ldr r0, _0808E4C8 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x6 - bhi _0808E55C - lsls r0, 2 - ldr r1, _0808E4CC @ =_0808E4D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E4C8: .4byte sPSSData -_0808E4CC: .4byte _0808E4D0 - .align 2, 0 -_0808E4D0: - .4byte _0808E4EC - .4byte _0808E4F2 - .4byte _0808E50C - .4byte _0808E512 - .4byte _0808E518 - .4byte _0808E530 - .4byte _0808E54C -_0808E4EC: - bl sub_808FD20 - b _0808E53A -_0808E4F2: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E55C - movs r0, 0x6 - bl PlaySE - bl sub_8096694 - bl sub_80966F4 - b _0808E53A -_0808E50C: - bl sub_8096728 - b _0808E534 -_0808E512: - bl IsDma3ManagerBusyWithBgCopy - b _0808E534 -_0808E518: - ldr r0, _0808E52C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E55C - movs r0, 0x6 - bl PlaySE - b _0808E53A - .align 2, 0 -_0808E52C: .4byte gMain -_0808E530: - bl sub_80967C0 -_0808E534: - lsls r0, 24 - cmp r0, 0 - bne _0808E55C -_0808E53A: - ldr r0, _0808E548 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E55C - .align 2, 0 -_0808E548: .4byte sPSSData -_0808E54C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E55C - ldr r0, _0808E560 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E55C: - pop {r0} - bx r0 - .align 2, 0 -_0808E560: .4byte sub_808D2BC - thumb_func_end sub_808E4B0 - - thumb_func_start sub_808E564 -sub_808E564: @ 808E564 - push {r4,lr} - ldr r0, _0808E57C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x5 - bls _0808E572 - b _0808E67C -_0808E572: - lsls r0, 2 - ldr r1, _0808E580 @ =_0808E584 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E57C: .4byte sPSSData -_0808E580: .4byte _0808E584 - .align 2, 0 -_0808E584: - .4byte _0808E59C - .4byte _0808E5BC - .4byte _0808E61A - .4byte _0808E63C - .4byte _0808E650 - .4byte _0808E66C -_0808E59C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1B - bl sub_808FBA4 - movs r0, 0 - bl sub_808FCE8 - ldr r0, _0808E5B8 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808E67C - .align 2, 0 -_0808E5B8: .4byte sPSSData -_0808E5BC: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0808E5E0 - cmp r1, 0 - bgt _0808E5D6 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0808E5DA - b _0808E67C -_0808E5D6: - cmp r1, 0x1 - bne _0808E67C -_0808E5DA: - bl sub_808FD20 - b _0808E660 -_0808E5E0: - ldr r4, _0808E604 @ =sPSSData - ldr r0, [r4] - ldr r1, _0808E608 @ =0x00002224 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808E60C - bl sub_808FD20 - ldr r1, [r4] - movs r0, 0x3 - strb r0, [r1] - b _0808E67C - .align 2, 0 -_0808E604: .4byte sPSSData -_0808E608: .4byte 0x00002224 -_0808E60C: - movs r0, 0x1A - bl sub_808FBA4 - ldr r1, [r4] - movs r0, 0x2 - strb r0, [r1] - b _0808E67C -_0808E61A: - ldr r0, _0808E634 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E67C - bl sub_808FD20 - ldr r0, _0808E638 @ =sPSSData - ldr r1, [r0] - movs r0, 0x5 - strb r0, [r1] - b _0808E67C - .align 2, 0 -_0808E634: .4byte gMain -_0808E638: .4byte sPSSData -_0808E63C: - bl sub_8096088 - ldr r0, _0808E64C @ =sPSSData - ldr r1, [r0] - movs r0, 0x4 - strb r0, [r1] - b _0808E67C - .align 2, 0 -_0808E64C: .4byte sPSSData -_0808E650: - bl sub_809610C - lsls r0, 24 - cmp r0, 0 - bne _0808E67C - movs r0, 0 - bl sub_8094D14 -_0808E660: - ldr r0, _0808E668 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808E67C - .align 2, 0 -_0808E668: .4byte sub_808D2BC -_0808E66C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E67C - ldr r0, _0808E684 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E67C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E684: .4byte sub_808D2BC - thumb_func_end sub_808E564 - - thumb_func_start sub_808E688 -sub_808E688: @ 808E688 - push {r4,lr} - ldr r4, _0808E69C @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0 - beq _0808E6A0 - cmp r0, 0x1 - beq _0808E6B2 - b _0808E6C6 - .align 2, 0 -_0808E69C: .4byte sPSSData -_0808E6A0: - bl CompactPartySlots - bl sub_80909F4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E6C6 -_0808E6B2: - bl sub_8090A60 - lsls r0, 24 - cmp r0, 0 - bne _0808E6C6 - bl sub_808FAA8 - ldr r0, _0808E6CC @ =sub_808D2BC - bl add_to_c3_somehow -_0808E6C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E6CC: .4byte sub_808D2BC - thumb_func_end sub_808E688 - - thumb_func_start sub_808E6D0 -sub_808E6D0: @ 808E6D0 - push {r4,lr} - ldr r4, _0808E6E8 @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808E6FE - cmp r0, 0x1 - bgt _0808E6EC - cmp r0, 0 - beq _0808E6F6 - b _0808E738 - .align 2, 0 -_0808E6E8: .4byte sPSSData -_0808E6EC: - cmp r0, 0x2 - beq _0808E70A - cmp r0, 0x3 - beq _0808E728 - b _0808E738 -_0808E6F6: - movs r0, 0x1E - bl sub_808FBA4 - b _0808E71A -_0808E6FE: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E738 - b _0808E71A -_0808E70A: - ldr r0, _0808E724 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808E738 - bl sub_808FD20 -_0808E71A: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E738 - .align 2, 0 -_0808E724: .4byte gMain -_0808E728: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E738 - ldr r0, _0808E740 @ =sub_808D2BC - bl add_to_c3_somehow -_0808E738: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E740: .4byte sub_808D2BC - thumb_func_end sub_808E6D0 - - thumb_func_start box_related -box_related: @ 808E744 - push {r4,lr} - ldr r4, _0808E75C @ =sPSSData - ldr r0, [r4] - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808E77A - cmp r0, 0x1 - bgt _0808E760 - cmp r0, 0 - beq _0808E766 - b _0808E830 - .align 2, 0 -_0808E75C: .4byte sPSSData -_0808E760: - cmp r0, 0x2 - beq _0808E78C - b _0808E830 -_0808E766: - movs r0, 0x1 - bl sub_808FBA4 - bl sub_8094E88 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E830 -_0808E77A: - bl sub_8094F90 - lsls r0, 24 - cmp r0, 0 - bne _0808E830 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0808E78C: - bl sub_8094F94 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _0808E830 - lsls r0, 2 - ldr r1, _0808E7A4 @ =_0808E7A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E7A4: .4byte _0808E7A8 - .align 2, 0 -_0808E7A8: - .4byte _0808E7DC - .4byte _0808E7DC - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E830 - .4byte _0808E820 - .4byte _0808E808 - .4byte _0808E7F4 -_0808E7DC: - movs r0, 0x1 - bl sub_80920FC - bl sub_808FD20 - ldr r0, _0808E7F0 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808E830 - .align 2, 0 -_0808E7F0: .4byte sub_808D2BC -_0808E7F4: - movs r0, 0x5 - bl PlaySE - ldr r0, _0808E804 @ =sub_808EA90 - bl add_to_c3_somehow - b _0808E830 - .align 2, 0 -_0808E804: .4byte sub_808EA90 -_0808E808: - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808E81C @ =sub_808E83C - bl add_to_c3_somehow - b _0808E830 - .align 2, 0 -_0808E81C: .4byte sub_808E83C -_0808E820: - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r0, _0808E838 @ =sub_808E9A0 - bl add_to_c3_somehow -_0808E830: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808E838: .4byte sub_808E9A0 - thumb_func_end box_related - - thumb_func_start sub_808E83C -sub_808E83C: @ 808E83C - push {r4,r5,lr} - ldr r0, _0808E854 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x5 - bls _0808E84A - b _0808E994 -_0808E84A: - lsls r0, 2 - ldr r1, _0808E858 @ =_0808E85C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808E854: .4byte sPSSData -_0808E858: .4byte _0808E85C - .align 2, 0 -_0808E85C: - .4byte _0808E874 - .4byte _0808E888 - .4byte _0808E8A0 - .4byte _0808E8FA - .4byte _0808E924 - .4byte _0808E97E -_0808E874: - bl sub_808FD34 - movs r0, 0x2 - bl sub_808FBA4 - ldr r0, _0808E884 @ =sPSSData - ldr r1, [r0] - b _0808E976 - .align 2, 0 -_0808E884: .4byte sPSSData -_0808E888: - bl sub_8094F90 - lsls r0, 24 - cmp r0, 0 - beq _0808E894 - b _0808E994 -_0808E894: - ldr r0, _0808E89C @ =sPSSData - ldr r1, [r0] - b _0808E976 - .align 2, 0 -_0808E89C: .4byte sPSSData -_0808E8A0: - bl sub_8094F94 - ldr r5, _0808E8CC @ =sPSSData - ldr r1, [r5] - ldr r4, _0808E8D0 @ =0x0000078e - adds r1, r4 - strh r0, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0808E8D8 - movs r0, 0x1 - bl sub_80920FC - bl sub_808FD20 - ldr r0, _0808E8D4 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808E994 - .align 2, 0 -_0808E8CC: .4byte sPSSData -_0808E8D0: .4byte 0x0000078e -_0808E8D4: .4byte sub_808D2BC -_0808E8D8: - cmp r0, r1 - blt _0808E994 - cmp r0, 0x15 - bgt _0808E994 - cmp r0, 0x12 - blt _0808E994 - movs r0, 0x5 - bl PlaySE - bl sub_8095024 - ldr r1, [r5] - adds r2, r1, r4 - ldrh r0, [r2] - subs r0, 0x12 - strh r0, [r2] - b _0808E976 -_0808E8FA: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0808E994 - ldr r4, _0808E91C @ =sPSSData - ldr r0, [r4] - ldr r1, _0808E920 @ =0x0000078e - adds r0, r1 - ldrb r0, [r0] - bl sub_808FD5C - movs r0, 0x3 - bl sub_808FBA4 - b _0808E974 - .align 2, 0 -_0808E91C: .4byte sPSSData -_0808E920: .4byte 0x0000078e -_0808E924: - bl sub_8094F94 - ldr r4, _0808E954 @ =sPSSData - ldr r1, [r4] - movs r5, 0xF2 - lsls r5, 3 - adds r1, r5 - strh r0, [r1] - movs r2, 0 - ldrsh r1, [r1, r2] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _0808E994 - adds r0, 0x1 - cmp r1, r0 - bne _0808E958 - bl sub_808FD20 - ldr r1, [r4] - movs r0, 0 - strb r0, [r1] - b _0808E994 - .align 2, 0 -_0808E954: .4byte sPSSData -_0808E958: - movs r0, 0x5 - bl PlaySE - bl sub_808FD20 - ldr r1, [r4] - adds r1, r5 - ldrh r0, [r1] - subs r0, 0x16 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl sub_8091730 -_0808E974: - ldr r1, [r4] -_0808E976: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808E994 -_0808E97E: - bl sub_8091760 - lsls r0, 24 - cmp r0, 0 - bne _0808E994 - movs r0, 0x1 - bl sub_80920FC - ldr r0, _0808E99C @ =sub_808D2BC - bl add_to_c3_somehow -_0808E994: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808E99C: .4byte sub_808D2BC - thumb_func_end sub_808E83C - - thumb_func_start sub_808E9A0 -sub_808E9A0: @ 808E9A0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0808E9B8 @ =sPSSData - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, 0x1 - beq _0808E9F4 - cmp r4, 0x1 - bgt _0808E9BC - cmp r4, 0 - beq _0808E9C6 - b _0808EA80 - .align 2, 0 -_0808E9B8: .4byte sPSSData -_0808E9BC: - cmp r4, 0x2 - beq _0808EA4C - cmp r4, 0x3 - beq _0808EA64 - b _0808EA80 -_0808E9C6: - movs r0, 0x5 - bl sub_808FBA4 - ldr r0, [r5] - ldr r1, _0808E9EC @ =0x00001e58 - adds r0, r1 - ldr r2, _0808E9F0 @ =0x0000dac7 - str r4, [sp] - movs r1, 0xA - movs r3, 0x3 - bl sub_808C854 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - bl sub_808C940 - b _0808EA56 - .align 2, 0 -_0808E9EC: .4byte 0x00001e58 -_0808E9F0: .4byte 0x0000dac7 -_0808E9F4: - bl sub_808C95C - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0808EA44 @ =0x000002ca - adds r1, r2 - strh r0, [r1] - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xC8 - beq _0808EA80 - bl sub_808FD20 - bl sub_808C950 - bl sub_808C8FC - ldr r0, [r5] - ldr r2, _0808EA44 @ =0x000002ca - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xC9 - beq _0808EA34 - adds r4, r0, 0 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0808EA56 -_0808EA34: - movs r0, 0x1 - bl sub_80920FC - ldr r0, _0808EA48 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808EA80 - .align 2, 0 -_0808EA44: .4byte 0x000002ca -_0808EA48: .4byte sub_808D2BC -_0808EA4C: - ldr r1, _0808EA60 @ =0x000002ca - adds r0, r1 - ldrb r0, [r0] - bl sub_8091514 -_0808EA56: - ldr r1, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808EA80 - .align 2, 0 -_0808EA60: .4byte 0x000002ca -_0808EA64: - bl sub_80915FC - lsls r0, 24 - cmp r0, 0 - bne _0808EA80 - ldr r0, [r5] - ldr r2, _0808EA88 @ =0x000002ca - adds r0, r2 - ldrb r0, [r0] - bl sub_808BA00 - ldr r0, _0808EA8C @ =sub_808D2BC - bl add_to_c3_somehow -_0808EA80: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808EA88: .4byte 0x000002ca -_0808EA8C: .4byte sub_808D2BC - thumb_func_end sub_808E9A0 - - thumb_func_start sub_808EA90 -sub_808EA90: @ 808EA90 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0808EAA4 @ =sPSSData - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, 0 - beq _0808EAA8 - cmp r4, 0x1 - beq _0808EAC6 - b _0808EAE0 - .align 2, 0 -_0808EAA4: .4byte sPSSData -_0808EAA8: - bl sub_8093630 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808EAE0 -_0808EAC6: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0808EAE0 - ldr r0, _0808EAE8 @ =sWhichToReshow - strb r4, [r0] - ldr r1, [r5] - movs r0, 0x2 - strb r0, [r1, 0x2] - ldr r0, _0808EAEC @ =sub_808EE18 - bl add_to_c3_somehow -_0808EAE0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808EAE8: .4byte sWhichToReshow -_0808EAEC: .4byte sub_808EE18 - thumb_func_end sub_808EA90 - - thumb_func_start sub_808EAF0 -sub_808EAF0: @ 808EAF0 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0808EB04 @ =sPSSData - ldr r0, [r5] - ldrb r4, [r0] - cmp r4, 0 - beq _0808EB08 - cmp r4, 0x1 - beq _0808EB26 - b _0808EB40 - .align 2, 0 -_0808EB04: .4byte sPSSData -_0808EB08: - bl sub_80936B8 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808EB40 -_0808EB26: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _0808EB40 - ldr r0, _0808EB48 @ =sWhichToReshow - strb r1, [r0] - ldr r0, [r5] - strb r4, [r0, 0x2] - ldr r0, _0808EB4C @ =sub_808EE18 - bl add_to_c3_somehow -_0808EB40: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808EB48: .4byte sWhichToReshow -_0808EB4C: .4byte sub_808EE18 - thumb_func_end sub_808EAF0 - - thumb_func_start sub_808EB50 -sub_808EB50: @ 808EB50 - push {r4,lr} - sub sp, 0x4 - ldr r4, _0808EB64 @ =sPSSData - ldr r0, [r4] - ldrb r1, [r0] - cmp r1, 0 - beq _0808EB68 - cmp r1, 0x1 - beq _0808EB82 - b _0808EB9E - .align 2, 0 -_0808EB64: .4byte sPSSData -_0808EB68: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808EB9E -_0808EB82: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0808EB9E - ldr r1, _0808EBA8 @ =sWhichToReshow - movs r0, 0x2 - strb r0, [r1] - ldr r1, [r4] - movs r0, 0x3 - strb r0, [r1, 0x2] - ldr r0, _0808EBAC @ =sub_808EE18 - bl add_to_c3_somehow -_0808EB9E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808EBA8: .4byte sWhichToReshow -_0808EBAC: .4byte sub_808EE18 - thumb_func_end sub_808EB50 - - thumb_func_start sub_808EBB0 -sub_808EBB0: @ 808EBB0 - push {r4,lr} - ldr r0, _0808EBC8 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x4 - bls _0808EBBE - b _0808ECD0 -_0808EBBE: - lsls r0, 2 - ldr r1, _0808EBCC @ =_0808EBD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808EBC8: .4byte sPSSData -_0808EBCC: .4byte _0808EBD0 - .align 2, 0 -_0808EBD0: - .4byte _0808EBE4 - .4byte _0808EC40 - .4byte _0808EC54 - .4byte _0808EC90 - .4byte _0808ECAC -_0808EBE4: - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - beq _0808EC08 - movs r0, 0x1A - bl PlaySE - movs r0, 0xF - bl sub_808FBA4 - ldr r0, _0808EC04 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808ECD0 - .align 2, 0 -_0808EC04: .4byte sPSSData -_0808EC08: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - beq _0808EC20 - ldr r0, _0808EC1C @ =sub_808E564 - bl add_to_c3_somehow - b _0808ECD0 - .align 2, 0 -_0808EC1C: .4byte sub_808E564 -_0808EC20: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_808FBA4 - movs r0, 0 - bl sub_808FCE8 - ldr r0, _0808EC3C @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - b _0808ECD0 - .align 2, 0 -_0808EC3C: .4byte sPSSData -_0808EC40: - ldr r0, _0808EC50 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808ECD0 - b _0808EC72 - .align 2, 0 -_0808EC50: .4byte gMain -_0808EC54: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0808EC84 - cmp r1, 0 - bgt _0808EC6E - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0808EC72 - b _0808ECD0 -_0808EC6E: - cmp r1, 0x1 - bne _0808ECD0 -_0808EC72: - bl sub_808FD20 - ldr r0, _0808EC80 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808ECD0 - .align 2, 0 -_0808EC80: .4byte sub_808D2BC -_0808EC84: - movs r0, 0x3 - bl PlaySE - bl sub_808FD20 - b _0808EC9A -_0808EC90: - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1 - bl sub_80A0A70 -_0808EC9A: - ldr r0, _0808ECA8 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808ECD0 - .align 2, 0 -_0808ECA8: .4byte sPSSData -_0808ECAC: - bl sub_80A0AAC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808ECD0 - bl sub_808FF70 - bl CalculatePlayerPartyCount - ldr r1, _0808ECD8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _0808ECDC @ =sPSSData - ldr r0, [r0] - strb r4, [r0, 0x2] - ldr r0, _0808ECE0 @ =sub_808EE18 - bl add_to_c3_somehow -_0808ECD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808ECD8: .4byte gPlayerPartyCount -_0808ECDC: .4byte sPSSData -_0808ECE0: .4byte sub_808EE18 - thumb_func_end sub_808EBB0 - - thumb_func_start sub_808ECE4 -sub_808ECE4: @ 808ECE4 - push {r4,lr} - ldr r0, _0808ECFC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x4 - bls _0808ECF2 - b _0808EE04 -_0808ECF2: - lsls r0, 2 - ldr r1, _0808ED00 @ =_0808ED04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808ECFC: .4byte sPSSData -_0808ED00: .4byte _0808ED04 - .align 2, 0 -_0808ED04: - .4byte _0808ED18 - .4byte _0808ED74 - .4byte _0808ED88 - .4byte _0808EDC4 - .4byte _0808EDE0 -_0808ED18: - bl sub_80939A0 - lsls r0, 24 - cmp r0, 0 - beq _0808ED3C - movs r0, 0x1A - bl PlaySE - movs r0, 0xF - bl sub_808FBA4 - ldr r0, _0808ED38 @ =sPSSData - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1] - b _0808EE04 - .align 2, 0 -_0808ED38: .4byte sPSSData -_0808ED3C: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - beq _0808ED54 - ldr r0, _0808ED50 @ =sub_808E564 - bl add_to_c3_somehow - b _0808EE04 - .align 2, 0 -_0808ED50: .4byte sub_808E564 -_0808ED54: - movs r0, 0x5 - bl PlaySE - movs r0, 0x12 - bl sub_808FBA4 - movs r0, 0 - bl sub_808FCE8 - ldr r0, _0808ED70 @ =sPSSData - ldr r1, [r0] - movs r0, 0x2 - strb r0, [r1] - b _0808EE04 - .align 2, 0 -_0808ED70: .4byte sPSSData -_0808ED74: - ldr r0, _0808ED84 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0808EE04 - b _0808EDA8 - .align 2, 0 -_0808ED84: .4byte gMain -_0808ED88: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0808EDA8 - cmp r1, 0 - bgt _0808EDA2 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0808EDB8 - b _0808EE04 -_0808EDA2: - cmp r1, 0x1 - beq _0808EDB8 - b _0808EE04 -_0808EDA8: - bl sub_808FD20 - ldr r0, _0808EDB4 @ =sub_808D2BC - bl add_to_c3_somehow - b _0808EE04 - .align 2, 0 -_0808EDB4: .4byte sub_808D2BC -_0808EDB8: - movs r0, 0x3 - bl PlaySE - bl sub_808FD20 - b _0808EDCE -_0808EDC4: - movs r0, 0x14 - movs r1, 0 - movs r2, 0 - bl sub_80A0A70 -_0808EDCE: - ldr r0, _0808EDDC @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808EE04 - .align 2, 0 -_0808EDDC: .4byte sPSSData -_0808EDE0: - bl sub_80A0AAC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0808EE04 - bl sub_808FF70 - bl CalculatePlayerPartyCount - ldr r1, _0808EE0C @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _0808EE10 @ =sPSSData - ldr r0, [r0] - strb r4, [r0, 0x2] - ldr r0, _0808EE14 @ =sub_808EE18 - bl add_to_c3_somehow -_0808EE04: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808EE0C: .4byte gPlayerPartyCount -_0808EE10: .4byte sPSSData -_0808EE14: .4byte sub_808EE18 - thumb_func_end sub_808ECE4 - - thumb_func_start sub_808EE18 -sub_808EE18: @ 808EE18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0808EE44 @ =sPSSData - ldr r0, [r0] - ldrb r4, [r0, 0x2] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0808EE4C - bl sub_809616C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0808EE4C - bl sub_80961C4 - ldr r1, _0808EE48 @ =gUnknown_20397BA - b _0808EE50 - .align 2, 0 -_0808EE44: .4byte sPSSData -_0808EE48: .4byte gUnknown_20397BA -_0808EE4C: - ldr r1, _0808EE70 @ =gUnknown_20397BA - movs r0, 0 -_0808EE50: - strh r0, [r1] - cmp r4, 0x1 - beq _0808EE78 - cmp r4, 0x1 - ble _0808EE62 - cmp r4, 0x2 - beq _0808EEBC - cmp r4, 0x3 - beq _0808EEE8 -_0808EE62: - bl sub_808EF68 - ldr r0, _0808EE74 @ =sub_808C7B4 - bl SetMainCallback2 - b _0808EEF6 - .align 2, 0 -_0808EE70: .4byte gUnknown_20397BA -_0808EE74: .4byte sub_808C7B4 -_0808EE78: - ldr r0, _0808EEAC @ =sPSSData - ldr r1, [r0] - ldr r2, _0808EEB0 @ =0x0000217c - adds r0, r1, r2 - ldr r0, [r0] - mov r8, r0 - subs r2, 0x3 - adds r0, r1, r2 - ldrb r6, [r0] - subs r2, 0x1 - adds r0, r1, r2 - ldrb r5, [r0] - ldr r0, _0808EEB4 @ =0x0000217a - adds r1, r0 - ldrb r4, [r1] - bl sub_808EF68 - ldr r3, _0808EEB8 @ =sub_808CE60 - str r4, [sp] - mov r0, r8 - adds r1, r6, 0 - adds r2, r5, 0 - bl ShowPokemonSummaryScreen - b _0808EEF6 - .align 2, 0 -_0808EEAC: .4byte sPSSData -_0808EEB0: .4byte 0x0000217c -_0808EEB4: .4byte 0x0000217a -_0808EEB8: .4byte sub_808CE60 -_0808EEBC: - bl sub_808EF68 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - bl GetBoxNamePtr - adds r1, r0, 0 - movs r0, 0 - str r0, [sp] - ldr r0, _0808EEE4 @ =sub_808CE60 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen - b _0808EEF6 - .align 2, 0 -_0808EEE4: .4byte sub_808CE60 -_0808EEE8: - bl sub_808EF68 - ldr r2, _0808EF08 @ =sub_808CE60 - movs r0, 0x4 - movs r1, 0 - bl GoToBagMenu -_0808EEF6: - adds r0, r7, 0 - bl DestroyTask - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808EF08: .4byte sub_808CE60 - thumb_func_end sub_808EE18 - - thumb_func_start sub_808EF0C -sub_808EF0C: @ 808EF0C - push {lr} - sub sp, 0x4 - ldr r0, _0808EF40 @ =gSpecialVar_ItemId - ldrh r1, [r0] - mov r0, sp - strh r1, [r0] - cmp r1, 0 - beq _0808EF60 - bl sub_8094CC8 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _0808EF44 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808EF4C - movs r0, 0x64 - muls r0, r1 - ldr r1, _0808EF48 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl SetMonData - b _0808EF56 - .align 2, 0 -_0808EF40: .4byte gSpecialVar_ItemId -_0808EF44: .4byte sInPartyMenu -_0808EF48: .4byte gPlayerParty -_0808EF4C: - adds r0, r1, 0 - movs r1, 0xC - mov r2, sp - bl SetBoxMonDataFromSelectedBox -_0808EF56: - mov r0, sp - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem -_0808EF60: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808EF0C - - thumb_func_start sub_808EF68 -sub_808EF68: @ 808EF68 - push {r4,lr} - bl sub_80F7B2C - bl sub_80950A4 - ldr r4, _0808EF88 @ =sPSSData - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - bl FreeAllWindowBuffers - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808EF88: .4byte sPSSData - thumb_func_end sub_808EF68 - - thumb_func_start sub_808EF8C -sub_808EF8C: @ 808EF8C - push {lr} - sub sp, 0x4 - ldr r1, _0808EFB8 @ =0x00001f0f - movs r0, 0xE - bl SetGpuReg - ldr r1, _0808EFBC @ =gUnknown_83CE438 - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _0808EFC0 @ =gUnknown_83CE4D0 - ldr r1, _0808EFC4 @ =0x0600f800 - bl LZ77UnCompVram - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0808EFB8: .4byte 0x00001f0f -_0808EFBC: .4byte gUnknown_83CE438 -_0808EFC0: .4byte gUnknown_83CE4D0 -_0808EFC4: .4byte 0x0600f800 - thumb_func_end sub_808EF8C - - thumb_func_start sub_808EFC8 -sub_808EFC8: @ 808EFC8 - push {lr} - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0x80 - movs r2, 0x2 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_808EFC8 - - thumb_func_start sub_808EFE4 -sub_808EFE4: @ 808EFE4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _0808F030 @ =gUnknown_83CEA50 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r1, _0808F034 @ =gUnknown_8E9C438 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DecompressAndLoadBgGfxUsingHeap - ldr r0, _0808F038 @ =gUnknown_83CE5FC - ldr r5, _0808F03C @ =sPSSData - ldr r1, [r5] - ldr r4, _0808F040 @ =0x00005abc - adds r1, r4 - bl LZ77UnCompWram - ldr r1, [r5] - adds r1, r4 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl ShowBg - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808F030: .4byte gUnknown_83CEA50 -_0808F034: .4byte gUnknown_8E9C438 -_0808F038: .4byte gUnknown_83CE5FC -_0808F03C: .4byte sPSSData -_0808F040: .4byte 0x00005abc - thumb_func_end sub_808EFE4 - - thumb_func_start sub_808F044 -sub_808F044: @ 808F044 - push {lr} - ldr r0, _0808F05C @ =gUnknown_83CEA30 - bl InitWindows - lsls r0, 16 - cmp r0, 0 - beq _0808F060 - bl DeactivateAllTextPrinters - movs r0, 0x1 - b _0808F062 - .align 2, 0 -_0808F05C: .4byte gUnknown_83CEA30 -_0808F060: - movs r0, 0 -_0808F062: - pop {r1} - bx r1 - thumb_func_end sub_808F044 - - thumb_func_start sub_808F068 -sub_808F068: @ 808F068 - push {lr} - ldr r0, _0808F074 @ =gUnknown_83CEA60 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_0808F074: .4byte gUnknown_83CEA60 - thumb_func_end sub_808F068 - - thumb_func_start sub_808F078 -sub_808F078: @ 808F078 - push {lr} - ldr r0, _0808F0B0 @ =gUnknown_8E9C3F8 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0B4 @ =gUnknown_8E9C418 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0B8 @ =gUnknown_83CEA10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0808F0BC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - beq _0808F0C4 - ldr r0, _0808F0C0 @ =gUnknown_83CE738 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - b _0808F0CE - .align 2, 0 -_0808F0B0: .4byte gUnknown_8E9C3F8 -_0808F0B4: .4byte gUnknown_8E9C418 -_0808F0B8: .4byte gUnknown_83CEA10 -_0808F0BC: .4byte sPSSData -_0808F0C0: .4byte gUnknown_83CE738 -_0808F0C4: - ldr r0, _0808F0EC @ =gUnknown_83CE758 - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette -_0808F0CE: - ldr r1, _0808F0F0 @ =0x00001e05 - movs r0, 0xA - bl SetGpuReg - bl sub_808F2BC - bl sub_808F0F4 - bl sub_808F164 - bl sub_808F1D0 - pop {r0} - bx r0 - .align 2, 0 -_0808F0EC: .4byte gUnknown_83CE758 -_0808F0F0: .4byte 0x00001e05 - thumb_func_end sub_808F078 - - thumb_func_start sub_808F0F4 -sub_808F0F4: @ 808F0F4 - push {r4,lr} - ldr r1, _0808F154 @ =0x0000dac8 - movs r0, 0x10 - movs r2, 0 - bl CreateMonMarkingSprite_AllOff - ldr r4, _0808F158 @ =sPSSData - ldr r1, [r4] - movs r3, 0xD9 - lsls r3, 4 - adds r1, r3 - str r0, [r1] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r4] - adds r0, r3 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - adds r0, r3 - ldr r2, [r0] - movs r1, 0x28 - strh r1, [r2, 0x20] - ldr r1, [r0] - movs r0, 0x96 - strh r0, [r1, 0x22] - movs r0, 0x10 - bl GetSpriteTileStartByTag - ldr r1, [r4] - ldr r2, _0808F15C @ =0x00000d9c - adds r1, r2 - lsls r0, 16 - lsrs r0, 11 - ldr r2, _0808F160 @ =0x06010000 - adds r0, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F154: .4byte 0x0000dac8 -_0808F158: .4byte sPSSData -_0808F15C: .4byte 0x00000d9c -_0808F160: .4byte 0x06010000 - thumb_func_end sub_808F0F4 - - thumb_func_start sub_808F164 -sub_808F164: @ 808F164 - push {r4,lr} - sub sp, 0x8 - ldr r0, _0808F1BC @ =gUnknown_83CEA68 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 -_0808F17A: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0808F1C0 @ =gUnknown_83CEBD8 - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0808F1C4 @ =sPSSData - ldr r2, [r1] - lsls r1, r4, 2 - ldr r3, _0808F1C8 @ =0x00000d94 - adds r2, r3 - adds r2, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0808F1CC @ =gSprites - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F17A - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F1BC: .4byte gUnknown_83CEA68 -_0808F1C0: .4byte gUnknown_83CEBD8 -_0808F1C4: .4byte sPSSData -_0808F1C8: .4byte 0x00000d94 -_0808F1CC: .4byte gSprites - thumb_func_end sub_808F164 - - thumb_func_start sub_808F1D0 -sub_808F1D0: @ 808F1D0 - push {lr} - ldr r0, _0808F1FC @ =sPSSData - ldr r1, [r0] - movs r2, 0xCE - lsls r2, 4 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_808F3F8 - bl sub_808F49C - bl sub_808F5E8 - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - pop {r0} - bx r0 - .align 2, 0 -_0808F1FC: .4byte sPSSData - thumb_func_end sub_808F1D0 - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 808F200 - push {lr} - bl sub_808F1D0 - ldr r3, _0808F24C @ =sPSSData - ldr r0, [r3] - ldr r1, _0808F250 @ =0x00002238 - adds r0, r1 - ldr r2, [r0] - cmp r2, 0 - beq _0808F248 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - ldr r0, _0808F250 @ =0x00002238 - adds r1, r0 - ldr r2, [r1] - movs r0, 0xA - strh r0, [r2, 0x2E] - ldr r2, [r1] - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r2, [r1] - ldr r0, _0808F254 @ =BoxSetMosaic2 - str r0, [r2, 0x1C] - ldr r0, [r1] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg -_0808F248: - pop {r0} - bx r0 - .align 2, 0 -_0808F24C: .4byte sPSSData -_0808F250: .4byte 0x00002238 -_0808F254: .4byte BoxSetMosaic2 - thumb_func_end BoxSetMosaic - - thumb_func_start sub_808F258 -sub_808F258: @ 808F258 - ldr r0, _0808F26C @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F270 @ =0x00002238 - adds r0, r1 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 31 - bx lr - .align 2, 0 -_0808F26C: .4byte sPSSData -_0808F270: .4byte 0x00002238 - thumb_func_end sub_808F258 - - thumb_func_start BoxSetMosaic2 -BoxSetMosaic2: @ 808F274 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _0808F28A - movs r0, 0 - strh r0, [r4, 0x2E] -_0808F28A: - ldrh r0, [r4, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4C - bl SetGpuReg - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808F2B2 - ldrb r0, [r4, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r4, 0x1] - ldr r0, _0808F2B8 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0808F2B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F2B8: .4byte SpriteCallbackDummy - thumb_func_end BoxSetMosaic2 - - thumb_func_start sub_808F2BC -sub_808F2BC: @ 808F2BC - push {r4-r7,lr} - sub sp, 0x28 - ldr r0, _0808F350 @ =sPSSData - mov r12, r0 - ldr r1, [r0] - ldr r4, _0808F354 @ =0x000022bc - adds r0, r1, r4 - str r0, [sp, 0x18] - add r3, sp, 0x18 - movs r0, 0x82 - lsls r0, 10 - str r0, [r3, 0x4] - ldr r5, _0808F358 @ =0x0000223c - adds r1, r5 - str r1, [sp, 0x20] - ldr r0, _0808F35C @ =0x0000dac6 - add r2, sp, 0x20 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0808F360 @ =gUnknown_83CEA70 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - movs r6, 0 - adds r7, r2, 0 - mov r5, r12 - movs r2, 0 - ldr r1, _0808F364 @ =0x000007ff -_0808F2F6: - ldr r0, [r5] - adds r0, r4 - adds r0, r6 - strb r2, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r1 - bls _0808F2F6 - movs r6, 0 - ldr r5, _0808F350 @ =sPSSData - ldr r4, _0808F358 @ =0x0000223c - movs r2, 0 -_0808F310: - ldr r0, [r5] - lsls r1, r6, 1 - adds r0, r4 - adds r0, r1 - strh r2, [r0] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0xF - bls _0808F310 - ldr r0, _0808F350 @ =sPSSData - ldr r0, [r0] - ldr r6, _0808F368 @ =0x00002238 - adds r0, r6 - movs r1, 0 - str r1, [r0] - adds r0, r3, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _0808F3C8 - adds r0, r7, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _0808F3C8 - b _0808F3B4 - .align 2, 0 -_0808F350: .4byte sPSSData -_0808F354: .4byte 0x000022bc -_0808F358: .4byte 0x0000223c -_0808F35C: .4byte 0x0000dac6 -_0808F360: .4byte gUnknown_83CEA70 -_0808F364: .4byte 0x000007ff -_0808F368: .4byte 0x00002238 -_0808F36C: - ldr r0, _0808F39C @ =sPSSData - ldr r2, [r0] - ldr r7, _0808F3A0 @ =0x00002238 - adds r3, r2, r7 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808F3A4 @ =gSprites - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _0808F3A8 @ =0x00002232 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _0808F3AC @ =0x00002234 - adds r2, r6 - lsls r0, r5, 5 - ldr r7, _0808F3B0 @ =0x06010000 - adds r0, r7 - str r0, [r2] - b _0808F3C8 - .align 2, 0 -_0808F39C: .4byte sPSSData -_0808F3A0: .4byte 0x00002238 -_0808F3A4: .4byte gSprites -_0808F3A8: .4byte 0x00002232 -_0808F3AC: .4byte 0x00002234 -_0808F3B0: .4byte 0x06010000 -_0808F3B4: - mov r0, sp - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _0808F36C -_0808F3C8: - ldr r0, _0808F3EC @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F3F0 @ =0x00002238 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0808F3E2 - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _0808F3F4 @ =0x0000dac6 - bl FreeSpritePaletteByTag -_0808F3E2: - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808F3EC: .4byte sPSSData -_0808F3F0: .4byte 0x00002238 -_0808F3F4: .4byte 0x0000dac6 - thumb_func_end sub_808F2BC - - thumb_func_start sub_808F3F8 -sub_808F3F8: @ 808F3F8 - push {r4-r7,lr} - adds r3, r1, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r6, _0808F468 @ =sPSSData - ldr r4, [r6] - ldr r7, _0808F46C @ =0x00002238 - adds r0, r4, r7 - ldr r0, [r0] - cmp r0, 0 - beq _0808F496 - cmp r2, 0 - beq _0808F48C - lsls r0, r2, 3 - ldr r1, _0808F470 @ =gMonFrontPicTable - adds r0, r1 - ldr r5, _0808F474 @ =0x000022bc - adds r1, r4, r5 - bl HandleLoadSpecialPokePic - ldr r1, [r6] - ldr r2, _0808F478 @ =0x00000cd8 - adds r0, r1, r2 - ldr r0, [r0] - ldr r4, _0808F47C @ =0x0000223c - adds r1, r4 - bl LZ77UnCompWram - ldr r0, [r6] - adds r5, r0, r5 - ldr r1, _0808F480 @ =0x00002234 - adds r0, r1 - ldr r1, [r0] - ldr r2, _0808F484 @ =0x04000200 - adds r0, r5, 0 - bl CpuSet - ldr r0, [r6] - adds r4, r0, r4 - ldr r2, _0808F488 @ =0x00002232 - adds r0, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, [r6] - adds r0, r7 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _0808F496 - .align 2, 0 -_0808F468: .4byte sPSSData -_0808F46C: .4byte 0x00002238 -_0808F470: .4byte gMonFrontPicTable -_0808F474: .4byte 0x000022bc -_0808F478: .4byte 0x00000cd8 -_0808F47C: .4byte 0x0000223c -_0808F480: .4byte 0x00002234 -_0808F484: .4byte 0x04000200 -_0808F488: .4byte 0x00002232 -_0808F48C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0808F496: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808F3F8 - - thumb_func_start sub_808F49C -sub_808F49C: @ 808F49C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - movs r0, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r6, _0808F51C @ =sPSSData - ldr r2, [r6] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - beq _0808F528 - movs r4, 0 - movs r5, 0 - mov r8, r6 -_0808F4BC: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r1, _0808F520 @ =0x00000cf5 - adds r0, r1 - mov r2, r8 - ldr r1, [r2] - adds r2, r1, r0 - movs r3, 0x6 - cmp r4, 0x2 - bne _0808F4D4 - movs r3, 0xA -_0808F4D4: - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp] - movs r7, 0xFF - str r7, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xE - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _0808F4BC - ldr r0, _0808F51C @ =sPSSData - ldr r2, [r0] - ldr r0, _0808F524 @ =0x00000d61 - adds r2, r0 - adds r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r3, 0x6 - bl AddTextPrinterParameterized - b _0808F57E - .align 2, 0 -_0808F51C: .4byte sPSSData -_0808F520: .4byte 0x00000cf5 -_0808F524: .4byte 0x00000d61 -_0808F528: - ldr r1, _0808F5BC @ =0x00000d61 - adds r2, r1 - movs r1, 0 - str r1, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - str r1, [sp, 0x8] - movs r0, 0 - movs r3, 0x6 - bl AddTextPrinterParameterized - movs r4, 0 - movs r5, 0xF -_0808F542: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - ldr r2, _0808F5C0 @ =0x00000cf5 - adds r0, r2 - ldr r1, [r6] - adds r2, r1, r0 - movs r3, 0x6 - cmp r4, 0x2 - bne _0808F558 - movs r3, 0xA -_0808F558: - lsls r0, r5, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - adds r0, 0xE - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _0808F542 -_0808F57E: - movs r0, 0 - movs r1, 0x2 - bl CopyWindowToVram - ldr r4, _0808F5C4 @ =sPSSData - ldr r1, [r4] - movs r2, 0xCE - lsls r2, 4 - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _0808F5C8 - adds r2, 0x7 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0xB5 - adds r1, r2 - ldr r1, [r1] - bl sub_80BEBD0 - ldr r0, [r4] - movs r1, 0xD9 - lsls r1, 4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _0808F5D8 - .align 2, 0 -_0808F5BC: .4byte 0x00000d61 -_0808F5C0: .4byte 0x00000cf5 -_0808F5C4: .4byte sPSSData -_0808F5C8: - movs r2, 0xD9 - lsls r2, 4 - adds r0, r1, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_0808F5D8: - strb r0, [r1] - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808F49C - - thumb_func_start sub_808F5E8 -sub_808F5E8: @ 808F5E8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0808F634 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0808F63C - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x8 - bl sub_80F7CE8 - movs r4, 0 -_0808F60E: - ldr r0, _0808F634 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0808F638 @ =0x00000d94 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F60E - b _0808F66E - .align 2, 0 -_0808F634: .4byte sPSSData -_0808F638: .4byte 0x00000d94 -_0808F63C: - movs r0, 0x2 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x8 - bl sub_80F7CE8 - movs r4, 0 -_0808F64E: - ldr r0, _0808F684 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0808F688 @ =0x00000d94 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 25 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0808F64E -_0808F66E: - movs r0, 0 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F684: .4byte sPSSData -_0808F688: .4byte 0x00000d94 - thumb_func_end sub_808F5E8 - - thumb_func_start sub_808F68C -sub_808F68C: @ 808F68C - push {r4,lr} - sub sp, 0x4 - ldr r0, _0808F704 @ =gUnknown_8E9CAEC - ldr r4, _0808F708 @ =sPSSData - ldr r1, [r4] - adds r1, 0xB0 - bl LZ77UnCompWram - ldr r0, _0808F70C @ =gUnknown_8E9C3D8 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r2, [r4] - adds r2, 0xB0 - movs r0, 0x16 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0xC - bl sub_80F7B80 - ldr r2, _0808F710 @ =gUnknown_83CE778 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0x9 - bl sub_80F7B80 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0 - bl sub_80F7CAC - movs r0, 0x2 - movs r1, 0x15 - movs r2, 0 - bl sub_80F7CAC - bl sub_808F9FC - ldr r0, _0808F714 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808F718 - movs r0, 0x1 - bl sub_808F90C - movs r0, 0x1 - bl sub_809088C - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl sub_80F7E54 - b _0808F73A - .align 2, 0 -_0808F704: .4byte gUnknown_8E9CAEC -_0808F708: .4byte sPSSData -_0808F70C: .4byte gUnknown_8E9C3D8 -_0808F710: .4byte gUnknown_83CE778 -_0808F714: .4byte sInPartyMenu -_0808F718: - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xC - bl sub_80F7CE8 - movs r0, 0x1 - bl sub_808F90C - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x2 - bl sub_80F7E54 -_0808F73A: - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - ldr r0, _0808F754 @ =sPSSData - ldr r0, [r0] - ldr r1, _0808F758 @ =0x000002c7 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F754: .4byte sPSSData -_0808F758: .4byte 0x000002c7 - thumb_func_end sub_808F68C - - thumb_func_start sub_808F75C -sub_808F75C: @ 808F75C - push {lr} - ldr r0, _0808F788 @ =sPSSData - ldr r1, [r0] - movs r0, 0xB0 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _0808F78C @ =0x000002c2 - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0808F790 @ =0x000002c5 - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_809088C - pop {r0} - bx r0 - .align 2, 0 -_0808F788: .4byte sPSSData -_0808F78C: .4byte 0x000002c2 -_0808F790: .4byte 0x000002c5 - thumb_func_end sub_808F75C - - thumb_func_start sub_808F794 -sub_808F794: @ 808F794 - push {r4,lr} - ldr r4, _0808F7F0 @ =sPSSData - ldr r2, [r4] - ldr r1, _0808F7F4 @ =0x000002c5 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x14 - beq _0808F802 - movs r0, 0xB0 - lsls r0, 2 - adds r1, r2, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldr r0, _0808F7F8 @ =0x000002c2 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0x1 - bl sub_80F7D30 - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x8 - bl sub_8090B98 - ldr r1, [r4] - ldr r0, _0808F7F4 @ =0x000002c5 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0808F7FC - movs r0, 0x1 - b _0808F804 - .align 2, 0 -_0808F7F0: .4byte sPSSData -_0808F7F4: .4byte 0x000002c5 -_0808F7F8: .4byte 0x000002c2 -_0808F7FC: - ldr r1, _0808F80C @ =sInPartyMenu - movs r0, 0x1 - strb r0, [r1] -_0808F802: - movs r0, 0 -_0808F804: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0808F80C: .4byte sInPartyMenu - thumb_func_end sub_808F794 - - thumb_func_start sub_808F810 -sub_808F810: @ 808F810 - push {r4,lr} - ldr r4, _0808F844 @ =sPSSData - ldr r1, [r4] - movs r0, 0xB0 - lsls r0, 2 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _0808F848 @ =0x000002c2 - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _0808F84C @ =0x000002c5 - adds r1, r0 - strb r3, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0808F83C - bl sub_80960C0 -_0808F83C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F844: .4byte sPSSData -_0808F848: .4byte 0x000002c2 -_0808F84C: .4byte 0x000002c5 - thumb_func_end sub_808F810 - - thumb_func_start sub_808F850 -sub_808F850: @ 808F850 - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, _0808F8C8 @ =sPSSData - ldr r2, [r5] - ldr r1, _0808F8CC @ =0x000002c5 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x14 - beq _0808F8FC - movs r0, 0xB0 - lsls r0, 2 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r4, _0808F8D0 @ =0x000002c2 - adds r1, r2, r4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - movs r1, 0x3 - bl sub_80F7D30 - movs r0, 0x1 - bl sub_80F7E54 - movs r1, 0x80 - lsls r1, 1 - ldr r0, [r5] - adds r0, r4 - ldrb r3, [r0] - movs r0, 0xC - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r2, 0xA - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x8 - negs r0, r0 - bl sub_8090B98 - ldr r1, [r5] - ldr r0, _0808F8CC @ =0x000002c5 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0808F8D4 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x1 - b _0808F8FE - .align 2, 0 -_0808F8C8: .4byte sPSSData -_0808F8CC: .4byte 0x000002c5 -_0808F8D0: .4byte 0x000002c2 -_0808F8D4: - ldr r0, _0808F908 @ =sInPartyMenu - movs r1, 0 - strb r1, [r0] - bl sub_8090C44 - bl CompactPartySlots - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_80F7CE8 - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram -_0808F8FC: - movs r0, 0 -_0808F8FE: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808F908: .4byte sInPartyMenu - thumb_func_end sub_808F850 - - thumb_func_start sub_808F90C -sub_808F90C: @ 808F90C - push {lr} - sub sp, 0x4 - lsls r0, 24 - cmp r0, 0 - beq _0808F926 - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_80F7CE8 - b _0808F934 -_0808F926: - movs r0, 0x2 - str r0, [sp] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x9 - bl sub_80F7CE8 -_0808F934: - movs r0, 0x2 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808F90C - - thumb_func_start sub_808F948 -sub_808F948: @ 808F948 - ldr r2, _0808F968 @ =sPSSData - ldr r0, [r2] - ldr r1, _0808F96C @ =0x000002c7 - adds r0, r1 - movs r3, 0x1 - strb r3, [r0] - ldr r0, [r2] - adds r1, 0x1 - adds r0, r1 - movs r1, 0x1E - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0808F970 @ =0x000002c9 - adds r0, r1 - strb r3, [r0] - bx lr - .align 2, 0 -_0808F968: .4byte sPSSData -_0808F96C: .4byte 0x000002c7 -_0808F970: .4byte 0x000002c9 - thumb_func_end sub_808F948 - - thumb_func_start sub_808F974 -sub_808F974: @ 808F974 - push {lr} - ldr r0, _0808F994 @ =sPSSData - ldr r0, [r0] - ldr r2, _0808F998 @ =0x000002c7 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _0808F98E - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_808F90C -_0808F98E: - pop {r0} - bx r0 - .align 2, 0 -_0808F994: .4byte sPSSData -_0808F998: .4byte 0x000002c7 - thumb_func_end sub_808F974 - - thumb_func_start sub_808F99C -sub_808F99C: @ 808F99C - push {r4,lr} - ldr r3, _0808F9F0 @ =sPSSData - ldr r1, [r3] - ldr r2, _0808F9F4 @ =0x000002c7 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0808F9E8 - movs r0, 0xB2 - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _0808F9E8 - ldr r0, [r3] - movs r1, 0xB2 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r3] - movs r2, 0 - ldr r4, _0808F9F8 @ =0x000002c9 - adds r1, r0, r4 - ldrb r0, [r1] - cmp r0, 0 - bne _0808F9DC - movs r2, 0x1 -_0808F9DC: - strb r2, [r1] - ldr r0, [r3] - adds r0, r4 - ldrb r0, [r0] - bl sub_808F90C -_0808F9E8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808F9F0: .4byte sPSSData -_0808F9F4: .4byte 0x000002c7 -_0808F9F8: .4byte 0x000002c9 - thumb_func_end sub_808F99C - - thumb_func_start sub_808F9FC -sub_808F9FC: @ 808F9FC - push {r4,lr} - movs r4, 0x1 -_0808FA00: - movs r0, 0x64 - muls r0, r4 - ldr r1, _0808FA2C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - adds r0, r4, 0 - bl sub_808FA30 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0808FA00 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808FA2C: .4byte gPlayerParty - thumb_func_end sub_808F9FC - - thumb_func_start sub_808FA30 -sub_808FA30: @ 808FA30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r7, _0808FA9C @ =gUnknown_83CE7D8 - cmp r1, 0 - beq _0808FA40 - ldr r7, _0808FAA0 @ =gUnknown_83CE7C0 -_0808FA40: - subs r0, 0x1 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 18 - movs r1, 0xE0 - lsls r1, 11 - adds r0, r1 - lsrs r3, r0, 16 - movs r0, 0 - ldr r1, _0808FAA4 @ =sPSSData - mov r12, r1 -_0808FA5C: - movs r2, 0 - adds r4, r7, 0 - adds r4, 0x8 - adds r5, r3, 0 - adds r5, 0xC - adds r6, r0, 0x1 -_0808FA68: - mov r0, r12 - ldr r1, [r0] - adds r0, r3, r2 - lsls r0, 1 - adds r1, 0xB0 - adds r1, r0 - lsls r0, r2, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3 - bls _0808FA68 - adds r7, r4, 0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - lsls r0, r6, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _0808FA5C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0808FA9C: .4byte gUnknown_83CE7D8 -_0808FAA0: .4byte gUnknown_83CE7C0 -_0808FAA4: .4byte sPSSData - thumb_func_end sub_808FA30 - - thumb_func_start sub_808FAA8 -sub_808FAA8: @ 808FAA8 - push {lr} - sub sp, 0x4 - bl sub_808F9FC - movs r0, 0x16 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0xC - bl sub_80F7CE8 - movs r0, 0x1 - bl sub_80F7E54 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_808FAA8 - - thumb_func_start sub_808FAD4 -sub_808FAD4: @ 808FAD4 - push {lr} - ldr r0, _0808FAF0 @ =sPSSData - ldr r0, [r0] - ldr r1, _0808FAF4 @ =0x000002c6 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_808F75C - pop {r0} - bx r0 - .align 2, 0 -_0808FAF0: .4byte sPSSData -_0808FAF4: .4byte 0x000002c6 - thumb_func_end sub_808FAD4 - - thumb_func_start sub_808FAF8 -sub_808FAF8: @ 808FAF8 - push {r4,r5,lr} - ldr r4, _0808FB14 @ =sPSSData - ldr r0, [r4] - ldr r5, _0808FB18 @ =0x000002c6 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0808FB32 - cmp r0, 0x1 - bgt _0808FB1C - cmp r0, 0 - beq _0808FB22 - b _0808FB60 - .align 2, 0 -_0808FB14: .4byte sPSSData -_0808FB18: .4byte 0x000002c6 -_0808FB1C: - cmp r0, 0x2 - beq _0808FB5C - b _0808FB60 -_0808FB22: - bl sub_808F794 - lsls r0, 24 - cmp r0, 0 - bne _0808FB60 - bl sub_8092AE4 - b _0808FB4C -_0808FB32: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - bne _0808FB60 - ldr r0, [r4] - ldr r1, _0808FB58 @ =0x00000ce6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0808FB4C - bl BoxSetMosaic -_0808FB4C: - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808FB60 - .align 2, 0 -_0808FB58: .4byte 0x00000ce6 -_0808FB5C: - movs r0, 0 - b _0808FB62 -_0808FB60: - movs r0, 0x1 -_0808FB62: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808FAF8 - - thumb_func_start sub_808FB68 -sub_808FB68: @ 808FB68 - push {lr} - sub sp, 0xC - movs r1, 0xE8 - lsls r1, 5 - movs r0, 0x8 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - movs r0, 0x20 - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r0} - bx r0 - thumb_func_end sub_808FB68 - - thumb_func_start sub_808FBA4 -sub_808FBA4: @ 808FBA4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r6, r0, 24 - bl DynamicPlaceholderTextUtil_Reset - ldr r1, _0808FBC8 @ =gUnknown_83CEA88 - lsls r0, r6, 3 - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r0, 0x7 - bhi _0808FC7C - lsls r0, 2 - ldr r1, _0808FBCC @ =_0808FBD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0808FBC8: .4byte gUnknown_83CEA88 -_0808FBCC: .4byte _0808FBD0 - .align 2, 0 -_0808FBD0: - .4byte _0808FC7C - .4byte _0808FBF0 - .4byte _0808FBF0 - .4byte _0808FBF0 - .4byte _0808FC04 - .4byte _0808FC04 - .4byte _0808FC04 - .4byte _0808FC1C -_0808FBF0: - ldr r0, _0808FBFC @ =sPSSData - ldr r1, [r0] - ldr r0, _0808FC00 @ =0x00000cea - adds r1, r0 - b _0808FC0C - .align 2, 0 -_0808FBFC: .4byte sPSSData -_0808FC00: .4byte 0x00000cea -_0808FC04: - ldr r0, _0808FC14 @ =sPSSData - ldr r1, [r0] - ldr r2, _0808FC18 @ =0x000021d0 - adds r1, r2 -_0808FC0C: - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - b _0808FC7C - .align 2, 0 -_0808FC14: .4byte sPSSData -_0808FC18: .4byte 0x000021d0 -_0808FC1C: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - beq _0808FC40 - ldr r0, _0808FC38 @ =sPSSData - ldr r4, [r0] - ldr r0, _0808FC3C @ =0x000021db - adds r4, r0 - bl sub_80961A8 - adds r1, r0, 0 - adds r0, r4, 0 - b _0808FC4C - .align 2, 0 -_0808FC38: .4byte sPSSData -_0808FC3C: .4byte 0x000021db -_0808FC40: - ldr r0, _0808FC54 @ =sPSSData - ldr r1, [r0] - ldr r2, _0808FC58 @ =0x000021db - adds r0, r1, r2 - ldr r2, _0808FC5C @ =0x00000d61 - adds r1, r2 -_0808FC4C: - bl StringCopy - adds r2, r0, 0 - b _0808FC62 - .align 2, 0 -_0808FC54: .4byte sPSSData -_0808FC58: .4byte 0x000021db -_0808FC5C: .4byte 0x00000d61 -_0808FC60: - adds r2, r1, 0 -_0808FC62: - subs r1, r2, 0x1 - ldrb r0, [r1] - cmp r0, 0 - beq _0808FC60 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0808FCDC @ =sPSSData - ldr r1, [r0] - ldr r0, _0808FCE0 @ =0x000021db - adds r1, r0 - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr -_0808FC7C: - ldr r5, _0808FCDC @ =sPSSData - ldr r0, [r5] - movs r4, 0x86 - lsls r4, 6 - adds r0, r4 - ldr r2, _0808FCE4 @ =gUnknown_83CEA88 - lsls r1, r6, 3 - adds r1, r2 - ldr r1, [r1] - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, [r5] - adds r2, r4 - movs r0, 0x2 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xD - bl DrawTextBorderOuter - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808FCDC: .4byte sPSSData -_0808FCE0: .4byte 0x000021db -_0808FCE4: .4byte gUnknown_83CEA88 - thumb_func_end sub_808FBA4 - - thumb_func_start sub_808FCE8 -sub_808FCE8: @ 808FCE8 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0808FD1C @ =gUnknown_83CEB80 - movs r1, 0xB - str r1, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl Menu_MoveCursorNoWrapAround - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808FD1C: .4byte gUnknown_83CEB80 - thumb_func_end sub_808FCE8 - - thumb_func_start sub_808FD20 -sub_808FD20: @ 808FD20 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl ClearStdWindowAndFrameToTransparent - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - pop {r0} - bx r0 - thumb_func_end sub_808FD20 - - thumb_func_start sub_808FD34 -sub_808FD34: @ 808FD34 - push {lr} - bl sub_8094DA8 - movs r0, 0x12 - bl sub_8094DEC - movs r0, 0x13 - bl sub_8094DEC - movs r0, 0x14 - bl sub_8094DEC - movs r0, 0x15 - bl sub_8094DEC - bl sub_8094E88 - pop {r0} - bx r0 - thumb_func_end sub_808FD34 - - thumb_func_start sub_808FD5C -sub_808FD5C: @ 808FD5C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8094DA8 - cmp r4, 0x1 - beq _0808FD9A - cmp r4, 0x1 - bgt _0808FD76 - cmp r4, 0 - beq _0808FD80 - b _0808FDE6 -_0808FD76: - cmp r5, 0x2 - beq _0808FDB4 - cmp r5, 0x3 - beq _0808FDCE - b _0808FDE6 -_0808FD80: - movs r0, 0x16 - bl sub_8094DEC - movs r0, 0x17 - bl sub_8094DEC - movs r0, 0x18 - bl sub_8094DEC - movs r0, 0x19 - bl sub_8094DEC - b _0808FDE6 -_0808FD9A: - movs r0, 0x1A - bl sub_8094DEC - movs r0, 0x1B - bl sub_8094DEC - movs r0, 0x1C - bl sub_8094DEC - movs r0, 0x1D - bl sub_8094DEC - b _0808FDE6 -_0808FDB4: - movs r0, 0x1E - bl sub_8094DEC - movs r0, 0x1F - bl sub_8094DEC - movs r0, 0x20 - bl sub_8094DEC - movs r0, 0x21 - bl sub_8094DEC - b _0808FDE6 -_0808FDCE: - movs r0, 0x22 - bl sub_8094DEC - movs r0, 0x23 - bl sub_8094DEC - movs r0, 0x24 - bl sub_8094DEC - movs r0, 0x25 - bl sub_8094DEC -_0808FDE6: - bl sub_8094E88 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808FD5C - - thumb_func_start sub_808FDF0 -sub_808FDF0: @ 808FDF0 - ldr r0, _0808FDF8 @ =sCurrentBoxOption - ldrb r0, [r0] - bx lr - .align 2, 0 -_0808FDF8: .4byte sCurrentBoxOption - thumb_func_end sub_808FDF0 - - thumb_func_start sub_808FDFC -sub_808FDFC: @ 808FDFC - push {lr} - bl sub_80939AC - lsls r0, 24 - cmp r0, 0 - bne _0808FE38 - ldr r0, _0808FE24 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FE28 - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl sub_8095C84 - b _0808FE38 - .align 2, 0 -_0808FE24: .4byte sInPartyMenu -_0808FE28: - bl sub_8094CC8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8095C84 -_0808FE38: - ldr r1, _0808FE50 @ =gUnknown_20397BA - ldrh r0, [r1] - cmp r0, 0 - beq _0808FE4A - bl sub_8095E2C - movs r0, 0x3 - bl sub_8094D14 -_0808FE4A: - pop {r0} - bx r0 - .align 2, 0 -_0808FE50: .4byte gUnknown_20397BA - thumb_func_end sub_808FDFC - - thumb_func_start sub_808FE54 -sub_808FE54: @ 808FE54 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8094D34 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0808FE90 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldrh r7, [r0] - ldr r0, _0808FE94 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FE9C - movs r6, 0xE - bl sub_8094CC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0808FE98 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - bl GetMonData - b _0808FEB2 - .align 2, 0 -_0808FE90: .4byte sPSSData -_0808FE94: .4byte sInPartyMenu -_0808FE98: .4byte gPlayerParty -_0808FE9C: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_8094CC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x41 - bl GetBoxMonDataFromSelectedBox -_0808FEB2: - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _0808FECC @ =sPSSData - ldr r0, [r0] - ldr r2, _0808FED0 @ =0x00002228 - adds r1, r0, r2 - cmp r5, 0x1 - beq _0808FF08 - cmp r5, 0x1 - bgt _0808FED4 - cmp r5, 0 - beq _0808FEDE - b _0808FF6A - .align 2, 0 -_0808FECC: .4byte sPSSData -_0808FED0: .4byte 0x00002228 -_0808FED4: - cmp r5, 0x2 - beq _0808FF3E - cmp r5, 0x3 - beq _0808FF58 - b _0808FF6A -_0808FEDE: - ldr r0, _0808FEF0 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FEF4 - cmp r4, 0xE - beq _0808FF6A -_0808FEEA: - movs r2, 0x16 - b _0808FF02 - .align 2, 0 -_0808FEF0: .4byte sInPartyMenu -_0808FEF4: - cmp r4, 0xE - beq _0808FEEA - movs r0, 0x15 - cmp r4, r6 - beq _0808FF00 - movs r0, 0x14 -_0808FF00: - adds r2, r0, 0 -_0808FF02: - strh r7, [r1] - strh r3, [r1, 0x2] - b _0808FF60 -_0808FF08: - movs r0, 0 - strh r7, [r1] - strh r0, [r1, 0x2] - strb r4, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - ldr r0, _0808FF24 @ =sInPartyMenu - ldrb r0, [r0] - cmp r0, 0 - beq _0808FF28 - cmp r4, 0xE - beq _0808FF6A - movs r2, 0x19 - b _0808FF64 - .align 2, 0 -_0808FF24: .4byte sInPartyMenu -_0808FF28: - cmp r4, 0xE - bne _0808FF32 - movs r2, 0x1A - strb r6, [r1, 0x4] - b _0808FF64 -_0808FF32: - cmp r4, r6 - beq _0808FF3A - movs r2, 0x17 - b _0808FF62 -_0808FF3A: - movs r2, 0x18 - b _0808FF64 -_0808FF3E: - movs r2, 0x1A - movs r0, 0 - strh r7, [r1] - strh r0, [r1, 0x2] - ldr r0, _0808FF54 @ =gUnknown_20397B6 - ldrb r0, [r0] - strb r0, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - b _0808FF64 - .align 2, 0 -_0808FF54: .4byte gUnknown_20397B6 -_0808FF58: - movs r2, 0x1B - movs r0, 0 - strh r0, [r1] - strh r0, [r1, 0x2] -_0808FF60: - strb r4, [r1, 0x4] -_0808FF62: - strb r6, [r1, 0x5] -_0808FF64: - adds r0, r2, 0 - bl SetQuestLogEvent -_0808FF6A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808FE54 - - thumb_func_start sub_808FF70 -sub_808FF70: @ 808FF70 - push {r4,lr} - ldr r4, _0808FFA0 @ =sLastUsedBox - bl StorageGetCurrentBox - ldrb r1, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _0808FF9A - ldr r0, _0808FFA4 @ =0x00000843 - bl FlagClear - ldr r4, _0808FFA8 @ =0x00004037 - bl StorageGetCurrentBox - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl VarSet -_0808FF9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808FFA0: .4byte sLastUsedBox -_0808FFA4: .4byte 0x00000843 -_0808FFA8: .4byte 0x00004037 - thumb_func_end sub_808FF70 - - thumb_func_start sub_808FFAC -sub_808FFAC: @ 808FFAC - push {r4-r6,lr} - bl LoadMonIconPalettes - movs r2, 0 - ldr r3, _0809003C @ =sPSSData - ldr r5, _08090040 @ =0x00000b04 - movs r4, 0 - adds r6, r3, 0 -_0808FFBC: - ldr r0, [r3] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _0808FFBC - movs r2, 0 - ldr r5, _0809003C @ =sPSSData - ldr r4, _08090044 @ =0x00000b54 - movs r3, 0 -_0808FFD8: - ldr r0, [r5] - lsls r1, r2, 1 - adds r0, r4 - adds r0, r1 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _0808FFD8 - movs r2, 0 - ldr r5, _0809003C @ =sPSSData - ldr r4, _08090048 @ =0x00000a6c - movs r3, 0 -_0808FFF4: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - str r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _0808FFF4 - movs r2, 0 - ldr r5, _0809003C @ =sPSSData - ldr r4, _0809004C @ =0x00000a84 - movs r3, 0 -_08090010: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - str r3, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08090010 - ldr r0, [r6] - ldr r2, _08090050 @ =0x00000a68 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r1, _08090054 @ =0x0000078c - adds r0, r1 - strh r2, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809003C: .4byte sPSSData -_08090040: .4byte 0x00000b04 -_08090044: .4byte 0x00000b54 -_08090048: .4byte 0x00000a6c -_0809004C: .4byte 0x00000a84 -_08090050: .4byte 0x00000a68 -_08090054: .4byte 0x0000078c - thumb_func_end sub_808FFAC - - thumb_func_start sub_8090058 -sub_8090058: @ 8090058 - push {lr} - bl sub_80939F4 - lsls r0, 24 - movs r1, 0x1 - cmp r0, 0 - beq _08090068 - movs r1, 0x2 -_08090068: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_8090058 - - thumb_func_start sub_8090070 -sub_8090070: @ 8090070 - push {r4-r6,lr} - sub sp, 0x8 - ldr r5, _080900C4 @ =sPSSData - ldr r0, [r5] - ldr r4, _080900C8 @ =0x000020a0 - adds r0, r4 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - ldr r0, [r5] - adds r0, r4 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl sub_8090058 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_80912E0 - ldr r1, [r5] - ldr r2, _080900CC @ =0x00000a68 - adds r1, r2 - str r0, [r1] - ldr r1, _080900D0 @ =sub_80911B0 - str r1, [r0, 0x1C] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080900C4: .4byte sPSSData -_080900C8: .4byte 0x000020a0 -_080900CC: .4byte 0x00000a68 -_080900D0: .4byte sub_80911B0 - thumb_func_end sub_8090070 - - thumb_func_start sub_80900D4 -sub_80900D4: @ 80900D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r0, 0 - mov r8, r0 - movs r6, 0 - movs r7, 0 -_080900EE: - movs r5, 0 - adds r1, r7, 0x1 - mov r10, r1 -_080900F4: - mov r0, r9 - adds r1, r6, 0 - movs r2, 0x41 - bl GetBoxMonDataFromAnyBox - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _0809015C - mov r0, r9 - adds r1, r6, 0 - movs r2, 0 - bl GetBoxMonDataFromAnyBox - adds r1, r0, 0 - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 19 - movs r3, 0xC8 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - lsls r3, r7, 1 - adds r3, r7 - lsls r3, 19 - movs r0, 0xB0 - lsls r0, 14 - adds r3, r0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x13 - subs r0, r5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - asrs r3, 16 - bl sub_80912E0 - ldr r1, _08090154 @ =sPSSData - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, 2 - ldr r3, _08090158 @ =0x00000a84 - adds r1, r3 - adds r1, r2 - str r0, [r1] - b _0809016C - .align 2, 0 -_08090154: .4byte sPSSData -_08090158: .4byte 0x00000a84 -_0809015C: - ldr r0, _080901E4 @ =sPSSData - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _080901E8 @ =0x00000a84 - adds r0, r3 - adds r0, r1 - str r4, [r0] -_0809016C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _080900F4 - mov r1, r10 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _080900EE - ldr r0, _080901E4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _080901D2 - movs r6, 0 - movs r2, 0xD - negs r2, r2 - adds r4, r2, 0 -_080901A2: - mov r0, r9 - adds r1, r6, 0 - movs r2, 0xC - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _080901C8 - ldr r0, _080901E4 @ =sPSSData - ldr r0, [r0] - lsls r1, r6, 2 - ldr r3, _080901E8 @ =0x00000a84 - adds r0, r3 - adds r0, r1 - ldr r2, [r0] - ldrb r0, [r2, 0x1] - ands r0, r4 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x1] -_080901C8: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1D - bls _080901A2 -_080901D2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080901E4: .4byte sPSSData -_080901E8: .4byte 0x00000a84 - thumb_func_end sub_80900D4 - - thumb_func_start sub_80901EC -sub_80901EC: @ 80901EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonDataFromSelectedBox - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _08090286 - adds r0, r7, 0 - movs r1, 0x6 - bl __umodsi3 - adds r6, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 19 - movs r0, 0xC8 - lsls r0, 15 - adds r5, r0 - lsrs r5, 16 - adds r0, r7, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 19 - movs r0, 0xB0 - lsls r0, 14 - adds r4, r0 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonDataFromSelectedBox - adds r1, r0, 0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x13 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r8 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_80912E0 - adds r3, r0, 0 - ldr r0, _08090294 @ =sPSSData - ldr r2, [r0] - lsls r1, r7, 2 - ldr r4, _08090298 @ =0x00000a84 - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - bne _08090286 - ldrb r0, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r3, 0x1] -_08090286: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090294: .4byte sPSSData -_08090298: .4byte 0x00000a84 - thumb_func_end sub_80901EC - - thumb_func_start sub_809029C -sub_809029C: @ 809029C - push {r4-r7,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r7, _080902D4 @ =sPSSData - ldr r6, _080902D8 @ =0x00000a84 - movs r5, 0x1 - ldr r4, _080902DC @ =sub_8090324 -_080902AC: - ldr r0, [r7] - lsls r1, r2, 2 - adds r0, r6 - adds r1, r0, r1 - ldr r0, [r1] - cmp r0, 0 - beq _080902C4 - strh r3, [r0, 0x32] - ldr r0, [r1] - strh r5, [r0, 0x36] - ldr r0, [r1] - str r4, [r0, 0x1C] -_080902C4: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _080902AC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080902D4: .4byte sPSSData -_080902D8: .4byte 0x00000a84 -_080902DC: .4byte sub_8090324 - thumb_func_end sub_809029C - - thumb_func_start sub_80902E0 -sub_80902E0: @ 80902E0 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080902FC - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - b _08090312 -_080902FC: - ldr r0, _08090318 @ =sPSSData - ldr r1, [r0] - ldr r3, _0809031C @ =0x00000c62 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, _08090320 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08090312: - pop {r0} - bx r0 - .align 2, 0 -_08090318: .4byte sPSSData -_0809031C: .4byte 0x00000c62 -_08090320: .4byte SpriteCallbackDummy - thumb_func_end sub_80902E0 - - thumb_func_start sub_8090324 -sub_8090324: @ 8090324 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x36] - movs r3, 0x36 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08090338 - subs r0, r1, 0x1 - strh r0, [r2, 0x36] - b _08090354 -_08090338: - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x38] - subs r0, 0x45 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB6 - bls _08090354 - ldr r0, _08090358 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08090354: - pop {r0} - bx r0 - .align 2, 0 -_08090358: .4byte SpriteCallbackDummy - thumb_func_end sub_8090324 - - thumb_func_start sub_809035C -sub_809035C: @ 809035C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r7, _0809039C @ =sPSSData -_08090366: - ldr r0, [r7] - lsls r4, r5, 2 - ldr r1, _080903A0 @ =0x00000a84 - adds r0, r1 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _08090386 - bl sub_80913C4 - ldr r0, [r7] - ldr r1, _080903A0 @ =0x00000a84 - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_08090386: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _08090366 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809039C: .4byte sPSSData -_080903A0: .4byte 0x00000a84 - thumb_func_end sub_809035C - - thumb_func_start sub_80903A4 -sub_80903A4: @ 80903A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 16 - movs r1, 0x2C - mov r8, r1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 19 - movs r3, 0xC8 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - str r1, [sp, 0x10] - ldr r1, [sp, 0x8] - adds r1, 0x1 - lsrs r6, r2, 16 - str r6, [sp, 0xC] - asrs r2, 16 - muls r1, r2 - ldr r2, [sp, 0x10] - subs r1, r2, r1 - lsls r1, 16 - lsrs r2, r1, 16 - movs r1, 0x13 - subs r1, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x14] - movs r3, 0 - mov r9, r3 - adds r5, r0, 0 - ldr r1, _08090488 @ =sPSSData - ldr r0, [r1] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - beq _08090498 - movs r7, 0x4 - lsls r2, 16 - mov r10, r2 -_08090404: - ldr r6, _08090488 @ =sPSSData - ldr r2, [r6] - lsls r0, r5, 1 - ldr r3, _0809048C @ =0x00000ba4 - adds r1, r2, r3 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08090470 - lsls r4, r5, 2 - movs r6, 0xBE - lsls r6, 4 - adds r1, r2, r6 - adds r1, r4 - ldr r1, [r1] - mov r2, r8 - lsls r3, r2, 16 - asrs r3, 16 - movs r2, 0x2 - str r2, [sp] - ldr r6, [sp, 0x14] - str r6, [sp, 0x4] - mov r6, r10 - asrs r2, r6, 16 - bl sub_80912E0 - adds r2, r0, 0 - ldr r1, _08090488 @ =sPSSData - ldr r0, [r1] - ldr r3, _08090490 @ =0x00000a84 - adds r0, r3 - adds r1, r0, r4 - str r2, [r1] - cmp r2, 0 - beq _08090470 - mov r6, sp - ldrh r6, [r6, 0x8] - strh r6, [r2, 0x30] - ldr r0, [r1] - mov r2, sp - ldrh r2, [r2, 0xC] - strh r2, [r0, 0x32] - ldr r0, [r1] - mov r3, sp - ldrh r3, [r3, 0x10] - strh r3, [r0, 0x34] - ldr r1, [r1] - ldr r0, _08090494 @ =sub_80902E0 - str r0, [r1, 0x1C] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08090470: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - subs r7, 0x1 - cmp r7, 0 - bge _08090404 - b _08090550 - .align 2, 0 -_08090488: .4byte sPSSData -_0809048C: .4byte 0x00000ba4 -_08090490: .4byte 0x00000a84 -_08090494: .4byte sub_80902E0 -_08090498: - mov r10, r1 - movs r7, 0x4 - lsls r2, 16 - str r2, [sp, 0x18] -_080904A0: - mov r6, r10 - ldr r2, [r6] - lsls r0, r5, 1 - ldr r3, _08090564 @ =0x00000ba4 - adds r1, r2, r3 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _0809053A - lsls r4, r5, 2 - movs r6, 0xBE - lsls r6, 4 - adds r1, r2, r6 - adds r1, r4 - ldr r1, [r1] - mov r2, r8 - lsls r3, r2, 16 - asrs r3, 16 - movs r2, 0x2 - str r2, [sp] - ldr r6, [sp, 0x14] - str r6, [sp, 0x4] - ldr r6, [sp, 0x18] - asrs r2, r6, 16 - bl sub_80912E0 - adds r2, r0, 0 - mov r0, r10 - ldr r3, [r0] - ldr r1, _08090568 @ =0x00000a84 - adds r0, r3, r1 - adds r1, r0, r4 - str r2, [r1] - cmp r2, 0 - beq _0809053A - mov r6, sp - ldrh r6, [r6, 0x8] - strh r6, [r2, 0x30] - ldr r0, [r1] - mov r2, sp - ldrh r2, [r2, 0xC] - strh r2, [r0, 0x32] - ldr r0, [r1] - mov r6, sp - ldrh r6, [r6, 0x10] - strh r6, [r0, 0x34] - ldr r1, [r1] - ldr r0, _0809056C @ =sub_80902E0 - str r0, [r1, 0x1C] - ldr r1, _08090570 @ =0x00000c58 - adds r0, r3, r1 - ldrb r0, [r0] - adds r1, r5, 0 - movs r2, 0xC - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _08090530 - mov r2, r10 - ldr r0, [r2] - ldr r3, _08090568 @ =0x00000a84 - adds r0, r3 - adds r0, r4 - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r6, 0xD - negs r6, r6 - adds r0, r6, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x1] -_08090530: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0809053A: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - subs r7, 0x1 - cmp r7, 0 - bge _080904A0 -_08090550: - mov r0, r9 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08090564: .4byte 0x00000ba4 -_08090568: .4byte 0x00000a84 -_0809056C: .4byte sub_80902E0 -_08090570: .4byte 0x00000c58 - thumb_func_end sub_80903A4 - - thumb_func_start sub_8090574 -sub_8090574: @ 8090574 - push {r4-r7,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _080905D0 @ =sPSSData - ldr r1, [r6] - ldr r2, _080905D4 @ =0x00000c66 - adds r1, r2 - movs r5, 0 - strb r5, [r1] - ldr r1, [r6] - ldr r3, _080905D8 @ =0x00000c67 - adds r1, r3 - strb r0, [r1] - ldr r1, [r6] - ldr r7, _080905DC @ =0x00000c65 - adds r1, r7 - strb r4, [r1] - ldr r3, [r6] - ldr r1, _080905E0 @ =0x00000c5c - adds r2, r3, r1 - movs r1, 0x20 - strh r1, [r2] - lsls r4, 24 - asrs r4, 24 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 1 - negs r1, r1 - subs r7, 0x5 - adds r2, r3, r7 - strh r1, [r2] - ldr r1, _080905E4 @ =0x00000c62 - adds r3, r1 - strh r5, [r3] - bl sub_8090794 - cmp r4, 0 - ble _080905EC - ldr r0, [r6] - ldr r2, _080905E8 @ =0x00000c64 - adds r0, r2 - movs r1, 0 - b _080905F4 - .align 2, 0 -_080905D0: .4byte sPSSData -_080905D4: .4byte 0x00000c66 -_080905D8: .4byte 0x00000c67 -_080905DC: .4byte 0x00000c65 -_080905E0: .4byte 0x00000c5c -_080905E4: .4byte 0x00000c62 -_080905E8: .4byte 0x00000c64 -_080905EC: - ldr r0, [r6] - ldr r3, _08090620 @ =0x00000c64 - adds r0, r3 - movs r1, 0x5 -_080905F4: - strb r1, [r0] - ldr r0, _08090624 @ =sPSSData - ldr r2, [r0] - ldr r7, _08090620 @ =0x00000c64 - adds r0, r2, r7 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x64 - ldr r3, _08090628 @ =0x00000c5e - adds r1, r2, r3 - strh r0, [r1] - subs r7, 0x4 - adds r2, r7 - movs r1, 0 - ldrsh r0, [r2, r1] - bl sub_809029C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090620: .4byte 0x00000c64 -_08090624: .4byte sPSSData -_08090628: .4byte 0x00000c5e - thumb_func_end sub_8090574 - - thumb_func_start sub_809062C -sub_809062C: @ 809062C - push {r4-r6,lr} - ldr r5, _08090658 @ =sPSSData - ldr r0, [r5] - ldr r4, _0809065C @ =0x00000c5c - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, 0 - beq _08090640 - subs r0, 0x1 - strh r0, [r1] -_08090640: - ldr r3, [r5] - ldr r6, _08090660 @ =0x00000c66 - adds r0, r3, r6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080906C4 - cmp r0, 0x1 - bgt _08090664 - cmp r0, 0 - beq _0809066C - b _08090782 - .align 2, 0 -_08090658: .4byte sPSSData -_0809065C: .4byte 0x00000c5c -_08090660: .4byte 0x00000c66 -_08090664: - cmp r0, 0x2 - bne _0809066A - b _08090770 -_0809066A: - b _08090782 -_0809066C: - ldr r0, _080906B8 @ =0x00000c5e - adds r1, r3, r0 - movs r2, 0xC6 - lsls r2, 4 - adds r0, r3, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBA - bhi _0809068A - b _0809078C -_0809068A: - ldr r1, _080906BC @ =0x00000c64 - adds r0, r3, r1 - ldrb r0, [r0] - bl sub_809035C - ldr r2, [r5] - ldr r0, _080906B8 @ =0x00000c5e - adds r3, r2, r0 - ldr r1, _080906C0 @ =0x00000c65 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - adds r2, r6 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _0809078C - .align 2, 0 -_080906B8: .4byte 0x00000c5e -_080906BC: .4byte 0x00000c64 -_080906C0: .4byte 0x00000c65 -_080906C4: - ldr r2, _08090728 @ =0x00000c5e - adds r1, r3, r2 - movs r6, 0xC6 - lsls r6, 4 - adds r2, r3, r6 - ldrh r0, [r2] - ldrh r6, [r1] - adds r0, r6 - strh r0, [r1] - ldr r6, _0809072C @ =0x00000c64 - adds r0, r3, r6 - ldrb r0, [r0] - adds r1, r3, r4 - ldrh r1, [r1] - movs r3, 0 - ldrsh r2, [r2, r3] - bl sub_80903A4 - ldr r2, [r5] - ldr r3, _08090730 @ =0x00000c62 - adds r1, r2, r3 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldr r1, _08090734 @ =0x00000c65 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _0809070C - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08090718 -_0809070C: - cmp r1, 0 - bge _08090740 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, 0 - bne _08090740 -_08090718: - ldr r0, _08090738 @ =sPSSData - ldr r1, [r0] - ldr r2, _0809073C @ =0x00000c66 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0809078C - .align 2, 0 -_08090728: .4byte 0x00000c5e -_0809072C: .4byte 0x00000c64 -_08090730: .4byte 0x00000c62 -_08090734: .4byte 0x00000c65 -_08090738: .4byte sPSSData -_0809073C: .4byte 0x00000c66 -_08090740: - ldr r3, _08090760 @ =sPSSData - ldr r0, [r3] - ldr r6, _08090764 @ =0x00000c64 - adds r1, r0, r6 - ldr r2, _08090768 @ =0x00000c65 - adds r0, r2 - ldrb r0, [r0] - ldrb r6, [r1] - adds r0, r6 - movs r2, 0 - strb r0, [r1] - ldr r0, [r3] - ldr r1, _0809076C @ =0x00000c66 - adds r0, r1 - strb r2, [r0] - b _0809078C - .align 2, 0 -_08090760: .4byte sPSSData -_08090764: .4byte 0x00000c64 -_08090768: .4byte 0x00000c65 -_0809076C: .4byte 0x00000c66 -_08090770: - ldr r2, _08090788 @ =0x00000c62 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _0809078C - adds r1, r3, r4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_08090782: - movs r0, 0 - b _0809078E - .align 2, 0 -_08090788: .4byte 0x00000c62 -_0809078C: - movs r0, 0x1 -_0809078E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809062C - - thumb_func_start sub_8090794 -sub_8090794: @ 8090794 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - movs r0, 0 - ldr r1, _08090810 @ =sPSSData - mov r9, r1 -_080907A8: - adds r0, 0x1 - mov r8, r0 - movs r7, 0x5 -_080907AE: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0x41 - bl GetBoxMonDataFromAnyBox - mov r2, r9 - ldr r1, [r2] - lsls r2, r5, 1 - ldr r3, _08090814 @ =0x00000ba4 - adds r1, r3 - adds r1, r2 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _080907EA - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - bl GetBoxMonDataFromAnyBox - mov r2, r9 - ldr r1, [r2] - lsls r2, r5, 2 - movs r3, 0xBE - lsls r3, 4 - adds r1, r3 - adds r1, r2 - str r0, [r1] -_080907EA: - adds r5, 0x1 - subs r7, 0x1 - cmp r7, 0 - bge _080907AE - mov r0, r8 - cmp r0, 0x4 - ble _080907A8 - ldr r0, _08090810 @ =sPSSData - ldr r0, [r0] - ldr r1, _08090818 @ =0x00000c58 - adds r0, r1 - strb r6, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090810: .4byte sPSSData -_08090814: .4byte 0x00000ba4 -_08090818: .4byte 0x00000c58 - thumb_func_end sub_8090794 - - thumb_func_start sub_809081C -sub_809081C: @ 809081C - push {r4,r5,lr} - lsls r0, 24 - ldr r5, _08090848 @ =sPSSData - ldr r1, [r5] - lsrs r4, r0, 22 - ldr r0, _0809084C @ =0x00000a84 - adds r1, r0 - adds r1, r4 - ldr r0, [r1] - cmp r0, 0 - beq _08090842 - bl sub_80913C4 - ldr r0, [r5] - ldr r1, _0809084C @ =0x00000a84 - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_08090842: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090848: .4byte sPSSData -_0809084C: .4byte 0x00000a84 - thumb_func_end sub_809081C - - thumb_func_start sub_8090850 -sub_8090850: @ 8090850 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r1, _08090884 @ =sPSSData - ldr r1, [r1] - lsrs r0, 22 - ldr r3, _08090888 @ =0x00000a84 - adds r1, r3 - adds r1, r0 - ldr r3, [r1] - cmp r3, 0 - beq _0809087E - movs r0, 0x3 - adds r1, r2, 0 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] -_0809087E: - pop {r0} - bx r0 - .align 2, 0 -_08090884: .4byte sPSSData -_08090888: .4byte 0x00000a84 - thumb_func_end sub_8090850 - - thumb_func_start sub_809088C -sub_809088C: @ 809088C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _0809092C @ =gPlayerParty - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x68 - movs r3, 0x40 - bl sub_80912E0 - ldr r1, _08090930 @ =sPSSData - ldr r1, [r1] - ldr r2, _08090934 @ =0x00000a6c - adds r1, r2 - str r0, [r1] - movs r7, 0x1 - movs r6, 0x1 -_080908D2: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _0809092C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08090938 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - subs r0, r6, 0x1 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 19 - movs r0, 0x80 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x98 - bl sub_80912E0 - ldr r1, _08090930 @ =sPSSData - ldr r1, [r1] - lsls r2, r6, 2 - ldr r3, _08090934 @ =0x00000a6c - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _08090946 - .align 2, 0 -_0809092C: .4byte gPlayerParty -_08090930: .4byte sPSSData -_08090934: .4byte 0x00000a6c -_08090938: - ldr r0, _080909E8 @ =sPSSData - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _080909EC @ =0x00000a6c - adds r0, r2 - adds r0, r1 - str r5, [r0] -_08090946: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080908D2 - ldr r3, _080909E8 @ =sPSSData - mov r0, r8 - cmp r0, 0 - bne _0809098A - movs r6, 0 - cmp r6, r7 - bcs _0809098A - mov r12, r3 - ldr r5, _080909EC @ =0x00000a6c - movs r4, 0x4 -_08090964: - mov r2, r12 - ldr r1, [r2] - lsls r0, r6, 2 - adds r1, r5 - adds r1, r0 - ldr r2, [r1] - ldrh r0, [r2, 0x22] - subs r0, 0xA0 - strh r0, [r2, 0x22] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _08090964 -_0809098A: - ldr r0, [r3] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _080909DA - movs r6, 0 - adds r7, r3, 0 - ldr r5, _080909EC @ =0x00000a6c -_08090998: - ldr r0, [r7] - lsls r4, r6, 2 - adds r0, r5 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080909D0 - movs r0, 0x64 - muls r0, r6 - ldr r1, _080909F0 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - cmp r0, 0 - bne _080909D0 - ldr r0, [r7] - adds r0, r5 - adds r0, r4 - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r3, 0xD - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x1] -_080909D0: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08090998 -_080909DA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080909E8: .4byte sPSSData -_080909EC: .4byte 0x00000a6c -_080909F0: .4byte gPlayerParty - thumb_func_end sub_809088C - - thumb_func_start sub_80909F4 -sub_80909F4: @ 80909F4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, _08090A54 @ =sPSSData - ldr r1, [r0] - ldr r2, _08090A58 @ =0x00000c5a - adds r1, r2 - movs r2, 0 - strb r2, [r1] - movs r5, 0 - movs r6, 0 - adds r3, r0, 0 - ldr r7, _08090A5C @ =0x00000a6c -_08090A0C: - ldr r0, [r3] - lsls r4, r5, 2 - adds r0, r7 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _08090A42 - cmp r5, r6 - beq _08090A3C - adds r1, r6, 0 - str r3, [sp] - bl sub_8090A74 - ldr r3, [sp] - ldr r2, [r3] - adds r0, r2, r7 - adds r0, r4 - movs r1, 0 - str r1, [r0] - ldr r0, _08090A58 @ =0x00000c5a - adds r2, r0 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_08090A3C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08090A42: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08090A0C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08090A54: .4byte sPSSData -_08090A58: .4byte 0x00000c5a -_08090A5C: .4byte 0x00000a6c - thumb_func_end sub_80909F4 - - thumb_func_start sub_8090A60 -sub_8090A60: @ 8090A60 - ldr r0, _08090A6C @ =sPSSData - ldr r0, [r0] - ldr r1, _08090A70 @ =0x00000c5a - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08090A6C: .4byte sPSSData -_08090A70: .4byte 0x00000c5a - thumb_func_end sub_8090A60 - - thumb_func_start sub_8090A74 -sub_8090A74: @ 8090A74 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r2, 0x30] - cmp r1, 0 - bne _08090A88 - movs r3, 0x68 - movs r4, 0x40 - b _08090A9A -_08090A88: - movs r3, 0x98 - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 19 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 -_08090A9A: - ldrh r0, [r2, 0x20] - lsls r0, 3 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x22] - lsls r0, 3 - strh r0, [r2, 0x34] - lsls r1, r3, 3 - movs r3, 0x32 - ldrsh r0, [r2, r3] - subs r0, r1, r0 - cmp r0, 0 - bge _08090AB4 - adds r0, 0x7 -_08090AB4: - asrs r0, 3 - strh r0, [r2, 0x36] - lsls r0, r4, 16 - asrs r0, 13 - movs r3, 0x34 - ldrsh r1, [r2, r3] - subs r0, r1 - cmp r0, 0 - bge _08090AC8 - adds r0, 0x7 -_08090AC8: - asrs r0, 3 - strh r0, [r2, 0x38] - movs r0, 0x8 - strh r0, [r2, 0x3A] - ldr r0, _08090ADC @ =sub_8090AE0 - str r0, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08090ADC: .4byte sub_8090AE0 - thumb_func_end sub_8090A74 - - thumb_func_start sub_8090AE0 -sub_8090AE0: @ 8090AE0 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08090B10 - ldrh r0, [r3, 0x36] - ldrh r4, [r3, 0x32] - adds r0, r4 - strh r0, [r3, 0x32] - ldrh r1, [r3, 0x38] - ldrh r4, [r3, 0x34] - adds r1, r4 - strh r1, [r3, 0x34] - lsls r0, 16 - asrs r0, 19 - strh r0, [r3, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r3, 0x22] - subs r0, r2, 0x1 - strh r0, [r3, 0x3A] - b _08090B54 -_08090B10: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08090B20 - movs r0, 0x68 - strh r0, [r3, 0x20] - movs r0, 0x40 - b _08090B32 -_08090B20: - movs r0, 0x98 - strh r0, [r3, 0x20] - movs r4, 0x30 - ldrsh r1, [r3, r4] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x10 -_08090B32: - strh r0, [r3, 0x22] - ldr r0, _08090B5C @ =SpriteCallbackDummy - str r0, [r3, 0x1C] - ldr r0, _08090B60 @ =sPSSData - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r4, _08090B64 @ =0x00000a6c - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldr r0, _08090B68 @ =0x00000c5a - adds r2, r0 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_08090B54: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08090B5C: .4byte SpriteCallbackDummy -_08090B60: .4byte sPSSData -_08090B64: .4byte 0x00000a6c -_08090B68: .4byte 0x00000c5a - thumb_func_end sub_8090AE0 - - thumb_func_start sub_8090B6C -sub_8090B6C: @ 8090B6C - push {r4,lr} - ldr r4, _08090B90 @ =sPSSData - ldr r0, [r4] - ldr r1, _08090B94 @ =0x00000a68 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _08090B8A - bl sub_80913C4 - ldr r0, [r4] - ldr r1, _08090B94 @ =0x00000a68 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_08090B8A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08090B90: .4byte sPSSData -_08090B94: .4byte 0x00000a68 - thumb_func_end sub_8090B6C - - thumb_func_start sub_8090B98 -sub_8090B98: @ 8090B98 - push {r4-r6,lr} - movs r3, 0 - ldr r6, _08090BEC @ =sPSSData - lsls r0, 16 - asrs r4, r0, 16 - movs r5, 0x5 - negs r5, r5 -_08090BA6: - ldr r0, [r6] - lsls r1, r3, 2 - ldr r2, _08090BF0 @ =0x00000a6c - adds r0, r2 - adds r2, r0, r1 - ldr r1, [r2] - cmp r1, 0 - beq _08090BFE - ldrh r0, [r1, 0x22] - adds r0, r4, r0 - strh r0, [r1, 0x22] - ldr r2, [r2] - ldrh r1, [r2, 0x26] - ldrh r0, [r2, 0x22] - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xC0 - bls _08090BF4 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08090BFE - .align 2, 0 -_08090BEC: .4byte sPSSData -_08090BF0: .4byte 0x00000a6c -_08090BF4: - adds r2, 0x3E - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2] -_08090BFE: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _08090BA6 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8090B98 - - thumb_func_start sub_8090C10 -sub_8090C10: @ 8090C10 - push {r4,r5,lr} - lsls r0, 24 - ldr r5, _08090C3C @ =sPSSData - ldr r1, [r5] - lsrs r4, r0, 22 - ldr r0, _08090C40 @ =0x00000a6c - adds r1, r0 - adds r1, r4 - ldr r0, [r1] - cmp r0, 0 - beq _08090C36 - bl sub_80913C4 - ldr r0, [r5] - ldr r1, _08090C40 @ =0x00000a6c - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_08090C36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090C3C: .4byte sPSSData -_08090C40: .4byte 0x00000a6c - thumb_func_end sub_8090C10 - - thumb_func_start sub_8090C44 -sub_8090C44: @ 8090C44 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _08090C7C @ =sPSSData -_08090C4A: - ldr r0, [r6] - lsls r4, r5, 2 - ldr r1, _08090C80 @ =0x00000a6c - adds r0, r1 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _08090C6A - bl sub_80913C4 - ldr r0, [r6] - ldr r1, _08090C80 @ =0x00000a6c - adds r0, r1 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_08090C6A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08090C4A - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08090C7C: .4byte sPSSData -_08090C80: .4byte 0x00000a6c - thumb_func_end sub_8090C44 - - thumb_func_start sub_8090C84 -sub_8090C84: @ 8090C84 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r1, _08090CB8 @ =sPSSData - ldr r1, [r1] - lsrs r0, 22 - ldr r3, _08090CBC @ =0x00000a6c - adds r1, r3 - adds r1, r0 - ldr r3, [r1] - cmp r3, 0 - beq _08090CB2 - movs r0, 0x3 - adds r1, r2, 0 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] -_08090CB2: - pop {r0} - bx r0 - .align 2, 0 -_08090CB8: .4byte sPSSData -_08090CBC: .4byte 0x00000a6c - thumb_func_end sub_8090C84 - - thumb_func_start sub_8090CC0 -sub_8090CC0: @ 8090CC0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - cmp r4, 0 - bne _08090CF0 - ldr r3, _08090CE8 @ =sPSSData - ldr r0, [r3] - ldr r5, _08090CEC @ =0x00000a68 - adds r2, r0, r5 - lsls r1, 2 - adds r5, 0x4 - adds r0, r5 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - str r4, [r0] - b _08090D0C - .align 2, 0 -_08090CE8: .4byte sPSSData -_08090CEC: .4byte 0x00000a68 -_08090CF0: - cmp r4, 0x1 - bne _08090D42 - ldr r3, _08090D48 @ =sPSSData - ldr r0, [r3] - ldr r1, _08090D4C @ =0x00000a68 - adds r2, r0, r1 - lsls r1, r5, 2 - ldr r4, _08090D50 @ =0x00000a84 - adds r0, r4 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, 0 - str r1, [r0] -_08090D0C: - adds r5, r3, 0 - ldr r0, [r5] - ldr r4, _08090D4C @ =0x00000a68 - adds r0, r4 - ldr r1, [r0] - ldr r0, _08090D54 @ =sub_80911B0 - str r0, [r1, 0x1C] - bl sub_8090058 - ldr r1, [r5] - adds r1, r4 - ldr r3, [r1] - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r5] - adds r0, r4 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_08090D42: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08090D48: .4byte sPSSData -_08090D4C: .4byte 0x00000a68 -_08090D50: .4byte 0x00000a84 -_08090D54: .4byte sub_80911B0 - thumb_func_end sub_8090CC0 - - thumb_func_start sub_8090D58 -sub_8090D58: @ 8090D58 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r0, 0xE - bne _08090DA4 - ldr r3, _08090D98 @ =sPSSData - ldr r1, [r3] - lsls r5, r6, 2 - ldr r4, _08090D9C @ =0x00000a6c - adds r0, r1, r4 - adds r0, r5 - ldr r2, _08090DA0 @ =0x00000a68 - adds r1, r2 - ldr r2, [r1] - str r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r3] - adds r0, r4 - adds r0, r5 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xC - strb r1, [r0] - b _08090DE0 - .align 2, 0 -_08090D98: .4byte sPSSData -_08090D9C: .4byte 0x00000a6c -_08090DA0: .4byte 0x00000a68 -_08090DA4: - ldr r5, _08090DF8 @ =sPSSData - ldr r1, [r5] - lsls r4, r6, 2 - ldr r3, _08090DFC @ =0x00000a84 - adds r0, r1, r3 - adds r0, r4 - ldr r2, _08090E00 @ =0x00000a68 - adds r1, r2 - ldr r2, [r1] - str r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r5] - adds r0, r3 - adds r0, r4 - ldr r4, [r0] - adds r0, r6, 0 - movs r1, 0x6 - bl __umodsi3 - movs r1, 0x13 - subs r1, r0 - adds r4, 0x43 - strb r1, [r4] - adds r3, r5, 0 -_08090DE0: - ldr r1, [r3] - ldr r0, _08090E00 @ =0x00000a68 - adds r1, r0 - ldr r2, [r1] - ldr r0, _08090E04 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08090DF8: .4byte sPSSData -_08090DFC: .4byte 0x00000a84 -_08090E00: .4byte 0x00000a68 -_08090E04: .4byte SpriteCallbackDummy - thumb_func_end sub_8090D58 - - thumb_func_start sub_8090E08 -sub_8090E08: @ 8090E08 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0xE - bne _08090E30 - ldr r3, _08090E24 @ =sPSSData - ldr r1, [r3] - ldr r0, _08090E28 @ =0x00000afc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08090E2C @ =0x00000a6c - b _08090E3C - .align 2, 0 -_08090E24: .4byte sPSSData -_08090E28: .4byte 0x00000afc -_08090E2C: .4byte 0x00000a6c -_08090E30: - ldr r3, _08090E5C @ =sPSSData - ldr r1, [r3] - ldr r0, _08090E60 @ =0x00000afc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08090E64 @ =0x00000a84 -_08090E3C: - adds r0, r4 - adds r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _08090E68 @ =0x00000a68 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08090E6C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - ldr r4, _08090E70 @ =0x00000c59 - adds r1, r4 - movs r0, 0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08090E5C: .4byte sPSSData -_08090E60: .4byte 0x00000afc -_08090E64: .4byte 0x00000a84 -_08090E68: .4byte 0x00000a68 -_08090E6C: .4byte SpriteCallbackDummy -_08090E70: .4byte 0x00000c59 - thumb_func_end sub_8090E08 - - thumb_func_start sub_8090E74 -sub_8090E74: @ 8090E74 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, _08090E90 @ =sPSSData - ldr r0, [r6] - ldr r1, _08090E94 @ =0x00000c59 - mov r9, r1 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x10 - bne _08090E98 - movs r0, 0 - b _08090FA0 - .align 2, 0 -_08090E90: .4byte sPSSData -_08090E94: .4byte 0x00000c59 -_08090E98: - adds r0, 0x1 - strb r0, [r1] - ldr r2, [r6] - ldr r5, _08090FAC @ =0x00000c59 - adds r0, r2, r5 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08090EC6 - ldr r1, _08090FB0 @ =0x00000afc - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - ldr r5, _08090FB4 @ =0x00000a68 - adds r0, r2, r5 - ldr r1, [r0] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] -_08090EC6: - ldr r3, [r6] - ldr r7, _08090FB0 @ =0x00000afc - adds r4, r3, r7 - ldr r0, [r4] - ldr r0, [r0] - mov r8, r0 - ldr r5, _08090FB8 @ =gSineTable - mov r0, r9 - adds r1, r3, r0 - ldrb r0, [r1] - lsls r0, 4 - adds r0, r5 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08090EE8 - adds r0, 0xF -_08090EE8: - asrs r0, 4 - mov r2, r8 - strh r0, [r2, 0x24] - ldr r0, _08090FB4 @ =0x00000a68 - mov r8, r0 - add r3, r8 - ldr r2, [r3] - ldrb r0, [r1] - lsls r0, 4 - adds r0, r5 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, 0 - bge _08090F06 - adds r0, 0xF -_08090F06: - asrs r0, 4 - negs r0, r0 - strh r0, [r2, 0x24] - ldrb r0, [r1] - cmp r0, 0x8 - bne _08090F6A - ldr r3, [r3] - ldr r0, [r4] - ldr r0, [r0] - ldrb r0, [r0, 0x5] - movs r5, 0x3 - movs r1, 0xC - ands r1, r0 - ldrb r2, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r6] - mov r2, r8 - adds r1, r0, r2 - ldr r1, [r1] - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - adds r1, 0x43 - strb r0, [r1] - bl sub_8090058 - ldr r1, [r6] - adds r1, r7 - ldr r1, [r1] - ldr r1, [r1] - ands r5, r0 - lsls r5, 2 - ldrb r0, [r1, 0x5] - ands r4, r0 - orrs r4, r5 - strb r4, [r1, 0x5] - ldr r0, [r6] - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_08090F6A: - ldr r1, [r6] - mov r5, r9 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x10 - bne _08090F9E - mov r0, r8 - adds r2, r1, r0 - ldr r3, [r2] - adds r1, r7 - ldr r0, [r1] - ldr r0, [r0] - str r0, [r2] - ldr r0, [r1] - str r3, [r0] - ldr r1, [r6] - mov r2, r8 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08090FBC @ =sub_80911B0 - str r0, [r2, 0x1C] - adds r1, r7 - ldr r0, [r1] - ldr r1, [r0] - ldr r0, _08090FC0 @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_08090F9E: - movs r0, 0x1 -_08090FA0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08090FAC: .4byte 0x00000c59 -_08090FB0: .4byte 0x00000afc -_08090FB4: .4byte 0x00000a68 -_08090FB8: .4byte gSineTable -_08090FBC: .4byte sub_80911B0 -_08090FC0: .4byte SpriteCallbackDummy - thumb_func_end sub_8090E74 - - thumb_func_start sub_8090FC4 -sub_8090FC4: @ 8090FC4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0x1 - beq _08090FFC - cmp r0, 0x1 - bgt _08090FDE - cmp r0, 0 - beq _08090FE4 - b _08091072 -_08090FDE: - cmp r2, 0x2 - beq _0809101C - b _08091072 -_08090FE4: - ldr r3, _08090FF4 @ =sPSSData - ldr r1, [r3] - movs r0, 0xB0 - lsls r0, 4 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08090FF8 @ =0x00000a6c - b _0809100A - .align 2, 0 -_08090FF4: .4byte sPSSData -_08090FF8: .4byte 0x00000a6c -_08090FFC: - ldr r3, _08091014 @ =sPSSData - ldr r1, [r3] - movs r0, 0xB0 - lsls r0, 4 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08091018 @ =0x00000a84 -_0809100A: - adds r0, r4 - adds r1, r0 - str r1, [r2] - adds r4, r3, 0 - b _0809102E - .align 2, 0 -_08091014: .4byte sPSSData -_08091018: .4byte 0x00000a84 -_0809101C: - ldr r0, _08091078 @ =sPSSData - ldr r1, [r0] - movs r3, 0xB0 - lsls r3, 4 - adds r2, r1, r3 - ldr r4, _0809107C @ =0x00000a68 - adds r1, r4 - str r1, [r2] - adds r4, r0, 0 -_0809102E: - ldr r0, [r4] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _08091072 - bl InitSpriteAffineAnim - ldr r0, [r4] - movs r3, 0xB0 - lsls r3, 4 - adds r0, r3 - ldr r0, [r0] - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r4] - adds r1, r3 - ldr r0, [r1] - ldr r2, [r0] - ldr r0, _08091080 @ =gUnknown_83CEC38 - str r0, [r2, 0x10] - ldr r0, [r1] - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAffineAnim -_08091072: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091078: .4byte sPSSData -_0809107C: .4byte 0x00000a68 -_08091080: .4byte gUnknown_83CEC38 - thumb_func_end sub_8090FC4 - - thumb_func_start sub_8091084 -sub_8091084: @ 8091084 - push {lr} - ldr r0, _080910AC @ =sPSSData - ldr r0, [r0] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0 - beq _080910A6 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _080910B0 -_080910A6: - movs r0, 0 - b _080910C6 - .align 2, 0 -_080910AC: .4byte sPSSData -_080910B0: - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080910C4 - movs r0, 0x4 - orrs r0, r2 - strb r0, [r3] -_080910C4: - movs r0, 0x1 -_080910C6: - pop {r1} - bx r1 - thumb_func_end sub_8091084 - - thumb_func_start sub_80910CC -sub_80910CC: @ 80910CC - push {r4,lr} - ldr r4, _08091110 @ =sPSSData - ldr r0, [r4] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _08091108 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - bl sub_80913C4 - ldr r0, [r4] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r1, [r0] - movs r0, 0 - str r0, [r1] -_08091108: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091110: .4byte sPSSData - thumb_func_end sub_80910CC - - thumb_func_start sub_8091114 -sub_8091114: @ 8091114 - push {lr} - ldr r3, _0809114C @ =sPSSData - ldr r0, [r3] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _08091148 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - movs r1, 0xB0 - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAffineAnim -_08091148: - pop {r0} - bx r0 - .align 2, 0 -_0809114C: .4byte sPSSData - thumb_func_end sub_8091114 - - thumb_func_start sub_8091150 -sub_8091150: @ 8091150 - push {lr} - ldr r0, _08091168 @ =sPSSData - ldr r0, [r0] - movs r1, 0xB0 - lsls r1, 4 - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - bne _0809116C - movs r0, 0 - b _08091180 - .align 2, 0 -_08091168: .4byte sPSSData -_0809116C: - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809117E - movs r0, 0 - str r0, [r2] -_0809117E: - movs r0, 0x1 -_08091180: - pop {r1} - bx r1 - thumb_func_end sub_8091150 - - thumb_func_start sub_8091184 -sub_8091184: @ 8091184 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080911A8 @ =sPSSData - ldr r1, [r1] - ldr r2, _080911AC @ =0x00000a68 - adds r1, r2 - ldr r3, [r1] - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x5] - bx lr - .align 2, 0 -_080911A8: .4byte sPSSData -_080911AC: .4byte 0x00000a68 - thumb_func_end sub_8091184 - - thumb_func_start sub_80911B0 -sub_80911B0: @ 80911B0 - ldr r1, _080911D0 @ =sPSSData - ldr r1, [r1] - movs r2, 0xCB - lsls r2, 4 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r2, [r1] - ldrh r1, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r1, r2 - adds r1, 0x4 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080911D0: .4byte sPSSData - thumb_func_end sub_80911B0 - - thumb_func_start sub_80911D4 -sub_80911D4: @ 80911D4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _0809123C @ =sPSSData - ldr r0, [r1] - ldr r2, _08091240 @ =0x00000b54 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, r3 - beq _08091208 - adds r6, r2, 0 - ldr r5, _08091240 @ =0x00000b54 -_080911F0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08091208 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _080911F0 -_08091208: - cmp r4, 0x28 - bne _08091248 - movs r4, 0 - ldr r0, [r2] - ldr r5, _08091240 @ =0x00000b54 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08091234 - adds r6, r2, 0 -_0809121C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08091234 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _0809121C -_08091234: - cmp r4, 0x28 - bne _08091248 - ldr r0, _08091244 @ =0x0000ffff - b _0809127A - .align 2, 0 -_0809123C: .4byte sPSSData -_08091240: .4byte 0x00000b54 -_08091244: .4byte 0x0000ffff -_08091248: - ldr r1, [r2] - lsls r2, r4, 1 - ldr r5, _08091280 @ =0x00000b54 - adds r0, r1, r5 - adds r0, r2 - strh r3, [r0] - ldr r0, _08091284 @ =0x00000b04 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r4, 20 - lsrs r4, 16 - adds r0, r3, 0 - movs r1, 0x1 - bl GetMonIconTiles - lsls r1, r4, 5 - ldr r2, _08091288 @ =0x06010000 - adds r1, r2 - ldr r2, _0809128C @ =0x04000080 - bl CpuSet - adds r0, r4, 0 -_0809127A: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08091280: .4byte 0x00000b54 -_08091284: .4byte 0x00000b04 -_08091288: .4byte 0x06010000 -_0809128C: .4byte 0x04000080 - thumb_func_end sub_80911D4 - - thumb_func_start sub_8091290 -sub_8091290: @ 8091290 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - movs r3, 0 - ldr r6, _080912C4 @ =sPSSData -_0809129A: - ldr r1, [r6] - lsls r2, r3, 1 - ldr r4, _080912C8 @ =0x00000b54 - adds r0, r1, r4 - adds r4, r0, r2 - ldrh r0, [r4] - cmp r0, r5 - bne _080912D0 - ldr r0, _080912CC @ =0x00000b04 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080912DA - strh r0, [r4] - b _080912DA - .align 2, 0 -_080912C4: .4byte sPSSData -_080912C8: .4byte 0x00000b54 -_080912CC: .4byte 0x00000b04 -_080912D0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x27 - bls _0809129A -_080912DA: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8091290 - - thumb_func_start sub_80912E0 -sub_80912E0: @ 80912E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x18] - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r9, r5 - mov r2, sp - ldr r0, _08091390 @ =gUnknown_83CEBF0 - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - adds r0, r6, 0 - bl GetIconSpecies - mov r10, r0 - mov r6, r10 - mov r2, sp - ldr r1, _08091394 @ =gMonIconPaletteIndices - adds r1, r6, r1 - ldr r3, _08091398 @ =0x0000dac0 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2, 0x2] - adds r0, r6, 0 - bl sub_80911D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - ldr r0, _0809139C @ =0x0000ffff - cmp r5, r0 - beq _080913B2 - ldr r7, [sp, 0x18] - lsls r1, r7, 16 - asrs r1, 16 - mov r0, r8 - lsls r2, r0, 16 - asrs r2, 16 - mov r0, sp - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080913AC - ldr r1, _080913A0 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r2, _080913A4 @ =0x000003ff - ands r2, r5 - ldrh r3, [r0, 0x4] - ldr r1, _080913A8 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - movs r1, 0x3 - ands r4, r1 - lsls r3, r4, 2 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, 0x5] - mov r1, r10 - strh r1, [r0, 0x2E] - b _080913B4 - .align 2, 0 -_08091390: .4byte gUnknown_83CEBF0 -_08091394: .4byte gMonIconPaletteIndices -_08091398: .4byte 0x0000dac0 -_0809139C: .4byte 0x0000ffff -_080913A0: .4byte gSprites -_080913A4: .4byte 0x000003ff -_080913A8: .4byte 0xfffffc00 -_080913AC: - adds r0, r6, 0 - bl sub_8091290 -_080913B2: - movs r0, 0 -_080913B4: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80912E0 - - thumb_func_start sub_80913C4 -sub_80913C4: @ 80913C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - bl sub_8091290 - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80913C4 - - thumb_func_start sub_80913DC -sub_80913DC: @ 80913DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08091404 @ =sub_8091420 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08091408 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091404: .4byte sub_8091420 -_08091408: .4byte gTasks - thumb_func_end sub_80913DC - - thumb_func_start sub_809140C -sub_809140C: @ 809140C - push {lr} - ldr r0, _0809141C @ =sub_8091420 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0809141C: .4byte sub_8091420 - thumb_func_end sub_809140C - - thumb_func_start sub_8091420 -sub_8091420: @ 8091420 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _08091444 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _08091504 - lsls r0, 2 - ldr r1, _08091448 @ =_0809144C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091444: .4byte gTasks -_08091448: .4byte _0809144C - .align 2, 0 -_0809144C: - .4byte _08091460 - .4byte _08091498 - .4byte _080914CC - .4byte _080914D6 - .4byte _080914FC -_08091460: - ldr r1, _0809148C @ =sPSSData - ldr r0, [r1] - ldr r2, _08091490 @ =0x000002d2 - adds r0, r2 - movs r2, 0 - strb r2, [r0] - ldr r1, [r1] - movs r3, 0xB3 - lsls r3, 2 - adds r0, r1, r3 - strh r2, [r0] - ldr r0, _08091494 @ =0x00004abc - adds r1, r0 - movs r2, 0x80 - lsls r2, 5 - movs r0, 0 - movs r3, 0x1 - bl RequestDma3Fill - strh r0, [r4, 0xA] - b _08091508 - .align 2, 0 -_0809148C: .4byte sPSSData -_08091490: .4byte 0x000002d2 -_08091494: .4byte 0x00004abc -_08091498: - movs r1, 0xA - ldrsh r0, [r4, r1] - bl CheckForSpaceForDma3Request - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _0809150E - ldr r0, _080914C4 @ =sPSSData - ldr r1, [r0] - ldr r2, _080914C8 @ =0x00004abc - adds r1, r2 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0x2 - bl ShowBg - b _08091508 - .align 2, 0 -_080914C4: .4byte sPSSData -_080914C8: .4byte 0x00004abc -_080914CC: - ldrb r0, [r4, 0xC] - movs r1, 0 - bl sub_8091850 - b _08091508 -_080914D6: - bl sub_809196C - cmp r0, 0 - beq _0809150E - ldrb r0, [r4, 0xC] - bl sub_8091A94 - bl sub_8091F80 - ldrb r0, [r4, 0xC] - bl sub_80900D4 - ldr r1, _080914F8 @ =0x00005b0a - movs r0, 0xC - bl SetGpuReg - b _08091508 - .align 2, 0 -_080914F8: .4byte 0x00005b0a -_080914FC: - adds r0, r2, 0 - bl DestroyTask - b _08091508 -_08091504: - movs r0, 0 - b _0809150C -_08091508: - ldrh r0, [r4, 0x8] - adds r0, 0x1 -_0809150C: - strh r0, [r4, 0x8] -_0809150E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8091420 - - thumb_func_start sub_8091514 -sub_8091514: @ 8091514 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - adds r0, r4, 0 - bl sub_80916F4 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r5, _080915D8 @ =sPSSData - ldr r2, [r5] - lsls r0, r6, 24 - asrs r3, r0, 24 - movs r0, 0x6 - negs r0, r0 - adds r1, r0, 0 - cmp r3, 0 - ble _08091540 - movs r1, 0x6 -_08091540: - ldr r7, _080915DC @ =0x000002ce - adds r0, r2, r7 - strh r1, [r0] - movs r1, 0x2 - cmp r3, 0 - ble _0809154E - movs r1, 0x1 -_0809154E: - ldr r7, _080915E0 @ =0x000002d3 - adds r0, r2, r7 - strb r1, [r0] - ldr r2, [r5] - movs r0, 0xB4 - lsls r0, 2 - adds r1, r2, r0 - movs r0, 0x20 - strh r0, [r1] - movs r1, 0xB5 - lsls r1, 2 - adds r0, r2, r1 - strb r4, [r0] - ldr r2, [r5] - movs r1, 0 - cmp r3, 0 - bgt _08091572 - movs r1, 0x5 -_08091572: - ldr r4, _080915E4 @ =0x000002d6 - adds r0, r2, r4 - strh r1, [r0] - movs r7, 0xB6 - lsls r7, 2 - adds r0, r2, r7 - strh r3, [r0] - movs r1, 0x38 - cmp r3, 0 - ble _0809158C - movs r0, 0x84 - lsls r0, 1 - adds r1, r0, 0 -_0809158C: - ldr r4, _080915E8 @ =0x000002da - adds r0, r2, r4 - strh r1, [r0] - movs r1, 0 - cmp r3, 0 - bgt _0809159A - movs r1, 0x5 -_0809159A: - movs r7, 0xB7 - lsls r7, 2 - adds r0, r2, r7 - strh r1, [r0] - ldr r0, _080915EC @ =0x000002de - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - movs r3, 0xB8 - lsls r3, 2 - adds r1, r2, r3 - movs r0, 0x2 - strh r0, [r1] - ldr r4, _080915F0 @ =0x00000a64 - adds r0, r2, r4 - mov r7, r8 - strb r7, [r0] - ldr r0, [r5] - ldr r1, _080915F4 @ =0x00000a65 - adds r0, r1 - strb r6, [r0] - ldr r0, [r5] - ldr r3, _080915F8 @ =0x00000a63 - adds r0, r3 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080915D8: .4byte sPSSData -_080915DC: .4byte 0x000002ce -_080915E0: .4byte 0x000002d3 -_080915E4: .4byte 0x000002d6 -_080915E8: .4byte 0x000002da -_080915EC: .4byte 0x000002de -_080915F0: .4byte 0x00000a64 -_080915F4: .4byte 0x00000a65 -_080915F8: .4byte 0x00000a63 - thumb_func_end sub_8091514 - - thumb_func_start sub_80915FC -sub_80915FC: @ 80915FC - push {r4-r6,lr} - ldr r4, _08091618 @ =sPSSData - ldr r1, [r4] - ldr r5, _0809161C @ =0x00000a63 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08091644 - cmp r0, 0x1 - bgt _08091620 - cmp r0, 0 - beq _08091626 - b _080916D4 - .align 2, 0 -_08091618: .4byte sPSSData -_0809161C: .4byte 0x00000a63 -_08091620: - cmp r0, 0x2 - beq _08091694 - b _080916D4 -_08091626: - ldr r2, _08091688 @ =0x00000a64 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - bl sub_8091850 - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08091644: - bl sub_809196C - cmp r0, 0 - beq _080916E2 - ldr r6, _0809168C @ =sPSSData - ldr r1, [r6] - ldr r4, _08091688 @ =0x00000a64 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r5, _08091690 @ =0x00000a65 - adds r1, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - bl sub_8090574 - ldr r1, [r6] - adds r4, r1, r4 - ldrb r0, [r4] - adds r1, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - bl sub_8091C48 - ldr r0, [r6] - adds r0, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_809200C - b _080916D4 - .align 2, 0 -_08091688: .4byte 0x00000a64 -_0809168C: .4byte sPSSData -_08091690: .4byte 0x00000a65 -_08091694: - bl sub_809062C - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, [r4] - movs r4, 0xB4 - lsls r4, 2 - adds r3, r2, r4 - ldrh r0, [r3] - cmp r0, 0 - beq _080916D0 - movs r0, 0xB3 - lsls r0, 2 - adds r1, r2, r0 - subs r4, 0x2 - adds r0, r2, r4 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _080916E2 - bl sub_8091E34 - bl sub_80920AC -_080916D0: - adds r0, r5, 0 - b _080916E4 -_080916D4: - ldr r0, _080916EC @ =sPSSData - ldr r1, [r0] - ldr r4, _080916F0 @ =0x00000a63 - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080916E2: - movs r0, 0x1 -_080916E4: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080916EC: .4byte sPSSData -_080916F0: .4byte 0x00000a63 - thumb_func_end sub_80915FC - - thumb_func_start sub_80916F4 -sub_80916F4: @ 80916F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - cmp r1, r4 - beq _0809171E -_08091708: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _08091714 - movs r1, 0 -_08091714: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r1, r4 - bne _08091708 -_0809171E: - movs r0, 0x1 - negs r0, r0 - cmp r2, 0x6 - bhi _08091728 - movs r0, 0x1 -_08091728: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80916F4 - - thumb_func_start sub_8091730 -sub_8091730: @ 8091730 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_808BDBC - ldr r0, _08091758 @ =sPSSData - ldr r0, [r0] - ldr r1, _0809175C @ =0x00000a62 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08091758: .4byte sPSSData -_0809175C: .4byte 0x00000a62 - thumb_func_end sub_8091730 - - thumb_func_start sub_8091760 -sub_8091760: @ 8091760 - push {r4,lr} - sub sp, 0x4 - ldr r1, _08091780 @ =sPSSData - ldr r0, [r1] - ldr r2, _08091784 @ =0x00000a62 - adds r0, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _08091844 - lsls r0, 2 - ldr r1, _08091788 @ =_0809178C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08091780: .4byte sPSSData -_08091784: .4byte 0x00000a62 -_08091788: .4byte _0809178C - .align 2, 0 -_0809178C: - .4byte _080917A0 - .4byte _080917C8 - .4byte _080917E2 - .4byte _0809181C - .4byte _08091840 -_080917A0: - ldr r0, [r4] - movs r1, 0xE7 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080917C0 @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldr r2, _080917C4 @ =0x00000a62 - adds r1, r2 - b _0809182E - .align 2, 0 -_080917C0: .4byte 0x0000ffff -_080917C4: .4byte 0x00000a62 -_080917C8: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08091844 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8091850 - b _08091826 -_080917E2: - bl sub_809196C - cmp r0, 0x1 - bne _08091844 - bl sub_8091EF0 - ldr r4, _08091810 @ =sPSSData - ldr r0, [r4] - movs r1, 0xE7 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08091814 @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, [r4] - ldr r2, _08091818 @ =0x00000a62 - adds r1, r2 - b _0809182E - .align 2, 0 -_08091810: .4byte sPSSData -_08091814: .4byte 0x0000ffff -_08091818: .4byte 0x00000a62 -_0809181C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08091844 -_08091826: - ldr r0, _08091838 @ =sPSSData - ldr r1, [r0] - ldr r0, _0809183C @ =0x00000a62 - adds r1, r0 -_0809182E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08091844 - .align 2, 0 -_08091838: .4byte sPSSData -_0809183C: .4byte 0x00000a62 -_08091840: - movs r0, 0 - b _08091846 -_08091844: - movs r0, 0x1 -_08091846: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8091760 - - thumb_func_start sub_8091850 -sub_8091850: @ 8091850 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _08091904 @ =sPSSData - ldr r2, [r4] - ldr r3, _08091908 @ =0x000006f9 - adds r2, r3 - movs r3, 0 - strb r3, [r2] - ldr r2, [r4] - ldr r3, _0809190C @ =0x000006fa - adds r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldr r2, _08091910 @ =0x000006fb - adds r0, r2 - strb r1, [r0] - ldr r1, [r4] - adds r2, r1, r2 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _08091896 - movs r3, 0 - ldr r0, _08091914 @ =0x000002d2 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0 - bne _0809188A - movs r3, 0x1 -_0809188A: - strb r3, [r2] - ldr r0, [r4] - ldr r1, _08091918 @ =0x00004abc - adds r0, r1 - bl sub_8091A24 -_08091896: - ldr r6, _08091904 @ =sPSSData - ldr r0, [r6] - ldr r2, _0809190C @ =0x000006fa - adds r0, r2 - ldrb r0, [r0] - bl sub_808BD94 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _0809191C @ =gUnknown_83D2A10 - adds r7, r1, r0 - ldr r0, [r7, 0x4] - ldr r1, [r6] - ldr r5, _08091920 @ =0x00000792 - adds r1, r5 - bl LZ77UnCompWram - ldr r1, [r6] - ldr r3, _08091918 @ =0x00004abc - adds r0, r1, r3 - adds r5, r1, r5 - ldr r4, _08091910 @ =0x000006fb - adds r2, r1, r4 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - ldr r3, _08091914 @ =0x000002d2 - adds r1, r3 - ldrb r3, [r1] - adds r1, r5, 0 - bl sub_8091984 - ldr r1, [r6] - adds r4, r1, r4 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - beq _08091924 - ldr r0, [r7, 0x8] - ldr r2, _08091914 @ =0x000002d2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 21 - movs r3, 0x80 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x40 - bl LoadPalette - b _08091938 - .align 2, 0 -_08091904: .4byte sPSSData -_08091908: .4byte 0x000006f9 -_0809190C: .4byte 0x000006fa -_08091910: .4byte 0x000006fb -_08091914: .4byte 0x000002d2 -_08091918: .4byte 0x00004abc -_0809191C: .4byte gUnknown_83D2A10 -_08091920: .4byte 0x00000792 -_08091924: - ldr r0, [r7, 0x8] - ldr r2, _08091960 @ =0x000002d2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _08091964 @ =gPlttBufferUnfaded + 0x80 - adds r1, r2 - movs r2, 0x20 - bl CpuSet -_08091938: - ldr r1, [r7] - ldr r0, _08091968 @ =sPSSData - ldr r0, [r0] - ldr r3, _08091960 @ =0x000002d2 - adds r0, r3 - ldrb r3, [r0] - lsls r3, 8 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - bl DecompressAndLoadBgGfxUsingHeap - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08091960: .4byte 0x000002d2 -_08091964: .4byte gPlttBufferUnfaded + 0x80 -_08091968: .4byte sPSSData - thumb_func_end sub_8091850 - - thumb_func_start sub_809196C -sub_809196C: @ 809196C - push {lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809197E - movs r0, 0x1 - b _08091980 -_0809197E: - movs r0, 0 -_08091980: - pop {r1} - bx r1 - thumb_func_end sub_809196C - - thumb_func_start sub_8091984 -sub_8091984: @ 8091984 - push {r4-r7,lr} - sub sp, 0x24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, r3, 17 - ldr r0, _080919F0 @ =sPSSData - ldr r0, [r0] - movs r4, 0xB3 - lsls r4, 2 - adds r0, r4 - ldrh r4, [r0] - lsrs r4, 3 - adds r4, 0xA - lsls r2, 24 - asrs r7, r2, 24 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - adds r6, r4, r0 - movs r0, 0x3F - ands r6, r0 - movs r4, 0x14 - str r4, [sp] - movs r2, 0x12 - str r2, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r4, [sp, 0x10] - str r2, [sp, 0x14] - movs r0, 0x11 - str r0, [sp, 0x18] - lsls r3, 24 - asrs r3, 16 - str r3, [sp, 0x1C] - movs r0, 0xC0 - lsls r0, 10 - adds r5, r0 - asrs r5, 16 - str r5, [sp, 0x20] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyRectToBgTilemapBufferRect - cmp r7, 0 - beq _08091A16 - cmp r7, 0 - ble _080919F4 - lsls r0, r6, 16 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - b _080919FA - .align 2, 0 -_080919F0: .4byte sPSSData -_080919F4: - lsls r0, r6, 16 - ldr r4, _08091A20 @ =0xfffc0000 - adds r0, r4 -_080919FA: - lsrs r6, r0, 16 - lsls r2, r6, 24 - lsrs r2, 24 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x12 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r3, 0x2 - bl FillBgTilemapBufferRect -_08091A16: - add sp, 0x24 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08091A20: .4byte 0xfffc0000 - thumb_func_end sub_8091984 - - thumb_func_start sub_8091A24 -sub_8091A24: @ 8091A24 - push {r4-r6,lr} - adds r2, r0, 0 - ldr r0, _08091A50 @ =sPSSData - ldr r0, [r0] - movs r1, 0xB3 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 3 - adds r3, r0, 0 - adds r3, 0x1E - movs r0, 0x3F - ands r3, r0 - adds r0, r3, 0 - cmp r0, 0x1F - bgt _08091A54 - lsls r0, 1 - movs r6, 0x98 - lsls r6, 3 - adds r0, r6 - b _08091A5C - .align 2, 0 -_08091A50: .4byte sPSSData -_08091A54: - lsls r0, 1 - movs r1, 0xC8 - lsls r1, 4 - adds r0, r1 -_08091A5C: - adds r2, r0 - movs r0, 0 - movs r5, 0 - movs r4, 0x3F -_08091A64: - strh r5, [r2] - adds r2, 0x2 - adds r3, 0x1 - ands r3, r4 - adds r1, r3, 0 - cmp r1, 0 - bne _08091A76 - ldr r6, _08091A90 @ =0xfffff7c0 - adds r2, r6 -_08091A76: - cmp r1, 0x20 - bne _08091A80 - movs r1, 0xF8 - lsls r1, 3 - adds r2, r1 -_08091A80: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _08091A64 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08091A90: .4byte 0xfffff7c0 - thumb_func_end sub_8091A24 - - thumb_func_start sub_8091A94 -sub_8091A94: @ 8091A94 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _08091C1C @ =sPSSData - mov r10, r1 - ldr r1, [r1] - movs r2, 0xBE - lsls r2, 2 - adds r0, r1, r2 - str r0, [sp, 0x28] - mov r3, sp - adds r3, 0x28 - str r3, [sp, 0x30] - ldr r0, _08091C20 @ =0x00030200 - str r0, [r3, 0x4] - ldr r4, _08091C24 @ =0x000006fc - adds r1, r4 - str r1, [sp, 0x18] - add r0, sp, 0x1C - ldr r7, _08091C28 @ =0x0000dac9 - strh r7, [r0] - add r0, sp, 0x20 - movs r1, 0 - movs r2, 0x8 - bl memset - add r1, sp, 0x18 - add r0, sp, 0x8 - movs r2, 0x10 - bl memcpy - mov r0, r8 - bl sub_808BD94 - lsls r0, 24 - mov r5, r10 - ldr r4, [r5] - ldr r2, _08091C2C @ =gUnknown_83D29D0 - lsrs r0, 22 - adds r1, r0, r2 - ldrh r3, [r1] - movs r5, 0xE3 - lsls r5, 3 - adds r1, r4, r5 - strh r3, [r1] - adds r2, 0x2 - adds r0, r2 - ldrh r0, [r0] - ldr r1, _08091C30 @ =0x0000071a - adds r4, r1 - strh r0, [r4] - add r0, sp, 0x8 - bl LoadSpritePalettes - mov r2, r10 - ldr r0, [r2] - movs r6, 0xE7 - lsls r6, 3 - adds r0, r6 - movs r1, 0xFC - lsls r1, 2 - str r1, [r0] - adds r0, r7, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - mov r4, r10 - ldr r3, [r4] - lsls r1, r0, 4 - movs r5, 0x87 - lsls r5, 1 - mov r9, r5 - add r1, r9 - ldr r4, _08091C34 @ =0x0000071c - adds r2, r3, r4 - strh r1, [r2] - adds r3, r6 - movs r5, 0x80 - lsls r5, 9 - adds r1, r5, 0 - lsls r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r0, r7, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - mov r1, r10 - ldr r4, [r1] - lsls r1, r0, 4 - add r1, r9 - ldr r3, _08091C38 @ =0x0000071e - adds r2, r4, r3 - strh r1, [r2] - adds r6, r4, r6 - lsls r5, r0 - ldr r0, [r6] - orrs r0, r5 - str r0, [r6] - ldr r5, _08091C3C @ =0x000021a8 - adds r4, r5 - mov r0, r8 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x8 - bl StringCopyPadded - mov r4, r10 - ldr r0, [r4] - adds r5, r0, r5 - movs r2, 0xBE - lsls r2, 2 - adds r1, r0, r2 - movs r3, 0x9F - lsls r3, 3 - adds r0, r3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0 - movs r3, 0 - bl PSS_RenderTextToVramViaBuffer - ldr r0, [sp, 0x30] - bl LoadSpriteSheet - mov r0, r8 - bl GetBoxNamePtr - bl sub_8091F60 - movs r4, 0 - lsls r0, 16 - asrs r6, r0, 16 -_08091BBC: - lsls r1, r4, 5 - adds r1, r6, r1 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08091C40 @ =gUnknown_83D2B7C - movs r2, 0x1C - movs r3, 0x18 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r5, _08091C1C @ =sPSSData - ldr r2, [r5] - lsls r0, r4, 2 - movs r3, 0xE4 - lsls r3, 3 - adds r2, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08091C44 @ =gSprites - adds r0, r1 - str r0, [r2] - lsls r1, r4, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08091BBC - ldr r0, [r5] - movs r4, 0xDF - lsls r4, 3 - adds r0, r4 - movs r1, 0 - strb r1, [r0] - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08091C1C: .4byte sPSSData -_08091C20: .4byte 0x00030200 -_08091C24: .4byte 0x000006fc -_08091C28: .4byte 0x0000dac9 -_08091C2C: .4byte gUnknown_83D29D0 -_08091C30: .4byte 0x0000071a -_08091C34: .4byte 0x0000071c -_08091C38: .4byte 0x0000071e -_08091C3C: .4byte 0x000021a8 -_08091C40: .4byte gUnknown_83D2B7C -_08091C44: .4byte gSprites - thumb_func_end sub_8091A94 - - thumb_func_start sub_8091C48 -sub_8091C48: @ 8091C48 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x2C] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r4, _08091CC4 @ =sPSSData - ldr r2, [r4] - movs r1, 0xBE - lsls r1, 2 - adds r0, r2, r1 - str r0, [sp, 0x20] - add r3, sp, 0x20 - ldr r5, _08091CC8 @ =0x0000ffff - mov r12, r5 - movs r6, 0xC0 - lsls r6, 10 - mov r9, r6 - ldr r0, _08091CCC @ =0x00030200 - str r0, [r3, 0x4] - add r1, sp, 0x8 - ldr r0, _08091CD0 @ =gUnknown_83D2B7C - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - movs r1, 0 - movs r5, 0xDF - lsls r5, 3 - adds r2, r5 - ldrb r0, [r2] - mov r8, r4 - adds r6, r3, 0 - cmp r0, 0 - bne _08091C9C - movs r1, 0x1 -_08091C9C: - strb r1, [r2] - mov r7, r8 - ldr r0, [r7] - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _08091CD8 - ldr r0, [r6, 0x4] - mov r1, r12 - ands r0, r1 - mov r2, r9 - orrs r0, r2 - str r0, [r6, 0x4] - ldr r0, [r7] - ldr r3, _08091CD4 @ =0x0000071c - adds r0, r3 - ldrh r0, [r0] - mov r9, r0 - b _08091CFC - .align 2, 0 -_08091CC4: .4byte sPSSData -_08091CC8: .4byte 0x0000ffff -_08091CCC: .4byte 0x00030200 -_08091CD0: .4byte gUnknown_83D2B7C -_08091CD4: .4byte 0x0000071c -_08091CD8: - ldr r0, [r6, 0x4] - mov r5, r12 - ands r0, r5 - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r6, 0x4] - mov r7, r8 - ldr r0, [r7] - ldr r1, _08091E18 @ =0x0000071c - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - add r1, sp, 0x8 - movs r0, 0x4 - strh r0, [r1] - ldr r0, _08091E1C @ =0x0000dac9 - strh r0, [r1, 0x2] -_08091CFC: - mov r2, r8 - ldr r4, [r2] - ldr r5, _08091E20 @ =0x000021a8 - adds r4, r5 - ldr r0, [sp, 0x2C] - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x8 - bl StringCopyPadded - mov r3, r8 - ldr r0, [r3] - adds r5, r0, r5 - movs r7, 0xBE - lsls r7, 2 - adds r1, r0, r7 - movs r2, 0x9F - lsls r2, 3 - adds r0, r2 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0 - movs r3, 0 - bl PSS_RenderTextToVramViaBuffer - adds r0, r6, 0 - bl LoadSpriteSheet - ldr r0, [sp, 0x2C] - bl sub_808BD94 - lsls r0, 24 - lsrs r0, 22 - ldr r1, _08091E24 @ =gUnknown_83D29D0 - adds r0, r1 - mov r1, r9 - movs r2, 0x4 - bl LoadPalette - ldr r0, [sp, 0x2C] - bl GetBoxNamePtr - bl sub_8091F60 - lsls r0, 16 - mov r3, r10 - lsls r2, r3, 24 - asrs r2, 24 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 6 - lsrs r5, r0, 16 - str r5, [sp, 0x28] - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r7, 0 - mov r9, r8 - negs r2, r2 - mov r8, r2 -_08091D82: - lsls r6, r7, 5 - mov r0, r10 - lsls r1, r0, 16 - asrs r1, 16 - adds r1, r6 - lsls r1, 16 - asrs r1, 16 - add r0, sp, 0x8 - movs r2, 0x1C - movs r3, 0x18 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - ldr r2, [r1] - lsls r5, r7, 2 - movs r3, 0xE5 - lsls r3, 3 - adds r2, r3 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08091E28 @ =gSprites - adds r1, r0 - str r1, [r2] - mov r0, r8 - lsls r4, r0, 1 - add r4, r8 - lsls r4, 1 - strh r4, [r1, 0x2E] - ldr r1, [r2] - ldr r3, [sp, 0x28] - lsls r0, r3, 16 - asrs r0, 16 - adds r0, r6 - strh r0, [r1, 0x30] - ldr r0, [r2] - movs r6, 0 - strh r6, [r0, 0x32] - ldr r0, [r2] - ldr r1, _08091E2C @ =sub_8091E84 - str r1, [r0, 0x1C] - lsls r1, r7, 24 - lsrs r1, 24 - bl StartSpriteAnim - mov r1, r9 - ldr r0, [r1] - movs r2, 0xE4 - lsls r2, 3 - adds r0, r2 - adds r0, r5 - ldr r1, [r0] - strh r4, [r1, 0x2E] - ldr r2, [r0] - movs r1, 0x1 - strh r1, [r2, 0x30] - ldr r1, [r0] - ldr r0, _08091E30 @ =sub_8091EB8 - str r0, [r1, 0x1C] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _08091D82 - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08091E18: .4byte 0x0000071c -_08091E1C: .4byte 0x0000dac9 -_08091E20: .4byte 0x000021a8 -_08091E24: .4byte gUnknown_83D29D0 -_08091E28: .4byte gSprites -_08091E2C: .4byte sub_8091E84 -_08091E30: .4byte sub_8091EB8 - thumb_func_end sub_8091C48 - - thumb_func_start sub_8091E34 -sub_8091E34: @ 8091E34 - push {lr} - ldr r0, _08091E50 @ =sPSSData - ldr r0, [r0] - movs r1, 0xDF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08091E54 - movs r0, 0x4 - bl FreeSpriteTilesByTag - b _08091E5A - .align 2, 0 -_08091E50: .4byte sPSSData -_08091E54: - movs r0, 0x3 - bl FreeSpriteTilesByTag -_08091E5A: - ldr r0, _08091E7C @ =sPSSData - ldr r0, [r0] - movs r3, 0xE4 - lsls r3, 3 - adds r2, r0, r3 - adds r3, 0x8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _08091E80 @ =0x00000724 - adds r1, r0, r2 - adds r3, 0x4 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08091E7C: .4byte sPSSData -_08091E80: .4byte 0x00000724 - thumb_func_end sub_8091E34 - - thumb_func_start sub_8091E84 -sub_8091E84: @ 8091E84 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08091E98 - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - b _08091EB0 -_08091E98: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _08091EB0 - ldr r0, _08091EB4 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08091EB0: - pop {r0} - bx r0 - .align 2, 0 -_08091EB4: .4byte SpriteCallbackDummy - thumb_func_end sub_8091E84 - - thumb_func_start sub_8091EB8 -sub_8091EB8: @ 8091EB8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08091ECC - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - b _08091EEA -_08091ECC: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x32] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC0 - bls _08091EEA - adds r0, r2, 0 - bl DestroySprite -_08091EEA: - pop {r0} - bx r0 - thumb_func_end sub_8091EB8 - - thumb_func_start sub_8091EF0 -sub_8091EF0: @ 8091EF0 - push {lr} - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - bl sub_808BD94 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08091F2C @ =sPSSData - ldr r2, [r0] - movs r3, 0xDF - lsls r3, 3 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08091F38 - lsls r0, r1, 2 - ldr r1, _08091F30 @ =gUnknown_83D29D0 - adds r0, r1 - adds r3, 0x24 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _08091F34 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet - b _08091F50 - .align 2, 0 -_08091F2C: .4byte sPSSData -_08091F30: .4byte gUnknown_83D29D0 -_08091F34: .4byte gPlttBufferUnfaded -_08091F38: - lsls r0, r1, 2 - ldr r1, _08091F54 @ =gUnknown_83D29D0 - adds r0, r1 - ldr r3, _08091F58 @ =0x0000071e - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _08091F5C @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet -_08091F50: - pop {r0} - bx r0 - .align 2, 0 -_08091F54: .4byte gUnknown_83D29D0 -_08091F58: .4byte 0x0000071e -_08091F5C: .4byte gPlttBufferUnfaded - thumb_func_end sub_8091EF0 - - thumb_func_start sub_8091F60 -sub_8091F60: @ 8091F60 - push {lr} - adds r1, r0, 0 - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - adds r1, r0, 0 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - movs r0, 0xB0 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8091F60 - - thumb_func_start sub_8091F80 -sub_8091F80: @ 8091F80 - push {r4,r5,lr} - ldr r0, _08091FFC @ =gUnknown_83D2B54 - bl LoadSpriteSheet - movs r5, 0 -_08091F8A: - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 19 - movs r0, 0xB8 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _08092000 @ =gUnknown_83D2BB4 - movs r2, 0x1C - movs r3, 0x16 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _08091FDC - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08092004 @ =gSprites - adds r4, r0, r1 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x1 - cmp r5, 0 - bne _08091FCA - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_08091FCA: - strh r0, [r4, 0x34] - ldr r0, _08092008 @ =sPSSData - ldr r0, [r0] - lsls r1, r5, 2 - movs r2, 0xE6 - lsls r2, 3 - adds r0, r2 - adds r0, r1 - str r4, [r0] -_08091FDC: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _08091F8A - bl sub_80939AC - lsls r0, 24 - cmp r0, 0 - beq _08091FF6 - movs r0, 0x1 - bl sub_80920FC -_08091FF6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08091FFC: .4byte gUnknown_83D2B54 -_08092000: .4byte gUnknown_83D2BB4 -_08092004: .4byte gSprites -_08092008: .4byte sPSSData - thumb_func_end sub_8091F80 - - thumb_func_start sub_809200C -sub_809200C: @ 809200C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r7, _08092060 @ =sPSSData - mov r12, r7 - movs r6, 0xE6 - lsls r6, 3 - movs r4, 0 - movs r3, 0x2 -_08092020: - mov r0, r12 - ldr r1, [r0] - lsls r0, r2, 2 - adds r1, r6 - adds r1, r0 - ldr r0, [r1] - strh r4, [r0, 0x24] - ldr r0, [r1] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _08092020 - lsls r0, r5, 24 - cmp r0, 0 - bge _08092068 - ldr r1, [r7] - movs r2, 0xE6 - lsls r2, 3 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, _08092064 @ =0x00000734 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0x48 - b _08092084 - .align 2, 0 -_08092060: .4byte sPSSData -_08092064: .4byte 0x00000734 -_08092068: - ldr r1, [r7] - movs r2, 0xE6 - lsls r2, 3 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, _080920A8 @ =0x00000734 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0xF8 -_08092084: - strh r2, [r0, 0x32] - ldr r0, [r1] - strh r2, [r0, 0x32] - ldr r1, [r7] - movs r2, 0xE6 - lsls r2, 3 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, 0 - strh r0, [r2, 0x3C] - ldr r0, _080920A8 @ =0x00000734 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x1 - strh r0, [r1, 0x3C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080920A8: .4byte 0x00000734 - thumb_func_end sub_809200C - - thumb_func_start sub_80920AC -sub_80920AC: @ 80920AC - push {r4-r6,lr} - movs r3, 0 - movs r5, 0 - movs r6, 0x5 - negs r6, r6 - ldr r4, _080920F8 @ =sPSSData -_080920B8: - ldr r1, [r4] - lsls r0, r3, 2 - movs r2, 0xE6 - lsls r2, 3 - adds r1, r2 - adds r1, r0 - ldr r2, [r1] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 3 - adds r0, 0x5C - strh r0, [r2, 0x20] - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080920B8 - movs r0, 0x1 - bl sub_80920FC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080920F8: .4byte sPSSData - thumb_func_end sub_80920AC - - thumb_func_start sub_80920FC -sub_80920FC: @ 80920FC - push {r4-r6,lr} - lsls r0, 24 - cmp r0, 0 - beq _08092138 - movs r2, 0 - ldr r6, _08092134 @ =sPSSData - movs r5, 0xE6 - lsls r5, 3 - movs r3, 0 - movs r4, 0x1 -_08092110: - ldr r1, [r6] - lsls r0, r2, 2 - adds r1, r5 - adds r1, r0 - ldr r0, [r1] - strh r4, [r0, 0x2E] - ldr r0, [r1] - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x32] - ldr r0, [r1] - strh r3, [r0, 0x36] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _08092110 - b _08092158 - .align 2, 0 -_08092134: .4byte sPSSData -_08092138: - movs r2, 0 - ldr r5, _08092160 @ =sPSSData - movs r4, 0xE6 - lsls r4, 3 - movs r3, 0 -_08092142: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - ldr r0, [r0] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _08092142 -_08092158: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092160: .4byte sPSSData - thumb_func_end sub_80920FC - - thumb_func_start sub_8092164 -sub_8092164: @ 8092164 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _08092230 - lsls r0, 2 - ldr r1, _0809217C @ =_08092180 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809217C: .4byte _08092180 - .align 2, 0 -_08092180: - .4byte _08092194 - .4byte _0809219A - .4byte _080921C8 - .4byte _080921CE - .4byte _08092220 -_08092194: - movs r0, 0 - strh r0, [r2, 0x24] - b _08092230 -_0809219A: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08092230 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _08092230 - strh r1, [r2, 0x32] - strh r1, [r2, 0x24] - b _08092230 -_080921C8: - movs r0, 0x3 - strh r0, [r2, 0x2E] - b _08092230 -_080921CE: - ldr r0, _08092218 @ =sPSSData - ldr r1, [r0] - ldr r0, _0809221C @ =0x000002ce - adds r1, r0 - ldrh r0, [r2, 0x20] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2, 0x20] - subs r0, 0x49 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAE - bls _080921F4 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_080921F4: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _08092230 - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - movs r0, 0x4 - strh r0, [r2, 0x2E] - b _08092230 - .align 2, 0 -_08092218: .4byte sPSSData -_0809221C: .4byte 0x000002ce -_08092220: - ldr r0, _08092234 @ =sPSSData - ldr r0, [r0] - ldr r1, _08092238 @ =0x000002ce - adds r0, r1 - ldrh r1, [r2, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x20] -_08092230: - pop {r0} - bx r0 - .align 2, 0 -_08092234: .4byte sPSSData -_08092238: .4byte 0x000002ce - thumb_func_end sub_8092164 - - thumb_func_start sub_809223C -sub_809223C: @ 809223C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080922A8 @ =gUnknown_83D2BB4 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080922B4 - movs r1, 0x1 - ands r1, r7 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _080922AC @ =gSprites - adds r6, r4, r5 - adds r0, r6, 0 - bl StartSpriteAnim - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r5, 0x1C - adds r4, r5 - ldr r0, _080922B0 @ =SpriteCallbackDummy - str r0, [r4] - adds r0, r6, 0 - b _080922B6 - .align 2, 0 -_080922A8: .4byte gUnknown_83D2BB4 -_080922AC: .4byte gSprites -_080922B0: .4byte SpriteCallbackDummy -_080922B4: - movs r0, 0 -_080922B6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809223C - - thumb_func_start sub_80922C0 -sub_80922C0: @ 80922C0 - push {lr} - ldr r0, _080922D4 @ =sPSSData - ldr r0, [r0] - ldrb r1, [r0, 0x1] - cmp r1, 0x1 - beq _080922DC - ldr r1, _080922D8 @ =sBoxCursorArea - movs r0, 0 - strb r0, [r1] - b _080922E0 - .align 2, 0 -_080922D4: .4byte sPSSData -_080922D8: .4byte sBoxCursorArea -_080922DC: - ldr r0, _0809231C @ =sBoxCursorArea - strb r1, [r0] -_080922E0: - ldr r0, _08092320 @ =sBoxCursorPosition - movs r1, 0 - strb r1, [r0] - ldr r0, _08092324 @ =sIsMonBeingMoved - strb r1, [r0] - ldr r0, _08092328 @ =sMovingMonOrigBoxId - strb r1, [r0] - ldr r0, _0809232C @ =sMovingMonOrigBoxPos - strb r1, [r0] - ldr r0, _08092330 @ =sCanOnlyMove - strb r1, [r0] - bl sub_8092B50 - bl sub_8094AD8 - ldr r2, _08092334 @ =sPSSData - ldr r0, [r2] - ldr r1, _08092338 @ =0x00000cd2 - adds r0, r1 - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _0809233C @ =0x000021ef - adds r0, r1 - strb r3, [r0] - bl sub_8093A10 - pop {r0} - bx r0 - .align 2, 0 -_0809231C: .4byte sBoxCursorArea -_08092320: .4byte sBoxCursorPosition -_08092324: .4byte sIsMonBeingMoved -_08092328: .4byte sMovingMonOrigBoxId -_0809232C: .4byte sMovingMonOrigBoxPos -_08092330: .4byte sCanOnlyMove -_08092334: .4byte sPSSData -_08092338: .4byte 0x00000cd2 -_0809233C: .4byte 0x000021ef - thumb_func_end sub_80922C0 - - thumb_func_start sub_8092340 -sub_8092340: @ 8092340 - push {lr} - bl sub_8094AD8 - bl sub_8093AAC - ldr r3, _08092380 @ =sPSSData - ldr r0, [r3] - ldr r1, _08092384 @ =0x00000cd2 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r3] - ldr r1, _08092388 @ =0x000021ef - adds r0, r1 - strb r2, [r0] - ldr r0, _0809238C @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _0809237A - ldr r0, [r3] - ldr r1, _08092390 @ =0x000020a0 - adds r0, r1 - ldr r1, _08092394 @ =gUnknown_20397BC - movs r2, 0x64 - bl memcpy - bl sub_8090070 -_0809237A: - pop {r0} - bx r0 - .align 2, 0 -_08092380: .4byte sPSSData -_08092384: .4byte 0x00000cd2 -_08092388: .4byte 0x000021ef -_0809238C: .4byte sIsMonBeingMoved -_08092390: .4byte 0x000020a0 -_08092394: .4byte gUnknown_20397BC - thumb_func_end sub_8092340 - - thumb_func_start sub_8092398 -sub_8092398: @ 8092398 - push {r4-r6,lr} - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r0, 0x4 - bhi _08092450 - lsls r0, 2 - ldr r1, _080923B4 @ =_080923B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080923B4: .4byte _080923B8 - .align 2, 0 -_080923B8: - .4byte _080923CC - .4byte _080923FA - .4byte _08092422 - .4byte _0809242A - .4byte _08092448 -_080923CC: - adds r0, r5, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x64 - strh r1, [r4] - adds r0, r5, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x20 - strh r1, [r6] - b _08092450 -_080923FA: - cmp r5, 0 - bne _08092406 - movs r0, 0x68 - strh r0, [r4] - movs r0, 0x34 - b _0809244E -_08092406: - cmp r5, 0x6 - bne _08092412 - movs r0, 0x98 - strh r0, [r4] - movs r0, 0x84 - b _0809244E -_08092412: - movs r0, 0x98 - strh r0, [r4] - subs r1, r5, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - b _0809244E -_08092422: - movs r0, 0xA2 - strh r0, [r4] - movs r0, 0xC - b _0809244E -_0809242A: - ldr r0, _08092444 @ =sIsMonBeingMoved - ldrb r0, [r0] - movs r1, 0xE - cmp r0, 0 - beq _08092436 - movs r1, 0x8 -_08092436: - strh r1, [r6] - movs r0, 0x58 - muls r0, r5 - adds r0, 0x78 - strh r0, [r4] - b _08092450 - .align 2, 0 -_08092444: .4byte sIsMonBeingMoved -_08092448: - movs r0, 0xA0 - strh r0, [r4] - movs r0, 0x60 -_0809244E: - strh r0, [r6] -_08092450: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8092398 - - thumb_func_start sub_8092458 -sub_8092458: @ 8092458 - push {lr} - ldr r0, _08092480 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809248C - cmp r0, 0x1 - bne _080924A0 - ldr r0, _08092484 @ =sBoxCursorPosition - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08092488 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - b _08092496 - .align 2, 0 -_08092480: .4byte sBoxCursorArea -_08092484: .4byte sBoxCursorPosition -_08092488: .4byte gPlayerParty -_0809248C: - ldr r0, _0809249C @ =sBoxCursorPosition - ldrb r0, [r0] - movs r1, 0xB - bl GetBoxMonDataFromSelectedBox -_08092496: - lsls r0, 16 - lsrs r0, 16 - b _080924A2 - .align 2, 0 -_0809249C: .4byte sBoxCursorPosition -_080924A0: - movs r0, 0 -_080924A2: - pop {r1} - bx r1 - thumb_func_end sub_8092458 - - thumb_func_start sub_80924A8 -sub_80924A8: @ 80924A8 - push {r4-r7,lr} - ldr r7, _080924C4 @ =sPSSData - ldr r5, [r7] - ldr r0, _080924C8 @ =0x00000ccc - adds r1, r5, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _080924D6 - ldrb r0, [r5, 0x1] - cmp r0, 0x3 - beq _080924CC - movs r0, 0 - b _080925F4 - .align 2, 0 -_080924C4: .4byte sPSSData -_080924C8: .4byte 0x00000ccc -_080924CC: - bl sub_809610C - lsls r0, 24 - lsrs r0, 24 - b _080925F4 -_080924D6: - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _080925D4 - ldr r1, _080925C4 @ =0x00000cb8 - adds r4, r5, r1 - movs r2, 0xCC - lsls r2, 4 - adds r1, r5, r2 - ldr r0, [r4] - ldr r1, [r1] - adds r0, r1 - str r0, [r4] - ldr r0, _080925C8 @ =0x00000cbc - adds r3, r5, r0 - adds r2, 0x4 - adds r1, r5, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r1 - str r0, [r3] - movs r6, 0xCB - lsls r6, 4 - adds r1, r5, r6 - ldr r2, [r1] - ldr r0, [r4] - asrs r0, 8 - strh r0, [r2, 0x20] - ldr r2, [r1] - ldr r0, [r3] - asrs r0, 8 - strh r0, [r2, 0x22] - ldr r1, [r1] - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - movs r3, 0x80 - lsls r3, 1 - cmp r0, r3 - ble _08092534 - ldr r4, _080925CC @ =0xffffff00 - adds r0, r2, r4 - lsls r0, 16 - asrs r0, 16 - adds r0, 0x40 - strh r0, [r1, 0x20] -_08092534: - ldr r0, [r7] - adds r0, r6 - ldr r1, [r0] - ldrh r2, [r1, 0x20] - movs r4, 0x20 - ldrsh r0, [r1, r4] - cmp r0, 0x3F - bgt _08092550 - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - subs r0, r3, r0 - strh r0, [r1, 0x20] -_08092550: - ldr r0, [r7] - adds r0, r6 - ldr r1, [r0] - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0xB0 - ble _0809256C - adds r0, r2, 0 - subs r0, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r0, 0x10 - strh r0, [r1, 0x22] -_0809256C: - ldr r0, [r7] - adds r0, r6 - ldr r2, [r0] - ldrh r3, [r2, 0x22] - movs r4, 0x22 - ldrsh r0, [r2, r4] - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _0809258C - subs r0, r1, r3 - movs r1, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2, 0x22] -_0809258C: - ldr r0, [r7] - ldr r2, _080925D0 @ =0x00000cd3 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _080925F2 - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080925F2 - ldr r0, [r7] - adds r0, r6 - ldr r2, [r0] - adds r2, 0x3F - ldrb r3, [r2] - lsrs r1, r3, 1 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _080925F2 - .align 2, 0 -_080925C4: .4byte 0x00000cb8 -_080925C8: .4byte 0x00000cbc -_080925CC: .4byte 0xffffff00 -_080925D0: .4byte 0x00000cd3 -_080925D4: - movs r3, 0xCB - lsls r3, 4 - adds r2, r5, r3 - ldr r1, [r2] - ldr r4, _080925FC @ =0x00000cc8 - adds r0, r5, r4 - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, [r2] - ldr r2, _08092600 @ =0x00000cca - adds r0, r5, r2 - ldrh r0, [r0] - strh r0, [r1, 0x22] - bl sub_80929B0 -_080925F2: - movs r0, 0x1 -_080925F4: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080925FC: .4byte 0x00000cc8 -_08092600: .4byte 0x00000cca - thumb_func_end sub_80924A8 - - thumb_func_start sub_8092604 -sub_8092604: @ 8092604 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - adds r6, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl sub_8092398 - ldr r1, _08092654 @ =sPSSData - ldr r0, [r1] - movs r2, 0xCD - lsls r2, 4 - adds r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r3, _08092658 @ =0x00000cd1 - adds r0, r3 - strb r5, [r0] - ldr r1, [r1] - mov r0, sp - ldrh r2, [r0] - subs r3, 0x9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _0809265C @ =0x00000cca - adds r1, r2 - strh r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08092654: .4byte sPSSData -_08092658: .4byte 0x00000cd1 -_0809265C: .4byte 0x00000cca - thumb_func_end sub_8092604 - - thumb_func_start sub_8092660 -sub_8092660: @ 8092660 - push {r4-r7,lr} - ldr r0, _0809267C @ =sPSSData - ldr r2, [r0] - ldr r3, _08092680 @ =0x00000cce - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - beq _08092688 - ldr r0, _08092684 @ =0x00000ccc - adds r1, r2, r0 - movs r0, 0xC - b _0809268E - .align 2, 0 -_0809267C: .4byte sPSSData -_08092680: .4byte 0x00000cce -_08092684: .4byte 0x00000ccc -_08092688: - ldr r3, _080926D4 @ =0x00000ccc - adds r1, r2, r3 - movs r0, 0x6 -_0809268E: - strh r0, [r1] - ldr r1, [r4] - ldr r0, _080926D8 @ =0x00000cd3 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, 0 - beq _080926A6 - ldr r3, _080926D4 @ =0x00000ccc - adds r0, r1, r3 - ldrh r0, [r0] - lsrs r0, 1 - strb r0, [r2] -_080926A6: - ldr r2, [r4] - ldr r1, _080926DC @ =0x00000cce - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080926E4 - cmp r1, 0x1 - beq _08092700 - ldr r3, _080926E0 @ =0x00000cca - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - b _08092716 - .align 2, 0 -_080926D4: .4byte 0x00000ccc -_080926D8: .4byte 0x00000cd3 -_080926DC: .4byte 0x00000cce -_080926E0: .4byte 0x00000cca -_080926E4: - ldr r3, _080926FC @ =0x00000cca - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _08092716 - .align 2, 0 -_080926FC: .4byte 0x00000cca -_08092700: - ldr r3, _08092744 @ =0x00000cca - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_08092716: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _08092748 @ =0x00000ccf - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08092750 - cmp r1, 0x1 - beq _0809276C - ldr r1, _0809274C @ =0x00000cc8 - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - b _08092782 - .align 2, 0 -_08092744: .4byte 0x00000cca -_08092748: .4byte 0x00000ccf -_0809274C: .4byte 0x00000cc8 -_08092750: - ldr r3, _08092768 @ =0x00000cc8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _08092782 - .align 2, 0 -_08092768: .4byte 0x00000cc8 -_0809276C: - ldr r3, _080927D4 @ =0x00000cc8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0xCB - lsls r3, 4 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_08092782: - subs r0, r1, r0 - lsls r7, 8 - lsls r0, 8 - ldr r4, [r4] - movs r3, 0xCC - lsls r3, 4 - adds r6, r4, r3 - ldr r1, _080927D8 @ =0x00000ccc - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _080927DC @ =0x00000cc4 - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, 0 - bl __divsi3 - str r0, [r6] - ldr r3, _080927E0 @ =0x00000cb8 - adds r2, r4, r3 - movs r0, 0xCB - lsls r0, 4 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, 0x20 - ldrsh r0, [r0, r3] - lsls r0, 8 - str r0, [r2] - ldr r0, _080927E4 @ =0x00000cbc - adds r4, r0 - ldr r0, [r1] - movs r1, 0x22 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080927D4: .4byte 0x00000cc8 -_080927D8: .4byte 0x00000ccc -_080927DC: .4byte 0x00000cc4 -_080927E0: .4byte 0x00000cb8 -_080927E4: .4byte 0x00000cbc - thumb_func_end sub_8092660 - - thumb_func_start sub_80927E8 -sub_80927E8: @ 80927E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8092604 - bl sub_8092660 - ldr r5, _0809282C @ =sPSSData - ldr r1, [r5] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - beq _08092838 - ldr r2, _08092830 @ =0x000021ef - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08092852 - ldr r0, _08092834 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - bne _08092852 - movs r2, 0xCB - lsls r2, 4 - adds r0, r1, r2 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _08092852 - .align 2, 0 -_0809282C: .4byte sPSSData -_08092830: .4byte 0x000021ef -_08092834: .4byte sIsMonBeingMoved -_08092838: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - bne _08092852 - ldr r0, [r5] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_08092852: - ldr r0, _08092874 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _080928AC - ldr r0, _08092878 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _08092880 - ldr r0, _0809287C @ =sBoxCursorPosition - ldrb r1, [r0] - movs r0, 0 - bl sub_8095D44 - b _0809288E - .align 2, 0 -_08092874: .4byte sPSSData -_08092878: .4byte sBoxCursorArea -_0809287C: .4byte sBoxCursorPosition -_08092880: - cmp r0, 0x1 - bne _0809288E - ldr r0, _0809289C @ =sBoxCursorPosition - ldrb r1, [r0] - movs r0, 0x1 - bl sub_8095D44 -_0809288E: - cmp r4, 0 - bne _080928A0 - movs r0, 0 - adds r1, r6, 0 - bl sub_8095C84 - b _080928AC - .align 2, 0 -_0809289C: .4byte sBoxCursorPosition -_080928A0: - cmp r4, 0x1 - bne _080928D8 - movs r0, 0x1 - adds r1, r6, 0 - bl sub_8095C84 -_080928AC: - cmp r4, 0x1 - bne _080928D8 - ldr r0, _08092920 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080928D8 - ldr r1, _08092924 @ =sPSSData - ldr r0, [r1] - ldr r2, _08092928 @ =0x00000cd2 - adds r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r1, _0809292C @ =0x00000cb4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_080928D8: - cmp r4, 0 - beq _08092930 - cmp r4, 0 - blt _080929A0 - cmp r4, 0x3 - bgt _080929A0 - ldr r5, _08092924 @ =sPSSData - ldr r0, [r5] - movs r2, 0xCB - lsls r2, 4 - adds r0, r2 - ldr r4, [r0] - ldrb r1, [r4, 0x5] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r4, 0x5] - ldr r0, [r5] - ldr r4, _0809292C @ =0x00000cb4 - adds r0, r4 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - ldr r0, [r5] - adds r0, r4 - ldr r1, [r0] - ldrb r0, [r1, 0x5] - ands r2, r0 - orrs r2, r3 - strb r2, [r1, 0x5] - b _080929A0 - .align 2, 0 -_08092920: .4byte sBoxCursorArea -_08092924: .4byte sPSSData -_08092928: .4byte 0x00000cd2 -_0809292C: .4byte 0x00000cb4 -_08092930: - ldr r3, _08092964 @ =sPSSData - ldr r1, [r3] - ldr r2, _08092968 @ =0x000021ef - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08092970 - movs r2, 0xCB - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r3] - ldr r1, _0809296C @ =0x00000cb4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - b _080929A0 - .align 2, 0 -_08092964: .4byte sPSSData -_08092968: .4byte 0x000021ef -_0809296C: .4byte 0x00000cb4 -_08092970: - movs r2, 0xCB - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, _080929A8 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080929A0 - ldr r0, _080929AC @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080929A0 - movs r0, 0x2 - bl sub_8091184 -_080929A0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080929A8: .4byte sBoxCursorArea -_080929AC: .4byte sIsMonBeingMoved - thumb_func_end sub_80927E8 - - thumb_func_start sub_80929B0 -sub_80929B0: @ 80929B0 - push {r4,lr} - ldr r1, _080929F4 @ =sBoxCursorArea - ldr r4, _080929F8 @ =sPSSData - ldr r2, [r4] - movs r3, 0xCD - lsls r3, 4 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _080929FC @ =sBoxCursorPosition - adds r3, 0x1 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2, 0x1] - cmp r0, 0x3 - beq _08092A08 - ldr r1, _08092A00 @ =0x000021ef - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08092A22 - ldr r0, _08092A04 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - bne _08092A22 - subs r3, 0x21 - adds r0, r2, r3 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _08092A22 - .align 2, 0 -_080929F4: .4byte sBoxCursorArea -_080929F8: .4byte sPSSData -_080929FC: .4byte sBoxCursorPosition -_08092A00: .4byte 0x000021ef -_08092A04: .4byte sIsMonBeingMoved -_08092A08: - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - bne _08092A22 - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_08092A22: - bl sub_8093A10 - ldr r0, _08092A3C @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _08092A52 - cmp r0, 0x1 - bgt _08092A40 - cmp r0, 0 - beq _08092A74 - b _08092AD0 - .align 2, 0 -_08092A3C: .4byte sBoxCursorArea -_08092A40: - cmp r0, 0x2 - beq _08092A4A - cmp r0, 0x3 - bne _08092AD0 - b _08092A62 -_08092A4A: - movs r0, 0x1 - bl sub_80920FC - b _08092AD0 -_08092A52: - ldr r0, _08092A6C @ =sPSSData - ldr r0, [r0] - ldr r2, _08092A70 @ =0x00000cb4 - adds r0, r2 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xD - strb r1, [r0] -_08092A62: - movs r0, 0x1 - bl sub_8091184 - b _08092AD0 - .align 2, 0 -_08092A6C: .4byte sPSSData -_08092A70: .4byte 0x00000cb4 -_08092A74: - ldr r4, _08092AD8 @ =sPSSData - ldr r1, [r4] - ldr r3, _08092ADC @ =0x000021ef - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _08092AD0 - movs r2, 0xCB - lsls r2, 4 - adds r0, r1, r2 - ldr r3, [r0] - ldrb r1, [r3, 0x5] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r4] - ldr r3, _08092AE0 @ =0x00000cb4 - adds r0, r3 - ldr r1, [r0] - ldrb r0, [r1, 0x5] - ands r2, r0 - movs r0, 0x8 - orrs r2, r0 - strb r2, [r1, 0x5] - ldr r0, [r4] - adds r0, r3 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x15 - strb r1, [r0] - ldr r0, [r4] - adds r0, r3 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x2 - bl sub_8091184 -_08092AD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092AD8: .4byte sPSSData -_08092ADC: .4byte 0x000021ef -_08092AE0: .4byte 0x00000cb4 - thumb_func_end sub_80929B0 - - thumb_func_start sub_8092AE4 -sub_8092AE4: @ 8092AE4 - push {lr} - ldr r0, _08092AF4 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - bne _08092AF8 - movs r3, 0 - b _08092B06 - .align 2, 0 -_08092AF4: .4byte sIsMonBeingMoved -_08092AF8: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _08092B06 - movs r3, 0x5 -_08092B06: - ldr r0, _08092B34 @ =sPSSData - ldr r2, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08092B26 - ldr r0, _08092B38 @ =0x00000cd3 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_08092B26: - movs r0, 0x1 - adds r1, r3, 0 - bl sub_80927E8 - pop {r0} - bx r0 - .align 2, 0 -_08092B34: .4byte sPSSData -_08092B38: .4byte 0x00000cd3 - thumb_func_end sub_8092AE4 - - thumb_func_start sub_8092B3C -sub_8092B3C: @ 8092B3C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_80927E8 - pop {r0} - bx r0 - thumb_func_end sub_8092B3C - - thumb_func_start sub_8092B50 -sub_8092B50: @ 8092B50 - ldr r1, _08092B58 @ =gUnknown_2039826 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08092B58: .4byte gUnknown_2039826 - thumb_func_end sub_8092B50 - - thumb_func_start sub_8092B5C -sub_8092B5C: @ 8092B5C - ldr r0, _08092B68 @ =gUnknown_2039826 - ldr r1, _08092B6C @ =sBoxCursorPosition - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_08092B68: .4byte gUnknown_2039826 -_08092B6C: .4byte sBoxCursorPosition - thumb_func_end sub_8092B5C - - thumb_func_start sub_8092B70 -sub_8092B70: @ 8092B70 - ldr r0, _08092B78 @ =gUnknown_2039826 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08092B78: .4byte gUnknown_2039826 - thumb_func_end sub_8092B70 - - thumb_func_start sub_8092B7C -sub_8092B7C: @ 8092B7C - lsls r0, 24 - ldr r1, _08092B9C @ =sPSSData - ldr r1, [r1] - ldr r2, _08092BA0 @ =0x00000d88 - adds r3, r1, r2 - ldr r2, _08092BA4 @ =gUnknown_83D346C - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - ldr r0, _08092BA8 @ =0x00000d8c - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08092B9C: .4byte sPSSData -_08092BA0: .4byte 0x00000d88 -_08092BA4: .4byte gUnknown_83D346C -_08092BA8: .4byte 0x00000d8c - thumb_func_end sub_8092B7C - - thumb_func_start sub_8092BAC -sub_8092BAC: @ 8092BAC - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _08092BCC - ldr r0, _08092BC0 @ =sPSSData - ldr r1, [r0] - ldr r2, _08092BC4 @ =0x00000d88 - adds r1, r2 - ldr r2, _08092BC8 @ =sub_8092E00 - b _08092BD6 - .align 2, 0 -_08092BC0: .4byte sPSSData -_08092BC4: .4byte 0x00000d88 -_08092BC8: .4byte sub_8092E00 -_08092BCC: - ldr r0, _08092BE8 @ =sPSSData - ldr r1, [r0] - ldr r2, _08092BEC @ =0x00000d88 - adds r1, r2 - ldr r2, _08092BF0 @ =sub_8092E10 -_08092BD6: - str r2, [r1] - ldr r0, [r0] - ldr r1, _08092BF4 @ =0x00000d8c - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08092BE8: .4byte sPSSData -_08092BEC: .4byte 0x00000d88 -_08092BF0: .4byte sub_8092E10 -_08092BF4: .4byte 0x00000d8c - thumb_func_end sub_8092BAC - - thumb_func_start sub_8092BF8 -sub_8092BF8: @ 8092BF8 - push {lr} - ldr r0, _08092C10 @ =sPSSData - ldr r0, [r0] - ldr r1, _08092C14 @ =0x00000d88 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08092C10: .4byte sPSSData -_08092C14: .4byte 0x00000d88 - thumb_func_end sub_8092BF8 - - thumb_func_start sub_8092C18 -sub_8092C18: @ 8092C18 - push {r4,r5,lr} - ldr r4, _08092C34 @ =sPSSData - ldr r1, [r4] - ldr r5, _08092C38 @ =0x00000d8c - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08092C68 - cmp r0, 0x1 - bgt _08092C3C - cmp r0, 0 - beq _08092C46 - b _08092C9C - .align 2, 0 -_08092C34: .4byte sPSSData -_08092C38: .4byte 0x00000d8c -_08092C3C: - cmp r0, 0x2 - beq _08092C88 - cmp r0, 0x3 - beq _08092C4E - b _08092C9C -_08092C46: - ldr r0, _08092C54 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _08092C58 -_08092C4E: - movs r0, 0 - b _08092C9E - .align 2, 0 -_08092C54: .4byte sIsMonBeingMoved -_08092C58: - movs r2, 0xCB - lsls r2, 4 - adds r0, r1, r2 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - b _08092C92 -_08092C68: - bl sub_8092E20 - lsls r0, 24 - cmp r0, 0 - bne _08092C9C - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - bl sub_8092E80 - b _08092C92 -_08092C88: - bl sub_8092E54 - lsls r0, 24 - cmp r0, 0 - bne _08092C9C -_08092C92: - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08092C9C: - movs r0, 0x1 -_08092C9E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092C18 - - thumb_func_start sub_8092CA4 -sub_8092CA4: @ 8092CA4 - push {r4,r5,lr} - ldr r4, _08092CC0 @ =sPSSData - ldr r0, [r4] - ldr r5, _08092CC4 @ =0x00000d8c - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08092CEE - cmp r0, 0x1 - bgt _08092CC8 - cmp r0, 0 - beq _08092CCE - b _08092D18 - .align 2, 0 -_08092CC0: .4byte sPSSData -_08092CC4: .4byte 0x00000d8c -_08092CC8: - cmp r0, 0x2 - beq _08092D14 - b _08092D18 -_08092CCE: - bl sub_8092E20 - lsls r0, 24 - cmp r0, 0 - bne _08092D18 - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - bl sub_8092EF4 - b _08092D08 -_08092CEE: - bl sub_8092E54 - lsls r0, 24 - cmp r0, 0 - bne _08092D18 - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_08092D08: - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08092D18 -_08092D14: - movs r0, 0 - b _08092D1A -_08092D18: - movs r0, 0x1 -_08092D1A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092CA4 - - thumb_func_start sub_8092D20 -sub_8092D20: @ 8092D20 - push {r4,r5,lr} - ldr r4, _08092D3C @ =sPSSData - ldr r1, [r4] - ldr r5, _08092D40 @ =0x00000d8c - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08092DB4 - cmp r0, 0x1 - bgt _08092D44 - cmp r0, 0 - beq _08092D4A - b _08092DF8 - .align 2, 0 -_08092D3C: .4byte sPSSData -_08092D40: .4byte 0x00000d8c -_08092D44: - cmp r0, 0x2 - beq _08092DF4 - b _08092DF8 -_08092D4A: - ldr r0, _08092D64 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08092D6C - cmp r0, 0x1 - bne _08092DF4 - ldr r0, _08092D68 @ =0x00000d8d - adds r1, r0 - movs r0, 0xE - b _08092D76 - .align 2, 0 -_08092D64: .4byte sBoxCursorArea -_08092D68: .4byte 0x00000d8d -_08092D6C: - bl StorageGetCurrentBox - ldr r1, [r4] - ldr r2, _08092DA4 @ =0x00000d8d - adds r1, r2 -_08092D76: - strb r0, [r1] - ldr r4, _08092DA8 @ =sPSSData - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - ldr r0, [r4] - ldr r2, _08092DA4 @ =0x00000d8d - adds r0, r2 - ldrb r0, [r0] - ldr r1, _08092DAC @ =sBoxCursorPosition - ldrb r1, [r1] - bl sub_8090E08 - ldr r1, [r4] - ldr r0, _08092DB0 @ =0x00000d8c - adds r1, r0 - b _08092DE2 - .align 2, 0 -_08092DA4: .4byte 0x00000d8d -_08092DA8: .4byte sPSSData -_08092DAC: .4byte sBoxCursorPosition -_08092DB0: .4byte 0x00000d8c -_08092DB4: - bl sub_8090E74 - lsls r0, 24 - cmp r0, 0 - bne _08092DF8 - ldr r0, [r4] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - ldr r0, [r4] - ldr r2, _08092DEC @ =0x00000d8d - adds r0, r2 - ldrb r0, [r0] - ldr r1, _08092DF0 @ =sBoxCursorPosition - ldrb r1, [r1] - bl diegohint1 - ldr r1, [r4] - adds r1, r5 -_08092DE2: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08092DF8 - .align 2, 0 -_08092DEC: .4byte 0x00000d8d -_08092DF0: .4byte sBoxCursorPosition -_08092DF4: - movs r0, 0 - b _08092DFA -_08092DF8: - movs r0, 0x1 -_08092DFA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8092D20 - - thumb_func_start sub_8092E00 -sub_8092E00: @ 8092E00 - push {lr} - bl sub_8092E20 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8092E00 - - thumb_func_start sub_8092E10 -sub_8092E10: @ 8092E10 - push {lr} - bl sub_8092E54 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8092E10 - - thumb_func_start sub_8092E20 -sub_8092E20: @ 8092E20 - push {lr} - ldr r0, _08092E44 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08092E3A - cmp r0, 0x8 - beq _08092E48 -_08092E3A: - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08092E4C - .align 2, 0 -_08092E44: .4byte sPSSData -_08092E48: - movs r0, 0 - b _08092E4E -_08092E4C: - movs r0, 0x1 -_08092E4E: - pop {r1} - bx r1 - thumb_func_end sub_8092E20 - - thumb_func_start sub_8092E54 -sub_8092E54: @ 8092E54 - push {lr} - ldr r0, _08092E74 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08092E78 - ldrh r0, [r1, 0x26] - subs r0, 0x1 - strh r0, [r1, 0x26] - movs r0, 0x1 - b _08092E7A - .align 2, 0 -_08092E74: .4byte sPSSData -_08092E78: - movs r0, 0 -_08092E7A: - pop {r1} - bx r1 - thumb_func_end sub_8092E54 - - thumb_func_start sub_8092E80 -sub_8092E80: @ 8092E80 - push {r4,lr} - ldr r0, _08092EA8 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08092EB0 - cmp r0, 0x1 - bne _08092EDC - ldr r4, _08092EAC @ =sBoxCursorPosition - ldrb r1, [r4] - movs r0, 0xE - bl sub_8092F60 - ldrb r1, [r4] - movs r0, 0 - bl sub_8090CC0 - b _08092ED6 - .align 2, 0 -_08092EA8: .4byte sBoxCursorArea -_08092EAC: .4byte sBoxCursorPosition -_08092EB0: - ldr r0, _08092EE4 @ =sPSSData - ldr r0, [r0] - ldr r1, _08092EE8 @ =0x000021ef - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08092ED6 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08092EEC @ =sBoxCursorPosition - ldrb r1, [r4] - bl sub_8092F60 - ldrb r1, [r4] - movs r0, 0x1 - bl sub_8090CC0 -_08092ED6: - ldr r1, _08092EF0 @ =sIsMonBeingMoved - movs r0, 0x1 - strb r0, [r1] -_08092EDC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08092EE4: .4byte sPSSData -_08092EE8: .4byte 0x000021ef -_08092EEC: .4byte sBoxCursorPosition -_08092EF0: .4byte sIsMonBeingMoved - thumb_func_end sub_8092E80 - - thumb_func_start sub_8092EF4 -sub_8092EF4: @ 8092EF4 - push {r4,r5,lr} - ldr r0, _08092F1C @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08092F24 - cmp r0, 0x1 - bne _08092F46 - ldr r4, _08092F20 @ =sBoxCursorPosition - ldrb r1, [r4] - movs r0, 0xE - bl diegohint2 - ldrb r1, [r4] - movs r0, 0xE - bl sub_8090D58 - b _08092F40 - .align 2, 0 -_08092F1C: .4byte sBoxCursorArea -_08092F20: .4byte sBoxCursorPosition -_08092F24: - bl StorageGetCurrentBox - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08092F4C @ =sBoxCursorPosition - ldrb r1, [r5] - adds r0, r4, 0 - bl diegohint2 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_8090D58 -_08092F40: - ldr r1, _08092F50 @ =sIsMonBeingMoved - movs r0, 0 - strb r0, [r1] -_08092F46: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092F4C: .4byte sBoxCursorPosition -_08092F50: .4byte sIsMonBeingMoved - thumb_func_end sub_8092EF4 - - thumb_func_start sub_8092F54 -sub_8092F54: @ 8092F54 - push {lr} - bl sub_8093A10 - pop {r0} - bx r0 - thumb_func_end sub_8092F54 - - thumb_func_start sub_8092F60 -sub_8092F60: @ 8092F60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0xE - bne _08092F9C - ldr r0, _08092F8C @ =sPSSData - ldr r0, [r0] - ldr r1, _08092F90 @ =0x000020a0 - adds r0, r1 - ldr r3, _08092F94 @ =gPlayerParty - ldr r1, _08092F98 @ =sBoxCursorPosition - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - b _08092FAC - .align 2, 0 -_08092F8C: .4byte sPSSData -_08092F90: .4byte 0x000020a0 -_08092F94: .4byte gPlayerParty -_08092F98: .4byte sBoxCursorPosition -_08092F9C: - ldr r0, _08092FC4 @ =sPSSData - ldr r2, [r0] - ldr r0, _08092FC8 @ =0x000020a0 - adds r2, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808BCF0 -_08092FAC: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8093030 - ldr r0, _08092FCC @ =sMovingMonOrigBoxId - strb r4, [r0] - ldr r0, _08092FD0 @ =sMovingMonOrigBoxPos - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08092FC4: .4byte sPSSData -_08092FC8: .4byte 0x000020a0 -_08092FCC: .4byte sMovingMonOrigBoxId -_08092FD0: .4byte sMovingMonOrigBoxPos - thumb_func_end sub_8092F60 - - thumb_func_start diegohint2 -diegohint2: @ 8092FD4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r6, 0xE - bne _08093008 - ldr r1, _08092FFC @ =gPlayerParty - movs r0, 0x64 - muls r0, r7 - adds r0, r1 - ldr r1, _08093000 @ =sPSSData - ldr r1, [r1] - ldr r2, _08093004 @ =0x000020a0 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _08093020 - .align 2, 0 -_08092FFC: .4byte gPlayerParty -_08093000: .4byte sPSSData -_08093004: .4byte 0x000020a0 -_08093008: - ldr r5, _08093028 @ =sPSSData - ldr r0, [r5] - ldr r4, _0809302C @ =0x000020a0 - adds r0, r4 - bl BoxMonRestorePP - ldr r2, [r5] - adds r2, r4 - adds r0, r6, 0 - adds r1, r7, 0 - bl CopyBoxMonFromAnyBox -_08093020: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093028: .4byte sPSSData -_0809302C: .4byte 0x000020a0 - thumb_func_end diegohint2 - - thumb_func_start sub_8093030 -sub_8093030: @ 8093030 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r0, 0xE - bne _08093050 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809304C @ =gPlayerParty - adds r0, r1 - bl ZeroMonData - b _08093054 - .align 2, 0 -_0809304C: .4byte gPlayerParty -_08093050: - bl sub_808BCB4 -_08093054: - pop {r0} - bx r0 - thumb_func_end sub_8093030 - - thumb_func_start diegohint1 -diegohint1: @ 8093058 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r6, 0xE - bne _0809308C - ldr r0, _08093080 @ =sPSSData - ldr r0, [r0] - ldr r1, _08093084 @ =0x00002104 - adds r0, r1 - ldr r2, _08093088 @ =gPlayerParty - movs r1, 0x64 - muls r1, r7 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809309C - .align 2, 0 -_08093080: .4byte sPSSData -_08093084: .4byte 0x00002104 -_08093088: .4byte gPlayerParty -_0809308C: - ldr r0, _080930D0 @ =sPSSData - ldr r2, [r0] - ldr r0, _080930D4 @ =0x00002104 - adds r2, r0 - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_808BCF0 -_0809309C: - adds r0, r6, 0 - adds r1, r7, 0 - bl diegohint2 - ldr r5, _080930D0 @ =sPSSData - ldr r1, [r5] - ldr r4, _080930D8 @ =0x000020a0 - adds r0, r1, r4 - ldr r2, _080930D4 @ =0x00002104 - adds r1, r2 - movs r2, 0x64 - bl memcpy - ldr r0, [r5] - adds r0, r4 - movs r1, 0 - bl sub_8093AD0 - ldr r0, _080930DC @ =sMovingMonOrigBoxId - strb r6, [r0] - ldr r0, _080930E0 @ =sMovingMonOrigBoxPos - strb r7, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080930D0: .4byte sPSSData -_080930D4: .4byte 0x00002104 -_080930D8: .4byte 0x000020a0 -_080930DC: .4byte sMovingMonOrigBoxId -_080930E0: .4byte sMovingMonOrigBoxPos - thumb_func_end diegohint1 - - thumb_func_start sub_80930E4 -sub_80930E4: @ 80930E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl GetFirstFreeBoxSpot - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08093102 - movs r0, 0 - b _08093164 -_08093102: - ldr r5, _08093120 @ =sIsMonBeingMoved - ldrb r0, [r5] - cmp r0, 0 - beq _08093124 - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - bl sub_8090B6C - movs r0, 0 - strb r0, [r5] - b _0809313E - .align 2, 0 -_08093120: .4byte sIsMonBeingMoved -_08093124: - ldr r5, _0809316C @ =sBoxCursorPosition - ldrb r1, [r5] - movs r0, 0xE - bl sub_8092F60 - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - ldrb r0, [r5] - bl sub_8090C10 -_0809313E: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _08093150 - lsrs r0, r4, 24 - bl sub_80901EC -_08093150: - ldr r0, _08093170 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x1 -_08093164: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809316C: .4byte sBoxCursorPosition -_08093170: .4byte sPSSData - thumb_func_end sub_80930E4 - - thumb_func_start sub_8093174 -sub_8093174: @ 8093174 - push {lr} - ldr r0, _08093190 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - bl sub_8093A10 - pop {r0} - bx r0 - .align 2, 0 -_08093190: .4byte sPSSData - thumb_func_end sub_8093174 - - thumb_func_start sub_8093194 -sub_8093194: @ 8093194 - push {lr} - ldr r0, _080931A4 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080931A8 - movs r2, 0x2 - b _080931B8 - .align 2, 0 -_080931A4: .4byte sIsMonBeingMoved -_080931A8: - ldr r0, _080931D8 @ =sBoxCursorArea - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0x1 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r2, r0, 31 -_080931B8: - ldr r0, _080931DC @ =sBoxCursorPosition - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_8090FC4 - ldr r0, _080931E0 @ =sPSSData - ldr r1, [r0] - ldr r2, _080931E4 @ =0x000021d0 - adds r0, r1, r2 - ldr r2, _080931E8 @ =0x00000cea - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_080931D8: .4byte sBoxCursorArea -_080931DC: .4byte sBoxCursorPosition -_080931E0: .4byte sPSSData -_080931E4: .4byte 0x000021d0 -_080931E8: .4byte 0x00000cea - thumb_func_end sub_8093194 - - thumb_func_start sub_80931EC -sub_80931EC: @ 80931EC - push {lr} - bl sub_8091084 - lsls r0, 24 - cmp r0, 0 - beq _080931FC - movs r0, 0x1 - b _08093210 -_080931FC: - ldr r0, _08093214 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - movs r0, 0 -_08093210: - pop {r1} - bx r1 - .align 2, 0 -_08093214: .4byte sPSSData - thumb_func_end sub_80931EC - - thumb_func_start sub_8093218 -sub_8093218: @ 8093218 - push {lr} - bl sub_80910CC - ldr r1, _0809322C @ =sIsMonBeingMoved - ldrb r0, [r1] - cmp r0, 0 - beq _08093230 - movs r0, 0 - strb r0, [r1] - b _08093256 - .align 2, 0 -_0809322C: .4byte sIsMonBeingMoved -_08093230: - ldr r0, _08093240 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08093244 - movs r2, 0xE - b _0809324C - .align 2, 0 -_08093240: .4byte sBoxCursorArea -_08093244: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r2, r0, 24 -_0809324C: - ldr r0, _08093260 @ =sBoxCursorPosition - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_8093030 -_08093256: - bl sub_8093A10 - pop {r0} - bx r0 - .align 2, 0 -_08093260: .4byte sBoxCursorPosition - thumb_func_end sub_8093218 - - thumb_func_start sub_8093264 -sub_8093264: @ 8093264 - push {lr} - ldr r0, _08093284 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _08093280 - ldr r0, _08093288 @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim -_08093280: - pop {r0} - bx r0 - .align 2, 0 -_08093284: .4byte sIsMonBeingMoved -_08093288: .4byte sPSSData - thumb_func_end sub_8093264 - - thumb_func_start sub_809328C -sub_809328C: @ 809328C - push {r4-r6,lr} - ldr r0, _080932C0 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080932D8 - ldr r4, _080932C4 @ =sPSSData - ldr r1, [r4] - ldr r2, _080932C8 @ =0x00002104 - adds r0, r1, r2 - ldr r3, _080932CC @ =0x000020a0 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, [r4] - ldr r1, _080932D0 @ =0x0000216e - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r4] - ldr r2, _080932D4 @ =0x0000216f - adds r0, r2 - movs r1, 0x1 - negs r1, r1 - b _08093354 - .align 2, 0 -_080932C0: .4byte sIsMonBeingMoved -_080932C4: .4byte sPSSData -_080932C8: .4byte 0x00002104 -_080932CC: .4byte 0x000020a0 -_080932D0: .4byte 0x0000216e -_080932D4: .4byte 0x0000216f -_080932D8: - ldr r0, _0809330C @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08093324 - ldr r4, _08093310 @ =sPSSData - ldr r0, [r4] - ldr r3, _08093314 @ =0x00002104 - adds r0, r3 - ldr r3, _08093318 @ =gPlayerParty - ldr r1, _0809331C @ =sBoxCursorPosition - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, [r4] - ldr r1, _08093320 @ =0x0000216e - adds r0, r1 - movs r1, 0xE - strb r1, [r0] - b _08093348 - .align 2, 0 -_0809330C: .4byte sBoxCursorArea -_08093310: .4byte sPSSData -_08093314: .4byte 0x00002104 -_08093318: .4byte gPlayerParty -_0809331C: .4byte sBoxCursorPosition -_08093320: .4byte 0x0000216e -_08093324: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080933BC @ =sBoxCursorPosition - ldrb r1, [r1] - ldr r4, _080933C0 @ =sPSSData - ldr r2, [r4] - ldr r3, _080933C4 @ =0x00002104 - adds r2, r3 - bl sub_808BCF0 - bl StorageGetCurrentBox - ldr r1, [r4] - ldr r2, _080933C8 @ =0x0000216e - adds r1, r2 - strb r0, [r1] -_08093348: - ldr r0, _080933C0 @ =sPSSData - ldr r0, [r0] - ldr r1, _080933BC @ =sBoxCursorPosition - ldrb r1, [r1] - ldr r3, _080933CC @ =0x0000216f - adds r0, r3 -_08093354: - strb r1, [r0] - ldr r6, _080933C0 @ =sPSSData - ldr r0, [r6] - ldr r4, _080933D0 @ =0x0000216a - adds r0, r4 - movs r1, 0 - strb r1, [r0] - ldr r0, [r6] - ldr r5, _080933D4 @ =0x0000216b - adds r0, r5 - strb r1, [r0] - ldr r0, [r6] - ldr r1, _080933D8 @ =0x00002172 - adds r2, r0, r1 - movs r1, 0x39 - strh r1, [r2] - ldr r1, _080933DC @ =0x00002174 - adds r3, r0, r1 - ldr r1, _080933E0 @ =0x00000123 - strh r1, [r3] - ldr r1, _080933E4 @ =0x00002176 - adds r3, r0, r1 - ldr r1, _080933E8 @ =0x00000163 - strh r1, [r3] - ldr r3, _080933C4 @ =0x00002104 - adds r0, r3 - movs r1, 0x51 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, [r6] - movs r2, 0x1 - ands r3, r2 - adds r1, r4 - strb r3, [r1] - ldr r1, [r6] - lsrs r0, 17 - movs r2, 0x1 - ands r0, r2 - adds r1, r5 - strb r0, [r1] - ldr r1, [r6] - adds r4, r1, r4 - ldrh r0, [r4] - cmp r0, 0 - beq _080933F0 - ldr r0, _080933EC @ =0x00002169 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - b _080933FE - .align 2, 0 -_080933BC: .4byte sBoxCursorPosition -_080933C0: .4byte sPSSData -_080933C4: .4byte 0x00002104 -_080933C8: .4byte 0x0000216e -_080933CC: .4byte 0x0000216f -_080933D0: .4byte 0x0000216a -_080933D4: .4byte 0x0000216b -_080933D8: .4byte 0x00002172 -_080933DC: .4byte 0x00002174 -_080933E0: .4byte 0x00000123 -_080933E4: .4byte 0x00002176 -_080933E8: .4byte 0x00000163 -_080933EC: .4byte 0x00002169 -_080933F0: - ldr r3, _08093410 @ =0x00002169 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, [r6] - ldr r1, _08093414 @ =0x00002168 - adds r0, r1 - strb r2, [r0] -_080933FE: - ldr r0, _08093418 @ =sPSSData - ldr r0, [r0] - ldr r2, _0809341C @ =0x00002170 - adds r0, r2 - movs r1, 0 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08093410: .4byte 0x00002169 -_08093414: .4byte 0x00002168 -_08093418: .4byte sPSSData -_0809341C: .4byte 0x00002170 - thumb_func_end sub_809328C - - thumb_func_start sub_8093420 -sub_8093420: @ 8093420 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08093444 @ =sPSSData - ldr r3, [r0] - ldr r2, _08093448 @ =0x00002169 - adds r1, r3, r2 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _08093450 - ldr r1, _0809344C @ =0x00002168 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _08093604 - .align 2, 0 -_08093444: .4byte sPSSData -_08093448: .4byte 0x00002169 -_0809344C: .4byte 0x00002168 -_08093450: - ldr r2, _08093460 @ =0x00002170 - adds r0, r3, r2 - ldrh r0, [r0] - cmp r0, 0 - beq _08093464 - cmp r0, 0x1 - beq _0809353C - b _08093600 - .align 2, 0 -_08093460: .4byte 0x00002170 -_08093464: - movs r6, 0 - mov r5, r12 - movs r7, 0 -_0809346A: - ldr r2, [r5] - ldr r1, _08093500 @ =0x0000216e - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _08093488 - adds r1, 0x1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, r6 - beq _080934C2 -_08093488: - movs r0, 0x64 - muls r0, r6 - ldr r1, _08093504 @ =gPlayerParty - adds r0, r1 - ldr r1, _08093508 @ =0x00002172 - adds r2, r1 - movs r1, 0x51 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080934AE - ldr r0, [r5] - ldr r2, _0809350C @ =0x0000216a - adds r0, r2 - strb r7, [r0] -_080934AE: - movs r0, 0x2 - ands r4, r0 - ldr r0, _08093510 @ =sPSSData - mov r12, r0 - cmp r4, 0 - beq _080934C2 - ldr r0, [r5] - ldr r1, _08093514 @ =0x0000216b - adds r0, r1 - strb r7, [r0] -_080934C2: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _0809346A - mov r2, r12 - ldr r1, [r2] - ldr r2, _0809350C @ =0x0000216a - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _080934DC - b _080935EE -_080934DC: - ldr r2, _08093518 @ =0x0000216c - adds r0, r1, r2 - movs r1, 0 - strb r1, [r0] - mov r2, r12 - ldr r0, [r2] - ldr r2, _0809351C @ =0x0000216d - adds r0, r2 - strb r1, [r0] - mov r0, r12 - ldr r1, [r0] - adds r2, 0x3 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08093600 - .align 2, 0 -_08093500: .4byte 0x0000216e -_08093504: .4byte gPlayerParty -_08093508: .4byte 0x00002172 -_0809350C: .4byte 0x0000216a -_08093510: .4byte sPSSData -_08093514: .4byte 0x0000216b -_08093518: .4byte 0x0000216c -_0809351C: .4byte 0x0000216d -_08093520: - mov r1, r12 - ldr r0, [r1] - ldr r2, _08093538 @ =0x00002169 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - mov r1, r12 - ldr r0, [r1] - subs r2, 0x1 - adds r0, r2 - strb r3, [r0] - b _080935E0 - .align 2, 0 -_08093538: .4byte 0x00002169 -_0809353C: - movs r6, 0 - mov r7, r12 - ldr r0, _08093610 @ =0x0000ffff - mov r8, r0 -_08093544: - ldr r3, [r7] - ldr r1, _08093614 @ =0x0000216c - adds r0, r3, r1 - ldrb r0, [r0] - ldr r2, _08093618 @ =0x0000216d - adds r1, r3, r2 - ldrb r1, [r1] - adds r2, 0x5 - adds r3, r2 - movs r2, 0x51 - bl GetAndCopyBoxMonDataFromAnyBox - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080935A0 - ldr r5, [r7] - ldr r1, _0809361C @ =0x0000216e - adds r0, r5, r1 - ldrh r2, [r0] - subs r1, 0x2 - adds r0, r5, r1 - ldrh r3, [r0] - mov r1, r8 - ands r1, r2 - mov r0, r8 - ands r0, r3 - cmp r1, r0 - beq _080935A0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0809358E - ldr r2, _08093620 @ =0x0000216a - adds r1, r5, r2 - movs r0, 0 - strb r0, [r1] -_0809358E: - movs r0, 0x2 - ands r4, r0 - cmp r4, 0 - beq _080935A0 - ldr r0, [r7] - ldr r1, _08093624 @ =0x0000216b - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080935A0: - ldr r2, _08093628 @ =sPSSData - ldr r1, [r2] - ldr r0, _08093618 @ =0x0000216d - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - mov r12, r2 - cmp r0, 0x1D - ble _080935D6 - ldr r0, [r2] - ldr r1, _08093618 @ =0x0000216d - adds r0, r1 - strb r3, [r0] - ldr r1, [r2] - ldr r2, _08093614 @ =0x0000216c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xD - bgt _08093520 -_080935D6: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _08093544 -_080935E0: - mov r0, r12 - ldr r1, [r0] - ldr r2, _08093620 @ =0x0000216a - adds r0, r1, r2 - ldrh r0, [r0] - cmp r0, 0 - bne _08093600 -_080935EE: - subs r2, 0x1 - adds r0, r1, r2 - movs r1, 0x1 - strb r1, [r0] - mov r2, r12 - ldr r0, [r2] - ldr r2, _0809362C @ =0x00002168 - adds r0, r2 - strb r1, [r0] -_08093600: - movs r0, 0x1 - negs r0, r0 -_08093604: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093610: .4byte 0x0000ffff -_08093614: .4byte 0x0000216c -_08093618: .4byte 0x0000216d -_0809361C: .4byte 0x0000216e -_08093620: .4byte 0x0000216a -_08093624: .4byte 0x0000216b -_08093628: .4byte sPSSData -_0809362C: .4byte 0x00002168 - thumb_func_end sub_8093420 - - thumb_func_start sub_8093630 -sub_8093630: @ 8093630 - push {lr} - ldr r0, _08093650 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _0809364A - ldr r0, _08093654 @ =gUnknown_20397BC - ldr r1, _08093658 @ =sPSSData - ldr r1, [r1] - ldr r2, _0809365C @ =0x000020a0 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_0809364A: - pop {r0} - bx r0 - .align 2, 0 -_08093650: .4byte sIsMonBeingMoved -_08093654: .4byte gUnknown_20397BC -_08093658: .4byte sPSSData -_0809365C: .4byte 0x000020a0 - thumb_func_end sub_8093630 - - thumb_func_start sub_8093660 -sub_8093660: @ 8093660 - push {lr} - ldr r0, _08093684 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080936A8 - ldr r0, _08093688 @ =sMovingMonOrigBoxId - ldrb r0, [r0] - cmp r0, 0xE - bne _08093698 - ldr r0, _0809368C @ =sPSSData - ldr r0, [r0] - ldr r1, _08093690 @ =0x000020a0 - adds r0, r1 - ldr r1, _08093694 @ =gUnknown_20397BC - movs r2, 0x64 - bl memcpy - b _080936A8 - .align 2, 0 -_08093684: .4byte sIsMonBeingMoved -_08093688: .4byte sMovingMonOrigBoxId -_0809368C: .4byte sPSSData -_08093690: .4byte 0x000020a0 -_08093694: .4byte gUnknown_20397BC -_08093698: - ldr r0, _080936AC @ =sPSSData - ldr r0, [r0] - ldr r1, _080936B0 @ =0x000020a0 - adds r0, r1 - ldr r1, _080936B4 @ =gUnknown_20397BC - movs r2, 0x50 - bl memcpy -_080936A8: - pop {r0} - bx r0 - .align 2, 0 -_080936AC: .4byte sPSSData -_080936B0: .4byte 0x000020a0 -_080936B4: .4byte gUnknown_20397BC - thumb_func_end sub_8093660 - - thumb_func_start sub_80936B8 -sub_80936B8: @ 80936B8 - push {r4,r5,lr} - ldr r0, _080936EC @ =sIsMonBeingMoved - ldrb r5, [r0] - cmp r5, 0 - beq _08093708 - bl sub_8093630 - ldr r3, _080936F0 @ =sPSSData - ldr r1, [r3] - ldr r0, _080936F4 @ =0x0000217c - adds r2, r1, r0 - ldr r0, _080936F8 @ =gUnknown_20397BC - str r0, [r2] - ldr r2, _080936FC @ =0x00002179 - adds r1, r2 - movs r2, 0 - strb r2, [r1] - ldr r0, [r3] - ldr r4, _08093700 @ =0x00002178 - adds r0, r4 - strb r2, [r0] - ldr r0, [r3] - ldr r1, _08093704 @ =0x0000217a - adds r0, r1 - strb r2, [r0] - b _0809379A - .align 2, 0 -_080936EC: .4byte sIsMonBeingMoved -_080936F0: .4byte sPSSData -_080936F4: .4byte 0x0000217c -_080936F8: .4byte gUnknown_20397BC -_080936FC: .4byte 0x00002179 -_08093700: .4byte 0x00002178 -_08093704: .4byte 0x0000217a -_08093708: - ldr r0, _08093744 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08093764 - ldr r4, _08093748 @ =sPSSData - ldr r1, [r4] - ldr r0, _0809374C @ =0x0000217c - adds r2, r1, r0 - ldr r0, _08093750 @ =gPlayerParty - str r0, [r2] - ldr r0, _08093754 @ =sBoxCursorPosition - ldrb r0, [r0] - ldr r2, _08093758 @ =0x00002179 - adds r1, r2 - strb r0, [r1] - bl CountPartyMons - ldr r1, [r4] - subs r0, 0x1 - ldr r2, _0809375C @ =0x00002178 - adds r1, r2 - strb r0, [r1] - ldr r0, [r4] - ldr r4, _08093760 @ =0x0000217a - adds r0, r4 - strb r5, [r0] - b _0809379A - .align 2, 0 -_08093744: .4byte sBoxCursorArea -_08093748: .4byte sPSSData -_0809374C: .4byte 0x0000217c -_08093750: .4byte gPlayerParty -_08093754: .4byte sBoxCursorPosition -_08093758: .4byte 0x00002179 -_0809375C: .4byte 0x00002178 -_08093760: .4byte 0x0000217a -_08093764: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl GetBoxedMonPtr - ldr r3, _080937A0 @ =sPSSData - ldr r2, [r3] - ldr r4, _080937A4 @ =0x0000217c - adds r1, r2, r4 - str r0, [r1] - ldr r0, _080937A8 @ =sBoxCursorPosition - ldrb r0, [r0] - ldr r1, _080937AC @ =0x00002179 - adds r2, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r2, _080937B0 @ =0x00002178 - adds r0, r2 - movs r1, 0x1D - strb r1, [r0] - ldr r0, [r3] - subs r4, 0x2 - adds r0, r4 - movs r1, 0x5 - strb r1, [r0] -_0809379A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080937A0: .4byte sPSSData -_080937A4: .4byte 0x0000217c -_080937A8: .4byte sBoxCursorPosition -_080937AC: .4byte 0x00002179 -_080937B0: .4byte 0x00002178 - thumb_func_end sub_80936B8 - - thumb_func_start sub_80937B4 -sub_80937B4: @ 80937B4 - push {r4,lr} - ldr r0, _080937C4 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080937C8 - bl sub_8093660 - b _080937D0 - .align 2, 0 -_080937C4: .4byte sIsMonBeingMoved -_080937C8: - ldr r4, _080937D8 @ =sBoxCursorPosition - bl GetLastViewedMonIndex - strb r0, [r4] -_080937D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080937D8: .4byte sBoxCursorPosition - thumb_func_end sub_80937B4 - - thumb_func_start CompactPartySlots -CompactPartySlots: @ 80937DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _08093828 @ =0x0000ffff - movs r6, 0 - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, _0809382C @ =gPlayerParty - mov r8, r1 - subs r0, 0x65 - mov r10, r0 -_080937F8: - mov r0, r9 - muls r0, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - cmp r0, 0 - beq _08093830 - cmp r6, r5 - beq _08093820 - mov r0, r9 - muls r0, r5 - add r0, r8 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_08093820: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0809383A - .align 2, 0 -_08093828: .4byte 0x0000ffff -_0809382C: .4byte gPlayerParty -_08093830: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r10 - bne _0809383A - adds r7, r6, 0 -_0809383A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _080937F8 - lsls r7, 16 - cmp r5, 0x5 - bhi _08093862 - movs r6, 0x64 - ldr r4, _08093874 @ =gPlayerParty -_0809384E: - adds r0, r5, 0 - muls r0, r6 - adds r0, r4 - bl ZeroMonData - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809384E -_08093862: - asrs r0, r7, 16 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08093874: .4byte gPlayerParty - thumb_func_end CompactPartySlots - - thumb_func_start sub_8093878 -sub_8093878: @ 8093878 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r2, _080938A8 @ =sPSSData - ldr r1, [r2] - ldr r3, _080938AC @ =0x00000ce7 - adds r1, r3 - strb r0, [r1] - ldr r0, _080938B0 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080938B8 - ldr r0, [r2] - ldr r1, _080938B4 @ =0x000020a0 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _080938EC - .align 2, 0 -_080938A8: .4byte sPSSData -_080938AC: .4byte 0x00000ce7 -_080938B0: .4byte sIsMonBeingMoved -_080938B4: .4byte 0x000020a0 -_080938B8: - ldr r4, _080938F4 @ =sBoxCursorArea - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x1 - bne _080938D8 - ldr r0, _080938F8 @ =sBoxCursorPosition - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080938FC @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData -_080938D8: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _080938EC - ldr r0, _080938F8 @ =sBoxCursorPosition - ldrb r0, [r0] - movs r1, 0x8 - mov r2, sp - bl SetBoxMonDataFromSelectedBox -_080938EC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080938F4: .4byte sBoxCursorArea -_080938F8: .4byte sBoxCursorPosition -_080938FC: .4byte gPlayerParty - thumb_func_end sub_8093878 - - thumb_func_start sub_8093900 -sub_8093900: @ 8093900 - push {lr} - ldr r0, _08093928 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08093934 - ldr r0, _0809392C @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - bne _08093934 - ldr r0, _08093930 @ =sBoxCursorPosition - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, 24 - cmp r0, 0 - bne _08093934 - movs r0, 0x1 - b _08093936 - .align 2, 0 -_08093928: .4byte sBoxCursorArea -_0809392C: .4byte sIsMonBeingMoved -_08093930: .4byte sBoxCursorPosition -_08093934: - movs r0, 0 -_08093936: - pop {r1} - bx r1 - thumb_func_end sub_8093900 - - thumb_func_start sub_809393C -sub_809393C: @ 809393C - push {lr} - ldr r0, _08093980 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _08093998 - ldr r0, _08093984 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809397C - ldr r0, _08093988 @ =sBoxCursorPosition - ldrb r0, [r0] - bl CountPartyAliveNonEggMonsExcept - lsls r0, 24 - cmp r0, 0 - bne _0809397C - ldr r0, _0809398C @ =sPSSData - ldr r1, [r0] - ldr r2, _08093990 @ =0x00000ce9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08093998 - ldr r2, _08093994 @ =0x000020a0 - adds r0, r1, r2 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08093998 -_0809397C: - movs r0, 0x1 - b _0809399A - .align 2, 0 -_08093980: .4byte sIsMonBeingMoved -_08093984: .4byte sBoxCursorArea -_08093988: .4byte sBoxCursorPosition -_0809398C: .4byte sPSSData -_08093990: .4byte 0x00000ce9 -_08093994: .4byte 0x000020a0 -_08093998: - movs r0, 0 -_0809399A: - pop {r1} - bx r1 - thumb_func_end sub_809393C - - thumb_func_start sub_80939A0 -sub_80939A0: @ 80939A0 - ldr r0, _080939A8 @ =sIsMonBeingMoved - ldrb r0, [r0] - bx lr - .align 2, 0 -_080939A8: .4byte sIsMonBeingMoved - thumb_func_end sub_80939A0 - - thumb_func_start sub_80939AC -sub_80939AC: @ 80939AC - push {lr} - movs r1, 0 - ldr r0, _080939C4 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _080939BE - movs r1, 0x1 -_080939BE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080939C4: .4byte sBoxCursorArea - thumb_func_end sub_80939AC - - thumb_func_start sub_80939C8 -sub_80939C8: @ 80939C8 - push {lr} - movs r1, 0 - ldr r0, _080939EC @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080939E6 - ldr r0, _080939F0 @ =sBoxCursorPosition - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _080939E6 - movs r1, 0x1 -_080939E6: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080939EC: .4byte sBoxCursorArea -_080939F0: .4byte sBoxCursorPosition - thumb_func_end sub_80939C8 - - thumb_func_start sub_80939F4 -sub_80939F4: @ 80939F4 - push {lr} - movs r1, 0 - ldr r0, _08093A0C @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _08093A06 - movs r1, 0x1 -_08093A06: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_08093A0C: .4byte sBoxCursorArea - thumb_func_end sub_80939F4 - - thumb_func_start sub_8093A10 -sub_8093A10: @ 8093A10 - push {r4,lr} - ldr r0, _08093A44 @ =sPSSData - ldr r1, [r0] - movs r2, 0 - ldr r3, _08093A48 @ =sIsMonBeingMoved - ldrb r0, [r3] - cmp r0, 0 - bne _08093A22 - movs r2, 0x1 -_08093A22: - ldr r4, _08093A4C @ =0x00000ce6 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, 0 - bne _08093AA0 - ldr r0, _08093A50 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _08093A5A - cmp r0, 0x1 - bgt _08093A54 - cmp r0, 0 - beq _08093A8A - b _08093AA0 - .align 2, 0 -_08093A44: .4byte sPSSData -_08093A48: .4byte sIsMonBeingMoved -_08093A4C: .4byte 0x00000ce6 -_08093A50: .4byte sBoxCursorArea -_08093A54: - cmp r0, 0x3 - bgt _08093AA0 - b _08093A80 -_08093A5A: - ldr r1, _08093A78 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _08093A80 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _08093A7C @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_8093AD0 - b _08093AA0 - .align 2, 0 -_08093A78: .4byte sBoxCursorPosition -_08093A7C: .4byte gPlayerParty -_08093A80: - movs r0, 0 - movs r1, 0x2 - bl sub_8093AD0 - b _08093AA0 -_08093A8A: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08093AA8 @ =sBoxCursorPosition - ldrb r1, [r1] - bl GetBoxedMonPtr - movs r1, 0x1 - bl sub_8093AD0 -_08093AA0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08093AA8: .4byte sBoxCursorPosition - thumb_func_end sub_8093A10 - - thumb_func_start sub_8093AAC -sub_8093AAC: @ 8093AAC - push {lr} - ldr r0, _08093AC0 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _08093AC8 - ldr r0, _08093AC4 @ =gUnknown_20397BC - movs r1, 0 - bl sub_8093AD0 - b _08093ACC - .align 2, 0 -_08093AC0: .4byte sIsMonBeingMoved -_08093AC4: .4byte gUnknown_20397BC -_08093AC8: - bl sub_8093A10 -_08093ACC: - pop {r0} - bx r0 - thumb_func_end sub_8093AAC - - thumb_func_start sub_8093AD0 -sub_8093AD0: @ 8093AD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - ldr r0, _08093B38 @ =sPSSData - mov r8, r0 - ldr r1, [r0] - ldr r3, _08093B3C @ =0x00000ce2 - adds r2, r1, r3 - movs r0, 0 - strh r0, [r2] - mov r9, r0 - mov r10, r0 - cmp r5, 0 - bne _08093BEC - adds r6, r4, 0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - mov r2, r8 - ldr r1, [r2] - movs r3, 0xCE - lsls r3, 4 - adds r1, r3 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _08093B16 - b _08093D0C -_08093B16: - adds r0, r4, 0 - movs r1, 0x4 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0 - beq _08093B44 - mov r1, r8 - ldr r0, [r1] - ldr r2, _08093B40 @ =0x00000ce9 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08093B56 - .align 2, 0 -_08093B38: .4byte sPSSData -_08093B3C: .4byte 0x00000ce2 -_08093B40: .4byte 0x00000ce9 -_08093B44: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, r8 - ldr r1, [r3] - ldr r2, _08093BCC @ =0x00000ce9 - adds r1, r2 - strb r0, [r1] -_08093B56: - ldr r4, _08093BD0 @ =sPSSData - ldr r2, [r4] - ldr r5, _08093BD4 @ =0x00000cea - adds r2, r5 - adds r0, r6, 0 - movs r1, 0x2 - bl GetMonData - ldr r0, [r4] - adds r0, r5 - bl StringGetEnd10 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [r4] - ldr r3, _08093BD8 @ =0x00000ce8 - adds r1, r3 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0x8 - bl GetMonData - ldr r1, [r4] - ldr r2, _08093BDC @ =0x00000ce7 - adds r1, r2 - strb r0, [r1] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - ldr r1, [r4] - ldr r3, _08093BE0 @ =0x00000cdc - adds r1, r3 - str r0, [r1] - adds r0, r6, 0 - bl GetMonFrontSpritePal - ldr r1, [r4] - ldr r2, _08093BE4 @ =0x00000cd8 - adds r1, r2 - str r0, [r1] - adds r0, r6, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0 - movs r1, 0xC - bl GetMonData - ldr r1, [r4] - ldr r3, _08093BE8 @ =0x00000ce2 - adds r1, r3 - strh r0, [r1] - b _08093CFC - .align 2, 0 -_08093BCC: .4byte 0x00000ce9 -_08093BD0: .4byte sPSSData -_08093BD4: .4byte 0x00000cea -_08093BD8: .4byte 0x00000ce8 -_08093BDC: .4byte 0x00000ce7 -_08093BE0: .4byte 0x00000cdc -_08093BE4: .4byte 0x00000cd8 -_08093BE8: .4byte 0x00000ce2 -_08093BEC: - cmp r5, 0x1 - beq _08093BF2 - b _08093CF0 -_08093BF2: - adds r7, r4, 0 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - mov r2, r8 - ldr r1, [r2] - movs r3, 0xCE - lsls r3, 4 - adds r1, r3 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _08093C10 - b _08093D0C -_08093C10: - adds r0, r7, 0 - movs r1, 0x1 - bl GetBoxMonData - mov r9, r0 - adds r0, r7, 0 - movs r1, 0x4 - bl GetBoxMonData - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0 - beq _08093C3C - mov r1, r8 - ldr r0, [r1] - ldr r2, _08093C38 @ =0x00000ce9 - adds r0, r2 - strb r5, [r0] - b _08093C4E - .align 2, 0 -_08093C38: .4byte 0x00000ce9 -_08093C3C: - adds r0, r7, 0 - movs r1, 0x2D - bl GetBoxMonData - mov r3, r8 - ldr r1, [r3] - ldr r2, _08093CD0 @ =0x00000ce9 - adds r1, r2 - strb r0, [r1] -_08093C4E: - ldr r5, _08093CD4 @ =sPSSData - ldr r2, [r5] - ldr r4, _08093CD8 @ =0x00000cea - adds r2, r4 - adds r0, r7, 0 - movs r1, 0x2 - bl GetBoxMonData - ldr r0, [r5] - adds r0, r4 - bl StringGetEnd10 - adds r0, r7, 0 - bl GetLevelFromBoxMonExp - ldr r1, [r5] - ldr r3, _08093CDC @ =0x00000ce8 - adds r1, r3 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetBoxMonData - ldr r1, [r5] - ldr r2, _08093CE0 @ =0x00000ce7 - adds r1, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r1, [r5] - ldr r6, _08093CE4 @ =0x00000cdc - adds r0, r1, r6 - str r2, [r0] - subs r4, 0xA - adds r1, r4 - ldrh r0, [r1] - mov r1, r9 - bl GetMonSpritePalFromSpeciesAndPersonality - ldr r1, [r5] - ldr r3, _08093CE8 @ =0x00000cd8 - adds r2, r1, r3 - str r0, [r2] - adds r4, r1, r4 - ldrh r0, [r4] - adds r1, r6 - ldr r1, [r1] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonData - ldr r1, [r5] - ldr r2, _08093CEC @ =0x00000ce2 - adds r1, r2 - strh r0, [r1] - b _08093CFC - .align 2, 0 -_08093CD0: .4byte 0x00000ce9 -_08093CD4: .4byte sPSSData -_08093CD8: .4byte 0x00000cea -_08093CDC: .4byte 0x00000ce8 -_08093CE0: .4byte 0x00000ce7 -_08093CE4: .4byte 0x00000cdc -_08093CE8: .4byte 0x00000cd8 -_08093CEC: .4byte 0x00000ce2 -_08093CF0: - movs r3, 0xCE - lsls r3, 4 - adds r0, r1, r3 - mov r1, r9 - strh r1, [r0] - strh r1, [r2] -_08093CFC: - ldr r0, _08093D50 @ =sPSSData - ldr r1, [r0] - movs r2, 0xCE - lsls r2, 4 - adds r0, r1, r2 - ldrh r2, [r0] - cmp r2, 0 - bne _08093D68 -_08093D0C: - ldr r4, _08093D50 @ =sPSSData - ldr r0, [r4] - ldr r3, _08093D54 @ =0x00000cea - adds r0, r3 - movs r1, 0 - movs r2, 0x5 - bl StringFill - ldr r0, [r4] - ldr r1, _08093D58 @ =0x00000cf5 - adds r0, r1 - movs r1, 0 - movs r2, 0x8 - bl StringFill - ldr r0, [r4] - ldr r2, _08093D5C @ =0x00000d19 - adds r0, r2 - movs r1, 0 - movs r2, 0x8 - bl StringFill - ldr r0, [r4] - ldr r3, _08093D60 @ =0x00000d3d - adds r0, r3 - movs r1, 0 - movs r2, 0x8 - bl StringFill - ldr r0, [r4] - ldr r1, _08093D64 @ =0x00000d61 - adds r0, r1 - b _08093DC6 - .align 2, 0 -_08093D50: .4byte sPSSData -_08093D54: .4byte 0x00000cea -_08093D58: .4byte 0x00000cf5 -_08093D5C: .4byte 0x00000d19 -_08093D60: .4byte 0x00000d3d -_08093D64: .4byte 0x00000d61 -_08093D68: - ldr r3, _08093D8C @ =0x00000ce9 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08093DE8 - mov r0, r10 - cmp r0, 0 - beq _08093D94 - ldr r2, _08093D90 @ =0x00000cf5 - adds r0, r1, r2 - adds r3, 0x1 - adds r1, r3 - movs r2, 0 - movs r3, 0x5 - bl StringCopyPadded - b _08093DA2 - .align 2, 0 -_08093D8C: .4byte 0x00000ce9 -_08093D90: .4byte 0x00000cf5 -_08093D94: - ldr r2, _08093DD0 @ =0x00000cf5 - adds r0, r1, r2 - ldr r1, _08093DD4 @ =gText_EggNickname - movs r2, 0 - movs r3, 0x8 - bl StringCopyPadded -_08093DA2: - ldr r4, _08093DD8 @ =sPSSData - ldr r0, [r4] - ldr r3, _08093DDC @ =0x00000d19 - adds r0, r3 - movs r1, 0 - movs r2, 0x8 - bl StringFill - ldr r0, [r4] - ldr r1, _08093DE0 @ =0x00000d3d - adds r0, r1 - movs r1, 0 - movs r2, 0x8 - bl StringFill - ldr r0, [r4] - ldr r2, _08093DE4 @ =0x00000d61 - adds r0, r2 -_08093DC6: - movs r1, 0 - movs r2, 0x8 - bl StringFill - b _08093F84 - .align 2, 0 -_08093DD0: .4byte 0x00000cf5 -_08093DD4: .4byte gText_EggNickname -_08093DD8: .4byte sPSSData -_08093DDC: .4byte 0x00000d19 -_08093DE0: .4byte 0x00000d3d -_08093DE4: .4byte 0x00000d61 -_08093DE8: - cmp r2, 0x1D - beq _08093DF0 - cmp r2, 0x20 - bne _08093DF4 -_08093DF0: - movs r3, 0xFF - mov r9, r3 -_08093DF4: - ldr r4, _08093E78 @ =sPSSData - ldr r1, [r4] - ldr r2, _08093E7C @ =0x00000cf5 - adds r0, r1, r2 - ldr r3, _08093E80 @ =0x00000cea - adds r1, r3 - movs r2, 0 - movs r3, 0x5 - bl StringCopyPadded - ldr r1, [r4] - ldr r0, _08093E84 @ =0x00000d19 - adds r2, r1, r0 - movs r0, 0xBA - strb r0, [r2] - ldr r3, _08093E88 @ =0x00000d1a - adds r2, r1, r3 - ldr r0, [r4] - movs r1, 0xCE - lsls r1, 4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, _08093E8C @ =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - movs r2, 0 - movs r3, 0x5 - bl StringCopyPadded - ldr r4, [r4] - ldr r3, _08093E90 @ =0x00000d3d - adds r2, r4, r3 - movs r0, 0xFC - strb r0, [r2] - ldr r0, _08093E94 @ =0x00000d3e - adds r2, r4, r0 - movs r0, 0x4 - strb r0, [r2] - ldr r1, _08093E98 @ =0x00000d3f - adds r2, r4, r1 - mov r3, r9 - cmp r3, 0 - beq _08093EA4 - cmp r3, 0xFE - beq _08093ED0 - movs r0, 0x2 - strb r0, [r2] - movs r0, 0xD4 - lsls r0, 4 - adds r2, r4, r0 - movs r0, 0x1 - strb r0, [r2] - adds r1, 0x2 - adds r2, r4, r1 - movs r0, 0x3 - strb r0, [r2] - ldr r3, _08093E9C @ =0x00000d42 - adds r2, r4, r3 - movs r0, 0 - strb r0, [r2] - ldr r0, _08093EA0 @ =0x00000d43 - adds r2, r4, r0 - b _08093EF2 - .align 2, 0 -_08093E78: .4byte sPSSData -_08093E7C: .4byte 0x00000cf5 -_08093E80: .4byte 0x00000cea -_08093E84: .4byte 0x00000d19 -_08093E88: .4byte 0x00000d1a -_08093E8C: .4byte gSpeciesNames -_08093E90: .4byte 0x00000d3d -_08093E94: .4byte 0x00000d3e -_08093E98: .4byte 0x00000d3f -_08093E9C: .4byte 0x00000d42 -_08093EA0: .4byte 0x00000d43 -_08093EA4: - strb r0, [r2] - movs r1, 0xD4 - lsls r1, 4 - adds r2, r4, r1 - movs r0, 0x1 - strb r0, [r2] - ldr r3, _08093EC8 @ =0x00000d41 - adds r2, r4, r3 - movs r0, 0x5 - strb r0, [r2] - ldr r0, _08093ECC @ =0x00000d42 - adds r2, r4, r0 - movs r0, 0xB5 - strb r0, [r2] - adds r1, 0x3 - adds r2, r4, r1 - b _08093EF2 - .align 2, 0 -_08093EC8: .4byte 0x00000d41 -_08093ECC: .4byte 0x00000d42 -_08093ED0: - movs r0, 0x6 - strb r0, [r2] - movs r3, 0xD4 - lsls r3, 4 - adds r2, r4, r3 - movs r0, 0x1 - strb r0, [r2] - ldr r0, _08093F60 @ =0x00000d41 - adds r2, r4, r0 - movs r0, 0x7 - strb r0, [r2] - ldr r1, _08093F64 @ =0x00000d42 - adds r2, r4, r1 - movs r0, 0xB6 - strb r0, [r2] - adds r3, 0x3 - adds r2, r4, r3 -_08093EF2: - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x4 - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x2 - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x1 - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x3 - strb r0, [r2] - adds r2, 0x1 - movs r5, 0 - strb r5, [r2] - adds r2, 0x1 - movs r0, 0xF9 - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x5 - strb r0, [r2] - adds r2, 0x1 - ldr r4, _08093F68 @ =sPSSData - ldr r0, [r4] - ldr r1, _08093F6C @ =0x00000ce8 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - strb r5, [r2] - movs r0, 0xFF - strb r0, [r2, 0x1] - ldr r4, [r4] - ldr r2, _08093F70 @ =0x00000ce2 - adds r1, r4, r2 - ldrh r0, [r1] - cmp r0, 0 - beq _08093F78 - ldr r3, _08093F74 @ =0x00000d61 - adds r4, r3 - bl ItemId_GetName - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x8 - bl StringCopyPadded - b _08093F84 - .align 2, 0 -_08093F60: .4byte 0x00000d41 -_08093F64: .4byte 0x00000d42 -_08093F68: .4byte sPSSData -_08093F6C: .4byte 0x00000ce8 -_08093F70: .4byte 0x00000ce2 -_08093F74: .4byte 0x00000d61 -_08093F78: - ldr r1, _08093F94 @ =0x00000d61 - adds r0, r4, r1 - movs r1, 0 - movs r2, 0x8 - bl StringFill -_08093F84: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08093F94: .4byte 0x00000d61 - thumb_func_end sub_8093AD0 - - thumb_func_start sub_8093F98 -sub_8093F98: @ 8093F98 - push {lr} - ldr r0, _08093FB8 @ =sPSSData - ldr r0, [r0] - ldr r1, _08093FBC @ =0x000021ef - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08093FC0 - cmp r0, 0x1 - ble _08093FB0 - cmp r0, 0x2 - beq _08093FC6 -_08093FB0: - bl sub_8093FD4 - b _08093FCA - .align 2, 0 -_08093FB8: .4byte sPSSData -_08093FBC: .4byte 0x000021ef -_08093FC0: - bl sub_8094240 - b _08093FCA -_08093FC6: - bl sub_8094378 -_08093FCA: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8093F98 - - thumb_func_start sub_8093FD4 -sub_8093FD4: @ 8093FD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08094058 @ =sBoxCursorArea - ldrb r0, [r0] - mov r8, r0 - ldr r2, _0809405C @ =sBoxCursorPosition - ldrb r4, [r2] - ldr r5, _08094060 @ =sPSSData - ldr r0, [r5] - ldr r1, _08094064 @ =0x00000cce - mov r10, r1 - add r0, r10 - movs r1, 0 - strb r1, [r0] - ldr r0, [r5] - ldr r7, _08094068 @ =0x00000ccf - adds r0, r7 - strb r1, [r0] - ldr r0, [r5] - ldr r3, _0809406C @ =0x00000cd3 - mov r9, r3 - add r0, r9 - strb r1, [r0] - ldr r6, _08094070 @ =gMain - ldrh r1, [r6, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _08094018 - b _08094208 -_08094018: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08094074 - movs r6, 0x1 - lsls r0, r4, 24 - movs r1, 0xC0 - lsls r1, 19 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - bgt _08094034 - b _08094224 -_08094034: - movs r2, 0x3 - mov r8, r2 - subs r0, 0x1E - lsls r0, 24 - asrs r0, 24 - movs r1, 0x3 - bl __divsi3 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r5] - add r0, r10 - strb r6, [r0] - ldr r0, [r5] - add r0, r9 - strb r6, [r0] - b _08094224 - .align 2, 0 -_08094058: .4byte sBoxCursorArea -_0809405C: .4byte sBoxCursorPosition -_08094060: .4byte sPSSData -_08094064: .4byte 0x00000cce -_08094068: .4byte 0x00000ccf -_0809406C: .4byte 0x00000cd3 -_08094070: .4byte gMain -_08094074: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080940AA - movs r6, 0x1 - movs r0, 0 - ldrsb r0, [r3, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _08094096 - lsls r0, r4, 24 - movs r3, 0xFF - lsls r3, 24 - b _08094218 -_08094096: - ldr r0, [r5] - adds r0, r7 - movs r1, 0xFF - strb r1, [r0] - lsls r0, r4, 24 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r4, r0, 24 - b _08094224 -_080940AA: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080940DE - movs r6, 0x1 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _080940D0 - lsls r0, r4, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r4, r0, 24 - b _08094224 -_080940D0: - ldr r0, [r5] - adds r0, r7 - strb r6, [r0] - lsls r0, r4, 24 - movs r3, 0xFB - lsls r3, 24 - b _08094218 -_080940DE: - ldrh r1, [r6, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080940EC - movs r6, 0x1 - b _0809421E -_080940EC: - movs r4, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080941B0 - bl sub_8094924 - lsls r0, 24 - cmp r0, 0 - beq _080941B0 - ldr r0, _0809410C @ =sCanOnlyMove - ldrb r0, [r0] - cmp r0, 0 - bne _08094110 - movs r0, 0x8 - b _08094232 - .align 2, 0 -_0809410C: .4byte sCanOnlyMove -_08094110: - ldr r1, [r5] - ldrb r0, [r1, 0x1] - cmp r0, 0x2 - bne _08094120 - ldr r0, _0809413C @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0x1 - bne _080941A0 -_08094120: - movs r0, 0 - bl sub_8094E50 - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bhi _080941B0 - lsls r0, 2 - ldr r1, _08094140 @ =_08094144 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809413C: .4byte sIsMonBeingMoved -_08094140: .4byte _08094144 - .align 2, 0 -_08094144: - .4byte _08094180 - .4byte _08094184 - .4byte _08094188 - .4byte _0809418C - .4byte _08094190 - .4byte _080941B0 - .4byte _080941B0 - .4byte _080941B0 - .4byte _080941B0 - .4byte _080941B0 - .4byte _080941B0 - .4byte _08094194 - .4byte _08094198 - .4byte _080941B0 - .4byte _0809419C -_08094180: - movs r0, 0xB - b _08094232 -_08094184: - movs r0, 0xC - b _08094232 -_08094188: - movs r0, 0xD - b _08094232 -_0809418C: - movs r0, 0xE - b _08094232 -_08094190: - movs r0, 0xF - b _08094232 -_08094194: - movs r0, 0x10 - b _08094232 -_08094198: - movs r0, 0x11 - b _08094232 -_0809419C: - movs r0, 0x12 - b _08094232 -_080941A0: - ldr r2, _080941AC @ =0x000021ef - adds r0, r1, r2 - strb r4, [r0] - movs r0, 0x14 - b _08094232 - .align 2, 0 -_080941AC: .4byte 0x000021ef -_080941B0: - ldr r2, _080941C0 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080941C4 - movs r0, 0x13 - b _08094232 - .align 2, 0 -_080941C0: .4byte gMain -_080941C4: - ldr r0, _080941E0 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080941F2 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080941E4 - movs r0, 0xA - b _08094232 - .align 2, 0 -_080941E0: .4byte gSaveBlock2Ptr -_080941E4: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080941F2 - movs r0, 0x9 - b _08094232 -_080941F2: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08094204 - bl sub_8094C84 - movs r0, 0 - b _08094232 -_08094204: - movs r6, 0 - b _08094230 -_08094208: - movs r6, 0x1 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x5 - ble _0809421E - lsls r0, r4, 24 - movs r3, 0xFA - lsls r3, 24 -_08094218: - adds r0, r3 - lsrs r4, r0, 24 - b _08094224 -_0809421E: - movs r0, 0x2 - mov r8, r0 - movs r4, 0 -_08094224: - cmp r6, 0 - beq _08094230 - mov r0, r8 - adds r1, r4, 0 - bl sub_80927E8 -_08094230: - adds r0, r6, 0 -_08094232: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8093FD4 - - thumb_func_start sub_8094240 -sub_8094240: @ 8094240 - push {r4,lr} - ldr r1, _08094270 @ =gMain - ldrh r0, [r1, 0x2C] - movs r4, 0x1 - ands r4, r0 - cmp r4, 0 - beq _080942F4 - ldrh r1, [r1, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08094278 - ldr r4, _08094274 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x6 - bl __divsi3 - lsls r0, 24 - cmp r0, 0 - beq _080942EC - ldrb r1, [r4] - subs r1, 0x6 - b _080942DA - .align 2, 0 -_08094270: .4byte gMain -_08094274: .4byte sBoxCursorPosition -_08094278: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08094298 - ldr r1, _08094294 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r1, r0] - adds r0, 0x6 - cmp r0, 0x1D - bgt _080942EC - ldrb r1, [r1] - adds r1, 0x6 - b _080942DA - .align 2, 0 -_08094294: .4byte sBoxCursorPosition -_08094298: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080942BC - ldr r4, _080942B8 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _080942EC - ldrb r1, [r4] - subs r1, 0x1 - b _080942DA - .align 2, 0 -_080942B8: .4byte sBoxCursorPosition -_080942BC: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080942F0 - ldr r4, _080942E8 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r4, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _080942EC - ldrb r1, [r4] - adds r1, 0x1 -_080942DA: - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_80927E8 - movs r0, 0x15 - b _08094364 - .align 2, 0 -_080942E8: .4byte sBoxCursorPosition -_080942EC: - movs r0, 0x18 - b _08094364 -_080942F0: - movs r0, 0 - b _08094364 -_080942F4: - bl sub_8095AA0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08094330 @ =sBoxCursorPosition - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - beq _08094344 - ldr r2, _08094334 @ =sIsMonBeingMoved - ldr r0, _08094338 @ =sPSSData - ldr r1, [r0] - movs r3, 0xCE - lsls r3, 4 - adds r0, r1, r3 - ldrh r0, [r0] - negs r0, r0 - lsrs r0, 31 - strb r0, [r2] - ldr r0, _0809433C @ =0x000021ef - adds r1, r0 - movs r0, 0x2 - strb r0, [r1] - bl StorageGetCurrentBox - ldr r1, _08094340 @ =sMovingMonOrigBoxId - strb r0, [r1] - movs r0, 0x17 - b _08094364 - .align 2, 0 -_08094330: .4byte sBoxCursorPosition -_08094334: .4byte sIsMonBeingMoved -_08094338: .4byte sPSSData -_0809433C: .4byte 0x000021ef -_08094340: .4byte sMovingMonOrigBoxId -_08094344: - ldr r1, _0809436C @ =sPSSData - ldr r0, [r1] - ldr r2, _08094370 @ =0x000021ef - adds r0, r2 - strb r4, [r0] - ldr r0, [r1] - ldr r3, _08094374 @ =0x00000cb4 - adds r0, r3 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0x16 -_08094364: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0809436C: .4byte sPSSData -_08094370: .4byte 0x000021ef -_08094374: .4byte 0x00000cb4 - thumb_func_end sub_8094240 - - thumb_func_start sub_8094378 -sub_8094378: @ 8094378 - push {r4,lr} - ldr r2, _0809439C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080943A4 - movs r0, 0 - bl sub_8095474 - lsls r0, 24 - cmp r0, 0 - beq _08094450 - ldr r0, _080943A0 @ =sBoxCursorPosition - ldrb r1, [r0] - subs r1, 0x6 - b _08094402 - .align 2, 0 -_0809439C: .4byte gMain -_080943A0: .4byte sBoxCursorPosition -_080943A4: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080943C4 - movs r0, 0x1 - bl sub_8095474 - lsls r0, 24 - cmp r0, 0 - beq _08094450 - ldr r0, _080943C0 @ =sBoxCursorPosition - ldrb r1, [r0] - adds r1, 0x6 - b _08094402 - .align 2, 0 -_080943C0: .4byte sBoxCursorPosition -_080943C4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080943E4 - movs r0, 0x2 - bl sub_8095474 - lsls r0, 24 - cmp r0, 0 - beq _0809446A - ldr r0, _080943E0 @ =sBoxCursorPosition - ldrb r1, [r0] - subs r1, 0x1 - b _08094402 - .align 2, 0 -_080943E0: .4byte sBoxCursorPosition -_080943E4: - movs r0, 0x10 - ands r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08094414 - movs r0, 0x3 - bl sub_8095474 - lsls r0, 24 - cmp r0, 0 - beq _0809447E - ldr r0, _08094410 @ =sBoxCursorPosition - ldrb r1, [r0] - adds r1, 0x1 -_08094402: - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_80927E8 - movs r0, 0x19 - b _08094484 - .align 2, 0 -_08094410: .4byte sBoxCursorPosition -_08094414: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08094448 - bl sub_8095ABC - lsls r0, 24 - cmp r0, 0 - beq _08094450 - ldr r0, _0809443C @ =sIsMonBeingMoved - strb r4, [r0] - ldr r0, _08094440 @ =sPSSData - ldr r0, [r0] - ldr r1, _08094444 @ =0x000021ef - adds r0, r1 - strb r4, [r0] - movs r0, 0x1A - b _08094484 - .align 2, 0 -_0809443C: .4byte sIsMonBeingMoved -_08094440: .4byte sPSSData -_08094444: .4byte 0x000021ef -_08094448: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08094454 -_08094450: - movs r0, 0x18 - b _08094484 -_08094454: - ldr r0, _08094470 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _08094482 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _08094474 -_0809446A: - movs r0, 0xA - b _08094484 - .align 2, 0 -_08094470: .4byte gSaveBlock2Ptr -_08094474: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08094482 -_0809447E: - movs r0, 0x9 - b _08094484 -_08094482: - movs r0, 0 -_08094484: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8094378 - - thumb_func_start sub_809448C -sub_809448C: @ 809448C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080944FC @ =sBoxCursorArea - ldrb r0, [r0] - mov r9, r0 - ldr r6, _08094500 @ =sBoxCursorPosition - ldrb r4, [r6] - ldr r2, _08094504 @ =sPSSData - ldr r0, [r2] - ldr r1, _08094508 @ =0x00000ccf - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _0809450C @ =0x00000cce - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - adds r3, 0x5 - adds r0, r3 - strb r1, [r0] - mov r8, r1 - movs r7, 0 - ldr r1, _08094510 @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - adds r5, r6, 0 - mov r12, r1 - cmp r0, 0 - beq _080944D0 - b _08094670 -_080944D0: - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _08094514 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x6 - ble _080944EA - movs r4, 0 -_080944EA: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r5, r1] - cmp r0, r1 - bne _080944F8 - b _0809468E -_080944F8: - movs r7, 0x1 - b _08094692 - .align 2, 0 -_080944FC: .4byte sBoxCursorArea -_08094500: .4byte sBoxCursorPosition -_08094504: .4byte sPSSData -_08094508: .4byte 0x00000ccf -_0809450C: .4byte 0x00000cce -_08094510: .4byte gMain -_08094514: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _08094538 - ldrb r1, [r5] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - beq _08094538 - movs r7, 0x1 - ldr r0, [r2] - ldr r2, _08094534 @ =0x00000cd2 - adds r0, r2 - strb r1, [r0] - movs r4, 0 - b _0809468E - .align 2, 0 -_08094534: .4byte 0x00000cd2 -_08094538: - mov r3, r12 - ldrh r1, [r3, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08094566 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0 - bne _0809455C - movs r7, 0x1 - ldr r0, [r2] - ldr r1, _08094558 @ =0x00000cd2 - adds r0, r1 - ldrb r4, [r0] - b _0809468E - .align 2, 0 -_08094558: .4byte 0x00000cd2 -_0809455C: - movs r7, 0x6 - movs r2, 0 - mov r9, r2 - movs r4, 0 - b _0809468E -_08094566: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08094624 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x6 - bne _0809458C - ldr r0, [r2] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08094586 - movs r0, 0x4 - b _080946A0 -_08094586: - movs r0, 0x1 - mov r8, r0 - b _08094624 -_0809458C: - bl sub_8094924 - lsls r0, 24 - cmp r0, 0 - beq _08094624 - ldr r0, _080945A4 @ =sCanOnlyMove - ldrb r0, [r0] - cmp r0, 0 - bne _080945A8 - movs r0, 0x8 - b _080946A0 - .align 2, 0 -_080945A4: .4byte sCanOnlyMove -_080945A8: - movs r0, 0 - bl sub_8094E50 - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bhi _08094624 - lsls r0, 2 - ldr r1, _080945C4 @ =_080945C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080945C4: .4byte _080945C8 - .align 2, 0 -_080945C8: - .4byte _08094604 - .4byte _08094608 - .4byte _0809460C - .4byte _08094610 - .4byte _08094614 - .4byte _08094624 - .4byte _08094624 - .4byte _08094624 - .4byte _08094624 - .4byte _08094624 - .4byte _08094624 - .4byte _08094618 - .4byte _0809461C - .4byte _08094624 - .4byte _08094620 -_08094604: - movs r0, 0xB - b _080946A0 -_08094608: - movs r0, 0xC - b _080946A0 -_0809460C: - movs r0, 0xD - b _080946A0 -_08094610: - movs r0, 0xE - b _080946A0 -_08094614: - movs r0, 0xF - b _080946A0 -_08094618: - movs r0, 0x10 - b _080946A0 -_0809461C: - movs r0, 0x11 - b _080946A0 -_08094620: - movs r0, 0x12 - b _080946A0 -_08094624: - ldr r2, _08094640 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - mov r12, r2 - cmp r0, 0 - beq _0809464C - ldr r0, _08094644 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - bne _08094648 - movs r0, 0x13 - b _080946A0 - .align 2, 0 -_08094640: .4byte gMain -_08094644: .4byte sPSSData -_08094648: - movs r1, 0x1 - mov r8, r1 -_0809464C: - mov r2, r8 - cmp r2, 0 - beq _0809465C - movs r7, 0x6 - movs r3, 0 - mov r9, r3 - movs r4, 0 - b _0809468E -_0809465C: - mov r0, r12 - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809468E - bl sub_8094C84 - movs r0, 0 - b _080946A0 -_08094670: - lsls r0, r4, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r4, r0, 24 - cmp r0, 0 - bge _08094680 - movs r4, 0x6 -_08094680: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - beq _0809468E - movs r7, 0x1 -_0809468E: - cmp r7, 0 - beq _0809469E -_08094692: - cmp r7, 0x6 - beq _0809469E - mov r0, r9 - adds r1, r4, 0 - bl sub_80927E8 -_0809469E: - adds r0, r7, 0 -_080946A0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809448C - - thumb_func_start sub_80946AC -sub_80946AC: @ 80946AC - push {r4-r6,lr} - ldr r3, _080946E8 @ =sPSSData - ldr r0, [r3] - ldr r1, _080946EC @ =0x00000ccf - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r3] - ldr r2, _080946F0 @ =0x00000cce - adds r0, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r5, _080946F4 @ =0x00000cd3 - adds r0, r5 - strb r1, [r0] - ldr r1, _080946F8 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08094772 - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080946FC - movs r4, 0x1 - movs r1, 0 - movs r6, 0x2 - b _0809477E - .align 2, 0 -_080946E8: .4byte sPSSData -_080946EC: .4byte 0x00000ccf -_080946F0: .4byte 0x00000cce -_080946F4: .4byte 0x00000cd3 -_080946F8: .4byte gMain -_080946FC: - ldrh r2, [r1, 0x2C] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _08094722 - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _08094736 - ldr r0, _08094728 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809473A - movs r0, 0x80 - lsls r0, 2 - ands r0, r2 - cmp r0, 0 - beq _0809472C -_08094722: - movs r0, 0xA - b _0809479A - .align 2, 0 -_08094728: .4byte gSaveBlock2Ptr -_0809472C: - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0809473A -_08094736: - movs r0, 0x9 - b _0809479A -_0809473A: - ldrh r1, [r1, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08094752 - movs r0, 0 - bl sub_80920FC - bl sub_8094900 - movs r0, 0x7 - b _0809479A -_08094752: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809475E - movs r0, 0x13 - b _0809479A -_0809475E: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809476E - bl sub_8094C84 - movs r0, 0 - b _0809479A -_0809476E: - movs r4, 0 - b _08094798 -_08094772: - movs r4, 0x1 - movs r1, 0x3 - movs r6, 0 - ldr r0, [r3] - adds r0, r5 - strb r4, [r0] -_0809477E: - cmp r4, 0 - beq _08094798 - lsls r5, r1, 24 - cmp r1, 0x2 - beq _0809478E - movs r0, 0 - bl sub_80920FC -_0809478E: - lsrs r0, r5, 24 - lsls r1, r6, 24 - lsrs r1, 24 - bl sub_80927E8 -_08094798: - adds r0, r4, 0 -_0809479A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80946AC - - thumb_func_start sub_80947A0 -sub_80947A0: @ 80947A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _080947F0 @ =sBoxCursorArea - ldrb r0, [r0] - mov r8, r0 - ldr r0, _080947F4 @ =sBoxCursorPosition - mov r12, r0 - ldrb r2, [r0] - ldr r3, _080947F8 @ =sPSSData - ldr r0, [r3] - ldr r1, _080947FC @ =0x00000ccf - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r3] - ldr r6, _08094800 @ =0x00000cce - adds r0, r6 - strb r1, [r0] - ldr r0, [r3] - ldr r5, _08094804 @ =0x00000cd3 - adds r0, r5 - strb r1, [r0] - ldr r7, _08094808 @ =gMain - ldrh r1, [r7, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r4, r3, 0 - cmp r0, 0 - bne _0809487A - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - beq _0809480C - movs r7, 0x1 - movs r0, 0x2 - mov r8, r0 - movs r2, 0 - ldr r0, [r4] - b _08094898 - .align 2, 0 -_080947F0: .4byte sBoxCursorArea -_080947F4: .4byte sBoxCursorPosition -_080947F8: .4byte sPSSData -_080947FC: .4byte 0x00000ccf -_08094800: .4byte 0x00000cce -_08094804: .4byte 0x00000cd3 -_08094808: .4byte gMain -_0809480C: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08094828 - movs r7, 0x1 - lsls r0, r2, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r2, r0, 24 - cmp r0, 0 - bge _0809489C - movs r2, 0x1 - b _0809489C -_08094828: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08094846 - movs r7, 0x1 - lsls r0, r2, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x1 - ble _0809489C - movs r2, 0 - b _0809489C -_08094846: - ldrh r1, [r7, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809485A - movs r0, 0x4 - cmp r2, 0 - bne _080948AA - movs r0, 0x5 - b _080948AA -_0809485A: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08094866 - movs r0, 0x13 - b _080948AA -_08094866: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08094876 - bl sub_8094C84 - movs r0, 0 - b _080948AA -_08094876: - movs r7, 0 - b _080948A8 -_0809487A: - movs r7, 0x1 - movs r0, 0 - mov r8, r0 - ldr r0, [r3] - adds r0, r6 - movs r1, 0xFF - strb r1, [r0] - mov r1, r12 - movs r0, 0 - ldrsb r0, [r1, r0] - movs r2, 0x1D - cmp r0, 0 - bne _08094896 - movs r2, 0x18 -_08094896: - ldr r0, [r3] -_08094898: - adds r0, r5 - strb r7, [r0] -_0809489C: - cmp r7, 0 - beq _080948A8 - mov r0, r8 - adds r1, r2, 0 - bl sub_80927E8 -_080948A8: - adds r0, r7, 0 -_080948AA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80947A0 - - thumb_func_start sub_80948B4 -sub_80948B4: @ 80948B4 - push {r4,r5,lr} - movs r3, 0 - ldr r0, _080948E0 @ =gUnknown_83D3478 - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _080948F8 - ldr r5, _080948E4 @ =sBoxCursorArea -_080948C4: - lsls r0, r3, 3 - adds r2, r0, r4 - movs r1, 0x4 - ldrsb r1, [r2, r1] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r1, r0 - bne _080948E8 - ldr r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - b _080948FA - .align 2, 0 -_080948E0: .4byte gUnknown_83D3478 -_080948E4: .4byte sBoxCursorArea -_080948E8: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - lsls r0, r3, 3 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - bne _080948C4 -_080948F8: - movs r0, 0 -_080948FA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80948B4 - - thumb_func_start sub_8094900 -sub_8094900: @ 8094900 - push {lr} - bl sub_8094DA8 - movs r0, 0x9 - bl sub_8094DEC - movs r0, 0xA - bl sub_8094DEC - movs r0, 0xB - bl sub_8094DEC - movs r0, 0 - bl sub_8094DEC - pop {r0} - bx r0 - thumb_func_end sub_8094900 - - thumb_func_start sub_8094924 -sub_8094924: @ 8094924 - push {lr} - bl sub_8094DA8 - ldr r0, _0809493C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08094940 - bl sub_8094A0C - b _08094944 - .align 2, 0 -_0809493C: .4byte sPSSData -_08094940: - bl sub_809494C -_08094944: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8094924 - - thumb_func_start sub_809494C -sub_809494C: @ 809494C - push {lr} - bl sub_8092458 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0809496C @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _08094976 - cmp r0, 0x1 - bgt _08094970 - cmp r0, 0 - beq _08094982 - b _080949BC - .align 2, 0 -_0809496C: .4byte sPSSData -_08094970: - cmp r0, 0x2 - beq _0809498E - b _080949BC -_08094976: - cmp r1, 0 - beq _080949BC - movs r0, 0x1 - bl sub_8094DEC - b _080949C0 -_08094982: - cmp r1, 0 - beq _080949BC - movs r0, 0x2 - bl sub_8094DEC - b _080949C0 -_0809498E: - ldr r0, _080949A4 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _080949B0 - cmp r1, 0 - beq _080949A8 - movs r0, 0x4 - bl sub_8094DEC - b _080949C0 - .align 2, 0 -_080949A4: .4byte sIsMonBeingMoved -_080949A8: - movs r0, 0x5 - bl sub_8094DEC - b _080949C0 -_080949B0: - cmp r1, 0 - beq _080949BC - movs r0, 0x3 - bl sub_8094DEC - b _080949C0 -_080949BC: - movs r0, 0 - b _08094A06 -_080949C0: - movs r0, 0x6 - bl sub_8094DEC - ldr r0, _080949E4 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _080949F2 - ldr r0, _080949E8 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080949EC - movs r0, 0x2 - bl sub_8094DEC - b _080949F2 - .align 2, 0 -_080949E4: .4byte sPSSData -_080949E8: .4byte sBoxCursorArea -_080949EC: - movs r0, 0x1 - bl sub_8094DEC -_080949F2: - movs r0, 0x8 - bl sub_8094DEC - movs r0, 0x7 - bl sub_8094DEC - movs r0, 0 - bl sub_8094DEC - movs r0, 0x1 -_08094A06: - pop {r1} - bx r1 - thumb_func_end sub_809494C - - thumb_func_start sub_8094A0C -sub_8094A0C: @ 8094A0C - push {r4,r5,lr} - ldr r4, _08094A48 @ =sPSSData - ldr r0, [r4] - movs r5, 0xCE - lsls r5, 4 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - beq _08094A9E - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - bne _08094A70 - ldr r2, [r4] - ldr r0, _08094A4C @ =0x00000ce2 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _08094A50 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08094A9E - movs r0, 0xE - bl sub_8094DEC - b _08094AA8 - .align 2, 0 -_08094A48: .4byte sPSSData -_08094A4C: .4byte 0x00000ce2 -_08094A50: - ldrh r0, [r1] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _08094A68 - movs r0, 0xC - bl sub_8094DEC - movs r0, 0x10 - bl sub_8094DEC -_08094A68: - movs r0, 0x11 - bl sub_8094DEC - b _08094AA8 -_08094A70: - ldr r2, [r4] - ldr r0, _08094A8C @ =0x00000ce2 - adds r1, r2, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _08094A90 - adds r0, r2, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08094A9E - movs r0, 0xD - bl sub_8094DEC - b _08094AA8 - .align 2, 0 -_08094A8C: .4byte 0x00000ce2 -_08094A90: - ldrh r0, [r1] - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094AA2 -_08094A9E: - movs r0, 0 - b _08094AB0 -_08094AA2: - movs r0, 0xF - bl sub_8094DEC -_08094AA8: - movs r0, 0 - bl sub_8094DEC - movs r0, 0x1 -_08094AB0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094A0C - - thumb_func_start sub_8094AB8 -sub_8094AB8: @ 8094AB8 - ldr r1, _08094AD4 @ =sPSSData - ldr r1, [r1] - movs r2, 0xCB - lsls r2, 4 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r1, [r1] - ldrh r1, [r1, 0x22] - adds r1, 0x14 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_08094AD4: .4byte sPSSData - thumb_func_end sub_8094AB8 - - thumb_func_start sub_8094AD8 -sub_8094AD8: @ 8094AD8 - push {r4-r6,lr} - sub sp, 0x2C - mov r1, sp - ldr r0, _08094BA4 @ =gUnknown_83D34A0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - add r4, sp, 0x18 - adds r1, r4, 0 - ldr r0, _08094BA8 @ =gUnknown_83D34B8 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldr r0, [r0] - str r0, [r1] - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - ldr r0, _08094BAC @ =0x0000daca - bl IndexOfSpritePaletteTag - ldr r6, _08094BB0 @ =sPSSData - ldr r1, [r6] - ldr r4, _08094BB4 @ =0x00000cd4 - adds r1, r4 - strb r0, [r1] - ldr r0, _08094BB8 @ =0x0000dac7 - bl IndexOfSpritePaletteTag - ldr r1, [r6] - ldr r5, _08094BBC @ =0x00000cd5 - adds r1, r5 - strb r0, [r1] - ldr r0, _08094BC0 @ =sBoxCursorArea - ldrb r0, [r0] - ldr r1, _08094BC4 @ =sBoxCursorPosition - ldrb r1, [r1] - add r4, sp, 0x28 - mov r5, sp - adds r5, 0x2A - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_8092398 - ldr r0, _08094BC8 @ =gUnknown_83D350C - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0 - ldrsh r2, [r5, r3] - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08094BD8 - ldr r2, [r6] - movs r4, 0xCB - lsls r4, 4 - adds r3, r2, r4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08094BCC @ =gSprites - adds r1, r0 - str r1, [r3] - ldr r0, _08094BD0 @ =sCanOnlyMove - ldr r5, _08094BB4 @ =0x00000cd4 - adds r2, r5 - ldrb r0, [r0] - adds r2, r0 - ldrb r2, [r2] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r6] - adds r0, r4 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, _08094BD4 @ =sIsMonBeingMoved - ldrb r0, [r0] - cmp r0, 0 - beq _08094BE4 - ldr r0, [r6] - adds r0, r4 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - b _08094BE4 - .align 2, 0 -_08094BA4: .4byte gUnknown_83D34A0 -_08094BA8: .4byte gUnknown_83D34B8 -_08094BAC: .4byte 0x0000daca -_08094BB0: .4byte sPSSData -_08094BB4: .4byte 0x00000cd4 -_08094BB8: .4byte 0x0000dac7 -_08094BBC: .4byte 0x00000cd5 -_08094BC0: .4byte sBoxCursorArea -_08094BC4: .4byte sBoxCursorPosition -_08094BC8: .4byte gUnknown_83D350C -_08094BCC: .4byte gSprites -_08094BD0: .4byte sCanOnlyMove -_08094BD4: .4byte sIsMonBeingMoved -_08094BD8: - ldr r0, [r6] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_08094BE4: - ldr r0, _08094BF8 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08094BFC - movs r3, 0xD - movs r4, 0x1 - b _08094C00 - .align 2, 0 -_08094BF8: .4byte sBoxCursorArea -_08094BFC: - movs r3, 0x15 - movs r4, 0x2 -_08094C00: - ldr r0, _08094C54 @ =gUnknown_83D3524 - movs r1, 0 - movs r2, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08094C68 - ldr r5, _08094C58 @ =sPSSData - ldr r2, [r5] - ldr r3, _08094C5C @ =0x00000cb4 - adds r2, r3 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08094C60 @ =gSprites - adds r1, r0 - str r1, [r2] - lsls r3, r4, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r0, _08094C64 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08094C74 - ldr r0, [r5] - ldr r4, _08094C5C @ =0x00000cb4 - adds r0, r4 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - b _08094C74 - .align 2, 0 -_08094C54: .4byte gUnknown_83D3524 -_08094C58: .4byte sPSSData -_08094C5C: .4byte 0x00000cb4 -_08094C60: .4byte gSprites -_08094C64: .4byte sBoxCursorArea -_08094C68: - ldr r0, _08094C7C @ =sPSSData - ldr r0, [r0] - ldr r5, _08094C80 @ =0x00000cb4 - adds r0, r5 - movs r1, 0 - str r1, [r0] -_08094C74: - add sp, 0x2C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08094C7C: .4byte sPSSData -_08094C80: .4byte 0x00000cb4 - thumb_func_end sub_8094AD8 - - thumb_func_start sub_8094C84 -sub_8094C84: @ 8094C84 - push {lr} - ldr r2, _08094CBC @ =sCanOnlyMove - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _08094C92 - movs r1, 0x1 -_08094C92: - strb r1, [r2] - ldr r0, _08094CC0 @ =sPSSData - ldr r0, [r0] - movs r3, 0xCB - lsls r3, 4 - adds r1, r0, r3 - ldr r3, [r1] - ldr r1, _08094CC4 @ =0x00000cd4 - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r3, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - pop {r0} - bx r0 - .align 2, 0 -_08094CBC: .4byte sCanOnlyMove -_08094CC0: .4byte sPSSData -_08094CC4: .4byte 0x00000cd4 - thumb_func_end sub_8094C84 - - thumb_func_start sub_8094CC8 -sub_8094CC8: @ 8094CC8 - ldr r0, _08094CD0 @ =sBoxCursorPosition - ldrb r0, [r0] - bx lr - .align 2, 0 -_08094CD0: .4byte sBoxCursorPosition - thumb_func_end sub_8094CC8 - - thumb_func_start sub_8094CD4 -sub_8094CD4: @ 8094CD4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r0, _08094D00 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _08094D08 - ldr r4, _08094D04 @ =sBoxCursorPosition - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x6 - bl __modsi3 - strb r0, [r5] - movs r0, 0 - ldrsb r0, [r4, r0] - movs r1, 0x6 - bl __divsi3 - b _08094D0C - .align 2, 0 -_08094D00: .4byte sBoxCursorArea -_08094D04: .4byte sBoxCursorPosition -_08094D08: - movs r0, 0 - strb r0, [r5] -_08094D0C: - strb r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8094CD4 - - thumb_func_start sub_8094D14 -sub_8094D14: @ 8094D14 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08094D30 @ =sPSSData - ldr r0, [r0] - movs r2, 0xCB - lsls r2, 4 - adds r0, r2 - ldr r0, [r0] - bl StartSpriteAnim - pop {r0} - bx r0 - .align 2, 0 -_08094D30: .4byte sPSSData - thumb_func_end sub_8094D14 - - thumb_func_start sub_8094D34 -sub_8094D34: @ 8094D34 - ldr r0, _08094D3C @ =sMovingMonOrigBoxId - ldrb r0, [r0] - bx lr - .align 2, 0 -_08094D3C: .4byte sMovingMonOrigBoxId - thumb_func_end sub_8094D34 - - thumb_func_start sub_8094D40 -sub_8094D40: @ 8094D40 - ldr r0, _08094D5C @ =sPSSData - ldr r0, [r0] - movs r1, 0xCB - lsls r1, 4 - adds r0, r1 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - bx lr - .align 2, 0 -_08094D5C: .4byte sPSSData - thumb_func_end sub_8094D40 - - thumb_func_start sub_8094D60 -sub_8094D60: @ 8094D60 - push {lr} - ldr r0, _08094D7C @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _08094D78 - ldr r0, _08094D80 @ =sBoxCursorPosition - ldrb r1, [r0] - movs r0, 0 - bl sub_8095D44 -_08094D78: - pop {r0} - bx r0 - .align 2, 0 -_08094D7C: .4byte sBoxCursorArea -_08094D80: .4byte sBoxCursorPosition - thumb_func_end sub_8094D60 - - thumb_func_start sub_8094D84 -sub_8094D84: @ 8094D84 - push {lr} - ldr r0, _08094DA0 @ =sBoxCursorArea - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _08094D9C - ldr r0, _08094DA4 @ =sBoxCursorPosition - ldrb r1, [r0] - movs r0, 0 - bl sub_8095C84 -_08094D9C: - pop {r0} - bx r0 - .align 2, 0 -_08094DA0: .4byte sBoxCursorArea -_08094DA4: .4byte sBoxCursorPosition - thumb_func_end sub_8094D84 - - thumb_func_start sub_8094DA8 -sub_8094DA8: @ 8094DA8 - ldr r2, _08094DDC @ =sPSSData - ldr r0, [r2] - ldr r1, _08094DE0 @ =0x00000ca8 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - ldr r3, _08094DE4 @ =0x00000ca9 - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - subs r3, 0x41 - adds r0, r3 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _08094DE8 @ =0x00000c6d - adds r0, r1 - movs r1, 0xF - strb r1, [r0] - ldr r0, [r2] - adds r3, 0x6 - adds r0, r3 - movs r1, 0x5C - strh r1, [r0] - bx lr - .align 2, 0 -_08094DDC: .4byte sPSSData -_08094DE0: .4byte 0x00000ca8 -_08094DE4: .4byte 0x00000ca9 -_08094DE8: .4byte 0x00000c6d - thumb_func_end sub_8094DA8 - - thumb_func_start sub_8094DEC -sub_8094DEC: @ 8094DEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r4, _08094E40 @ =sPSSData - ldr r2, [r4] - ldr r5, _08094E44 @ =0x00000ca8 - adds r1, r2, r5 - ldrb r0, [r1] - cmp r0, 0x6 - bhi _08094E38 - adds r1, r0, 0 - lsls r1, 3 - movs r0, 0xC7 - lsls r0, 4 - adds r1, r0 - adds r1, r2, r1 - ldr r2, _08094E48 @ =gUnknown_83D353C - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - str r3, [r1, 0x4] - bl StringLength - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, [r4] - ldr r2, _08094E4C @ =0x00000ca9 - adds r0, r2 - ldrb r2, [r0] - cmp r1, r2 - bls _08094E2E - strb r1, [r0] -_08094E2E: - ldr r1, [r4] - adds r1, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08094E38: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08094E40: .4byte sPSSData -_08094E44: .4byte 0x00000ca8 -_08094E48: .4byte gUnknown_83D353C -_08094E4C: .4byte 0x00000ca9 - thumb_func_end sub_8094DEC - - thumb_func_start sub_8094E50 -sub_8094E50: @ 8094E50 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08094E74 @ =sPSSData - ldr r1, [r0] - ldr r3, _08094E78 @ =0x00000ca8 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bcs _08094E80 - lsls r0, r2, 3 - ldr r2, _08094E7C @ =0x00000c74 - adds r1, r2 - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - b _08094E84 - .align 2, 0 -_08094E74: .4byte sPSSData -_08094E78: .4byte 0x00000ca8 -_08094E7C: .4byte 0x00000c74 -_08094E80: - movs r0, 0x1 - negs r0, r0 -_08094E84: - pop {r1} - bx r1 - thumb_func_end sub_8094E50 - - thumb_func_start sub_8094E88 -sub_8094E88: @ 8094E88 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - ldr r5, _08094F6C @ =sPSSData - ldr r1, [r5] - ldr r2, _08094F70 @ =0x00000ca9 - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, 0x2 - subs r2, 0x3E - adds r1, r2 - movs r3, 0 - mov r10, r3 - strb r0, [r1] - ldr r1, [r5] - ldr r0, _08094F74 @ =0x00000ca8 - mov r8, r0 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 1 - ldr r3, _08094F78 @ =0x00000c6c - adds r1, r3 - strb r0, [r1] - ldr r1, [r5] - adds r2, r1, r2 - ldrb r2, [r2] - movs r0, 0x1D - subs r0, r2 - ldr r2, _08094F7C @ =0x00000c69 - adds r1, r2 - strb r0, [r1] - ldr r1, [r5] - adds r3, r1, r3 - ldrb r2, [r3] - movs r0, 0xF - subs r0, r2 - ldr r3, _08094F80 @ =0x00000c6a - adds r1, r3 - strb r0, [r1] - ldr r0, [r5] - ldr r1, _08094F84 @ =0x00000c68 - adds r0, r1 - bl AddWindow - ldr r1, [r5] - ldr r4, _08094F88 @ =0x00000cac - adds r1, r4 - movs r2, 0 - mov r9, r2 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0xB - movs r3, 0xE - bl DrawStdFrameWithCustomTileAndPalette - ldr r2, [r5] - adds r0, r2, r4 - ldrb r0, [r0] - movs r6, 0x10 - str r6, [sp] - mov r3, r8 - adds r1, r2, r3 - ldrb r1, [r1] - str r1, [sp, 0x4] - movs r1, 0xC7 - lsls r1, 4 - adds r2, r1 - str r2, [sp, 0x8] - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x2 - bl PrintTextArray - ldr r1, [r5] - adds r4, r1, r4 - ldrb r0, [r4] - str r6, [sp] - add r1, r8 - ldrb r1, [r1] - str r1, [sp, 0x4] - mov r2, r10 - str r2, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x2 - bl Menu_InitCursor - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldr r0, [r5] - ldr r3, _08094F8C @ =0x00000caa - adds r0, r3 - mov r1, r9 - strb r1, [r0] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08094F6C: .4byte sPSSData -_08094F70: .4byte 0x00000ca9 -_08094F74: .4byte 0x00000ca8 -_08094F78: .4byte 0x00000c6c -_08094F7C: .4byte 0x00000c69 -_08094F80: .4byte 0x00000c6a -_08094F84: .4byte 0x00000c68 -_08094F88: .4byte 0x00000cac -_08094F8C: .4byte 0x00000caa - thumb_func_end sub_8094E88 - - thumb_func_start sub_8094F90 -sub_8094F90: @ 8094F90 - movs r0, 0 - bx lr - thumb_func_end sub_8094F90 - - thumb_func_start sub_8094F94 -sub_8094F94: @ 8094F94 - push {r4,r5,lr} - movs r5, 0x2 - negs r5, r5 - ldr r4, _08094FD0 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08094FEA - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08094FB6 - movs r0, 0x5 - bl PlaySE - adds r5, 0x1 -_08094FB6: - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08094FD4 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl Menu_MoveCursor - b _08094FF2 - .align 2, 0 -_08094FD0: .4byte gMain -_08094FD4: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08094FF2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl Menu_MoveCursor - b _08094FF2 -_08094FEA: - bl Menu_GetCursorPos - lsls r0, 24 - lsrs r5, r0, 24 -_08094FF2: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08094FFE - bl sub_8095024 -_08094FFE: - cmp r5, 0 - blt _08095010 - ldr r0, _0809501C @ =sPSSData - ldr r0, [r0] - lsls r1, r5, 3 - ldr r2, _08095020 @ =0x00000c74 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] -_08095010: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809501C: .4byte sPSSData -_08095020: .4byte 0x00000c74 - thumb_func_end sub_8094F94 - - thumb_func_start sub_8095024 -sub_8095024: @ 8095024 - push {r4,r5,lr} - ldr r5, _08095048 @ =sPSSData - ldr r0, [r5] - ldr r4, _0809504C @ =0x00000cac - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08095048: .4byte sPSSData -_0809504C: .4byte 0x00000cac - thumb_func_end sub_8095024 - - thumb_func_start sub_8095050 -sub_8095050: @ 8095050 - push {r4,lr} - ldr r4, _08095088 @ =gUnknown_2039828 - ldr r0, _0809508C @ =0x00000974 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _0809509C - ldr r0, _08095090 @ =gUnknown_83D35D4 - bl AddWindow8Bit - adds r1, r0, 0 - ldr r0, _08095094 @ =sPSSData - ldr r0, [r0] - ldr r2, _08095098 @ =0x000021f0 - adds r0, r2 - strh r1, [r0] - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0xFF - beq _0809509C - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 - b _0809509E - .align 2, 0 -_08095088: .4byte gUnknown_2039828 -_0809508C: .4byte 0x00000974 -_08095090: .4byte gUnknown_83D35D4 -_08095094: .4byte sPSSData -_08095098: .4byte 0x000021f0 -_0809509C: - movs r0, 0 -_0809509E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095050 - - thumb_func_start sub_80950A4 -sub_80950A4: @ 80950A4 - push {lr} - ldr r0, _080950B8 @ =gUnknown_2039828 - ldr r0, [r0] - cmp r0, 0 - beq _080950B2 - bl Free -_080950B2: - pop {r0} - bx r0 - .align 2, 0 -_080950B8: .4byte gUnknown_2039828 - thumb_func_end sub_80950A4 - - thumb_func_start sub_80950BC -sub_80950BC: @ 80950BC - ldr r2, _080950CC @ =gUnknown_2039828 - ldr r1, [r2] - movs r3, 0 - strb r0, [r1] - ldr r0, [r2] - strb r3, [r0, 0x1] - bx lr - .align 2, 0 -_080950CC: .4byte gUnknown_2039828 - thumb_func_end sub_80950BC - - thumb_func_start sub_80950D0 -sub_80950D0: @ 80950D0 - push {lr} - ldr r0, _080950E8 @ =gUnknown_2039828 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08095130 - lsls r0, 2 - ldr r1, _080950EC @ =_080950F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080950E8: .4byte gUnknown_2039828 -_080950EC: .4byte _080950F0 - .align 2, 0 -_080950F0: - .4byte _08095108 - .4byte _0809510E - .4byte _08095114 - .4byte _0809511A - .4byte _08095120 - .4byte _08095126 -_08095108: - bl sub_8095138 - b _0809512A -_0809510E: - bl sub_8095234 - b _0809512A -_08095114: - bl sub_80952A0 - b _0809512A -_0809511A: - bl sub_8095314 - b _0809512A -_08095120: - bl sub_8095394 - b _0809512A -_08095126: - bl sub_80953BC -_0809512A: - lsls r0, 24 - lsrs r0, 24 - b _08095132 -_08095130: - movs r0, 0 -_08095132: - pop {r1} - bx r1 - thumb_func_end sub_80950D0 - - thumb_func_start sub_8095138 -sub_8095138: @ 8095138 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08095150 @ =gUnknown_2039828 - ldr r1, [r6] - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - beq _08095168 - cmp r0, 0x1 - bgt _08095154 - cmp r0, 0 - beq _0809515A - b _08095228 - .align 2, 0 -_08095150: .4byte gUnknown_2039828 -_08095154: - cmp r0, 0x2 - beq _08095214 - b _08095228 -_0809515A: - movs r0, 0 - bl HideBg - movs r0, 0x80 - bl LoadMonIconPalettesAt - b _080951F8 -_08095168: - adds r0, r1, 0x2 - adds r1, 0x3 - bl sub_8094CD4 - ldr r1, [r6] - ldrb r0, [r1, 0x2] - strb r0, [r1, 0x4] - ldr r1, [r6] - ldrb r0, [r1, 0x3] - strb r0, [r1, 0x5] - ldr r4, _08095204 @ =0xfffffc00 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - ldr r5, _08095208 @ =sPSSData - ldr r0, [r5] - ldr r4, _0809520C @ =0x000021f0 - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl FillWindowPixelBuffer8Bit - ldr r1, [r6] - ldrb r0, [r1, 0x2] - ldrb r1, [r1, 0x3] - bl sub_80956A4 - movs r0, 0 - movs r1, 0x4 - movs r2, 0x1 - bl SetBgAttribute - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram8Bit - movs r0, 0xFC - lsls r0, 6 - ldr r2, _08095210 @ =0x00007fff - movs r1, 0x8 - bl BlendPalettes - movs r0, 0x2 - bl sub_8094D14 - movs r0, 0x8 - movs r1, 0x80 - bl SetGpuRegBits -_080951F8: - ldr r1, [r6] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _08095228 - .align 2, 0 -_08095204: .4byte 0xfffffc00 -_08095208: .4byte sPSSData -_0809520C: .4byte 0x000021f0 -_08095210: .4byte 0x00007fff -_08095214: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08095228 - movs r0, 0 - bl ShowBg - movs r0, 0 - b _0809522A -_08095228: - movs r0, 0x1 -_0809522A: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8095138 - - thumb_func_start sub_8095234 -sub_8095234: @ 8095234 - push {r4,lr} - ldr r4, _0809524C @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _0809525E - cmp r0, 0x1 - bgt _08095250 - cmp r0, 0 - beq _08095256 - b _08095298 - .align 2, 0 -_0809524C: .4byte gUnknown_2039828 -_08095250: - cmp r0, 0x2 - beq _08095272 - b _08095298 -_08095256: - movs r0, 0 - bl HideBg - b _08095268 -_0809525E: - bl sub_8095A58 - movs r0, 0 - bl sub_8094D14 -_08095268: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _08095298 -_08095272: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08095298 - bl sub_8094D40 - movs r0, 0x3 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - movs r0, 0 - bl ShowBg - movs r0, 0 - b _0809529A -_08095298: - movs r0, 0x1 -_0809529A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095234 - - thumb_func_start sub_80952A0 -sub_80952A0: @ 80952A0 - push {r4,lr} - ldr r4, _080952B4 @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080952B8 - cmp r0, 0x1 - beq _08095300 - b _0809530A - .align 2, 0 -_080952B4: .4byte gUnknown_2039828 -_080952B8: - bl sub_80924A8 - lsls r0, 24 - cmp r0, 0 - bne _0809530A - ldr r1, [r4] - adds r0, r1, 0x6 - adds r1, 0x7 - bl sub_8094CD4 - bl sub_8095520 - ldr r1, [r4] - ldrb r0, [r1, 0x6] - strb r0, [r1, 0x4] - ldr r1, [r4] - ldrb r0, [r1, 0x7] - strb r0, [r1, 0x5] - ldr r0, _080952F8 @ =sPSSData - ldr r0, [r0] - ldr r1, _080952FC @ =0x000021f0 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram8Bit - ldr r1, [r4] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _0809530A - .align 2, 0 -_080952F8: .4byte sPSSData -_080952FC: .4byte 0x000021f0 -_08095300: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r0, 24 - b _0809530C -_0809530A: - movs r0, 0x1 -_0809530C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80952A0 - - thumb_func_start sub_8095314 -sub_8095314: @ 8095314 - push {r4,lr} - ldr r4, _0809532C @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _08095342 - cmp r0, 0x1 - bgt _08095330 - cmp r0, 0 - beq _08095336 - b _0809538C - .align 2, 0 -_0809532C: .4byte gUnknown_2039828 -_08095330: - cmp r0, 0x2 - beq _0809536E - b _0809538C -_08095336: - bl sub_80957C8 - bl sub_80958A0 - movs r0, 0 - b _08095360 -_08095342: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0809538C - movs r0, 0x3 - bl sub_8094D14 - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - movs r2, 0x8 - bl sub_8095780 - movs r0, 0x1 -_08095360: - bl sub_8092BAC - ldr r1, [r4] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _0809538C -_0809536E: - bl sub_8095790 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8092BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r4, 0 - bne _0809538C - cmp r0, 0 - bne _0809538C - movs r0, 0 - b _0809538E -_0809538C: - movs r0, 0x1 -_0809538E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095314 - - thumb_func_start sub_8095394 -sub_8095394: @ 8095394 - push {r4,lr} - bl sub_80924A8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8095790 - lsls r0, 24 - lsrs r0, 24 - cmp r4, 0 - bne _080953B4 - cmp r0, 0 - bne _080953B4 - movs r0, 0 - b _080953B6 -_080953B4: - movs r0, 0x1 -_080953B6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8095394 - - thumb_func_start sub_80953BC -sub_80953BC: @ 80953BC - push {r4,lr} - ldr r4, _080953D4 @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - cmp r0, 0x1 - beq _080953FA - cmp r0, 0x1 - bgt _080953D8 - cmp r0, 0 - beq _080953E2 - b _0809546A - .align 2, 0 -_080953D4: .4byte gUnknown_2039828 -_080953D8: - cmp r0, 0x2 - beq _08095426 - cmp r0, 0x3 - beq _08095444 - b _0809546A -_080953E2: - bl sub_80959A8 - movs r1, 0xFF - lsls r1, 8 - movs r0, 0 - movs r2, 0x8 - bl sub_8095780 - movs r0, 0 - bl sub_8092BAC - b _0809543A -_080953FA: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0809546A - bl sub_8095790 - lsls r0, 24 - cmp r0, 0 - bne _0809546A - bl sub_8095918 - movs r0, 0x2 - bl sub_8094D14 - movs r0, 0x1 - bl sub_8092BAC - movs r0, 0 - bl HideBg - b _0809543A -_08095426: - bl sub_8092BF8 - lsls r0, 24 - cmp r0, 0 - bne _0809546A - movs r0, 0 - bl sub_8094D14 - bl sub_8095A58 -_0809543A: - ldr r1, [r4] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _0809546A -_08095444: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0809546A - movs r0, 0x3 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - bl sub_8094D40 - movs r0, 0 - bl ShowBg - movs r0, 0 - b _0809546C -_0809546A: - movs r0, 0x1 -_0809546C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80953BC - - thumb_func_start sub_8095474 -sub_8095474: @ 8095474 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _080954B0 - cmp r0, 0x1 - bgt _0809548A - cmp r0, 0 - beq _08095494 - b _08095518 -_0809548A: - cmp r1, 0x2 - beq _080954D0 - cmp r1, 0x3 - beq _080954F0 - b _08095518 -_08095494: - ldr r0, _080954AC @ =gUnknown_2039828 - ldr r1, [r0] - ldrb r0, [r1, 0x9] - cmp r0, 0 - beq _080954FE - subs r0, 0x1 - strb r0, [r1, 0x9] - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - b _080954E4 - .align 2, 0 -_080954AC: .4byte gUnknown_2039828 -_080954B0: - ldr r0, _080954CC @ =gUnknown_2039828 - ldr r1, [r0] - ldrb r2, [r1, 0x9] - ldrb r0, [r1, 0xB] - adds r0, r2, r0 - cmp r0, 0x4 - bgt _080954FE - adds r0, r2, 0x1 - strb r0, [r1, 0x9] - movs r1, 0xFC - lsls r1, 8 - movs r0, 0 - b _080954E4 - .align 2, 0 -_080954CC: .4byte gUnknown_2039828 -_080954D0: - ldr r0, _080954EC @ =gUnknown_2039828 - ldr r1, [r0] - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _080954FE - subs r0, 0x1 - strb r0, [r1, 0x8] - movs r0, 0x80 - lsls r0, 3 - movs r1, 0 -_080954E4: - movs r2, 0x6 - bl sub_8095780 - b _08095518 - .align 2, 0 -_080954EC: .4byte gUnknown_2039828 -_080954F0: - ldr r0, _08095504 @ =gUnknown_2039828 - ldr r1, [r0] - ldrb r2, [r1, 0x8] - ldrb r0, [r1, 0xA] - adds r0, r2, r0 - cmp r0, 0x5 - ble _08095508 -_080954FE: - movs r0, 0 - b _0809551A - .align 2, 0 -_08095504: .4byte gUnknown_2039828 -_08095508: - adds r0, r2, 0x1 - strb r0, [r1, 0x8] - movs r0, 0xFC - lsls r0, 8 - movs r1, 0 - movs r2, 0x6 - bl sub_8095780 -_08095518: - movs r0, 0x1 -_0809551A: - pop {r1} - bx r1 - thumb_func_end sub_8095474 - - thumb_func_start sub_8095520 -sub_8095520: @ 8095520 - push {r4-r7,lr} - ldr r6, _080955C0 @ =gUnknown_2039828 - ldr r2, [r6] - ldrb r3, [r2, 0x2] - ldrb r5, [r2, 0x6] - subs r1, r3, r5 - cmp r1, 0 - bge _08095532 - negs r1, r1 -_08095532: - ldrb r0, [r2, 0x4] - subs r0, r3, r0 - cmp r0, 0 - bge _0809553C - negs r0, r0 -_0809553C: - subs r0, r1, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x7] - subs r3, r1, r0 - cmp r3, 0 - bge _0809554E - negs r3, r3 -_0809554E: - ldrb r2, [r2, 0x5] - subs r0, r1, r2 - cmp r0, 0 - bge _08095558 - negs r0, r0 -_08095558: - subs r0, r3, r0 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r0, r4, 16 - asrs r4, r0, 16 - cmp r4, 0 - ble _0809556C - adds r0, r5, 0 - bl sub_80955C4 -_0809556C: - cmp r4, 0 - bge _08095588 - ldr r2, [r6] - ldrb r0, [r2, 0x4] - ldrb r1, [r2, 0x3] - ldrb r2, [r2, 0x5] - bl sub_8095634 - ldr r2, [r6] - ldrb r0, [r2, 0x6] - ldrb r1, [r2, 0x3] - ldrb r2, [r2, 0x5] - bl sub_80955C4 -_08095588: - lsls r0, r7, 16 - asrs r4, r0, 16 - cmp r4, 0 - ble _0809559C - ldr r2, [r6] - ldrb r0, [r2, 0x7] - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x4] - bl sub_80955FC -_0809559C: - cmp r4, 0 - bge _080955B8 - ldr r2, [r6] - ldrb r0, [r2, 0x5] - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x4] - bl sub_809566C - ldr r2, [r6] - ldrb r0, [r2, 0x7] - ldrb r1, [r2, 0x2] - ldrb r2, [r2, 0x4] - bl sub_80955FC -_080955B8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080955C0: .4byte gUnknown_2039828 - thumb_func_end sub_8095520 - - thumb_func_start sub_80955C4 -sub_80955C4: @ 80955C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r4, 0 - lsls r2, 24 - lsrs r5, r2, 24 - adds r0, r5, 0 - cmp r4, r5 - bls _080955E2 - adds r4, r5, 0 - adds r5, r1, 0 - cmp r0, r5 - bhi _080955F4 -_080955E2: - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - bl sub_80956A4 - cmp r4, r5 - bls _080955E2 -_080955F4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80955C4 - - thumb_func_start sub_80955FC -sub_80955FC: @ 80955FC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r4, 0 - lsls r2, 24 - lsrs r5, r2, 24 - adds r0, r5, 0 - cmp r4, r5 - bls _0809561A - adds r4, r5, 0 - adds r5, r1, 0 - cmp r0, r5 - bhi _0809562C -_0809561A: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r6, 0 - bl sub_80956A4 - cmp r4, r5 - bls _0809561A -_0809562C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80955FC - - thumb_func_start sub_8095634 -sub_8095634: @ 8095634 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r4, 0 - lsls r2, 24 - lsrs r5, r2, 24 - adds r0, r5, 0 - cmp r4, r5 - bls _08095652 - adds r4, r5, 0 - adds r5, r1, 0 - cmp r0, r5 - bhi _08095664 -_08095652: - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - bl sub_809572C - cmp r4, r5 - bls _08095652 -_08095664: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8095634 - - thumb_func_start sub_809566C -sub_809566C: @ 809566C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r4, 0 - lsls r2, 24 - lsrs r5, r2, 24 - adds r0, r5, 0 - cmp r4, r5 - bls _0809568A - adds r4, r5, 0 - adds r5, r1, 0 - cmp r0, r5 - bhi _0809569C -_0809568A: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r4, r1, 24 - adds r1, r6, 0 - bl sub_809572C - cmp r4, r5 - bls _0809568A -_0809569C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_809566C - - thumb_func_start sub_80956A4 -sub_80956A4: @ 80956A4 - push {r4-r7,lr} - sub sp, 0x1C - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r7, r0, r1 - lsls r4, r7, 1 - adds r4, r6, r4 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x41 - bl GetBoxMonDataFromSelectedBox - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetBoxMonDataFromSelectedBox - adds r1, r0, 0 - cmp r5, 0 - beq _0809571A - adds r0, r5, 0 - movs r2, 0x1 - bl GetMonIconPtr - adds r4, r0, 0 - adds r0, r5, 0 - bl GetValidMonIconPalIndex - adds r0, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08095724 @ =sPSSData - ldr r1, [r1] - ldr r2, _08095728 @ =0x000021f0 - adds r1, r2 - ldrb r3, [r1] - movs r2, 0x20 - str r2, [sp] - str r2, [sp, 0x4] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - str r1, [sp, 0x8] - lsls r1, r7, 3 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - str r2, [sp, 0x14] - str r0, [sp, 0x18] - adds r0, r3, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow4BitTo8Bit -_0809571A: - add sp, 0x1C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095724: .4byte sPSSData -_08095728: .4byte 0x000021f0 - thumb_func_end sub_80956A4 - - thumb_func_start sub_809572C -sub_809572C: @ 809572C - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r5, r0, r1 - lsls r0, r5, 1 - adds r0, r4, r0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x41 - bl GetBoxMonDataFromSelectedBox - lsls r0, 16 - cmp r0, 0 - beq _0809576E - ldr r0, _08095778 @ =sPSSData - ldr r0, [r0] - ldr r1, _0809577C @ =0x000021f0 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 3 - lsls r3, r5, 3 - movs r1, 0x20 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - bl FillWindowPixelRect8Bit -_0809576E: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08095778: .4byte sPSSData -_0809577C: .4byte 0x000021f0 - thumb_func_end sub_809572C - - thumb_func_start sub_8095780 -sub_8095780: @ 8095780 - ldr r3, _0809578C @ =gUnknown_2039828 - ldr r3, [r3] - strh r0, [r3, 0xC] - strh r1, [r3, 0xE] - strh r2, [r3, 0x10] - bx lr - .align 2, 0 -_0809578C: .4byte gUnknown_2039828 - thumb_func_end sub_8095780 - - thumb_func_start sub_8095790 -sub_8095790: @ 8095790 - push {r4,lr} - ldr r4, _080957C4 @ =gUnknown_2039828 - ldr r1, [r4] - ldrh r0, [r1, 0x10] - cmp r0, 0 - beq _080957BA - ldrh r1, [r1, 0xC] - movs r0, 0 - movs r2, 0x1 - bl ChangeBgX - ldr r0, [r4] - ldrh r1, [r0, 0xE] - movs r0, 0 - movs r2, 0x1 - bl ChangeBgY - ldr r1, [r4] - ldrh r0, [r1, 0x10] - subs r0, 0x1 - strh r0, [r1, 0x10] -_080957BA: - ldr r0, [r4] - ldrb r0, [r0, 0x10] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080957C4: .4byte gUnknown_2039828 - thumb_func_end sub_8095790 - - thumb_func_start sub_80957C8 -sub_80957C8: @ 80957C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _0809589C @ =gUnknown_2039828 - ldr r1, [r4] - ldrb r0, [r1, 0x4] - ldrb r2, [r1, 0x2] - cmp r0, r2 - bls _080957E0 - adds r0, r2, 0 -_080957E0: - strb r0, [r1, 0x8] - ldr r1, [r4] - ldrb r0, [r1, 0x5] - ldrb r2, [r1, 0x3] - cmp r0, r2 - bls _080957EE - adds r0, r2, 0 -_080957EE: - strb r0, [r1, 0x9] - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x4] - subs r0, r1, r0 - cmp r0, 0 - bge _080957FE - negs r0, r0 -_080957FE: - adds r0, 0x1 - strb r0, [r2, 0xA] - ldr r2, [r4] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x5] - subs r0, r1, r0 - cmp r0, 0 - bge _08095810 - negs r0, r0 -_08095810: - adds r0, 0x1 - strb r0, [r2, 0xB] - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r6, 0 - ldr r0, [r4] - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0xA] - adds r2, r1 - mov r8, r2 - ldrb r1, [r0, 0x9] - ldrb r0, [r0, 0xB] - adds r0, r1 - mov r9, r0 - adds r2, r1, 0 - cmp r2, r9 - bge _0809588C -_08095838: - lsls r0, r2, 1 - adds r0, r2 - ldr r3, _0809589C @ =gUnknown_2039828 - ldr r1, [r3] - lsls r0, 1 - ldrb r3, [r1, 0x8] - adds r0, r3 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r4, [r1, 0x8] - adds r7, r2, 0x1 - cmp r4, r8 - bge _08095886 - mov r0, r8 - subs r4, r0, r4 -_08095856: - mov r0, r10 - adds r1, r5, 0 - bl GetBoxedMonPtr - adds r1, r0, 0 - ldr r2, _0809589C @ =gUnknown_2039828 - ldr r0, [r2] - lsls r2, r6, 2 - adds r2, r6 - lsls r2, 4 - adds r0, r2 - adds r0, 0x14 - movs r2, 0x50 - bl memcpy - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - subs r4, 0x1 - cmp r4, 0 - bne _08095856 -_08095886: - adds r2, r7, 0 - cmp r2, r9 - blt _08095838 -_0809588C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809589C: .4byte gUnknown_2039828 - thumb_func_end sub_80957C8 - - thumb_func_start sub_80958A0 -sub_80958A0: @ 80958A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, _08095914 @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0xA] - adds r7, r2, r1 - ldrb r1, [r0, 0x9] - ldrb r0, [r0, 0xB] - adds r1, r0 - mov r9, r1 - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, [r4] - ldrb r2, [r0, 0x9] - cmp r2, r9 - bge _08095908 -_080958CC: - lsls r0, r2, 1 - adds r0, r2 - ldr r1, _08095914 @ =gUnknown_2039828 - ldr r1, [r1] - lsls r0, 1 - ldrb r3, [r1, 0x8] - adds r0, r3 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r4, [r1, 0x8] - adds r6, r2, 0x1 - cmp r4, r7 - bge _08095902 - subs r4, r7, r4 -_080958E8: - adds r0, r5, 0 - bl sub_809081C - mov r0, r8 - adds r1, r5, 0 - bl sub_808BCB4 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - subs r4, 0x1 - cmp r4, 0 - bne _080958E8 -_08095902: - adds r2, r6, 0 - cmp r2, r9 - blt _080958CC -_08095908: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095914: .4byte gUnknown_2039828 - thumb_func_end sub_80958A0 - - thumb_func_start sub_8095918 -sub_8095918: @ 8095918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _080959A4 @ =gUnknown_2039828 - ldr r0, [r0] - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0xA] - adds r2, r1 - mov r8, r2 - ldrb r1, [r0, 0x9] - ldrb r0, [r0, 0xB] - adds r0, r1 - mov r10, r0 - movs r6, 0 - adds r2, r1, 0 - cmp r2, r10 - bge _08095994 -_0809593E: - lsls r0, r2, 1 - adds r0, r2 - ldr r3, _080959A4 @ =gUnknown_2039828 - ldr r1, [r3] - lsls r0, 1 - ldrb r4, [r1, 0x8] - adds r0, r4 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r4, [r1, 0x8] - adds r7, r2, 0x1 - cmp r4, r8 - bge _0809598E - mov r9, r3 - mov r0, r8 - subs r4, r0, r4 -_0809595E: - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - adds r1, 0x14 - mov r2, r9 - ldr r0, [r2] - adds r0, r1 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _0809597C - adds r0, r5, 0 - bl sub_80901EC -_0809597C: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - subs r4, 0x1 - cmp r4, 0 - bne _0809595E -_0809598E: - adds r2, r7, 0 - cmp r2, r10 - blt _0809593E -_08095994: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080959A4: .4byte gUnknown_2039828 - thumb_func_end sub_8095918 - - thumb_func_start sub_80959A8 -sub_80959A8: @ 80959A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r4, _08095A54 @ =gUnknown_2039828 - ldr r0, [r4] - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0xA] - adds r2, r1 - mov r10, r2 - ldrb r1, [r0, 0x9] - ldrb r0, [r0, 0xB] - adds r1, r0 - str r1, [sp] - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r7, 0 - ldr r0, [r4] - ldrb r3, [r0, 0x9] - ldr r0, [sp] - cmp r3, r0 - bge _08095A42 -_080959DE: - lsls r0, r3, 1 - adds r0, r3 - ldr r2, _08095A54 @ =gUnknown_2039828 - ldr r1, [r2] - lsls r0, 1 - ldrb r4, [r1, 0x8] - adds r0, r4 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r5, [r1, 0x8] - adds r3, 0x1 - mov r9, r3 - cmp r5, r10 - bge _08095A3A - mov r8, r2 - mov r0, r10 - subs r5, r0, r5 -_08095A00: - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 4 - adds r4, r0, 0 - adds r4, 0x14 - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _08095A28 - mov r0, r8 - ldr r2, [r0] - adds r2, r4 - ldr r0, [sp, 0x4] - adds r1, r6, 0 - bl CopyBoxMonFromAnyBox -_08095A28: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - subs r5, 0x1 - cmp r5, 0 - bne _08095A00 -_08095A3A: - mov r3, r9 - ldr r1, [sp] - cmp r3, r1 - blt _080959DE -_08095A42: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095A54: .4byte gUnknown_2039828 - thumb_func_end sub_80959A8 - - thumb_func_start sub_8095A58 -sub_8095A58: @ 8095A58 - push {lr} - sub sp, 0x8 - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0 - movs r1, 0x4 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x8 - movs r1, 0x80 - bl ClearGpuRegBits - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8095A58 - - thumb_func_start sub_8095AA0 -sub_8095AA0: @ 8095AA0 - ldr r0, _08095AB8 @ =gUnknown_2039828 - ldr r2, [r0] - ldrb r1, [r2, 0x3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldrb r2, [r2, 0x2] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08095AB8: .4byte gUnknown_2039828 - thumb_func_end sub_8095AA0 - - thumb_func_start sub_8095ABC -sub_8095ABC: @ 8095ABC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _08095B28 @ =gUnknown_2039828 - ldr r0, [r0] - ldrb r2, [r0, 0x8] - ldrb r1, [r0, 0xA] - adds r2, r1 - mov r9, r2 - ldrb r1, [r0, 0x9] - ldrb r0, [r0, 0xB] - adds r0, r1, r0 - str r0, [sp] - movs r7, 0 - adds r6, r1, 0 - cmp r6, r0 - bge _08095B4A - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 1 - mov r8, r0 -_08095AEC: - ldr r2, _08095B28 @ =gUnknown_2039828 - ldr r1, [r2] - ldrb r0, [r1, 0x8] - add r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r4, [r1, 0x8] - cmp r4, r9 - bge _08095B3E - mov r10, r2 -_08095B00: - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 4 - adds r1, 0x14 - mov r2, r10 - ldr r0, [r2] - adds r0, r1 - movs r1, 0x5 - bl GetBoxMonData - cmp r0, 0 - beq _08095B2C - adds r0, r5, 0 - movs r1, 0x5 - bl GetBoxMonDataFromSelectedBox - cmp r0, 0 - beq _08095B2C - movs r0, 0 - b _08095B4C - .align 2, 0 -_08095B28: .4byte gUnknown_2039828 -_08095B2C: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, 0x1 - cmp r4, r9 - blt _08095B00 -_08095B3E: - movs r0, 0x6 - add r8, r0 - adds r6, 0x1 - ldr r2, [sp] - cmp r6, r2 - blt _08095AEC -_08095B4A: - movs r0, 0x1 -_08095B4C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095ABC - - thumb_func_start sub_8095B5C -sub_8095B5C: @ 8095B5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r3, _08095C58 @ =sPSSData - ldr r0, [r3] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095C3C - ldr r0, _08095C5C @ =gUnknown_3000FE8 - str r0, [sp, 0x18] - ldr r1, _08095C60 @ =0xffff0000 - add r2, sp, 0x18 - ldr r0, [r2, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _08095C64 @ =gUnknown_83D3728 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - movs r7, 0 - mov r9, r2 - mov r8, r3 - movs r0, 0 - mov r10, r0 -_08095B9C: - adds r6, r7, 0x7 - lsls r1, r6, 16 - mov r2, r9 - ldrh r0, [r2, 0x4] - orrs r0, r1 - str r0, [r2, 0x4] - mov r0, r9 - bl LoadCompressedSpriteSheet - mov r4, r9 - ldrh r0, [r4, 0x6] - bl GetSpriteTileStartByTag - mov r5, r8 - ldr r1, [r5] - lsls r5, r7, 4 - ldr r2, _08095C68 @ =0x000021f8 - adds r1, r2 - adds r1, r5 - lsls r0, 16 - lsrs r0, 11 - ldr r4, _08095C6C @ =0x06010000 - adds r0, r4 - str r0, [r1] - ldr r0, _08095C70 @ =0xffffdacb - adds r4, r7, r0 - lsls r0, r4, 16 - lsrs r0, 16 - bl AllocSpritePalette - mov r2, r8 - ldr r1, [r2] - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08095C74 @ =0x000021fc - adds r1, r2 - strh r0, [r1] - ldrh r0, [r1] - lsls r0, 4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - strh r0, [r1] - mov r0, sp - strh r6, [r0] - strh r4, [r0, 0x2] - movs r1, 0 - movs r2, 0 - movs r3, 0xB - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r4, r8 - ldr r2, [r4] - ldr r6, _08095C78 @ =0x000021f4 - adds r2, r6 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08095C7C @ =gSprites - adds r1, r0 - str r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r4] - adds r0, r5 - movs r1, 0x88 - lsls r1, 6 - adds r0, r1 - mov r2, r10 - strb r2, [r0] - adds r7, 0x1 - cmp r7, 0x2 - ble _08095B9C -_08095C3C: - ldr r0, _08095C58 @ =sPSSData - ldr r0, [r0] - ldr r4, _08095C80 @ =0x00002224 - adds r0, r4 - movs r1, 0 - strh r1, [r0] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095C58: .4byte sPSSData -_08095C5C: .4byte gUnknown_3000FE8 -_08095C60: .4byte 0xffff0000 -_08095C64: .4byte gUnknown_83D3728 -_08095C68: .4byte 0x000021f8 -_08095C6C: .4byte 0x06010000 -_08095C70: .4byte 0xffffdacb -_08095C74: .4byte 0x000021fc -_08095C78: .4byte 0x000021f4 -_08095C7C: .4byte gSprites -_08095C80: .4byte 0x00002224 - thumb_func_end sub_8095B5C - - thumb_func_start sub_8095C84 -sub_8095C84: @ 8095C84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _08095CB8 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095D36 - mov r0, r8 - adds r1, r7, 0 - bl sub_8096210 - cmp r0, 0 - bne _08095D36 - mov r0, r8 - cmp r0, 0 - beq _08095CBC - cmp r0, 0x1 - beq _08095CD2 - b _08095D36 - .align 2, 0 -_08095CB8: .4byte sPSSData -_08095CBC: - adds r0, r7, 0 - movs r1, 0x5 - bl GetBoxMonDataFromSelectedBox - cmp r0, 0 - beq _08095D36 - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonDataFromSelectedBox - b _08095CF0 -_08095CD2: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08095D40 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _08095D36 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData -_08095CF0: - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08095D36 - adds r0, r4, 0 - bl GetItemIconPic - adds r6, r0, 0 - adds r0, r4, 0 - bl GetItemIconPalette - adds r5, r0, 0 - bl sub_80961D8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - mov r1, r8 - adds r2, r7, 0 - bl sub_80962F0 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_8096408 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8096624 -_08095D36: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095D40: .4byte gPlayerParty - thumb_func_end sub_8095C84 - - thumb_func_start sub_8095D44 -sub_8095D44: @ 8095D44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _08095D80 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095D7A - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8096258 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_80964E8 -_08095D7A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08095D80: .4byte sPSSData - thumb_func_end sub_8095D44 - - thumb_func_start sub_8095D84 -sub_8095D84: @ 8095D84 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - ldr r0, _08095DE8 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095E14 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8096258 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - mov r0, sp - strh r1, [r0] - adds r0, r4, 0 - movs r1, 0x3 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_80964E8 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80962F0 - cmp r6, 0 - bne _08095DEC - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetBoxMonDataFromSelectedBox - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8090850 - b _08095E04 - .align 2, 0 -_08095DE8: .4byte sPSSData -_08095DEC: - movs r0, 0x64 - muls r0, r7 - ldr r1, _08095E1C @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8090C84 -_08095E04: - ldr r0, _08095E20 @ =sPSSData - ldr r0, [r0] - ldr r2, _08095E24 @ =0x00000ce2 - adds r1, r0, r2 - ldrh r1, [r1] - ldr r2, _08095E28 @ =0x00002224 - adds r0, r2 - strh r1, [r0] -_08095E14: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095E1C: .4byte gPlayerParty -_08095E20: .4byte sPSSData -_08095E24: .4byte 0x00000ce2 -_08095E28: .4byte 0x00002224 - thumb_func_end sub_8095D84 - - thumb_func_start sub_8095E2C -sub_8095E2C: @ 8095E2C - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r5, 0 - bl GetItemIconPic - mov r8, r0 - adds r0, r5, 0 - bl GetItemIconPalette - adds r6, r0, 0 - bl sub_80961D8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - mov r1, r8 - adds r2, r6, 0 - bl sub_8096408 - adds r0, r4, 0 - movs r1, 0x6 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_80964E8 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80962F0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8096624 - ldr r0, _08095E98 @ =sPSSData - ldr r0, [r0] - ldr r1, _08095E9C @ =0x00002224 - adds r0, r1 - strh r5, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08095E98: .4byte sPSSData -_08095E9C: .4byte 0x00002224 - thumb_func_end sub_8095E2C - - thumb_func_start sub_8095EA0 -sub_8095EA0: @ 8095EA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _08095F08 @ =sPSSData - mov r8, r0 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095F5E - mov r0, r9 - adds r1, r7, 0 - bl sub_8096258 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0 - bl sub_80964E8 - mov r1, r9 - cmp r1, 0 - bne _08095F10 - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonDataFromSelectedBox - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r8 - ldr r2, [r0] - ldr r4, _08095F0C @ =0x00002224 - adds r2, r4 - adds r0, r7, 0 - movs r1, 0xC - bl SetBoxMonDataFromSelectedBox - mov r1, r8 - ldr r0, [r1] - adds r0, r4 - b _08095F3C - .align 2, 0 -_08095F08: .4byte sPSSData -_08095F0C: .4byte 0x00002224 -_08095F10: - movs r0, 0x64 - adds r4, r7, 0 - muls r4, r0 - ldr r0, _08095F6C @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r8 - ldr r2, [r0] - ldr r5, _08095F70 @ =0x00002224 - adds r2, r5 - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - mov r1, r8 - ldr r0, [r1] - adds r0, r5 -_08095F3C: - strh r6, [r0] - movs r0, 0x2 - movs r1, 0 - bl sub_8096258 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x4 - mov r2, r9 - adds r3, r7, 0 - bl sub_80964E8 -_08095F5E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095F6C: .4byte gPlayerParty -_08095F70: .4byte 0x00002224 - thumb_func_end sub_8095EA0 - - thumb_func_start sub_8095F74 -sub_8095F74: @ 8095F74 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - mov r8, r5 - ldr r6, _08095FCC @ =sPSSData - ldr r0, [r6] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08095FF4 - movs r0, 0x2 - movs r1, 0 - bl sub_8096258 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x4 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r7, 0 - adds r3, r5, 0 - bl sub_80964E8 - cmp r7, 0 - bne _08095FD4 - ldr r2, [r6] - ldr r0, _08095FD0 @ =0x00002224 - adds r2, r0 - adds r0, r5, 0 - movs r1, 0xC - bl SetBoxMonDataFromSelectedBox - adds r0, r5, 0 - movs r1, 0 - bl sub_8090850 - b _08095FF4 - .align 2, 0 -_08095FCC: .4byte sPSSData -_08095FD0: .4byte 0x00002224 -_08095FD4: - movs r0, 0x64 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r1, _08096000 @ =gPlayerParty - adds r0, r1 - ldr r2, [r6] - ldr r1, _08096004 @ =0x00002224 - adds r2, r1 - movs r1, 0xC - bl SetMonData - mov r0, r8 - movs r1, 0 - bl sub_8090C84 -_08095FF4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096000: .4byte gPlayerParty -_08096004: .4byte 0x00002224 - thumb_func_end sub_8095F74 - - thumb_func_start sub_8096008 -sub_8096008: @ 8096008 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - ldr r0, _08096060 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _0809607C - movs r1, 0 - mov r0, sp - strh r1, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8096258 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x2 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0 - adds r2, r6, 0 - adds r3, r5, 0 - bl sub_80964E8 - cmp r6, 0 - bne _08096064 - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetBoxMonDataFromSelectedBox - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8090850 - b _0809607C - .align 2, 0 -_08096060: .4byte sPSSData -_08096064: - movs r0, 0x64 - muls r0, r7 - ldr r1, _08096084 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - movs r1, 0x1 - bl sub_8090C84 -_0809607C: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096084: .4byte gPlayerParty - thumb_func_end sub_8096008 - - thumb_func_start sub_8096088 -sub_8096088: @ 8096088 - push {r4,lr} - ldr r0, _080960BC @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _080960B6 - movs r0, 0x2 - movs r1, 0 - bl sub_8096258 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x5 - bl sub_80964B8 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_80964E8 -_080960B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080960BC: .4byte sPSSData - thumb_func_end sub_8096088 - - thumb_func_start sub_80960C0 -sub_80960C0: @ 80960C0 - push {r4,lr} - ldr r0, _08096108 @ =sPSSData - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x3 - bne _08096100 - movs r4, 0 -_080960CE: - ldr r0, _08096108 @ =sPSSData - ldr r1, [r0] - lsls r0, r4, 4 - adds r1, r0 - movs r2, 0x88 - lsls r2, 6 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080960FA - subs r2, 0x2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080960FA - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0x7 - movs r2, 0x2 - movs r3, 0 - bl sub_80964E8 -_080960FA: - adds r4, 0x1 - cmp r4, 0x2 - ble _080960CE -_08096100: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096108: .4byte sPSSData - thumb_func_end sub_80960C0 - - thumb_func_start sub_809610C -sub_809610C: @ 809610C - push {r4,r5,lr} - movs r5, 0 - ldr r0, _08096148 @ =sPSSData - ldr r0, [r0] - ldr r1, _0809614C @ =0x000021f4 - adds r4, r0, r1 - adds r3, r0, 0 -_0809611A: - movs r1, 0x88 - lsls r1, 6 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08096158 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x28 - ands r0, r1 - cmp r0, 0x8 - beq _08096144 - ldr r1, [r2, 0x1C] - ldr r0, _08096150 @ =SpriteCallbackDummy - cmp r1, r0 - beq _08096158 - ldr r0, _08096154 @ =sub_80969BC - cmp r1, r0 - beq _08096158 -_08096144: - movs r0, 0x1 - b _08096164 - .align 2, 0 -_08096148: .4byte sPSSData -_0809614C: .4byte 0x000021f4 -_08096150: .4byte SpriteCallbackDummy -_08096154: .4byte sub_80969BC -_08096158: - adds r4, 0x10 - adds r3, 0x10 - adds r5, 0x1 - cmp r5, 0x2 - ble _0809611A - movs r0, 0 -_08096164: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809610C - - thumb_func_start sub_809616C -sub_809616C: @ 809616C - push {lr} - ldr r0, _08096190 @ =sPSSData - ldr r1, [r0] - ldrb r0, [r1, 0x1] - cmp r0, 0x3 - bne _080961A0 - movs r2, 0 - ldr r0, _08096194 @ =0x000021fe - adds r1, r0 -_0809617E: - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _08096198 - ldrb r0, [r1] - cmp r0, 0x2 - bne _08096198 - movs r0, 0x1 - b _080961A2 - .align 2, 0 -_08096190: .4byte sPSSData -_08096194: .4byte 0x000021fe -_08096198: - adds r1, 0x10 - adds r2, 0x1 - cmp r2, 0x2 - ble _0809617E -_080961A0: - movs r0, 0 -_080961A2: - pop {r1} - bx r1 - thumb_func_end sub_809616C - - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 - push {lr} - ldr r0, _080961BC @ =sPSSData - ldr r0, [r0] - ldr r1, _080961C0 @ =0x00002224 - adds r0, r1 - ldrh r0, [r0] - bl ItemId_GetName - pop {r1} - bx r1 - .align 2, 0 -_080961BC: .4byte sPSSData -_080961C0: .4byte 0x00002224 - thumb_func_end sub_80961A8 - - thumb_func_start sub_80961C4 -sub_80961C4: @ 80961C4 - ldr r0, _080961D0 @ =sPSSData - ldr r0, [r0] - ldr r1, _080961D4 @ =0x00002224 - adds r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_080961D0: .4byte sPSSData -_080961D4: .4byte 0x00002224 - thumb_func_end sub_80961C4 - - thumb_func_start sub_80961D8 -sub_80961D8: @ 80961D8 - push {r4,r5,lr} - movs r2, 0 - ldr r5, _080961F8 @ =sPSSData - movs r3, 0x88 - lsls r3, 6 - movs r4, 0x1 -_080961E4: - ldr r0, [r5] - lsls r1, r2, 4 - adds r0, r1 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _080961FC - strb r4, [r1] - adds r0, r2, 0 - b _08096208 - .align 2, 0 -_080961F8: .4byte sPSSData -_080961FC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080961E4 - movs r0, 0x3 -_08096208: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80961D8 - - thumb_func_start sub_8096210 -sub_8096210: @ 8096210 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - ldr r0, _08096244 @ =sPSSData - ldr r2, [r0] -_08096220: - movs r5, 0x88 - lsls r5, 6 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - beq _08096248 - subs r5, 0x2 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r4 - bne _08096248 - adds r5, 0x1 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, r1 - bne _08096248 - movs r0, 0x1 - b _08096252 - .align 2, 0 -_08096244: .4byte sPSSData -_08096248: - adds r2, 0x10 - adds r3, 0x1 - cmp r3, 0x2 - ble _08096220 - movs r0, 0 -_08096252: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8096210 - - thumb_func_start sub_8096258 -sub_8096258: @ 8096258 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - movs r3, 0 - ldr r0, _08096290 @ =sPSSData - ldr r1, [r0] -_08096268: - lsls r0, r3, 4 - adds r2, r1, r0 - movs r6, 0x88 - lsls r6, 6 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _08096294 - subs r6, 0x2 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r5 - bne _08096294 - adds r6, 0x1 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r4 - bne _08096294 - adds r0, r3, 0 - b _080962A0 - .align 2, 0 -_08096290: .4byte sPSSData -_08096294: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08096268 - movs r0, 0x3 -_080962A0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8096258 - - thumb_func_start sub_80962A8 -sub_80962A8: @ 80962A8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r2, 0 - ldr r0, _080962D4 @ =sPSSData - ldr r3, [r0] - ldr r0, _080962D8 @ =0x000021f4 - adds r4, r3, r0 - movs r6, 0x88 - lsls r6, 6 -_080962BA: - lsls r1, r2, 4 - adds r0, r3, r1 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _080962DC - adds r0, r4, r1 - ldr r0, [r0] - cmp r0, r5 - bne _080962DC - adds r0, r2, 0 - b _080962E8 - .align 2, 0 -_080962D4: .4byte sPSSData -_080962D8: .4byte 0x000021f4 -_080962DC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080962BA - movs r0, 0x3 -_080962E8: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80962A8 - - thumb_func_start sub_80962F0 -sub_80962F0: @ 80962F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - cmp r5, 0x2 - bhi _080963EE - cmp r1, 0 - beq _0809631C - cmp r1, 0x1 - beq _08096378 - ldr r4, _08096318 @ =sPSSData - lsls r3, r5, 4 - b _080963D8 - .align 2, 0 -_08096318: .4byte sPSSData -_0809631C: - adds r0, r7, 0 - movs r1, 0x6 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08096370 @ =sPSSData - ldr r2, [r6] - lsls r5, 4 - ldr r1, _08096374 @ =0x000021f4 - adds r2, r1 - adds r2, r5 - ldr r3, [r2] - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - adds r1, 0x70 - strh r1, [r3, 0x20] - ldr r3, [r2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x38 - strh r1, [r3, 0x22] - ldr r2, [r2] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r4, r6, 0 - adds r3, r5, 0 - b _080963D8 - .align 2, 0 -_08096370: .4byte sPSSData -_08096374: .4byte 0x000021f4 -_08096378: - cmp r7, 0 - bne _080963A0 - ldr r4, _08096398 @ =sPSSData - ldr r0, [r4] - lsls r3, r5, 4 - ldr r1, _0809639C @ =0x000021f4 - adds r0, r1 - adds r0, r3 - ldr r2, [r0] - movs r1, 0x74 - strh r1, [r2, 0x20] - ldr r1, [r0] - movs r0, 0x4C - strh r0, [r1, 0x22] - b _080963C0 - .align 2, 0 -_08096398: .4byte sPSSData -_0809639C: .4byte 0x000021f4 -_080963A0: - ldr r4, _080963F8 @ =sPSSData - ldr r0, [r4] - lsls r3, r5, 4 - ldr r1, _080963FC @ =0x000021f4 - adds r0, r1 - adds r0, r3 - ldr r2, [r0] - movs r1, 0xA4 - strh r1, [r2, 0x20] - ldr r2, [r0] - subs r1, r7, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x1C - strh r0, [r2, 0x22] -_080963C0: - ldr r0, [r4] - ldr r1, _080963FC @ =0x000021f4 - adds r0, r1 - adds r0, r3 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] -_080963D8: - ldr r0, [r4] - adds r0, r3 - ldr r1, _08096400 @ =0x000021fe - adds r0, r1 - mov r1, r8 - strb r1, [r0] - ldr r0, [r4] - adds r0, r3 - ldr r1, _08096404 @ =0x000021ff - adds r0, r1 - strb r7, [r0] -_080963EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080963F8: .4byte sPSSData -_080963FC: .4byte 0x000021f4 -_08096400: .4byte 0x000021fe -_08096404: .4byte 0x000021ff - thumb_func_end sub_80962F0 - - thumb_func_start sub_8096408 -sub_8096408: @ 8096408 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r1 - mov r9, r2 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bhi _08096490 - movs r0, 0 - str r0, [sp] - ldr r4, _080964A0 @ =sPSSData - ldr r1, [r4] - ldr r6, _080964A4 @ =0x000042bc - adds r1, r6 - ldr r2, _080964A8 @ =0x01000080 - mov r0, sp - bl CpuFastSet - ldr r1, [r4] - ldr r5, _080964AC @ =0x000022bc - adds r1, r5 - mov r0, r8 - bl LZ77UnCompWram - lsls r7, 4 - mov r8, r7 - adds r7, r4, 0 - movs r4, 0x2 -_08096446: - ldr r1, [r7] - adds r0, r1, r5 - adds r1, r6 - movs r2, 0x18 - bl CpuFastSet - adds r6, 0x80 - adds r5, 0x60 - subs r4, 0x1 - cmp r4, 0 - bge _08096446 - ldr r5, _080964A0 @ =sPSSData - ldr r1, [r5] - ldr r4, _080964A4 @ =0x000042bc - adds r0, r1, r4 - ldr r2, _080964B0 @ =0x000021f8 - adds r1, r2 - add r1, r8 - ldr r1, [r1] - movs r2, 0x80 - bl CpuFastSet - ldr r1, [r5] - adds r1, r4 - mov r0, r9 - bl LZ77UnCompWram - ldr r0, [r5] - adds r4, r0, r4 - add r0, r8 - ldr r1, _080964B4 @ =0x000021fc - adds r0, r1 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette -_08096490: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080964A0: .4byte sPSSData -_080964A4: .4byte 0x000042bc -_080964A8: .4byte 0x01000080 -_080964AC: .4byte 0x000022bc -_080964B0: .4byte 0x000021f8 -_080964B4: .4byte 0x000021fc - thumb_func_end sub_8096408 - - thumb_func_start sub_80964B8 -sub_80964B8: @ 80964B8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r2, 0x2 - bhi _080964DA - ldr r0, _080964E0 @ =sPSSData - ldr r0, [r0] - lsls r1, r2, 4 - ldr r2, _080964E4 @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - adds r1, r3, 0 - bl StartSpriteAffineAnim -_080964DA: - pop {r0} - bx r0 - .align 2, 0 -_080964E0: .4byte sPSSData -_080964E4: .4byte 0x000021f4 - thumb_func_end sub_80964B8 - - thumb_func_start sub_80964E8 -sub_80964E8: @ 80964E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r3, 24 - cmp r4, 0x2 - bls _08096500 - b _08096612 -_08096500: - cmp r0, 0x7 - bls _08096506 - b _08096612 -_08096506: - lsls r0, 2 - ldr r1, _08096510 @ =_08096514 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096510: .4byte _08096514 - .align 2, 0 -_08096514: - .4byte _08096534 - .4byte _08096558 - .4byte _0809657C - .4byte _080965A8 - .4byte _080965D4 - .4byte _08096612 - .4byte _08096612 - .4byte _08096600 -_08096534: - ldr r0, _0809654C @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _08096550 @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] - strh r4, [r1, 0x2E] - ldr r1, [r0] - ldr r0, _08096554 @ =sub_809692C - b _08096610 - .align 2, 0 -_0809654C: .4byte sPSSData -_08096550: .4byte 0x000021f4 -_08096554: .4byte sub_809692C -_08096558: - ldr r0, _08096570 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _08096574 @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r2, [r0] - movs r1, 0 - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _08096578 @ =sub_8096958 - b _08096610 - .align 2, 0 -_08096570: .4byte sPSSData -_08096574: .4byte 0x000021f4 -_08096578: .4byte sub_8096958 -_0809657C: - ldr r0, _0809659C @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _080965A0 @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r2, [r0] - movs r1, 0 - strh r1, [r2, 0x2E] - ldr r1, [r0] - strh r5, [r1, 0x3A] - ldr r1, [r0] - strh r3, [r1, 0x3C] - ldr r1, [r0] - ldr r0, _080965A4 @ =sub_80969F4 - b _08096610 - .align 2, 0 -_0809659C: .4byte sPSSData -_080965A0: .4byte 0x000021f4 -_080965A4: .4byte sub_80969F4 -_080965A8: - ldr r0, _080965C8 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _080965CC @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r2, [r0] - movs r1, 0 - strh r1, [r2, 0x2E] - ldr r2, [r0] - ldr r1, _080965D0 @ =sub_8096A74 - str r1, [r2, 0x1C] - strh r5, [r2, 0x3A] - ldr r0, [r0] - strh r3, [r0, 0x3C] - b _08096612 - .align 2, 0 -_080965C8: .4byte sPSSData -_080965CC: .4byte 0x000021f4 -_080965D0: .4byte sub_8096A74 -_080965D4: - ldr r0, _080965F4 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _080965F8 @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r2, [r0] - movs r1, 0 - strh r1, [r2, 0x2E] - ldr r1, [r0] - strh r5, [r1, 0x3A] - ldr r1, [r0] - strh r3, [r1, 0x3C] - ldr r1, [r0] - ldr r0, _080965FC @ =sub_8096B10 - b _08096610 - .align 2, 0 -_080965F4: .4byte sPSSData -_080965F8: .4byte 0x000021f4 -_080965FC: .4byte sub_8096B10 -_08096600: - ldr r0, _08096618 @ =sPSSData - ldr r0, [r0] - lsls r1, r4, 4 - ldr r2, _0809661C @ =0x000021f4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] - ldr r0, _08096620 @ =sub_8096BAC -_08096610: - str r0, [r1, 0x1C] -_08096612: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096618: .4byte sPSSData -_0809661C: .4byte 0x000021f4 -_08096620: .4byte sub_8096BAC - thumb_func_end sub_80964E8 - - thumb_func_start sub_8096624 -sub_8096624: @ 8096624 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r2, 0x2 - bhi _08096666 - ldr r1, _0809666C @ =sPSSData - ldr r0, [r1] - lsls r2, 4 - adds r0, r2 - movs r3, 0x88 - lsls r3, 6 - adds r0, r3 - strb r4, [r0] - ldr r0, [r1] - ldr r1, _08096670 @ =0x000021f4 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _08096654 - movs r3, 0x1 -_08096654: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_08096666: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809666C: .4byte sPSSData -_08096670: .4byte 0x000021f4 - thumb_func_end sub_8096624 - - thumb_func_start GetItemIconPic -GetItemIconPic: @ 8096674 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetItemIconGfxPtr - pop {r1} - bx r1 - thumb_func_end GetItemIconPic - - thumb_func_start GetItemIconPalette -GetItemIconPalette: @ 8096684 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl GetItemIconGfxPtr - pop {r1} - bx r1 - thumb_func_end GetItemIconPalette - - thumb_func_start sub_8096694 -sub_8096694: @ 8096694 - push {r4,lr} - sub sp, 0x14 - bl sub_809616C - lsls r0, 24 - cmp r0, 0 - beq _080966B4 - ldr r0, _080966AC @ =sPSSData - ldr r0, [r0] - ldr r1, _080966B0 @ =0x00002224 - b _080966BA - .align 2, 0 -_080966AC: .4byte sPSSData -_080966B0: .4byte 0x00002224 -_080966B4: - ldr r0, _080966EC @ =sPSSData - ldr r0, [r0] - ldr r1, _080966F0 @ =0x00000ce2 -_080966BA: - adds r0, r1 - ldrh r0, [r0] - bl ItemId_GetDescription - adds r4, r0, 0 - movs r0, 0x2 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl AddTextPrinterParameterized5 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080966EC: .4byte sPSSData -_080966F0: .4byte 0x00000ce2 - thumb_func_end sub_8096694 - - thumb_func_start sub_80966F4 -sub_80966F4: @ 80966F4 - push {lr} - ldr r0, _0809671C @ =sPSSData - ldr r0, [r0] - ldr r1, _08096720 @ =0x00002226 - adds r0, r1 - movs r1, 0x19 - strh r1, [r0] - ldr r1, _08096724 @ =gUnknown_83D35DC - movs r3, 0xD2 - lsls r3, 1 - movs r0, 0 - movs r2, 0x80 - bl LoadBgTiles - movs r0, 0 - bl sub_8096898 - pop {r0} - bx r0 - .align 2, 0 -_0809671C: .4byte sPSSData -_08096720: .4byte 0x00002226 -_08096724: .4byte gUnknown_83D35DC - thumb_func_end sub_80966F4 - - thumb_func_start sub_8096728 -sub_8096728: @ 8096728 - push {r4,r5,lr} - sub sp, 0x10 - ldr r0, _08096740 @ =sPSSData - ldr r0, [r0] - ldr r2, _08096744 @ =0x00002226 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, 0 - bne _08096748 - movs r0, 0 - b _080967AE - .align 2, 0 -_08096740: .4byte sPSSData -_08096744: .4byte 0x00002226 -_08096748: - subs r0, 0x1 - strh r0, [r1] - ldrh r1, [r1] - movs r0, 0x19 - subs r5, r0, r1 - movs r4, 0 - cmp r4, r5 - bge _08096798 -_08096758: - movs r0, 0 - movs r1, 0xA - bl GetBgAttribute - adds r1, r0, 0 - ldr r0, _080967B8 @ =sPSSData - ldr r0, [r0] - ldr r2, _080967BC @ =0x00002226 - adds r0, r2 - adds r1, 0x14 - ldrh r0, [r0] - adds r1, r0 - adds r1, r4 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x19 - str r0, [sp, 0xC] - movs r0, 0 - movs r3, 0xC - bl WriteSequenceToBgTilemapBuffer - adds r4, 0x1 - cmp r4, r5 - blt _08096758 -_08096798: - adds r0, r5, 0 - bl sub_8096898 - ldr r0, _080967B8 @ =sPSSData - ldr r0, [r0] - ldr r1, _080967BC @ =0x00002226 - adds r0, r1 - ldrh r1, [r0] - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_080967AE: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080967B8: .4byte sPSSData -_080967BC: .4byte 0x00002226 - thumb_func_end sub_8096728 - - thumb_func_start sub_80967C0 -sub_80967C0: @ 80967C0 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _080967D8 @ =sPSSData - ldr r0, [r5] - ldr r4, _080967DC @ =0x00002226 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x19 - bne _080967E0 - movs r0, 0 - b _08096886 - .align 2, 0 -_080967D8: .4byte sPSSData -_080967DC: .4byte 0x00002226 -_080967E0: - cmp r0, 0 - bne _080967FC - movs r0, 0x1 - str r0, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0x19 - movs r3, 0xB - bl FillBgTilemapBufferRect -_080967FC: - ldr r1, [r5] - adds r1, r4 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldrh r1, [r1] - movs r0, 0x19 - subs r5, r0, r1 - movs r4, 0 - cmp r4, r5 - bge _08096852 -_08096812: - movs r0, 0 - movs r1, 0xA - bl GetBgAttribute - adds r1, r0, 0 - ldr r0, _08096890 @ =sPSSData - ldr r0, [r0] - ldr r2, _08096894 @ =0x00002226 - adds r0, r2 - adds r1, 0x14 - ldrh r0, [r0] - adds r1, r0 - adds r1, r4 - lsls r1, 16 - lsrs r1, 16 - lsls r2, r4, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x19 - str r0, [sp, 0xC] - movs r0, 0 - movs r3, 0xC - bl WriteSequenceToBgTilemapBuffer - adds r4, 0x1 - cmp r4, r5 - blt _08096812 -_08096852: - adds r0, r5, 0 - bl sub_8096898 - lsls r2, r5, 24 - lsrs r2, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xA - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r3, 0xB - bl FillBgTilemapBufferRect - ldr r0, _08096890 @ =sPSSData - ldr r0, [r0] - ldr r1, _08096894 @ =0x00002226 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x19 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 -_08096886: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08096890: .4byte sPSSData -_08096894: .4byte 0x00002226 - thumb_func_end sub_80967C0 - - thumb_func_start sub_8096898 -sub_8096898: @ 8096898 - push {r4-r7,lr} - sub sp, 0xC - adds r7, r0, 0 - cmp r7, 0 - beq _080968D0 - movs r1, 0xD2 - lsls r1, 1 - lsls r4, r7, 24 - lsrs r4, 24 - str r4, [sp] - movs r6, 0x1 - str r6, [sp, 0x4] - movs r5, 0xF - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0xB - bl FillBgTilemapBufferRect - ldr r1, _08096920 @ =0x000009a4 - str r4, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0 - movs r2, 0 - movs r3, 0x14 - bl FillBgTilemapBufferRect -_080968D0: - ldr r1, _08096924 @ =0x000001a5 - lsls r5, r7, 24 - lsrs r5, 24 - movs r4, 0x1 - str r4, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - movs r6, 0xF - str r6, [sp, 0x8] - movs r0, 0 - adds r2, r5, 0 - movs r3, 0xC - bl FillBgTilemapBufferRect - movs r1, 0xD3 - lsls r1, 1 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - adds r2, r5, 0 - movs r3, 0xB - bl FillBgTilemapBufferRect - ldr r1, _08096928 @ =0x000001a7 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - adds r2, r5, 0 - movs r3, 0x14 - bl FillBgTilemapBufferRect - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096920: .4byte 0x000009a4 -_08096924: .4byte 0x000001a5 -_08096928: .4byte 0x000001a7 - thumb_func_end sub_8096898 - - thumb_func_start sub_809692C -sub_809692C: @ 809692C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809694C - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8096624 - ldr r0, _08096954 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0809694C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096954: .4byte SpriteCallbackDummy - thumb_func_end sub_809692C - - thumb_func_start sub_8096958 -sub_8096958: @ 8096958 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _0809696A - cmp r1, 0x1 - beq _08096986 - b _080969B4 -_0809696A: - ldrh r0, [r3, 0x20] - lsls r0, 4 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x22] - lsls r0, 4 - strh r0, [r3, 0x32] - movs r0, 0xA - strh r0, [r3, 0x34] - movs r0, 0x15 - strh r0, [r3, 0x36] - strh r1, [r3, 0x38] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] -_08096986: - ldrh r1, [r3, 0x30] - ldrh r0, [r3, 0x34] - subs r1, r0 - strh r1, [r3, 0x30] - ldrh r0, [r3, 0x32] - ldrh r2, [r3, 0x36] - subs r0, r2 - strh r0, [r3, 0x32] - lsls r1, 16 - asrs r1, 20 - strh r1, [r3, 0x20] - lsls r0, 16 - asrs r0, 20 - strh r0, [r3, 0x22] - ldrh r0, [r3, 0x38] - adds r0, 0x1 - strh r0, [r3, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _080969B4 - ldr r0, _080969B8 @ =sub_80969BC - str r0, [r3, 0x1C] -_080969B4: - pop {r0} - bx r0 - .align 2, 0 -_080969B8: .4byte sub_80969BC - thumb_func_end sub_8096958 - - thumb_func_start sub_80969BC -sub_80969BC: @ 80969BC - ldr r1, _080969F0 @ =sPSSData - ldr r3, [r1] - movs r1, 0xCB - lsls r1, 4 - adds r3, r1 - ldr r1, [r3] - ldrh r1, [r1, 0x20] - adds r1, 0x4 - strh r1, [r0, 0x20] - ldr r2, [r3] - ldrh r1, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r1, r2 - adds r1, 0x8 - strh r1, [r0, 0x22] - ldr r1, [r3] - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - bx lr - .align 2, 0 -_080969F0: .4byte sPSSData - thumb_func_end sub_80969BC - - thumb_func_start sub_80969F4 -sub_80969F4: @ 80969F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08096A06 - cmp r1, 0x1 - beq _08096A22 - b _08096A6A -_08096A06: - ldrh r0, [r4, 0x20] - lsls r0, 4 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0xA - strh r0, [r4, 0x34] - movs r0, 0x15 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08096A22: - ldrh r0, [r4, 0x34] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - ldrh r2, [r4, 0x32] - adds r1, r2 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08096A6A - adds r0, r4, 0 - bl sub_80962A8 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - bl sub_80962F0 - ldr r0, _08096A70 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_08096A6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096A70: .4byte SpriteCallbackDummy - thumb_func_end sub_80969F4 - - thumb_func_start sub_8096A74 -sub_8096A74: @ 8096A74 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08096A86 - cmp r1, 0x1 - beq _08096AA2 - b _08096B00 -_08096A86: - ldrh r0, [r4, 0x20] - lsls r0, 4 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0xA - strh r0, [r4, 0x34] - movs r0, 0x15 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08096AA2: - ldrh r1, [r4, 0x30] - ldrh r0, [r4, 0x34] - subs r1, r0 - strh r1, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - subs r0, r2 - strh r0, [r4, 0x32] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x22] - ldr r1, _08096B08 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08096B00 - adds r0, r4, 0 - bl sub_80962A8 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - bl sub_80962F0 - movs r0, 0 - strh r0, [r4, 0x24] - ldr r0, _08096B0C @ =sub_80969BC - str r0, [r4, 0x1C] -_08096B00: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096B08: .4byte gSineTable -_08096B0C: .4byte sub_80969BC - thumb_func_end sub_8096A74 - - thumb_func_start sub_8096B10 -sub_8096B10: @ 8096B10 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08096B22 - cmp r1, 0x1 - beq _08096B3E - b _08096B9E -_08096B22: - ldrh r0, [r4, 0x20] - lsls r0, 4 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0xA - strh r0, [r4, 0x34] - movs r0, 0x15 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08096B3E: - ldrh r0, [r4, 0x34] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - ldrh r2, [r4, 0x32] - adds r1, r2 - strh r1, [r4, 0x32] - lsls r0, 16 - asrs r0, 20 - strh r0, [r4, 0x20] - lsls r1, 16 - asrs r1, 20 - strh r1, [r4, 0x22] - ldr r1, _08096BA4 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 4 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 20 - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08096B9E - adds r0, r4, 0 - bl sub_80962A8 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x3C] - lsls r2, 24 - lsrs r2, 24 - bl sub_80962F0 - ldr r0, _08096BA8 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x24] -_08096B9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096BA4: .4byte gSineTable -_08096BA8: .4byte SpriteCallbackDummy - thumb_func_end sub_8096B10 - - thumb_func_start sub_8096BAC -sub_8096BAC: @ 8096BAC - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x22] - subs r0, 0x8 - strh r0, [r2, 0x22] - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _08096BDC - ldr r0, _08096BE0 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - adds r0, r2, 0 - bl sub_80962A8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8096624 -_08096BDC: - pop {r0} - bx r0 - .align 2, 0 -_08096BE0: .4byte SpriteCallbackDummy - thumb_func_end sub_8096BAC - - thumb_func_start sub_8096BE4 -sub_8096BE4: @ 8096BE4 - ldr r3, _08096BF4 @ =gUnknown_203982C - str r0, [r3] - str r1, [r0] - movs r1, 0 - strb r2, [r0, 0x5] - strb r1, [r0, 0x4] - bx lr - .align 2, 0 -_08096BF4: .4byte gUnknown_203982C - thumb_func_end sub_8096BE4 - - thumb_func_start sub_8096BF8 -sub_8096BF8: @ 8096BF8 - push {r4,r5,lr} - ldr r2, _08096C3C @ =gUnknown_203982C - ldr r1, [r2] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08096C36 - movs r4, 0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _08096C2E - adds r5, r2, 0 -_08096C0E: - ldr r0, [r5] - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - ldr r0, [r0] - adds r0, r1 - ldr r1, [r0, 0x10] - bl _call_via_r1 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, [r5] - ldrb r0, [r0, 0x4] - cmp r4, r0 - bcc _08096C0E -_08096C2E: - ldr r0, _08096C3C @ =gUnknown_203982C - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x4] -_08096C36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096C3C: .4byte gUnknown_203982C - thumb_func_end sub_8096BF8 - - thumb_func_start sub_8096C40 -sub_8096C40: @ 8096C40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r0 - mov r10, r3 - ldr r0, [sp, 0x24] - ldr r3, [sp, 0x28] - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - lsls r1, 16 - lsrs r1, 16 - mov r12, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp] - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _08096CC0 @ =gUnknown_203982C - ldr r2, [r0] - ldrb r0, [r2, 0x4] - adds r1, r0, 0 - ldrb r7, [r2, 0x5] - cmp r1, r7 - bcs _08096CC8 - adds r0, 0x1 - strb r0, [r2, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r1, r0 - lsls r0, r4, 1 - strh r0, [r1, 0x8] - ldr r2, [sp] - lsls r0, r2, 5 - add r0, r12 - lsls r0, 1 - add r0, r9 - str r0, [r1, 0x4] - adds r0, r3, 0 - muls r0, r6 - add r0, r8 - lsls r0, 1 - add r0, r10 - str r0, [r1] - strh r5, [r1, 0xC] - strh r6, [r1, 0xA] - ldr r0, _08096CC4 @ =sub_8096CDC - str r0, [r1, 0x10] - movs r0, 0x1 - b _08096CCA - .align 2, 0 -_08096CC0: .4byte gUnknown_203982C -_08096CC4: .4byte sub_8096CDC -_08096CC8: - movs r0, 0 -_08096CCA: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8096C40 - - thumb_func_start sub_8096CDC -sub_8096CDC: @ 8096CDC - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - b _08096D06 -_08096CE4: - ldr r0, [r4] - ldr r1, [r4, 0x4] - ldrh r2, [r4, 0x8] - lsrs r2, 1 - bl CpuSet - ldr r0, [r4, 0x4] - adds r0, 0x40 - str r0, [r4, 0x4] - ldrh r1, [r4, 0xA] - lsls r1, 1 - ldr r0, [r4] - adds r0, r1 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08096D06: - ldrh r0, [r4, 0xC] - cmp r5, r0 - bcc _08096CE4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8096CDC - - thumb_func_start sub_8096D14 -sub_8096D14: @ 8096D14 - push {r4-r7,lr} - mov r12, r0 - ldr r0, [sp, 0x14] - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _08096D60 @ =gUnknown_203982C - ldr r2, [r0] - ldrb r0, [r2, 0x4] - adds r1, r0, 0 - ldrb r7, [r2, 0x5] - cmp r1, r7 - bcs _08096D68 - adds r0, 0x1 - strb r0, [r2, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r1, r0 - lsls r0, r3, 1 - strh r0, [r1, 0x8] - lsls r0, r4, 5 - adds r0, r6 - lsls r0, 1 - add r0, r12 - str r0, [r1, 0x4] - strh r5, [r1, 0xC] - ldr r0, _08096D64 @ =sub_8096D70 - str r0, [r1, 0x10] - movs r0, 0x1 - b _08096D6A - .align 2, 0 -_08096D60: .4byte gUnknown_203982C -_08096D64: .4byte sub_8096D70 -_08096D68: - movs r0, 0 -_08096D6A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8096D14 - - thumb_func_start sub_8096D70 -sub_8096D70: @ 8096D70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - movs r0, 0 - ldrh r1, [r6, 0xC] - cmp r0, r1 - bcs _08096DFE - movs r7, 0x80 - lsls r7, 5 - mov r5, sp - ldr r2, _08096DBC @ =0x040000d4 - mov r8, r2 - movs r1, 0x81 - lsls r1, 24 - mov r10, r1 -_08096D96: - ldr r2, [r6, 0x4] - ldrh r3, [r6, 0x8] - mov r12, r2 - adds r0, 0x1 - mov r9, r0 - cmp r3, r7 - bhi _08096DC0 - movs r0, 0 - strh r0, [r5] - mov r2, sp - mov r0, r8 - str r2, [r0] - mov r1, r12 - str r1, [r0, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 - mov r1, r8 - b _08096DE8 - .align 2, 0 -_08096DBC: .4byte 0x040000d4 -_08096DC0: - movs r4, 0 - strh r4, [r5] - ldr r1, _08096E10 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _08096E14 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r7 - subs r3, r7 - cmp r3, r7 - bhi _08096DC0 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 -_08096DE8: - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, r12 - adds r0, 0x40 - str r0, [r6, 0x4] - mov r1, r9 - lsls r0, r1, 16 - lsrs r0, 16 - ldrh r2, [r6, 0xC] - cmp r0, r2 - bcc _08096D96 -_08096DFE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096E10: .4byte 0x040000d4 -_08096E14: .4byte 0x81000800 - thumb_func_end sub_8096D70 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_storage_system_2.s b/asm/pokemon_storage_system_2.s new file mode 100644 index 000000000..50a81915d --- /dev/null +++ b/asm/pokemon_storage_system_2.s @@ -0,0 +1,22320 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start PSS_RenderTextToVramViaBuffer +PSS_RenderTextToVramViaBuffer: @ 808BEB4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r0, [sp, 0x24] + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x28] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x1C] + str r1, [sp, 0x20] + ldr r1, _0808BF30 @ =0x00ffffff + ldr r0, [sp, 0x1C] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 21 + orrs r0, r1 + str r0, [sp, 0x1C] + ldr r1, _0808BF34 @ =0xffffff00 + add r5, sp, 0x1C + ldr r0, [r5, 0x4] + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + str r0, [r5, 0x4] + adds r0, r5, 0 + bl AddWindow + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r4, r0, 24 + lsrs r4, 24 + mov r0, r9 + lsls r1, r0, 4 + orrs r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x7 + bl GetWindowAttribute + adds r6, r0, 0 + ldrb r0, [r5, 0x3] + lsls r0, 5 + adds r0, r6 + mov r8, r0 + ldr r1, [sp, 0x28] + cmp r1, 0 + bne _0808BF38 + add r0, sp, 0x14 + b _0808BF3C + .align 2, 0 +_0808BF30: .4byte 0x00ffffff +_0808BF34: .4byte 0xffffff00 +_0808BF38: + add r0, sp, 0x14 + mov r1, r9 +_0808BF3C: + strb r1, [r0] + add r1, sp, 0x14 + movs r2, 0 + movs r0, 0xF + strb r0, [r1, 0x1] + movs r0, 0xE + strb r0, [r1, 0x2] + mov r0, r10 + lsls r4, r0, 24 + lsrs r0, r4, 24 + str r2, [sp] + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0xC] + ldr r1, [sp, 0x24] + str r1, [sp, 0x10] + movs r1, 0x1 + movs r3, 0x2 + bl AddTextPrinterParameterized4 + ldr r0, [sp, 0x50] + mov r10, r4 + cmp r0, 0x6 + ble _0808BF72 + movs r0, 0x6 +_0808BF72: + ldr r4, [sp, 0x50] + subs r4, 0x6 + cmp r0, 0 + ble _0808BFA4 + adds r5, r0, 0 +_0808BF7C: + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x40 + bl CpuSet + adds r1, r7, 0 + adds r1, 0x80 + mov r0, r8 + movs r2, 0x40 + bl CpuSet + adds r6, 0x80 + movs r2, 0x80 + add r8, r2 + movs r0, 0x80 + lsls r0, 1 + adds r7, r0 + subs r5, 0x1 + cmp r5, 0 + bne _0808BF7C +_0808BFA4: + cmp r4, 0 + ble _0808BFC4 + add r0, sp, 0x18 + mov r2, r9 + lsls r1, r2, 4 + orrs r1, r2 + strh r1, [r0] + lsls r2, r4, 7 + ldr r1, _0808BFDC @ =0x001fffff + ands r2, r1 + movs r1, 0x80 + lsls r1, 17 + orrs r2, r1 + adds r1, r7, 0 + bl CpuSet +_0808BFC4: + mov r1, r10 + lsrs r0, r1, 24 + bl RemoveWindow + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808BFDC: .4byte 0x001fffff + thumb_func_end PSS_RenderTextToVramViaBuffer + + thumb_func_start sub_808BFE0 +sub_808BFE0: @ 808BFE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r0, [sp, 0x20] + str r1, [sp, 0x24] + adds r6, r3, 0 + ldr r0, [sp, 0x4C] + mov r9, r0 + ldr r1, [sp, 0x50] + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x28] + lsls r6, 24 + lsrs r6, 24 + mov r2, r9 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, [sp, 0x20] + bl StringLength_Multibyte + lsls r0, 24 + ldr r2, _0808C0CC @ =0x00ffffff + ldr r1, [sp, 0x18] + ands r1, r2 + orrs r1, r0 + str r1, [sp, 0x18] + ldr r1, _0808C0D0 @ =0xffffff00 + add r2, sp, 0x18 + mov r8, r2 + ldr r0, [r2, 0x4] + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r5, [sp, 0x18] + lsrs r5, 24 + lsls r5, 5 + mov r0, r8 + bl AddWindow + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, r6, 4 + orrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x7 + bl GetWindowAttribute + adds r7, r0, 0 + mov r0, r8 + ldrb r0, [r0, 0x3] + lsls r0, 5 + mov r8, r0 + add r8, r7 + add r0, sp, 0x14 + movs r1, 0 + strb r6, [r0] + mov r2, r9 + strb r2, [r0, 0x1] + mov r2, r10 + strb r2, [r0, 0x2] + str r1, [sp] + str r1, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + ldr r0, [sp, 0x20] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x2 + bl AddTextPrinterParameterized4 + lsrs r5, 1 + adds r0, r7, 0 + ldr r1, [sp, 0x24] + adds r2, r5, 0 + bl CpuSet + ldr r2, [sp, 0x24] + ldr r0, [sp, 0x28] + adds r1, r2, r0 + mov r0, r8 + adds r2, r5, 0 + bl CpuSet + adds r0, r4, 0 + bl RemoveWindow + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808C0CC: .4byte 0x00ffffff +_0808C0D0: .4byte 0xffffff00 + thumb_func_end sub_808BFE0 + + thumb_func_start CountMonsInBox +CountMonsInBox: @ 808C0D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + movs r5, 0 +_0808C0DE: + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r6, 0 + movs r2, 0xB + bl GetBoxMonDataAt + cmp r0, 0 + beq _0808C0F4 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0808C0F4: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _0808C0DE + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CountMonsInBox + + thumb_func_start GetFirstFreeBoxSpot +GetFirstFreeBoxSpot: @ 808C108 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 +_0808C110: + lsls r1, r4, 24 + lsrs r1, 24 + adds r0, r5, 0 + movs r2, 0xB + bl GetBoxMonDataAt + cmp r0, 0 + bne _0808C126 + lsls r0, r4, 16 + asrs r0, 16 + b _0808C134 +_0808C126: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _0808C110 + movs r0, 0x1 + negs r0, r0 +_0808C134: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end GetFirstFreeBoxSpot + + thumb_func_start CountPartyNonEggMons +CountPartyNonEggMons: @ 808C13C + push {r4-r6,lr} + movs r5, 0 + movs r6, 0 +_0808C142: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0808C180 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0808C16A + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0808C16A + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_0808C16A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0808C142 + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0808C180: .4byte gPlayerParty + thumb_func_end CountPartyNonEggMons + + thumb_func_start CountPartyAliveNonEggMonsExcept +CountPartyAliveNonEggMonsExcept: @ 808C184 + push {r4-r7,lr} + lsls r0, 24 + movs r5, 0 + movs r6, 0 + lsrs r7, r0, 24 +_0808C18E: + cmp r5, r7 + beq _0808C1C6 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0808C1DC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0808C1C6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0808C1C6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0808C1C6 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_0808C1C6: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0808C18E + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0808C1DC: .4byte gPlayerParty + thumb_func_end CountPartyAliveNonEggMonsExcept + + thumb_func_start CountPartyAliveNonEggMons_IgnoreVar0x8004Slot +CountPartyAliveNonEggMons_IgnoreVar0x8004Slot: @ 808C1E0 + push {lr} + ldr r0, _0808C1F4 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0808C1F4: .4byte gSpecialVar_0x8004 + thumb_func_end CountPartyAliveNonEggMons_IgnoreVar0x8004Slot + + thumb_func_start CountPartyMons +CountPartyMons: @ 808C1F8 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_0808C1FE: + movs r0, 0x64 + muls r0, r4 + ldr r1, _0808C22C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0808C216 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0808C216: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _0808C1FE + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0808C22C: .4byte gPlayerParty + thumb_func_end CountPartyMons + + thumb_func_start StringCopyAndFillWithSpaces +StringCopyAndFillWithSpaces: @ 808C230 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl StringCopy + adds r1, r0, 0 + adds r5, r4 + cmp r1, r5 + bcs _0808C24E + movs r0, 0 +_0808C246: + strb r0, [r1] + adds r1, 0x1 + cmp r1, r5 + bcc _0808C246 +_0808C24E: + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end StringCopyAndFillWithSpaces + + thumb_func_start sub_808C25C +sub_808C25C: @ 808C25C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + adds r7, r3, 0 + ldr r5, [sp, 0x1C] + ldr r4, [sp, 0x20] + ldr r0, [sp, 0x24] + mov r9, r0 + ldr r0, [sp, 0x28] + ldr r3, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r0, r9 + lsls r0, 17 + mov r9, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r6, r2 + adds r0, r4, 0 + muls r0, r3 + adds r0, r5 + lsls r0, 1 + adds r7, r0 + movs r4, 0 + cmp r4, r8 + bcs _0808C2CC + mov r0, r9 + lsrs r0, 1 + mov r9, r0 + lsls r5, r3, 1 +_0808C2B2: + adds r0, r7, 0 + adds r1, r6, 0 + mov r3, r9 + lsrs r2, r3, 16 + bl CpuSet + adds r6, 0x40 + adds r7, r5 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _0808C2B2 +_0808C2CC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_808C25C + + thumb_func_start sub_808C2D8 +sub_808C2D8: @ 808C2D8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r4, r2 + lsls r3, 17 + lsrs r0, r3, 16 + str r0, [sp, 0x4] + movs r0, 0 + cmp r0, r10 + bcs _0808C382 + movs r6, 0x80 + lsls r6, 5 + mov r5, sp + ldr r7, _0808C344 @ =0x040000d4 + lsrs r3, 17 + mov r9, r3 + mov r1, r9 + movs r2, 0x81 + lsls r2, 24 + orrs r1, r2 + mov r9, r1 +_0808C31E: + adds r3, r4, 0 + ldr r2, [sp, 0x4] + movs r1, 0x40 + adds r1, r4 + mov r8, r1 + adds r0, 0x1 + mov r12, r0 + cmp r2, r6 + bhi _0808C348 + movs r0, 0 + strh r0, [r5] + mov r2, sp + str r2, [r7] + str r4, [r7, 0x4] + mov r0, r9 + str r0, [r7, 0x8] + ldr r0, [r7, 0x8] + b _0808C376 + .align 2, 0 +_0808C344: .4byte 0x040000d4 +_0808C348: + movs r4, 0 + strh r4, [r5] + ldr r1, _0808C394 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + ldr r0, _0808C398 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r6 + subs r2, r6 + cmp r2, r6 + bhi _0808C348 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + lsrs r0, r2, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_0808C376: + mov r4, r8 + mov r1, r12 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r10 + bcc _0808C31E +_0808C382: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808C394: .4byte 0x040000d4 +_0808C398: .4byte 0x81000800 + thumb_func_end sub_808C2D8 + + thumb_func_start c3_0808C39C +c3_0808C39C: @ 808C39C + push {r4-r7,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0808C3C4 @ =gTasks + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x4 + bls _0808C3B8 + b _0808C69C +_0808C3B8: + lsls r0, 2 + ldr r1, _0808C3C8 @ =_0808C3CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808C3C4: .4byte gTasks +_0808C3C8: .4byte _0808C3CC + .align 2, 0 +_0808C3CC: + .4byte _0808C3E0 + .4byte _0808C448 + .4byte _0808C45C + .4byte _0808C5A6 + .4byte _0808C680 +_0808C3E0: + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext + ldrb r0, [r5, 0xA] + adds r1, r5, 0 + adds r1, 0x26 + bl sub_808C72C + bl LoadStdWindowFrameGfx + movs r0, 0 + movs r1, 0 + bl DrawDialogueFrame + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r1, _0808C444 @ =gUnknown_83CDA20 + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x2 + movs r3, 0xFF + bl AddTextPrinterParameterized2 + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + ldrh r0, [r5, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl CopyWindowToVram + b _0808C454 + .align 2, 0 +_0808C444: .4byte gUnknown_83CDA20 +_0808C448: + bl IsWeatherNotFadingIn + lsls r0, 24 + cmp r0, 0 + bne _0808C454 + b _0808C69C +_0808C454: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _0808C69C +_0808C45C: + bl Menu_ProcessInput + lsls r0, 24 + asrs r0, 24 + strh r0, [r5, 0xC] + movs r3, 0xC + ldrsh r1, [r5, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0808C50C + cmp r1, r0 + bgt _0808C47E + subs r0, 0x1 + cmp r1, r0 + beq _0808C484 + b _0808C530 +_0808C47E: + cmp r1, 0x4 + beq _0808C50C + b _0808C530 +_0808C484: + ldrh r3, [r5, 0xA] + strh r3, [r5, 0xE] + ldr r2, _0808C504 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0808C4A2 + subs r0, r3, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + cmp r0, 0 + bge _0808C4A2 + movs r0, 0x4 + strh r0, [r5, 0xE] +_0808C4A2: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0808C4BE + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _0808C4BE + movs r0, 0 + strh r0, [r5, 0xE] +_0808C4BE: + lsls r0, r3, 16 + asrs r0, 16 + ldrh r2, [r5, 0xE] + movs r3, 0xE + ldrsh r1, [r5, r3] + cmp r0, r1 + bne _0808C4CE + b _0808C69C +_0808C4CE: + movs r4, 0 + strh r2, [r5, 0xA] + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r1, _0808C508 @ =gUnknown_83CDA20 + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r2, [r0] + str r4, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized2 + b _0808C69C + .align 2, 0 +_0808C504: .4byte gMain +_0808C508: .4byte gUnknown_83CDA20 +_0808C50C: + movs r0, 0 + movs r1, 0x1 + bl ClearStdWindowAndFrame + ldrh r0, [r5, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl ClearStdWindowAndFrame + bl ScriptContext2_Disable + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask + b _0808C69C +_0808C530: + movs r3, 0xC + ldrsh r4, [r5, r3] + cmp r4, 0 + bne _0808C564 + bl CountPartyMons + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0808C564 + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, _0808C560 @ =gUnknown_84186B0 + str r4, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r4, 0x3 + str r4, [sp, 0xC] + b _0808C66E + .align 2, 0 +_0808C560: .4byte gUnknown_84186B0 +_0808C564: + movs r1, 0xC + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _0808C598 + bl CountPartyMons + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0808C598 + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, _0808C594 @ =gUnknown_8418690 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r4, 0x3 + str r4, [sp, 0xC] + b _0808C66E + .align 2, 0 +_0808C594: .4byte gUnknown_8418690 +_0808C598: + movs r0, 0x1 + movs r1, 0 + bl FadeScreen + movs r0, 0x4 + strh r0, [r5, 0x8] + b _0808C69C +_0808C5A6: + ldr r0, _0808C5D0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r7, 0x3 + adds r4, r7, 0 + ands r4, r1 + cmp r4, 0 + beq _0808C5D8 + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r1, _0808C5D4 @ =gUnknown_83CDA20 + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r2, [r0] + movs r0, 0 + str r0, [sp] + b _0808C664 + .align 2, 0 +_0808C5D0: .4byte gMain +_0808C5D4: .4byte gUnknown_83CDA20 +_0808C5D8: + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0 + beq _0808C624 + ldrh r0, [r5, 0xA] + subs r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0808C5F4 + movs r0, 0x4 + strh r0, [r5, 0xA] +_0808C5F4: + movs r0, 0x1 + negs r0, r0 + bl Menu_MoveCursor + bl Menu_GetCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r1, _0808C620 @ =gUnknown_83CDA20 + movs r3, 0xA + ldrsh r0, [r5, r3] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r2, [r0] + str r4, [sp] + b _0808C664 + .align 2, 0 +_0808C620: .4byte gUnknown_83CDA20 +_0808C624: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0808C69C + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0808C63C + strh r6, [r5, 0xA] +_0808C63C: + movs r0, 0x1 + bl Menu_MoveCursor + bl Menu_GetCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r1, _0808C67C @ =gUnknown_83CDA20 + movs r2, 0xA + ldrsh r0, [r5, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r2, [r0] + str r6, [sp] +_0808C664: + movs r4, 0x2 + str r4, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + str r7, [sp, 0xC] +_0808C66E: + movs r0, 0 + movs r1, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized2 + strh r4, [r5, 0x8] + b _0808C69C + .align 2, 0 +_0808C67C: .4byte gUnknown_83CDA20 +_0808C680: + ldr r0, _0808C6A4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0808C69C + bl CleanupOverworldWindowsAndTilemaps + ldrb r0, [r5, 0xC] + bl sub_808CDE4 + adds r0, r4, 0 + bl DestroyTask +_0808C69C: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808C6A4: .4byte gPaletteFade + thumb_func_end c3_0808C39C + + thumb_func_start ShowPokemonStorageSystem +ShowPokemonStorageSystem: @ 808C6A8 + push {lr} + ldr r0, _0808C6D0 @ =c3_0808C39C + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0808C6D4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0808C6D0: .4byte c3_0808C39C +_0808C6D4: .4byte gTasks + thumb_func_end ShowPokemonStorageSystem + + thumb_func_start mapldr_0808C6D8 +mapldr_0808C6D8: @ 808C6D8 + push {r4,r5,lr} + ldr r0, _0808C71C @ =gMain + ldr r5, [r0, 0xC] + movs r0, 0 + bl SetVBlankCallback + ldr r4, _0808C720 @ =c3_0808C39C + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0808C724 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + ldr r2, _0808C728 @ =sPreviousBoxOption + ldrb r2, [r2] + strh r2, [r1, 0xA] + bl _call_via_r4 + adds r0, r5, 0 + bl SetVBlankCallback + bl FadeInFromBlack + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808C71C: .4byte gMain +_0808C720: .4byte c3_0808C39C +_0808C724: .4byte gTasks +_0808C728: .4byte sPreviousBoxOption + thumb_func_end mapldr_0808C6D8 + + thumb_func_start sub_808C72C +sub_808C72C: @ 808C72C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0xC + adds r6, r0, 0 + mov r10, r1 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0808C7AC @ =gUnknown_83CDA48 + bl AddWindow + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, r5, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0 + bl DrawStdWindowFrame + movs r0, 0x2 + movs r1, 0 + bl GetMenuCursorDimensionByFont + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x10 + mov r9, r0 + str r0, [sp] + movs r0, 0x5 + mov r8, r0 + str r0, [sp, 0x4] + ldr r0, _0808C7B0 @ =gUnknown_83CDA20 + str r0, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x2 + movs r3, 0x2 + bl PrintTextArray + mov r0, r9 + str r0, [sp] + mov r0, r8 + str r0, [sp, 0x4] + str r6, [sp, 0x8] + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl Menu_InitCursor + mov r0, r10 + strh r5, [r0] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0808C7AC: .4byte gUnknown_83CDA48 +_0808C7B0: .4byte gUnknown_83CDA20 + thumb_func_end sub_808C72C + + thumb_func_start sub_808C7B4 +sub_808C7B4: @ 808C7B4 + push {lr} + bl sub_808FDF0 + ldr r1, _0808C7D0 @ =sPreviousBoxOption + strb r0, [r1] + ldr r1, _0808C7D4 @ =gFieldCallback + ldr r0, _0808C7D8 @ =mapldr_0808C6D8 + str r0, [r1] + ldr r0, _0808C7DC @ =CB2_ReturnToField + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0808C7D0: .4byte sPreviousBoxOption +_0808C7D4: .4byte gFieldCallback +_0808C7D8: .4byte mapldr_0808C6D8 +_0808C7DC: .4byte CB2_ReturnToField + thumb_func_end sub_808C7B4 + + thumb_func_start ResetPokemonStorageSystem +ResetPokemonStorageSystem: @ 808C7E0 + push {r4-r6,lr} + movs r0, 0 + bl SetCurrentBox + movs r5, 0 +_0808C7EA: + movs r4, 0 + lsls r6, r5, 24 +_0808C7EE: + lsls r1, r4, 24 + lsrs r1, 24 + lsrs r0, r6, 24 + bl ZeroBoxMonAt + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _0808C7EE + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0808C7EA + movs r5, 0 +_0808C80E: + lsls r0, r5, 24 + lsrs r0, 24 + bl GetBoxNamePtr + ldr r1, _0808C850 @ =gUnknown_84186CD + bl StringCopy + adds r4, r5, 0x1 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0xD + bls _0808C80E + movs r5, 0 +_0808C832: + lsls r0, r5, 24 + lsrs r0, 24 + movs r1, 0x3 + ands r1, r5 + bl SetBoxWallpaper + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0808C832 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0808C850: .4byte gUnknown_84186CD + thumb_func_end ResetPokemonStorageSystem + + thumb_func_start sub_808C854 +sub_808C854: @ 808C854 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x20 + adds r5, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r6, r1, 0 + lsls r2, 16 + lsrs r2, 16 + adds r7, r2, 0 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + ldr r0, _0808C8E8 @ =gUnknown_83CDA98 + str r0, [sp, 0x18] + ldr r1, _0808C8EC @ =0xffff0000 + add r4, sp, 0x18 + ldr r0, [r4, 0x4] + ands r0, r1 + orrs r0, r7 + str r0, [r4, 0x4] + mov r1, sp + ldr r0, _0808C8F0 @ =gUnknown_83CDAB8 + str r0, [sp] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1, 0x4] + strh r6, [r1, 0x6] + ldr r0, _0808C8F4 @ =gUnknown_83CE2B8 + str r0, [sp, 0x8] + movs r0, 0xC0 + lsls r0, 1 + strh r0, [r1, 0xC] + adds r0, r6, 0x1 + strh r0, [r1, 0xE] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + ldr r0, [sp, 0x38] + cmp r0, 0 + beq _0808C8B2 + adds r0, r4, 0 + bl LoadSpritePalette +_0808C8B2: + mov r0, sp + bl LoadSpriteSheets + ldr r0, _0808C8F8 @ =gUnknown_20397AC + str r5, [r0] + movs r1, 0x90 + lsls r1, 2 + adds r0, r5, r1 + strh r6, [r0] + adds r1, 0x2 + adds r0, r5, r1 + strh r7, [r0] + adds r1, 0x4 + adds r0, r5, r1 + mov r1, r8 + strb r1, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r5, r1 + ldr r1, [sp, 0x38] + str r1, [r0] + add sp, 0x20 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808C8E8: .4byte gUnknown_83CDA98 +_0808C8EC: .4byte 0xffff0000 +_0808C8F0: .4byte gUnknown_83CDAB8 +_0808C8F4: .4byte gUnknown_83CE2B8 +_0808C8F8: .4byte gUnknown_20397AC + thumb_func_end sub_808C854 + + thumb_func_start sub_808C8FC +sub_808C8FC: @ 808C8FC + push {r4,r5,lr} + ldr r5, _0808C93C @ =gUnknown_20397AC + ldr r1, [r5] + movs r2, 0x8F + lsls r2, 2 + adds r0, r1, r2 + ldr r0, [r0] + cmp r0, 0 + beq _0808C918 + adds r2, 0x6 + adds r0, r1, r2 + ldrh r0, [r0] + bl FreeSpritePaletteByTag +_0808C918: + ldr r0, [r5] + movs r4, 0x90 + lsls r4, 2 + adds r0, r4 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r5] + adds r0, r4 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808C93C: .4byte gUnknown_20397AC + thumb_func_end sub_808C8FC + + thumb_func_start sub_808C940 +sub_808C940: @ 808C940 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_808C9C4 + pop {r0} + bx r0 + thumb_func_end sub_808C940 + + thumb_func_start sub_808C950 +sub_808C950: @ 808C950 + push {lr} + bl sub_808CBA4 + pop {r0} + bx r0 + thumb_func_end sub_808C950 + + thumb_func_start sub_808C95C +sub_808C95C: @ 808C95C + push {lr} + ldr r0, _0808C974 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0808C978 + movs r0, 0x5 + bl PlaySE + movs r0, 0xC9 + b _0808C9C0 + .align 2, 0 +_0808C974: .4byte gMain +_0808C978: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0808C998 + movs r0, 0x5 + bl PlaySE + ldr r0, _0808C994 @ =gUnknown_20397AC + ldr r0, [r0] + movs r1, 0x91 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + b _0808C9C0 + .align 2, 0 +_0808C994: .4byte gUnknown_20397AC +_0808C998: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0808C9AC + movs r0, 0x5 + bl PlaySE + bl sub_808CC44 + b _0808C9BE +_0808C9AC: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0808C9BE + movs r0, 0x5 + bl PlaySE + bl sub_808CC10 +_0808C9BE: + movs r0, 0xC8 +_0808C9C0: + pop {r1} + bx r1 + thumb_func_end sub_808C95C + + thumb_func_start sub_808C9C4 +sub_808C9C4: @ 808C9C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x3C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x34] + str r1, [sp, 0x38] + movs r1, 0xC0 + lsls r1, 24 + ldr r0, [sp, 0x34] + orrs r0, r1 + str r0, [sp, 0x34] + ldr r1, _0808CB78 @ =0xffff0fff + add r4, sp, 0x34 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r4, 0x4] + add r0, sp, 0x1C + mov r8, r0 + movs r1, 0 + strh r1, [r0] + mov r0, sp + adds r0, 0x1E + strh r1, [r0] + str r4, [sp, 0x20] + ldr r0, _0808CB7C @ =gDummySpriteAnimTable + str r0, [sp, 0x24] + str r1, [sp, 0x28] + ldr r0, _0808CB80 @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x2C] + ldr r0, _0808CB84 @ =SpriteCallbackDummy + str r0, [sp, 0x30] + add r0, sp, 0x4 + mov r1, r8 + movs r2, 0x18 + bl memcpy + ldr r1, _0808CB88 @ =gUnknown_83CDA94 + mov r0, r8 + movs r2, 0x4 + bl memcpy + ldr r6, _0808CB8C @ =gUnknown_20397AC + ldr r0, [r6] + movs r1, 0x91 + lsls r1, 2 + adds r0, r1 + strb r5, [r0] + add r2, sp, 0x4 + ldr r1, [r6] + movs r5, 0x90 + lsls r5, 2 + adds r0, r1, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _0808CB90 @ =0x00000242 + adds r1, r3 + ldrh r0, [r1] + strh r0, [r2, 0x2] + adds r0, r2, 0 + movs r1, 0xA0 + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0808CB94 @ =gSprites + adds r0, r1 + str r0, [r3] + ldrb r2, [r4, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r4, 0x3] + add r1, sp, 0x4 + adds r3, r5 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _0808CB98 @ =gUnknown_83CDA70 + str r0, [sp, 0xC] + movs r4, 0 + mov r7, r8 +_0808CA90: + ldr r0, [r6] + ldr r1, _0808CB9C @ =0x00000246 + adds r0, r1 + ldrb r3, [r0] + add r0, sp, 0x4 + movs r1, 0x7C + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [r6] + lsls r3, r4, 2 + adds r2, 0x4 + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0808CB94 @ =gSprites + adds r1, r0, r1 + str r1, [r2] + movs r5, 0 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _0808CACA + movs r0, 0xC4 + strh r0, [r1, 0x20] + movs r5, 0x2 +_0808CACA: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0808CAEE + ldr r1, [r6] + adds r1, 0x4 + adds r1, r3 + ldr r2, [r1] + movs r0, 0x70 + strh r0, [r2, 0x22] + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0808CAEE: + ldr r0, [r6] + adds r0, 0x4 + adds r0, r3 + ldr r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _0808CA90 + movs r4, 0 + ldr r5, _0808CB8C @ =gUnknown_20397AC +_0808CB0C: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 19 + movs r3, 0xF8 + lsls r3, 15 + adds r0, r3 + lsrs r0, 16 + lsls r2, r4, 24 + lsrs r2, 24 + ldr r1, [r5] + ldr r3, _0808CB9C @ =0x00000246 + adds r1, r3 + ldrb r1, [r1] + str r1, [sp] + movs r1, 0x58 + movs r3, 0 + bl sub_809223C + adds r2, r0, 0 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x20 + adds r0, r1 + str r2, [r0] + cmp r2, 0 + beq _0808CB54 + movs r1, 0x1 + cmp r4, 0 + bne _0808CB4C + movs r3, 0x1 + negs r3, r3 + adds r1, r3, 0 +_0808CB4C: + strh r1, [r2, 0x2E] + ldr r1, [r0] + ldr r0, _0808CBA0 @ =sub_808CD64 + str r0, [r1, 0x1C] +_0808CB54: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0808CB0C + bl sub_808CC74 + adds r0, r7, 0 + movs r1, 0x5 + movs r2, 0x3 + bl sub_808CCFC + add sp, 0x3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808CB78: .4byte 0xffff0fff +_0808CB7C: .4byte gDummySpriteAnimTable +_0808CB80: .4byte gDummySpriteAffineAnimTable +_0808CB84: .4byte SpriteCallbackDummy +_0808CB88: .4byte gUnknown_83CDA94 +_0808CB8C: .4byte gUnknown_20397AC +_0808CB90: .4byte 0x00000242 +_0808CB94: .4byte gSprites +_0808CB98: .4byte gUnknown_83CDA70 +_0808CB9C: .4byte 0x00000246 +_0808CBA0: .4byte sub_808CD64 + thumb_func_end sub_808C9C4 + + thumb_func_start sub_808CBA4 +sub_808CBA4: @ 808CBA4 + push {r4-r6,lr} + ldr r4, _0808CC0C @ =gUnknown_20397AC + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _0808CBBA + bl DestroySprite + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_0808CBBA: + movs r5, 0 + adds r6, r4, 0 +_0808CBBE: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0x4 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _0808CBDA + bl DestroySprite + ldr r0, [r6] + adds r0, 0x4 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_0808CBDA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _0808CBBE + movs r5, 0 +_0808CBE6: + ldr r0, _0808CC0C @ =gUnknown_20397AC + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x20 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0808CBFA + bl DestroySprite +_0808CBFA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _0808CBE6 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0808CC0C: .4byte gUnknown_20397AC + thumb_func_end sub_808CBA4 + + thumb_func_start sub_808CC10 +sub_808CC10: @ 808CC10 + push {lr} + ldr r2, _0808CC40 @ =gUnknown_20397AC + ldr r1, [r2] + movs r0, 0x91 + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bls _0808CC36 + ldr r0, [r2] + movs r1, 0x91 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_0808CC36: + bl sub_808CC74 + pop {r0} + bx r0 + .align 2, 0 +_0808CC40: .4byte gUnknown_20397AC + thumb_func_end sub_808CC10 + + thumb_func_start sub_808CC44 +sub_808CC44: @ 808CC44 + push {lr} + ldr r0, _0808CC5C @ =gUnknown_20397AC + ldr r2, [r0] + movs r1, 0x91 + lsls r1, 2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808CC60 + subs r1, r0, 0x1 + b _0808CC62 + .align 2, 0 +_0808CC5C: .4byte gUnknown_20397AC +_0808CC60: + movs r1, 0xD +_0808CC62: + movs r3, 0x91 + lsls r3, 2 + adds r0, r2, r3 + strb r1, [r0] + bl sub_808CC74 + pop {r0} + bx r0 + thumb_func_end sub_808CC44 + + thumb_func_start sub_808CC74 +sub_808CC74: @ 808CC74 + push {r4-r7,lr} + ldr r6, _0808CCF8 @ =gUnknown_20397AC + ldr r0, [r6] + movs r5, 0x91 + lsls r5, 2 + adds r0, r5 + ldrb r0, [r0] + bl CountMonsInBox + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, [r6] + movs r1, 0x8A + lsls r1, 2 + adds r4, r0, r1 + adds r0, r5 + ldrb r0, [r0] + bl GetBoxNamePtr + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + adds r1, r0, 0 + ldr r0, [r6] + movs r2, 0x8C + lsls r2, 2 + adds r0, r2 + cmp r1, r0 + bcs _0808CCC0 + movs r4, 0 + adds r3, r6, 0 +_0808CCB4: + strb r4, [r1] + adds r1, 0x1 + ldr r0, [r3] + adds r0, r2 + cmp r1, r0 + bcc _0808CCB4 +_0808CCC0: + movs r0, 0xFF + strb r0, [r1] + ldr r5, _0808CCF8 @ =gUnknown_20397AC + ldr r0, [r5] + movs r4, 0x8A + lsls r4, 2 + adds r0, r4 + movs r1, 0 + movs r2, 0x1 + bl sub_808CCFC + ldr r0, [r5] + adds r0, r4 + adds r1, r7, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, [r5] + adds r0, r4 + movs r1, 0x3 + movs r2, 0x3 + bl sub_808CCFC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808CCF8: .4byte gUnknown_20397AC + thumb_func_end sub_808CC74 + + thumb_func_start sub_808CCFC +sub_808CCFC: @ 808CCFC + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + ldr r6, _0808CD5C @ =gUnknown_20397AC + ldr r0, [r6] + movs r1, 0x90 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + bl GetSpriteTileStartByTag + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 11 + lsls r4, 8 + ldr r0, _0808CD60 @ =0x06010000 + adds r4, r0 + adds r1, r4 + lsls r5, 5 + adds r1, r5 + movs r2, 0x80 + lsls r2, 1 + movs r0, 0xF + str r0, [sp] + movs r0, 0xE + str r0, [sp, 0x4] + ldr r0, [r6] + adds r0, 0x28 + str r0, [sp, 0x8] + mov r0, r8 + movs r3, 0x4 + bl sub_808BFE0 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0808CD5C: .4byte gUnknown_20397AC +_0808CD60: .4byte 0x06010000 + thumb_func_end sub_808CCFC + + thumb_func_start sub_808CD64 +sub_808CD64: @ 808CD64 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0808CD94 + strh r2, [r1, 0x30] + ldrh r0, [r1, 0x2E] + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + adds r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _0808CD94 + strh r2, [r1, 0x32] + strh r2, [r1, 0x24] +_0808CD94: + pop {r0} + bx r0 + thumb_func_end sub_808CD64 + + thumb_func_start sub_808CD98 +sub_808CD98: @ 808CD98 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_8096BF8 + bl TransferPlttBuffer + ldr r0, _0808CDC0 @ =sPSSData + ldr r0, [r0] + movs r1, 0xB3 + lsls r1, 2 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x18 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0808CDC0: .4byte sPSSData + thumb_func_end sub_808CD98 + + thumb_func_start c2_Box +c2_Box: @ 808CDC4 + push {lr} + bl RunTasks + bl DoScheduledBgTilemapCopiesToVram + bl sub_808EFC8 + bl sub_808F99C + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + thumb_func_end c2_Box + + thumb_func_start sub_808CDE4 +sub_808CDE4: @ 808CDE4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl ResetTasks + ldr r0, _0808CE08 @ =sCurrentBoxOption + strb r5, [r0] + ldr r4, _0808CE0C @ =sPSSData + ldr r0, _0808CE10 @ =0x000062bc + bl Alloc + str r0, [r4] + cmp r0, 0 + bne _0808CE18 + ldr r0, _0808CE14 @ =sub_808C7B4 + bl SetMainCallback2 + b _0808CE4A + .align 2, 0 +_0808CE08: .4byte sCurrentBoxOption +_0808CE0C: .4byte sPSSData +_0808CE10: .4byte 0x000062bc +_0808CE14: .4byte sub_808C7B4 +_0808CE18: + movs r2, 0 + strb r5, [r0, 0x1] + ldr r0, [r4] + strb r2, [r0, 0x3] + ldr r0, _0808CE50 @ =gUnknown_20397BA + movs r1, 0 + strh r2, [r0] + ldr r0, [r4] + strb r1, [r0] + ldr r0, _0808CE54 @ =task_box_related_3 + movs r1, 0x3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, 0x4] + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext + bl StorageGetCurrentBox + ldr r1, _0808CE58 @ =sLastUsedBox + strb r0, [r1] + ldr r0, _0808CE5C @ =c2_Box + bl SetMainCallback2 +_0808CE4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808CE50: .4byte gUnknown_20397BA +_0808CE54: .4byte task_box_related_3 +_0808CE58: .4byte sLastUsedBox +_0808CE5C: .4byte c2_Box + thumb_func_end sub_808CDE4 + + thumb_func_start sub_808CE60 +sub_808CE60: @ 808CE60 + push {r4,lr} + bl ResetTasks + ldr r4, _0808CE80 @ =sPSSData + ldr r0, _0808CE84 @ =0x000062bc + bl Alloc + adds r1, r0, 0 + str r1, [r4] + cmp r1, 0 + bne _0808CE8C + ldr r0, _0808CE88 @ =sub_808C7B4 + bl SetMainCallback2 + b _0808CEB6 + .align 2, 0 +_0808CE80: .4byte sPSSData +_0808CE84: .4byte 0x000062bc +_0808CE88: .4byte sub_808C7B4 +_0808CE8C: + ldr r0, _0808CEBC @ =sCurrentBoxOption + ldrb r0, [r0] + movs r2, 0 + strb r0, [r1, 0x1] + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x3] + ldr r0, [r4] + strb r2, [r0] + ldr r0, _0808CEC0 @ =task_box_related_3 + movs r1, 0x3 + bl CreateTask + ldr r1, [r4] + strb r0, [r1, 0x4] + movs r0, 0x1C @ HELPCONTEXT_BILLS_PC + bl SetHelpContext + ldr r0, _0808CEC4 @ =c2_Box + bl SetMainCallback2 +_0808CEB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808CEBC: .4byte sCurrentBoxOption +_0808CEC0: .4byte task_box_related_3 +_0808CEC4: .4byte c2_Box + thumb_func_end sub_808CE60 + + thumb_func_start sub_808CEC8 +sub_808CEC8: @ 808CEC8 + push {lr} + movs r0, 0x10 + movs r1, 0 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0 + bl SetGpuReg + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1A + movs r1, 0 + bl SetGpuReg + movs r0, 0x1C + movs r1, 0 + bl SetGpuReg + movs r0, 0x1E + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end sub_808CEC8 + + thumb_func_start sub_808CF10 +sub_808CF10: @ 808CF10 + push {r4,lr} + sub sp, 0x4 + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + bl ClearDma3Requests + ldr r1, _0808CF80 @ =gReservedSpriteTileCount + movs r2, 0xA0 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _0808CF84 @ =sPSSData + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x8 + adds r1, 0x10 + movs r2, 0x8 + bl sub_8096BE4 + ldr r1, _0808CF88 @ =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + bl ClearScheduledBgCopiesToVram + movs r0, 0x3 + bl sub_80F7AD8 + ldr r2, _0808CF8C @ =gUnknown_83CE6F8 + movs r0, 0x4 + str r0, [sp] + movs r0, 0 + movs r1, 0x1 + movs r3, 0x8 + bl sub_80F7B80 + movs r0, 0 + movs r1, 0x1 + movs r2, 0 + bl sub_80F7CAC + ldr r0, [r4] + ldr r1, _0808CF90 @ =0x000002c7 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808CF80: .4byte gReservedSpriteTileCount +_0808CF84: .4byte sPSSData +_0808CF88: .4byte gKeyRepeatStartDelay +_0808CF8C: .4byte gUnknown_83CE6F8 +_0808CF90: .4byte 0x000002c7 + thumb_func_end sub_808CF10 + + thumb_func_start sub_808CF94 +sub_808CF94: @ 808CF94 + push {lr} + bl sub_8092B50 + ldr r2, _0808CFB8 @ =sInPartyMenu + movs r1, 0 + ldr r0, _0808CFBC @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _0808CFAA + movs r1, 0x1 +_0808CFAA: + strb r1, [r2] + ldr r1, _0808CFC0 @ =gUnknown_20397B6 + movs r0, 0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0808CFB8: .4byte sInPartyMenu +_0808CFBC: .4byte sPSSData +_0808CFC0: .4byte gUnknown_20397B6 + thumb_func_end sub_808CF94 + + thumb_func_start sub_808CFC4 +sub_808CFC4: @ 808CFC4 + push {lr} + ldr r0, _0808CFF0 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _0808CFE2 + movs r1, 0xFC + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldr r1, _0808CFF4 @ =0x00000b07 + movs r0, 0x52 + bl SetGpuReg +_0808CFE2: + movs r1, 0xFA + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + pop {r0} + bx r0 + .align 2, 0 +_0808CFF0: .4byte sPSSData +_0808CFF4: .4byte 0x00000b07 + thumb_func_end sub_808CFC4 + + thumb_func_start add_to_c3_somehow +add_to_c3_somehow: @ 808CFF8 + push {r4,lr} + ldr r4, _0808D018 @ =gTasks + ldr r1, _0808D01C @ =sPSSData + ldr r3, [r1] + ldrb r2, [r3, 0x4] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r4 + str r0, [r1] + movs r0, 0 + strb r0, [r3] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D018: .4byte gTasks +_0808D01C: .4byte sPSSData + thumb_func_end add_to_c3_somehow + + thumb_func_start task_box_related_3 +task_box_related_3: @ 808D020 + push {lr} + sub sp, 0x4 + ldr r0, _0808D03C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0xA + bls _0808D030 + b _0808D216 +_0808D030: + lsls r0, 2 + ldr r1, _0808D040 @ =_0808D044 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D03C: .4byte sPSSData +_0808D040: .4byte _0808D044 + .align 2, 0 +_0808D044: + .4byte _0808D070 + .4byte _0808D0C8 + .4byte _0808D0D6 + .4byte _0808D104 + .4byte _0808D120 + .4byte _0808D13E + .4byte _0808D15E + .4byte _0808D164 + .4byte _0808D16A + .4byte _0808D178 + .4byte _0808D1BE +_0808D070: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + movs r1, 0 + bl SetGpuReg + bl sub_808CF10 + ldr r0, _0808D0A0 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _0808D0BE + ldr r0, _0808D0A4 @ =sWhichToReshow + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808D0AE + cmp r0, 0x1 + bgt _0808D0A8 + cmp r0, 0 + beq _0808D0B4 + b _0808D0BE + .align 2, 0 +_0808D0A0: .4byte sPSSData +_0808D0A4: .4byte sWhichToReshow +_0808D0A8: + cmp r0, 0x2 + beq _0808D0BA + b _0808D0BE +_0808D0AE: + bl sub_8093660 + b _0808D0BE +_0808D0B4: + bl sub_80937B4 + b _0808D0BE +_0808D0BA: + bl sub_808EF0C +_0808D0BE: + bl sub_808EFE4 + bl sub_808F068 + b _0808D20C +_0808D0C8: + bl sub_808F044 + lsls r0, 24 + cmp r0, 0 + beq _0808D0D4 + b _0808D20C +_0808D0D4: + b _0808D148 +_0808D0D6: + movs r0, 0 + bl PutWindowTilemap + movs r0, 0x1 + bl ClearWindowTilemap + movs r0, 0 + str r0, [sp] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _0808D100 @ =0x05000080 + mov r0, sp + bl CpuSet + movs r0, 0x1 + movs r1, 0xB + movs r2, 0xE0 + bl TextWindow_SetUserSelectedFrame + b _0808D20C + .align 2, 0 +_0808D100: .4byte 0x05000080 +_0808D104: + bl sub_808CEC8 + ldr r0, _0808D11C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _0808D114 + b _0808D20C +_0808D114: + bl sub_808CF94 + b _0808D20C + .align 2, 0 +_0808D11C: .4byte sPSSData +_0808D120: + bl sub_808FFAC + ldr r0, _0808D134 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + bne _0808D138 + bl sub_80922C0 + b _0808D20C + .align 2, 0 +_0808D134: .4byte sPSSData +_0808D138: + bl sub_8092340 + b _0808D20C +_0808D13E: + bl sub_8095050 + lsls r0, 24 + cmp r0, 0 + bne _0808D154 +_0808D148: + ldr r0, _0808D150 @ =sub_808EE18 + bl add_to_c3_somehow + b _0808D216 + .align 2, 0 +_0808D150: .4byte sub_808EE18 +_0808D154: + bl sub_808EF8C + bl sub_808FB68 + b _0808D20C +_0808D15E: + bl sub_808F078 + b _0808D20C +_0808D164: + bl sub_808F68C + b _0808D20C +_0808D16A: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + bl sub_80913DC + b _0808D20C +_0808D178: + bl sub_809140C + lsls r0, 24 + cmp r0, 0 + bne _0808D216 + ldr r0, _0808D1A8 @ =sPSSData + ldr r2, [r0] + ldrb r0, [r2, 0x1] + cmp r0, 0x3 + beq _0808D1B4 + movs r1, 0xDA + lsls r1, 4 + adds r0, r2, r1 + movs r1, 0xD + strh r1, [r0] + ldr r1, _0808D1AC @ =0x00000da2 + adds r2, r1 + ldr r1, _0808D1B0 @ =0x0000dace + strh r1, [r2] + bl SetMonMarkingsMenuPointer + bl LoadMonMarkingsFrameGfx + b _0808D20C + .align 2, 0 +_0808D1A8: .4byte sPSSData +_0808D1AC: .4byte 0x00000da2 +_0808D1B0: .4byte 0x0000dace +_0808D1B4: + bl sub_8095B5C + bl sub_808FDFC + b _0808D20C +_0808D1BE: + bl sub_808CFC4 + ldr r0, _0808D1E0 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x3] + cmp r0, 0 + bne _0808D1E8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, _0808D1E4 @ =sub_808D220 + bl add_to_c3_somehow + b _0808D1FA + .align 2, 0 +_0808D1E0: .4byte sPSSData +_0808D1E4: .4byte sub_808D220 +_0808D1E8: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r0, _0808D204 @ =sub_808D26C + bl add_to_c3_somehow +_0808D1FA: + ldr r0, _0808D208 @ =sub_808CD98 + bl SetVBlankCallback + b _0808D216 + .align 2, 0 +_0808D204: .4byte sub_808D26C +_0808D208: .4byte sub_808CD98 +_0808D20C: + ldr r0, _0808D21C @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0808D216: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0808D21C: .4byte sPSSData + thumb_func_end task_box_related_3 + + thumb_func_start sub_808D220 +sub_808D220: @ 808D220 + push {r4,lr} + ldr r4, _0808D234 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808D238 + cmp r0, 0x1 + beq _0808D252 + b _0808D262 + .align 2, 0 +_0808D234: .4byte sPSSData +_0808D238: + movs r0, 0x2 + bl PlaySE + movs r0, 0x14 + movs r1, 0 + movs r2, 0x1 + bl sub_80A0A48 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808D262 +_0808D252: + bl sub_80A0A98 + lsls r0, 24 + cmp r0, 0 + bne _0808D262 + ldr r0, _0808D268 @ =sub_808D2BC + bl add_to_c3_somehow +_0808D262: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D268: .4byte sub_808D2BC + thumb_func_end sub_808D220 + + thumb_func_start sub_808D26C +sub_808D26C: @ 808D26C + push {r4,lr} + sub sp, 0x4 + ldr r4, _0808D280 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808D284 + cmp r0, 0x1 + beq _0808D29E + b _0808D2AE + .align 2, 0 +_0808D280: .4byte sPSSData +_0808D284: + movs r1, 0x1 + negs r1, r1 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808D2AE +_0808D29E: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0808D2AE + ldr r0, _0808D2B8 @ =sub_808D2BC + bl add_to_c3_somehow +_0808D2AE: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D2B8: .4byte sub_808D2BC + thumb_func_end sub_808D26C + + thumb_func_start sub_808D2BC +sub_808D2BC: @ 808D2BC + push {r4,r5,lr} + ldr r0, _0808D2D4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0xB + bls _0808D2CA + b _0808D7B2 +_0808D2CA: + lsls r0, 2 + ldr r1, _0808D2D8 @ =_0808D2DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D2D4: .4byte sPSSData +_0808D2D8: .4byte _0808D2DC + .align 2, 0 +_0808D2DC: + .4byte _0808D30C + .4byte _0808D630 + .4byte _0808D670 + .4byte _0808D6C8 + .4byte _0808D6EC + .4byte _0808D6F6 + .4byte _0808D710 + .4byte _0808D730 + .4byte _0808D736 + .4byte _0808D74C + .4byte _0808D778 + .4byte _0808D7A0 +_0808D30C: + bl sub_80948B4 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0x19 + bls _0808D31C + b _0808D7B2 +_0808D31C: + lsls r0, 2 + ldr r1, _0808D328 @ =_0808D32C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D328: .4byte _0808D32C + .align 2, 0 +_0808D32C: + .4byte _0808D394 + .4byte _0808D7B2 + .4byte _0808D7B2 + .4byte _0808D424 + .4byte _0808D3A8 + .4byte _0808D3DC + .4byte _0808D43C + .4byte _0808D450 + .4byte _0808D45C + .4byte _0808D494 + .4byte _0808D4D8 + .4byte _0808D55C + .4byte _0808D51C + .4byte _0808D52E + .4byte _0808D570 + .4byte _0808D584 + .4byte _0808D598 + .4byte _0808D5AC + .4byte _0808D430 + .4byte _0808D5C0 + .4byte _0808D5E0 + .4byte _0808D5CA + .4byte _0808D5EA + .4byte _0808D628 + .4byte _0808D5EE + .4byte _0808D608 +_0808D394: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D3A4 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D3A4: .4byte sPSSData +_0808D3A8: + ldr r4, _0808D3C8 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0, 0x1] + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0808D3CC + movs r0, 0x10 + bl sub_808FBA4 + ldr r1, [r4] + movs r0, 0x3 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D3C8: .4byte sPSSData +_0808D3CC: + bl sub_8092B50 + ldr r0, _0808D3D8 @ =sub_808D7BC + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D3D8: .4byte sub_808D7BC +_0808D3DC: + ldr r4, _0808D408 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x2 + bne _0808D410 + bl sub_80939A0 + lsls r0, 24 + cmp r0, 0 + beq _0808D416 + ldr r0, [r4] + ldr r1, _0808D40C @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + beq _0808D404 + b _0808D4F6 +_0808D404: + b _0808D416 + .align 2, 0 +_0808D408: .4byte sPSSData +_0808D40C: .4byte 0x00000ce2 +_0808D410: + cmp r0, 0x3 + beq _0808D416 + b _0808D7B2 +_0808D416: + ldr r0, _0808D420 @ =sub_808D7FC + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D420: .4byte sub_808D7FC +_0808D424: + ldr r0, _0808D42C @ =sub_808EBB0 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D42C: .4byte sub_808EBB0 +_0808D430: + ldr r0, _0808D438 @ =sub_808ECE4 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D438: .4byte sub_808ECE4 +_0808D43C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D44C @ =box_related + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D44C: .4byte box_related +_0808D450: + ldr r0, _0808D458 @ =sub_808D878 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D458: .4byte sub_808D878 +_0808D45C: + movs r0, 0x5 + bl PlaySE + bl StorageGetCurrentBox + ldr r4, _0808D48C @ =sPSSData + ldr r1, [r4] + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1 + ldr r2, _0808D490 @ =0x000002ca + adds r1, r2 + strh r0, [r1] + cmp r0, 0xD + ble _0808D47E + movs r0, 0 + strh r0, [r1] +_0808D47E: + ldr r1, [r4] + ldrb r0, [r1, 0x1] + cmp r0, 0x3 + beq _0808D4CC + adds r0, r1, r2 + b _0808D78A + .align 2, 0 +_0808D48C: .4byte sPSSData +_0808D490: .4byte 0x000002ca +_0808D494: + movs r0, 0x5 + bl PlaySE + bl StorageGetCurrentBox + ldr r4, _0808D4C4 @ =sPSSData + ldr r1, [r4] + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + ldr r2, _0808D4C8 @ =0x000002ca + adds r1, r2 + strh r0, [r1] + cmp r0, 0 + bge _0808D4B6 + movs r0, 0xD + strh r0, [r1] +_0808D4B6: + ldr r1, [r4] + ldrb r0, [r1, 0x1] + cmp r0, 0x3 + beq _0808D4CC + adds r0, r1, r2 + b _0808D78A + .align 2, 0 +_0808D4C4: .4byte sPSSData +_0808D4C8: .4byte 0x000002ca +_0808D4CC: + bl sub_8094D60 + ldr r1, [r4] + movs r0, 0xA + strb r0, [r1] + b _0808D7B2 +_0808D4D8: + bl sub_8093900 + lsls r0, 24 + cmp r0, 0 + bne _0808D538 + ldr r4, _0808D500 @ =sPSSData + ldr r0, [r4] + ldr r1, _0808D504 @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + beq _0808D508 +_0808D4F6: + ldr r1, [r4] + movs r0, 0x5 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D500: .4byte sPSSData +_0808D504: .4byte 0x00000ce2 +_0808D508: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D518 @ =sub_808DD88 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D518: .4byte sub_808DD88 +_0808D51C: + bl sub_8093900 + lsls r0, 24 + cmp r0, 0 + bne _0808D538 + movs r0, 0x5 + bl PlaySE + b _0808D740 +_0808D52E: + bl sub_809393C + lsls r0, 24 + cmp r0, 0 + bne _0808D548 +_0808D538: + ldr r0, _0808D544 @ =sPSSData + ldr r1, [r0] + movs r0, 0x4 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D544: .4byte sPSSData +_0808D548: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D558 @ =sub_808DC50 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D558: .4byte sub_808DC50 +_0808D55C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D56C @ =sub_808DC9C + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D56C: .4byte sub_808DC9C +_0808D570: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D580 @ =sub_808DBF0 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D580: .4byte sub_808DBF0 +_0808D584: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D594 @ =sub_808E140 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D594: .4byte sub_808E140 +_0808D598: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D5A8 @ =sub_808E1F4 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D5A8: .4byte sub_808E1F4 +_0808D5AC: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808D5BC @ =sub_808E3C8 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D5BC: .4byte sub_808E3C8 +_0808D5C0: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + b _0808D616 +_0808D5CA: + movs r0, 0x1 + bl sub_80950BC + ldr r0, _0808D5DC @ =sPSSData + ldr r1, [r0] + movs r0, 0x8 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D5DC: .4byte sPSSData +_0808D5E0: + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + b _0808D5F6 +_0808D5EA: + movs r0, 0x3 + b _0808D616 +_0808D5EE: + movs r0, 0x5 + bl PlaySE + movs r0, 0x4 +_0808D5F6: + bl sub_80950BC + ldr r0, _0808D604 @ =sPSSData + ldr r1, [r0] + movs r0, 0x9 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D604: .4byte sPSSData +_0808D608: + movs r0, 0x5 + bl PlaySE + movs r0, 0x3 + bl sub_808FE54 + movs r0, 0x5 +_0808D616: + bl sub_80950BC + ldr r0, _0808D624 @ =sPSSData + ldr r1, [r0] + movs r0, 0x7 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D624: .4byte sPSSData +_0808D628: + movs r0, 0x1A + bl PlaySE + b _0808D7B2 +_0808D630: + bl sub_80924A8 + lsls r0, 24 + cmp r0, 0 + beq _0808D63C + b _0808D7B2 +_0808D63C: + bl sub_80939C8 + lsls r0, 24 + cmp r0, 0 + beq _0808D64C + bl sub_808F948 + b _0808D650 +_0808D64C: + bl sub_808F974 +_0808D650: + ldr r4, _0808D668 @ =sPSSData + ldr r0, [r4] + ldr r1, _0808D66C @ =0x00000ce6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808D662 + bl BoxSetMosaic +_0808D662: + ldr r1, [r4] + b _0808D6DC + .align 2, 0 +_0808D668: .4byte sPSSData +_0808D66C: .4byte 0x00000ce6 +_0808D670: + bl sub_80915FC + lsls r0, 24 + cmp r0, 0 + beq _0808D67C + b _0808D7B2 +_0808D67C: + ldr r0, _0808D6BC @ =sPSSData + ldr r0, [r0] + ldr r1, _0808D6C0 @ =0x000002ca + adds r0, r1 + ldrb r0, [r0] + bl SetCurrentBox + ldr r0, _0808D6C4 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + bne _0808D6A4 + bl sub_80939A0 + lsls r0, 24 + cmp r0, 0 + bne _0808D6A4 + bl sub_8092F54 + bl BoxSetMosaic +_0808D6A4: + ldr r4, _0808D6BC @ =sPSSData + ldr r1, [r4] + ldrb r0, [r1, 0x1] + cmp r0, 0x3 + bne _0808D6DC + bl sub_8094D84 + ldr r1, [r4] + movs r0, 0xB + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D6BC: .4byte sPSSData +_0808D6C0: .4byte 0x000002ca +_0808D6C4: .4byte sInPartyMenu +_0808D6C8: + ldr r0, _0808D6E4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808D7B2 + bl sub_808FD20 + ldr r0, _0808D6E8 @ =sPSSData + ldr r1, [r0] +_0808D6DC: + movs r0, 0 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D6E4: .4byte gMain +_0808D6E8: .4byte sPSSData +_0808D6EC: + movs r0, 0x1A + bl PlaySE + movs r0, 0xD + b _0808D6FE +_0808D6F6: + movs r0, 0x1A + bl PlaySE + movs r0, 0x16 +_0808D6FE: + bl sub_808FBA4 + ldr r0, _0808D70C @ =sPSSData + ldr r1, [r0] + movs r0, 0x6 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D70C: .4byte sPSSData +_0808D710: + ldr r0, _0808D728 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808D7B2 + bl sub_808FD20 + ldr r0, _0808D72C @ =sub_808D2BC + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D728: .4byte gMain +_0808D72C: .4byte sub_808D2BC +_0808D730: + bl sub_80950D0 + b _0808D7A4 +_0808D736: + bl sub_80950D0 + lsls r0, 24 + cmp r0, 0 + bne _0808D7B2 +_0808D740: + ldr r0, _0808D748 @ =sub_808DB94 + bl add_to_c3_somehow + b _0808D7B2 + .align 2, 0 +_0808D748: .4byte sub_808DB94 +_0808D74C: + bl sub_80950D0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0808D7B2 + ldr r5, _0808D770 @ =sPSSData + ldr r0, [r5] + ldr r1, _0808D774 @ =0x00000ce6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808D76A + bl BoxSetMosaic +_0808D76A: + ldr r0, [r5] + strb r4, [r0] + b _0808D7B2 + .align 2, 0 +_0808D770: .4byte sPSSData +_0808D774: .4byte 0x00000ce6 +_0808D778: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808D7B2 + ldr r4, _0808D798 @ =sPSSData + ldr r0, [r4] + ldr r1, _0808D79C @ =0x000002ca + adds r0, r1 +_0808D78A: + ldrb r0, [r0] + bl sub_8091514 + ldr r1, [r4] + movs r0, 0x2 + strb r0, [r1] + b _0808D7B2 + .align 2, 0 +_0808D798: .4byte sPSSData +_0808D79C: .4byte 0x000002ca +_0808D7A0: + bl sub_809610C +_0808D7A4: + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0808D7B2 + ldr r0, _0808D7B8 @ =sPSSData + ldr r0, [r0] + strb r1, [r0] +_0808D7B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808D7B8: .4byte sPSSData + thumb_func_end sub_808D2BC + + thumb_func_start sub_808D7BC +sub_808D7BC: @ 808D7BC + push {r4,lr} + ldr r4, _0808D7D0 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808D7D4 + cmp r0, 0x1 + beq _0808D7E2 + b _0808D7F2 + .align 2, 0 +_0808D7D0: .4byte sPSSData +_0808D7D4: + bl sub_808FAD4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808D7F2 +_0808D7E2: + bl sub_808FAF8 + lsls r0, 24 + cmp r0, 0 + bne _0808D7F2 + ldr r0, _0808D7F8 @ =sub_808D2BC + bl add_to_c3_somehow +_0808D7F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D7F8: .4byte sub_808D2BC + thumb_func_end sub_808D7BC + + thumb_func_start sub_808D7FC +sub_808D7FC: @ 808D7FC + push {r4,lr} + ldr r4, _0808D814 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808D82A + cmp r0, 0x1 + bgt _0808D818 + cmp r0, 0 + beq _0808D81E + b _0808D86A + .align 2, 0 +_0808D814: .4byte sPSSData +_0808D818: + cmp r0, 0x2 + beq _0808D84A + b _0808D86A +_0808D81E: + movs r0, 0x5 + bl PlaySE + bl sub_808F810 + b _0808D840 +_0808D82A: + bl sub_808F850 + lsls r0, 24 + cmp r0, 0 + bne _0808D86A + bl sub_8092B70 + lsls r0, 24 + lsrs r0, 24 + bl sub_8092B3C +_0808D840: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808D86A +_0808D84A: + bl sub_80924A8 + lsls r0, 24 + cmp r0, 0 + bne _0808D86A + ldr r0, [r4] + ldr r1, _0808D870 @ =0x00000ce6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808D864 + bl BoxSetMosaic +_0808D864: + ldr r0, _0808D874 @ =sub_808D2BC + bl add_to_c3_somehow +_0808D86A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808D870: .4byte 0x00000ce6 +_0808D874: .4byte sub_808D2BC + thumb_func_end sub_808D7FC + + thumb_func_start sub_808D878 +sub_808D878: @ 808D878 + push {r4,lr} + ldr r0, _0808D890 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x6 + bls _0808D886 + b _0808DB86 +_0808D886: + lsls r0, 2 + ldr r1, _0808D894 @ =_0808D898 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D890: .4byte sPSSData +_0808D894: .4byte _0808D898 + .align 2, 0 +_0808D898: + .4byte _0808D8B4 + .4byte _0808D918 + .4byte _0808D934 + .4byte _0808DB40 + .4byte _0808DB54 + .4byte _0808DB4A + .4byte _0808DB70 +_0808D8B4: + bl sub_808F258 + lsls r0, 24 + cmp r0, 0 + beq _0808D8C0 + b _0808DB86 +_0808D8C0: + movs r0, 0x5 + bl PlaySE + ldr r4, _0808D8D8 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + beq _0808D8DC + movs r0, 0x4 + bl sub_808FBA4 + b _0808D906 + .align 2, 0 +_0808D8D8: .4byte sPSSData +_0808D8DC: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + bne _0808D8F2 + ldr r0, [r4] + ldr r1, _0808D8FC @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0808D900 +_0808D8F2: + movs r0, 0x17 + bl sub_808FBA4 + b _0808D906 + .align 2, 0 +_0808D8FC: .4byte 0x00000ce2 +_0808D900: + movs r0, 0x18 + bl sub_808FBA4 +_0808D906: + bl sub_8094E88 + ldr r0, _0808D914 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808D914: .4byte sPSSData +_0808D918: + bl sub_8094F90 + lsls r0, 24 + cmp r0, 0 + beq _0808D924 + b _0808DB86 +_0808D924: + ldr r0, _0808D930 @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808D930: .4byte sPSSData +_0808D934: + bl sub_8094F94 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x12 + bls _0808D944 + b _0808DB86 +_0808D944: + lsls r0, 2 + ldr r1, _0808D950 @ =_0808D954 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D950: .4byte _0808D954 + .align 2, 0 +_0808D954: + .4byte _0808D9A0 + .4byte _0808D9A0 + .4byte _0808DA20 + .4byte _0808DA08 + .4byte _0808D9B0 + .4byte _0808D9E8 + .4byte _0808D9D0 + .4byte _0808DAC0 + .4byte _0808DA5C + .4byte _0808DAD4 + .4byte _0808DB86 + .4byte _0808DB86 + .4byte _0808DB86 + .4byte _0808DAE8 + .4byte _0808DAFC + .4byte _0808DB28 + .4byte _0808DB1C + .4byte _0808DB10 + .4byte _0808DB34 +_0808D9A0: + bl sub_808FD20 + ldr r0, _0808D9AC @ =sub_808D2BC + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808D9AC: .4byte sub_808D2BC +_0808D9B0: + bl sub_8093900 + lsls r0, 24 + cmp r0, 0 + bne _0808DA66 + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808D9CC @ =sub_808DB94 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808D9CC: .4byte sub_808DB94 +_0808D9D0: + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808D9E4 @ =sub_808DBF0 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808D9E4: .4byte sub_808DBF0 +_0808D9E8: + bl sub_809393C + lsls r0, 24 + cmp r0, 0 + beq _0808DA66 + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808DA04 @ =sub_808DC50 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DA04: .4byte sub_808DC50 +_0808DA08: + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808DA1C @ =sub_808DC9C + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DA1C: .4byte sub_808DC9C +_0808DA20: + bl sub_8093900 + lsls r0, 24 + cmp r0, 0 + bne _0808DA66 + ldr r4, _0808DA50 @ =sPSSData + ldr r0, [r4] + ldr r2, _0808DA54 @ =0x00000ce2 + adds r0, r2 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + bne _0808DAA0 + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808DA58 @ =sub_808DD88 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DA50: .4byte sPSSData +_0808DA54: .4byte 0x00000ce2 +_0808DA58: .4byte sub_808DD88 +_0808DA5C: + bl sub_8093900 + lsls r0, 24 + cmp r0, 0 + beq _0808DA74 +_0808DA66: + ldr r0, _0808DA70 @ =sPSSData + ldr r1, [r0] + movs r0, 0x3 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808DA70: .4byte sPSSData +_0808DA74: + ldr r4, _0808DA88 @ =sPSSData + ldr r1, [r4] + ldr r2, _0808DA8C @ =0x00000ce9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0808DA90 + movs r0, 0x5 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808DA88: .4byte sPSSData +_0808DA8C: .4byte 0x00000ce9 +_0808DA90: + ldr r2, _0808DAA8 @ =0x00000ce2 + adds r0, r1, r2 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + beq _0808DAAC +_0808DAA0: + ldr r1, [r4] + movs r0, 0x4 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808DAA8: .4byte 0x00000ce2 +_0808DAAC: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808DABC @ =sub_808DECC + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DABC: .4byte sub_808DECC +_0808DAC0: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808DAD0 @ =sub_808EAF0 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DAD0: .4byte sub_808EAF0 +_0808DAD4: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808DAE4 @ =sub_808E0BC + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DAE4: .4byte sub_808E0BC +_0808DAE8: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808DAF8 @ =sub_808E140 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DAF8: .4byte sub_808E140 +_0808DAFC: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808DB0C @ =sub_808E1F4 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DB0C: .4byte sub_808E1F4 +_0808DB10: + ldr r0, _0808DB18 @ =sub_808E2B0 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DB18: .4byte sub_808E2B0 +_0808DB1C: + ldr r0, _0808DB24 @ =sub_808E3C8 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DB24: .4byte sub_808E3C8 +_0808DB28: + ldr r0, _0808DB30 @ =sub_808EB50 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DB30: .4byte sub_808EB50 +_0808DB34: + ldr r0, _0808DB3C @ =sub_808E4B0 + bl add_to_c3_somehow + b _0808DB86 + .align 2, 0 +_0808DB3C: .4byte sub_808E4B0 +_0808DB40: + movs r0, 0x1A + bl PlaySE + movs r0, 0xD + b _0808DB5C +_0808DB4A: + movs r0, 0x1A + bl PlaySE + movs r0, 0x11 + b _0808DB5C +_0808DB54: + movs r0, 0x1A + bl PlaySE + movs r0, 0x16 +_0808DB5C: + bl sub_808FBA4 + ldr r0, _0808DB6C @ =sPSSData + ldr r1, [r0] + movs r0, 0x6 + strb r0, [r1] + b _0808DB86 + .align 2, 0 +_0808DB6C: .4byte sPSSData +_0808DB70: + ldr r0, _0808DB8C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808DB86 + bl sub_808FD20 + ldr r0, _0808DB90 @ =sub_808D2BC + bl add_to_c3_somehow +_0808DB86: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DB8C: .4byte gMain +_0808DB90: .4byte sub_808D2BC + thumb_func_end sub_808D878 + + thumb_func_start sub_808DB94 +sub_808DB94: @ 808DB94 + push {r4,lr} + ldr r4, _0808DBA8 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808DBAC + cmp r0, 0x1 + beq _0808DBBC + b _0808DBE6 + .align 2, 0 +_0808DBA8: .4byte sPSSData +_0808DBAC: + movs r0, 0 + bl sub_8092B7C + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808DBE6 +_0808DBBC: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DBE6 + ldr r0, _0808DBD8 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808DBE0 + ldr r0, _0808DBDC @ =sub_808E688 + bl add_to_c3_somehow + b _0808DBE6 + .align 2, 0 +_0808DBD8: .4byte sInPartyMenu +_0808DBDC: .4byte sub_808E688 +_0808DBE0: + ldr r0, _0808DBEC @ =sub_808D2BC + bl add_to_c3_somehow +_0808DBE6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DBEC: .4byte sub_808D2BC + thumb_func_end sub_808DB94 + + thumb_func_start sub_808DBF0 +sub_808DBF0: @ 808DBF0 + push {r4,lr} + ldr r4, _0808DC04 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808DC08 + cmp r0, 0x1 + beq _0808DC1E + b _0808DC46 + .align 2, 0 +_0808DC04: .4byte sPSSData +_0808DC08: + movs r0, 0x1 + bl sub_808FE54 + movs r0, 0x1 + bl sub_8092B7C + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808DC46 +_0808DC1E: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DC46 + ldr r0, _0808DC38 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808DC40 + ldr r0, _0808DC3C @ =sub_808E688 + bl add_to_c3_somehow + b _0808DC46 + .align 2, 0 +_0808DC38: .4byte sInPartyMenu +_0808DC3C: .4byte sub_808E688 +_0808DC40: + ldr r0, _0808DC4C @ =sub_808D2BC + bl add_to_c3_somehow +_0808DC46: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DC4C: .4byte sub_808D2BC + thumb_func_end sub_808DBF0 + + thumb_func_start sub_808DC50 +sub_808DC50: @ 808DC50 + push {r4,lr} + ldr r4, _0808DC64 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808DC68 + cmp r0, 0x1 + beq _0808DC7E + b _0808DC92 + .align 2, 0 +_0808DC64: .4byte sPSSData +_0808DC68: + movs r0, 0 + bl sub_808FE54 + movs r0, 0x2 + bl sub_8092B7C + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808DC92 +_0808DC7E: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DC92 + bl BoxSetMosaic + ldr r0, _0808DC98 @ =sub_808D2BC + bl add_to_c3_somehow +_0808DC92: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DC98: .4byte sub_808D2BC + thumb_func_end sub_808DC50 + + thumb_func_start sub_808DC9C +sub_808DC9C: @ 808DC9C + push {lr} + ldr r0, _0808DCB4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x5 + bhi _0808DD7E + lsls r0, 2 + ldr r1, _0808DCB8 @ =_0808DCBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808DCB4: .4byte sPSSData +_0808DCB8: .4byte _0808DCBC + .align 2, 0 +_0808DCBC: + .4byte _0808DCD4 + .4byte _0808DD0C + .4byte _0808DD2C + .4byte _0808DD42 + .4byte _0808DD5A + .4byte _0808DD78 +_0808DCD4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0808DCF4 + movs r0, 0xE + bl sub_808FBA4 + ldr r0, _0808DCF0 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808DD7E + .align 2, 0 +_0808DCF0: .4byte sPSSData +_0808DCF4: + bl sub_8092B5C + movs r0, 0 + bl sub_8092B7C + ldr r0, _0808DD08 @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + strb r0, [r1] + b _0808DD7E + .align 2, 0 +_0808DD08: .4byte sPSSData +_0808DD0C: + ldr r0, _0808DD24 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808DD7E + bl sub_808FD20 + ldr r0, _0808DD28 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808DD7E + .align 2, 0 +_0808DD24: .4byte gMain +_0808DD28: .4byte sub_808D2BC +_0808DD2C: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DD7E + movs r0, 0x1 + bl sub_8091184 + bl sub_808FAD4 + b _0808DD68 +_0808DD42: + bl sub_808FAF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DD7E + movs r0, 0x1 + bl sub_808FE54 + movs r0, 0x1 + bl sub_8092B7C + b _0808DD68 +_0808DD5A: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0808DD7E + bl sub_808FAA8 +_0808DD68: + ldr r0, _0808DD74 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808DD7E + .align 2, 0 +_0808DD74: .4byte sPSSData +_0808DD78: + ldr r0, _0808DD84 @ =sub_808D7FC + bl add_to_c3_somehow +_0808DD7E: + pop {r0} + bx r0 + .align 2, 0 +_0808DD84: .4byte sub_808D7FC + thumb_func_end sub_808DC9C + + thumb_func_start sub_808DD88 +sub_808DD88: @ 808DD88 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0808DDA4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x4 + bls _0808DD98 + b _0808DEBA +_0808DD98: + lsls r0, 2 + ldr r1, _0808DDA8 @ =_0808DDAC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808DDA4: .4byte sPSSData +_0808DDA8: .4byte _0808DDAC + .align 2, 0 +_0808DDAC: + .4byte _0808DDC0 + .4byte _0808DDFC + .4byte _0808DE64 + .4byte _0808DE7C + .4byte _0808DEA0 +_0808DDC0: + movs r0, 0x6 + bl sub_808FBA4 + ldr r4, _0808DDEC @ =sPSSData + ldr r0, [r4] + ldr r1, _0808DDF0 @ =0x00001e58 + adds r0, r1 + ldr r2, _0808DDF4 @ =0x0000dac7 + movs r1, 0 + str r1, [sp] + movs r1, 0xA + movs r3, 0x3 + bl sub_808C854 + ldr r0, _0808DDF8 @ =gUnknown_20397B6 + ldrb r0, [r0] + bl sub_808C940 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + b _0808DEB8 + .align 2, 0 +_0808DDEC: .4byte sPSSData +_0808DDF0: .4byte 0x00001e58 +_0808DDF4: .4byte 0x0000dac7 +_0808DDF8: .4byte gUnknown_20397B6 +_0808DDFC: + bl sub_808C95C + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r0, 0xC8 + beq _0808DEBA + cmp r0, 0xC9 + bne _0808DE1C + bl sub_808FD20 + bl sub_808C950 + bl sub_808C8FC + b _0808DE92 +_0808DE1C: + adds r0, r4, 0 + bl sub_80930E4 + lsls r0, 24 + cmp r0, 0 + beq _0808DE50 + ldr r0, _0808DE48 @ =gUnknown_20397B6 + strb r4, [r0] + movs r0, 0x2 + bl sub_808FE54 + bl sub_808FD20 + bl sub_808C950 + bl sub_808C8FC + ldr r0, _0808DE4C @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + b _0808DEB8 + .align 2, 0 +_0808DE48: .4byte gUnknown_20397B6 +_0808DE4C: .4byte sPSSData +_0808DE50: + movs r0, 0x8 + bl sub_808FBA4 + ldr r0, _0808DE60 @ =sPSSData + ldr r1, [r0] + movs r0, 0x4 + b _0808DEB8 + .align 2, 0 +_0808DE60: .4byte sPSSData +_0808DE64: + bl CompactPartySlots + bl sub_80909F4 + ldr r0, _0808DE78 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + b _0808DEB8 + .align 2, 0 +_0808DE78: .4byte sPSSData +_0808DE7C: + bl sub_8090A60 + lsls r0, 24 + cmp r0, 0 + bne _0808DEBA + bl sub_8093174 + bl BoxSetMosaic + bl sub_808FAA8 +_0808DE92: + ldr r0, _0808DE9C @ =sub_808D2BC + bl add_to_c3_somehow + b _0808DEBA + .align 2, 0 +_0808DE9C: .4byte sub_808D2BC +_0808DEA0: + ldr r0, _0808DEC4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808DEBA + movs r0, 0x6 + bl sub_808FBA4 + ldr r0, _0808DEC8 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 +_0808DEB8: + strb r0, [r1] +_0808DEBA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808DEC4: .4byte gMain +_0808DEC8: .4byte sPSSData + thumb_func_end sub_808DD88 + + thumb_func_start sub_808DECC +sub_808DECC: @ 808DECC + push {lr} + ldr r0, _0808DEE4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0xD + bls _0808DEDA + b _0808E0AE +_0808DEDA: + lsls r0, 2 + ldr r1, _0808DEE8 @ =_0808DEEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808DEE4: .4byte sPSSData +_0808DEE8: .4byte _0808DEEC + .align 2, 0 +_0808DEEC: + .4byte _0808DF24 + .4byte _0808DF3A + .4byte _0808DF72 + .4byte _0808DF98 + .4byte _0808DFA4 + .4byte _0808DFBC + .4byte _0808DFF8 + .4byte _0808E010 + .4byte _0808E01C + .4byte _0808E020 + .4byte _0808E034 + .4byte _0808E050 + .4byte _0808E062 + .4byte _0808E098 +_0808DF24: + movs r0, 0x9 + bl sub_808FBA4 + movs r0, 0x1 + bl sub_808FCE8 + ldr r0, _0808DF54 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0808DF3A: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0808DF64 + cmp r1, 0 + bgt _0808DF58 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0808DF5E + b _0808E0AE + .align 2, 0 +_0808DF54: .4byte sPSSData +_0808DF58: + cmp r1, 0x1 + beq _0808DF5E + b _0808E0AE +_0808DF5E: + bl sub_808FD20 + b _0808E010 +_0808DF64: + bl sub_808FD20 + bl sub_809328C + bl sub_8093194 + b _0808E074 +_0808DF72: + bl sub_8093420 + bl sub_80931EC + lsls r0, 24 + cmp r0, 0 + beq _0808DF82 + b _0808E0AE +_0808DF82: + b _0808DF8A +_0808DF84: + cmp r0, 0 + bne _0808DF8A + b _0808E088 +_0808DF8A: + bl sub_8093420 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0808DF84 + b _0808E074 +_0808DF98: + bl sub_8093218 + bl sub_808F1D0 + movs r0, 0xA + b _0808E070 +_0808DFA4: + ldr r0, _0808DFB8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + bne _0808DFB2 + b _0808E0AE +_0808DFB2: + movs r0, 0xB + b _0808E070 + .align 2, 0 +_0808DFB8: .4byte gMain +_0808DFBC: + ldr r0, _0808DFE0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E0AE + bl sub_808FD20 + ldr r0, _0808DFE4 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808DFE8 + bl CompactPartySlots + bl sub_80909F4 + b _0808E074 + .align 2, 0 +_0808DFE0: .4byte gMain +_0808DFE4: .4byte sInPartyMenu +_0808DFE8: + ldr r0, _0808DFF4 @ =sPSSData + ldr r1, [r0] + movs r0, 0x7 + strb r0, [r1] + b _0808E0AE + .align 2, 0 +_0808DFF4: .4byte sPSSData +_0808DFF8: + bl sub_8090A60 + lsls r0, 24 + cmp r0, 0 + bne _0808E0AE + bl sub_8092F54 + bl BoxSetMosaic + bl sub_808FAA8 + b _0808E074 +_0808E010: + ldr r0, _0808E018 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808E0AE + .align 2, 0 +_0808E018: .4byte sub_808D2BC +_0808E01C: + movs r0, 0xA + b _0808E070 +_0808E020: + ldr r0, _0808E030 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E0AE + movs r0, 0x15 + b _0808E070 + .align 2, 0 +_0808E030: .4byte gMain +_0808E034: + ldr r0, _0808E04C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E0AE + bl sub_808FD20 + bl sub_8091114 + b _0808E074 + .align 2, 0 +_0808E04C: .4byte gMain +_0808E050: + bl sub_8091150 + lsls r0, 24 + cmp r0, 0 + bne _0808E0AE + bl sub_8093264 + movs r0, 0x13 + b _0808E070 +_0808E062: + ldr r0, _0808E080 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E0AE + movs r0, 0x14 +_0808E070: + bl sub_808FBA4 +_0808E074: + ldr r0, _0808E084 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E0AE + .align 2, 0 +_0808E080: .4byte gMain +_0808E084: .4byte sPSSData +_0808E088: + ldr r0, _0808E094 @ =sPSSData + ldr r1, [r0] + movs r0, 0x8 + strb r0, [r1] + b _0808E0AE + .align 2, 0 +_0808E094: .4byte sPSSData +_0808E098: + ldr r0, _0808E0B4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E0AE + bl sub_808FD20 + ldr r0, _0808E0B8 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E0AE: + pop {r0} + bx r0 + .align 2, 0 +_0808E0B4: .4byte gMain +_0808E0B8: .4byte sub_808D2BC + thumb_func_end sub_808DECC + + thumb_func_start sub_808E0BC +sub_808E0BC: @ 808E0BC + push {r4,lr} + ldr r4, _0808E0D0 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808E0D4 + cmp r0, 0x1 + beq _0808E108 + b _0808E130 + .align 2, 0 +_0808E0D0: .4byte sPSSData +_0808E0D4: + movs r0, 0xC + bl sub_808FBA4 + ldr r0, [r4] + ldr r2, _0808E100 @ =0x00000ce7 + adds r1, r0, r2 + ldrb r1, [r1] + ldr r3, _0808E104 @ =0x00000da4 + adds r0, r3 + strb r1, [r0] + ldr r0, [r4] + adds r0, r2 + ldrb r0, [r0] + movs r1, 0xB0 + movs r2, 0x10 + bl DrawMonMarkingsMenu + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E130 + .align 2, 0 +_0808E100: .4byte 0x00000ce7 +_0808E104: .4byte 0x00000da4 +_0808E108: + bl MonMarkingsHandleInput + lsls r0, 24 + cmp r0, 0 + bne _0808E130 + bl TeardownMonMarkingsMenu + bl sub_808FD20 + ldr r0, [r4] + ldr r1, _0808E138 @ =0x00000da4 + adds r0, r1 + ldrb r0, [r0] + bl sub_8093878 + bl sub_808F1D0 + ldr r0, _0808E13C @ =sub_808D2BC + bl add_to_c3_somehow +_0808E130: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E138: .4byte 0x00000da4 +_0808E13C: .4byte sub_808D2BC + thumb_func_end sub_808E0BC + + thumb_func_start sub_808E140 +sub_808E140: @ 808E140 + push {r4,r5,lr} + ldr r5, _0808E158 @ =sPSSData + ldr r0, [r5] + ldrb r1, [r0] + cmp r1, 0x1 + beq _0808E18C + cmp r1, 0x1 + bgt _0808E15C + cmp r1, 0 + beq _0808E166 + b _0808E1EA + .align 2, 0 +_0808E158: .4byte sPSSData +_0808E15C: + cmp r1, 0x2 + beq _0808E1B4 + cmp r1, 0x3 + beq _0808E1DA + b _0808E1EA +_0808E166: + ldr r1, _0808E17C @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + bne _0808E180 + bl sub_808FD20 + b _0808E1D0 + .align 2, 0 +_0808E17C: .4byte 0x00000ce2 +_0808E180: + ldr r0, _0808E188 @ =sub_808E6D0 + bl add_to_c3_somehow + b _0808E1EA + .align 2, 0 +_0808E188: .4byte sub_808E6D0 +_0808E18C: + movs r0, 0x2 + bl sub_8094D14 + ldr r0, _0808E1B0 @ =sInPartyMenu + ldrb r0, [r0] + negs r4, r0 + orrs r4, r0 + lsrs r4, 31 + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095D84 + b _0808E1D0 + .align 2, 0 +_0808E1B0: .4byte sInPartyMenu +_0808E1B4: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808E1EA + movs r0, 0x3 + bl sub_8094D14 + bl sub_808FD20 + bl sub_8092F54 + bl sub_808F49C +_0808E1D0: + ldr r1, [r5] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E1EA +_0808E1DA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E1EA + ldr r0, _0808E1F0 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E1EA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E1F0: .4byte sub_808D2BC + thumb_func_end sub_808E140 + + thumb_func_start sub_808E1F4 +sub_808E1F4: @ 808E1F4 + push {r4,lr} + ldr r0, _0808E20C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0808E2A4 + lsls r0, 2 + ldr r1, _0808E210 @ =_0808E214 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E20C: .4byte sPSSData +_0808E210: .4byte _0808E214 + .align 2, 0 +_0808E214: + .4byte _0808E27C + .4byte _0808E228 + .4byte _0808E250 + .4byte _0808E270 + .4byte _0808E294 +_0808E228: + movs r0, 0x2 + bl sub_8094D14 + ldr r0, _0808E24C @ =sInPartyMenu + ldrb r0, [r0] + negs r4, r0 + orrs r4, r0 + lsrs r4, 31 + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095F74 + b _0808E280 + .align 2, 0 +_0808E24C: .4byte sInPartyMenu +_0808E250: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808E2A4 + movs r0, 0 + bl sub_8094D14 + bl sub_8092F54 + bl sub_808F49C + movs r0, 0x1C + bl sub_808FBA4 + b _0808E280 +_0808E270: + ldr r0, _0808E28C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E2A4 +_0808E27C: + bl sub_808FD20 +_0808E280: + ldr r0, _0808E290 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E2A4 + .align 2, 0 +_0808E28C: .4byte gMain +_0808E290: .4byte sPSSData +_0808E294: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E2A4 + ldr r0, _0808E2AC @ =sub_808D2BC + bl add_to_c3_somehow +_0808E2A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E2AC: .4byte sub_808D2BC + thumb_func_end sub_808E1F4 + + thumb_func_start sub_808E2B0 +sub_808E2B0: @ 808E2B0 + push {r4,r5,lr} + ldr r1, _0808E2CC @ =sPSSData + ldr r0, [r1] + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0x4 + bls _0808E2C0 + b _0808E3BA +_0808E2C0: + lsls r0, 2 + ldr r1, _0808E2D0 @ =_0808E2D4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E2CC: .4byte sPSSData +_0808E2D0: .4byte _0808E2D4 + .align 2, 0 +_0808E2D4: + .4byte _0808E2E8 + .4byte _0808E340 + .4byte _0808E360 + .4byte _0808E3A4 + .4byte _0808E38C +_0808E2E8: + ldr r0, [r5] + ldr r1, _0808E310 @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + cmp r0, 0 + bne _0808E314 + movs r0, 0x1A + bl PlaySE + movs r0, 0x1A + bl sub_808FBA4 + ldr r1, [r5] + movs r0, 0x3 + strb r0, [r1] + b _0808E3BA + .align 2, 0 +_0808E310: .4byte 0x00000ce2 +_0808E314: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808E33C @ =sInPartyMenu + ldrb r0, [r0] + negs r4, r0 + orrs r4, r0 + lsrs r4, 31 + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8096008 + ldr r1, [r5] + movs r0, 0x1 + strb r0, [r1] + b _0808E3BA + .align 2, 0 +_0808E33C: .4byte sInPartyMenu +_0808E340: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808E3BA + movs r0, 0x19 + bl sub_808FBA4 + ldr r0, _0808E35C @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + strb r0, [r1] + b _0808E3BA + .align 2, 0 +_0808E35C: .4byte sPSSData +_0808E360: + ldr r0, _0808E384 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E3BA + bl sub_808FD20 + bl sub_8092F54 + bl sub_808F49C + ldr r0, _0808E388 @ =sPSSData + ldr r1, [r0] + movs r0, 0x4 + strb r0, [r1] + b _0808E3BA + .align 2, 0 +_0808E384: .4byte gMain +_0808E388: .4byte sPSSData +_0808E38C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E3BA + ldr r0, _0808E3A0 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808E3BA + .align 2, 0 +_0808E3A0: .4byte sub_808D2BC +_0808E3A4: + ldr r0, _0808E3C0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E3BA + bl sub_808FD20 + ldr r0, _0808E3C4 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E3BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E3C0: .4byte gMain +_0808E3C4: .4byte sub_808D2BC + thumb_func_end sub_808E2B0 + + thumb_func_start sub_808E3C8 +sub_808E3C8: @ 808E3C8 + push {r4,lr} + ldr r1, _0808E3E0 @ =sPSSData + ldr r0, [r1] + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _0808E4A4 + lsls r0, 2 + ldr r1, _0808E3E4 @ =_0808E3E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E3E0: .4byte sPSSData +_0808E3E4: .4byte _0808E3E8 + .align 2, 0 +_0808E3E8: + .4byte _0808E3FC + .4byte _0808E428 + .4byte _0808E450 + .4byte _0808E470 + .4byte _0808E494 +_0808E3FC: + ldr r0, [r4] + ldr r1, _0808E418 @ =0x00000ce2 + adds r0, r1 + ldrh r0, [r0] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + bne _0808E41C + bl sub_808FD20 + ldr r1, [r4] + b _0808E484 + .align 2, 0 +_0808E418: .4byte 0x00000ce2 +_0808E41C: + ldr r0, _0808E424 @ =sub_808E6D0 + bl add_to_c3_somehow + b _0808E4A4 + .align 2, 0 +_0808E424: .4byte sub_808E6D0 +_0808E428: + movs r0, 0x2 + bl sub_8094D14 + ldr r0, _0808E44C @ =sInPartyMenu + ldrb r0, [r0] + negs r4, r0 + orrs r4, r0 + lsrs r4, 31 + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095EA0 + b _0808E480 + .align 2, 0 +_0808E44C: .4byte sInPartyMenu +_0808E450: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808E4A4 + movs r0, 0x3 + bl sub_8094D14 + bl sub_8092F54 + bl sub_808F49C + movs r0, 0x1D + bl sub_808FBA4 + b _0808E480 +_0808E470: + ldr r0, _0808E48C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E4A4 + bl sub_808FD20 +_0808E480: + ldr r0, _0808E490 @ =sPSSData + ldr r1, [r0] +_0808E484: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E4A4 + .align 2, 0 +_0808E48C: .4byte gMain +_0808E490: .4byte sPSSData +_0808E494: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E4A4 + ldr r0, _0808E4AC @ =sub_808D2BC + bl add_to_c3_somehow +_0808E4A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E4AC: .4byte sub_808D2BC + thumb_func_end sub_808E3C8 + + thumb_func_start sub_808E4B0 +sub_808E4B0: @ 808E4B0 + push {lr} + ldr r0, _0808E4C8 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x6 + bhi _0808E55C + lsls r0, 2 + ldr r1, _0808E4CC @ =_0808E4D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E4C8: .4byte sPSSData +_0808E4CC: .4byte _0808E4D0 + .align 2, 0 +_0808E4D0: + .4byte _0808E4EC + .4byte _0808E4F2 + .4byte _0808E50C + .4byte _0808E512 + .4byte _0808E518 + .4byte _0808E530 + .4byte _0808E54C +_0808E4EC: + bl sub_808FD20 + b _0808E53A +_0808E4F2: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E55C + movs r0, 0x6 + bl PlaySE + bl sub_8096694 + bl sub_80966F4 + b _0808E53A +_0808E50C: + bl sub_8096728 + b _0808E534 +_0808E512: + bl IsDma3ManagerBusyWithBgCopy + b _0808E534 +_0808E518: + ldr r0, _0808E52C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E55C + movs r0, 0x6 + bl PlaySE + b _0808E53A + .align 2, 0 +_0808E52C: .4byte gMain +_0808E530: + bl sub_80967C0 +_0808E534: + lsls r0, 24 + cmp r0, 0 + bne _0808E55C +_0808E53A: + ldr r0, _0808E548 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E55C + .align 2, 0 +_0808E548: .4byte sPSSData +_0808E54C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E55C + ldr r0, _0808E560 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E55C: + pop {r0} + bx r0 + .align 2, 0 +_0808E560: .4byte sub_808D2BC + thumb_func_end sub_808E4B0 + + thumb_func_start sub_808E564 +sub_808E564: @ 808E564 + push {r4,lr} + ldr r0, _0808E57C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x5 + bls _0808E572 + b _0808E67C +_0808E572: + lsls r0, 2 + ldr r1, _0808E580 @ =_0808E584 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E57C: .4byte sPSSData +_0808E580: .4byte _0808E584 + .align 2, 0 +_0808E584: + .4byte _0808E59C + .4byte _0808E5BC + .4byte _0808E61A + .4byte _0808E63C + .4byte _0808E650 + .4byte _0808E66C +_0808E59C: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1B + bl sub_808FBA4 + movs r0, 0 + bl sub_808FCE8 + ldr r0, _0808E5B8 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808E67C + .align 2, 0 +_0808E5B8: .4byte sPSSData +_0808E5BC: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0808E5E0 + cmp r1, 0 + bgt _0808E5D6 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0808E5DA + b _0808E67C +_0808E5D6: + cmp r1, 0x1 + bne _0808E67C +_0808E5DA: + bl sub_808FD20 + b _0808E660 +_0808E5E0: + ldr r4, _0808E604 @ =sPSSData + ldr r0, [r4] + ldr r1, _0808E608 @ =0x00002224 + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x1 + bl AddBagItem + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808E60C + bl sub_808FD20 + ldr r1, [r4] + movs r0, 0x3 + strb r0, [r1] + b _0808E67C + .align 2, 0 +_0808E604: .4byte sPSSData +_0808E608: .4byte 0x00002224 +_0808E60C: + movs r0, 0x1A + bl sub_808FBA4 + ldr r1, [r4] + movs r0, 0x2 + strb r0, [r1] + b _0808E67C +_0808E61A: + ldr r0, _0808E634 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E67C + bl sub_808FD20 + ldr r0, _0808E638 @ =sPSSData + ldr r1, [r0] + movs r0, 0x5 + strb r0, [r1] + b _0808E67C + .align 2, 0 +_0808E634: .4byte gMain +_0808E638: .4byte sPSSData +_0808E63C: + bl sub_8096088 + ldr r0, _0808E64C @ =sPSSData + ldr r1, [r0] + movs r0, 0x4 + strb r0, [r1] + b _0808E67C + .align 2, 0 +_0808E64C: .4byte sPSSData +_0808E650: + bl sub_809610C + lsls r0, 24 + cmp r0, 0 + bne _0808E67C + movs r0, 0 + bl sub_8094D14 +_0808E660: + ldr r0, _0808E668 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808E67C + .align 2, 0 +_0808E668: .4byte sub_808D2BC +_0808E66C: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E67C + ldr r0, _0808E684 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E67C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E684: .4byte sub_808D2BC + thumb_func_end sub_808E564 + + thumb_func_start sub_808E688 +sub_808E688: @ 808E688 + push {r4,lr} + ldr r4, _0808E69C @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _0808E6A0 + cmp r0, 0x1 + beq _0808E6B2 + b _0808E6C6 + .align 2, 0 +_0808E69C: .4byte sPSSData +_0808E6A0: + bl CompactPartySlots + bl sub_80909F4 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E6C6 +_0808E6B2: + bl sub_8090A60 + lsls r0, 24 + cmp r0, 0 + bne _0808E6C6 + bl sub_808FAA8 + ldr r0, _0808E6CC @ =sub_808D2BC + bl add_to_c3_somehow +_0808E6C6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E6CC: .4byte sub_808D2BC + thumb_func_end sub_808E688 + + thumb_func_start sub_808E6D0 +sub_808E6D0: @ 808E6D0 + push {r4,lr} + ldr r4, _0808E6E8 @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808E6FE + cmp r0, 0x1 + bgt _0808E6EC + cmp r0, 0 + beq _0808E6F6 + b _0808E738 + .align 2, 0 +_0808E6E8: .4byte sPSSData +_0808E6EC: + cmp r0, 0x2 + beq _0808E70A + cmp r0, 0x3 + beq _0808E728 + b _0808E738 +_0808E6F6: + movs r0, 0x1E + bl sub_808FBA4 + b _0808E71A +_0808E6FE: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E738 + b _0808E71A +_0808E70A: + ldr r0, _0808E724 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808E738 + bl sub_808FD20 +_0808E71A: + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E738 + .align 2, 0 +_0808E724: .4byte gMain +_0808E728: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E738 + ldr r0, _0808E740 @ =sub_808D2BC + bl add_to_c3_somehow +_0808E738: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E740: .4byte sub_808D2BC + thumb_func_end sub_808E6D0 + + thumb_func_start box_related +box_related: @ 808E744 + push {r4,lr} + ldr r4, _0808E75C @ =sPSSData + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808E77A + cmp r0, 0x1 + bgt _0808E760 + cmp r0, 0 + beq _0808E766 + b _0808E830 + .align 2, 0 +_0808E75C: .4byte sPSSData +_0808E760: + cmp r0, 0x2 + beq _0808E78C + b _0808E830 +_0808E766: + movs r0, 0x1 + bl sub_808FBA4 + bl sub_8094E88 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E830 +_0808E77A: + bl sub_8094F90 + lsls r0, 24 + cmp r0, 0 + bne _0808E830 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0808E78C: + bl sub_8094F94 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _0808E830 + lsls r0, 2 + ldr r1, _0808E7A4 @ =_0808E7A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E7A4: .4byte _0808E7A8 + .align 2, 0 +_0808E7A8: + .4byte _0808E7DC + .4byte _0808E7DC + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E830 + .4byte _0808E820 + .4byte _0808E808 + .4byte _0808E7F4 +_0808E7DC: + movs r0, 0x1 + bl sub_80920FC + bl sub_808FD20 + ldr r0, _0808E7F0 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808E830 + .align 2, 0 +_0808E7F0: .4byte sub_808D2BC +_0808E7F4: + movs r0, 0x5 + bl PlaySE + ldr r0, _0808E804 @ =sub_808EA90 + bl add_to_c3_somehow + b _0808E830 + .align 2, 0 +_0808E804: .4byte sub_808EA90 +_0808E808: + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808E81C @ =sub_808E83C + bl add_to_c3_somehow + b _0808E830 + .align 2, 0 +_0808E81C: .4byte sub_808E83C +_0808E820: + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r0, _0808E838 @ =sub_808E9A0 + bl add_to_c3_somehow +_0808E830: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808E838: .4byte sub_808E9A0 + thumb_func_end box_related + + thumb_func_start sub_808E83C +sub_808E83C: @ 808E83C + push {r4,r5,lr} + ldr r0, _0808E854 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x5 + bls _0808E84A + b _0808E994 +_0808E84A: + lsls r0, 2 + ldr r1, _0808E858 @ =_0808E85C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808E854: .4byte sPSSData +_0808E858: .4byte _0808E85C + .align 2, 0 +_0808E85C: + .4byte _0808E874 + .4byte _0808E888 + .4byte _0808E8A0 + .4byte _0808E8FA + .4byte _0808E924 + .4byte _0808E97E +_0808E874: + bl sub_808FD34 + movs r0, 0x2 + bl sub_808FBA4 + ldr r0, _0808E884 @ =sPSSData + ldr r1, [r0] + b _0808E976 + .align 2, 0 +_0808E884: .4byte sPSSData +_0808E888: + bl sub_8094F90 + lsls r0, 24 + cmp r0, 0 + beq _0808E894 + b _0808E994 +_0808E894: + ldr r0, _0808E89C @ =sPSSData + ldr r1, [r0] + b _0808E976 + .align 2, 0 +_0808E89C: .4byte sPSSData +_0808E8A0: + bl sub_8094F94 + ldr r5, _0808E8CC @ =sPSSData + ldr r1, [r5] + ldr r4, _0808E8D0 @ =0x0000078e + adds r1, r4 + strh r0, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0808E8D8 + movs r0, 0x1 + bl sub_80920FC + bl sub_808FD20 + ldr r0, _0808E8D4 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808E994 + .align 2, 0 +_0808E8CC: .4byte sPSSData +_0808E8D0: .4byte 0x0000078e +_0808E8D4: .4byte sub_808D2BC +_0808E8D8: + cmp r0, r1 + blt _0808E994 + cmp r0, 0x15 + bgt _0808E994 + cmp r0, 0x12 + blt _0808E994 + movs r0, 0x5 + bl PlaySE + bl sub_8095024 + ldr r1, [r5] + adds r2, r1, r4 + ldrh r0, [r2] + subs r0, 0x12 + strh r0, [r2] + b _0808E976 +_0808E8FA: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0808E994 + ldr r4, _0808E91C @ =sPSSData + ldr r0, [r4] + ldr r1, _0808E920 @ =0x0000078e + adds r0, r1 + ldrb r0, [r0] + bl sub_808FD5C + movs r0, 0x3 + bl sub_808FBA4 + b _0808E974 + .align 2, 0 +_0808E91C: .4byte sPSSData +_0808E920: .4byte 0x0000078e +_0808E924: + bl sub_8094F94 + ldr r4, _0808E954 @ =sPSSData + ldr r1, [r4] + movs r5, 0xF2 + lsls r5, 3 + adds r1, r5 + strh r0, [r1] + movs r2, 0 + ldrsh r1, [r1, r2] + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _0808E994 + adds r0, 0x1 + cmp r1, r0 + bne _0808E958 + bl sub_808FD20 + ldr r1, [r4] + movs r0, 0 + strb r0, [r1] + b _0808E994 + .align 2, 0 +_0808E954: .4byte sPSSData +_0808E958: + movs r0, 0x5 + bl PlaySE + bl sub_808FD20 + ldr r1, [r4] + adds r1, r5 + ldrh r0, [r1] + subs r0, 0x16 + strh r0, [r1] + lsls r0, 24 + lsrs r0, 24 + bl sub_8091730 +_0808E974: + ldr r1, [r4] +_0808E976: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808E994 +_0808E97E: + bl sub_8091760 + lsls r0, 24 + cmp r0, 0 + bne _0808E994 + movs r0, 0x1 + bl sub_80920FC + ldr r0, _0808E99C @ =sub_808D2BC + bl add_to_c3_somehow +_0808E994: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808E99C: .4byte sub_808D2BC + thumb_func_end sub_808E83C + + thumb_func_start sub_808E9A0 +sub_808E9A0: @ 808E9A0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0808E9B8 @ =sPSSData + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, 0x1 + beq _0808E9F4 + cmp r4, 0x1 + bgt _0808E9BC + cmp r4, 0 + beq _0808E9C6 + b _0808EA80 + .align 2, 0 +_0808E9B8: .4byte sPSSData +_0808E9BC: + cmp r4, 0x2 + beq _0808EA4C + cmp r4, 0x3 + beq _0808EA64 + b _0808EA80 +_0808E9C6: + movs r0, 0x5 + bl sub_808FBA4 + ldr r0, [r5] + ldr r1, _0808E9EC @ =0x00001e58 + adds r0, r1 + ldr r2, _0808E9F0 @ =0x0000dac7 + str r4, [sp] + movs r1, 0xA + movs r3, 0x3 + bl sub_808C854 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + bl sub_808C940 + b _0808EA56 + .align 2, 0 +_0808E9EC: .4byte 0x00001e58 +_0808E9F0: .4byte 0x0000dac7 +_0808E9F4: + bl sub_808C95C + ldr r1, [r5] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0808EA44 @ =0x000002ca + adds r1, r2 + strh r0, [r1] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xC8 + beq _0808EA80 + bl sub_808FD20 + bl sub_808C950 + bl sub_808C8FC + ldr r0, [r5] + ldr r2, _0808EA44 @ =0x000002ca + adds r1, r0, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xC9 + beq _0808EA34 + adds r4, r0, 0 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + bne _0808EA56 +_0808EA34: + movs r0, 0x1 + bl sub_80920FC + ldr r0, _0808EA48 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808EA80 + .align 2, 0 +_0808EA44: .4byte 0x000002ca +_0808EA48: .4byte sub_808D2BC +_0808EA4C: + ldr r1, _0808EA60 @ =0x000002ca + adds r0, r1 + ldrb r0, [r0] + bl sub_8091514 +_0808EA56: + ldr r1, [r5] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808EA80 + .align 2, 0 +_0808EA60: .4byte 0x000002ca +_0808EA64: + bl sub_80915FC + lsls r0, 24 + cmp r0, 0 + bne _0808EA80 + ldr r0, [r5] + ldr r2, _0808EA88 @ =0x000002ca + adds r0, r2 + ldrb r0, [r0] + bl SetCurrentBox + ldr r0, _0808EA8C @ =sub_808D2BC + bl add_to_c3_somehow +_0808EA80: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808EA88: .4byte 0x000002ca +_0808EA8C: .4byte sub_808D2BC + thumb_func_end sub_808E9A0 + + thumb_func_start sub_808EA90 +sub_808EA90: @ 808EA90 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0808EAA4 @ =sPSSData + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, 0 + beq _0808EAA8 + cmp r4, 0x1 + beq _0808EAC6 + b _0808EAE0 + .align 2, 0 +_0808EAA4: .4byte sPSSData +_0808EAA8: + bl sub_8093630 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808EAE0 +_0808EAC6: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0808EAE0 + ldr r0, _0808EAE8 @ =sWhichToReshow + strb r4, [r0] + ldr r1, [r5] + movs r0, 0x2 + strb r0, [r1, 0x2] + ldr r0, _0808EAEC @ =sub_808EE18 + bl add_to_c3_somehow +_0808EAE0: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808EAE8: .4byte sWhichToReshow +_0808EAEC: .4byte sub_808EE18 + thumb_func_end sub_808EA90 + + thumb_func_start sub_808EAF0 +sub_808EAF0: @ 808EAF0 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0808EB04 @ =sPSSData + ldr r0, [r5] + ldrb r4, [r0] + cmp r4, 0 + beq _0808EB08 + cmp r4, 0x1 + beq _0808EB26 + b _0808EB40 + .align 2, 0 +_0808EB04: .4byte sPSSData +_0808EB08: + bl sub_80936B8 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r5] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808EB40 +_0808EB26: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _0808EB40 + ldr r0, _0808EB48 @ =sWhichToReshow + strb r1, [r0] + ldr r0, [r5] + strb r4, [r0, 0x2] + ldr r0, _0808EB4C @ =sub_808EE18 + bl add_to_c3_somehow +_0808EB40: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808EB48: .4byte sWhichToReshow +_0808EB4C: .4byte sub_808EE18 + thumb_func_end sub_808EAF0 + + thumb_func_start sub_808EB50 +sub_808EB50: @ 808EB50 + push {r4,lr} + sub sp, 0x4 + ldr r4, _0808EB64 @ =sPSSData + ldr r0, [r4] + ldrb r1, [r0] + cmp r1, 0 + beq _0808EB68 + cmp r1, 0x1 + beq _0808EB82 + b _0808EB9E + .align 2, 0 +_0808EB64: .4byte sPSSData +_0808EB68: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808EB9E +_0808EB82: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0808EB9E + ldr r1, _0808EBA8 @ =sWhichToReshow + movs r0, 0x2 + strb r0, [r1] + ldr r1, [r4] + movs r0, 0x3 + strb r0, [r1, 0x2] + ldr r0, _0808EBAC @ =sub_808EE18 + bl add_to_c3_somehow +_0808EB9E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808EBA8: .4byte sWhichToReshow +_0808EBAC: .4byte sub_808EE18 + thumb_func_end sub_808EB50 + + thumb_func_start sub_808EBB0 +sub_808EBB0: @ 808EBB0 + push {r4,lr} + ldr r0, _0808EBC8 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x4 + bls _0808EBBE + b _0808ECD0 +_0808EBBE: + lsls r0, 2 + ldr r1, _0808EBCC @ =_0808EBD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EBC8: .4byte sPSSData +_0808EBCC: .4byte _0808EBD0 + .align 2, 0 +_0808EBD0: + .4byte _0808EBE4 + .4byte _0808EC40 + .4byte _0808EC54 + .4byte _0808EC90 + .4byte _0808ECAC +_0808EBE4: + bl sub_80939A0 + lsls r0, 24 + cmp r0, 0 + beq _0808EC08 + movs r0, 0x1A + bl PlaySE + movs r0, 0xF + bl sub_808FBA4 + ldr r0, _0808EC04 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808ECD0 + .align 2, 0 +_0808EC04: .4byte sPSSData +_0808EC08: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + beq _0808EC20 + ldr r0, _0808EC1C @ =sub_808E564 + bl add_to_c3_somehow + b _0808ECD0 + .align 2, 0 +_0808EC1C: .4byte sub_808E564 +_0808EC20: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_808FBA4 + movs r0, 0 + bl sub_808FCE8 + ldr r0, _0808EC3C @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + strb r0, [r1] + b _0808ECD0 + .align 2, 0 +_0808EC3C: .4byte sPSSData +_0808EC40: + ldr r0, _0808EC50 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808ECD0 + b _0808EC72 + .align 2, 0 +_0808EC50: .4byte gMain +_0808EC54: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0808EC84 + cmp r1, 0 + bgt _0808EC6E + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0808EC72 + b _0808ECD0 +_0808EC6E: + cmp r1, 0x1 + bne _0808ECD0 +_0808EC72: + bl sub_808FD20 + ldr r0, _0808EC80 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808ECD0 + .align 2, 0 +_0808EC80: .4byte sub_808D2BC +_0808EC84: + movs r0, 0x3 + bl PlaySE + bl sub_808FD20 + b _0808EC9A +_0808EC90: + movs r0, 0x14 + movs r1, 0 + movs r2, 0x1 + bl sub_80A0A70 +_0808EC9A: + ldr r0, _0808ECA8 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808ECD0 + .align 2, 0 +_0808ECA8: .4byte sPSSData +_0808ECAC: + bl sub_80A0AAC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0808ECD0 + bl sub_808FF70 + bl CalculatePlayerPartyCount + ldr r1, _0808ECD8 @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _0808ECDC @ =sPSSData + ldr r0, [r0] + strb r4, [r0, 0x2] + ldr r0, _0808ECE0 @ =sub_808EE18 + bl add_to_c3_somehow +_0808ECD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808ECD8: .4byte gPlayerPartyCount +_0808ECDC: .4byte sPSSData +_0808ECE0: .4byte sub_808EE18 + thumb_func_end sub_808EBB0 + + thumb_func_start sub_808ECE4 +sub_808ECE4: @ 808ECE4 + push {r4,lr} + ldr r0, _0808ECFC @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x4 + bls _0808ECF2 + b _0808EE04 +_0808ECF2: + lsls r0, 2 + ldr r1, _0808ED00 @ =_0808ED04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808ECFC: .4byte sPSSData +_0808ED00: .4byte _0808ED04 + .align 2, 0 +_0808ED04: + .4byte _0808ED18 + .4byte _0808ED74 + .4byte _0808ED88 + .4byte _0808EDC4 + .4byte _0808EDE0 +_0808ED18: + bl sub_80939A0 + lsls r0, 24 + cmp r0, 0 + beq _0808ED3C + movs r0, 0x1A + bl PlaySE + movs r0, 0xF + bl sub_808FBA4 + ldr r0, _0808ED38 @ =sPSSData + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1] + b _0808EE04 + .align 2, 0 +_0808ED38: .4byte sPSSData +_0808ED3C: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + beq _0808ED54 + ldr r0, _0808ED50 @ =sub_808E564 + bl add_to_c3_somehow + b _0808EE04 + .align 2, 0 +_0808ED50: .4byte sub_808E564 +_0808ED54: + movs r0, 0x5 + bl PlaySE + movs r0, 0x12 + bl sub_808FBA4 + movs r0, 0 + bl sub_808FCE8 + ldr r0, _0808ED70 @ =sPSSData + ldr r1, [r0] + movs r0, 0x2 + strb r0, [r1] + b _0808EE04 + .align 2, 0 +_0808ED70: .4byte sPSSData +_0808ED74: + ldr r0, _0808ED84 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0808EE04 + b _0808EDA8 + .align 2, 0 +_0808ED84: .4byte gMain +_0808ED88: + bl Menu_ProcessInputNoWrapClearOnChoose + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0808EDA8 + cmp r1, 0 + bgt _0808EDA2 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0808EDB8 + b _0808EE04 +_0808EDA2: + cmp r1, 0x1 + beq _0808EDB8 + b _0808EE04 +_0808EDA8: + bl sub_808FD20 + ldr r0, _0808EDB4 @ =sub_808D2BC + bl add_to_c3_somehow + b _0808EE04 + .align 2, 0 +_0808EDB4: .4byte sub_808D2BC +_0808EDB8: + movs r0, 0x3 + bl PlaySE + bl sub_808FD20 + b _0808EDCE +_0808EDC4: + movs r0, 0x14 + movs r1, 0 + movs r2, 0 + bl sub_80A0A70 +_0808EDCE: + ldr r0, _0808EDDC @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808EE04 + .align 2, 0 +_0808EDDC: .4byte sPSSData +_0808EDE0: + bl sub_80A0AAC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0808EE04 + bl sub_808FF70 + bl CalculatePlayerPartyCount + ldr r1, _0808EE0C @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _0808EE10 @ =sPSSData + ldr r0, [r0] + strb r4, [r0, 0x2] + ldr r0, _0808EE14 @ =sub_808EE18 + bl add_to_c3_somehow +_0808EE04: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808EE0C: .4byte gPlayerPartyCount +_0808EE10: .4byte sPSSData +_0808EE14: .4byte sub_808EE18 + thumb_func_end sub_808ECE4 + + thumb_func_start sub_808EE18 +sub_808EE18: @ 808EE18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0808EE44 @ =sPSSData + ldr r0, [r0] + ldrb r4, [r0, 0x2] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _0808EE4C + bl sub_809616C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0808EE4C + bl sub_80961C4 + ldr r1, _0808EE48 @ =gUnknown_20397BA + b _0808EE50 + .align 2, 0 +_0808EE44: .4byte sPSSData +_0808EE48: .4byte gUnknown_20397BA +_0808EE4C: + ldr r1, _0808EE70 @ =gUnknown_20397BA + movs r0, 0 +_0808EE50: + strh r0, [r1] + cmp r4, 0x1 + beq _0808EE78 + cmp r4, 0x1 + ble _0808EE62 + cmp r4, 0x2 + beq _0808EEBC + cmp r4, 0x3 + beq _0808EEE8 +_0808EE62: + bl sub_808EF68 + ldr r0, _0808EE74 @ =sub_808C7B4 + bl SetMainCallback2 + b _0808EEF6 + .align 2, 0 +_0808EE70: .4byte gUnknown_20397BA +_0808EE74: .4byte sub_808C7B4 +_0808EE78: + ldr r0, _0808EEAC @ =sPSSData + ldr r1, [r0] + ldr r2, _0808EEB0 @ =0x0000217c + adds r0, r1, r2 + ldr r0, [r0] + mov r8, r0 + subs r2, 0x3 + adds r0, r1, r2 + ldrb r6, [r0] + subs r2, 0x1 + adds r0, r1, r2 + ldrb r5, [r0] + ldr r0, _0808EEB4 @ =0x0000217a + adds r1, r0 + ldrb r4, [r1] + bl sub_808EF68 + ldr r3, _0808EEB8 @ =sub_808CE60 + str r4, [sp] + mov r0, r8 + adds r1, r6, 0 + adds r2, r5, 0 + bl ShowPokemonSummaryScreen + b _0808EEF6 + .align 2, 0 +_0808EEAC: .4byte sPSSData +_0808EEB0: .4byte 0x0000217c +_0808EEB4: .4byte 0x0000217a +_0808EEB8: .4byte sub_808CE60 +_0808EEBC: + bl sub_808EF68 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + bl GetBoxNamePtr + adds r1, r0, 0 + movs r0, 0 + str r0, [sp] + ldr r0, _0808EEE4 @ =sub_808CE60 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl DoNamingScreen + b _0808EEF6 + .align 2, 0 +_0808EEE4: .4byte sub_808CE60 +_0808EEE8: + bl sub_808EF68 + ldr r2, _0808EF08 @ =sub_808CE60 + movs r0, 0x4 + movs r1, 0 + bl GoToBagMenu +_0808EEF6: + adds r0, r7, 0 + bl DestroyTask + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808EF08: .4byte sub_808CE60 + thumb_func_end sub_808EE18 + + thumb_func_start sub_808EF0C +sub_808EF0C: @ 808EF0C + push {lr} + sub sp, 0x4 + ldr r0, _0808EF40 @ =gSpecialVar_ItemId + ldrh r1, [r0] + mov r0, sp + strh r1, [r0] + cmp r1, 0 + beq _0808EF60 + bl sub_8094CC8 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _0808EF44 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808EF4C + movs r0, 0x64 + muls r0, r1 + ldr r1, _0808EF48 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData + b _0808EF56 + .align 2, 0 +_0808EF40: .4byte gSpecialVar_ItemId +_0808EF44: .4byte sInPartyMenu +_0808EF48: .4byte gPlayerParty +_0808EF4C: + adds r0, r1, 0 + movs r1, 0xC + mov r2, sp + bl SetCurrentBoxMonData +_0808EF56: + mov r0, sp + ldrh r0, [r0] + movs r1, 0x1 + bl RemoveBagItem +_0808EF60: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_808EF0C + + thumb_func_start sub_808EF68 +sub_808EF68: @ 808EF68 + push {r4,lr} + bl sub_80F7B2C + bl sub_80950A4 + ldr r4, _0808EF88 @ =sPSSData + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + bl FreeAllWindowBuffers + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808EF88: .4byte sPSSData + thumb_func_end sub_808EF68 + + thumb_func_start sub_808EF8C +sub_808EF8C: @ 808EF8C + push {lr} + sub sp, 0x4 + ldr r1, _0808EFB8 @ =0x00001f0f + movs r0, 0xE + bl SetGpuReg + ldr r1, _0808EFBC @ =gUnknown_83CE438 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _0808EFC0 @ =gUnknown_83CE4D0 + ldr r1, _0808EFC4 @ =0x0600f800 + bl LZ77UnCompVram + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0808EFB8: .4byte 0x00001f0f +_0808EFBC: .4byte gUnknown_83CE438 +_0808EFC0: .4byte gUnknown_83CE4D0 +_0808EFC4: .4byte 0x0600f800 + thumb_func_end sub_808EF8C + + thumb_func_start sub_808EFC8 +sub_808EFC8: @ 808EFC8 + push {lr} + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x1 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0x80 + movs r2, 0x2 + bl ChangeBgY + pop {r0} + bx r0 + thumb_func_end sub_808EFC8 + + thumb_func_start sub_808EFE4 +sub_808EFE4: @ 808EFE4 + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _0808F030 @ =gUnknown_83CEA50 + movs r0, 0 + movs r2, 0x4 + bl InitBgsFromTemplates + ldr r1, _0808F034 @ =gUnknown_8E9C438 + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl DecompressAndLoadBgGfxUsingHeap + ldr r0, _0808F038 @ =gUnknown_83CE5FC + ldr r5, _0808F03C @ =sPSSData + ldr r1, [r5] + ldr r4, _0808F040 @ =0x00005abc + adds r1, r4 + bl LZ77UnCompWram + ldr r1, [r5] + adds r1, r4 + movs r0, 0x1 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl ShowBg + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0808F030: .4byte gUnknown_83CEA50 +_0808F034: .4byte gUnknown_8E9C438 +_0808F038: .4byte gUnknown_83CE5FC +_0808F03C: .4byte sPSSData +_0808F040: .4byte 0x00005abc + thumb_func_end sub_808EFE4 + + thumb_func_start sub_808F044 +sub_808F044: @ 808F044 + push {lr} + ldr r0, _0808F05C @ =gUnknown_83CEA30 + bl InitWindows + lsls r0, 16 + cmp r0, 0 + beq _0808F060 + bl DeactivateAllTextPrinters + movs r0, 0x1 + b _0808F062 + .align 2, 0 +_0808F05C: .4byte gUnknown_83CEA30 +_0808F060: + movs r0, 0 +_0808F062: + pop {r1} + bx r1 + thumb_func_end sub_808F044 + + thumb_func_start sub_808F068 +sub_808F068: @ 808F068 + push {lr} + ldr r0, _0808F074 @ =gUnknown_83CEA60 + bl LoadSpritePalette + pop {r0} + bx r0 + .align 2, 0 +_0808F074: .4byte gUnknown_83CEA60 + thumb_func_end sub_808F068 + + thumb_func_start sub_808F078 +sub_808F078: @ 808F078 + push {lr} + ldr r0, _0808F0B0 @ =gUnknown_8E9C3F8 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0808F0B4 @ =gUnknown_8E9C418 + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0808F0B8 @ =gUnknown_83CEA10 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0808F0BC @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + beq _0808F0C4 + ldr r0, _0808F0C0 @ =gUnknown_83CE738 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + b _0808F0CE + .align 2, 0 +_0808F0B0: .4byte gUnknown_8E9C3F8 +_0808F0B4: .4byte gUnknown_8E9C418 +_0808F0B8: .4byte gUnknown_83CEA10 +_0808F0BC: .4byte sPSSData +_0808F0C0: .4byte gUnknown_83CE738 +_0808F0C4: + ldr r0, _0808F0EC @ =gUnknown_83CE758 + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette +_0808F0CE: + ldr r1, _0808F0F0 @ =0x00001e05 + movs r0, 0xA + bl SetGpuReg + bl sub_808F2BC + bl sub_808F0F4 + bl sub_808F164 + bl sub_808F1D0 + pop {r0} + bx r0 + .align 2, 0 +_0808F0EC: .4byte gUnknown_83CE758 +_0808F0F0: .4byte 0x00001e05 + thumb_func_end sub_808F078 + + thumb_func_start sub_808F0F4 +sub_808F0F4: @ 808F0F4 + push {r4,lr} + ldr r1, _0808F154 @ =0x0000dac8 + movs r0, 0x10 + movs r2, 0 + bl CreateMonMarkingSprite_AllOff + ldr r4, _0808F158 @ =sPSSData + ldr r1, [r4] + movs r3, 0xD9 + lsls r3, 4 + adds r1, r3 + str r0, [r1] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r0, [r4] + adds r0, r3 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + adds r0, r3 + ldr r2, [r0] + movs r1, 0x28 + strh r1, [r2, 0x20] + ldr r1, [r0] + movs r0, 0x96 + strh r0, [r1, 0x22] + movs r0, 0x10 + bl GetSpriteTileStartByTag + ldr r1, [r4] + ldr r2, _0808F15C @ =0x00000d9c + adds r1, r2 + lsls r0, 16 + lsrs r0, 11 + ldr r2, _0808F160 @ =0x06010000 + adds r0, r2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F154: .4byte 0x0000dac8 +_0808F158: .4byte sPSSData +_0808F15C: .4byte 0x00000d9c +_0808F160: .4byte 0x06010000 + thumb_func_end sub_808F0F4 + + thumb_func_start sub_808F164 +sub_808F164: @ 808F164 + push {r4,lr} + sub sp, 0x8 + ldr r0, _0808F1BC @ =gUnknown_83CEA68 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r4, 0 +_0808F17A: + lsls r1, r4, 6 + subs r1, r4 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + ldr r0, _0808F1C0 @ =gUnknown_83CEBD8 + movs r2, 0x9 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0808F1C4 @ =sPSSData + ldr r2, [r1] + lsls r1, r4, 2 + ldr r3, _0808F1C8 @ =0x00000d94 + adds r2, r3 + adds r2, r1 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0808F1CC @ =gSprites + adds r1, r0 + str r1, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0808F17A + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F1BC: .4byte gUnknown_83CEA68 +_0808F1C0: .4byte gUnknown_83CEBD8 +_0808F1C4: .4byte sPSSData +_0808F1C8: .4byte 0x00000d94 +_0808F1CC: .4byte gSprites + thumb_func_end sub_808F164 + + thumb_func_start sub_808F1D0 +sub_808F1D0: @ 808F1D0 + push {lr} + ldr r0, _0808F1FC @ =sPSSData + ldr r1, [r0] + movs r2, 0xCE + lsls r2, 4 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, 0x4 + adds r1, r2 + ldr r1, [r1] + bl sub_808F3F8 + bl sub_808F49C + bl sub_808F5E8 + movs r0, 0 + bl ScheduleBgCopyTilemapToVram + pop {r0} + bx r0 + .align 2, 0 +_0808F1FC: .4byte sPSSData + thumb_func_end sub_808F1D0 + + thumb_func_start BoxSetMosaic +BoxSetMosaic: @ 808F200 + push {lr} + bl sub_808F1D0 + ldr r3, _0808F24C @ =sPSSData + ldr r0, [r3] + ldr r1, _0808F250 @ =0x00002238 + adds r0, r1 + ldr r2, [r0] + cmp r2, 0 + beq _0808F248 + ldrb r0, [r2, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r3] + ldr r0, _0808F250 @ =0x00002238 + adds r1, r0 + ldr r2, [r1] + movs r0, 0xA + strh r0, [r2, 0x2E] + ldr r2, [r1] + movs r0, 0x1 + strh r0, [r2, 0x30] + ldr r2, [r1] + ldr r0, _0808F254 @ =BoxSetMosaic2 + str r0, [r2, 0x1C] + ldr r0, [r1] + ldrh r0, [r0, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x4C + bl SetGpuReg +_0808F248: + pop {r0} + bx r0 + .align 2, 0 +_0808F24C: .4byte sPSSData +_0808F250: .4byte 0x00002238 +_0808F254: .4byte BoxSetMosaic2 + thumb_func_end BoxSetMosaic + + thumb_func_start sub_808F258 +sub_808F258: @ 808F258 + ldr r0, _0808F26C @ =sPSSData + ldr r0, [r0] + ldr r1, _0808F270 @ =0x00002238 + adds r0, r1 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + lsls r0, 27 + lsrs r0, 31 + bx lr + .align 2, 0 +_0808F26C: .4byte sPSSData +_0808F270: .4byte 0x00002238 + thumb_func_end sub_808F258 + + thumb_func_start BoxSetMosaic2 +BoxSetMosaic2: @ 808F274 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + subs r0, r1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bge _0808F28A + movs r0, 0 + strh r0, [r4, 0x2E] +_0808F28A: + ldrh r0, [r4, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x4C + bl SetGpuReg + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0808F2B2 + ldrb r0, [r4, 0x1] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r4, 0x1] + ldr r0, _0808F2B8 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0808F2B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F2B8: .4byte SpriteCallbackDummy + thumb_func_end BoxSetMosaic2 + + thumb_func_start sub_808F2BC +sub_808F2BC: @ 808F2BC + push {r4-r7,lr} + sub sp, 0x28 + ldr r0, _0808F350 @ =sPSSData + mov r12, r0 + ldr r1, [r0] + ldr r4, _0808F354 @ =0x000022bc + adds r0, r1, r4 + str r0, [sp, 0x18] + add r3, sp, 0x18 + movs r0, 0x82 + lsls r0, 10 + str r0, [r3, 0x4] + ldr r5, _0808F358 @ =0x0000223c + adds r1, r5 + str r1, [sp, 0x20] + ldr r0, _0808F35C @ =0x0000dac6 + add r2, sp, 0x20 + str r0, [r2, 0x4] + mov r1, sp + ldr r0, _0808F360 @ =gUnknown_83CEA70 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + movs r6, 0 + adds r7, r2, 0 + mov r5, r12 + movs r2, 0 + ldr r1, _0808F364 @ =0x000007ff +_0808F2F6: + ldr r0, [r5] + adds r0, r4 + adds r0, r6 + strb r2, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r1 + bls _0808F2F6 + movs r6, 0 + ldr r5, _0808F350 @ =sPSSData + ldr r4, _0808F358 @ =0x0000223c + movs r2, 0 +_0808F310: + ldr r0, [r5] + lsls r1, r6, 1 + adds r0, r4 + adds r0, r1 + strh r2, [r0] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0xF + bls _0808F310 + ldr r0, _0808F350 @ =sPSSData + ldr r0, [r0] + ldr r6, _0808F368 @ =0x00002238 + adds r0, r6 + movs r1, 0 + str r1, [r0] + adds r0, r3, 0 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _0808F3C8 + adds r0, r7, 0 + bl LoadSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _0808F3C8 + b _0808F3B4 + .align 2, 0 +_0808F350: .4byte sPSSData +_0808F354: .4byte 0x000022bc +_0808F358: .4byte 0x0000223c +_0808F35C: .4byte 0x0000dac6 +_0808F360: .4byte gUnknown_83CEA70 +_0808F364: .4byte 0x000007ff +_0808F368: .4byte 0x00002238 +_0808F36C: + ldr r0, _0808F39C @ =sPSSData + ldr r2, [r0] + ldr r7, _0808F3A0 @ =0x00002238 + adds r3, r2, r7 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0808F3A4 @ =gSprites + adds r0, r1 + str r0, [r3] + lsls r0, r4, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + ldr r3, _0808F3A8 @ =0x00002232 + adds r1, r2, r3 + strh r0, [r1] + ldr r6, _0808F3AC @ =0x00002234 + adds r2, r6 + lsls r0, r5, 5 + ldr r7, _0808F3B0 @ =0x06010000 + adds r0, r7 + str r0, [r2] + b _0808F3C8 + .align 2, 0 +_0808F39C: .4byte sPSSData +_0808F3A0: .4byte 0x00002238 +_0808F3A4: .4byte gSprites +_0808F3A8: .4byte 0x00002232 +_0808F3AC: .4byte 0x00002234 +_0808F3B0: .4byte 0x06010000 +_0808F3B4: + mov r0, sp + movs r1, 0x28 + movs r2, 0x30 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _0808F36C +_0808F3C8: + ldr r0, _0808F3EC @ =sPSSData + ldr r0, [r0] + ldr r1, _0808F3F0 @ =0x00002238 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _0808F3E2 + movs r0, 0x2 + bl FreeSpriteTilesByTag + ldr r0, _0808F3F4 @ =0x0000dac6 + bl FreeSpritePaletteByTag +_0808F3E2: + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808F3EC: .4byte sPSSData +_0808F3F0: .4byte 0x00002238 +_0808F3F4: .4byte 0x0000dac6 + thumb_func_end sub_808F2BC + + thumb_func_start sub_808F3F8 +sub_808F3F8: @ 808F3F8 + push {r4-r7,lr} + adds r3, r1, 0 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r6, _0808F468 @ =sPSSData + ldr r4, [r6] + ldr r7, _0808F46C @ =0x00002238 + adds r0, r4, r7 + ldr r0, [r0] + cmp r0, 0 + beq _0808F496 + cmp r2, 0 + beq _0808F48C + lsls r0, r2, 3 + ldr r1, _0808F470 @ =gMonFrontPicTable + adds r0, r1 + ldr r5, _0808F474 @ =0x000022bc + adds r1, r4, r5 + bl HandleLoadSpecialPokePic + ldr r1, [r6] + ldr r2, _0808F478 @ =0x00000cd8 + adds r0, r1, r2 + ldr r0, [r0] + ldr r4, _0808F47C @ =0x0000223c + adds r1, r4 + bl LZ77UnCompWram + ldr r0, [r6] + adds r5, r0, r5 + ldr r1, _0808F480 @ =0x00002234 + adds r0, r1 + ldr r1, [r0] + ldr r2, _0808F484 @ =0x04000200 + adds r0, r5, 0 + bl CpuSet + ldr r0, [r6] + adds r4, r0, r4 + ldr r2, _0808F488 @ =0x00002232 + adds r0, r2 + ldrh r1, [r0] + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, [r6] + adds r0, r7 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _0808F496 + .align 2, 0 +_0808F468: .4byte sPSSData +_0808F46C: .4byte 0x00002238 +_0808F470: .4byte gMonFrontPicTable +_0808F474: .4byte 0x000022bc +_0808F478: .4byte 0x00000cd8 +_0808F47C: .4byte 0x0000223c +_0808F480: .4byte 0x00002234 +_0808F484: .4byte 0x04000200 +_0808F488: .4byte 0x00002232 +_0808F48C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0808F496: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_808F3F8 + + thumb_func_start sub_808F49C +sub_808F49C: @ 808F49C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + movs r0, 0 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r6, _0808F51C @ =sPSSData + ldr r2, [r6] + ldrb r0, [r2, 0x1] + cmp r0, 0x3 + beq _0808F528 + movs r4, 0 + movs r5, 0 + mov r8, r6 +_0808F4BC: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + ldr r1, _0808F520 @ =0x00000cf5 + adds r0, r1 + mov r2, r8 + ldr r1, [r2] + adds r2, r1, r0 + movs r3, 0x6 + cmp r4, 0x2 + bne _0808F4D4 + movs r3, 0xA +_0808F4D4: + lsls r0, r5, 24 + lsrs r0, 24 + str r0, [sp] + movs r7, 0xFF + str r7, [sp, 0x4] + movs r6, 0 + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0x2 + bl AddTextPrinterParameterized + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + adds r0, 0xE + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0x2 + bls _0808F4BC + ldr r0, _0808F51C @ =sPSSData + ldr r2, [r0] + ldr r0, _0808F524 @ =0x00000d61 + adds r2, r0 + adds r0, r5, 0x2 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r3, 0x6 + bl AddTextPrinterParameterized + b _0808F57E + .align 2, 0 +_0808F51C: .4byte sPSSData +_0808F520: .4byte 0x00000cf5 +_0808F524: .4byte 0x00000d61 +_0808F528: + ldr r1, _0808F5BC @ =0x00000d61 + adds r2, r1 + movs r1, 0 + str r1, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0 + movs r3, 0x6 + bl AddTextPrinterParameterized + movs r4, 0 + movs r5, 0xF +_0808F542: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + ldr r2, _0808F5C0 @ =0x00000cf5 + adds r0, r2 + ldr r1, [r6] + adds r2, r1, r0 + movs r3, 0x6 + cmp r4, 0x2 + bne _0808F558 + movs r3, 0xA +_0808F558: + lsls r0, r5, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0x2 + bl AddTextPrinterParameterized + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + adds r0, 0xE + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0x2 + bls _0808F542 +_0808F57E: + movs r0, 0 + movs r1, 0x2 + bl CopyWindowToVram + ldr r4, _0808F5C4 @ =sPSSData + ldr r1, [r4] + movs r2, 0xCE + lsls r2, 4 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + beq _0808F5C8 + adds r2, 0x7 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0xB5 + adds r1, r2 + ldr r1, [r1] + bl sub_80BEBD0 + ldr r0, [r4] + movs r1, 0xD9 + lsls r1, 4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _0808F5D8 + .align 2, 0 +_0808F5BC: .4byte 0x00000d61 +_0808F5C0: .4byte 0x00000cf5 +_0808F5C4: .4byte sPSSData +_0808F5C8: + movs r2, 0xD9 + lsls r2, 4 + adds r0, r1, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_0808F5D8: + strb r0, [r1] + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_808F49C + + thumb_func_start sub_808F5E8 +sub_808F5E8: @ 808F5E8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0808F634 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCE + lsls r1, 4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0808F63C + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x8 + bl sub_80F7CE8 + movs r4, 0 +_0808F60E: + ldr r0, _0808F634 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _0808F638 @ =0x00000d94 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 1 + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnimIfDifferent + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0808F60E + b _0808F66E + .align 2, 0 +_0808F634: .4byte sPSSData +_0808F638: .4byte 0x00000d94 +_0808F63C: + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x8 + bl sub_80F7CE8 + movs r4, 0 +_0808F64E: + ldr r0, _0808F684 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _0808F688 @ =0x00000d94 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 25 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _0808F64E +_0808F66E: + movs r0, 0 + bl sub_80F7E54 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F684: .4byte sPSSData +_0808F688: .4byte 0x00000d94 + thumb_func_end sub_808F5E8 + + thumb_func_start sub_808F68C +sub_808F68C: @ 808F68C + push {r4,lr} + sub sp, 0x4 + ldr r0, _0808F704 @ =gUnknown_8E9CAEC + ldr r4, _0808F708 @ =sPSSData + ldr r1, [r4] + adds r1, 0xB0 + bl LZ77UnCompWram + ldr r0, _0808F70C @ =gUnknown_8E9C3D8 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r2, [r4] + adds r2, 0xB0 + movs r0, 0x16 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0xC + bl sub_80F7B80 + ldr r2, _0808F710 @ =gUnknown_83CE778 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x2 + movs r1, 0x1 + movs r3, 0x9 + bl sub_80F7B80 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0 + bl sub_80F7CAC + movs r0, 0x2 + movs r1, 0x15 + movs r2, 0 + bl sub_80F7CAC + bl sub_808F9FC + ldr r0, _0808F714 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808F718 + movs r0, 0x1 + bl sub_808F90C + movs r0, 0x1 + bl sub_809088C + movs r0, 0x2 + bl sub_80F7E54 + movs r0, 0x1 + bl sub_80F7E54 + b _0808F73A + .align 2, 0 +_0808F704: .4byte gUnknown_8E9CAEC +_0808F708: .4byte sPSSData +_0808F70C: .4byte gUnknown_8E9C3D8 +_0808F710: .4byte gUnknown_83CE778 +_0808F714: .4byte sInPartyMenu +_0808F718: + movs r0, 0x2 + str r0, [sp] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x14 + movs r3, 0xC + bl sub_80F7CE8 + movs r0, 0x1 + bl sub_808F90C + movs r0, 0x1 + bl sub_80F7E54 + movs r0, 0x2 + bl sub_80F7E54 +_0808F73A: + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + ldr r0, _0808F754 @ =sPSSData + ldr r0, [r0] + ldr r1, _0808F758 @ =0x000002c7 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F754: .4byte sPSSData +_0808F758: .4byte 0x000002c7 + thumb_func_end sub_808F68C + + thumb_func_start sub_808F75C +sub_808F75C: @ 808F75C + push {lr} + ldr r0, _0808F788 @ =sPSSData + ldr r1, [r0] + movs r0, 0xB0 + lsls r0, 2 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x14 + strh r0, [r2] + ldr r0, _0808F78C @ =0x000002c2 + adds r2, r1, r0 + movs r0, 0x2 + strh r0, [r2] + ldr r0, _0808F790 @ =0x000002c5 + adds r1, r0 + strb r3, [r1] + movs r0, 0 + bl sub_809088C + pop {r0} + bx r0 + .align 2, 0 +_0808F788: .4byte sPSSData +_0808F78C: .4byte 0x000002c2 +_0808F790: .4byte 0x000002c5 + thumb_func_end sub_808F75C + + thumb_func_start sub_808F794 +sub_808F794: @ 808F794 + push {r4,lr} + ldr r4, _0808F7F0 @ =sPSSData + ldr r2, [r4] + ldr r1, _0808F7F4 @ =0x000002c5 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x14 + beq _0808F802 + movs r0, 0xB0 + lsls r0, 2 + adds r1, r2, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldr r0, _0808F7F8 @ =0x000002c2 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl sub_80F7D30 + movs r0, 0x1 + bl sub_80F7E54 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + movs r0, 0x8 + bl sub_8090B98 + ldr r1, [r4] + ldr r0, _0808F7F4 @ =0x000002c5 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _0808F7FC + movs r0, 0x1 + b _0808F804 + .align 2, 0 +_0808F7F0: .4byte sPSSData +_0808F7F4: .4byte 0x000002c5 +_0808F7F8: .4byte 0x000002c2 +_0808F7FC: + ldr r1, _0808F80C @ =sInPartyMenu + movs r0, 0x1 + strb r0, [r1] +_0808F802: + movs r0, 0 +_0808F804: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0808F80C: .4byte sInPartyMenu + thumb_func_end sub_808F794 + + thumb_func_start sub_808F810 +sub_808F810: @ 808F810 + push {r4,lr} + ldr r4, _0808F844 @ =sPSSData + ldr r1, [r4] + movs r0, 0xB0 + lsls r0, 2 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + ldr r0, _0808F848 @ =0x000002c2 + adds r2, r1, r0 + movs r0, 0x16 + strh r0, [r2] + ldr r0, _0808F84C @ =0x000002c5 + adds r1, r0 + strb r3, [r1] + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _0808F83C + bl sub_80960C0 +_0808F83C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F844: .4byte sPSSData +_0808F848: .4byte 0x000002c2 +_0808F84C: .4byte 0x000002c5 + thumb_func_end sub_808F810 + + thumb_func_start sub_808F850 +sub_808F850: @ 808F850 + push {r4,r5,lr} + sub sp, 0x8 + ldr r5, _0808F8C8 @ =sPSSData + ldr r2, [r5] + ldr r1, _0808F8CC @ =0x000002c5 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x14 + beq _0808F8FC + movs r0, 0xB0 + lsls r0, 2 + adds r1, r2, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r4, _0808F8D0 @ =0x000002c2 + adds r1, r2, r4 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + movs r2, 0x1 + negs r2, r2 + movs r0, 0x1 + movs r1, 0x3 + bl sub_80F7D30 + movs r0, 0x1 + bl sub_80F7E54 + movs r1, 0x80 + lsls r1, 1 + ldr r0, [r5] + adds r0, r4 + ldrb r3, [r0] + movs r0, 0xC + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r2, 0xA + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0x8 + negs r0, r0 + bl sub_8090B98 + ldr r1, [r5] + ldr r0, _0808F8CC @ =0x000002c5 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _0808F8D4 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + movs r0, 0x1 + b _0808F8FE + .align 2, 0 +_0808F8C8: .4byte sPSSData +_0808F8CC: .4byte 0x000002c5 +_0808F8D0: .4byte 0x000002c2 +_0808F8D4: + ldr r0, _0808F908 @ =sInPartyMenu + movs r1, 0 + strb r1, [r0] + bl sub_8090C44 + bl CompactPartySlots + movs r0, 0x2 + str r0, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x9 + bl sub_80F7CE8 + movs r0, 0x2 + bl sub_80F7E54 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram +_0808F8FC: + movs r0, 0 +_0808F8FE: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0808F908: .4byte sInPartyMenu + thumb_func_end sub_808F850 + + thumb_func_start sub_808F90C +sub_808F90C: @ 808F90C + push {lr} + sub sp, 0x4 + lsls r0, 24 + cmp r0, 0 + beq _0808F926 + movs r0, 0x2 + str r0, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x9 + bl sub_80F7CE8 + b _0808F934 +_0808F926: + movs r0, 0x2 + str r0, [sp] + movs r1, 0 + movs r2, 0x2 + movs r3, 0x9 + bl sub_80F7CE8 +_0808F934: + movs r0, 0x2 + bl sub_80F7E54 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_808F90C + + thumb_func_start sub_808F948 +sub_808F948: @ 808F948 + ldr r2, _0808F968 @ =sPSSData + ldr r0, [r2] + ldr r1, _0808F96C @ =0x000002c7 + adds r0, r1 + movs r3, 0x1 + strb r3, [r0] + ldr r0, [r2] + adds r1, 0x1 + adds r0, r1 + movs r1, 0x1E + strb r1, [r0] + ldr r0, [r2] + ldr r1, _0808F970 @ =0x000002c9 + adds r0, r1 + strb r3, [r0] + bx lr + .align 2, 0 +_0808F968: .4byte sPSSData +_0808F96C: .4byte 0x000002c7 +_0808F970: .4byte 0x000002c9 + thumb_func_end sub_808F948 + + thumb_func_start sub_808F974 +sub_808F974: @ 808F974 + push {lr} + ldr r0, _0808F994 @ =sPSSData + ldr r0, [r0] + ldr r2, _0808F998 @ =0x000002c7 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _0808F98E + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_808F90C +_0808F98E: + pop {r0} + bx r0 + .align 2, 0 +_0808F994: .4byte sPSSData +_0808F998: .4byte 0x000002c7 + thumb_func_end sub_808F974 + + thumb_func_start sub_808F99C +sub_808F99C: @ 808F99C + push {r4,lr} + ldr r3, _0808F9F0 @ =sPSSData + ldr r1, [r3] + ldr r2, _0808F9F4 @ =0x000002c7 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0808F9E8 + movs r0, 0xB2 + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bls _0808F9E8 + ldr r0, [r3] + movs r1, 0xB2 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r3] + movs r2, 0 + ldr r4, _0808F9F8 @ =0x000002c9 + adds r1, r0, r4 + ldrb r0, [r1] + cmp r0, 0 + bne _0808F9DC + movs r2, 0x1 +_0808F9DC: + strb r2, [r1] + ldr r0, [r3] + adds r0, r4 + ldrb r0, [r0] + bl sub_808F90C +_0808F9E8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808F9F0: .4byte sPSSData +_0808F9F4: .4byte 0x000002c7 +_0808F9F8: .4byte 0x000002c9 + thumb_func_end sub_808F99C + + thumb_func_start sub_808F9FC +sub_808F9FC: @ 808F9FC + push {r4,lr} + movs r4, 0x1 +_0808FA00: + movs r0, 0x64 + muls r0, r4 + ldr r1, _0808FA2C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + negs r1, r0 + orrs r1, r0 + lsrs r1, 31 + adds r0, r4, 0 + bl sub_808FA30 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _0808FA00 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808FA2C: .4byte gPlayerParty + thumb_func_end sub_808F9FC + + thumb_func_start sub_808FA30 +sub_808FA30: @ 808FA30 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + ldr r7, _0808FA9C @ =gUnknown_83CE7D8 + cmp r1, 0 + beq _0808FA40 + ldr r7, _0808FAA0 @ =gUnknown_83CE7C0 +_0808FA40: + subs r0, 0x1 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 18 + movs r1, 0xE0 + lsls r1, 11 + adds r0, r1 + lsrs r3, r0, 16 + movs r0, 0 + ldr r1, _0808FAA4 @ =sPSSData + mov r12, r1 +_0808FA5C: + movs r2, 0 + adds r4, r7, 0 + adds r4, 0x8 + adds r5, r3, 0 + adds r5, 0xC + adds r6, r0, 0x1 +_0808FA68: + mov r0, r12 + ldr r1, [r0] + adds r0, r3, r2 + lsls r0, 1 + adds r1, 0xB0 + adds r1, r0 + lsls r0, r2, 1 + adds r0, r7 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _0808FA68 + adds r7, r4, 0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + lsls r0, r6, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _0808FA5C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0808FA9C: .4byte gUnknown_83CE7D8 +_0808FAA0: .4byte gUnknown_83CE7C0 +_0808FAA4: .4byte sPSSData + thumb_func_end sub_808FA30 + + thumb_func_start sub_808FAA8 +sub_808FAA8: @ 808FAA8 + push {lr} + sub sp, 0x4 + bl sub_808F9FC + movs r0, 0x16 + str r0, [sp] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0xC + bl sub_80F7CE8 + movs r0, 0x1 + bl sub_80F7E54 + movs r0, 0x1 + bl ScheduleBgCopyTilemapToVram + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_808FAA8 + + thumb_func_start sub_808FAD4 +sub_808FAD4: @ 808FAD4 + push {lr} + ldr r0, _0808FAF0 @ =sPSSData + ldr r0, [r0] + ldr r1, _0808FAF4 @ =0x000002c6 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x6 + bl PlaySE + bl sub_808F75C + pop {r0} + bx r0 + .align 2, 0 +_0808FAF0: .4byte sPSSData +_0808FAF4: .4byte 0x000002c6 + thumb_func_end sub_808FAD4 + + thumb_func_start sub_808FAF8 +sub_808FAF8: @ 808FAF8 + push {r4,r5,lr} + ldr r4, _0808FB14 @ =sPSSData + ldr r0, [r4] + ldr r5, _0808FB18 @ =0x000002c6 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0808FB32 + cmp r0, 0x1 + bgt _0808FB1C + cmp r0, 0 + beq _0808FB22 + b _0808FB60 + .align 2, 0 +_0808FB14: .4byte sPSSData +_0808FB18: .4byte 0x000002c6 +_0808FB1C: + cmp r0, 0x2 + beq _0808FB5C + b _0808FB60 +_0808FB22: + bl sub_808F794 + lsls r0, 24 + cmp r0, 0 + bne _0808FB60 + bl sub_8092AE4 + b _0808FB4C +_0808FB32: + bl sub_80924A8 + lsls r0, 24 + cmp r0, 0 + bne _0808FB60 + ldr r0, [r4] + ldr r1, _0808FB58 @ =0x00000ce6 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0808FB4C + bl BoxSetMosaic +_0808FB4C: + ldr r1, [r4] + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0808FB60 + .align 2, 0 +_0808FB58: .4byte 0x00000ce6 +_0808FB5C: + movs r0, 0 + b _0808FB62 +_0808FB60: + movs r0, 0x1 +_0808FB62: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_808FAF8 + + thumb_func_start sub_808FB68 +sub_808FB68: @ 808FB68 + push {lr} + sub sp, 0xC + movs r1, 0xE8 + lsls r1, 5 + movs r0, 0x8 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0xD0 + bl TextWindow_SetStdFrame0_WithPal + movs r0, 0x20 + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r0} + bx r0 + thumb_func_end sub_808FB68 + + thumb_func_start sub_808FBA4 +sub_808FBA4: @ 808FBA4 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r6, r0, 24 + bl DynamicPlaceholderTextUtil_Reset + ldr r1, _0808FBC8 @ =gUnknown_83CEA88 + lsls r0, r6, 3 + adds r0, r1 + ldrb r0, [r0, 0x4] + cmp r0, 0x7 + bhi _0808FC7C + lsls r0, 2 + ldr r1, _0808FBCC @ =_0808FBD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808FBC8: .4byte gUnknown_83CEA88 +_0808FBCC: .4byte _0808FBD0 + .align 2, 0 +_0808FBD0: + .4byte _0808FC7C + .4byte _0808FBF0 + .4byte _0808FBF0 + .4byte _0808FBF0 + .4byte _0808FC04 + .4byte _0808FC04 + .4byte _0808FC04 + .4byte _0808FC1C +_0808FBF0: + ldr r0, _0808FBFC @ =sPSSData + ldr r1, [r0] + ldr r0, _0808FC00 @ =0x00000cea + adds r1, r0 + b _0808FC0C + .align 2, 0 +_0808FBFC: .4byte sPSSData +_0808FC00: .4byte 0x00000cea +_0808FC04: + ldr r0, _0808FC14 @ =sPSSData + ldr r1, [r0] + ldr r2, _0808FC18 @ =0x000021d0 + adds r1, r2 +_0808FC0C: + movs r0, 0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr + b _0808FC7C + .align 2, 0 +_0808FC14: .4byte sPSSData +_0808FC18: .4byte 0x000021d0 +_0808FC1C: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + beq _0808FC40 + ldr r0, _0808FC38 @ =sPSSData + ldr r4, [r0] + ldr r0, _0808FC3C @ =0x000021db + adds r4, r0 + bl sub_80961A8 + adds r1, r0, 0 + adds r0, r4, 0 + b _0808FC4C + .align 2, 0 +_0808FC38: .4byte sPSSData +_0808FC3C: .4byte 0x000021db +_0808FC40: + ldr r0, _0808FC54 @ =sPSSData + ldr r1, [r0] + ldr r2, _0808FC58 @ =0x000021db + adds r0, r1, r2 + ldr r2, _0808FC5C @ =0x00000d61 + adds r1, r2 +_0808FC4C: + bl StringCopy + adds r2, r0, 0 + b _0808FC62 + .align 2, 0 +_0808FC54: .4byte sPSSData +_0808FC58: .4byte 0x000021db +_0808FC5C: .4byte 0x00000d61 +_0808FC60: + adds r2, r1, 0 +_0808FC62: + subs r1, r2, 0x1 + ldrb r0, [r1] + cmp r0, 0 + beq _0808FC60 + movs r0, 0xFF + strb r0, [r2] + ldr r0, _0808FCDC @ =sPSSData + ldr r1, [r0] + ldr r0, _0808FCE0 @ =0x000021db + adds r1, r0 + movs r0, 0 + bl DynamicPlaceholderTextUtil_SetPlaceholderPtr +_0808FC7C: + ldr r5, _0808FCDC @ =sPSSData + ldr r0, [r5] + movs r4, 0x86 + lsls r4, 6 + adds r0, r4 + ldr r2, _0808FCE4 @ =gUnknown_83CEA88 + lsls r1, r6, 3 + adds r1, r2 + ldr r1, [r1] + bl DynamicPlaceholderTextUtil_ExpandPlaceholders + movs r0, 0x1 + movs r1, 0x11 + bl FillWindowPixelBuffer + ldr r2, [r5] + adds r2, r4 + movs r0, 0x2 + str r0, [sp] + movs r0, 0xFF + str r0, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0 + bl AddTextPrinterParameterized + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0xD + bl DrawTextBorderOuter + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x1 + movs r1, 0x2 + bl CopyWindowToVram + movs r0, 0 + bl ScheduleBgCopyTilemapToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0808FCDC: .4byte sPSSData +_0808FCE0: .4byte 0x000021db +_0808FCE4: .4byte gUnknown_83CEA88 + thumb_func_end sub_808FBA4 + + thumb_func_start sub_808FCE8 +sub_808FCE8: @ 808FCE8 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0808FD1C @ =gUnknown_83CEB80 + movs r1, 0xB + str r1, [sp] + movs r1, 0xE + str r1, [sp, 0x4] + movs r1, 0x1 + str r1, [sp, 0x8] + movs r2, 0 + movs r3, 0x2 + bl CreateYesNoMenu + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl Menu_MoveCursorNoWrapAround + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808FD1C: .4byte gUnknown_83CEB80 + thumb_func_end sub_808FCE8 + + thumb_func_start sub_808FD20 +sub_808FD20: @ 808FD20 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl ClearStdWindowAndFrameToTransparent + movs r0, 0 + bl ScheduleBgCopyTilemapToVram + pop {r0} + bx r0 + thumb_func_end sub_808FD20 + + thumb_func_start sub_808FD34 +sub_808FD34: @ 808FD34 + push {lr} + bl sub_8094DA8 + movs r0, 0x12 + bl sub_8094DEC + movs r0, 0x13 + bl sub_8094DEC + movs r0, 0x14 + bl sub_8094DEC + movs r0, 0x15 + bl sub_8094DEC + bl sub_8094E88 + pop {r0} + bx r0 + thumb_func_end sub_808FD34 + + thumb_func_start sub_808FD5C +sub_808FD5C: @ 808FD5C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8094DA8 + cmp r4, 0x1 + beq _0808FD9A + cmp r4, 0x1 + bgt _0808FD76 + cmp r4, 0 + beq _0808FD80 + b _0808FDE6 +_0808FD76: + cmp r5, 0x2 + beq _0808FDB4 + cmp r5, 0x3 + beq _0808FDCE + b _0808FDE6 +_0808FD80: + movs r0, 0x16 + bl sub_8094DEC + movs r0, 0x17 + bl sub_8094DEC + movs r0, 0x18 + bl sub_8094DEC + movs r0, 0x19 + bl sub_8094DEC + b _0808FDE6 +_0808FD9A: + movs r0, 0x1A + bl sub_8094DEC + movs r0, 0x1B + bl sub_8094DEC + movs r0, 0x1C + bl sub_8094DEC + movs r0, 0x1D + bl sub_8094DEC + b _0808FDE6 +_0808FDB4: + movs r0, 0x1E + bl sub_8094DEC + movs r0, 0x1F + bl sub_8094DEC + movs r0, 0x20 + bl sub_8094DEC + movs r0, 0x21 + bl sub_8094DEC + b _0808FDE6 +_0808FDCE: + movs r0, 0x22 + bl sub_8094DEC + movs r0, 0x23 + bl sub_8094DEC + movs r0, 0x24 + bl sub_8094DEC + movs r0, 0x25 + bl sub_8094DEC +_0808FDE6: + bl sub_8094E88 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_808FD5C + + thumb_func_start sub_808FDF0 +sub_808FDF0: @ 808FDF0 + ldr r0, _0808FDF8 @ =sCurrentBoxOption + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808FDF8: .4byte sCurrentBoxOption + thumb_func_end sub_808FDF0 + + thumb_func_start sub_808FDFC +sub_808FDFC: @ 808FDFC + push {lr} + bl sub_80939AC + lsls r0, 24 + cmp r0, 0 + bne _0808FE38 + ldr r0, _0808FE24 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808FE28 + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_8095C84 + b _0808FE38 + .align 2, 0 +_0808FE24: .4byte sInPartyMenu +_0808FE28: + bl sub_8094CC8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8095C84 +_0808FE38: + ldr r1, _0808FE50 @ =gUnknown_20397BA + ldrh r0, [r1] + cmp r0, 0 + beq _0808FE4A + bl sub_8095E2C + movs r0, 0x3 + bl sub_8094D14 +_0808FE4A: + pop {r0} + bx r0 + .align 2, 0 +_0808FE50: .4byte gUnknown_20397BA + thumb_func_end sub_808FDFC + + thumb_func_start sub_808FE54 +sub_808FE54: @ 808FE54 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8094D34 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0808FE90 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCE + lsls r1, 4 + adds r0, r1 + ldrh r7, [r0] + ldr r0, _0808FE94 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808FE9C + movs r6, 0xE + bl sub_8094CC8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0808FE98 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + bl GetMonData + b _0808FEB2 + .align 2, 0 +_0808FE90: .4byte sPSSData +_0808FE94: .4byte sInPartyMenu +_0808FE98: .4byte gPlayerParty +_0808FE9C: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_8094CC8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x41 + bl GetCurrentBoxMonData +_0808FEB2: + lsls r0, 16 + lsrs r3, r0, 16 + ldr r0, _0808FECC @ =sPSSData + ldr r0, [r0] + ldr r2, _0808FED0 @ =0x00002228 + adds r1, r0, r2 + cmp r5, 0x1 + beq _0808FF08 + cmp r5, 0x1 + bgt _0808FED4 + cmp r5, 0 + beq _0808FEDE + b _0808FF6A + .align 2, 0 +_0808FECC: .4byte sPSSData +_0808FED0: .4byte 0x00002228 +_0808FED4: + cmp r5, 0x2 + beq _0808FF3E + cmp r5, 0x3 + beq _0808FF58 + b _0808FF6A +_0808FEDE: + ldr r0, _0808FEF0 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808FEF4 + cmp r4, 0xE + beq _0808FF6A +_0808FEEA: + movs r2, 0x16 + b _0808FF02 + .align 2, 0 +_0808FEF0: .4byte sInPartyMenu +_0808FEF4: + cmp r4, 0xE + beq _0808FEEA + movs r0, 0x15 + cmp r4, r6 + beq _0808FF00 + movs r0, 0x14 +_0808FF00: + adds r2, r0, 0 +_0808FF02: + strh r7, [r1] + strh r3, [r1, 0x2] + b _0808FF60 +_0808FF08: + movs r0, 0 + strh r7, [r1] + strh r0, [r1, 0x2] + strb r4, [r1, 0x4] + movs r0, 0xFF + strb r0, [r1, 0x5] + ldr r0, _0808FF24 @ =sInPartyMenu + ldrb r0, [r0] + cmp r0, 0 + beq _0808FF28 + cmp r4, 0xE + beq _0808FF6A + movs r2, 0x19 + b _0808FF64 + .align 2, 0 +_0808FF24: .4byte sInPartyMenu +_0808FF28: + cmp r4, 0xE + bne _0808FF32 + movs r2, 0x1A + strb r6, [r1, 0x4] + b _0808FF64 +_0808FF32: + cmp r4, r6 + beq _0808FF3A + movs r2, 0x17 + b _0808FF62 +_0808FF3A: + movs r2, 0x18 + b _0808FF64 +_0808FF3E: + movs r2, 0x1A + movs r0, 0 + strh r7, [r1] + strh r0, [r1, 0x2] + ldr r0, _0808FF54 @ =gUnknown_20397B6 + ldrb r0, [r0] + strb r0, [r1, 0x4] + movs r0, 0xFF + strb r0, [r1, 0x5] + b _0808FF64 + .align 2, 0 +_0808FF54: .4byte gUnknown_20397B6 +_0808FF58: + movs r2, 0x1B + movs r0, 0 + strh r0, [r1] + strh r0, [r1, 0x2] +_0808FF60: + strb r4, [r1, 0x4] +_0808FF62: + strb r6, [r1, 0x5] +_0808FF64: + adds r0, r2, 0 + bl SetQuestLogEvent +_0808FF6A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_808FE54 + + thumb_func_start sub_808FF70 +sub_808FF70: @ 808FF70 + push {r4,lr} + ldr r4, _0808FFA0 @ =sLastUsedBox + bl StorageGetCurrentBox + ldrb r1, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _0808FF9A + ldr r0, _0808FFA4 @ =0x00000843 + bl FlagClear + ldr r4, _0808FFA8 @ =0x00004037 + bl StorageGetCurrentBox + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl VarSet +_0808FF9A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0808FFA0: .4byte sLastUsedBox +_0808FFA4: .4byte 0x00000843 +_0808FFA8: .4byte 0x00004037 + thumb_func_end sub_808FF70 + + thumb_func_start sub_808FFAC +sub_808FFAC: @ 808FFAC + push {r4-r6,lr} + bl LoadMonIconPalettes + movs r2, 0 + ldr r3, _0809003C @ =sPSSData + ldr r5, _08090040 @ =0x00000b04 + movs r4, 0 + adds r6, r3, 0 +_0808FFBC: + ldr r0, [r3] + lsls r1, r2, 1 + adds r0, r5 + adds r0, r1 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _0808FFBC + movs r2, 0 + ldr r5, _0809003C @ =sPSSData + ldr r4, _08090044 @ =0x00000b54 + movs r3, 0 +_0808FFD8: + ldr r0, [r5] + lsls r1, r2, 1 + adds r0, r4 + adds r0, r1 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _0808FFD8 + movs r2, 0 + ldr r5, _0809003C @ =sPSSData + ldr r4, _08090048 @ =0x00000a6c + movs r3, 0 +_0808FFF4: + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r4 + adds r0, r1 + str r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _0808FFF4 + movs r2, 0 + ldr r5, _0809003C @ =sPSSData + ldr r4, _0809004C @ =0x00000a84 + movs r3, 0 +_08090010: + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r4 + adds r0, r1 + str r3, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08090010 + ldr r0, [r6] + ldr r2, _08090050 @ =0x00000a68 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r1, _08090054 @ =0x0000078c + adds r0, r1 + strh r2, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809003C: .4byte sPSSData +_08090040: .4byte 0x00000b04 +_08090044: .4byte 0x00000b54 +_08090048: .4byte 0x00000a6c +_0809004C: .4byte 0x00000a84 +_08090050: .4byte 0x00000a68 +_08090054: .4byte 0x0000078c + thumb_func_end sub_808FFAC + + thumb_func_start sub_8090058 +sub_8090058: @ 8090058 + push {lr} + bl sub_80939F4 + lsls r0, 24 + movs r1, 0x1 + cmp r0, 0 + beq _08090068 + movs r1, 0x2 +_08090068: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_8090058 + + thumb_func_start sub_8090070 +sub_8090070: @ 8090070 + push {r4-r6,lr} + sub sp, 0x8 + ldr r5, _080900C4 @ =sPSSData + ldr r0, [r5] + ldr r4, _080900C8 @ =0x000020a0 + adds r0, r4 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + ldr r0, [r5] + adds r0, r4 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl sub_8090058 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_80912E0 + ldr r1, [r5] + ldr r2, _080900CC @ =0x00000a68 + adds r1, r2 + str r0, [r1] + ldr r1, _080900D0 @ =sub_80911B0 + str r1, [r0, 0x1C] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080900C4: .4byte sPSSData +_080900C8: .4byte 0x000020a0 +_080900CC: .4byte 0x00000a68 +_080900D0: .4byte sub_80911B0 + thumb_func_end sub_8090070 + + thumb_func_start sub_80900D4 +sub_80900D4: @ 80900D4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r0, 0 + mov r8, r0 + movs r6, 0 + movs r7, 0 +_080900EE: + movs r5, 0 + adds r1, r7, 0x1 + mov r10, r1 +_080900F4: + mov r0, r9 + adds r1, r6, 0 + movs r2, 0x41 + bl GetBoxMonDataAt + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _0809015C + mov r0, r9 + adds r1, r6, 0 + movs r2, 0 + bl GetBoxMonDataAt + adds r1, r0, 0 + lsls r2, r5, 1 + adds r2, r5 + lsls r2, 19 + movs r3, 0xC8 + lsls r3, 15 + adds r2, r3 + asrs r2, 16 + lsls r3, r7, 1 + adds r3, r7 + lsls r3, 19 + movs r0, 0xB0 + lsls r0, 14 + adds r3, r0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x13 + subs r0, r5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + asrs r3, 16 + bl sub_80912E0 + ldr r1, _08090154 @ =sPSSData + ldr r1, [r1] + mov r3, r8 + lsls r2, r3, 2 + ldr r3, _08090158 @ =0x00000a84 + adds r1, r3 + adds r1, r2 + str r0, [r1] + b _0809016C + .align 2, 0 +_08090154: .4byte sPSSData +_08090158: .4byte 0x00000a84 +_0809015C: + ldr r0, _080901E4 @ =sPSSData + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _080901E8 @ =0x00000a84 + adds r0, r3 + adds r0, r1 + str r4, [r0] +_0809016C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _080900F4 + mov r1, r10 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _080900EE + ldr r0, _080901E4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _080901D2 + movs r6, 0 + movs r2, 0xD + negs r2, r2 + adds r4, r2, 0 +_080901A2: + mov r0, r9 + adds r1, r6, 0 + movs r2, 0xC + bl GetBoxMonDataAt + cmp r0, 0 + bne _080901C8 + ldr r0, _080901E4 @ =sPSSData + ldr r0, [r0] + lsls r1, r6, 2 + ldr r3, _080901E8 @ =0x00000a84 + adds r0, r3 + adds r0, r1 + ldr r2, [r0] + ldrb r0, [r2, 0x1] + ands r0, r4 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x1] +_080901C8: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x1D + bls _080901A2 +_080901D2: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080901E4: .4byte sPSSData +_080901E8: .4byte 0x00000a84 + thumb_func_end sub_80900D4 + + thumb_func_start sub_80901EC +sub_80901EC: @ 80901EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r7, 0 + movs r1, 0x41 + bl GetCurrentBoxMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _08090286 + adds r0, r7, 0 + movs r1, 0x6 + bl __umodsi3 + adds r6, r0, 0 + lsls r0, r6, 24 + lsrs r0, 24 + lsls r5, r0, 1 + adds r5, r0 + lsls r5, 19 + movs r0, 0xC8 + lsls r0, 15 + adds r5, r0 + lsrs r5, 16 + adds r0, r7, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 19 + movs r0, 0xB0 + lsls r0, 14 + adds r4, r0 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetCurrentBoxMonData + adds r1, r0, 0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x13 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + mov r0, r8 + adds r2, r5, 0 + adds r3, r4, 0 + bl sub_80912E0 + adds r3, r0, 0 + ldr r0, _08090294 @ =sPSSData + ldr r2, [r0] + lsls r1, r7, 2 + ldr r4, _08090298 @ =0x00000a84 + adds r0, r2, r4 + adds r0, r1 + str r3, [r0] + ldrb r0, [r2, 0x1] + cmp r0, 0x3 + bne _08090286 + ldrb r0, [r3, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r3, 0x1] +_08090286: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08090294: .4byte sPSSData +_08090298: .4byte 0x00000a84 + thumb_func_end sub_80901EC + + thumb_func_start sub_809029C +sub_809029C: @ 809029C + push {r4-r7,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r7, _080902D4 @ =sPSSData + ldr r6, _080902D8 @ =0x00000a84 + movs r5, 0x1 + ldr r4, _080902DC @ =sub_8090324 +_080902AC: + ldr r0, [r7] + lsls r1, r2, 2 + adds r0, r6 + adds r1, r0, r1 + ldr r0, [r1] + cmp r0, 0 + beq _080902C4 + strh r3, [r0, 0x32] + ldr r0, [r1] + strh r5, [r0, 0x36] + ldr r0, [r1] + str r4, [r0, 0x1C] +_080902C4: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _080902AC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080902D4: .4byte sPSSData +_080902D8: .4byte 0x00000a84 +_080902DC: .4byte sub_8090324 + thumb_func_end sub_809029C + + thumb_func_start sub_80902E0 +sub_80902E0: @ 80902E0 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _080902FC + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + b _08090312 +_080902FC: + ldr r0, _08090318 @ =sPSSData + ldr r1, [r0] + ldr r3, _0809031C @ =0x00000c62 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, _08090320 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08090312: + pop {r0} + bx r0 + .align 2, 0 +_08090318: .4byte sPSSData +_0809031C: .4byte 0x00000c62 +_08090320: .4byte SpriteCallbackDummy + thumb_func_end sub_80902E0 + + thumb_func_start sub_8090324 +sub_8090324: @ 8090324 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x36] + movs r3, 0x36 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08090338 + subs r0, r1, 0x1 + strh r0, [r2, 0x36] + b _08090354 +_08090338: + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x38] + subs r0, 0x45 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB6 + bls _08090354 + ldr r0, _08090358 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08090354: + pop {r0} + bx r0 + .align 2, 0 +_08090358: .4byte SpriteCallbackDummy + thumb_func_end sub_8090324 + + thumb_func_start sub_809035C +sub_809035C: @ 809035C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r7, _0809039C @ =sPSSData +_08090366: + ldr r0, [r7] + lsls r4, r5, 2 + ldr r1, _080903A0 @ =0x00000a84 + adds r0, r1 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _08090386 + bl sub_80913C4 + ldr r0, [r7] + ldr r1, _080903A0 @ =0x00000a84 + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_08090386: + adds r0, r5, 0x6 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _08090366 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809039C: .4byte sPSSData +_080903A0: .4byte 0x00000a84 + thumb_func_end sub_809035C + + thumb_func_start sub_80903A4 +sub_80903A4: @ 80903A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x8] + lsls r2, 16 + movs r1, 0x2C + mov r8, r1 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 19 + movs r3, 0xC8 + lsls r3, 15 + adds r1, r3 + lsrs r1, 16 + str r1, [sp, 0x10] + ldr r1, [sp, 0x8] + adds r1, 0x1 + lsrs r6, r2, 16 + str r6, [sp, 0xC] + asrs r2, 16 + muls r1, r2 + ldr r2, [sp, 0x10] + subs r1, r2, r1 + lsls r1, 16 + lsrs r2, r1, 16 + movs r1, 0x13 + subs r1, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x14] + movs r3, 0 + mov r9, r3 + adds r5, r0, 0 + ldr r1, _08090488 @ =sPSSData + ldr r0, [r1] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + beq _08090498 + movs r7, 0x4 + lsls r2, 16 + mov r10, r2 +_08090404: + ldr r6, _08090488 @ =sPSSData + ldr r2, [r6] + lsls r0, r5, 1 + ldr r3, _0809048C @ =0x00000ba4 + adds r1, r2, r3 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08090470 + lsls r4, r5, 2 + movs r6, 0xBE + lsls r6, 4 + adds r1, r2, r6 + adds r1, r4 + ldr r1, [r1] + mov r2, r8 + lsls r3, r2, 16 + asrs r3, 16 + movs r2, 0x2 + str r2, [sp] + ldr r6, [sp, 0x14] + str r6, [sp, 0x4] + mov r6, r10 + asrs r2, r6, 16 + bl sub_80912E0 + adds r2, r0, 0 + ldr r1, _08090488 @ =sPSSData + ldr r0, [r1] + ldr r3, _08090490 @ =0x00000a84 + adds r0, r3 + adds r1, r0, r4 + str r2, [r1] + cmp r2, 0 + beq _08090470 + mov r6, sp + ldrh r6, [r6, 0x8] + strh r6, [r2, 0x30] + ldr r0, [r1] + mov r2, sp + ldrh r2, [r2, 0xC] + strh r2, [r0, 0x32] + ldr r0, [r1] + mov r3, sp + ldrh r3, [r3, 0x10] + strh r3, [r0, 0x34] + ldr r1, [r1] + ldr r0, _08090494 @ =sub_80902E0 + str r0, [r1, 0x1C] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08090470: + adds r0, r5, 0x6 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + adds r0, 0x18 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + subs r7, 0x1 + cmp r7, 0 + bge _08090404 + b _08090550 + .align 2, 0 +_08090488: .4byte sPSSData +_0809048C: .4byte 0x00000ba4 +_08090490: .4byte 0x00000a84 +_08090494: .4byte sub_80902E0 +_08090498: + mov r10, r1 + movs r7, 0x4 + lsls r2, 16 + str r2, [sp, 0x18] +_080904A0: + mov r6, r10 + ldr r2, [r6] + lsls r0, r5, 1 + ldr r3, _08090564 @ =0x00000ba4 + adds r1, r2, r3 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _0809053A + lsls r4, r5, 2 + movs r6, 0xBE + lsls r6, 4 + adds r1, r2, r6 + adds r1, r4 + ldr r1, [r1] + mov r2, r8 + lsls r3, r2, 16 + asrs r3, 16 + movs r2, 0x2 + str r2, [sp] + ldr r6, [sp, 0x14] + str r6, [sp, 0x4] + ldr r6, [sp, 0x18] + asrs r2, r6, 16 + bl sub_80912E0 + adds r2, r0, 0 + mov r0, r10 + ldr r3, [r0] + ldr r1, _08090568 @ =0x00000a84 + adds r0, r3, r1 + adds r1, r0, r4 + str r2, [r1] + cmp r2, 0 + beq _0809053A + mov r6, sp + ldrh r6, [r6, 0x8] + strh r6, [r2, 0x30] + ldr r0, [r1] + mov r2, sp + ldrh r2, [r2, 0xC] + strh r2, [r0, 0x32] + ldr r0, [r1] + mov r6, sp + ldrh r6, [r6, 0x10] + strh r6, [r0, 0x34] + ldr r1, [r1] + ldr r0, _0809056C @ =sub_80902E0 + str r0, [r1, 0x1C] + ldr r1, _08090570 @ =0x00000c58 + adds r0, r3, r1 + ldrb r0, [r0] + adds r1, r5, 0 + movs r2, 0xC + bl GetBoxMonDataAt + cmp r0, 0 + bne _08090530 + mov r2, r10 + ldr r0, [r2] + ldr r3, _08090568 @ =0x00000a84 + adds r0, r3 + adds r0, r4 + ldr r2, [r0] + ldrb r1, [r2, 0x1] + movs r6, 0xD + negs r6, r6 + adds r0, r6, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x1] +_08090530: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0809053A: + adds r0, r5, 0x6 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + adds r0, 0x18 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + subs r7, 0x1 + cmp r7, 0 + bge _080904A0 +_08090550: + mov r0, r9 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08090564: .4byte 0x00000ba4 +_08090568: .4byte 0x00000a84 +_0809056C: .4byte sub_80902E0 +_08090570: .4byte 0x00000c58 + thumb_func_end sub_80903A4 + + thumb_func_start sub_8090574 +sub_8090574: @ 8090574 + push {r4-r7,lr} + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _080905D0 @ =sPSSData + ldr r1, [r6] + ldr r2, _080905D4 @ =0x00000c66 + adds r1, r2 + movs r5, 0 + strb r5, [r1] + ldr r1, [r6] + ldr r3, _080905D8 @ =0x00000c67 + adds r1, r3 + strb r0, [r1] + ldr r1, [r6] + ldr r7, _080905DC @ =0x00000c65 + adds r1, r7 + strb r4, [r1] + ldr r3, [r6] + ldr r1, _080905E0 @ =0x00000c5c + adds r2, r3, r1 + movs r1, 0x20 + strh r1, [r2] + lsls r4, 24 + asrs r4, 24 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 1 + negs r1, r1 + subs r7, 0x5 + adds r2, r3, r7 + strh r1, [r2] + ldr r1, _080905E4 @ =0x00000c62 + adds r3, r1 + strh r5, [r3] + bl sub_8090794 + cmp r4, 0 + ble _080905EC + ldr r0, [r6] + ldr r2, _080905E8 @ =0x00000c64 + adds r0, r2 + movs r1, 0 + b _080905F4 + .align 2, 0 +_080905D0: .4byte sPSSData +_080905D4: .4byte 0x00000c66 +_080905D8: .4byte 0x00000c67 +_080905DC: .4byte 0x00000c65 +_080905E0: .4byte 0x00000c5c +_080905E4: .4byte 0x00000c62 +_080905E8: .4byte 0x00000c64 +_080905EC: + ldr r0, [r6] + ldr r3, _08090620 @ =0x00000c64 + adds r0, r3 + movs r1, 0x5 +_080905F4: + strb r1, [r0] + ldr r0, _08090624 @ =sPSSData + ldr r2, [r0] + ldr r7, _08090620 @ =0x00000c64 + adds r0, r2, r7 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x64 + ldr r3, _08090628 @ =0x00000c5e + adds r1, r2, r3 + strh r0, [r1] + subs r7, 0x4 + adds r2, r7 + movs r1, 0 + ldrsh r0, [r2, r1] + bl sub_809029C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08090620: .4byte 0x00000c64 +_08090624: .4byte sPSSData +_08090628: .4byte 0x00000c5e + thumb_func_end sub_8090574 + + thumb_func_start sub_809062C +sub_809062C: @ 809062C + push {r4-r6,lr} + ldr r5, _08090658 @ =sPSSData + ldr r0, [r5] + ldr r4, _0809065C @ =0x00000c5c + adds r1, r0, r4 + ldrh r0, [r1] + cmp r0, 0 + beq _08090640 + subs r0, 0x1 + strh r0, [r1] +_08090640: + ldr r3, [r5] + ldr r6, _08090660 @ =0x00000c66 + adds r0, r3, r6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080906C4 + cmp r0, 0x1 + bgt _08090664 + cmp r0, 0 + beq _0809066C + b _08090782 + .align 2, 0 +_08090658: .4byte sPSSData +_0809065C: .4byte 0x00000c5c +_08090660: .4byte 0x00000c66 +_08090664: + cmp r0, 0x2 + bne _0809066A + b _08090770 +_0809066A: + b _08090782 +_0809066C: + ldr r0, _080906B8 @ =0x00000c5e + adds r1, r3, r0 + movs r2, 0xC6 + lsls r2, 4 + adds r0, r3, r2 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBA + bhi _0809068A + b _0809078C +_0809068A: + ldr r1, _080906BC @ =0x00000c64 + adds r0, r3, r1 + ldrb r0, [r0] + bl sub_809035C + ldr r2, [r5] + ldr r0, _080906B8 @ =0x00000c5e + adds r3, r2, r0 + ldr r1, _080906C0 @ =0x00000c65 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldrh r1, [r3] + adds r0, r1 + strh r0, [r3] + adds r2, r6 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _0809078C + .align 2, 0 +_080906B8: .4byte 0x00000c5e +_080906BC: .4byte 0x00000c64 +_080906C0: .4byte 0x00000c65 +_080906C4: + ldr r2, _08090728 @ =0x00000c5e + adds r1, r3, r2 + movs r6, 0xC6 + lsls r6, 4 + adds r2, r3, r6 + ldrh r0, [r2] + ldrh r6, [r1] + adds r0, r6 + strh r0, [r1] + ldr r6, _0809072C @ =0x00000c64 + adds r0, r3, r6 + ldrb r0, [r0] + adds r1, r3, r4 + ldrh r1, [r1] + movs r3, 0 + ldrsh r2, [r2, r3] + bl sub_80903A4 + ldr r2, [r5] + ldr r3, _08090730 @ =0x00000c62 + adds r1, r2, r3 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldr r1, _08090734 @ =0x00000c65 + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r1, 0 + ble _0809070C + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08090718 +_0809070C: + cmp r1, 0 + bge _08090740 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, 0 + bne _08090740 +_08090718: + ldr r0, _08090738 @ =sPSSData + ldr r1, [r0] + ldr r2, _0809073C @ =0x00000c66 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0809078C + .align 2, 0 +_08090728: .4byte 0x00000c5e +_0809072C: .4byte 0x00000c64 +_08090730: .4byte 0x00000c62 +_08090734: .4byte 0x00000c65 +_08090738: .4byte sPSSData +_0809073C: .4byte 0x00000c66 +_08090740: + ldr r3, _08090760 @ =sPSSData + ldr r0, [r3] + ldr r6, _08090764 @ =0x00000c64 + adds r1, r0, r6 + ldr r2, _08090768 @ =0x00000c65 + adds r0, r2 + ldrb r0, [r0] + ldrb r6, [r1] + adds r0, r6 + movs r2, 0 + strb r0, [r1] + ldr r0, [r3] + ldr r1, _0809076C @ =0x00000c66 + adds r0, r1 + strb r2, [r0] + b _0809078C + .align 2, 0 +_08090760: .4byte sPSSData +_08090764: .4byte 0x00000c64 +_08090768: .4byte 0x00000c65 +_0809076C: .4byte 0x00000c66 +_08090770: + ldr r2, _08090788 @ =0x00000c62 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _0809078C + adds r1, r3, r4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_08090782: + movs r0, 0 + b _0809078E + .align 2, 0 +_08090788: .4byte 0x00000c62 +_0809078C: + movs r0, 0x1 +_0809078E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809062C + + thumb_func_start sub_8090794 +sub_8090794: @ 8090794 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r0, 0 + ldr r1, _08090810 @ =sPSSData + mov r9, r1 +_080907A8: + adds r0, 0x1 + mov r8, r0 + movs r7, 0x5 +_080907AE: + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0x41 + bl GetBoxMonDataAt + mov r2, r9 + ldr r1, [r2] + lsls r2, r5, 1 + ldr r3, _08090814 @ =0x00000ba4 + adds r1, r3 + adds r1, r2 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _080907EA + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + bl GetBoxMonDataAt + mov r2, r9 + ldr r1, [r2] + lsls r2, r5, 2 + movs r3, 0xBE + lsls r3, 4 + adds r1, r3 + adds r1, r2 + str r0, [r1] +_080907EA: + adds r5, 0x1 + subs r7, 0x1 + cmp r7, 0 + bge _080907AE + mov r0, r8 + cmp r0, 0x4 + ble _080907A8 + ldr r0, _08090810 @ =sPSSData + ldr r0, [r0] + ldr r1, _08090818 @ =0x00000c58 + adds r0, r1 + strb r6, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08090810: .4byte sPSSData +_08090814: .4byte 0x00000ba4 +_08090818: .4byte 0x00000c58 + thumb_func_end sub_8090794 + + thumb_func_start sub_809081C +sub_809081C: @ 809081C + push {r4,r5,lr} + lsls r0, 24 + ldr r5, _08090848 @ =sPSSData + ldr r1, [r5] + lsrs r4, r0, 22 + ldr r0, _0809084C @ =0x00000a84 + adds r1, r0 + adds r1, r4 + ldr r0, [r1] + cmp r0, 0 + beq _08090842 + bl sub_80913C4 + ldr r0, [r5] + ldr r1, _0809084C @ =0x00000a84 + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_08090842: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08090848: .4byte sPSSData +_0809084C: .4byte 0x00000a84 + thumb_func_end sub_809081C + + thumb_func_start sub_8090850 +sub_8090850: @ 8090850 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r1, _08090884 @ =sPSSData + ldr r1, [r1] + lsrs r0, 22 + ldr r3, _08090888 @ =0x00000a84 + adds r1, r3 + adds r1, r0 + ldr r3, [r1] + cmp r3, 0 + beq _0809087E + movs r0, 0x3 + adds r1, r2, 0 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x1] +_0809087E: + pop {r0} + bx r0 + .align 2, 0 +_08090884: .4byte sPSSData +_08090888: .4byte 0x00000a84 + thumb_func_end sub_8090850 + + thumb_func_start sub_809088C +sub_809088C: @ 809088C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _0809092C @ =gPlayerParty + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x68 + movs r3, 0x40 + bl sub_80912E0 + ldr r1, _08090930 @ =sPSSData + ldr r1, [r1] + ldr r2, _08090934 @ =0x00000a6c + adds r1, r2 + str r0, [r1] + movs r7, 0x1 + movs r6, 0x1 +_080908D2: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _0809092C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08090938 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r1, r0, 0 + subs r0, r6, 0x1 + lsls r3, r0, 1 + adds r3, r0 + lsls r3, 19 + movs r0, 0x80 + lsls r0, 13 + adds r3, r0 + asrs r3, 16 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x98 + bl sub_80912E0 + ldr r1, _08090930 @ =sPSSData + ldr r1, [r1] + lsls r2, r6, 2 + ldr r3, _08090934 @ =0x00000a6c + adds r1, r3 + adds r1, r2 + str r0, [r1] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _08090946 + .align 2, 0 +_0809092C: .4byte gPlayerParty +_08090930: .4byte sPSSData +_08090934: .4byte 0x00000a6c +_08090938: + ldr r0, _080909E8 @ =sPSSData + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _080909EC @ =0x00000a6c + adds r0, r2 + adds r0, r1 + str r5, [r0] +_08090946: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080908D2 + ldr r3, _080909E8 @ =sPSSData + mov r0, r8 + cmp r0, 0 + bne _0809098A + movs r6, 0 + cmp r6, r7 + bcs _0809098A + mov r12, r3 + ldr r5, _080909EC @ =0x00000a6c + movs r4, 0x4 +_08090964: + mov r2, r12 + ldr r1, [r2] + lsls r0, r6, 2 + adds r1, r5 + adds r1, r0 + ldr r2, [r1] + ldrh r0, [r2, 0x22] + subs r0, 0xA0 + strh r0, [r2, 0x22] + ldr r1, [r1] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, r7 + bcc _08090964 +_0809098A: + ldr r0, [r3] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _080909DA + movs r6, 0 + adds r7, r3, 0 + ldr r5, _080909EC @ =0x00000a6c +_08090998: + ldr r0, [r7] + lsls r4, r6, 2 + adds r0, r5 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _080909D0 + movs r0, 0x64 + muls r0, r6 + ldr r1, _080909F0 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + cmp r0, 0 + bne _080909D0 + ldr r0, [r7] + adds r0, r5 + adds r0, r4 + ldr r2, [r0] + ldrb r1, [r2, 0x1] + movs r3, 0xD + negs r3, r3 + adds r0, r3, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x1] +_080909D0: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _08090998 +_080909DA: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080909E8: .4byte sPSSData +_080909EC: .4byte 0x00000a6c +_080909F0: .4byte gPlayerParty + thumb_func_end sub_809088C + + thumb_func_start sub_80909F4 +sub_80909F4: @ 80909F4 + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _08090A54 @ =sPSSData + ldr r1, [r0] + ldr r2, _08090A58 @ =0x00000c5a + adds r1, r2 + movs r2, 0 + strb r2, [r1] + movs r5, 0 + movs r6, 0 + adds r3, r0, 0 + ldr r7, _08090A5C @ =0x00000a6c +_08090A0C: + ldr r0, [r3] + lsls r4, r5, 2 + adds r0, r7 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _08090A42 + cmp r5, r6 + beq _08090A3C + adds r1, r6, 0 + str r3, [sp] + bl sub_8090A74 + ldr r3, [sp] + ldr r2, [r3] + adds r0, r2, r7 + adds r0, r4 + movs r1, 0 + str r1, [r0] + ldr r0, _08090A58 @ =0x00000c5a + adds r2, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] +_08090A3C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08090A42: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08090A0C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08090A54: .4byte sPSSData +_08090A58: .4byte 0x00000c5a +_08090A5C: .4byte 0x00000a6c + thumb_func_end sub_80909F4 + + thumb_func_start sub_8090A60 +sub_8090A60: @ 8090A60 + ldr r0, _08090A6C @ =sPSSData + ldr r0, [r0] + ldr r1, _08090A70 @ =0x00000c5a + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08090A6C: .4byte sPSSData +_08090A70: .4byte 0x00000c5a + thumb_func_end sub_8090A60 + + thumb_func_start sub_8090A74 +sub_8090A74: @ 8090A74 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + strh r1, [r2, 0x30] + cmp r1, 0 + bne _08090A88 + movs r3, 0x68 + movs r4, 0x40 + b _08090A9A +_08090A88: + movs r3, 0x98 + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 19 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r4, r0, 16 +_08090A9A: + ldrh r0, [r2, 0x20] + lsls r0, 3 + strh r0, [r2, 0x32] + ldrh r0, [r2, 0x22] + lsls r0, 3 + strh r0, [r2, 0x34] + lsls r1, r3, 3 + movs r3, 0x32 + ldrsh r0, [r2, r3] + subs r0, r1, r0 + cmp r0, 0 + bge _08090AB4 + adds r0, 0x7 +_08090AB4: + asrs r0, 3 + strh r0, [r2, 0x36] + lsls r0, r4, 16 + asrs r0, 13 + movs r3, 0x34 + ldrsh r1, [r2, r3] + subs r0, r1 + cmp r0, 0 + bge _08090AC8 + adds r0, 0x7 +_08090AC8: + asrs r0, 3 + strh r0, [r2, 0x38] + movs r0, 0x8 + strh r0, [r2, 0x3A] + ldr r0, _08090ADC @ =sub_8090AE0 + str r0, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08090ADC: .4byte sub_8090AE0 + thumb_func_end sub_8090A74 + + thumb_func_start sub_8090AE0 +sub_8090AE0: @ 8090AE0 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08090B10 + ldrh r0, [r3, 0x36] + ldrh r4, [r3, 0x32] + adds r0, r4 + strh r0, [r3, 0x32] + ldrh r1, [r3, 0x38] + ldrh r4, [r3, 0x34] + adds r1, r4 + strh r1, [r3, 0x34] + lsls r0, 16 + asrs r0, 19 + strh r0, [r3, 0x20] + lsls r1, 16 + asrs r1, 19 + strh r1, [r3, 0x22] + subs r0, r2, 0x1 + strh r0, [r3, 0x3A] + b _08090B54 +_08090B10: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08090B20 + movs r0, 0x68 + strh r0, [r3, 0x20] + movs r0, 0x40 + b _08090B32 +_08090B20: + movs r0, 0x98 + strh r0, [r3, 0x20] + movs r4, 0x30 + ldrsh r1, [r3, r4] + subs r1, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x10 +_08090B32: + strh r0, [r3, 0x22] + ldr r0, _08090B5C @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + ldr r0, _08090B60 @ =sPSSData + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r4, _08090B64 @ =0x00000a6c + adds r0, r2, r4 + adds r0, r1 + str r3, [r0] + ldr r0, _08090B68 @ =0x00000c5a + adds r2, r0 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_08090B54: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08090B5C: .4byte SpriteCallbackDummy +_08090B60: .4byte sPSSData +_08090B64: .4byte 0x00000a6c +_08090B68: .4byte 0x00000c5a + thumb_func_end sub_8090AE0 + + thumb_func_start sub_8090B6C +sub_8090B6C: @ 8090B6C + push {r4,lr} + ldr r4, _08090B90 @ =sPSSData + ldr r0, [r4] + ldr r1, _08090B94 @ =0x00000a68 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _08090B8A + bl sub_80913C4 + ldr r0, [r4] + ldr r1, _08090B94 @ =0x00000a68 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_08090B8A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08090B90: .4byte sPSSData +_08090B94: .4byte 0x00000a68 + thumb_func_end sub_8090B6C + + thumb_func_start sub_8090B98 +sub_8090B98: @ 8090B98 + push {r4-r6,lr} + movs r3, 0 + ldr r6, _08090BEC @ =sPSSData + lsls r0, 16 + asrs r4, r0, 16 + movs r5, 0x5 + negs r5, r5 +_08090BA6: + ldr r0, [r6] + lsls r1, r3, 2 + ldr r2, _08090BF0 @ =0x00000a6c + adds r0, r2 + adds r2, r0, r1 + ldr r1, [r2] + cmp r1, 0 + beq _08090BFE + ldrh r0, [r1, 0x22] + adds r0, r4, r0 + strh r0, [r1, 0x22] + ldr r2, [r2] + ldrh r1, [r2, 0x26] + ldrh r0, [r2, 0x22] + adds r1, r0 + adds r0, r2, 0 + adds r0, 0x29 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 13 + adds r0, r1 + lsrs r0, 16 + cmp r0, 0xC0 + bls _08090BF4 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08090BFE + .align 2, 0 +_08090BEC: .4byte sPSSData +_08090BF0: .4byte 0x00000a6c +_08090BF4: + adds r2, 0x3E + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2] +_08090BFE: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _08090BA6 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8090B98 + + thumb_func_start sub_8090C10 +sub_8090C10: @ 8090C10 + push {r4,r5,lr} + lsls r0, 24 + ldr r5, _08090C3C @ =sPSSData + ldr r1, [r5] + lsrs r4, r0, 22 + ldr r0, _08090C40 @ =0x00000a6c + adds r1, r0 + adds r1, r4 + ldr r0, [r1] + cmp r0, 0 + beq _08090C36 + bl sub_80913C4 + ldr r0, [r5] + ldr r1, _08090C40 @ =0x00000a6c + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_08090C36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08090C3C: .4byte sPSSData +_08090C40: .4byte 0x00000a6c + thumb_func_end sub_8090C10 + + thumb_func_start sub_8090C44 +sub_8090C44: @ 8090C44 + push {r4-r6,lr} + movs r5, 0 + ldr r6, _08090C7C @ =sPSSData +_08090C4A: + ldr r0, [r6] + lsls r4, r5, 2 + ldr r1, _08090C80 @ =0x00000a6c + adds r0, r1 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _08090C6A + bl sub_80913C4 + ldr r0, [r6] + ldr r1, _08090C80 @ =0x00000a6c + adds r0, r1 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_08090C6A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08090C4A + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08090C7C: .4byte sPSSData +_08090C80: .4byte 0x00000a6c + thumb_func_end sub_8090C44 + + thumb_func_start sub_8090C84 +sub_8090C84: @ 8090C84 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + ldr r1, _08090CB8 @ =sPSSData + ldr r1, [r1] + lsrs r0, 22 + ldr r3, _08090CBC @ =0x00000a6c + adds r1, r3 + adds r1, r0 + ldr r3, [r1] + cmp r3, 0 + beq _08090CB2 + movs r0, 0x3 + adds r1, r2, 0 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x1] +_08090CB2: + pop {r0} + bx r0 + .align 2, 0 +_08090CB8: .4byte sPSSData +_08090CBC: .4byte 0x00000a6c + thumb_func_end sub_8090C84 + + thumb_func_start sub_8090CC0 +sub_8090CC0: @ 8090CC0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + cmp r4, 0 + bne _08090CF0 + ldr r3, _08090CE8 @ =sPSSData + ldr r0, [r3] + ldr r5, _08090CEC @ =0x00000a68 + adds r2, r0, r5 + lsls r1, 2 + adds r5, 0x4 + adds r0, r5 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + str r4, [r0] + b _08090D0C + .align 2, 0 +_08090CE8: .4byte sPSSData +_08090CEC: .4byte 0x00000a68 +_08090CF0: + cmp r4, 0x1 + bne _08090D42 + ldr r3, _08090D48 @ =sPSSData + ldr r0, [r3] + ldr r1, _08090D4C @ =0x00000a68 + adds r2, r0, r1 + lsls r1, r5, 2 + ldr r4, _08090D50 @ =0x00000a84 + adds r0, r4 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + movs r1, 0 + str r1, [r0] +_08090D0C: + adds r5, r3, 0 + ldr r0, [r5] + ldr r4, _08090D4C @ =0x00000a68 + adds r0, r4 + ldr r1, [r0] + ldr r0, _08090D54 @ =sub_80911B0 + str r0, [r1, 0x1C] + bl sub_8090058 + ldr r1, [r5] + adds r1, r4 + ldr r3, [r1] + movs r1, 0x3 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r5] + adds r0, r4 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_08090D42: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08090D48: .4byte sPSSData +_08090D4C: .4byte 0x00000a68 +_08090D50: .4byte 0x00000a84 +_08090D54: .4byte sub_80911B0 + thumb_func_end sub_8090CC0 + + thumb_func_start sub_8090D58 +sub_8090D58: @ 8090D58 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r0, 0xE + bne _08090DA4 + ldr r3, _08090D98 @ =sPSSData + ldr r1, [r3] + lsls r5, r6, 2 + ldr r4, _08090D9C @ =0x00000a6c + adds r0, r1, r4 + adds r0, r5 + ldr r2, _08090DA0 @ =0x00000a68 + adds r1, r2 + ldr r2, [r1] + str r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, [r3] + adds r0, r4 + adds r0, r5 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0xC + strb r1, [r0] + b _08090DE0 + .align 2, 0 +_08090D98: .4byte sPSSData +_08090D9C: .4byte 0x00000a6c +_08090DA0: .4byte 0x00000a68 +_08090DA4: + ldr r5, _08090DF8 @ =sPSSData + ldr r1, [r5] + lsls r4, r6, 2 + ldr r3, _08090DFC @ =0x00000a84 + adds r0, r1, r3 + adds r0, r4 + ldr r2, _08090E00 @ =0x00000a68 + adds r1, r2 + ldr r2, [r1] + str r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, [r5] + adds r0, r3 + adds r0, r4 + ldr r4, [r0] + adds r0, r6, 0 + movs r1, 0x6 + bl __umodsi3 + movs r1, 0x13 + subs r1, r0 + adds r4, 0x43 + strb r1, [r4] + adds r3, r5, 0 +_08090DE0: + ldr r1, [r3] + ldr r0, _08090E00 @ =0x00000a68 + adds r1, r0 + ldr r2, [r1] + ldr r0, _08090E04 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + movs r0, 0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08090DF8: .4byte sPSSData +_08090DFC: .4byte 0x00000a84 +_08090E00: .4byte 0x00000a68 +_08090E04: .4byte SpriteCallbackDummy + thumb_func_end sub_8090D58 + + thumb_func_start sub_8090E08 +sub_8090E08: @ 8090E08 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0xE + bne _08090E30 + ldr r3, _08090E24 @ =sPSSData + ldr r1, [r3] + ldr r0, _08090E28 @ =0x00000afc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08090E2C @ =0x00000a6c + b _08090E3C + .align 2, 0 +_08090E24: .4byte sPSSData +_08090E28: .4byte 0x00000afc +_08090E2C: .4byte 0x00000a6c +_08090E30: + ldr r3, _08090E5C @ =sPSSData + ldr r1, [r3] + ldr r0, _08090E60 @ =0x00000afc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08090E64 @ =0x00000a84 +_08090E3C: + adds r0, r4 + adds r1, r0 + str r1, [r2] + ldr r1, [r3] + ldr r2, _08090E68 @ =0x00000a68 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08090E6C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + ldr r4, _08090E70 @ =0x00000c59 + adds r1, r4 + movs r0, 0 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08090E5C: .4byte sPSSData +_08090E60: .4byte 0x00000afc +_08090E64: .4byte 0x00000a84 +_08090E68: .4byte 0x00000a68 +_08090E6C: .4byte SpriteCallbackDummy +_08090E70: .4byte 0x00000c59 + thumb_func_end sub_8090E08 + + thumb_func_start sub_8090E74 +sub_8090E74: @ 8090E74 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, _08090E90 @ =sPSSData + ldr r0, [r6] + ldr r1, _08090E94 @ =0x00000c59 + mov r9, r1 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0x10 + bne _08090E98 + movs r0, 0 + b _08090FA0 + .align 2, 0 +_08090E90: .4byte sPSSData +_08090E94: .4byte 0x00000c59 +_08090E98: + adds r0, 0x1 + strb r0, [r1] + ldr r2, [r6] + ldr r5, _08090FAC @ =0x00000c59 + adds r0, r2, r5 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08090EC6 + ldr r1, _08090FB0 @ =0x00000afc + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, 0x22] + subs r0, 0x1 + strh r0, [r1, 0x22] + ldr r5, _08090FB4 @ =0x00000a68 + adds r0, r2, r5 + ldr r1, [r0] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] +_08090EC6: + ldr r3, [r6] + ldr r7, _08090FB0 @ =0x00000afc + adds r4, r3, r7 + ldr r0, [r4] + ldr r0, [r0] + mov r8, r0 + ldr r5, _08090FB8 @ =gSineTable + mov r0, r9 + adds r1, r3, r0 + ldrb r0, [r1] + lsls r0, 4 + adds r0, r5 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _08090EE8 + adds r0, 0xF +_08090EE8: + asrs r0, 4 + mov r2, r8 + strh r0, [r2, 0x24] + ldr r0, _08090FB4 @ =0x00000a68 + mov r8, r0 + add r3, r8 + ldr r2, [r3] + ldrb r0, [r1] + lsls r0, 4 + adds r0, r5 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, 0 + bge _08090F06 + adds r0, 0xF +_08090F06: + asrs r0, 4 + negs r0, r0 + strh r0, [r2, 0x24] + ldrb r0, [r1] + cmp r0, 0x8 + bne _08090F6A + ldr r3, [r3] + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0, 0x5] + movs r5, 0x3 + movs r1, 0xC + ands r1, r0 + ldrb r2, [r3, 0x5] + movs r4, 0xD + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r6] + mov r2, r8 + adds r1, r0, r2 + ldr r1, [r1] + adds r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x43 + ldrb r0, [r0] + adds r1, 0x43 + strb r0, [r1] + bl sub_8090058 + ldr r1, [r6] + adds r1, r7 + ldr r1, [r1] + ldr r1, [r1] + ands r5, r0 + lsls r5, 2 + ldrb r0, [r1, 0x5] + ands r4, r0 + orrs r4, r5 + strb r4, [r1, 0x5] + ldr r0, [r6] + adds r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_08090F6A: + ldr r1, [r6] + mov r5, r9 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x10 + bne _08090F9E + mov r0, r8 + adds r2, r1, r0 + ldr r3, [r2] + adds r1, r7 + ldr r0, [r1] + ldr r0, [r0] + str r0, [r2] + ldr r0, [r1] + str r3, [r0] + ldr r1, [r6] + mov r2, r8 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08090FBC @ =sub_80911B0 + str r0, [r2, 0x1C] + adds r1, r7 + ldr r0, [r1] + ldr r1, [r0] + ldr r0, _08090FC0 @ =SpriteCallbackDummy + str r0, [r1, 0x1C] +_08090F9E: + movs r0, 0x1 +_08090FA0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08090FAC: .4byte 0x00000c59 +_08090FB0: .4byte 0x00000afc +_08090FB4: .4byte 0x00000a68 +_08090FB8: .4byte gSineTable +_08090FBC: .4byte sub_80911B0 +_08090FC0: .4byte SpriteCallbackDummy + thumb_func_end sub_8090E74 + + thumb_func_start sub_8090FC4 +sub_8090FC4: @ 8090FC4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0x1 + beq _08090FFC + cmp r0, 0x1 + bgt _08090FDE + cmp r0, 0 + beq _08090FE4 + b _08091072 +_08090FDE: + cmp r2, 0x2 + beq _0809101C + b _08091072 +_08090FE4: + ldr r3, _08090FF4 @ =sPSSData + ldr r1, [r3] + movs r0, 0xB0 + lsls r0, 4 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08090FF8 @ =0x00000a6c + b _0809100A + .align 2, 0 +_08090FF4: .4byte sPSSData +_08090FF8: .4byte 0x00000a6c +_08090FFC: + ldr r3, _08091014 @ =sPSSData + ldr r1, [r3] + movs r0, 0xB0 + lsls r0, 4 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08091018 @ =0x00000a84 +_0809100A: + adds r0, r4 + adds r1, r0 + str r1, [r2] + adds r4, r3, 0 + b _0809102E + .align 2, 0 +_08091014: .4byte sPSSData +_08091018: .4byte 0x00000a84 +_0809101C: + ldr r0, _08091078 @ =sPSSData + ldr r1, [r0] + movs r3, 0xB0 + lsls r3, 4 + adds r2, r1, r3 + ldr r4, _0809107C @ =0x00000a68 + adds r1, r4 + str r1, [r2] + adds r4, r0, 0 +_0809102E: + ldr r0, [r4] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _08091072 + bl InitSpriteAffineAnim + ldr r0, [r4] + movs r3, 0xB0 + lsls r3, 4 + adds r0, r3 + ldr r0, [r0] + ldr r2, [r0] + ldrb r1, [r2, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r4] + adds r1, r3 + ldr r0, [r1] + ldr r2, [r0] + ldr r0, _08091080 @ =gUnknown_83CEC38 + str r0, [r2, 0x10] + ldr r0, [r1] + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAffineAnim +_08091072: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08091078: .4byte sPSSData +_0809107C: .4byte 0x00000a68 +_08091080: .4byte gUnknown_83CEC38 + thumb_func_end sub_8090FC4 + + thumb_func_start sub_8091084 +sub_8091084: @ 8091084 + push {lr} + ldr r0, _080910AC @ =sPSSData + ldr r0, [r0] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + cmp r1, 0 + beq _080910A6 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _080910B0 +_080910A6: + movs r0, 0 + b _080910C6 + .align 2, 0 +_080910AC: .4byte sPSSData +_080910B0: + adds r0, r1, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080910C4 + movs r0, 0x4 + orrs r0, r2 + strb r0, [r3] +_080910C4: + movs r0, 0x1 +_080910C6: + pop {r1} + bx r1 + thumb_func_end sub_8091084 + + thumb_func_start sub_80910CC +sub_80910CC: @ 80910CC + push {r4,lr} + ldr r4, _08091110 @ =sPSSData + ldr r0, [r4] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _08091108 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + bl sub_80913C4 + ldr r0, [r4] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r1, [r0] + movs r0, 0 + str r0, [r1] +_08091108: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08091110: .4byte sPSSData + thumb_func_end sub_80910CC + + thumb_func_start sub_8091114 +sub_8091114: @ 8091114 + push {lr} + ldr r3, _0809114C @ =sPSSData + ldr r0, [r3] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0 + beq _08091148 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r3] + movs r1, 0xB0 + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAffineAnim +_08091148: + pop {r0} + bx r0 + .align 2, 0 +_0809114C: .4byte sPSSData + thumb_func_end sub_8091114 + + thumb_func_start sub_8091150 +sub_8091150: @ 8091150 + push {lr} + ldr r0, _08091168 @ =sPSSData + ldr r0, [r0] + movs r1, 0xB0 + lsls r1, 4 + adds r2, r0, r1 + ldr r0, [r2] + cmp r0, 0 + bne _0809116C + movs r0, 0 + b _08091180 + .align 2, 0 +_08091168: .4byte sPSSData +_0809116C: + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0809117E + movs r0, 0 + str r0, [r2] +_0809117E: + movs r0, 0x1 +_08091180: + pop {r1} + bx r1 + thumb_func_end sub_8091150 + + thumb_func_start sub_8091184 +sub_8091184: @ 8091184 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080911A8 @ =sPSSData + ldr r1, [r1] + ldr r2, _080911AC @ =0x00000a68 + adds r1, r2 + ldr r3, [r1] + movs r1, 0x3 + ands r0, r1 + lsls r0, 2 + ldrb r2, [r3, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x5] + bx lr + .align 2, 0 +_080911A8: .4byte sPSSData +_080911AC: .4byte 0x00000a68 + thumb_func_end sub_8091184 + + thumb_func_start sub_80911B0 +sub_80911B0: @ 80911B0 + ldr r1, _080911D0 @ =sPSSData + ldr r1, [r1] + movs r2, 0xCB + lsls r2, 4 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r2, [r1] + ldrh r1, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r1, r2 + adds r1, 0x4 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_080911D0: .4byte sPSSData + thumb_func_end sub_80911B0 + + thumb_func_start sub_80911D4 +sub_80911D4: @ 80911D4 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _0809123C @ =sPSSData + ldr r0, [r1] + ldr r2, _08091240 @ =0x00000b54 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, r3 + beq _08091208 + adds r6, r2, 0 + ldr r5, _08091240 @ =0x00000b54 +_080911F0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08091208 + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _080911F0 +_08091208: + cmp r4, 0x28 + bne _08091248 + movs r4, 0 + ldr r0, [r2] + ldr r5, _08091240 @ =0x00000b54 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08091234 + adds r6, r2, 0 +_0809121C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08091234 + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _0809121C +_08091234: + cmp r4, 0x28 + bne _08091248 + ldr r0, _08091244 @ =0x0000ffff + b _0809127A + .align 2, 0 +_0809123C: .4byte sPSSData +_08091240: .4byte 0x00000b54 +_08091244: .4byte 0x0000ffff +_08091248: + ldr r1, [r2] + lsls r2, r4, 1 + ldr r5, _08091280 @ =0x00000b54 + adds r0, r1, r5 + adds r0, r2 + strh r3, [r0] + ldr r0, _08091284 @ =0x00000b04 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r4, 20 + lsrs r4, 16 + adds r0, r3, 0 + movs r1, 0x1 + bl GetMonIconTiles + lsls r1, r4, 5 + ldr r2, _08091288 @ =0x06010000 + adds r1, r2 + ldr r2, _0809128C @ =0x04000080 + bl CpuSet + adds r0, r4, 0 +_0809127A: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08091280: .4byte 0x00000b54 +_08091284: .4byte 0x00000b04 +_08091288: .4byte 0x06010000 +_0809128C: .4byte 0x04000080 + thumb_func_end sub_80911D4 + + thumb_func_start sub_8091290 +sub_8091290: @ 8091290 + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + movs r3, 0 + ldr r6, _080912C4 @ =sPSSData +_0809129A: + ldr r1, [r6] + lsls r2, r3, 1 + ldr r4, _080912C8 @ =0x00000b54 + adds r0, r1, r4 + adds r4, r0, r2 + ldrh r0, [r4] + cmp r0, r5 + bne _080912D0 + ldr r0, _080912CC @ =0x00000b04 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _080912DA + strh r0, [r4] + b _080912DA + .align 2, 0 +_080912C4: .4byte sPSSData +_080912C8: .4byte 0x00000b54 +_080912CC: .4byte 0x00000b04 +_080912D0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x27 + bls _0809129A +_080912DA: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8091290 + + thumb_func_start sub_80912E0 +sub_80912E0: @ 80912E0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r4, [sp, 0x3C] + ldr r5, [sp, 0x40] + lsls r0, 16 + lsrs r6, r0, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x18] + lsls r3, 16 + lsrs r3, 16 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r9, r5 + mov r2, sp + ldr r0, _08091390 @ =gUnknown_83CEBF0 + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldm r0!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + adds r0, r6, 0 + bl GetIconSpecies + mov r10, r0 + mov r6, r10 + mov r2, sp + ldr r1, _08091394 @ =gMonIconPaletteIndices + adds r1, r6, r1 + ldr r3, _08091398 @ =0x0000dac0 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2, 0x2] + adds r0, r6, 0 + bl sub_80911D4 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + ldr r0, _0809139C @ =0x0000ffff + cmp r5, r0 + beq _080913B2 + ldr r7, [sp, 0x18] + lsls r1, r7, 16 + asrs r1, 16 + mov r0, r8 + lsls r2, r0, 16 + asrs r2, 16 + mov r0, sp + mov r3, r9 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080913AC + ldr r1, _080913A0 @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldr r2, _080913A4 @ =0x000003ff + ands r2, r5 + ldrh r3, [r0, 0x4] + ldr r1, _080913A8 @ =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + movs r1, 0x3 + ands r4, r1 + lsls r3, r4, 2 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, 0x5] + mov r1, r10 + strh r1, [r0, 0x2E] + b _080913B4 + .align 2, 0 +_08091390: .4byte gUnknown_83CEBF0 +_08091394: .4byte gMonIconPaletteIndices +_08091398: .4byte 0x0000dac0 +_0809139C: .4byte 0x0000ffff +_080913A0: .4byte gSprites +_080913A4: .4byte 0x000003ff +_080913A8: .4byte 0xfffffc00 +_080913AC: + adds r0, r6, 0 + bl sub_8091290 +_080913B2: + movs r0, 0 +_080913B4: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80912E0 + + thumb_func_start sub_80913C4 +sub_80913C4: @ 80913C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + bl sub_8091290 + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80913C4 + + thumb_func_start sub_80913DC +sub_80913DC: @ 80913DC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08091404 @ =sub_8091420 + movs r1, 0x2 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08091408 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xC] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08091404: .4byte sub_8091420 +_08091408: .4byte gTasks + thumb_func_end sub_80913DC + + thumb_func_start sub_809140C +sub_809140C: @ 809140C + push {lr} + ldr r0, _0809141C @ =sub_8091420 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0809141C: .4byte sub_8091420 + thumb_func_end sub_809140C + + thumb_func_start sub_8091420 +sub_8091420: @ 8091420 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _08091444 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _08091504 + lsls r0, 2 + ldr r1, _08091448 @ =_0809144C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08091444: .4byte gTasks +_08091448: .4byte _0809144C + .align 2, 0 +_0809144C: + .4byte _08091460 + .4byte _08091498 + .4byte _080914CC + .4byte _080914D6 + .4byte _080914FC +_08091460: + ldr r1, _0809148C @ =sPSSData + ldr r0, [r1] + ldr r2, _08091490 @ =0x000002d2 + adds r0, r2 + movs r2, 0 + strb r2, [r0] + ldr r1, [r1] + movs r3, 0xB3 + lsls r3, 2 + adds r0, r1, r3 + strh r2, [r0] + ldr r0, _08091494 @ =0x00004abc + adds r1, r0 + movs r2, 0x80 + lsls r2, 5 + movs r0, 0 + movs r3, 0x1 + bl RequestDma3Fill + strh r0, [r4, 0xA] + b _08091508 + .align 2, 0 +_0809148C: .4byte sPSSData +_08091490: .4byte 0x000002d2 +_08091494: .4byte 0x00004abc +_08091498: + movs r1, 0xA + ldrsh r0, [r4, r1] + bl CheckForSpaceForDma3Request + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _0809150E + ldr r0, _080914C4 @ =sPSSData + ldr r1, [r0] + ldr r2, _080914C8 @ =0x00004abc + adds r1, r2 + movs r0, 0x2 + bl SetBgTilemapBuffer + movs r0, 0x2 + bl ShowBg + b _08091508 + .align 2, 0 +_080914C4: .4byte sPSSData +_080914C8: .4byte 0x00004abc +_080914CC: + ldrb r0, [r4, 0xC] + movs r1, 0 + bl sub_8091850 + b _08091508 +_080914D6: + bl sub_809196C + cmp r0, 0 + beq _0809150E + ldrb r0, [r4, 0xC] + bl sub_8091A94 + bl sub_8091F80 + ldrb r0, [r4, 0xC] + bl sub_80900D4 + ldr r1, _080914F8 @ =0x00005b0a + movs r0, 0xC + bl SetGpuReg + b _08091508 + .align 2, 0 +_080914F8: .4byte 0x00005b0a +_080914FC: + adds r0, r2, 0 + bl DestroyTask + b _08091508 +_08091504: + movs r0, 0 + b _0809150C +_08091508: + ldrh r0, [r4, 0x8] + adds r0, 0x1 +_0809150C: + strh r0, [r4, 0x8] +_0809150E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8091420 + + thumb_func_start sub_8091514 +sub_8091514: @ 8091514 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + mov r8, r4 + adds r0, r4, 0 + bl sub_80916F4 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0 + ldr r5, _080915D8 @ =sPSSData + ldr r2, [r5] + lsls r0, r6, 24 + asrs r3, r0, 24 + movs r0, 0x6 + negs r0, r0 + adds r1, r0, 0 + cmp r3, 0 + ble _08091540 + movs r1, 0x6 +_08091540: + ldr r7, _080915DC @ =0x000002ce + adds r0, r2, r7 + strh r1, [r0] + movs r1, 0x2 + cmp r3, 0 + ble _0809154E + movs r1, 0x1 +_0809154E: + ldr r7, _080915E0 @ =0x000002d3 + adds r0, r2, r7 + strb r1, [r0] + ldr r2, [r5] + movs r0, 0xB4 + lsls r0, 2 + adds r1, r2, r0 + movs r0, 0x20 + strh r0, [r1] + movs r1, 0xB5 + lsls r1, 2 + adds r0, r2, r1 + strb r4, [r0] + ldr r2, [r5] + movs r1, 0 + cmp r3, 0 + bgt _08091572 + movs r1, 0x5 +_08091572: + ldr r4, _080915E4 @ =0x000002d6 + adds r0, r2, r4 + strh r1, [r0] + movs r7, 0xB6 + lsls r7, 2 + adds r0, r2, r7 + strh r3, [r0] + movs r1, 0x38 + cmp r3, 0 + ble _0809158C + movs r0, 0x84 + lsls r0, 1 + adds r1, r0, 0 +_0809158C: + ldr r4, _080915E8 @ =0x000002da + adds r0, r2, r4 + strh r1, [r0] + movs r1, 0 + cmp r3, 0 + bgt _0809159A + movs r1, 0x5 +_0809159A: + movs r7, 0xB7 + lsls r7, 2 + adds r0, r2, r7 + strh r1, [r0] + ldr r0, _080915EC @ =0x000002de + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + movs r3, 0xB8 + lsls r3, 2 + adds r1, r2, r3 + movs r0, 0x2 + strh r0, [r1] + ldr r4, _080915F0 @ =0x00000a64 + adds r0, r2, r4 + mov r7, r8 + strb r7, [r0] + ldr r0, [r5] + ldr r1, _080915F4 @ =0x00000a65 + adds r0, r1 + strb r6, [r0] + ldr r0, [r5] + ldr r3, _080915F8 @ =0x00000a63 + adds r0, r3 + movs r1, 0 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080915D8: .4byte sPSSData +_080915DC: .4byte 0x000002ce +_080915E0: .4byte 0x000002d3 +_080915E4: .4byte 0x000002d6 +_080915E8: .4byte 0x000002da +_080915EC: .4byte 0x000002de +_080915F0: .4byte 0x00000a64 +_080915F4: .4byte 0x00000a65 +_080915F8: .4byte 0x00000a63 + thumb_func_end sub_8091514 + + thumb_func_start sub_80915FC +sub_80915FC: @ 80915FC + push {r4-r6,lr} + ldr r4, _08091618 @ =sPSSData + ldr r1, [r4] + ldr r5, _0809161C @ =0x00000a63 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08091644 + cmp r0, 0x1 + bgt _08091620 + cmp r0, 0 + beq _08091626 + b _080916D4 + .align 2, 0 +_08091618: .4byte sPSSData +_0809161C: .4byte 0x00000a63 +_08091620: + cmp r0, 0x2 + beq _08091694 + b _080916D4 +_08091626: + ldr r2, _08091688 @ =0x00000a64 + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + bl sub_8091850 + ldr r1, [r4] + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08091644: + bl sub_809196C + cmp r0, 0 + beq _080916E2 + ldr r6, _0809168C @ =sPSSData + ldr r1, [r6] + ldr r4, _08091688 @ =0x00000a64 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r5, _08091690 @ =0x00000a65 + adds r1, r5 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + bl sub_8090574 + ldr r1, [r6] + adds r4, r1, r4 + ldrb r0, [r4] + adds r1, r5 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + bl sub_8091C48 + ldr r0, [r6] + adds r0, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + bl sub_809200C + b _080916D4 + .align 2, 0 +_08091688: .4byte 0x00000a64 +_0809168C: .4byte sPSSData +_08091690: .4byte 0x00000a65 +_08091694: + bl sub_809062C + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, [r4] + movs r4, 0xB4 + lsls r4, 2 + adds r3, r2, r4 + ldrh r0, [r3] + cmp r0, 0 + beq _080916D0 + movs r0, 0xB3 + lsls r0, 2 + adds r1, r2, r0 + subs r4, 0x2 + adds r0, r2, r4 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r2 + strh r0, [r1] + ldrh r0, [r3] + subs r0, 0x1 + strh r0, [r3] + lsls r0, 16 + cmp r0, 0 + bne _080916E2 + bl sub_8091E34 + bl sub_80920AC +_080916D0: + adds r0, r5, 0 + b _080916E4 +_080916D4: + ldr r0, _080916EC @ =sPSSData + ldr r1, [r0] + ldr r4, _080916F0 @ =0x00000a63 + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080916E2: + movs r0, 0x1 +_080916E4: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080916EC: .4byte sPSSData +_080916F0: .4byte 0x00000a63 + thumb_func_end sub_80915FC + + thumb_func_start sub_80916F4 +sub_80916F4: @ 80916F4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + cmp r1, r4 + beq _0809171E +_08091708: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xD + bls _08091714 + movs r1, 0 +_08091714: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r1, r4 + bne _08091708 +_0809171E: + movs r0, 0x1 + negs r0, r0 + cmp r2, 0x6 + bhi _08091728 + movs r0, 0x1 +_08091728: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80916F4 + + thumb_func_start sub_8091730 +sub_8091730: @ 8091730 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl SetBoxWallpaper + ldr r0, _08091758 @ =sPSSData + ldr r0, [r0] + ldr r1, _0809175C @ =0x00000a62 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08091758: .4byte sPSSData +_0809175C: .4byte 0x00000a62 + thumb_func_end sub_8091730 + + thumb_func_start sub_8091760 +sub_8091760: @ 8091760 + push {r4,lr} + sub sp, 0x4 + ldr r1, _08091780 @ =sPSSData + ldr r0, [r1] + ldr r2, _08091784 @ =0x00000a62 + adds r0, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _08091844 + lsls r0, 2 + ldr r1, _08091788 @ =_0809178C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08091780: .4byte sPSSData +_08091784: .4byte 0x00000a62 +_08091788: .4byte _0809178C + .align 2, 0 +_0809178C: + .4byte _080917A0 + .4byte _080917C8 + .4byte _080917E2 + .4byte _0809181C + .4byte _08091840 +_080917A0: + ldr r0, [r4] + movs r1, 0xE7 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080917C0 @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldr r2, _080917C4 @ =0x00000a62 + adds r1, r2 + b _0809182E + .align 2, 0 +_080917C0: .4byte 0x0000ffff +_080917C4: .4byte 0x00000a62 +_080917C8: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08091844 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8091850 + b _08091826 +_080917E2: + bl sub_809196C + cmp r0, 0x1 + bne _08091844 + bl sub_8091EF0 + ldr r4, _08091810 @ =sPSSData + ldr r0, [r4] + movs r1, 0xE7 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08091814 @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, [r4] + ldr r2, _08091818 @ =0x00000a62 + adds r1, r2 + b _0809182E + .align 2, 0 +_08091810: .4byte sPSSData +_08091814: .4byte 0x0000ffff +_08091818: .4byte 0x00000a62 +_0809181C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08091844 +_08091826: + ldr r0, _08091838 @ =sPSSData + ldr r1, [r0] + ldr r0, _0809183C @ =0x00000a62 + adds r1, r0 +_0809182E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08091844 + .align 2, 0 +_08091838: .4byte sPSSData +_0809183C: .4byte 0x00000a62 +_08091840: + movs r0, 0 + b _08091846 +_08091844: + movs r0, 0x1 +_08091846: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8091760 + + thumb_func_start sub_8091850 +sub_8091850: @ 8091850 + push {r4-r7,lr} + sub sp, 0x4 + ldr r4, _08091904 @ =sPSSData + ldr r2, [r4] + ldr r3, _08091908 @ =0x000006f9 + adds r2, r3 + movs r3, 0 + strb r3, [r2] + ldr r2, [r4] + ldr r3, _0809190C @ =0x000006fa + adds r2, r3 + strb r0, [r2] + ldr r0, [r4] + ldr r2, _08091910 @ =0x000006fb + adds r0, r2 + strb r1, [r0] + ldr r1, [r4] + adds r2, r1, r2 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + beq _08091896 + movs r3, 0 + ldr r0, _08091914 @ =0x000002d2 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + bne _0809188A + movs r3, 0x1 +_0809188A: + strb r3, [r2] + ldr r0, [r4] + ldr r1, _08091918 @ =0x00004abc + adds r0, r1 + bl sub_8091A24 +_08091896: + ldr r6, _08091904 @ =sPSSData + ldr r0, [r6] + ldr r2, _0809190C @ =0x000006fa + adds r0, r2 + ldrb r0, [r0] + bl GetBoxWallpaper + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _0809191C @ =gUnknown_83D2A10 + adds r7, r1, r0 + ldr r0, [r7, 0x4] + ldr r1, [r6] + ldr r5, _08091920 @ =0x00000792 + adds r1, r5 + bl LZ77UnCompWram + ldr r1, [r6] + ldr r3, _08091918 @ =0x00004abc + adds r0, r1, r3 + adds r5, r1, r5 + ldr r4, _08091910 @ =0x000006fb + adds r2, r1, r4 + ldrb r2, [r2] + lsls r2, 24 + asrs r2, 24 + ldr r3, _08091914 @ =0x000002d2 + adds r1, r3 + ldrb r3, [r1] + adds r1, r5, 0 + bl sub_8091984 + ldr r1, [r6] + adds r4, r1, r4 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + beq _08091924 + ldr r0, [r7, 0x8] + ldr r2, _08091914 @ =0x000002d2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 21 + movs r3, 0x80 + lsls r3, 15 + adds r1, r3 + lsrs r1, 16 + movs r2, 0x40 + bl LoadPalette + b _08091938 + .align 2, 0 +_08091904: .4byte sPSSData +_08091908: .4byte 0x000006f9 +_0809190C: .4byte 0x000006fa +_08091910: .4byte 0x000006fb +_08091914: .4byte 0x000002d2 +_08091918: .4byte 0x00004abc +_0809191C: .4byte gUnknown_83D2A10 +_08091920: .4byte 0x00000792 +_08091924: + ldr r0, [r7, 0x8] + ldr r2, _08091960 @ =0x000002d2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 6 + ldr r2, _08091964 @ =gPlttBufferUnfaded + 0x80 + adds r1, r2 + movs r2, 0x20 + bl CpuSet +_08091938: + ldr r1, [r7] + ldr r0, _08091968 @ =sPSSData + ldr r0, [r0] + ldr r3, _08091960 @ =0x000002d2 + adds r0, r3 + ldrb r3, [r0] + lsls r3, 8 + movs r0, 0 + str r0, [sp] + movs r0, 0x2 + movs r2, 0 + bl DecompressAndLoadBgGfxUsingHeap + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08091960: .4byte 0x000002d2 +_08091964: .4byte gPlttBufferUnfaded + 0x80 +_08091968: .4byte sPSSData + thumb_func_end sub_8091850 + + thumb_func_start sub_809196C +sub_809196C: @ 809196C + push {lr} + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0809197E + movs r0, 0x1 + b _08091980 +_0809197E: + movs r0, 0 +_08091980: + pop {r1} + bx r1 + thumb_func_end sub_809196C + + thumb_func_start sub_8091984 +sub_8091984: @ 8091984 + push {r4-r7,lr} + sub sp, 0x24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, r3, 17 + ldr r0, _080919F0 @ =sPSSData + ldr r0, [r0] + movs r4, 0xB3 + lsls r4, 2 + adds r0, r4 + ldrh r4, [r0] + lsrs r4, 3 + adds r4, 0xA + lsls r2, 24 + asrs r7, r2, 24 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + adds r6, r4, r0 + movs r0, 0x3F + ands r6, r0 + movs r4, 0x14 + str r4, [sp] + movs r2, 0x12 + str r2, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + str r4, [sp, 0x10] + str r2, [sp, 0x14] + movs r0, 0x11 + str r0, [sp, 0x18] + lsls r3, 24 + asrs r3, 16 + str r3, [sp, 0x1C] + movs r0, 0xC0 + lsls r0, 10 + adds r5, r0 + asrs r5, 16 + str r5, [sp, 0x20] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyRectToBgTilemapBufferRect + cmp r7, 0 + beq _08091A16 + cmp r7, 0 + ble _080919F4 + lsls r0, r6, 16 + movs r1, 0xA0 + lsls r1, 13 + adds r0, r1 + b _080919FA + .align 2, 0 +_080919F0: .4byte sPSSData +_080919F4: + lsls r0, r6, 16 + ldr r4, _08091A20 @ =0xfffc0000 + adds r0, r4 +_080919FA: + lsrs r6, r0, 16 + lsls r2, r6, 24 + lsrs r2, 24 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x12 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r3, 0x2 + bl FillBgTilemapBufferRect +_08091A16: + add sp, 0x24 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08091A20: .4byte 0xfffc0000 + thumb_func_end sub_8091984 + + thumb_func_start sub_8091A24 +sub_8091A24: @ 8091A24 + push {r4-r6,lr} + adds r2, r0, 0 + ldr r0, _08091A50 @ =sPSSData + ldr r0, [r0] + movs r1, 0xB3 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + lsrs r0, 3 + adds r3, r0, 0 + adds r3, 0x1E + movs r0, 0x3F + ands r3, r0 + adds r0, r3, 0 + cmp r0, 0x1F + bgt _08091A54 + lsls r0, 1 + movs r6, 0x98 + lsls r6, 3 + adds r0, r6 + b _08091A5C + .align 2, 0 +_08091A50: .4byte sPSSData +_08091A54: + lsls r0, 1 + movs r1, 0xC8 + lsls r1, 4 + adds r0, r1 +_08091A5C: + adds r2, r0 + movs r0, 0 + movs r5, 0 + movs r4, 0x3F +_08091A64: + strh r5, [r2] + adds r2, 0x2 + adds r3, 0x1 + ands r3, r4 + adds r1, r3, 0 + cmp r1, 0 + bne _08091A76 + ldr r6, _08091A90 @ =0xfffff7c0 + adds r2, r6 +_08091A76: + cmp r1, 0x20 + bne _08091A80 + movs r1, 0xF8 + lsls r1, 3 + adds r2, r1 +_08091A80: + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2B + bls _08091A64 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08091A90: .4byte 0xfffff7c0 + thumb_func_end sub_8091A24 + + thumb_func_start sub_8091A94 +sub_8091A94: @ 8091A94 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _08091C1C @ =sPSSData + mov r10, r1 + ldr r1, [r1] + movs r2, 0xBE + lsls r2, 2 + adds r0, r1, r2 + str r0, [sp, 0x28] + mov r3, sp + adds r3, 0x28 + str r3, [sp, 0x30] + ldr r0, _08091C20 @ =0x00030200 + str r0, [r3, 0x4] + ldr r4, _08091C24 @ =0x000006fc + adds r1, r4 + str r1, [sp, 0x18] + add r0, sp, 0x1C + ldr r7, _08091C28 @ =0x0000dac9 + strh r7, [r0] + add r0, sp, 0x20 + movs r1, 0 + movs r2, 0x8 + bl memset + add r1, sp, 0x18 + add r0, sp, 0x8 + movs r2, 0x10 + bl memcpy + mov r0, r8 + bl GetBoxWallpaper + lsls r0, 24 + mov r5, r10 + ldr r4, [r5] + ldr r2, _08091C2C @ =gUnknown_83D29D0 + lsrs r0, 22 + adds r1, r0, r2 + ldrh r3, [r1] + movs r5, 0xE3 + lsls r5, 3 + adds r1, r4, r5 + strh r3, [r1] + adds r2, 0x2 + adds r0, r2 + ldrh r0, [r0] + ldr r1, _08091C30 @ =0x0000071a + adds r4, r1 + strh r0, [r4] + add r0, sp, 0x8 + bl LoadSpritePalettes + mov r2, r10 + ldr r0, [r2] + movs r6, 0xE7 + lsls r6, 3 + adds r0, r6 + movs r1, 0xFC + lsls r1, 2 + str r1, [r0] + adds r0, r7, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + mov r4, r10 + ldr r3, [r4] + lsls r1, r0, 4 + movs r5, 0x87 + lsls r5, 1 + mov r9, r5 + add r1, r9 + ldr r4, _08091C34 @ =0x0000071c + adds r2, r3, r4 + strh r1, [r2] + adds r3, r6 + movs r5, 0x80 + lsls r5, 9 + adds r1, r5, 0 + lsls r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r0, r7, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + mov r1, r10 + ldr r4, [r1] + lsls r1, r0, 4 + add r1, r9 + ldr r3, _08091C38 @ =0x0000071e + adds r2, r4, r3 + strh r1, [r2] + adds r6, r4, r6 + lsls r5, r0 + ldr r0, [r6] + orrs r0, r5 + str r0, [r6] + ldr r5, _08091C3C @ =0x000021a8 + adds r4, r5 + mov r0, r8 + bl GetBoxNamePtr + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x8 + bl StringCopyPadded + mov r4, r10 + ldr r0, [r4] + adds r5, r0, r5 + movs r2, 0xBE + lsls r2, 2 + adds r1, r0, r2 + movs r3, 0x9F + lsls r3, 3 + adds r0, r3 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0 + movs r3, 0 + bl PSS_RenderTextToVramViaBuffer + ldr r0, [sp, 0x30] + bl LoadSpriteSheet + mov r0, r8 + bl GetBoxNamePtr + bl sub_8091F60 + movs r4, 0 + lsls r0, 16 + asrs r6, r0, 16 +_08091BBC: + lsls r1, r4, 5 + adds r1, r6, r1 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08091C40 @ =gUnknown_83D2B7C + movs r2, 0x1C + movs r3, 0x18 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r5, _08091C1C @ =sPSSData + ldr r2, [r5] + lsls r0, r4, 2 + movs r3, 0xE4 + lsls r3, 3 + adds r2, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08091C44 @ =gSprites + adds r0, r1 + str r0, [r2] + lsls r1, r4, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08091BBC + ldr r0, [r5] + movs r4, 0xDF + lsls r4, 3 + adds r0, r4 + movs r1, 0 + strb r1, [r0] + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08091C1C: .4byte sPSSData +_08091C20: .4byte 0x00030200 +_08091C24: .4byte 0x000006fc +_08091C28: .4byte 0x0000dac9 +_08091C2C: .4byte gUnknown_83D29D0 +_08091C30: .4byte 0x0000071a +_08091C34: .4byte 0x0000071c +_08091C38: .4byte 0x0000071e +_08091C3C: .4byte 0x000021a8 +_08091C40: .4byte gUnknown_83D2B7C +_08091C44: .4byte gSprites + thumb_func_end sub_8091A94 + + thumb_func_start sub_8091C48 +sub_8091C48: @ 8091C48 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x2C] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r4, _08091CC4 @ =sPSSData + ldr r2, [r4] + movs r1, 0xBE + lsls r1, 2 + adds r0, r2, r1 + str r0, [sp, 0x20] + add r3, sp, 0x20 + ldr r5, _08091CC8 @ =0x0000ffff + mov r12, r5 + movs r6, 0xC0 + lsls r6, 10 + mov r9, r6 + ldr r0, _08091CCC @ =0x00030200 + str r0, [r3, 0x4] + add r1, sp, 0x8 + ldr r0, _08091CD0 @ =gUnknown_83D2B7C + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + movs r1, 0 + movs r5, 0xDF + lsls r5, 3 + adds r2, r5 + ldrb r0, [r2] + mov r8, r4 + adds r6, r3, 0 + cmp r0, 0 + bne _08091C9C + movs r1, 0x1 +_08091C9C: + strb r1, [r2] + mov r7, r8 + ldr r0, [r7] + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0 + bne _08091CD8 + ldr r0, [r6, 0x4] + mov r1, r12 + ands r0, r1 + mov r2, r9 + orrs r0, r2 + str r0, [r6, 0x4] + ldr r0, [r7] + ldr r3, _08091CD4 @ =0x0000071c + adds r0, r3 + ldrh r0, [r0] + mov r9, r0 + b _08091CFC + .align 2, 0 +_08091CC4: .4byte sPSSData +_08091CC8: .4byte 0x0000ffff +_08091CCC: .4byte 0x00030200 +_08091CD0: .4byte gUnknown_83D2B7C +_08091CD4: .4byte 0x0000071c +_08091CD8: + ldr r0, [r6, 0x4] + mov r5, r12 + ands r0, r5 + movs r1, 0x80 + lsls r1, 11 + orrs r0, r1 + str r0, [r6, 0x4] + mov r7, r8 + ldr r0, [r7] + ldr r1, _08091E18 @ =0x0000071c + adds r0, r1 + ldrh r0, [r0] + mov r9, r0 + add r1, sp, 0x8 + movs r0, 0x4 + strh r0, [r1] + ldr r0, _08091E1C @ =0x0000dac9 + strh r0, [r1, 0x2] +_08091CFC: + mov r2, r8 + ldr r4, [r2] + ldr r5, _08091E20 @ =0x000021a8 + adds r4, r5 + ldr r0, [sp, 0x2C] + bl GetBoxNamePtr + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x8 + bl StringCopyPadded + mov r3, r8 + ldr r0, [r3] + adds r5, r0, r5 + movs r7, 0xBE + lsls r7, 2 + adds r1, r0, r7 + movs r2, 0x9F + lsls r2, 3 + adds r0, r2 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0 + movs r3, 0 + bl PSS_RenderTextToVramViaBuffer + adds r0, r6, 0 + bl LoadSpriteSheet + ldr r0, [sp, 0x2C] + bl GetBoxWallpaper + lsls r0, 24 + lsrs r0, 22 + ldr r1, _08091E24 @ =gUnknown_83D29D0 + adds r0, r1 + mov r1, r9 + movs r2, 0x4 + bl LoadPalette + ldr r0, [sp, 0x2C] + bl GetBoxNamePtr + bl sub_8091F60 + lsls r0, 16 + mov r3, r10 + lsls r2, r3, 24 + asrs r2, 24 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 6 + lsrs r5, r0, 16 + str r5, [sp, 0x28] + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r7, 0 + mov r9, r8 + negs r2, r2 + mov r8, r2 +_08091D82: + lsls r6, r7, 5 + mov r0, r10 + lsls r1, r0, 16 + asrs r1, 16 + adds r1, r6 + lsls r1, 16 + asrs r1, 16 + add r0, sp, 0x8 + movs r2, 0x1C + movs r3, 0x18 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + ldr r2, [r1] + lsls r5, r7, 2 + movs r3, 0xE5 + lsls r3, 3 + adds r2, r3 + adds r2, r5 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08091E28 @ =gSprites + adds r1, r0 + str r1, [r2] + mov r0, r8 + lsls r4, r0, 1 + add r4, r8 + lsls r4, 1 + strh r4, [r1, 0x2E] + ldr r1, [r2] + ldr r3, [sp, 0x28] + lsls r0, r3, 16 + asrs r0, 16 + adds r0, r6 + strh r0, [r1, 0x30] + ldr r0, [r2] + movs r6, 0 + strh r6, [r0, 0x32] + ldr r0, [r2] + ldr r1, _08091E2C @ =sub_8091E84 + str r1, [r0, 0x1C] + lsls r1, r7, 24 + lsrs r1, 24 + bl StartSpriteAnim + mov r1, r9 + ldr r0, [r1] + movs r2, 0xE4 + lsls r2, 3 + adds r0, r2 + adds r0, r5 + ldr r1, [r0] + strh r4, [r1, 0x2E] + ldr r2, [r0] + movs r1, 0x1 + strh r1, [r2, 0x30] + ldr r1, [r0] + ldr r0, _08091E30 @ =sub_8091EB8 + str r0, [r1, 0x1C] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _08091D82 + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08091E18: .4byte 0x0000071c +_08091E1C: .4byte 0x0000dac9 +_08091E20: .4byte 0x000021a8 +_08091E24: .4byte gUnknown_83D29D0 +_08091E28: .4byte gSprites +_08091E2C: .4byte sub_8091E84 +_08091E30: .4byte sub_8091EB8 + thumb_func_end sub_8091C48 + + thumb_func_start sub_8091E34 +sub_8091E34: @ 8091E34 + push {lr} + ldr r0, _08091E50 @ =sPSSData + ldr r0, [r0] + movs r1, 0xDF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08091E54 + movs r0, 0x4 + bl FreeSpriteTilesByTag + b _08091E5A + .align 2, 0 +_08091E50: .4byte sPSSData +_08091E54: + movs r0, 0x3 + bl FreeSpriteTilesByTag +_08091E5A: + ldr r0, _08091E7C @ =sPSSData + ldr r0, [r0] + movs r3, 0xE4 + lsls r3, 3 + adds r2, r0, r3 + adds r3, 0x8 + adds r1, r0, r3 + ldr r1, [r1] + str r1, [r2] + ldr r2, _08091E80 @ =0x00000724 + adds r1, r0, r2 + adds r3, 0x4 + adds r0, r3 + ldr r0, [r0] + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08091E7C: .4byte sPSSData +_08091E80: .4byte 0x00000724 + thumb_func_end sub_8091E34 + + thumb_func_start sub_8091E84 +sub_8091E84: @ 8091E84 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08091E98 + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + b _08091EB0 +_08091E98: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x30 + ldrsh r1, [r2, r3] + cmp r0, r1 + bne _08091EB0 + ldr r0, _08091EB4 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08091EB0: + pop {r0} + bx r0 + .align 2, 0 +_08091EB4: .4byte SpriteCallbackDummy + thumb_func_end sub_8091E84 + + thumb_func_start sub_8091EB8 +sub_8091EB8: @ 8091EB8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08091ECC + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + b _08091EEA +_08091ECC: + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x32] + subs r0, 0x40 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xC0 + bls _08091EEA + adds r0, r2, 0 + bl DestroySprite +_08091EEA: + pop {r0} + bx r0 + thumb_func_end sub_8091EB8 + + thumb_func_start sub_8091EF0 +sub_8091EF0: @ 8091EF0 + push {lr} + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + bl GetBoxWallpaper + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _08091F2C @ =sPSSData + ldr r2, [r0] + movs r3, 0xDF + lsls r3, 3 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08091F38 + lsls r0, r1, 2 + ldr r1, _08091F30 @ =gUnknown_83D29D0 + adds r0, r1 + adds r3, 0x24 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _08091F34 @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet + b _08091F50 + .align 2, 0 +_08091F2C: .4byte sPSSData +_08091F30: .4byte gUnknown_83D29D0 +_08091F34: .4byte gPlttBufferUnfaded +_08091F38: + lsls r0, r1, 2 + ldr r1, _08091F54 @ =gUnknown_83D29D0 + adds r0, r1 + ldr r3, _08091F58 @ =0x0000071e + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _08091F5C @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet +_08091F50: + pop {r0} + bx r0 + .align 2, 0 +_08091F54: .4byte gUnknown_83D29D0 +_08091F58: .4byte 0x0000071e +_08091F5C: .4byte gPlttBufferUnfaded + thumb_func_end sub_8091EF0 + + thumb_func_start sub_8091F60 +sub_8091F60: @ 8091F60 + push {lr} + adds r1, r0, 0 + movs r0, 0x1 + movs r2, 0 + bl GetStringWidth + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + movs r0, 0xB0 + subs r0, r1 + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_8091F60 + + thumb_func_start sub_8091F80 +sub_8091F80: @ 8091F80 + push {r4,r5,lr} + ldr r0, _08091FFC @ =gUnknown_83D2B54 + bl LoadSpriteSheet + movs r5, 0 +_08091F8A: + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 19 + movs r0, 0xB8 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + ldr r0, _08092000 @ =gUnknown_83D2BB4 + movs r2, 0x1C + movs r3, 0x16 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _08091FDC + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08092004 @ =gSprites + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + movs r0, 0x1 + cmp r5, 0 + bne _08091FCA + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_08091FCA: + strh r0, [r4, 0x34] + ldr r0, _08092008 @ =sPSSData + ldr r0, [r0] + lsls r1, r5, 2 + movs r2, 0xE6 + lsls r2, 3 + adds r0, r2 + adds r0, r1 + str r4, [r0] +_08091FDC: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _08091F8A + bl sub_80939AC + lsls r0, 24 + cmp r0, 0 + beq _08091FF6 + movs r0, 0x1 + bl sub_80920FC +_08091FF6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08091FFC: .4byte gUnknown_83D2B54 +_08092000: .4byte gUnknown_83D2BB4 +_08092004: .4byte gSprites +_08092008: .4byte sPSSData + thumb_func_end sub_8091F80 + + thumb_func_start sub_809200C +sub_809200C: @ 809200C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0 + ldr r7, _08092060 @ =sPSSData + mov r12, r7 + movs r6, 0xE6 + lsls r6, 3 + movs r4, 0 + movs r3, 0x2 +_08092020: + mov r0, r12 + ldr r1, [r0] + lsls r0, r2, 2 + adds r1, r6 + adds r1, r0 + ldr r0, [r1] + strh r4, [r0, 0x24] + ldr r0, [r1] + strh r3, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _08092020 + lsls r0, r5, 24 + cmp r0, 0 + bge _08092068 + ldr r1, [r7] + movs r2, 0xE6 + lsls r2, 3 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, _08092064 @ =0x00000734 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0x48 + b _08092084 + .align 2, 0 +_08092060: .4byte sPSSData +_08092064: .4byte 0x00000734 +_08092068: + ldr r1, [r7] + movs r2, 0xE6 + lsls r2, 3 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, _080920A8 @ =0x00000734 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0xF8 +_08092084: + strh r2, [r0, 0x32] + ldr r0, [r1] + strh r2, [r0, 0x32] + ldr r1, [r7] + movs r2, 0xE6 + lsls r2, 3 + adds r0, r1, r2 + ldr r2, [r0] + movs r0, 0 + strh r0, [r2, 0x3C] + ldr r0, _080920A8 @ =0x00000734 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x1 + strh r0, [r1, 0x3C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080920A8: .4byte 0x00000734 + thumb_func_end sub_809200C + + thumb_func_start sub_80920AC +sub_80920AC: @ 80920AC + push {r4-r6,lr} + movs r3, 0 + movs r5, 0 + movs r6, 0x5 + negs r6, r6 + ldr r4, _080920F8 @ =sPSSData +_080920B8: + ldr r1, [r4] + lsls r0, r3, 2 + movs r2, 0xE6 + lsls r2, 3 + adds r1, r2 + adds r1, r0 + ldr r2, [r1] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 3 + adds r0, 0x5C + strh r0, [r2, 0x20] + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r1, [r1] + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x1 + bls _080920B8 + movs r0, 0x1 + bl sub_80920FC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080920F8: .4byte sPSSData + thumb_func_end sub_80920AC + + thumb_func_start sub_80920FC +sub_80920FC: @ 80920FC + push {r4-r6,lr} + lsls r0, 24 + cmp r0, 0 + beq _08092138 + movs r2, 0 + ldr r6, _08092134 @ =sPSSData + movs r5, 0xE6 + lsls r5, 3 + movs r3, 0 + movs r4, 0x1 +_08092110: + ldr r1, [r6] + lsls r0, r2, 2 + adds r1, r5 + adds r1, r0 + ldr r0, [r1] + strh r4, [r0, 0x2E] + ldr r0, [r1] + strh r3, [r0, 0x30] + ldr r0, [r1] + strh r3, [r0, 0x32] + ldr r0, [r1] + strh r3, [r0, 0x36] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _08092110 + b _08092158 + .align 2, 0 +_08092134: .4byte sPSSData +_08092138: + movs r2, 0 + ldr r5, _08092160 @ =sPSSData + movs r4, 0xE6 + lsls r4, 3 + movs r3, 0 +_08092142: + ldr r0, [r5] + lsls r1, r2, 2 + adds r0, r4 + adds r0, r1 + ldr r0, [r0] + strh r3, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _08092142 +_08092158: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08092160: .4byte sPSSData + thumb_func_end sub_80920FC + + thumb_func_start sub_8092164 +sub_8092164: @ 8092164 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _08092230 + lsls r0, 2 + ldr r1, _0809217C @ =_08092180 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809217C: .4byte _08092180 + .align 2, 0 +_08092180: + .4byte _08092194 + .4byte _0809219A + .4byte _080921C8 + .4byte _080921CE + .4byte _08092220 +_08092194: + movs r0, 0 + strh r0, [r2, 0x24] + b _08092230 +_0809219A: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08092230 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x34] + ldrh r3, [r2, 0x24] + adds r0, r3 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + adds r0, 0x1 + strh r0, [r2, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _08092230 + strh r1, [r2, 0x32] + strh r1, [r2, 0x24] + b _08092230 +_080921C8: + movs r0, 0x3 + strh r0, [r2, 0x2E] + b _08092230 +_080921CE: + ldr r0, _08092218 @ =sPSSData + ldr r1, [r0] + ldr r0, _0809221C @ =0x000002ce + adds r1, r0 + ldrh r0, [r2, 0x20] + ldrh r1, [r1] + subs r0, r1 + strh r0, [r2, 0x20] + subs r0, 0x49 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAE + bls _080921F4 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_080921F4: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _08092230 + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + movs r0, 0x4 + strh r0, [r2, 0x2E] + b _08092230 + .align 2, 0 +_08092218: .4byte sPSSData +_0809221C: .4byte 0x000002ce +_08092220: + ldr r0, _08092234 @ =sPSSData + ldr r0, [r0] + ldr r1, _08092238 @ =0x000002ce + adds r0, r1 + ldrh r1, [r2, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x20] +_08092230: + pop {r0} + bx r0 + .align 2, 0 +_08092234: .4byte sPSSData +_08092238: .4byte 0x000002ce + thumb_func_end sub_8092164 + + thumb_func_start sub_809223C +sub_809223C: @ 809223C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r4, [sp, 0x18] + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080922A8 @ =gUnknown_83D2BB4 + lsls r5, 16 + asrs r5, 16 + lsls r6, 16 + asrs r6, 16 + adds r1, r5, 0 + adds r2, r6, 0 + adds r3, r4, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080922B4 + movs r1, 0x1 + ands r1, r7 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _080922AC @ =gSprites + adds r6, r4, r5 + adds r0, r6, 0 + bl StartSpriteAnim + movs r0, 0x3 + mov r1, r8 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r6, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x5] + adds r5, 0x1C + adds r4, r5 + ldr r0, _080922B0 @ =SpriteCallbackDummy + str r0, [r4] + adds r0, r6, 0 + b _080922B6 + .align 2, 0 +_080922A8: .4byte gUnknown_83D2BB4 +_080922AC: .4byte gSprites +_080922B0: .4byte SpriteCallbackDummy +_080922B4: + movs r0, 0 +_080922B6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809223C + + thumb_func_start sub_80922C0 +sub_80922C0: @ 80922C0 + push {lr} + ldr r0, _080922D4 @ =sPSSData + ldr r0, [r0] + ldrb r1, [r0, 0x1] + cmp r1, 0x1 + beq _080922DC + ldr r1, _080922D8 @ =sBoxCursorArea + movs r0, 0 + strb r0, [r1] + b _080922E0 + .align 2, 0 +_080922D4: .4byte sPSSData +_080922D8: .4byte sBoxCursorArea +_080922DC: + ldr r0, _0809231C @ =sBoxCursorArea + strb r1, [r0] +_080922E0: + ldr r0, _08092320 @ =sBoxCursorPosition + movs r1, 0 + strb r1, [r0] + ldr r0, _08092324 @ =sIsMonBeingMoved + strb r1, [r0] + ldr r0, _08092328 @ =sMovingMonOrigBoxId + strb r1, [r0] + ldr r0, _0809232C @ =sMovingMonOrigBoxPos + strb r1, [r0] + ldr r0, _08092330 @ =sCanOnlyMove + strb r1, [r0] + bl sub_8092B50 + bl sub_8094AD8 + ldr r2, _08092334 @ =sPSSData + ldr r0, [r2] + ldr r1, _08092338 @ =0x00000cd2 + adds r0, r1 + movs r3, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _0809233C @ =0x000021ef + adds r0, r1 + strb r3, [r0] + bl sub_8093A10 + pop {r0} + bx r0 + .align 2, 0 +_0809231C: .4byte sBoxCursorArea +_08092320: .4byte sBoxCursorPosition +_08092324: .4byte sIsMonBeingMoved +_08092328: .4byte sMovingMonOrigBoxId +_0809232C: .4byte sMovingMonOrigBoxPos +_08092330: .4byte sCanOnlyMove +_08092334: .4byte sPSSData +_08092338: .4byte 0x00000cd2 +_0809233C: .4byte 0x000021ef + thumb_func_end sub_80922C0 + + thumb_func_start sub_8092340 +sub_8092340: @ 8092340 + push {lr} + bl sub_8094AD8 + bl sub_8093AAC + ldr r3, _08092380 @ =sPSSData + ldr r0, [r3] + ldr r1, _08092384 @ =0x00000cd2 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r3] + ldr r1, _08092388 @ =0x000021ef + adds r0, r1 + strb r2, [r0] + ldr r0, _0809238C @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _0809237A + ldr r0, [r3] + ldr r1, _08092390 @ =0x000020a0 + adds r0, r1 + ldr r1, _08092394 @ =gUnknown_20397BC + movs r2, 0x64 + bl memcpy + bl sub_8090070 +_0809237A: + pop {r0} + bx r0 + .align 2, 0 +_08092380: .4byte sPSSData +_08092384: .4byte 0x00000cd2 +_08092388: .4byte 0x000021ef +_0809238C: .4byte sIsMonBeingMoved +_08092390: .4byte 0x000020a0 +_08092394: .4byte gUnknown_20397BC + thumb_func_end sub_8092340 + + thumb_func_start sub_8092398 +sub_8092398: @ 8092398 + push {r4-r6,lr} + adds r4, r2, 0 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r0, 0x4 + bhi _08092450 + lsls r0, 2 + ldr r1, _080923B4 @ =_080923B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080923B4: .4byte _080923B8 + .align 2, 0 +_080923B8: + .4byte _080923CC + .4byte _080923FA + .4byte _08092422 + .4byte _0809242A + .4byte _08092448 +_080923CC: + adds r0, r5, 0 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x64 + strh r1, [r4] + adds r0, r5, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x20 + strh r1, [r6] + b _08092450 +_080923FA: + cmp r5, 0 + bne _08092406 + movs r0, 0x68 + strh r0, [r4] + movs r0, 0x34 + b _0809244E +_08092406: + cmp r5, 0x6 + bne _08092412 + movs r0, 0x98 + strh r0, [r4] + movs r0, 0x84 + b _0809244E +_08092412: + movs r0, 0x98 + strh r0, [r4] + subs r1, r5, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + b _0809244E +_08092422: + movs r0, 0xA2 + strh r0, [r4] + movs r0, 0xC + b _0809244E +_0809242A: + ldr r0, _08092444 @ =sIsMonBeingMoved + ldrb r0, [r0] + movs r1, 0xE + cmp r0, 0 + beq _08092436 + movs r1, 0x8 +_08092436: + strh r1, [r6] + movs r0, 0x58 + muls r0, r5 + adds r0, 0x78 + strh r0, [r4] + b _08092450 + .align 2, 0 +_08092444: .4byte sIsMonBeingMoved +_08092448: + movs r0, 0xA0 + strh r0, [r4] + movs r0, 0x60 +_0809244E: + strh r0, [r6] +_08092450: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8092398 + + thumb_func_start sub_8092458 +sub_8092458: @ 8092458 + push {lr} + ldr r0, _08092480 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809248C + cmp r0, 0x1 + bne _080924A0 + ldr r0, _08092484 @ =sBoxCursorPosition + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08092488 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + b _08092496 + .align 2, 0 +_08092480: .4byte sBoxCursorArea +_08092484: .4byte sBoxCursorPosition +_08092488: .4byte gPlayerParty +_0809248C: + ldr r0, _0809249C @ =sBoxCursorPosition + ldrb r0, [r0] + movs r1, 0xB + bl GetCurrentBoxMonData +_08092496: + lsls r0, 16 + lsrs r0, 16 + b _080924A2 + .align 2, 0 +_0809249C: .4byte sBoxCursorPosition +_080924A0: + movs r0, 0 +_080924A2: + pop {r1} + bx r1 + thumb_func_end sub_8092458 + + thumb_func_start sub_80924A8 +sub_80924A8: @ 80924A8 + push {r4-r7,lr} + ldr r7, _080924C4 @ =sPSSData + ldr r5, [r7] + ldr r0, _080924C8 @ =0x00000ccc + adds r1, r5, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _080924D6 + ldrb r0, [r5, 0x1] + cmp r0, 0x3 + beq _080924CC + movs r0, 0 + b _080925F4 + .align 2, 0 +_080924C4: .4byte sPSSData +_080924C8: .4byte 0x00000ccc +_080924CC: + bl sub_809610C + lsls r0, 24 + lsrs r0, 24 + b _080925F4 +_080924D6: + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _080925D4 + ldr r1, _080925C4 @ =0x00000cb8 + adds r4, r5, r1 + movs r2, 0xCC + lsls r2, 4 + adds r1, r5, r2 + ldr r0, [r4] + ldr r1, [r1] + adds r0, r1 + str r0, [r4] + ldr r0, _080925C8 @ =0x00000cbc + adds r3, r5, r0 + adds r2, 0x4 + adds r1, r5, r2 + ldr r0, [r3] + ldr r1, [r1] + adds r0, r1 + str r0, [r3] + movs r6, 0xCB + lsls r6, 4 + adds r1, r5, r6 + ldr r2, [r1] + ldr r0, [r4] + asrs r0, 8 + strh r0, [r2, 0x20] + ldr r2, [r1] + ldr r0, [r3] + asrs r0, 8 + strh r0, [r2, 0x22] + ldr r1, [r1] + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + movs r3, 0x80 + lsls r3, 1 + cmp r0, r3 + ble _08092534 + ldr r4, _080925CC @ =0xffffff00 + adds r0, r2, r4 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x40 + strh r0, [r1, 0x20] +_08092534: + ldr r0, [r7] + adds r0, r6 + ldr r1, [r0] + ldrh r2, [r1, 0x20] + movs r4, 0x20 + ldrsh r0, [r1, r4] + cmp r0, 0x3F + bgt _08092550 + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + subs r0, r3, r0 + strh r0, [r1, 0x20] +_08092550: + ldr r0, [r7] + adds r0, r6 + ldr r1, [r0] + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0xB0 + ble _0809256C + adds r0, r2, 0 + subs r0, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r0, 0x10 + strh r0, [r1, 0x22] +_0809256C: + ldr r0, [r7] + adds r0, r6 + ldr r2, [r0] + ldrh r3, [r2, 0x22] + movs r4, 0x22 + ldrsh r0, [r2, r4] + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _0809258C + subs r0, r1, r3 + movs r1, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r2, 0x22] +_0809258C: + ldr r0, [r7] + ldr r2, _080925D0 @ =0x00000cd3 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _080925F2 + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _080925F2 + ldr r0, [r7] + adds r0, r6 + ldr r2, [r0] + adds r2, 0x3F + ldrb r3, [r2] + lsrs r1, r3, 1 + movs r0, 0x1 + eors r1, r0 + ands r1, r0 + lsls r1, 1 + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _080925F2 + .align 2, 0 +_080925C4: .4byte 0x00000cb8 +_080925C8: .4byte 0x00000cbc +_080925CC: .4byte 0xffffff00 +_080925D0: .4byte 0x00000cd3 +_080925D4: + movs r3, 0xCB + lsls r3, 4 + adds r2, r5, r3 + ldr r1, [r2] + ldr r4, _080925FC @ =0x00000cc8 + adds r0, r5, r4 + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, [r2] + ldr r2, _08092600 @ =0x00000cca + adds r0, r5, r2 + ldrh r0, [r0] + strh r0, [r1, 0x22] + bl sub_80929B0 +_080925F2: + movs r0, 0x1 +_080925F4: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080925FC: .4byte 0x00000cc8 +_08092600: .4byte 0x00000cca + thumb_func_end sub_80924A8 + + thumb_func_start sub_8092604 +sub_8092604: @ 8092604 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + mov r6, sp + adds r6, 0x2 + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, sp + adds r3, r6, 0 + bl sub_8092398 + ldr r1, _08092654 @ =sPSSData + ldr r0, [r1] + movs r2, 0xCD + lsls r2, 4 + adds r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r3, _08092658 @ =0x00000cd1 + adds r0, r3 + strb r5, [r0] + ldr r1, [r1] + mov r0, sp + ldrh r2, [r0] + subs r3, 0x9 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r6] + ldr r2, _0809265C @ =0x00000cca + adds r1, r2 + strh r0, [r1] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08092654: .4byte sPSSData +_08092658: .4byte 0x00000cd1 +_0809265C: .4byte 0x00000cca + thumb_func_end sub_8092604 + + thumb_func_start sub_8092660 +sub_8092660: @ 8092660 + push {r4-r7,lr} + ldr r0, _0809267C @ =sPSSData + ldr r2, [r0] + ldr r3, _08092680 @ =0x00000cce + adds r1, r2, r3 + ldrh r1, [r1] + adds r4, r0, 0 + cmp r1, 0 + beq _08092688 + ldr r0, _08092684 @ =0x00000ccc + adds r1, r2, r0 + movs r0, 0xC + b _0809268E + .align 2, 0 +_0809267C: .4byte sPSSData +_08092680: .4byte 0x00000cce +_08092684: .4byte 0x00000ccc +_08092688: + ldr r3, _080926D4 @ =0x00000ccc + adds r1, r2, r3 + movs r0, 0x6 +_0809268E: + strh r0, [r1] + ldr r1, [r4] + ldr r0, _080926D8 @ =0x00000cd3 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, 0 + beq _080926A6 + ldr r3, _080926D4 @ =0x00000ccc + adds r0, r1, r3 + ldrh r0, [r0] + lsrs r0, 1 + strb r0, [r2] +_080926A6: + ldr r2, [r4] + ldr r1, _080926DC @ =0x00000cce + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080926E4 + cmp r1, 0x1 + beq _08092700 + ldr r3, _080926E0 @ =0x00000cca + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + b _08092716 + .align 2, 0 +_080926D4: .4byte 0x00000ccc +_080926D8: .4byte 0x00000cd3 +_080926DC: .4byte 0x00000cce +_080926E0: .4byte 0x00000cca +_080926E4: + ldr r3, _080926FC @ =0x00000cca + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _08092716 + .align 2, 0 +_080926FC: .4byte 0x00000cca +_08092700: + ldr r3, _08092744 @ =0x00000cca + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_08092716: + subs r7, r1, r0 + ldr r2, [r4] + ldr r3, _08092748 @ =0x00000ccf + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08092750 + cmp r1, 0x1 + beq _0809276C + ldr r1, _0809274C @ =0x00000cc8 + adds r0, r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + b _08092782 + .align 2, 0 +_08092744: .4byte 0x00000cca +_08092748: .4byte 0x00000ccf +_0809274C: .4byte 0x00000cc8 +_08092750: + ldr r3, _08092768 @ =0x00000cc8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _08092782 + .align 2, 0 +_08092768: .4byte 0x00000cc8 +_0809276C: + ldr r3, _080927D4 @ =0x00000cc8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0xCB + lsls r3, 4 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_08092782: + subs r0, r1, r0 + lsls r7, 8 + lsls r0, 8 + ldr r4, [r4] + movs r3, 0xCC + lsls r3, 4 + adds r6, r4, r3 + ldr r1, _080927D8 @ =0x00000ccc + adds r5, r4, r1 + ldrh r1, [r5] + bl __divsi3 + str r0, [r6] + ldr r2, _080927DC @ =0x00000cc4 + adds r6, r4, r2 + ldrh r1, [r5] + adds r0, r7, 0 + bl __divsi3 + str r0, [r6] + ldr r3, _080927E0 @ =0x00000cb8 + adds r2, r4, r3 + movs r0, 0xCB + lsls r0, 4 + adds r1, r4, r0 + ldr r0, [r1] + movs r3, 0x20 + ldrsh r0, [r0, r3] + lsls r0, 8 + str r0, [r2] + ldr r0, _080927E4 @ =0x00000cbc + adds r4, r0 + ldr r0, [r1] + movs r1, 0x22 + ldrsh r0, [r0, r1] + lsls r0, 8 + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080927D4: .4byte 0x00000cc8 +_080927D8: .4byte 0x00000ccc +_080927DC: .4byte 0x00000cc4 +_080927E0: .4byte 0x00000cb8 +_080927E4: .4byte 0x00000cbc + thumb_func_end sub_8092660 + + thumb_func_start sub_80927E8 +sub_80927E8: @ 80927E8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8092604 + bl sub_8092660 + ldr r5, _0809282C @ =sPSSData + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0x3 + beq _08092838 + ldr r2, _08092830 @ =0x000021ef + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _08092852 + ldr r0, _08092834 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + bne _08092852 + movs r2, 0xCB + lsls r2, 4 + adds r0, r1, r2 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + b _08092852 + .align 2, 0 +_0809282C: .4byte sPSSData +_08092830: .4byte 0x000021ef +_08092834: .4byte sIsMonBeingMoved +_08092838: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + bne _08092852 + ldr r0, [r5] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim +_08092852: + ldr r0, _08092874 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _080928AC + ldr r0, _08092878 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _08092880 + ldr r0, _0809287C @ =sBoxCursorPosition + ldrb r1, [r0] + movs r0, 0 + bl sub_8095D44 + b _0809288E + .align 2, 0 +_08092874: .4byte sPSSData +_08092878: .4byte sBoxCursorArea +_0809287C: .4byte sBoxCursorPosition +_08092880: + cmp r0, 0x1 + bne _0809288E + ldr r0, _0809289C @ =sBoxCursorPosition + ldrb r1, [r0] + movs r0, 0x1 + bl sub_8095D44 +_0809288E: + cmp r4, 0 + bne _080928A0 + movs r0, 0 + adds r1, r6, 0 + bl sub_8095C84 + b _080928AC + .align 2, 0 +_0809289C: .4byte sBoxCursorPosition +_080928A0: + cmp r4, 0x1 + bne _080928D8 + movs r0, 0x1 + adds r1, r6, 0 + bl sub_8095C84 +_080928AC: + cmp r4, 0x1 + bne _080928D8 + ldr r0, _08092920 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _080928D8 + ldr r1, _08092924 @ =sPSSData + ldr r0, [r1] + ldr r2, _08092928 @ =0x00000cd2 + adds r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r1, _0809292C @ =0x00000cb4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_080928D8: + cmp r4, 0 + beq _08092930 + cmp r4, 0 + blt _080929A0 + cmp r4, 0x3 + bgt _080929A0 + ldr r5, _08092924 @ =sPSSData + ldr r0, [r5] + movs r2, 0xCB + lsls r2, 4 + adds r0, r2 + ldr r4, [r0] + ldrb r1, [r4, 0x5] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + movs r3, 0x4 + orrs r0, r3 + strb r0, [r4, 0x5] + ldr r0, [r5] + ldr r4, _0809292C @ =0x00000cb4 + adds r0, r4 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + ldr r0, [r5] + adds r0, r4 + ldr r1, [r0] + ldrb r0, [r1, 0x5] + ands r2, r0 + orrs r2, r3 + strb r2, [r1, 0x5] + b _080929A0 + .align 2, 0 +_08092920: .4byte sBoxCursorArea +_08092924: .4byte sPSSData +_08092928: .4byte 0x00000cd2 +_0809292C: .4byte 0x00000cb4 +_08092930: + ldr r3, _08092964 @ =sPSSData + ldr r1, [r3] + ldr r2, _08092968 @ =0x000021ef + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08092970 + movs r2, 0xCB + lsls r2, 4 + adds r0, r1, r2 + ldr r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x5] + ldr r0, [r3] + ldr r1, _0809296C @ =0x00000cb4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + b _080929A0 + .align 2, 0 +_08092964: .4byte sPSSData +_08092968: .4byte 0x000021ef +_0809296C: .4byte 0x00000cb4 +_08092970: + movs r2, 0xCB + lsls r2, 4 + adds r0, r1, r2 + ldr r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, _080929A8 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080929A0 + ldr r0, _080929AC @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080929A0 + movs r0, 0x2 + bl sub_8091184 +_080929A0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080929A8: .4byte sBoxCursorArea +_080929AC: .4byte sIsMonBeingMoved + thumb_func_end sub_80927E8 + + thumb_func_start sub_80929B0 +sub_80929B0: @ 80929B0 + push {r4,lr} + ldr r1, _080929F4 @ =sBoxCursorArea + ldr r4, _080929F8 @ =sPSSData + ldr r2, [r4] + movs r3, 0xCD + lsls r3, 4 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _080929FC @ =sBoxCursorPosition + adds r3, 0x1 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2, 0x1] + cmp r0, 0x3 + beq _08092A08 + ldr r1, _08092A00 @ =0x000021ef + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08092A22 + ldr r0, _08092A04 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + bne _08092A22 + subs r3, 0x21 + adds r0, r2, r3 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + b _08092A22 + .align 2, 0 +_080929F4: .4byte sBoxCursorArea +_080929F8: .4byte sPSSData +_080929FC: .4byte sBoxCursorPosition +_08092A00: .4byte 0x000021ef +_08092A04: .4byte sIsMonBeingMoved +_08092A08: + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + bne _08092A22 + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim +_08092A22: + bl sub_8093A10 + ldr r0, _08092A3C @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _08092A52 + cmp r0, 0x1 + bgt _08092A40 + cmp r0, 0 + beq _08092A74 + b _08092AD0 + .align 2, 0 +_08092A3C: .4byte sBoxCursorArea +_08092A40: + cmp r0, 0x2 + beq _08092A4A + cmp r0, 0x3 + bne _08092AD0 + b _08092A62 +_08092A4A: + movs r0, 0x1 + bl sub_80920FC + b _08092AD0 +_08092A52: + ldr r0, _08092A6C @ =sPSSData + ldr r0, [r0] + ldr r2, _08092A70 @ =0x00000cb4 + adds r0, r2 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0xD + strb r1, [r0] +_08092A62: + movs r0, 0x1 + bl sub_8091184 + b _08092AD0 + .align 2, 0 +_08092A6C: .4byte sPSSData +_08092A70: .4byte 0x00000cb4 +_08092A74: + ldr r4, _08092AD8 @ =sPSSData + ldr r1, [r4] + ldr r3, _08092ADC @ =0x000021ef + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _08092AD0 + movs r2, 0xCB + lsls r2, 4 + adds r0, r1, r2 + ldr r3, [r0] + ldrb r1, [r3, 0x5] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r4] + ldr r3, _08092AE0 @ =0x00000cb4 + adds r0, r3 + ldr r1, [r0] + ldrb r0, [r1, 0x5] + ands r2, r0 + movs r0, 0x8 + orrs r2, r0 + strb r2, [r1, 0x5] + ldr r0, [r4] + adds r0, r3 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x15 + strb r1, [r0] + ldr r0, [r4] + adds r0, r3 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + movs r0, 0x2 + bl sub_8091184 +_08092AD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08092AD8: .4byte sPSSData +_08092ADC: .4byte 0x000021ef +_08092AE0: .4byte 0x00000cb4 + thumb_func_end sub_80929B0 + + thumb_func_start sub_8092AE4 +sub_8092AE4: @ 8092AE4 + push {lr} + ldr r0, _08092AF4 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + bne _08092AF8 + movs r3, 0 + b _08092B06 + .align 2, 0 +_08092AF4: .4byte sIsMonBeingMoved +_08092AF8: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _08092B06 + movs r3, 0x5 +_08092B06: + ldr r0, _08092B34 @ =sPSSData + ldr r2, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r2, r1 + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08092B26 + ldr r0, _08092B38 @ =0x00000cd3 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] +_08092B26: + movs r0, 0x1 + adds r1, r3, 0 + bl sub_80927E8 + pop {r0} + bx r0 + .align 2, 0 +_08092B34: .4byte sPSSData +_08092B38: .4byte 0x00000cd3 + thumb_func_end sub_8092AE4 + + thumb_func_start sub_8092B3C +sub_8092B3C: @ 8092B3C + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80927E8 + pop {r0} + bx r0 + thumb_func_end sub_8092B3C + + thumb_func_start sub_8092B50 +sub_8092B50: @ 8092B50 + ldr r1, _08092B58 @ =gUnknown_2039826 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_08092B58: .4byte gUnknown_2039826 + thumb_func_end sub_8092B50 + + thumb_func_start sub_8092B5C +sub_8092B5C: @ 8092B5C + ldr r0, _08092B68 @ =gUnknown_2039826 + ldr r1, _08092B6C @ =sBoxCursorPosition + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_08092B68: .4byte gUnknown_2039826 +_08092B6C: .4byte sBoxCursorPosition + thumb_func_end sub_8092B5C + + thumb_func_start sub_8092B70 +sub_8092B70: @ 8092B70 + ldr r0, _08092B78 @ =gUnknown_2039826 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08092B78: .4byte gUnknown_2039826 + thumb_func_end sub_8092B70 + + thumb_func_start sub_8092B7C +sub_8092B7C: @ 8092B7C + lsls r0, 24 + ldr r1, _08092B9C @ =sPSSData + ldr r1, [r1] + ldr r2, _08092BA0 @ =0x00000d88 + adds r3, r1, r2 + ldr r2, _08092BA4 @ =gUnknown_83D346C + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + ldr r0, _08092BA8 @ =0x00000d8c + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_08092B9C: .4byte sPSSData +_08092BA0: .4byte 0x00000d88 +_08092BA4: .4byte gUnknown_83D346C +_08092BA8: .4byte 0x00000d8c + thumb_func_end sub_8092B7C + + thumb_func_start sub_8092BAC +sub_8092BAC: @ 8092BAC + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _08092BCC + ldr r0, _08092BC0 @ =sPSSData + ldr r1, [r0] + ldr r2, _08092BC4 @ =0x00000d88 + adds r1, r2 + ldr r2, _08092BC8 @ =sub_8092E00 + b _08092BD6 + .align 2, 0 +_08092BC0: .4byte sPSSData +_08092BC4: .4byte 0x00000d88 +_08092BC8: .4byte sub_8092E00 +_08092BCC: + ldr r0, _08092BE8 @ =sPSSData + ldr r1, [r0] + ldr r2, _08092BEC @ =0x00000d88 + adds r1, r2 + ldr r2, _08092BF0 @ =sub_8092E10 +_08092BD6: + str r2, [r1] + ldr r0, [r0] + ldr r1, _08092BF4 @ =0x00000d8c + adds r0, r1 + movs r1, 0 + strb r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08092BE8: .4byte sPSSData +_08092BEC: .4byte 0x00000d88 +_08092BF0: .4byte sub_8092E10 +_08092BF4: .4byte 0x00000d8c + thumb_func_end sub_8092BAC + + thumb_func_start sub_8092BF8 +sub_8092BF8: @ 8092BF8 + push {lr} + ldr r0, _08092C10 @ =sPSSData + ldr r0, [r0] + ldr r1, _08092C14 @ =0x00000d88 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08092C10: .4byte sPSSData +_08092C14: .4byte 0x00000d88 + thumb_func_end sub_8092BF8 + + thumb_func_start sub_8092C18 +sub_8092C18: @ 8092C18 + push {r4,r5,lr} + ldr r4, _08092C34 @ =sPSSData + ldr r1, [r4] + ldr r5, _08092C38 @ =0x00000d8c + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08092C68 + cmp r0, 0x1 + bgt _08092C3C + cmp r0, 0 + beq _08092C46 + b _08092C9C + .align 2, 0 +_08092C34: .4byte sPSSData +_08092C38: .4byte 0x00000d8c +_08092C3C: + cmp r0, 0x2 + beq _08092C88 + cmp r0, 0x3 + beq _08092C4E + b _08092C9C +_08092C46: + ldr r0, _08092C54 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _08092C58 +_08092C4E: + movs r0, 0 + b _08092C9E + .align 2, 0 +_08092C54: .4byte sIsMonBeingMoved +_08092C58: + movs r2, 0xCB + lsls r2, 4 + adds r0, r1, r2 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + b _08092C92 +_08092C68: + bl sub_8092E20 + lsls r0, 24 + cmp r0, 0 + bne _08092C9C + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + bl sub_8092E80 + b _08092C92 +_08092C88: + bl sub_8092E54 + lsls r0, 24 + cmp r0, 0 + bne _08092C9C +_08092C92: + ldr r1, [r4] + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08092C9C: + movs r0, 0x1 +_08092C9E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8092C18 + + thumb_func_start sub_8092CA4 +sub_8092CA4: @ 8092CA4 + push {r4,r5,lr} + ldr r4, _08092CC0 @ =sPSSData + ldr r0, [r4] + ldr r5, _08092CC4 @ =0x00000d8c + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08092CEE + cmp r0, 0x1 + bgt _08092CC8 + cmp r0, 0 + beq _08092CCE + b _08092D18 + .align 2, 0 +_08092CC0: .4byte sPSSData +_08092CC4: .4byte 0x00000d8c +_08092CC8: + cmp r0, 0x2 + beq _08092D14 + b _08092D18 +_08092CCE: + bl sub_8092E20 + lsls r0, 24 + cmp r0, 0 + bne _08092D18 + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + bl sub_8092EF4 + b _08092D08 +_08092CEE: + bl sub_8092E54 + lsls r0, 24 + cmp r0, 0 + bne _08092D18 + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_08092D08: + ldr r1, [r4] + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08092D18 +_08092D14: + movs r0, 0 + b _08092D1A +_08092D18: + movs r0, 0x1 +_08092D1A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8092CA4 + + thumb_func_start sub_8092D20 +sub_8092D20: @ 8092D20 + push {r4,r5,lr} + ldr r4, _08092D3C @ =sPSSData + ldr r1, [r4] + ldr r5, _08092D40 @ =0x00000d8c + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08092DB4 + cmp r0, 0x1 + bgt _08092D44 + cmp r0, 0 + beq _08092D4A + b _08092DF8 + .align 2, 0 +_08092D3C: .4byte sPSSData +_08092D40: .4byte 0x00000d8c +_08092D44: + cmp r0, 0x2 + beq _08092DF4 + b _08092DF8 +_08092D4A: + ldr r0, _08092D64 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08092D6C + cmp r0, 0x1 + bne _08092DF4 + ldr r0, _08092D68 @ =0x00000d8d + adds r1, r0 + movs r0, 0xE + b _08092D76 + .align 2, 0 +_08092D64: .4byte sBoxCursorArea +_08092D68: .4byte 0x00000d8d +_08092D6C: + bl StorageGetCurrentBox + ldr r1, [r4] + ldr r2, _08092DA4 @ =0x00000d8d + adds r1, r2 +_08092D76: + strb r0, [r1] + ldr r4, _08092DA8 @ =sPSSData + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + ldr r0, [r4] + ldr r2, _08092DA4 @ =0x00000d8d + adds r0, r2 + ldrb r0, [r0] + ldr r1, _08092DAC @ =sBoxCursorPosition + ldrb r1, [r1] + bl sub_8090E08 + ldr r1, [r4] + ldr r0, _08092DB0 @ =0x00000d8c + adds r1, r0 + b _08092DE2 + .align 2, 0 +_08092DA4: .4byte 0x00000d8d +_08092DA8: .4byte sPSSData +_08092DAC: .4byte sBoxCursorPosition +_08092DB0: .4byte 0x00000d8c +_08092DB4: + bl sub_8090E74 + lsls r0, 24 + cmp r0, 0 + bne _08092DF8 + ldr r0, [r4] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + ldr r0, [r4] + ldr r2, _08092DEC @ =0x00000d8d + adds r0, r2 + ldrb r0, [r0] + ldr r1, _08092DF0 @ =sBoxCursorPosition + ldrb r1, [r1] + bl diegohint1 + ldr r1, [r4] + adds r1, r5 +_08092DE2: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08092DF8 + .align 2, 0 +_08092DEC: .4byte 0x00000d8d +_08092DF0: .4byte sBoxCursorPosition +_08092DF4: + movs r0, 0 + b _08092DFA +_08092DF8: + movs r0, 0x1 +_08092DFA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8092D20 + + thumb_func_start sub_8092E00 +sub_8092E00: @ 8092E00 + push {lr} + bl sub_8092E20 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8092E00 + + thumb_func_start sub_8092E10 +sub_8092E10: @ 8092E10 + push {lr} + bl sub_8092E54 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8092E10 + + thumb_func_start sub_8092E20 +sub_8092E20: @ 8092E20 + push {lr} + ldr r0, _08092E44 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08092E3A + cmp r0, 0x8 + beq _08092E48 +_08092E3A: + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08092E4C + .align 2, 0 +_08092E44: .4byte sPSSData +_08092E48: + movs r0, 0 + b _08092E4E +_08092E4C: + movs r0, 0x1 +_08092E4E: + pop {r1} + bx r1 + thumb_func_end sub_8092E20 + + thumb_func_start sub_8092E54 +sub_8092E54: @ 8092E54 + push {lr} + ldr r0, _08092E74 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08092E78 + ldrh r0, [r1, 0x26] + subs r0, 0x1 + strh r0, [r1, 0x26] + movs r0, 0x1 + b _08092E7A + .align 2, 0 +_08092E74: .4byte sPSSData +_08092E78: + movs r0, 0 +_08092E7A: + pop {r1} + bx r1 + thumb_func_end sub_8092E54 + + thumb_func_start sub_8092E80 +sub_8092E80: @ 8092E80 + push {r4,lr} + ldr r0, _08092EA8 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08092EB0 + cmp r0, 0x1 + bne _08092EDC + ldr r4, _08092EAC @ =sBoxCursorPosition + ldrb r1, [r4] + movs r0, 0xE + bl sub_8092F60 + ldrb r1, [r4] + movs r0, 0 + bl sub_8090CC0 + b _08092ED6 + .align 2, 0 +_08092EA8: .4byte sBoxCursorArea +_08092EAC: .4byte sBoxCursorPosition +_08092EB0: + ldr r0, _08092EE4 @ =sPSSData + ldr r0, [r0] + ldr r1, _08092EE8 @ =0x000021ef + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08092ED6 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08092EEC @ =sBoxCursorPosition + ldrb r1, [r4] + bl sub_8092F60 + ldrb r1, [r4] + movs r0, 0x1 + bl sub_8090CC0 +_08092ED6: + ldr r1, _08092EF0 @ =sIsMonBeingMoved + movs r0, 0x1 + strb r0, [r1] +_08092EDC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08092EE4: .4byte sPSSData +_08092EE8: .4byte 0x000021ef +_08092EEC: .4byte sBoxCursorPosition +_08092EF0: .4byte sIsMonBeingMoved + thumb_func_end sub_8092E80 + + thumb_func_start sub_8092EF4 +sub_8092EF4: @ 8092EF4 + push {r4,r5,lr} + ldr r0, _08092F1C @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08092F24 + cmp r0, 0x1 + bne _08092F46 + ldr r4, _08092F20 @ =sBoxCursorPosition + ldrb r1, [r4] + movs r0, 0xE + bl diegohint2 + ldrb r1, [r4] + movs r0, 0xE + bl sub_8090D58 + b _08092F40 + .align 2, 0 +_08092F1C: .4byte sBoxCursorArea +_08092F20: .4byte sBoxCursorPosition +_08092F24: + bl StorageGetCurrentBox + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08092F4C @ =sBoxCursorPosition + ldrb r1, [r5] + adds r0, r4, 0 + bl diegohint2 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_8090D58 +_08092F40: + ldr r1, _08092F50 @ =sIsMonBeingMoved + movs r0, 0 + strb r0, [r1] +_08092F46: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08092F4C: .4byte sBoxCursorPosition +_08092F50: .4byte sIsMonBeingMoved + thumb_func_end sub_8092EF4 + + thumb_func_start sub_8092F54 +sub_8092F54: @ 8092F54 + push {lr} + bl sub_8093A10 + pop {r0} + bx r0 + thumb_func_end sub_8092F54 + + thumb_func_start sub_8092F60 +sub_8092F60: @ 8092F60 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0xE + bne _08092F9C + ldr r0, _08092F8C @ =sPSSData + ldr r0, [r0] + ldr r1, _08092F90 @ =0x000020a0 + adds r0, r1 + ldr r3, _08092F94 @ =gPlayerParty + ldr r1, _08092F98 @ =sBoxCursorPosition + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + b _08092FAC + .align 2, 0 +_08092F8C: .4byte sPSSData +_08092F90: .4byte 0x000020a0 +_08092F94: .4byte gPlayerParty +_08092F98: .4byte sBoxCursorPosition +_08092F9C: + ldr r0, _08092FC4 @ =sPSSData + ldr r2, [r0] + ldr r0, _08092FC8 @ =0x000020a0 + adds r2, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl BoxMonAtToMon +_08092FAC: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8093030 + ldr r0, _08092FCC @ =sMovingMonOrigBoxId + strb r4, [r0] + ldr r0, _08092FD0 @ =sMovingMonOrigBoxPos + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08092FC4: .4byte sPSSData +_08092FC8: .4byte 0x000020a0 +_08092FCC: .4byte sMovingMonOrigBoxId +_08092FD0: .4byte sMovingMonOrigBoxPos + thumb_func_end sub_8092F60 + + thumb_func_start diegohint2 +diegohint2: @ 8092FD4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r6, 0xE + bne _08093008 + ldr r1, _08092FFC @ =gPlayerParty + movs r0, 0x64 + muls r0, r7 + adds r0, r1 + ldr r1, _08093000 @ =sPSSData + ldr r1, [r1] + ldr r2, _08093004 @ =0x000020a0 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _08093020 + .align 2, 0 +_08092FFC: .4byte gPlayerParty +_08093000: .4byte sPSSData +_08093004: .4byte 0x000020a0 +_08093008: + ldr r5, _08093028 @ =sPSSData + ldr r0, [r5] + ldr r4, _0809302C @ =0x000020a0 + adds r0, r4 + bl BoxMonRestorePP + ldr r2, [r5] + adds r2, r4 + adds r0, r6, 0 + adds r1, r7, 0 + bl SetBoxMonAt +_08093020: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08093028: .4byte sPSSData +_0809302C: .4byte 0x000020a0 + thumb_func_end diegohint2 + + thumb_func_start sub_8093030 +sub_8093030: @ 8093030 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r0, 0xE + bne _08093050 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809304C @ =gPlayerParty + adds r0, r1 + bl ZeroMonData + b _08093054 + .align 2, 0 +_0809304C: .4byte gPlayerParty +_08093050: + bl ZeroBoxMonAt +_08093054: + pop {r0} + bx r0 + thumb_func_end sub_8093030 + + thumb_func_start diegohint1 +diegohint1: @ 8093058 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r6, 0xE + bne _0809308C + ldr r0, _08093080 @ =sPSSData + ldr r0, [r0] + ldr r1, _08093084 @ =0x00002104 + adds r0, r1 + ldr r2, _08093088 @ =gPlayerParty + movs r1, 0x64 + muls r1, r7 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809309C + .align 2, 0 +_08093080: .4byte sPSSData +_08093084: .4byte 0x00002104 +_08093088: .4byte gPlayerParty +_0809308C: + ldr r0, _080930D0 @ =sPSSData + ldr r2, [r0] + ldr r0, _080930D4 @ =0x00002104 + adds r2, r0 + adds r0, r6, 0 + adds r1, r7, 0 + bl BoxMonAtToMon +_0809309C: + adds r0, r6, 0 + adds r1, r7, 0 + bl diegohint2 + ldr r5, _080930D0 @ =sPSSData + ldr r1, [r5] + ldr r4, _080930D8 @ =0x000020a0 + adds r0, r1, r4 + ldr r2, _080930D4 @ =0x00002104 + adds r1, r2 + movs r2, 0x64 + bl memcpy + ldr r0, [r5] + adds r0, r4 + movs r1, 0 + bl sub_8093AD0 + ldr r0, _080930DC @ =sMovingMonOrigBoxId + strb r6, [r0] + ldr r0, _080930E0 @ =sMovingMonOrigBoxPos + strb r7, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080930D0: .4byte sPSSData +_080930D4: .4byte 0x00002104 +_080930D8: .4byte 0x000020a0 +_080930DC: .4byte sMovingMonOrigBoxId +_080930E0: .4byte sMovingMonOrigBoxPos + thumb_func_end diegohint1 + + thumb_func_start sub_80930E4 +sub_80930E4: @ 80930E4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl GetFirstFreeBoxSpot + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08093102 + movs r0, 0 + b _08093164 +_08093102: + ldr r5, _08093120 @ =sIsMonBeingMoved + ldrb r0, [r5] + cmp r0, 0 + beq _08093124 + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + bl sub_8090B6C + movs r0, 0 + strb r0, [r5] + b _0809313E + .align 2, 0 +_08093120: .4byte sIsMonBeingMoved +_08093124: + ldr r5, _0809316C @ =sBoxCursorPosition + ldrb r1, [r5] + movs r0, 0xE + bl sub_8092F60 + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + ldrb r0, [r5] + bl sub_8090C10 +_0809313E: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _08093150 + lsrs r0, r4, 24 + bl sub_80901EC +_08093150: + ldr r0, _08093170 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x1 +_08093164: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809316C: .4byte sBoxCursorPosition +_08093170: .4byte sPSSData + thumb_func_end sub_80930E4 + + thumb_func_start sub_8093174 +sub_8093174: @ 8093174 + push {lr} + ldr r0, _08093190 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + bl sub_8093A10 + pop {r0} + bx r0 + .align 2, 0 +_08093190: .4byte sPSSData + thumb_func_end sub_8093174 + + thumb_func_start sub_8093194 +sub_8093194: @ 8093194 + push {lr} + ldr r0, _080931A4 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080931A8 + movs r2, 0x2 + b _080931B8 + .align 2, 0 +_080931A4: .4byte sIsMonBeingMoved +_080931A8: + ldr r0, _080931D8 @ =sBoxCursorArea + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0x1 + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r2, r0, 31 +_080931B8: + ldr r0, _080931DC @ =sBoxCursorPosition + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_8090FC4 + ldr r0, _080931E0 @ =sPSSData + ldr r1, [r0] + ldr r2, _080931E4 @ =0x000021d0 + adds r0, r1, r2 + ldr r2, _080931E8 @ =0x00000cea + adds r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_080931D8: .4byte sBoxCursorArea +_080931DC: .4byte sBoxCursorPosition +_080931E0: .4byte sPSSData +_080931E4: .4byte 0x000021d0 +_080931E8: .4byte 0x00000cea + thumb_func_end sub_8093194 + + thumb_func_start sub_80931EC +sub_80931EC: @ 80931EC + push {lr} + bl sub_8091084 + lsls r0, 24 + cmp r0, 0 + beq _080931FC + movs r0, 0x1 + b _08093210 +_080931FC: + ldr r0, _08093214 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + movs r0, 0 +_08093210: + pop {r1} + bx r1 + .align 2, 0 +_08093214: .4byte sPSSData + thumb_func_end sub_80931EC + + thumb_func_start sub_8093218 +sub_8093218: @ 8093218 + push {lr} + bl sub_80910CC + ldr r1, _0809322C @ =sIsMonBeingMoved + ldrb r0, [r1] + cmp r0, 0 + beq _08093230 + movs r0, 0 + strb r0, [r1] + b _08093256 + .align 2, 0 +_0809322C: .4byte sIsMonBeingMoved +_08093230: + ldr r0, _08093240 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08093244 + movs r2, 0xE + b _0809324C + .align 2, 0 +_08093240: .4byte sBoxCursorArea +_08093244: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r2, r0, 24 +_0809324C: + ldr r0, _08093260 @ =sBoxCursorPosition + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_8093030 +_08093256: + bl sub_8093A10 + pop {r0} + bx r0 + .align 2, 0 +_08093260: .4byte sBoxCursorPosition + thumb_func_end sub_8093218 + + thumb_func_start sub_8093264 +sub_8093264: @ 8093264 + push {lr} + ldr r0, _08093284 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _08093280 + ldr r0, _08093288 @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim +_08093280: + pop {r0} + bx r0 + .align 2, 0 +_08093284: .4byte sIsMonBeingMoved +_08093288: .4byte sPSSData + thumb_func_end sub_8093264 + + thumb_func_start sub_809328C +sub_809328C: @ 809328C + push {r4-r6,lr} + ldr r0, _080932C0 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080932D8 + ldr r4, _080932C4 @ =sPSSData + ldr r1, [r4] + ldr r2, _080932C8 @ =0x00002104 + adds r0, r1, r2 + ldr r3, _080932CC @ =0x000020a0 + adds r1, r3 + movs r2, 0x64 + bl memcpy + ldr r0, [r4] + ldr r1, _080932D0 @ =0x0000216e + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldr r0, [r4] + ldr r2, _080932D4 @ =0x0000216f + adds r0, r2 + movs r1, 0x1 + negs r1, r1 + b _08093354 + .align 2, 0 +_080932C0: .4byte sIsMonBeingMoved +_080932C4: .4byte sPSSData +_080932C8: .4byte 0x00002104 +_080932CC: .4byte 0x000020a0 +_080932D0: .4byte 0x0000216e +_080932D4: .4byte 0x0000216f +_080932D8: + ldr r0, _0809330C @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08093324 + ldr r4, _08093310 @ =sPSSData + ldr r0, [r4] + ldr r3, _08093314 @ =0x00002104 + adds r0, r3 + ldr r3, _08093318 @ =gPlayerParty + ldr r1, _0809331C @ =sBoxCursorPosition + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + ldr r0, [r4] + ldr r1, _08093320 @ =0x0000216e + adds r0, r1 + movs r1, 0xE + strb r1, [r0] + b _08093348 + .align 2, 0 +_0809330C: .4byte sBoxCursorArea +_08093310: .4byte sPSSData +_08093314: .4byte 0x00002104 +_08093318: .4byte gPlayerParty +_0809331C: .4byte sBoxCursorPosition +_08093320: .4byte 0x0000216e +_08093324: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080933BC @ =sBoxCursorPosition + ldrb r1, [r1] + ldr r4, _080933C0 @ =sPSSData + ldr r2, [r4] + ldr r3, _080933C4 @ =0x00002104 + adds r2, r3 + bl BoxMonAtToMon + bl StorageGetCurrentBox + ldr r1, [r4] + ldr r2, _080933C8 @ =0x0000216e + adds r1, r2 + strb r0, [r1] +_08093348: + ldr r0, _080933C0 @ =sPSSData + ldr r0, [r0] + ldr r1, _080933BC @ =sBoxCursorPosition + ldrb r1, [r1] + ldr r3, _080933CC @ =0x0000216f + adds r0, r3 +_08093354: + strb r1, [r0] + ldr r6, _080933C0 @ =sPSSData + ldr r0, [r6] + ldr r4, _080933D0 @ =0x0000216a + adds r0, r4 + movs r1, 0 + strb r1, [r0] + ldr r0, [r6] + ldr r5, _080933D4 @ =0x0000216b + adds r0, r5 + strb r1, [r0] + ldr r0, [r6] + ldr r1, _080933D8 @ =0x00002172 + adds r2, r0, r1 + movs r1, 0x39 + strh r1, [r2] + ldr r1, _080933DC @ =0x00002174 + adds r3, r0, r1 + ldr r1, _080933E0 @ =0x00000123 + strh r1, [r3] + ldr r1, _080933E4 @ =0x00002176 + adds r3, r0, r1 + ldr r1, _080933E8 @ =0x00000163 + strh r1, [r3] + ldr r3, _080933C4 @ =0x00002104 + adds r0, r3 + movs r1, 0x51 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + ldr r1, [r6] + movs r2, 0x1 + ands r3, r2 + adds r1, r4 + strb r3, [r1] + ldr r1, [r6] + lsrs r0, 17 + movs r2, 0x1 + ands r0, r2 + adds r1, r5 + strb r0, [r1] + ldr r1, [r6] + adds r4, r1, r4 + ldrh r0, [r4] + cmp r0, 0 + beq _080933F0 + ldr r0, _080933EC @ =0x00002169 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + b _080933FE + .align 2, 0 +_080933BC: .4byte sBoxCursorPosition +_080933C0: .4byte sPSSData +_080933C4: .4byte 0x00002104 +_080933C8: .4byte 0x0000216e +_080933CC: .4byte 0x0000216f +_080933D0: .4byte 0x0000216a +_080933D4: .4byte 0x0000216b +_080933D8: .4byte 0x00002172 +_080933DC: .4byte 0x00002174 +_080933E0: .4byte 0x00000123 +_080933E4: .4byte 0x00002176 +_080933E8: .4byte 0x00000163 +_080933EC: .4byte 0x00002169 +_080933F0: + ldr r3, _08093410 @ =0x00002169 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, [r6] + ldr r1, _08093414 @ =0x00002168 + adds r0, r1 + strb r2, [r0] +_080933FE: + ldr r0, _08093418 @ =sPSSData + ldr r0, [r0] + ldr r2, _0809341C @ =0x00002170 + adds r0, r2 + movs r1, 0 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08093410: .4byte 0x00002169 +_08093414: .4byte 0x00002168 +_08093418: .4byte sPSSData +_0809341C: .4byte 0x00002170 + thumb_func_end sub_809328C + + thumb_func_start sub_8093420 +sub_8093420: @ 8093420 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08093444 @ =sPSSData + ldr r3, [r0] + ldr r2, _08093448 @ =0x00002169 + adds r1, r3, r2 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _08093450 + ldr r1, _0809344C @ =0x00002168 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _08093604 + .align 2, 0 +_08093444: .4byte sPSSData +_08093448: .4byte 0x00002169 +_0809344C: .4byte 0x00002168 +_08093450: + ldr r2, _08093460 @ =0x00002170 + adds r0, r3, r2 + ldrh r0, [r0] + cmp r0, 0 + beq _08093464 + cmp r0, 0x1 + beq _0809353C + b _08093600 + .align 2, 0 +_08093460: .4byte 0x00002170 +_08093464: + movs r6, 0 + mov r5, r12 + movs r7, 0 +_0809346A: + ldr r2, [r5] + ldr r1, _08093500 @ =0x0000216e + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bne _08093488 + adds r1, 0x1 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, r6 + beq _080934C2 +_08093488: + movs r0, 0x64 + muls r0, r6 + ldr r1, _08093504 @ =gPlayerParty + adds r0, r1 + ldr r1, _08093508 @ =0x00002172 + adds r2, r1 + movs r1, 0x51 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080934AE + ldr r0, [r5] + ldr r2, _0809350C @ =0x0000216a + adds r0, r2 + strb r7, [r0] +_080934AE: + movs r0, 0x2 + ands r4, r0 + ldr r0, _08093510 @ =sPSSData + mov r12, r0 + cmp r4, 0 + beq _080934C2 + ldr r0, [r5] + ldr r1, _08093514 @ =0x0000216b + adds r0, r1 + strb r7, [r0] +_080934C2: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _0809346A + mov r2, r12 + ldr r1, [r2] + ldr r2, _0809350C @ =0x0000216a + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _080934DC + b _080935EE +_080934DC: + ldr r2, _08093518 @ =0x0000216c + adds r0, r1, r2 + movs r1, 0 + strb r1, [r0] + mov r2, r12 + ldr r0, [r2] + ldr r2, _0809351C @ =0x0000216d + adds r0, r2 + strb r1, [r0] + mov r0, r12 + ldr r1, [r0] + adds r2, 0x3 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08093600 + .align 2, 0 +_08093500: .4byte 0x0000216e +_08093504: .4byte gPlayerParty +_08093508: .4byte 0x00002172 +_0809350C: .4byte 0x0000216a +_08093510: .4byte sPSSData +_08093514: .4byte 0x0000216b +_08093518: .4byte 0x0000216c +_0809351C: .4byte 0x0000216d +_08093520: + mov r1, r12 + ldr r0, [r1] + ldr r2, _08093538 @ =0x00002169 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + mov r1, r12 + ldr r0, [r1] + subs r2, 0x1 + adds r0, r2 + strb r3, [r0] + b _080935E0 + .align 2, 0 +_08093538: .4byte 0x00002169 +_0809353C: + movs r6, 0 + mov r7, r12 + ldr r0, _08093610 @ =0x0000ffff + mov r8, r0 +_08093544: + ldr r3, [r7] + ldr r1, _08093614 @ =0x0000216c + adds r0, r3, r1 + ldrb r0, [r0] + ldr r2, _08093618 @ =0x0000216d + adds r1, r3, r2 + ldrb r1, [r1] + adds r2, 0x5 + adds r3, r2 + movs r2, 0x51 + bl GetAndCopyBoxMonDataAt + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080935A0 + ldr r5, [r7] + ldr r1, _0809361C @ =0x0000216e + adds r0, r5, r1 + ldrh r2, [r0] + subs r1, 0x2 + adds r0, r5, r1 + ldrh r3, [r0] + mov r1, r8 + ands r1, r2 + mov r0, r8 + ands r0, r3 + cmp r1, r0 + beq _080935A0 + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0809358E + ldr r2, _08093620 @ =0x0000216a + adds r1, r5, r2 + movs r0, 0 + strb r0, [r1] +_0809358E: + movs r0, 0x2 + ands r4, r0 + cmp r4, 0 + beq _080935A0 + ldr r0, [r7] + ldr r1, _08093624 @ =0x0000216b + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080935A0: + ldr r2, _08093628 @ =sPSSData + ldr r1, [r2] + ldr r0, _08093618 @ =0x0000216d + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + mov r12, r2 + cmp r0, 0x1D + ble _080935D6 + ldr r0, [r2] + ldr r1, _08093618 @ =0x0000216d + adds r0, r1 + strb r3, [r0] + ldr r1, [r2] + ldr r2, _08093614 @ =0x0000216c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xD + bgt _08093520 +_080935D6: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x4 + bls _08093544 +_080935E0: + mov r0, r12 + ldr r1, [r0] + ldr r2, _08093620 @ =0x0000216a + adds r0, r1, r2 + ldrh r0, [r0] + cmp r0, 0 + bne _08093600 +_080935EE: + subs r2, 0x1 + adds r0, r1, r2 + movs r1, 0x1 + strb r1, [r0] + mov r2, r12 + ldr r0, [r2] + ldr r2, _0809362C @ =0x00002168 + adds r0, r2 + strb r1, [r0] +_08093600: + movs r0, 0x1 + negs r0, r0 +_08093604: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08093610: .4byte 0x0000ffff +_08093614: .4byte 0x0000216c +_08093618: .4byte 0x0000216d +_0809361C: .4byte 0x0000216e +_08093620: .4byte 0x0000216a +_08093624: .4byte 0x0000216b +_08093628: .4byte sPSSData +_0809362C: .4byte 0x00002168 + thumb_func_end sub_8093420 + + thumb_func_start sub_8093630 +sub_8093630: @ 8093630 + push {lr} + ldr r0, _08093650 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _0809364A + ldr r0, _08093654 @ =gUnknown_20397BC + ldr r1, _08093658 @ =sPSSData + ldr r1, [r1] + ldr r2, _0809365C @ =0x000020a0 + adds r1, r2 + movs r2, 0x64 + bl memcpy +_0809364A: + pop {r0} + bx r0 + .align 2, 0 +_08093650: .4byte sIsMonBeingMoved +_08093654: .4byte gUnknown_20397BC +_08093658: .4byte sPSSData +_0809365C: .4byte 0x000020a0 + thumb_func_end sub_8093630 + + thumb_func_start sub_8093660 +sub_8093660: @ 8093660 + push {lr} + ldr r0, _08093684 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080936A8 + ldr r0, _08093688 @ =sMovingMonOrigBoxId + ldrb r0, [r0] + cmp r0, 0xE + bne _08093698 + ldr r0, _0809368C @ =sPSSData + ldr r0, [r0] + ldr r1, _08093690 @ =0x000020a0 + adds r0, r1 + ldr r1, _08093694 @ =gUnknown_20397BC + movs r2, 0x64 + bl memcpy + b _080936A8 + .align 2, 0 +_08093684: .4byte sIsMonBeingMoved +_08093688: .4byte sMovingMonOrigBoxId +_0809368C: .4byte sPSSData +_08093690: .4byte 0x000020a0 +_08093694: .4byte gUnknown_20397BC +_08093698: + ldr r0, _080936AC @ =sPSSData + ldr r0, [r0] + ldr r1, _080936B0 @ =0x000020a0 + adds r0, r1 + ldr r1, _080936B4 @ =gUnknown_20397BC + movs r2, 0x50 + bl memcpy +_080936A8: + pop {r0} + bx r0 + .align 2, 0 +_080936AC: .4byte sPSSData +_080936B0: .4byte 0x000020a0 +_080936B4: .4byte gUnknown_20397BC + thumb_func_end sub_8093660 + + thumb_func_start sub_80936B8 +sub_80936B8: @ 80936B8 + push {r4,r5,lr} + ldr r0, _080936EC @ =sIsMonBeingMoved + ldrb r5, [r0] + cmp r5, 0 + beq _08093708 + bl sub_8093630 + ldr r3, _080936F0 @ =sPSSData + ldr r1, [r3] + ldr r0, _080936F4 @ =0x0000217c + adds r2, r1, r0 + ldr r0, _080936F8 @ =gUnknown_20397BC + str r0, [r2] + ldr r2, _080936FC @ =0x00002179 + adds r1, r2 + movs r2, 0 + strb r2, [r1] + ldr r0, [r3] + ldr r4, _08093700 @ =0x00002178 + adds r0, r4 + strb r2, [r0] + ldr r0, [r3] + ldr r1, _08093704 @ =0x0000217a + adds r0, r1 + strb r2, [r0] + b _0809379A + .align 2, 0 +_080936EC: .4byte sIsMonBeingMoved +_080936F0: .4byte sPSSData +_080936F4: .4byte 0x0000217c +_080936F8: .4byte gUnknown_20397BC +_080936FC: .4byte 0x00002179 +_08093700: .4byte 0x00002178 +_08093704: .4byte 0x0000217a +_08093708: + ldr r0, _08093744 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08093764 + ldr r4, _08093748 @ =sPSSData + ldr r1, [r4] + ldr r0, _0809374C @ =0x0000217c + adds r2, r1, r0 + ldr r0, _08093750 @ =gPlayerParty + str r0, [r2] + ldr r0, _08093754 @ =sBoxCursorPosition + ldrb r0, [r0] + ldr r2, _08093758 @ =0x00002179 + adds r1, r2 + strb r0, [r1] + bl CountPartyMons + ldr r1, [r4] + subs r0, 0x1 + ldr r2, _0809375C @ =0x00002178 + adds r1, r2 + strb r0, [r1] + ldr r0, [r4] + ldr r4, _08093760 @ =0x0000217a + adds r0, r4 + strb r5, [r0] + b _0809379A + .align 2, 0 +_08093744: .4byte sBoxCursorArea +_08093748: .4byte sPSSData +_0809374C: .4byte 0x0000217c +_08093750: .4byte gPlayerParty +_08093754: .4byte sBoxCursorPosition +_08093758: .4byte 0x00002179 +_0809375C: .4byte 0x00002178 +_08093760: .4byte 0x0000217a +_08093764: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl GetBoxedMonPtr + ldr r3, _080937A0 @ =sPSSData + ldr r2, [r3] + ldr r4, _080937A4 @ =0x0000217c + adds r1, r2, r4 + str r0, [r1] + ldr r0, _080937A8 @ =sBoxCursorPosition + ldrb r0, [r0] + ldr r1, _080937AC @ =0x00002179 + adds r2, r1 + strb r0, [r2] + ldr r0, [r3] + ldr r2, _080937B0 @ =0x00002178 + adds r0, r2 + movs r1, 0x1D + strb r1, [r0] + ldr r0, [r3] + subs r4, 0x2 + adds r0, r4 + movs r1, 0x5 + strb r1, [r0] +_0809379A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080937A0: .4byte sPSSData +_080937A4: .4byte 0x0000217c +_080937A8: .4byte sBoxCursorPosition +_080937AC: .4byte 0x00002179 +_080937B0: .4byte 0x00002178 + thumb_func_end sub_80936B8 + + thumb_func_start sub_80937B4 +sub_80937B4: @ 80937B4 + push {r4,lr} + ldr r0, _080937C4 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080937C8 + bl sub_8093660 + b _080937D0 + .align 2, 0 +_080937C4: .4byte sIsMonBeingMoved +_080937C8: + ldr r4, _080937D8 @ =sBoxCursorPosition + bl GetLastViewedMonIndex + strb r0, [r4] +_080937D0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080937D8: .4byte sBoxCursorPosition + thumb_func_end sub_80937B4 + + thumb_func_start CompactPartySlots +CompactPartySlots: @ 80937DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _08093828 @ =0x0000ffff + movs r6, 0 + movs r5, 0 + movs r0, 0x64 + mov r9, r0 + ldr r1, _0809382C @ =gPlayerParty + mov r8, r1 + subs r0, 0x65 + mov r10, r0 +_080937F8: + mov r0, r9 + muls r0, r6 + mov r1, r8 + adds r4, r0, r1 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + cmp r0, 0 + beq _08093830 + cmp r6, r5 + beq _08093820 + mov r0, r9 + muls r0, r5 + add r0, r8 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy +_08093820: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + b _0809383A + .align 2, 0 +_08093828: .4byte 0x0000ffff +_0809382C: .4byte gPlayerParty +_08093830: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, r10 + bne _0809383A + adds r7, r6, 0 +_0809383A: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080937F8 + lsls r7, 16 + cmp r5, 0x5 + bhi _08093862 + movs r6, 0x64 + ldr r4, _08093874 @ =gPlayerParty +_0809384E: + adds r0, r5, 0 + muls r0, r6 + adds r0, r4 + bl ZeroMonData + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809384E +_08093862: + asrs r0, r7, 16 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08093874: .4byte gPlayerParty + thumb_func_end CompactPartySlots + + thumb_func_start sub_8093878 +sub_8093878: @ 8093878 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + ldr r2, _080938A8 @ =sPSSData + ldr r1, [r2] + ldr r3, _080938AC @ =0x00000ce7 + adds r1, r3 + strb r0, [r1] + ldr r0, _080938B0 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080938B8 + ldr r0, [r2] + ldr r1, _080938B4 @ =0x000020a0 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _080938EC + .align 2, 0 +_080938A8: .4byte sPSSData +_080938AC: .4byte 0x00000ce7 +_080938B0: .4byte sIsMonBeingMoved +_080938B4: .4byte 0x000020a0 +_080938B8: + ldr r4, _080938F4 @ =sBoxCursorArea + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1 + bne _080938D8 + ldr r0, _080938F8 @ =sBoxCursorPosition + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080938FC @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData +_080938D8: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _080938EC + ldr r0, _080938F8 @ =sBoxCursorPosition + ldrb r0, [r0] + movs r1, 0x8 + mov r2, sp + bl SetCurrentBoxMonData +_080938EC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080938F4: .4byte sBoxCursorArea +_080938F8: .4byte sBoxCursorPosition +_080938FC: .4byte gPlayerParty + thumb_func_end sub_8093878 + + thumb_func_start sub_8093900 +sub_8093900: @ 8093900 + push {lr} + ldr r0, _08093928 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08093934 + ldr r0, _0809392C @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + bne _08093934 + ldr r0, _08093930 @ =sBoxCursorPosition + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, 24 + cmp r0, 0 + bne _08093934 + movs r0, 0x1 + b _08093936 + .align 2, 0 +_08093928: .4byte sBoxCursorArea +_0809392C: .4byte sIsMonBeingMoved +_08093930: .4byte sBoxCursorPosition +_08093934: + movs r0, 0 +_08093936: + pop {r1} + bx r1 + thumb_func_end sub_8093900 + + thumb_func_start sub_809393C +sub_809393C: @ 809393C + push {lr} + ldr r0, _08093980 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _08093998 + ldr r0, _08093984 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809397C + ldr r0, _08093988 @ =sBoxCursorPosition + ldrb r0, [r0] + bl CountPartyAliveNonEggMonsExcept + lsls r0, 24 + cmp r0, 0 + bne _0809397C + ldr r0, _0809398C @ =sPSSData + ldr r1, [r0] + ldr r2, _08093990 @ =0x00000ce9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _08093998 + ldr r2, _08093994 @ =0x000020a0 + adds r0, r1, r2 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08093998 +_0809397C: + movs r0, 0x1 + b _0809399A + .align 2, 0 +_08093980: .4byte sIsMonBeingMoved +_08093984: .4byte sBoxCursorArea +_08093988: .4byte sBoxCursorPosition +_0809398C: .4byte sPSSData +_08093990: .4byte 0x00000ce9 +_08093994: .4byte 0x000020a0 +_08093998: + movs r0, 0 +_0809399A: + pop {r1} + bx r1 + thumb_func_end sub_809393C + + thumb_func_start sub_80939A0 +sub_80939A0: @ 80939A0 + ldr r0, _080939A8 @ =sIsMonBeingMoved + ldrb r0, [r0] + bx lr + .align 2, 0 +_080939A8: .4byte sIsMonBeingMoved + thumb_func_end sub_80939A0 + + thumb_func_start sub_80939AC +sub_80939AC: @ 80939AC + push {lr} + movs r1, 0 + ldr r0, _080939C4 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _080939BE + movs r1, 0x1 +_080939BE: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080939C4: .4byte sBoxCursorArea + thumb_func_end sub_80939AC + + thumb_func_start sub_80939C8 +sub_80939C8: @ 80939C8 + push {lr} + movs r1, 0 + ldr r0, _080939EC @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _080939E6 + ldr r0, _080939F0 @ =sBoxCursorPosition + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _080939E6 + movs r1, 0x1 +_080939E6: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_080939EC: .4byte sBoxCursorArea +_080939F0: .4byte sBoxCursorPosition + thumb_func_end sub_80939C8 + + thumb_func_start sub_80939F4 +sub_80939F4: @ 80939F4 + push {lr} + movs r1, 0 + ldr r0, _08093A0C @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _08093A06 + movs r1, 0x1 +_08093A06: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_08093A0C: .4byte sBoxCursorArea + thumb_func_end sub_80939F4 + + thumb_func_start sub_8093A10 +sub_8093A10: @ 8093A10 + push {r4,lr} + ldr r0, _08093A44 @ =sPSSData + ldr r1, [r0] + movs r2, 0 + ldr r3, _08093A48 @ =sIsMonBeingMoved + ldrb r0, [r3] + cmp r0, 0 + bne _08093A22 + movs r2, 0x1 +_08093A22: + ldr r4, _08093A4C @ =0x00000ce6 + adds r0, r1, r4 + strb r2, [r0] + ldrb r0, [r3] + cmp r0, 0 + bne _08093AA0 + ldr r0, _08093A50 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _08093A5A + cmp r0, 0x1 + bgt _08093A54 + cmp r0, 0 + beq _08093A8A + b _08093AA0 + .align 2, 0 +_08093A44: .4byte sPSSData +_08093A48: .4byte sIsMonBeingMoved +_08093A4C: .4byte 0x00000ce6 +_08093A50: .4byte sBoxCursorArea +_08093A54: + cmp r0, 0x3 + bgt _08093AA0 + b _08093A80 +_08093A5A: + ldr r1, _08093A78 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _08093A80 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _08093A7C @ =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_8093AD0 + b _08093AA0 + .align 2, 0 +_08093A78: .4byte sBoxCursorPosition +_08093A7C: .4byte gPlayerParty +_08093A80: + movs r0, 0 + movs r1, 0x2 + bl sub_8093AD0 + b _08093AA0 +_08093A8A: + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08093AA8 @ =sBoxCursorPosition + ldrb r1, [r1] + bl GetBoxedMonPtr + movs r1, 0x1 + bl sub_8093AD0 +_08093AA0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08093AA8: .4byte sBoxCursorPosition + thumb_func_end sub_8093A10 + + thumb_func_start sub_8093AAC +sub_8093AAC: @ 8093AAC + push {lr} + ldr r0, _08093AC0 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _08093AC8 + ldr r0, _08093AC4 @ =gUnknown_20397BC + movs r1, 0 + bl sub_8093AD0 + b _08093ACC + .align 2, 0 +_08093AC0: .4byte sIsMonBeingMoved +_08093AC4: .4byte gUnknown_20397BC +_08093AC8: + bl sub_8093A10 +_08093ACC: + pop {r0} + bx r0 + thumb_func_end sub_8093AAC + + thumb_func_start sub_8093AD0 +sub_8093AD0: @ 8093AD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + ldr r0, _08093B38 @ =sPSSData + mov r8, r0 + ldr r1, [r0] + ldr r3, _08093B3C @ =0x00000ce2 + adds r2, r1, r3 + movs r0, 0 + strh r0, [r2] + mov r9, r0 + mov r10, r0 + cmp r5, 0 + bne _08093BEC + adds r6, r4, 0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + mov r2, r8 + ldr r1, [r2] + movs r3, 0xCE + lsls r3, 4 + adds r1, r3 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _08093B16 + b _08093D0C +_08093B16: + adds r0, r4, 0 + movs r1, 0x4 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0 + beq _08093B44 + mov r1, r8 + ldr r0, [r1] + ldr r2, _08093B40 @ =0x00000ce9 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _08093B56 + .align 2, 0 +_08093B38: .4byte sPSSData +_08093B3C: .4byte 0x00000ce2 +_08093B40: .4byte 0x00000ce9 +_08093B44: + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, r8 + ldr r1, [r3] + ldr r2, _08093BCC @ =0x00000ce9 + adds r1, r2 + strb r0, [r1] +_08093B56: + ldr r4, _08093BD0 @ =sPSSData + ldr r2, [r4] + ldr r5, _08093BD4 @ =0x00000cea + adds r2, r5 + adds r0, r6, 0 + movs r1, 0x2 + bl GetMonData + ldr r0, [r4] + adds r0, r5 + bl StringGetEnd10 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [r4] + ldr r3, _08093BD8 @ =0x00000ce8 + adds r1, r3 + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0x8 + bl GetMonData + ldr r1, [r4] + ldr r2, _08093BDC @ =0x00000ce7 + adds r1, r2 + strb r0, [r1] + adds r0, r6, 0 + movs r1, 0 + bl GetMonData + ldr r1, [r4] + ldr r3, _08093BE0 @ =0x00000cdc + adds r1, r3 + str r0, [r1] + adds r0, r6, 0 + bl GetMonFrontSpritePal + ldr r1, [r4] + ldr r2, _08093BE4 @ =0x00000cd8 + adds r1, r2 + str r0, [r1] + adds r0, r6, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r0, r6, 0 + movs r1, 0xC + bl GetMonData + ldr r1, [r4] + ldr r3, _08093BE8 @ =0x00000ce2 + adds r1, r3 + strh r0, [r1] + b _08093CFC + .align 2, 0 +_08093BCC: .4byte 0x00000ce9 +_08093BD0: .4byte sPSSData +_08093BD4: .4byte 0x00000cea +_08093BD8: .4byte 0x00000ce8 +_08093BDC: .4byte 0x00000ce7 +_08093BE0: .4byte 0x00000cdc +_08093BE4: .4byte 0x00000cd8 +_08093BE8: .4byte 0x00000ce2 +_08093BEC: + cmp r5, 0x1 + beq _08093BF2 + b _08093CF0 +_08093BF2: + adds r7, r4, 0 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + mov r2, r8 + ldr r1, [r2] + movs r3, 0xCE + lsls r3, 4 + adds r1, r3 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _08093C10 + b _08093D0C +_08093C10: + adds r0, r7, 0 + movs r1, 0x1 + bl GetBoxMonData + mov r9, r0 + adds r0, r7, 0 + movs r1, 0x4 + bl GetBoxMonData + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0 + beq _08093C3C + mov r1, r8 + ldr r0, [r1] + ldr r2, _08093C38 @ =0x00000ce9 + adds r0, r2 + strb r5, [r0] + b _08093C4E + .align 2, 0 +_08093C38: .4byte 0x00000ce9 +_08093C3C: + adds r0, r7, 0 + movs r1, 0x2D + bl GetBoxMonData + mov r3, r8 + ldr r1, [r3] + ldr r2, _08093CD0 @ =0x00000ce9 + adds r1, r2 + strb r0, [r1] +_08093C4E: + ldr r5, _08093CD4 @ =sPSSData + ldr r2, [r5] + ldr r4, _08093CD8 @ =0x00000cea + adds r2, r4 + adds r0, r7, 0 + movs r1, 0x2 + bl GetBoxMonData + ldr r0, [r5] + adds r0, r4 + bl StringGetEnd10 + adds r0, r7, 0 + bl GetLevelFromBoxMonExp + ldr r1, [r5] + ldr r3, _08093CDC @ =0x00000ce8 + adds r1, r3 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetBoxMonData + ldr r1, [r5] + ldr r2, _08093CE0 @ =0x00000ce7 + adds r1, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r2, r0, 0 + ldr r1, [r5] + ldr r6, _08093CE4 @ =0x00000cdc + adds r0, r1, r6 + str r2, [r0] + subs r4, 0xA + adds r1, r4 + ldrh r0, [r1] + mov r1, r9 + bl GetMonSpritePalFromSpeciesAndPersonality + ldr r1, [r5] + ldr r3, _08093CE8 @ =0x00000cd8 + adds r2, r1, r3 + str r0, [r2] + adds r4, r1, r4 + ldrh r0, [r4] + adds r1, r6 + ldr r1, [r1] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r0, r7, 0 + movs r1, 0xC + bl GetBoxMonData + ldr r1, [r5] + ldr r2, _08093CEC @ =0x00000ce2 + adds r1, r2 + strh r0, [r1] + b _08093CFC + .align 2, 0 +_08093CD0: .4byte 0x00000ce9 +_08093CD4: .4byte sPSSData +_08093CD8: .4byte 0x00000cea +_08093CDC: .4byte 0x00000ce8 +_08093CE0: .4byte 0x00000ce7 +_08093CE4: .4byte 0x00000cdc +_08093CE8: .4byte 0x00000cd8 +_08093CEC: .4byte 0x00000ce2 +_08093CF0: + movs r3, 0xCE + lsls r3, 4 + adds r0, r1, r3 + mov r1, r9 + strh r1, [r0] + strh r1, [r2] +_08093CFC: + ldr r0, _08093D50 @ =sPSSData + ldr r1, [r0] + movs r2, 0xCE + lsls r2, 4 + adds r0, r1, r2 + ldrh r2, [r0] + cmp r2, 0 + bne _08093D68 +_08093D0C: + ldr r4, _08093D50 @ =sPSSData + ldr r0, [r4] + ldr r3, _08093D54 @ =0x00000cea + adds r0, r3 + movs r1, 0 + movs r2, 0x5 + bl StringFill + ldr r0, [r4] + ldr r1, _08093D58 @ =0x00000cf5 + adds r0, r1 + movs r1, 0 + movs r2, 0x8 + bl StringFill + ldr r0, [r4] + ldr r2, _08093D5C @ =0x00000d19 + adds r0, r2 + movs r1, 0 + movs r2, 0x8 + bl StringFill + ldr r0, [r4] + ldr r3, _08093D60 @ =0x00000d3d + adds r0, r3 + movs r1, 0 + movs r2, 0x8 + bl StringFill + ldr r0, [r4] + ldr r1, _08093D64 @ =0x00000d61 + adds r0, r1 + b _08093DC6 + .align 2, 0 +_08093D50: .4byte sPSSData +_08093D54: .4byte 0x00000cea +_08093D58: .4byte 0x00000cf5 +_08093D5C: .4byte 0x00000d19 +_08093D60: .4byte 0x00000d3d +_08093D64: .4byte 0x00000d61 +_08093D68: + ldr r3, _08093D8C @ =0x00000ce9 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _08093DE8 + mov r0, r10 + cmp r0, 0 + beq _08093D94 + ldr r2, _08093D90 @ =0x00000cf5 + adds r0, r1, r2 + adds r3, 0x1 + adds r1, r3 + movs r2, 0 + movs r3, 0x5 + bl StringCopyPadded + b _08093DA2 + .align 2, 0 +_08093D8C: .4byte 0x00000ce9 +_08093D90: .4byte 0x00000cf5 +_08093D94: + ldr r2, _08093DD0 @ =0x00000cf5 + adds r0, r1, r2 + ldr r1, _08093DD4 @ =gText_EggNickname + movs r2, 0 + movs r3, 0x8 + bl StringCopyPadded +_08093DA2: + ldr r4, _08093DD8 @ =sPSSData + ldr r0, [r4] + ldr r3, _08093DDC @ =0x00000d19 + adds r0, r3 + movs r1, 0 + movs r2, 0x8 + bl StringFill + ldr r0, [r4] + ldr r1, _08093DE0 @ =0x00000d3d + adds r0, r1 + movs r1, 0 + movs r2, 0x8 + bl StringFill + ldr r0, [r4] + ldr r2, _08093DE4 @ =0x00000d61 + adds r0, r2 +_08093DC6: + movs r1, 0 + movs r2, 0x8 + bl StringFill + b _08093F84 + .align 2, 0 +_08093DD0: .4byte 0x00000cf5 +_08093DD4: .4byte gText_EggNickname +_08093DD8: .4byte sPSSData +_08093DDC: .4byte 0x00000d19 +_08093DE0: .4byte 0x00000d3d +_08093DE4: .4byte 0x00000d61 +_08093DE8: + cmp r2, 0x1D + beq _08093DF0 + cmp r2, 0x20 + bne _08093DF4 +_08093DF0: + movs r3, 0xFF + mov r9, r3 +_08093DF4: + ldr r4, _08093E78 @ =sPSSData + ldr r1, [r4] + ldr r2, _08093E7C @ =0x00000cf5 + adds r0, r1, r2 + ldr r3, _08093E80 @ =0x00000cea + adds r1, r3 + movs r2, 0 + movs r3, 0x5 + bl StringCopyPadded + ldr r1, [r4] + ldr r0, _08093E84 @ =0x00000d19 + adds r2, r1, r0 + movs r0, 0xBA + strb r0, [r2] + ldr r3, _08093E88 @ =0x00000d1a + adds r2, r1, r3 + ldr r0, [r4] + movs r1, 0xCE + lsls r1, 4 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, _08093E8C @ =gSpeciesNames + adds r1, r0 + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x5 + bl StringCopyPadded + ldr r4, [r4] + ldr r3, _08093E90 @ =0x00000d3d + adds r2, r4, r3 + movs r0, 0xFC + strb r0, [r2] + ldr r0, _08093E94 @ =0x00000d3e + adds r2, r4, r0 + movs r0, 0x4 + strb r0, [r2] + ldr r1, _08093E98 @ =0x00000d3f + adds r2, r4, r1 + mov r3, r9 + cmp r3, 0 + beq _08093EA4 + cmp r3, 0xFE + beq _08093ED0 + movs r0, 0x2 + strb r0, [r2] + movs r0, 0xD4 + lsls r0, 4 + adds r2, r4, r0 + movs r0, 0x1 + strb r0, [r2] + adds r1, 0x2 + adds r2, r4, r1 + movs r0, 0x3 + strb r0, [r2] + ldr r3, _08093E9C @ =0x00000d42 + adds r2, r4, r3 + movs r0, 0 + strb r0, [r2] + ldr r0, _08093EA0 @ =0x00000d43 + adds r2, r4, r0 + b _08093EF2 + .align 2, 0 +_08093E78: .4byte sPSSData +_08093E7C: .4byte 0x00000cf5 +_08093E80: .4byte 0x00000cea +_08093E84: .4byte 0x00000d19 +_08093E88: .4byte 0x00000d1a +_08093E8C: .4byte gSpeciesNames +_08093E90: .4byte 0x00000d3d +_08093E94: .4byte 0x00000d3e +_08093E98: .4byte 0x00000d3f +_08093E9C: .4byte 0x00000d42 +_08093EA0: .4byte 0x00000d43 +_08093EA4: + strb r0, [r2] + movs r1, 0xD4 + lsls r1, 4 + adds r2, r4, r1 + movs r0, 0x1 + strb r0, [r2] + ldr r3, _08093EC8 @ =0x00000d41 + adds r2, r4, r3 + movs r0, 0x5 + strb r0, [r2] + ldr r0, _08093ECC @ =0x00000d42 + adds r2, r4, r0 + movs r0, 0xB5 + strb r0, [r2] + adds r1, 0x3 + adds r2, r4, r1 + b _08093EF2 + .align 2, 0 +_08093EC8: .4byte 0x00000d41 +_08093ECC: .4byte 0x00000d42 +_08093ED0: + movs r0, 0x6 + strb r0, [r2] + movs r3, 0xD4 + lsls r3, 4 + adds r2, r4, r3 + movs r0, 0x1 + strb r0, [r2] + ldr r0, _08093F60 @ =0x00000d41 + adds r2, r4, r0 + movs r0, 0x7 + strb r0, [r2] + ldr r1, _08093F64 @ =0x00000d42 + adds r2, r4, r1 + movs r0, 0xB6 + strb r0, [r2] + adds r3, 0x3 + adds r2, r4, r3 +_08093EF2: + movs r0, 0xFC + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x4 + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x2 + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x1 + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x3 + strb r0, [r2] + adds r2, 0x1 + movs r5, 0 + strb r5, [r2] + adds r2, 0x1 + movs r0, 0xF9 + strb r0, [r2] + adds r2, 0x1 + movs r0, 0x5 + strb r0, [r2] + adds r2, 0x1 + ldr r4, _08093F68 @ =sPSSData + ldr r0, [r4] + ldr r1, _08093F6C @ =0x00000ce8 + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + strb r5, [r2] + movs r0, 0xFF + strb r0, [r2, 0x1] + ldr r4, [r4] + ldr r2, _08093F70 @ =0x00000ce2 + adds r1, r4, r2 + ldrh r0, [r1] + cmp r0, 0 + beq _08093F78 + ldr r3, _08093F74 @ =0x00000d61 + adds r4, r3 + bl ItemId_GetName + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x8 + bl StringCopyPadded + b _08093F84 + .align 2, 0 +_08093F60: .4byte 0x00000d41 +_08093F64: .4byte 0x00000d42 +_08093F68: .4byte sPSSData +_08093F6C: .4byte 0x00000ce8 +_08093F70: .4byte 0x00000ce2 +_08093F74: .4byte 0x00000d61 +_08093F78: + ldr r1, _08093F94 @ =0x00000d61 + adds r0, r4, r1 + movs r1, 0 + movs r2, 0x8 + bl StringFill +_08093F84: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08093F94: .4byte 0x00000d61 + thumb_func_end sub_8093AD0 + + thumb_func_start sub_8093F98 +sub_8093F98: @ 8093F98 + push {lr} + ldr r0, _08093FB8 @ =sPSSData + ldr r0, [r0] + ldr r1, _08093FBC @ =0x000021ef + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08093FC0 + cmp r0, 0x1 + ble _08093FB0 + cmp r0, 0x2 + beq _08093FC6 +_08093FB0: + bl sub_8093FD4 + b _08093FCA + .align 2, 0 +_08093FB8: .4byte sPSSData +_08093FBC: .4byte 0x000021ef +_08093FC0: + bl sub_8094240 + b _08093FCA +_08093FC6: + bl sub_8094378 +_08093FCA: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8093F98 + + thumb_func_start sub_8093FD4 +sub_8093FD4: @ 8093FD4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08094058 @ =sBoxCursorArea + ldrb r0, [r0] + mov r8, r0 + ldr r2, _0809405C @ =sBoxCursorPosition + ldrb r4, [r2] + ldr r5, _08094060 @ =sPSSData + ldr r0, [r5] + ldr r1, _08094064 @ =0x00000cce + mov r10, r1 + add r0, r10 + movs r1, 0 + strb r1, [r0] + ldr r0, [r5] + ldr r7, _08094068 @ =0x00000ccf + adds r0, r7 + strb r1, [r0] + ldr r0, [r5] + ldr r3, _0809406C @ =0x00000cd3 + mov r9, r3 + add r0, r9 + strb r1, [r0] + ldr r6, _08094070 @ =gMain + ldrh r1, [r6, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _08094018 + b _08094208 +_08094018: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08094074 + movs r6, 0x1 + lsls r0, r4, 24 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x1D + bgt _08094034 + b _08094224 +_08094034: + movs r2, 0x3 + mov r8, r2 + subs r0, 0x1E + lsls r0, 24 + asrs r0, 24 + movs r1, 0x3 + bl __divsi3 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r5] + add r0, r10 + strb r6, [r0] + ldr r0, [r5] + add r0, r9 + strb r6, [r0] + b _08094224 + .align 2, 0 +_08094058: .4byte sBoxCursorArea +_0809405C: .4byte sBoxCursorPosition +_08094060: .4byte sPSSData +_08094064: .4byte 0x00000cce +_08094068: .4byte 0x00000ccf +_0809406C: .4byte 0x00000cd3 +_08094070: .4byte gMain +_08094074: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080940AA + movs r6, 0x1 + movs r0, 0 + ldrsb r0, [r3, r0] + movs r1, 0x6 + bl __modsi3 + lsls r0, 24 + cmp r0, 0 + beq _08094096 + lsls r0, r4, 24 + movs r3, 0xFF + lsls r3, 24 + b _08094218 +_08094096: + ldr r0, [r5] + adds r0, r7 + movs r1, 0xFF + strb r1, [r0] + lsls r0, r4, 24 + movs r1, 0xA0 + lsls r1, 19 + adds r0, r1 + lsrs r4, r0, 24 + b _08094224 +_080940AA: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080940DE + movs r6, 0x1 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, 0x1 + movs r1, 0x6 + bl __modsi3 + cmp r0, 0 + beq _080940D0 + lsls r0, r4, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r4, r0, 24 + b _08094224 +_080940D0: + ldr r0, [r5] + adds r0, r7 + strb r6, [r0] + lsls r0, r4, 24 + movs r3, 0xFB + lsls r3, 24 + b _08094218 +_080940DE: + ldrh r1, [r6, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080940EC + movs r6, 0x1 + b _0809421E +_080940EC: + movs r4, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080941B0 + bl sub_8094924 + lsls r0, 24 + cmp r0, 0 + beq _080941B0 + ldr r0, _0809410C @ =sCanOnlyMove + ldrb r0, [r0] + cmp r0, 0 + bne _08094110 + movs r0, 0x8 + b _08094232 + .align 2, 0 +_0809410C: .4byte sCanOnlyMove +_08094110: + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0x2 + bne _08094120 + ldr r0, _0809413C @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0x1 + bne _080941A0 +_08094120: + movs r0, 0 + bl sub_8094E50 + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bhi _080941B0 + lsls r0, 2 + ldr r1, _08094140 @ =_08094144 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809413C: .4byte sIsMonBeingMoved +_08094140: .4byte _08094144 + .align 2, 0 +_08094144: + .4byte _08094180 + .4byte _08094184 + .4byte _08094188 + .4byte _0809418C + .4byte _08094190 + .4byte _080941B0 + .4byte _080941B0 + .4byte _080941B0 + .4byte _080941B0 + .4byte _080941B0 + .4byte _080941B0 + .4byte _08094194 + .4byte _08094198 + .4byte _080941B0 + .4byte _0809419C +_08094180: + movs r0, 0xB + b _08094232 +_08094184: + movs r0, 0xC + b _08094232 +_08094188: + movs r0, 0xD + b _08094232 +_0809418C: + movs r0, 0xE + b _08094232 +_08094190: + movs r0, 0xF + b _08094232 +_08094194: + movs r0, 0x10 + b _08094232 +_08094198: + movs r0, 0x11 + b _08094232 +_0809419C: + movs r0, 0x12 + b _08094232 +_080941A0: + ldr r2, _080941AC @ =0x000021ef + adds r0, r1, r2 + strb r4, [r0] + movs r0, 0x14 + b _08094232 + .align 2, 0 +_080941AC: .4byte 0x000021ef +_080941B0: + ldr r2, _080941C0 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080941C4 + movs r0, 0x13 + b _08094232 + .align 2, 0 +_080941C0: .4byte gMain +_080941C4: + ldr r0, _080941E0 @ =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _080941F2 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _080941E4 + movs r0, 0xA + b _08094232 + .align 2, 0 +_080941E0: .4byte gSaveBlock2Ptr +_080941E4: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080941F2 + movs r0, 0x9 + b _08094232 +_080941F2: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08094204 + bl sub_8094C84 + movs r0, 0 + b _08094232 +_08094204: + movs r6, 0 + b _08094230 +_08094208: + movs r6, 0x1 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x5 + ble _0809421E + lsls r0, r4, 24 + movs r3, 0xFA + lsls r3, 24 +_08094218: + adds r0, r3 + lsrs r4, r0, 24 + b _08094224 +_0809421E: + movs r0, 0x2 + mov r8, r0 + movs r4, 0 +_08094224: + cmp r6, 0 + beq _08094230 + mov r0, r8 + adds r1, r4, 0 + bl sub_80927E8 +_08094230: + adds r0, r6, 0 +_08094232: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8093FD4 + + thumb_func_start sub_8094240 +sub_8094240: @ 8094240 + push {r4,lr} + ldr r1, _08094270 @ =gMain + ldrh r0, [r1, 0x2C] + movs r4, 0x1 + ands r4, r0 + cmp r4, 0 + beq _080942F4 + ldrh r1, [r1, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08094278 + ldr r4, _08094274 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r4, r0] + movs r1, 0x6 + bl __divsi3 + lsls r0, 24 + cmp r0, 0 + beq _080942EC + ldrb r1, [r4] + subs r1, 0x6 + b _080942DA + .align 2, 0 +_08094270: .4byte gMain +_08094274: .4byte sBoxCursorPosition +_08094278: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08094298 + ldr r1, _08094294 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r1, r0] + adds r0, 0x6 + cmp r0, 0x1D + bgt _080942EC + ldrb r1, [r1] + adds r1, 0x6 + b _080942DA + .align 2, 0 +_08094294: .4byte sBoxCursorPosition +_08094298: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080942BC + ldr r4, _080942B8 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r4, r0] + movs r1, 0x6 + bl __modsi3 + lsls r0, 24 + cmp r0, 0 + beq _080942EC + ldrb r1, [r4] + subs r1, 0x1 + b _080942DA + .align 2, 0 +_080942B8: .4byte sBoxCursorPosition +_080942BC: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080942F0 + ldr r4, _080942E8 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r4, r0] + adds r0, 0x1 + movs r1, 0x6 + bl __modsi3 + cmp r0, 0 + beq _080942EC + ldrb r1, [r4] + adds r1, 0x1 +_080942DA: + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80927E8 + movs r0, 0x15 + b _08094364 + .align 2, 0 +_080942E8: .4byte sBoxCursorPosition +_080942EC: + movs r0, 0x18 + b _08094364 +_080942F0: + movs r0, 0 + b _08094364 +_080942F4: + bl sub_8095AA0 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08094330 @ =sBoxCursorPosition + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + cmp r0, r1 + beq _08094344 + ldr r2, _08094334 @ =sIsMonBeingMoved + ldr r0, _08094338 @ =sPSSData + ldr r1, [r0] + movs r3, 0xCE + lsls r3, 4 + adds r0, r1, r3 + ldrh r0, [r0] + negs r0, r0 + lsrs r0, 31 + strb r0, [r2] + ldr r0, _0809433C @ =0x000021ef + adds r1, r0 + movs r0, 0x2 + strb r0, [r1] + bl StorageGetCurrentBox + ldr r1, _08094340 @ =sMovingMonOrigBoxId + strb r0, [r1] + movs r0, 0x17 + b _08094364 + .align 2, 0 +_08094330: .4byte sBoxCursorPosition +_08094334: .4byte sIsMonBeingMoved +_08094338: .4byte sPSSData +_0809433C: .4byte 0x000021ef +_08094340: .4byte sMovingMonOrigBoxId +_08094344: + ldr r1, _0809436C @ =sPSSData + ldr r0, [r1] + ldr r2, _08094370 @ =0x000021ef + adds r0, r2 + strb r4, [r0] + ldr r0, [r1] + ldr r3, _08094374 @ =0x00000cb4 + adds r0, r3 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + movs r0, 0x16 +_08094364: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0809436C: .4byte sPSSData +_08094370: .4byte 0x000021ef +_08094374: .4byte 0x00000cb4 + thumb_func_end sub_8094240 + + thumb_func_start sub_8094378 +sub_8094378: @ 8094378 + push {r4,lr} + ldr r2, _0809439C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080943A4 + movs r0, 0 + bl sub_8095474 + lsls r0, 24 + cmp r0, 0 + beq _08094450 + ldr r0, _080943A0 @ =sBoxCursorPosition + ldrb r1, [r0] + subs r1, 0x6 + b _08094402 + .align 2, 0 +_0809439C: .4byte gMain +_080943A0: .4byte sBoxCursorPosition +_080943A4: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080943C4 + movs r0, 0x1 + bl sub_8095474 + lsls r0, 24 + cmp r0, 0 + beq _08094450 + ldr r0, _080943C0 @ =sBoxCursorPosition + ldrb r1, [r0] + adds r1, 0x6 + b _08094402 + .align 2, 0 +_080943C0: .4byte sBoxCursorPosition +_080943C4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080943E4 + movs r0, 0x2 + bl sub_8095474 + lsls r0, 24 + cmp r0, 0 + beq _0809446A + ldr r0, _080943E0 @ =sBoxCursorPosition + ldrb r1, [r0] + subs r1, 0x1 + b _08094402 + .align 2, 0 +_080943E0: .4byte sBoxCursorPosition +_080943E4: + movs r0, 0x10 + ands r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08094414 + movs r0, 0x3 + bl sub_8095474 + lsls r0, 24 + cmp r0, 0 + beq _0809447E + ldr r0, _08094410 @ =sBoxCursorPosition + ldrb r1, [r0] + adds r1, 0x1 +_08094402: + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_80927E8 + movs r0, 0x19 + b _08094484 + .align 2, 0 +_08094410: .4byte sBoxCursorPosition +_08094414: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08094448 + bl sub_8095ABC + lsls r0, 24 + cmp r0, 0 + beq _08094450 + ldr r0, _0809443C @ =sIsMonBeingMoved + strb r4, [r0] + ldr r0, _08094440 @ =sPSSData + ldr r0, [r0] + ldr r1, _08094444 @ =0x000021ef + adds r0, r1 + strb r4, [r0] + movs r0, 0x1A + b _08094484 + .align 2, 0 +_0809443C: .4byte sIsMonBeingMoved +_08094440: .4byte sPSSData +_08094444: .4byte 0x000021ef +_08094448: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08094454 +_08094450: + movs r0, 0x18 + b _08094484 +_08094454: + ldr r0, _08094470 @ =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _08094482 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _08094474 +_0809446A: + movs r0, 0xA + b _08094484 + .align 2, 0 +_08094470: .4byte gSaveBlock2Ptr +_08094474: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08094482 +_0809447E: + movs r0, 0x9 + b _08094484 +_08094482: + movs r0, 0 +_08094484: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8094378 + + thumb_func_start sub_809448C +sub_809448C: @ 809448C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080944FC @ =sBoxCursorArea + ldrb r0, [r0] + mov r9, r0 + ldr r6, _08094500 @ =sBoxCursorPosition + ldrb r4, [r6] + ldr r2, _08094504 @ =sPSSData + ldr r0, [r2] + ldr r1, _08094508 @ =0x00000ccf + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _0809450C @ =0x00000cce + adds r0, r3 + strb r1, [r0] + ldr r0, [r2] + adds r3, 0x5 + adds r0, r3 + strb r1, [r0] + mov r8, r1 + movs r7, 0 + ldr r1, _08094510 @ =gMain + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + adds r5, r6, 0 + mov r12, r1 + cmp r0, 0 + beq _080944D0 + b _08094670 +_080944D0: + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _08094514 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x6 + ble _080944EA + movs r4, 0 +_080944EA: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r5, r1] + cmp r0, r1 + bne _080944F8 + b _0809468E +_080944F8: + movs r7, 0x1 + b _08094692 + .align 2, 0 +_080944FC: .4byte sBoxCursorArea +_08094500: .4byte sBoxCursorPosition +_08094504: .4byte sPSSData +_08094508: .4byte 0x00000ccf +_0809450C: .4byte 0x00000cce +_08094510: .4byte gMain +_08094514: + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _08094538 + ldrb r1, [r5] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + beq _08094538 + movs r7, 0x1 + ldr r0, [r2] + ldr r2, _08094534 @ =0x00000cd2 + adds r0, r2 + strb r1, [r0] + movs r4, 0 + b _0809468E + .align 2, 0 +_08094534: .4byte 0x00000cd2 +_08094538: + mov r3, r12 + ldrh r1, [r3, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08094566 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0 + bne _0809455C + movs r7, 0x1 + ldr r0, [r2] + ldr r1, _08094558 @ =0x00000cd2 + adds r0, r1 + ldrb r4, [r0] + b _0809468E + .align 2, 0 +_08094558: .4byte 0x00000cd2 +_0809455C: + movs r7, 0x6 + movs r2, 0 + mov r9, r2 + movs r4, 0 + b _0809468E +_08094566: + mov r3, r12 + ldrh r1, [r3, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08094624 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0x6 + bne _0809458C + ldr r0, [r2] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08094586 + movs r0, 0x4 + b _080946A0 +_08094586: + movs r0, 0x1 + mov r8, r0 + b _08094624 +_0809458C: + bl sub_8094924 + lsls r0, 24 + cmp r0, 0 + beq _08094624 + ldr r0, _080945A4 @ =sCanOnlyMove + ldrb r0, [r0] + cmp r0, 0 + bne _080945A8 + movs r0, 0x8 + b _080946A0 + .align 2, 0 +_080945A4: .4byte sCanOnlyMove +_080945A8: + movs r0, 0 + bl sub_8094E50 + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bhi _08094624 + lsls r0, 2 + ldr r1, _080945C4 @ =_080945C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080945C4: .4byte _080945C8 + .align 2, 0 +_080945C8: + .4byte _08094604 + .4byte _08094608 + .4byte _0809460C + .4byte _08094610 + .4byte _08094614 + .4byte _08094624 + .4byte _08094624 + .4byte _08094624 + .4byte _08094624 + .4byte _08094624 + .4byte _08094624 + .4byte _08094618 + .4byte _0809461C + .4byte _08094624 + .4byte _08094620 +_08094604: + movs r0, 0xB + b _080946A0 +_08094608: + movs r0, 0xC + b _080946A0 +_0809460C: + movs r0, 0xD + b _080946A0 +_08094610: + movs r0, 0xE + b _080946A0 +_08094614: + movs r0, 0xF + b _080946A0 +_08094618: + movs r0, 0x10 + b _080946A0 +_0809461C: + movs r0, 0x11 + b _080946A0 +_08094620: + movs r0, 0x12 + b _080946A0 +_08094624: + ldr r2, _08094640 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + mov r12, r2 + cmp r0, 0 + beq _0809464C + ldr r0, _08094644 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + bne _08094648 + movs r0, 0x13 + b _080946A0 + .align 2, 0 +_08094640: .4byte gMain +_08094644: .4byte sPSSData +_08094648: + movs r1, 0x1 + mov r8, r1 +_0809464C: + mov r2, r8 + cmp r2, 0 + beq _0809465C + movs r7, 0x6 + movs r3, 0 + mov r9, r3 + movs r4, 0 + b _0809468E +_0809465C: + mov r0, r12 + ldrh r1, [r0, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809468E + bl sub_8094C84 + movs r0, 0 + b _080946A0 +_08094670: + lsls r0, r4, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r4, r0, 24 + cmp r0, 0 + bge _08094680 + movs r4, 0x6 +_08094680: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + beq _0809468E + movs r7, 0x1 +_0809468E: + cmp r7, 0 + beq _0809469E +_08094692: + cmp r7, 0x6 + beq _0809469E + mov r0, r9 + adds r1, r4, 0 + bl sub_80927E8 +_0809469E: + adds r0, r7, 0 +_080946A0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809448C + + thumb_func_start sub_80946AC +sub_80946AC: @ 80946AC + push {r4-r6,lr} + ldr r3, _080946E8 @ =sPSSData + ldr r0, [r3] + ldr r1, _080946EC @ =0x00000ccf + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r3] + ldr r2, _080946F0 @ =0x00000cce + adds r0, r2 + strb r1, [r0] + ldr r0, [r3] + ldr r5, _080946F4 @ =0x00000cd3 + adds r0, r5 + strb r1, [r0] + ldr r1, _080946F8 @ =gMain + ldrh r2, [r1, 0x30] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _08094772 + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080946FC + movs r4, 0x1 + movs r1, 0 + movs r6, 0x2 + b _0809477E + .align 2, 0 +_080946E8: .4byte sPSSData +_080946EC: .4byte 0x00000ccf +_080946F0: .4byte 0x00000cce +_080946F4: .4byte 0x00000cd3 +_080946F8: .4byte gMain +_080946FC: + ldrh r2, [r1, 0x2C] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _08094722 + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _08094736 + ldr r0, _08094728 @ =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809473A + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _0809472C +_08094722: + movs r0, 0xA + b _0809479A + .align 2, 0 +_08094728: .4byte gSaveBlock2Ptr +_0809472C: + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0809473A +_08094736: + movs r0, 0x9 + b _0809479A +_0809473A: + ldrh r1, [r1, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08094752 + movs r0, 0 + bl sub_80920FC + bl sub_8094900 + movs r0, 0x7 + b _0809479A +_08094752: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809475E + movs r0, 0x13 + b _0809479A +_0809475E: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809476E + bl sub_8094C84 + movs r0, 0 + b _0809479A +_0809476E: + movs r4, 0 + b _08094798 +_08094772: + movs r4, 0x1 + movs r1, 0x3 + movs r6, 0 + ldr r0, [r3] + adds r0, r5 + strb r4, [r0] +_0809477E: + cmp r4, 0 + beq _08094798 + lsls r5, r1, 24 + cmp r1, 0x2 + beq _0809478E + movs r0, 0 + bl sub_80920FC +_0809478E: + lsrs r0, r5, 24 + lsls r1, r6, 24 + lsrs r1, 24 + bl sub_80927E8 +_08094798: + adds r0, r4, 0 +_0809479A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80946AC + + thumb_func_start sub_80947A0 +sub_80947A0: @ 80947A0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080947F0 @ =sBoxCursorArea + ldrb r0, [r0] + mov r8, r0 + ldr r0, _080947F4 @ =sBoxCursorPosition + mov r12, r0 + ldrb r2, [r0] + ldr r3, _080947F8 @ =sPSSData + ldr r0, [r3] + ldr r1, _080947FC @ =0x00000ccf + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r3] + ldr r6, _08094800 @ =0x00000cce + adds r0, r6 + strb r1, [r0] + ldr r0, [r3] + ldr r5, _08094804 @ =0x00000cd3 + adds r0, r5 + strb r1, [r0] + ldr r7, _08094808 @ =gMain + ldrh r1, [r7, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r4, r3, 0 + cmp r0, 0 + bne _0809487A + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + beq _0809480C + movs r7, 0x1 + movs r0, 0x2 + mov r8, r0 + movs r2, 0 + ldr r0, [r4] + b _08094898 + .align 2, 0 +_080947F0: .4byte sBoxCursorArea +_080947F4: .4byte sBoxCursorPosition +_080947F8: .4byte sPSSData +_080947FC: .4byte 0x00000ccf +_08094800: .4byte 0x00000cce +_08094804: .4byte 0x00000cd3 +_08094808: .4byte gMain +_0809480C: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08094828 + movs r7, 0x1 + lsls r0, r2, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r2, r0, 24 + cmp r0, 0 + bge _0809489C + movs r2, 0x1 + b _0809489C +_08094828: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08094846 + movs r7, 0x1 + lsls r0, r2, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r2, r0, 24 + asrs r0, 24 + cmp r0, 0x1 + ble _0809489C + movs r2, 0 + b _0809489C +_08094846: + ldrh r1, [r7, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809485A + movs r0, 0x4 + cmp r2, 0 + bne _080948AA + movs r0, 0x5 + b _080948AA +_0809485A: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08094866 + movs r0, 0x13 + b _080948AA +_08094866: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08094876 + bl sub_8094C84 + movs r0, 0 + b _080948AA +_08094876: + movs r7, 0 + b _080948A8 +_0809487A: + movs r7, 0x1 + movs r0, 0 + mov r8, r0 + ldr r0, [r3] + adds r0, r6 + movs r1, 0xFF + strb r1, [r0] + mov r1, r12 + movs r0, 0 + ldrsb r0, [r1, r0] + movs r2, 0x1D + cmp r0, 0 + bne _08094896 + movs r2, 0x18 +_08094896: + ldr r0, [r3] +_08094898: + adds r0, r5 + strb r7, [r0] +_0809489C: + cmp r7, 0 + beq _080948A8 + mov r0, r8 + adds r1, r2, 0 + bl sub_80927E8 +_080948A8: + adds r0, r7, 0 +_080948AA: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80947A0 + + thumb_func_start sub_80948B4 +sub_80948B4: @ 80948B4 + push {r4,r5,lr} + movs r3, 0 + ldr r0, _080948E0 @ =gUnknown_83D3478 + ldr r1, [r0] + adds r4, r0, 0 + cmp r1, 0 + beq _080948F8 + ldr r5, _080948E4 @ =sBoxCursorArea +_080948C4: + lsls r0, r3, 3 + adds r2, r0, r4 + movs r1, 0x4 + ldrsb r1, [r2, r1] + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r1, r0 + bne _080948E8 + ldr r0, [r2] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + b _080948FA + .align 2, 0 +_080948E0: .4byte gUnknown_83D3478 +_080948E4: .4byte sBoxCursorArea +_080948E8: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r0, r3, 3 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + bne _080948C4 +_080948F8: + movs r0, 0 +_080948FA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80948B4 + + thumb_func_start sub_8094900 +sub_8094900: @ 8094900 + push {lr} + bl sub_8094DA8 + movs r0, 0x9 + bl sub_8094DEC + movs r0, 0xA + bl sub_8094DEC + movs r0, 0xB + bl sub_8094DEC + movs r0, 0 + bl sub_8094DEC + pop {r0} + bx r0 + thumb_func_end sub_8094900 + + thumb_func_start sub_8094924 +sub_8094924: @ 8094924 + push {lr} + bl sub_8094DA8 + ldr r0, _0809493C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08094940 + bl sub_8094A0C + b _08094944 + .align 2, 0 +_0809493C: .4byte sPSSData +_08094940: + bl sub_809494C +_08094944: + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8094924 + + thumb_func_start sub_809494C +sub_809494C: @ 809494C + push {lr} + bl sub_8092458 + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _0809496C @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _08094976 + cmp r0, 0x1 + bgt _08094970 + cmp r0, 0 + beq _08094982 + b _080949BC + .align 2, 0 +_0809496C: .4byte sPSSData +_08094970: + cmp r0, 0x2 + beq _0809498E + b _080949BC +_08094976: + cmp r1, 0 + beq _080949BC + movs r0, 0x1 + bl sub_8094DEC + b _080949C0 +_08094982: + cmp r1, 0 + beq _080949BC + movs r0, 0x2 + bl sub_8094DEC + b _080949C0 +_0809498E: + ldr r0, _080949A4 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _080949B0 + cmp r1, 0 + beq _080949A8 + movs r0, 0x4 + bl sub_8094DEC + b _080949C0 + .align 2, 0 +_080949A4: .4byte sIsMonBeingMoved +_080949A8: + movs r0, 0x5 + bl sub_8094DEC + b _080949C0 +_080949B0: + cmp r1, 0 + beq _080949BC + movs r0, 0x3 + bl sub_8094DEC + b _080949C0 +_080949BC: + movs r0, 0 + b _08094A06 +_080949C0: + movs r0, 0x6 + bl sub_8094DEC + ldr r0, _080949E4 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x2 + bne _080949F2 + ldr r0, _080949E8 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080949EC + movs r0, 0x2 + bl sub_8094DEC + b _080949F2 + .align 2, 0 +_080949E4: .4byte sPSSData +_080949E8: .4byte sBoxCursorArea +_080949EC: + movs r0, 0x1 + bl sub_8094DEC +_080949F2: + movs r0, 0x8 + bl sub_8094DEC + movs r0, 0x7 + bl sub_8094DEC + movs r0, 0 + bl sub_8094DEC + movs r0, 0x1 +_08094A06: + pop {r1} + bx r1 + thumb_func_end sub_809494C + + thumb_func_start sub_8094A0C +sub_8094A0C: @ 8094A0C + push {r4,r5,lr} + ldr r4, _08094A48 @ =sPSSData + ldr r0, [r4] + movs r5, 0xCE + lsls r5, 4 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + beq _08094A9E + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + bne _08094A70 + ldr r2, [r4] + ldr r0, _08094A4C @ =0x00000ce2 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _08094A50 + adds r0, r2, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08094A9E + movs r0, 0xE + bl sub_8094DEC + b _08094AA8 + .align 2, 0 +_08094A48: .4byte sPSSData +_08094A4C: .4byte 0x00000ce2 +_08094A50: + ldrh r0, [r1] + bl ItemIsMail + lsls r0, 24 + cmp r0, 0 + bne _08094A68 + movs r0, 0xC + bl sub_8094DEC + movs r0, 0x10 + bl sub_8094DEC +_08094A68: + movs r0, 0x11 + bl sub_8094DEC + b _08094AA8 +_08094A70: + ldr r2, [r4] + ldr r0, _08094A8C @ =0x00000ce2 + adds r1, r2, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _08094A90 + adds r0, r2, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08094A9E + movs r0, 0xD + bl sub_8094DEC + b _08094AA8 + .align 2, 0 +_08094A8C: .4byte 0x00000ce2 +_08094A90: + ldrh r0, [r1] + bl ItemIsMail + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094AA2 +_08094A9E: + movs r0, 0 + b _08094AB0 +_08094AA2: + movs r0, 0xF + bl sub_8094DEC +_08094AA8: + movs r0, 0 + bl sub_8094DEC + movs r0, 0x1 +_08094AB0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8094A0C + + thumb_func_start sub_8094AB8 +sub_8094AB8: @ 8094AB8 + ldr r1, _08094AD4 @ =sPSSData + ldr r1, [r1] + movs r2, 0xCB + lsls r2, 4 + adds r1, r2 + ldr r2, [r1] + ldrh r2, [r2, 0x20] + strh r2, [r0, 0x20] + ldr r1, [r1] + ldrh r1, [r1, 0x22] + adds r1, 0x14 + strh r1, [r0, 0x22] + bx lr + .align 2, 0 +_08094AD4: .4byte sPSSData + thumb_func_end sub_8094AB8 + + thumb_func_start sub_8094AD8 +sub_8094AD8: @ 8094AD8 + push {r4-r6,lr} + sub sp, 0x2C + mov r1, sp + ldr r0, _08094BA4 @ =gUnknown_83D34A0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + add r4, sp, 0x18 + adds r1, r4, 0 + ldr r0, _08094BA8 @ =gUnknown_83D34B8 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldr r0, [r0] + str r0, [r1] + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + ldr r0, _08094BAC @ =0x0000daca + bl IndexOfSpritePaletteTag + ldr r6, _08094BB0 @ =sPSSData + ldr r1, [r6] + ldr r4, _08094BB4 @ =0x00000cd4 + adds r1, r4 + strb r0, [r1] + ldr r0, _08094BB8 @ =0x0000dac7 + bl IndexOfSpritePaletteTag + ldr r1, [r6] + ldr r5, _08094BBC @ =0x00000cd5 + adds r1, r5 + strb r0, [r1] + ldr r0, _08094BC0 @ =sBoxCursorArea + ldrb r0, [r0] + ldr r1, _08094BC4 @ =sBoxCursorPosition + ldrb r1, [r1] + add r4, sp, 0x28 + mov r5, sp + adds r5, 0x2A + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_8092398 + ldr r0, _08094BC8 @ =gUnknown_83D350C + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0 + ldrsh r2, [r5, r3] + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _08094BD8 + ldr r2, [r6] + movs r4, 0xCB + lsls r4, 4 + adds r3, r2, r4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08094BCC @ =gSprites + adds r1, r0 + str r1, [r3] + ldr r0, _08094BD0 @ =sCanOnlyMove + ldr r5, _08094BB4 @ =0x00000cd4 + adds r2, r5 + ldrb r0, [r0] + adds r2, r0 + ldrb r2, [r2] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [r6] + adds r0, r4 + ldr r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r0, _08094BD4 @ =sIsMonBeingMoved + ldrb r0, [r0] + cmp r0, 0 + beq _08094BE4 + ldr r0, [r6] + adds r0, r4 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + b _08094BE4 + .align 2, 0 +_08094BA4: .4byte gUnknown_83D34A0 +_08094BA8: .4byte gUnknown_83D34B8 +_08094BAC: .4byte 0x0000daca +_08094BB0: .4byte sPSSData +_08094BB4: .4byte 0x00000cd4 +_08094BB8: .4byte 0x0000dac7 +_08094BBC: .4byte 0x00000cd5 +_08094BC0: .4byte sBoxCursorArea +_08094BC4: .4byte sBoxCursorPosition +_08094BC8: .4byte gUnknown_83D350C +_08094BCC: .4byte gSprites +_08094BD0: .4byte sCanOnlyMove +_08094BD4: .4byte sIsMonBeingMoved +_08094BD8: + ldr r0, [r6] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + movs r1, 0 + str r1, [r0] +_08094BE4: + ldr r0, _08094BF8 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08094BFC + movs r3, 0xD + movs r4, 0x1 + b _08094C00 + .align 2, 0 +_08094BF8: .4byte sBoxCursorArea +_08094BFC: + movs r3, 0x15 + movs r4, 0x2 +_08094C00: + ldr r0, _08094C54 @ =gUnknown_83D3524 + movs r1, 0 + movs r2, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _08094C68 + ldr r5, _08094C58 @ =sPSSData + ldr r2, [r5] + ldr r3, _08094C5C @ =0x00000cb4 + adds r2, r3 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08094C60 @ =gSprites + adds r1, r0 + str r1, [r2] + lsls r3, r4, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r0, _08094C64 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08094C74 + ldr r0, [r5] + ldr r4, _08094C5C @ =0x00000cb4 + adds r0, r4 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + b _08094C74 + .align 2, 0 +_08094C54: .4byte gUnknown_83D3524 +_08094C58: .4byte sPSSData +_08094C5C: .4byte 0x00000cb4 +_08094C60: .4byte gSprites +_08094C64: .4byte sBoxCursorArea +_08094C68: + ldr r0, _08094C7C @ =sPSSData + ldr r0, [r0] + ldr r5, _08094C80 @ =0x00000cb4 + adds r0, r5 + movs r1, 0 + str r1, [r0] +_08094C74: + add sp, 0x2C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08094C7C: .4byte sPSSData +_08094C80: .4byte 0x00000cb4 + thumb_func_end sub_8094AD8 + + thumb_func_start sub_8094C84 +sub_8094C84: @ 8094C84 + push {lr} + ldr r2, _08094CBC @ =sCanOnlyMove + movs r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _08094C92 + movs r1, 0x1 +_08094C92: + strb r1, [r2] + ldr r0, _08094CC0 @ =sPSSData + ldr r0, [r0] + movs r3, 0xCB + lsls r3, 4 + adds r1, r0, r3 + ldr r3, [r1] + ldr r1, _08094CC4 @ =0x00000cd4 + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + ldrb r1, [r0] + lsls r1, 4 + ldrb r2, [r3, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + pop {r0} + bx r0 + .align 2, 0 +_08094CBC: .4byte sCanOnlyMove +_08094CC0: .4byte sPSSData +_08094CC4: .4byte 0x00000cd4 + thumb_func_end sub_8094C84 + + thumb_func_start sub_8094CC8 +sub_8094CC8: @ 8094CC8 + ldr r0, _08094CD0 @ =sBoxCursorPosition + ldrb r0, [r0] + bx lr + .align 2, 0 +_08094CD0: .4byte sBoxCursorPosition + thumb_func_end sub_8094CC8 + + thumb_func_start sub_8094CD4 +sub_8094CD4: @ 8094CD4 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + ldr r0, _08094D00 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _08094D08 + ldr r4, _08094D04 @ =sBoxCursorPosition + movs r0, 0 + ldrsb r0, [r4, r0] + movs r1, 0x6 + bl __modsi3 + strb r0, [r5] + movs r0, 0 + ldrsb r0, [r4, r0] + movs r1, 0x6 + bl __divsi3 + b _08094D0C + .align 2, 0 +_08094D00: .4byte sBoxCursorArea +_08094D04: .4byte sBoxCursorPosition +_08094D08: + movs r0, 0 + strb r0, [r5] +_08094D0C: + strb r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8094CD4 + + thumb_func_start sub_8094D14 +sub_8094D14: @ 8094D14 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08094D30 @ =sPSSData + ldr r0, [r0] + movs r2, 0xCB + lsls r2, 4 + adds r0, r2 + ldr r0, [r0] + bl StartSpriteAnim + pop {r0} + bx r0 + .align 2, 0 +_08094D30: .4byte sPSSData + thumb_func_end sub_8094D14 + + thumb_func_start sub_8094D34 +sub_8094D34: @ 8094D34 + ldr r0, _08094D3C @ =sMovingMonOrigBoxId + ldrb r0, [r0] + bx lr + .align 2, 0 +_08094D3C: .4byte sMovingMonOrigBoxId + thumb_func_end sub_8094D34 + + thumb_func_start sub_8094D40 +sub_8094D40: @ 8094D40 + ldr r0, _08094D5C @ =sPSSData + ldr r0, [r0] + movs r1, 0xCB + lsls r1, 4 + adds r0, r1 + ldr r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] + bx lr + .align 2, 0 +_08094D5C: .4byte sPSSData + thumb_func_end sub_8094D40 + + thumb_func_start sub_8094D60 +sub_8094D60: @ 8094D60 + push {lr} + ldr r0, _08094D7C @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _08094D78 + ldr r0, _08094D80 @ =sBoxCursorPosition + ldrb r1, [r0] + movs r0, 0 + bl sub_8095D44 +_08094D78: + pop {r0} + bx r0 + .align 2, 0 +_08094D7C: .4byte sBoxCursorArea +_08094D80: .4byte sBoxCursorPosition + thumb_func_end sub_8094D60 + + thumb_func_start sub_8094D84 +sub_8094D84: @ 8094D84 + push {lr} + ldr r0, _08094DA0 @ =sBoxCursorArea + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _08094D9C + ldr r0, _08094DA4 @ =sBoxCursorPosition + ldrb r1, [r0] + movs r0, 0 + bl sub_8095C84 +_08094D9C: + pop {r0} + bx r0 + .align 2, 0 +_08094DA0: .4byte sBoxCursorArea +_08094DA4: .4byte sBoxCursorPosition + thumb_func_end sub_8094D84 + + thumb_func_start sub_8094DA8 +sub_8094DA8: @ 8094DA8 + ldr r2, _08094DDC @ =sPSSData + ldr r0, [r2] + ldr r1, _08094DE0 @ =0x00000ca8 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r0, [r2] + ldr r3, _08094DE4 @ =0x00000ca9 + adds r0, r3 + strb r1, [r0] + ldr r0, [r2] + subs r3, 0x41 + adds r0, r3 + strb r1, [r0] + ldr r0, [r2] + ldr r1, _08094DE8 @ =0x00000c6d + adds r0, r1 + movs r1, 0xF + strb r1, [r0] + ldr r0, [r2] + adds r3, 0x6 + adds r0, r3 + movs r1, 0x5C + strh r1, [r0] + bx lr + .align 2, 0 +_08094DDC: .4byte sPSSData +_08094DE0: .4byte 0x00000ca8 +_08094DE4: .4byte 0x00000ca9 +_08094DE8: .4byte 0x00000c6d + thumb_func_end sub_8094DA8 + + thumb_func_start sub_8094DEC +sub_8094DEC: @ 8094DEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r4, _08094E40 @ =sPSSData + ldr r2, [r4] + ldr r5, _08094E44 @ =0x00000ca8 + adds r1, r2, r5 + ldrb r0, [r1] + cmp r0, 0x6 + bhi _08094E38 + adds r1, r0, 0 + lsls r1, 3 + movs r0, 0xC7 + lsls r0, 4 + adds r1, r0 + adds r1, r2, r1 + ldr r2, _08094E48 @ =gUnknown_83D353C + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + str r3, [r1, 0x4] + bl StringLength + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, [r4] + ldr r2, _08094E4C @ =0x00000ca9 + adds r0, r2 + ldrb r2, [r0] + cmp r1, r2 + bls _08094E2E + strb r1, [r0] +_08094E2E: + ldr r1, [r4] + adds r1, r5 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08094E38: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08094E40: .4byte sPSSData +_08094E44: .4byte 0x00000ca8 +_08094E48: .4byte gUnknown_83D353C +_08094E4C: .4byte 0x00000ca9 + thumb_func_end sub_8094DEC + + thumb_func_start sub_8094E50 +sub_8094E50: @ 8094E50 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08094E74 @ =sPSSData + ldr r1, [r0] + ldr r3, _08094E78 @ =0x00000ca8 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bcs _08094E80 + lsls r0, r2, 3 + ldr r2, _08094E7C @ =0x00000c74 + adds r1, r2 + adds r1, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + b _08094E84 + .align 2, 0 +_08094E74: .4byte sPSSData +_08094E78: .4byte 0x00000ca8 +_08094E7C: .4byte 0x00000c74 +_08094E80: + movs r0, 0x1 + negs r0, r0 +_08094E84: + pop {r1} + bx r1 + thumb_func_end sub_8094E50 + + thumb_func_start sub_8094E88 +sub_8094E88: @ 8094E88 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0xC + ldr r5, _08094F6C @ =sPSSData + ldr r1, [r5] + ldr r2, _08094F70 @ =0x00000ca9 + adds r0, r1, r2 + ldrb r0, [r0] + adds r0, 0x2 + subs r2, 0x3E + adds r1, r2 + movs r3, 0 + mov r10, r3 + strb r0, [r1] + ldr r1, [r5] + ldr r0, _08094F74 @ =0x00000ca8 + mov r8, r0 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 1 + ldr r3, _08094F78 @ =0x00000c6c + adds r1, r3 + strb r0, [r1] + ldr r1, [r5] + adds r2, r1, r2 + ldrb r2, [r2] + movs r0, 0x1D + subs r0, r2 + ldr r2, _08094F7C @ =0x00000c69 + adds r1, r2 + strb r0, [r1] + ldr r1, [r5] + adds r3, r1, r3 + ldrb r2, [r3] + movs r0, 0xF + subs r0, r2 + ldr r3, _08094F80 @ =0x00000c6a + adds r1, r3 + strb r0, [r1] + ldr r0, [r5] + ldr r1, _08094F84 @ =0x00000c68 + adds r0, r1 + bl AddWindow + ldr r1, [r5] + ldr r4, _08094F88 @ =0x00000cac + adds r1, r4 + movs r2, 0 + mov r9, r2 + strh r0, [r1] + lsls r0, 24 + lsrs r0, 24 + bl ClearWindowTilemap + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0xB + movs r3, 0xE + bl DrawStdFrameWithCustomTileAndPalette + ldr r2, [r5] + adds r0, r2, r4 + ldrb r0, [r0] + movs r6, 0x10 + str r6, [sp] + mov r3, r8 + adds r1, r2, r3 + ldrb r1, [r1] + str r1, [sp, 0x4] + movs r1, 0xC7 + lsls r1, 4 + adds r2, r1 + str r2, [sp, 0x8] + movs r1, 0x1 + movs r2, 0x8 + movs r3, 0x2 + bl PrintTextArray + ldr r1, [r5] + adds r4, r1, r4 + ldrb r0, [r4] + str r6, [sp] + add r1, r8 + ldrb r1, [r1] + str r1, [sp, 0x4] + mov r2, r10 + str r2, [sp, 0x8] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x2 + bl Menu_InitCursor + movs r0, 0 + bl ScheduleBgCopyTilemapToVram + ldr r0, [r5] + ldr r3, _08094F8C @ =0x00000caa + adds r0, r3 + mov r1, r9 + strb r1, [r0] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08094F6C: .4byte sPSSData +_08094F70: .4byte 0x00000ca9 +_08094F74: .4byte 0x00000ca8 +_08094F78: .4byte 0x00000c6c +_08094F7C: .4byte 0x00000c69 +_08094F80: .4byte 0x00000c6a +_08094F84: .4byte 0x00000c68 +_08094F88: .4byte 0x00000cac +_08094F8C: .4byte 0x00000caa + thumb_func_end sub_8094E88 + + thumb_func_start sub_8094F90 +sub_8094F90: @ 8094F90 + movs r0, 0 + bx lr + thumb_func_end sub_8094F90 + + thumb_func_start sub_8094F94 +sub_8094F94: @ 8094F94 + push {r4,r5,lr} + movs r5, 0x2 + negs r5, r5 + ldr r4, _08094FD0 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08094FEA + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08094FB6 + movs r0, 0x5 + bl PlaySE + adds r5, 0x1 +_08094FB6: + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08094FD4 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl Menu_MoveCursor + b _08094FF2 + .align 2, 0 +_08094FD0: .4byte gMain +_08094FD4: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08094FF2 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl Menu_MoveCursor + b _08094FF2 +_08094FEA: + bl Menu_GetCursorPos + lsls r0, 24 + lsrs r5, r0, 24 +_08094FF2: + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + beq _08094FFE + bl sub_8095024 +_08094FFE: + cmp r5, 0 + blt _08095010 + ldr r0, _0809501C @ =sPSSData + ldr r0, [r0] + lsls r1, r5, 3 + ldr r2, _08095020 @ =0x00000c74 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] +_08095010: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809501C: .4byte sPSSData +_08095020: .4byte 0x00000c74 + thumb_func_end sub_8094F94 + + thumb_func_start sub_8095024 +sub_8095024: @ 8095024 + push {r4,r5,lr} + ldr r5, _08095048 @ =sPSSData + ldr r0, [r5] + ldr r4, _0809504C @ =0x00000cac + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x1 + bl ClearStdWindowAndFrameToTransparent + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl RemoveWindow + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095048: .4byte sPSSData +_0809504C: .4byte 0x00000cac + thumb_func_end sub_8095024 + + thumb_func_start sub_8095050 +sub_8095050: @ 8095050 + push {r4,lr} + ldr r4, _08095088 @ =gUnknown_2039828 + ldr r0, _0809508C @ =0x00000974 + bl Alloc + str r0, [r4] + cmp r0, 0 + beq _0809509C + ldr r0, _08095090 @ =gUnknown_83D35D4 + bl AddWindow8Bit + adds r1, r0, 0 + ldr r0, _08095094 @ =sPSSData + ldr r0, [r0] + ldr r2, _08095098 @ =0x000021f0 + adds r0, r2 + strh r1, [r0] + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, 0xFF + beq _0809509C + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0 + bl FillWindowPixelBuffer + movs r0, 0x1 + b _0809509E + .align 2, 0 +_08095088: .4byte gUnknown_2039828 +_0809508C: .4byte 0x00000974 +_08095090: .4byte gUnknown_83D35D4 +_08095094: .4byte sPSSData +_08095098: .4byte 0x000021f0 +_0809509C: + movs r0, 0 +_0809509E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8095050 + + thumb_func_start sub_80950A4 +sub_80950A4: @ 80950A4 + push {lr} + ldr r0, _080950B8 @ =gUnknown_2039828 + ldr r0, [r0] + cmp r0, 0 + beq _080950B2 + bl Free +_080950B2: + pop {r0} + bx r0 + .align 2, 0 +_080950B8: .4byte gUnknown_2039828 + thumb_func_end sub_80950A4 + + thumb_func_start sub_80950BC +sub_80950BC: @ 80950BC + ldr r2, _080950CC @ =gUnknown_2039828 + ldr r1, [r2] + movs r3, 0 + strb r0, [r1] + ldr r0, [r2] + strb r3, [r0, 0x1] + bx lr + .align 2, 0 +_080950CC: .4byte gUnknown_2039828 + thumb_func_end sub_80950BC + + thumb_func_start sub_80950D0 +sub_80950D0: @ 80950D0 + push {lr} + ldr r0, _080950E8 @ =gUnknown_2039828 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08095130 + lsls r0, 2 + ldr r1, _080950EC @ =_080950F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080950E8: .4byte gUnknown_2039828 +_080950EC: .4byte _080950F0 + .align 2, 0 +_080950F0: + .4byte _08095108 + .4byte _0809510E + .4byte _08095114 + .4byte _0809511A + .4byte _08095120 + .4byte _08095126 +_08095108: + bl sub_8095138 + b _0809512A +_0809510E: + bl sub_8095234 + b _0809512A +_08095114: + bl sub_80952A0 + b _0809512A +_0809511A: + bl sub_8095314 + b _0809512A +_08095120: + bl sub_8095394 + b _0809512A +_08095126: + bl sub_80953BC +_0809512A: + lsls r0, 24 + lsrs r0, 24 + b _08095132 +_08095130: + movs r0, 0 +_08095132: + pop {r1} + bx r1 + thumb_func_end sub_80950D0 + + thumb_func_start sub_8095138 +sub_8095138: @ 8095138 + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _08095150 @ =gUnknown_2039828 + ldr r1, [r6] + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + beq _08095168 + cmp r0, 0x1 + bgt _08095154 + cmp r0, 0 + beq _0809515A + b _08095228 + .align 2, 0 +_08095150: .4byte gUnknown_2039828 +_08095154: + cmp r0, 0x2 + beq _08095214 + b _08095228 +_0809515A: + movs r0, 0 + bl HideBg + movs r0, 0x80 + bl LoadMonIconPalettesAt + b _080951F8 +_08095168: + adds r0, r1, 0x2 + adds r1, 0x3 + bl sub_8094CD4 + ldr r1, [r6] + ldrb r0, [r1, 0x2] + strb r0, [r1, 0x4] + ldr r1, [r6] + ldrb r0, [r1, 0x3] + strb r0, [r1, 0x5] + ldr r4, _08095204 @ =0xfffffc00 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + ldr r5, _08095208 @ =sPSSData + ldr r0, [r5] + ldr r4, _0809520C @ =0x000021f0 + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + bl FillWindowPixelBuffer8Bit + ldr r1, [r6] + ldrb r0, [r1, 0x2] + ldrb r1, [r1, 0x3] + bl sub_80956A4 + movs r0, 0 + movs r1, 0x4 + movs r2, 0x1 + bl SetBgAttribute + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl PutWindowTilemap + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0x3 + bl CopyWindowToVram8Bit + movs r0, 0xFC + lsls r0, 6 + ldr r2, _08095210 @ =0x00007fff + movs r1, 0x8 + bl BlendPalettes + movs r0, 0x2 + bl sub_8094D14 + movs r0, 0x8 + movs r1, 0x80 + bl SetGpuRegBits +_080951F8: + ldr r1, [r6] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _08095228 + .align 2, 0 +_08095204: .4byte 0xfffffc00 +_08095208: .4byte sPSSData +_0809520C: .4byte 0x000021f0 +_08095210: .4byte 0x00007fff +_08095214: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08095228 + movs r0, 0 + bl ShowBg + movs r0, 0 + b _0809522A +_08095228: + movs r0, 0x1 +_0809522A: + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8095138 + + thumb_func_start sub_8095234 +sub_8095234: @ 8095234 + push {r4,lr} + ldr r4, _0809524C @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _0809525E + cmp r0, 0x1 + bgt _08095250 + cmp r0, 0 + beq _08095256 + b _08095298 + .align 2, 0 +_0809524C: .4byte gUnknown_2039828 +_08095250: + cmp r0, 0x2 + beq _08095272 + b _08095298 +_08095256: + movs r0, 0 + bl HideBg + b _08095268 +_0809525E: + bl sub_8095A58 + movs r0, 0 + bl sub_8094D14 +_08095268: + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _08095298 +_08095272: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _08095298 + bl sub_8094D40 + movs r0, 0x3 + bl stdpal_get + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + movs r0, 0 + bl ShowBg + movs r0, 0 + b _0809529A +_08095298: + movs r0, 0x1 +_0809529A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8095234 + + thumb_func_start sub_80952A0 +sub_80952A0: @ 80952A0 + push {r4,lr} + ldr r4, _080952B4 @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080952B8 + cmp r0, 0x1 + beq _08095300 + b _0809530A + .align 2, 0 +_080952B4: .4byte gUnknown_2039828 +_080952B8: + bl sub_80924A8 + lsls r0, 24 + cmp r0, 0 + bne _0809530A + ldr r1, [r4] + adds r0, r1, 0x6 + adds r1, 0x7 + bl sub_8094CD4 + bl sub_8095520 + ldr r1, [r4] + ldrb r0, [r1, 0x6] + strb r0, [r1, 0x4] + ldr r1, [r4] + ldrb r0, [r1, 0x7] + strb r0, [r1, 0x5] + ldr r0, _080952F8 @ =sPSSData + ldr r0, [r0] + ldr r1, _080952FC @ =0x000021f0 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x2 + bl CopyWindowToVram8Bit + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _0809530A + .align 2, 0 +_080952F8: .4byte sPSSData +_080952FC: .4byte 0x000021f0 +_08095300: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + lsrs r0, 24 + b _0809530C +_0809530A: + movs r0, 0x1 +_0809530C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80952A0 + + thumb_func_start sub_8095314 +sub_8095314: @ 8095314 + push {r4,lr} + ldr r4, _0809532C @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _08095342 + cmp r0, 0x1 + bgt _08095330 + cmp r0, 0 + beq _08095336 + b _0809538C + .align 2, 0 +_0809532C: .4byte gUnknown_2039828 +_08095330: + cmp r0, 0x2 + beq _0809536E + b _0809538C +_08095336: + bl sub_80957C8 + bl sub_80958A0 + movs r0, 0 + b _08095360 +_08095342: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0809538C + movs r0, 0x3 + bl sub_8094D14 + movs r1, 0x80 + lsls r1, 1 + movs r0, 0 + movs r2, 0x8 + bl sub_8095780 + movs r0, 0x1 +_08095360: + bl sub_8092BAC + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _0809538C +_0809536E: + bl sub_8095790 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8092BF8 + lsls r0, 24 + lsrs r0, 24 + cmp r4, 0 + bne _0809538C + cmp r0, 0 + bne _0809538C + movs r0, 0 + b _0809538E +_0809538C: + movs r0, 0x1 +_0809538E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8095314 + + thumb_func_start sub_8095394 +sub_8095394: @ 8095394 + push {r4,lr} + bl sub_80924A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8095790 + lsls r0, 24 + lsrs r0, 24 + cmp r4, 0 + bne _080953B4 + cmp r0, 0 + bne _080953B4 + movs r0, 0 + b _080953B6 +_080953B4: + movs r0, 0x1 +_080953B6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8095394 + + thumb_func_start sub_80953BC +sub_80953BC: @ 80953BC + push {r4,lr} + ldr r4, _080953D4 @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + cmp r0, 0x1 + beq _080953FA + cmp r0, 0x1 + bgt _080953D8 + cmp r0, 0 + beq _080953E2 + b _0809546A + .align 2, 0 +_080953D4: .4byte gUnknown_2039828 +_080953D8: + cmp r0, 0x2 + beq _08095426 + cmp r0, 0x3 + beq _08095444 + b _0809546A +_080953E2: + bl sub_80959A8 + movs r1, 0xFF + lsls r1, 8 + movs r0, 0 + movs r2, 0x8 + bl sub_8095780 + movs r0, 0 + bl sub_8092BAC + b _0809543A +_080953FA: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0809546A + bl sub_8095790 + lsls r0, 24 + cmp r0, 0 + bne _0809546A + bl sub_8095918 + movs r0, 0x2 + bl sub_8094D14 + movs r0, 0x1 + bl sub_8092BAC + movs r0, 0 + bl HideBg + b _0809543A +_08095426: + bl sub_8092BF8 + lsls r0, 24 + cmp r0, 0 + bne _0809546A + movs r0, 0 + bl sub_8094D14 + bl sub_8095A58 +_0809543A: + ldr r1, [r4] + ldrb r0, [r1, 0x1] + adds r0, 0x1 + strb r0, [r1, 0x1] + b _0809546A +_08095444: + bl IsDma3ManagerBusyWithBgCopy + lsls r0, 24 + cmp r0, 0 + bne _0809546A + movs r0, 0x3 + bl stdpal_get + movs r1, 0xD0 + movs r2, 0x20 + bl LoadPalette + bl sub_8094D40 + movs r0, 0 + bl ShowBg + movs r0, 0 + b _0809546C +_0809546A: + movs r0, 0x1 +_0809546C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80953BC + + thumb_func_start sub_8095474 +sub_8095474: @ 8095474 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x1 + beq _080954B0 + cmp r0, 0x1 + bgt _0809548A + cmp r0, 0 + beq _08095494 + b _08095518 +_0809548A: + cmp r1, 0x2 + beq _080954D0 + cmp r1, 0x3 + beq _080954F0 + b _08095518 +_08095494: + ldr r0, _080954AC @ =gUnknown_2039828 + ldr r1, [r0] + ldrb r0, [r1, 0x9] + cmp r0, 0 + beq _080954FE + subs r0, 0x1 + strb r0, [r1, 0x9] + movs r1, 0x80 + lsls r1, 3 + movs r0, 0 + b _080954E4 + .align 2, 0 +_080954AC: .4byte gUnknown_2039828 +_080954B0: + ldr r0, _080954CC @ =gUnknown_2039828 + ldr r1, [r0] + ldrb r2, [r1, 0x9] + ldrb r0, [r1, 0xB] + adds r0, r2, r0 + cmp r0, 0x4 + bgt _080954FE + adds r0, r2, 0x1 + strb r0, [r1, 0x9] + movs r1, 0xFC + lsls r1, 8 + movs r0, 0 + b _080954E4 + .align 2, 0 +_080954CC: .4byte gUnknown_2039828 +_080954D0: + ldr r0, _080954EC @ =gUnknown_2039828 + ldr r1, [r0] + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _080954FE + subs r0, 0x1 + strb r0, [r1, 0x8] + movs r0, 0x80 + lsls r0, 3 + movs r1, 0 +_080954E4: + movs r2, 0x6 + bl sub_8095780 + b _08095518 + .align 2, 0 +_080954EC: .4byte gUnknown_2039828 +_080954F0: + ldr r0, _08095504 @ =gUnknown_2039828 + ldr r1, [r0] + ldrb r2, [r1, 0x8] + ldrb r0, [r1, 0xA] + adds r0, r2, r0 + cmp r0, 0x5 + ble _08095508 +_080954FE: + movs r0, 0 + b _0809551A + .align 2, 0 +_08095504: .4byte gUnknown_2039828 +_08095508: + adds r0, r2, 0x1 + strb r0, [r1, 0x8] + movs r0, 0xFC + lsls r0, 8 + movs r1, 0 + movs r2, 0x6 + bl sub_8095780 +_08095518: + movs r0, 0x1 +_0809551A: + pop {r1} + bx r1 + thumb_func_end sub_8095474 + + thumb_func_start sub_8095520 +sub_8095520: @ 8095520 + push {r4-r7,lr} + ldr r6, _080955C0 @ =gUnknown_2039828 + ldr r2, [r6] + ldrb r3, [r2, 0x2] + ldrb r5, [r2, 0x6] + subs r1, r3, r5 + cmp r1, 0 + bge _08095532 + negs r1, r1 +_08095532: + ldrb r0, [r2, 0x4] + subs r0, r3, r0 + cmp r0, 0 + bge _0809553C + negs r0, r0 +_0809553C: + subs r0, r1, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x7] + subs r3, r1, r0 + cmp r3, 0 + bge _0809554E + negs r3, r3 +_0809554E: + ldrb r2, [r2, 0x5] + subs r0, r1, r2 + cmp r0, 0 + bge _08095558 + negs r0, r0 +_08095558: + subs r0, r3, r0 + lsls r0, 16 + lsrs r7, r0, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r4, 0 + ble _0809556C + adds r0, r5, 0 + bl sub_80955C4 +_0809556C: + cmp r4, 0 + bge _08095588 + ldr r2, [r6] + ldrb r0, [r2, 0x4] + ldrb r1, [r2, 0x3] + ldrb r2, [r2, 0x5] + bl sub_8095634 + ldr r2, [r6] + ldrb r0, [r2, 0x6] + ldrb r1, [r2, 0x3] + ldrb r2, [r2, 0x5] + bl sub_80955C4 +_08095588: + lsls r0, r7, 16 + asrs r4, r0, 16 + cmp r4, 0 + ble _0809559C + ldr r2, [r6] + ldrb r0, [r2, 0x7] + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x4] + bl sub_80955FC +_0809559C: + cmp r4, 0 + bge _080955B8 + ldr r2, [r6] + ldrb r0, [r2, 0x5] + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x4] + bl sub_809566C + ldr r2, [r6] + ldrb r0, [r2, 0x7] + ldrb r1, [r2, 0x2] + ldrb r2, [r2, 0x4] + bl sub_80955FC +_080955B8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080955C0: .4byte gUnknown_2039828 + thumb_func_end sub_8095520 + + thumb_func_start sub_80955C4 +sub_80955C4: @ 80955C4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r4, 0 + lsls r2, 24 + lsrs r5, r2, 24 + adds r0, r5, 0 + cmp r4, r5 + bls _080955E2 + adds r4, r5, 0 + adds r5, r1, 0 + cmp r0, r5 + bhi _080955F4 +_080955E2: + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + bl sub_80956A4 + cmp r4, r5 + bls _080955E2 +_080955F4: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80955C4 + + thumb_func_start sub_80955FC +sub_80955FC: @ 80955FC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r4, 0 + lsls r2, 24 + lsrs r5, r2, 24 + adds r0, r5, 0 + cmp r4, r5 + bls _0809561A + adds r4, r5, 0 + adds r5, r1, 0 + cmp r0, r5 + bhi _0809562C +_0809561A: + adds r0, r4, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r6, 0 + bl sub_80956A4 + cmp r4, r5 + bls _0809561A +_0809562C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80955FC + + thumb_func_start sub_8095634 +sub_8095634: @ 8095634 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r4, 0 + lsls r2, 24 + lsrs r5, r2, 24 + adds r0, r5, 0 + cmp r4, r5 + bls _08095652 + adds r4, r5, 0 + adds r5, r1, 0 + cmp r0, r5 + bhi _08095664 +_08095652: + adds r1, r4, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + bl sub_809572C + cmp r4, r5 + bls _08095652 +_08095664: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8095634 + + thumb_func_start sub_809566C +sub_809566C: @ 809566C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r4, 0 + lsls r2, 24 + lsrs r5, r2, 24 + adds r0, r5, 0 + cmp r4, r5 + bls _0809568A + adds r4, r5, 0 + adds r5, r1, 0 + cmp r0, r5 + bhi _0809569C +_0809568A: + adds r0, r4, 0 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r4, r1, 24 + adds r1, r6, 0 + bl sub_809572C + cmp r4, r5 + bls _0809568A +_0809569C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_809566C + + thumb_func_start sub_80956A4 +sub_80956A4: @ 80956A4 + push {r4-r7,lr} + sub sp, 0x1C + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r7, r0, r1 + lsls r4, r7, 1 + adds r4, r6, r4 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x41 + bl GetCurrentBoxMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetCurrentBoxMonData + adds r1, r0, 0 + cmp r5, 0 + beq _0809571A + adds r0, r5, 0 + movs r2, 0x1 + bl GetMonIconPtr + adds r4, r0, 0 + adds r0, r5, 0 + bl GetValidMonIconPalIndex + adds r0, 0x8 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08095724 @ =sPSSData + ldr r1, [r1] + ldr r2, _08095728 @ =0x000021f0 + adds r1, r2 + ldrb r3, [r1] + movs r2, 0x20 + str r2, [sp] + str r2, [sp, 0x4] + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + str r1, [sp, 0x8] + lsls r1, r7, 3 + str r1, [sp, 0xC] + str r2, [sp, 0x10] + str r2, [sp, 0x14] + str r0, [sp, 0x18] + adds r0, r3, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl BlitBitmapRectToWindow4BitTo8Bit +_0809571A: + add sp, 0x1C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095724: .4byte sPSSData +_08095728: .4byte 0x000021f0 + thumb_func_end sub_80956A4 + + thumb_func_start sub_809572C +sub_809572C: @ 809572C + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r5, r0, r1 + lsls r0, r5, 1 + adds r0, r4, r0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x41 + bl GetCurrentBoxMonData + lsls r0, 16 + cmp r0, 0 + beq _0809576E + ldr r0, _08095778 @ =sPSSData + ldr r0, [r0] + ldr r1, _0809577C @ =0x000021f0 + adds r0, r1 + ldrb r0, [r0] + lsls r2, r4, 1 + adds r2, r4 + lsls r2, 3 + lsls r3, r5, 3 + movs r1, 0x20 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0 + bl FillWindowPixelRect8Bit +_0809576E: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095778: .4byte sPSSData +_0809577C: .4byte 0x000021f0 + thumb_func_end sub_809572C + + thumb_func_start sub_8095780 +sub_8095780: @ 8095780 + ldr r3, _0809578C @ =gUnknown_2039828 + ldr r3, [r3] + strh r0, [r3, 0xC] + strh r1, [r3, 0xE] + strh r2, [r3, 0x10] + bx lr + .align 2, 0 +_0809578C: .4byte gUnknown_2039828 + thumb_func_end sub_8095780 + + thumb_func_start sub_8095790 +sub_8095790: @ 8095790 + push {r4,lr} + ldr r4, _080957C4 @ =gUnknown_2039828 + ldr r1, [r4] + ldrh r0, [r1, 0x10] + cmp r0, 0 + beq _080957BA + ldrh r1, [r1, 0xC] + movs r0, 0 + movs r2, 0x1 + bl ChangeBgX + ldr r0, [r4] + ldrh r1, [r0, 0xE] + movs r0, 0 + movs r2, 0x1 + bl ChangeBgY + ldr r1, [r4] + ldrh r0, [r1, 0x10] + subs r0, 0x1 + strh r0, [r1, 0x10] +_080957BA: + ldr r0, [r4] + ldrb r0, [r0, 0x10] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080957C4: .4byte gUnknown_2039828 + thumb_func_end sub_8095790 + + thumb_func_start sub_80957C8 +sub_80957C8: @ 80957C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _0809589C @ =gUnknown_2039828 + ldr r1, [r4] + ldrb r0, [r1, 0x4] + ldrb r2, [r1, 0x2] + cmp r0, r2 + bls _080957E0 + adds r0, r2, 0 +_080957E0: + strb r0, [r1, 0x8] + ldr r1, [r4] + ldrb r0, [r1, 0x5] + ldrb r2, [r1, 0x3] + cmp r0, r2 + bls _080957EE + adds r0, r2, 0 +_080957EE: + strb r0, [r1, 0x9] + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x4] + subs r0, r1, r0 + cmp r0, 0 + bge _080957FE + negs r0, r0 +_080957FE: + adds r0, 0x1 + strb r0, [r2, 0xA] + ldr r2, [r4] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x5] + subs r0, r1, r0 + cmp r0, 0 + bge _08095810 + negs r0, r0 +_08095810: + adds r0, 0x1 + strb r0, [r2, 0xB] + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r6, 0 + ldr r0, [r4] + ldrb r2, [r0, 0x8] + ldrb r1, [r0, 0xA] + adds r2, r1 + mov r8, r2 + ldrb r1, [r0, 0x9] + ldrb r0, [r0, 0xB] + adds r0, r1 + mov r9, r0 + adds r2, r1, 0 + cmp r2, r9 + bge _0809588C +_08095838: + lsls r0, r2, 1 + adds r0, r2 + ldr r3, _0809589C @ =gUnknown_2039828 + ldr r1, [r3] + lsls r0, 1 + ldrb r3, [r1, 0x8] + adds r0, r3 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r4, [r1, 0x8] + adds r7, r2, 0x1 + cmp r4, r8 + bge _08095886 + mov r0, r8 + subs r4, r0, r4 +_08095856: + mov r0, r10 + adds r1, r5, 0 + bl GetBoxedMonPtr + adds r1, r0, 0 + ldr r2, _0809589C @ =gUnknown_2039828 + ldr r0, [r2] + lsls r2, r6, 2 + adds r2, r6 + lsls r2, 4 + adds r0, r2 + adds r0, 0x14 + movs r2, 0x50 + bl memcpy + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + subs r4, 0x1 + cmp r4, 0 + bne _08095856 +_08095886: + adds r2, r7, 0 + cmp r2, r9 + blt _08095838 +_0809588C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809589C: .4byte gUnknown_2039828 + thumb_func_end sub_80957C8 + + thumb_func_start sub_80958A0 +sub_80958A0: @ 80958A0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _08095914 @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r2, [r0, 0x8] + ldrb r1, [r0, 0xA] + adds r7, r2, r1 + ldrb r1, [r0, 0x9] + ldrb r0, [r0, 0xB] + adds r1, r0 + mov r9, r1 + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, [r4] + ldrb r2, [r0, 0x9] + cmp r2, r9 + bge _08095908 +_080958CC: + lsls r0, r2, 1 + adds r0, r2 + ldr r1, _08095914 @ =gUnknown_2039828 + ldr r1, [r1] + lsls r0, 1 + ldrb r3, [r1, 0x8] + adds r0, r3 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r4, [r1, 0x8] + adds r6, r2, 0x1 + cmp r4, r7 + bge _08095902 + subs r4, r7, r4 +_080958E8: + adds r0, r5, 0 + bl sub_809081C + mov r0, r8 + adds r1, r5, 0 + bl ZeroBoxMonAt + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + subs r4, 0x1 + cmp r4, 0 + bne _080958E8 +_08095902: + adds r2, r6, 0 + cmp r2, r9 + blt _080958CC +_08095908: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095914: .4byte gUnknown_2039828 + thumb_func_end sub_80958A0 + + thumb_func_start sub_8095918 +sub_8095918: @ 8095918 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _080959A4 @ =gUnknown_2039828 + ldr r0, [r0] + ldrb r2, [r0, 0x8] + ldrb r1, [r0, 0xA] + adds r2, r1 + mov r8, r2 + ldrb r1, [r0, 0x9] + ldrb r0, [r0, 0xB] + adds r0, r1 + mov r10, r0 + movs r6, 0 + adds r2, r1, 0 + cmp r2, r10 + bge _08095994 +_0809593E: + lsls r0, r2, 1 + adds r0, r2 + ldr r3, _080959A4 @ =gUnknown_2039828 + ldr r1, [r3] + lsls r0, 1 + ldrb r4, [r1, 0x8] + adds r0, r4 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r4, [r1, 0x8] + adds r7, r2, 0x1 + cmp r4, r8 + bge _0809598E + mov r9, r3 + mov r0, r8 + subs r4, r0, r4 +_0809595E: + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 4 + adds r1, 0x14 + mov r2, r9 + ldr r0, [r2] + adds r0, r1 + movs r1, 0x5 + bl GetBoxMonData + cmp r0, 0 + beq _0809597C + adds r0, r5, 0 + bl sub_80901EC +_0809597C: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + subs r4, 0x1 + cmp r4, 0 + bne _0809595E +_0809598E: + adds r2, r7, 0 + cmp r2, r10 + blt _0809593E +_08095994: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080959A4: .4byte gUnknown_2039828 + thumb_func_end sub_8095918 + + thumb_func_start sub_80959A8 +sub_80959A8: @ 80959A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, _08095A54 @ =gUnknown_2039828 + ldr r0, [r4] + ldrb r2, [r0, 0x8] + ldrb r1, [r0, 0xA] + adds r2, r1 + mov r10, r2 + ldrb r1, [r0, 0x9] + ldrb r0, [r0, 0xB] + adds r1, r0 + str r1, [sp] + bl StorageGetCurrentBox + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r7, 0 + ldr r0, [r4] + ldrb r3, [r0, 0x9] + ldr r0, [sp] + cmp r3, r0 + bge _08095A42 +_080959DE: + lsls r0, r3, 1 + adds r0, r3 + ldr r2, _08095A54 @ =gUnknown_2039828 + ldr r1, [r2] + lsls r0, 1 + ldrb r4, [r1, 0x8] + adds r0, r4 + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r5, [r1, 0x8] + adds r3, 0x1 + mov r9, r3 + cmp r5, r10 + bge _08095A3A + mov r8, r2 + mov r0, r10 + subs r5, r0, r5 +_08095A00: + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 4 + adds r4, r0, 0 + adds r4, 0x14 + mov r1, r8 + ldr r0, [r1] + adds r0, r4 + movs r1, 0x5 + bl GetBoxMonData + cmp r0, 0 + beq _08095A28 + mov r0, r8 + ldr r2, [r0] + adds r2, r4 + ldr r0, [sp, 0x4] + adds r1, r6, 0 + bl SetBoxMonAt +_08095A28: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + subs r5, 0x1 + cmp r5, 0 + bne _08095A00 +_08095A3A: + mov r3, r9 + ldr r1, [sp] + cmp r3, r1 + blt _080959DE +_08095A42: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095A54: .4byte gUnknown_2039828 + thumb_func_end sub_80959A8 + + thumb_func_start sub_8095A58 +sub_8095A58: @ 8095A58 + push {lr} + sub sp, 0x8 + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0 + movs r1, 0x4 + movs r2, 0 + bl SetBgAttribute + movs r0, 0x8 + movs r1, 0x80 + bl ClearGpuRegBits + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0x8 + pop {r0} + bx r0 + thumb_func_end sub_8095A58 + + thumb_func_start sub_8095AA0 +sub_8095AA0: @ 8095AA0 + ldr r0, _08095AB8 @ =gUnknown_2039828 + ldr r2, [r0] + ldrb r1, [r2, 0x3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldrb r2, [r2, 0x2] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_08095AB8: .4byte gUnknown_2039828 + thumb_func_end sub_8095AA0 + + thumb_func_start sub_8095ABC +sub_8095ABC: @ 8095ABC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _08095B28 @ =gUnknown_2039828 + ldr r0, [r0] + ldrb r2, [r0, 0x8] + ldrb r1, [r0, 0xA] + adds r2, r1 + mov r9, r2 + ldrb r1, [r0, 0x9] + ldrb r0, [r0, 0xB] + adds r0, r1, r0 + str r0, [sp] + movs r7, 0 + adds r6, r1, 0 + cmp r6, r0 + bge _08095B4A + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 1 + mov r8, r0 +_08095AEC: + ldr r2, _08095B28 @ =gUnknown_2039828 + ldr r1, [r2] + ldrb r0, [r1, 0x8] + add r0, r8 + lsls r0, 24 + lsrs r5, r0, 24 + ldrb r4, [r1, 0x8] + cmp r4, r9 + bge _08095B3E + mov r10, r2 +_08095B00: + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 4 + adds r1, 0x14 + mov r2, r10 + ldr r0, [r2] + adds r0, r1 + movs r1, 0x5 + bl GetBoxMonData + cmp r0, 0 + beq _08095B2C + adds r0, r5, 0 + movs r1, 0x5 + bl GetCurrentBoxMonData + cmp r0, 0 + beq _08095B2C + movs r0, 0 + b _08095B4C + .align 2, 0 +_08095B28: .4byte gUnknown_2039828 +_08095B2C: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x1 + cmp r4, r9 + blt _08095B00 +_08095B3E: + movs r0, 0x6 + add r8, r0 + adds r6, 0x1 + ldr r2, [sp] + cmp r6, r2 + blt _08095AEC +_08095B4A: + movs r0, 0x1 +_08095B4C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8095ABC + + thumb_func_start sub_8095B5C +sub_8095B5C: @ 8095B5C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r3, _08095C58 @ =sPSSData + ldr r0, [r3] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095C3C + ldr r0, _08095C5C @ =gUnknown_3000FE8 + str r0, [sp, 0x18] + ldr r1, _08095C60 @ =0xffff0000 + add r2, sp, 0x18 + ldr r0, [r2, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + str r0, [r2, 0x4] + mov r1, sp + ldr r0, _08095C64 @ =gUnknown_83D3728 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + movs r7, 0 + mov r9, r2 + mov r8, r3 + movs r0, 0 + mov r10, r0 +_08095B9C: + adds r6, r7, 0x7 + lsls r1, r6, 16 + mov r2, r9 + ldrh r0, [r2, 0x4] + orrs r0, r1 + str r0, [r2, 0x4] + mov r0, r9 + bl LoadCompressedSpriteSheet + mov r4, r9 + ldrh r0, [r4, 0x6] + bl GetSpriteTileStartByTag + mov r5, r8 + ldr r1, [r5] + lsls r5, r7, 4 + ldr r2, _08095C68 @ =0x000021f8 + adds r1, r2 + adds r1, r5 + lsls r0, 16 + lsrs r0, 11 + ldr r4, _08095C6C @ =0x06010000 + adds r0, r4 + str r0, [r1] + ldr r0, _08095C70 @ =0xffffdacb + adds r4, r7, r0 + lsls r0, r4, 16 + lsrs r0, 16 + bl AllocSpritePalette + mov r2, r8 + ldr r1, [r2] + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08095C74 @ =0x000021fc + adds r1, r2 + strh r0, [r1] + ldrh r0, [r1] + lsls r0, 4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + strh r0, [r1] + mov r0, sp + strh r6, [r0] + strh r4, [r0, 0x2] + movs r1, 0 + movs r2, 0 + movs r3, 0xB + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r4, r8 + ldr r2, [r4] + ldr r6, _08095C78 @ =0x000021f4 + adds r2, r6 + adds r2, r5 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08095C7C @ =gSprites + adds r1, r0 + str r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r4] + adds r0, r5 + movs r1, 0x88 + lsls r1, 6 + adds r0, r1 + mov r2, r10 + strb r2, [r0] + adds r7, 0x1 + cmp r7, 0x2 + ble _08095B9C +_08095C3C: + ldr r0, _08095C58 @ =sPSSData + ldr r0, [r0] + ldr r4, _08095C80 @ =0x00002224 + adds r0, r4 + movs r1, 0 + strh r1, [r0] + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095C58: .4byte sPSSData +_08095C5C: .4byte gUnknown_3000FE8 +_08095C60: .4byte 0xffff0000 +_08095C64: .4byte gUnknown_83D3728 +_08095C68: .4byte 0x000021f8 +_08095C6C: .4byte 0x06010000 +_08095C70: .4byte 0xffffdacb +_08095C74: .4byte 0x000021fc +_08095C78: .4byte 0x000021f4 +_08095C7C: .4byte gSprites +_08095C80: .4byte 0x00002224 + thumb_func_end sub_8095B5C + + thumb_func_start sub_8095C84 +sub_8095C84: @ 8095C84 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _08095CB8 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095D36 + mov r0, r8 + adds r1, r7, 0 + bl sub_8096210 + cmp r0, 0 + bne _08095D36 + mov r0, r8 + cmp r0, 0 + beq _08095CBC + cmp r0, 0x1 + beq _08095CD2 + b _08095D36 + .align 2, 0 +_08095CB8: .4byte sPSSData +_08095CBC: + adds r0, r7, 0 + movs r1, 0x5 + bl GetCurrentBoxMonData + cmp r0, 0 + beq _08095D36 + adds r0, r7, 0 + movs r1, 0xC + bl GetCurrentBoxMonData + b _08095CF0 +_08095CD2: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08095D40 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _08095D36 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData +_08095CF0: + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08095D36 + adds r0, r4, 0 + bl GetItemIconPic + adds r6, r0, 0 + adds r0, r4, 0 + bl GetItemIconPalette + adds r5, r0, 0 + bl sub_80961D8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + mov r1, r8 + adds r2, r7, 0 + bl sub_80962F0 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_8096408 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8096624 +_08095D36: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095D40: .4byte gPlayerParty + thumb_func_end sub_8095C84 + + thumb_func_start sub_8095D44 +sub_8095D44: @ 8095D44 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _08095D80 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095D7A + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8096258 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_80964E8 +_08095D7A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095D80: .4byte sPSSData + thumb_func_end sub_8095D44 + + thumb_func_start sub_8095D84 +sub_8095D84: @ 8095D84 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + ldr r0, _08095DE8 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095E14 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8096258 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + mov r0, sp + strh r1, [r0] + adds r0, r4, 0 + movs r1, 0x3 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_80964E8 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_80962F0 + cmp r6, 0 + bne _08095DEC + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetCurrentBoxMonData + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8090850 + b _08095E04 + .align 2, 0 +_08095DE8: .4byte sPSSData +_08095DEC: + movs r0, 0x64 + muls r0, r7 + ldr r1, _08095E1C @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8090C84 +_08095E04: + ldr r0, _08095E20 @ =sPSSData + ldr r0, [r0] + ldr r2, _08095E24 @ =0x00000ce2 + adds r1, r0, r2 + ldrh r1, [r1] + ldr r2, _08095E28 @ =0x00002224 + adds r0, r2 + strh r1, [r0] +_08095E14: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095E1C: .4byte gPlayerParty +_08095E20: .4byte sPSSData +_08095E24: .4byte 0x00000ce2 +_08095E28: .4byte 0x00002224 + thumb_func_end sub_8095D84 + + thumb_func_start sub_8095E2C +sub_8095E2C: @ 8095E2C + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r5, 0 + bl GetItemIconPic + mov r8, r0 + adds r0, r5, 0 + bl GetItemIconPalette + adds r6, r0, 0 + bl sub_80961D8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + mov r1, r8 + adds r2, r6, 0 + bl sub_8096408 + adds r0, r4, 0 + movs r1, 0x6 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80964E8 + adds r0, r4, 0 + movs r1, 0x2 + movs r2, 0 + bl sub_80962F0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8096624 + ldr r0, _08095E98 @ =sPSSData + ldr r0, [r0] + ldr r1, _08095E9C @ =0x00002224 + adds r0, r1 + strh r5, [r0] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095E98: .4byte sPSSData +_08095E9C: .4byte 0x00002224 + thumb_func_end sub_8095E2C + + thumb_func_start sub_8095EA0 +sub_8095EA0: @ 8095EA0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, _08095F08 @ =sPSSData + mov r8, r0 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095F5E + mov r0, r9 + adds r1, r7, 0 + bl sub_8096258 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0 + bl sub_80964E8 + mov r1, r9 + cmp r1, 0 + bne _08095F10 + adds r0, r7, 0 + movs r1, 0xC + bl GetCurrentBoxMonData + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r8 + ldr r2, [r0] + ldr r4, _08095F0C @ =0x00002224 + adds r2, r4 + adds r0, r7, 0 + movs r1, 0xC + bl SetCurrentBoxMonData + mov r1, r8 + ldr r0, [r1] + adds r0, r4 + b _08095F3C + .align 2, 0 +_08095F08: .4byte sPSSData +_08095F0C: .4byte 0x00002224 +_08095F10: + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _08095F6C @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + mov r0, r8 + ldr r2, [r0] + ldr r5, _08095F70 @ =0x00002224 + adds r2, r5 + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + mov r1, r8 + ldr r0, [r1] + adds r0, r5 +_08095F3C: + strh r6, [r0] + movs r0, 0x2 + movs r1, 0 + bl sub_8096258 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + movs r1, 0x4 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x4 + mov r2, r9 + adds r3, r7, 0 + bl sub_80964E8 +_08095F5E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095F6C: .4byte gPlayerParty +_08095F70: .4byte 0x00002224 + thumb_func_end sub_8095EA0 + + thumb_func_start sub_8095F74 +sub_8095F74: @ 8095F74 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + mov r8, r5 + ldr r6, _08095FCC @ =sPSSData + ldr r0, [r6] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08095FF4 + movs r0, 0x2 + movs r1, 0 + bl sub_8096258 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x4 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r7, 0 + adds r3, r5, 0 + bl sub_80964E8 + cmp r7, 0 + bne _08095FD4 + ldr r2, [r6] + ldr r0, _08095FD0 @ =0x00002224 + adds r2, r0 + adds r0, r5, 0 + movs r1, 0xC + bl SetCurrentBoxMonData + adds r0, r5, 0 + movs r1, 0 + bl sub_8090850 + b _08095FF4 + .align 2, 0 +_08095FCC: .4byte sPSSData +_08095FD0: .4byte 0x00002224 +_08095FD4: + movs r0, 0x64 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r1, _08096000 @ =gPlayerParty + adds r0, r1 + ldr r2, [r6] + ldr r1, _08096004 @ =0x00002224 + adds r2, r1 + movs r1, 0xC + bl SetMonData + mov r0, r8 + movs r1, 0 + bl sub_8090C84 +_08095FF4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096000: .4byte gPlayerParty +_08096004: .4byte 0x00002224 + thumb_func_end sub_8095F74 + + thumb_func_start sub_8096008 +sub_8096008: @ 8096008 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + adds r7, r5, 0 + ldr r0, _08096060 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _0809607C + movs r1, 0 + mov r0, sp + strh r1, [r0] + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8096258 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0 + adds r2, r6, 0 + adds r3, r5, 0 + bl sub_80964E8 + cmp r6, 0 + bne _08096064 + adds r0, r5, 0 + movs r1, 0xC + mov r2, sp + bl SetCurrentBoxMonData + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8090850 + b _0809607C + .align 2, 0 +_08096060: .4byte sPSSData +_08096064: + movs r0, 0x64 + muls r0, r7 + ldr r1, _08096084 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + mov r2, sp + bl SetMonData + adds r0, r7, 0 + movs r1, 0x1 + bl sub_8090C84 +_0809607C: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096084: .4byte gPlayerParty + thumb_func_end sub_8096008 + + thumb_func_start sub_8096088 +sub_8096088: @ 8096088 + push {r4,lr} + ldr r0, _080960BC @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _080960B6 + movs r0, 0x2 + movs r1, 0 + bl sub_8096258 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + movs r1, 0x5 + bl sub_80964B8 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0 + bl sub_80964E8 +_080960B6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080960BC: .4byte sPSSData + thumb_func_end sub_8096088 + + thumb_func_start sub_80960C0 +sub_80960C0: @ 80960C0 + push {r4,lr} + ldr r0, _08096108 @ =sPSSData + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0x3 + bne _08096100 + movs r4, 0 +_080960CE: + ldr r0, _08096108 @ =sPSSData + ldr r1, [r0] + lsls r0, r4, 4 + adds r1, r0 + movs r2, 0x88 + lsls r2, 6 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _080960FA + subs r2, 0x2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080960FA + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0x7 + movs r2, 0x2 + movs r3, 0 + bl sub_80964E8 +_080960FA: + adds r4, 0x1 + cmp r4, 0x2 + ble _080960CE +_08096100: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096108: .4byte sPSSData + thumb_func_end sub_80960C0 + + thumb_func_start sub_809610C +sub_809610C: @ 809610C + push {r4,r5,lr} + movs r5, 0 + ldr r0, _08096148 @ =sPSSData + ldr r0, [r0] + ldr r1, _0809614C @ =0x000021f4 + adds r4, r0, r1 + adds r3, r0, 0 +_0809611A: + movs r1, 0x88 + lsls r1, 6 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08096158 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x28 + ands r0, r1 + cmp r0, 0x8 + beq _08096144 + ldr r1, [r2, 0x1C] + ldr r0, _08096150 @ =SpriteCallbackDummy + cmp r1, r0 + beq _08096158 + ldr r0, _08096154 @ =sub_80969BC + cmp r1, r0 + beq _08096158 +_08096144: + movs r0, 0x1 + b _08096164 + .align 2, 0 +_08096148: .4byte sPSSData +_0809614C: .4byte 0x000021f4 +_08096150: .4byte SpriteCallbackDummy +_08096154: .4byte sub_80969BC +_08096158: + adds r4, 0x10 + adds r3, 0x10 + adds r5, 0x1 + cmp r5, 0x2 + ble _0809611A + movs r0, 0 +_08096164: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809610C + + thumb_func_start sub_809616C +sub_809616C: @ 809616C + push {lr} + ldr r0, _08096190 @ =sPSSData + ldr r1, [r0] + ldrb r0, [r1, 0x1] + cmp r0, 0x3 + bne _080961A0 + movs r2, 0 + ldr r0, _08096194 @ =0x000021fe + adds r1, r0 +_0809617E: + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _08096198 + ldrb r0, [r1] + cmp r0, 0x2 + bne _08096198 + movs r0, 0x1 + b _080961A2 + .align 2, 0 +_08096190: .4byte sPSSData +_08096194: .4byte 0x000021fe +_08096198: + adds r1, 0x10 + adds r2, 0x1 + cmp r2, 0x2 + ble _0809617E +_080961A0: + movs r0, 0 +_080961A2: + pop {r1} + bx r1 + thumb_func_end sub_809616C + + thumb_func_start sub_80961A8 +sub_80961A8: @ 80961A8 + push {lr} + ldr r0, _080961BC @ =sPSSData + ldr r0, [r0] + ldr r1, _080961C0 @ =0x00002224 + adds r0, r1 + ldrh r0, [r0] + bl ItemId_GetName + pop {r1} + bx r1 + .align 2, 0 +_080961BC: .4byte sPSSData +_080961C0: .4byte 0x00002224 + thumb_func_end sub_80961A8 + + thumb_func_start sub_80961C4 +sub_80961C4: @ 80961C4 + ldr r0, _080961D0 @ =sPSSData + ldr r0, [r0] + ldr r1, _080961D4 @ =0x00002224 + adds r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_080961D0: .4byte sPSSData +_080961D4: .4byte 0x00002224 + thumb_func_end sub_80961C4 + + thumb_func_start sub_80961D8 +sub_80961D8: @ 80961D8 + push {r4,r5,lr} + movs r2, 0 + ldr r5, _080961F8 @ =sPSSData + movs r3, 0x88 + lsls r3, 6 + movs r4, 0x1 +_080961E4: + ldr r0, [r5] + lsls r1, r2, 4 + adds r0, r1 + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _080961FC + strb r4, [r1] + adds r0, r2, 0 + b _08096208 + .align 2, 0 +_080961F8: .4byte sPSSData +_080961FC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080961E4 + movs r0, 0x3 +_08096208: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80961D8 + + thumb_func_start sub_8096210 +sub_8096210: @ 8096210 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r3, 0 + ldr r0, _08096244 @ =sPSSData + ldr r2, [r0] +_08096220: + movs r5, 0x88 + lsls r5, 6 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, 0 + beq _08096248 + subs r5, 0x2 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r4 + bne _08096248 + adds r5, 0x1 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, r1 + bne _08096248 + movs r0, 0x1 + b _08096252 + .align 2, 0 +_08096244: .4byte sPSSData +_08096248: + adds r2, 0x10 + adds r3, 0x1 + cmp r3, 0x2 + ble _08096220 + movs r0, 0 +_08096252: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8096210 + + thumb_func_start sub_8096258 +sub_8096258: @ 8096258 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + movs r3, 0 + ldr r0, _08096290 @ =sPSSData + ldr r1, [r0] +_08096268: + lsls r0, r3, 4 + adds r2, r1, r0 + movs r6, 0x88 + lsls r6, 6 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _08096294 + subs r6, 0x2 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r5 + bne _08096294 + adds r6, 0x1 + adds r0, r2, r6 + ldrb r0, [r0] + cmp r0, r4 + bne _08096294 + adds r0, r3, 0 + b _080962A0 + .align 2, 0 +_08096290: .4byte sPSSData +_08096294: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x2 + bls _08096268 + movs r0, 0x3 +_080962A0: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8096258 + + thumb_func_start sub_80962A8 +sub_80962A8: @ 80962A8 + push {r4-r6,lr} + adds r5, r0, 0 + movs r2, 0 + ldr r0, _080962D4 @ =sPSSData + ldr r3, [r0] + ldr r0, _080962D8 @ =0x000021f4 + adds r4, r3, r0 + movs r6, 0x88 + lsls r6, 6 +_080962BA: + lsls r1, r2, 4 + adds r0, r3, r1 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _080962DC + adds r0, r4, r1 + ldr r0, [r0] + cmp r0, r5 + bne _080962DC + adds r0, r2, 0 + b _080962E8 + .align 2, 0 +_080962D4: .4byte sPSSData +_080962D8: .4byte 0x000021f4 +_080962DC: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _080962BA + movs r0, 0x3 +_080962E8: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80962A8 + + thumb_func_start sub_80962F0 +sub_80962F0: @ 80962F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + cmp r5, 0x2 + bhi _080963EE + cmp r1, 0 + beq _0809631C + cmp r1, 0x1 + beq _08096378 + ldr r4, _08096318 @ =sPSSData + lsls r3, r5, 4 + b _080963D8 + .align 2, 0 +_08096318: .4byte sPSSData +_0809631C: + adds r0, r7, 0 + movs r1, 0x6 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + ldr r6, _08096370 @ =sPSSData + ldr r2, [r6] + lsls r5, 4 + ldr r1, _08096374 @ =0x000021f4 + adds r2, r1 + adds r2, r5 + ldr r3, [r2] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r1, 0x70 + strh r1, [r3, 0x20] + ldr r3, [r2] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, 0x38 + strh r1, [r3, 0x22] + ldr r2, [r2] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + adds r4, r6, 0 + adds r3, r5, 0 + b _080963D8 + .align 2, 0 +_08096370: .4byte sPSSData +_08096374: .4byte 0x000021f4 +_08096378: + cmp r7, 0 + bne _080963A0 + ldr r4, _08096398 @ =sPSSData + ldr r0, [r4] + lsls r3, r5, 4 + ldr r1, _0809639C @ =0x000021f4 + adds r0, r1 + adds r0, r3 + ldr r2, [r0] + movs r1, 0x74 + strh r1, [r2, 0x20] + ldr r1, [r0] + movs r0, 0x4C + strh r0, [r1, 0x22] + b _080963C0 + .align 2, 0 +_08096398: .4byte sPSSData +_0809639C: .4byte 0x000021f4 +_080963A0: + ldr r4, _080963F8 @ =sPSSData + ldr r0, [r4] + lsls r3, r5, 4 + ldr r1, _080963FC @ =0x000021f4 + adds r0, r1 + adds r0, r3 + ldr r2, [r0] + movs r1, 0xA4 + strh r1, [r2, 0x20] + ldr r2, [r0] + subs r1, r7, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x1C + strh r0, [r2, 0x22] +_080963C0: + ldr r0, [r4] + ldr r1, _080963FC @ =0x000021f4 + adds r0, r1 + adds r0, r3 + ldr r2, [r0] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x5] +_080963D8: + ldr r0, [r4] + adds r0, r3 + ldr r1, _08096400 @ =0x000021fe + adds r0, r1 + mov r1, r8 + strb r1, [r0] + ldr r0, [r4] + adds r0, r3 + ldr r1, _08096404 @ =0x000021ff + adds r0, r1 + strb r7, [r0] +_080963EE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080963F8: .4byte sPSSData +_080963FC: .4byte 0x000021f4 +_08096400: .4byte 0x000021fe +_08096404: .4byte 0x000021ff + thumb_func_end sub_80962F0 + + thumb_func_start sub_8096408 +sub_8096408: @ 8096408 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + mov r8, r1 + mov r9, r2 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bhi _08096490 + movs r0, 0 + str r0, [sp] + ldr r4, _080964A0 @ =sPSSData + ldr r1, [r4] + ldr r6, _080964A4 @ =0x000042bc + adds r1, r6 + ldr r2, _080964A8 @ =0x01000080 + mov r0, sp + bl CpuFastSet + ldr r1, [r4] + ldr r5, _080964AC @ =0x000022bc + adds r1, r5 + mov r0, r8 + bl LZ77UnCompWram + lsls r7, 4 + mov r8, r7 + adds r7, r4, 0 + movs r4, 0x2 +_08096446: + ldr r1, [r7] + adds r0, r1, r5 + adds r1, r6 + movs r2, 0x18 + bl CpuFastSet + adds r6, 0x80 + adds r5, 0x60 + subs r4, 0x1 + cmp r4, 0 + bge _08096446 + ldr r5, _080964A0 @ =sPSSData + ldr r1, [r5] + ldr r4, _080964A4 @ =0x000042bc + adds r0, r1, r4 + ldr r2, _080964B0 @ =0x000021f8 + adds r1, r2 + add r1, r8 + ldr r1, [r1] + movs r2, 0x80 + bl CpuFastSet + ldr r1, [r5] + adds r1, r4 + mov r0, r9 + bl LZ77UnCompWram + ldr r0, [r5] + adds r4, r0, r4 + add r0, r8 + ldr r1, _080964B4 @ =0x000021fc + adds r0, r1 + ldrh r1, [r0] + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette +_08096490: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080964A0: .4byte sPSSData +_080964A4: .4byte 0x000042bc +_080964A8: .4byte 0x01000080 +_080964AC: .4byte 0x000022bc +_080964B0: .4byte 0x000021f8 +_080964B4: .4byte 0x000021fc + thumb_func_end sub_8096408 + + thumb_func_start sub_80964B8 +sub_80964B8: @ 80964B8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + cmp r2, 0x2 + bhi _080964DA + ldr r0, _080964E0 @ =sPSSData + ldr r0, [r0] + lsls r1, r2, 4 + ldr r2, _080964E4 @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + adds r1, r3, 0 + bl StartSpriteAffineAnim +_080964DA: + pop {r0} + bx r0 + .align 2, 0 +_080964E0: .4byte sPSSData +_080964E4: .4byte 0x000021f4 + thumb_func_end sub_80964B8 + + thumb_func_start sub_80964E8 +sub_80964E8: @ 80964E8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r0, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r3, 24 + cmp r4, 0x2 + bls _08096500 + b _08096612 +_08096500: + cmp r0, 0x7 + bls _08096506 + b _08096612 +_08096506: + lsls r0, 2 + ldr r1, _08096510 @ =_08096514 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096510: .4byte _08096514 + .align 2, 0 +_08096514: + .4byte _08096534 + .4byte _08096558 + .4byte _0809657C + .4byte _080965A8 + .4byte _080965D4 + .4byte _08096612 + .4byte _08096612 + .4byte _08096600 +_08096534: + ldr r0, _0809654C @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _08096550 @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] + strh r4, [r1, 0x2E] + ldr r1, [r0] + ldr r0, _08096554 @ =sub_809692C + b _08096610 + .align 2, 0 +_0809654C: .4byte sPSSData +_08096550: .4byte 0x000021f4 +_08096554: .4byte sub_809692C +_08096558: + ldr r0, _08096570 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _08096574 @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r2, [r0] + movs r1, 0 + strh r1, [r2, 0x2E] + ldr r1, [r0] + ldr r0, _08096578 @ =sub_8096958 + b _08096610 + .align 2, 0 +_08096570: .4byte sPSSData +_08096574: .4byte 0x000021f4 +_08096578: .4byte sub_8096958 +_0809657C: + ldr r0, _0809659C @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _080965A0 @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r2, [r0] + movs r1, 0 + strh r1, [r2, 0x2E] + ldr r1, [r0] + strh r5, [r1, 0x3A] + ldr r1, [r0] + strh r3, [r1, 0x3C] + ldr r1, [r0] + ldr r0, _080965A4 @ =sub_80969F4 + b _08096610 + .align 2, 0 +_0809659C: .4byte sPSSData +_080965A0: .4byte 0x000021f4 +_080965A4: .4byte sub_80969F4 +_080965A8: + ldr r0, _080965C8 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _080965CC @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r2, [r0] + movs r1, 0 + strh r1, [r2, 0x2E] + ldr r2, [r0] + ldr r1, _080965D0 @ =sub_8096A74 + str r1, [r2, 0x1C] + strh r5, [r2, 0x3A] + ldr r0, [r0] + strh r3, [r0, 0x3C] + b _08096612 + .align 2, 0 +_080965C8: .4byte sPSSData +_080965CC: .4byte 0x000021f4 +_080965D0: .4byte sub_8096A74 +_080965D4: + ldr r0, _080965F4 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _080965F8 @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r2, [r0] + movs r1, 0 + strh r1, [r2, 0x2E] + ldr r1, [r0] + strh r5, [r1, 0x3A] + ldr r1, [r0] + strh r3, [r1, 0x3C] + ldr r1, [r0] + ldr r0, _080965FC @ =sub_8096B10 + b _08096610 + .align 2, 0 +_080965F4: .4byte sPSSData +_080965F8: .4byte 0x000021f4 +_080965FC: .4byte sub_8096B10 +_08096600: + ldr r0, _08096618 @ =sPSSData + ldr r0, [r0] + lsls r1, r4, 4 + ldr r2, _0809661C @ =0x000021f4 + adds r0, r2 + adds r0, r1 + ldr r1, [r0] + ldr r0, _08096620 @ =sub_8096BAC +_08096610: + str r0, [r1, 0x1C] +_08096612: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096618: .4byte sPSSData +_0809661C: .4byte 0x000021f4 +_08096620: .4byte sub_8096BAC + thumb_func_end sub_80964E8 + + thumb_func_start sub_8096624 +sub_8096624: @ 8096624 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r2, 0x2 + bhi _08096666 + ldr r1, _0809666C @ =sPSSData + ldr r0, [r1] + lsls r2, 4 + adds r0, r2 + movs r3, 0x88 + lsls r3, 6 + adds r0, r3 + strb r4, [r0] + ldr r0, [r1] + ldr r1, _08096670 @ =0x000021f4 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] + movs r3, 0 + cmp r4, 0 + bne _08096654 + movs r3, 0x1 +_08096654: + adds r2, r0, 0 + adds r2, 0x3E + lsls r3, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_08096666: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809666C: .4byte sPSSData +_08096670: .4byte 0x000021f4 + thumb_func_end sub_8096624 + + thumb_func_start GetItemIconPic +GetItemIconPic: @ 8096674 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0 + bl GetItemIconGfxPtr + pop {r1} + bx r1 + thumb_func_end GetItemIconPic + + thumb_func_start GetItemIconPalette +GetItemIconPalette: @ 8096684 + push {lr} + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl GetItemIconGfxPtr + pop {r1} + bx r1 + thumb_func_end GetItemIconPalette + + thumb_func_start sub_8096694 +sub_8096694: @ 8096694 + push {r4,lr} + sub sp, 0x14 + bl sub_809616C + lsls r0, 24 + cmp r0, 0 + beq _080966B4 + ldr r0, _080966AC @ =sPSSData + ldr r0, [r0] + ldr r1, _080966B0 @ =0x00002224 + b _080966BA + .align 2, 0 +_080966AC: .4byte sPSSData +_080966B0: .4byte 0x00002224 +_080966B4: + ldr r0, _080966EC @ =sPSSData + ldr r0, [r0] + ldr r1, _080966F0 @ =0x00000ce2 +_080966BA: + adds r0, r1 + ldrh r0, [r0] + bl ItemId_GetDescription + adds r4, r0, 0 + movs r0, 0x2 + movs r1, 0x11 + bl FillWindowPixelBuffer + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + str r0, [sp, 0x10] + movs r0, 0x2 + movs r1, 0x2 + adds r2, r4, 0 + movs r3, 0x2 + bl AddTextPrinterParameterized5 + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080966EC: .4byte sPSSData +_080966F0: .4byte 0x00000ce2 + thumb_func_end sub_8096694 + + thumb_func_start sub_80966F4 +sub_80966F4: @ 80966F4 + push {lr} + ldr r0, _0809671C @ =sPSSData + ldr r0, [r0] + ldr r1, _08096720 @ =0x00002226 + adds r0, r1 + movs r1, 0x19 + strh r1, [r0] + ldr r1, _08096724 @ =gUnknown_83D35DC + movs r3, 0xD2 + lsls r3, 1 + movs r0, 0 + movs r2, 0x80 + bl LoadBgTiles + movs r0, 0 + bl sub_8096898 + pop {r0} + bx r0 + .align 2, 0 +_0809671C: .4byte sPSSData +_08096720: .4byte 0x00002226 +_08096724: .4byte gUnknown_83D35DC + thumb_func_end sub_80966F4 + + thumb_func_start sub_8096728 +sub_8096728: @ 8096728 + push {r4,r5,lr} + sub sp, 0x10 + ldr r0, _08096740 @ =sPSSData + ldr r0, [r0] + ldr r2, _08096744 @ =0x00002226 + adds r1, r0, r2 + ldrh r0, [r1] + cmp r0, 0 + bne _08096748 + movs r0, 0 + b _080967AE + .align 2, 0 +_08096740: .4byte sPSSData +_08096744: .4byte 0x00002226 +_08096748: + subs r0, 0x1 + strh r0, [r1] + ldrh r1, [r1] + movs r0, 0x19 + subs r5, r0, r1 + movs r4, 0 + cmp r4, r5 + bge _08096798 +_08096758: + movs r0, 0 + movs r1, 0xA + bl GetBgAttribute + adds r1, r0, 0 + ldr r0, _080967B8 @ =sPSSData + ldr r0, [r0] + ldr r2, _080967BC @ =0x00002226 + adds r0, r2 + adds r1, 0x14 + ldrh r0, [r0] + adds r1, r0 + adds r1, r4 + lsls r1, 16 + lsrs r1, 16 + lsls r2, r4, 24 + lsrs r2, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x8 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + movs r0, 0x19 + str r0, [sp, 0xC] + movs r0, 0 + movs r3, 0xC + bl WriteSequenceToBgTilemapBuffer + adds r4, 0x1 + cmp r4, r5 + blt _08096758 +_08096798: + adds r0, r5, 0 + bl sub_8096898 + ldr r0, _080967B8 @ =sPSSData + ldr r0, [r0] + ldr r1, _080967BC @ =0x00002226 + adds r0, r1 + ldrh r1, [r0] + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_080967AE: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080967B8: .4byte sPSSData +_080967BC: .4byte 0x00002226 + thumb_func_end sub_8096728 + + thumb_func_start sub_80967C0 +sub_80967C0: @ 80967C0 + push {r4,r5,lr} + sub sp, 0x10 + ldr r5, _080967D8 @ =sPSSData + ldr r0, [r5] + ldr r4, _080967DC @ =0x00002226 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x19 + bne _080967E0 + movs r0, 0 + b _08096886 + .align 2, 0 +_080967D8: .4byte sPSSData +_080967DC: .4byte 0x00002226 +_080967E0: + cmp r0, 0 + bne _080967FC + movs r0, 0x1 + str r0, [sp] + movs r0, 0xA + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r2, 0x19 + movs r3, 0xB + bl FillBgTilemapBufferRect +_080967FC: + ldr r1, [r5] + adds r1, r4 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldrh r1, [r1] + movs r0, 0x19 + subs r5, r0, r1 + movs r4, 0 + cmp r4, r5 + bge _08096852 +_08096812: + movs r0, 0 + movs r1, 0xA + bl GetBgAttribute + adds r1, r0, 0 + ldr r0, _08096890 @ =sPSSData + ldr r0, [r0] + ldr r2, _08096894 @ =0x00002226 + adds r0, r2 + adds r1, 0x14 + ldrh r0, [r0] + adds r1, r0 + adds r1, r4 + lsls r1, 16 + lsrs r1, 16 + lsls r2, r4, 24 + lsrs r2, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x8 + str r0, [sp, 0x4] + movs r0, 0xF + str r0, [sp, 0x8] + movs r0, 0x19 + str r0, [sp, 0xC] + movs r0, 0 + movs r3, 0xC + bl WriteSequenceToBgTilemapBuffer + adds r4, 0x1 + cmp r4, r5 + blt _08096812 +_08096852: + adds r0, r5, 0 + bl sub_8096898 + lsls r2, r5, 24 + lsrs r2, 24 + movs r0, 0x1 + str r0, [sp] + movs r0, 0xA + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r3, 0xB + bl FillBgTilemapBufferRect + ldr r0, _08096890 @ =sPSSData + ldr r0, [r0] + ldr r1, _08096894 @ =0x00002226 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x19 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_08096886: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08096890: .4byte sPSSData +_08096894: .4byte 0x00002226 + thumb_func_end sub_80967C0 + + thumb_func_start sub_8096898 +sub_8096898: @ 8096898 + push {r4-r7,lr} + sub sp, 0xC + adds r7, r0, 0 + cmp r7, 0 + beq _080968D0 + movs r1, 0xD2 + lsls r1, 1 + lsls r4, r7, 24 + lsrs r4, 24 + str r4, [sp] + movs r6, 0x1 + str r6, [sp, 0x4] + movs r5, 0xF + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0 + movs r3, 0xB + bl FillBgTilemapBufferRect + ldr r1, _08096920 @ =0x000009a4 + str r4, [sp] + str r6, [sp, 0x4] + str r5, [sp, 0x8] + movs r0, 0 + movs r2, 0 + movs r3, 0x14 + bl FillBgTilemapBufferRect +_080968D0: + ldr r1, _08096924 @ =0x000001a5 + lsls r5, r7, 24 + lsrs r5, 24 + movs r4, 0x1 + str r4, [sp] + movs r0, 0x8 + str r0, [sp, 0x4] + movs r6, 0xF + str r6, [sp, 0x8] + movs r0, 0 + adds r2, r5, 0 + movs r3, 0xC + bl FillBgTilemapBufferRect + movs r1, 0xD3 + lsls r1, 1 + str r4, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + adds r2, r5, 0 + movs r3, 0xB + bl FillBgTilemapBufferRect + ldr r1, _08096928 @ =0x000001a7 + str r4, [sp] + str r4, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0 + adds r2, r5, 0 + movs r3, 0x14 + bl FillBgTilemapBufferRect + movs r0, 0 + bl ScheduleBgCopyTilemapToVram + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096920: .4byte 0x000009a4 +_08096924: .4byte 0x000001a5 +_08096928: .4byte 0x000001a7 + thumb_func_end sub_8096898 + + thumb_func_start sub_809692C +sub_809692C: @ 809692C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0809694C + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8096624 + ldr r0, _08096954 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0809694C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096954: .4byte SpriteCallbackDummy + thumb_func_end sub_809692C + + thumb_func_start sub_8096958 +sub_8096958: @ 8096958 + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _0809696A + cmp r1, 0x1 + beq _08096986 + b _080969B4 +_0809696A: + ldrh r0, [r3, 0x20] + lsls r0, 4 + strh r0, [r3, 0x30] + ldrh r0, [r3, 0x22] + lsls r0, 4 + strh r0, [r3, 0x32] + movs r0, 0xA + strh r0, [r3, 0x34] + movs r0, 0x15 + strh r0, [r3, 0x36] + strh r1, [r3, 0x38] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] +_08096986: + ldrh r1, [r3, 0x30] + ldrh r0, [r3, 0x34] + subs r1, r0 + strh r1, [r3, 0x30] + ldrh r0, [r3, 0x32] + ldrh r2, [r3, 0x36] + subs r0, r2 + strh r0, [r3, 0x32] + lsls r1, 16 + asrs r1, 20 + strh r1, [r3, 0x20] + lsls r0, 16 + asrs r0, 20 + strh r0, [r3, 0x22] + ldrh r0, [r3, 0x38] + adds r0, 0x1 + strh r0, [r3, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _080969B4 + ldr r0, _080969B8 @ =sub_80969BC + str r0, [r3, 0x1C] +_080969B4: + pop {r0} + bx r0 + .align 2, 0 +_080969B8: .4byte sub_80969BC + thumb_func_end sub_8096958 + + thumb_func_start sub_80969BC +sub_80969BC: @ 80969BC + ldr r1, _080969F0 @ =sPSSData + ldr r3, [r1] + movs r1, 0xCB + lsls r1, 4 + adds r3, r1 + ldr r1, [r3] + ldrh r1, [r1, 0x20] + adds r1, 0x4 + strh r1, [r0, 0x20] + ldr r2, [r3] + ldrh r1, [r2, 0x26] + ldrh r2, [r2, 0x22] + adds r1, r2 + adds r1, 0x8 + strh r1, [r0, 0x22] + ldr r1, [r3] + ldrb r1, [r1, 0x5] + movs r2, 0xC + ands r2, r1 + ldrb r3, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, 0x5] + bx lr + .align 2, 0 +_080969F0: .4byte sPSSData + thumb_func_end sub_80969BC + + thumb_func_start sub_80969F4 +sub_80969F4: @ 80969F4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08096A06 + cmp r1, 0x1 + beq _08096A22 + b _08096A6A +_08096A06: + ldrh r0, [r4, 0x20] + lsls r0, 4 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + lsls r0, 4 + strh r0, [r4, 0x32] + movs r0, 0xA + strh r0, [r4, 0x34] + movs r0, 0x15 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08096A22: + ldrh r0, [r4, 0x34] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + ldrh r2, [r4, 0x32] + adds r1, r2 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _08096A6A + adds r0, r4, 0 + bl sub_80962A8 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + bl sub_80962F0 + ldr r0, _08096A70 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_08096A6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096A70: .4byte SpriteCallbackDummy + thumb_func_end sub_80969F4 + + thumb_func_start sub_8096A74 +sub_8096A74: @ 8096A74 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08096A86 + cmp r1, 0x1 + beq _08096AA2 + b _08096B00 +_08096A86: + ldrh r0, [r4, 0x20] + lsls r0, 4 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + lsls r0, 4 + strh r0, [r4, 0x32] + movs r0, 0xA + strh r0, [r4, 0x34] + movs r0, 0x15 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08096AA2: + ldrh r1, [r4, 0x30] + ldrh r0, [r4, 0x34] + subs r1, r0 + strh r1, [r4, 0x30] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + subs r0, r2 + strh r0, [r4, 0x32] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x20] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x22] + ldr r1, _08096B08 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _08096B00 + adds r0, r4, 0 + bl sub_80962A8 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + bl sub_80962F0 + movs r0, 0 + strh r0, [r4, 0x24] + ldr r0, _08096B0C @ =sub_80969BC + str r0, [r4, 0x1C] +_08096B00: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096B08: .4byte gSineTable +_08096B0C: .4byte sub_80969BC + thumb_func_end sub_8096A74 + + thumb_func_start sub_8096B10 +sub_8096B10: @ 8096B10 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08096B22 + cmp r1, 0x1 + beq _08096B3E + b _08096B9E +_08096B22: + ldrh r0, [r4, 0x20] + lsls r0, 4 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + lsls r0, 4 + strh r0, [r4, 0x32] + movs r0, 0xA + strh r0, [r4, 0x34] + movs r0, 0x15 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_08096B3E: + ldrh r0, [r4, 0x34] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + ldrh r2, [r4, 0x32] + adds r1, r2 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x22] + ldr r1, _08096BA4 @ =gSineTable + movs r2, 0x38 + ldrsh r0, [r4, r2] + lsls r0, 4 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + negs r0, r0 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _08096B9E + adds r0, r4, 0 + bl sub_80962A8 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x3C] + lsls r2, 24 + lsrs r2, 24 + bl sub_80962F0 + ldr r0, _08096BA8 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x24] +_08096B9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096BA4: .4byte gSineTable +_08096BA8: .4byte SpriteCallbackDummy + thumb_func_end sub_8096B10 + + thumb_func_start sub_8096BAC +sub_8096BAC: @ 8096BAC + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x22] + subs r0, 0x8 + strh r0, [r2, 0x22] + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r3, 0x26 + ldrsh r1, [r2, r3] + adds r0, r1 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _08096BDC + ldr r0, _08096BE0 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + adds r0, r2, 0 + bl sub_80962A8 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8096624 +_08096BDC: + pop {r0} + bx r0 + .align 2, 0 +_08096BE0: .4byte SpriteCallbackDummy + thumb_func_end sub_8096BAC + + thumb_func_start sub_8096BE4 +sub_8096BE4: @ 8096BE4 + ldr r3, _08096BF4 @ =gUnknown_203982C + str r0, [r3] + str r1, [r0] + movs r1, 0 + strb r2, [r0, 0x5] + strb r1, [r0, 0x4] + bx lr + .align 2, 0 +_08096BF4: .4byte gUnknown_203982C + thumb_func_end sub_8096BE4 + + thumb_func_start sub_8096BF8 +sub_8096BF8: @ 8096BF8 + push {r4,r5,lr} + ldr r2, _08096C3C @ =gUnknown_203982C + ldr r1, [r2] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _08096C36 + movs r4, 0 + ldrb r1, [r1, 0x4] + cmp r4, r1 + bcs _08096C2E + adds r5, r2, 0 +_08096C0E: + ldr r0, [r5] + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + ldr r0, [r0] + adds r0, r1 + ldr r1, [r0, 0x10] + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, [r5] + ldrb r0, [r0, 0x4] + cmp r4, r0 + bcc _08096C0E +_08096C2E: + ldr r0, _08096C3C @ =gUnknown_203982C + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x4] +_08096C36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096C3C: .4byte gUnknown_203982C + thumb_func_end sub_8096BF8 + + thumb_func_start sub_8096C40 +sub_8096C40: @ 8096C40 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r9, r0 + mov r10, r3 + ldr r0, [sp, 0x24] + ldr r3, [sp, 0x28] + ldr r4, [sp, 0x2C] + ldr r5, [sp, 0x30] + ldr r6, [sp, 0x34] + lsls r1, 16 + lsrs r1, 16 + mov r12, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp] + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _08096CC0 @ =gUnknown_203982C + ldr r2, [r0] + ldrb r0, [r2, 0x4] + adds r1, r0, 0 + ldrb r7, [r2, 0x5] + cmp r1, r7 + bcs _08096CC8 + adds r0, 0x1 + strb r0, [r2, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, [r2] + adds r1, r0 + lsls r0, r4, 1 + strh r0, [r1, 0x8] + ldr r2, [sp] + lsls r0, r2, 5 + add r0, r12 + lsls r0, 1 + add r0, r9 + str r0, [r1, 0x4] + adds r0, r3, 0 + muls r0, r6 + add r0, r8 + lsls r0, 1 + add r0, r10 + str r0, [r1] + strh r5, [r1, 0xC] + strh r6, [r1, 0xA] + ldr r0, _08096CC4 @ =sub_8096CDC + str r0, [r1, 0x10] + movs r0, 0x1 + b _08096CCA + .align 2, 0 +_08096CC0: .4byte gUnknown_203982C +_08096CC4: .4byte sub_8096CDC +_08096CC8: + movs r0, 0 +_08096CCA: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8096C40 + + thumb_func_start sub_8096CDC +sub_8096CDC: @ 8096CDC + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + b _08096D06 +_08096CE4: + ldr r0, [r4] + ldr r1, [r4, 0x4] + ldrh r2, [r4, 0x8] + lsrs r2, 1 + bl CpuSet + ldr r0, [r4, 0x4] + adds r0, 0x40 + str r0, [r4, 0x4] + ldrh r1, [r4, 0xA] + lsls r1, 1 + ldr r0, [r4] + adds r0, r1 + str r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08096D06: + ldrh r0, [r4, 0xC] + cmp r5, r0 + bcc _08096CE4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8096CDC + + thumb_func_start sub_8096D14 +sub_8096D14: @ 8096D14 + push {r4-r7,lr} + mov r12, r0 + ldr r0, [sp, 0x14] + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _08096D60 @ =gUnknown_203982C + ldr r2, [r0] + ldrb r0, [r2, 0x4] + adds r1, r0, 0 + ldrb r7, [r2, 0x5] + cmp r1, r7 + bcs _08096D68 + adds r0, 0x1 + strb r0, [r2, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, [r2] + adds r1, r0 + lsls r0, r3, 1 + strh r0, [r1, 0x8] + lsls r0, r4, 5 + adds r0, r6 + lsls r0, 1 + add r0, r12 + str r0, [r1, 0x4] + strh r5, [r1, 0xC] + ldr r0, _08096D64 @ =sub_8096D70 + str r0, [r1, 0x10] + movs r0, 0x1 + b _08096D6A + .align 2, 0 +_08096D60: .4byte gUnknown_203982C +_08096D64: .4byte sub_8096D70 +_08096D68: + movs r0, 0 +_08096D6A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8096D14 + + thumb_func_start sub_8096D70 +sub_8096D70: @ 8096D70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r0, 0 + movs r0, 0 + ldrh r1, [r6, 0xC] + cmp r0, r1 + bcs _08096DFE + movs r7, 0x80 + lsls r7, 5 + mov r5, sp + ldr r2, _08096DBC @ =0x040000d4 + mov r8, r2 + movs r1, 0x81 + lsls r1, 24 + mov r10, r1 +_08096D96: + ldr r2, [r6, 0x4] + ldrh r3, [r6, 0x8] + mov r12, r2 + adds r0, 0x1 + mov r9, r0 + cmp r3, r7 + bhi _08096DC0 + movs r0, 0 + strh r0, [r5] + mov r2, sp + mov r0, r8 + str r2, [r0] + mov r1, r12 + str r1, [r0, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 + mov r1, r8 + b _08096DE8 + .align 2, 0 +_08096DBC: .4byte 0x040000d4 +_08096DC0: + movs r4, 0 + strh r4, [r5] + ldr r1, _08096E10 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _08096E14 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r7 + subs r3, r7 + cmp r3, r7 + bhi _08096DC0 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 +_08096DE8: + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, r12 + adds r0, 0x40 + str r0, [r6, 0x4] + mov r1, r9 + lsls r0, r1, 16 + lsrs r0, 16 + ldrh r2, [r6, 0xC] + cmp r0, r2 + bcc _08096D96 +_08096DFE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096E10: .4byte 0x040000d4 +_08096E14: .4byte 0x81000800 + thumb_func_end sub_8096D70 + + .align 2, 0 @ Don't pad with nop. diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index c636651f3..9ac9eff5d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -8,10 +8,10 @@ u8 *GetBoxNamePtr(u8 boxNumber); struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 monPosition); -void SetBoxMonNickFromAnyBox(u8 boxId, u8 monPosition, u8 * newNick); +void SetBoxMonNickAt(u8 boxId, u8 monPosition, const u8 *newNick); void CompactPartySlots(void); -u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); -void sub_808BCB4(u8 boxId, u8 monPosition); +u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, s32 request); +void ZeroBoxMonAt(u8 boxId, u8 monPosition); void sub_808CE60(void); void ResetPokemonStorageSystem(void); u8 StorageGetCurrentBox(void); diff --git a/ld_script.txt b/ld_script.txt index 094bf1c88..d131f8e9d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -128,7 +128,8 @@ SECTIONS { src/option_menu.o(.text); src/pokedex.o(.text); src/trainer_card.o(.text); - asm/pokemon_storage_system.o(.text); + src/pokemon_storage_system.o(.text); + asm/pokemon_storage_system_2.o(.text); src/pokemon_icon.o(.text); src/script_movement.o(.text); src/fldeff_cut.o(.text); diff --git a/src/field_specials.c b/src/field_specials.c index 5be7a4d1c..aa95f87a0 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -442,7 +442,7 @@ bool8 IsThereRoomInAnyBoxForMorePokemon(void) { for (j = 0; j < IN_BOX_COUNT; j++) { - if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE) + if (GetBoxMonDataAt(i, j, MON_DATA_SPECIES) == SPECIES_NONE) return TRUE; } } @@ -1642,7 +1642,7 @@ void ChangeBoxPokemonNickname(void) static void ChangeBoxPokemonNickname_CB(void) { - SetBoxMonNickFromAnyBox(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos, gStringVar2); + SetBoxMonNickAt(gSpecialVar_MonBoxId, gSpecialVar_MonBoxPos, gStringVar2); CB2_ReturnToFieldContinueScriptPlayMapMusic(); } diff --git a/src/pokemon.c b/src/pokemon.c index f1f7834b1..641c7cb0f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3806,7 +3806,7 @@ static bool8 IsPokemonStorageFull(void) for (i = 0; i < 14; i++) for (j = 0; j < 30; j++) - if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SPECIES) == SPECIES_NONE) + if (GetBoxMonDataAt(i, j, MON_DATA_SPECIES) == SPECIES_NONE) return FALSE; return TRUE; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c new file mode 100644 index 000000000..b81cf20c6 --- /dev/null +++ b/src/pokemon_storage_system.c @@ -0,0 +1,189 @@ +#include "global.h" +#include "gflib.h" +#include "pokemon_storage_system.h" +#include "constants/species.h" + +enum +{ + WALLPAPER_FOREST, + WALLPAPER_CITY, + WALLPAPER_DESERT, + WALLPAPER_SAVANNA, + WALLPAPER_CRAG, + WALLPAPER_VOLCANO, + WALLPAPER_SNOW, + WALLPAPER_CAVE, + WALLPAPER_BEACH, + WALLPAPER_SEAFLOOR, + WALLPAPER_RIVER, + WALLPAPER_SKY, + WALLPAPER_POLKADOT, + WALLPAPER_POKECENTER, + WALLPAPER_MACHINE, + WALLPAPER_PLAIN, + WALLPAPER_COUNT +}; + +void BackupPokemonStorage(struct PokemonStorage * dest) +{ + *dest = *gPokemonStoragePtr; +} + +void RestorePokemonStorage(struct PokemonStorage * src) +{ + *gPokemonStoragePtr = *src; +} + +// Functions here are general utility functions. +u8 StorageGetCurrentBox(void) +{ + return gPokemonStoragePtr->currentBox; +} + +void SetCurrentBox(u8 boxId) +{ + if (boxId < TOTAL_BOXES_COUNT) + gPokemonStoragePtr->currentBox = boxId; +} + +u32 GetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + return GetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], request); + else + return 0; +} + +void SetBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, const void *value) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + SetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], request, value); +} + +u32 GetCurrentBoxMonData(u8 boxPosition, s32 request) +{ + return GetBoxMonDataAt(gPokemonStoragePtr->currentBox, boxPosition, request); +} + +void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value) +{ + SetBoxMonDataAt(gPokemonStoragePtr->currentBox, boxPosition, request, value); +} + +void GetBoxMonNickAt(u8 boxId, u8 boxPosition, u8 *dst) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + GetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], MON_DATA_NICKNAME, dst); + else + *dst = EOS; +} + +void SetBoxMonNickAt(u8 boxId, u8 boxPosition, const u8 *nick) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + SetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], MON_DATA_NICKNAME, nick); +} + +u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + return GetBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition], request, dst); + else + return 0; +} + +void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *src) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + gPokemonStoragePtr->boxes[boxId][boxPosition] = *src; +} + +void CopyBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon *dst) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + *dst = gPokemonStoragePtr->boxes[boxId][boxPosition]; +} + +void CreateBoxMonAt(u8 boxId, u8 boxPosition, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 personality, u8 otIDType, u32 otID) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + { + CreateBoxMon(&gPokemonStoragePtr->boxes[boxId][boxPosition], + species, + level, + fixedIV, + hasFixedPersonality, personality, + otIDType, otID); + } +} + +void ZeroBoxMonAt(u8 boxId, u8 boxPosition) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + ZeroBoxMonData(&gPokemonStoragePtr->boxes[boxId][boxPosition]); +} + +void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon *dst) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + BoxMonToMon(&gPokemonStoragePtr->boxes[boxId][boxPosition], dst); +} + +struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 boxPosition) +{ + if (boxId < TOTAL_BOXES_COUNT && boxPosition < IN_BOX_COUNT) + return &gPokemonStoragePtr->boxes[boxId][boxPosition]; + else + return NULL; +} + +u8 *GetBoxNamePtr(u8 boxId) +{ + if (boxId < TOTAL_BOXES_COUNT) + return gPokemonStoragePtr->boxNames[boxId]; + else + return NULL; +} + +u8 GetBoxWallpaper(u8 boxId) +{ + if (boxId < TOTAL_BOXES_COUNT) + return gPokemonStoragePtr->boxWallpapers[boxId]; + else + return 0; +} + +void SetBoxWallpaper(u8 boxId, u8 wallpaperId) +{ + if (boxId < TOTAL_BOXES_COUNT && wallpaperId < WALLPAPER_COUNT) + gPokemonStoragePtr->boxWallpapers[boxId] = wallpaperId; +} + +s16 sub_808BDE8(struct BoxPokemon *boxMons, u8 currIndex, u8 maxIndex, u8 arg3) +{ + s16 i; + s16 adder = -1; + + if (arg3 < 2) + adder = 1; + + if (arg3 == 1 || arg3 == 3) + { + for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder) + { + if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE) + return i; + } + } + else + { + for (i = (s8)currIndex + adder; i >= 0 && i <= maxIndex; i += adder) + { + if (GetBoxMonData(&boxMons[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetBoxMonData(&boxMons[i], MON_DATA_IS_EGG)) + return i; + } + } + + return -1; +} diff --git a/src/quest_log.c b/src/quest_log.c index 91c07223e..bc8e67a6b 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -752,7 +752,7 @@ void sub_8111438(void) { for (r3 = 0; r3 < 5; r3++) { - sub_808BCB4(0, r3); + ZeroBoxMonAt(0, r3); } for (r3 = r5; r3 < r9->sanePartyCount; r3++) { @@ -767,9 +767,9 @@ void sub_8111438(void) { for (r6 = 0; r6 < 30; r6++) { - if (GetBoxMonDataFromAnyBox(r3, r6, MON_DATA_SANITY_HAS_SPECIES)) + if (GetBoxMonDataAt(r3, r6, MON_DATA_SANITY_HAS_SPECIES)) { - sub_808BCB4(r3, r6); + ZeroBoxMonAt(r3, r6); r5--; if (r5 == r9->saneBoxesCount) break; @@ -832,7 +832,7 @@ static u16 QuestLog_GetSaneBoxCount(void) { for (j = 0; j < IN_BOX_COUNT; j++) { - if (GetBoxMonDataFromAnyBox(i, j, MON_DATA_SANITY_HAS_SPECIES)) + if (GetBoxMonDataAt(i, j, MON_DATA_SANITY_HAS_SPECIES)) count++; } } |