diff options
Diffstat (limited to 'asm/pokemon_storage_system.s')
-rw-r--r-- | asm/pokemon_storage_system.s | 20387 |
1 files changed, 20387 insertions, 0 deletions
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 2428f2984..5ecf02152 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -5,4 +5,20391 @@ .text + 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 Cb2_EnterPSS +Cb2_EnterPSS: @ 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 @ =Cb2_ExitPSS + bl SetMainCallback2 + b _0808CE4A + .align 2, 0 +_0808CE08: .4byte sCurrentBoxOption +_0808CE0C: .4byte sPSSData +_0808CE10: .4byte 0x000062bc +_0808CE14: .4byte Cb2_ExitPSS +_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 Cb2_EnterPSS + + 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 @ =Cb2_ExitPSS + bl SetMainCallback2 + b _0808CEB6 + .align 2, 0 +_0808CE80: .4byte sPSSData +_0808CE84: .4byte 0x000062bc +_0808CE88: .4byte Cb2_ExitPSS +_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 HandleBoxChooseSelectionInput + 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 HandleBoxChooseSelectionInput + 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 @ =Cb2_ExitPSS + bl SetMainCallback2 + b _0808EEF6 + .align 2, 0 +_0808EE70: .4byte gUnknown_20397BA +_0808EE74: .4byte Cb2_ExitPSS +_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 GetCurrentBoxOption +GetCurrentBoxOption: @ 808FDF0 + ldr r0, _0808FDF8 @ =sCurrentBoxOption + ldrb r0, [r0] + bx lr + .align 2, 0 +_0808FDF8: .4byte sCurrentBoxOption + thumb_func_end GetCurrentBoxOption + + 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 DrawTextWindowAndBufferTiles + 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 DrawTextWindowAndBufferTiles + 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. |