diff options
-rw-r--r-- | asm/battle_party_menu.s | 1263 | ||||
-rw-r--r-- | asm/decoration.s | 55 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 15417 | ||||
-rw-r--r-- | asm/rom_8094928.s | 16662 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/decoration.c | 26 |
6 files changed, 16711 insertions, 16716 deletions
diff --git a/asm/battle_party_menu.s b/asm/battle_party_menu.s new file mode 100644 index 000000000..b97f946e1 --- /dev/null +++ b/asm/battle_party_menu.s @@ -0,0 +1,1263 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8094E58 +sub_8094E58: @ 8094E58 + push {r4,r5,lr} + ldr r1, _08094E78 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r0, r1, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0xA + bls _08094E6E + b _08095048 +_08094E6E: + lsls r0, 2 + ldr r1, _08094E7C @ =_08094E80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094E78: .4byte 0x0201b000 +_08094E7C: .4byte _08094E80 + .align 2, 0 +_08094E80: + .4byte _08094EAC + .4byte _08094F28 + .4byte _08094F3C + .4byte _08094F4A + .4byte _08094F6C + .4byte _08094F80 + .4byte _08094F94 + .4byte _08094FA8 + .4byte _08094FBC + .4byte _08094FD0 + .4byte _08095000 +_08094EAC: + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094EDC + ldr r1, _08094ED4 @ =0x0201b000 + ldr r0, _08094ED8 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x6 + bne _08094EEC + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094ED4: .4byte 0x0201b000 +_08094ED8: .4byte 0x00000266 +_08094EDC: + ldr r1, _08094F10 @ =0x0201b000 + ldr r0, _08094F14 @ =0x00000266 + adds r4, r1, r0 + ldrh r2, [r4] + movs r3, 0 + ldrsh r0, [r4, r3] + cmp r0, 0x5 + bgt _08094F1C +_08094EEC: + movs r3, 0x98 + lsls r3, 2 + adds r0, r1, r3 + ldrb r0, [r0] + lsls r1, r2, 24 + lsrs r1, 24 + movs r2, 0 + ldrsh r3, [r4, r2] + movs r2, 0x64 + muls r2, r3 + ldr r3, _08094F18 @ =gPlayerParty + adds r2, r3 + bl TryCreatePartyMenuMonIcon + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _08095048 + .align 2, 0 +_08094F10: .4byte 0x0201b000 +_08094F14: .4byte 0x00000266 +_08094F18: .4byte gPlayerParty +_08094F1C: + movs r0, 0 + strh r0, [r4] + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC +_08094F28: + bl LoadHeldItemIconGraphics + ldr r1, _08094F38 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F38: .4byte 0x0201b000 +_08094F3C: + movs r1, 0x98 + lsls r1, 2 + adds r0, r4, r1 + ldrb r0, [r0] + bl CreateHeldItemIcons_806DC34 + b _08094FE6 +_08094F4A: + movs r3, 0x98 + lsls r3, 2 + adds r0, r4, r3 + ldrb r0, [r0] + ldr r1, _08094F68 @ =0x00000266 + adds r5, r4, r1 + ldrb r1, [r5] + bl sub_806BD58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08094FE2 + b _08094FF8 + .align 2, 0 +_08094F68: .4byte 0x00000266 +_08094F6C: + bl PartyMenuPrintMonsLevelOrStatus + ldr r1, _08094F7C @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094F7C: .4byte 0x0201b000 +_08094F80: + bl PrintPartyMenuMonNicknames + ldr r1, _08094F90 @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094F90: .4byte 0x0201b000 +_08094F94: + bl PartyMenuTryPrintMonsHP + ldr r1, _08094FA4 @ =0x0201b000 + movs r2, 0x99 + lsls r2, 2 + adds r1, r2 + b _08094FEC + .align 2, 0 +_08094FA4: .4byte 0x0201b000 +_08094FA8: + bl nullsub_13 + ldr r1, _08094FB8 @ =0x0201b000 + movs r3, 0x99 + lsls r3, 2 + adds r1, r3 + b _08094FEC + .align 2, 0 +_08094FB8: .4byte 0x0201b000 +_08094FBC: + bl PartyMenuDrawHPBars + ldr r1, _08094FCC @ =0x0201b000 + movs r0, 0x99 + lsls r0, 2 + adds r1, r0 + b _08094FEC + .align 2, 0 +_08094FCC: .4byte 0x0201b000 +_08094FD0: + ldr r1, _08094FF4 @ =0x00000266 + adds r5, r4, r1 + ldrb r0, [r5] + bl sub_806B58C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08094FF8 +_08094FE2: + movs r0, 0 + strh r0, [r5] +_08094FE6: + movs r2, 0x99 + lsls r2, 2 + adds r1, r4, r2 +_08094FEC: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _08095048 + .align 2, 0 +_08094FF4: .4byte 0x00000266 +_08094FF8: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _08095048 +_08095000: + ldr r0, _08095024 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0809503C + ldr r0, _08095028 @ =gScriptItemId + ldrh r0, [r0] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095034 + ldr r0, _0809502C @ =0x0201b000 + ldr r3, _08095030 @ =0x00000259 + adds r0, r3 + movs r1, 0xFF + strb r1, [r0] + b _0809503C + .align 2, 0 +_08095024: .4byte gUnknown_02038473 +_08095028: .4byte gScriptItemId +_0809502C: .4byte 0x0201b000 +_08095030: .4byte 0x00000259 +_08095034: + ldr r0, _08095040 @ =0x0201b000 + ldr r1, _08095044 @ =0x00000259 + adds r0, r1 + strb r4, [r0] +_0809503C: + movs r0, 0x1 + b _0809504A + .align 2, 0 +_08095040: .4byte 0x0201b000 +_08095044: .4byte 0x00000259 +_08095048: + movs r0, 0 +_0809504A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8094E58 + + thumb_func_start sub_8095050 +sub_8095050: @ 8095050 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809508C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + adds r5, r0, 0 + cmp r5, 0 + bne _080950C8 + ldr r0, _08095090 @ =gUnknown_02038473 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0809509C + ldr r3, _08095094 @ =gTasks + ldr r2, _08095098 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + b _080950DE + .align 2, 0 +_0809508C: .4byte gPlayerParty +_08095090: .4byte gUnknown_02038473 +_08095094: .4byte gTasks +_08095098: .4byte 0x0201b000 +_0809509C: + ldr r3, _080950C0 @ =gTasks + ldr r2, _080950C4 @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r5, [r0, 0x12] + b _080950EC + .align 2, 0 +_080950C0: .4byte gTasks +_080950C4: .4byte 0x0201b000 +_080950C8: + ldr r3, _08095108 @ =gTasks + ldr r2, _0809510C @ =0x0201b000 + movs r0, 0x98 + lsls r0, 2 + adds r2, r0 + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r4, 0x2 +_080950DE: + strh r4, [r0, 0x10] + ldrb r1, [r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + strh r4, [r0, 0x12] +_080950EC: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x10] + ldr r1, _08095110 @ =gUnknown_083B5FF4 + ldr r2, _08095114 @ =gUnknown_083B5FCC + movs r3, 0 + bl sub_806E750 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08095108: .4byte gTasks +_0809510C: .4byte 0x0201b000 +_08095110: .4byte gUnknown_083B5FF4 +_08095114: .4byte gUnknown_083B5FCC + thumb_func_end sub_8095050 + + thumb_func_start sub_8095118 +sub_8095118: @ 8095118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095150 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809512C + b _08095268 +_0809512C: + ldr r0, _08095154 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08095164 + ldr r5, _08095158 @ =gScriptItemId + ldrh r0, [r5] + bl GetItemEffectType + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xA + bne _08095164 + ldr r0, _0809515C @ =gUnknown_03004AE4 + ldrh r1, [r5] + ldr r2, _08095160 @ =sub_80952E4 + ldr r3, [r0] + b _080951AA + .align 2, 0 +_08095150: .4byte gPaletteFade +_08095154: .4byte gUnknown_02038473 +_08095158: .4byte gScriptItemId +_0809515C: .4byte gUnknown_03004AE4 +_08095160: .4byte sub_80952E4 +_08095164: + adds r0, r4, 0 + bl sub_806BD80 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _08095178 + cmp r0, 0x2 + beq _08095214 + b _08095268 +_08095178: + ldr r0, _080951B4 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x3 + bne _080951C8 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _080951B8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0809521C + bl sub_806D5A4 + ldr r3, _080951BC @ =gUnknown_03004AE4 + ldr r0, _080951C0 @ =gScriptItemId + ldrh r1, [r0] + ldr r2, _080951C4 @ =sub_80952E4 + ldr r3, [r3] +_080951AA: + adds r0, r4, 0 + bl _call_via_r3 + b _08095268 + .align 2, 0 +_080951B4: .4byte gUnknown_02038473 +_080951B8: .4byte gPlayerParty +_080951BC: .4byte gUnknown_03004AE4 +_080951C0: .4byte gScriptItemId +_080951C4: .4byte sub_80952E4 +_080951C8: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _08095204 @ =gPlayerParty + adds r0, r1 + ldr r1, _08095208 @ =gStringVar1 + bl GetMonNickname + adds r0, r4, 0 + bl sub_806CA38 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8095050 + ldr r1, _0809520C @ =sub_8095408 + ldr r2, _08095210 @ =sub_8095118 + adds r0, r4, 0 + bl SetTaskFuncWithFollowupFunc + b _08095268 + .align 2, 0 +_08095204: .4byte gPlayerParty +_08095208: .4byte gStringVar1 +_0809520C: .4byte sub_8095408 +_08095210: .4byte sub_8095118 +_08095214: + ldr r5, _08095224 @ =gUnknown_02038473 + ldrb r0, [r5] + cmp r0, 0x1 + bne _08095228 +_0809521C: + movs r0, 0x20 + bl PlaySE + b _08095268 + .align 2, 0 +_08095224: .4byte gUnknown_02038473 +_08095228: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r5] + cmp r0, 0x3 + bne _08095254 + ldr r1, _08095248 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _0809524C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095250 @ =sub_80952E4 + b _08095266 + .align 2, 0 +_08095248: .4byte gUnknown_0202E8F4 +_0809524C: .4byte gTasks +_08095250: .4byte sub_80952E4 +_08095254: + ldr r1, _08095270 @ =gUnknown_0202E8F4 + movs r0, 0 + strb r0, [r1] + ldr r1, _08095274 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095278 @ =sub_809527C +_08095266: + str r1, [r0] +_08095268: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08095270: .4byte gUnknown_0202E8F4 +_08095274: .4byte gTasks +_08095278: .4byte sub_809527C + thumb_func_end sub_8095118 + + thumb_func_start sub_809527C +sub_809527C: @ 809527C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _080952AC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080952B0 @ =sub_80952B4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952AC: .4byte gTasks +_080952B0: .4byte sub_80952B4 + thumb_func_end sub_809527C + + thumb_func_start sub_80952B4 +sub_80952B4: @ 80952B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952DC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080952D6 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _080952E0 @ =sub_802E414 + bl SetMainCallback2 +_080952D6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080952DC: .4byte gPaletteFade +_080952E0: .4byte sub_802E414 + thumb_func_end sub_80952B4 + + thumb_func_start sub_80952E4 +sub_80952E4: @ 80952E4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080952FC @ =gUnknown_0202E8F4 + ldrb r1, [r0] + cmp r1, 0 + beq _08095300 + adds r0, r4, 0 + bl sub_809527C + b _0809531E + .align 2, 0 +_080952FC: .4byte gUnknown_0202E8F4 +_08095300: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08095328 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809532C @ =sub_8095330 + str r1, [r0] +_0809531E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095328: .4byte gTasks +_0809532C: .4byte sub_8095330 + thumb_func_end sub_80952E4 + + thumb_func_start sub_8095330 +sub_8095330: @ 8095330 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08095358 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095350 + bl sub_8094D60 + adds r0, r4, 0 + bl DestroyTask + bl sub_80A6DCC +_08095350: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08095358: .4byte gPaletteFade + thumb_func_end sub_8095330 + + thumb_func_start sub_809535C +sub_809535C: @ 809535C + push {lr} + ldr r2, _08095380 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r2, _08095384 @ =sub_8095118 + movs r0, 0x1 + movs r1, 0xFF + movs r3, 0x5 + bl sub_806AF4C + ldr r0, _08095388 @ =sub_809538C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_08095380: .4byte gPaletteFade +_08095384: .4byte sub_8095118 +_08095388: .4byte sub_809538C + thumb_func_end sub_809535C + + thumb_func_start sub_809538C +sub_809538C: @ 809538C + push {r4,r5,lr} + ldr r4, _080953D8 @ =0x0201b260 + ldr r5, _080953DC @ =gUnknown_020384F0 +_08095392: + bl sub_806B124 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080953F4 + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_806C994 + ldrb r0, [r4] + movs r1, 0 + bl sub_806BF74 + ldrb r1, [r5] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080953E0 @ =gPlayerParty + adds r0, r1 + ldr r1, _080953E4 @ =gStringVar1 + bl GetMonNickname + ldrb r0, [r4] + ldrb r1, [r5] + bl sub_8095050 + ldrb r0, [r4] + ldr r1, _080953E8 @ =sub_8095408 + ldr r2, _080953EC @ =sub_8095118 + bl SetTaskFuncWithFollowupFunc + ldr r0, _080953F0 @ =sub_806AEDC + bl SetMainCallback2 + b _08095400 + .align 2, 0 +_080953D8: .4byte 0x0201b260 +_080953DC: .4byte gUnknown_020384F0 +_080953E0: .4byte gPlayerParty +_080953E4: .4byte gStringVar1 +_080953E8: .4byte sub_8095408 +_080953EC: .4byte sub_8095118 +_080953F0: .4byte sub_806AEDC +_080953F4: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095392 +_08095400: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_809538C + + thumb_func_start sub_8095408 +sub_8095408: @ 8095408 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + adds r4, r7, 0 + ldr r0, _0809543C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080954B8 + ldr r2, _08095440 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095444 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080954B8 + .align 2, 0 +_0809543C: .4byte gPaletteFade +_08095440: .4byte gMain +_08095444: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0809545A + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080954B8 +_0809545A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080954A4 + movs r0, 0x5 + bl PlaySE + ldr r1, _08095498 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0x10] + ldr r5, _0809549C @ =gUnknown_083B5FF4 + ldr r6, _080954A0 @ =gUnknown_083B5FCC + bl GetMenuCursorPos + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_806E81C + adds r1, r0, 0 + adds r0, r7, 0 + bl _call_via_r1 + b _080954B8 + .align 2, 0 +_08095498: .4byte gTasks +_0809549C: .4byte gUnknown_083B5FF4 +_080954A0: .4byte gUnknown_083B5FCC +_080954A4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080954B8 + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80958C4 +_080954B8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095408 + + thumb_func_start sub_80954C0 +sub_80954C0: @ 80954C0 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r0, _080954D8 @ =gUnknown_0202E8F6 + ldrb r0, [r0] + cmp r0, 0 + bne _080954D4 + adds r0, r1, 0 + bl sub_80958C4 +_080954D4: + pop {r0} + bx r0 + .align 2, 0 +_080954D8: .4byte gUnknown_0202E8F6 + thumb_func_end sub_80954C0 + + thumb_func_start sub_80954DC +sub_80954DC: @ 80954DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0809552C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08095522 + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08095530 @ =0x0201b000 + ldr r1, _08095534 @ =0x00000262 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08095538 @ =gPlayerParty + ldr r1, _0809553C @ =gPlayerPartyCount + ldrb r2, [r1] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08095540 @ =sub_809535C + movs r1, 0x4 + str r1, [sp] + adds r1, r5, 0 + bl sub_809D8BC +_08095522: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809552C: .4byte gPaletteFade +_08095530: .4byte 0x0201b000 +_08095534: .4byte 0x00000262 +_08095538: .4byte gPlayerParty +_0809553C: .4byte gPlayerPartyCount +_08095540: .4byte sub_809535C + thumb_func_end sub_80954DC + + thumb_func_start sub_8095544 +sub_8095544: @ 8095544 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_806CA38 + ldr r1, _0809557C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095580 @ =sub_80954DC + str r1, [r0] + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809557C: .4byte gTasks +_08095580: .4byte sub_80954DC + thumb_func_end sub_8095544 + + thumb_func_start sub_8095584 +sub_8095584: @ 8095584 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + ldr r1, _080955FC @ =gUnknown_083B5FF4 + bl sub_806E7D0 + adds r0, r6, 0 + bl sub_806CA38 + lsls r0, 24 + lsrs r5, r0, 24 + bl IsLinkDoubleBattle + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08095610 + cmp r5, 0x1 + beq _080955C6 + cmp r5, 0x4 + beq _080955C6 + cmp r5, 0x5 + bne _08095610 +_080955C6: + bl sub_806D5A4 + ldr r4, _08095600 @ =gStringVar1 + bl sub_8040D08 + adds r1, r0, 0 + adds r0, r4, 0 + bl StringCopy + ldr r4, _08095604 @ =gStringVar4 + ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _080955F8 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809560C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080955F8: .4byte gTasks +_080955FC: .4byte gUnknown_083B5FF4 +_08095600: .4byte gStringVar1 +_08095604: .4byte gStringVar4 +_08095608: .4byte gOtherText_CantSwitchPokeWithYours +_0809560C: .4byte sub_80954C0 +_08095610: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095654 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _0809566C + bl sub_806D5A4 + ldr r1, _08095658 @ =gStringVar1 + adds r0, r4, 0 + bl GetMonNickname + ldr r4, _0809565C @ =gStringVar4 + ldr r1, _08095660 @ =gOtherText_NoEnergyLeft + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095664 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095668 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095654: .4byte gPlayerParty +_08095658: .4byte gStringVar1 +_0809565C: .4byte gStringVar4 +_08095660: .4byte gOtherText_NoEnergyLeft +_08095664: .4byte gTasks +_08095668: .4byte sub_80954C0 +_0809566C: + movs r4, 0 + ldr r0, _08095678 @ =gUnknown_02024A68 + lsls r1, r6, 2 + mov r8, r1 + b _080956A8 + .align 2, 0 +_08095678: .4byte gUnknown_02024A68 +_0809567C: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080956A0 + adds r0, r5, 0 + bl sub_8094C20 + lsls r0, 24 + ldr r2, _080956EC @ =gUnknown_02024A6A + lsls r1, r4, 1 + adds r1, r2 + lsrs r0, 24 + ldrh r1, [r1] + cmp r0, r1 + bne _080956A0 + b _08095808 +_080956A0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080956F0 @ =gUnknown_02024A68 +_080956A8: + ldrb r0, [r0] + cmp r4, r0 + bcc _0809567C + movs r2, 0x64 + mov r9, r2 + mov r0, r9 + muls r0, r5 + ldr r1, _080956F4 @ =gPlayerParty + mov r10, r1 + adds r7, r0, r1 + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + beq _08095708 + bl sub_806D5A4 + ldr r4, _080956F8 @ =gStringVar4 + ldr r1, _080956FC @ =gOtherText_EGGCantBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095700 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095704 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080956EC: .4byte gUnknown_02024A6A +_080956F0: .4byte gUnknown_02024A68 +_080956F4: .4byte gPlayerParty +_080956F8: .4byte gStringVar4 +_080956FC: .4byte gOtherText_EGGCantBattle +_08095700: .4byte gTasks +_08095704: .4byte sub_80954C0 +_08095708: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _0809574C @ =0x02000000 + ldr r2, _08095750 @ =0x0001609d + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08095768 + bl sub_806D5A4 + ldr r1, _08095754 @ =gStringVar1 + adds r0, r7, 0 + bl GetMonNickname + ldr r4, _08095758 @ =gStringVar4 + ldr r1, _0809575C @ =gOtherText_AlreadySelected + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095760 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095764 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809574C: .4byte 0x02000000 +_08095750: .4byte 0x0001609d +_08095754: .4byte gStringVar1 +_08095758: .4byte gStringVar4 +_0809575C: .4byte gOtherText_AlreadySelected +_08095760: .4byte gTasks +_08095764: .4byte sub_80954C0 +_08095768: + ldr r0, _08095790 @ =gUnknown_02038473 + ldrb r0, [r0] + cmp r0, 0x4 + bne _080957A0 + bl sub_806D5A4 + bl sub_8040B8C + ldr r0, _08095794 @ =gStringVar4 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095798 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0809579C @ =sub_80954C0 + b _0809589A + .align 2, 0 +_08095790: .4byte gUnknown_02038473 +_08095794: .4byte gStringVar4 +_08095798: .4byte gTasks +_0809579C: .4byte sub_80954C0 +_080957A0: + cmp r0, 0x2 + bne _08095854 + ldr r0, _080957EC @ =gUnknown_02024E6C + ldrb r4, [r0] + bl sub_806D5A4 + ldr r0, _080957F0 @ =gUnknown_02024A6A + lsls r4, 1 + adds r4, r0 + ldrb r0, [r4] + bl pokemon_order_func + lsls r0, 24 + lsrs r0, 24 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r10 + ldr r1, _080957F4 @ =gStringVar1 + bl GetMonNickname + ldr r4, _080957F8 @ =gStringVar4 + ldr r1, _080957FC @ =gOtherText_CantBeSwitched + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _08095800 @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095804 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_080957EC: .4byte gUnknown_02024E6C +_080957F0: .4byte gUnknown_02024A6A +_080957F4: .4byte gStringVar1 +_080957F8: .4byte gStringVar4 +_080957FC: .4byte gOtherText_CantBeSwitched +_08095800: .4byte gTasks +_08095804: .4byte sub_80954C0 +_08095808: + bl sub_806D5A4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809583C @ =gPlayerParty + adds r0, r1 + ldr r1, _08095840 @ =gStringVar1 + bl GetMonNickname + ldr r4, _08095844 @ =gStringVar4 + ldr r1, _08095848 @ =gOtherText_AlreadyBattle + adds r0, r4, 0 + bl StringExpandPlaceholders + adds r0, r4, 0 + movs r1, 0 + bl sub_806E834 + ldr r1, _0809584C @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _08095850 @ =sub_80954C0 + b _0809589A + .align 2, 0 +_0809583C: .4byte gPlayerParty +_08095840: .4byte gStringVar1 +_08095844: .4byte gStringVar4 +_08095848: .4byte gOtherText_AlreadyBattle +_0809584C: .4byte gTasks +_08095850: .4byte sub_80954C0 +_08095854: + adds r0, r5, 0 + bl sub_8094C20 + ldr r1, _080958AC @ =gUnknown_0202E8F5 + strb r0, [r1] + ldr r1, _080958B0 @ =gUnknown_0202E8F4 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080958B4 @ =gUnknown_02024A6A + ldr r0, _080958B8 @ =gUnknown_02024E6C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8094C98 + mov r0, r9 + muls r0, r4 + add r0, r10 + adds r1, r7, 0 + bl sub_806E6F0 + ldr r1, _080958BC @ =gTasks + mov r2, r8 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _080958C0 @ =sub_809527C +_0809589A: + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080958AC: .4byte gUnknown_0202E8F5 +_080958B0: .4byte gUnknown_0202E8F4 +_080958B4: .4byte gUnknown_02024A6A +_080958B8: .4byte gUnknown_02024E6C +_080958BC: .4byte gTasks +_080958C0: .4byte sub_809527C + thumb_func_end sub_8095584 + + thumb_func_start sub_80958C4 +sub_80958C4: @ 80958C4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8072DEC + ldr r0, _080958FC @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + ldr r1, _08095900 @ =gUnknown_083B5FF4 + bl sub_806E7D0 + ldrh r0, [r4, 0x12] + strh r0, [r4, 0x10] + movs r0, 0 + movs r1, 0 + bl sub_806D538 + adds r0, r5, 0 + bl SwitchTaskToFollowupFunc + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080958FC: .4byte gTasks +_08095900: .4byte gUnknown_083B5FF4 + thumb_func_end sub_80958C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/decoration.s b/asm/decoration.s index c507b599d..bf8167329 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -764,60 +764,7 @@ sub_80FE7D4: @ 80FE7D4 _080FE7E8: .4byte gUnknown_083EC5E4 thumb_func_end sub_80FE7D4 - thumb_func_start sub_80FE7EC -sub_80FE7EC: @ 80FE7EC - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl sub_80FEC94 - ldr r0, _080FE858 @ =gUnknown_020388F6 - ldrb r0, [r0] - bl sub_80FECB8 - movs r0, 0xF - movs r1, 0xC - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r4, _080FE85C @ =gUnknown_020388F2 - ldr r0, _080FE860 @ =gUnknown_020388F4 - ldrb r0, [r0] - ldrb r1, [r4] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_80FECE0 - ldr r0, _080FE864 @ =gUnknown_020388F3 - ldrb r3, [r0] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4] - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080FE858: .4byte gUnknown_020388F6 -_080FE85C: .4byte gUnknown_020388F2 -_080FE860: .4byte gUnknown_020388F4 -_080FE864: .4byte gUnknown_020388F3 - thumb_func_end sub_80FE7EC + .section .text_80FE868 thumb_func_start sub_80FE868 sub_80FE868: @ 80FE868 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s new file mode 100644 index 000000000..22abca2c3 --- /dev/null +++ b/asm/pokemon_storage_system.s @@ -0,0 +1,15417 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8095904 +sub_8095904: @ 8095904 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + str r0, [sp] + adds r7, r1, 0 + adds r4, r2, 0 + ldr r0, [sp, 0x3C] + lsls r4, 24 + lsrs r4, 24 + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x4] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + ldr r0, [sp] + bl StringLength + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r4, 0 + bne _08095988 + movs r5, 0 + cmp r5, r8 + bcs _08095A2E +_0809593E: + ldr r1, [sp] + adds r0, r1, r5 + ldrb r2, [r0] + ldr r0, _08095980 @ =0x0000fff0 + ands r0, r2 + lsls r0, 6 + movs r1, 0xF + ands r2, r1 + lsls r2, 5 + adds r0, r2 + ldr r1, _08095984 @ =gFont3LatinGlyphs + adds r4, r0, r1 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0x10 + bl CpuSet + movs r2, 0x80 + lsls r2, 2 + adds r0, r4, r2 + ldr r3, [sp, 0x4] + adds r1, r7, r3 + movs r2, 0x10 + bl CpuSet + adds r7, 0x20 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _0809593E + b _08095A2E + .align 2, 0 +_08095980: .4byte 0x0000fff0 +_08095984: .4byte gFont3LatinGlyphs +_08095988: + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x8] + lsls r0, r1, 28 + lsrs r0, 24 + str r0, [sp, 0xC] + mov r2, r8 + lsls r0, r2, 21 + movs r1, 0 + lsrs r0, 1 + str r0, [sp, 0x10] +_0809599E: + movs r5, 0 + ldr r3, [sp, 0x4] + adds r3, r7, r3 + str r3, [sp, 0x14] + adds r0, r1, 0x1 + str r0, [sp, 0x18] + cmp r5, r8 + bcs _08095A12 + movs r2, 0xF + mov r12, r2 + lsls r1, 9 + ldr r0, _08095A40 @ =gFont3LatinGlyphs + adds r1, r0 + mov r10, r1 +_080959BA: + ldr r3, [sp] + adds r0, r3, r5 + ldrb r1, [r0] + ldr r0, _08095A44 @ =0x0000fff0 + ands r0, r1 + lsls r0, 6 + mov r2, r12 + ands r1, r2 + lsls r1, 5 + adds r0, r1 + mov r3, r10 + adds r4, r0, r3 + movs r6, 0 + adds r5, 0x1 +_080959D6: + ldrb r0, [r4] + movs r3, 0xF0 + ands r3, r0 + mov r2, r12 + ands r2, r0 + cmp r3, 0 + bne _080959E6 + ldr r3, [sp, 0xC] +_080959E6: + cmp r2, 0 + bne _080959EC + ldr r2, [sp, 0x8] +_080959EC: + mov r0, r9 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + ldr r1, [sp, 0x40] + adds r0, r1, r0 + orrs r3, r2 + strb r3, [r0] + adds r4, 0x1 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1F + bls _080959D6 + lsls r0, r5, 16 + lsrs r5, r0, 16 + cmp r5, r8 + bcc _080959BA +_08095A12: + ldr r0, [sp, 0x40] + adds r1, r7, 0 + ldr r3, [sp, 0x10] + lsrs r2, r3, 16 + bl CpuSet + ldr r7, [sp, 0x14] + movs r0, 0 + mov r9, r0 + ldr r1, [sp, 0x18] + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x1 + bls _0809599E +_08095A2E: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08095A40: .4byte gFont3LatinGlyphs +_08095A44: .4byte 0x0000fff0 + thumb_func_end sub_8095904 + + thumb_func_start unref_sub_8095A48 +unref_sub_8095A48: @ 8095A48 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + movs r6, 0 +_08095A60: + movs r3, 0 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + beq _08095ACE +_08095A6C: + mov r0, sp + adds r0, r3 + adds r0, 0x8 + strb r2, [r0] + adds r4, 0x1 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bhi _08095AA8 + ldrb r0, [r4] + adds r1, r0, 0 + adds r2, r0, 0 + cmp r1, 0xFF + bne _08095A6C + cmp r3, 0 + beq _08095ACE + movs r6, 0x1 + cmp r3, 0x3 + bhi _08095AA8 + movs r2, 0 +_08095A96: + adds r0, r3, 0 + adds r1, r0, 0x1 + lsls r1, 16 + lsrs r3, r1, 16 + add r0, sp + adds r0, 0x8 + strb r2, [r0] + cmp r3, 0x3 + bls _08095A96 +_08095AA8: + mov r1, sp + adds r1, r3 + adds r1, 0x8 + movs r0, 0xFF + strb r0, [r1] + str r7, [sp] + ldr r0, [sp, 0x28] + str r0, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r5, 0 + mov r2, r8 + movs r3, 0x80 + bl sub_8095904 + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + cmp r6, 0 + beq _08095A60 +_08095ACE: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_8095A48 + + thumb_func_start sub_8095ADC +sub_8095ADC: @ 8095ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + movs r5, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_08095AF0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B20 @ =gUnknown_020300A4 + adds r0, r1 + adds r0, r6, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095B0C + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095B0C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095AF0 + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095B20: .4byte gUnknown_020300A4 + thumb_func_end sub_8095ADC + + thumb_func_start sub_8095B24 +sub_8095B24: @ 8095B24 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r5, r0, 5 +_08095B36: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _08095B54 @ =gUnknown_020300A4 + adds r0, r1 + adds r0, r5, r0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095B58 + lsls r0, r4, 16 + asrs r0, 16 + b _08095B66 + .align 2, 0 +_08095B54: .4byte gUnknown_020300A4 +_08095B58: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _08095B36 + movs r0, 0x1 + negs r0, r0 +_08095B66: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8095B24 + + thumb_func_start sub_8095B6C +sub_8095B6C: @ 8095B6C + push {r4-r6,lr} + movs r5, 0 + movs r6, 0 +_08095B72: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095BB0 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095B9A + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095B9A + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095B9A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095B72 + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08095BB0: .4byte gPlayerParty + thumb_func_end sub_8095B6C + + thumb_func_start sub_8095BB4 +sub_8095BB4: @ 8095BB4 + push {r4-r7,lr} + lsls r0, 24 + movs r5, 0 + movs r6, 0 + lsrs r7, r0, 24 +_08095BBE: + cmp r5, r7 + beq _08095BF6 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08095C0C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08095BF6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08095BF6 + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08095BF6: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08095BBE + lsls r0, r6, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08095C0C: .4byte gPlayerParty + thumb_func_end sub_8095BB4 + + thumb_func_start sub_8095C10 +sub_8095C10: @ 8095C10 + push {lr} + ldr r0, _08095C24 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08095C24: .4byte gSpecialVar_0x8004 + thumb_func_end sub_8095C10 + + thumb_func_start sub_8095C28 +sub_8095C28: @ 8095C28 + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_08095C2E: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08095C5C @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08095C46 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_08095C46: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x5 + bls _08095C2E + lsls r0, r5, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08095C5C: .4byte gPlayerParty + thumb_func_end sub_8095C28 + + thumb_func_start unref_sub_8095C60 +unref_sub_8095C60: @ 8095C60 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r4, r2, 16 + lsrs r4, 16 + bl StringCopy + adds r1, r0, 0 + adds r5, r4 + cmp r1, r5 + bcs _08095C7E + movs r0, 0 +_08095C76: + strb r0, [r1] + adds r1, 0x1 + cmp r1, r5 + bcc _08095C76 +_08095C7E: + movs r0, 0xFF + strb r0, [r1] + adds r0, r1, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_8095C60 + + thumb_func_start sub_8095C8C +sub_8095C8C: @ 8095C8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + adds r7, r3, 0 + ldr r5, [sp, 0x1C] + ldr r4, [sp, 0x20] + ldr r0, [sp, 0x24] + mov r9, r0 + ldr r0, [sp, 0x28] + ldr r3, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + mov r0, r9 + lsls r0, 17 + mov r9, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r6, r2 + adds r0, r4, 0 + muls r0, r3 + adds r0, r5 + lsls r0, 1 + adds r7, r0 + movs r4, 0 + cmp r4, r8 + bcs _08095CFC + mov r0, r9 + lsrs r0, 1 + mov r9, r0 + lsls r5, r3, 1 +_08095CE2: + adds r0, r7, 0 + adds r1, r6, 0 + mov r3, r9 + lsrs r2, r3, 16 + bl CpuSet + adds r6, 0x40 + adds r7, r5 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bcc _08095CE2 +_08095CFC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8095C8C + + thumb_func_start unref_sub_8095D08 +unref_sub_8095D08: @ 8095D08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsrs r2, 11 + adds r2, r1 + lsls r2, 1 + adds r4, r2 + lsls r3, 17 + lsrs r0, r3, 16 + str r0, [sp, 0x4] + movs r0, 0 + cmp r0, r10 + bcs _08095DB2 + movs r6, 0x80 + lsls r6, 5 + mov r5, sp + ldr r7, _08095D74 @ =0x040000d4 + lsrs r3, 17 + mov r9, r3 + mov r1, r9 + movs r2, 0x81 + lsls r2, 24 + orrs r1, r2 + mov r9, r1 +_08095D4E: + adds r3, r4, 0 + ldr r2, [sp, 0x4] + movs r1, 0x40 + adds r1, r4 + mov r8, r1 + adds r0, 0x1 + mov r12, r0 + cmp r2, r6 + bhi _08095D78 + movs r0, 0 + strh r0, [r5] + mov r2, sp + str r2, [r7] + str r4, [r7, 0x4] + mov r0, r9 + str r0, [r7, 0x8] + ldr r0, [r7, 0x8] + b _08095DA6 + .align 2, 0 +_08095D74: .4byte 0x040000d4 +_08095D78: + movs r4, 0 + strh r4, [r5] + ldr r1, _08095DC4 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + ldr r0, _08095DC8 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r6 + subs r2, r6 + cmp r2, r6 + bhi _08095D78 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + lsrs r0, r2, 1 + movs r2, 0x81 + lsls r2, 24 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_08095DA6: + mov r4, r8 + mov r1, r12 + lsls r0, r1, 16 + lsrs r0, 16 + cmp r0, r10 + bcc _08095D4E +_08095DB2: + 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 +_08095DC4: .4byte 0x040000d4 +_08095DC8: .4byte 0x81000800 + thumb_func_end unref_sub_8095D08 + + thumb_func_start sub_8095DCC +sub_8095DCC: @ 8095DCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r0, r3, 24 + cmp r0, 0 + beq _08095DE8 + cmp r0, 0x2 + bne _08095DEC +_08095DE8: + movs r2, 0x1 + b _08095DEE +_08095DEC: + ldr r2, _08095E38 @ =0x0000ffff +_08095DEE: + subs r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08095E44 + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E10: + asrs r4, r0, 16 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + add r0, r8 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + bne _08095E3C + asrs r0, r6, 16 + adds r0, r4, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E10 + b _08095E90 + .align 2, 0 +_08095E38: .4byte 0x0000ffff +_08095E3C: + adds r0, r4, 0 + b _08095E94 +_08095E40: + adds r0, r5, 0 + b _08095E94 +_08095E44: + lsls r0, r1, 24 + asrs r0, 24 + lsls r2, 16 + asrs r1, r2, 16 + adds r1, r0 + lsls r0, r1, 16 + asrs r1, r0, 16 + adds r6, r2, 0 + cmp r1, 0 + blt _08095E90 + cmp r1, r7 + bgt _08095E90 +_08095E5C: + asrs r5, r0, 16 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08095E80 + adds r0, r4, 0 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + beq _08095E40 +_08095E80: + asrs r0, r6, 16 + adds r0, r5, r0 + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _08095E90 + cmp r2, r7 + ble _08095E5C +_08095E90: + movs r0, 0x1 + negs r0, r0 +_08095E94: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8095DCC + + thumb_func_start sub_8095EA0 +sub_8095EA0: @ 8095EA0 + push {lr} + movs r0, 0x2 + movs r1, 0xF + movs r2, 0x1B + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + pop {r0} + bx r0 + thumb_func_end sub_8095EA0 + + thumb_func_start sub_8095EB4 +sub_8095EB4: @ 8095EB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _08095ED8 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _08095ECE + b _080960F4 +_08095ECE: + lsls r0, 2 + ldr r1, _08095EDC @ =_08095EE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095ED8: .4byte gTasks +_08095EDC: .4byte _08095EE0 + .align 2, 0 +_08095EE0: + .4byte _08095EF4 + .4byte _08095F1C + .4byte _08095F30 + .4byte _08096042 + .4byte _080960DC +_08095EF4: + ldrb r0, [r4, 0xA] + bl sub_8096168 + bl MenuDisplayMessageBox + ldr r1, _08095F18 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _08095F28 + .align 2, 0 +_08095F18: .4byte gUnknown_083B600C +_08095F1C: + bl sub_807D770 + lsls r0, 24 + cmp r0, 0 + bne _08095F28 + b _080960F4 +_08095F28: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080960F4 +_08095F30: + bl ProcessMenuInput + lsls r0, 24 + asrs r0, 24 + strh r0, [r4, 0xC] + movs r3, 0xC + ldrsh r1, [r4, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08095FC8 + cmp r1, r0 + bgt _08095F52 + subs r0, 0x1 + cmp r1, r0 + beq _08095F58 + b _08095FE8 +_08095F52: + cmp r1, 0x3 + beq _08095FC8 + b _08095FE8 +_08095F58: + ldrh r3, [r4, 0xA] + strh r3, [r4, 0xE] + ldr r2, _08095FC0 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08095F76 + subs r0, r3, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bge _08095F76 + movs r0, 0x3 + strh r0, [r4, 0xE] +_08095F76: + ldrh r1, [r2, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08095F92 + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _08095F92 + movs r0, 0 + strh r0, [r4, 0xE] +_08095F92: + lsls r0, r3, 16 + asrs r0, 16 + ldrh r2, [r4, 0xE] + movs r3, 0xE + ldrsh r1, [r4, r3] + cmp r0, r1 + bne _08095FA2 + b _080960F4 +_08095FA2: + strh r2, [r4, 0xA] + bl sub_8095EA0 + ldr r0, _08095FC4 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + b _080960F4 + .align 2, 0 +_08095FC0: .4byte gMain +_08095FC4: .4byte gUnknown_083B600C +_08095FC8: + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuZeroFillWindowRect + bl ScriptContext2_Disable + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080960F4 +_08095FE8: + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _08096008 + bl sub_8095C28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08096008 + bl sub_8095EA0 + ldr r0, _08096004 @ =gPCText_PartyFull2 + b _08096022 + .align 2, 0 +_08096004: .4byte gPCText_PartyFull2 +_08096008: + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08096034 + bl sub_8095C28 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08096034 + bl sub_8095EA0 + ldr r0, _08096030 @ =gPCText_OnlyOne +_08096022: + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x3 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_08096030: .4byte gPCText_OnlyOne +_08096034: + movs r0, 0x1 + movs r1, 0 + bl fade_screen + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080960F4 +_08096042: + ldr r0, _08096088 @ =gMain + ldrh r1, [r0, 0x2E] + movs r3, 0x3 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _080960B8 + movs r0, 0x40 + ands r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08096090 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _0809606A + strh r3, [r4, 0xA] +_0809606A: + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] + bl sub_8095EA0 + ldr r1, _0809608C @ =gUnknown_083B600C + movs r3, 0xA + ldrsh r0, [r4, r3] + b _080960C2 + .align 2, 0 +_08096088: .4byte gMain +_0809608C: .4byte gUnknown_083B600C +_08096090: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080960F4 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080960A8 + strh r2, [r4, 0xA] +_080960A8: + movs r0, 0x1 + bl MoveMenuCursor + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0xA] +_080960B8: + bl sub_8095EA0 + ldr r1, _080960D8 @ =gUnknown_083B600C + movs r2, 0xA + ldrsh r0, [r4, r2] +_080960C2: + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080960F4 + .align 2, 0 +_080960D8: .4byte gUnknown_083B600C +_080960DC: + ldr r0, _080960FC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080960F4 + ldrb r0, [r4, 0xC] + bl task_intro_29 + adds r0, r5, 0 + bl DestroyTask +_080960F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080960FC: .4byte gPaletteFade + thumb_func_end sub_8095EB4 + + thumb_func_start sub_8096100 +sub_8096100: @ 8096100 + push {lr} + ldr r0, _08096128 @ =sub_8095EB4 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0809612C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_08096128: .4byte sub_8095EB4 +_0809612C: .4byte gTasks + thumb_func_end sub_8096100 + + thumb_func_start sub_8096130 +sub_8096130: @ 8096130 + push {lr} + ldr r0, _0809615C @ =sub_8095EB4 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08096160 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + ldr r0, _08096164 @ =gUnknown_02038474 + ldrb r0, [r0] + strh r0, [r1, 0xA] + bl pal_fill_black + pop {r0} + bx r0 + .align 2, 0 +_0809615C: .4byte sub_8095EB4 +_08096160: .4byte gTasks +_08096164: .4byte gUnknown_02038474 + thumb_func_end sub_8096130 + + thumb_func_start sub_8096168 +sub_8096168: @ 8096168 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0xD + movs r3, 0x9 + bl MenuDrawTextWindow + ldr r3, _080961A4 @ =gUnknown_083B600C + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0x4 + bl PrintMenuItems + str r4, [sp] + movs r0, 0xC + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x4 + bl InitMenu + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080961A4: .4byte gUnknown_083B600C + thumb_func_end sub_8096168 + + thumb_func_start sub_80961A8 +sub_80961A8: @ 80961A8 + push {lr} + ldr r1, _080961C4 @ =gUnknown_02038474 + ldr r0, _080961C8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + strb r0, [r1] + ldr r1, _080961CC @ =gUnknown_0300485C + ldr r0, _080961D0 @ =sub_8096130 + str r0, [r1] + ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080961C4: .4byte gUnknown_02038474 +_080961C8: .4byte gUnknown_083B6DB4 +_080961CC: .4byte gUnknown_0300485C +_080961D0: .4byte sub_8096130 +_080961D4: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_80961A8 + + thumb_func_start sub_80961D8 +sub_80961D8: @ 80961D8 + push {r4-r7,lr} + ldr r1, _08096258 @ =gPokemonStorage + movs r0, 0 + strb r0, [r1] + movs r5, 0 + adds r7, r1, 0x4 +_080961E4: + movs r4, 0 + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_080961F0: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + adds r0, r7 + adds r0, r6, r0 + bl ZeroBoxMonData + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _080961F0 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _080961E4 + movs r5, 0 +_08096214: + lsls r0, r5, 3 + adds r0, r5 + ldr r6, _0809625C @ =gUnknown_020383E4 + adds r0, r6 + ldr r1, _08096260 @ =gPCText_BOX + bl StringCopy + adds r4, r5, 0x1 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + lsls r4, 16 + lsrs r5, r4, 16 + cmp r5, 0xD + bls _08096214 + movs r5, 0 + adds r3, r6, 0 + adds r3, 0x7E + movs r2, 0x3 +_0809623E: + adds r0, r5, r3 + adds r1, r5, 0 + ands r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0809623E + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08096258: .4byte gPokemonStorage +_0809625C: .4byte gUnknown_020383E4 +_08096260: .4byte gPCText_BOX + thumb_func_end sub_80961D8 + + thumb_func_start sub_8096264 +sub_8096264: @ 8096264 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x20 + mov r8, r0 + adds r4, r1, 0 + adds r6, r2, 0 + mov r9, r3 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _080962F4 @ =gBoxSelectionPopupPalette + str r0, [sp, 0x18] + ldr r1, _080962F8 @ =0xffff0000 + add r5, sp, 0x18 + ldr r0, [r5, 0x4] + ands r0, r1 + orrs r0, r6 + str r0, [r5, 0x4] + mov r1, sp + ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles + str r0, [sp] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1, 0x4] + strh r4, [r1, 0x6] + ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles + str r0, [sp, 0x8] + movs r0, 0xC0 + lsls r0, 1 + strh r0, [r1, 0xC] + adds r0, r4, 0x1 + strh r0, [r1, 0xE] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + adds r0, r5, 0 + bl LoadSpritePalette + mov r0, sp + bl LoadSpriteSheets + ldr r0, _08096304 @ =gUnknown_02038478 + mov r1, r8 + str r1, [r0] + movs r0, 0x90 + lsls r0, 2 + add r0, r8 + strh r4, [r0] + ldr r0, _08096308 @ =0x00000242 + add r0, r8 + strh r6, [r0] + ldr r0, _0809630C @ =0x0000023e + add r8, r0 + mov r0, r9 + mov r1, r8 + strb r0, [r1] + add sp, 0x20 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080962F4: .4byte gBoxSelectionPopupPalette +_080962F8: .4byte 0xffff0000 +_080962FC: .4byte gBoxSelectionPopupCenterTiles +_08096300: .4byte gBoxSelectionPopupSidesTiles +_08096304: .4byte gUnknown_02038478 +_08096308: .4byte 0x00000242 +_0809630C: .4byte 0x0000023e + thumb_func_end sub_8096264 + + thumb_func_start sub_8096310 +sub_8096310: @ 8096310 + push {r4,r5,lr} + ldr r4, _08096344 @ =gUnknown_02038478 + ldr r0, [r4] + ldr r1, _08096348 @ =0x00000242 + adds r0, r1 + ldrh r0, [r0] + bl FreeSpritePaletteByTag + ldr r0, [r4] + movs r5, 0x90 + lsls r5, 2 + adds r0, r5 + ldrh r0, [r0] + bl FreeSpriteTilesByTag + ldr r0, [r4] + adds r0, r5 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + bl FreeSpriteTilesByTag + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096344: .4byte gUnknown_02038478 +_08096348: .4byte 0x00000242 + thumb_func_end sub_8096310 + + thumb_func_start sub_809634C +sub_809634C: @ 809634C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80963D0 + pop {r0} + bx r0 + thumb_func_end sub_809634C + + thumb_func_start sub_809635C +sub_809635C: @ 809635C + push {lr} + bl sub_809658C + pop {r0} + bx r0 + thumb_func_end sub_809635C + + thumb_func_start sub_8096368 +sub_8096368: @ 8096368 + push {lr} + ldr r0, _08096380 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08096384 + movs r0, 0x5 + bl PlaySE + movs r0, 0xC9 + b _080963CC + .align 2, 0 +_08096380: .4byte gMain +_08096384: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080963A4 + movs r0, 0x5 + bl PlaySE + ldr r0, _080963A0 @ =gUnknown_02038478 + ldr r0, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + b _080963CC + .align 2, 0 +_080963A0: .4byte gUnknown_02038478 +_080963A4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080963B8 + movs r0, 0x5 + bl PlaySE + bl sub_809662C + b _080963CA +_080963B8: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080963CA + movs r0, 0x5 + bl PlaySE + bl sub_80965F8 +_080963CA: + movs r0, 0xC8 +_080963CC: + pop {r1} + bx r1 + thumb_func_end sub_8096368 + + thumb_func_start sub_80963D0 +sub_80963D0: @ 80963D0 + push {r4-r6,lr} + sub sp, 0x3C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x34] + str r1, [sp, 0x38] + movs r1, 0xC0 + lsls r1, 24 + ldr r0, [sp, 0x34] + orrs r0, r1 + str r0, [sp, 0x34] + ldr r1, _08096564 @ =0xffff0fff + add r4, sp, 0x34 + ldr r0, [r4, 0x4] + ands r0, r1 + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r4, 0x4] + add r1, sp, 0x1C + movs r2, 0 + strh r2, [r1] + mov r0, sp + adds r0, 0x1E + strh r2, [r0] + str r4, [sp, 0x20] + ldr r0, _08096568 @ =gDummySpriteAnimTable + str r0, [sp, 0x24] + str r2, [sp, 0x28] + ldr r0, _0809656C @ =gDummySpriteAffineAnimTable + str r0, [sp, 0x2C] + ldr r0, _08096570 @ =SpriteCallbackDummy + str r0, [sp, 0x30] + add r0, sp, 0x4 + movs r2, 0x18 + bl memcpy + ldr r6, _08096574 @ =gUnknown_02038478 + ldr r0, [r6] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + strb r5, [r0] + add r2, sp, 0x4 + ldr r1, [r6] + movs r5, 0x90 + lsls r5, 2 + adds r0, r1, r5 + ldrh r0, [r0] + strh r0, [r2] + ldr r3, _08096578 @ =0x00000242 + adds r1, r3 + ldrh r0, [r1] + strh r0, [r2, 0x2] + adds r0, r2, 0 + movs r1, 0xA0 + movs r2, 0x60 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C @ =gSprites + adds r0, r1 + str r0, [r3] + ldrb r2, [r4, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + ands r1, r0 + movs r0, 0x40 + orrs r1, r0 + strb r1, [r4, 0x3] + add r1, sp, 0x4 + adds r3, r5 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _08096580 @ =gSpriteAnimTable_83B604C + str r0, [sp, 0xC] + movs r4, 0 +_08096488: + ldr r0, [r6] + ldr r1, _08096584 @ =0x0000023e + adds r0, r1 + ldrb r3, [r0] + add r0, sp, 0x4 + movs r1, 0x7C + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, [r6] + lsls r3, r4, 2 + adds r2, 0x4 + adds r2, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809657C @ =gSprites + adds r1, r0, r1 + str r1, [r2] + movs r5, 0 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _080964C2 + movs r0, 0xC4 + strh r0, [r1, 0x20] + movs r5, 0x2 +_080964C2: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080964E6 + ldr r1, [r6] + adds r1, 0x4 + adds r1, r3 + ldr r2, [r1] + movs r0, 0x70 + strh r0, [r2, 0x22] + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x3] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080964E6: + ldr r0, [r6] + adds r0, 0x4 + adds r0, r3 + ldr r0, [r0] + lsls r1, r5, 24 + lsrs r1, 24 + bl StartSpriteAnim + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08096488 + movs r4, 0 + ldr r5, _08096574 @ =gUnknown_02038478 +_08096504: + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 19 + movs r3, 0xF8 + lsls r3, 15 + adds r0, r3 + lsrs r0, 16 + lsls r2, r4, 24 + lsrs r2, 24 + ldr r1, [r5] + ldr r3, _08096584 @ =0x0000023e + adds r1, r3 + ldrb r1, [r1] + str r1, [sp] + movs r1, 0x58 + movs r3, 0 + bl sub_809A9A0 + adds r2, r0, 0 + ldr r0, [r5] + lsls r1, r4, 2 + adds r0, 0x20 + adds r0, r1 + str r2, [r0] + cmp r2, 0 + beq _0809654C + movs r1, 0x1 + cmp r4, 0 + bne _08096544 + movs r3, 0x1 + negs r3, r3 + adds r1, r3, 0 +_08096544: + strh r1, [r2, 0x2E] + ldr r1, [r0] + ldr r0, _08096588 @ =sub_8096784 + str r0, [r1, 0x1C] +_0809654C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08096504 + bl sub_809665C + add sp, 0x3C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096564: .4byte 0xffff0fff +_08096568: .4byte gDummySpriteAnimTable +_0809656C: .4byte gDummySpriteAffineAnimTable +_08096570: .4byte SpriteCallbackDummy +_08096574: .4byte gUnknown_02038478 +_08096578: .4byte 0x00000242 +_0809657C: .4byte gSprites +_08096580: .4byte gSpriteAnimTable_83B604C +_08096584: .4byte 0x0000023e +_08096588: .4byte sub_8096784 + thumb_func_end sub_80963D0 + + thumb_func_start sub_809658C +sub_809658C: @ 809658C + push {r4-r6,lr} + ldr r4, _080965F4 @ =gUnknown_02038478 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080965A2 + bl DestroySprite + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_080965A2: + movs r5, 0 + adds r6, r4, 0 +_080965A6: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0x4 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _080965C2 + bl DestroySprite + ldr r0, [r6] + adds r0, 0x4 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080965C2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _080965A6 + movs r5, 0 +_080965CE: + ldr r0, _080965F4 @ =gUnknown_02038478 + ldr r0, [r0] + lsls r1, r5, 2 + adds r0, 0x20 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _080965E2 + bl DestroySprite +_080965E2: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _080965CE + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080965F4: .4byte gUnknown_02038478 + thumb_func_end sub_809658C + + thumb_func_start sub_80965F8 +sub_80965F8: @ 80965F8 + push {lr} + ldr r2, _08096628 @ =gUnknown_02038478 + ldr r1, [r2] + movs r0, 0x8F + lsls r0, 2 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bls _0809661E + ldr r0, [r2] + movs r1, 0x8F + lsls r1, 2 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_0809661E: + bl sub_809665C + pop {r0} + bx r0 + .align 2, 0 +_08096628: .4byte gUnknown_02038478 + thumb_func_end sub_80965F8 + + thumb_func_start sub_809662C +sub_809662C: @ 809662C + push {lr} + ldr r0, _08096644 @ =gUnknown_02038478 + ldr r2, [r0] + movs r1, 0x8F + lsls r1, 2 + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08096648 + subs r1, r0, 0x1 + b _0809664A + .align 2, 0 +_08096644: .4byte gUnknown_02038478 +_08096648: + movs r1, 0xD +_0809664A: + movs r3, 0x8F + lsls r3, 2 + adds r0, r2, r3 + strb r1, [r0] + bl sub_809665C + pop {r0} + bx r0 + thumb_func_end sub_809662C + + thumb_func_start sub_809665C +sub_809665C: @ 809665C + push {r4-r7,lr} + ldr r5, _080966B4 @ =gUnknown_02038478 + ldr r0, [r5] + movs r4, 0x8F + lsls r4, 2 + adds r0, r4 + ldrb r0, [r0] + bl sub_8095ADC + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _080966B8 @ =gStringVar1 + movs r6, 0xFC + strb r6, [r2] + movs r0, 0x4 + strb r0, [r2, 0x1] + movs r0, 0xF + strb r0, [r2, 0x2] + movs r0, 0x1 + strb r0, [r2, 0x3] + movs r0, 0xE + strb r0, [r2, 0x4] + adds r2, 0x5 + ldr r0, [r5] + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 3 + adds r1, r0 + ldr r0, _080966BC @ =gUnknown_020383E4 + adds r1, r0 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r0, 0xFE + strb r0, [r2] + strb r6, [r2, 0x1] + movs r0, 0x11 + strb r0, [r2, 0x2] + cmp r7, 0x9 + bhi _080966C0 + movs r0, 0x28 + b _080966C2 + .align 2, 0 +_080966B4: .4byte gUnknown_02038478 +_080966B8: .4byte gStringVar1 +_080966BC: .4byte gUnknown_020383E4 +_080966C0: + movs r0, 0x22 +_080966C2: + strb r0, [r2, 0x3] + adds r2, 0x4 + adds r0, r2, 0 + adds r1, r7, 0 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + movs r0, 0xA4 + strb r0, [r2, 0x1] + movs r0, 0xA1 + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r0, _080966F0 @ =gStringVar1 + movs r1, 0 + movs r2, 0x1 + bl sub_80966F4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080966F0: .4byte gStringVar1 + thumb_func_end sub_809665C + + thumb_func_start sub_80966F4 +sub_80966F4: @ 80966F4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08096764 @ =gUnknown_02038478 + ldr r0, [r0] + movs r1, 0x90 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + bl GetSpriteTileStartByTag + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 11 + lsls r4, 8 + ldr r2, _08096768 @ =0x06010000 + adds r4, r2 + adds r6, r4 + lsls r5, 5 + adds r6, r5 + ldr r0, _0809676C @ =gUnknown_083B6DB8 + ldr r5, [r0] + mov r1, sp + ldr r2, _08096770 @ =0x00001111 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _08096774 @ =0x040000d4 + str r1, [r4] + str r5, [r4, 0x4] + ldr r0, _08096778 @ =0x81000200 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809677C @ =gWindowConfig_81E6D38 + adds r1, r5, 0 + mov r2, r8 + bl sub_8004E3C + str r5, [r4] + str r6, [r4, 0x4] + ldr r0, _08096780 @ =0x80000200 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08096764: .4byte gUnknown_02038478 +_08096768: .4byte 0x06010000 +_0809676C: .4byte gUnknown_083B6DB8 +_08096770: .4byte 0x00001111 +_08096774: .4byte 0x040000d4 +_08096778: .4byte 0x81000200 +_0809677C: .4byte gWindowConfig_81E6D38 +_08096780: .4byte 0x80000200 + thumb_func_end sub_80966F4 + + thumb_func_start sub_8096784 +sub_8096784: @ 8096784 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080967B4 + strh r2, [r1, 0x30] + ldrh r0, [r1, 0x2E] + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + adds r0, 0x1 + strh r0, [r1, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080967B4 + strh r2, [r1, 0x32] + strh r2, [r1, 0x24] +_080967B4: + pop {r0} + bx r0 + thumb_func_end sub_8096784 + + thumb_func_start task_intro_29 +task_intro_29: @ 80967B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080967D0 @ =gUnknown_0203847D + strb r0, [r1] + ldr r1, _080967D4 @ =0x02000000 + strb r0, [r1, 0x5] + ldr r0, _080967D8 @ =sub_8096884 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080967D0: .4byte gUnknown_0203847D +_080967D4: .4byte 0x02000000 +_080967D8: .4byte sub_8096884 + thumb_func_end task_intro_29 + + thumb_func_start sub_80967DC +sub_80967DC: @ 80967DC + ldr r0, _08096800 @ =REG_BG0HOFS + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08096800: .4byte REG_BG0HOFS + thumb_func_end sub_80967DC + + thumb_func_start sub_8096804 +sub_8096804: @ 8096804 + push {lr} + bl ResetPaletteFade + bl ResetSpriteData + bl FreeSpriteTileRanges + bl FreeAllSpritePalettes + bl ResetTasks + ldr r1, _0809683C @ =gReservedSpriteTileCount + movs r2, 0xA0 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08096840 @ =0x02000020 + adds r1, r0, 0 + adds r1, 0x8 + movs r2, 0x8 + bl sub_809CFDC + ldr r1, _08096844 @ =gKeyRepeatStartDelay + movs r0, 0x14 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809683C: .4byte gReservedSpriteTileCount +_08096840: .4byte 0x02000020 +_08096844: .4byte gKeyRepeatStartDelay + thumb_func_end sub_8096804 + + thumb_func_start sub_8096848 +sub_8096848: @ 8096848 + push {lr} + bl sub_809B0D4 + ldr r2, _08096868 @ =gUnknown_0203847C + movs r1, 0 + ldr r0, _0809686C @ =0x02000000 + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809685C + movs r1, 0x1 +_0809685C: + strb r1, [r2] + ldr r1, _08096870 @ =gUnknown_0203847E + movs r0, 0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08096868: .4byte gUnknown_0203847C +_0809686C: .4byte 0x02000000 +_08096870: .4byte gUnknown_0203847E + thumb_func_end sub_8096848 + + thumb_func_start sub_8096874 +sub_8096874: @ 8096874 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + thumb_func_end sub_8096874 + + thumb_func_start sub_8096884 +sub_8096884: @ 8096884 + push {lr} + ldr r0, _080968A0 @ =gMain + ldr r1, _080968A4 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x9 + bls _08096894 + b _08096986 +_08096894: + lsls r0, 2 + ldr r1, _080968A8 @ =_080968AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080968A0: .4byte gMain +_080968A4: .4byte 0x0000043c +_080968A8: .4byte _080968AC + .align 2, 0 +_080968AC: + .4byte _080968D4 + .4byte _080968E8 + .4byte _080968F4 + .4byte _08096904 + .4byte _0809690E + .4byte _08096918 + .4byte _0809691E + .4byte _08096924 + .4byte _0809692A + .4byte _08096964 +_080968D4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + bl sub_8096804 + b _0809697A +_080968E8: + ldr r0, _080968F0 @ =gWindowConfig_81E6D00 + bl SetUpWindowConfig + b _0809697A + .align 2, 0 +_080968F0: .4byte gWindowConfig_81E6D00 +_080968F4: + ldr r0, _08096900 @ =gWindowConfig_81E6D00 + bl InitMenuWindow + bl MenuZeroFillScreen + b _0809697A + .align 2, 0 +_08096900: .4byte gWindowConfig_81E6D00 +_08096904: + bl sub_80967DC + bl sub_8096848 + b _0809697A +_0809690E: + bl sub_8098B48 + bl sub_809AA24 + b _0809697A +_08096918: + bl sub_8097DE0 + b _0809697A +_0809691E: + bl sub_8097E70 + b _0809697A +_08096924: + bl sub_8098400 + b _0809697A +_0809692A: + ldr r0, _08096950 @ =gPokemonStorage + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096954 @ =0x02000000 + ldr r1, _08096958 @ =0x000012bc + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _0809695C @ =0x000012be + adds r2, r1 + ldr r1, _08096960 @ =0x0000dacb + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _0809697A + .align 2, 0 +_08096950: .4byte gPokemonStorage +_08096954: .4byte 0x02000000 +_08096958: .4byte 0x000012bc +_0809695C: .4byte 0x000012be +_08096960: .4byte 0x0000dacb +_08096964: + bl sub_8096874 + ldr r0, _0809698C @ =sub_8096BF0 + bl sub_8096BE0 + ldr r0, _08096990 @ =sub_8096B38 + bl SetMainCallback2 + ldr r0, _08096994 @ =sub_8096AFC + bl SetVBlankCallback +_0809697A: + ldr r1, _08096998 @ =gMain + ldr r0, _0809699C @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096986: + pop {r0} + bx r0 + .align 2, 0 +_0809698C: .4byte sub_8096BF0 +_08096990: .4byte sub_8096B38 +_08096994: .4byte sub_8096AFC +_08096998: .4byte gMain +_0809699C: .4byte 0x0000043c + thumb_func_end sub_8096884 + + thumb_func_start sub_80969A0 +sub_80969A0: @ 80969A0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080969BC @ =gMain + ldr r1, _080969C0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xA + bls _080969B2 + b _08096AE4 +_080969B2: + lsls r0, 2 + ldr r1, _080969C4 @ =_080969C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080969BC: .4byte gMain +_080969C0: .4byte 0x0000043c +_080969C4: .4byte _080969C8 + .align 2, 0 +_080969C8: + .4byte _080969F4 + .4byte _08096A34 + .4byte _08096A40 + .4byte _08096A50 + .4byte _08096A56 + .4byte _08096A60 + .4byte _08096A66 + .4byte _08096A6C + .4byte _08096A72 + .4byte _08096AAC + .4byte _08096AC8 +_080969F4: + movs r0, 0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r0, 0 + strh r0, [r1] + ldr r1, _08096A28 @ =0x02000000 + ldr r0, _08096A2C @ =gUnknown_0203847D + ldrb r0, [r0] + strb r0, [r1, 0x5] + bl sub_8096804 + ldr r4, _08096A30 @ =gUnknown_0203847F + ldrb r0, [r4] + cmp r0, 0x1 + bne _08096A1A + bl sub_809BBC0 +_08096A1A: + ldrb r0, [r4] + cmp r0, 0 + bne _08096AD8 + bl sub_809BD14 + b _08096AD8 + .align 2, 0 +_08096A28: .4byte 0x02000000 +_08096A2C: .4byte gUnknown_0203847D +_08096A30: .4byte gUnknown_0203847F +_08096A34: + ldr r0, _08096A3C @ =gWindowConfig_81E6D00 + bl SetUpWindowConfig + b _08096AD8 + .align 2, 0 +_08096A3C: .4byte gWindowConfig_81E6D00 +_08096A40: + ldr r0, _08096A4C @ =gWindowConfig_81E6D00 + bl InitMenuWindow + bl MenuZeroFillScreen + b _08096AD8 + .align 2, 0 +_08096A4C: .4byte gWindowConfig_81E6D00 +_08096A50: + bl sub_80967DC + b _08096AD8 +_08096A56: + bl sub_8098B48 + bl sub_809AA98 + b _08096AD8 +_08096A60: + bl sub_8097DE0 + b _08096AD8 +_08096A66: + bl sub_8097E70 + b _08096AD8 +_08096A6C: + bl sub_8098400 + b _08096AD8 +_08096A72: + ldr r0, _08096A98 @ =gPokemonStorage + ldrb r0, [r0] + bl sub_8099BF8 + ldr r2, _08096A9C @ =0x02000000 + ldr r1, _08096AA0 @ =0x000012bc + adds r0, r2, r1 + movs r1, 0xA + strh r1, [r0] + ldr r1, _08096AA4 @ =0x000012be + adds r2, r1 + ldr r1, _08096AA8 @ =0x0000dacb + strh r1, [r2] + bl sub_80F727C + bl sub_80F7404 + b _08096AD8 + .align 2, 0 +_08096A98: .4byte gPokemonStorage +_08096A9C: .4byte 0x02000000 +_08096AA0: .4byte 0x000012bc +_08096AA4: .4byte 0x000012be +_08096AA8: .4byte 0x0000dacb +_08096AAC: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08096AC4 @ =sub_8096AFC + bl SetVBlankCallback + b _08096AD8 + .align 2, 0 +_08096AC4: .4byte sub_8096AFC +_08096AC8: + bl sub_8096874 + ldr r0, _08096AEC @ =sub_8096C68 + bl sub_8096BE0 + ldr r0, _08096AF0 @ =sub_8096B38 + bl SetMainCallback2 +_08096AD8: + ldr r1, _08096AF4 @ =gMain + ldr r0, _08096AF8 @ =0x0000043c + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08096AE4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096AEC: .4byte sub_8096C68 +_08096AF0: .4byte sub_8096B38 +_08096AF4: .4byte gMain +_08096AF8: .4byte 0x0000043c + thumb_func_end sub_80969A0 + + thumb_func_start sub_8096AFC +sub_8096AFC: @ 8096AFC + push {lr} + ldr r2, _08096B2C @ =REG_BG2HOFS + ldr r1, _08096B30 @ =0x02000000 + ldr r3, _08096B34 @ =0x000008b4 + adds r0, r1, r3 + ldrh r0, [r0] + strh r0, [r2] + adds r2, 0x4 + ldrh r0, [r1, 0xA] + strh r0, [r2] + adds r2, 0x2 + ldrh r0, [r1, 0x8] + strh r0, [r2] + bl LoadOam + bl ProcessSpriteCopyRequests + bl sub_809CFF0 + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B2C: .4byte REG_BG2HOFS +_08096B30: .4byte 0x02000000 +_08096B34: .4byte 0x000008b4 + thumb_func_end sub_8096AFC + + thumb_func_start sub_8096B38 +sub_8096B38: @ 8096B38 + push {lr} + ldr r0, _08096B58 @ =0x02000000 + ldr r0, [r0] + bl _call_via_r0 + bl sub_8097E44 + bl sub_8098734 + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + .align 2, 0 +_08096B58: .4byte 0x02000000 + thumb_func_end sub_8096B38 + + thumb_func_start sub_8096B5C +sub_8096B5C: @ 8096B5C + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _08096B70 @ =0x02000000 + ldrb r0, [r4, 0x6] + cmp r0, 0 + beq _08096B74 + cmp r0, 0x1 + beq _08096BAC + b _08096BCC + .align 2, 0 +_08096B70: .4byte 0x02000000 +_08096B74: + ldr r1, _08096B98 @ =0x00002690 + adds r0, r4, r1 + ldr r0, [r0] + ldr r2, _08096B9C @ =0x0000268d + adds r1, r4, r2 + ldrb r1, [r1] + ldr r3, _08096BA0 @ =0x0000268c + adds r2, r4, r3 + ldrb r2, [r2] + ldr r3, _08096BA4 @ =sub_80969A0 + ldr r5, _08096BA8 @ =0x0000268e + adds r4, r5 + ldrb r4, [r4] + str r4, [sp] + bl sub_809D8BC + b _08096BCC + .align 2, 0 +_08096B98: .4byte 0x00002690 +_08096B9C: .4byte 0x0000268d +_08096BA0: .4byte 0x0000268c +_08096BA4: .4byte sub_80969A0 +_08096BA8: .4byte 0x0000268e +_08096BAC: + ldr r0, _08096BD4 @ =gPokemonStorage + ldrb r2, [r0] + lsls r1, r2, 3 + adds r1, r2 + ldr r2, _08096BD8 @ =0x00008344 + adds r0, r2 + adds r1, r0 + movs r0, 0 + str r0, [sp] + ldr r0, _08096BDC @ =sub_80969A0 + str r0, [sp, 0x4] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl DoNamingScreen +_08096BCC: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08096BD4: .4byte gPokemonStorage +_08096BD8: .4byte 0x00008344 +_08096BDC: .4byte sub_80969A0 + thumb_func_end sub_8096B5C + + thumb_func_start sub_8096BE0 +sub_8096BE0: @ 8096BE0 + ldr r1, _08096BEC @ =0x02000000 + str r0, [r1] + movs r0, 0 + strb r0, [r1, 0x4] + bx lr + .align 2, 0 +_08096BEC: .4byte 0x02000000 + thumb_func_end sub_8096BE0 + + thumb_func_start sub_8096BF0 +sub_8096BF0: @ 8096BF0 + push {r4,lr} + ldr r4, _08096C04 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _08096C16 + cmp r0, 0x1 + bgt _08096C08 + cmp r0, 0 + beq _08096C0E + b _08096C5C + .align 2, 0 +_08096C04: .4byte 0x02000000 +_08096C08: + cmp r0, 0x2 + beq _08096C4C + b _08096C5C +_08096C0E: + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + b _08096C38 +_08096C16: + movs r0, 0x2 + bl PlaySE + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08096C48 @ =0x0000dad0 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5CD4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 +_08096C38: + movs r2, 0 + bl BlendPalettes + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096C5C + .align 2, 0 +_08096C48: .4byte 0x0000dad0 +_08096C4C: + bl sub_80C5DCC + lsls r0, 24 + cmp r0, 0 + beq _08096C5C + ldr r0, _08096C64 @ =sub_8096C84 + bl sub_8096BE0 +_08096C5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096C64: .4byte sub_8096C84 + thumb_func_end sub_8096BF0 + + thumb_func_start sub_8096C68 +sub_8096C68: @ 8096C68 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08096C7A + ldr r0, _08096C80 @ =sub_8096C84 + bl sub_8096BE0 +_08096C7A: + pop {r0} + bx r0 + .align 2, 0 +_08096C80: .4byte sub_8096C84 + thumb_func_end sub_8096C68 + + thumb_func_start sub_8096C84 +sub_8096C84: @ 8096C84 + push {r4,lr} + ldr r0, _08096C9C @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _08096C90 + b _08096FBA +_08096C90: + lsls r0, 2 + ldr r1, _08096CA0 @ =_08096CA4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096C9C: .4byte 0x02000000 +_08096CA0: .4byte _08096CA4 + .align 2, 0 +_08096CA4: + .4byte _08096CC0 + .4byte _08096EE0 + .4byte _08096F1C + .4byte _08096F60 + .4byte _08096F80 + .4byte _08096F8A + .4byte _08096FA4 +_08096CC0: + bl sub_809CA40 + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x1 + cmp r0, 0xF + bls _08096CD0 + b _08096FBA +_08096CD0: + lsls r0, 2 + ldr r1, _08096CDC @ =_08096CE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08096CDC: .4byte _08096CE0 + .align 2, 0 +_08096CE0: + .4byte _08096D20 + .4byte _08096FBA + .4byte _08096FBA + .4byte _08096D94 + .4byte _08096D34 + .4byte _08096D5C + .4byte _08096DAC + .4byte _08096DC0 + .4byte _08096DD4 + .4byte _08096DFC + .4byte _08096E30 + .4byte _08096EB8 + .4byte _08096E70 + .4byte _08096E8C + .4byte _08096ECC + .4byte _08096DA0 +_08096D20: + movs r0, 0x5 + bl PlaySE + ldr r1, _08096D30 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096D30: .4byte 0x02000000 +_08096D34: + ldr r4, _08096D48 @ =0x02000000 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D4C + movs r0, 0x10 + bl sub_8098898 + movs r0, 0x3 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096D48: .4byte 0x02000000 +_08096D4C: + bl sub_809B0D4 + ldr r0, _08096D58 @ =sub_8096FC8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D58: .4byte sub_8096FC8 +_08096D5C: + ldr r4, _08096D88 @ =0x02000000 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + beq _08096D66 + b _08096FBA +_08096D66: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08096D80 + ldr r1, _08096D8C @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08096E4C +_08096D80: + ldr r0, _08096D90 @ =sub_8097004 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D88: .4byte 0x02000000 +_08096D8C: .4byte 0x000011f2 +_08096D90: .4byte sub_8097004 +_08096D94: + ldr r0, _08096D9C @ =sub_8097BA0 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096D9C: .4byte sub_8097BA0 +_08096DA0: + ldr r0, _08096DA8 @ =sub_8097CC0 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DA8: .4byte sub_8097CC0 +_08096DAC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DBC @ =sub_809789C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DBC: .4byte sub_809789C +_08096DC0: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096DD0 @ =sub_8097078 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096DD0: .4byte sub_8097078 +_08096DD4: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096DF0 @ =0x02000000 + ldr r0, _08096DF4 @ =gPokemonStorage + ldrb r0, [r0] + adds r0, 0x1 + ldr r2, _08096DF8 @ =0x000008b2 + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0xD + ble _08096E18 + movs r0, 0 + b _08096E16 + .align 2, 0 +_08096DF0: .4byte 0x02000000 +_08096DF4: .4byte gPokemonStorage +_08096DF8: .4byte 0x000008b2 +_08096DFC: + movs r0, 0x5 + bl PlaySE + ldr r4, _08096E24 @ =0x02000000 + ldr r0, _08096E28 @ =gPokemonStorage + ldrb r0, [r0] + subs r0, 0x1 + ldr r2, _08096E2C @ =0x000008b2 + adds r1, r4, r2 + strh r0, [r1] + cmp r0, 0 + bge _08096E18 + movs r0, 0xD +_08096E16: + strh r0, [r1] +_08096E18: + ldrb r0, [r1] + bl sub_8099C70 + movs r0, 0x2 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E24: .4byte 0x02000000 +_08096E28: .4byte gPokemonStorage +_08096E2C: .4byte 0x000008b2 +_08096E30: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + ldr r4, _08096E54 @ =0x02000000 + ldr r1, _08096E58 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _08096E5C +_08096E4C: + movs r0, 0x5 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096E54: .4byte 0x02000000 +_08096E58: .4byte 0x000011f2 +_08096E5C: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E6C @ =sub_809746C + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E6C: .4byte sub_809746C +_08096E70: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _08096E96 + movs r0, 0x5 + bl PlaySE + ldr r0, _08096E88 @ =sub_80972A8 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096E88: .4byte sub_80972A8 +_08096E8C: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + bne _08096EA4 +_08096E96: + ldr r1, _08096EA0 @ =0x02000000 + movs r0, 0x4 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096EA0: .4byte 0x02000000 +_08096EA4: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EB4 @ =c3_0808DC50 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EB4: .4byte c3_0808DC50 +_08096EB8: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EC8 @ =sub_8097390 + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EC8: .4byte sub_8097390 +_08096ECC: + movs r0, 0x5 + bl PlaySE + ldr r0, _08096EDC @ =sub_80972FC + bl sub_8096BE0 + b _08096FBA + .align 2, 0 +_08096EDC: .4byte sub_80972FC +_08096EE0: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + bl sub_809BF48 + lsls r0, 24 + cmp r0, 0 + beq _08096EFA + bl sub_80986E8 + b _08096EFE +_08096EFA: + bl sub_8098710 +_08096EFE: + ldr r4, _08096F14 @ =0x02000000 + ldr r2, _08096F18 @ =0x000011f6 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08096F0E + bl BoxSetMosaic +_08096F0E: + movs r0, 0 + strb r0, [r4, 0x4] + b _08096FBA + .align 2, 0 +_08096F14: .4byte 0x02000000 +_08096F18: .4byte 0x000011f6 +_08096F1C: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08096FBA + ldr r1, _08096F50 @ =gPokemonStorage + ldr r0, _08096F54 @ =0x02000000 + ldr r2, _08096F58 @ =0x000008b2 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08096F5C @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + bne _08096F70 + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + bne _08096F70 + bl sub_809B440 + bl BoxSetMosaic + b _08096F70 + .align 2, 0 +_08096F50: .4byte gPokemonStorage +_08096F54: .4byte 0x02000000 +_08096F58: .4byte 0x000008b2 +_08096F5C: .4byte gUnknown_0203847C +_08096F60: + ldr r0, _08096F78 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C +_08096F70: + ldr r1, _08096F7C @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096F78: .4byte gMain +_08096F7C: .4byte 0x02000000 +_08096F80: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08096F92 +_08096F8A: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08096F92: + bl sub_8098898 + ldr r1, _08096FA0 @ =0x02000000 + movs r0, 0x6 + strb r0, [r1, 0x4] + b _08096FBA + .align 2, 0 +_08096FA0: .4byte 0x02000000 +_08096FA4: + ldr r0, _08096FC0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08096FBA + bl sub_8098A5C + ldr r0, _08096FC4 @ =sub_8096C84 + bl sub_8096BE0 +_08096FBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08096FC0: .4byte gMain +_08096FC4: .4byte sub_8096C84 + thumb_func_end sub_8096C84 + + thumb_func_start sub_8096FC8 +sub_8096FC8: @ 8096FC8 + push {r4,lr} + ldr r4, _08096FD8 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08096FDC + cmp r0, 0x1 + beq _08096FE8 + b _08096FF8 + .align 2, 0 +_08096FD8: .4byte 0x02000000 +_08096FDC: + bl sub_809880C + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08096FF8 +_08096FE8: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08096FF8 + ldr r0, _08097000 @ =sub_8096C84 + bl sub_8096BE0 +_08096FF8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097000: .4byte sub_8096C84 + thumb_func_end sub_8096FC8 + + thumb_func_start sub_8097004 +sub_8097004: @ 8097004 + push {r4,lr} + ldr r4, _08097018 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0x1 + beq _0809702E + cmp r0, 0x1 + bgt _0809701C + cmp r0, 0 + beq _08097022 + b _0809706A + .align 2, 0 +_08097018: .4byte 0x02000000 +_0809701C: + cmp r0, 0x2 + beq _0809704C + b _0809706A +_08097022: + movs r0, 0x5 + bl PlaySE + bl add_to_c3_somehow + b _08097044 +_0809702E: + bl sub_80985CC + lsls r0, 24 + cmp r0, 0 + bne _0809706A + bl sub_809B0F4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809B0C0 +_08097044: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809706A +_0809704C: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _0809706A + ldr r1, _08097070 @ =0x000011f6 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097064 + bl BoxSetMosaic +_08097064: + ldr r0, _08097074 @ =sub_8096C84 + bl sub_8096BE0 +_0809706A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097070: .4byte 0x000011f6 +_08097074: .4byte sub_8096C84 + thumb_func_end sub_8097004 + + thumb_func_start sub_8097078 +sub_8097078: @ 8097078 + push {r4,lr} + ldr r0, _08097090 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bls _08097084 + b _0809729A +_08097084: + lsls r0, 2 + ldr r1, _08097094 @ =_08097098 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097090: .4byte 0x02000000 +_08097094: .4byte _08097098 + .align 2, 0 +_08097098: + .4byte _080970B0 + .4byte _080970C8 + .4byte _08097258 + .4byte _0809726C + .4byte _08097262 + .4byte _08097284 +_080970B0: + movs r0, 0x4 + bl sub_8098898 + bl sub_809CE84 + ldr r1, _080970C4 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080970C4: .4byte 0x02000000 +_080970C8: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bls _080970D8 + b _0809729A +_080970D8: + lsls r0, 2 + ldr r1, _080970E4 @ =_080970E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080970E4: .4byte _080970E8 + .align 2, 0 +_080970E8: + .4byte _08097110 + .4byte _08097110 + .4byte _08097190 + .4byte _08097178 + .4byte _08097120 + .4byte _08097158 + .4byte _08097140 + .4byte _08097230 + .4byte _080971CC + .4byte _08097244 +_08097110: + bl sub_8098A5C + ldr r0, _0809711C @ =sub_8096C84 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809711C: .4byte sub_8096C84 +_08097120: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809713C @ =sub_80972A8 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809713C: .4byte sub_80972A8 +_08097140: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097154 @ =sub_80972FC + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097154: .4byte sub_80972FC +_08097158: + bl sub_809BEBC + lsls r0, 24 + cmp r0, 0 + beq _080971D6 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097174 @ =c3_0808DC50 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097174: .4byte c3_0808DC50 +_08097178: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _0809718C @ =sub_8097390 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809718C: .4byte sub_8097390 +_08097190: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + bne _080971D6 + ldr r4, _080971C0 @ =0x02000000 + ldr r1, _080971C4 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + bne _08097210 + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _080971C8 @ =sub_809746C + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_080971C0: .4byte 0x02000000 +_080971C4: .4byte 0x000011f2 +_080971C8: .4byte sub_809746C +_080971CC: + bl sub_809BE80 + lsls r0, 24 + cmp r0, 0 + beq _080971E4 +_080971D6: + ldr r1, _080971E0 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_080971E0: .4byte 0x02000000 +_080971E4: + ldr r4, _080971F8 @ =0x02000000 + ldr r1, _080971FC @ =0x000011f9 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08097200 + movs r0, 0x4 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_080971F8: .4byte 0x02000000 +_080971FC: .4byte 0x000011f9 +_08097200: + ldr r1, _08097218 @ =0x000011f2 + adds r0, r4, r1 + ldrh r0, [r0] + bl itemid_is_mail + lsls r0, 24 + cmp r0, 0 + beq _0809721C +_08097210: + movs r0, 0x3 + strb r0, [r4, 0x4] + b _0809729A + .align 2, 0 +_08097218: .4byte 0x000011f2 +_0809721C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809722C @ =sub_8097594 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_0809722C: .4byte sub_8097594 +_08097230: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097240 @ =sub_8097788 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097240: .4byte sub_8097788 +_08097244: + movs r0, 0x5 + bl PlaySE + ldr r0, _08097254 @ =sub_80977E4 + bl sub_8096BE0 + b _0809729A + .align 2, 0 +_08097254: .4byte sub_80977E4 +_08097258: + movs r0, 0x20 + bl PlaySE + movs r0, 0xD + b _08097274 +_08097262: + movs r0, 0x20 + bl PlaySE + movs r0, 0x11 + b _08097274 +_0809726C: + movs r0, 0x20 + bl PlaySE + movs r0, 0x16 +_08097274: + bl sub_8098898 + ldr r1, _08097280 @ =0x02000000 + movs r0, 0x5 + strb r0, [r1, 0x4] + b _0809729A + .align 2, 0 +_08097280: .4byte 0x02000000 +_08097284: + ldr r0, _080972A0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _0809729A + bl sub_8098A5C + ldr r0, _080972A4 @ =sub_8096C84 + bl sub_8096BE0 +_0809729A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972A0: .4byte gMain +_080972A4: .4byte sub_8096C84 + thumb_func_end sub_8097078 + + thumb_func_start sub_80972A8 +sub_80972A8: @ 80972A8 + push {r4,lr} + ldr r4, _080972B8 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080972BC + cmp r0, 0x1 + beq _080972CA + b _080972F2 + .align 2, 0 +_080972B8: .4byte 0x02000000 +_080972BC: + movs r0, 0 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080972F2 +_080972CA: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _080972F2 + ldr r0, _080972E4 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080972EC + ldr r0, _080972E8 @ =sub_8097858 + bl sub_8096BE0 + b _080972F2 + .align 2, 0 +_080972E4: .4byte gUnknown_0203847C +_080972E8: .4byte sub_8097858 +_080972EC: + ldr r0, _080972F8 @ =sub_8096C84 + bl sub_8096BE0 +_080972F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080972F8: .4byte sub_8096C84 + thumb_func_end sub_80972A8 + + thumb_func_start sub_80972FC +sub_80972FC: @ 80972FC + push {r4,lr} + ldr r4, _0809730C @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097310 + cmp r0, 0x1 + beq _0809731E + b _08097346 + .align 2, 0 +_0809730C: .4byte 0x02000000 +_08097310: + movs r0, 0x1 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097346 +_0809731E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097346 + ldr r0, _08097338 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _08097340 + ldr r0, _0809733C @ =sub_8097858 + bl sub_8096BE0 + b _08097346 + .align 2, 0 +_08097338: .4byte gUnknown_0203847C +_0809733C: .4byte sub_8097858 +_08097340: + ldr r0, _0809734C @ =sub_8096C84 + bl sub_8096BE0 +_08097346: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809734C: .4byte sub_8096C84 + thumb_func_end sub_80972FC + + thumb_func_start c3_0808DC50 +c3_0808DC50: @ 8097350 + push {r4,lr} + ldr r4, _08097360 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _08097364 + cmp r0, 0x1 + beq _08097372 + b _08097386 + .align 2, 0 +_08097360: .4byte 0x02000000 +_08097364: + movs r0, 0x2 + bl sub_809B100 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097386 +_08097372: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097386 + bl BoxSetMosaic + ldr r0, _0809738C @ =sub_8096C84 + bl sub_8096BE0 +_08097386: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809738C: .4byte sub_8096C84 + thumb_func_end c3_0808DC50 + + thumb_func_start sub_8097390 +sub_8097390: @ 8097390 + push {lr} + ldr r0, _080973A4 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x5 + bhi _08097462 + lsls r0, 2 + ldr r1, _080973A8 @ =_080973AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080973A4: .4byte 0x02000000 +_080973A8: .4byte _080973AC + .align 2, 0 +_080973AC: + .4byte _080973C4 + .4byte _080973FC + .4byte _0809741C + .4byte _0809742C + .4byte _0809743E + .4byte _0809745C +_080973C4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _080973E4 + movs r0, 0xE + bl sub_8098898 + ldr r1, _080973E0 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973E0: .4byte 0x02000000 +_080973E4: + bl sub_809B0E0 + movs r0, 0 + bl sub_809B100 + ldr r1, _080973F8 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_080973F8: .4byte 0x02000000 +_080973FC: + ldr r0, _08097414 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097462 + bl sub_8098A5C + ldr r0, _08097418 @ =sub_8096C84 + bl sub_8096BE0 + b _08097462 + .align 2, 0 +_08097414: .4byte gMain +_08097418: .4byte sub_8096C84 +_0809741C: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_809880C + b _0809744C +_0809742C: + bl sub_8098830 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + movs r0, 0x1 + bl sub_809B100 + b _0809744C +_0809743E: + bl sub_809B130 + lsls r0, 24 + cmp r0, 0 + bne _08097462 + bl sub_80987DC +_0809744C: + ldr r1, _08097458 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097462 + .align 2, 0 +_08097458: .4byte 0x02000000 +_0809745C: + ldr r0, _08097468 @ =sub_8097004 + bl sub_8096BE0 +_08097462: + pop {r0} + bx r0 + .align 2, 0 +_08097468: .4byte sub_8097004 + thumb_func_end sub_8097390 + + thumb_func_start sub_809746C +sub_809746C: @ 809746C + push {r4,lr} + ldr r0, _08097484 @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0x4 + bls _08097478 + b _08097584 +_08097478: + lsls r0, 2 + ldr r1, _08097488 @ =_0809748C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097484: .4byte 0x02000000 +_08097488: .4byte _0809748C + .align 2, 0 +_0809748C: + .4byte _080974A0 + .4byte _080974D8 + .4byte _08097534 + .4byte _08097548 + .4byte _0809756C +_080974A0: + movs r0, 0x6 + bl sub_8098898 + ldr r4, _080974C8 @ =0x02002370 + ldr r2, _080974CC @ =0x0000daca + adds r0, r4, 0 + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _080974D0 @ =gUnknown_0203847E + ldrb r0, [r0] + bl sub_809634C + ldr r0, _080974D4 @ =0xffffdc90 + adds r4, r0 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097584 + .align 2, 0 +_080974C8: .4byte 0x02002370 +_080974CC: .4byte 0x0000daca +_080974D0: .4byte gUnknown_0203847E +_080974D4: .4byte 0xffffdc90 +_080974D8: + bl sub_8096368 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC8 + beq _08097584 + cmp r4, 0xC9 + bne _080974F6 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + b _0809755E +_080974F6: + adds r0, r4, 0 + bl sub_809B62C + lsls r0, 24 + cmp r0, 0 + beq _08097518 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + ldr r1, _08097514 @ =0x02000000 + movs r0, 0x2 + b _08097522 + .align 2, 0 +_08097514: .4byte 0x02000000 +_08097518: + movs r0, 0x8 + bl sub_8098898 + ldr r1, _0809752C @ =0x02000000 + movs r0, 0x4 +_08097522: + strb r0, [r1, 0x4] + ldr r0, _08097530 @ =gUnknown_0203847E + strb r4, [r0] + b _08097584 + .align 2, 0 +_0809752C: .4byte 0x02000000 +_08097530: .4byte gUnknown_0203847E +_08097534: + bl party_compaction + bl sub_8099310 + ldr r1, _08097544 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + b _08097582 + .align 2, 0 +_08097544: .4byte 0x02000000 +_08097548: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097584 + bl sub_809B6BC + bl BoxSetMosaic + bl sub_80987DC +_0809755E: + ldr r0, _08097568 @ =sub_8096C84 + bl sub_8096BE0 + b _08097584 + .align 2, 0 +_08097568: .4byte sub_8096C84 +_0809756C: + ldr r0, _0809758C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08097584 + movs r0, 0x6 + bl sub_8098898 + ldr r1, _08097590 @ =0x02000000 + movs r0, 0x1 +_08097582: + strb r0, [r1, 0x4] +_08097584: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809758C: .4byte gMain +_08097590: .4byte 0x02000000 + thumb_func_end sub_809746C + + thumb_func_start sub_8097594 +sub_8097594: @ 8097594 + push {r4,lr} + ldr r0, _080975AC @ =0x02000000 + ldrb r0, [r0, 0x4] + cmp r0, 0xD + bls _080975A0 + b _0809777A +_080975A0: + lsls r0, 2 + ldr r1, _080975B0 @ =_080975B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080975AC: .4byte 0x02000000 +_080975B0: .4byte _080975B4 + .align 2, 0 +_080975B4: + .4byte _080975EC + .4byte _08097600 + .4byte _0809763A + .4byte _0809766E + .4byte _0809767A + .4byte _08097690 + .4byte _080976C8 + .4byte _080976E0 + .4byte _080976EC + .4byte _080976F0 + .4byte _08097704 + .4byte _08097720 + .4byte _08097732 + .4byte _08097764 +_080975EC: + movs r0, 0x9 + bl sub_8098898 + movs r0, 0x1 + bl sub_8098A38 + ldr r1, _0809761C @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] +_08097600: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0809762C + cmp r1, 0 + bgt _08097620 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097626 + b _0809777A + .align 2, 0 +_0809761C: .4byte 0x02000000 +_08097620: + cmp r1, 0x1 + beq _08097626 + b _0809777A +_08097626: + bl sub_8098A5C + b _080976E0 +_0809762C: + bl sub_8098A5C + bl sub_809B7D4 + bl sub_809B6DC + b _08097744 +_0809763A: + bl sub_809B960 + bl sub_809B734 + lsls r0, 24 + cmp r0, 0 + beq _0809764A + b _0809777A +_0809764A: + ldr r4, _08097650 @ =0x02000000 + b _0809765A + .align 2, 0 +_08097650: .4byte 0x02000000 +_08097654: + cmp r0, 0 + bne _0809765A + b _08097758 +_0809765A: + bl sub_809B960 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _08097654 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809777A +_0809766E: + bl sub_809B760 + bl sub_809801C + movs r0, 0xA + b _08097740 +_0809767A: + ldr r0, _0809768C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08097688 + b _0809777A +_08097688: + movs r0, 0xB + b _08097740 + .align 2, 0 +_0809768C: .4byte gMain +_08097690: + ldr r0, _080976B4 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _080976B8 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080976BC + bl party_compaction + bl sub_8099310 + b _08097744 + .align 2, 0 +_080976B4: .4byte gMain +_080976B8: .4byte gUnknown_0203847C +_080976BC: + ldr r1, _080976C4 @ =0x02000000 + movs r0, 0x7 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_080976C4: .4byte 0x02000000 +_080976C8: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B440 + bl BoxSetMosaic + bl sub_80987DC + b _08097744 +_080976E0: + ldr r0, _080976E8 @ =sub_8096C84 + bl sub_8096BE0 + b _0809777A + .align 2, 0 +_080976E8: .4byte sub_8096C84 +_080976EC: + movs r0, 0xA + b _08097740 +_080976F0: + ldr r0, _08097700 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x15 + b _08097740 + .align 2, 0 +_08097700: .4byte gMain +_08097704: + ldr r0, _0809771C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + bl sub_8099958 + b _08097744 + .align 2, 0 +_0809771C: .4byte gMain +_08097720: + bl sub_8099990 + lsls r0, 24 + cmp r0, 0 + bne _0809777A + bl sub_809B7AC + movs r0, 0x13 + b _08097740 +_08097732: + ldr r0, _08097750 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + movs r0, 0x14 +_08097740: + bl sub_8098898 +_08097744: + ldr r1, _08097754 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097750: .4byte gMain +_08097754: .4byte 0x02000000 +_08097758: + ldr r1, _08097760 @ =0x02000000 + movs r0, 0x8 + strb r0, [r1, 0x4] + b _0809777A + .align 2, 0 +_08097760: .4byte 0x02000000 +_08097764: + ldr r0, _08097780 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _0809777A + bl sub_8098A5C + ldr r0, _08097784 @ =sub_8096C84 + bl sub_8096BE0 +_0809777A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097780: .4byte gMain +_08097784: .4byte sub_8096C84 + thumb_func_end sub_8097594 + + thumb_func_start sub_8097788 +sub_8097788: @ 8097788 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0809779C @ =0x02000000 + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _080977A0 + cmp r4, 0x1 + beq _080977BC + b _080977D4 + .align 2, 0 +_0809779C: .4byte 0x02000000 +_080977A0: + bl sub_809BC18 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080977D4 +_080977BC: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080977D4 + ldr r0, _080977DC @ =gUnknown_0203847F + strb r1, [r0] + strb r1, [r5, 0x6] + ldr r0, _080977E0 @ =sub_8096B5C + bl SetMainCallback2 +_080977D4: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080977DC: .4byte gUnknown_0203847F +_080977E0: .4byte sub_8096B5C + thumb_func_end sub_8097788 + + thumb_func_start sub_80977E4 +sub_80977E4: @ 80977E4 + push {r4,lr} + ldr r4, _080977F4 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080977F8 + cmp r0, 0x1 + beq _08097824 + b _0809784C + .align 2, 0 +_080977F4: .4byte 0x02000000 +_080977F8: + movs r0, 0xC + bl sub_8098898 + ldr r0, _08097820 @ =0x000011f7 + adds r2, r4, r0 + ldrb r1, [r2] + movs r3, 0x96 + lsls r3, 5 + adds r0, r4, r3 + strb r1, [r0] + ldrb r0, [r2] + movs r1, 0xB0 + movs r2, 0x10 + bl sub_80F7418 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _0809784C + .align 2, 0 +_08097820: .4byte 0x000011f7 +_08097824: + bl sub_80F7500 + lsls r0, 24 + cmp r0, 0 + bne _0809784C + bl sub_80F7470 + bl sub_8098A5C + movs r1, 0x96 + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + bl sub_809BDD8 + bl sub_809801C + ldr r0, _08097854 @ =sub_8096C84 + bl sub_8096BE0 +_0809784C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097854: .4byte sub_8096C84 + thumb_func_end sub_80977E4 + + thumb_func_start sub_8097858 +sub_8097858: @ 8097858 + push {r4,lr} + ldr r4, _08097868 @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _0809786C + cmp r0, 0x1 + beq _0809787C + b _08097890 + .align 2, 0 +_08097868: .4byte 0x02000000 +_0809786C: + bl party_compaction + bl sub_8099310 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097890 +_0809787C: + bl sub_8099374 + lsls r0, 24 + cmp r0, 0 + bne _08097890 + bl sub_80987DC + ldr r0, _08097898 @ =sub_8096C84 + bl sub_8096BE0 +_08097890: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097898: .4byte sub_8096C84 + thumb_func_end sub_8097858 + + thumb_func_start sub_809789C +sub_809789C: @ 809789C + push {r4,lr} + ldr r4, _080978AC @ =0x02000000 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080978B0 + cmp r0, 0x1 + beq _080978C2 + b _08097968 + .align 2, 0 +_080978AC: .4byte 0x02000000 +_080978B0: + movs r0, 0x1 + bl sub_8098898 + bl sub_809CE84 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097968 +_080978C2: + bl sub_809CF30 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _08097968 + lsls r0, 2 + ldr r1, _080978DC @ =_080978E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080978DC: .4byte _080978E0 + .align 2, 0 +_080978E0: + .4byte _08097914 + .4byte _08097914 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097968 + .4byte _08097958 + .4byte _08097940 + .4byte _0809792C +_08097914: + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _08097928 @ =sub_8096C84 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097928: .4byte sub_8096C84 +_0809792C: + movs r0, 0x5 + bl PlaySE + ldr r0, _0809793C @ =sub_8097B44 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_0809793C: .4byte sub_8097B44 +_08097940: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097954 @ =sub_8097974 + bl sub_8096BE0 + b _08097968 + .align 2, 0 +_08097954: .4byte sub_8097974 +_08097958: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldr r0, _08097970 @ =sub_8097A64 + bl sub_8096BE0 +_08097968: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097970: .4byte sub_8097A64 + thumb_func_end sub_809789C + + thumb_func_start sub_8097974 +sub_8097974: @ 8097974 + push {r4,r5,lr} + ldr r5, _08097988 @ =0x02000000 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _080979A2 + cmp r0, 0x1 + bgt _0809798C + cmp r0, 0 + beq _08097996 + b _08097A5A + .align 2, 0 +_08097988: .4byte 0x02000000 +_0809798C: + cmp r0, 0x2 + beq _080979FC + cmp r0, 0x3 + beq _08097A44 + b _08097A5A +_08097996: + bl sub_8098A80 + movs r0, 0x2 + bl sub_8098898 + b _08097A3C +_080979A2: + bl sub_809CF30 + ldr r1, _080979CC @ =0x00000d5e + adds r4, r5, r1 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _080979D4 + movs r0, 0x1 + bl sub_809A860 + bl sub_8098A5C + ldr r0, _080979D0 @ =sub_8096C84 + bl sub_8096BE0 + b _08097A5A + .align 2, 0 +_080979CC: .4byte 0x00000d5e +_080979D0: .4byte sub_8096C84 +_080979D4: + cmp r0, r1 + blt _08097A5A + cmp r0, 0xF + bgt _08097A5A + cmp r0, 0xC + blt _08097A5A + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4] + subs r0, 0xC + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8098AA8 + movs r0, 0x3 + bl sub_8098898 + b _08097A3C +_080979FC: + bl sub_809CF30 + movs r1, 0xD6 + lsls r1, 4 + adds r4, r5, r1 + strh r0, [r4] + movs r0, 0 + ldrsh r1, [r4, r0] + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + beq _08097A5A + adds r0, 0x1 + cmp r1, r0 + bne _08097A24 + bl sub_8098A5C + movs r0, 0 + strb r0, [r5, 0x4] + b _08097A5A +_08097A24: + movs r0, 0x5 + bl PlaySE + bl sub_8098A5C + ldrh r0, [r4] + subs r0, 0x10 + strh r0, [r4] + lsls r0, 24 + lsrs r0, 24 + bl sub_8099DCC +_08097A3C: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097A5A +_08097A44: + bl sub_8099E08 + lsls r0, 24 + cmp r0, 0 + bne _08097A5A + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097A60 @ =sub_8096C84 + bl sub_8096BE0 +_08097A5A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097A60: .4byte sub_8096C84 + thumb_func_end sub_8097974 + + thumb_func_start sub_8097A64 +sub_8097A64: @ 8097A64 + push {r4,r5,lr} + ldr r5, _08097A78 @ =0x02000000 + ldrb r0, [r5, 0x4] + cmp r0, 0x1 + beq _08097AB0 + cmp r0, 0x1 + bgt _08097A7C + cmp r0, 0 + beq _08097A86 + b _08097B32 + .align 2, 0 +_08097A78: .4byte 0x02000000 +_08097A7C: + cmp r0, 0x2 + beq _08097B00 + cmp r0, 0x3 + beq _08097B18 + b _08097B32 +_08097A86: + movs r0, 0x5 + bl sub_8098898 + ldr r1, _08097AA4 @ =0x00002370 + adds r0, r5, r1 + ldr r2, _08097AA8 @ =0x0000daca + movs r1, 0x7 + movs r3, 0x3 + bl sub_8096264 + ldr r0, _08097AAC @ =gPokemonStorage + ldrb r0, [r0] + bl sub_809634C + b _08097B0A + .align 2, 0 +_08097AA4: .4byte 0x00002370 +_08097AA8: .4byte 0x0000daca +_08097AAC: .4byte gPokemonStorage +_08097AB0: + bl sub_8096368 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08097AF4 @ =0x000008b2 + adds r4, r5, r2 + strh r0, [r4] + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + beq _08097B32 + bl sub_8098A5C + bl sub_809635C + bl sub_8096310 + movs r2, 0 + ldrsh r0, [r4, r2] + cmp r0, 0xC9 + beq _08097AE4 + adds r1, r0, 0 + ldr r0, _08097AF8 @ =gPokemonStorage + ldrb r0, [r0] + cmp r1, r0 + bne _08097B0A +_08097AE4: + movs r0, 0x1 + bl sub_809A860 + ldr r0, _08097AFC @ =sub_8096C84 + bl sub_8096BE0 + b _08097B32 + .align 2, 0 +_08097AF4: .4byte 0x000008b2 +_08097AF8: .4byte gPokemonStorage +_08097AFC: .4byte sub_8096C84 +_08097B00: + ldr r1, _08097B14 @ =0x000008b2 + adds r0, r5, r1 + ldrb r0, [r0] + bl sub_8099C70 +_08097B0A: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B32 + .align 2, 0 +_08097B14: .4byte 0x000008b2 +_08097B18: + bl sub_8099D34 + lsls r0, 24 + cmp r0, 0 + bne _08097B32 + ldr r1, _08097B38 @ =gPokemonStorage + ldr r2, _08097B3C @ =0x000008b2 + adds r0, r5, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, _08097B40 @ =sub_8096C84 + bl sub_8096BE0 +_08097B32: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B38: .4byte gPokemonStorage +_08097B3C: .4byte 0x000008b2 +_08097B40: .4byte sub_8096C84 + thumb_func_end sub_8097A64 + + thumb_func_start sub_8097B44 +sub_8097B44: @ 8097B44 + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _08097B58 @ =0x02000000 + ldrb r4, [r5, 0x4] + cmp r4, 0 + beq _08097B5C + cmp r4, 0x1 + beq _08097B78 + b _08097B8E + .align 2, 0 +_08097B58: .4byte 0x02000000 +_08097B5C: + bl sub_809BB90 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _08097B8E +_08097B78: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08097B8E + ldr r0, _08097B98 @ =gUnknown_0203847F + strb r4, [r0] + strb r4, [r5, 0x6] + ldr r0, _08097B9C @ =sub_8096B5C + bl SetMainCallback2 +_08097B8E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08097B98: .4byte gUnknown_0203847F +_08097B9C: .4byte sub_8096B5C + thumb_func_end sub_8097B44 + + thumb_func_start sub_8097BA0 +sub_8097BA0: @ 8097BA0 + push {r4,lr} + ldr r0, _08097BB8 @ =0x02000000 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097BAE + b _08097CB0 +_08097BAE: + lsls r0, r1, 2 + ldr r1, _08097BBC @ =_08097BC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097BB8: .4byte 0x02000000 +_08097BBC: .4byte _08097BC0 + .align 2, 0 +_08097BC0: + .4byte _08097BD4 + .4byte _08097C18 + .4byte _08097C2C + .4byte _08097C74 + .4byte _08097C98 +_08097BD4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097BF8 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097BF4 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097BF4: .4byte 0x02000000 +_08097BF8: + movs r0, 0x5 + bl PlaySE + movs r0, 0 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097C14 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C14: .4byte 0x02000000 +_08097C18: + ldr r0, _08097C28 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097CB0 + b _08097C4A + .align 2, 0 +_08097C28: .4byte gMain +_08097C2C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097C5C + cmp r1, 0 + bgt _08097C46 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097C4A + b _08097CB0 +_08097C46: + cmp r1, 0x1 + bne _08097CB0 +_08097C4A: + bl sub_8098A5C + ldr r0, _08097C58 @ =sub_8096C84 + bl sub_8096BE0 + b _08097CB0 + .align 2, 0 +_08097C58: .4byte sub_8096C84 +_08097C5C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097C70 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097CB0 + .align 2, 0 +_08097C70: .4byte 0x02000000 +_08097C74: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097C94 @ =0x0000dad0 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097CB0 + .align 2, 0 +_08097C94: .4byte 0x0000dad0 +_08097C98: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097CB0 + bl CalculatePlayerPartyCount + ldr r1, _08097CB8 @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _08097CBC @ =sub_80961A8 + bl SetMainCallback2 +_08097CB0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097CB8: .4byte gPlayerPartyCount +_08097CBC: .4byte sub_80961A8 + thumb_func_end sub_8097BA0 + + thumb_func_start sub_8097CC0 +sub_8097CC0: @ 8097CC0 + push {r4,lr} + ldr r0, _08097CD8 @ =0x02000000 + ldrb r1, [r0, 0x4] + adds r4, r0, 0 + cmp r1, 0x4 + bls _08097CCE + b _08097DD0 +_08097CCE: + lsls r0, r1, 2 + ldr r1, _08097CDC @ =_08097CE0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097CD8: .4byte 0x02000000 +_08097CDC: .4byte _08097CE0 + .align 2, 0 +_08097CE0: + .4byte _08097CF4 + .4byte _08097D38 + .4byte _08097D4C + .4byte _08097D94 + .4byte _08097DB8 +_08097CF4: + bl sub_809BF20 + lsls r0, 24 + cmp r0, 0 + beq _08097D18 + movs r0, 0x20 + bl PlaySE + movs r0, 0xF + bl sub_8098898 + ldr r1, _08097D14 @ =0x02000000 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D14: .4byte 0x02000000 +_08097D18: + movs r0, 0x5 + bl PlaySE + movs r0, 0x12 + bl sub_8098898 + movs r0, 0 + bl sub_8098A38 + ldr r1, _08097D34 @ =0x02000000 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D34: .4byte 0x02000000 +_08097D38: + ldr r0, _08097D48 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0xF3 + ands r0, r1 + cmp r0, 0 + beq _08097DD0 + b _08097D6C + .align 2, 0 +_08097D48: .4byte gMain +_08097D4C: + bl ProcessMenuInputNoWrap + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08097D6C + cmp r1, 0 + bgt _08097D66 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08097D7C + b _08097DD0 +_08097D66: + cmp r1, 0x1 + beq _08097D7C + b _08097DD0 +_08097D6C: + bl sub_8098A5C + ldr r0, _08097D78 @ =sub_8096C84 + bl sub_8096BE0 + b _08097DD0 + .align 2, 0 +_08097D78: .4byte sub_8096C84 +_08097D7C: + movs r0, 0x3 + bl PlaySE + bl sub_8098A5C + ldr r1, _08097D90 @ =0x02000000 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08097DD0 + .align 2, 0 +_08097D90: .4byte 0x02000000 +_08097D94: + movs r1, 0 + movs r0, 0xE + strh r0, [r4, 0xC] + ldr r0, _08097DB4 @ =0x0000dad0 + strh r0, [r4, 0xE] + movs r0, 0x14 + strh r0, [r4, 0x10] + strh r1, [r4, 0x12] + adds r0, r4, 0 + adds r0, 0xC + bl sub_80C5E38 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _08097DD0 + .align 2, 0 +_08097DB4: .4byte 0x0000dad0 +_08097DB8: + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08097DD0 + bl CalculatePlayerPartyCount + ldr r1, _08097DD8 @ =gPlayerPartyCount + strb r0, [r1] + ldr r0, _08097DDC @ =sub_80961A8 + bl SetMainCallback2 +_08097DD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097DD8: .4byte gPlayerPartyCount +_08097DDC: .4byte sub_80961A8 + thumb_func_end sub_8097CC0 + + thumb_func_start sub_8097DE0 +sub_8097DE0: @ 8097DE0 + push {lr} + ldr r1, _08097E1C @ =0x02000000 + movs r0, 0 + strb r0, [r1, 0x7] + strh r0, [r1, 0x8] + strh r0, [r1, 0xA] + ldr r1, _08097E20 @ =REG_BG3CNT + ldr r2, _08097E24 @ =0x00001e0f + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile + ldr r2, _08097E2C @ =0x0600e000 + ldr r0, _08097E30 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _08097E34 @ =0x80000010 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap + ldr r1, _08097E3C @ =0x0600f000 + bl LZ77UnCompVram + ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette + movs r1, 0xD0 + movs r2, 0x10 + bl LoadPalette + pop {r0} + bx r0 + .align 2, 0 +_08097E1C: .4byte 0x02000000 +_08097E20: .4byte REG_BG3CNT +_08097E24: .4byte 0x00001e0f +_08097E28: .4byte gPokemonStorageScrollingBGTile +_08097E2C: .4byte 0x0600e000 +_08097E30: .4byte 0x040000d4 +_08097E34: .4byte 0x80000010 +_08097E38: .4byte gPokemonStorageScrollingBGTilemap +_08097E3C: .4byte 0x0600f000 +_08097E40: .4byte gPokemonStorageScrollingBGPalette + thumb_func_end sub_8097DE0 + + thumb_func_start sub_8097E44 +sub_8097E44: @ 8097E44 + push {lr} + ldr r1, _08097E6C @ =0x02000000 + ldrb r0, [r1, 0x7] + adds r0, 0x1 + strb r0, [r1, 0x7] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _08097E66 + movs r0, 0 + strb r0, [r1, 0x7] + ldrh r0, [r1, 0x8] + subs r0, 0x1 + strh r0, [r1, 0x8] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08097E66: + pop {r0} + bx r0 + .align 2, 0 +_08097E6C: .4byte 0x02000000 + thumb_func_end sub_8097E44 + + thumb_func_start sub_8097E70 +sub_8097E70: @ 8097E70 + push {r4,lr} + sub sp, 0x10 + ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx + ldr r1, _08097F30 @ =0x06005000 + bl LZ77UnCompVram + ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap + ldr r4, _08097F38 @ =gUnknown_02039760 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _08097F3C @ =0x06007800 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xA + str r1, [sp, 0x8] + movs r1, 0x14 + str r1, [sp, 0xC] + movs r1, 0 + movs r2, 0 + adds r3, r4, 0 + bl sub_809D034 + ldr r0, _08097F40 @ =gPSSMenu1_Pal + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F44 @ =gPSSMenu2_Pal + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F48 @ =gUnknown_083B6D74 + movs r1, 0xB0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08097F4C @ =gUnknown_083B6D94 + movs r1, 0xC0 + movs r2, 0x20 + bl LoadPalette + ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2 + adds r0, r4, 0 + movs r1, 0xF1 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xF2 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x8 + movs r1, 0xF3 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x16 + movs r1, 0xF4 + movs r2, 0x4 + bl LoadPalette + adds r0, r4, 0 + adds r0, 0x12 + movs r1, 0xF6 + movs r2, 0x4 + bl LoadPalette + adds r4, 0x2 + adds r0, r4, 0 + movs r1, 0xFF + movs r2, 0x2 + bl LoadPalette + ldr r0, _08097F54 @ =gWaveformSpritePalette + bl LoadSpritePalette + bl sub_80980D4 + bl sub_8097F58 + bl sub_8097FB8 + bl sub_809801C + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097F2C: .4byte gPSSMenuHeader_Gfx +_08097F30: .4byte 0x06005000 +_08097F34: .4byte gPSSMenuHeader_Tilemap +_08097F38: .4byte gUnknown_02039760 +_08097F3C: .4byte 0x06007800 +_08097F40: .4byte gPSSMenu1_Pal +_08097F44: .4byte gPSSMenu2_Pal +_08097F48: .4byte gUnknown_083B6D74 +_08097F4C: .4byte gUnknown_083B6D94 +_08097F50: .4byte gUnknownPalette_81E6692+0x2 +_08097F54: .4byte gWaveformSpritePalette + thumb_func_end sub_8097E70 + + thumb_func_start sub_8097F58 +sub_8097F58: @ 8097F58 + push {r4,lr} + ldr r1, _08097FA4 @ =0x0000dace + movs r0, 0xD + movs r2, 0 + bl sub_80F7940 + ldr r4, _08097FA8 @ =0x02000000 + ldr r1, _08097FAC @ =0x000012ac + adds r3, r4, r1 + str r0, [r3] + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + ldr r0, [r3] + adds r0, 0x43 + movs r1, 0x1 + strb r1, [r0] + ldr r1, [r3] + movs r0, 0x28 + strh r0, [r1, 0x20] + ldr r1, [r3] + movs r0, 0x95 + strh r0, [r1, 0x22] + movs r0, 0xD + bl GetSpriteTileStartByTag + ldr r1, _08097FB0 @ =0x000012b8 + adds r4, r1 + lsls r0, 16 + lsrs r0, 11 + ldr r1, _08097FB4 @ =0x06010000 + adds r0, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08097FA4: .4byte 0x0000dace +_08097FA8: .4byte 0x02000000 +_08097FAC: .4byte 0x000012ac +_08097FB0: .4byte 0x000012b8 +_08097FB4: .4byte 0x06010000 + thumb_func_end sub_8097F58 + + thumb_func_start sub_8097FB8 +sub_8097FB8: @ 8097FB8 + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, _0809800C @ =gWaveformSpriteSheet + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp] + str r1, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + movs r4, 0 + ldr r5, _08098010 @ =0x020012b0 +_08097FD0: + lsls r1, r4, 6 + subs r1, r4 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC + movs r2, 0x9 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r4, 2 + adds r2, r5 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08098018 @ =gSprites + adds r1, r0 + str r1, [r2] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1 + bls _08097FD0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809800C: .4byte gWaveformSpriteSheet +_08098010: .4byte 0x020012b0 +_08098014: .4byte gSpriteTemplate_83B6EFC +_08098018: .4byte gSprites + thumb_func_end sub_8097FB8 + + thumb_func_start sub_809801C +sub_809801C: @ 809801C + push {lr} + ldr r1, _0809803C @ =0x02000000 + ldr r2, _08098040 @ =0x000011f0 + adds r0, r1, r2 + ldrh r0, [r0] + subs r2, 0x4 + adds r1, r2 + ldr r1, [r1] + bl sub_80981F0 + bl sub_80982B4 + bl sub_8098350 + pop {r0} + bx r0 + .align 2, 0 +_0809803C: .4byte 0x02000000 +_08098040: .4byte 0x000011f0 + thumb_func_end sub_809801C + + thumb_func_start BoxSetMosaic +BoxSetMosaic: @ 8098044 + push {lr} + bl sub_809801C + ldr r0, _08098084 @ =0x02000000 + movs r1, 0x9C + lsls r1, 6 + adds r3, r0, r1 + ldr r2, [r3] + cmp r2, 0 + beq _08098080 + ldrb r0, [r2, 0x1] + movs r1, 0x10 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r1, [r3] + movs r0, 0xA + strh r0, [r1, 0x2E] + ldr r1, [r3] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, [r3] + ldr r0, _08098088 @ =sub_8098090 + str r0, [r1, 0x1C] + ldr r2, _0809808C @ =REG_MOSAIC + ldr r0, [r3] + ldrh r0, [r0, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] +_08098080: + pop {r0} + bx r0 + .align 2, 0 +_08098084: .4byte 0x02000000 +_08098088: .4byte sub_8098090 +_0809808C: .4byte REG_MOSAIC + thumb_func_end BoxSetMosaic + + thumb_func_start sub_8098090 +sub_8098090: @ 8098090 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + ldrh r1, [r3, 0x30] + subs r0, r1 + strh r0, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bge _080980A6 + movs r0, 0 + strh r0, [r3, 0x2E] +_080980A6: + ldr r2, _080980CC @ =REG_MOSAIC + ldrh r0, [r3, 0x2E] + lsls r1, r0, 12 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080980C8 + ldrb r0, [r3, 0x1] + movs r1, 0x11 + negs r1, r1 + ands r1, r0 + strb r1, [r3, 0x1] + ldr r0, _080980D0 @ =SpriteCallbackDummy + str r0, [r3, 0x1C] +_080980C8: + pop {r0} + bx r0 + .align 2, 0 +_080980CC: .4byte REG_MOSAIC +_080980D0: .4byte SpriteCallbackDummy + thumb_func_end sub_8098090 + + thumb_func_start sub_80980D4 +sub_80980D4: @ 80980D4 + push {r4,r5,lr} + sub sp, 0x28 + ldr r0, _08098150 @ =gUnknown_083B6DCC + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _08098154 @ =gUnknown_083B6DD4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + movs r1, 0 + add r5, sp, 0x18 + ldr r4, _0809815C @ =0x02002784 + movs r3, 0 + ldr r2, _08098160 @ =0x000007ff +_08098102: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _08098102 + movs r1, 0 + ldr r3, _08098164 @ =0x02002704 + movs r2, 0 +_08098116: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _08098116 + ldr r0, _08098168 @ =0x02000000 + movs r1, 0x9C + lsls r1, 6 + adds r0, r1 + movs r1, 0 + str r1, [r0] + adds r0, r5, 0 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _080981C4 + add r0, sp, 0x20 + bl LoadSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xFF + beq _080981C4 + b _080981B0 + .align 2, 0 +_08098150: .4byte gUnknown_083B6DCC +_08098154: .4byte gUnknown_083B6DD4 +_08098158: .4byte gSpriteTemplate_83B6DDC +_0809815C: .4byte 0x02002784 +_08098160: .4byte 0x000007ff +_08098164: .4byte 0x02002704 +_08098168: .4byte 0x02000000 +_0809816C: + ldr r2, _0809819C @ =0x02000000 + movs r0, 0x9C + lsls r0, 6 + adds r3, r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080981A0 @ =gSprites + adds r0, r1 + str r0, [r3] + lsls r0, r4, 4 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + ldr r3, _080981A4 @ =0x000026fa + adds r1, r2, r3 + strh r0, [r1] + ldr r4, _080981A8 @ =0x000026fc + adds r2, r4 + lsls r0, r5, 5 + ldr r1, _080981AC @ =0x06010000 + adds r0, r1 + str r0, [r2] + b _080981C4 + .align 2, 0 +_0809819C: .4byte 0x02000000 +_080981A0: .4byte gSprites +_080981A4: .4byte 0x000026fa +_080981A8: .4byte 0x000026fc +_080981AC: .4byte 0x06010000 +_080981B0: + 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 _0809816C +_080981C4: + ldr r0, _080981E8 @ =0x02000000 + movs r2, 0x9C + lsls r2, 6 + adds r0, r2 + ldr r0, [r0] + cmp r0, 0 + bne _080981DE + movs r0, 0x2 + bl FreeSpriteTilesByTag + ldr r0, _080981EC @ =0x0000dac7 + bl FreeSpritePaletteByTag +_080981DE: + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080981E8: .4byte 0x02000000 +_080981EC: .4byte 0x0000dac7 + thumb_func_end sub_80980D4 + + thumb_func_start sub_80981F0 +sub_80981F0: @ 80981F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + adds r7, r1, 0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r6, _08098274 @ =0x02000000 + movs r0, 0x9C + lsls r0, 6 + adds r0, r6 + mov r8, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080982A6 + cmp r4, 0 + beq _0809829C + lsls r0, r4, 3 + ldr r1, _08098278 @ =gMonFrontPicTable + adds r0, r1 + ldr r2, _0809827C @ =gMonFrontPicCoords + lsls r1, r4, 2 + adds r1, r2 + ldrb r1, [r1] + ldr r2, _08098280 @ =0x00004784 + adds r3, r6, r2 + ldr r2, _08098284 @ =0x00002784 + adds r5, r6, r2 + str r5, [sp] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + movs r2, 0x1 + bl HandleLoadSpecialPokePic + ldr r1, _08098288 @ =0x000011e8 + adds r0, r6, r1 + ldr r0, [r0] + ldr r2, _0809828C @ =0x00002704 + adds r4, r6, r2 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r1, _08098290 @ =0x000026fc + adds r0, r6, r1 + ldr r1, [r0] + ldr r2, _08098294 @ =0x04000200 + adds r0, r5, 0 + bl CpuSet + ldr r2, _08098298 @ =0x000026fa + adds r0, r6, r2 + ldrh r1, [r0] + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + mov r0, r8 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _080982A6 + .align 2, 0 +_08098274: .4byte 0x02000000 +_08098278: .4byte gMonFrontPicTable +_0809827C: .4byte gMonFrontPicCoords +_08098280: .4byte 0x00004784 +_08098284: .4byte 0x00002784 +_08098288: .4byte 0x000011e8 +_0809828C: .4byte 0x00002704 +_08098290: .4byte 0x000026fc +_08098294: .4byte 0x04000200 +_08098298: .4byte 0x000026fa +_0809829C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080982A6: + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80981F0 + + thumb_func_start sub_80982B4 +sub_80982B4: @ 80982B4 + push {r4,lr} + ldr r4, _080982E4 @ =0x02000000 + ldr r1, _080982E8 @ =0x000011f0 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _080982F4 + ldr r2, _080982EC @ =0x000011f7 + adds r0, r4, r2 + ldrb r0, [r0] + adds r2, 0xC1 + adds r1, r4, r2 + ldr r1, [r1] + bl sub_80F7A10 + ldr r1, _080982F0 @ =0x000012ac + adds r0, r4, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + b _08098302 + .align 2, 0 +_080982E4: .4byte 0x02000000 +_080982E8: .4byte 0x000011f0 +_080982EC: .4byte 0x000011f7 +_080982F0: .4byte 0x000012ac +_080982F4: + ldr r2, _08098348 @ =0x000012ac + adds r0, r4, r2 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 +_08098302: + strb r0, [r1] + movs r0, 0 + movs r1, 0xB + movs r2, 0x9 + movs r3, 0x11 + bl MenuZeroFillWindowRect + ldr r4, _0809834C @ =0x0200127a + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x10 + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x6B + movs r1, 0x1 + movs r2, 0xB + bl MenuPrint + adds r0, r4, 0 + subs r0, 0x46 + movs r1, 0 + movs r2, 0xD + bl MenuPrint + subs r4, 0x21 + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08098348: .4byte 0x000012ac +_0809834C: .4byte 0x0200127a + thumb_func_end sub_80982B4 + + thumb_func_start sub_8098350 +sub_8098350: @ 8098350 + push {r4,r5,lr} + sub sp, 0x10 + ldr r5, _080983A0 @ =0x02000000 + ldr r1, _080983A4 @ =0x000011f0 + adds r0, r5, r1 + ldrh r2, [r0] + cmp r2, 0 + beq _080983B4 + ldr r0, _080983A8 @ =0x06007800 + ldr r3, _080983AC @ =gUnknown_02039760 + movs r1, 0x1 + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r0, _080983B0 @ =0x000012b0 + adds r5, r0 +_08098382: + lsls r0, r4, 2 + adds r0, r5 + 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 _08098382 + b _080983EC + .align 2, 0 +_080983A0: .4byte 0x02000000 +_080983A4: .4byte 0x000011f0 +_080983A8: .4byte 0x06007800 +_080983AC: .4byte gUnknown_02039760 +_080983B0: .4byte 0x000012b0 +_080983B4: + ldr r0, _080983F4 @ =0x06007800 + ldr r3, _080983F8 @ =gUnknown_02039760 + movs r1, 0xA + str r1, [sp] + str r2, [sp, 0x4] + movs r1, 0x8 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x1 + movs r2, 0 + bl sub_809D034 + movs r4, 0 + ldr r1, _080983FC @ =0x000012b0 + adds r5, r1 +_080983D4: + lsls r0, r4, 2 + adds r0, r5 + 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 _080983D4 +_080983EC: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080983F4: .4byte 0x06007800 +_080983F8: .4byte gUnknown_02039760 +_080983FC: .4byte 0x000012b0 + thumb_func_end sub_8098350 + + thumb_func_start sub_8098400 +sub_8098400: @ 8098400 + push {r4,r5,lr} + sub sp, 0x14 + ldr r1, _0809847C @ =REG_BG1CNT + ldr r2, _08098480 @ =0x00000f01 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08098484 @ =gPSSMenuMisc_Gfx + ldr r1, _08098488 @ =0x06006800 + bl LZ77UnCompVram + ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap + ldr r5, _08098490 @ =0x020000a8 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08098494 @ =gPSSMenu3_Pal + movs r1, 0x20 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08098498 @ =gPSSMenu4_Pal + movs r1, 0x30 + movs r2, 0x20 + bl LoadPalette + ldr r4, _0809849C @ =0x06007800 + add r1, sp, 0x10 + movs r0, 0 + strh r0, [r1] + ldr r0, _080984A0 @ =0x040000d4 + str r1, [r0] + str r4, [r0, 0x4] + ldr r1, _080984A4 @ =0x81000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + bl sub_8098780 + ldr r0, _080984A8 @ =gUnknown_0203847C + ldrb r0, [r0] + cmp r0, 0 + beq _080984AC + movs r0, 0x1 + bl sub_8098690 + movs r0, 0x1 + bl sub_8099200 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x16 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + b _080984CC + .align 2, 0 +_0809847C: .4byte REG_BG1CNT +_08098480: .4byte 0x00000f01 +_08098484: .4byte gPSSMenuMisc_Gfx +_08098488: .4byte 0x06006800 +_0809848C: .4byte gPSSMenuMisc_Tilemap +_08098490: .4byte 0x020000a8 +_08098494: .4byte gPSSMenu3_Pal +_08098498: .4byte gPSSMenu4_Pal +_0809849C: .4byte 0x06007800 +_080984A0: .4byte 0x040000d4 +_080984A4: .4byte 0x81000400 +_080984A8: .4byte gUnknown_0203847C +_080984AC: + str r0, [sp] + movs r0, 0x14 + str r0, [sp, 0x4] + movs r0, 0xC + str r0, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0 + adds r3, r5, 0 + bl sub_809D034 + movs r0, 0x1 + bl sub_8098690 +_080984CC: + ldr r0, _080984E0 @ =0x02000000 + ldr r1, _080984E4 @ =0x000008af + adds r0, r1 + movs r1, 0 + strb r1, [r0] + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080984E0: .4byte 0x02000000 +_080984E4: .4byte 0x000008af + thumb_func_end sub_8098400 + + thumb_func_start sub_80984E8 +sub_80984E8: @ 80984E8 + push {lr} + ldr r1, _08098510 @ =0x02000000 + ldr r0, _08098514 @ =0x000008a8 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0x14 + strh r0, [r2] + ldr r0, _08098518 @ =0x000008aa + adds r2, r1, r0 + movs r0, 0x2 + strh r0, [r2] + ldr r0, _0809851C @ =0x000008ad + adds r1, r0 + strb r3, [r1] + movs r0, 0 + bl sub_8099200 + pop {r0} + bx r0 + .align 2, 0 +_08098510: .4byte 0x02000000 +_08098514: .4byte 0x000008a8 +_08098518: .4byte 0x000008aa +_0809851C: .4byte 0x000008ad + thumb_func_end sub_80984E8 + + thumb_func_start sub_8098520 +sub_8098520: @ 8098520 + push {r4,r5,lr} + sub sp, 0x10 + ldr r3, _08098578 @ =0x02000000 + ldr r0, _0809857C @ =0x000008ad + adds r5, r3, r0 + ldrb r0, [r5] + cmp r0, 0x14 + beq _08098592 + ldr r0, _08098580 @ =0x000008a8 + adds r1, r3, r0 + ldrh r0, [r1] + subs r0, 0x1 + movs r4, 0 + strh r0, [r1] + ldr r0, _08098584 @ =0x000008aa + adds r2, r3, r0 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + ldr r0, _08098588 @ =0x06007800 + adds r3, 0xA8 + str r4, [sp] + ldrh r1, [r1] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + ldrh r1, [r2] + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + movs r0, 0x8 + bl sub_80994A8 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _0809858C + movs r0, 0x1 + b _08098594 + .align 2, 0 +_08098578: .4byte 0x02000000 +_0809857C: .4byte 0x000008ad +_08098580: .4byte 0x000008a8 +_08098584: .4byte 0x000008aa +_08098588: .4byte 0x06007800 +_0809858C: + ldr r1, _0809859C @ =gUnknown_0203847C + movs r0, 0x1 + strb r0, [r1] +_08098592: + movs r0, 0 +_08098594: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809859C: .4byte gUnknown_0203847C + thumb_func_end sub_8098520 + + thumb_func_start add_to_c3_somehow +add_to_c3_somehow: @ 80985A0 + ldr r1, _080985BC @ =0x02000000 + ldr r0, _080985C0 @ =0x000008a8 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2] + ldr r0, _080985C4 @ =0x000008aa + adds r2, r1, r0 + movs r0, 0x16 + strh r0, [r2] + ldr r0, _080985C8 @ =0x000008ad + adds r1, r0 + strb r3, [r1] + bx lr + .align 2, 0 +_080985BC: .4byte 0x02000000 +_080985C0: .4byte 0x000008a8 +_080985C4: .4byte 0x000008aa +_080985C8: .4byte 0x000008ad + thumb_func_end add_to_c3_somehow + + thumb_func_start sub_80985CC +sub_80985CC: @ 80985CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r3, _08098640 @ =0x02000000 + ldr r0, _08098644 @ =0x000008ad + adds r6, r3, r0 + ldrb r0, [r6] + cmp r0, 0x14 + beq _0809867A + ldr r2, _08098648 @ =0x000008a8 + adds r1, r3, r2 + ldrh r0, [r1] + adds r0, 0x1 + movs r2, 0 + mov r9, r2 + strh r0, [r1] + ldr r0, _0809864C @ =0x000008aa + adds r4, r3, r0 + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldr r5, _08098650 @ =0x06007800 + adds r3, 0xA8 + mov r8, r3 + str r2, [sp] + ldrh r0, [r1] + str r0, [sp, 0x4] + movs r7, 0xC + str r7, [sp, 0x8] + ldrh r0, [r4] + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0xA + bl sub_809D034 + ldrh r2, [r4] + movs r4, 0x1 + str r4, [sp] + adds r0, r5, 0 + movs r1, 0xA + movs r3, 0xC + bl sub_809D16C + movs r0, 0x8 + negs r0, r0 + bl sub_80994A8 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + beq _08098654 + movs r0, 0x1 + b _0809867C + .align 2, 0 +_08098640: .4byte 0x02000000 +_08098644: .4byte 0x000008ad +_08098648: .4byte 0x000008a8 +_0809864C: .4byte 0x000008aa +_08098650: .4byte 0x06007800 +_08098654: + ldr r0, _0809868C @ =gUnknown_0203847C + movs r1, 0 + strb r1, [r0] + bl sub_809954C + bl party_compaction + str r7, [sp] + mov r2, r9 + str r2, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x2 + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0x15 + movs r2, 0 + mov r3, r8 + bl sub_809D034 +_0809867A: + movs r0, 0 +_0809867C: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809868C: .4byte gUnknown_0203847C + thumb_func_end sub_80985CC + + thumb_func_start sub_8098690 +sub_8098690: @ 8098690 + push {lr} + sub sp, 0x10 + lsls r0, 24 + cmp r0, 0 + beq _080986C0 + ldr r0, _080986B8 @ =0x06007800 + ldr r3, _080986BC @ =0x020000a8 + movs r1, 0xC + str r1, [sp] + movs r1, 0 + str r1, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + movs r1, 0x2 + str r1, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 + b _080986DA + .align 2, 0 +_080986B8: .4byte 0x06007800 +_080986BC: .4byte 0x020000a8 +_080986C0: + ldr r0, _080986E0 @ =0x06007800 + ldr r3, _080986E4 @ =0x020000a8 + movs r1, 0xC + str r1, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r1, 0x9 + str r1, [sp, 0x8] + str r2, [sp, 0xC] + movs r1, 0x15 + movs r2, 0 + bl sub_809D034 +_080986DA: + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_080986E0: .4byte 0x06007800 +_080986E4: .4byte 0x020000a8 + thumb_func_end sub_8098690 + + thumb_func_start sub_80986E8 +sub_80986E8: @ 80986E8 + ldr r1, _08098704 @ =0x02000000 + ldr r2, _08098708 @ =0x000008af + adds r0, r1, r2 + movs r3, 0x1 + strb r3, [r0] + movs r0, 0x8B + lsls r0, 4 + adds r2, r1, r0 + movs r0, 0x1E + strb r0, [r2] + ldr r2, _0809870C @ =0x000008b1 + adds r1, r2 + strb r3, [r1] + bx lr + .align 2, 0 +_08098704: .4byte 0x02000000 +_08098708: .4byte 0x000008af +_0809870C: .4byte 0x000008b1 + thumb_func_end sub_80986E8 + + thumb_func_start sub_8098710 +sub_8098710: @ 8098710 + push {lr} + ldr r0, _0809872C @ =0x02000000 + ldr r2, _08098730 @ =0x000008af + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08098728 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_8098690 +_08098728: + pop {r0} + bx r0 + .align 2, 0 +_0809872C: .4byte 0x02000000 +_08098730: .4byte 0x000008af + thumb_func_end sub_8098710 + + thumb_func_start sub_8098734 +sub_8098734: @ 8098734 + push {lr} + ldr r2, _08098774 @ =0x02000000 + ldr r1, _08098778 @ =0x000008af + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08098770 + movs r0, 0x8B + lsls r0, 4 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1E + bls _08098770 + movs r0, 0 + strb r0, [r1] + movs r3, 0 + ldr r0, _0809877C @ =0x000008b1 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08098768 + movs r3, 0x1 +_08098768: + strb r3, [r1] + ldrb r0, [r1] + bl sub_8098690 +_08098770: + pop {r0} + bx r0 + .align 2, 0 +_08098774: .4byte 0x02000000 +_08098778: .4byte 0x000008af +_0809877C: .4byte 0x000008b1 + thumb_func_end sub_8098734 + + thumb_func_start sub_8098780 +sub_8098780: @ 8098780 + push {r4-r6,lr} + sub sp, 0x10 + movs r4, 0x1 + ldr r6, _080987D4 @ =0x020000a8 + movs r5, 0x80 + lsls r5, 9 +_0809878C: + movs r0, 0x64 + muls r0, r4 + ldr r1, _080987D8 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080987A0 + movs r0, 0x1 +_080987A0: + movs r1, 0x10 + cmp r0, 0 + beq _080987A8 + movs r1, 0xC +_080987A8: + lsrs r2, r5, 16 + str r1, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0x7 + adds r3, r6, 0 + bl sub_809D104 + movs r0, 0xC0 + lsls r0, 10 + adds r5, r0 + adds r4, 0x1 + cmp r4, 0x5 + ble _0809878C + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080987D4: .4byte 0x020000a8 +_080987D8: .4byte gPlayerParty + thumb_func_end sub_8098780 + + thumb_func_start sub_80987DC +sub_80987DC: @ 80987DC + push {lr} + sub sp, 0x10 + bl sub_8098780 + ldr r0, _08098804 @ =0x06007800 + ldr r3, _08098808 @ =0x020000a8 + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + movs r1, 0xC + str r1, [sp, 0x8] + movs r1, 0x16 + str r1, [sp, 0xC] + movs r1, 0xA + movs r2, 0 + bl sub_809D034 + add sp, 0x10 + pop {r0} + bx r0 + .align 2, 0 +_08098804: .4byte 0x06007800 +_08098808: .4byte 0x020000a8 + thumb_func_end sub_80987DC + + thumb_func_start sub_809880C +sub_809880C: @ 809880C + push {lr} + ldr r0, _08098828 @ =0x02000000 + ldr r1, _0809882C @ =0x000008ae + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x6 + bl PlaySE + bl sub_80984E8 + pop {r0} + bx r0 + .align 2, 0 +_08098828: .4byte 0x02000000 +_0809882C: .4byte 0x000008ae + thumb_func_end sub_809880C + + thumb_func_start sub_8098830 +sub_8098830: @ 8098830 + push {r4,r5,lr} + ldr r5, _08098848 @ =0x02000000 + ldr r0, _0809884C @ =0x000008ae + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08098866 + cmp r0, 0x1 + bgt _08098850 + cmp r0, 0 + beq _08098856 + b _08098890 + .align 2, 0 +_08098848: .4byte 0x02000000 +_0809884C: .4byte 0x000008ae +_08098850: + cmp r0, 0x2 + beq _0809888C + b _08098890 +_08098856: + bl sub_8098520 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + bl sub_809B068 + b _0809887E +_08098866: + bl sub_809AC00 + lsls r0, 24 + cmp r0, 0 + bne _08098890 + ldr r1, _08098888 @ =0x000011f6 + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0809887E + bl BoxSetMosaic +_0809887E: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08098890 + .align 2, 0 +_08098888: .4byte 0x000011f6 +_0809888C: + movs r0, 0 + b _08098892 +_08098890: + movs r0, 0x1 +_08098892: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8098830 + + thumb_func_start sub_8098898 +sub_8098898: @ 8098898 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _080988C4 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldrb r0, [r0, 0x4] + cmp r0, 0x6 + bls _080988B8 + b _080989F4 +_080988B8: + lsls r0, 2 + ldr r1, _080988C8 @ =_080988CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080988C4: .4byte gUnknown_083B6DF4 +_080988C8: .4byte _080988CC + .align 2, 0 +_080988CC: + .4byte _080989F4 + .4byte _08098930 + .4byte _080988E8 + .4byte _08098974 + .4byte _08098954 + .4byte _08098910 + .4byte _080989B8 +_080988E8: + ldr r4, _08098904 @ =0x02002694 + ldr r1, _08098908 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _0809890C @ =0xffffeb66 + adds r4, r0 + adds r0, r2, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098904: .4byte 0x02002694 +_08098908: .4byte gUnknown_083B6DF4 +_0809890C: .4byte 0xffffeb66 +_08098910: + ldr r4, _08098928 @ =0x02002694 + ldr r1, _0809892C @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + adds r2, r0, 0 + adds r4, 0x50 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_08098928: .4byte 0x02002694 +_0809892C: .4byte gUnknown_083B6DF4 +_08098930: + ldr r0, _08098948 @ =0x02002694 + ldr r2, _0809894C @ =0xffffeb66 + adds r1, r0, r2 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098950 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_08098948: .4byte 0x02002694 +_0809894C: .4byte 0xffffeb66 +_08098950: .4byte gUnknown_083B6DF4 +_08098954: + ldr r0, _0809896C @ =0x02002694 + adds r1, r0, 0 + adds r1, 0x50 + bl StringCopy + adds r2, r0, 0 + ldr r1, _08098970 @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r1, [r0] + adds r0, r2, 0 + b _080989FE + .align 2, 0 +_0809896C: .4byte 0x02002694 +_08098970: .4byte gUnknown_083B6DF4 +_08098974: + ldr r1, _080989AC @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + adds r4, 0x1 + ldr r5, _080989B0 @ =0x02002694 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + ldr r0, _080989B4 @ =0xffffeb66 + adds r5, r0 + adds r0, r2, 0 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989AC: .4byte gUnknown_083B6DF4 +_080989B0: .4byte 0x02002694 +_080989B4: .4byte 0xffffeb66 +_080989B8: + ldr r1, _080989EC @ =gUnknown_083B6DF4 + lsls r0, r5, 3 + adds r0, r1 + ldr r6, [r0] + adds r0, r6, 0 + bl StringLength + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r4, r6, r4 + subs r4, 0x1 + ldr r5, _080989F0 @ =0x02002694 + adds r0, r5, 0 + adds r1, r6, 0 + bl StringCopy + adds r2, r0, 0 + subs r0, r2, 0x1 + adds r5, 0x50 + adds r1, r5, 0 + bl StringCopy + adds r2, r0, 0 + adds r1, r4, 0 + b _080989FE + .align 2, 0 +_080989EC: .4byte gUnknown_083B6DF4 +_080989F0: .4byte 0x02002694 +_080989F4: + ldr r0, _08098A2C @ =0x02002694 + ldr r2, _08098A30 @ =gUnknown_083B6DF4 + lsls r1, r5, 3 + adds r1, r2 + ldr r1, [r1] +_080989FE: + bl StringCopy + adds r2, r0, 0 + ldr r0, _08098A34 @ =0x020026a6 + adds r3, r0, 0 + subs r3, 0x12 + cmp r2, r0 + bcs _08098A18 + movs r1, 0 +_08098A10: + strb r1, [r2] + adds r2, 0x1 + cmp r2, r0 + bcc _08098A10 +_08098A18: + movs r0, 0xFF + strb r0, [r2] + adds r0, r3, 0 + movs r1, 0xB + movs r2, 0x11 + bl MenuPrint + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098A2C: .4byte 0x02002694 +_08098A30: .4byte gUnknown_083B6DF4 +_08098A34: .4byte 0x020026a6 + thumb_func_end sub_8098898 + + thumb_func_start sub_8098A38 +sub_8098A38: @ 8098A38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x17 + movs r1, 0xA + movs r2, 0 + bl DisplayYesNoMenu + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl MoveMenuCursor + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8098A38 + + thumb_func_start sub_8098A5C +sub_8098A5C: @ 8098A5C + push {lr} + bl sub_8072DEC + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0x17 + movs r1, 0xA + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect + pop {r0} + bx r0 + thumb_func_end sub_8098A5C + + thumb_func_start sub_8098A80 +sub_8098A80: @ 8098A80 + push {lr} + bl sub_809CDCC + movs r0, 0xC + bl sub_809CDEC + movs r0, 0xD + bl sub_809CDEC + movs r0, 0xE + bl sub_809CDEC + movs r0, 0xF + bl sub_809CDEC + bl sub_809CE84 + pop {r0} + bx r0 + thumb_func_end sub_8098A80 + + thumb_func_start sub_8098AA8 +sub_8098AA8: @ 8098AA8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_809CDCC + cmp r4, 0x1 + beq _08098AE6 + cmp r4, 0x1 + bgt _08098AC2 + cmp r4, 0 + beq _08098ACC + b _08098B32 +_08098AC2: + cmp r5, 0x2 + beq _08098B00 + cmp r5, 0x3 + beq _08098B1A + b _08098B32 +_08098ACC: + movs r0, 0x10 + bl sub_809CDEC + movs r0, 0x11 + bl sub_809CDEC + movs r0, 0x12 + bl sub_809CDEC + movs r0, 0x13 + bl sub_809CDEC + b _08098B32 +_08098AE6: + movs r0, 0x14 + bl sub_809CDEC + movs r0, 0x15 + bl sub_809CDEC + movs r0, 0x16 + bl sub_809CDEC + movs r0, 0x17 + bl sub_809CDEC + b _08098B32 +_08098B00: + movs r0, 0x18 + bl sub_809CDEC + movs r0, 0x19 + bl sub_809CDEC + movs r0, 0x1A + bl sub_809CDEC + movs r0, 0x1B + bl sub_809CDEC + b _08098B32 +_08098B1A: + movs r0, 0x1C + bl sub_809CDEC + movs r0, 0x1D + bl sub_809CDEC + movs r0, 0x1E + bl sub_809CDEC + movs r0, 0x1F + bl sub_809CDEC +_08098B32: + bl sub_809CE84 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8098AA8 + + thumb_func_start get_preferred_box +get_preferred_box: @ 8098B3C + ldr r0, _08098B44 @ =gPokemonStorage + ldrb r0, [r0] + bx lr + .align 2, 0 +_08098B44: .4byte gPokemonStorage + thumb_func_end get_preferred_box + + thumb_func_start sub_8098B48 +sub_8098B48: @ 8098B48 + push {r4,r5,lr} + bl sub_809D51C + movs r2, 0 + ldr r1, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r1] + ldr r4, _08098BDC @ =0x000010d0 + adds r3, r0, r4 + movs r4, 0 + adds r5, r1, 0 +_08098B5C: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B5C + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r3, r0, r1 + movs r1, 0 +_08098B7A: + lsls r0, r2, 1 + adds r0, r3, r0 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x27 + bls _08098B7A + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r4, _08098BE0 @ =0x00001038 + adds r3, r0, r4 + movs r1, 0 +_08098B96: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _08098B96 + movs r2, 0 + ldr r0, _08098BD8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098BE4 @ =0x00001050 + adds r3, r0, r1 + movs r1, 0 +_08098BB2: + lsls r0, r2, 2 + adds r0, r3, r0 + str r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098BB2 + ldr r0, [r5] + ldr r2, _08098BE8 @ =0x00001034 + adds r1, r0, r2 + movs r2, 0 + str r2, [r1] + ldr r4, _08098BEC @ =0x00000d5c + adds r0, r4 + strh r2, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08098BD8: .4byte gUnknown_083B6DB4 +_08098BDC: .4byte 0x000010d0 +_08098BE0: .4byte 0x00001038 +_08098BE4: .4byte 0x00001050 +_08098BE8: .4byte 0x00001034 +_08098BEC: .4byte 0x00000d5c + thumb_func_end sub_8098B48 + + thumb_func_start sub_8098BF0 +sub_8098BF0: @ 8098BF0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, _08098C38 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _08098C3C @ =0x000025b4 + adds r4, r5, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + str r1, [sp] + movs r1, 0x7 + str r1, [sp, 0x4] + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_8099AFC + ldr r1, _08098C40 @ =0x00001034 + adds r5, r1 + str r0, [r5] + ldr r1, _08098C44 @ =sub_80999C4 + str r1, [r0, 0x1C] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098C38: .4byte gUnknown_083B6DB4 +_08098C3C: .4byte 0x000025b4 +_08098C40: .4byte 0x00001034 +_08098C44: .4byte sub_80999C4 + thumb_func_end sub_8098BF0 + + thumb_func_start sub_8098C48 +sub_8098C48: @ 8098C48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _08098CCC @ =gUnknown_020300A4 + adds r6, r0, r1 + movs r0, 0 + mov r8, r0 + movs r7, 0 +_08098C6A: + movs r5, 0 + adds r1, r7, 0x1 + mov r9, r1 +_08098C70: + adds r0, r6, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08098CD8 + adds r0, r6, 0 + movs r1, 0 + bl GetBoxMonData + 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, 0x12 + subs r0, r5 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + adds r0, r4, 0 + asrs r3, 16 + bl sub_8099AFC + ldr r1, _08098CD0 @ =gUnknown_083B6DB4 + ldr r1, [r1] + mov r3, r8 + lsls r2, r3, 2 + ldr r3, _08098CD4 @ =0x00001050 + adds r1, r3 + adds r1, r2 + str r0, [r1] + b _08098CE8 + .align 2, 0 +_08098CCC: .4byte gUnknown_020300A4 +_08098CD0: .4byte gUnknown_083B6DB4 +_08098CD4: .4byte 0x00001050 +_08098CD8: + ldr r0, _08098D18 @ =gUnknown_083B6DB4 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 2 + ldr r3, _08098D1C @ =0x00001050 + adds r0, r3 + adds r0, r1 + str r4, [r0] +_08098CE8: + adds r6, 0x50 + 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 _08098C70 + mov r1, r9 + lsls r0, r1, 16 + lsrs r7, r0, 16 + cmp r7, 0x4 + bls _08098C6A + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098D18: .4byte gUnknown_083B6DB4 +_08098D1C: .4byte 0x00001050 + thumb_func_end sub_8098C48 + + thumb_func_start sub_8098D20 +sub_8098D20: @ 8098D20 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r2, r1, 4 + subs r2, r1 + lsls r2, 5 + lsls r0, r4, 2 + mov r9, r0 + adds r0, r4 + lsls r0, 4 + ldr r1, _08098DD4 @ =gUnknown_020300A4 + adds r0, r1 + adds r7, r2, r0 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0 + beq _08098DC4 + adds r0, r4, 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 r1, 0xC8 + lsls r1, 15 + adds r5, r1 + lsrs r5, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 19 + movs r2, 0xB0 + lsls r2, 14 + adds r4, r2 + lsrs r4, 16 + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + movs r0, 0x2 + str r0, [sp] + movs r0, 0x12 + 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_8099AFC + ldr r1, _08098DD8 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _08098DDC @ =0x00001050 + adds r1, r2 + add r1, r9 + str r0, [r1] +_08098DC4: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098DD4: .4byte gUnknown_020300A4 +_08098DD8: .4byte gUnknown_083B6DB4 +_08098DDC: .4byte 0x00001050 + thumb_func_end sub_8098D20 + + thumb_func_start sub_8098DE0 +sub_8098DE0: @ 8098DE0 + push {r4-r6,lr} + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0 + ldr r0, _08098E18 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098E1C @ =0x00001050 + adds r3, r0, r1 + movs r6, 0x1 + ldr r5, _08098E20 @ =sub_8098E68 +_08098DF4: + lsls r0, r2, 2 + adds r1, r3, r0 + ldr r0, [r1] + cmp r0, 0 + beq _08098E08 + strh r4, [r0, 0x32] + ldr r0, [r1] + strh r6, [r0, 0x36] + ldr r0, [r1] + str r5, [r0, 0x1C] +_08098E08: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1D + bls _08098DF4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08098E18: .4byte gUnknown_083B6DB4 +_08098E1C: .4byte 0x00001050 +_08098E20: .4byte sub_8098E68 + thumb_func_end sub_8098DE0 + + thumb_func_start sub_8098E24 +sub_8098E24: @ 8098E24 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E40 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + b _08098E56 +_08098E40: + ldr r0, _08098E5C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _08098E60 @ =0x00001178 + adds r1, r3 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ldrh r0, [r2, 0x34] + strh r0, [r2, 0x20] + ldr r0, _08098E64 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08098E56: + pop {r0} + bx r0 + .align 2, 0 +_08098E5C: .4byte gUnknown_083B6DB4 +_08098E60: .4byte 0x00001178 +_08098E64: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E24 + + thumb_func_start sub_8098E68 +sub_8098E68: @ 8098E68 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x36] + movs r3, 0x36 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08098E7C + subs r0, r1, 0x1 + strh r0, [r2, 0x36] + b _08098E98 +_08098E7C: + 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 _08098E98 + ldr r0, _08098E9C @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_08098E98: + pop {r0} + bx r0 + .align 2, 0 +_08098E9C: .4byte SpriteCallbackDummy + thumb_func_end sub_8098E68 + + thumb_func_start sub_8098EA0 +sub_8098EA0: @ 8098EA0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r0, _08098ED8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08098EDC @ =0x00001050 + adds r7, r0, r1 +_08098EB0: + lsls r0, r5, 2 + adds r4, r7, r0 + ldr r0, [r4] + cmp r0, 0 + beq _08098EC2 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08098EC2: + 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 _08098EB0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08098ED8: .4byte gUnknown_083B6DB4 +_08098EDC: .4byte 0x00001050 + thumb_func_end sub_8098EA0 + + thumb_func_start sub_8098EE0 +sub_8098EE0: @ 8098EE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x8] + lsls r2, 16 + movs r0, 0x2C + str r0, [sp, 0x10] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 19 + movs r1, 0xC8 + lsls r1, 15 + adds r0, r1 + lsrs r0, 16 + mov r10, r0 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsrs r3, r2, 16 + str r3, [sp, 0xC] + asrs r2, 16 + adds r1, r0, 0 + muls r1, r2 + mov r4, r10 + subs r1, r4, r1 + movs r0, 0x12 + subs r0, r6 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + movs r0, 0 + str r0, [sp, 0x14] + mov r9, r0 + ldr r0, _08098FF8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _08098FFC @ =0x0000117d + adds r2, r0 + mov r8, r2 + ldr r3, _08099000 @ =0x00001050 + adds r3, r0, r3 + str r3, [sp, 0x20] + lsls r1, 16 + str r1, [sp, 0x1C] +_08098F42: + mov r4, r8 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r7, r6, 2 + adds r1, r7, r6 + lsls r1, 4 + ldr r2, _08099004 @ =gUnknown_020300A4 + adds r4, r1, r2 + adds r0, r4 + movs r1, 0x41 + bl GetBoxMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08098FC8 + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r0, r4 + movs r1, 0 + bl GetBoxMonData + adds r1, r0, 0 + ldr r2, [sp, 0x10] + lsls r3, r2, 16 + asrs r3, 16 + movs r0, 0x2 + str r0, [sp] + ldr r4, [sp, 0x18] + str r4, [sp, 0x4] + adds r0, r5, 0 + ldr r4, [sp, 0x1C] + asrs r2, r4, 16 + bl sub_8099AFC + ldr r2, [sp, 0x20] + adds r1, r2, r7 + str r0, [r1] + cmp r0, 0 + beq _08098FC8 + mov r3, sp + ldrh r3, [r3, 0x8] + strh r3, [r0, 0x30] + ldr r0, [r1] + mov r4, sp + ldrh r4, [r4, 0xC] + strh r4, [r0, 0x32] + ldr r0, [r1] + mov r2, r10 + strh r2, [r0, 0x34] + ldr r1, [r1] + ldr r0, _08099008 @ =sub_8098E24 + str r0, [r1, 0x1C] + ldr r0, [sp, 0x14] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] +_08098FC8: + adds r0, r6, 0x6 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x10] + adds r0, 0x18 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + mov r0, r9 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + cmp r0, 0x4 + bls _08098F42 + ldr r0, [sp, 0x14] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08098FF8: .4byte gUnknown_083B6DB4 +_08098FFC: .4byte 0x0000117d +_08099000: .4byte 0x00001050 +_08099004: .4byte gUnknown_020300A4 +_08099008: .4byte sub_8098E24 + thumb_func_end sub_8098EE0 + + thumb_func_start sub_809900C +sub_809900C: @ 809900C + push {r4-r6,lr} + lsls r1, 24 + lsrs r1, 24 + ldr r4, _08099058 @ =gUnknown_083B6DB4 + ldr r5, [r4] + ldr r3, _0809905C @ =0x0000117c + adds r2, r5, r3 + movs r3, 0 + strb r3, [r2] + ldr r6, _08099060 @ =0x0000117d + adds r2, r5, r6 + strb r0, [r2] + ldr r2, _08099064 @ =0x0000117b + adds r0, r5, r2 + strb r1, [r0] + subs r6, 0xB + adds r2, r5, r6 + movs r0, 0x20 + strh r0, [r2] + lsls r1, 24 + asrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + negs r0, r0 + adds r6, 0x4 + adds r2, r5, r6 + strh r0, [r2] + ldr r2, _08099068 @ =0x00001178 + adds r0, r5, r2 + strh r3, [r0] + cmp r1, 0 + ble _08099070 + ldr r3, _0809906C @ =0x0000117a + adds r1, r5, r3 + movs r0, 0 + b _08099076 + .align 2, 0 +_08099058: .4byte gUnknown_083B6DB4 +_0809905C: .4byte 0x0000117c +_08099060: .4byte 0x0000117d +_08099064: .4byte 0x0000117b +_08099068: .4byte 0x00001178 +_0809906C: .4byte 0x0000117a +_08099070: + ldr r6, _080990A0 @ =0x0000117a + adds r1, r5, r6 + movs r0, 0x5 +_08099076: + strb r0, [r1] + ldr r2, [r4] + ldr r1, _080990A0 @ =0x0000117a + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x64 + ldr r3, _080990A4 @ =0x00001174 + adds r1, r2, r3 + strh r0, [r1] + ldr r6, _080990A8 @ =0x00001176 + adds r2, r6 + movs r1, 0 + ldrsh r0, [r2, r1] + bl sub_8098DE0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080990A0: .4byte 0x0000117a +_080990A4: .4byte 0x00001174 +_080990A8: .4byte 0x00001176 + thumb_func_end sub_809900C + + thumb_func_start sub_80990AC +sub_80990AC: @ 80990AC + push {r4-r6,lr} + ldr r0, _080990D4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _080990D8 @ =0x00001172 + adds r3, r4, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _080990C0 + subs r0, 0x1 + strh r0, [r3] +_080990C0: + ldr r1, _080990DC @ =0x0000117c + adds r6, r4, r1 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08099138 + cmp r0, 0x1 + bgt _080990E0 + cmp r0, 0 + beq _080990E8 + b _080991F0 + .align 2, 0 +_080990D4: .4byte gUnknown_083B6DB4 +_080990D8: .4byte 0x00001172 +_080990DC: .4byte 0x0000117c +_080990E0: + cmp r0, 0x2 + bne _080990E6 + b _080991E0 +_080990E6: + b _080991F0 +_080990E8: + ldr r2, _0809912C @ =0x00001174 + adds r5, r4, r2 + ldr r3, _08099130 @ =0x00001176 + adds r0, r4, r3 + ldrh r0, [r0] + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + subs r0, 0x41 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xBA + bhi _08099104 + b _080991F8 +_08099104: + adds r2, 0x6 + adds r0, r4, r2 + ldrb r0, [r0] + bl sub_8098EA0 + ldr r3, _08099134 @ =0x0000117b + adds r0, r4, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldrh r1, [r5] + adds r0, r1 + strh r0, [r5] + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _080991F8 + .align 2, 0 +_0809912C: .4byte 0x00001174 +_08099130: .4byte 0x00001176 +_08099134: .4byte 0x0000117b +_08099138: + ldr r2, _08099194 @ =0x00001174 + adds r1, r4, r2 + ldr r5, _08099198 @ =0x00001176 + adds r2, r4, r5 + ldrh r0, [r2] + ldrh r5, [r1] + adds r0, r5 + strh r0, [r1] + ldr r0, _0809919C @ =0x0000117a + adds r5, r4, r0 + ldrb r0, [r5] + ldrh r1, [r3] + movs r3, 0 + ldrsh r2, [r2, r3] + bl sub_8098EE0 + ldr r2, _080991A0 @ =0x00001178 + adds r1, r4, r2 + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + ldr r1, _080991A4 @ =0x0000117b + adds r0, r4, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + cmp r1, 0 + ble _08099178 + ldrb r0, [r5] + cmp r0, 0x5 + beq _08099182 +_08099178: + cmp r1, 0 + bge _080991B0 + ldrb r0, [r5] + cmp r0, 0 + bne _080991B0 +_08099182: + ldr r0, _080991A8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _080991AC @ =0x0000117c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _080991F8 + .align 2, 0 +_08099194: .4byte 0x00001174 +_08099198: .4byte 0x00001176 +_0809919C: .4byte 0x0000117a +_080991A0: .4byte 0x00001178 +_080991A4: .4byte 0x0000117b +_080991A8: .4byte gUnknown_083B6DB4 +_080991AC: .4byte 0x0000117c +_080991B0: + ldr r0, _080991D0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r5, _080991D4 @ =0x0000117a + adds r3, r1, r5 + ldr r2, _080991D8 @ =0x0000117b + adds r0, r1, r2 + ldrb r0, [r0] + ldrb r5, [r3] + adds r0, r5 + movs r2, 0 + strb r0, [r3] + ldr r0, _080991DC @ =0x0000117c + adds r1, r0 + strb r2, [r1] + b _080991F8 + .align 2, 0 +_080991D0: .4byte gUnknown_083B6DB4 +_080991D4: .4byte 0x0000117a +_080991D8: .4byte 0x0000117b +_080991DC: .4byte 0x0000117c +_080991E0: + ldr r1, _080991F4 @ =0x00001178 + adds r0, r4, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _080991F8 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080991F0: + movs r0, 0 + b _080991FA + .align 2, 0 +_080991F4: .4byte 0x00001178 +_080991F8: + movs r0, 0x1 +_080991FA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80990AC + + thumb_func_start sub_8099200 +sub_8099200: @ 8099200 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r4, _080992A0 @ =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, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x68 + movs r3, 0x40 + bl sub_8099AFC + ldr r1, _080992A4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _080992A8 @ =0x00001038 + adds r1, r2 + str r0, [r1] + movs r7, 0x1 + movs r6, 0x1 +_08099246: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _080992A0 @ =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 _080992AC + 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, 0xB + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0x98 + bl sub_8099AFC + ldr r1, _080992A4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + lsls r2, r6, 2 + ldr r3, _080992A8 @ =0x00001038 + adds r1, r3 + adds r1, r2 + str r0, [r1] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + b _080992BA + .align 2, 0 +_080992A0: .4byte gPlayerParty +_080992A4: .4byte gUnknown_083B6DB4 +_080992A8: .4byte 0x00001038 +_080992AC: + ldr r0, _08099308 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0809930C @ =0x00001038 + adds r0, r2 + adds r0, r1 + str r5, [r0] +_080992BA: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _08099246 + mov r3, r8 + cmp r3, 0 + bne _080992FA + movs r6, 0 + cmp r6, r7 + bcs _080992FA + ldr r0, _08099308 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809930C @ =0x00001038 + adds r3, r0, r1 + movs r4, 0x4 +_080992DA: + lsls r1, r6, 2 + adds r1, r3, r1 + 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 _080992DA +_080992FA: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099308: .4byte gUnknown_083B6DB4 +_0809930C: .4byte 0x00001038 + thumb_func_end sub_8099200 + + thumb_func_start sub_8099310 +sub_8099310: @ 8099310 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08099368 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809936C @ =0x00001171 + adds r1, r2, r0 + movs r0, 0 + strb r0, [r1] + movs r5, 0 + movs r6, 0 + mov r8, r2 + ldr r7, _0809936C @ =0x00001171 + add r7, r8 +_0809932C: + lsls r1, r5, 2 + ldr r0, _08099370 @ =0x00001038 + add r0, r8 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099354 + cmp r5, r6 + beq _0809934E + adds r1, r6, 0 + bl sub_8099388 + movs r0, 0 + str r0, [r4] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] +_0809934E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_08099354: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809932C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099368: .4byte gUnknown_083B6DB4 +_0809936C: .4byte 0x00001171 +_08099370: .4byte 0x00001038 + thumb_func_end sub_8099310 + + thumb_func_start sub_8099374 +sub_8099374: @ 8099374 + ldr r0, _08099380 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099384 @ =0x00001171 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08099380: .4byte gUnknown_083B6DB4 +_08099384: .4byte 0x00001171 + thumb_func_end sub_8099374 + + thumb_func_start sub_8099388 +sub_8099388: @ 8099388 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + strh r1, [r2, 0x30] + cmp r1, 0 + bne _0809939C + movs r3, 0x68 + movs r4, 0x40 + b _080993AE +_0809939C: + 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 +_080993AE: + 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 _080993C8 + adds r0, 0x7 +_080993C8: + 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 _080993DC + adds r0, 0x7 +_080993DC: + asrs r0, 3 + strh r0, [r2, 0x38] + movs r0, 0x8 + strh r0, [r2, 0x3A] + ldr r0, _080993F0 @ =sub_80993F4 + str r0, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080993F0: .4byte sub_80993F4 + thumb_func_end sub_8099388 + + thumb_func_start sub_80993F4 +sub_80993F4: @ 80993F4 + push {r4,lr} + adds r3, r0, 0 + ldrh r2, [r3, 0x3A] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08099424 + 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 _08099468 +_08099424: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _08099434 + movs r0, 0x68 + strh r0, [r3, 0x20] + movs r0, 0x40 + b _08099446 +_08099434: + 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 +_08099446: + strh r0, [r3, 0x22] + ldr r0, _08099470 @ =SpriteCallbackDummy + str r0, [r3, 0x1C] + ldr r0, _08099474 @ =gUnknown_083B6DB4 + ldr r2, [r0] + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r1, 2 + ldr r4, _08099478 @ =0x00001038 + adds r0, r2, r4 + adds r0, r1 + str r3, [r0] + ldr r0, _0809947C @ =0x00001171 + adds r2, r0 + ldrb r0, [r2] + subs r0, 0x1 + strb r0, [r2] +_08099468: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099470: .4byte SpriteCallbackDummy +_08099474: .4byte gUnknown_083B6DB4 +_08099478: .4byte 0x00001038 +_0809947C: .4byte 0x00001171 + thumb_func_end sub_80993F4 + + thumb_func_start sub_8099480 +sub_8099480: @ 8099480 + push {r4,lr} + ldr r0, _080994A0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _080994A4 @ =0x00001034 + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, 0 + beq _08099498 + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_08099498: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080994A0: .4byte gUnknown_083B6DB4 +_080994A4: .4byte 0x00001034 + thumb_func_end sub_8099480 + + thumb_func_start sub_80994A8 +sub_80994A8: @ 80994A8 + push {r4-r6,lr} + movs r3, 0 + ldr r1, _080994FC @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _08099500 @ =0x00001038 + adds r5, r1, r2 + lsls r0, 16 + asrs r4, r0, 16 + movs r6, 0x5 + negs r6, r6 +_080994BC: + lsls r0, r3, 2 + adds r2, r5, r0 + ldr r1, [r2] + cmp r1, 0 + beq _0809950E + 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 _08099504 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809950E + .align 2, 0 +_080994FC: .4byte gUnknown_083B6DB4 +_08099500: .4byte 0x00001038 +_08099504: + adds r2, 0x3E + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r2] +_0809950E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _080994BC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80994A8 + + thumb_func_start sub_8099520 +sub_8099520: @ 8099520 + push {r4,lr} + lsls r0, 24 + ldr r1, _08099544 @ =gUnknown_083B6DB4 + ldr r1, [r1] + lsrs r0, 22 + ldr r2, _08099548 @ =0x00001038 + adds r1, r2 + adds r4, r1, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809953E + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809953E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099544: .4byte gUnknown_083B6DB4 +_08099548: .4byte 0x00001038 + thumb_func_end sub_8099520 + + thumb_func_start sub_809954C +sub_809954C: @ 809954C + push {r4-r6,lr} + movs r5, 0 + ldr r0, _0809957C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099580 @ =0x00001038 + adds r6, r0, r1 +_08099558: + lsls r0, r5, 2 + adds r4, r6, r0 + ldr r0, [r4] + cmp r0, 0 + beq _0809956A + bl sub_8099BE0 + movs r0, 0 + str r0, [r4] +_0809956A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08099558 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809957C: .4byte gUnknown_083B6DB4 +_08099580: .4byte 0x00001038 + thumb_func_end sub_809954C + + thumb_func_start sub_8099584 +sub_8099584: @ 8099584 + 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 _080995B4 + ldr r3, _080995AC @ =gUnknown_083B6DB4 + ldr r0, [r3] + ldr r5, _080995B0 @ =0x00001034 + 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 _080995D0 + .align 2, 0 +_080995AC: .4byte gUnknown_083B6DB4 +_080995B0: .4byte 0x00001034 +_080995B4: + cmp r4, 0x1 + bne _080995F4 + ldr r3, _080995FC @ =gUnknown_083B6DB4 + ldr r0, [r3] + ldr r1, _08099600 @ =0x00001034 + adds r2, r0, r1 + lsls r1, r5, 2 + ldr r4, _08099604 @ =0x00001050 + adds r0, r4 + adds r0, r1 + ldr r1, [r0] + str r1, [r2] + movs r1, 0 + str r1, [r0] +_080995D0: + ldr r2, [r3] + ldr r5, _08099600 @ =0x00001034 + adds r2, r5 + ldr r1, [r2] + ldr r0, _08099608 @ =sub_80999C4 + str r0, [r1, 0x1C] + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080995F4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080995FC: .4byte gUnknown_083B6DB4 +_08099600: .4byte 0x00001034 +_08099604: .4byte 0x00001050 +_08099608: .4byte sub_80999C4 + thumb_func_end sub_8099584 + + thumb_func_start sub_809960C +sub_809960C: @ 809960C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r0, 0xE + bne _08099654 + ldr r4, _08099648 @ =gUnknown_083B6DB4 + ldr r0, [r4] + lsls r1, r6, 2 + ldr r2, _0809964C @ =0x00001038 + adds r3, r0, r2 + adds r3, r1 + ldr r1, _08099650 @ =0x00001034 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + 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, 0x43 + movs r1, 0xB + strb r1, [r0] + b _0809968A + .align 2, 0 +_08099648: .4byte gUnknown_083B6DB4 +_0809964C: .4byte 0x00001038 +_08099650: .4byte 0x00001034 +_08099654: + ldr r5, _080996A0 @ =gUnknown_083B6DB4 + ldr r0, [r5] + lsls r1, r6, 2 + ldr r2, _080996A4 @ =0x00001050 + adds r3, r0, r2 + adds r3, r1 + ldr r1, _080996A8 @ =0x00001034 + adds r0, r1 + ldr r2, [r0] + str r2, [r3] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2, 0x5] + ldr r4, [r3] + adds r0, r6, 0 + movs r1, 0x6 + bl __umodsi3 + movs r1, 0x12 + subs r1, r0 + adds r4, 0x43 + strb r1, [r4] + adds r4, r5, 0 +_0809968A: + ldr r1, [r4] + ldr r2, _080996A8 @ =0x00001034 + adds r1, r2 + ldr r2, [r1] + ldr r0, _080996AC @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + movs r0, 0 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080996A0: .4byte gUnknown_083B6DB4 +_080996A4: .4byte 0x00001050 +_080996A8: .4byte 0x00001034 +_080996AC: .4byte SpriteCallbackDummy + thumb_func_end sub_809960C + + thumb_func_start sub_80996B0 +sub_80996B0: @ 80996B0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0xE + bne _080996D8 + ldr r3, _080996CC @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _080996D0 @ =0x000010c8 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _080996D4 @ =0x00001038 + b _080996E4 + .align 2, 0 +_080996CC: .4byte gUnknown_083B6DB4 +_080996D0: .4byte 0x000010c8 +_080996D4: .4byte 0x00001038 +_080996D8: + ldr r3, _08099704 @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099708 @ =0x000010c8 + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _0809970C @ =0x00001050 +_080996E4: + adds r0, r4 + adds r1, r0 + str r1, [r2] + ldr r1, [r3] + ldr r2, _08099710 @ =0x00001034 + adds r0, r1, r2 + ldr r2, [r0] + ldr r0, _08099714 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] + ldr r4, _08099718 @ =0x00001170 + adds r1, r4 + movs r0, 0 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099704: .4byte gUnknown_083B6DB4 +_08099708: .4byte 0x000010c8 +_0809970C: .4byte 0x00001050 +_08099710: .4byte 0x00001034 +_08099714: .4byte SpriteCallbackDummy +_08099718: .4byte 0x00001170 + thumb_func_end sub_80996B0 + + thumb_func_start sub_809971C +sub_809971C: @ 809971C + push {r4-r7,lr} + ldr r0, _08099730 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _08099734 @ =0x00001170 + adds r7, r2, r0 + ldrb r0, [r7] + cmp r0, 0x10 + bne _08099738 + movs r0, 0 + b _08099800 + .align 2, 0 +_08099730: .4byte gUnknown_083B6DB4 +_08099734: .4byte 0x00001170 +_08099738: + adds r0, 0x1 + strb r0, [r7] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809975E + ldr r1, _08099808 @ =0x000010c8 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, 0x22] + subs r0, 0x1 + strh r0, [r1, 0x22] + ldr r4, _0809980C @ =0x00001034 + adds r0, r2, r4 + ldr r1, [r0] + ldrh r0, [r1, 0x22] + adds r0, 0x1 + strh r0, [r1, 0x22] +_0809975E: + ldr r0, _08099808 @ =0x000010c8 + adds r5, r2, r0 + ldr r0, [r5] + ldr r1, [r0] + ldr r3, _08099810 @ =gSineTable + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + bge _08099778 + adds r0, 0xF +_08099778: + asrs r0, 4 + strh r0, [r1, 0x24] + ldr r0, _0809980C @ =0x00001034 + adds r6, r2, r0 + ldr r1, [r6] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _08099792 + adds r0, 0xF +_08099792: + asrs r0, 4 + negs r0, r0 + strh r0, [r1, 0x24] + ldrb r0, [r7] + cmp r0, 0x8 + bne _080997DE + ldr r4, [r6] + ldr r0, [r5] + ldr r0, [r0] + ldrb r0, [r0, 0x5] + movs r2, 0xC + ands r2, r0 + ldrb r3, [r4, 0x5] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, 0x5] + ldr r2, [r6] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + ldrb r0, [r0] + adds r2, 0x43 + strb r0, [r2] + ldr r0, [r5] + ldr r2, [r0] + ldrb r0, [r2, 0x5] + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r2, 0x5] + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0x7 + strb r1, [r0] +_080997DE: + ldrb r0, [r7] + cmp r0, 0x10 + bne _080997FE + ldr r1, [r6] + ldr r0, [r5] + ldr r0, [r0] + str r0, [r6] + ldr r0, [r5] + str r1, [r0] + ldr r1, [r6] + ldr r0, _08099814 @ =sub_80999C4 + str r0, [r1, 0x1C] + ldr r0, [r5] + ldr r1, [r0] + ldr r0, _08099818 @ =SpriteCallbackDummy + str r0, [r1, 0x1C] +_080997FE: + movs r0, 0x1 +_08099800: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08099808: .4byte 0x000010c8 +_0809980C: .4byte 0x00001034 +_08099810: .4byte gSineTable +_08099814: .4byte sub_80999C4 +_08099818: .4byte SpriteCallbackDummy + thumb_func_end sub_809971C + + thumb_func_start sub_809981C +sub_809981C: @ 809981C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r0, 0x1 + beq _08099858 + cmp r0, 0x1 + bgt _08099836 + cmp r0, 0 + beq _0809983C + b _080998C0 +_08099836: + cmp r2, 0x2 + beq _0809987C + b _080998C0 +_0809983C: + ldr r3, _0809984C @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099850 @ =0x000010cc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099854 @ =0x00001038 + b _08099864 + .align 2, 0 +_0809984C: .4byte gUnknown_083B6DB4 +_08099850: .4byte 0x000010cc +_08099854: .4byte 0x00001038 +_08099858: + ldr r3, _08099870 @ =gUnknown_083B6DB4 + ldr r1, [r3] + ldr r0, _08099874 @ =0x000010cc + adds r2, r1, r0 + lsls r0, r4, 2 + ldr r4, _08099878 @ =0x00001050 +_08099864: + adds r0, r4 + adds r1, r0 + str r1, [r2] + adds r0, r3, 0 + b _0809988A + .align 2, 0 +_08099870: .4byte gUnknown_083B6DB4 +_08099874: .4byte 0x000010cc +_08099878: .4byte 0x00001050 +_0809987C: + ldr r0, _080998C8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _080998CC @ =0x000010cc + adds r2, r1, r3 + ldr r4, _080998D0 @ =0x00001034 + adds r1, r4 + str r1, [r2] +_0809988A: + ldr r0, [r0] + ldr r1, _080998CC @ =0x000010cc + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _080998C0 + bl InitSpriteAffineAnim + ldr r0, [r4] + 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 r0, [r4] + ldr r1, [r0] + ldr r0, _080998D4 @ =gUnknown_083B6F5C + str r0, [r1, 0x10] + ldr r0, [r4] + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAffineAnim +_080998C0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080998C8: .4byte gUnknown_083B6DB4 +_080998CC: .4byte 0x000010cc +_080998D0: .4byte 0x00001034 +_080998D4: .4byte gUnknown_083B6F5C + thumb_func_end sub_809981C + + thumb_func_start sub_80998D8 +sub_80998D8: @ 80998D8 + push {lr} + ldr r0, _080998FC @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099900 @ =0x000010cc + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + cmp r1, 0 + beq _080998F8 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r2, [r3] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _08099904 +_080998F8: + movs r0, 0 + b _0809991A + .align 2, 0 +_080998FC: .4byte gUnknown_083B6DB4 +_08099900: .4byte 0x000010cc +_08099904: + adds r0, r1, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08099918 + movs r0, 0x4 + orrs r0, r2 + strb r0, [r3] +_08099918: + movs r0, 0x1 +_0809991A: + pop {r1} + bx r1 + thumb_func_end sub_80998D8 + + thumb_func_start sub_8099920 +sub_8099920: @ 8099920 + push {r4,lr} + ldr r0, _08099950 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099954 @ =0x000010cc + adds r4, r0, r1 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _0809994A + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, [r4] + ldr r0, [r0] + bl sub_8099BE0 + ldr r1, [r4] + movs r0, 0 + str r0, [r1] +_0809994A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099950: .4byte gUnknown_083B6DB4 +_08099954: .4byte 0x000010cc + thumb_func_end sub_8099920 + + thumb_func_start sub_8099958 +sub_8099958: @ 8099958 + push {lr} + ldr r0, _08099988 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809998C @ =0x000010cc + adds r3, r0, r1 + ldr r0, [r3] + ldr r0, [r0] + cmp r0, 0 + beq _08099982 + 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] + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAffineAnim +_08099982: + pop {r0} + bx r0 + .align 2, 0 +_08099988: .4byte gUnknown_083B6DB4 +_0809998C: .4byte 0x000010cc + thumb_func_end sub_8099958 + + thumb_func_start sub_8099990 +sub_8099990: @ 8099990 + push {lr} + ldr r0, _080999A4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _080999A8 @ =0x000010cc + adds r2, r0, r1 + ldr r0, [r2] + cmp r0, 0 + bne _080999AC + movs r0, 0 + b _080999C0 + .align 2, 0 +_080999A4: .4byte gUnknown_083B6DB4 +_080999A8: .4byte 0x000010cc +_080999AC: + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080999BE + movs r0, 0 + str r0, [r2] +_080999BE: + movs r0, 0x1 +_080999C0: + pop {r1} + bx r1 + thumb_func_end sub_8099990 + + thumb_func_start sub_80999C4 +sub_80999C4: @ 80999C4 + ldr r1, _080999E4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + 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 +_080999E4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_80999C4 + + thumb_func_start sub_80999E8 +sub_80999E8: @ 80999E8 + push {r4-r6,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _08099A58 @ =gUnknown_083B6DB4 + ldr r0, [r1] + movs r2, 0x89 + lsls r2, 5 + adds r0, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, r3 + beq _08099A20 + adds r6, r2, 0 + movs r5, 0x89 + lsls r5, 5 +_08099A08: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A20 + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08099A08 +_08099A20: + cmp r4, 0x28 + bne _08099A60 + movs r4, 0 + ldr r0, [r2] + movs r5, 0x89 + lsls r5, 5 + adds r0, r5 + ldrh r0, [r0] + cmp r0, 0 + beq _08099A4E + adds r6, r2, 0 +_08099A36: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x27 + bhi _08099A4E + ldr r0, [r6] + lsls r1, r4, 1 + adds r0, r5 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08099A36 +_08099A4E: + cmp r4, 0x28 + bne _08099A60 + ldr r0, _08099A5C @ =0x0000ffff + b _08099A94 + .align 2, 0 +_08099A58: .4byte gUnknown_083B6DB4 +_08099A5C: .4byte 0x0000ffff +_08099A60: + ldr r1, [r2] + lsls r2, r4, 1 + movs r5, 0x89 + lsls r5, 5 + adds r0, r1, r5 + adds r0, r2 + strh r3, [r0] + ldr r0, _08099A9C @ =0x000010d0 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r4, 20 + lsrs r4, 16 + ldr r1, _08099AA0 @ =gMonIconTable + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + lsls r1, r4, 5 + ldr r2, _08099AA4 @ =0x06010000 + adds r1, r2 + ldr r2, _08099AA8 @ =0x04000080 + bl CpuSet + adds r0, r4, 0 +_08099A94: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08099A9C: .4byte 0x000010d0 +_08099AA0: .4byte gMonIconTable +_08099AA4: .4byte 0x06010000 +_08099AA8: .4byte 0x04000080 + thumb_func_end sub_80999E8 + + thumb_func_start sub_8099AAC +sub_8099AAC: @ 8099AAC + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r3, 0 + ldr r0, _08099AE4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x89 + lsls r1, 5 + adds r5, r0, r1 + subs r1, 0x50 + adds r4, r0, r1 + ldr r0, _08099AE8 @ =0x0000ffff + adds r7, r0, 0 +_08099AC6: + lsls r1, r3, 1 + adds r2, r5, r1 + ldrh r0, [r2] + cmp r0, r6 + bne _08099AEC + adds r1, r4, r1 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + ands r0, r7 + cmp r0, 0 + bne _08099AF6 + strh r0, [r2] + b _08099AF6 + .align 2, 0 +_08099AE4: .4byte gUnknown_083B6DB4 +_08099AE8: .4byte 0x0000ffff +_08099AEC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x27 + bls _08099AC6 +_08099AF6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099AAC + + thumb_func_start sub_8099AFC +sub_8099AFC: @ 8099AFC + 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, _08099BAC @ =gSpriteTemplate_83B6F14 + 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 mon_icon_convert_unown_species_id + mov r10, r0 + mov r6, r10 + mov r2, sp + ldr r1, _08099BB0 @ =gMonIconPaletteIndices + adds r1, r6, r1 + ldr r3, _08099BB4 @ =0x0000dac0 + adds r0, r3, 0 + ldrb r1, [r1] + adds r0, r1 + strh r0, [r2, 0x2] + adds r0, r6, 0 + bl sub_80999E8 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + ldr r0, _08099BB8 @ =0x0000ffff + cmp r5, r0 + beq _08099BCE + 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 _08099BC8 + ldr r1, _08099BBC @ =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldr r2, _08099BC0 @ =0x000003ff + ands r2, r5 + ldrh r3, [r0, 0x4] + ldr r1, _08099BC4 @ =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 _08099BD0 + .align 2, 0 +_08099BAC: .4byte gSpriteTemplate_83B6F14 +_08099BB0: .4byte gMonIconPaletteIndices +_08099BB4: .4byte 0x0000dac0 +_08099BB8: .4byte 0x0000ffff +_08099BBC: .4byte gSprites +_08099BC0: .4byte 0x000003ff +_08099BC4: .4byte 0xfffffc00 +_08099BC8: + adds r0, r6, 0 + bl sub_8099AAC +_08099BCE: + movs r0, 0 +_08099BD0: + 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_8099AFC + + thumb_func_start sub_8099BE0 +sub_8099BE0: @ 8099BE0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + bl sub_8099AAC + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8099BE0 + + thumb_func_start sub_8099BF8 +sub_8099BF8: @ 8099BF8 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08099C50 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099C54 @ =0x000008ba + adds r2, r0, r1 + movs r1, 0 + strb r1, [r2] + ldr r2, _08099C58 @ =0x000008b4 + adds r0, r2 + strh r1, [r0] + str r1, [sp] + ldr r1, _08099C5C @ =0x040000d4 + mov r0, sp + str r0, [r1] + ldr r0, _08099C60 @ =0x0600d000 + str r0, [r1, 0x4] + ldr r0, _08099C64 @ =0x85000400 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0 + bl sub_8099EB0 + adds r0, r4, 0 + bl sub_809A23C + bl sub_809A6DC + adds r0, r4, 0 + bl sub_8098C48 + ldr r1, _08099C68 @ =REG_BG2CNT + ldr r2, _08099C6C @ =0x00005a0a + adds r0, r2, 0 + strh r0, [r1] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099C50: .4byte gUnknown_083B6DB4 +_08099C54: .4byte 0x000008ba +_08099C58: .4byte 0x000008b4 +_08099C5C: .4byte 0x040000d4 +_08099C60: .4byte 0x0600d000 +_08099C64: .4byte 0x85000400 +_08099C68: .4byte REG_BG2CNT +_08099C6C: .4byte 0x00005a0a + thumb_func_end sub_8099BF8 + + thumb_func_start sub_8099C70 +sub_8099C70: @ 8099C70 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + bl sub_8099D90 + lsls r0, 24 + asrs r4, r0, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8099EB0 + ldr r0, _08099D10 @ =gUnknown_083B6DB4 + ldr r2, [r0] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 1 + ldr r3, _08099D14 @ =0x000008b6 + adds r1, r2, r3 + strh r0, [r1] + ldr r0, _08099D18 @ =0x000008b8 + adds r1, r2, r0 + movs r0, 0x20 + strh r0, [r1] + ldr r1, _08099D1C @ =0x000008bb + adds r0, r2, r1 + strb r5, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CAE + movs r1, 0x5 +_08099CAE: + ldr r3, _08099D20 @ =0x000008bc + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D24 @ =0x000008be + adds r0, r2, r1 + strh r4, [r0] + movs r1, 0x38 + cmp r4, 0 + ble _08099CC6 + movs r3, 0x84 + lsls r3, 1 + adds r1, r3, 0 +_08099CC6: + movs r3, 0x8C + lsls r3, 4 + adds r0, r2, r3 + strh r1, [r0] + movs r1, 0 + cmp r4, 0 + bgt _08099CD6 + movs r1, 0x5 +_08099CD6: + ldr r3, _08099D28 @ =0x000008c2 + adds r0, r2, r3 + strh r1, [r0] + ldr r1, _08099D2C @ =0x000008c4 + adds r0, r2, r1 + strh r4, [r0] + adds r3, 0x4 + adds r1, r2, r3 + movs r0, 0 + strh r0, [r1] + ldr r0, _08099D30 @ =0x000008c8 + adds r1, r2, r0 + movs r0, 0x2 + strh r0, [r1] + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809900C + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_809A3D0 + adds r0, r4, 0 + bl sub_809A774 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08099D10: .4byte gUnknown_083B6DB4 +_08099D14: .4byte 0x000008b6 +_08099D18: .4byte 0x000008b8 +_08099D1C: .4byte 0x000008bb +_08099D20: .4byte 0x000008bc +_08099D24: .4byte 0x000008be +_08099D28: .4byte 0x000008c2 +_08099D2C: .4byte 0x000008c4 +_08099D30: .4byte 0x000008c8 + thumb_func_end sub_8099C70 + + thumb_func_start sub_8099D34 +sub_8099D34: @ 8099D34 + push {r4,lr} + bl sub_80990AC + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08099D78 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _08099D7C @ =0x000008b8 + adds r3, r1, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _08099D88 + ldr r4, _08099D80 @ =0x000008b4 + adds r2, r1, r4 + adds r4, 0x2 + adds r0, r1, r4 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r1 + ldr r1, _08099D84 @ =0x000001ff + ands r0, r1 + strh r0, [r2] + ldrh r0, [r3] + subs r0, 0x1 + strh r0, [r3] + lsls r0, 16 + cmp r0, 0 + bne _08099D74 + bl sub_809A598 + bl sub_809A810 +_08099D74: + movs r0, 0x1 + b _08099D8A + .align 2, 0 +_08099D78: .4byte gUnknown_083B6DB4 +_08099D7C: .4byte 0x000008b8 +_08099D80: .4byte 0x000008b4 +_08099D84: .4byte 0x000001ff +_08099D88: + adds r0, r2, 0 +_08099D8A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D34 + + thumb_func_start sub_8099D90 +sub_8099D90: @ 8099D90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0 + cmp r1, r4 + beq _08099DBA +_08099DA4: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xD + bls _08099DB0 + movs r1, 0 +_08099DB0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r1, r4 + bne _08099DA4 +_08099DBA: + movs r0, 0x1 + negs r0, r0 + cmp r2, 0x6 + bhi _08099DC4 + movs r0, 0x1 +_08099DC4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8099D90 + + thumb_func_start sub_8099DCC +sub_8099DCC: @ 8099DCC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08099DF8 @ =gPokemonStorage + ldr r2, _08099DFC @ =0x000083c2 + adds r1, r2 + adds r0, r1 + movs r1, 0 + strb r4, [r0] + ldr r0, _08099E00 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _08099E04 @ =0x00001032 + adds r0, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08099DF8: .4byte gPokemonStorage +_08099DFC: .4byte 0x000083c2 +_08099E00: .4byte gUnknown_083B6DB4 +_08099E04: .4byte 0x00001032 + thumb_func_end sub_8099DCC + + thumb_func_start sub_8099E08 +sub_8099E08: @ 8099E08 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _08099E24 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _08099E28 @ =0x00001032 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _08099E54 + cmp r0, 0x1 + bgt _08099E2C + cmp r0, 0 + beq _08099E36 + b _08099EA6 + .align 2, 0 +_08099E24: .4byte gUnknown_083B6DB4 +_08099E28: .4byte 0x00001032 +_08099E2C: + cmp r0, 0x2 + beq _08099E90 + cmp r0, 0x3 + beq _08099EA2 + b _08099EA6 +_08099E36: + ldr r1, _08099E4C @ =0x00000d08 + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E50 @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E4C: .4byte 0x00000d08 +_08099E50: .4byte 0x0000ffff +_08099E54: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8099EB0 + bl sub_809A654 + ldr r1, _08099E88 @ =0x00000d08 + adds r0, r5, r1 + ldr r0, [r0] + ldr r1, _08099E8C @ =0x0000ffff + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08099E9A + .align 2, 0 +_08099E88: .4byte 0x00000d08 +_08099E8C: .4byte 0x0000ffff +_08099E90: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08099EA6 +_08099E9A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08099EA6 +_08099EA2: + movs r0, 0 + b _08099EA8 +_08099EA6: + movs r0, 0x1 +_08099EA8: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8099E08 + + thumb_func_start sub_8099EB0 +sub_8099EB0: @ 8099EB0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r1, 0 + beq _08099ED8 + ldr r0, _08099F38 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r2, 0 + ldr r3, _08099F3C @ =0x000008ba + adds r1, r0, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _08099ED0 + movs r2, 0x1 +_08099ED0: + strb r2, [r1] + ldr r0, _08099F40 @ =0x0600d000 + bl sub_809A14C +_08099ED8: + ldr r0, _08099F44 @ =gPokemonStorage + ldr r1, _08099F48 @ =0x000083c2 + adds r0, r1 + adds r0, r4, r0 + ldrb r4, [r0] + lsls r4, 4 + ldr r0, _08099F4C @ =gWallpaperTable + adds r4, r0 + ldr r0, [r4, 0xC] + ldr r1, _08099F38 @ =gUnknown_083B6DB4 + ldr r5, [r1] + ldr r2, _08099F3C @ =0x000008ba + adds r6, r5, r2 + ldrb r2, [r6] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 20 + movs r3, 0x80 + lsls r3, 15 + adds r1, r3 + lsrs r1, 16 + movs r2, 0x60 + bl LoadPalette + ldr r0, [r4, 0x8] + ldr r1, _08099F50 @ =0x00000d62 + adds r5, r1 + adds r1, r5, 0 + bl LZ77UnCompWram + ldr r0, _08099F40 @ =0x0600d000 + lsls r2, r7, 24 + asrs r2, 24 + ldrb r3, [r6] + adds r1, r5, 0 + bl sub_8099F58 + ldr r0, [r4] + ldrb r1, [r6] + lsls r1, 13 + ldr r2, _08099F54 @ =0x06008000 + adds r1, r2 + bl LZ77UnCompVram + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08099F38: .4byte gUnknown_083B6DB4 +_08099F3C: .4byte 0x000008ba +_08099F40: .4byte 0x0600d000 +_08099F44: .4byte gPokemonStorage +_08099F48: .4byte 0x000083c2 +_08099F4C: .4byte gWallpaperTable +_08099F50: .4byte 0x00000d62 +_08099F54: .4byte 0x06008000 + thumb_func_end sub_8099EB0 + + thumb_func_start sub_8099F58 +sub_8099F58: @ 8099F58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + mov r9, r0 + adds r5, r1, 0 + lsls r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r0, r3, 8 + str r0, [sp] + lsls r0, r3, 1 + adds r0, r3 + adds r0, 0x4 + lsls r0, 28 + lsrs r0, 16 + str r0, [sp, 0x4] + ldr r0, _08099FB8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _08099FBC @ =0x000008b4 + adds r0, r1 + ldrh r1, [r0] + lsrs r1, 3 + adds r1, 0xA + lsrs r0, r2, 24 + mov r8, r0 + asrs r2, 24 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + movs r0, 0x3F + ands r1, r0 + str r1, [sp, 0x8] + adds r2, r1, 0 + cmp r2, 0xC + bgt _08099FC0 + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + adds r0, 0x80 + mov r1, r9 + adds r4, r1, r0 + movs r7, 0 + b _0809A020 + .align 2, 0 +_08099FB8: .4byte gUnknown_083B6DB4 +_08099FBC: .4byte 0x000008b4 +_08099FC0: + cmp r2, 0x1F + bgt _08099FE6 + movs r0, 0x20 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + adds r0, 0x80 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0x88 + lsls r7, 4 + add r7, r9 + b _0809A020 +_08099FE6: + cmp r2, 0x2C + bgt _08099FFE + movs r6, 0x14 + movs r3, 0 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + movs r7, 0 + b _0809A020 +_08099FFE: + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + movs r1, 0x14 + lsrs r6, r0, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r0, r2, 1 + movs r1, 0x84 + lsls r1, 4 + adds r0, r1 + mov r2, r9 + adds r4, r2, r0 + mov r7, r9 + adds r7, 0x80 +_0809A020: + movs r1, 0 + mov r0, r8 + lsls r0, 24 + str r0, [sp, 0x14] + lsls r0, r6, 16 + asrs r0, 16 + mov r8, r0 + lsls r3, 16 + str r3, [sp, 0xC] + asrs r2, r3, 16 + str r2, [sp, 0x10] +_0809A036: + movs r3, 0 + adds r0, r4, 0 + adds r0, 0x40 + str r0, [sp, 0x18] + adds r2, r7, 0 + adds r2, 0x40 + str r2, [sp, 0x1C] + adds r1, 0x1 + mov r10, r1 + cmp r3, r8 + bge _0809A07A + ldr r0, _0809A0D4 @ =0x00000fff + mov r12, r0 + movs r6, 0xF0 + lsls r6, 8 +_0809A054: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r4 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r8 + blt _0809A054 +_0809A07A: + movs r3, 0 + ldr r0, [sp, 0x10] + cmp r3, r0 + bge _0809A0B4 + ldr r1, _0809A0D4 @ =0x00000fff + mov r12, r1 + movs r6, 0xF0 + lsls r6, 8 + ldr r2, [sp, 0xC] + asrs r4, r2, 16 +_0809A08E: + ldrh r2, [r5] + mov r0, r12 + ands r0, r2 + ldr r1, [sp] + adds r0, r1, r0 + adds r1, r6, 0 + ands r1, r2 + ldr r2, [sp, 0x4] + adds r1, r2, r1 + orrs r1, r0 + lsls r0, r3, 1 + adds r0, r7 + strh r1, [r0] + adds r5, 0x2 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + blt _0809A08E +_0809A0B4: + ldr r4, [sp, 0x18] + ldr r7, [sp, 0x1C] + mov r1, r10 + lsls r0, r1, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A036 + ldr r0, [sp, 0x14] + asrs r2, r0, 24 + cmp r2, 0 + beq _0809A13A + cmp r2, 0 + ble _0809A0D8 + ldr r1, [sp, 0x8] + adds r1, 0x14 + b _0809A0DC + .align 2, 0 +_0809A0D4: .4byte 0x00000fff +_0809A0D8: + ldr r1, [sp, 0x8] + subs r1, 0x4 +_0809A0DC: + movs r0, 0x3F + ands r1, r0 + adds r4, r1, 0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A0EE + lsls r0, 1 + adds r0, 0x80 + b _0809A0F6 +_0809A0EE: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A0F6: + mov r1, r9 + adds r2, r1, r0 + movs r3, 0 + movs r6, 0 +_0809A0FE: + movs r1, 0 + adds r5, r3, 0x1 + lsls r3, r4, 16 +_0809A104: + strh r6, [r2] + adds r2, 0x40 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x11 + bls _0809A104 + asrs r0, r3, 16 + adds r4, r0, 0x1 + movs r0, 0x3F + ands r4, r0 + adds r0, r4, 0 + cmp r0, 0x1F + bgt _0809A126 + lsls r0, 1 + adds r0, 0x80 + b _0809A12E +_0809A126: + lsls r0, 1 + movs r2, 0x84 + lsls r2, 4 + adds r0, r2 +_0809A12E: + mov r1, r9 + adds r2, r1, r0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _0809A0FE +_0809A13A: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8099F58 + + thumb_func_start sub_809A14C +sub_809A14C: @ 809A14C + push {r4-r6,lr} + adds r2, r0, 0 + ldr r0, _0809A174 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A178 @ =0x000008b4 + 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 _0809A17C + lsls r0, 1 + movs r6, 0x98 + lsls r6, 3 + adds r0, r6 + b _0809A184 + .align 2, 0 +_0809A174: .4byte gUnknown_083B6DB4 +_0809A178: .4byte 0x000008b4 +_0809A17C: + lsls r0, 1 + movs r1, 0xC8 + lsls r1, 4 + adds r0, r1 +_0809A184: + adds r2, r0 + movs r0, 0 + movs r5, 0 + movs r4, 0x3F +_0809A18C: + strh r5, [r2] + adds r2, 0x2 + adds r3, 0x1 + ands r3, r4 + adds r1, r3, 0 + cmp r1, 0 + bne _0809A19E + ldr r6, _0809A1B8 @ =0xfffff7c0 + adds r2, r6 +_0809A19E: + cmp r1, 0x20 + bne _0809A1A8 + movs r1, 0xF8 + lsls r1, 3 + adds r2, r1 +_0809A1A8: + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2B + bls _0809A18C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A1B8: .4byte 0xfffff7c0 + thumb_func_end sub_809A14C + + thumb_func_start sub_809A1BC +sub_809A1BC: @ 809A1BC + push {r4-r6,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r2, r1, 0 + ldr r0, _0809A228 @ =gUnknown_083B6DB8 + ldr r5, [r0] + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r4, _0809A22C @ =0x040000d4 + str r1, [r4] + str r5, [r4, 0x4] + movs r6, 0x80 + lsls r6, 1 + ldr r0, _0809A230 @ =0x81000100 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0809A234 @ =gWindowConfig_81E6D38 + adds r1, r5, 0 + str r3, [sp, 0x4] + bl sub_8004E3C + str r5, [r4] + ldr r3, [sp, 0x4] + str r3, [r4, 0x4] + ldr r1, _0809A238 @ =0x80000040 + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, r6 + str r0, [r4] + adds r0, r3, 0 + adds r0, 0x80 + str r0, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + adds r0, r5, 0 + adds r0, 0x80 + str r0, [r4] + adds r6, r3, r6 + str r6, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + movs r0, 0xC0 + lsls r0, 1 + adds r5, r0 + str r5, [r4] + adds r3, r0 + str r3, [r4, 0x4] + str r1, [r4, 0x8] + ldr r0, [r4, 0x8] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A228: .4byte gUnknown_083B6DB8 +_0809A22C: .4byte 0x040000d4 +_0809A230: .4byte 0x81000100 +_0809A234: .4byte gWindowConfig_81E6D38 +_0809A238: .4byte 0x80000040 + thumb_func_end sub_809A1BC + + thumb_func_start sub_809A23C +sub_809A23C: @ 809A23C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0809A384 @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r1, _0809A388 @ =0x000008ca + adds r7, r5, r1 + str r7, [sp, 0x18] + mov r2, sp + adds r2, 0x18 + str r2, [sp, 0x20] + ldr r0, _0809A38C @ =0x00030200 + str r0, [r2, 0x4] + mov r1, sp + ldr r3, _0809A390 @ =0x00000ccc + adds r0, r5, r3 + str r0, [sp] + ldr r4, _0809A394 @ =0x0000dac8 + strh r4, [r1, 0x4] + str r0, [sp, 0x8] + ldr r6, _0809A398 @ =0xffffdac9 + strh r6, [r1, 0xC] + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x8 + bl memset + ldr r0, _0809A39C @ =gPokemonStorage + mov r9, r0 + ldr r0, _0809A3A0 @ =0x000083c2 + add r0, r9 + add r0, r8 + ldrb r1, [r0] + ldr r2, _0809A3A4 @ =gUnknown_083BB0A8 + lsls r1, 2 + adds r0, r1, r2 + ldrh r3, [r0] + ldr r6, _0809A3A8 @ =0x00000ce8 + adds r0, r5, r6 + strh r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrh r1, [r1] + ldr r2, _0809A3AC @ =0x00000cea + adds r0, r5, r2 + strh r1, [r0] + mov r0, sp + bl LoadSpritePalettes + ldr r3, _0809A3B0 @ =0x00000d08 + adds r6, r5, r3 + movs r0, 0xFC + lsls r0, 2 + str r0, [r6] + adds r0, r4, 0 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + movs r2, 0x87 + lsls r2, 1 + mov r10, r2 + add r1, r10 + ldr r3, _0809A3B4 @ =0x00000cec + adds r2, r5, r3 + strh r1, [r2] + movs r4, 0x80 + lsls r4, 9 + adds r1, r4, 0 + lsls r1, r0 + ldr r0, [r6] + orrs r0, r1 + str r0, [r6] + ldr r0, _0809A3B8 @ =0x0000dac9 + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + add r1, r10 + ldr r2, _0809A3BC @ =0x00000cee + adds r5, r2 + strh r1, [r5] + lsls r4, r0 + ldr r0, [r6] + orrs r0, r4 + str r0, [r6] + mov r3, r8 + lsls r4, r3, 3 + add r4, r8 + ldr r6, _0809A3C0 @ =0x00008344 + add r9, r6 + add r4, r9 + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_809A1BC + ldr r0, [sp, 0x20] + bl LoadSpriteSheet + adds r0, r4, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + movs r4, 0 + lsls r0, 16 + asrs r6, r0, 16 +_0809A328: + lsls r1, r4, 5 + adds r1, r6, r1 + lsls r1, 16 + asrs r1, 16 + ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8 + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0809A384 @ =gUnknown_083B6DB4 + ldr r5, [r0] + lsls r0, r4, 2 + movs r3, 0xCF + lsls r3, 4 + adds r2, r5, r3 + adds r2, r0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A3C8 @ =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 _0809A328 + ldr r6, _0809A3CC @ =0x00000cca + adds r1, r5, r6 + movs r0, 0 + strb r0, [r1] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A384: .4byte gUnknown_083B6DB4 +_0809A388: .4byte 0x000008ca +_0809A38C: .4byte 0x00030200 +_0809A390: .4byte 0x00000ccc +_0809A394: .4byte 0x0000dac8 +_0809A398: .4byte 0xffffdac9 +_0809A39C: .4byte gPokemonStorage +_0809A3A0: .4byte 0x000083c2 +_0809A3A4: .4byte gUnknown_083BB0A8 +_0809A3A8: .4byte 0x00000ce8 +_0809A3AC: .4byte 0x00000cea +_0809A3B0: .4byte 0x00000d08 +_0809A3B4: .4byte 0x00000cec +_0809A3B8: .4byte 0x0000dac9 +_0809A3BC: .4byte 0x00000cee +_0809A3C0: .4byte 0x00008344 +_0809A3C4: .4byte gSpriteTemplate_83BB2B8 +_0809A3C8: .4byte gSprites +_0809A3CC: .4byte 0x00000cca + thumb_func_end sub_809A23C + + thumb_func_start sub_809A3D0 +sub_809A3D0: @ 809A3D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x28] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r3, _0809A43C @ =gUnknown_083B6DB4 + ldr r5, [r3] + ldr r1, _0809A440 @ =0x000008ca + adds r0, r5, r1 + str r0, [sp, 0x18] + add r2, sp, 0x18 + ldr r4, _0809A444 @ =0x0000ffff + mov r9, r4 + movs r6, 0xC0 + lsls r6, 10 + mov r8, r6 + ldr r0, _0809A448 @ =0x00030200 + str r0, [r2, 0x4] + mov r1, sp + ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + movs r1, 0 + ldr r7, _0809A450 @ =0x00000cca + adds r4, r5, r7 + ldrb r0, [r4] + adds r6, r2, 0 + cmp r0, 0 + bne _0809A41E + movs r1, 0x1 +_0809A41E: + strb r1, [r4] + cmp r1, 0 + bne _0809A458 + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + mov r4, r8 + orrs r0, r4 + str r0, [r6, 0x4] + ldr r7, _0809A454 @ =0x00000cec + adds r0, r5, r7 + ldrh r0, [r0] + mov r8, r0 + b _0809A478 + .align 2, 0 +_0809A43C: .4byte gUnknown_083B6DB4 +_0809A440: .4byte 0x000008ca +_0809A444: .4byte 0x0000ffff +_0809A448: .4byte 0x00030200 +_0809A44C: .4byte gSpriteTemplate_83BB2B8 +_0809A450: .4byte 0x00000cca +_0809A454: .4byte 0x00000cec +_0809A458: + ldr r0, [r6, 0x4] + mov r1, r9 + ands r0, r1 + movs r1, 0x80 + lsls r1, 11 + orrs r0, r1 + str r0, [r6, 0x4] + ldr r4, _0809A570 @ =0x00000cec + adds r0, r5, r4 + ldrh r0, [r0] + mov r8, r0 + mov r1, sp + movs r0, 0x4 + strh r0, [r1] + ldr r0, _0809A574 @ =0x0000dac9 + strh r0, [r1, 0x2] +_0809A478: + ldr r0, [r3] + ldr r7, _0809A578 @ =0x000008ca + adds r0, r7 + ldr r1, [sp, 0x28] + lsls r5, r1, 3 + adds r5, r1 + ldr r4, _0809A57C @ =gUnknown_020383E4 + adds r5, r4 + adds r1, r5, 0 + bl sub_809A1BC + adds r0, r6, 0 + bl LoadSpriteSheet + adds r4, 0x7E + ldr r3, [sp, 0x28] + adds r4, r3, r4 + ldrb r0, [r4] + lsls r0, 2 + ldr r1, _0809A580 @ =gUnknown_083BB0A8 + adds r0, r1 + mov r1, r8 + movs r2, 0x4 + bl LoadPalette + adds r0, r5, 0 + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + bl sub_809A6D0 + lsls r0, 16 + mov r4, r10 + lsls r2, r4, 24 + asrs r2, 24 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 6 + lsrs r6, r0, 16 + str r6, [sp, 0x20] + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x24] + movs r7, 0 + negs r2, r2 + mov r9, r2 + movs r0, 0x1 + mov r10, r0 +_0809A4DE: + lsls r1, r7, 5 + mov r8, r1 + ldr r3, [sp, 0x24] + lsls r1, r3, 16 + asrs r1, 16 + add r1, r8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x1C + movs r3, 0x17 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A584 @ =gUnknown_083B6DB4 + ldr r4, [r1] + lsls r6, r7, 2 + ldr r1, _0809A588 @ =0x00000cf8 + adds r2, r4, r1 + adds r2, r6 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0809A58C @ =gSprites + adds r1, r0 + str r1, [r2] + mov r3, r9 + lsls r5, r3, 1 + add r5, r9 + lsls r5, 1 + strh r5, [r1, 0x2E] + ldr r1, [r2] + ldr r3, [sp, 0x20] + lsls r0, r3, 16 + asrs r0, 16 + add r0, r8 + strh r0, [r1, 0x30] + ldr r0, [r2] + mov r1, r10 + strh r1, [r0, 0x32] + ldr r0, [r2] + ldr r1, _0809A590 @ =sub_809A5E8 + str r1, [r0, 0x1C] + lsls r1, r7, 24 + lsrs r1, 24 + bl StartSpriteAnim + movs r3, 0xCF + lsls r3, 4 + adds r4, r3 + adds r4, r6 + ldr r0, [r4] + strh r5, [r0, 0x2E] + ldr r0, [r4] + mov r6, r10 + strh r6, [r0, 0x30] + ldr r1, [r4] + ldr r0, _0809A594 @ =sub_809A61C + str r0, [r1, 0x1C] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x1 + bls _0809A4DE + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A570: .4byte 0x00000cec +_0809A574: .4byte 0x0000dac9 +_0809A578: .4byte 0x000008ca +_0809A57C: .4byte gUnknown_020383E4 +_0809A580: .4byte gUnknown_083BB0A8 +_0809A584: .4byte gUnknown_083B6DB4 +_0809A588: .4byte 0x00000cf8 +_0809A58C: .4byte gSprites +_0809A590: .4byte sub_809A5E8 +_0809A594: .4byte sub_809A61C + thumb_func_end sub_809A3D0 + + thumb_func_start sub_809A598 +sub_809A598: @ 809A598 + push {lr} + ldr r0, _0809A5B0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A5B4 @ =0x00000cca + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A5B8 + movs r0, 0x4 + bl FreeSpriteTilesByTag + b _0809A5BE + .align 2, 0 +_0809A5B0: .4byte gUnknown_083B6DB4 +_0809A5B4: .4byte 0x00000cca +_0809A5B8: + movs r0, 0x3 + bl FreeSpriteTilesByTag +_0809A5BE: + ldr r0, _0809A5E0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0xCF + lsls r3, 4 + adds r2, r0, r3 + adds r3, 0x8 + adds r1, r0, r3 + ldr r1, [r1] + str r1, [r2] + ldr r2, _0809A5E4 @ =0x00000cf4 + adds r1, r0, r2 + adds r3, 0x4 + adds r0, r3 + ldr r0, [r0] + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0809A5E0: .4byte gUnknown_083B6DB4 +_0809A5E4: .4byte 0x00000cf4 + thumb_func_end sub_809A598 + + thumb_func_start sub_809A5E8 +sub_809A5E8: @ 809A5E8 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x32] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A5FC + subs r0, r1, 0x1 + strh r0, [r2, 0x32] + b _0809A614 +_0809A5FC: + 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 _0809A614 + ldr r0, _0809A618 @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_0809A614: + pop {r0} + bx r0 + .align 2, 0 +_0809A618: .4byte SpriteCallbackDummy + thumb_func_end sub_809A5E8 + + thumb_func_start sub_809A61C +sub_809A61C: @ 809A61C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0809A630 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] + b _0809A64E +_0809A630: + 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 _0809A64E + adds r0, r2, 0 + bl DestroySprite +_0809A64E: + pop {r0} + bx r0 + thumb_func_end sub_809A61C + + thumb_func_start sub_809A654 +sub_809A654: @ 809A654 + push {lr} + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809A690 @ =gPokemonStorage + ldr r2, _0809A694 @ =0x000083c2 + adds r1, r2 + adds r0, r1 + ldrb r1, [r0] + ldr r0, _0809A698 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809A69C @ =0x00000cca + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0809A6A8 + lsls r0, r1, 2 + ldr r1, _0809A6A0 @ =gUnknown_083BB0A8 + adds r0, r1 + adds r3, 0x22 + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6A4 @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet + b _0809A6C0 + .align 2, 0 +_0809A690: .4byte gPokemonStorage +_0809A694: .4byte 0x000083c2 +_0809A698: .4byte gUnknown_083B6DB4 +_0809A69C: .4byte 0x00000cca +_0809A6A0: .4byte gUnknown_083BB0A8 +_0809A6A4: .4byte gPlttBufferUnfaded +_0809A6A8: + lsls r0, r1, 2 + ldr r1, _0809A6C4 @ =gUnknown_083BB0A8 + adds r0, r1 + ldr r3, _0809A6C8 @ =0x00000cee + adds r1, r2, r3 + ldrh r1, [r1] + lsls r1, 1 + ldr r2, _0809A6CC @ =gPlttBufferUnfaded + adds r1, r2 + movs r2, 0x2 + bl CpuSet +_0809A6C0: + pop {r0} + bx r0 + .align 2, 0 +_0809A6C4: .4byte gUnknown_083BB0A8 +_0809A6C8: .4byte 0x00000cee +_0809A6CC: .4byte gPlttBufferUnfaded + thumb_func_end sub_809A654 + + thumb_func_start sub_809A6D0 +sub_809A6D0: @ 809A6D0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + movs r0, 0xB0 + subs r0, r1 + bx lr + thumb_func_end sub_809A6D0 + + thumb_func_start sub_809A6DC +sub_809A6DC: @ 809A6DC + push {r4,r5,lr} + ldr r0, _0809A760 @ =gUnknown_083BB288 + bl LoadSpriteSheet + ldr r0, _0809A764 @ =gUnknown_083BB290 + bl LoadSpritePalette + movs r5, 0 +_0809A6EC: + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 19 + movs r0, 0xB8 + lsls r0, 15 + adds r1, r0 + asrs r1, 16 + ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0 + movs r2, 0x1C + movs r3, 0x15 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _0809A73E + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0809A76C @ =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 _0809A72C + movs r1, 0x1 + negs r1, r1 + adds r0, r1, 0 +_0809A72C: + strh r0, [r4, 0x34] + ldr r0, _0809A770 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r5, 2 + movs r2, 0xD0 + lsls r2, 4 + adds r0, r2 + adds r0, r1 + str r4, [r0] +_0809A73E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1 + bls _0809A6EC + bl sub_809BF2C + lsls r0, 24 + cmp r0, 0 + beq _0809A758 + movs r0, 0x1 + bl sub_809A860 +_0809A758: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A760: .4byte gUnknown_083BB288 +_0809A764: .4byte gUnknown_083BB290 +_0809A768: .4byte gSpriteTemplate_83BB2F0 +_0809A76C: .4byte gSprites +_0809A770: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A6DC + + thumb_func_start sub_809A774 +sub_809A774: @ 809A774 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0 + ldr r7, _0809A7C4 @ =gUnknown_083B6DB4 + ldr r0, [r7] + movs r1, 0xD0 + lsls r1, 4 + adds r3, r0, r1 + movs r5, 0 + movs r4, 0x2 +_0809A78A: + lsls r1, r2, 2 + adds r1, r3, r1 + ldr r0, [r1] + strh r5, [r0, 0x24] + ldr r0, [r1] + strh r4, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A78A + lsls r0, r6, 24 + cmp r0, 0 + bge _0809A7CC + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, _0809A7C8 @ =0x00000d04 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0x48 + b _0809A7E8 + .align 2, 0 +_0809A7C4: .4byte gUnknown_083B6DB4 +_0809A7C8: .4byte 0x00000d04 +_0809A7CC: + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r3, r1, r2 + ldr r2, [r3] + movs r0, 0x5 + strh r0, [r2, 0x30] + ldr r0, _0809A80C @ =0x00000d04 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x1D + strh r0, [r2, 0x30] + ldr r0, [r3] + movs r2, 0xF8 +_0809A7E8: + strh r2, [r0, 0x32] + ldr r0, [r1] + strh r2, [r0, 0x32] + ldr r1, [r7] + movs r2, 0xD0 + lsls r2, 4 + adds r0, r1, r2 + ldr r2, [r0] + movs r0, 0 + strh r0, [r2, 0x3C] + ldr r0, _0809A80C @ =0x00000d04 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x1 + strh r0, [r1, 0x3C] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809A80C: .4byte 0x00000d04 + thumb_func_end sub_809A774 + + thumb_func_start sub_809A810 +sub_809A810: @ 809A810 + push {r4-r6,lr} + movs r3, 0 + ldr r0, _0809A85C @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r5, 0 + movs r6, 0x5 + negs r6, r6 +_0809A824: + lsls r1, r3, 2 + adds r1, r4, r1 + 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 _0809A824 + movs r0, 0x1 + bl sub_809A860 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809A85C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A810 + + thumb_func_start sub_809A860 +sub_809A860: @ 809A860 + push {r4,r5,lr} + lsls r0, 24 + cmp r0, 0 + beq _0809A89C + movs r2, 0 + ldr r0, _0809A898 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0xD0 + lsls r1, 4 + adds r4, r0, r1 + movs r3, 0 + movs r5, 0x1 +_0809A878: + lsls r1, r2, 2 + adds r1, r4, r1 + ldr r0, [r1] + strh r5, [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 _0809A878 + b _0809A8BC + .align 2, 0 +_0809A898: .4byte gUnknown_083B6DB4 +_0809A89C: + movs r2, 0 + ldr r0, _0809A8C4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0xD0 + lsls r3, 4 + adds r1, r0, r3 + movs r3, 0 +_0809A8AA: + lsls r0, r2, 2 + adds r0, r1, r0 + ldr r0, [r0] + strh r3, [r0, 0x2E] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x1 + bls _0809A8AA +_0809A8BC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809A8C4: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809A860 + + thumb_func_start sub_809A8C8 +sub_809A8C8: @ 809A8C8 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x4 + bhi _0809A994 + lsls r0, 2 + ldr r1, _0809A8E0 @ =_0809A8E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A8E0: .4byte _0809A8E4 + .align 2, 0 +_0809A8E4: + .4byte _0809A8F8 + .4byte _0809A8FE + .4byte _0809A92C + .4byte _0809A932 + .4byte _0809A984 +_0809A8F8: + movs r0, 0 + strh r0, [r2, 0x24] + b _0809A994 +_0809A8FE: + ldrh r0, [r2, 0x30] + adds r0, 0x1 + movs r1, 0 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _0809A994 + 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 _0809A994 + strh r1, [r2, 0x32] + strh r1, [r2, 0x24] + b _0809A994 +_0809A92C: + movs r0, 0x3 + strh r0, [r2, 0x2E] + b _0809A994 +_0809A932: + ldr r0, _0809A97C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809A980 @ =0x000008b6 + 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 _0809A958 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_0809A958: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _0809A994 + 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 _0809A994 + .align 2, 0 +_0809A97C: .4byte gUnknown_083B6DB4 +_0809A980: .4byte 0x000008b6 +_0809A984: + ldr r0, _0809A998 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809A99C @ =0x000008b6 + adds r0, r1 + ldrh r1, [r2, 0x20] + ldrh r0, [r0] + subs r1, r0 + strh r1, [r2, 0x20] +_0809A994: + pop {r0} + bx r0 + .align 2, 0 +_0809A998: .4byte gUnknown_083B6DB4 +_0809A99C: .4byte 0x000008b6 + thumb_func_end sub_809A8C8 + + thumb_func_start sub_809A9A0 +sub_809A9A0: @ 809A9A0 + 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, _0809AA0C @ =gSpriteTemplate_83BB2F0 + 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 _0809AA18 + movs r1, 0x1 + ands r1, r7 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _0809AA10 @ =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, _0809AA14 @ =SpriteCallbackDummy + str r0, [r4] + adds r0, r6, 0 + b _0809AA1A + .align 2, 0 +_0809AA0C: .4byte gSpriteTemplate_83BB2F0 +_0809AA10: .4byte gSprites +_0809AA14: .4byte SpriteCallbackDummy +_0809AA18: + movs r0, 0 +_0809AA1A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809A9A0 + + thumb_func_start sub_809AA24 +sub_809AA24: @ 809AA24 + push {lr} + ldr r0, _0809AA38 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r1, [r0, 0x5] + cmp r1, 0x1 + beq _0809AA40 + ldr r1, _0809AA3C @ =gUnknown_020384E4 + movs r0, 0 + strb r0, [r1] + b _0809AA44 + .align 2, 0 +_0809AA38: .4byte gUnknown_083B6DB4 +_0809AA3C: .4byte gUnknown_020384E4 +_0809AA40: + ldr r0, _0809AA78 @ =gUnknown_020384E4 + strb r1, [r0] +_0809AA44: + ldr r0, _0809AA7C @ =gUnknown_020384E5 + movs r1, 0 + strb r1, [r0] + ldr r0, _0809AA80 @ =gUnknown_020384E6 + strb r1, [r0] + ldr r0, _0809AA84 @ =gUnknown_020384E7 + strb r1, [r0] + ldr r0, _0809AA88 @ =gUnknown_020384E8 + strb r1, [r0] + ldr r0, _0809AA8C @ =gUnknown_020384E9 + strb r1, [r0] + bl sub_809B0D4 + bl sub_809CC04 + ldr r0, _0809AA90 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809AA94 @ =0x000011e2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809AA78: .4byte gUnknown_020384E4 +_0809AA7C: .4byte gUnknown_020384E5 +_0809AA80: .4byte gUnknown_020384E6 +_0809AA84: .4byte gUnknown_020384E7 +_0809AA88: .4byte gUnknown_020384E8 +_0809AA8C: .4byte gUnknown_020384E9 +_0809AA90: .4byte gUnknown_083B6DB4 +_0809AA94: .4byte 0x000011e2 + thumb_func_end sub_809AA24 + + thumb_func_start sub_809AA98 +sub_809AA98: @ 809AA98 + push {lr} + bl sub_809CC04 + bl sub_809C028 + ldr r0, _0809AAC0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809AAC4 @ =0x000011e2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _0809AAC8 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809AABA + bl sub_8098BF0 +_0809AABA: + pop {r0} + bx r0 + .align 2, 0 +_0809AAC0: .4byte gUnknown_083B6DB4 +_0809AAC4: .4byte 0x000011e2 +_0809AAC8: .4byte gUnknown_020384E6 + thumb_func_end sub_809AA98 + + thumb_func_start sub_809AACC +sub_809AACC: @ 809AACC + 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 _0809AB84 + lsls r0, 2 + ldr r1, _0809AAE8 @ =_0809AAEC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809AAE8: .4byte _0809AAEC + .align 2, 0 +_0809AAEC: + .4byte _0809AB00 + .4byte _0809AB2E + .4byte _0809AB56 + .4byte _0809AB5E + .4byte _0809AB7C +_0809AB00: + 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 _0809AB84 +_0809AB2E: + cmp r5, 0 + bne _0809AB3A + movs r0, 0x68 + strh r0, [r4] + movs r0, 0x34 + b _0809AB82 +_0809AB3A: + cmp r5, 0x6 + bne _0809AB46 + movs r0, 0x98 + strh r0, [r4] + movs r0, 0x84 + b _0809AB82 +_0809AB46: + movs r0, 0x98 + strh r0, [r4] + subs r1, r5, 0x1 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, 0x4 + b _0809AB82 +_0809AB56: + movs r0, 0xA2 + strh r0, [r4] + movs r0, 0xC + b _0809AB82 +_0809AB5E: + ldr r0, _0809AB78 @ =gUnknown_020384E6 + ldrb r0, [r0] + movs r1, 0xE + cmp r0, 0 + beq _0809AB6A + movs r1, 0x8 +_0809AB6A: + strh r1, [r6] + movs r0, 0x58 + muls r0, r5 + adds r0, 0x78 + strh r0, [r4] + b _0809AB84 + .align 2, 0 +_0809AB78: .4byte gUnknown_020384E6 +_0809AB7C: + movs r0, 0xA0 + strh r0, [r4] + movs r0, 0x60 +_0809AB82: + strh r0, [r6] +_0809AB84: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_809AACC + + thumb_func_start sub_809AB8C +sub_809AB8C: @ 809AB8C + push {lr} + ldr r0, _0809ABB4 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809ABC0 + cmp r0, 0x1 + bne _0809ABF8 + ldr r0, _0809ABB8 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809ABBC @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + b _0809ABEA + .align 2, 0 +_0809ABB4: .4byte gUnknown_020384E4 +_0809ABB8: .4byte gUnknown_020384E5 +_0809ABBC: .4byte gPlayerParty +_0809ABC0: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809ABF0 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809ABF4 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0xB + bl GetBoxMonData +_0809ABEA: + lsls r0, 16 + lsrs r0, 16 + b _0809ABFA + .align 2, 0 +_0809ABF0: .4byte gUnknown_020384E5 +_0809ABF4: .4byte gUnknown_020300A4 +_0809ABF8: + movs r0, 0 +_0809ABFA: + pop {r1} + bx r1 + thumb_func_end sub_809AB8C + + thumb_func_start sub_809AC00 +sub_809AC00: @ 809AC00 + push {r4-r6,lr} + ldr r0, _0809AC14 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809AC18 @ =0x000011dc + adds r1, r4, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0809AC1C + movs r0, 0 + b _0809AD2C + .align 2, 0 +_0809AC14: .4byte gUnknown_083B6DB4 +_0809AC18: .4byte 0x000011dc +_0809AC1C: + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + beq _0809AD0C + ldr r1, _0809ACF4 @ =0x000011c8 + adds r3, r4, r1 + ldr r2, _0809ACF8 @ =0x000011d0 + adds r1, r4, r2 + ldr r0, [r3] + ldr r1, [r1] + adds r0, r1 + str r0, [r3] + ldr r6, _0809ACFC @ =0x000011cc + adds r2, r4, r6 + ldr r0, _0809AD00 @ =0x000011d4 + adds r1, r4, r0 + ldr r0, [r2] + ldr r1, [r1] + adds r0, r1 + str r0, [r2] + movs r1, 0x8E + lsls r1, 5 + adds r5, r4, r1 + ldr r1, [r5] + ldr r0, [r3] + asrs r0, 8 + strh r0, [r1, 0x20] + ldr r1, [r5] + ldr r0, [r2] + asrs r0, 8 + strh r0, [r1, 0x22] + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + movs r3, 0x80 + lsls r3, 1 + cmp r0, r3 + ble _0809AC78 + ldr r6, _0809AD04 @ =0xffffff00 + adds r0, r2, r6 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x40 + strh r0, [r1, 0x20] +_0809AC78: + ldr r1, [r5] + ldrh r2, [r1, 0x20] + movs r6, 0x20 + ldrsh r0, [r1, r6] + cmp r0, 0x3F + bgt _0809AC90 + movs r0, 0x40 + subs r0, r2 + lsls r0, 16 + asrs r0, 16 + subs r0, r3, r0 + strh r0, [r1, 0x20] +_0809AC90: + ldr r1, [r5] + ldrh r2, [r1, 0x22] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0xB0 + ble _0809ACA8 + adds r0, r2, 0 + subs r0, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r0, 0x10 + strh r0, [r1, 0x22] +_0809ACA8: + ldr r2, [r5] + ldrh r3, [r2, 0x22] + movs r6, 0x22 + ldrsh r0, [r2, r6] + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _0809ACC4 + subs r0, r1, r3 + movs r1, 0xB0 + lsls r0, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r2, 0x22] +_0809ACC4: + ldr r0, _0809AD08 @ =0x000011e3 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809AD2A + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _0809AD2A + ldr r2, [r5] + 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 _0809AD2A + .align 2, 0 +_0809ACF4: .4byte 0x000011c8 +_0809ACF8: .4byte 0x000011d0 +_0809ACFC: .4byte 0x000011cc +_0809AD00: .4byte 0x000011d4 +_0809AD04: .4byte 0xffffff00 +_0809AD08: .4byte 0x000011e3 +_0809AD0C: + movs r1, 0x8E + lsls r1, 5 + adds r2, r4, r1 + ldr r1, [r2] + ldr r3, _0809AD34 @ =0x000011d8 + adds r0, r4, r3 + ldrh r0, [r0] + strh r0, [r1, 0x20] + ldr r1, [r2] + ldr r6, _0809AD38 @ =0x000011da + adds r0, r4, r6 + ldrh r0, [r0] + strh r0, [r1, 0x22] + bl sub_809AFB8 +_0809AD2A: + movs r0, 0x1 +_0809AD2C: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809AD34: .4byte 0x000011d8 +_0809AD38: .4byte 0x000011da + thumb_func_end sub_809AC00 + + thumb_func_start sub_809AD3C +sub_809AD3C: @ 809AD3C + 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_809AACC + ldr r0, _0809AD88 @ =gUnknown_083B6DB4 + ldr r1, [r0] + movs r2, 0x8F + lsls r2, 5 + adds r0, r1, r2 + strb r4, [r0] + ldr r3, _0809AD8C @ =0x000011e1 + adds r0, r1, r3 + strb r5, [r0] + mov r0, sp + ldrh r2, [r0] + subs r3, 0x9 + adds r0, r1, r3 + strh r2, [r0] + ldrh r0, [r6] + ldr r2, _0809AD90 @ =0x000011da + adds r1, r2 + strh r0, [r1] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809AD88: .4byte gUnknown_083B6DB4 +_0809AD8C: .4byte 0x000011e1 +_0809AD90: .4byte 0x000011da + thumb_func_end sub_809AD3C + + thumb_func_start sub_809AD94 +sub_809AD94: @ 809AD94 + push {r4-r7,lr} + ldr r0, _0809ADB0 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809ADB4 @ =0x000011de + adds r1, r2, r3 + ldrh r1, [r1] + adds r4, r0, 0 + cmp r1, 0 + beq _0809ADBC + ldr r0, _0809ADB8 @ =0x000011dc + adds r1, r2, r0 + movs r0, 0xC + b _0809ADC2 + .align 2, 0 +_0809ADB0: .4byte gUnknown_083B6DB4 +_0809ADB4: .4byte 0x000011de +_0809ADB8: .4byte 0x000011dc +_0809ADBC: + ldr r3, _0809AE04 @ =0x000011dc + adds r1, r2, r3 + movs r0, 0x6 +_0809ADC2: + strh r0, [r1] + ldr r2, [r4] + ldr r0, _0809AE08 @ =0x000011e3 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0809ADDA + ldr r3, _0809AE04 @ =0x000011dc + adds r0, r2, r3 + ldrh r0, [r0] + lsrs r0, 1 + strb r0, [r1] +_0809ADDA: + ldr r1, _0809AE0C @ =0x000011de + adds r0, r2, r1 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE14 + cmp r1, 0x1 + beq _0809AE30 + ldr r3, _0809AE10 @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + b _0809AE46 + .align 2, 0 +_0809AE04: .4byte 0x000011dc +_0809AE08: .4byte 0x000011e3 +_0809AE0C: .4byte 0x000011de +_0809AE10: .4byte 0x000011da +_0809AE14: + ldr r3, _0809AE2C @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AE46 + .align 2, 0 +_0809AE2C: .4byte 0x000011da +_0809AE30: + ldr r3, _0809AE74 @ =0x000011da + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x22 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AE46: + subs r7, r1, r0 + ldr r2, [r4] + ldr r3, _0809AE78 @ =0x000011df + adds r0, r2, r3 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0809AE80 + cmp r1, 0x1 + beq _0809AE9C + ldr r1, _0809AE7C @ =0x000011d8 + adds r0, r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + b _0809AEB2 + .align 2, 0 +_0809AE74: .4byte 0x000011da +_0809AE78: .4byte 0x000011df +_0809AE7C: .4byte 0x000011d8 +_0809AE80: + ldr r3, _0809AE98 @ =0x000011d8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + adds r0, 0xC0 + b _0809AEB2 + .align 2, 0 +_0809AE98: .4byte 0x000011d8 +_0809AE9C: + ldr r3, _0809AF00 @ =0x000011d8 + adds r0, r2, r3 + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x8E + lsls r3, 5 + adds r0, r2, r3 + ldr r0, [r0] + movs r2, 0x20 + ldrsh r0, [r0, r2] + subs r0, 0xC0 +_0809AEB2: + subs r0, r1, r0 + lsls r7, 8 + lsls r0, 8 + ldr r4, [r4] + ldr r3, _0809AF04 @ =0x000011d0 + adds r6, r4, r3 + ldr r1, _0809AF08 @ =0x000011dc + adds r5, r4, r1 + ldrh r1, [r5] + bl __divsi3 + str r0, [r6] + ldr r2, _0809AF0C @ =0x000011d4 + adds r6, r4, r2 + ldrh r1, [r5] + adds r0, r7, 0 + bl __divsi3 + str r0, [r6] + ldr r3, _0809AF10 @ =0x000011c8 + adds r2, r4, r3 + movs r0, 0x8E + lsls r0, 5 + adds r1, r4, r0 + ldr r0, [r1] + movs r3, 0x20 + ldrsh r0, [r0, r3] + lsls r0, 8 + str r0, [r2] + ldr r0, _0809AF14 @ =0x000011cc + 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 +_0809AF00: .4byte 0x000011d8 +_0809AF04: .4byte 0x000011d0 +_0809AF08: .4byte 0x000011dc +_0809AF0C: .4byte 0x000011d4 +_0809AF10: .4byte 0x000011c8 +_0809AF14: .4byte 0x000011cc + thumb_func_end sub_809AD94 + + thumb_func_start sub_809AF18 +sub_809AF18: @ 809AF18 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_809AD3C + bl sub_809AD94 + ldr r0, _0809AFA4 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AF46 + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim +_0809AF46: + cmp r4, 0x1 + bne _0809AF70 + ldr r0, _0809AFAC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809AF70 + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809AFB0 @ =0x000011e2 + adds r1, r0, r2 + strb r4, [r1] + ldr r1, _0809AFB4 @ =0x000011c4 + adds r0, r1 + ldr r1, [r0] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] +_0809AF70: + cmp r4, 0 + beq _0809AF9E + cmp r4, 0 + blt _0809AF9E + cmp r4, 0x3 + bgt _0809AF9E + ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809AFB4 @ =0x000011c4 + adds r2, r0 + ldr r1, [r2] + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + ldr r2, [r2] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x5] +_0809AF9E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809AFA4: .4byte gUnknown_020384E6 +_0809AFA8: .4byte gUnknown_083B6DB4 +_0809AFAC: .4byte gUnknown_020384E4 +_0809AFB0: .4byte 0x000011e2 +_0809AFB4: .4byte 0x000011c4 + thumb_func_end sub_809AF18 + + thumb_func_start sub_809AFB8 +sub_809AFB8: @ 809AFB8 + push {r4,r5,lr} + ldr r5, _0809B000 @ =gUnknown_020384E4 + ldr r0, _0809B004 @ =gUnknown_083B6DB4 + ldr r4, [r0] + movs r1, 0x8F + lsls r1, 5 + adds r0, r4, r1 + ldrb r0, [r0] + strb r0, [r5] + ldr r1, _0809B008 @ =gUnknown_020384E5 + ldr r2, _0809B00C @ =0x000011e1 + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0809B010 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809AFEA + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809AFEA: + bl sub_809BF74 + movs r0, 0 + ldrsb r0, [r5, r0] + cmp r0, 0x1 + beq _0809B020 + cmp r0, 0x1 + bgt _0809B014 + cmp r0, 0 + beq _0809B034 + b _0809B05E + .align 2, 0 +_0809B000: .4byte gUnknown_020384E4 +_0809B004: .4byte gUnknown_083B6DB4 +_0809B008: .4byte gUnknown_020384E5 +_0809B00C: .4byte 0x000011e1 +_0809B010: .4byte gUnknown_020384E6 +_0809B014: + cmp r0, 0x2 + bne _0809B05E + movs r0, 0x1 + bl sub_809A860 + b _0809B05E +_0809B020: + ldr r2, _0809B030 @ =0x000011c4 + adds r0, r4, r2 + ldr r0, [r0] + adds r0, 0x43 + movs r1, 0xC + strb r1, [r0] + b _0809B05E + .align 2, 0 +_0809B030: .4byte 0x000011c4 +_0809B034: + ldr r0, _0809B064 @ =0x000011c4 + adds r2, r4, r0 + ldr r3, [r2] + ldrb r1, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r3, 0x5] + ldr r0, [r2] + adds r0, 0x43 + movs r1, 0x14 + strb r1, [r0] + ldr r1, [r2] + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_0809B05E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B064: .4byte 0x000011c4 + thumb_func_end sub_809AFB8 + + thumb_func_start sub_809B068 +sub_809B068: @ 809B068 + push {lr} + ldr r0, _0809B078 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809B07C + movs r3, 0 + b _0809B08A + .align 2, 0 +_0809B078: .4byte gUnknown_020384E6 +_0809B07C: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _0809B08A + movs r3, 0x5 +_0809B08A: + ldr r0, _0809B0B8 @ =gUnknown_083B6DB4 + ldr r2, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r2, r1 + ldr r0, [r0] + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809B0AA + ldr r0, _0809B0BC @ =0x000011e3 + adds r1, r2, r0 + movs r0, 0x1 + strb r0, [r1] +_0809B0AA: + movs r0, 0x1 + adds r1, r3, 0 + bl sub_809AF18 + pop {r0} + bx r0 + .align 2, 0 +_0809B0B8: .4byte gUnknown_083B6DB4 +_0809B0BC: .4byte 0x000011e3 + thumb_func_end sub_809B068 + + thumb_func_start sub_809B0C0 +sub_809B0C0: @ 809B0C0 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_809AF18 + pop {r0} + bx r0 + thumb_func_end sub_809B0C0 + + thumb_func_start sub_809B0D4 +sub_809B0D4: @ 809B0D4 + ldr r1, _0809B0DC @ =gUnknown_020384EA + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B0DC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0D4 + + thumb_func_start sub_809B0E0 +sub_809B0E0: @ 809B0E0 + ldr r0, _0809B0EC @ =gUnknown_020384EA + ldr r1, _0809B0F0 @ =gUnknown_020384E5 + ldrb r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_0809B0EC: .4byte gUnknown_020384EA +_0809B0F0: .4byte gUnknown_020384E5 + thumb_func_end sub_809B0E0 + + thumb_func_start sub_809B0F4 +sub_809B0F4: @ 809B0F4 + ldr r0, _0809B0FC @ =gUnknown_020384EA + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809B0FC: .4byte gUnknown_020384EA + thumb_func_end sub_809B0F4 + + thumb_func_start sub_809B100 +sub_809B100: @ 809B100 + lsls r0, 24 + ldr r1, _0809B120 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B124 @ =0x000012a4 + adds r3, r1, r2 + ldr r2, _0809B128 @ =gUnknown_083BBBC8 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0809B12C @ =0x000012a8 + adds r1, r0 + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0809B120: .4byte gUnknown_083B6DB4 +_0809B124: .4byte 0x000012a4 +_0809B128: .4byte gUnknown_083BBBC8 +_0809B12C: .4byte 0x000012a8 + thumb_func_end sub_809B100 + + thumb_func_start sub_809B130 +sub_809B130: @ 809B130 + push {lr} + ldr r0, _0809B148 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B14C @ =0x000012a4 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0809B148: .4byte gUnknown_083B6DB4 +_0809B14C: .4byte 0x000012a4 + thumb_func_end sub_809B130 + + thumb_func_start sub_809B150 +sub_809B150: @ 809B150 + push {r4,r5,lr} + ldr r0, _0809B16C @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _0809B170 @ =0x000012a8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x1 + beq _0809B1A0 + cmp r0, 0x1 + bgt _0809B174 + cmp r0, 0 + beq _0809B17E + b _0809B1CE + .align 2, 0 +_0809B16C: .4byte gUnknown_083B6DB4 +_0809B170: .4byte 0x000012a8 +_0809B174: + cmp r0, 0x2 + beq _0809B1BE + cmp r0, 0x3 + beq _0809B186 + b _0809B1CE +_0809B17E: + ldr r0, _0809B18C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B190 +_0809B186: + movs r0, 0 + b _0809B1D0 + .align 2, 0 +_0809B18C: .4byte gUnknown_020384E6 +_0809B190: + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + b _0809B1C8 +_0809B1A0: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE + movs r1, 0x8E + lsls r1, 5 + adds r0, r5, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + bl sub_809B384 + b _0809B1C8 +_0809B1BE: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B1CE +_0809B1C8: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809B1CE: + movs r0, 0x1 +_0809B1D0: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B150 + + thumb_func_start sub_809B1D8 +sub_809B1D8: @ 809B1D8 + push {r4,r5,lr} + ldr r0, _0809B1F4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B1F8 @ =0x000012a8 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B220 + cmp r0, 0x1 + bgt _0809B1FC + cmp r0, 0 + beq _0809B202 + b _0809B244 + .align 2, 0 +_0809B1F4: .4byte gUnknown_083B6DB4 +_0809B1F8: .4byte 0x000012a8 +_0809B1FC: + cmp r0, 0x2 + beq _0809B240 + b _0809B244 +_0809B202: + bl sub_809B324 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + bl sub_809B3E0 + b _0809B238 +_0809B220: + bl sub_809B358 + lsls r0, 24 + cmp r0, 0 + bne _0809B244 + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim +_0809B238: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B244 +_0809B240: + movs r0, 0 + b _0809B246 +_0809B244: + movs r0, 0x1 +_0809B246: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B1D8 + + thumb_func_start sub_809B24C +sub_809B24C: @ 809B24C + push {r4,r5,lr} + ldr r0, _0809B268 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B26C @ =0x000012a8 + adds r5, r4, r0 + ldrb r0, [r5] + cmp r0, 0x1 + beq _0809B2E0 + cmp r0, 0x1 + bgt _0809B270 + cmp r0, 0 + beq _0809B276 + b _0809B31C + .align 2, 0 +_0809B268: .4byte gUnknown_083B6DB4 +_0809B26C: .4byte 0x000012a8 +_0809B270: + cmp r0, 0x2 + beq _0809B318 + b _0809B31C +_0809B276: + ldr r0, _0809B290 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B298 + cmp r0, 0x1 + bne _0809B318 + ldr r2, _0809B294 @ =0x000012a9 + adds r1, r4, r2 + movs r0, 0xE + b _0809B2A0 + .align 2, 0 +_0809B290: .4byte gUnknown_020384E4 +_0809B294: .4byte 0x000012a9 +_0809B298: + bl get_preferred_box + ldr r2, _0809B2D0 @ =0x000012a9 + adds r1, r4, r2 +_0809B2A0: + strb r0, [r1] + ldr r0, _0809B2D4 @ =gUnknown_083B6DB4 + ldr r4, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x2 + bl StartSpriteAnim + ldr r2, _0809B2D0 @ =0x000012a9 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B2D8 @ =gUnknown_020384E5 + ldrb r1, [r1] + bl sub_80996B0 + ldr r0, _0809B2DC @ =0x000012a8 + adds r4, r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0809B31C + .align 2, 0 +_0809B2D0: .4byte 0x000012a9 +_0809B2D4: .4byte gUnknown_083B6DB4 +_0809B2D8: .4byte gUnknown_020384E5 +_0809B2DC: .4byte 0x000012a8 +_0809B2E0: + bl sub_809971C + lsls r0, 24 + cmp r0, 0 + bne _0809B31C + movs r1, 0x8E + lsls r1, 5 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim + ldr r2, _0809B310 @ =0x000012a9 + adds r0, r4, r2 + ldrb r0, [r0] + ldr r1, _0809B314 @ =gUnknown_020384E5 + ldrb r1, [r1] + bl diegohint1 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0809B31C + .align 2, 0 +_0809B310: .4byte 0x000012a9 +_0809B314: .4byte gUnknown_020384E5 +_0809B318: + movs r0, 0 + b _0809B31E +_0809B31C: + movs r0, 0x1 +_0809B31E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809B24C + + thumb_func_start sub_809B324 +sub_809B324: @ 809B324 + push {lr} + ldr r0, _0809B348 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B33E + cmp r0, 0x8 + beq _0809B34C +_0809B33E: + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _0809B350 + .align 2, 0 +_0809B348: .4byte gUnknown_083B6DB4 +_0809B34C: + movs r0, 0 + b _0809B352 +_0809B350: + movs r0, 0x1 +_0809B352: + pop {r1} + bx r1 + thumb_func_end sub_809B324 + + thumb_func_start sub_809B358 +sub_809B358: @ 809B358 + push {lr} + ldr r0, _0809B378 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0809B37C + ldrh r0, [r1, 0x26] + subs r0, 0x1 + strh r0, [r1, 0x26] + movs r0, 0x1 + b _0809B37E + .align 2, 0 +_0809B378: .4byte gUnknown_083B6DB4 +_0809B37C: + movs r0, 0 +_0809B37E: + pop {r1} + bx r1 + thumb_func_end sub_809B358 + + thumb_func_start sub_809B384 +sub_809B384: @ 809B384 + push {r4,lr} + ldr r0, _0809B3AC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B3B4 + cmp r0, 0x1 + bne _0809B3D2 + ldr r4, _0809B3B0 @ =gUnknown_020384E5 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0 + bl sub_8099584 + b _0809B3CC + .align 2, 0 +_0809B3AC: .4byte gUnknown_020384E4 +_0809B3B0: .4byte gUnknown_020384E5 +_0809B3B4: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r4, _0809B3D8 @ =gUnknown_020384E5 + ldrb r1, [r4] + bl sub_809B44C + ldrb r1, [r4] + movs r0, 0x1 + bl sub_8099584 +_0809B3CC: + ldr r1, _0809B3DC @ =gUnknown_020384E6 + movs r0, 0x1 + strb r0, [r1] +_0809B3D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809B3D8: .4byte gUnknown_020384E5 +_0809B3DC: .4byte gUnknown_020384E6 + thumb_func_end sub_809B384 + + thumb_func_start sub_809B3E0 +sub_809B3E0: @ 809B3E0 + push {r4,r5,lr} + ldr r0, _0809B408 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809B410 + cmp r0, 0x1 + bne _0809B432 + ldr r4, _0809B40C @ =gUnknown_020384E5 + ldrb r1, [r4] + movs r0, 0xE + bl diegohint2 + ldrb r1, [r4] + movs r0, 0xE + bl sub_809960C + b _0809B42C + .align 2, 0 +_0809B408: .4byte gUnknown_020384E4 +_0809B40C: .4byte gUnknown_020384E5 +_0809B410: + bl get_preferred_box + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _0809B438 @ =gUnknown_020384E5 + ldrb r1, [r5] + adds r0, r4, 0 + bl diegohint2 + ldrb r1, [r5] + adds r0, r4, 0 + bl sub_809960C +_0809B42C: + ldr r1, _0809B43C @ =gUnknown_020384E6 + movs r0, 0 + strb r0, [r1] +_0809B432: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B438: .4byte gUnknown_020384E5 +_0809B43C: .4byte gUnknown_020384E6 + thumb_func_end sub_809B3E0 + + thumb_func_start sub_809B440 +sub_809B440: @ 809B440 + push {lr} + bl sub_809BF74 + pop {r0} + bx r0 + thumb_func_end sub_809B440 + + thumb_func_start sub_809B44C +sub_809B44C: @ 809B44C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0xE + bne _0809B488 + ldr r0, _0809B478 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B47C @ =0x000025b4 + adds r0, r1 + ldr r3, _0809B480 @ =gPlayerParty + ldr r1, _0809B484 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + b _0809B4AA + .align 2, 0 +_0809B478: .4byte gUnknown_083B6DB4 +_0809B47C: .4byte 0x000025b4 +_0809B480: .4byte gPlayerParty +_0809B484: .4byte gUnknown_020384E5 +_0809B488: + lsls r1, r4, 2 + adds r1, r4 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 4 + ldr r2, _0809B4C0 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B4C4 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B4C8 @ =0x000025b4 + adds r1, r2 + bl sub_803B4B4 +_0809B4AA: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_809B548 + ldr r0, _0809B4CC @ =gUnknown_020384E7 + strb r4, [r0] + ldr r0, _0809B4D0 @ =gUnknown_020384E8 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809B4C0: .4byte gUnknown_020300A4 +_0809B4C4: .4byte gUnknown_083B6DB4 +_0809B4C8: .4byte 0x000025b4 +_0809B4CC: .4byte gUnknown_020384E7 +_0809B4D0: .4byte gUnknown_020384E8 + thumb_func_end sub_809B44C + + thumb_func_start diegohint2 +diegohint2: @ 809B4D4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r6, 0xE + bne _0809B508 + ldr r1, _0809B4FC @ =gPlayerParty + movs r0, 0x64 + muls r0, r5 + adds r0, r1 + ldr r1, _0809B500 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B504 @ =0x000025b4 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B536 + .align 2, 0 +_0809B4FC: .4byte gPlayerParty +_0809B500: .4byte gUnknown_083B6DB4 +_0809B504: .4byte 0x000025b4 +_0809B508: + ldr r0, _0809B53C @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809B540 @ =0x000025b4 + adds r4, r0 + adds r0, r4, 0 + bl pokemon_restore_pp + ldr r3, _0809B544 @ =gPokemonStorage + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + lsls r2, r6, 2 + adds r2, r6 + lsls r1, r2, 4 + subs r1, r2 + lsls r1, 5 + adds r0, r1 + adds r0, r3 + adds r0, 0x4 + adds r1, r4, 0 + movs r2, 0x50 + bl memcpy +_0809B536: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B53C: .4byte gUnknown_083B6DB4 +_0809B540: .4byte 0x000025b4 +_0809B544: .4byte gPokemonStorage + thumb_func_end diegohint2 + + thumb_func_start sub_809B548 +sub_809B548: @ 809B548 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + cmp r0, 0xE + bne _0809B568 + movs r0, 0x64 + muls r0, r2 + ldr r1, _0809B564 @ =gPlayerParty + adds r0, r1 + bl ZeroMonData + b _0809B582 + .align 2, 0 +_0809B564: .4byte gPlayerParty +_0809B568: + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809B588 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + bl ZeroBoxMonData +_0809B582: + pop {r0} + bx r0 + .align 2, 0 +_0809B588: .4byte gUnknown_020300A4 + thumb_func_end sub_809B548 + + thumb_func_start diegohint1 +diegohint1: @ 809B58C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r5, 0xE + bne _0809B5C0 + ldr r0, _0809B5B4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B5B8 @ =0x00002618 + adds r0, r1 + ldr r2, _0809B5BC @ =gPlayerParty + movs r1, 0x64 + muls r1, r6 + adds r1, r2 + movs r2, 0x64 + bl memcpy + b _0809B5E2 + .align 2, 0 +_0809B5B4: .4byte gUnknown_083B6DB4 +_0809B5B8: .4byte 0x00002618 +_0809B5BC: .4byte gPlayerParty +_0809B5C0: + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 4 + ldr r2, _0809B614 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B618 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809B61C @ =0x00002618 + adds r1, r2 + bl sub_803B4B4 +_0809B5E2: + adds r0, r5, 0 + adds r1, r6, 0 + bl diegohint2 + ldr r0, _0809B618 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809B620 @ =0x000025b4 + adds r4, r1, r0 + ldr r2, _0809B61C @ =0x00002618 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy + adds r0, r4, 0 + movs r1, 0 + bl sub_809C04C + ldr r0, _0809B624 @ =gUnknown_020384E7 + strb r5, [r0] + ldr r0, _0809B628 @ =gUnknown_020384E8 + strb r6, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B614: .4byte gUnknown_020300A4 +_0809B618: .4byte gUnknown_083B6DB4 +_0809B61C: .4byte 0x00002618 +_0809B620: .4byte 0x000025b4 +_0809B624: .4byte gUnknown_020384E7 +_0809B628: .4byte gUnknown_020384E8 + thumb_func_end diegohint1 + + thumb_func_start sub_809B62C +sub_809B62C: @ 809B62C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl sub_8095B24 + lsls r0, 16 + lsrs r4, r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0809B64A + movs r0, 0 + b _0809B6AC +_0809B64A: + ldr r5, _0809B668 @ =gUnknown_020384E6 + ldrb r0, [r5] + cmp r0, 0 + beq _0809B66C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + bl sub_8099480 + movs r0, 0 + strb r0, [r5] + b _0809B686 + .align 2, 0 +_0809B668: .4byte gUnknown_020384E6 +_0809B66C: + ldr r5, _0809B6B4 @ =gUnknown_020384E5 + ldrb r1, [r5] + movs r0, 0xE + bl sub_809B44C + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r6, 0 + bl diegohint2 + ldrb r0, [r5] + bl sub_8099520 +_0809B686: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bne _0809B698 + lsrs r0, r4, 24 + bl sub_8098D20 +_0809B698: + ldr r0, _0809B6B8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x1 + bl StartSpriteAnim + movs r0, 0x1 +_0809B6AC: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0809B6B4: .4byte gUnknown_020384E5 +_0809B6B8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B62C + + thumb_func_start sub_809B6BC +sub_809B6BC: @ 809B6BC + push {lr} + ldr r0, _0809B6D8 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B6D8: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B6BC + + thumb_func_start sub_809B6DC +sub_809B6DC: @ 809B6DC + push {lr} + ldr r0, _0809B6EC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B6F0 + movs r2, 0x2 + b _0809B700 + .align 2, 0 +_0809B6EC: .4byte gUnknown_020384E6 +_0809B6F0: + ldr r0, _0809B720 @ =gUnknown_020384E4 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r2, 0x1 + eors r1, r2 + negs r0, r1 + orrs r0, r1 + lsrs r2, r0, 31 +_0809B700: + ldr r0, _0809B724 @ =gUnknown_020384E5 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809981C + ldr r0, _0809B728 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809B72C @ =0x000026e4 + adds r0, r1, r2 + ldr r2, _0809B730 @ =0x000011fa + adds r1, r2 + bl StringCopy + pop {r0} + bx r0 + .align 2, 0 +_0809B720: .4byte gUnknown_020384E4 +_0809B724: .4byte gUnknown_020384E5 +_0809B728: .4byte gUnknown_083B6DB4 +_0809B72C: .4byte 0x000026e4 +_0809B730: .4byte 0x000011fa + thumb_func_end sub_809B6DC + + thumb_func_start sub_809B734 +sub_809B734: @ 809B734 + push {lr} + bl sub_80998D8 + lsls r0, 24 + cmp r0, 0 + beq _0809B744 + movs r0, 0x1 + b _0809B758 +_0809B744: + ldr r0, _0809B75C @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl StartSpriteAnim + movs r0, 0 +_0809B758: + pop {r1} + bx r1 + .align 2, 0 +_0809B75C: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B734 + + thumb_func_start sub_809B760 +sub_809B760: @ 809B760 + push {lr} + bl sub_8099920 + ldr r1, _0809B774 @ =gUnknown_020384E6 + ldrb r0, [r1] + cmp r0, 0 + beq _0809B778 + movs r0, 0 + strb r0, [r1] + b _0809B79E + .align 2, 0 +_0809B774: .4byte gUnknown_020384E6 +_0809B778: + ldr r0, _0809B788 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B78C + movs r2, 0xE + b _0809B794 + .align 2, 0 +_0809B788: .4byte gUnknown_020384E4 +_0809B78C: + bl get_preferred_box + lsls r0, 24 + lsrs r2, r0, 24 +_0809B794: + ldr r0, _0809B7A8 @ =gUnknown_020384E5 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_809B548 +_0809B79E: + bl sub_809BF74 + pop {r0} + bx r0 + .align 2, 0 +_0809B7A8: .4byte gUnknown_020384E5 + thumb_func_end sub_809B760 + + thumb_func_start sub_809B7AC +sub_809B7AC: @ 809B7AC + push {lr} + ldr r0, _0809B7CC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B7C8 + ldr r0, _0809B7D0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r1, 0x8E + lsls r1, 5 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x3 + bl StartSpriteAnim +_0809B7C8: + pop {r0} + bx r0 + .align 2, 0 +_0809B7CC: .4byte gUnknown_020384E6 +_0809B7D0: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809B7AC + + thumb_func_start sub_809B7D4 +sub_809B7D4: @ 809B7D4 + push {r4-r6,lr} + ldr r0, _0809B804 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809B81C + ldr r0, _0809B808 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r1, _0809B80C @ =0x00002618 + adds r0, r4, r1 + ldr r2, _0809B810 @ =0x000025b4 + adds r1, r4, r2 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B814 @ =0x00002682 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _0809B818 @ =0x00002683 + adds r4, r1 + movs r0, 0x1 + negs r0, r0 + strb r0, [r4] + b _0809B8A6 + .align 2, 0 +_0809B804: .4byte gUnknown_020384E6 +_0809B808: .4byte gUnknown_083B6DB4 +_0809B80C: .4byte 0x00002618 +_0809B810: .4byte 0x000025b4 +_0809B814: .4byte 0x00002682 +_0809B818: .4byte 0x00002683 +_0809B81C: + ldr r0, _0809B84C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809B864 + ldr r0, _0809B850 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809B854 @ =0x00002618 + adds r0, r4, r2 + ldr r3, _0809B858 @ =gPlayerParty + ldr r1, _0809B85C @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + movs r1, 0x64 + muls r1, r2 + adds r1, r3 + movs r2, 0x64 + bl memcpy + ldr r0, _0809B860 @ =0x00002682 + adds r4, r0 + movs r0, 0xE + b _0809B896 + .align 2, 0 +_0809B84C: .4byte gUnknown_020384E4 +_0809B850: .4byte gUnknown_083B6DB4 +_0809B854: .4byte 0x00002618 +_0809B858: .4byte gPlayerParty +_0809B85C: .4byte gUnknown_020384E5 +_0809B860: .4byte 0x00002682 +_0809B864: + ldr r5, _0809B8FC @ =gPokemonStorage + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809B900 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + adds r2, r5, 0x4 + adds r1, r2 + adds r0, r1 + ldr r1, _0809B904 @ =gUnknown_083B6DB4 + ldr r4, [r1] + ldr r2, _0809B908 @ =0x00002618 + adds r1, r4, r2 + bl sub_803B4B4 + ldrb r0, [r5] + ldr r1, _0809B90C @ =0x00002682 + adds r4, r1 +_0809B896: + strb r0, [r4] + ldr r0, _0809B904 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B900 @ =gUnknown_020384E5 + ldrb r1, [r1] + ldr r2, _0809B910 @ =0x00002683 + adds r0, r2 + strb r1, [r0] +_0809B8A6: + ldr r0, _0809B904 @ =gUnknown_083B6DB4 + ldr r6, [r0] + ldr r0, _0809B914 @ =0x0000267e + adds r4, r6, r0 + movs r0, 0 + strb r0, [r4] + ldr r1, _0809B918 @ =0x0000267f + adds r5, r6, r1 + strb r0, [r5] + ldr r0, _0809B91C @ =0x00002686 + adds r2, r6, r0 + movs r0, 0x39 + strh r0, [r2] + ldr r0, _0809B920 @ =0x00002688 + adds r1, r6, r0 + ldr r0, _0809B924 @ =0x00000123 + strh r0, [r1] + ldr r0, _0809B928 @ =0x0000268a + adds r1, r6, r0 + ldr r0, _0809B92C @ =0x00000163 + strh r0, [r1] + ldr r1, _0809B908 @ =0x00002618 + adds r0, r6, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + movs r2, 0x1 + ands r1, r2 + strb r1, [r4] + lsrs r0, 17 + movs r1, 0x1 + ands r0, r1 + strb r0, [r5] + ldrh r0, [r4] + cmp r0, 0 + beq _0809B934 + ldr r2, _0809B930 @ =0x0000267d + adds r1, r6, r2 + movs r0, 0 + strb r0, [r1] + b _0809B940 + .align 2, 0 +_0809B8FC: .4byte gPokemonStorage +_0809B900: .4byte gUnknown_020384E5 +_0809B904: .4byte gUnknown_083B6DB4 +_0809B908: .4byte 0x00002618 +_0809B90C: .4byte 0x00002682 +_0809B910: .4byte 0x00002683 +_0809B914: .4byte 0x0000267e +_0809B918: .4byte 0x0000267f +_0809B91C: .4byte 0x00002686 +_0809B920: .4byte 0x00002688 +_0809B924: .4byte 0x00000123 +_0809B928: .4byte 0x0000268a +_0809B92C: .4byte 0x00000163 +_0809B930: .4byte 0x0000267d +_0809B934: + ldr r2, _0809B954 @ =0x0000267d + adds r0, r6, r2 + strb r1, [r0] + subs r2, 0x1 + adds r0, r6, r2 + strb r1, [r0] +_0809B940: + ldr r0, _0809B958 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809B95C @ =0x00002684 + adds r0, r1 + movs r1, 0 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809B954: .4byte 0x0000267d +_0809B958: .4byte gUnknown_083B6DB4 +_0809B95C: .4byte 0x00002684 + thumb_func_end sub_809B7D4 + + thumb_func_start sub_809B960 +sub_809B960: @ 809B960 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809B988 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r3, _0809B98C @ =0x0000267d + adds r1, r2, r3 + ldrb r1, [r1] + mov r12, r0 + cmp r1, 0 + beq _0809B994 + ldr r7, _0809B990 @ =0x0000267c + adds r0, r2, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _0809BB5C + .align 2, 0 +_0809B988: .4byte gUnknown_083B6DB4 +_0809B98C: .4byte 0x0000267d +_0809B990: .4byte 0x0000267c +_0809B994: + ldr r1, _0809B9A4 @ =0x00002684 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0809B9A8 + cmp r0, 0x1 + beq _0809BA84 + b _0809BB58 + .align 2, 0 +_0809B9A4: .4byte 0x00002684 +_0809B9A8: + movs r5, 0 + movs r6, 0 +_0809B9AC: + mov r2, r12 + ldr r4, [r2] + ldr r3, _0809BA28 @ =0x00002682 + adds r0, r4, r3 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bne _0809B9CC + ldr r7, _0809BA2C @ =0x00002683 + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, r5 + beq _0809BA02 +_0809B9CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0809BA30 @ =gPlayerParty + adds r0, r1 + ldr r1, _0809BA34 @ =0x00002686 + adds r2, r4, r1 + movs r1, 0x50 + bl GetMonData + lsls r0, 16 + lsrs r3, r0, 16 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809B9F0 + ldr r2, _0809BA38 @ =0x0000267e + adds r0, r4, r2 + strb r6, [r0] +_0809B9F0: + movs r0, 0x2 + ands r3, r0 + ldr r7, _0809BA3C @ =gUnknown_083B6DB4 + mov r12, r7 + cmp r3, 0 + beq _0809BA02 + ldr r1, _0809BA40 @ =0x0000267f + adds r0, r4, r1 + strb r6, [r0] +_0809BA02: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _0809B9AC + mov r3, r12 + ldr r2, [r3] + ldr r7, _0809BA38 @ =0x0000267e + adds r0, r2, r7 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BA4C + ldr r1, _0809BA44 @ =0x0000267d + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r3, _0809BA48 @ =0x0000267c + b _0809BB54 + .align 2, 0 +_0809BA28: .4byte 0x00002682 +_0809BA2C: .4byte 0x00002683 +_0809BA30: .4byte gPlayerParty +_0809BA34: .4byte 0x00002686 +_0809BA38: .4byte 0x0000267e +_0809BA3C: .4byte gUnknown_083B6DB4 +_0809BA40: .4byte 0x0000267f +_0809BA44: .4byte 0x0000267d +_0809BA48: .4byte 0x0000267c +_0809BA4C: + movs r7, 0x9A + lsls r7, 6 + adds r0, r2, r7 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BA68 @ =0x00002681 + adds r0, r2, r3 + strb r1, [r0] + adds r7, 0x4 + adds r1, r2, r7 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0809BB58 + .align 2, 0 +_0809BA68: .4byte 0x00002681 +_0809BA6C: + ldr r1, _0809BA7C @ =0x0000267d + adds r0, r2, r1 + movs r1, 0x1 + strb r1, [r0] + ldr r7, _0809BA80 @ =0x0000267c + adds r0, r2, r7 + strb r3, [r0] + b _0809BB3C + .align 2, 0 +_0809BA7C: .4byte 0x0000267d +_0809BA80: .4byte 0x0000267c +_0809BA84: + movs r5, 0 + mov r9, r12 + adds r4, r2, 0 + movs r0, 0x9A + lsls r0, 6 + adds r6, r4, r0 + ldr r1, _0809BB6C @ =0x0000267f + adds r1, r4 + mov r8, r1 + ldr r2, _0809BB70 @ =0x0000ffff + mov r10, r2 +_0809BA9A: + movs r0, 0 + ldrsb r0, [r6, r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r3, _0809BB74 @ =0x00002681 + adds r1, r4, r3 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BB78 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x50 + ldr r7, _0809BB7C @ =0x00002686 + adds r2, r4, r7 + bl GetBoxMonData + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0 + beq _0809BB00 + ldr r1, _0809BB80 @ =0x00002682 + adds r0, r4, r1 + ldrh r0, [r0] + ldrh r2, [r6] + mov r1, r10 + ands r1, r0 + mov r0, r10 + ands r0, r2 + cmp r1, r0 + beq _0809BB00 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0809BAF2 + ldr r2, _0809BB84 @ =0x0000267e + adds r1, r4, r2 + movs r0, 0 + strb r0, [r1] +_0809BAF2: + movs r0, 0x2 + ands r3, r0 + cmp r3, 0 + beq _0809BB00 + movs r0, 0 + mov r3, r8 + strb r0, [r3] +_0809BB00: + mov r7, r9 + ldr r2, [r7] + ldr r0, _0809BB74 @ =0x00002681 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r3, 0 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + ldr r7, _0809BB88 @ =gUnknown_083B6DB4 + mov r12, r7 + cmp r0, 0x1D + ble _0809BB32 + strb r3, [r1] + movs r0, 0x9A + lsls r0, 6 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xD + bgt _0809BA6C +_0809BB32: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _0809BA9A +_0809BB3C: + mov r1, r12 + ldr r2, [r1] + ldr r3, _0809BB84 @ =0x0000267e + adds r0, r2, r3 + ldrh r0, [r0] + cmp r0, 0 + bne _0809BB58 + ldr r7, _0809BB8C @ =0x0000267d + adds r0, r2, r7 + movs r1, 0x1 + strb r1, [r0] + subs r3, 0x2 +_0809BB54: + adds r0, r2, r3 + strb r1, [r0] +_0809BB58: + movs r0, 0x1 + negs r0, r0 +_0809BB5C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0809BB6C: .4byte 0x0000267f +_0809BB70: .4byte 0x0000ffff +_0809BB74: .4byte 0x00002681 +_0809BB78: .4byte gUnknown_020300A4 +_0809BB7C: .4byte 0x00002686 +_0809BB80: .4byte 0x00002682 +_0809BB84: .4byte 0x0000267e +_0809BB88: .4byte gUnknown_083B6DB4 +_0809BB8C: .4byte 0x0000267d + thumb_func_end sub_809B960 + + thumb_func_start sub_809BB90 +sub_809BB90: @ 809BB90 + push {lr} + ldr r0, _0809BBB0 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BBAA + ldr r0, _0809BBB4 @ =gUnknown_02038480 + ldr r1, _0809BBB8 @ =gUnknown_083B6DB4 + ldr r1, [r1] + ldr r2, _0809BBBC @ =0x000025b4 + adds r1, r2 + movs r2, 0x64 + bl memcpy +_0809BBAA: + pop {r0} + bx r0 + .align 2, 0 +_0809BBB0: .4byte gUnknown_020384E6 +_0809BBB4: .4byte gUnknown_02038480 +_0809BBB8: .4byte gUnknown_083B6DB4 +_0809BBBC: .4byte 0x000025b4 + thumb_func_end sub_809BB90 + + thumb_func_start sub_809BBC0 +sub_809BBC0: @ 809BBC0 + push {lr} + ldr r0, _0809BBE4 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BC08 + ldr r0, _0809BBE8 @ =gUnknown_020384E7 + ldrb r0, [r0] + cmp r0, 0xE + bne _0809BBF8 + ldr r0, _0809BBEC @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809BBF0 @ =0x000025b4 + adds r0, r1 + ldr r1, _0809BBF4 @ =gUnknown_02038480 + movs r2, 0x64 + bl memcpy + b _0809BC08 + .align 2, 0 +_0809BBE4: .4byte gUnknown_020384E6 +_0809BBE8: .4byte gUnknown_020384E7 +_0809BBEC: .4byte gUnknown_083B6DB4 +_0809BBF0: .4byte 0x000025b4 +_0809BBF4: .4byte gUnknown_02038480 +_0809BBF8: + ldr r0, _0809BC0C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809BC10 @ =0x000025b4 + adds r0, r1 + ldr r1, _0809BC14 @ =gUnknown_02038480 + movs r2, 0x50 + bl memcpy +_0809BC08: + pop {r0} + bx r0 + .align 2, 0 +_0809BC0C: .4byte gUnknown_083B6DB4 +_0809BC10: .4byte 0x000025b4 +_0809BC14: .4byte gUnknown_02038480 + thumb_func_end sub_809BBC0 + + thumb_func_start sub_809BC18 +sub_809BC18: @ 809BC18 + push {r4,r5,lr} + ldr r0, _0809BC48 @ =gUnknown_020384E6 + ldrb r5, [r0] + cmp r5, 0 + beq _0809BC64 + bl sub_809BB90 + ldr r0, _0809BC4C @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r0, _0809BC50 @ =0x00002690 + adds r1, r2, r0 + ldr r0, _0809BC54 @ =gUnknown_02038480 + str r0, [r1] + ldr r1, _0809BC58 @ =0x0000268d + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809BC5C @ =0x0000268c + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809BC60 @ =0x0000268e + adds r2, r0 + strb r1, [r2] + b _0809BCF2 + .align 2, 0 +_0809BC48: .4byte gUnknown_020384E6 +_0809BC4C: .4byte gUnknown_083B6DB4 +_0809BC50: .4byte 0x00002690 +_0809BC54: .4byte gUnknown_02038480 +_0809BC58: .4byte 0x0000268d +_0809BC5C: .4byte 0x0000268c +_0809BC60: .4byte 0x0000268e +_0809BC64: + ldr r0, _0809BC9C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BCBC + ldr r0, _0809BCA0 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809BCA4 @ =0x00002690 + adds r1, r4, r2 + ldr r0, _0809BCA8 @ =gPlayerParty + str r0, [r1] + ldr r0, _0809BCAC @ =gUnknown_020384E5 + ldrb r1, [r0] + ldr r3, _0809BCB0 @ =0x0000268d + adds r0, r4, r3 + strb r1, [r0] + bl sub_8095C28 + subs r0, 0x1 + ldr r2, _0809BCB4 @ =0x0000268c + adds r1, r4, r2 + strb r0, [r1] + ldr r3, _0809BCB8 @ =0x0000268e + adds r4, r3 + strb r5, [r4] + b _0809BCF2 + .align 2, 0 +_0809BC9C: .4byte gUnknown_020384E4 +_0809BCA0: .4byte gUnknown_083B6DB4 +_0809BCA4: .4byte 0x00002690 +_0809BCA8: .4byte gPlayerParty +_0809BCAC: .4byte gUnknown_020384E5 +_0809BCB0: .4byte 0x0000268d +_0809BCB4: .4byte 0x0000268c +_0809BCB8: .4byte 0x0000268e +_0809BCBC: + ldr r0, _0809BCF8 @ =gUnknown_083B6DB4 + ldr r3, [r0] + ldr r0, _0809BCFC @ =0x00002690 + adds r4, r3, r0 + ldr r2, _0809BD00 @ =gPokemonStorage + ldrb r0, [r2] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + adds r2, 0x4 + adds r0, r2 + str r0, [r4] + ldr r0, _0809BD04 @ =gUnknown_020384E5 + ldrb r1, [r0] + ldr r2, _0809BD08 @ =0x0000268d + adds r0, r3, r2 + strb r1, [r0] + ldr r0, _0809BD0C @ =0x0000268c + adds r1, r3, r0 + movs r0, 0x1D + strb r0, [r1] + ldr r1, _0809BD10 @ =0x0000268e + adds r3, r1 + movs r0, 0x5 + strb r0, [r3] +_0809BCF2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809BCF8: .4byte gUnknown_083B6DB4 +_0809BCFC: .4byte 0x00002690 +_0809BD00: .4byte gPokemonStorage +_0809BD04: .4byte gUnknown_020384E5 +_0809BD08: .4byte 0x0000268d +_0809BD0C: .4byte 0x0000268c +_0809BD10: .4byte 0x0000268e + thumb_func_end sub_809BC18 + + thumb_func_start sub_809BD14 +sub_809BD14: @ 809BD14 + push {lr} + ldr r0, _0809BD24 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BD28 + bl sub_809BBC0 + b _0809BD30 + .align 2, 0 +_0809BD24: .4byte gUnknown_020384E6 +_0809BD28: + ldr r0, _0809BD34 @ =gUnknown_020384E5 + ldr r1, _0809BD38 @ =0x02018000 + ldrb r1, [r1, 0x9] + strb r1, [r0] +_0809BD30: + pop {r0} + bx r0 + .align 2, 0 +_0809BD34: .4byte gUnknown_020384E5 +_0809BD38: .4byte 0x02018000 + thumb_func_end sub_809BD14 + + thumb_func_start party_compaction +party_compaction: @ 809BD3C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _0809BD88 @ =0x0000ffff + movs r6, 0 + movs r5, 0 + movs r0, 0x64 + mov r9, r0 + ldr r1, _0809BD8C @ =gPlayerParty + mov r8, r1 + subs r0, 0x65 + mov r10, r0 +_0809BD58: + 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 _0809BD90 + cmp r6, r5 + beq _0809BD80 + mov r0, r9 + muls r0, r5 + add r0, r8 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy +_0809BD80: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + b _0809BD9A + .align 2, 0 +_0809BD88: .4byte 0x0000ffff +_0809BD8C: .4byte gPlayerParty +_0809BD90: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, r10 + bne _0809BD9A + adds r7, r6, 0 +_0809BD9A: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _0809BD58 + lsls r7, 16 + cmp r5, 0x5 + bhi _0809BDC2 + movs r6, 0x64 + ldr r4, _0809BDD4 @ =gPlayerParty +_0809BDAE: + 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 _0809BDAE +_0809BDC2: + 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 +_0809BDD4: .4byte gPlayerParty + thumb_func_end party_compaction + + thumb_func_start sub_809BDD8 +sub_809BDD8: @ 809BDD8 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + ldr r1, _0809BE04 @ =gUnknown_083B6DB4 + ldr r2, [r1] + ldr r3, _0809BE08 @ =0x000011f7 + adds r1, r2, r3 + strb r0, [r1] + ldr r0, _0809BE0C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BE14 + ldr r1, _0809BE10 @ =0x000025b4 + adds r0, r2, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData + b _0809BE68 + .align 2, 0 +_0809BE04: .4byte gUnknown_083B6DB4 +_0809BE08: .4byte 0x000011f7 +_0809BE0C: .4byte gUnknown_020384E6 +_0809BE10: .4byte 0x000025b4 +_0809BE14: + ldr r4, _0809BE70 @ =gUnknown_020384E4 + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0x1 + bne _0809BE34 + ldr r0, _0809BE74 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BE78 @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetMonData +_0809BE34: + movs r0, 0 + ldrsb r0, [r4, r0] + cmp r0, 0 + bne _0809BE68 + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809BE74 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809BE7C @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x8 + mov r2, sp + bl SetBoxMonData +_0809BE68: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809BE70: .4byte gUnknown_020384E4 +_0809BE74: .4byte gUnknown_020384E5 +_0809BE78: .4byte gPlayerParty +_0809BE7C: .4byte gUnknown_020300A4 + thumb_func_end sub_809BDD8 + + thumb_func_start sub_809BE80 +sub_809BE80: @ 809BE80 + push {lr} + ldr r0, _0809BEA8 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEB4 + ldr r0, _0809BEAC @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + bne _0809BEB4 + ldr r0, _0809BEB0 @ =gUnknown_020384E5 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + cmp r0, 0 + bne _0809BEB4 + movs r0, 0x1 + b _0809BEB6 + .align 2, 0 +_0809BEA8: .4byte gUnknown_020384E4 +_0809BEAC: .4byte gUnknown_020384E6 +_0809BEB0: .4byte gUnknown_020384E5 +_0809BEB4: + movs r0, 0 +_0809BEB6: + pop {r1} + bx r1 + thumb_func_end sub_809BE80 + + thumb_func_start sub_809BEBC +sub_809BEBC: @ 809BEBC + push {lr} + ldr r0, _0809BF00 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809BF18 + ldr r0, _0809BF04 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BEFC + ldr r0, _0809BF08 @ =gUnknown_020384E5 + ldrb r0, [r0] + bl sub_8095BB4 + lsls r0, 24 + cmp r0, 0 + bne _0809BEFC + ldr r0, _0809BF0C @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809BF10 @ =0x000011f9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0809BF18 + ldr r2, _0809BF14 @ =0x000025b4 + adds r0, r1, r2 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0809BF18 +_0809BEFC: + movs r0, 0x1 + b _0809BF1A + .align 2, 0 +_0809BF00: .4byte gUnknown_020384E6 +_0809BF04: .4byte gUnknown_020384E4 +_0809BF08: .4byte gUnknown_020384E5 +_0809BF0C: .4byte gUnknown_083B6DB4 +_0809BF10: .4byte 0x000011f9 +_0809BF14: .4byte 0x000025b4 +_0809BF18: + movs r0, 0 +_0809BF1A: + pop {r1} + bx r1 + thumb_func_end sub_809BEBC + + thumb_func_start sub_809BF20 +sub_809BF20: @ 809BF20 + ldr r0, _0809BF28 @ =gUnknown_020384E6 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0809BF28: .4byte gUnknown_020384E6 + thumb_func_end sub_809BF20 + + thumb_func_start sub_809BF2C +sub_809BF2C: @ 809BF2C + push {lr} + movs r1, 0 + ldr r0, _0809BF44 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x2 + bne _0809BF3E + movs r1, 0x1 +_0809BF3E: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF44: .4byte gUnknown_020384E4 + thumb_func_end sub_809BF2C + + thumb_func_start sub_809BF48 +sub_809BF48: @ 809BF48 + push {lr} + movs r1, 0 + ldr r0, _0809BF6C @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x3 + bne _0809BF66 + ldr r0, _0809BF70 @ =gUnknown_020384E5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809BF66 + movs r1, 0x1 +_0809BF66: + adds r0, r1, 0 + pop {r1} + bx r1 + .align 2, 0 +_0809BF6C: .4byte gUnknown_020384E4 +_0809BF70: .4byte gUnknown_020384E5 + thumb_func_end sub_809BF48 + + thumb_func_start sub_809BF74 +sub_809BF74: @ 809BF74 + push {r4,lr} + ldr r0, _0809BFA8 @ =gUnknown_083B6DB4 + ldr r1, [r0] + movs r2, 0 + ldr r3, _0809BFAC @ =gUnknown_020384E6 + ldrb r0, [r3] + cmp r0, 0 + bne _0809BF86 + movs r2, 0x1 +_0809BF86: + ldr r4, _0809BFB0 @ =0x000011f6 + adds r0, r1, r4 + strb r2, [r0] + ldrb r0, [r3] + cmp r0, 0 + bne _0809C018 + ldr r0, _0809BFB4 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + beq _0809BFBE + cmp r0, 0x1 + bgt _0809BFB8 + cmp r0, 0 + beq _0809BFEE + b _0809C018 + .align 2, 0 +_0809BFA8: .4byte gUnknown_083B6DB4 +_0809BFAC: .4byte gUnknown_020384E6 +_0809BFB0: .4byte 0x000011f6 +_0809BFB4: .4byte gUnknown_020384E4 +_0809BFB8: + cmp r0, 0x3 + bgt _0809C018 + b _0809BFE4 +_0809BFBE: + ldr r1, _0809BFDC @ =gUnknown_020384E5 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0809BFE4 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _0809BFE0 @ =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_809C04C + b _0809C018 + .align 2, 0 +_0809BFDC: .4byte gUnknown_020384E5 +_0809BFE0: .4byte gPlayerParty +_0809BFE4: + movs r0, 0 + movs r1, 0x2 + bl sub_809C04C + b _0809C018 +_0809BFEE: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + ldr r1, _0809C020 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + ldr r2, _0809C024 @ =gUnknown_020300A4 + adds r1, r2 + adds r0, r1 + movs r1, 0x1 + bl sub_809C04C +_0809C018: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809C020: .4byte gUnknown_020384E5 +_0809C024: .4byte gUnknown_020300A4 + thumb_func_end sub_809BF74 + + thumb_func_start sub_809C028 +sub_809C028: @ 809C028 + push {lr} + ldr r0, _0809C03C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809C044 + ldr r0, _0809C040 @ =gUnknown_02038480 + movs r1, 0 + bl sub_809C04C + b _0809C048 + .align 2, 0 +_0809C03C: .4byte gUnknown_020384E6 +_0809C040: .4byte gUnknown_02038480 +_0809C044: + bl sub_809BF74 +_0809C048: + pop {r0} + bx r0 + thumb_func_end sub_809C028 + + thumb_func_start sub_809C04C +sub_809C04C: @ 809C04C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + str r0, [sp] + ldr r0, _0809C0FC @ =gUnknown_083B6DB4 + ldr r6, [r0] + ldr r2, _0809C100 @ =0x000011f2 + adds r2, r6 + mov r8, r2 + mov r0, sp + ldrh r0, [r0] + strh r0, [r2] + cmp r1, 0 + bne _0809C120 + adds r0, r7, 0 + movs r1, 0x41 + bl GetMonData + ldr r2, _0809C104 @ =0x000011f0 + adds r1, r6, r2 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _0809C08C + b _0809C1EC +_0809C08C: + adds r0, r7, 0 + movs r1, 0x2D + bl GetMonData + ldr r2, _0809C108 @ =0x000011f9 + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C10C @ =0x000011fa + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + ldr r2, _0809C110 @ =0x000011f8 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetMonData + ldr r2, _0809C114 @ =0x000011f7 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetMonData + ldr r2, _0809C118 @ =0x000011ec + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl pokemon_get_pal + ldr r2, _0809C11C @ =0x000011e8 + adds r1, r6, r2 + str r0, [r1] + adds r0, r7, 0 + bl GetMonGender + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetMonData + b _0809C1B2 + .align 2, 0 +_0809C0FC: .4byte gUnknown_083B6DB4 +_0809C100: .4byte 0x000011f2 +_0809C104: .4byte 0x000011f0 +_0809C108: .4byte 0x000011f9 +_0809C10C: .4byte 0x000011fa +_0809C110: .4byte 0x000011f8 +_0809C114: .4byte 0x000011f7 +_0809C118: .4byte 0x000011ec +_0809C11C: .4byte 0x000011e8 +_0809C120: + cmp r1, 0x1 + bne _0809C1D4 + adds r0, r7, 0 + movs r1, 0x41 + bl GetBoxMonData + ldr r2, _0809C1B8 @ =0x000011f0 + adds r5, r6, r2 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + beq _0809C1EC + adds r0, r7, 0 + movs r1, 0x1 + bl GetBoxMonData + mov r9, r0 + adds r0, r7, 0 + movs r1, 0x2D + bl GetBoxMonData + ldr r2, _0809C1BC @ =0x000011f9 + adds r1, r6, r2 + strb r0, [r1] + ldr r0, _0809C1C0 @ =0x000011fa + adds r4, r6, r0 + adds r0, r7, 0 + movs r1, 0x2 + adds r2, r4, 0 + bl GetBoxMonData + adds r0, r4, 0 + bl StringGetEnd10 + adds r0, r7, 0 + bl GetLevelFromBoxMonExp + ldr r2, _0809C1C4 @ =0x000011f8 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0x8 + bl GetBoxMonData + ldr r2, _0809C1C8 @ =0x000011f7 + adds r1, r6, r2 + strb r0, [r1] + adds r0, r7, 0 + movs r1, 0 + bl GetBoxMonData + adds r2, r0, 0 + ldr r0, _0809C1CC @ =0x000011ec + adds r4, r6, r0 + str r2, [r4] + ldrh r0, [r5] + mov r1, r9 + bl species_and_otid_get_pal + ldr r2, _0809C1D0 @ =0x000011e8 + adds r1, r6, r2 + str r0, [r1] + ldrh r0, [r5] + ldr r1, [r4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + adds r0, r7, 0 + movs r1, 0xC + bl GetBoxMonData +_0809C1B2: + mov r1, r8 + strh r0, [r1] + b _0809C1DE + .align 2, 0 +_0809C1B8: .4byte 0x000011f0 +_0809C1BC: .4byte 0x000011f9 +_0809C1C0: .4byte 0x000011fa +_0809C1C4: .4byte 0x000011f8 +_0809C1C8: .4byte 0x000011f7 +_0809C1CC: .4byte 0x000011ec +_0809C1D0: .4byte 0x000011e8 +_0809C1D4: + ldr r2, _0809C220 @ =0x000011f0 + adds r0, r6, r2 + mov r1, sp + ldrh r1, [r1] + strh r1, [r0] +_0809C1DE: + ldr r0, _0809C224 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809C220 @ =0x000011f0 + adds r0, r4, r2 + ldrh r1, [r0] + cmp r1, 0 + bne _0809C23C +_0809C1EC: + ldr r0, _0809C224 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C228 @ =0x000011fa + adds r2, r1, r0 + movs r0, 0xFF + strb r0, [r2] + ldr r0, _0809C22C @ =0x0000120f + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C230 @ =0x00001234 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r0, _0809C234 @ =0x00001259 + adds r2, r1, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r2] + ldr r2, _0809C238 @ =0x0000127a + adds r1, r2 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C220: .4byte 0x000011f0 +_0809C224: .4byte gUnknown_083B6DB4 +_0809C228: .4byte 0x000011fa +_0809C22C: .4byte 0x0000120f +_0809C230: .4byte 0x00001234 +_0809C234: .4byte 0x00001259 +_0809C238: .4byte 0x0000127a +_0809C23C: + ldr r2, _0809C28C @ =0x000011f9 + adds r0, r4, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0809C2A4 + ldr r0, _0809C290 @ =0x0000120f + adds r7, r4, r0 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x4 + strb r0, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r1, _0809C294 @ =0x00001214 + adds r7, r4, r1 + adds r2, 0x1 + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C298 @ =0x00001234 + adds r1, r4, r0 + movs r0, 0xFF + strb r0, [r1] + ldr r2, _0809C29C @ =0x00001259 + adds r1, r4, r2 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + ldr r0, _0809C2A0 @ =0x0000127a + adds r1, r4, r0 + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + b _0809C43E + .align 2, 0 +_0809C28C: .4byte 0x000011f9 +_0809C290: .4byte 0x0000120f +_0809C294: .4byte 0x00001214 +_0809C298: .4byte 0x00001234 +_0809C29C: .4byte 0x00001259 +_0809C2A0: .4byte 0x0000127a +_0809C2A4: + cmp r1, 0x20 + beq _0809C2AC + cmp r1, 0x1D + bne _0809C2B0 +_0809C2AC: + movs r1, 0xFF + str r1, [sp] +_0809C2B0: + ldr r0, _0809C388 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r2, _0809C38C @ =0x0000120f + adds r7, r4, r2 + movs r0, 0xFC + mov r9, r0 + strb r0, [r7] + movs r1, 0x4 + mov r8, r1 + strb r1, [r7, 0x1] + movs r2, 0xF + strb r2, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r6, 0x1 + strb r6, [r7, 0x4] + ldr r1, _0809C390 @ =0x00001214 + adds r7, r4, r1 + ldr r2, _0809C394 @ =0x000011fa + adds r1, r4, r2 + adds r0, r7, 0 + bl StringCopy + ldr r0, _0809C398 @ =0x00001234 + adds r7, r4, r0 + mov r1, r9 + strb r1, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + movs r0, 0x13 + mov r10, r0 + strb r0, [r7, 0x6] + movs r1, 0x7 + strb r1, [r7, 0x7] + movs r0, 0xBA + strb r0, [r7, 0x8] + ldr r2, _0809C39C @ =0x0000123d + adds r7, r4, r2 + ldr r1, _0809C3A0 @ =0x000011f0 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, 0xB + muls r1, r0 + ldr r0, _0809C3A4 @ =gSpeciesNames + adds r1, r0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + mov r2, r9 + strb r2, [r7] + mov r0, r10 + strb r0, [r7, 0x1] + movs r0, 0x50 + strb r0, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + ldr r1, _0809C3A8 @ =0x00001259 + adds r7, r4, r1 + strb r2, [r7] + mov r2, r8 + strb r2, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r1, 0 + strb r1, [r7, 0x3] + strb r6, [r7, 0x4] + mov r2, r9 + strb r2, [r7, 0x5] + mov r0, r10 + strb r0, [r7, 0x6] + movs r6, 0x8 + strb r6, [r7, 0x7] + ldr r1, _0809C3AC @ =0x00001261 + adds r7, r4, r1 + movs r0, 0x34 + strb r0, [r7] + ldr r2, _0809C3B0 @ =0x00001262 + adds r7, r4, r2 + ldr r0, _0809C3B4 @ =0x000011f8 + adds r4, r0 + ldrb r1, [r4] + adds r0, r7, 0 + movs r2, 0x22 + movs r3, 0x1 + bl sub_8072C14 + adds r7, r0, 0 + mov r1, r9 + strb r1, [r7] + movs r0, 0x11 + strb r0, [r7, 0x1] + strb r6, [r7, 0x2] + adds r7, 0x3 + ldr r2, [sp] + cmp r2, 0 + beq _0809C3B8 + cmp r2, 0xFE + beq _0809C3D0 + b _0809C3EA + .align 2, 0 +_0809C388: .4byte gUnknown_083B6DB4 +_0809C38C: .4byte 0x0000120f +_0809C390: .4byte 0x00001214 +_0809C394: .4byte 0x000011fa +_0809C398: .4byte 0x00001234 +_0809C39C: .4byte 0x0000123d +_0809C3A0: .4byte 0x000011f0 +_0809C3A4: .4byte gSpeciesNames +_0809C3A8: .4byte 0x00001259 +_0809C3AC: .4byte 0x00001261 +_0809C3B0: .4byte 0x00001262 +_0809C3B4: .4byte 0x000011f8 +_0809C3B8: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + strb r1, [r7, 0x2] + mov r2, sp + ldrb r2, [r2] + strb r2, [r7, 0x3] + movs r0, 0x5 + strb r0, [r7, 0x4] + movs r0, 0xB5 + b _0809C3E6 +_0809C3D0: + mov r0, r9 + strb r0, [r7] + mov r1, r8 + strb r1, [r7, 0x1] + movs r0, 0x6 + strb r0, [r7, 0x2] + movs r2, 0 + strb r2, [r7, 0x3] + movs r0, 0x7 + strb r0, [r7, 0x4] + movs r0, 0xB6 +_0809C3E6: + strb r0, [r7, 0x5] + adds r7, 0x6 +_0809C3EA: + movs r5, 0xFF + strb r5, [r7] + ldr r0, _0809C450 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r1, _0809C454 @ =0x0000127a + adds r7, r2, r1 + ldr r0, _0809C458 @ =0x000011f2 + adds r3, r2, r0 + ldrh r0, [r3] + cmp r0, 0 + beq _0809C43C + movs r4, 0xFC + strb r4, [r7] + movs r1, 0x4 + strb r1, [r7, 0x1] + movs r0, 0xF + strb r0, [r7, 0x2] + movs r0, 0 + strb r0, [r7, 0x3] + movs r0, 0x1 + strb r0, [r7, 0x4] + ldr r0, _0809C45C @ =0x0000127f + adds r7, r2, r0 + strb r4, [r7] + movs r0, 0x6 + strb r0, [r7, 0x1] + strb r1, [r7, 0x2] + ldr r1, _0809C460 @ =0x00001282 + adds r7, r2, r1 + ldrh r0, [r3] + bl ItemId_GetItem + adds r1, r0, 0 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + strb r4, [r7] + movs r0, 0x7 + strb r0, [r7, 0x1] + adds r7, 0x2 +_0809C43C: + strb r5, [r7] +_0809C43E: + 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 +_0809C450: .4byte gUnknown_083B6DB4 +_0809C454: .4byte 0x0000127a +_0809C458: .4byte 0x000011f2 +_0809C45C: .4byte 0x0000127f +_0809C460: .4byte 0x00001282 + thumb_func_end sub_809C04C + + thumb_func_start sub_809C464 +sub_809C464: @ 809C464 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0809C4D8 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r8, r0 + ldr r2, _0809C4DC @ =gUnknown_020384E5 + ldrb r4, [r2] + ldr r0, _0809C4E0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C4E4 @ =0x000011de + adds r7, r1, r0 + movs r0, 0 + strb r0, [r7] + ldr r3, _0809C4E8 @ =0x000011df + adds r5, r1, r3 + strb r0, [r5] + adds r3, 0x4 + adds r6, r1, r3 + strb r0, [r6] + ldr r0, _0809C4EC @ =gMain + mov r12, r0 + ldrh r1, [r0, 0x30] + movs r0, 0x40 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0 + beq _0809C4A0 + b _0809C62A +_0809C4A0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809C4F0 + movs r1, 0x1 + mov r9, r1 + lsls r0, r4, 24 + movs r3, 0xC0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x1D + bgt _0809C4BE + b _0809C648 +_0809C4BE: + movs r1, 0x3 + mov r8, r1 + subs r0, 0x1E + lsls r0, 24 + asrs r0, 24 + bl __divsi3 + lsls r0, 24 + lsrs r4, r0, 24 + mov r3, r9 + strb r3, [r7] + strb r3, [r6] + b _0809C648 + .align 2, 0 +_0809C4D8: .4byte gUnknown_020384E4 +_0809C4DC: .4byte gUnknown_020384E5 +_0809C4E0: .4byte gUnknown_083B6DB4 +_0809C4E4: .4byte 0x000011de +_0809C4E8: .4byte 0x000011df +_0809C4EC: .4byte gMain +_0809C4F0: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0809C524 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + movs r1, 0x6 + bl __modsi3 + lsls r0, 24 + cmp r0, 0 + beq _0809C514 + lsls r0, r4, 24 + movs r1, 0xFF + lsls r1, 24 + b _0809C63C +_0809C514: + movs r0, 0xFF + strb r0, [r5] + lsls r0, r4, 24 + movs r3, 0xA0 + lsls r3, 19 + adds r0, r3 + lsrs r4, r0, 24 + b _0809C648 +_0809C524: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C554 + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r3, r0] + adds r0, 0x1 + movs r1, 0x6 + bl __modsi3 + cmp r0, 0 + beq _0809C548 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + b _0809C63C +_0809C548: + mov r3, r9 + strb r3, [r5] + lsls r0, r4, 24 + movs r1, 0xFB + lsls r1, 24 + b _0809C63C +_0809C554: + mov r3, r12 + ldrh r1, [r3, 0x2E] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0809C56A + movs r0, 0x1 + mov r9, r0 + movs r1, 0x2 + mov r8, r1 + b _0809C646 +_0809C56A: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C5D4 + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C5D4 + ldr r0, _0809C588 @ =gUnknown_020384E9 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C58C + movs r0, 0x8 + b _0809C658 + .align 2, 0 +_0809C588: .4byte gUnknown_020384E9 +_0809C58C: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C5D4 + lsls r0, 2 + ldr r1, _0809C5A8 @ =_0809C5AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5A8: .4byte _0809C5AC + .align 2, 0 +_0809C5AC: + .4byte _0809C5C0 + .4byte _0809C5C4 + .4byte _0809C5C8 + .4byte _0809C5CC + .4byte _0809C5D0 +_0809C5C0: + movs r0, 0xB + b _0809C658 +_0809C5C4: + movs r0, 0xC + b _0809C658 +_0809C5C8: + movs r0, 0xD + b _0809C658 +_0809C5CC: + movs r0, 0xE + b _0809C658 +_0809C5D0: + movs r0, 0xF + b _0809C658 +_0809C5D4: + ldr r2, _0809C5E4 @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C5E8 + movs r0, 0x10 + b _0809C658 + .align 2, 0 +_0809C5E4: .4byte gMain +_0809C5E8: + ldr r0, _0809C600 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C612 + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0809C604 + movs r0, 0xA + b _0809C658 + .align 2, 0 +_0809C600: .4byte gSaveBlock2 +_0809C604: + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _0809C612 + movs r0, 0x9 + b _0809C658 +_0809C612: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C624 + bl sub_809CD88 + movs r0, 0 + b _0809C658 +_0809C624: + movs r3, 0 + mov r9, r3 + b _0809C656 +_0809C62A: + movs r0, 0x1 + mov r9, r0 + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x5 + ble _0809C642 + lsls r0, r4, 24 + movs r1, 0xFA + lsls r1, 24 +_0809C63C: + adds r0, r1 + lsrs r4, r0, 24 + b _0809C648 +_0809C642: + movs r3, 0x2 + mov r8, r3 +_0809C646: + movs r4, 0 +_0809C648: + mov r0, r9 + cmp r0, 0 + beq _0809C656 + mov r0, r8 + adds r1, r4, 0 + bl sub_809AF18 +_0809C656: + mov r0, r9 +_0809C658: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C464 + + thumb_func_start sub_809C664 +sub_809C664: @ 809C664 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0809C6D8 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r10, r0 + ldr r7, _0809C6DC @ =gUnknown_020384E5 + ldrb r4, [r7] + ldr r2, _0809C6E0 @ =gUnknown_083B6DB4 + ldr r5, [r2] + ldr r1, _0809C6E4 @ =0x000011df + adds r0, r5, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C6E8 @ =0x000011de + adds r0, r5, r3 + strb r1, [r0] + adds r3, 0x5 + adds r0, r5, r3 + strb r1, [r0] + mov r9, r1 + mov r8, r1 + ldr r1, _0809C6EC @ =gMain + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + adds r6, r7, 0 + mov r12, r2 + adds r2, r1, 0 + cmp r0, 0 + beq _0809C6A8 + b _0809C81C +_0809C6A8: + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C6F0 + lsls r0, r4, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r4, r0, 24 + asrs r0, 24 + cmp r0, 0x6 + ble _0809C6C2 + movs r4, 0 +_0809C6C2: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r6, r1] + cmp r0, r1 + bne _0809C6D0 + b _0809C83C +_0809C6D0: + movs r2, 0x1 + mov r8, r2 + b _0809C842 + .align 2, 0 +_0809C6D8: .4byte gUnknown_020384E4 +_0809C6DC: .4byte gUnknown_020384E5 +_0809C6E0: .4byte gUnknown_083B6DB4 +_0809C6E4: .4byte 0x000011df +_0809C6E8: .4byte 0x000011de +_0809C6EC: .4byte gMain +_0809C6F0: + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _0809C714 + ldrb r1, [r6] + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + beq _0809C714 + movs r3, 0x1 + mov r8, r3 + ldr r2, _0809C710 @ =0x000011e2 + adds r0, r5, r2 + strb r1, [r0] + movs r4, 0 + b _0809C83C + .align 2, 0 +_0809C710: .4byte 0x000011e2 +_0809C714: + ldrh r1, [r2, 0x30] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0809C748 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0 + bne _0809C73C + movs r3, 0x1 + mov r8, r3 + mov r1, r12 + ldr r0, [r1] + ldr r2, _0809C738 @ =0x000011e2 + adds r0, r2 + ldrb r4, [r0] + b _0809C83C + .align 2, 0 +_0809C738: .4byte 0x000011e2 +_0809C73C: + movs r3, 0x6 + mov r8, r3 + movs r0, 0 + mov r10, r0 + movs r4, 0 + b _0809C83C +_0809C748: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C7D0 + movs r0, 0 + ldrsb r0, [r6, r0] + cmp r0, 0x6 + bne _0809C76E + mov r1, r12 + ldr r0, [r1] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C768 + movs r0, 0x4 + b _0809C84C +_0809C768: + movs r2, 0x1 + mov r9, r2 + b _0809C7D0 +_0809C76E: + bl sub_809CAB0 + lsls r0, 24 + cmp r0, 0 + beq _0809C7D0 + ldr r0, _0809C784 @ =gUnknown_020384E9 + ldrb r0, [r0] + cmp r0, 0 + bne _0809C788 + movs r0, 0x8 + b _0809C84C + .align 2, 0 +_0809C784: .4byte gUnknown_020384E9 +_0809C788: + movs r0, 0 + bl sub_809CE4C + subs r0, 0x1 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x4 + bhi _0809C7D0 + lsls r0, 2 + ldr r1, _0809C7A4 @ =_0809C7A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C7A4: .4byte _0809C7A8 + .align 2, 0 +_0809C7A8: + .4byte _0809C7BC + .4byte _0809C7C0 + .4byte _0809C7C4 + .4byte _0809C7C8 + .4byte _0809C7CC +_0809C7BC: + movs r0, 0xB + b _0809C84C +_0809C7C0: + movs r0, 0xC + b _0809C84C +_0809C7C4: + movs r0, 0xD + b _0809C84C +_0809C7C8: + movs r0, 0xE + b _0809C84C +_0809C7CC: + movs r0, 0xF + b _0809C84C +_0809C7D0: + ldr r2, _0809C7EC @ =gMain + ldrh r1, [r2, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C7F8 + ldr r0, _0809C7F0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + bne _0809C7F4 + movs r0, 0x10 + b _0809C84C + .align 2, 0 +_0809C7EC: .4byte gMain +_0809C7F0: .4byte gUnknown_083B6DB4 +_0809C7F4: + movs r3, 0x1 + mov r9, r3 +_0809C7F8: + mov r0, r9 + cmp r0, 0 + beq _0809C80A + movs r1, 0x6 + mov r8, r1 + movs r2, 0 + mov r10, r2 + movs r4, 0 + b _0809C83C +_0809C80A: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C83C + bl sub_809CD88 + movs r0, 0 + b _0809C84C +_0809C81C: + lsls r0, r4, 24 + movs r3, 0xFF + lsls r3, 24 + adds r0, r3 + lsrs r4, r0, 24 + cmp r0, 0 + bge _0809C82C + movs r4, 0x6 +_0809C82C: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0 + ldrsb r1, [r7, r1] + cmp r0, r1 + beq _0809C83C + movs r0, 0x1 + mov r8, r0 +_0809C83C: + mov r1, r8 + cmp r1, 0 + beq _0809C84A +_0809C842: + mov r0, r10 + adds r1, r4, 0 + bl sub_809AF18 +_0809C84A: + mov r0, r8 +_0809C84C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C664 + + thumb_func_start sub_809C85C +sub_809C85C: @ 809C85C + push {r4-r6,lr} + ldr r0, _0809C894 @ =gUnknown_083B6DB4 + ldr r2, [r0] + ldr r1, _0809C898 @ =0x000011df + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _0809C89C @ =0x000011de + adds r0, r2, r3 + strb r1, [r0] + ldr r0, _0809C8A0 @ =0x000011e3 + adds r2, r0 + strb r1, [r2] + ldr r1, _0809C8A4 @ =gMain + ldrh r3, [r1, 0x30] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + bne _0809C91A + movs r0, 0x80 + ands r0, r3 + cmp r0, 0 + beq _0809C8A8 + movs r4, 0x1 + movs r0, 0 + movs r5, 0x2 + b _0809C922 + .align 2, 0 +_0809C894: .4byte gUnknown_083B6DB4 +_0809C898: .4byte 0x000011df +_0809C89C: .4byte 0x000011de +_0809C8A0: .4byte 0x000011e3 +_0809C8A4: .4byte gMain +_0809C8A8: + ldrh r2, [r1, 0x2C] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _0809C8CC + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _0809C8DE + ldr r0, _0809C8D0 @ =gSaveBlock2 + ldrb r0, [r0, 0x13] + cmp r0, 0x1 + bne _0809C8E2 + movs r0, 0x80 + lsls r0, 2 + ands r0, r2 + cmp r0, 0 + beq _0809C8D4 +_0809C8CC: + movs r0, 0xA + b _0809C93E + .align 2, 0 +_0809C8D0: .4byte gSaveBlock2 +_0809C8D4: + movs r0, 0x80 + lsls r0, 1 + ands r0, r2 + cmp r0, 0 + beq _0809C8E2 +_0809C8DE: + movs r0, 0x9 + b _0809C93E +_0809C8E2: + ldrh r1, [r1, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C8FA + movs r0, 0 + bl sub_809A860 + bl sub_809CA8C + movs r0, 0x7 + b _0809C93E +_0809C8FA: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809C906 + movs r0, 0x10 + b _0809C93E +_0809C906: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809C916 + bl sub_809CD88 + movs r0, 0 + b _0809C93E +_0809C916: + movs r4, 0 + b _0809C93C +_0809C91A: + movs r4, 0x1 + movs r0, 0x3 + movs r5, 0 + strb r4, [r2] +_0809C922: + cmp r4, 0 + beq _0809C93C + lsls r6, r0, 24 + cmp r0, 0x2 + beq _0809C932 + movs r0, 0 + bl sub_809A860 +_0809C932: + lsrs r0, r6, 24 + lsls r1, r5, 24 + lsrs r1, 24 + bl sub_809AF18 +_0809C93C: + adds r0, r4, 0 +_0809C93E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_809C85C + + thumb_func_start sub_809C944 +sub_809C944: @ 809C944 + push {r4-r7,lr} + ldr r0, _0809C988 @ =gUnknown_020384E4 + ldrb r0, [r0] + mov r12, r0 + ldr r7, _0809C98C @ =gUnknown_020384E5 + ldrb r3, [r7] + ldr r0, _0809C990 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r0, _0809C994 @ =0x000011df + adds r5, r1, r0 + movs r0, 0 + strb r0, [r5] + ldr r2, _0809C998 @ =0x000011de + adds r4, r1, r2 + strb r0, [r4] + adds r2, 0x5 + adds r1, r2 + strb r0, [r1] + ldr r6, _0809C99C @ =gMain + ldrh r2, [r6, 0x30] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _0809CA14 + movs r0, 0x88 + ands r0, r2 + cmp r0, 0 + beq _0809C9A0 + movs r6, 0x1 + movs r0, 0x2 + mov r12, r0 + movs r3, 0 + b _0809CA2A + .align 2, 0 +_0809C988: .4byte gUnknown_020384E4 +_0809C98C: .4byte gUnknown_020384E5 +_0809C990: .4byte gUnknown_083B6DB4 +_0809C994: .4byte 0x000011df +_0809C998: .4byte 0x000011de +_0809C99C: .4byte gMain +_0809C9A0: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _0809C9C0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r3, r0, 24 + cmp r0, 0 + bge _0809CA2C + movs r0, 0xFF + strb r0, [r5] + movs r3, 0x1 + b _0809CA2C +_0809C9C0: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _0809C9E0 + movs r6, 0x1 + lsls r0, r3, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x1 + ble _0809CA2C + strb r6, [r5] + movs r3, 0 + b _0809CA2C +_0809C9E0: + ldrh r1, [r6, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809C9F4 + movs r0, 0x4 + cmp r3, 0 + bne _0809CA3A + movs r0, 0x5 + b _0809CA3A +_0809C9F4: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CA00 + movs r0, 0x10 + b _0809CA3A +_0809CA00: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0809CA10 + bl sub_809CD88 + movs r0, 0 + b _0809CA3A +_0809CA10: + movs r6, 0 + b _0809CA38 +_0809CA14: + movs r6, 0x1 + movs r0, 0 + mov r12, r0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0 + ldrsb r0, [r7, r0] + movs r3, 0x1D + cmp r0, 0 + bne _0809CA2A + movs r3, 0x18 +_0809CA2A: + strb r6, [r1] +_0809CA2C: + cmp r6, 0 + beq _0809CA38 + mov r0, r12 + adds r1, r3, 0 + bl sub_809AF18 +_0809CA38: + adds r0, r6, 0 +_0809CA3A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809C944 + + thumb_func_start sub_809CA40 +sub_809CA40: @ 809CA40 + push {r4,r5,lr} + movs r3, 0 + ldr r0, _0809CA6C @ =gUnknown_083BBBD4 + ldr r1, [r0] + adds r4, r0, 0 + cmp r1, 0 + beq _0809CA84 + ldr r5, _0809CA70 @ =gUnknown_020384E4 +_0809CA50: + 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 _0809CA74 + ldr r0, [r2] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + b _0809CA86 + .align 2, 0 +_0809CA6C: .4byte gUnknown_083BBBD4 +_0809CA70: .4byte gUnknown_020384E4 +_0809CA74: + 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 _0809CA50 +_0809CA84: + movs r0, 0 +_0809CA86: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_809CA40 + + thumb_func_start sub_809CA8C +sub_809CA8C: @ 809CA8C + push {lr} + bl sub_809CDCC + movs r0, 0x9 + bl sub_809CDEC + movs r0, 0xA + bl sub_809CDEC + movs r0, 0xB + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + pop {r0} + bx r0 + thumb_func_end sub_809CA8C + + thumb_func_start sub_809CAB0 +sub_809CAB0: @ 809CAB0 + push {lr} + bl sub_809CDCC + bl sub_809AB8C + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _0809CAD4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x1 + beq _0809CADE + cmp r0, 0x1 + bgt _0809CAD8 + cmp r0, 0 + beq _0809CAEA + b _0809CB24 + .align 2, 0 +_0809CAD4: .4byte gUnknown_083B6DB4 +_0809CAD8: + cmp r0, 0x2 + beq _0809CAF6 + b _0809CB24 +_0809CADE: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x1 + bl sub_809CDEC + b _0809CB28 +_0809CAEA: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB28 +_0809CAF6: + ldr r0, _0809CB0C @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809CB18 + cmp r1, 0 + beq _0809CB10 + movs r0, 0x4 + bl sub_809CDEC + b _0809CB28 + .align 2, 0 +_0809CB0C: .4byte gUnknown_020384E6 +_0809CB10: + movs r0, 0x5 + bl sub_809CDEC + b _0809CB28 +_0809CB18: + cmp r1, 0 + beq _0809CB24 + movs r0, 0x3 + bl sub_809CDEC + b _0809CB28 +_0809CB24: + movs r0, 0 + b _0809CB6E +_0809CB28: + movs r0, 0x6 + bl sub_809CDEC + ldr r0, _0809CB4C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldrb r0, [r0, 0x5] + cmp r0, 0x2 + bne _0809CB5A + ldr r0, _0809CB50 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _0809CB54 + movs r0, 0x2 + bl sub_809CDEC + b _0809CB5A + .align 2, 0 +_0809CB4C: .4byte gUnknown_083B6DB4 +_0809CB50: .4byte gUnknown_020384E4 +_0809CB54: + movs r0, 0x1 + bl sub_809CDEC +_0809CB5A: + movs r0, 0x8 + bl sub_809CDEC + movs r0, 0x7 + bl sub_809CDEC + movs r0, 0 + bl sub_809CDEC + movs r0, 0x1 +_0809CB6E: + pop {r1} + bx r1 + thumb_func_end sub_809CAB0 + + thumb_func_start sub_809CB74 +sub_809CB74: @ 809CB74 + ldr r1, _0809CB90 @ =gUnknown_083B6DB4 + ldr r1, [r1] + movs r2, 0x8E + lsls r2, 5 + 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 +_0809CB90: .4byte gUnknown_083B6DB4 + thumb_func_end sub_809CB74 + + thumb_func_start unref_sub_809CB94 +unref_sub_809CB94: @ 809CB94 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0809CBBC @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CBC8 + ldr r2, _0809CBC0 @ =gPlayerParty + ldr r0, _0809CBC4 @ =gUnknown_020384E5 + movs r1, 0 + ldrsb r1, [r0, r1] + movs r0, 0x64 + muls r1, r0 + adds r1, r2 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy + b _0809CBF6 + .align 2, 0 +_0809CBBC: .4byte gUnknown_020384E4 +_0809CBC0: .4byte gPlayerParty +_0809CBC4: .4byte gUnknown_020384E5 +_0809CBC8: + bl get_preferred_box + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0809CBFC @ =gPokemonStorage + ldr r1, _0809CC00 @ =gUnknown_020384E5 + movs r2, 0 + ldrsb r2, [r1, r2] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 4 + lsls r2, r0, 2 + adds r2, r0 + lsls r0, r2, 4 + subs r0, r2 + lsls r0, 5 + adds r1, r0 + adds r1, r3 + adds r1, 0x4 + adds r0, r4, 0 + movs r2, 0x50 + bl memcpy +_0809CBF6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0809CBFC: .4byte gPokemonStorage +_0809CC00: .4byte gUnknown_020384E5 + thumb_func_end unref_sub_809CB94 + + thumb_func_start sub_809CC04 +sub_809CC04: @ 809CC04 + push {r4-r7,lr} + sub sp, 0x34 + mov r1, sp + ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets + 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, _0809CCB4 @ =gHandCursorSpritePalettes + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + mov r0, sp + bl LoadSpriteSheets + adds r0, r4, 0 + bl LoadSpritePalettes + ldr r0, _0809CCB8 @ =0x0000dac6 + bl IndexOfSpritePaletteTag + ldr r1, _0809CCBC @ =gUnknown_083B6DB4 + ldr r6, [r1] + ldr r4, _0809CCC0 @ =0x000011e4 + adds r7, r6, r4 + strb r0, [r7] + ldr r0, _0809CCC4 @ =0x0000dad1 + bl IndexOfSpritePaletteTag + ldr r5, _0809CCC8 @ =0x000011e5 + adds r1, r6, r5 + strb r0, [r1] + ldr r0, _0809CCCC @ =gUnknown_020384E4 + ldrb r0, [r0] + ldr r1, _0809CCD0 @ =gUnknown_020384E5 + ldrb r1, [r1] + add r4, sp, 0x30 + mov r5, sp + adds r5, 0x32 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_809AACC + ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r3, 0 + ldrsh r2, [r5, r3] + movs r3, 0x6 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CCE4 + movs r5, 0x8E + lsls r5, 5 + adds r4, r6, r5 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CCD8 @ =gSprites + adds r1, r0 + str r1, [r4] + ldr r0, _0809CCDC @ =gUnknown_020384E9 + ldrb r0, [r0] + adds r0, r7, r0 + ldrb r2, [r0] + lsls r2, 4 + ldrb r3, [r1, 0x5] + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, _0809CCE0 @ =gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, 0 + beq _0809CCEE + ldr r0, [r4] + movs r1, 0x3 + bl StartSpriteAnim + b _0809CCEE + .align 2, 0 +_0809CCB0: .4byte gHandCursorSpriteSheets +_0809CCB4: .4byte gHandCursorSpritePalettes +_0809CCB8: .4byte 0x0000dac6 +_0809CCBC: .4byte gUnknown_083B6DB4 +_0809CCC0: .4byte 0x000011e4 +_0809CCC4: .4byte 0x0000dad1 +_0809CCC8: .4byte 0x000011e5 +_0809CCCC: .4byte gUnknown_020384E4 +_0809CCD0: .4byte gUnknown_020384E5 +_0809CCD4: .4byte gSpriteTemplate_83BBC70 +_0809CCD8: .4byte gSprites +_0809CCDC: .4byte gUnknown_020384E9 +_0809CCE0: .4byte gUnknown_020384E6 +_0809CCE4: + movs r0, 0x8E + lsls r0, 5 + adds r1, r6, r0 + movs r0, 0 + str r0, [r1] +_0809CCEE: + ldr r0, _0809CD00 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0809CD04 + movs r3, 0xC + movs r5, 0x1 + b _0809CD08 + .align 2, 0 +_0809CD00: .4byte gUnknown_020384E4 +_0809CD04: + movs r3, 0x14 + movs r5, 0x2 +_0809CD08: + ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88 + movs r1, 0 + movs r2, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0809CD6C + ldr r0, _0809CD5C @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r1, _0809CD60 @ =0x000011c4 + adds r4, r0, r1 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r0, _0809CD64 @ =gSprites + adds r1, r0 + str r1, [r4] + lsls r3, r5, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r0, _0809CD68 @ =gUnknown_020384E4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _0809CD78 + ldr r0, [r4] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0809CD78 + .align 2, 0 +_0809CD58: .4byte gSpriteTemplate_83BBC88 +_0809CD5C: .4byte gUnknown_083B6DB4 +_0809CD60: .4byte 0x000011c4 +_0809CD64: .4byte gSprites +_0809CD68: .4byte gUnknown_020384E4 +_0809CD6C: + ldr r0, _0809CD80 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809CD84 @ =0x000011c4 + adds r0, r2 + movs r1, 0 + str r1, [r0] +_0809CD78: + add sp, 0x34 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809CD80: .4byte gUnknown_083B6DB4 +_0809CD84: .4byte 0x000011c4 + thumb_func_end sub_809CC04 + + thumb_func_start sub_809CD88 +sub_809CD88: @ 809CD88 + push {lr} + ldr r2, _0809CDC0 @ =gUnknown_020384E9 + movs r1, 0 + ldrb r0, [r2] + cmp r0, 0 + bne _0809CD96 + movs r1, 0x1 +_0809CD96: + strb r1, [r2] + ldr r0, _0809CDC4 @ =gUnknown_083B6DB4 + ldr r0, [r0] + movs r3, 0x8E + lsls r3, 5 + adds r1, r0, r3 + ldr r3, [r1] + ldr r1, _0809CDC8 @ =0x000011e4 + 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 +_0809CDC0: .4byte gUnknown_020384E9 +_0809CDC4: .4byte gUnknown_083B6DB4 +_0809CDC8: .4byte 0x000011e4 + thumb_func_end sub_809CD88 + + thumb_func_start sub_809CDCC +sub_809CDCC: @ 809CDCC + ldr r0, _0809CDE0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + ldr r2, _0809CDE4 @ =0x000011b8 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r1, _0809CDE8 @ =0x000011b9 + adds r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_0809CDE0: .4byte gUnknown_083B6DB4 +_0809CDE4: .4byte 0x000011b8 +_0809CDE8: .4byte 0x000011b9 + thumb_func_end sub_809CDCC + + thumb_func_start sub_809CDEC +sub_809CDEC: @ 809CDEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0809CE3C @ =gUnknown_083B6DB4 + ldr r5, [r0] + ldr r0, _0809CE40 @ =0x000011b8 + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0x6 + bhi _0809CE36 + adds r1, r0, 0 + lsls r1, 3 + movs r2, 0x8C + lsls r2, 5 + adds r1, r2 + adds r1, r5, r1 + ldr r2, _0809CE44 @ =gUnknown_083BBCA0 + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + str r3, [r1, 0x4] + bl sub_8072CA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0x7 + lsrs r1, 3 + ldr r2, _0809CE48 @ =0x000011b9 + adds r0, r5, r2 + ldrb r2, [r0] + cmp r1, r2 + bls _0809CE30 + strb r1, [r0] +_0809CE30: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] +_0809CE36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809CE3C: .4byte gUnknown_083B6DB4 +_0809CE40: .4byte 0x000011b8 +_0809CE44: .4byte gUnknown_083BBCA0 +_0809CE48: .4byte 0x000011b9 + thumb_func_end sub_809CDEC + + thumb_func_start sub_809CE4C +sub_809CE4C: @ 809CE4C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0809CE70 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r3, _0809CE74 @ =0x000011b8 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bcs _0809CE7C + lsls r0, r2, 3 + ldr r2, _0809CE78 @ =0x00001184 + adds r1, r2 + adds r1, r0 + movs r0, 0 + ldrsb r0, [r1, r0] + b _0809CE80 + .align 2, 0 +_0809CE70: .4byte gUnknown_083B6DB4 +_0809CE74: .4byte 0x000011b8 +_0809CE78: .4byte 0x00001184 +_0809CE7C: + movs r0, 0x1 + negs r0, r0 +_0809CE80: + pop {r1} + bx r1 + thumb_func_end sub_809CE4C + + thumb_func_start sub_809CE84 +sub_809CE84: @ 809CE84 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + ldr r0, _0809CF20 @ =gUnknown_083B6DB4 + ldr r4, [r0] + ldr r0, _0809CF24 @ =0x000011b8 + adds r0, r4 + mov r8, r0 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0xE + subs r1, r0 + ldr r3, _0809CF28 @ =0x000011bc + adds r6, r4, r3 + movs r0, 0 + mov r10, r0 + strh r1, [r6] + ldr r1, _0809CF2C @ =0x000011b9 + adds r1, r4 + mov r9, r1 + ldrb r1, [r1] + movs r0, 0x1C + subs r0, r1 + subs r3, 0x2 + adds r5, r4, r3 + strh r0, [r5] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + movs r2, 0x1D + movs r3, 0xF + bl MenuDrawTextWindow + ldrb r0, [r5] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r3, r8 + ldrb r2, [r3] + movs r3, 0x8C + lsls r3, 5 + adds r4, r3 + adds r3, r4, 0 + bl PrintMenuItems + ldrb r1, [r5] + adds r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r6] + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + mov r4, r8 + ldrb r3, [r4] + mov r0, r10 + str r0, [sp] + mov r4, r9 + ldrb r0, [r4] + str r0, [sp, 0x4] + movs r0, 0 + bl InitMenu + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0809CF20: .4byte gUnknown_083B6DB4 +_0809CF24: .4byte 0x000011b8 +_0809CF28: .4byte 0x000011bc +_0809CF2C: .4byte 0x000011b9 + thumb_func_end sub_809CE84 + + thumb_func_start sub_809CF30 +sub_809CF30: @ 809CF30 + push {r4,r5,lr} + movs r5, 0x2 + negs r5, r5 + ldr r4, _0809CF6C @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0809CF86 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0809CF52 + movs r0, 0x5 + bl PlaySE + adds r5, 0x1 +_0809CF52: + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0809CF70 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0809CF8E + .align 2, 0 +_0809CF6C: .4byte gMain +_0809CF70: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0809CF8E + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0809CF8E +_0809CF86: + bl GetMenuCursorPos + lsls r0, 24 + lsrs r5, r0, 24 +_0809CF8E: + movs r0, 0x2 + negs r0, r0 + cmp r5, r0 + beq _0809CFB2 + bl sub_8072DEC + ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + ldr r1, [r0] + ldr r2, _0809CFD4 @ =0x000011ba + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x1D + movs r3, 0xF + bl MenuZeroFillWindowRect +_0809CFB2: + cmp r5, 0 + blt _0809CFC4 + ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + ldr r0, [r0] + lsls r1, r5, 3 + ldr r2, _0809CFD8 @ =0x00001184 + adds r0, r2 + adds r0, r1 + ldr r5, [r0] +_0809CFC4: + lsls r0, r5, 16 + asrs r0, 16 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0809CFD0: .4byte gUnknown_083B6DB4 +_0809CFD4: .4byte 0x000011ba +_0809CFD8: .4byte 0x00001184 + thumb_func_end sub_809CF30 + + thumb_func_start sub_809CFDC +sub_809CFDC: @ 809CFDC + ldr r3, _0809CFEC @ =gUnknown_020384EC + str r0, [r3] + str r1, [r0] + movs r1, 0 + strb r2, [r0, 0x5] + strb r1, [r0, 0x4] + bx lr + .align 2, 0 +_0809CFEC: .4byte gUnknown_020384EC + thumb_func_end sub_809CFDC + + thumb_func_start sub_809CFF0 +sub_809CFF0: @ 809CFF0 + push {r4,r5,lr} + ldr r2, _0809D030 @ =gUnknown_020384EC + ldr r1, [r2] + ldrb r0, [r1, 0x4] + cmp r0, 0 + beq _0809D02A + movs r4, 0 + ldrb r1, [r1, 0x4] + cmp r4, r1 + bcs _0809D022 + adds r5, r2, 0 +_0809D006: + ldr r0, [r5] + lsls r1, r4, 4 + ldr r0, [r0] + adds r0, r1 + ldr r1, [r0, 0xC] + 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 _0809D006 +_0809D022: + ldr r0, _0809D030 @ =gUnknown_020384EC + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x4] +_0809D02A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0809D030: .4byte gUnknown_020384EC + thumb_func_end sub_809CFF0 + + thumb_func_start sub_809D034 +sub_809D034: @ 809D034 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r9, r3 + ldr r0, [sp, 0x20] + ldr r3, [sp, 0x24] + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r6, r2, 16 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _0809D0A4 @ =gUnknown_020384EC + ldr r2, [r0] + ldrb r0, [r2, 0x4] + adds r1, r0, 0 + ldrb r7, [r2, 0x5] + cmp r1, r7 + bcs _0809D0AC + adds r0, 0x1 + strb r0, [r2, 0x4] + lsls r0, r1, 4 + ldr r2, [r2] + adds r2, r0 + lsls r0, r4, 1 + strh r0, [r2, 0x8] + lsls r0, r6, 6 + add r0, r8 + mov r4, r10 + lsls r1, r4, 1 + adds r0, r1 + str r0, [r2, 0x4] + lsls r0, r3, 6 + add r0, r9 + mov r7, r12 + lsls r1, r7, 1 + adds r0, r1 + str r0, [r2] + strh r5, [r2, 0xA] + ldr r0, _0809D0A8 @ =sub_809D0BC + str r0, [r2, 0xC] + movs r0, 0x1 + b _0809D0AE + .align 2, 0 +_0809D0A4: .4byte gUnknown_020384EC +_0809D0A8: .4byte sub_809D0BC +_0809D0AC: + movs r0, 0 +_0809D0AE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D034 + + thumb_func_start sub_809D0BC +sub_809D0BC: @ 809D0BC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r6, [r0] + ldr r5, [r0, 0x4] + ldrh r7, [r0, 0xA] + ldrh r2, [r0, 0x8] + movs r4, 0 + cmp r4, r7 + bcs _0809D0F2 + lsrs r2, 1 + mov r8, r2 + ldr r0, _0809D100 @ =0x001fffff + mov r9, r0 +_0809D0DA: + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r8 + mov r3, r9 + ands r2, r3 + bl CpuSet + adds r5, 0x40 + adds r6, 0x40 + adds r4, 0x1 + cmp r4, r7 + bcc _0809D0DA +_0809D0F2: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D100: .4byte 0x001fffff + thumb_func_end sub_809D0BC + + thumb_func_start sub_809D104 +sub_809D104: @ 809D104 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r5, [sp, 0x18] + ldr r4, [sp, 0x1C] + ldr r6, [sp, 0x20] + mov r8, r6 + ldr r6, [sp, 0x24] + lsls r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r5, 16 + lsls r4, 16 + mov r7, r8 + lsls r7, 16 + lsls r6, 16 + lsrs r6, 16 + lsrs r4, 10 + adds r3, r4 + lsrs r5, 15 + adds r5, r3, r5 + lsls r3, r2, 6 + adds r3, r0, r3 + lsrs r1, 15 + adds r4, r3, r1 + adds r2, r6 + lsls r2, 6 + adds r6, r0, r2 + lsrs r2, r7, 15 + cmp r4, r6 + bcs _0809D15C + lsrs r7, r2, 1 + ldr r0, _0809D168 @ =0x001fffff + mov r8, r0 +_0809D148: + adds r0, r5, 0 + adds r1, r4, 0 + mov r2, r8 + ands r2, r7 + bl CpuSet + adds r4, 0x40 + adds r5, 0x40 + cmp r4, r6 + bcc _0809D148 +_0809D15C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0809D168: .4byte 0x001fffff + thumb_func_end sub_809D104 + + thumb_func_start sub_809D16C +sub_809D16C: @ 809D16C + 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, _0809D1B4 @ =gUnknown_020384EC + ldr r1, [r0] + ldrb r0, [r1, 0x4] + adds r2, r0, 0 + ldrb r7, [r1, 0x5] + cmp r2, r7 + bcs _0809D1BC + adds r0, 0x1 + strb r0, [r1, 0x4] + lsls r0, r2, 4 + ldr r1, [r1] + 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, 0xA] + ldr r0, _0809D1B8 @ =sub_809D1C4 + str r0, [r1, 0xC] + movs r0, 0x1 + b _0809D1BE + .align 2, 0 +_0809D1B4: .4byte gUnknown_020384EC +_0809D1B8: .4byte sub_809D1C4 +_0809D1BC: + movs r0, 0 +_0809D1BE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_809D16C + + thumb_func_start sub_809D1C4 +sub_809D1C4: @ 809D1C4 + 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, 0xA] + cmp r0, r1 + bcs _0809D252 + movs r7, 0x80 + lsls r7, 5 + mov r5, sp + ldr r2, _0809D210 @ =0x040000d4 + mov r8, r2 + movs r1, 0x81 + lsls r1, 24 + mov r10, r1 +_0809D1EA: + ldr r2, [r6, 0x4] + ldrh r3, [r6, 0x8] + mov r12, r2 + adds r0, 0x1 + mov r9, r0 + cmp r3, r7 + bhi _0809D214 + 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 _0809D23C + .align 2, 0 +_0809D210: .4byte 0x040000d4 +_0809D214: + movs r4, 0 + strh r4, [r5] + ldr r1, _0809D264 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0809D268 @ =0x81000800 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r7 + subs r3, r7 + cmp r3, r7 + bhi _0809D214 + strh r4, [r5] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r10 + orrs r0, r2 +_0809D23C: + 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, 0xA] + cmp r0, r2 + bcc _0809D1EA +_0809D252: + 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 +_0809D264: .4byte 0x040000d4 +_0809D268: .4byte 0x81000800 + thumb_func_end sub_809D1C4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s index ab6958bde..d272b277a 100644 --- a/asm/rom_8094928.s +++ b/asm/rom_8094928.s @@ -722,16666 +722,4 @@ sub_8094E4C: @ 8094E4C bx r0 thumb_func_end sub_8094E4C - thumb_func_start sub_8094E58 -sub_8094E58: @ 8094E58 - push {r4,r5,lr} - ldr r1, _08094E78 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0xA - bls _08094E6E - b _08095048 -_08094E6E: - lsls r0, 2 - ldr r1, _08094E7C @ =_08094E80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094E78: .4byte 0x0201b000 -_08094E7C: .4byte _08094E80 - .align 2, 0 -_08094E80: - .4byte _08094EAC - .4byte _08094F28 - .4byte _08094F3C - .4byte _08094F4A - .4byte _08094F6C - .4byte _08094F80 - .4byte _08094F94 - .4byte _08094FA8 - .4byte _08094FBC - .4byte _08094FD0 - .4byte _08095000 -_08094EAC: - bl IsLinkDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094EDC - ldr r1, _08094ED4 @ =0x0201b000 - ldr r0, _08094ED8 @ =0x00000266 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x6 - bne _08094EEC - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094ED4: .4byte 0x0201b000 -_08094ED8: .4byte 0x00000266 -_08094EDC: - ldr r1, _08094F10 @ =0x0201b000 - ldr r0, _08094F14 @ =0x00000266 - adds r4, r1, r0 - ldrh r2, [r4] - movs r3, 0 - ldrsh r0, [r4, r3] - cmp r0, 0x5 - bgt _08094F1C -_08094EEC: - movs r3, 0x98 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r1, r2, 24 - lsrs r1, 24 - movs r2, 0 - ldrsh r3, [r4, r2] - movs r2, 0x64 - muls r2, r3 - ldr r3, _08094F18 @ =gPlayerParty - adds r2, r3 - bl TryCreatePartyMenuMonIcon - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _08095048 - .align 2, 0 -_08094F10: .4byte 0x0201b000 -_08094F14: .4byte 0x00000266 -_08094F18: .4byte gPlayerParty -_08094F1C: - movs r0, 0 - strh r0, [r4] - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC -_08094F28: - bl LoadHeldItemIconGraphics - ldr r1, _08094F38 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F38: .4byte 0x0201b000 -_08094F3C: - movs r1, 0x98 - lsls r1, 2 - adds r0, r4, r1 - ldrb r0, [r0] - bl CreateHeldItemIcons_806DC34 - b _08094FE6 -_08094F4A: - movs r3, 0x98 - lsls r3, 2 - adds r0, r4, r3 - ldrb r0, [r0] - ldr r1, _08094F68 @ =0x00000266 - adds r5, r4, r1 - ldrb r1, [r5] - bl sub_806BD58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08094FE2 - b _08094FF8 - .align 2, 0 -_08094F68: .4byte 0x00000266 -_08094F6C: - bl PartyMenuPrintMonsLevelOrStatus - ldr r1, _08094F7C @ =0x0201b000 - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094F7C: .4byte 0x0201b000 -_08094F80: - bl PrintPartyMenuMonNicknames - ldr r1, _08094F90 @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094F90: .4byte 0x0201b000 -_08094F94: - bl PartyMenuTryPrintMonsHP - ldr r1, _08094FA4 @ =0x0201b000 - movs r2, 0x99 - lsls r2, 2 - adds r1, r2 - b _08094FEC - .align 2, 0 -_08094FA4: .4byte 0x0201b000 -_08094FA8: - bl nullsub_13 - ldr r1, _08094FB8 @ =0x0201b000 - movs r3, 0x99 - lsls r3, 2 - adds r1, r3 - b _08094FEC - .align 2, 0 -_08094FB8: .4byte 0x0201b000 -_08094FBC: - bl PartyMenuDrawHPBars - ldr r1, _08094FCC @ =0x0201b000 - movs r0, 0x99 - lsls r0, 2 - adds r1, r0 - b _08094FEC - .align 2, 0 -_08094FCC: .4byte 0x0201b000 -_08094FD0: - ldr r1, _08094FF4 @ =0x00000266 - adds r5, r4, r1 - ldrb r0, [r5] - bl sub_806B58C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08094FF8 -_08094FE2: - movs r0, 0 - strh r0, [r5] -_08094FE6: - movs r2, 0x99 - lsls r2, 2 - adds r1, r4, r2 -_08094FEC: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08095048 - .align 2, 0 -_08094FF4: .4byte 0x00000266 -_08094FF8: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _08095048 -_08095000: - ldr r0, _08095024 @ =gUnknown_02038473 - ldrb r4, [r0] - cmp r4, 0x3 - bne _0809503C - ldr r0, _08095028 @ =gScriptItemId - ldrh r0, [r0] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095034 - ldr r0, _0809502C @ =0x0201b000 - ldr r3, _08095030 @ =0x00000259 - adds r0, r3 - movs r1, 0xFF - strb r1, [r0] - b _0809503C - .align 2, 0 -_08095024: .4byte gUnknown_02038473 -_08095028: .4byte gScriptItemId -_0809502C: .4byte 0x0201b000 -_08095030: .4byte 0x00000259 -_08095034: - ldr r0, _08095040 @ =0x0201b000 - ldr r1, _08095044 @ =0x00000259 - adds r0, r1 - strb r4, [r0] -_0809503C: - movs r0, 0x1 - b _0809504A - .align 2, 0 -_08095040: .4byte 0x0201b000 -_08095044: .4byte 0x00000259 -_08095048: - movs r0, 0 -_0809504A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8094E58 - - thumb_func_start sub_8095050 -sub_8095050: @ 8095050 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809508C @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - adds r5, r0, 0 - cmp r5, 0 - bne _080950C8 - ldr r0, _08095090 @ =gUnknown_02038473 - ldrb r4, [r0] - cmp r4, 0x1 - bne _0809509C - ldr r3, _08095094 @ =gTasks - ldr r2, _08095098 @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - b _080950DE - .align 2, 0 -_0809508C: .4byte gPlayerParty -_08095090: .4byte gUnknown_02038473 -_08095094: .4byte gTasks -_08095098: .4byte 0x0201b000 -_0809509C: - ldr r3, _080950C0 @ =gTasks - ldr r2, _080950C4 @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r5, [r0, 0x12] - b _080950EC - .align 2, 0 -_080950C0: .4byte gTasks -_080950C4: .4byte 0x0201b000 -_080950C8: - ldr r3, _08095108 @ =gTasks - ldr r2, _0809510C @ =0x0201b000 - movs r0, 0x98 - lsls r0, 2 - adds r2, r0 - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r4, 0x2 -_080950DE: - strh r4, [r0, 0x10] - ldrb r1, [r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r4, [r0, 0x12] -_080950EC: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x10] - ldr r1, _08095110 @ =gUnknown_083B5FF4 - ldr r2, _08095114 @ =gUnknown_083B5FCC - movs r3, 0 - bl sub_806E750 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08095108: .4byte gTasks -_0809510C: .4byte 0x0201b000 -_08095110: .4byte gUnknown_083B5FF4 -_08095114: .4byte gUnknown_083B5FCC - thumb_func_end sub_8095050 - - thumb_func_start sub_8095118 -sub_8095118: @ 8095118 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095150 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809512C - b _08095268 -_0809512C: - ldr r0, _08095154 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08095164 - ldr r5, _08095158 @ =gScriptItemId - ldrh r0, [r5] - bl GetItemEffectType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _08095164 - ldr r0, _0809515C @ =gUnknown_03004AE4 - ldrh r1, [r5] - ldr r2, _08095160 @ =sub_80952E4 - ldr r3, [r0] - b _080951AA - .align 2, 0 -_08095150: .4byte gPaletteFade -_08095154: .4byte gUnknown_02038473 -_08095158: .4byte gScriptItemId -_0809515C: .4byte gUnknown_03004AE4 -_08095160: .4byte sub_80952E4 -_08095164: - adds r0, r4, 0 - bl sub_806BD80 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _08095178 - cmp r0, 0x2 - beq _08095214 - b _08095268 -_08095178: - ldr r0, _080951B4 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080951C8 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _080951B8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809521C - bl sub_806D5A4 - ldr r3, _080951BC @ =gUnknown_03004AE4 - ldr r0, _080951C0 @ =gScriptItemId - ldrh r1, [r0] - ldr r2, _080951C4 @ =sub_80952E4 - ldr r3, [r3] -_080951AA: - adds r0, r4, 0 - bl _call_via_r3 - b _08095268 - .align 2, 0 -_080951B4: .4byte gUnknown_02038473 -_080951B8: .4byte gPlayerParty -_080951BC: .4byte gUnknown_03004AE4 -_080951C0: .4byte gScriptItemId -_080951C4: .4byte sub_80952E4 -_080951C8: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _08095204 @ =gPlayerParty - adds r0, r1 - ldr r1, _08095208 @ =gStringVar1 - bl GetMonNickname - adds r0, r4, 0 - bl sub_806CA38 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8095050 - ldr r1, _0809520C @ =sub_8095408 - ldr r2, _08095210 @ =sub_8095118 - adds r0, r4, 0 - bl SetTaskFuncWithFollowupFunc - b _08095268 - .align 2, 0 -_08095204: .4byte gPlayerParty -_08095208: .4byte gStringVar1 -_0809520C: .4byte sub_8095408 -_08095210: .4byte sub_8095118 -_08095214: - ldr r5, _08095224 @ =gUnknown_02038473 - ldrb r0, [r5] - cmp r0, 0x1 - bne _08095228 -_0809521C: - movs r0, 0x20 - bl PlaySE - b _08095268 - .align 2, 0 -_08095224: .4byte gUnknown_02038473 -_08095228: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5] - cmp r0, 0x3 - bne _08095254 - ldr r1, _08095248 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r1, _0809524C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095250 @ =sub_80952E4 - b _08095266 - .align 2, 0 -_08095248: .4byte gUnknown_0202E8F4 -_0809524C: .4byte gTasks -_08095250: .4byte sub_80952E4 -_08095254: - ldr r1, _08095270 @ =gUnknown_0202E8F4 - movs r0, 0 - strb r0, [r1] - ldr r1, _08095274 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095278 @ =sub_809527C -_08095266: - str r1, [r0] -_08095268: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08095270: .4byte gUnknown_0202E8F4 -_08095274: .4byte gTasks -_08095278: .4byte sub_809527C - thumb_func_end sub_8095118 - - thumb_func_start sub_809527C -sub_809527C: @ 809527C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080952AC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080952B0 @ =sub_80952B4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952AC: .4byte gTasks -_080952B0: .4byte sub_80952B4 - thumb_func_end sub_809527C - - thumb_func_start sub_80952B4 -sub_80952B4: @ 80952B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080952D6 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080952E0 @ =sub_802E414 - bl SetMainCallback2 -_080952D6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080952DC: .4byte gPaletteFade -_080952E0: .4byte sub_802E414 - thumb_func_end sub_80952B4 - - thumb_func_start sub_80952E4 -sub_80952E4: @ 80952E4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080952FC @ =gUnknown_0202E8F4 - ldrb r1, [r0] - cmp r1, 0 - beq _08095300 - adds r0, r4, 0 - bl sub_809527C - b _0809531E - .align 2, 0 -_080952FC: .4byte gUnknown_0202E8F4 -_08095300: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08095328 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809532C @ =sub_8095330 - str r1, [r0] -_0809531E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095328: .4byte gTasks -_0809532C: .4byte sub_8095330 - thumb_func_end sub_80952E4 - - thumb_func_start sub_8095330 -sub_8095330: @ 8095330 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08095358 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095350 - bl sub_8094D60 - adds r0, r4, 0 - bl DestroyTask - bl sub_80A6DCC -_08095350: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08095358: .4byte gPaletteFade - thumb_func_end sub_8095330 - - thumb_func_start sub_809535C -sub_809535C: @ 809535C - push {lr} - ldr r2, _08095380 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r2, _08095384 @ =sub_8095118 - movs r0, 0x1 - movs r1, 0xFF - movs r3, 0x5 - bl sub_806AF4C - ldr r0, _08095388 @ =sub_809538C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_08095380: .4byte gPaletteFade -_08095384: .4byte sub_8095118 -_08095388: .4byte sub_809538C - thumb_func_end sub_809535C - - thumb_func_start sub_809538C -sub_809538C: @ 809538C - push {r4,r5,lr} - ldr r4, _080953D8 @ =0x0201b260 - ldr r5, _080953DC @ =gUnknown_020384F0 -_08095392: - bl sub_806B124 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080953F4 - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_806C994 - ldrb r0, [r4] - movs r1, 0 - bl sub_806BF74 - ldrb r1, [r5] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080953E0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080953E4 @ =gStringVar1 - bl GetMonNickname - ldrb r0, [r4] - ldrb r1, [r5] - bl sub_8095050 - ldrb r0, [r4] - ldr r1, _080953E8 @ =sub_8095408 - ldr r2, _080953EC @ =sub_8095118 - bl SetTaskFuncWithFollowupFunc - ldr r0, _080953F0 @ =sub_806AEDC - bl SetMainCallback2 - b _08095400 - .align 2, 0 -_080953D8: .4byte 0x0201b260 -_080953DC: .4byte gUnknown_020384F0 -_080953E0: .4byte gPlayerParty -_080953E4: .4byte gStringVar1 -_080953E8: .4byte sub_8095408 -_080953EC: .4byte sub_8095118 -_080953F0: .4byte sub_806AEDC -_080953F4: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095392 -_08095400: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_809538C - - thumb_func_start sub_8095408 -sub_8095408: @ 8095408 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - adds r4, r7, 0 - ldr r0, _0809543C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080954B8 - ldr r2, _08095440 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095444 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _080954B8 - .align 2, 0 -_0809543C: .4byte gPaletteFade -_08095440: .4byte gMain -_08095444: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0809545A - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _080954B8 -_0809545A: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080954A4 - movs r0, 0x5 - bl PlaySE - ldr r1, _08095498 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0x10] - ldr r5, _0809549C @ =gUnknown_083B5FF4 - ldr r6, _080954A0 @ =gUnknown_083B5FCC - bl GetMenuCursorPos - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_806E81C - adds r1, r0, 0 - adds r0, r7, 0 - bl _call_via_r1 - b _080954B8 - .align 2, 0 -_08095498: .4byte gTasks -_0809549C: .4byte gUnknown_083B5FF4 -_080954A0: .4byte gUnknown_083B5FCC -_080954A4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080954B8 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80958C4 -_080954B8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095408 - - thumb_func_start sub_80954C0 -sub_80954C0: @ 80954C0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080954D8 @ =gUnknown_0202E8F6 - ldrb r0, [r0] - cmp r0, 0 - bne _080954D4 - adds r0, r1, 0 - bl sub_80958C4 -_080954D4: - pop {r0} - bx r0 - .align 2, 0 -_080954D8: .4byte gUnknown_0202E8F6 - thumb_func_end sub_80954C0 - - thumb_func_start sub_80954DC -sub_80954DC: @ 80954DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0809552C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08095522 - adds r0, r4, 0 - bl DestroyTask - ldr r0, _08095530 @ =0x0201b000 - ldr r1, _08095534 @ =0x00000262 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08095538 @ =gPlayerParty - ldr r1, _0809553C @ =gPlayerPartyCount - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08095540 @ =sub_809535C - movs r1, 0x4 - str r1, [sp] - adds r1, r5, 0 - bl sub_809D8BC -_08095522: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809552C: .4byte gPaletteFade -_08095530: .4byte 0x0201b000 -_08095534: .4byte 0x00000262 -_08095538: .4byte gPlayerParty -_0809553C: .4byte gPlayerPartyCount -_08095540: .4byte sub_809535C - thumb_func_end sub_80954DC - - thumb_func_start sub_8095544 -sub_8095544: @ 8095544 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_806CA38 - ldr r1, _0809557C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095580 @ =sub_80954DC - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809557C: .4byte gTasks -_08095580: .4byte sub_80954DC - thumb_func_end sub_8095544 - - thumb_func_start sub_8095584 -sub_8095584: @ 8095584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080955F8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x10] - ldr r1, _080955FC @ =gUnknown_083B5FF4 - bl sub_806E7D0 - adds r0, r6, 0 - bl sub_806CA38 - lsls r0, 24 - lsrs r5, r0, 24 - bl IsLinkDoubleBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08095610 - cmp r5, 0x1 - beq _080955C6 - cmp r5, 0x4 - beq _080955C6 - cmp r5, 0x5 - bne _08095610 -_080955C6: - bl sub_806D5A4 - ldr r4, _08095600 @ =gStringVar1 - bl sub_8040D08 - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _08095604 @ =gStringVar4 - ldr r1, _08095608 @ =gOtherText_CantSwitchPokeWithYours - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _080955F8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809560C @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080955F8: .4byte gTasks -_080955FC: .4byte gUnknown_083B5FF4 -_08095600: .4byte gStringVar1 -_08095604: .4byte gStringVar4 -_08095608: .4byte gOtherText_CantSwitchPokeWithYours -_0809560C: .4byte sub_80954C0 -_08095610: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095654 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _0809566C - bl sub_806D5A4 - ldr r1, _08095658 @ =gStringVar1 - adds r0, r4, 0 - bl GetMonNickname - ldr r4, _0809565C @ =gStringVar4 - ldr r1, _08095660 @ =gOtherText_NoEnergyLeft - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095664 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095668 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_08095654: .4byte gPlayerParty -_08095658: .4byte gStringVar1 -_0809565C: .4byte gStringVar4 -_08095660: .4byte gOtherText_NoEnergyLeft -_08095664: .4byte gTasks -_08095668: .4byte sub_80954C0 -_0809566C: - movs r4, 0 - ldr r0, _08095678 @ =gUnknown_02024A68 - lsls r1, r6, 2 - mov r8, r1 - b _080956A8 - .align 2, 0 -_08095678: .4byte gUnknown_02024A68 -_0809567C: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080956A0 - adds r0, r5, 0 - bl sub_8094C20 - lsls r0, 24 - ldr r2, _080956EC @ =gUnknown_02024A6A - lsls r1, r4, 1 - adds r1, r2 - lsrs r0, 24 - ldrh r1, [r1] - cmp r0, r1 - bne _080956A0 - b _08095808 -_080956A0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080956F0 @ =gUnknown_02024A68 -_080956A8: - ldrb r0, [r0] - cmp r4, r0 - bcc _0809567C - movs r2, 0x64 - mov r9, r2 - mov r0, r9 - muls r0, r5 - ldr r1, _080956F4 @ =gPlayerParty - mov r10, r1 - adds r7, r0, r1 - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - beq _08095708 - bl sub_806D5A4 - ldr r4, _080956F8 @ =gStringVar4 - ldr r1, _080956FC @ =gOtherText_EGGCantBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095700 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095704 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080956EC: .4byte gUnknown_02024A6A -_080956F0: .4byte gUnknown_02024A68 -_080956F4: .4byte gPlayerParty -_080956F8: .4byte gStringVar4 -_080956FC: .4byte gOtherText_EGGCantBattle -_08095700: .4byte gTasks -_08095704: .4byte sub_80954C0 -_08095708: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _0809574C @ =0x02000000 - ldr r2, _08095750 @ =0x0001609d - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08095768 - bl sub_806D5A4 - ldr r1, _08095754 @ =gStringVar1 - adds r0, r7, 0 - bl GetMonNickname - ldr r4, _08095758 @ =gStringVar4 - ldr r1, _0809575C @ =gOtherText_AlreadySelected - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095760 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095764 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_0809574C: .4byte 0x02000000 -_08095750: .4byte 0x0001609d -_08095754: .4byte gStringVar1 -_08095758: .4byte gStringVar4 -_0809575C: .4byte gOtherText_AlreadySelected -_08095760: .4byte gTasks -_08095764: .4byte sub_80954C0 -_08095768: - ldr r0, _08095790 @ =gUnknown_02038473 - ldrb r0, [r0] - cmp r0, 0x4 - bne _080957A0 - bl sub_806D5A4 - bl sub_8040B8C - ldr r0, _08095794 @ =gStringVar4 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095798 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0809579C @ =sub_80954C0 - b _0809589A - .align 2, 0 -_08095790: .4byte gUnknown_02038473 -_08095794: .4byte gStringVar4 -_08095798: .4byte gTasks -_0809579C: .4byte sub_80954C0 -_080957A0: - cmp r0, 0x2 - bne _08095854 - ldr r0, _080957EC @ =gUnknown_02024E6C - ldrb r4, [r0] - bl sub_806D5A4 - ldr r0, _080957F0 @ =gUnknown_02024A6A - lsls r4, 1 - adds r4, r0 - ldrb r0, [r4] - bl pokemon_order_func - lsls r0, 24 - lsrs r0, 24 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r10 - ldr r1, _080957F4 @ =gStringVar1 - bl GetMonNickname - ldr r4, _080957F8 @ =gStringVar4 - ldr r1, _080957FC @ =gOtherText_CantBeSwitched - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _08095800 @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095804 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_080957EC: .4byte gUnknown_02024E6C -_080957F0: .4byte gUnknown_02024A6A -_080957F4: .4byte gStringVar1 -_080957F8: .4byte gStringVar4 -_080957FC: .4byte gOtherText_CantBeSwitched -_08095800: .4byte gTasks -_08095804: .4byte sub_80954C0 -_08095808: - bl sub_806D5A4 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809583C @ =gPlayerParty - adds r0, r1 - ldr r1, _08095840 @ =gStringVar1 - bl GetMonNickname - ldr r4, _08095844 @ =gStringVar4 - ldr r1, _08095848 @ =gOtherText_AlreadyBattle - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - movs r1, 0 - bl sub_806E834 - ldr r1, _0809584C @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08095850 @ =sub_80954C0 - b _0809589A - .align 2, 0 -_0809583C: .4byte gPlayerParty -_08095840: .4byte gStringVar1 -_08095844: .4byte gStringVar4 -_08095848: .4byte gOtherText_AlreadyBattle -_0809584C: .4byte gTasks -_08095850: .4byte sub_80954C0 -_08095854: - adds r0, r5, 0 - bl sub_8094C20 - ldr r1, _080958AC @ =gUnknown_0202E8F5 - strb r0, [r1] - ldr r1, _080958B0 @ =gUnknown_0202E8F4 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080958B4 @ =gUnknown_02024A6A - ldr r0, _080958B8 @ =gUnknown_02024E6C - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8094C98 - mov r0, r9 - muls r0, r4 - add r0, r10 - adds r1, r7, 0 - bl sub_806E6F0 - ldr r1, _080958BC @ =gTasks - mov r2, r8 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _080958C0 @ =sub_809527C -_0809589A: - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080958AC: .4byte gUnknown_0202E8F5 -_080958B0: .4byte gUnknown_0202E8F4 -_080958B4: .4byte gUnknown_02024A6A -_080958B8: .4byte gUnknown_02024E6C -_080958BC: .4byte gTasks -_080958C0: .4byte sub_809527C - thumb_func_end sub_8095584 - - thumb_func_start sub_80958C4 -sub_80958C4: @ 80958C4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8072DEC - ldr r0, _080958FC @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - ldr r1, _08095900 @ =gUnknown_083B5FF4 - bl sub_806E7D0 - ldrh r0, [r4, 0x12] - strh r0, [r4, 0x10] - movs r0, 0 - movs r1, 0 - bl sub_806D538 - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080958FC: .4byte gTasks -_08095900: .4byte gUnknown_083B5FF4 - thumb_func_end sub_80958C4 - - thumb_func_start sub_8095904 -sub_8095904: @ 8095904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp] - adds r7, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x3C] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, [sp] - bl StringLength - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0 - bne _08095988 - movs r5, 0 - cmp r5, r8 - bcs _08095A2E -_0809593E: - ldr r1, [sp] - adds r0, r1, r5 - ldrb r2, [r0] - ldr r0, _08095980 @ =0x0000fff0 - ands r0, r2 - lsls r0, 6 - movs r1, 0xF - ands r2, r1 - lsls r2, 5 - adds r0, r2 - ldr r1, _08095984 @ =gFont3LatinGlyphs - adds r4, r0, r1 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, r2 - ldr r3, [sp, 0x4] - adds r1, r7, r3 - movs r2, 0x10 - bl CpuSet - adds r7, 0x20 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _0809593E - b _08095A2E - .align 2, 0 -_08095980: .4byte 0x0000fff0 -_08095984: .4byte gFont3LatinGlyphs -_08095988: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x8] - lsls r0, r1, 28 - lsrs r0, 24 - str r0, [sp, 0xC] - mov r2, r8 - lsls r0, r2, 21 - movs r1, 0 - lsrs r0, 1 - str r0, [sp, 0x10] -_0809599E: - movs r5, 0 - ldr r3, [sp, 0x4] - adds r3, r7, r3 - str r3, [sp, 0x14] - adds r0, r1, 0x1 - str r0, [sp, 0x18] - cmp r5, r8 - bcs _08095A12 - movs r2, 0xF - mov r12, r2 - lsls r1, 9 - ldr r0, _08095A40 @ =gFont3LatinGlyphs - adds r1, r0 - mov r10, r1 -_080959BA: - ldr r3, [sp] - adds r0, r3, r5 - ldrb r1, [r0] - ldr r0, _08095A44 @ =0x0000fff0 - ands r0, r1 - lsls r0, 6 - mov r2, r12 - ands r1, r2 - lsls r1, 5 - adds r0, r1 - mov r3, r10 - adds r4, r0, r3 - movs r6, 0 - adds r5, 0x1 -_080959D6: - ldrb r0, [r4] - movs r3, 0xF0 - ands r3, r0 - mov r2, r12 - ands r2, r0 - cmp r3, 0 - bne _080959E6 - ldr r3, [sp, 0xC] -_080959E6: - cmp r2, 0 - bne _080959EC - ldr r2, [sp, 0x8] -_080959EC: - mov r0, r9 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r1, [sp, 0x40] - adds r0, r1, r0 - orrs r3, r2 - strb r3, [r0] - adds r4, 0x1 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _080959D6 - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080959BA -_08095A12: - ldr r0, [sp, 0x40] - adds r1, r7, 0 - ldr r3, [sp, 0x10] - lsrs r2, r3, 16 - bl CpuSet - ldr r7, [sp, 0x14] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x18] - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _0809599E -_08095A2E: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095A40: .4byte gFont3LatinGlyphs -_08095A44: .4byte 0x0000fff0 - thumb_func_end sub_8095904 - - thumb_func_start unref_sub_8095A48 -unref_sub_8095A48: @ 8095A48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r6, 0 -_08095A60: - movs r3, 0 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - beq _08095ACE -_08095A6C: - mov r0, sp - adds r0, r3 - adds r0, 0x8 - strb r2, [r0] - adds r4, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bhi _08095AA8 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - bne _08095A6C - cmp r3, 0 - beq _08095ACE - movs r6, 0x1 - cmp r3, 0x3 - bhi _08095AA8 - movs r2, 0 -_08095A96: - adds r0, r3, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - add r0, sp - adds r0, 0x8 - strb r2, [r0] - cmp r3, 0x3 - bls _08095A96 -_08095AA8: - mov r1, sp - adds r1, r3 - adds r1, 0x8 - movs r0, 0xFF - strb r0, [r1] - str r7, [sp] - ldr r0, [sp, 0x28] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r5, 0 - mov r2, r8 - movs r3, 0x80 - bl sub_8095904 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - cmp r6, 0 - beq _08095A60 -_08095ACE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8095A48 - - thumb_func_start sub_8095ADC -sub_8095ADC: @ 8095ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - movs r5, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_08095AF0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B20 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095B0C - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095B0C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095AF0 - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095B20: .4byte gUnknown_020300A4 - thumb_func_end sub_8095ADC - - thumb_func_start sub_8095B24 -sub_8095B24: @ 8095B24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r5, r0, 5 -_08095B36: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B54 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095B58 - lsls r0, r4, 16 - asrs r0, 16 - b _08095B66 - .align 2, 0 -_08095B54: .4byte gUnknown_020300A4 -_08095B58: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095B36 - movs r0, 0x1 - negs r0, r0 -_08095B66: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B24 - - thumb_func_start sub_8095B6C -sub_8095B6C: @ 8095B6C - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_08095B72: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095BB0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095B9A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095B9A - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095B9A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095B72 - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095BB0: .4byte gPlayerParty - thumb_func_end sub_8095B6C - - thumb_func_start sub_8095BB4 -sub_8095BB4: @ 8095BB4 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_08095BBE: - cmp r5, r7 - beq _08095BF6 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095C0C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095BF6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095BF6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095BBE - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08095C0C: .4byte gPlayerParty - thumb_func_end sub_8095BB4 - - thumb_func_start sub_8095C10 -sub_8095C10: @ 8095C10 - push {lr} - ldr r0, _08095C24 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08095C24: .4byte gSpecialVar_0x8004 - thumb_func_end sub_8095C10 - - thumb_func_start sub_8095C28 -sub_8095C28: @ 8095C28 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_08095C2E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08095C5C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095C46 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095C46: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _08095C2E - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08095C5C: .4byte gPlayerParty - thumb_func_end sub_8095C28 - - thumb_func_start unref_sub_8095C60 -unref_sub_8095C60: @ 8095C60 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _08095C7E - movs r0, 0 -_08095C76: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _08095C76 -_08095C7E: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8095C60 - - thumb_func_start sub_8095C8C -sub_8095C8C: @ 8095C8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _08095CFC - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_08095CE2: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _08095CE2 -_08095CFC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095C8C - - thumb_func_start unref_sub_8095D08 -unref_sub_8095D08: @ 8095D08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _08095DB2 - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, _08095D74 @ =0x040000d4 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_08095D4E: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _08095D78 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _08095DA6 - .align 2, 0 -_08095D74: .4byte 0x040000d4 -_08095D78: - movs r4, 0 - strh r4, [r5] - ldr r1, _08095DC4 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, _08095DC8 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _08095D78 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08095DA6: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _08095D4E -_08095DB2: - 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 -_08095DC4: .4byte 0x040000d4 -_08095DC8: .4byte 0x81000800 - thumb_func_end unref_sub_8095D08 - - thumb_func_start sub_8095DCC -sub_8095DCC: @ 8095DCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r0, r3, 24 - cmp r0, 0 - beq _08095DE8 - cmp r0, 0x2 - bne _08095DEC -_08095DE8: - movs r2, 0x1 - b _08095DEE -_08095DEC: - ldr r2, _08095E38 @ =0x0000ffff -_08095DEE: - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08095E44 - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E10: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095E3C - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E10 - b _08095E90 - .align 2, 0 -_08095E38: .4byte 0x0000ffff -_08095E3C: - adds r0, r4, 0 - b _08095E94 -_08095E40: - adds r0, r5, 0 - b _08095E94 -_08095E44: - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E5C: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095E80 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _08095E40 -_08095E80: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E5C -_08095E90: - movs r0, 0x1 - negs r0, r0 -_08095E94: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8095DCC - - thumb_func_start sub_8095EA0 -sub_8095EA0: @ 8095EA0 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_8095EA0 - - thumb_func_start sub_8095EB4 -sub_8095EB4: @ 8095EB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08095ED8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _08095ECE - b _080960F4 -_08095ECE: - lsls r0, 2 - ldr r1, _08095EDC @ =_08095EE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095ED8: .4byte gTasks -_08095EDC: .4byte _08095EE0 - .align 2, 0 -_08095EE0: - .4byte _08095EF4 - .4byte _08095F1C - .4byte _08095F30 - .4byte _08096042 - .4byte _080960DC -_08095EF4: - ldrb r0, [r4, 0xA] - bl sub_8096168 - bl MenuDisplayMessageBox - ldr r1, _08095F18 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _08095F28 - .align 2, 0 -_08095F18: .4byte gUnknown_083B600C -_08095F1C: - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - bne _08095F28 - b _080960F4 -_08095F28: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080960F4 -_08095F30: - bl ProcessMenuInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0xC] - movs r3, 0xC - ldrsh r1, [r4, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08095FC8 - cmp r1, r0 - bgt _08095F52 - subs r0, 0x1 - cmp r1, r0 - beq _08095F58 - b _08095FE8 -_08095F52: - cmp r1, 0x3 - beq _08095FC8 - b _08095FE8 -_08095F58: - ldrh r3, [r4, 0xA] - strh r3, [r4, 0xE] - ldr r2, _08095FC0 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095F76 - subs r0, r3, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _08095F76 - movs r0, 0x3 - strh r0, [r4, 0xE] -_08095F76: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08095F92 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08095F92 - movs r0, 0 - strh r0, [r4, 0xE] -_08095F92: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _08095FA2 - b _080960F4 -_08095FA2: - strh r2, [r4, 0xA] - bl sub_8095EA0 - ldr r0, _08095FC4 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _080960F4 - .align 2, 0 -_08095FC0: .4byte gMain -_08095FC4: .4byte gUnknown_083B600C -_08095FC8: - bl sub_8072DEC - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl ScriptContext2_Disable - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080960F4 -_08095FE8: - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _08096008 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08096008 - bl sub_8095EA0 - ldr r0, _08096004 @ =gPCText_PartyFull2 - b _08096022 - .align 2, 0 -_08096004: .4byte gPCText_PartyFull2 -_08096008: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08096034 - bl sub_8095C28 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08096034 - bl sub_8095EA0 - ldr r0, _08096030 @ =gPCText_OnlyOne -_08096022: - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_08096030: .4byte gPCText_OnlyOne -_08096034: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080960F4 -_08096042: - ldr r0, _08096088 @ =gMain - ldrh r1, [r0, 0x2E] - movs r3, 0x3 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080960B8 - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08096090 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0809606A - strh r3, [r4, 0xA] -_0809606A: - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl sub_8095EA0 - ldr r1, _0809608C @ =gUnknown_083B600C - movs r3, 0xA - ldrsh r0, [r4, r3] - b _080960C2 - .align 2, 0 -_08096088: .4byte gMain -_0809608C: .4byte gUnknown_083B600C -_08096090: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080960F4 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080960A8 - strh r2, [r4, 0xA] -_080960A8: - movs r0, 0x1 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] -_080960B8: - bl sub_8095EA0 - ldr r1, _080960D8 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] -_080960C2: - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_080960D8: .4byte gUnknown_083B600C -_080960DC: - ldr r0, _080960FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080960F4 - ldrb r0, [r4, 0xC] - bl task_intro_29 - adds r0, r5, 0 - bl DestroyTask -_080960F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080960FC: .4byte gPaletteFade - thumb_func_end sub_8095EB4 - - thumb_func_start sub_8096100 -sub_8096100: @ 8096100 - push {lr} - ldr r0, _08096128 @ =sub_8095EB4 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809612C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08096128: .4byte sub_8095EB4 -_0809612C: .4byte gTasks - thumb_func_end sub_8096100 - - thumb_func_start sub_8096130 -sub_8096130: @ 8096130 - push {lr} - ldr r0, _0809615C @ =sub_8095EB4 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08096160 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _08096164 @ =gUnknown_02038474 - ldrb r0, [r0] - strh r0, [r1, 0xA] - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0809615C: .4byte sub_8095EB4 -_08096160: .4byte gTasks -_08096164: .4byte gUnknown_02038474 - thumb_func_end sub_8096130 - - thumb_func_start sub_8096168 -sub_8096168: @ 8096168 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080961A4 @ =gUnknown_083B600C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - str r4, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080961A4: .4byte gUnknown_083B600C - thumb_func_end sub_8096168 - - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 - push {lr} - ldr r1, _080961C4 @ =gUnknown_02038474 - ldr r0, _080961C8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - strb r0, [r1] - ldr r1, _080961CC @ =gUnknown_0300485C - ldr r0, _080961D0 @ =sub_8096130 - str r0, [r1] - ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080961C4: .4byte gUnknown_02038474 -_080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gUnknown_0300485C -_080961D0: .4byte sub_8096130 -_080961D4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80961A8 - - thumb_func_start sub_80961D8 -sub_80961D8: @ 80961D8 - push {r4-r7,lr} - ldr r1, _08096258 @ =gPokemonStorage - movs r0, 0 - strb r0, [r1] - movs r5, 0 - adds r7, r1, 0x4 -_080961E4: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_080961F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r7 - adds r0, r6, r0 - bl ZeroBoxMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080961F0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080961E4 - movs r5, 0 -_08096214: - lsls r0, r5, 3 - adds r0, r5 - ldr r6, _0809625C @ =gUnknown_020383E4 - adds r0, r6 - ldr r1, _08096260 @ =gPCText_BOX - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _08096214 - movs r5, 0 - adds r3, r6, 0 - adds r3, 0x7E - movs r2, 0x3 -_0809623E: - adds r0, r5, r3 - adds r1, r5, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0809623E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096258: .4byte gPokemonStorage -_0809625C: .4byte gUnknown_020383E4 -_08096260: .4byte gPCText_BOX - thumb_func_end sub_80961D8 - - thumb_func_start sub_8096264 -sub_8096264: @ 8096264 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x20 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080962F4 @ =gBoxSelectionPopupPalette - str r0, [sp, 0x18] - ldr r1, _080962F8 @ =0xffff0000 - add r5, sp, 0x18 - ldr r0, [r5, 0x4] - ands r0, r1 - orrs r0, r6 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r4, [r1, 0x6] - ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r4, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r5, 0 - bl LoadSpritePalette - mov r0, sp - bl LoadSpriteSheets - ldr r0, _08096304 @ =gUnknown_02038478 - mov r1, r8 - str r1, [r0] - movs r0, 0x90 - lsls r0, 2 - add r0, r8 - strh r4, [r0] - ldr r0, _08096308 @ =0x00000242 - add r0, r8 - strh r6, [r0] - ldr r0, _0809630C @ =0x0000023e - add r8, r0 - mov r0, r9 - mov r1, r8 - strb r0, [r1] - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080962F4: .4byte gBoxSelectionPopupPalette -_080962F8: .4byte 0xffff0000 -_080962FC: .4byte gBoxSelectionPopupCenterTiles -_08096300: .4byte gBoxSelectionPopupSidesTiles -_08096304: .4byte gUnknown_02038478 -_08096308: .4byte 0x00000242 -_0809630C: .4byte 0x0000023e - thumb_func_end sub_8096264 - - thumb_func_start sub_8096310 -sub_8096310: @ 8096310 - push {r4,r5,lr} - ldr r4, _08096344 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r1, _08096348 @ =0x00000242 - adds r0, r1 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - ldr r0, [r4] - movs r5, 0x90 - lsls r5, 2 - adds r0, r5 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096344: .4byte gUnknown_02038478 -_08096348: .4byte 0x00000242 - thumb_func_end sub_8096310 - - thumb_func_start sub_809634C -sub_809634C: @ 809634C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80963D0 - pop {r0} - bx r0 - thumb_func_end sub_809634C - - thumb_func_start sub_809635C -sub_809635C: @ 809635C - push {lr} - bl sub_809658C - pop {r0} - bx r0 - thumb_func_end sub_809635C - - thumb_func_start sub_8096368 -sub_8096368: @ 8096368 - push {lr} - ldr r0, _08096380 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08096384 - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _080963CC - .align 2, 0 -_08096380: .4byte gMain -_08096384: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080963A4 - movs r0, 0x5 - bl PlaySE - ldr r0, _080963A0 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _080963CC - .align 2, 0 -_080963A0: .4byte gUnknown_02038478 -_080963A4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080963B8 - movs r0, 0x5 - bl PlaySE - bl sub_809662C - b _080963CA -_080963B8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080963CA - movs r0, 0x5 - bl PlaySE - bl sub_80965F8 -_080963CA: - movs r0, 0xC8 -_080963CC: - pop {r1} - bx r1 - thumb_func_end sub_8096368 - - thumb_func_start sub_80963D0 -sub_80963D0: @ 80963D0 - push {r4-r6,lr} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, _08096564 @ =0xffff0fff - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r1, sp, 0x1C - movs r2, 0 - strh r2, [r1] - mov r0, sp - adds r0, 0x1E - strh r2, [r0] - str r4, [sp, 0x20] - ldr r0, _08096568 @ =gDummySpriteAnimTable - str r0, [sp, 0x24] - str r2, [sp, 0x28] - ldr r0, _0809656C @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x2C] - ldr r0, _08096570 @ =SpriteCallbackDummy - str r0, [sp, 0x30] - add r0, sp, 0x4 - movs r2, 0x18 - bl memcpy - ldr r6, _08096574 @ =gUnknown_02038478 - ldr r0, [r6] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _08096578 @ =0x00000242 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08096580 @ =gSpriteAnimTable_83B604C - str r0, [sp, 0xC] - movs r4, 0 -_08096488: - ldr r0, [r6] - ldr r1, _08096584 @ =0x0000023e - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _080964C2 - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_080964C2: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080964E6 - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080964E6: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08096488 - movs r4, 0 - ldr r5, _08096574 @ =gUnknown_02038478 -_08096504: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, _08096584 @ =0x0000023e - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_809A9A0 - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _0809654C - movs r1, 0x1 - cmp r4, 0 - bne _08096544 - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_08096544: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _08096588 @ =sub_8096784 - str r0, [r1, 0x1C] -_0809654C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08096504 - bl sub_809665C - add sp, 0x3C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096564: .4byte 0xffff0fff -_08096568: .4byte gDummySpriteAnimTable -_0809656C: .4byte gDummySpriteAffineAnimTable -_08096570: .4byte SpriteCallbackDummy -_08096574: .4byte gUnknown_02038478 -_08096578: .4byte 0x00000242 -_0809657C: .4byte gSprites -_08096580: .4byte gSpriteAnimTable_83B604C -_08096584: .4byte 0x0000023e -_08096588: .4byte sub_8096784 - thumb_func_end sub_80963D0 - - thumb_func_start sub_809658C -sub_809658C: @ 809658C - push {r4-r6,lr} - ldr r4, _080965F4 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080965A2 - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080965A2: - movs r5, 0 - adds r6, r4, 0 -_080965A6: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080965C2 - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080965C2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080965A6 - movs r5, 0 -_080965CE: - ldr r0, _080965F4 @ =gUnknown_02038478 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080965E2 - bl DestroySprite -_080965E2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080965CE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080965F4: .4byte gUnknown_02038478 - thumb_func_end sub_809658C - - thumb_func_start sub_80965F8 -sub_80965F8: @ 80965F8 - push {lr} - ldr r2, _08096628 @ =gUnknown_02038478 - ldr r1, [r2] - movs r0, 0x8F - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _0809661E - ldr r0, [r2] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0809661E: - bl sub_809665C - pop {r0} - bx r0 - .align 2, 0 -_08096628: .4byte gUnknown_02038478 - thumb_func_end sub_80965F8 - - thumb_func_start sub_809662C -sub_809662C: @ 809662C - push {lr} - ldr r0, _08096644 @ =gUnknown_02038478 - ldr r2, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08096648 - subs r1, r0, 0x1 - b _0809664A - .align 2, 0 -_08096644: .4byte gUnknown_02038478 -_08096648: - movs r1, 0xD -_0809664A: - movs r3, 0x8F - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_809665C - pop {r0} - bx r0 - thumb_func_end sub_809662C - - thumb_func_start sub_809665C -sub_809665C: @ 809665C - push {r4-r7,lr} - ldr r5, _080966B4 @ =gUnknown_02038478 - ldr r0, [r5] - movs r4, 0x8F - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl sub_8095ADC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080966B8 @ =gStringVar1 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - movs r0, 0xF - strb r0, [r2, 0x2] - movs r0, 0x1 - strb r0, [r2, 0x3] - movs r0, 0xE - strb r0, [r2, 0x4] - adds r2, 0x5 - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - ldr r0, _080966BC @ =gUnknown_020383E4 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFE - strb r0, [r2] - strb r6, [r2, 0x1] - movs r0, 0x11 - strb r0, [r2, 0x2] - cmp r7, 0x9 - bhi _080966C0 - movs r0, 0x28 - b _080966C2 - .align 2, 0 -_080966B4: .4byte gUnknown_02038478 -_080966B8: .4byte gStringVar1 -_080966BC: .4byte gUnknown_020383E4 -_080966C0: - movs r0, 0x22 -_080966C2: - strb r0, [r2, 0x3] - adds r2, 0x4 - adds r0, r2, 0 - adds r1, r7, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xA4 - strb r0, [r2, 0x1] - movs r0, 0xA1 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080966F0 @ =gStringVar1 - movs r1, 0 - movs r2, 0x1 - bl sub_80966F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080966F0: .4byte gStringVar1 - thumb_func_end sub_809665C - - thumb_func_start sub_80966F4 -sub_80966F4: @ 80966F4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08096764 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 11 - lsls r4, 8 - ldr r2, _08096768 @ =0x06010000 - adds r4, r2 - adds r6, r4 - lsls r5, 5 - adds r6, r5 - ldr r0, _0809676C @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - ldr r2, _08096770 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08096774 @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - ldr r0, _08096778 @ =0x81000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809677C @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - mov r2, r8 - bl sub_8004E3C - str r5, [r4] - str r6, [r4, 0x4] - ldr r0, _08096780 @ =0x80000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096764: .4byte gUnknown_02038478 -_08096768: .4byte 0x06010000 -_0809676C: .4byte gUnknown_083B6DB8 -_08096770: .4byte 0x00001111 -_08096774: .4byte 0x040000d4 -_08096778: .4byte 0x81000200 -_0809677C: .4byte gWindowConfig_81E6D38 -_08096780: .4byte 0x80000200 - thumb_func_end sub_80966F4 - - thumb_func_start sub_8096784 -sub_8096784: @ 8096784 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080967B4 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080967B4 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_080967B4: - pop {r0} - bx r0 - thumb_func_end sub_8096784 - - thumb_func_start task_intro_29 -task_intro_29: @ 80967B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080967D0 @ =gUnknown_0203847D - strb r0, [r1] - ldr r1, _080967D4 @ =0x02000000 - strb r0, [r1, 0x5] - ldr r0, _080967D8 @ =sub_8096884 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080967D0: .4byte gUnknown_0203847D -_080967D4: .4byte 0x02000000 -_080967D8: .4byte sub_8096884 - thumb_func_end task_intro_29 - - thumb_func_start sub_80967DC -sub_80967DC: @ 80967DC - ldr r0, _08096800 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08096800: .4byte REG_BG0HOFS - thumb_func_end sub_80967DC - - thumb_func_start sub_8096804 -sub_8096804: @ 8096804 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ResetTasks - ldr r1, _0809683C @ =gReservedSpriteTileCount - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08096840 @ =0x02000020 - adds r1, r0, 0 - adds r1, 0x8 - movs r2, 0x8 - bl sub_809CFDC - ldr r1, _08096844 @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809683C: .4byte gReservedSpriteTileCount -_08096840: .4byte 0x02000020 -_08096844: .4byte gKeyRepeatStartDelay - thumb_func_end sub_8096804 - - thumb_func_start sub_8096848 -sub_8096848: @ 8096848 - push {lr} - bl sub_809B0D4 - ldr r2, _08096868 @ =gUnknown_0203847C - movs r1, 0 - ldr r0, _0809686C @ =0x02000000 - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809685C - movs r1, 0x1 -_0809685C: - strb r1, [r2] - ldr r1, _08096870 @ =gUnknown_0203847E - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08096868: .4byte gUnknown_0203847C -_0809686C: .4byte 0x02000000 -_08096870: .4byte gUnknown_0203847E - thumb_func_end sub_8096848 - - thumb_func_start sub_8096874 -sub_8096874: @ 8096874 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_8096874 - - thumb_func_start sub_8096884 -sub_8096884: @ 8096884 - push {lr} - ldr r0, _080968A0 @ =gMain - ldr r1, _080968A4 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08096894 - b _08096986 -_08096894: - lsls r0, 2 - ldr r1, _080968A8 @ =_080968AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080968A0: .4byte gMain -_080968A4: .4byte 0x0000043c -_080968A8: .4byte _080968AC - .align 2, 0 -_080968AC: - .4byte _080968D4 - .4byte _080968E8 - .4byte _080968F4 - .4byte _08096904 - .4byte _0809690E - .4byte _08096918 - .4byte _0809691E - .4byte _08096924 - .4byte _0809692A - .4byte _08096964 -_080968D4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl sub_8096804 - b _0809697A -_080968E8: - ldr r0, _080968F0 @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _0809697A - .align 2, 0 -_080968F0: .4byte gWindowConfig_81E6D00 -_080968F4: - ldr r0, _08096900 @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _0809697A - .align 2, 0 -_08096900: .4byte gWindowConfig_81E6D00 -_08096904: - bl sub_80967DC - bl sub_8096848 - b _0809697A -_0809690E: - bl sub_8098B48 - bl sub_809AA24 - b _0809697A -_08096918: - bl sub_8097DE0 - b _0809697A -_0809691E: - bl sub_8097E70 - b _0809697A -_08096924: - bl sub_8098400 - b _0809697A -_0809692A: - ldr r0, _08096950 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096954 @ =0x02000000 - ldr r1, _08096958 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _0809695C @ =0x000012be - adds r2, r1 - ldr r1, _08096960 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _0809697A - .align 2, 0 -_08096950: .4byte gPokemonStorage -_08096954: .4byte 0x02000000 -_08096958: .4byte 0x000012bc -_0809695C: .4byte 0x000012be -_08096960: .4byte 0x0000dacb -_08096964: - bl sub_8096874 - ldr r0, _0809698C @ =sub_8096BF0 - bl sub_8096BE0 - ldr r0, _08096990 @ =sub_8096B38 - bl SetMainCallback2 - ldr r0, _08096994 @ =sub_8096AFC - bl SetVBlankCallback -_0809697A: - ldr r1, _08096998 @ =gMain - ldr r0, _0809699C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096986: - pop {r0} - bx r0 - .align 2, 0 -_0809698C: .4byte sub_8096BF0 -_08096990: .4byte sub_8096B38 -_08096994: .4byte sub_8096AFC -_08096998: .4byte gMain -_0809699C: .4byte 0x0000043c - thumb_func_end sub_8096884 - - thumb_func_start sub_80969A0 -sub_80969A0: @ 80969A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080969BC @ =gMain - ldr r1, _080969C0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _080969B2 - b _08096AE4 -_080969B2: - lsls r0, 2 - ldr r1, _080969C4 @ =_080969C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080969BC: .4byte gMain -_080969C0: .4byte 0x0000043c -_080969C4: .4byte _080969C8 - .align 2, 0 -_080969C8: - .4byte _080969F4 - .4byte _08096A34 - .4byte _08096A40 - .4byte _08096A50 - .4byte _08096A56 - .4byte _08096A60 - .4byte _08096A66 - .4byte _08096A6C - .4byte _08096A72 - .4byte _08096AAC - .4byte _08096AC8 -_080969F4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _08096A28 @ =0x02000000 - ldr r0, _08096A2C @ =gUnknown_0203847D - ldrb r0, [r0] - strb r0, [r1, 0x5] - bl sub_8096804 - ldr r4, _08096A30 @ =gUnknown_0203847F - ldrb r0, [r4] - cmp r0, 0x1 - bne _08096A1A - bl sub_809BBC0 -_08096A1A: - ldrb r0, [r4] - cmp r0, 0 - bne _08096AD8 - bl sub_809BD14 - b _08096AD8 - .align 2, 0 -_08096A28: .4byte 0x02000000 -_08096A2C: .4byte gUnknown_0203847D -_08096A30: .4byte gUnknown_0203847F -_08096A34: - ldr r0, _08096A3C @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _08096AD8 - .align 2, 0 -_08096A3C: .4byte gWindowConfig_81E6D00 -_08096A40: - ldr r0, _08096A4C @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _08096AD8 - .align 2, 0 -_08096A4C: .4byte gWindowConfig_81E6D00 -_08096A50: - bl sub_80967DC - b _08096AD8 -_08096A56: - bl sub_8098B48 - bl sub_809AA98 - b _08096AD8 -_08096A60: - bl sub_8097DE0 - b _08096AD8 -_08096A66: - bl sub_8097E70 - b _08096AD8 -_08096A6C: - bl sub_8098400 - b _08096AD8 -_08096A72: - ldr r0, _08096A98 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096A9C @ =0x02000000 - ldr r1, _08096AA0 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _08096AA4 @ =0x000012be - adds r2, r1 - ldr r1, _08096AA8 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _08096AD8 - .align 2, 0 -_08096A98: .4byte gPokemonStorage -_08096A9C: .4byte 0x02000000 -_08096AA0: .4byte 0x000012bc -_08096AA4: .4byte 0x000012be -_08096AA8: .4byte 0x0000dacb -_08096AAC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08096AC4 @ =sub_8096AFC - bl SetVBlankCallback - b _08096AD8 - .align 2, 0 -_08096AC4: .4byte sub_8096AFC -_08096AC8: - bl sub_8096874 - ldr r0, _08096AEC @ =sub_8096C68 - bl sub_8096BE0 - ldr r0, _08096AF0 @ =sub_8096B38 - bl SetMainCallback2 -_08096AD8: - ldr r1, _08096AF4 @ =gMain - ldr r0, _08096AF8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096AE4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096AEC: .4byte sub_8096C68 -_08096AF0: .4byte sub_8096B38 -_08096AF4: .4byte gMain -_08096AF8: .4byte 0x0000043c - thumb_func_end sub_80969A0 - - thumb_func_start sub_8096AFC -sub_8096AFC: @ 8096AFC - push {lr} - ldr r2, _08096B2C @ =REG_BG2HOFS - ldr r1, _08096B30 @ =0x02000000 - ldr r3, _08096B34 @ =0x000008b4 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x4 - ldrh r0, [r1, 0xA] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x8] - strh r0, [r2] - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_809CFF0 - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B2C: .4byte REG_BG2HOFS -_08096B30: .4byte 0x02000000 -_08096B34: .4byte 0x000008b4 - thumb_func_end sub_8096AFC - - thumb_func_start sub_8096B38 -sub_8096B38: @ 8096B38 - push {lr} - ldr r0, _08096B58 @ =0x02000000 - ldr r0, [r0] - bl _call_via_r0 - bl sub_8097E44 - bl sub_8098734 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B58: .4byte 0x02000000 - thumb_func_end sub_8096B38 - - thumb_func_start sub_8096B5C -sub_8096B5C: @ 8096B5C - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08096B70 @ =0x02000000 - ldrb r0, [r4, 0x6] - cmp r0, 0 - beq _08096B74 - cmp r0, 0x1 - beq _08096BAC - b _08096BCC - .align 2, 0 -_08096B70: .4byte 0x02000000 -_08096B74: - ldr r1, _08096B98 @ =0x00002690 - adds r0, r4, r1 - ldr r0, [r0] - ldr r2, _08096B9C @ =0x0000268d - adds r1, r4, r2 - ldrb r1, [r1] - ldr r3, _08096BA0 @ =0x0000268c - adds r2, r4, r3 - ldrb r2, [r2] - ldr r3, _08096BA4 @ =sub_80969A0 - ldr r5, _08096BA8 @ =0x0000268e - adds r4, r5 - ldrb r4, [r4] - str r4, [sp] - bl sub_809D8BC - b _08096BCC - .align 2, 0 -_08096B98: .4byte 0x00002690 -_08096B9C: .4byte 0x0000268d -_08096BA0: .4byte 0x0000268c -_08096BA4: .4byte sub_80969A0 -_08096BA8: .4byte 0x0000268e -_08096BAC: - ldr r0, _08096BD4 @ =gPokemonStorage - ldrb r2, [r0] - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _08096BD8 @ =0x00008344 - adds r0, r2 - adds r1, r0 - movs r0, 0 - str r0, [sp] - ldr r0, _08096BDC @ =sub_80969A0 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08096BCC: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096BD4: .4byte gPokemonStorage -_08096BD8: .4byte 0x00008344 -_08096BDC: .4byte sub_80969A0 - thumb_func_end sub_8096B5C - - thumb_func_start sub_8096BE0 -sub_8096BE0: @ 8096BE0 - ldr r1, _08096BEC @ =0x02000000 - str r0, [r1] - movs r0, 0 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_08096BEC: .4byte 0x02000000 - thumb_func_end sub_8096BE0 - - thumb_func_start sub_8096BF0 -sub_8096BF0: @ 8096BF0 - push {r4,lr} - ldr r4, _08096C04 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _08096C16 - cmp r0, 0x1 - bgt _08096C08 - cmp r0, 0 - beq _08096C0E - b _08096C5C - .align 2, 0 -_08096C04: .4byte 0x02000000 -_08096C08: - cmp r0, 0x2 - beq _08096C4C - b _08096C5C -_08096C0E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - b _08096C38 -_08096C16: - movs r0, 0x2 - bl PlaySE - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08096C48 @ =0x0000dad0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5CD4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 -_08096C38: - movs r2, 0 - bl BlendPalettes - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096C5C - .align 2, 0 -_08096C48: .4byte 0x0000dad0 -_08096C4C: - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08096C5C - ldr r0, _08096C64 @ =sub_8096C84 - bl sub_8096BE0 -_08096C5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096C64: .4byte sub_8096C84 - thumb_func_end sub_8096BF0 - - thumb_func_start sub_8096C68 -sub_8096C68: @ 8096C68 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08096C7A - ldr r0, _08096C80 @ =sub_8096C84 - bl sub_8096BE0 -_08096C7A: - pop {r0} - bx r0 - .align 2, 0 -_08096C80: .4byte sub_8096C84 - thumb_func_end sub_8096C68 - - thumb_func_start sub_8096C84 -sub_8096C84: @ 8096C84 - push {r4,lr} - ldr r0, _08096C9C @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _08096C90 - b _08096FBA -_08096C90: - lsls r0, 2 - ldr r1, _08096CA0 @ =_08096CA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096C9C: .4byte 0x02000000 -_08096CA0: .4byte _08096CA4 - .align 2, 0 -_08096CA4: - .4byte _08096CC0 - .4byte _08096EE0 - .4byte _08096F1C - .4byte _08096F60 - .4byte _08096F80 - .4byte _08096F8A - .4byte _08096FA4 -_08096CC0: - bl sub_809CA40 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0xF - bls _08096CD0 - b _08096FBA -_08096CD0: - lsls r0, 2 - ldr r1, _08096CDC @ =_08096CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096CDC: .4byte _08096CE0 - .align 2, 0 -_08096CE0: - .4byte _08096D20 - .4byte _08096FBA - .4byte _08096FBA - .4byte _08096D94 - .4byte _08096D34 - .4byte _08096D5C - .4byte _08096DAC - .4byte _08096DC0 - .4byte _08096DD4 - .4byte _08096DFC - .4byte _08096E30 - .4byte _08096EB8 - .4byte _08096E70 - .4byte _08096E8C - .4byte _08096ECC - .4byte _08096DA0 -_08096D20: - movs r0, 0x5 - bl PlaySE - ldr r1, _08096D30 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096D30: .4byte 0x02000000 -_08096D34: - ldr r4, _08096D48 @ =0x02000000 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D4C - movs r0, 0x10 - bl sub_8098898 - movs r0, 0x3 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096D48: .4byte 0x02000000 -_08096D4C: - bl sub_809B0D4 - ldr r0, _08096D58 @ =sub_8096FC8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D58: .4byte sub_8096FC8 -_08096D5C: - ldr r4, _08096D88 @ =0x02000000 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D66 - b _08096FBA -_08096D66: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08096D80 - ldr r1, _08096D8C @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08096E4C -_08096D80: - ldr r0, _08096D90 @ =sub_8097004 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D88: .4byte 0x02000000 -_08096D8C: .4byte 0x000011f2 -_08096D90: .4byte sub_8097004 -_08096D94: - ldr r0, _08096D9C @ =sub_8097BA0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D9C: .4byte sub_8097BA0 -_08096DA0: - ldr r0, _08096DA8 @ =sub_8097CC0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DA8: .4byte sub_8097CC0 -_08096DAC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DBC @ =sub_809789C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DBC: .4byte sub_809789C -_08096DC0: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DD0 @ =sub_8097078 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DD0: .4byte sub_8097078 -_08096DD4: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096DF0 @ =0x02000000 - ldr r0, _08096DF4 @ =gPokemonStorage - ldrb r0, [r0] - adds r0, 0x1 - ldr r2, _08096DF8 @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0xD - ble _08096E18 - movs r0, 0 - b _08096E16 - .align 2, 0 -_08096DF0: .4byte 0x02000000 -_08096DF4: .4byte gPokemonStorage -_08096DF8: .4byte 0x000008b2 -_08096DFC: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096E24 @ =0x02000000 - ldr r0, _08096E28 @ =gPokemonStorage - ldrb r0, [r0] - subs r0, 0x1 - ldr r2, _08096E2C @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0 - bge _08096E18 - movs r0, 0xD -_08096E16: - strh r0, [r1] -_08096E18: - ldrb r0, [r1] - bl sub_8099C70 - movs r0, 0x2 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E24: .4byte 0x02000000 -_08096E28: .4byte gPokemonStorage -_08096E2C: .4byte 0x000008b2 -_08096E30: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - ldr r4, _08096E54 @ =0x02000000 - ldr r1, _08096E58 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _08096E5C -_08096E4C: - movs r0, 0x5 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E54: .4byte 0x02000000 -_08096E58: .4byte 0x000011f2 -_08096E5C: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E6C @ =sub_809746C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E6C: .4byte sub_809746C -_08096E70: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E88 @ =sub_80972A8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E88: .4byte sub_80972A8 -_08096E8C: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - bne _08096EA4 -_08096E96: - ldr r1, _08096EA0 @ =0x02000000 - movs r0, 0x4 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096EA0: .4byte 0x02000000 -_08096EA4: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EB4 @ =c3_0808DC50 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EB4: .4byte c3_0808DC50 -_08096EB8: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EC8 @ =sub_8097390 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EC8: .4byte sub_8097390 -_08096ECC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EDC @ =sub_80972FC - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EDC: .4byte sub_80972FC -_08096EE0: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - bl sub_809BF48 - lsls r0, 24 - cmp r0, 0 - beq _08096EFA - bl sub_80986E8 - b _08096EFE -_08096EFA: - bl sub_8098710 -_08096EFE: - ldr r4, _08096F14 @ =0x02000000 - ldr r2, _08096F18 @ =0x000011f6 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08096F0E - bl BoxSetMosaic -_08096F0E: - movs r0, 0 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096F14: .4byte 0x02000000 -_08096F18: .4byte 0x000011f6 -_08096F1C: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - ldr r1, _08096F50 @ =gPokemonStorage - ldr r0, _08096F54 @ =0x02000000 - ldr r2, _08096F58 @ =0x000008b2 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08096F5C @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - bne _08096F70 - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - bne _08096F70 - bl sub_809B440 - bl BoxSetMosaic - b _08096F70 - .align 2, 0 -_08096F50: .4byte gPokemonStorage -_08096F54: .4byte 0x02000000 -_08096F58: .4byte 0x000008b2 -_08096F5C: .4byte gUnknown_0203847C -_08096F60: - ldr r0, _08096F78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C -_08096F70: - ldr r1, _08096F7C @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096F78: .4byte gMain -_08096F7C: .4byte 0x02000000 -_08096F80: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08096F92 -_08096F8A: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08096F92: - bl sub_8098898 - ldr r1, _08096FA0 @ =0x02000000 - movs r0, 0x6 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096FA0: .4byte 0x02000000 -_08096FA4: - ldr r0, _08096FC0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C - ldr r0, _08096FC4 @ =sub_8096C84 - bl sub_8096BE0 -_08096FBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096FC0: .4byte gMain -_08096FC4: .4byte sub_8096C84 - thumb_func_end sub_8096C84 - - thumb_func_start sub_8096FC8 -sub_8096FC8: @ 8096FC8 - push {r4,lr} - ldr r4, _08096FD8 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08096FDC - cmp r0, 0x1 - beq _08096FE8 - b _08096FF8 - .align 2, 0 -_08096FD8: .4byte 0x02000000 -_08096FDC: - bl sub_809880C - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096FF8 -_08096FE8: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08096FF8 - ldr r0, _08097000 @ =sub_8096C84 - bl sub_8096BE0 -_08096FF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097000: .4byte sub_8096C84 - thumb_func_end sub_8096FC8 - - thumb_func_start sub_8097004 -sub_8097004: @ 8097004 - push {r4,lr} - ldr r4, _08097018 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _0809702E - cmp r0, 0x1 - bgt _0809701C - cmp r0, 0 - beq _08097022 - b _0809706A - .align 2, 0 -_08097018: .4byte 0x02000000 -_0809701C: - cmp r0, 0x2 - beq _0809704C - b _0809706A -_08097022: - movs r0, 0x5 - bl PlaySE - bl add_to_c3_somehow - b _08097044 -_0809702E: - bl sub_80985CC - lsls r0, 24 - cmp r0, 0 - bne _0809706A - bl sub_809B0F4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809B0C0 -_08097044: - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809706A -_0809704C: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _0809706A - ldr r1, _08097070 @ =0x000011f6 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097064 - bl BoxSetMosaic -_08097064: - ldr r0, _08097074 @ =sub_8096C84 - bl sub_8096BE0 -_0809706A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097070: .4byte 0x000011f6 -_08097074: .4byte sub_8096C84 - thumb_func_end sub_8097004 - - thumb_func_start sub_8097078 -sub_8097078: @ 8097078 - push {r4,lr} - ldr r0, _08097090 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bls _08097084 - b _0809729A -_08097084: - lsls r0, 2 - ldr r1, _08097094 @ =_08097098 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097090: .4byte 0x02000000 -_08097094: .4byte _08097098 - .align 2, 0 -_08097098: - .4byte _080970B0 - .4byte _080970C8 - .4byte _08097258 - .4byte _0809726C - .4byte _08097262 - .4byte _08097284 -_080970B0: - movs r0, 0x4 - bl sub_8098898 - bl sub_809CE84 - ldr r1, _080970C4 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080970C4: .4byte 0x02000000 -_080970C8: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bls _080970D8 - b _0809729A -_080970D8: - lsls r0, 2 - ldr r1, _080970E4 @ =_080970E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080970E4: .4byte _080970E8 - .align 2, 0 -_080970E8: - .4byte _08097110 - .4byte _08097110 - .4byte _08097190 - .4byte _08097178 - .4byte _08097120 - .4byte _08097158 - .4byte _08097140 - .4byte _08097230 - .4byte _080971CC - .4byte _08097244 -_08097110: - bl sub_8098A5C - ldr r0, _0809711C @ =sub_8096C84 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809711C: .4byte sub_8096C84 -_08097120: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809713C @ =sub_80972A8 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809713C: .4byte sub_80972A8 -_08097140: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097154 @ =sub_80972FC - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097154: .4byte sub_80972FC -_08097158: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - beq _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097174 @ =c3_0808DC50 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097174: .4byte c3_0808DC50 -_08097178: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809718C @ =sub_8097390 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809718C: .4byte sub_8097390 -_08097190: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - ldr r4, _080971C0 @ =0x02000000 - ldr r1, _080971C4 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - bne _08097210 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _080971C8 @ =sub_809746C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_080971C0: .4byte 0x02000000 -_080971C4: .4byte 0x000011f2 -_080971C8: .4byte sub_809746C -_080971CC: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - beq _080971E4 -_080971D6: - ldr r1, _080971E0 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080971E0: .4byte 0x02000000 -_080971E4: - ldr r4, _080971F8 @ =0x02000000 - ldr r1, _080971FC @ =0x000011f9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097200 - movs r0, 0x4 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_080971F8: .4byte 0x02000000 -_080971FC: .4byte 0x000011f9 -_08097200: - ldr r1, _08097218 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _0809721C -_08097210: - movs r0, 0x3 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_08097218: .4byte 0x000011f2 -_0809721C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809722C @ =sub_8097594 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809722C: .4byte sub_8097594 -_08097230: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097240 @ =sub_8097788 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097240: .4byte sub_8097788 -_08097244: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097254 @ =sub_80977E4 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097254: .4byte sub_80977E4 -_08097258: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08097274 -_08097262: - movs r0, 0x20 - bl PlaySE - movs r0, 0x11 - b _08097274 -_0809726C: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08097274: - bl sub_8098898 - ldr r1, _08097280 @ =0x02000000 - movs r0, 0x5 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_08097280: .4byte 0x02000000 -_08097284: - ldr r0, _080972A0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0809729A - bl sub_8098A5C - ldr r0, _080972A4 @ =sub_8096C84 - bl sub_8096BE0 -_0809729A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972A0: .4byte gMain -_080972A4: .4byte sub_8096C84 - thumb_func_end sub_8097078 - - thumb_func_start sub_80972A8 -sub_80972A8: @ 80972A8 - push {r4,lr} - ldr r4, _080972B8 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080972BC - cmp r0, 0x1 - beq _080972CA - b _080972F2 - .align 2, 0 -_080972B8: .4byte 0x02000000 -_080972BC: - movs r0, 0 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080972F2 -_080972CA: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _080972F2 - ldr r0, _080972E4 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080972EC - ldr r0, _080972E8 @ =sub_8097858 - bl sub_8096BE0 - b _080972F2 - .align 2, 0 -_080972E4: .4byte gUnknown_0203847C -_080972E8: .4byte sub_8097858 -_080972EC: - ldr r0, _080972F8 @ =sub_8096C84 - bl sub_8096BE0 -_080972F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972F8: .4byte sub_8096C84 - thumb_func_end sub_80972A8 - - thumb_func_start sub_80972FC -sub_80972FC: @ 80972FC - push {r4,lr} - ldr r4, _0809730C @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097310 - cmp r0, 0x1 - beq _0809731E - b _08097346 - .align 2, 0 -_0809730C: .4byte 0x02000000 -_08097310: - movs r0, 0x1 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097346 -_0809731E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097346 - ldr r0, _08097338 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _08097340 - ldr r0, _0809733C @ =sub_8097858 - bl sub_8096BE0 - b _08097346 - .align 2, 0 -_08097338: .4byte gUnknown_0203847C -_0809733C: .4byte sub_8097858 -_08097340: - ldr r0, _0809734C @ =sub_8096C84 - bl sub_8096BE0 -_08097346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809734C: .4byte sub_8096C84 - thumb_func_end sub_80972FC - - thumb_func_start c3_0808DC50 -c3_0808DC50: @ 8097350 - push {r4,lr} - ldr r4, _08097360 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097364 - cmp r0, 0x1 - beq _08097372 - b _08097386 - .align 2, 0 -_08097360: .4byte 0x02000000 -_08097364: - movs r0, 0x2 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097386 -_08097372: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097386 - bl BoxSetMosaic - ldr r0, _0809738C @ =sub_8096C84 - bl sub_8096BE0 -_08097386: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809738C: .4byte sub_8096C84 - thumb_func_end c3_0808DC50 - - thumb_func_start sub_8097390 -sub_8097390: @ 8097390 - push {lr} - ldr r0, _080973A4 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bhi _08097462 - lsls r0, 2 - ldr r1, _080973A8 @ =_080973AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080973A4: .4byte 0x02000000 -_080973A8: .4byte _080973AC - .align 2, 0 -_080973AC: - .4byte _080973C4 - .4byte _080973FC - .4byte _0809741C - .4byte _0809742C - .4byte _0809743E - .4byte _0809745C -_080973C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080973E4 - movs r0, 0xE - bl sub_8098898 - ldr r1, _080973E0 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973E0: .4byte 0x02000000 -_080973E4: - bl sub_809B0E0 - movs r0, 0 - bl sub_809B100 - ldr r1, _080973F8 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973F8: .4byte 0x02000000 -_080973FC: - ldr r0, _08097414 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097462 - bl sub_8098A5C - ldr r0, _08097418 @ =sub_8096C84 - bl sub_8096BE0 - b _08097462 - .align 2, 0 -_08097414: .4byte gMain -_08097418: .4byte sub_8096C84 -_0809741C: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_809880C - b _0809744C -_0809742C: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - movs r0, 0x1 - bl sub_809B100 - b _0809744C -_0809743E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_80987DC -_0809744C: - ldr r1, _08097458 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_08097458: .4byte 0x02000000 -_0809745C: - ldr r0, _08097468 @ =sub_8097004 - bl sub_8096BE0 -_08097462: - pop {r0} - bx r0 - .align 2, 0 -_08097468: .4byte sub_8097004 - thumb_func_end sub_8097390 - - thumb_func_start sub_809746C -sub_809746C: @ 809746C - push {r4,lr} - ldr r0, _08097484 @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bls _08097478 - b _08097584 -_08097478: - lsls r0, 2 - ldr r1, _08097488 @ =_0809748C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097484: .4byte 0x02000000 -_08097488: .4byte _0809748C - .align 2, 0 -_0809748C: - .4byte _080974A0 - .4byte _080974D8 - .4byte _08097534 - .4byte _08097548 - .4byte _0809756C -_080974A0: - movs r0, 0x6 - bl sub_8098898 - ldr r4, _080974C8 @ =0x02002370 - ldr r2, _080974CC @ =0x0000daca - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _080974D0 @ =gUnknown_0203847E - ldrb r0, [r0] - bl sub_809634C - ldr r0, _080974D4 @ =0xffffdc90 - adds r4, r0 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097584 - .align 2, 0 -_080974C8: .4byte 0x02002370 -_080974CC: .4byte 0x0000daca -_080974D0: .4byte gUnknown_0203847E -_080974D4: .4byte 0xffffdc90 -_080974D8: - bl sub_8096368 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC8 - beq _08097584 - cmp r4, 0xC9 - bne _080974F6 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - b _0809755E -_080974F6: - adds r0, r4, 0 - bl sub_809B62C - lsls r0, 24 - cmp r0, 0 - beq _08097518 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - ldr r1, _08097514 @ =0x02000000 - movs r0, 0x2 - b _08097522 - .align 2, 0 -_08097514: .4byte 0x02000000 -_08097518: - movs r0, 0x8 - bl sub_8098898 - ldr r1, _0809752C @ =0x02000000 - movs r0, 0x4 -_08097522: - strb r0, [r1, 0x4] - ldr r0, _08097530 @ =gUnknown_0203847E - strb r4, [r0] - b _08097584 - .align 2, 0 -_0809752C: .4byte 0x02000000 -_08097530: .4byte gUnknown_0203847E -_08097534: - bl party_compaction - bl sub_8099310 - ldr r1, _08097544 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - b _08097582 - .align 2, 0 -_08097544: .4byte 0x02000000 -_08097548: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097584 - bl sub_809B6BC - bl BoxSetMosaic - bl sub_80987DC -_0809755E: - ldr r0, _08097568 @ =sub_8096C84 - bl sub_8096BE0 - b _08097584 - .align 2, 0 -_08097568: .4byte sub_8096C84 -_0809756C: - ldr r0, _0809758C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08097584 - movs r0, 0x6 - bl sub_8098898 - ldr r1, _08097590 @ =0x02000000 - movs r0, 0x1 -_08097582: - strb r0, [r1, 0x4] -_08097584: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809758C: .4byte gMain -_08097590: .4byte 0x02000000 - thumb_func_end sub_809746C - - thumb_func_start sub_8097594 -sub_8097594: @ 8097594 - push {r4,lr} - ldr r0, _080975AC @ =0x02000000 - ldrb r0, [r0, 0x4] - cmp r0, 0xD - bls _080975A0 - b _0809777A -_080975A0: - lsls r0, 2 - ldr r1, _080975B0 @ =_080975B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080975AC: .4byte 0x02000000 -_080975B0: .4byte _080975B4 - .align 2, 0 -_080975B4: - .4byte _080975EC - .4byte _08097600 - .4byte _0809763A - .4byte _0809766E - .4byte _0809767A - .4byte _08097690 - .4byte _080976C8 - .4byte _080976E0 - .4byte _080976EC - .4byte _080976F0 - .4byte _08097704 - .4byte _08097720 - .4byte _08097732 - .4byte _08097764 -_080975EC: - movs r0, 0x9 - bl sub_8098898 - movs r0, 0x1 - bl sub_8098A38 - ldr r1, _0809761C @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] -_08097600: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0809762C - cmp r1, 0 - bgt _08097620 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097626 - b _0809777A - .align 2, 0 -_0809761C: .4byte 0x02000000 -_08097620: - cmp r1, 0x1 - beq _08097626 - b _0809777A -_08097626: - bl sub_8098A5C - b _080976E0 -_0809762C: - bl sub_8098A5C - bl sub_809B7D4 - bl sub_809B6DC - b _08097744 -_0809763A: - bl sub_809B960 - bl sub_809B734 - lsls r0, 24 - cmp r0, 0 - beq _0809764A - b _0809777A -_0809764A: - ldr r4, _08097650 @ =0x02000000 - b _0809765A - .align 2, 0 -_08097650: .4byte 0x02000000 -_08097654: - cmp r0, 0 - bne _0809765A - b _08097758 -_0809765A: - bl sub_809B960 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08097654 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809777A -_0809766E: - bl sub_809B760 - bl sub_809801C - movs r0, 0xA - b _08097740 -_0809767A: - ldr r0, _0809768C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08097688 - b _0809777A -_08097688: - movs r0, 0xB - b _08097740 - .align 2, 0 -_0809768C: .4byte gMain -_08097690: - ldr r0, _080976B4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _080976B8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080976BC - bl party_compaction - bl sub_8099310 - b _08097744 - .align 2, 0 -_080976B4: .4byte gMain -_080976B8: .4byte gUnknown_0203847C -_080976BC: - ldr r1, _080976C4 @ =0x02000000 - movs r0, 0x7 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_080976C4: .4byte 0x02000000 -_080976C8: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B440 - bl BoxSetMosaic - bl sub_80987DC - b _08097744 -_080976E0: - ldr r0, _080976E8 @ =sub_8096C84 - bl sub_8096BE0 - b _0809777A - .align 2, 0 -_080976E8: .4byte sub_8096C84 -_080976EC: - movs r0, 0xA - b _08097740 -_080976F0: - ldr r0, _08097700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x15 - b _08097740 - .align 2, 0 -_08097700: .4byte gMain -_08097704: - ldr r0, _0809771C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - bl sub_8099958 - b _08097744 - .align 2, 0 -_0809771C: .4byte gMain -_08097720: - bl sub_8099990 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B7AC - movs r0, 0x13 - b _08097740 -_08097732: - ldr r0, _08097750 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x14 -_08097740: - bl sub_8098898 -_08097744: - ldr r1, _08097754 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097750: .4byte gMain -_08097754: .4byte 0x02000000 -_08097758: - ldr r1, _08097760 @ =0x02000000 - movs r0, 0x8 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097760: .4byte 0x02000000 -_08097764: - ldr r0, _08097780 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _08097784 @ =sub_8096C84 - bl sub_8096BE0 -_0809777A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097780: .4byte gMain -_08097784: .4byte sub_8096C84 - thumb_func_end sub_8097594 - - thumb_func_start sub_8097788 -sub_8097788: @ 8097788 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0809779C @ =0x02000000 - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _080977A0 - cmp r4, 0x1 - beq _080977BC - b _080977D4 - .align 2, 0 -_0809779C: .4byte 0x02000000 -_080977A0: - bl sub_809BC18 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _080977D4 -_080977BC: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080977D4 - ldr r0, _080977DC @ =gUnknown_0203847F - strb r1, [r0] - strb r1, [r5, 0x6] - ldr r0, _080977E0 @ =sub_8096B5C - bl SetMainCallback2 -_080977D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080977DC: .4byte gUnknown_0203847F -_080977E0: .4byte sub_8096B5C - thumb_func_end sub_8097788 - - thumb_func_start sub_80977E4 -sub_80977E4: @ 80977E4 - push {r4,lr} - ldr r4, _080977F4 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080977F8 - cmp r0, 0x1 - beq _08097824 - b _0809784C - .align 2, 0 -_080977F4: .4byte 0x02000000 -_080977F8: - movs r0, 0xC - bl sub_8098898 - ldr r0, _08097820 @ =0x000011f7 - adds r2, r4, r0 - ldrb r1, [r2] - movs r3, 0x96 - lsls r3, 5 - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - movs r1, 0xB0 - movs r2, 0x10 - bl sub_80F7418 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809784C - .align 2, 0 -_08097820: .4byte 0x000011f7 -_08097824: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _0809784C - bl sub_80F7470 - bl sub_8098A5C - movs r1, 0x96 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_809BDD8 - bl sub_809801C - ldr r0, _08097854 @ =sub_8096C84 - bl sub_8096BE0 -_0809784C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097854: .4byte sub_8096C84 - thumb_func_end sub_80977E4 - - thumb_func_start sub_8097858 -sub_8097858: @ 8097858 - push {r4,lr} - ldr r4, _08097868 @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _0809786C - cmp r0, 0x1 - beq _0809787C - b _08097890 - .align 2, 0 -_08097868: .4byte 0x02000000 -_0809786C: - bl party_compaction - bl sub_8099310 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097890 -_0809787C: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097890 - bl sub_80987DC - ldr r0, _08097898 @ =sub_8096C84 - bl sub_8096BE0 -_08097890: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097898: .4byte sub_8096C84 - thumb_func_end sub_8097858 - - thumb_func_start sub_809789C -sub_809789C: @ 809789C - push {r4,lr} - ldr r4, _080978AC @ =0x02000000 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080978B0 - cmp r0, 0x1 - beq _080978C2 - b _08097968 - .align 2, 0 -_080978AC: .4byte 0x02000000 -_080978B0: - movs r0, 0x1 - bl sub_8098898 - bl sub_809CE84 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097968 -_080978C2: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _08097968 - lsls r0, 2 - ldr r1, _080978DC @ =_080978E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080978DC: .4byte _080978E0 - .align 2, 0 -_080978E0: - .4byte _08097914 - .4byte _08097914 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097958 - .4byte _08097940 - .4byte _0809792C -_08097914: - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _08097928 @ =sub_8096C84 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097928: .4byte sub_8096C84 -_0809792C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809793C @ =sub_8097B44 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_0809793C: .4byte sub_8097B44 -_08097940: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097954 @ =sub_8097974 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097954: .4byte sub_8097974 -_08097958: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097970 @ =sub_8097A64 - bl sub_8096BE0 -_08097968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097970: .4byte sub_8097A64 - thumb_func_end sub_809789C - - thumb_func_start sub_8097974 -sub_8097974: @ 8097974 - push {r4,r5,lr} - ldr r5, _08097988 @ =0x02000000 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _080979A2 - cmp r0, 0x1 - bgt _0809798C - cmp r0, 0 - beq _08097996 - b _08097A5A - .align 2, 0 -_08097988: .4byte 0x02000000 -_0809798C: - cmp r0, 0x2 - beq _080979FC - cmp r0, 0x3 - beq _08097A44 - b _08097A5A -_08097996: - bl sub_8098A80 - movs r0, 0x2 - bl sub_8098898 - b _08097A3C -_080979A2: - bl sub_809CF30 - ldr r1, _080979CC @ =0x00000d5e - adds r4, r5, r1 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080979D4 - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _080979D0 @ =sub_8096C84 - bl sub_8096BE0 - b _08097A5A - .align 2, 0 -_080979CC: .4byte 0x00000d5e -_080979D0: .4byte sub_8096C84 -_080979D4: - cmp r0, r1 - blt _08097A5A - cmp r0, 0xF - bgt _08097A5A - cmp r0, 0xC - blt _08097A5A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - subs r0, 0xC - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8098AA8 - movs r0, 0x3 - bl sub_8098898 - b _08097A3C -_080979FC: - bl sub_809CF30 - movs r1, 0xD6 - lsls r1, 4 - adds r4, r5, r1 - strh r0, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08097A5A - adds r0, 0x1 - cmp r1, r0 - bne _08097A24 - bl sub_8098A5C - movs r0, 0 - strb r0, [r5, 0x4] - b _08097A5A -_08097A24: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldrh r0, [r4] - subs r0, 0x10 - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8099DCC -_08097A3C: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097A5A -_08097A44: - bl sub_8099E08 - lsls r0, 24 - cmp r0, 0 - bne _08097A5A - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097A60 @ =sub_8096C84 - bl sub_8096BE0 -_08097A5A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097A60: .4byte sub_8096C84 - thumb_func_end sub_8097974 - - thumb_func_start sub_8097A64 -sub_8097A64: @ 8097A64 - push {r4,r5,lr} - ldr r5, _08097A78 @ =0x02000000 - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _08097AB0 - cmp r0, 0x1 - bgt _08097A7C - cmp r0, 0 - beq _08097A86 - b _08097B32 - .align 2, 0 -_08097A78: .4byte 0x02000000 -_08097A7C: - cmp r0, 0x2 - beq _08097B00 - cmp r0, 0x3 - beq _08097B18 - b _08097B32 -_08097A86: - movs r0, 0x5 - bl sub_8098898 - ldr r1, _08097AA4 @ =0x00002370 - adds r0, r5, r1 - ldr r2, _08097AA8 @ =0x0000daca - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _08097AAC @ =gPokemonStorage - ldrb r0, [r0] - bl sub_809634C - b _08097B0A - .align 2, 0 -_08097AA4: .4byte 0x00002370 -_08097AA8: .4byte 0x0000daca -_08097AAC: .4byte gPokemonStorage -_08097AB0: - bl sub_8096368 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08097AF4 @ =0x000008b2 - adds r4, r5, r2 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - beq _08097B32 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0xC9 - beq _08097AE4 - adds r1, r0, 0 - ldr r0, _08097AF8 @ =gPokemonStorage - ldrb r0, [r0] - cmp r1, r0 - bne _08097B0A -_08097AE4: - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097AFC @ =sub_8096C84 - bl sub_8096BE0 - b _08097B32 - .align 2, 0 -_08097AF4: .4byte 0x000008b2 -_08097AF8: .4byte gPokemonStorage -_08097AFC: .4byte sub_8096C84 -_08097B00: - ldr r1, _08097B14 @ =0x000008b2 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_8099C70 -_08097B0A: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B32 - .align 2, 0 -_08097B14: .4byte 0x000008b2 -_08097B18: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08097B32 - ldr r1, _08097B38 @ =gPokemonStorage - ldr r2, _08097B3C @ =0x000008b2 - adds r0, r5, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08097B40 @ =sub_8096C84 - bl sub_8096BE0 -_08097B32: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B38: .4byte gPokemonStorage -_08097B3C: .4byte 0x000008b2 -_08097B40: .4byte sub_8096C84 - thumb_func_end sub_8097A64 - - thumb_func_start sub_8097B44 -sub_8097B44: @ 8097B44 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08097B58 @ =0x02000000 - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _08097B5C - cmp r4, 0x1 - beq _08097B78 - b _08097B8E - .align 2, 0 -_08097B58: .4byte 0x02000000 -_08097B5C: - bl sub_809BB90 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B8E -_08097B78: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08097B8E - ldr r0, _08097B98 @ =gUnknown_0203847F - strb r4, [r0] - strb r4, [r5, 0x6] - ldr r0, _08097B9C @ =sub_8096B5C - bl SetMainCallback2 -_08097B8E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B98: .4byte gUnknown_0203847F -_08097B9C: .4byte sub_8096B5C - thumb_func_end sub_8097B44 - - thumb_func_start sub_8097BA0 -sub_8097BA0: @ 8097BA0 - push {r4,lr} - ldr r0, _08097BB8 @ =0x02000000 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097BAE - b _08097CB0 -_08097BAE: - lsls r0, r1, 2 - ldr r1, _08097BBC @ =_08097BC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097BB8: .4byte 0x02000000 -_08097BBC: .4byte _08097BC0 - .align 2, 0 -_08097BC0: - .4byte _08097BD4 - .4byte _08097C18 - .4byte _08097C2C - .4byte _08097C74 - .4byte _08097C98 -_08097BD4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097BF8 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097BF4 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097BF4: .4byte 0x02000000 -_08097BF8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097C14 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C14: .4byte 0x02000000 -_08097C18: - ldr r0, _08097C28 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097CB0 - b _08097C4A - .align 2, 0 -_08097C28: .4byte gMain -_08097C2C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097C5C - cmp r1, 0 - bgt _08097C46 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097C4A - b _08097CB0 -_08097C46: - cmp r1, 0x1 - bne _08097CB0 -_08097C4A: - bl sub_8098A5C - ldr r0, _08097C58 @ =sub_8096C84 - bl sub_8096BE0 - b _08097CB0 - .align 2, 0 -_08097C58: .4byte sub_8096C84 -_08097C5C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097C70 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C70: .4byte 0x02000000 -_08097C74: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097C94 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097CB0 - .align 2, 0 -_08097C94: .4byte 0x0000dad0 -_08097C98: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097CB0 - bl CalculatePlayerPartyCount - ldr r1, _08097CB8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097CBC @ =sub_80961A8 - bl SetMainCallback2 -_08097CB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097CB8: .4byte gPlayerPartyCount -_08097CBC: .4byte sub_80961A8 - thumb_func_end sub_8097BA0 - - thumb_func_start sub_8097CC0 -sub_8097CC0: @ 8097CC0 - push {r4,lr} - ldr r0, _08097CD8 @ =0x02000000 - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097CCE - b _08097DD0 -_08097CCE: - lsls r0, r1, 2 - ldr r1, _08097CDC @ =_08097CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097CD8: .4byte 0x02000000 -_08097CDC: .4byte _08097CE0 - .align 2, 0 -_08097CE0: - .4byte _08097CF4 - .4byte _08097D38 - .4byte _08097D4C - .4byte _08097D94 - .4byte _08097DB8 -_08097CF4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097D18 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097D14 @ =0x02000000 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D14: .4byte 0x02000000 -_08097D18: - movs r0, 0x5 - bl PlaySE - movs r0, 0x12 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097D34 @ =0x02000000 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D34: .4byte 0x02000000 -_08097D38: - ldr r0, _08097D48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097DD0 - b _08097D6C - .align 2, 0 -_08097D48: .4byte gMain -_08097D4C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097D6C - cmp r1, 0 - bgt _08097D66 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097D7C - b _08097DD0 -_08097D66: - cmp r1, 0x1 - beq _08097D7C - b _08097DD0 -_08097D6C: - bl sub_8098A5C - ldr r0, _08097D78 @ =sub_8096C84 - bl sub_8096BE0 - b _08097DD0 - .align 2, 0 -_08097D78: .4byte sub_8096C84 -_08097D7C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097D90 @ =0x02000000 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D90: .4byte 0x02000000 -_08097D94: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097DB4 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097DD0 - .align 2, 0 -_08097DB4: .4byte 0x0000dad0 -_08097DB8: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097DD0 - bl CalculatePlayerPartyCount - ldr r1, _08097DD8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097DDC @ =sub_80961A8 - bl SetMainCallback2 -_08097DD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097DD8: .4byte gPlayerPartyCount -_08097DDC: .4byte sub_80961A8 - thumb_func_end sub_8097CC0 - - thumb_func_start sub_8097DE0 -sub_8097DE0: @ 8097DE0 - push {lr} - ldr r1, _08097E1C @ =0x02000000 - movs r0, 0 - strb r0, [r1, 0x7] - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - ldr r1, _08097E20 @ =REG_BG3CNT - ldr r2, _08097E24 @ =0x00001e0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile - ldr r2, _08097E2C @ =0x0600e000 - ldr r0, _08097E30 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08097E34 @ =0x80000010 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap - ldr r1, _08097E3C @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette - movs r1, 0xD0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08097E1C: .4byte 0x02000000 -_08097E20: .4byte REG_BG3CNT -_08097E24: .4byte 0x00001e0f -_08097E28: .4byte gPokemonStorageScrollingBGTile -_08097E2C: .4byte 0x0600e000 -_08097E30: .4byte 0x040000d4 -_08097E34: .4byte 0x80000010 -_08097E38: .4byte gPokemonStorageScrollingBGTilemap -_08097E3C: .4byte 0x0600f000 -_08097E40: .4byte gPokemonStorageScrollingBGPalette - thumb_func_end sub_8097DE0 - - thumb_func_start sub_8097E44 -sub_8097E44: @ 8097E44 - push {lr} - ldr r1, _08097E6C @ =0x02000000 - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08097E66 - movs r0, 0 - strb r0, [r1, 0x7] - ldrh r0, [r1, 0x8] - subs r0, 0x1 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08097E66: - pop {r0} - bx r0 - .align 2, 0 -_08097E6C: .4byte 0x02000000 - thumb_func_end sub_8097E44 - - thumb_func_start sub_8097E70 -sub_8097E70: @ 8097E70 - push {r4,lr} - sub sp, 0x10 - ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx - ldr r1, _08097F30 @ =0x06005000 - bl LZ77UnCompVram - ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap - ldr r4, _08097F38 @ =gUnknown_02039760 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _08097F3C @ =0x06007800 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x14 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_809D034 - ldr r0, _08097F40 @ =gPSSMenu1_Pal - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F44 @ =gPSSMenu2_Pal - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F48 @ =gUnknown_083B6D74 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F4C @ =gUnknown_083B6D94 - movs r1, 0xC0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2 - adds r0, r4, 0 - movs r1, 0xF1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xF2 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0xF3 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x16 - movs r1, 0xF4 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x12 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r4, 0x2 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x2 - bl LoadPalette - ldr r0, _08097F54 @ =gWaveformSpritePalette - bl LoadSpritePalette - bl sub_80980D4 - bl sub_8097F58 - bl sub_8097FB8 - bl sub_809801C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097F2C: .4byte gPSSMenuHeader_Gfx -_08097F30: .4byte 0x06005000 -_08097F34: .4byte gPSSMenuHeader_Tilemap -_08097F38: .4byte gUnknown_02039760 -_08097F3C: .4byte 0x06007800 -_08097F40: .4byte gPSSMenu1_Pal -_08097F44: .4byte gPSSMenu2_Pal -_08097F48: .4byte gUnknown_083B6D74 -_08097F4C: .4byte gUnknown_083B6D94 -_08097F50: .4byte gUnknownPalette_81E6692+0x2 -_08097F54: .4byte gWaveformSpritePalette - thumb_func_end sub_8097E70 - - thumb_func_start sub_8097F58 -sub_8097F58: @ 8097F58 - push {r4,lr} - ldr r1, _08097FA4 @ =0x0000dace - movs r0, 0xD - movs r2, 0 - bl sub_80F7940 - ldr r4, _08097FA8 @ =0x02000000 - ldr r1, _08097FAC @ =0x000012ac - adds r3, r4, r1 - str r0, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r3] - movs r0, 0x28 - strh r0, [r1, 0x20] - ldr r1, [r3] - movs r0, 0x95 - strh r0, [r1, 0x22] - movs r0, 0xD - bl GetSpriteTileStartByTag - ldr r1, _08097FB0 @ =0x000012b8 - adds r4, r1 - lsls r0, 16 - lsrs r0, 11 - ldr r1, _08097FB4 @ =0x06010000 - adds r0, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097FA4: .4byte 0x0000dace -_08097FA8: .4byte 0x02000000 -_08097FAC: .4byte 0x000012ac -_08097FB0: .4byte 0x000012b8 -_08097FB4: .4byte 0x06010000 - thumb_func_end sub_8097F58 - - thumb_func_start sub_8097FB8 -sub_8097FB8: @ 8097FB8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _0809800C @ =gWaveformSpriteSheet - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _08098010 @ =0x020012b0 -_08097FD0: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r4, 2 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08098018 @ =gSprites - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08097FD0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809800C: .4byte gWaveformSpriteSheet -_08098010: .4byte 0x020012b0 -_08098014: .4byte gSpriteTemplate_83B6EFC -_08098018: .4byte gSprites - thumb_func_end sub_8097FB8 - - thumb_func_start sub_809801C -sub_809801C: @ 809801C - push {lr} - ldr r1, _0809803C @ =0x02000000 - ldr r2, _08098040 @ =0x000011f0 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_80981F0 - bl sub_80982B4 - bl sub_8098350 - pop {r0} - bx r0 - .align 2, 0 -_0809803C: .4byte 0x02000000 -_08098040: .4byte 0x000011f0 - thumb_func_end sub_809801C - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 8098044 - push {lr} - bl sub_809801C - ldr r0, _08098084 @ =0x02000000 - movs r1, 0x9C - lsls r1, 6 - adds r3, r0, r1 - ldr r2, [r3] - cmp r2, 0 - beq _08098080 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - movs r0, 0xA - strh r0, [r1, 0x2E] - ldr r1, [r3] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, [r3] - ldr r0, _08098088 @ =sub_8098090 - str r0, [r1, 0x1C] - ldr r2, _0809808C @ =REG_MOSAIC - ldr r0, [r3] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] -_08098080: - pop {r0} - bx r0 - .align 2, 0 -_08098084: .4byte 0x02000000 -_08098088: .4byte sub_8098090 -_0809808C: .4byte REG_MOSAIC - thumb_func_end BoxSetMosaic - - thumb_func_start sub_8098090 -sub_8098090: @ 8098090 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _080980A6 - movs r0, 0 - strh r0, [r3, 0x2E] -_080980A6: - ldr r2, _080980CC @ =REG_MOSAIC - ldrh r0, [r3, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080980C8 - ldrb r0, [r3, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - ldr r0, _080980D0 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] -_080980C8: - pop {r0} - bx r0 - .align 2, 0 -_080980CC: .4byte REG_MOSAIC -_080980D0: .4byte SpriteCallbackDummy - thumb_func_end sub_8098090 - - thumb_func_start sub_80980D4 -sub_80980D4: @ 80980D4 - push {r4,r5,lr} - sub sp, 0x28 - ldr r0, _08098150 @ =gUnknown_083B6DCC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _08098154 @ =gUnknown_083B6DD4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r1, 0 - add r5, sp, 0x18 - ldr r4, _0809815C @ =0x02002784 - movs r3, 0 - ldr r2, _08098160 @ =0x000007ff -_08098102: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08098102 - movs r1, 0 - ldr r3, _08098164 @ =0x02002704 - movs r2, 0 -_08098116: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08098116 - ldr r0, _08098168 @ =0x02000000 - movs r1, 0x9C - lsls r1, 6 - adds r0, r1 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080981C4 - add r0, sp, 0x20 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080981C4 - b _080981B0 - .align 2, 0 -_08098150: .4byte gUnknown_083B6DCC -_08098154: .4byte gUnknown_083B6DD4 -_08098158: .4byte gSpriteTemplate_83B6DDC -_0809815C: .4byte 0x02002784 -_08098160: .4byte 0x000007ff -_08098164: .4byte 0x02002704 -_08098168: .4byte 0x02000000 -_0809816C: - ldr r2, _0809819C @ =0x02000000 - movs r0, 0x9C - lsls r0, 6 - adds r3, r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080981A0 @ =gSprites - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _080981A4 @ =0x000026fa - adds r1, r2, r3 - strh r0, [r1] - ldr r4, _080981A8 @ =0x000026fc - adds r2, r4 - lsls r0, r5, 5 - ldr r1, _080981AC @ =0x06010000 - adds r0, r1 - str r0, [r2] - b _080981C4 - .align 2, 0 -_0809819C: .4byte 0x02000000 -_080981A0: .4byte gSprites -_080981A4: .4byte 0x000026fa -_080981A8: .4byte 0x000026fc -_080981AC: .4byte 0x06010000 -_080981B0: - 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 _0809816C -_080981C4: - ldr r0, _080981E8 @ =0x02000000 - movs r2, 0x9C - lsls r2, 6 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0 - bne _080981DE - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _080981EC @ =0x0000dac7 - bl FreeSpritePaletteByTag -_080981DE: - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080981E8: .4byte 0x02000000 -_080981EC: .4byte 0x0000dac7 - thumb_func_end sub_80980D4 - - thumb_func_start sub_80981F0 -sub_80981F0: @ 80981F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r6, _08098274 @ =0x02000000 - movs r0, 0x9C - lsls r0, 6 - adds r0, r6 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080982A6 - cmp r4, 0 - beq _0809829C - lsls r0, r4, 3 - ldr r1, _08098278 @ =gMonFrontPicTable - adds r0, r1 - ldr r2, _0809827C @ =gMonFrontPicCoords - lsls r1, r4, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _08098280 @ =0x00004784 - adds r3, r6, r2 - ldr r2, _08098284 @ =0x00002784 - adds r5, r6, r2 - str r5, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - movs r2, 0x1 - bl HandleLoadSpecialPokePic - ldr r1, _08098288 @ =0x000011e8 - adds r0, r6, r1 - ldr r0, [r0] - ldr r2, _0809828C @ =0x00002704 - adds r4, r6, r2 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r1, _08098290 @ =0x000026fc - adds r0, r6, r1 - ldr r1, [r0] - ldr r2, _08098294 @ =0x04000200 - adds r0, r5, 0 - bl CpuSet - ldr r2, _08098298 @ =0x000026fa - adds r0, r6, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r0, r8 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _080982A6 - .align 2, 0 -_08098274: .4byte 0x02000000 -_08098278: .4byte gMonFrontPicTable -_0809827C: .4byte gMonFrontPicCoords -_08098280: .4byte 0x00004784 -_08098284: .4byte 0x00002784 -_08098288: .4byte 0x000011e8 -_0809828C: .4byte 0x00002704 -_08098290: .4byte 0x000026fc -_08098294: .4byte 0x04000200 -_08098298: .4byte 0x000026fa -_0809829C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080982A6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80981F0 - - thumb_func_start sub_80982B4 -sub_80982B4: @ 80982B4 - push {r4,lr} - ldr r4, _080982E4 @ =0x02000000 - ldr r1, _080982E8 @ =0x000011f0 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080982F4 - ldr r2, _080982EC @ =0x000011f7 - adds r0, r4, r2 - ldrb r0, [r0] - adds r2, 0xC1 - adds r1, r4, r2 - ldr r1, [r1] - bl sub_80F7A10 - ldr r1, _080982F0 @ =0x000012ac - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _08098302 - .align 2, 0 -_080982E4: .4byte 0x02000000 -_080982E8: .4byte 0x000011f0 -_080982EC: .4byte 0x000011f7 -_080982F0: .4byte 0x000012ac -_080982F4: - ldr r2, _08098348 @ =0x000012ac - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_08098302: - strb r0, [r1] - movs r0, 0 - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - ldr r4, _0809834C @ =0x0200127a - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x10 - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x6B - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x46 - movs r1, 0 - movs r2, 0xD - bl MenuPrint - subs r4, 0x21 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098348: .4byte 0x000012ac -_0809834C: .4byte 0x0200127a - thumb_func_end sub_80982B4 - - thumb_func_start sub_8098350 -sub_8098350: @ 8098350 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _080983A0 @ =0x02000000 - ldr r1, _080983A4 @ =0x000011f0 - adds r0, r5, r1 - ldrh r2, [r0] - cmp r2, 0 - beq _080983B4 - ldr r0, _080983A8 @ =0x06007800 - ldr r3, _080983AC @ =gUnknown_02039760 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r0, _080983B0 @ =0x000012b0 - adds r5, r0 -_08098382: - lsls r0, r4, 2 - adds r0, r5 - 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 _08098382 - b _080983EC - .align 2, 0 -_080983A0: .4byte 0x02000000 -_080983A4: .4byte 0x000011f0 -_080983A8: .4byte 0x06007800 -_080983AC: .4byte gUnknown_02039760 -_080983B0: .4byte 0x000012b0 -_080983B4: - ldr r0, _080983F4 @ =0x06007800 - ldr r3, _080983F8 @ =gUnknown_02039760 - movs r1, 0xA - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r1, _080983FC @ =0x000012b0 - adds r5, r1 -_080983D4: - lsls r0, r4, 2 - adds r0, r5 - 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 _080983D4 -_080983EC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080983F4: .4byte 0x06007800 -_080983F8: .4byte gUnknown_02039760 -_080983FC: .4byte 0x000012b0 - thumb_func_end sub_8098350 - - thumb_func_start sub_8098400 -sub_8098400: @ 8098400 - push {r4,r5,lr} - sub sp, 0x14 - ldr r1, _0809847C @ =REG_BG1CNT - ldr r2, _08098480 @ =0x00000f01 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08098484 @ =gPSSMenuMisc_Gfx - ldr r1, _08098488 @ =0x06006800 - bl LZ77UnCompVram - ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap - ldr r5, _08098490 @ =0x020000a8 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08098494 @ =gPSSMenu3_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08098498 @ =gPSSMenu4_Pal - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r4, _0809849C @ =0x06007800 - add r1, sp, 0x10 - movs r0, 0 - strh r0, [r1] - ldr r0, _080984A0 @ =0x040000d4 - str r1, [r0] - str r4, [r0, 0x4] - ldr r1, _080984A4 @ =0x81000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8098780 - ldr r0, _080984A8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080984AC - movs r0, 0x1 - bl sub_8098690 - movs r0, 0x1 - bl sub_8099200 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x16 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - b _080984CC - .align 2, 0 -_0809847C: .4byte REG_BG1CNT -_08098480: .4byte 0x00000f01 -_08098484: .4byte gPSSMenuMisc_Gfx -_08098488: .4byte 0x06006800 -_0809848C: .4byte gPSSMenuMisc_Tilemap -_08098490: .4byte 0x020000a8 -_08098494: .4byte gPSSMenu3_Pal -_08098498: .4byte gPSSMenu4_Pal -_0809849C: .4byte 0x06007800 -_080984A0: .4byte 0x040000d4 -_080984A4: .4byte 0x81000400 -_080984A8: .4byte gUnknown_0203847C -_080984AC: - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - movs r0, 0x1 - bl sub_8098690 -_080984CC: - ldr r0, _080984E0 @ =0x02000000 - ldr r1, _080984E4 @ =0x000008af - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080984E0: .4byte 0x02000000 -_080984E4: .4byte 0x000008af - thumb_func_end sub_8098400 - - thumb_func_start sub_80984E8 -sub_80984E8: @ 80984E8 - push {lr} - ldr r1, _08098510 @ =0x02000000 - ldr r0, _08098514 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _08098518 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0809851C @ =0x000008ad - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_8099200 - pop {r0} - bx r0 - .align 2, 0 -_08098510: .4byte 0x02000000 -_08098514: .4byte 0x000008a8 -_08098518: .4byte 0x000008aa -_0809851C: .4byte 0x000008ad - thumb_func_end sub_80984E8 - - thumb_func_start sub_8098520 -sub_8098520: @ 8098520 - push {r4,r5,lr} - sub sp, 0x10 - ldr r3, _08098578 @ =0x02000000 - ldr r0, _0809857C @ =0x000008ad - adds r5, r3, r0 - ldrb r0, [r5] - cmp r0, 0x14 - beq _08098592 - ldr r0, _08098580 @ =0x000008a8 - adds r1, r3, r0 - ldrh r0, [r1] - subs r0, 0x1 - movs r4, 0 - strh r0, [r1] - ldr r0, _08098584 @ =0x000008aa - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r0, _08098588 @ =0x06007800 - adds r3, 0xA8 - str r4, [sp] - ldrh r1, [r1] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - ldrh r1, [r2] - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - movs r0, 0x8 - bl sub_80994A8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0809858C - movs r0, 0x1 - b _08098594 - .align 2, 0 -_08098578: .4byte 0x02000000 -_0809857C: .4byte 0x000008ad -_08098580: .4byte 0x000008a8 -_08098584: .4byte 0x000008aa -_08098588: .4byte 0x06007800 -_0809858C: - ldr r1, _0809859C @ =gUnknown_0203847C - movs r0, 0x1 - strb r0, [r1] -_08098592: - movs r0, 0 -_08098594: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809859C: .4byte gUnknown_0203847C - thumb_func_end sub_8098520 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 80985A0 - ldr r1, _080985BC @ =0x02000000 - ldr r0, _080985C0 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _080985C4 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _080985C8 @ =0x000008ad - adds r1, r0 - strb r3, [r1] - bx lr - .align 2, 0 -_080985BC: .4byte 0x02000000 -_080985C0: .4byte 0x000008a8 -_080985C4: .4byte 0x000008aa -_080985C8: .4byte 0x000008ad - thumb_func_end add_to_c3_somehow - - thumb_func_start sub_80985CC -sub_80985CC: @ 80985CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r3, _08098640 @ =0x02000000 - ldr r0, _08098644 @ =0x000008ad - adds r6, r3, r0 - ldrb r0, [r6] - cmp r0, 0x14 - beq _0809867A - ldr r2, _08098648 @ =0x000008a8 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - movs r2, 0 - mov r9, r2 - strh r0, [r1] - ldr r0, _0809864C @ =0x000008aa - adds r4, r3, r0 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldr r5, _08098650 @ =0x06007800 - adds r3, 0xA8 - mov r8, r3 - str r2, [sp] - ldrh r0, [r1] - str r0, [sp, 0x4] - movs r7, 0xC - str r7, [sp, 0x8] - ldrh r0, [r4] - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - bl sub_809D034 - ldrh r2, [r4] - movs r4, 0x1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0xA - movs r3, 0xC - bl sub_809D16C - movs r0, 0x8 - negs r0, r0 - bl sub_80994A8 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _08098654 - movs r0, 0x1 - b _0809867C - .align 2, 0 -_08098640: .4byte 0x02000000 -_08098644: .4byte 0x000008ad -_08098648: .4byte 0x000008a8 -_0809864C: .4byte 0x000008aa -_08098650: .4byte 0x06007800 -_08098654: - ldr r0, _0809868C @ =gUnknown_0203847C - movs r1, 0 - strb r1, [r0] - bl sub_809954C - bl party_compaction - str r7, [sp] - mov r2, r9 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x15 - movs r2, 0 - mov r3, r8 - bl sub_809D034 -_0809867A: - movs r0, 0 -_0809867C: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809868C: .4byte gUnknown_0203847C - thumb_func_end sub_80985CC - - thumb_func_start sub_8098690 -sub_8098690: @ 8098690 - push {lr} - sub sp, 0x10 - lsls r0, 24 - cmp r0, 0 - beq _080986C0 - ldr r0, _080986B8 @ =0x06007800 - ldr r3, _080986BC @ =0x020000a8 - movs r1, 0xC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 - b _080986DA - .align 2, 0 -_080986B8: .4byte 0x06007800 -_080986BC: .4byte 0x020000a8 -_080986C0: - ldr r0, _080986E0 @ =0x06007800 - ldr r3, _080986E4 @ =0x020000a8 - movs r1, 0xC - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 -_080986DA: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080986E0: .4byte 0x06007800 -_080986E4: .4byte 0x020000a8 - thumb_func_end sub_8098690 - - thumb_func_start sub_80986E8 -sub_80986E8: @ 80986E8 - ldr r1, _08098704 @ =0x02000000 - ldr r2, _08098708 @ =0x000008af - adds r0, r1, r2 - movs r3, 0x1 - strb r3, [r0] - movs r0, 0x8B - lsls r0, 4 - adds r2, r1, r0 - movs r0, 0x1E - strb r0, [r2] - ldr r2, _0809870C @ =0x000008b1 - adds r1, r2 - strb r3, [r1] - bx lr - .align 2, 0 -_08098704: .4byte 0x02000000 -_08098708: .4byte 0x000008af -_0809870C: .4byte 0x000008b1 - thumb_func_end sub_80986E8 - - thumb_func_start sub_8098710 -sub_8098710: @ 8098710 - push {lr} - ldr r0, _0809872C @ =0x02000000 - ldr r2, _08098730 @ =0x000008af - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08098728 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8098690 -_08098728: - pop {r0} - bx r0 - .align 2, 0 -_0809872C: .4byte 0x02000000 -_08098730: .4byte 0x000008af - thumb_func_end sub_8098710 - - thumb_func_start sub_8098734 -sub_8098734: @ 8098734 - push {lr} - ldr r2, _08098774 @ =0x02000000 - ldr r1, _08098778 @ =0x000008af - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08098770 - movs r0, 0x8B - lsls r0, 4 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _08098770 - movs r0, 0 - strb r0, [r1] - movs r3, 0 - ldr r0, _0809877C @ =0x000008b1 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08098768 - movs r3, 0x1 -_08098768: - strb r3, [r1] - ldrb r0, [r1] - bl sub_8098690 -_08098770: - pop {r0} - bx r0 - .align 2, 0 -_08098774: .4byte 0x02000000 -_08098778: .4byte 0x000008af -_0809877C: .4byte 0x000008b1 - thumb_func_end sub_8098734 - - thumb_func_start sub_8098780 -sub_8098780: @ 8098780 - push {r4-r6,lr} - sub sp, 0x10 - movs r4, 0x1 - ldr r6, _080987D4 @ =0x020000a8 - movs r5, 0x80 - lsls r5, 9 -_0809878C: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080987D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080987A0 - movs r0, 0x1 -_080987A0: - movs r1, 0x10 - cmp r0, 0 - beq _080987A8 - movs r1, 0xC -_080987A8: - lsrs r2, r5, 16 - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x7 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0xC0 - lsls r0, 10 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x5 - ble _0809878C - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080987D4: .4byte 0x020000a8 -_080987D8: .4byte gPlayerParty - thumb_func_end sub_8098780 - - thumb_func_start sub_80987DC -sub_80987DC: @ 80987DC - push {lr} - sub sp, 0x10 - bl sub_8098780 - ldr r0, _08098804 @ =0x06007800 - ldr r3, _08098808 @ =0x020000a8 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - movs r1, 0x16 - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_08098804: .4byte 0x06007800 -_08098808: .4byte 0x020000a8 - thumb_func_end sub_80987DC - - thumb_func_start sub_809880C -sub_809880C: @ 809880C - push {lr} - ldr r0, _08098828 @ =0x02000000 - ldr r1, _0809882C @ =0x000008ae - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_80984E8 - pop {r0} - bx r0 - .align 2, 0 -_08098828: .4byte 0x02000000 -_0809882C: .4byte 0x000008ae - thumb_func_end sub_809880C - - thumb_func_start sub_8098830 -sub_8098830: @ 8098830 - push {r4,r5,lr} - ldr r5, _08098848 @ =0x02000000 - ldr r0, _0809884C @ =0x000008ae - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08098866 - cmp r0, 0x1 - bgt _08098850 - cmp r0, 0 - beq _08098856 - b _08098890 - .align 2, 0 -_08098848: .4byte 0x02000000 -_0809884C: .4byte 0x000008ae -_08098850: - cmp r0, 0x2 - beq _0809888C - b _08098890 -_08098856: - bl sub_8098520 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - bl sub_809B068 - b _0809887E -_08098866: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - ldr r1, _08098888 @ =0x000011f6 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0809887E - bl BoxSetMosaic -_0809887E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08098890 - .align 2, 0 -_08098888: .4byte 0x000011f6 -_0809888C: - movs r0, 0 - b _08098892 -_08098890: - movs r0, 0x1 -_08098892: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8098830 - - thumb_func_start sub_8098898 -sub_8098898: @ 8098898 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _080988C4 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _080988B8 - b _080989F4 -_080988B8: - lsls r0, 2 - ldr r1, _080988C8 @ =_080988CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080988C4: .4byte gUnknown_083B6DF4 -_080988C8: .4byte _080988CC - .align 2, 0 -_080988CC: - .4byte _080989F4 - .4byte _08098930 - .4byte _080988E8 - .4byte _08098974 - .4byte _08098954 - .4byte _08098910 - .4byte _080989B8 -_080988E8: - ldr r4, _08098904 @ =0x02002694 - ldr r1, _08098908 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _0809890C @ =0xffffeb66 - adds r4, r0 - adds r0, r2, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098904: .4byte 0x02002694 -_08098908: .4byte gUnknown_083B6DF4 -_0809890C: .4byte 0xffffeb66 -_08098910: - ldr r4, _08098928 @ =0x02002694 - ldr r1, _0809892C @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - adds r2, r0, 0 - adds r4, 0x50 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_08098928: .4byte 0x02002694 -_0809892C: .4byte gUnknown_083B6DF4 -_08098930: - ldr r0, _08098948 @ =0x02002694 - ldr r2, _0809894C @ =0xffffeb66 - adds r1, r0, r2 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098950 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_08098948: .4byte 0x02002694 -_0809894C: .4byte 0xffffeb66 -_08098950: .4byte gUnknown_083B6DF4 -_08098954: - ldr r0, _0809896C @ =0x02002694 - adds r1, r0, 0 - adds r1, 0x50 - bl StringCopy - adds r2, r0, 0 - ldr r1, _08098970 @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - b _080989FE - .align 2, 0 -_0809896C: .4byte 0x02002694 -_08098970: .4byte gUnknown_083B6DF4 -_08098974: - ldr r1, _080989AC @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - adds r4, 0x1 - ldr r5, _080989B0 @ =0x02002694 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - ldr r0, _080989B4 @ =0xffffeb66 - adds r5, r0 - adds r0, r2, 0 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989AC: .4byte gUnknown_083B6DF4 -_080989B0: .4byte 0x02002694 -_080989B4: .4byte 0xffffeb66 -_080989B8: - ldr r1, _080989EC @ =gUnknown_083B6DF4 - lsls r0, r5, 3 - adds r0, r1 - ldr r6, [r0] - adds r0, r6, 0 - bl StringLength - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r4, r6, r4 - subs r4, 0x1 - ldr r5, _080989F0 @ =0x02002694 - adds r0, r5, 0 - adds r1, r6, 0 - bl StringCopy - adds r2, r0, 0 - subs r0, r2, 0x1 - adds r5, 0x50 - adds r1, r5, 0 - bl StringCopy - adds r2, r0, 0 - adds r1, r4, 0 - b _080989FE - .align 2, 0 -_080989EC: .4byte gUnknown_083B6DF4 -_080989F0: .4byte 0x02002694 -_080989F4: - ldr r0, _08098A2C @ =0x02002694 - ldr r2, _08098A30 @ =gUnknown_083B6DF4 - lsls r1, r5, 3 - adds r1, r2 - ldr r1, [r1] -_080989FE: - bl StringCopy - adds r2, r0, 0 - ldr r0, _08098A34 @ =0x020026a6 - adds r3, r0, 0 - subs r3, 0x12 - cmp r2, r0 - bcs _08098A18 - movs r1, 0 -_08098A10: - strb r1, [r2] - adds r2, 0x1 - cmp r2, r0 - bcc _08098A10 -_08098A18: - movs r0, 0xFF - strb r0, [r2] - adds r0, r3, 0 - movs r1, 0xB - movs r2, 0x11 - bl MenuPrint - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098A2C: .4byte 0x02002694 -_08098A30: .4byte gUnknown_083B6DF4 -_08098A34: .4byte 0x020026a6 - thumb_func_end sub_8098898 - - thumb_func_start sub_8098A38 -sub_8098A38: @ 8098A38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x17 - movs r1, 0xA - movs r2, 0 - bl DisplayYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl MoveMenuCursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8098A38 - - thumb_func_start sub_8098A5C -sub_8098A5C: @ 8098A5C - push {lr} - bl sub_8072DEC - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_8098A5C - - thumb_func_start sub_8098A80 -sub_8098A80: @ 8098A80 - push {lr} - bl sub_809CDCC - movs r0, 0xC - bl sub_809CDEC - movs r0, 0xD - bl sub_809CDEC - movs r0, 0xE - bl sub_809CDEC - movs r0, 0xF - bl sub_809CDEC - bl sub_809CE84 - pop {r0} - bx r0 - thumb_func_end sub_8098A80 - - thumb_func_start sub_8098AA8 -sub_8098AA8: @ 8098AA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_809CDCC - cmp r4, 0x1 - beq _08098AE6 - cmp r4, 0x1 - bgt _08098AC2 - cmp r4, 0 - beq _08098ACC - b _08098B32 -_08098AC2: - cmp r5, 0x2 - beq _08098B00 - cmp r5, 0x3 - beq _08098B1A - b _08098B32 -_08098ACC: - movs r0, 0x10 - bl sub_809CDEC - movs r0, 0x11 - bl sub_809CDEC - movs r0, 0x12 - bl sub_809CDEC - movs r0, 0x13 - bl sub_809CDEC - b _08098B32 -_08098AE6: - movs r0, 0x14 - bl sub_809CDEC - movs r0, 0x15 - bl sub_809CDEC - movs r0, 0x16 - bl sub_809CDEC - movs r0, 0x17 - bl sub_809CDEC - b _08098B32 -_08098B00: - movs r0, 0x18 - bl sub_809CDEC - movs r0, 0x19 - bl sub_809CDEC - movs r0, 0x1A - bl sub_809CDEC - movs r0, 0x1B - bl sub_809CDEC - b _08098B32 -_08098B1A: - movs r0, 0x1C - bl sub_809CDEC - movs r0, 0x1D - bl sub_809CDEC - movs r0, 0x1E - bl sub_809CDEC - movs r0, 0x1F - bl sub_809CDEC -_08098B32: - bl sub_809CE84 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8098AA8 - - thumb_func_start get_preferred_box -get_preferred_box: @ 8098B3C - ldr r0, _08098B44 @ =gPokemonStorage - ldrb r0, [r0] - bx lr - .align 2, 0 -_08098B44: .4byte gPokemonStorage - thumb_func_end get_preferred_box - - thumb_func_start sub_8098B48 -sub_8098B48: @ 8098B48 - push {r4,r5,lr} - bl sub_809D51C - movs r2, 0 - ldr r1, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r1] - ldr r4, _08098BDC @ =0x000010d0 - adds r3, r0, r4 - movs r4, 0 - adds r5, r1, 0 -_08098B5C: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B5C - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r3, r0, r1 - movs r1, 0 -_08098B7A: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B7A - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r4, _08098BE0 @ =0x00001038 - adds r3, r0, r4 - movs r1, 0 -_08098B96: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _08098B96 - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098BE4 @ =0x00001050 - adds r3, r0, r1 - movs r1, 0 -_08098BB2: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098BB2 - ldr r0, [r5] - ldr r2, _08098BE8 @ =0x00001034 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r4, _08098BEC @ =0x00000d5c - adds r0, r4 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098BD8: .4byte gUnknown_083B6DB4 -_08098BDC: .4byte 0x000010d0 -_08098BE0: .4byte 0x00001038 -_08098BE4: .4byte 0x00001050 -_08098BE8: .4byte 0x00001034 -_08098BEC: .4byte 0x00000d5c - thumb_func_end sub_8098B48 - - thumb_func_start sub_8098BF0 -sub_8098BF0: @ 8098BF0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _08098C38 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08098C3C @ =0x000025b4 - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x7 - str r1, [sp, 0x4] - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8099AFC - ldr r1, _08098C40 @ =0x00001034 - adds r5, r1 - str r0, [r5] - ldr r1, _08098C44 @ =sub_80999C4 - str r1, [r0, 0x1C] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098C38: .4byte gUnknown_083B6DB4 -_08098C3C: .4byte 0x000025b4 -_08098C40: .4byte 0x00001034 -_08098C44: .4byte sub_80999C4 - thumb_func_end sub_8098BF0 - - thumb_func_start sub_8098C48 -sub_8098C48: @ 8098C48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _08098CCC @ =gUnknown_020300A4 - adds r6, r0, r1 - movs r0, 0 - mov r8, r0 - movs r7, 0 -_08098C6A: - movs r5, 0 - adds r1, r7, 0x1 - mov r9, r1 -_08098C70: - adds r0, r6, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08098CD8 - adds r0, r6, 0 - movs r1, 0 - bl GetBoxMonData - 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, 0x12 - subs r0, r5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - asrs r3, 16 - bl sub_8099AFC - ldr r1, _08098CD0 @ =gUnknown_083B6DB4 - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, 2 - ldr r3, _08098CD4 @ =0x00001050 - adds r1, r3 - adds r1, r2 - str r0, [r1] - b _08098CE8 - .align 2, 0 -_08098CCC: .4byte gUnknown_020300A4 -_08098CD0: .4byte gUnknown_083B6DB4 -_08098CD4: .4byte 0x00001050 -_08098CD8: - ldr r0, _08098D18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08098D1C @ =0x00001050 - adds r0, r3 - adds r0, r1 - str r4, [r0] -_08098CE8: - adds r6, 0x50 - 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 _08098C70 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _08098C6A - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098D18: .4byte gUnknown_083B6DB4 -_08098D1C: .4byte 0x00001050 - thumb_func_end sub_8098C48 - - thumb_func_start sub_8098D20 -sub_8098D20: @ 8098D20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 4 - subs r2, r1 - lsls r2, 5 - lsls r0, r4, 2 - mov r9, r0 - adds r0, r4 - lsls r0, 4 - ldr r1, _08098DD4 @ =gUnknown_020300A4 - adds r0, r1 - adds r7, r2, r0 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _08098DC4 - adds r0, r4, 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 r1, 0xC8 - lsls r1, 15 - adds r5, r1 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 19 - movs r2, 0xB0 - lsls r2, 14 - adds r4, r2 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - 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_8099AFC - ldr r1, _08098DD8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08098DDC @ =0x00001050 - adds r1, r2 - add r1, r9 - str r0, [r1] -_08098DC4: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098DD4: .4byte gUnknown_020300A4 -_08098DD8: .4byte gUnknown_083B6DB4 -_08098DDC: .4byte 0x00001050 - thumb_func_end sub_8098D20 - - thumb_func_start sub_8098DE0 -sub_8098DE0: @ 8098DE0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _08098E18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098E1C @ =0x00001050 - adds r3, r0, r1 - movs r6, 0x1 - ldr r5, _08098E20 @ =sub_8098E68 -_08098DF4: - lsls r0, r2, 2 - adds r1, r3, r0 - ldr r0, [r1] - cmp r0, 0 - beq _08098E08 - strh r4, [r0, 0x32] - ldr r0, [r1] - strh r6, [r0, 0x36] - ldr r0, [r1] - str r5, [r0, 0x1C] -_08098E08: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098DF4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098E18: .4byte gUnknown_083B6DB4 -_08098E1C: .4byte 0x00001050 -_08098E20: .4byte sub_8098E68 - thumb_func_end sub_8098DE0 - - thumb_func_start sub_8098E24 -sub_8098E24: @ 8098E24 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E40 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - b _08098E56 -_08098E40: - ldr r0, _08098E5C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _08098E60 @ =0x00001178 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, _08098E64 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E56: - pop {r0} - bx r0 - .align 2, 0 -_08098E5C: .4byte gUnknown_083B6DB4 -_08098E60: .4byte 0x00001178 -_08098E64: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E24 - - thumb_func_start sub_8098E68 -sub_8098E68: @ 8098E68 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x36] - movs r3, 0x36 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E7C - subs r0, r1, 0x1 - strh r0, [r2, 0x36] - b _08098E98 -_08098E7C: - 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 _08098E98 - ldr r0, _08098E9C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E98: - pop {r0} - bx r0 - .align 2, 0 -_08098E9C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E68 - - thumb_func_start sub_8098EA0 -sub_8098EA0: @ 8098EA0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r0, _08098ED8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098EDC @ =0x00001050 - adds r7, r0, r1 -_08098EB0: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _08098EC2 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08098EC2: - 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 _08098EB0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098ED8: .4byte gUnknown_083B6DB4 -_08098EDC: .4byte 0x00001050 - thumb_func_end sub_8098EA0 - - thumb_func_start sub_8098EE0 -sub_8098EE0: @ 8098EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 16 - movs r0, 0x2C - str r0, [sp, 0x10] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - mov r10, r0 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsrs r3, r2, 16 - str r3, [sp, 0xC] - asrs r2, 16 - adds r1, r0, 0 - muls r1, r2 - mov r4, r10 - subs r1, r4, r1 - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x14] - mov r9, r0 - ldr r0, _08098FF8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08098FFC @ =0x0000117d - adds r2, r0 - mov r8, r2 - ldr r3, _08099000 @ =0x00001050 - adds r3, r0, r3 - str r3, [sp, 0x20] - lsls r1, 16 - str r1, [sp, 0x1C] -_08098F42: - mov r4, r8 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r7, r6, 2 - adds r1, r7, r6 - lsls r1, 4 - ldr r2, _08099004 @ =gUnknown_020300A4 - adds r4, r1, r2 - adds r0, r4 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08098FC8 - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r0, r4 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldr r2, [sp, 0x10] - lsls r3, r2, 16 - asrs r3, 16 - movs r0, 0x2 - str r0, [sp] - ldr r4, [sp, 0x18] - str r4, [sp, 0x4] - adds r0, r5, 0 - ldr r4, [sp, 0x1C] - asrs r2, r4, 16 - bl sub_8099AFC - ldr r2, [sp, 0x20] - adds r1, r2, r7 - str r0, [r1] - cmp r0, 0 - beq _08098FC8 - mov r3, sp - ldrh r3, [r3, 0x8] - strh r3, [r0, 0x30] - ldr r0, [r1] - mov r4, sp - ldrh r4, [r4, 0xC] - strh r4, [r0, 0x32] - ldr r0, [r1] - mov r2, r10 - strh r2, [r0, 0x34] - ldr r1, [r1] - ldr r0, _08099008 @ =sub_8098E24 - str r0, [r1, 0x1C] - ldr r0, [sp, 0x14] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08098FC8: - adds r0, r6, 0x6 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x10] - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _08098F42 - ldr r0, [sp, 0x14] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08098FF8: .4byte gUnknown_083B6DB4 -_08098FFC: .4byte 0x0000117d -_08099000: .4byte 0x00001050 -_08099004: .4byte gUnknown_020300A4 -_08099008: .4byte sub_8098E24 - thumb_func_end sub_8098EE0 - - thumb_func_start sub_809900C -sub_809900C: @ 809900C - push {r4-r6,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r4, _08099058 @ =gUnknown_083B6DB4 - ldr r5, [r4] - ldr r3, _0809905C @ =0x0000117c - adds r2, r5, r3 - movs r3, 0 - strb r3, [r2] - ldr r6, _08099060 @ =0x0000117d - adds r2, r5, r6 - strb r0, [r2] - ldr r2, _08099064 @ =0x0000117b - adds r0, r5, r2 - strb r1, [r0] - subs r6, 0xB - adds r2, r5, r6 - movs r0, 0x20 - strh r0, [r2] - lsls r1, 24 - asrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - negs r0, r0 - adds r6, 0x4 - adds r2, r5, r6 - strh r0, [r2] - ldr r2, _08099068 @ =0x00001178 - adds r0, r5, r2 - strh r3, [r0] - cmp r1, 0 - ble _08099070 - ldr r3, _0809906C @ =0x0000117a - adds r1, r5, r3 - movs r0, 0 - b _08099076 - .align 2, 0 -_08099058: .4byte gUnknown_083B6DB4 -_0809905C: .4byte 0x0000117c -_08099060: .4byte 0x0000117d -_08099064: .4byte 0x0000117b -_08099068: .4byte 0x00001178 -_0809906C: .4byte 0x0000117a -_08099070: - ldr r6, _080990A0 @ =0x0000117a - adds r1, r5, r6 - movs r0, 0x5 -_08099076: - strb r0, [r1] - ldr r2, [r4] - ldr r1, _080990A0 @ =0x0000117a - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x64 - ldr r3, _080990A4 @ =0x00001174 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _080990A8 @ =0x00001176 - adds r2, r6 - movs r1, 0 - ldrsh r0, [r2, r1] - bl sub_8098DE0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080990A0: .4byte 0x0000117a -_080990A4: .4byte 0x00001174 -_080990A8: .4byte 0x00001176 - thumb_func_end sub_809900C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4-r6,lr} - ldr r0, _080990D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _080990D8 @ =0x00001172 - adds r3, r4, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _080990C0 - subs r0, 0x1 - strh r0, [r3] -_080990C0: - ldr r1, _080990DC @ =0x0000117c - adds r6, r4, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08099138 - cmp r0, 0x1 - bgt _080990E0 - cmp r0, 0 - beq _080990E8 - b _080991F0 - .align 2, 0 -_080990D4: .4byte gUnknown_083B6DB4 -_080990D8: .4byte 0x00001172 -_080990DC: .4byte 0x0000117c -_080990E0: - cmp r0, 0x2 - bne _080990E6 - b _080991E0 -_080990E6: - b _080991F0 -_080990E8: - ldr r2, _0809912C @ =0x00001174 - adds r5, r4, r2 - ldr r3, _08099130 @ =0x00001176 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBA - bhi _08099104 - b _080991F8 -_08099104: - adds r2, 0x6 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_8098EA0 - ldr r3, _08099134 @ =0x0000117b - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _080991F8 - .align 2, 0 -_0809912C: .4byte 0x00001174 -_08099130: .4byte 0x00001176 -_08099134: .4byte 0x0000117b -_08099138: - ldr r2, _08099194 @ =0x00001174 - adds r1, r4, r2 - ldr r5, _08099198 @ =0x00001176 - adds r2, r4, r5 - ldrh r0, [r2] - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - ldr r0, _0809919C @ =0x0000117a - adds r5, r4, r0 - ldrb r0, [r5] - ldrh r1, [r3] - movs r3, 0 - ldrsh r2, [r2, r3] - bl sub_8098EE0 - ldr r2, _080991A0 @ =0x00001178 - adds r1, r4, r2 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldr r1, _080991A4 @ =0x0000117b - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _08099178 - ldrb r0, [r5] - cmp r0, 0x5 - beq _08099182 -_08099178: - cmp r1, 0 - bge _080991B0 - ldrb r0, [r5] - cmp r0, 0 - bne _080991B0 -_08099182: - ldr r0, _080991A8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _080991AC @ =0x0000117c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080991F8 - .align 2, 0 -_08099194: .4byte 0x00001174 -_08099198: .4byte 0x00001176 -_0809919C: .4byte 0x0000117a -_080991A0: .4byte 0x00001178 -_080991A4: .4byte 0x0000117b -_080991A8: .4byte gUnknown_083B6DB4 -_080991AC: .4byte 0x0000117c -_080991B0: - ldr r0, _080991D0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r5, _080991D4 @ =0x0000117a - adds r3, r1, r5 - ldr r2, _080991D8 @ =0x0000117b - adds r0, r1, r2 - ldrb r0, [r0] - ldrb r5, [r3] - adds r0, r5 - movs r2, 0 - strb r0, [r3] - ldr r0, _080991DC @ =0x0000117c - adds r1, r0 - strb r2, [r1] - b _080991F8 - .align 2, 0 -_080991D0: .4byte gUnknown_083B6DB4 -_080991D4: .4byte 0x0000117a -_080991D8: .4byte 0x0000117b -_080991DC: .4byte 0x0000117c -_080991E0: - ldr r1, _080991F4 @ =0x00001178 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080991F8 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080991F0: - movs r0, 0 - b _080991FA - .align 2, 0 -_080991F4: .4byte 0x00001178 -_080991F8: - movs r0, 0x1 -_080991FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099200 -sub_8099200: @ 8099200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080992A0 @ =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, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x68 - movs r3, 0x40 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _080992A8 @ =0x00001038 - adds r1, r2 - str r0, [r1] - movs r7, 0x1 - movs r6, 0x1 -_08099246: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080992A0 @ =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 _080992AC - 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, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x98 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsls r2, r6, 2 - ldr r3, _080992A8 @ =0x00001038 - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080992BA - .align 2, 0 -_080992A0: .4byte gPlayerParty -_080992A4: .4byte gUnknown_083B6DB4 -_080992A8: .4byte 0x00001038 -_080992AC: - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0809930C @ =0x00001038 - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080992BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08099246 - mov r3, r8 - cmp r3, 0 - bne _080992FA - movs r6, 0 - cmp r6, r7 - bcs _080992FA - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809930C @ =0x00001038 - adds r3, r0, r1 - movs r4, 0x4 -_080992DA: - lsls r1, r6, 2 - adds r1, r3, r1 - 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 _080992DA -_080992FA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099308: .4byte gUnknown_083B6DB4 -_0809930C: .4byte 0x00001038 - thumb_func_end sub_8099200 - - thumb_func_start sub_8099310 -sub_8099310: @ 8099310 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08099368 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809936C @ =0x00001171 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - movs r6, 0 - mov r8, r2 - ldr r7, _0809936C @ =0x00001171 - add r7, r8 -_0809932C: - lsls r1, r5, 2 - ldr r0, _08099370 @ =0x00001038 - add r0, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099354 - cmp r5, r6 - beq _0809934E - adds r1, r6, 0 - bl sub_8099388 - movs r0, 0 - str r0, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] -_0809934E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08099354: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809932C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099368: .4byte gUnknown_083B6DB4 -_0809936C: .4byte 0x00001171 -_08099370: .4byte 0x00001038 - thumb_func_end sub_8099310 - - thumb_func_start sub_8099374 -sub_8099374: @ 8099374 - ldr r0, _08099380 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099384 @ =0x00001171 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08099380: .4byte gUnknown_083B6DB4 -_08099384: .4byte 0x00001171 - thumb_func_end sub_8099374 - - thumb_func_start sub_8099388 -sub_8099388: @ 8099388 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r2, 0x30] - cmp r1, 0 - bne _0809939C - movs r3, 0x68 - movs r4, 0x40 - b _080993AE -_0809939C: - 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 -_080993AE: - 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 _080993C8 - adds r0, 0x7 -_080993C8: - 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 _080993DC - adds r0, 0x7 -_080993DC: - asrs r0, 3 - strh r0, [r2, 0x38] - movs r0, 0x8 - strh r0, [r2, 0x3A] - ldr r0, _080993F0 @ =sub_80993F4 - str r0, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080993F0: .4byte sub_80993F4 - thumb_func_end sub_8099388 - - thumb_func_start sub_80993F4 -sub_80993F4: @ 80993F4 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099424 - 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 _08099468 -_08099424: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08099434 - movs r0, 0x68 - strh r0, [r3, 0x20] - movs r0, 0x40 - b _08099446 -_08099434: - 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 -_08099446: - strh r0, [r3, 0x22] - ldr r0, _08099470 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] - ldr r0, _08099474 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r4, _08099478 @ =0x00001038 - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldr r0, _0809947C @ =0x00001171 - adds r2, r0 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_08099468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099470: .4byte SpriteCallbackDummy -_08099474: .4byte gUnknown_083B6DB4 -_08099478: .4byte 0x00001038 -_0809947C: .4byte 0x00001171 - thumb_func_end sub_80993F4 - - thumb_func_start sub_8099480 -sub_8099480: @ 8099480 - push {r4,lr} - ldr r0, _080994A0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080994A4 @ =0x00001034 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099498 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08099498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080994A0: .4byte gUnknown_083B6DB4 -_080994A4: .4byte 0x00001034 - thumb_func_end sub_8099480 - - thumb_func_start sub_80994A8 -sub_80994A8: @ 80994A8 - push {r4-r6,lr} - movs r3, 0 - ldr r1, _080994FC @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08099500 @ =0x00001038 - adds r5, r1, r2 - lsls r0, 16 - asrs r4, r0, 16 - movs r6, 0x5 - negs r6, r6 -_080994BC: - lsls r0, r3, 2 - adds r2, r5, r0 - ldr r1, [r2] - cmp r1, 0 - beq _0809950E - 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 _08099504 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809950E - .align 2, 0 -_080994FC: .4byte gUnknown_083B6DB4 -_08099500: .4byte 0x00001038 -_08099504: - adds r2, 0x3E - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r2] -_0809950E: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080994BC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80994A8 - - thumb_func_start sub_8099520 -sub_8099520: @ 8099520 - push {r4,lr} - lsls r0, 24 - ldr r1, _08099544 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsrs r0, 22 - ldr r2, _08099548 @ =0x00001038 - adds r1, r2 - adds r4, r1, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809953E - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809953E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099544: .4byte gUnknown_083B6DB4 -_08099548: .4byte 0x00001038 - thumb_func_end sub_8099520 - - thumb_func_start sub_809954C -sub_809954C: @ 809954C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _0809957C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099580 @ =0x00001038 - adds r6, r0, r1 -_08099558: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809956A - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809956A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08099558 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809957C: .4byte gUnknown_083B6DB4 -_08099580: .4byte 0x00001038 - thumb_func_end sub_809954C - - thumb_func_start sub_8099584 -sub_8099584: @ 8099584 - 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 _080995B4 - ldr r3, _080995AC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r5, _080995B0 @ =0x00001034 - 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 _080995D0 - .align 2, 0 -_080995AC: .4byte gUnknown_083B6DB4 -_080995B0: .4byte 0x00001034 -_080995B4: - cmp r4, 0x1 - bne _080995F4 - ldr r3, _080995FC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r1, _08099600 @ =0x00001034 - adds r2, r0, r1 - lsls r1, r5, 2 - ldr r4, _08099604 @ =0x00001050 - adds r0, r4 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, 0 - str r1, [r0] -_080995D0: - ldr r2, [r3] - ldr r5, _08099600 @ =0x00001034 - adds r2, r5 - ldr r1, [r2] - ldr r0, _08099608 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080995F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995FC: .4byte gUnknown_083B6DB4 -_08099600: .4byte 0x00001034 -_08099604: .4byte 0x00001050 -_08099608: .4byte sub_80999C4 - thumb_func_end sub_8099584 - - thumb_func_start sub_809960C -sub_809960C: @ 809960C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r0, 0xE - bne _08099654 - ldr r4, _08099648 @ =gUnknown_083B6DB4 - ldr r0, [r4] - lsls r1, r6, 2 - ldr r2, _0809964C @ =0x00001038 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _08099650 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - 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, 0x43 - movs r1, 0xB - strb r1, [r0] - b _0809968A - .align 2, 0 -_08099648: .4byte gUnknown_083B6DB4 -_0809964C: .4byte 0x00001038 -_08099650: .4byte 0x00001034 -_08099654: - ldr r5, _080996A0 @ =gUnknown_083B6DB4 - ldr r0, [r5] - lsls r1, r6, 2 - ldr r2, _080996A4 @ =0x00001050 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _080996A8 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r4, [r3] - adds r0, r6, 0 - movs r1, 0x6 - bl __umodsi3 - movs r1, 0x12 - subs r1, r0 - adds r4, 0x43 - strb r1, [r4] - adds r4, r5, 0 -_0809968A: - ldr r1, [r4] - ldr r2, _080996A8 @ =0x00001034 - adds r1, r2 - ldr r2, [r1] - ldr r0, _080996AC @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996A0: .4byte gUnknown_083B6DB4 -_080996A4: .4byte 0x00001050 -_080996A8: .4byte 0x00001034 -_080996AC: .4byte SpriteCallbackDummy - thumb_func_end sub_809960C - - thumb_func_start sub_80996B0 -sub_80996B0: @ 80996B0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0xE - bne _080996D8 - ldr r3, _080996CC @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _080996D0 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _080996D4 @ =0x00001038 - b _080996E4 - .align 2, 0 -_080996CC: .4byte gUnknown_083B6DB4 -_080996D0: .4byte 0x000010c8 -_080996D4: .4byte 0x00001038 -_080996D8: - ldr r3, _08099704 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099708 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _0809970C @ =0x00001050 -_080996E4: - adds r0, r4 - adds r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _08099710 @ =0x00001034 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08099714 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - ldr r4, _08099718 @ =0x00001170 - adds r1, r4 - movs r0, 0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099704: .4byte gUnknown_083B6DB4 -_08099708: .4byte 0x000010c8 -_0809970C: .4byte 0x00001050 -_08099710: .4byte 0x00001034 -_08099714: .4byte SpriteCallbackDummy -_08099718: .4byte 0x00001170 - thumb_func_end sub_80996B0 - - thumb_func_start sub_809971C -sub_809971C: @ 809971C - push {r4-r7,lr} - ldr r0, _08099730 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _08099734 @ =0x00001170 - adds r7, r2, r0 - ldrb r0, [r7] - cmp r0, 0x10 - bne _08099738 - movs r0, 0 - b _08099800 - .align 2, 0 -_08099730: .4byte gUnknown_083B6DB4 -_08099734: .4byte 0x00001170 -_08099738: - adds r0, 0x1 - strb r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809975E - ldr r1, _08099808 @ =0x000010c8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - ldr r4, _0809980C @ =0x00001034 - adds r0, r2, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] -_0809975E: - ldr r0, _08099808 @ =0x000010c8 - adds r5, r2, r0 - ldr r0, [r5] - ldr r1, [r0] - ldr r3, _08099810 @ =gSineTable - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _08099778 - adds r0, 0xF -_08099778: - asrs r0, 4 - strh r0, [r1, 0x24] - ldr r0, _0809980C @ =0x00001034 - adds r6, r2, r0 - ldr r1, [r6] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08099792 - adds r0, 0xF -_08099792: - asrs r0, 4 - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r7] - cmp r0, 0x8 - bne _080997DE - ldr r4, [r6] - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x5] - ldr r2, [r6] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - adds r2, 0x43 - strb r0, [r2] - ldr r0, [r5] - ldr r2, [r0] - ldrb r0, [r2, 0x5] - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x5] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080997DE: - ldrb r0, [r7] - cmp r0, 0x10 - bne _080997FE - ldr r1, [r6] - ldr r0, [r5] - ldr r0, [r0] - str r0, [r6] - ldr r0, [r5] - str r1, [r0] - ldr r1, [r6] - ldr r0, _08099814 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r0, [r5] - ldr r1, [r0] - ldr r0, _08099818 @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_080997FE: - movs r0, 0x1 -_08099800: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08099808: .4byte 0x000010c8 -_0809980C: .4byte 0x00001034 -_08099810: .4byte gSineTable -_08099814: .4byte sub_80999C4 -_08099818: .4byte SpriteCallbackDummy - thumb_func_end sub_809971C - - thumb_func_start sub_809981C -sub_809981C: @ 809981C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0x1 - beq _08099858 - cmp r0, 0x1 - bgt _08099836 - cmp r0, 0 - beq _0809983C - b _080998C0 -_08099836: - cmp r2, 0x2 - beq _0809987C - b _080998C0 -_0809983C: - ldr r3, _0809984C @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099850 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099854 @ =0x00001038 - b _08099864 - .align 2, 0 -_0809984C: .4byte gUnknown_083B6DB4 -_08099850: .4byte 0x000010cc -_08099854: .4byte 0x00001038 -_08099858: - ldr r3, _08099870 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099874 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099878 @ =0x00001050 -_08099864: - adds r0, r4 - adds r1, r0 - str r1, [r2] - adds r0, r3, 0 - b _0809988A - .align 2, 0 -_08099870: .4byte gUnknown_083B6DB4 -_08099874: .4byte 0x000010cc -_08099878: .4byte 0x00001050 -_0809987C: - ldr r0, _080998C8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _080998CC @ =0x000010cc - adds r2, r1, r3 - ldr r4, _080998D0 @ =0x00001034 - adds r1, r4 - str r1, [r2] -_0809988A: - ldr r0, [r0] - ldr r1, _080998CC @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080998C0 - bl InitSpriteAffineAnim - ldr r0, [r4] - 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 r0, [r4] - ldr r1, [r0] - ldr r0, _080998D4 @ =gUnknown_083B6F5C - str r0, [r1, 0x10] - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAffineAnim -_080998C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080998C8: .4byte gUnknown_083B6DB4 -_080998CC: .4byte 0x000010cc -_080998D0: .4byte 0x00001034 -_080998D4: .4byte gUnknown_083B6F5C - thumb_func_end sub_809981C - - thumb_func_start sub_80998D8 -sub_80998D8: @ 80998D8 - push {lr} - ldr r0, _080998FC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099900 @ =0x000010cc - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0 - beq _080998F8 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _08099904 -_080998F8: - movs r0, 0 - b _0809991A - .align 2, 0 -_080998FC: .4byte gUnknown_083B6DB4 -_08099900: .4byte 0x000010cc -_08099904: - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08099918 - movs r0, 0x4 - orrs r0, r2 - strb r0, [r3] -_08099918: - movs r0, 0x1 -_0809991A: - pop {r1} - bx r1 - thumb_func_end sub_80998D8 - - thumb_func_start sub_8099920 -sub_8099920: @ 8099920 - push {r4,lr} - ldr r0, _08099950 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099954 @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0809994A - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - ldr r0, [r0] - bl sub_8099BE0 - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_0809994A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099950: .4byte gUnknown_083B6DB4 -_08099954: .4byte 0x000010cc - thumb_func_end sub_8099920 - - thumb_func_start sub_8099958 -sub_8099958: @ 8099958 - push {lr} - ldr r0, _08099988 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809998C @ =0x000010cc - adds r3, r0, r1 - ldr r0, [r3] - ldr r0, [r0] - cmp r0, 0 - beq _08099982 - 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] - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAffineAnim -_08099982: - pop {r0} - bx r0 - .align 2, 0 -_08099988: .4byte gUnknown_083B6DB4 -_0809998C: .4byte 0x000010cc - thumb_func_end sub_8099958 - - thumb_func_start sub_8099990 -sub_8099990: @ 8099990 - push {lr} - ldr r0, _080999A4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080999A8 @ =0x000010cc - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - bne _080999AC - movs r0, 0 - b _080999C0 - .align 2, 0 -_080999A4: .4byte gUnknown_083B6DB4 -_080999A8: .4byte 0x000010cc -_080999AC: - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080999BE - movs r0, 0 - str r0, [r2] -_080999BE: - movs r0, 0x1 -_080999C0: - pop {r1} - bx r1 - thumb_func_end sub_8099990 - - thumb_func_start sub_80999C4 -sub_80999C4: @ 80999C4 - ldr r1, _080999E4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - 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 -_080999E4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_80999C4 - - thumb_func_start sub_80999E8 -sub_80999E8: @ 80999E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _08099A58 @ =gUnknown_083B6DB4 - ldr r0, [r1] - movs r2, 0x89 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, r3 - beq _08099A20 - adds r6, r2, 0 - movs r5, 0x89 - lsls r5, 5 -_08099A08: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A20 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08099A08 -_08099A20: - cmp r4, 0x28 - bne _08099A60 - movs r4, 0 - ldr r0, [r2] - movs r5, 0x89 - lsls r5, 5 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08099A4E - adds r6, r2, 0 -_08099A36: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A4E - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08099A36 -_08099A4E: - cmp r4, 0x28 - bne _08099A60 - ldr r0, _08099A5C @ =0x0000ffff - b _08099A94 - .align 2, 0 -_08099A58: .4byte gUnknown_083B6DB4 -_08099A5C: .4byte 0x0000ffff -_08099A60: - ldr r1, [r2] - lsls r2, r4, 1 - movs r5, 0x89 - lsls r5, 5 - adds r0, r1, r5 - adds r0, r2 - strh r3, [r0] - ldr r0, _08099A9C @ =0x000010d0 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r4, 20 - lsrs r4, 16 - ldr r1, _08099AA0 @ =gMonIconTable - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 5 - ldr r2, _08099AA4 @ =0x06010000 - adds r1, r2 - ldr r2, _08099AA8 @ =0x04000080 - bl CpuSet - adds r0, r4, 0 -_08099A94: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08099A9C: .4byte 0x000010d0 -_08099AA0: .4byte gMonIconTable -_08099AA4: .4byte 0x06010000 -_08099AA8: .4byte 0x04000080 - thumb_func_end sub_80999E8 - - thumb_func_start sub_8099AAC -sub_8099AAC: @ 8099AAC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0 - ldr r0, _08099AE4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r5, r0, r1 - subs r1, 0x50 - adds r4, r0, r1 - ldr r0, _08099AE8 @ =0x0000ffff - adds r7, r0, 0 -_08099AC6: - lsls r1, r3, 1 - adds r2, r5, r1 - ldrh r0, [r2] - cmp r0, r6 - bne _08099AEC - adds r1, r4, r1 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ands r0, r7 - cmp r0, 0 - bne _08099AF6 - strh r0, [r2] - b _08099AF6 - .align 2, 0 -_08099AE4: .4byte gUnknown_083B6DB4 -_08099AE8: .4byte 0x0000ffff -_08099AEC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x27 - bls _08099AC6 -_08099AF6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099AAC - - thumb_func_start sub_8099AFC -sub_8099AFC: @ 8099AFC - 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, _08099BAC @ =gSpriteTemplate_83B6F14 - 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 mon_icon_convert_unown_species_id - mov r10, r0 - mov r6, r10 - mov r2, sp - ldr r1, _08099BB0 @ =gMonIconPaletteIndices - adds r1, r6, r1 - ldr r3, _08099BB4 @ =0x0000dac0 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2, 0x2] - adds r0, r6, 0 - bl sub_80999E8 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - ldr r0, _08099BB8 @ =0x0000ffff - cmp r5, r0 - beq _08099BCE - 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 _08099BC8 - ldr r1, _08099BBC @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r2, _08099BC0 @ =0x000003ff - ands r2, r5 - ldrh r3, [r0, 0x4] - ldr r1, _08099BC4 @ =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 _08099BD0 - .align 2, 0 -_08099BAC: .4byte gSpriteTemplate_83B6F14 -_08099BB0: .4byte gMonIconPaletteIndices -_08099BB4: .4byte 0x0000dac0 -_08099BB8: .4byte 0x0000ffff -_08099BBC: .4byte gSprites -_08099BC0: .4byte 0x000003ff -_08099BC4: .4byte 0xfffffc00 -_08099BC8: - adds r0, r6, 0 - bl sub_8099AAC -_08099BCE: - movs r0, 0 -_08099BD0: - 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_8099AFC - - thumb_func_start sub_8099BE0 -sub_8099BE0: @ 8099BE0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - bl sub_8099AAC - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099BE0 - - thumb_func_start sub_8099BF8 -sub_8099BF8: @ 8099BF8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08099C50 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099C54 @ =0x000008ba - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r2, _08099C58 @ =0x000008b4 - adds r0, r2 - strh r1, [r0] - str r1, [sp] - ldr r1, _08099C5C @ =0x040000d4 - mov r0, sp - str r0, [r1] - ldr r0, _08099C60 @ =0x0600d000 - str r0, [r1, 0x4] - ldr r0, _08099C64 @ =0x85000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0 - bl sub_8099EB0 - adds r0, r4, 0 - bl sub_809A23C - bl sub_809A6DC - adds r0, r4, 0 - bl sub_8098C48 - ldr r1, _08099C68 @ =REG_BG2CNT - ldr r2, _08099C6C @ =0x00005a0a - adds r0, r2, 0 - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099C50: .4byte gUnknown_083B6DB4 -_08099C54: .4byte 0x000008ba -_08099C58: .4byte 0x000008b4 -_08099C5C: .4byte 0x040000d4 -_08099C60: .4byte 0x0600d000 -_08099C64: .4byte 0x85000400 -_08099C68: .4byte REG_BG2CNT -_08099C6C: .4byte 0x00005a0a - thumb_func_end sub_8099BF8 - - thumb_func_start sub_8099C70 -sub_8099C70: @ 8099C70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - bl sub_8099D90 - lsls r0, 24 - asrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099EB0 - ldr r0, _08099D10 @ =gUnknown_083B6DB4 - ldr r2, [r0] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - ldr r3, _08099D14 @ =0x000008b6 - adds r1, r2, r3 - strh r0, [r1] - ldr r0, _08099D18 @ =0x000008b8 - adds r1, r2, r0 - movs r0, 0x20 - strh r0, [r1] - ldr r1, _08099D1C @ =0x000008bb - adds r0, r2, r1 - strb r5, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CAE - movs r1, 0x5 -_08099CAE: - ldr r3, _08099D20 @ =0x000008bc - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D24 @ =0x000008be - adds r0, r2, r1 - strh r4, [r0] - movs r1, 0x38 - cmp r4, 0 - ble _08099CC6 - movs r3, 0x84 - lsls r3, 1 - adds r1, r3, 0 -_08099CC6: - movs r3, 0x8C - lsls r3, 4 - adds r0, r2, r3 - strh r1, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CD6 - movs r1, 0x5 -_08099CD6: - ldr r3, _08099D28 @ =0x000008c2 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D2C @ =0x000008c4 - adds r0, r2, r1 - strh r4, [r0] - adds r3, 0x4 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - ldr r0, _08099D30 @ =0x000008c8 - adds r1, r2, r0 - movs r0, 0x2 - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809900C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809A3D0 - adds r0, r4, 0 - bl sub_809A774 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D10: .4byte gUnknown_083B6DB4 -_08099D14: .4byte 0x000008b6 -_08099D18: .4byte 0x000008b8 -_08099D1C: .4byte 0x000008bb -_08099D20: .4byte 0x000008bc -_08099D24: .4byte 0x000008be -_08099D28: .4byte 0x000008c2 -_08099D2C: .4byte 0x000008c4 -_08099D30: .4byte 0x000008c8 - thumb_func_end sub_8099C70 - - thumb_func_start sub_8099D34 -sub_8099D34: @ 8099D34 - push {r4,lr} - bl sub_80990AC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08099D78 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _08099D7C @ =0x000008b8 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _08099D88 - ldr r4, _08099D80 @ =0x000008b4 - adds r2, r1, r4 - adds r4, 0x2 - adds r0, r1, r4 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r1 - ldr r1, _08099D84 @ =0x000001ff - ands r0, r1 - strh r0, [r2] - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _08099D74 - bl sub_809A598 - bl sub_809A810 -_08099D74: - movs r0, 0x1 - b _08099D8A - .align 2, 0 -_08099D78: .4byte gUnknown_083B6DB4 -_08099D7C: .4byte 0x000008b8 -_08099D80: .4byte 0x000008b4 -_08099D84: .4byte 0x000001ff -_08099D88: - adds r0, r2, 0 -_08099D8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D34 - - thumb_func_start sub_8099D90 -sub_8099D90: @ 8099D90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - cmp r1, r4 - beq _08099DBA -_08099DA4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _08099DB0 - movs r1, 0 -_08099DB0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r1, r4 - bne _08099DA4 -_08099DBA: - movs r0, 0x1 - negs r0, r0 - cmp r2, 0x6 - bhi _08099DC4 - movs r0, 0x1 -_08099DC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D90 - - thumb_func_start sub_8099DCC -sub_8099DCC: @ 8099DCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08099DF8 @ =gPokemonStorage - ldr r2, _08099DFC @ =0x000083c2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - strb r4, [r0] - ldr r0, _08099E00 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08099E04 @ =0x00001032 - adds r0, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099DF8: .4byte gPokemonStorage -_08099DFC: .4byte 0x000083c2 -_08099E00: .4byte gUnknown_083B6DB4 -_08099E04: .4byte 0x00001032 - thumb_func_end sub_8099DCC - - thumb_func_start sub_8099E08 -sub_8099E08: @ 8099E08 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08099E24 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08099E28 @ =0x00001032 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08099E54 - cmp r0, 0x1 - bgt _08099E2C - cmp r0, 0 - beq _08099E36 - b _08099EA6 - .align 2, 0 -_08099E24: .4byte gUnknown_083B6DB4 -_08099E28: .4byte 0x00001032 -_08099E2C: - cmp r0, 0x2 - beq _08099E90 - cmp r0, 0x3 - beq _08099EA2 - b _08099EA6 -_08099E36: - ldr r1, _08099E4C @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E50 @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E4C: .4byte 0x00000d08 -_08099E50: .4byte 0x0000ffff -_08099E54: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8099EB0 - bl sub_809A654 - ldr r1, _08099E88 @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E8C @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E88: .4byte 0x00000d08 -_08099E8C: .4byte 0x0000ffff -_08099E90: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 -_08099E9A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08099EA6 -_08099EA2: - movs r0, 0 - b _08099EA8 -_08099EA6: - movs r0, 0x1 -_08099EA8: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099E08 - - thumb_func_start sub_8099EB0 -sub_8099EB0: @ 8099EB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r1, 0 - beq _08099ED8 - ldr r0, _08099F38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r2, 0 - ldr r3, _08099F3C @ =0x000008ba - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _08099ED0 - movs r2, 0x1 -_08099ED0: - strb r2, [r1] - ldr r0, _08099F40 @ =0x0600d000 - bl sub_809A14C -_08099ED8: - ldr r0, _08099F44 @ =gPokemonStorage - ldr r1, _08099F48 @ =0x000083c2 - adds r0, r1 - adds r0, r4, r0 - ldrb r4, [r0] - lsls r4, 4 - ldr r0, _08099F4C @ =gWallpaperTable - adds r4, r0 - ldr r0, [r4, 0xC] - ldr r1, _08099F38 @ =gUnknown_083B6DB4 - ldr r5, [r1] - ldr r2, _08099F3C @ =0x000008ba - adds r6, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 20 - movs r3, 0x80 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x60 - bl LoadPalette - ldr r0, [r4, 0x8] - ldr r1, _08099F50 @ =0x00000d62 - adds r5, r1 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08099F40 @ =0x0600d000 - lsls r2, r7, 24 - asrs r2, 24 - ldrb r3, [r6] - adds r1, r5, 0 - bl sub_8099F58 - ldr r0, [r4] - ldrb r1, [r6] - lsls r1, 13 - ldr r2, _08099F54 @ =0x06008000 - adds r1, r2 - bl LZ77UnCompVram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099F38: .4byte gUnknown_083B6DB4 -_08099F3C: .4byte 0x000008ba -_08099F40: .4byte 0x0600d000 -_08099F44: .4byte gPokemonStorage -_08099F48: .4byte 0x000083c2 -_08099F4C: .4byte gWallpaperTable -_08099F50: .4byte 0x00000d62 -_08099F54: .4byte 0x06008000 - thumb_func_end sub_8099EB0 - - thumb_func_start sub_8099F58 -sub_8099F58: @ 8099F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r9, r0 - adds r5, r1, 0 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r3, 8 - str r0, [sp] - lsls r0, r3, 1 - adds r0, r3 - adds r0, 0x4 - lsls r0, 28 - lsrs r0, 16 - str r0, [sp, 0x4] - ldr r0, _08099FB8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099FBC @ =0x000008b4 - adds r0, r1 - ldrh r1, [r0] - lsrs r1, 3 - adds r1, 0xA - lsrs r0, r2, 24 - mov r8, r0 - asrs r2, 24 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - movs r0, 0x3F - ands r1, r0 - str r1, [sp, 0x8] - adds r2, r1, 0 - cmp r2, 0xC - bgt _08099FC0 - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - adds r0, 0x80 - mov r1, r9 - adds r4, r1, r0 - movs r7, 0 - b _0809A020 - .align 2, 0 -_08099FB8: .4byte gUnknown_083B6DB4 -_08099FBC: .4byte 0x000008b4 -_08099FC0: - cmp r2, 0x1F - bgt _08099FE6 - movs r0, 0x20 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - adds r0, 0x80 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0x88 - lsls r7, 4 - add r7, r9 - b _0809A020 -_08099FE6: - cmp r2, 0x2C - bgt _08099FFE - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0 - b _0809A020 -_08099FFE: - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - mov r7, r9 - adds r7, 0x80 -_0809A020: - movs r1, 0 - mov r0, r8 - lsls r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 16 - asrs r0, 16 - mov r8, r0 - lsls r3, 16 - str r3, [sp, 0xC] - asrs r2, r3, 16 - str r2, [sp, 0x10] -_0809A036: - movs r3, 0 - adds r0, r4, 0 - adds r0, 0x40 - str r0, [sp, 0x18] - adds r2, r7, 0 - adds r2, 0x40 - str r2, [sp, 0x1C] - adds r1, 0x1 - mov r10, r1 - cmp r3, r8 - bge _0809A07A - ldr r0, _0809A0D4 @ =0x00000fff - mov r12, r0 - movs r6, 0xF0 - lsls r6, 8 -_0809A054: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r4 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - blt _0809A054 -_0809A07A: - movs r3, 0 - ldr r0, [sp, 0x10] - cmp r3, r0 - bge _0809A0B4 - ldr r1, _0809A0D4 @ =0x00000fff - mov r12, r1 - movs r6, 0xF0 - lsls r6, 8 - ldr r2, [sp, 0xC] - asrs r4, r2, 16 -_0809A08E: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r7 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _0809A08E -_0809A0B4: - ldr r4, [sp, 0x18] - ldr r7, [sp, 0x1C] - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A036 - ldr r0, [sp, 0x14] - asrs r2, r0, 24 - cmp r2, 0 - beq _0809A13A - cmp r2, 0 - ble _0809A0D8 - ldr r1, [sp, 0x8] - adds r1, 0x14 - b _0809A0DC - .align 2, 0 -_0809A0D4: .4byte 0x00000fff -_0809A0D8: - ldr r1, [sp, 0x8] - subs r1, 0x4 -_0809A0DC: - movs r0, 0x3F - ands r1, r0 - adds r4, r1, 0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A0EE - lsls r0, 1 - adds r0, 0x80 - b _0809A0F6 -_0809A0EE: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A0F6: - mov r1, r9 - adds r2, r1, r0 - movs r3, 0 - movs r6, 0 -_0809A0FE: - movs r1, 0 - adds r5, r3, 0x1 - lsls r3, r4, 16 -_0809A104: - strh r6, [r2] - adds r2, 0x40 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A104 - asrs r0, r3, 16 - adds r4, r0, 0x1 - movs r0, 0x3F - ands r4, r0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A126 - lsls r0, 1 - adds r0, 0x80 - b _0809A12E -_0809A126: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A12E: - mov r1, r9 - adds r2, r1, r0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0809A0FE -_0809A13A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099F58 - - thumb_func_start sub_809A14C -sub_809A14C: @ 809A14C - push {r4-r6,lr} - adds r2, r0, 0 - ldr r0, _0809A174 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A178 @ =0x000008b4 - 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 _0809A17C - lsls r0, 1 - movs r6, 0x98 - lsls r6, 3 - adds r0, r6 - b _0809A184 - .align 2, 0 -_0809A174: .4byte gUnknown_083B6DB4 -_0809A178: .4byte 0x000008b4 -_0809A17C: - lsls r0, 1 - movs r1, 0xC8 - lsls r1, 4 - adds r0, r1 -_0809A184: - adds r2, r0 - movs r0, 0 - movs r5, 0 - movs r4, 0x3F -_0809A18C: - strh r5, [r2] - adds r2, 0x2 - adds r3, 0x1 - ands r3, r4 - adds r1, r3, 0 - cmp r1, 0 - bne _0809A19E - ldr r6, _0809A1B8 @ =0xfffff7c0 - adds r2, r6 -_0809A19E: - cmp r1, 0x20 - bne _0809A1A8 - movs r1, 0xF8 - lsls r1, 3 - adds r2, r1 -_0809A1A8: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _0809A18C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A1B8: .4byte 0xfffff7c0 - thumb_func_end sub_809A14C - - thumb_func_start sub_809A1BC -sub_809A1BC: @ 809A1BC - push {r4-r6,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _0809A228 @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0809A22C @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - movs r6, 0x80 - lsls r6, 1 - ldr r0, _0809A230 @ =0x81000100 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809A234 @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_8004E3C - str r5, [r4] - ldr r3, [sp, 0x4] - str r3, [r4, 0x4] - ldr r1, _0809A238 @ =0x80000040 - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, r6 - str r0, [r4] - adds r0, r3, 0 - adds r0, 0x80 - str r0, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, 0 - adds r0, 0x80 - str r0, [r4] - adds r6, r3, r6 - str r6, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - adds r5, r0 - str r5, [r4] - adds r3, r0 - str r3, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A228: .4byte gUnknown_083B6DB8 -_0809A22C: .4byte 0x040000d4 -_0809A230: .4byte 0x81000100 -_0809A234: .4byte gWindowConfig_81E6D38 -_0809A238: .4byte 0x80000040 - thumb_func_end sub_809A1BC - - thumb_func_start sub_809A23C -sub_809A23C: @ 809A23C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r1, _0809A388 @ =0x000008ca - adds r7, r5, r1 - str r7, [sp, 0x18] - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0x20] - ldr r0, _0809A38C @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r3, _0809A390 @ =0x00000ccc - adds r0, r5, r3 - str r0, [sp] - ldr r4, _0809A394 @ =0x0000dac8 - strh r4, [r1, 0x4] - str r0, [sp, 0x8] - ldr r6, _0809A398 @ =0xffffdac9 - strh r6, [r1, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, _0809A39C @ =gPokemonStorage - mov r9, r0 - ldr r0, _0809A3A0 @ =0x000083c2 - add r0, r9 - add r0, r8 - ldrb r1, [r0] - ldr r2, _0809A3A4 @ =gUnknown_083BB0A8 - lsls r1, 2 - adds r0, r1, r2 - ldrh r3, [r0] - ldr r6, _0809A3A8 @ =0x00000ce8 - adds r0, r5, r6 - strh r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrh r1, [r1] - ldr r2, _0809A3AC @ =0x00000cea - adds r0, r5, r2 - strh r1, [r0] - mov r0, sp - bl LoadSpritePalettes - ldr r3, _0809A3B0 @ =0x00000d08 - adds r6, r5, r3 - movs r0, 0xFC - lsls r0, 2 - str r0, [r6] - adds r0, r4, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - movs r2, 0x87 - lsls r2, 1 - mov r10, r2 - add r1, r10 - ldr r3, _0809A3B4 @ =0x00000cec - adds r2, r5, r3 - strh r1, [r2] - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - ldr r0, [r6] - orrs r0, r1 - str r0, [r6] - ldr r0, _0809A3B8 @ =0x0000dac9 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - add r1, r10 - ldr r2, _0809A3BC @ =0x00000cee - adds r5, r2 - strh r1, [r5] - lsls r4, r0 - ldr r0, [r6] - orrs r0, r4 - str r0, [r6] - mov r3, r8 - lsls r4, r3, 3 - add r4, r8 - ldr r6, _0809A3C0 @ =0x00008344 - add r9, r6 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_809A1BC - ldr r0, [sp, 0x20] - bl LoadSpriteSheet - adds r0, r4, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - movs r4, 0 - lsls r0, 16 - asrs r6, r0, 16 -_0809A328: - lsls r1, r4, 5 - adds r1, r6, r1 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8 - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - lsls r0, r4, 2 - movs r3, 0xCF - lsls r3, 4 - adds r2, r5, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A3C8 @ =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 _0809A328 - ldr r6, _0809A3CC @ =0x00000cca - adds r1, r5, r6 - movs r0, 0 - strb r0, [r1] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A384: .4byte gUnknown_083B6DB4 -_0809A388: .4byte 0x000008ca -_0809A38C: .4byte 0x00030200 -_0809A390: .4byte 0x00000ccc -_0809A394: .4byte 0x0000dac8 -_0809A398: .4byte 0xffffdac9 -_0809A39C: .4byte gPokemonStorage -_0809A3A0: .4byte 0x000083c2 -_0809A3A4: .4byte gUnknown_083BB0A8 -_0809A3A8: .4byte 0x00000ce8 -_0809A3AC: .4byte 0x00000cea -_0809A3B0: .4byte 0x00000d08 -_0809A3B4: .4byte 0x00000cec -_0809A3B8: .4byte 0x0000dac9 -_0809A3BC: .4byte 0x00000cee -_0809A3C0: .4byte 0x00008344 -_0809A3C4: .4byte gSpriteTemplate_83BB2B8 -_0809A3C8: .4byte gSprites -_0809A3CC: .4byte 0x00000cca - thumb_func_end sub_809A23C - - thumb_func_start sub_809A3D0 -sub_809A3D0: @ 809A3D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r3, _0809A43C @ =gUnknown_083B6DB4 - ldr r5, [r3] - ldr r1, _0809A440 @ =0x000008ca - adds r0, r5, r1 - str r0, [sp, 0x18] - add r2, sp, 0x18 - ldr r4, _0809A444 @ =0x0000ffff - mov r9, r4 - movs r6, 0xC0 - lsls r6, 10 - mov r8, r6 - ldr r0, _0809A448 @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - movs r1, 0 - ldr r7, _0809A450 @ =0x00000cca - adds r4, r5, r7 - ldrb r0, [r4] - adds r6, r2, 0 - cmp r0, 0 - bne _0809A41E - movs r1, 0x1 -_0809A41E: - strb r1, [r4] - cmp r1, 0 - bne _0809A458 - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - mov r4, r8 - orrs r0, r4 - str r0, [r6, 0x4] - ldr r7, _0809A454 @ =0x00000cec - adds r0, r5, r7 - ldrh r0, [r0] - mov r8, r0 - b _0809A478 - .align 2, 0 -_0809A43C: .4byte gUnknown_083B6DB4 -_0809A440: .4byte 0x000008ca -_0809A444: .4byte 0x0000ffff -_0809A448: .4byte 0x00030200 -_0809A44C: .4byte gSpriteTemplate_83BB2B8 -_0809A450: .4byte 0x00000cca -_0809A454: .4byte 0x00000cec -_0809A458: - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r6, 0x4] - ldr r4, _0809A570 @ =0x00000cec - adds r0, r5, r4 - ldrh r0, [r0] - mov r8, r0 - mov r1, sp - movs r0, 0x4 - strh r0, [r1] - ldr r0, _0809A574 @ =0x0000dac9 - strh r0, [r1, 0x2] -_0809A478: - ldr r0, [r3] - ldr r7, _0809A578 @ =0x000008ca - adds r0, r7 - ldr r1, [sp, 0x28] - lsls r5, r1, 3 - adds r5, r1 - ldr r4, _0809A57C @ =gUnknown_020383E4 - adds r5, r4 - adds r1, r5, 0 - bl sub_809A1BC - adds r0, r6, 0 - bl LoadSpriteSheet - adds r4, 0x7E - ldr r3, [sp, 0x28] - adds r4, r3, r4 - ldrb r0, [r4] - lsls r0, 2 - ldr r1, _0809A580 @ =gUnknown_083BB0A8 - adds r0, r1 - mov r1, r8 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - lsls r0, 16 - mov r4, r10 - lsls r2, r4, 24 - asrs r2, 24 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 6 - lsrs r6, r0, 16 - str r6, [sp, 0x20] - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x24] - movs r7, 0 - negs r2, r2 - mov r9, r2 - movs r0, 0x1 - mov r10, r0 -_0809A4DE: - lsls r1, r7, 5 - mov r8, r1 - ldr r3, [sp, 0x24] - lsls r1, r3, 16 - asrs r1, 16 - add r1, r8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A584 @ =gUnknown_083B6DB4 - ldr r4, [r1] - lsls r6, r7, 2 - ldr r1, _0809A588 @ =0x00000cf8 - adds r2, r4, r1 - adds r2, r6 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0809A58C @ =gSprites - adds r1, r0 - str r1, [r2] - mov r3, r9 - lsls r5, r3, 1 - add r5, r9 - lsls r5, 1 - strh r5, [r1, 0x2E] - ldr r1, [r2] - ldr r3, [sp, 0x20] - lsls r0, r3, 16 - asrs r0, 16 - add r0, r8 - strh r0, [r1, 0x30] - ldr r0, [r2] - mov r1, r10 - strh r1, [r0, 0x32] - ldr r0, [r2] - ldr r1, _0809A590 @ =sub_809A5E8 - str r1, [r0, 0x1C] - lsls r1, r7, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r3, 0xCF - lsls r3, 4 - adds r4, r3 - adds r4, r6 - ldr r0, [r4] - strh r5, [r0, 0x2E] - ldr r0, [r4] - mov r6, r10 - strh r6, [r0, 0x30] - ldr r1, [r4] - ldr r0, _0809A594 @ =sub_809A61C - str r0, [r1, 0x1C] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _0809A4DE - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A570: .4byte 0x00000cec -_0809A574: .4byte 0x0000dac9 -_0809A578: .4byte 0x000008ca -_0809A57C: .4byte gUnknown_020383E4 -_0809A580: .4byte gUnknown_083BB0A8 -_0809A584: .4byte gUnknown_083B6DB4 -_0809A588: .4byte 0x00000cf8 -_0809A58C: .4byte gSprites -_0809A590: .4byte sub_809A5E8 -_0809A594: .4byte sub_809A61C - thumb_func_end sub_809A3D0 - - thumb_func_start sub_809A598 -sub_809A598: @ 809A598 - push {lr} - ldr r0, _0809A5B0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A5B4 @ =0x00000cca - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A5B8 - movs r0, 0x4 - bl FreeSpriteTilesByTag - b _0809A5BE - .align 2, 0 -_0809A5B0: .4byte gUnknown_083B6DB4 -_0809A5B4: .4byte 0x00000cca -_0809A5B8: - movs r0, 0x3 - bl FreeSpriteTilesByTag -_0809A5BE: - ldr r0, _0809A5E0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xCF - lsls r3, 4 - adds r2, r0, r3 - adds r3, 0x8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _0809A5E4 @ =0x00000cf4 - adds r1, r0, r2 - adds r3, 0x4 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809A5E0: .4byte gUnknown_083B6DB4 -_0809A5E4: .4byte 0x00000cf4 - thumb_func_end sub_809A598 - - thumb_func_start sub_809A5E8 -sub_809A5E8: @ 809A5E8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A5FC - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - b _0809A614 -_0809A5FC: - 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 _0809A614 - ldr r0, _0809A618 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0809A614: - pop {r0} - bx r0 - .align 2, 0 -_0809A618: .4byte SpriteCallbackDummy - thumb_func_end sub_809A5E8 - - thumb_func_start sub_809A61C -sub_809A61C: @ 809A61C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A630 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - b _0809A64E -_0809A630: - 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 _0809A64E - adds r0, r2, 0 - bl DestroySprite -_0809A64E: - pop {r0} - bx r0 - thumb_func_end sub_809A61C - - thumb_func_start sub_809A654 -sub_809A654: @ 809A654 - push {lr} - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A690 @ =gPokemonStorage - ldr r2, _0809A694 @ =0x000083c2 - adds r1, r2 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _0809A698 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809A69C @ =0x00000cca - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A6A8 - lsls r0, r1, 2 - ldr r1, _0809A6A0 @ =gUnknown_083BB0A8 - adds r0, r1 - adds r3, 0x22 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6A4 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet - b _0809A6C0 - .align 2, 0 -_0809A690: .4byte gPokemonStorage -_0809A694: .4byte 0x000083c2 -_0809A698: .4byte gUnknown_083B6DB4 -_0809A69C: .4byte 0x00000cca -_0809A6A0: .4byte gUnknown_083BB0A8 -_0809A6A4: .4byte gPlttBufferUnfaded -_0809A6A8: - lsls r0, r1, 2 - ldr r1, _0809A6C4 @ =gUnknown_083BB0A8 - adds r0, r1 - ldr r3, _0809A6C8 @ =0x00000cee - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6CC @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet -_0809A6C0: - pop {r0} - bx r0 - .align 2, 0 -_0809A6C4: .4byte gUnknown_083BB0A8 -_0809A6C8: .4byte 0x00000cee -_0809A6CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_809A654 - - thumb_func_start sub_809A6D0 -sub_809A6D0: @ 809A6D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - movs r0, 0xB0 - subs r0, r1 - bx lr - thumb_func_end sub_809A6D0 - - thumb_func_start sub_809A6DC -sub_809A6DC: @ 809A6DC - push {r4,r5,lr} - ldr r0, _0809A760 @ =gUnknown_083BB288 - bl LoadSpriteSheet - ldr r0, _0809A764 @ =gUnknown_083BB290 - bl LoadSpritePalette - movs r5, 0 -_0809A6EC: - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 19 - movs r0, 0xB8 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0 - movs r2, 0x1C - movs r3, 0x15 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0809A73E - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A76C @ =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 _0809A72C - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_0809A72C: - strh r0, [r4, 0x34] - ldr r0, _0809A770 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r5, 2 - movs r2, 0xD0 - lsls r2, 4 - adds r0, r2 - adds r0, r1 - str r4, [r0] -_0809A73E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0809A6EC - bl sub_809BF2C - lsls r0, 24 - cmp r0, 0 - beq _0809A758 - movs r0, 0x1 - bl sub_809A860 -_0809A758: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A760: .4byte gUnknown_083BB288 -_0809A764: .4byte gUnknown_083BB290 -_0809A768: .4byte gSpriteTemplate_83BB2F0 -_0809A76C: .4byte gSprites -_0809A770: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A6DC - - thumb_func_start sub_809A774 -sub_809A774: @ 809A774 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - ldr r7, _0809A7C4 @ =gUnknown_083B6DB4 - ldr r0, [r7] - movs r1, 0xD0 - lsls r1, 4 - adds r3, r0, r1 - movs r5, 0 - movs r4, 0x2 -_0809A78A: - lsls r1, r2, 2 - adds r1, r3, r1 - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r0, [r1] - strh r4, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A78A - lsls r0, r6, 24 - cmp r0, 0 - bge _0809A7CC - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, _0809A7C8 @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0x48 - b _0809A7E8 - .align 2, 0 -_0809A7C4: .4byte gUnknown_083B6DB4 -_0809A7C8: .4byte 0x00000d04 -_0809A7CC: - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0xF8 -_0809A7E8: - strh r2, [r0, 0x32] - ldr r0, [r1] - strh r2, [r0, 0x32] - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, 0 - strh r0, [r2, 0x3C] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x1 - strh r0, [r1, 0x3C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A80C: .4byte 0x00000d04 - thumb_func_end sub_809A774 - - thumb_func_start sub_809A810 -sub_809A810: @ 809A810 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _0809A85C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r5, 0 - movs r6, 0x5 - negs r6, r6 -_0809A824: - lsls r1, r3, 2 - adds r1, r4, r1 - 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 _0809A824 - movs r0, 0x1 - bl sub_809A860 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A85C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A810 - - thumb_func_start sub_809A860 -sub_809A860: @ 809A860 - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - beq _0809A89C - movs r2, 0 - ldr r0, _0809A898 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r3, 0 - movs r5, 0x1 -_0809A878: - lsls r1, r2, 2 - adds r1, r4, r1 - ldr r0, [r1] - strh r5, [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 _0809A878 - b _0809A8BC - .align 2, 0 -_0809A898: .4byte gUnknown_083B6DB4 -_0809A89C: - movs r2, 0 - ldr r0, _0809A8C4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xD0 - lsls r3, 4 - adds r1, r0, r3 - movs r3, 0 -_0809A8AA: - lsls r0, r2, 2 - adds r0, r1, r0 - ldr r0, [r0] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A8AA -_0809A8BC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A8C4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A860 - - thumb_func_start sub_809A8C8 -sub_809A8C8: @ 809A8C8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _0809A994 - lsls r0, 2 - ldr r1, _0809A8E0 @ =_0809A8E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A8E0: .4byte _0809A8E4 - .align 2, 0 -_0809A8E4: - .4byte _0809A8F8 - .4byte _0809A8FE - .4byte _0809A92C - .4byte _0809A932 - .4byte _0809A984 -_0809A8F8: - movs r0, 0 - strh r0, [r2, 0x24] - b _0809A994 -_0809A8FE: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0809A994 - 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 _0809A994 - strh r1, [r2, 0x32] - strh r1, [r2, 0x24] - b _0809A994 -_0809A92C: - movs r0, 0x3 - strh r0, [r2, 0x2E] - b _0809A994 -_0809A932: - ldr r0, _0809A97C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809A980 @ =0x000008b6 - 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 _0809A958 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_0809A958: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _0809A994 - 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 _0809A994 - .align 2, 0 -_0809A97C: .4byte gUnknown_083B6DB4 -_0809A980: .4byte 0x000008b6 -_0809A984: - ldr r0, _0809A998 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A99C @ =0x000008b6 - adds r0, r1 - ldrh r1, [r2, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x20] -_0809A994: - pop {r0} - bx r0 - .align 2, 0 -_0809A998: .4byte gUnknown_083B6DB4 -_0809A99C: .4byte 0x000008b6 - thumb_func_end sub_809A8C8 - - thumb_func_start sub_809A9A0 -sub_809A9A0: @ 809A9A0 - 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, _0809AA0C @ =gSpriteTemplate_83BB2F0 - 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 _0809AA18 - movs r1, 0x1 - ands r1, r7 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _0809AA10 @ =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, _0809AA14 @ =SpriteCallbackDummy - str r0, [r4] - adds r0, r6, 0 - b _0809AA1A - .align 2, 0 -_0809AA0C: .4byte gSpriteTemplate_83BB2F0 -_0809AA10: .4byte gSprites -_0809AA14: .4byte SpriteCallbackDummy -_0809AA18: - movs r0, 0 -_0809AA1A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A9A0 - - thumb_func_start sub_809AA24 -sub_809AA24: @ 809AA24 - push {lr} - ldr r0, _0809AA38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r1, 0x1 - beq _0809AA40 - ldr r1, _0809AA3C @ =gUnknown_020384E4 - movs r0, 0 - strb r0, [r1] - b _0809AA44 - .align 2, 0 -_0809AA38: .4byte gUnknown_083B6DB4 -_0809AA3C: .4byte gUnknown_020384E4 -_0809AA40: - ldr r0, _0809AA78 @ =gUnknown_020384E4 - strb r1, [r0] -_0809AA44: - ldr r0, _0809AA7C @ =gUnknown_020384E5 - movs r1, 0 - strb r1, [r0] - ldr r0, _0809AA80 @ =gUnknown_020384E6 - strb r1, [r0] - ldr r0, _0809AA84 @ =gUnknown_020384E7 - strb r1, [r0] - ldr r0, _0809AA88 @ =gUnknown_020384E8 - strb r1, [r0] - ldr r0, _0809AA8C @ =gUnknown_020384E9 - strb r1, [r0] - bl sub_809B0D4 - bl sub_809CC04 - ldr r0, _0809AA90 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AA94 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809AA78: .4byte gUnknown_020384E4 -_0809AA7C: .4byte gUnknown_020384E5 -_0809AA80: .4byte gUnknown_020384E6 -_0809AA84: .4byte gUnknown_020384E7 -_0809AA88: .4byte gUnknown_020384E8 -_0809AA8C: .4byte gUnknown_020384E9 -_0809AA90: .4byte gUnknown_083B6DB4 -_0809AA94: .4byte 0x000011e2 - thumb_func_end sub_809AA24 - - thumb_func_start sub_809AA98 -sub_809AA98: @ 809AA98 - push {lr} - bl sub_809CC04 - bl sub_809C028 - ldr r0, _0809AAC0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AAC4 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _0809AAC8 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809AABA - bl sub_8098BF0 -_0809AABA: - pop {r0} - bx r0 - .align 2, 0 -_0809AAC0: .4byte gUnknown_083B6DB4 -_0809AAC4: .4byte 0x000011e2 -_0809AAC8: .4byte gUnknown_020384E6 - thumb_func_end sub_809AA98 - - thumb_func_start sub_809AACC -sub_809AACC: @ 809AACC - 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 _0809AB84 - lsls r0, 2 - ldr r1, _0809AAE8 @ =_0809AAEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809AAE8: .4byte _0809AAEC - .align 2, 0 -_0809AAEC: - .4byte _0809AB00 - .4byte _0809AB2E - .4byte _0809AB56 - .4byte _0809AB5E - .4byte _0809AB7C -_0809AB00: - 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 _0809AB84 -_0809AB2E: - cmp r5, 0 - bne _0809AB3A - movs r0, 0x68 - strh r0, [r4] - movs r0, 0x34 - b _0809AB82 -_0809AB3A: - cmp r5, 0x6 - bne _0809AB46 - movs r0, 0x98 - strh r0, [r4] - movs r0, 0x84 - b _0809AB82 -_0809AB46: - movs r0, 0x98 - strh r0, [r4] - subs r1, r5, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - b _0809AB82 -_0809AB56: - movs r0, 0xA2 - strh r0, [r4] - movs r0, 0xC - b _0809AB82 -_0809AB5E: - ldr r0, _0809AB78 @ =gUnknown_020384E6 - ldrb r0, [r0] - movs r1, 0xE - cmp r0, 0 - beq _0809AB6A - movs r1, 0x8 -_0809AB6A: - strh r1, [r6] - movs r0, 0x58 - muls r0, r5 - adds r0, 0x78 - strh r0, [r4] - b _0809AB84 - .align 2, 0 -_0809AB78: .4byte gUnknown_020384E6 -_0809AB7C: - movs r0, 0xA0 - strh r0, [r4] - movs r0, 0x60 -_0809AB82: - strh r0, [r6] -_0809AB84: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_809AACC - - thumb_func_start sub_809AB8C -sub_809AB8C: @ 809AB8C - push {lr} - ldr r0, _0809ABB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809ABC0 - cmp r0, 0x1 - bne _0809ABF8 - ldr r0, _0809ABB8 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809ABBC @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - b _0809ABEA - .align 2, 0 -_0809ABB4: .4byte gUnknown_020384E4 -_0809ABB8: .4byte gUnknown_020384E5 -_0809ABBC: .4byte gPlayerParty -_0809ABC0: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809ABF0 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809ABF4 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData -_0809ABEA: - lsls r0, 16 - lsrs r0, 16 - b _0809ABFA - .align 2, 0 -_0809ABF0: .4byte gUnknown_020384E5 -_0809ABF4: .4byte gUnknown_020300A4 -_0809ABF8: - movs r0, 0 -_0809ABFA: - pop {r1} - bx r1 - thumb_func_end sub_809AB8C - - thumb_func_start sub_809AC00 -sub_809AC00: @ 809AC00 - push {r4-r6,lr} - ldr r0, _0809AC14 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809AC18 @ =0x000011dc - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809AC1C - movs r0, 0 - b _0809AD2C - .align 2, 0 -_0809AC14: .4byte gUnknown_083B6DB4 -_0809AC18: .4byte 0x000011dc -_0809AC1C: - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809AD0C - ldr r1, _0809ACF4 @ =0x000011c8 - adds r3, r4, r1 - ldr r2, _0809ACF8 @ =0x000011d0 - adds r1, r4, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r1 - str r0, [r3] - ldr r6, _0809ACFC @ =0x000011cc - adds r2, r4, r6 - ldr r0, _0809AD00 @ =0x000011d4 - adds r1, r4, r0 - ldr r0, [r2] - ldr r1, [r1] - adds r0, r1 - str r0, [r2] - movs r1, 0x8E - lsls r1, 5 - adds r5, r4, r1 - ldr r1, [r5] - ldr r0, [r3] - asrs r0, 8 - strh r0, [r1, 0x20] - ldr r1, [r5] - ldr r0, [r2] - asrs r0, 8 - strh r0, [r1, 0x22] - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - movs r3, 0x80 - lsls r3, 1 - cmp r0, r3 - ble _0809AC78 - ldr r6, _0809AD04 @ =0xffffff00 - adds r0, r2, r6 - lsls r0, 16 - asrs r0, 16 - adds r0, 0x40 - strh r0, [r1, 0x20] -_0809AC78: - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r6, 0x20 - ldrsh r0, [r1, r6] - cmp r0, 0x3F - bgt _0809AC90 - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - subs r0, r3, r0 - strh r0, [r1, 0x20] -_0809AC90: - ldr r1, [r5] - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0xB0 - ble _0809ACA8 - adds r0, r2, 0 - subs r0, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r0, 0x10 - strh r0, [r1, 0x22] -_0809ACA8: - ldr r2, [r5] - ldrh r3, [r2, 0x22] - movs r6, 0x22 - ldrsh r0, [r2, r6] - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _0809ACC4 - subs r0, r1, r3 - movs r1, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2, 0x22] -_0809ACC4: - ldr r0, _0809AD08 @ =0x000011e3 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809AD2A - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0809AD2A - ldr r2, [r5] - 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 _0809AD2A - .align 2, 0 -_0809ACF4: .4byte 0x000011c8 -_0809ACF8: .4byte 0x000011d0 -_0809ACFC: .4byte 0x000011cc -_0809AD00: .4byte 0x000011d4 -_0809AD04: .4byte 0xffffff00 -_0809AD08: .4byte 0x000011e3 -_0809AD0C: - movs r1, 0x8E - lsls r1, 5 - adds r2, r4, r1 - ldr r1, [r2] - ldr r3, _0809AD34 @ =0x000011d8 - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, [r2] - ldr r6, _0809AD38 @ =0x000011da - adds r0, r4, r6 - ldrh r0, [r0] - strh r0, [r1, 0x22] - bl sub_809AFB8 -_0809AD2A: - movs r0, 0x1 -_0809AD2C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809AD34: .4byte 0x000011d8 -_0809AD38: .4byte 0x000011da - thumb_func_end sub_809AC00 - - thumb_func_start sub_809AD3C -sub_809AD3C: @ 809AD3C - 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_809AACC - ldr r0, _0809AD88 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0x8F - lsls r2, 5 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0809AD8C @ =0x000011e1 - adds r0, r1, r3 - strb r5, [r0] - mov r0, sp - ldrh r2, [r0] - subs r3, 0x9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _0809AD90 @ =0x000011da - adds r1, r2 - strh r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809AD88: .4byte gUnknown_083B6DB4 -_0809AD8C: .4byte 0x000011e1 -_0809AD90: .4byte 0x000011da - thumb_func_end sub_809AD3C - - thumb_func_start sub_809AD94 -sub_809AD94: @ 809AD94 - push {r4-r7,lr} - ldr r0, _0809ADB0 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809ADB4 @ =0x000011de - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - beq _0809ADBC - ldr r0, _0809ADB8 @ =0x000011dc - adds r1, r2, r0 - movs r0, 0xC - b _0809ADC2 - .align 2, 0 -_0809ADB0: .4byte gUnknown_083B6DB4 -_0809ADB4: .4byte 0x000011de -_0809ADB8: .4byte 0x000011dc -_0809ADBC: - ldr r3, _0809AE04 @ =0x000011dc - adds r1, r2, r3 - movs r0, 0x6 -_0809ADC2: - strh r0, [r1] - ldr r2, [r4] - ldr r0, _0809AE08 @ =0x000011e3 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809ADDA - ldr r3, _0809AE04 @ =0x000011dc - adds r0, r2, r3 - ldrh r0, [r0] - lsrs r0, 1 - strb r0, [r1] -_0809ADDA: - ldr r1, _0809AE0C @ =0x000011de - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE14 - cmp r1, 0x1 - beq _0809AE30 - ldr r3, _0809AE10 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - b _0809AE46 - .align 2, 0 -_0809AE04: .4byte 0x000011dc -_0809AE08: .4byte 0x000011e3 -_0809AE0C: .4byte 0x000011de -_0809AE10: .4byte 0x000011da -_0809AE14: - ldr r3, _0809AE2C @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AE46 - .align 2, 0 -_0809AE2C: .4byte 0x000011da -_0809AE30: - ldr r3, _0809AE74 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AE46: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _0809AE78 @ =0x000011df - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE80 - cmp r1, 0x1 - beq _0809AE9C - ldr r1, _0809AE7C @ =0x000011d8 - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - b _0809AEB2 - .align 2, 0 -_0809AE74: .4byte 0x000011da -_0809AE78: .4byte 0x000011df -_0809AE7C: .4byte 0x000011d8 -_0809AE80: - ldr r3, _0809AE98 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AEB2 - .align 2, 0 -_0809AE98: .4byte 0x000011d8 -_0809AE9C: - ldr r3, _0809AF00 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AEB2: - subs r0, r1, r0 - lsls r7, 8 - lsls r0, 8 - ldr r4, [r4] - ldr r3, _0809AF04 @ =0x000011d0 - adds r6, r4, r3 - ldr r1, _0809AF08 @ =0x000011dc - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _0809AF0C @ =0x000011d4 - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, 0 - bl __divsi3 - str r0, [r6] - ldr r3, _0809AF10 @ =0x000011c8 - adds r2, r4, r3 - movs r0, 0x8E - lsls r0, 5 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, 0x20 - ldrsh r0, [r0, r3] - lsls r0, 8 - str r0, [r2] - ldr r0, _0809AF14 @ =0x000011cc - 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 -_0809AF00: .4byte 0x000011d8 -_0809AF04: .4byte 0x000011d0 -_0809AF08: .4byte 0x000011dc -_0809AF0C: .4byte 0x000011d4 -_0809AF10: .4byte 0x000011c8 -_0809AF14: .4byte 0x000011cc - thumb_func_end sub_809AD94 - - thumb_func_start sub_809AF18 -sub_809AF18: @ 809AF18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809AD3C - bl sub_809AD94 - ldr r0, _0809AFA4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AF46 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_0809AF46: - cmp r4, 0x1 - bne _0809AF70 - ldr r0, _0809AFAC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809AF70 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809AFB0 @ =0x000011e2 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _0809AFB4 @ =0x000011c4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0809AF70: - cmp r4, 0 - beq _0809AF9E - cmp r4, 0 - blt _0809AF9E - cmp r4, 0x3 - bgt _0809AF9E - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809AFB4 @ =0x000011c4 - adds r2, r0 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, [r2] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] -_0809AF9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809AFA4: .4byte gUnknown_020384E6 -_0809AFA8: .4byte gUnknown_083B6DB4 -_0809AFAC: .4byte gUnknown_020384E4 -_0809AFB0: .4byte 0x000011e2 -_0809AFB4: .4byte 0x000011c4 - thumb_func_end sub_809AF18 - - thumb_func_start sub_809AFB8 -sub_809AFB8: @ 809AFB8 - push {r4,r5,lr} - ldr r5, _0809B000 @ =gUnknown_020384E4 - ldr r0, _0809B004 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8F - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _0809B008 @ =gUnknown_020384E5 - ldr r2, _0809B00C @ =0x000011e1 - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0809B010 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AFEA - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809AFEA: - bl sub_809BF74 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x1 - beq _0809B020 - cmp r0, 0x1 - bgt _0809B014 - cmp r0, 0 - beq _0809B034 - b _0809B05E - .align 2, 0 -_0809B000: .4byte gUnknown_020384E4 -_0809B004: .4byte gUnknown_083B6DB4 -_0809B008: .4byte gUnknown_020384E5 -_0809B00C: .4byte 0x000011e1 -_0809B010: .4byte gUnknown_020384E6 -_0809B014: - cmp r0, 0x2 - bne _0809B05E - movs r0, 0x1 - bl sub_809A860 - b _0809B05E -_0809B020: - ldr r2, _0809B030 @ =0x000011c4 - adds r0, r4, r2 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xC - strb r1, [r0] - b _0809B05E - .align 2, 0 -_0809B030: .4byte 0x000011c4 -_0809B034: - ldr r0, _0809B064 @ =0x000011c4 - adds r2, r4, r0 - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x14 - strb r1, [r0] - ldr r1, [r2] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0809B05E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B064: .4byte 0x000011c4 - thumb_func_end sub_809AFB8 - - thumb_func_start sub_809B068 -sub_809B068: @ 809B068 - push {lr} - ldr r0, _0809B078 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809B07C - movs r3, 0 - b _0809B08A - .align 2, 0 -_0809B078: .4byte gUnknown_020384E6 -_0809B07C: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0809B08A - movs r3, 0x5 -_0809B08A: - ldr r0, _0809B0B8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809B0AA - ldr r0, _0809B0BC @ =0x000011e3 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_0809B0AA: - movs r0, 0x1 - adds r1, r3, 0 - bl sub_809AF18 - pop {r0} - bx r0 - .align 2, 0 -_0809B0B8: .4byte gUnknown_083B6DB4 -_0809B0BC: .4byte 0x000011e3 - thumb_func_end sub_809B068 - - thumb_func_start sub_809B0C0 -sub_809B0C0: @ 809B0C0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_809AF18 - pop {r0} - bx r0 - thumb_func_end sub_809B0C0 - - thumb_func_start sub_809B0D4 -sub_809B0D4: @ 809B0D4 - ldr r1, _0809B0DC @ =gUnknown_020384EA - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B0DC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0D4 - - thumb_func_start sub_809B0E0 -sub_809B0E0: @ 809B0E0 - ldr r0, _0809B0EC @ =gUnknown_020384EA - ldr r1, _0809B0F0 @ =gUnknown_020384E5 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_0809B0EC: .4byte gUnknown_020384EA -_0809B0F0: .4byte gUnknown_020384E5 - thumb_func_end sub_809B0E0 - - thumb_func_start sub_809B0F4 -sub_809B0F4: @ 809B0F4 - ldr r0, _0809B0FC @ =gUnknown_020384EA - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809B0FC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0F4 - - thumb_func_start sub_809B100 -sub_809B100: @ 809B100 - lsls r0, 24 - ldr r1, _0809B120 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B124 @ =0x000012a4 - adds r3, r1, r2 - ldr r2, _0809B128 @ =gUnknown_083BBBC8 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0809B12C @ =0x000012a8 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B120: .4byte gUnknown_083B6DB4 -_0809B124: .4byte 0x000012a4 -_0809B128: .4byte gUnknown_083BBBC8 -_0809B12C: .4byte 0x000012a8 - thumb_func_end sub_809B100 - - thumb_func_start sub_809B130 -sub_809B130: @ 809B130 - push {lr} - ldr r0, _0809B148 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B14C @ =0x000012a4 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0809B148: .4byte gUnknown_083B6DB4 -_0809B14C: .4byte 0x000012a4 - thumb_func_end sub_809B130 - - thumb_func_start sub_809B150 -sub_809B150: @ 809B150 - push {r4,r5,lr} - ldr r0, _0809B16C @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _0809B170 @ =0x000012a8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _0809B1A0 - cmp r0, 0x1 - bgt _0809B174 - cmp r0, 0 - beq _0809B17E - b _0809B1CE - .align 2, 0 -_0809B16C: .4byte gUnknown_083B6DB4 -_0809B170: .4byte 0x000012a8 -_0809B174: - cmp r0, 0x2 - beq _0809B1BE - cmp r0, 0x3 - beq _0809B186 - b _0809B1CE -_0809B17E: - ldr r0, _0809B18C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B190 -_0809B186: - movs r0, 0 - b _0809B1D0 - .align 2, 0 -_0809B18C: .4byte gUnknown_020384E6 -_0809B190: - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - b _0809B1C8 -_0809B1A0: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - bl sub_809B384 - b _0809B1C8 -_0809B1BE: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE -_0809B1C8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809B1CE: - movs r0, 0x1 -_0809B1D0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B150 - - thumb_func_start sub_809B1D8 -sub_809B1D8: @ 809B1D8 - push {r4,r5,lr} - ldr r0, _0809B1F4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B1F8 @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B220 - cmp r0, 0x1 - bgt _0809B1FC - cmp r0, 0 - beq _0809B202 - b _0809B244 - .align 2, 0 -_0809B1F4: .4byte gUnknown_083B6DB4 -_0809B1F8: .4byte 0x000012a8 -_0809B1FC: - cmp r0, 0x2 - beq _0809B240 - b _0809B244 -_0809B202: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - bl sub_809B3E0 - b _0809B238 -_0809B220: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809B238: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B244 -_0809B240: - movs r0, 0 - b _0809B246 -_0809B244: - movs r0, 0x1 -_0809B246: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B1D8 - - thumb_func_start sub_809B24C -sub_809B24C: @ 809B24C - push {r4,r5,lr} - ldr r0, _0809B268 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B26C @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B2E0 - cmp r0, 0x1 - bgt _0809B270 - cmp r0, 0 - beq _0809B276 - b _0809B31C - .align 2, 0 -_0809B268: .4byte gUnknown_083B6DB4 -_0809B26C: .4byte 0x000012a8 -_0809B270: - cmp r0, 0x2 - beq _0809B318 - b _0809B31C -_0809B276: - ldr r0, _0809B290 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B298 - cmp r0, 0x1 - bne _0809B318 - ldr r2, _0809B294 @ =0x000012a9 - adds r1, r4, r2 - movs r0, 0xE - b _0809B2A0 - .align 2, 0 -_0809B290: .4byte gUnknown_020384E4 -_0809B294: .4byte 0x000012a9 -_0809B298: - bl get_preferred_box - ldr r2, _0809B2D0 @ =0x000012a9 - adds r1, r4, r2 -_0809B2A0: - strb r0, [r1] - ldr r0, _0809B2D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0809B2D0 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B2D8 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl sub_80996B0 - ldr r0, _0809B2DC @ =0x000012a8 - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0809B31C - .align 2, 0 -_0809B2D0: .4byte 0x000012a9 -_0809B2D4: .4byte gUnknown_083B6DB4 -_0809B2D8: .4byte gUnknown_020384E5 -_0809B2DC: .4byte 0x000012a8 -_0809B2E0: - bl sub_809971C - lsls r0, 24 - cmp r0, 0 - bne _0809B31C - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - ldr r2, _0809B310 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B314 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl diegohint1 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B31C - .align 2, 0 -_0809B310: .4byte 0x000012a9 -_0809B314: .4byte gUnknown_020384E5 -_0809B318: - movs r0, 0 - b _0809B31E -_0809B31C: - movs r0, 0x1 -_0809B31E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B24C - - thumb_func_start sub_809B324 -sub_809B324: @ 809B324 - push {lr} - ldr r0, _0809B348 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B33E - cmp r0, 0x8 - beq _0809B34C -_0809B33E: - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _0809B350 - .align 2, 0 -_0809B348: .4byte gUnknown_083B6DB4 -_0809B34C: - movs r0, 0 - b _0809B352 -_0809B350: - movs r0, 0x1 -_0809B352: - pop {r1} - bx r1 - thumb_func_end sub_809B324 - - thumb_func_start sub_809B358 -sub_809B358: @ 809B358 - push {lr} - ldr r0, _0809B378 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B37C - ldrh r0, [r1, 0x26] - subs r0, 0x1 - strh r0, [r1, 0x26] - movs r0, 0x1 - b _0809B37E - .align 2, 0 -_0809B378: .4byte gUnknown_083B6DB4 -_0809B37C: - movs r0, 0 -_0809B37E: - pop {r1} - bx r1 - thumb_func_end sub_809B358 - - thumb_func_start sub_809B384 -sub_809B384: @ 809B384 - push {r4,lr} - ldr r0, _0809B3AC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B3B4 - cmp r0, 0x1 - bne _0809B3D2 - ldr r4, _0809B3B0 @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0 - bl sub_8099584 - b _0809B3CC - .align 2, 0 -_0809B3AC: .4byte gUnknown_020384E4 -_0809B3B0: .4byte gUnknown_020384E5 -_0809B3B4: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0809B3D8 @ =gUnknown_020384E5 - ldrb r1, [r4] - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0x1 - bl sub_8099584 -_0809B3CC: - ldr r1, _0809B3DC @ =gUnknown_020384E6 - movs r0, 0x1 - strb r0, [r1] -_0809B3D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809B3D8: .4byte gUnknown_020384E5 -_0809B3DC: .4byte gUnknown_020384E6 - thumb_func_end sub_809B384 - - thumb_func_start sub_809B3E0 -sub_809B3E0: @ 809B3E0 - push {r4,r5,lr} - ldr r0, _0809B408 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B410 - cmp r0, 0x1 - bne _0809B432 - ldr r4, _0809B40C @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl diegohint2 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809960C - b _0809B42C - .align 2, 0 -_0809B408: .4byte gUnknown_020384E4 -_0809B40C: .4byte gUnknown_020384E5 -_0809B410: - bl get_preferred_box - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0809B438 @ =gUnknown_020384E5 - ldrb r1, [r5] - adds r0, r4, 0 - bl diegohint2 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809960C -_0809B42C: - ldr r1, _0809B43C @ =gUnknown_020384E6 - movs r0, 0 - strb r0, [r1] -_0809B432: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B438: .4byte gUnknown_020384E5 -_0809B43C: .4byte gUnknown_020384E6 - thumb_func_end sub_809B3E0 - - thumb_func_start sub_809B440 -sub_809B440: @ 809B440 - push {lr} - bl sub_809BF74 - pop {r0} - bx r0 - thumb_func_end sub_809B440 - - thumb_func_start sub_809B44C -sub_809B44C: @ 809B44C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0xE - bne _0809B488 - ldr r0, _0809B478 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B47C @ =0x000025b4 - adds r0, r1 - ldr r3, _0809B480 @ =gPlayerParty - ldr r1, _0809B484 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - b _0809B4AA - .align 2, 0 -_0809B478: .4byte gUnknown_083B6DB4 -_0809B47C: .4byte 0x000025b4 -_0809B480: .4byte gPlayerParty -_0809B484: .4byte gUnknown_020384E5 -_0809B488: - lsls r1, r4, 2 - adds r1, r4 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 4 - ldr r2, _0809B4C0 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B4C4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B4C8 @ =0x000025b4 - adds r1, r2 - bl sub_803B4B4 -_0809B4AA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809B548 - ldr r0, _0809B4CC @ =gUnknown_020384E7 - strb r4, [r0] - ldr r0, _0809B4D0 @ =gUnknown_020384E8 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B4C0: .4byte gUnknown_020300A4 -_0809B4C4: .4byte gUnknown_083B6DB4 -_0809B4C8: .4byte 0x000025b4 -_0809B4CC: .4byte gUnknown_020384E7 -_0809B4D0: .4byte gUnknown_020384E8 - thumb_func_end sub_809B44C - - thumb_func_start diegohint2 -diegohint2: @ 809B4D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r6, 0xE - bne _0809B508 - ldr r1, _0809B4FC @ =gPlayerParty - movs r0, 0x64 - muls r0, r5 - adds r0, r1 - ldr r1, _0809B500 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B504 @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B536 - .align 2, 0 -_0809B4FC: .4byte gPlayerParty -_0809B500: .4byte gUnknown_083B6DB4 -_0809B504: .4byte 0x000025b4 -_0809B508: - ldr r0, _0809B53C @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B540 @ =0x000025b4 - adds r4, r0 - adds r0, r4, 0 - bl pokemon_restore_pp - ldr r3, _0809B544 @ =gPokemonStorage - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - lsls r2, r6, 2 - adds r2, r6 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - adds r0, r1 - adds r0, r3 - adds r0, 0x4 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy -_0809B536: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B53C: .4byte gUnknown_083B6DB4 -_0809B540: .4byte 0x000025b4 -_0809B544: .4byte gPokemonStorage - thumb_func_end diegohint2 - - thumb_func_start sub_809B548 -sub_809B548: @ 809B548 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0xE - bne _0809B568 - movs r0, 0x64 - muls r0, r2 - ldr r1, _0809B564 @ =gPlayerParty - adds r0, r1 - bl ZeroMonData - b _0809B582 - .align 2, 0 -_0809B564: .4byte gPlayerParty -_0809B568: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809B588 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - bl ZeroBoxMonData -_0809B582: - pop {r0} - bx r0 - .align 2, 0 -_0809B588: .4byte gUnknown_020300A4 - thumb_func_end sub_809B548 - - thumb_func_start diegohint1 -diegohint1: @ 809B58C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r5, 0xE - bne _0809B5C0 - ldr r0, _0809B5B4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B5B8 @ =0x00002618 - adds r0, r1 - ldr r2, _0809B5BC @ =gPlayerParty - movs r1, 0x64 - muls r1, r6 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B5E2 - .align 2, 0 -_0809B5B4: .4byte gUnknown_083B6DB4 -_0809B5B8: .4byte 0x00002618 -_0809B5BC: .4byte gPlayerParty -_0809B5C0: - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - ldr r2, _0809B614 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - bl sub_803B4B4 -_0809B5E2: - adds r0, r5, 0 - adds r1, r6, 0 - bl diegohint2 - ldr r0, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809B620 @ =0x000025b4 - adds r4, r1, r0 - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_809C04C - ldr r0, _0809B624 @ =gUnknown_020384E7 - strb r5, [r0] - ldr r0, _0809B628 @ =gUnknown_020384E8 - strb r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B614: .4byte gUnknown_020300A4 -_0809B618: .4byte gUnknown_083B6DB4 -_0809B61C: .4byte 0x00002618 -_0809B620: .4byte 0x000025b4 -_0809B624: .4byte gUnknown_020384E7 -_0809B628: .4byte gUnknown_020384E8 - thumb_func_end diegohint1 - - thumb_func_start sub_809B62C -sub_809B62C: @ 809B62C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_8095B24 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0809B64A - movs r0, 0 - b _0809B6AC -_0809B64A: - ldr r5, _0809B668 @ =gUnknown_020384E6 - ldrb r0, [r5] - cmp r0, 0 - beq _0809B66C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - bl sub_8099480 - movs r0, 0 - strb r0, [r5] - b _0809B686 - .align 2, 0 -_0809B668: .4byte gUnknown_020384E6 -_0809B66C: - ldr r5, _0809B6B4 @ =gUnknown_020384E5 - ldrb r1, [r5] - movs r0, 0xE - bl sub_809B44C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - ldrb r0, [r5] - bl sub_8099520 -_0809B686: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0809B698 - lsrs r0, r4, 24 - bl sub_8098D20 -_0809B698: - ldr r0, _0809B6B8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x1 -_0809B6AC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809B6B4: .4byte gUnknown_020384E5 -_0809B6B8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B62C - - thumb_func_start sub_809B6BC -sub_809B6BC: @ 809B6BC - push {lr} - ldr r0, _0809B6D8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B6D8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B6BC - - thumb_func_start sub_809B6DC -sub_809B6DC: @ 809B6DC - push {lr} - ldr r0, _0809B6EC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B6F0 - movs r2, 0x2 - b _0809B700 - .align 2, 0 -_0809B6EC: .4byte gUnknown_020384E6 -_0809B6F0: - ldr r0, _0809B720 @ =gUnknown_020384E4 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0x1 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r2, r0, 31 -_0809B700: - ldr r0, _0809B724 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809981C - ldr r0, _0809B728 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809B72C @ =0x000026e4 - adds r0, r1, r2 - ldr r2, _0809B730 @ =0x000011fa - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0809B720: .4byte gUnknown_020384E4 -_0809B724: .4byte gUnknown_020384E5 -_0809B728: .4byte gUnknown_083B6DB4 -_0809B72C: .4byte 0x000026e4 -_0809B730: .4byte 0x000011fa - thumb_func_end sub_809B6DC - - thumb_func_start sub_809B734 -sub_809B734: @ 809B734 - push {lr} - bl sub_80998D8 - lsls r0, 24 - cmp r0, 0 - beq _0809B744 - movs r0, 0x1 - b _0809B758 -_0809B744: - ldr r0, _0809B75C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - movs r0, 0 -_0809B758: - pop {r1} - bx r1 - .align 2, 0 -_0809B75C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B734 - - thumb_func_start sub_809B760 -sub_809B760: @ 809B760 - push {lr} - bl sub_8099920 - ldr r1, _0809B774 @ =gUnknown_020384E6 - ldrb r0, [r1] - cmp r0, 0 - beq _0809B778 - movs r0, 0 - strb r0, [r1] - b _0809B79E - .align 2, 0 -_0809B774: .4byte gUnknown_020384E6 -_0809B778: - ldr r0, _0809B788 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B78C - movs r2, 0xE - b _0809B794 - .align 2, 0 -_0809B788: .4byte gUnknown_020384E4 -_0809B78C: - bl get_preferred_box - lsls r0, 24 - lsrs r2, r0, 24 -_0809B794: - ldr r0, _0809B7A8 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809B548 -_0809B79E: - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B7A8: .4byte gUnknown_020384E5 - thumb_func_end sub_809B760 - - thumb_func_start sub_809B7AC -sub_809B7AC: @ 809B7AC - push {lr} - ldr r0, _0809B7CC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B7C8 - ldr r0, _0809B7D0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim -_0809B7C8: - pop {r0} - bx r0 - .align 2, 0 -_0809B7CC: .4byte gUnknown_020384E6 -_0809B7D0: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B7AC - - thumb_func_start sub_809B7D4 -sub_809B7D4: @ 809B7D4 - push {r4-r6,lr} - ldr r0, _0809B804 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B81C - ldr r0, _0809B808 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r1, _0809B80C @ =0x00002618 - adds r0, r4, r1 - ldr r2, _0809B810 @ =0x000025b4 - adds r1, r4, r2 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B814 @ =0x00002682 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _0809B818 @ =0x00002683 - adds r4, r1 - movs r0, 0x1 - negs r0, r0 - strb r0, [r4] - b _0809B8A6 - .align 2, 0 -_0809B804: .4byte gUnknown_020384E6 -_0809B808: .4byte gUnknown_083B6DB4 -_0809B80C: .4byte 0x00002618 -_0809B810: .4byte 0x000025b4 -_0809B814: .4byte 0x00002682 -_0809B818: .4byte 0x00002683 -_0809B81C: - ldr r0, _0809B84C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B864 - ldr r0, _0809B850 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809B854 @ =0x00002618 - adds r0, r4, r2 - ldr r3, _0809B858 @ =gPlayerParty - ldr r1, _0809B85C @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B860 @ =0x00002682 - adds r4, r0 - movs r0, 0xE - b _0809B896 - .align 2, 0 -_0809B84C: .4byte gUnknown_020384E4 -_0809B850: .4byte gUnknown_083B6DB4 -_0809B854: .4byte 0x00002618 -_0809B858: .4byte gPlayerParty -_0809B85C: .4byte gUnknown_020384E5 -_0809B860: .4byte 0x00002682 -_0809B864: - ldr r5, _0809B8FC @ =gPokemonStorage - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809B900 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r2, r5, 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B904 @ =gUnknown_083B6DB4 - ldr r4, [r1] - ldr r2, _0809B908 @ =0x00002618 - adds r1, r4, r2 - bl sub_803B4B4 - ldrb r0, [r5] - ldr r1, _0809B90C @ =0x00002682 - adds r4, r1 -_0809B896: - strb r0, [r4] - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B900 @ =gUnknown_020384E5 - ldrb r1, [r1] - ldr r2, _0809B910 @ =0x00002683 - adds r0, r2 - strb r1, [r0] -_0809B8A6: - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r0, _0809B914 @ =0x0000267e - adds r4, r6, r0 - movs r0, 0 - strb r0, [r4] - ldr r1, _0809B918 @ =0x0000267f - adds r5, r6, r1 - strb r0, [r5] - ldr r0, _0809B91C @ =0x00002686 - adds r2, r6, r0 - movs r0, 0x39 - strh r0, [r2] - ldr r0, _0809B920 @ =0x00002688 - adds r1, r6, r0 - ldr r0, _0809B924 @ =0x00000123 - strh r0, [r1] - ldr r0, _0809B928 @ =0x0000268a - adds r1, r6, r0 - ldr r0, _0809B92C @ =0x00000163 - strh r0, [r1] - ldr r1, _0809B908 @ =0x00002618 - adds r0, r6, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - movs r2, 0x1 - ands r1, r2 - strb r1, [r4] - lsrs r0, 17 - movs r1, 0x1 - ands r0, r1 - strb r0, [r5] - ldrh r0, [r4] - cmp r0, 0 - beq _0809B934 - ldr r2, _0809B930 @ =0x0000267d - adds r1, r6, r2 - movs r0, 0 - strb r0, [r1] - b _0809B940 - .align 2, 0 -_0809B8FC: .4byte gPokemonStorage -_0809B900: .4byte gUnknown_020384E5 -_0809B904: .4byte gUnknown_083B6DB4 -_0809B908: .4byte 0x00002618 -_0809B90C: .4byte 0x00002682 -_0809B910: .4byte 0x00002683 -_0809B914: .4byte 0x0000267e -_0809B918: .4byte 0x0000267f -_0809B91C: .4byte 0x00002686 -_0809B920: .4byte 0x00002688 -_0809B924: .4byte 0x00000123 -_0809B928: .4byte 0x0000268a -_0809B92C: .4byte 0x00000163 -_0809B930: .4byte 0x0000267d -_0809B934: - ldr r2, _0809B954 @ =0x0000267d - adds r0, r6, r2 - strb r1, [r0] - subs r2, 0x1 - adds r0, r6, r2 - strb r1, [r0] -_0809B940: - ldr r0, _0809B958 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B95C @ =0x00002684 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B954: .4byte 0x0000267d -_0809B958: .4byte gUnknown_083B6DB4 -_0809B95C: .4byte 0x00002684 - thumb_func_end sub_809B7D4 - - thumb_func_start sub_809B960 -sub_809B960: @ 809B960 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809B988 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809B98C @ =0x0000267d - adds r1, r2, r3 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _0809B994 - ldr r7, _0809B990 @ =0x0000267c - adds r0, r2, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _0809BB5C - .align 2, 0 -_0809B988: .4byte gUnknown_083B6DB4 -_0809B98C: .4byte 0x0000267d -_0809B990: .4byte 0x0000267c -_0809B994: - ldr r1, _0809B9A4 @ =0x00002684 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0809B9A8 - cmp r0, 0x1 - beq _0809BA84 - b _0809BB58 - .align 2, 0 -_0809B9A4: .4byte 0x00002684 -_0809B9A8: - movs r5, 0 - movs r6, 0 -_0809B9AC: - mov r2, r12 - ldr r4, [r2] - ldr r3, _0809BA28 @ =0x00002682 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _0809B9CC - ldr r7, _0809BA2C @ =0x00002683 - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, r5 - beq _0809BA02 -_0809B9CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809BA30 @ =gPlayerParty - adds r0, r1 - ldr r1, _0809BA34 @ =0x00002686 - adds r2, r4, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809B9F0 - ldr r2, _0809BA38 @ =0x0000267e - adds r0, r4, r2 - strb r6, [r0] -_0809B9F0: - movs r0, 0x2 - ands r3, r0 - ldr r7, _0809BA3C @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r3, 0 - beq _0809BA02 - ldr r1, _0809BA40 @ =0x0000267f - adds r0, r4, r1 - strb r6, [r0] -_0809BA02: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809B9AC - mov r3, r12 - ldr r2, [r3] - ldr r7, _0809BA38 @ =0x0000267e - adds r0, r2, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BA4C - ldr r1, _0809BA44 @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r3, _0809BA48 @ =0x0000267c - b _0809BB54 - .align 2, 0 -_0809BA28: .4byte 0x00002682 -_0809BA2C: .4byte 0x00002683 -_0809BA30: .4byte gPlayerParty -_0809BA34: .4byte 0x00002686 -_0809BA38: .4byte 0x0000267e -_0809BA3C: .4byte gUnknown_083B6DB4 -_0809BA40: .4byte 0x0000267f -_0809BA44: .4byte 0x0000267d -_0809BA48: .4byte 0x0000267c -_0809BA4C: - movs r7, 0x9A - lsls r7, 6 - adds r0, r2, r7 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BA68 @ =0x00002681 - adds r0, r2, r3 - strb r1, [r0] - adds r7, 0x4 - adds r1, r2, r7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0809BB58 - .align 2, 0 -_0809BA68: .4byte 0x00002681 -_0809BA6C: - ldr r1, _0809BA7C @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r7, _0809BA80 @ =0x0000267c - adds r0, r2, r7 - strb r3, [r0] - b _0809BB3C - .align 2, 0 -_0809BA7C: .4byte 0x0000267d -_0809BA80: .4byte 0x0000267c -_0809BA84: - movs r5, 0 - mov r9, r12 - adds r4, r2, 0 - movs r0, 0x9A - lsls r0, 6 - adds r6, r4, r0 - ldr r1, _0809BB6C @ =0x0000267f - adds r1, r4 - mov r8, r1 - ldr r2, _0809BB70 @ =0x0000ffff - mov r10, r2 -_0809BA9A: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r3, _0809BB74 @ =0x00002681 - adds r1, r4, r3 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BB78 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x50 - ldr r7, _0809BB7C @ =0x00002686 - adds r2, r4, r7 - bl GetBoxMonData - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _0809BB00 - ldr r1, _0809BB80 @ =0x00002682 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r2, [r6] - mov r1, r10 - ands r1, r0 - mov r0, r10 - ands r0, r2 - cmp r1, r0 - beq _0809BB00 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809BAF2 - ldr r2, _0809BB84 @ =0x0000267e - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] -_0809BAF2: - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _0809BB00 - movs r0, 0 - mov r3, r8 - strb r0, [r3] -_0809BB00: - mov r7, r9 - ldr r2, [r7] - ldr r0, _0809BB74 @ =0x00002681 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - ldr r7, _0809BB88 @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r0, 0x1D - ble _0809BB32 - strb r3, [r1] - movs r0, 0x9A - lsls r0, 6 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xD - bgt _0809BA6C -_0809BB32: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _0809BA9A -_0809BB3C: - mov r1, r12 - ldr r2, [r1] - ldr r3, _0809BB84 @ =0x0000267e - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BB58 - ldr r7, _0809BB8C @ =0x0000267d - adds r0, r2, r7 - movs r1, 0x1 - strb r1, [r0] - subs r3, 0x2 -_0809BB54: - adds r0, r2, r3 - strb r1, [r0] -_0809BB58: - movs r0, 0x1 - negs r0, r0 -_0809BB5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BB6C: .4byte 0x0000267f -_0809BB70: .4byte 0x0000ffff -_0809BB74: .4byte 0x00002681 -_0809BB78: .4byte gUnknown_020300A4 -_0809BB7C: .4byte 0x00002686 -_0809BB80: .4byte 0x00002682 -_0809BB84: .4byte 0x0000267e -_0809BB88: .4byte gUnknown_083B6DB4 -_0809BB8C: .4byte 0x0000267d - thumb_func_end sub_809B960 - - thumb_func_start sub_809BB90 -sub_809BB90: @ 809BB90 - push {lr} - ldr r0, _0809BBB0 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BBAA - ldr r0, _0809BBB4 @ =gUnknown_02038480 - ldr r1, _0809BBB8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809BBBC @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_0809BBAA: - pop {r0} - bx r0 - .align 2, 0 -_0809BBB0: .4byte gUnknown_020384E6 -_0809BBB4: .4byte gUnknown_02038480 -_0809BBB8: .4byte gUnknown_083B6DB4 -_0809BBBC: .4byte 0x000025b4 - thumb_func_end sub_809BB90 - - thumb_func_start sub_809BBC0 -sub_809BBC0: @ 809BBC0 - push {lr} - ldr r0, _0809BBE4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BC08 - ldr r0, _0809BBE8 @ =gUnknown_020384E7 - ldrb r0, [r0] - cmp r0, 0xE - bne _0809BBF8 - ldr r0, _0809BBEC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BBF0 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BBF4 @ =gUnknown_02038480 - movs r2, 0x64 - bl memcpy - b _0809BC08 - .align 2, 0 -_0809BBE4: .4byte gUnknown_020384E6 -_0809BBE8: .4byte gUnknown_020384E7 -_0809BBEC: .4byte gUnknown_083B6DB4 -_0809BBF0: .4byte 0x000025b4 -_0809BBF4: .4byte gUnknown_02038480 -_0809BBF8: - ldr r0, _0809BC0C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BC10 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BC14 @ =gUnknown_02038480 - movs r2, 0x50 - bl memcpy -_0809BC08: - pop {r0} - bx r0 - .align 2, 0 -_0809BC0C: .4byte gUnknown_083B6DB4 -_0809BC10: .4byte 0x000025b4 -_0809BC14: .4byte gUnknown_02038480 - thumb_func_end sub_809BBC0 - - thumb_func_start sub_809BC18 -sub_809BC18: @ 809BC18 - push {r4,r5,lr} - ldr r0, _0809BC48 @ =gUnknown_020384E6 - ldrb r5, [r0] - cmp r5, 0 - beq _0809BC64 - bl sub_809BB90 - ldr r0, _0809BC4C @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809BC50 @ =0x00002690 - adds r1, r2, r0 - ldr r0, _0809BC54 @ =gUnknown_02038480 - str r0, [r1] - ldr r1, _0809BC58 @ =0x0000268d - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BC5C @ =0x0000268c - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809BC60 @ =0x0000268e - adds r2, r0 - strb r1, [r2] - b _0809BCF2 - .align 2, 0 -_0809BC48: .4byte gUnknown_020384E6 -_0809BC4C: .4byte gUnknown_083B6DB4 -_0809BC50: .4byte 0x00002690 -_0809BC54: .4byte gUnknown_02038480 -_0809BC58: .4byte 0x0000268d -_0809BC5C: .4byte 0x0000268c -_0809BC60: .4byte 0x0000268e -_0809BC64: - ldr r0, _0809BC9C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BCBC - ldr r0, _0809BCA0 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809BCA4 @ =0x00002690 - adds r1, r4, r2 - ldr r0, _0809BCA8 @ =gPlayerParty - str r0, [r1] - ldr r0, _0809BCAC @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r3, _0809BCB0 @ =0x0000268d - adds r0, r4, r3 - strb r1, [r0] - bl sub_8095C28 - subs r0, 0x1 - ldr r2, _0809BCB4 @ =0x0000268c - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _0809BCB8 @ =0x0000268e - adds r4, r3 - strb r5, [r4] - b _0809BCF2 - .align 2, 0 -_0809BC9C: .4byte gUnknown_020384E4 -_0809BCA0: .4byte gUnknown_083B6DB4 -_0809BCA4: .4byte 0x00002690 -_0809BCA8: .4byte gPlayerParty -_0809BCAC: .4byte gUnknown_020384E5 -_0809BCB0: .4byte 0x0000268d -_0809BCB4: .4byte 0x0000268c -_0809BCB8: .4byte 0x0000268e -_0809BCBC: - ldr r0, _0809BCF8 @ =gUnknown_083B6DB4 - ldr r3, [r0] - ldr r0, _0809BCFC @ =0x00002690 - adds r4, r3, r0 - ldr r2, _0809BD00 @ =gPokemonStorage - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r2, 0x4 - adds r0, r2 - str r0, [r4] - ldr r0, _0809BD04 @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r2, _0809BD08 @ =0x0000268d - adds r0, r3, r2 - strb r1, [r0] - ldr r0, _0809BD0C @ =0x0000268c - adds r1, r3, r0 - movs r0, 0x1D - strb r0, [r1] - ldr r1, _0809BD10 @ =0x0000268e - adds r3, r1 - movs r0, 0x5 - strb r0, [r3] -_0809BCF2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809BCF8: .4byte gUnknown_083B6DB4 -_0809BCFC: .4byte 0x00002690 -_0809BD00: .4byte gPokemonStorage -_0809BD04: .4byte gUnknown_020384E5 -_0809BD08: .4byte 0x0000268d -_0809BD0C: .4byte 0x0000268c -_0809BD10: .4byte 0x0000268e - thumb_func_end sub_809BC18 - - thumb_func_start sub_809BD14 -sub_809BD14: @ 809BD14 - push {lr} - ldr r0, _0809BD24 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BD28 - bl sub_809BBC0 - b _0809BD30 - .align 2, 0 -_0809BD24: .4byte gUnknown_020384E6 -_0809BD28: - ldr r0, _0809BD34 @ =gUnknown_020384E5 - ldr r1, _0809BD38 @ =0x02018000 - ldrb r1, [r1, 0x9] - strb r1, [r0] -_0809BD30: - pop {r0} - bx r0 - .align 2, 0 -_0809BD34: .4byte gUnknown_020384E5 -_0809BD38: .4byte 0x02018000 - thumb_func_end sub_809BD14 - - thumb_func_start party_compaction -party_compaction: @ 809BD3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _0809BD88 @ =0x0000ffff - movs r6, 0 - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, _0809BD8C @ =gPlayerParty - mov r8, r1 - subs r0, 0x65 - mov r10, r0 -_0809BD58: - 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 _0809BD90 - cmp r6, r5 - beq _0809BD80 - mov r0, r9 - muls r0, r5 - add r0, r8 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_0809BD80: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0809BD9A - .align 2, 0 -_0809BD88: .4byte 0x0000ffff -_0809BD8C: .4byte gPlayerParty -_0809BD90: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r10 - bne _0809BD9A - adds r7, r6, 0 -_0809BD9A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _0809BD58 - lsls r7, 16 - cmp r5, 0x5 - bhi _0809BDC2 - movs r6, 0x64 - ldr r4, _0809BDD4 @ =gPlayerParty -_0809BDAE: - 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 _0809BDAE -_0809BDC2: - 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 -_0809BDD4: .4byte gPlayerParty - thumb_func_end party_compaction - - thumb_func_start sub_809BDD8 -sub_809BDD8: @ 809BDD8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r1, _0809BE04 @ =gUnknown_083B6DB4 - ldr r2, [r1] - ldr r3, _0809BE08 @ =0x000011f7 - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _0809BE0C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BE14 - ldr r1, _0809BE10 @ =0x000025b4 - adds r0, r2, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _0809BE68 - .align 2, 0 -_0809BE04: .4byte gUnknown_083B6DB4 -_0809BE08: .4byte 0x000011f7 -_0809BE0C: .4byte gUnknown_020384E6 -_0809BE10: .4byte 0x000025b4 -_0809BE14: - ldr r4, _0809BE70 @ =gUnknown_020384E4 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x1 - bne _0809BE34 - ldr r0, _0809BE74 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BE78 @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData -_0809BE34: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _0809BE68 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809BE74 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BE7C @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_0809BE68: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809BE70: .4byte gUnknown_020384E4 -_0809BE74: .4byte gUnknown_020384E5 -_0809BE78: .4byte gPlayerParty -_0809BE7C: .4byte gUnknown_020300A4 - thumb_func_end sub_809BDD8 - - thumb_func_start sub_809BE80 -sub_809BE80: @ 809BE80 - push {lr} - ldr r0, _0809BEA8 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEB4 - ldr r0, _0809BEAC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BEB4 - ldr r0, _0809BEB0 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEB4 - movs r0, 0x1 - b _0809BEB6 - .align 2, 0 -_0809BEA8: .4byte gUnknown_020384E4 -_0809BEAC: .4byte gUnknown_020384E6 -_0809BEB0: .4byte gUnknown_020384E5 -_0809BEB4: - movs r0, 0 -_0809BEB6: - pop {r1} - bx r1 - thumb_func_end sub_809BE80 - - thumb_func_start sub_809BEBC -sub_809BEBC: @ 809BEBC - push {lr} - ldr r0, _0809BF00 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BF18 - ldr r0, _0809BF04 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEFC - ldr r0, _0809BF08 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl sub_8095BB4 - lsls r0, 24 - cmp r0, 0 - bne _0809BEFC - ldr r0, _0809BF0C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809BF10 @ =0x000011f9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BF18 - ldr r2, _0809BF14 @ =0x000025b4 - adds r0, r1, r2 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0809BF18 -_0809BEFC: - movs r0, 0x1 - b _0809BF1A - .align 2, 0 -_0809BF00: .4byte gUnknown_020384E6 -_0809BF04: .4byte gUnknown_020384E4 -_0809BF08: .4byte gUnknown_020384E5 -_0809BF0C: .4byte gUnknown_083B6DB4 -_0809BF10: .4byte 0x000011f9 -_0809BF14: .4byte 0x000025b4 -_0809BF18: - movs r0, 0 -_0809BF1A: - pop {r1} - bx r1 - thumb_func_end sub_809BEBC - - thumb_func_start sub_809BF20 -sub_809BF20: @ 809BF20 - ldr r0, _0809BF28 @ =gUnknown_020384E6 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809BF28: .4byte gUnknown_020384E6 - thumb_func_end sub_809BF20 - - thumb_func_start sub_809BF2C -sub_809BF2C: @ 809BF2C - push {lr} - movs r1, 0 - ldr r0, _0809BF44 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _0809BF3E - movs r1, 0x1 -_0809BF3E: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF44: .4byte gUnknown_020384E4 - thumb_func_end sub_809BF2C - - thumb_func_start sub_809BF48 -sub_809BF48: @ 809BF48 - push {lr} - movs r1, 0 - ldr r0, _0809BF6C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _0809BF66 - ldr r0, _0809BF70 @ =gUnknown_020384E5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BF66 - movs r1, 0x1 -_0809BF66: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF6C: .4byte gUnknown_020384E4 -_0809BF70: .4byte gUnknown_020384E5 - thumb_func_end sub_809BF48 - - thumb_func_start sub_809BF74 -sub_809BF74: @ 809BF74 - push {r4,lr} - ldr r0, _0809BFA8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0 - ldr r3, _0809BFAC @ =gUnknown_020384E6 - ldrb r0, [r3] - cmp r0, 0 - bne _0809BF86 - movs r2, 0x1 -_0809BF86: - ldr r4, _0809BFB0 @ =0x000011f6 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, 0 - bne _0809C018 - ldr r0, _0809BFB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809BFBE - cmp r0, 0x1 - bgt _0809BFB8 - cmp r0, 0 - beq _0809BFEE - b _0809C018 - .align 2, 0 -_0809BFA8: .4byte gUnknown_083B6DB4 -_0809BFAC: .4byte gUnknown_020384E6 -_0809BFB0: .4byte 0x000011f6 -_0809BFB4: .4byte gUnknown_020384E4 -_0809BFB8: - cmp r0, 0x3 - bgt _0809C018 - b _0809BFE4 -_0809BFBE: - ldr r1, _0809BFDC @ =gUnknown_020384E5 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0809BFE4 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BFE0 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_809C04C - b _0809C018 - .align 2, 0 -_0809BFDC: .4byte gUnknown_020384E5 -_0809BFE0: .4byte gPlayerParty -_0809BFE4: - movs r0, 0 - movs r1, 0x2 - bl sub_809C04C - b _0809C018 -_0809BFEE: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809C020 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809C024 @ =gUnknown_020300A4 - adds r1, r2 - adds r0, r1 - movs r1, 0x1 - bl sub_809C04C -_0809C018: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809C020: .4byte gUnknown_020384E5 -_0809C024: .4byte gUnknown_020300A4 - thumb_func_end sub_809BF74 - - thumb_func_start sub_809C028 -sub_809C028: @ 809C028 - push {lr} - ldr r0, _0809C03C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C044 - ldr r0, _0809C040 @ =gUnknown_02038480 - movs r1, 0 - bl sub_809C04C - b _0809C048 - .align 2, 0 -_0809C03C: .4byte gUnknown_020384E6 -_0809C040: .4byte gUnknown_02038480 -_0809C044: - bl sub_809BF74 -_0809C048: - pop {r0} - bx r0 - thumb_func_end sub_809C028 - - thumb_func_start sub_809C04C -sub_809C04C: @ 809C04C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _0809C0FC @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r2, _0809C100 @ =0x000011f2 - adds r2, r6 - mov r8, r2 - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - cmp r1, 0 - bne _0809C120 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - ldr r2, _0809C104 @ =0x000011f0 - adds r1, r6, r2 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0809C08C - b _0809C1EC -_0809C08C: - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - ldr r2, _0809C108 @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C10C @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - ldr r2, _0809C110 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetMonData - ldr r2, _0809C114 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r2, _0809C118 @ =0x000011ec - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl pokemon_get_pal - ldr r2, _0809C11C @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - b _0809C1B2 - .align 2, 0 -_0809C0FC: .4byte gUnknown_083B6DB4 -_0809C100: .4byte 0x000011f2 -_0809C104: .4byte 0x000011f0 -_0809C108: .4byte 0x000011f9 -_0809C10C: .4byte 0x000011fa -_0809C110: .4byte 0x000011f8 -_0809C114: .4byte 0x000011f7 -_0809C118: .4byte 0x000011ec -_0809C11C: .4byte 0x000011e8 -_0809C120: - cmp r1, 0x1 - bne _0809C1D4 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - ldr r2, _0809C1B8 @ =0x000011f0 - adds r5, r6, r2 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - beq _0809C1EC - adds r0, r7, 0 - movs r1, 0x1 - bl GetBoxMonData - mov r9, r0 - adds r0, r7, 0 - movs r1, 0x2D - bl GetBoxMonData - ldr r2, _0809C1BC @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C1C0 @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetBoxMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - bl GetLevelFromBoxMonExp - ldr r2, _0809C1C4 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetBoxMonData - ldr r2, _0809C1C8 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r0, _0809C1CC @ =0x000011ec - adds r4, r6, r0 - str r2, [r4] - ldrh r0, [r5] - mov r1, r9 - bl species_and_otid_get_pal - ldr r2, _0809C1D0 @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - ldrh r0, [r5] - ldr r1, [r4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonData -_0809C1B2: - mov r1, r8 - strh r0, [r1] - b _0809C1DE - .align 2, 0 -_0809C1B8: .4byte 0x000011f0 -_0809C1BC: .4byte 0x000011f9 -_0809C1C0: .4byte 0x000011fa -_0809C1C4: .4byte 0x000011f8 -_0809C1C8: .4byte 0x000011f7 -_0809C1CC: .4byte 0x000011ec -_0809C1D0: .4byte 0x000011e8 -_0809C1D4: - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r6, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r0] -_0809C1DE: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r4, r2 - ldrh r1, [r0] - cmp r1, 0 - bne _0809C23C -_0809C1EC: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C228 @ =0x000011fa - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0809C22C @ =0x0000120f - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C230 @ =0x00001234 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C234 @ =0x00001259 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r2, _0809C238 @ =0x0000127a - adds r1, r2 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C220: .4byte 0x000011f0 -_0809C224: .4byte gUnknown_083B6DB4 -_0809C228: .4byte 0x000011fa -_0809C22C: .4byte 0x0000120f -_0809C230: .4byte 0x00001234 -_0809C234: .4byte 0x00001259 -_0809C238: .4byte 0x0000127a -_0809C23C: - ldr r2, _0809C28C @ =0x000011f9 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C2A4 - ldr r0, _0809C290 @ =0x0000120f - adds r7, r4, r0 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x4 - strb r0, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r1, _0809C294 @ =0x00001214 - adds r7, r4, r1 - adds r2, 0x1 - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C298 @ =0x00001234 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r2, _0809C29C @ =0x00001259 - adds r1, r4, r2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - ldr r0, _0809C2A0 @ =0x0000127a - adds r1, r4, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C28C: .4byte 0x000011f9 -_0809C290: .4byte 0x0000120f -_0809C294: .4byte 0x00001214 -_0809C298: .4byte 0x00001234 -_0809C29C: .4byte 0x00001259 -_0809C2A0: .4byte 0x0000127a -_0809C2A4: - cmp r1, 0x20 - beq _0809C2AC - cmp r1, 0x1D - bne _0809C2B0 -_0809C2AC: - movs r1, 0xFF - str r1, [sp] -_0809C2B0: - ldr r0, _0809C388 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C38C @ =0x0000120f - adds r7, r4, r2 - movs r0, 0xFC - mov r9, r0 - strb r0, [r7] - movs r1, 0x4 - mov r8, r1 - strb r1, [r7, 0x1] - movs r2, 0xF - strb r2, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r6, 0x1 - strb r6, [r7, 0x4] - ldr r1, _0809C390 @ =0x00001214 - adds r7, r4, r1 - ldr r2, _0809C394 @ =0x000011fa - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C398 @ =0x00001234 - adds r7, r4, r0 - mov r1, r9 - strb r1, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - movs r0, 0x13 - mov r10, r0 - strb r0, [r7, 0x6] - movs r1, 0x7 - strb r1, [r7, 0x7] - movs r0, 0xBA - strb r0, [r7, 0x8] - ldr r2, _0809C39C @ =0x0000123d - adds r7, r4, r2 - ldr r1, _0809C3A0 @ =0x000011f0 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, _0809C3A4 @ =gSpeciesNames - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - mov r2, r9 - strb r2, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - movs r0, 0x50 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r1, _0809C3A8 @ =0x00001259 - adds r7, r4, r1 - strb r2, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - mov r0, r10 - strb r0, [r7, 0x6] - movs r6, 0x8 - strb r6, [r7, 0x7] - ldr r1, _0809C3AC @ =0x00001261 - adds r7, r4, r1 - movs r0, 0x34 - strb r0, [r7] - ldr r2, _0809C3B0 @ =0x00001262 - adds r7, r4, r2 - ldr r0, _0809C3B4 @ =0x000011f8 - adds r4, r0 - ldrb r1, [r4] - adds r0, r7, 0 - movs r2, 0x22 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - mov r1, r9 - strb r1, [r7] - movs r0, 0x11 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - adds r7, 0x3 - ldr r2, [sp] - cmp r2, 0 - beq _0809C3B8 - cmp r2, 0xFE - beq _0809C3D0 - b _0809C3EA - .align 2, 0 -_0809C388: .4byte gUnknown_083B6DB4 -_0809C38C: .4byte 0x0000120f -_0809C390: .4byte 0x00001214 -_0809C394: .4byte 0x000011fa -_0809C398: .4byte 0x00001234 -_0809C39C: .4byte 0x0000123d -_0809C3A0: .4byte 0x000011f0 -_0809C3A4: .4byte gSpeciesNames -_0809C3A8: .4byte 0x00001259 -_0809C3AC: .4byte 0x00001261 -_0809C3B0: .4byte 0x00001262 -_0809C3B4: .4byte 0x000011f8 -_0809C3B8: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - strb r1, [r7, 0x2] - mov r2, sp - ldrb r2, [r2] - strb r2, [r7, 0x3] - movs r0, 0x5 - strb r0, [r7, 0x4] - movs r0, 0xB5 - b _0809C3E6 -_0809C3D0: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - movs r2, 0 - strb r2, [r7, 0x3] - movs r0, 0x7 - strb r0, [r7, 0x4] - movs r0, 0xB6 -_0809C3E6: - strb r0, [r7, 0x5] - adds r7, 0x6 -_0809C3EA: - movs r5, 0xFF - strb r5, [r7] - ldr r0, _0809C450 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r1, _0809C454 @ =0x0000127a - adds r7, r2, r1 - ldr r0, _0809C458 @ =0x000011f2 - adds r3, r2, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _0809C43C - movs r4, 0xFC - strb r4, [r7] - movs r1, 0x4 - strb r1, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r0, _0809C45C @ =0x0000127f - adds r7, r2, r0 - strb r4, [r7] - movs r0, 0x6 - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - ldr r1, _0809C460 @ =0x00001282 - adds r7, r2, r1 - ldrh r0, [r3] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x7 - strb r0, [r7, 0x1] - adds r7, 0x2 -_0809C43C: - strb r5, [r7] -_0809C43E: - 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 -_0809C450: .4byte gUnknown_083B6DB4 -_0809C454: .4byte 0x0000127a -_0809C458: .4byte 0x000011f2 -_0809C45C: .4byte 0x0000127f -_0809C460: .4byte 0x00001282 - thumb_func_end sub_809C04C - - thumb_func_start sub_809C464 -sub_809C464: @ 809C464 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0809C4D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r8, r0 - ldr r2, _0809C4DC @ =gUnknown_020384E5 - ldrb r4, [r2] - ldr r0, _0809C4E0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C4E4 @ =0x000011de - adds r7, r1, r0 - movs r0, 0 - strb r0, [r7] - ldr r3, _0809C4E8 @ =0x000011df - adds r5, r1, r3 - strb r0, [r5] - adds r3, 0x4 - adds r6, r1, r3 - strb r0, [r6] - ldr r0, _0809C4EC @ =gMain - mov r12, r0 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _0809C4A0 - b _0809C62A -_0809C4A0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809C4F0 - movs r1, 0x1 - mov r9, r1 - lsls r0, r4, 24 - movs r3, 0xC0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - bgt _0809C4BE - b _0809C648 -_0809C4BE: - movs r1, 0x3 - mov r8, r1 - subs r0, 0x1E - lsls r0, 24 - asrs r0, 24 - bl __divsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r3, r9 - strb r3, [r7] - strb r3, [r6] - b _0809C648 - .align 2, 0 -_0809C4D8: .4byte gUnknown_020384E4 -_0809C4DC: .4byte gUnknown_020384E5 -_0809C4E0: .4byte gUnknown_083B6DB4 -_0809C4E4: .4byte 0x000011de -_0809C4E8: .4byte 0x000011df -_0809C4EC: .4byte gMain -_0809C4F0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809C524 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _0809C514 - lsls r0, r4, 24 - movs r1, 0xFF - lsls r1, 24 - b _0809C63C -_0809C514: - movs r0, 0xFF - strb r0, [r5] - lsls r0, r4, 24 - movs r3, 0xA0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - b _0809C648 -_0809C524: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C554 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _0809C548 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - b _0809C63C -_0809C548: - mov r3, r9 - strb r3, [r5] - lsls r0, r4, 24 - movs r1, 0xFB - lsls r1, 24 - b _0809C63C -_0809C554: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0809C56A - movs r0, 0x1 - mov r9, r0 - movs r1, 0x2 - mov r8, r1 - b _0809C646 -_0809C56A: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C5D4 - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C5D4 - ldr r0, _0809C588 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C58C - movs r0, 0x8 - b _0809C658 - .align 2, 0 -_0809C588: .4byte gUnknown_020384E9 -_0809C58C: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C5D4 - lsls r0, 2 - ldr r1, _0809C5A8 @ =_0809C5AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5A8: .4byte _0809C5AC - .align 2, 0 -_0809C5AC: - .4byte _0809C5C0 - .4byte _0809C5C4 - .4byte _0809C5C8 - .4byte _0809C5CC - .4byte _0809C5D0 -_0809C5C0: - movs r0, 0xB - b _0809C658 -_0809C5C4: - movs r0, 0xC - b _0809C658 -_0809C5C8: - movs r0, 0xD - b _0809C658 -_0809C5CC: - movs r0, 0xE - b _0809C658 -_0809C5D0: - movs r0, 0xF - b _0809C658 -_0809C5D4: - ldr r2, _0809C5E4 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C5E8 - movs r0, 0x10 - b _0809C658 - .align 2, 0 -_0809C5E4: .4byte gMain -_0809C5E8: - ldr r0, _0809C600 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C612 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0809C604 - movs r0, 0xA - b _0809C658 - .align 2, 0 -_0809C600: .4byte gSaveBlock2 -_0809C604: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0809C612 - movs r0, 0x9 - b _0809C658 -_0809C612: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C624 - bl sub_809CD88 - movs r0, 0 - b _0809C658 -_0809C624: - movs r3, 0 - mov r9, r3 - b _0809C656 -_0809C62A: - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x5 - ble _0809C642 - lsls r0, r4, 24 - movs r1, 0xFA - lsls r1, 24 -_0809C63C: - adds r0, r1 - lsrs r4, r0, 24 - b _0809C648 -_0809C642: - movs r3, 0x2 - mov r8, r3 -_0809C646: - movs r4, 0 -_0809C648: - mov r0, r9 - cmp r0, 0 - beq _0809C656 - mov r0, r8 - adds r1, r4, 0 - bl sub_809AF18 -_0809C656: - mov r0, r9 -_0809C658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C464 - - thumb_func_start sub_809C664 -sub_809C664: @ 809C664 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809C6D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r10, r0 - ldr r7, _0809C6DC @ =gUnknown_020384E5 - ldrb r4, [r7] - ldr r2, _0809C6E0 @ =gUnknown_083B6DB4 - ldr r5, [r2] - ldr r1, _0809C6E4 @ =0x000011df - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C6E8 @ =0x000011de - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x5 - adds r0, r5, r3 - strb r1, [r0] - mov r9, r1 - mov r8, r1 - ldr r1, _0809C6EC @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - adds r6, r7, 0 - mov r12, r2 - adds r2, r1, 0 - cmp r0, 0 - beq _0809C6A8 - b _0809C81C -_0809C6A8: - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C6F0 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x6 - ble _0809C6C2 - movs r4, 0 -_0809C6C2: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - bne _0809C6D0 - b _0809C83C -_0809C6D0: - movs r2, 0x1 - mov r8, r2 - b _0809C842 - .align 2, 0 -_0809C6D8: .4byte gUnknown_020384E4 -_0809C6DC: .4byte gUnknown_020384E5 -_0809C6E0: .4byte gUnknown_083B6DB4 -_0809C6E4: .4byte 0x000011df -_0809C6E8: .4byte 0x000011de -_0809C6EC: .4byte gMain -_0809C6F0: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0809C714 - ldrb r1, [r6] - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - beq _0809C714 - movs r3, 0x1 - mov r8, r3 - ldr r2, _0809C710 @ =0x000011e2 - adds r0, r5, r2 - strb r1, [r0] - movs r4, 0 - b _0809C83C - .align 2, 0 -_0809C710: .4byte 0x000011e2 -_0809C714: - ldrh r1, [r2, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C748 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - bne _0809C73C - movs r3, 0x1 - mov r8, r3 - mov r1, r12 - ldr r0, [r1] - ldr r2, _0809C738 @ =0x000011e2 - adds r0, r2 - ldrb r4, [r0] - b _0809C83C - .align 2, 0 -_0809C738: .4byte 0x000011e2 -_0809C73C: - movs r3, 0x6 - mov r8, r3 - movs r0, 0 - mov r10, r0 - movs r4, 0 - b _0809C83C -_0809C748: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C7D0 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x6 - bne _0809C76E - mov r1, r12 - ldr r0, [r1] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C768 - movs r0, 0x4 - b _0809C84C -_0809C768: - movs r2, 0x1 - mov r9, r2 - b _0809C7D0 -_0809C76E: - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C7D0 - ldr r0, _0809C784 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C788 - movs r0, 0x8 - b _0809C84C - .align 2, 0 -_0809C784: .4byte gUnknown_020384E9 -_0809C788: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C7D0 - lsls r0, 2 - ldr r1, _0809C7A4 @ =_0809C7A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C7A4: .4byte _0809C7A8 - .align 2, 0 -_0809C7A8: - .4byte _0809C7BC - .4byte _0809C7C0 - .4byte _0809C7C4 - .4byte _0809C7C8 - .4byte _0809C7CC -_0809C7BC: - movs r0, 0xB - b _0809C84C -_0809C7C0: - movs r0, 0xC - b _0809C84C -_0809C7C4: - movs r0, 0xD - b _0809C84C -_0809C7C8: - movs r0, 0xE - b _0809C84C -_0809C7CC: - movs r0, 0xF - b _0809C84C -_0809C7D0: - ldr r2, _0809C7EC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C7F8 - ldr r0, _0809C7F0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C7F4 - movs r0, 0x10 - b _0809C84C - .align 2, 0 -_0809C7EC: .4byte gMain -_0809C7F0: .4byte gUnknown_083B6DB4 -_0809C7F4: - movs r3, 0x1 - mov r9, r3 -_0809C7F8: - mov r0, r9 - cmp r0, 0 - beq _0809C80A - movs r1, 0x6 - mov r8, r1 - movs r2, 0 - mov r10, r2 - movs r4, 0 - b _0809C83C -_0809C80A: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C83C - bl sub_809CD88 - movs r0, 0 - b _0809C84C -_0809C81C: - lsls r0, r4, 24 - movs r3, 0xFF - lsls r3, 24 - adds r0, r3 - lsrs r4, r0, 24 - cmp r0, 0 - bge _0809C82C - movs r4, 0x6 -_0809C82C: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r7, r1] - cmp r0, r1 - beq _0809C83C - movs r0, 0x1 - mov r8, r0 -_0809C83C: - mov r1, r8 - cmp r1, 0 - beq _0809C84A -_0809C842: - mov r0, r10 - adds r1, r4, 0 - bl sub_809AF18 -_0809C84A: - mov r0, r8 -_0809C84C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C664 - - thumb_func_start sub_809C85C -sub_809C85C: @ 809C85C - push {r4-r6,lr} - ldr r0, _0809C894 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r1, _0809C898 @ =0x000011df - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C89C @ =0x000011de - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809C8A0 @ =0x000011e3 - adds r2, r0 - strb r1, [r2] - ldr r1, _0809C8A4 @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - bne _0809C91A - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C8A8 - movs r4, 0x1 - movs r0, 0 - movs r5, 0x2 - b _0809C922 - .align 2, 0 -_0809C894: .4byte gUnknown_083B6DB4 -_0809C898: .4byte 0x000011df -_0809C89C: .4byte 0x000011de -_0809C8A0: .4byte 0x000011e3 -_0809C8A4: .4byte gMain -_0809C8A8: - ldrh r2, [r1, 0x2C] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _0809C8CC - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _0809C8DE - ldr r0, _0809C8D0 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C8E2 - movs r0, 0x80 - lsls r0, 2 - ands r0, r2 - cmp r0, 0 - beq _0809C8D4 -_0809C8CC: - movs r0, 0xA - b _0809C93E - .align 2, 0 -_0809C8D0: .4byte gSaveBlock2 -_0809C8D4: - movs r0, 0x80 - lsls r0, 1 - ands r0, r2 - cmp r0, 0 - beq _0809C8E2 -_0809C8DE: - movs r0, 0x9 - b _0809C93E -_0809C8E2: - ldrh r1, [r1, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C8FA - movs r0, 0 - bl sub_809A860 - bl sub_809CA8C - movs r0, 0x7 - b _0809C93E -_0809C8FA: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C906 - movs r0, 0x10 - b _0809C93E -_0809C906: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C916 - bl sub_809CD88 - movs r0, 0 - b _0809C93E -_0809C916: - movs r4, 0 - b _0809C93C -_0809C91A: - movs r4, 0x1 - movs r0, 0x3 - movs r5, 0 - strb r4, [r2] -_0809C922: - cmp r4, 0 - beq _0809C93C - lsls r6, r0, 24 - cmp r0, 0x2 - beq _0809C932 - movs r0, 0 - bl sub_809A860 -_0809C932: - lsrs r0, r6, 24 - lsls r1, r5, 24 - lsrs r1, 24 - bl sub_809AF18 -_0809C93C: - adds r0, r4, 0 -_0809C93E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809C85C - - thumb_func_start sub_809C944 -sub_809C944: @ 809C944 - push {r4-r7,lr} - ldr r0, _0809C988 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r12, r0 - ldr r7, _0809C98C @ =gUnknown_020384E5 - ldrb r3, [r7] - ldr r0, _0809C990 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C994 @ =0x000011df - adds r5, r1, r0 - movs r0, 0 - strb r0, [r5] - ldr r2, _0809C998 @ =0x000011de - adds r4, r1, r2 - strb r0, [r4] - adds r2, 0x5 - adds r1, r2 - strb r0, [r1] - ldr r6, _0809C99C @ =gMain - ldrh r2, [r6, 0x30] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _0809CA14 - movs r0, 0x88 - ands r0, r2 - cmp r0, 0 - beq _0809C9A0 - movs r6, 0x1 - movs r0, 0x2 - mov r12, r0 - movs r3, 0 - b _0809CA2A - .align 2, 0 -_0809C988: .4byte gUnknown_020384E4 -_0809C98C: .4byte gUnknown_020384E5 -_0809C990: .4byte gUnknown_083B6DB4 -_0809C994: .4byte 0x000011df -_0809C998: .4byte 0x000011de -_0809C99C: .4byte gMain -_0809C9A0: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _0809C9C0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r3, r0, 24 - cmp r0, 0 - bge _0809CA2C - movs r0, 0xFF - strb r0, [r5] - movs r3, 0x1 - b _0809CA2C -_0809C9C0: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _0809C9E0 - movs r6, 0x1 - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 - asrs r0, 24 - cmp r0, 0x1 - ble _0809CA2C - strb r6, [r5] - movs r3, 0 - b _0809CA2C -_0809C9E0: - ldrh r1, [r6, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C9F4 - movs r0, 0x4 - cmp r3, 0 - bne _0809CA3A - movs r0, 0x5 - b _0809CA3A -_0809C9F4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CA00 - movs r0, 0x10 - b _0809CA3A -_0809CA00: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809CA10 - bl sub_809CD88 - movs r0, 0 - b _0809CA3A -_0809CA10: - movs r6, 0 - b _0809CA38 -_0809CA14: - movs r6, 0x1 - movs r0, 0 - mov r12, r0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0 - ldrsb r0, [r7, r0] - movs r3, 0x1D - cmp r0, 0 - bne _0809CA2A - movs r3, 0x18 -_0809CA2A: - strb r6, [r1] -_0809CA2C: - cmp r6, 0 - beq _0809CA38 - mov r0, r12 - adds r1, r3, 0 - bl sub_809AF18 -_0809CA38: - adds r0, r6, 0 -_0809CA3A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C944 - - thumb_func_start sub_809CA40 -sub_809CA40: @ 809CA40 - push {r4,r5,lr} - movs r3, 0 - ldr r0, _0809CA6C @ =gUnknown_083BBBD4 - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _0809CA84 - ldr r5, _0809CA70 @ =gUnknown_020384E4 -_0809CA50: - 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 _0809CA74 - ldr r0, [r2] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - b _0809CA86 - .align 2, 0 -_0809CA6C: .4byte gUnknown_083BBBD4 -_0809CA70: .4byte gUnknown_020384E4 -_0809CA74: - 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 _0809CA50 -_0809CA84: - movs r0, 0 -_0809CA86: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809CA40 - - thumb_func_start sub_809CA8C -sub_809CA8C: @ 809CA8C - push {lr} - bl sub_809CDCC - movs r0, 0x9 - bl sub_809CDEC - movs r0, 0xA - bl sub_809CDEC - movs r0, 0xB - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - pop {r0} - bx r0 - thumb_func_end sub_809CA8C - - thumb_func_start sub_809CAB0 -sub_809CAB0: @ 809CAB0 - push {lr} - bl sub_809CDCC - bl sub_809AB8C - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _0809CAD4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - beq _0809CADE - cmp r0, 0x1 - bgt _0809CAD8 - cmp r0, 0 - beq _0809CAEA - b _0809CB24 - .align 2, 0 -_0809CAD4: .4byte gUnknown_083B6DB4 -_0809CAD8: - cmp r0, 0x2 - beq _0809CAF6 - b _0809CB24 -_0809CADE: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x1 - bl sub_809CDEC - b _0809CB28 -_0809CAEA: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB28 -_0809CAF6: - ldr r0, _0809CB0C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809CB18 - cmp r1, 0 - beq _0809CB10 - movs r0, 0x4 - bl sub_809CDEC - b _0809CB28 - .align 2, 0 -_0809CB0C: .4byte gUnknown_020384E6 -_0809CB10: - movs r0, 0x5 - bl sub_809CDEC - b _0809CB28 -_0809CB18: - cmp r1, 0 - beq _0809CB24 - movs r0, 0x3 - bl sub_809CDEC - b _0809CB28 -_0809CB24: - movs r0, 0 - b _0809CB6E -_0809CB28: - movs r0, 0x6 - bl sub_809CDEC - ldr r0, _0809CB4C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x2 - bne _0809CB5A - ldr r0, _0809CB50 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _0809CB54 - movs r0, 0x2 - bl sub_809CDEC - b _0809CB5A - .align 2, 0 -_0809CB4C: .4byte gUnknown_083B6DB4 -_0809CB50: .4byte gUnknown_020384E4 -_0809CB54: - movs r0, 0x1 - bl sub_809CDEC -_0809CB5A: - movs r0, 0x8 - bl sub_809CDEC - movs r0, 0x7 - bl sub_809CDEC - movs r0, 0 - bl sub_809CDEC - movs r0, 0x1 -_0809CB6E: - pop {r1} - bx r1 - thumb_func_end sub_809CAB0 - - thumb_func_start sub_809CB74 -sub_809CB74: @ 809CB74 - ldr r1, _0809CB90 @ =gUnknown_083B6DB4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - 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 -_0809CB90: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809CB74 - - thumb_func_start unref_sub_809CB94 -unref_sub_809CB94: @ 809CB94 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0809CBBC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CBC8 - ldr r2, _0809CBC0 @ =gPlayerParty - ldr r0, _0809CBC4 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r1, r0 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy - b _0809CBF6 - .align 2, 0 -_0809CBBC: .4byte gUnknown_020384E4 -_0809CBC0: .4byte gPlayerParty -_0809CBC4: .4byte gUnknown_020384E5 -_0809CBC8: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0809CBFC @ =gPokemonStorage - ldr r1, _0809CC00 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - lsls r2, r0, 2 - adds r2, r0 - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 5 - adds r1, r0 - adds r1, r3 - adds r1, 0x4 - adds r0, r4, 0 - movs r2, 0x50 - bl memcpy -_0809CBF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809CBFC: .4byte gPokemonStorage -_0809CC00: .4byte gUnknown_020384E5 - thumb_func_end unref_sub_809CB94 - - thumb_func_start sub_809CC04 -sub_809CC04: @ 809CC04 - push {r4-r7,lr} - sub sp, 0x34 - mov r1, sp - ldr r0, _0809CCB0 @ =gHandCursorSpriteSheets - 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, _0809CCB4 @ =gHandCursorSpritePalettes - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - ldr r0, _0809CCB8 @ =0x0000dac6 - bl IndexOfSpritePaletteTag - ldr r1, _0809CCBC @ =gUnknown_083B6DB4 - ldr r6, [r1] - ldr r4, _0809CCC0 @ =0x000011e4 - adds r7, r6, r4 - strb r0, [r7] - ldr r0, _0809CCC4 @ =0x0000dad1 - bl IndexOfSpritePaletteTag - ldr r5, _0809CCC8 @ =0x000011e5 - adds r1, r6, r5 - strb r0, [r1] - ldr r0, _0809CCCC @ =gUnknown_020384E4 - ldrb r0, [r0] - ldr r1, _0809CCD0 @ =gUnknown_020384E5 - ldrb r1, [r1] - add r4, sp, 0x30 - mov r5, sp - adds r5, 0x32 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_809AACC - ldr r0, _0809CCD4 @ =gSpriteTemplate_83BBC70 - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0 - ldrsh r2, [r5, r3] - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CCE4 - movs r5, 0x8E - lsls r5, 5 - adds r4, r6, r5 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CCD8 @ =gSprites - adds r1, r0 - str r1, [r4] - ldr r0, _0809CCDC @ =gUnknown_020384E9 - ldrb r0, [r0] - adds r0, r7, r0 - ldrb r2, [r0] - lsls r2, 4 - ldrb r3, [r1, 0x5] - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, _0809CCE0 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809CCEE - ldr r0, [r4] - movs r1, 0x3 - bl StartSpriteAnim - b _0809CCEE - .align 2, 0 -_0809CCB0: .4byte gHandCursorSpriteSheets -_0809CCB4: .4byte gHandCursorSpritePalettes -_0809CCB8: .4byte 0x0000dac6 -_0809CCBC: .4byte gUnknown_083B6DB4 -_0809CCC0: .4byte 0x000011e4 -_0809CCC4: .4byte 0x0000dad1 -_0809CCC8: .4byte 0x000011e5 -_0809CCCC: .4byte gUnknown_020384E4 -_0809CCD0: .4byte gUnknown_020384E5 -_0809CCD4: .4byte gSpriteTemplate_83BBC70 -_0809CCD8: .4byte gSprites -_0809CCDC: .4byte gUnknown_020384E9 -_0809CCE0: .4byte gUnknown_020384E6 -_0809CCE4: - movs r0, 0x8E - lsls r0, 5 - adds r1, r6, r0 - movs r0, 0 - str r0, [r1] -_0809CCEE: - ldr r0, _0809CD00 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809CD04 - movs r3, 0xC - movs r5, 0x1 - b _0809CD08 - .align 2, 0 -_0809CD00: .4byte gUnknown_020384E4 -_0809CD04: - movs r3, 0x14 - movs r5, 0x2 -_0809CD08: - ldr r0, _0809CD58 @ =gSpriteTemplate_83BBC88 - movs r1, 0 - movs r2, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0809CD6C - ldr r0, _0809CD5C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809CD60 @ =0x000011c4 - adds r4, r0, r1 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0809CD64 @ =gSprites - adds r1, r0 - str r1, [r4] - lsls r3, r5, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r0, _0809CD68 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809CD78 - ldr r0, [r4] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809CD78 - .align 2, 0 -_0809CD58: .4byte gSpriteTemplate_83BBC88 -_0809CD5C: .4byte gUnknown_083B6DB4 -_0809CD60: .4byte 0x000011c4 -_0809CD64: .4byte gSprites -_0809CD68: .4byte gUnknown_020384E4 -_0809CD6C: - ldr r0, _0809CD80 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809CD84 @ =0x000011c4 - adds r0, r2 - movs r1, 0 - str r1, [r0] -_0809CD78: - add sp, 0x34 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809CD80: .4byte gUnknown_083B6DB4 -_0809CD84: .4byte 0x000011c4 - thumb_func_end sub_809CC04 - - thumb_func_start sub_809CD88 -sub_809CD88: @ 809CD88 - push {lr} - ldr r2, _0809CDC0 @ =gUnknown_020384E9 - movs r1, 0 - ldrb r0, [r2] - cmp r0, 0 - bne _0809CD96 - movs r1, 0x1 -_0809CD96: - strb r1, [r2] - ldr r0, _0809CDC4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0x8E - lsls r3, 5 - adds r1, r0, r3 - ldr r3, [r1] - ldr r1, _0809CDC8 @ =0x000011e4 - 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 -_0809CDC0: .4byte gUnknown_020384E9 -_0809CDC4: .4byte gUnknown_083B6DB4 -_0809CDC8: .4byte 0x000011e4 - thumb_func_end sub_809CD88 - - thumb_func_start sub_809CDCC -sub_809CDCC: @ 809CDCC - ldr r0, _0809CDE0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809CDE4 @ =0x000011b8 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, _0809CDE8 @ =0x000011b9 - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0809CDE0: .4byte gUnknown_083B6DB4 -_0809CDE4: .4byte 0x000011b8 -_0809CDE8: .4byte 0x000011b9 - thumb_func_end sub_809CDCC - - thumb_func_start sub_809CDEC -sub_809CDEC: @ 809CDEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0809CE3C @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _0809CE40 @ =0x000011b8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x6 - bhi _0809CE36 - adds r1, r0, 0 - lsls r1, 3 - movs r2, 0x8C - lsls r2, 5 - adds r1, r2 - adds r1, r5, r1 - ldr r2, _0809CE44 @ =gUnknown_083BBCA0 - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] - str r3, [r1, 0x4] - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0x7 - lsrs r1, 3 - ldr r2, _0809CE48 @ =0x000011b9 - adds r0, r5, r2 - ldrb r2, [r0] - cmp r1, r2 - bls _0809CE30 - strb r1, [r0] -_0809CE30: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809CE36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809CE3C: .4byte gUnknown_083B6DB4 -_0809CE40: .4byte 0x000011b8 -_0809CE44: .4byte gUnknown_083BBCA0 -_0809CE48: .4byte 0x000011b9 - thumb_func_end sub_809CDEC - - thumb_func_start sub_809CE4C -sub_809CE4C: @ 809CE4C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0809CE70 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _0809CE74 @ =0x000011b8 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bcs _0809CE7C - lsls r0, r2, 3 - ldr r2, _0809CE78 @ =0x00001184 - adds r1, r2 - adds r1, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - b _0809CE80 - .align 2, 0 -_0809CE70: .4byte gUnknown_083B6DB4 -_0809CE74: .4byte 0x000011b8 -_0809CE78: .4byte 0x00001184 -_0809CE7C: - movs r0, 0x1 - negs r0, r0 -_0809CE80: - pop {r1} - bx r1 - thumb_func_end sub_809CE4C - - thumb_func_start sub_809CE84 -sub_809CE84: @ 809CE84 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, _0809CF20 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809CF24 @ =0x000011b8 - adds r0, r4 - mov r8, r0 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0xE - subs r1, r0 - ldr r3, _0809CF28 @ =0x000011bc - adds r6, r4, r3 - movs r0, 0 - mov r10, r0 - strh r1, [r6] - ldr r1, _0809CF2C @ =0x000011b9 - adds r1, r4 - mov r9, r1 - ldrb r1, [r1] - movs r0, 0x1C - subs r0, r1 - subs r3, 0x2 - adds r5, r4, r3 - strh r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - movs r2, 0x1D - movs r3, 0xF - bl MenuDrawTextWindow - ldrb r0, [r5] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r3, r8 - ldrb r2, [r3] - movs r3, 0x8C - lsls r3, 5 - adds r4, r3 - adds r3, r4, 0 - bl PrintMenuItems - ldrb r1, [r5] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - mov r4, r8 - ldrb r3, [r4] - mov r0, r10 - str r0, [sp] - mov r4, r9 - ldrb r0, [r4] - str r0, [sp, 0x4] - movs r0, 0 - bl InitMenu - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809CF20: .4byte gUnknown_083B6DB4 -_0809CF24: .4byte 0x000011b8 -_0809CF28: .4byte 0x000011bc -_0809CF2C: .4byte 0x000011b9 - thumb_func_end sub_809CE84 - - thumb_func_start sub_809CF30 -sub_809CF30: @ 809CF30 - push {r4,r5,lr} - movs r5, 0x2 - negs r5, r5 - ldr r4, _0809CF6C @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809CF86 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809CF52 - movs r0, 0x5 - bl PlaySE - adds r5, 0x1 -_0809CF52: - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809CF70 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0809CF8E - .align 2, 0 -_0809CF6C: .4byte gMain -_0809CF70: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809CF8E - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0809CF8E -_0809CF86: - bl GetMenuCursorPos - lsls r0, 24 - lsrs r5, r0, 24 -_0809CF8E: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _0809CFB2 - bl sub_8072DEC - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809CFD4 @ =0x000011ba - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect -_0809CFB2: - cmp r5, 0 - blt _0809CFC4 - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r5, 3 - ldr r2, _0809CFD8 @ =0x00001184 - adds r0, r2 - adds r0, r1 - ldr r5, [r0] -_0809CFC4: - lsls r0, r5, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809CFD0: .4byte gUnknown_083B6DB4 -_0809CFD4: .4byte 0x000011ba -_0809CFD8: .4byte 0x00001184 - thumb_func_end sub_809CF30 - - thumb_func_start sub_809CFDC -sub_809CFDC: @ 809CFDC - ldr r3, _0809CFEC @ =gUnknown_020384EC - str r0, [r3] - str r1, [r0] - movs r1, 0 - strb r2, [r0, 0x5] - strb r1, [r0, 0x4] - bx lr - .align 2, 0 -_0809CFEC: .4byte gUnknown_020384EC - thumb_func_end sub_809CFDC - - thumb_func_start sub_809CFF0 -sub_809CFF0: @ 809CFF0 - push {r4,r5,lr} - ldr r2, _0809D030 @ =gUnknown_020384EC - ldr r1, [r2] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _0809D02A - movs r4, 0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _0809D022 - adds r5, r2, 0 -_0809D006: - ldr r0, [r5] - lsls r1, r4, 4 - ldr r0, [r0] - adds r0, r1 - ldr r1, [r0, 0xC] - 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 _0809D006 -_0809D022: - ldr r0, _0809D030 @ =gUnknown_020384EC - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x4] -_0809D02A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809D030: .4byte gUnknown_020384EC - thumb_func_end sub_809CFF0 - - thumb_func_start sub_809D034 -sub_809D034: @ 809D034 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r0 - mov r9, r3 - ldr r0, [sp, 0x20] - ldr r3, [sp, 0x24] - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _0809D0A4 @ =gUnknown_020384EC - ldr r2, [r0] - ldrb r0, [r2, 0x4] - adds r1, r0, 0 - ldrb r7, [r2, 0x5] - cmp r1, r7 - bcs _0809D0AC - adds r0, 0x1 - strb r0, [r2, 0x4] - lsls r0, r1, 4 - ldr r2, [r2] - adds r2, r0 - lsls r0, r4, 1 - strh r0, [r2, 0x8] - lsls r0, r6, 6 - add r0, r8 - mov r4, r10 - lsls r1, r4, 1 - adds r0, r1 - str r0, [r2, 0x4] - lsls r0, r3, 6 - add r0, r9 - mov r7, r12 - lsls r1, r7, 1 - adds r0, r1 - str r0, [r2] - strh r5, [r2, 0xA] - ldr r0, _0809D0A8 @ =sub_809D0BC - str r0, [r2, 0xC] - movs r0, 0x1 - b _0809D0AE - .align 2, 0 -_0809D0A4: .4byte gUnknown_020384EC -_0809D0A8: .4byte sub_809D0BC -_0809D0AC: - movs r0, 0 -_0809D0AE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D034 - - thumb_func_start sub_809D0BC -sub_809D0BC: @ 809D0BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r6, [r0] - ldr r5, [r0, 0x4] - ldrh r7, [r0, 0xA] - ldrh r2, [r0, 0x8] - movs r4, 0 - cmp r4, r7 - bcs _0809D0F2 - lsrs r2, 1 - mov r8, r2 - ldr r0, _0809D100 @ =0x001fffff - mov r9, r0 -_0809D0DA: - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - mov r3, r9 - ands r2, r3 - bl CpuSet - adds r5, 0x40 - adds r6, 0x40 - adds r4, 0x1 - cmp r4, r7 - bcc _0809D0DA -_0809D0F2: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D100: .4byte 0x001fffff - thumb_func_end sub_809D0BC - - thumb_func_start sub_809D104 -sub_809D104: @ 809D104 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, [sp, 0x18] - ldr r4, [sp, 0x1C] - ldr r6, [sp, 0x20] - mov r8, r6 - ldr r6, [sp, 0x24] - lsls r1, 16 - lsls r2, 16 - lsrs r2, 16 - lsls r5, 16 - lsls r4, 16 - mov r7, r8 - lsls r7, 16 - lsls r6, 16 - lsrs r6, 16 - lsrs r4, 10 - adds r3, r4 - lsrs r5, 15 - adds r5, r3, r5 - lsls r3, r2, 6 - adds r3, r0, r3 - lsrs r1, 15 - adds r4, r3, r1 - adds r2, r6 - lsls r2, 6 - adds r6, r0, r2 - lsrs r2, r7, 15 - cmp r4, r6 - bcs _0809D15C - lsrs r7, r2, 1 - ldr r0, _0809D168 @ =0x001fffff - mov r8, r0 -_0809D148: - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - ands r2, r7 - bl CpuSet - adds r4, 0x40 - adds r5, 0x40 - cmp r4, r6 - bcc _0809D148 -_0809D15C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809D168: .4byte 0x001fffff - thumb_func_end sub_809D104 - - thumb_func_start sub_809D16C -sub_809D16C: @ 809D16C - 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, _0809D1B4 @ =gUnknown_020384EC - ldr r1, [r0] - ldrb r0, [r1, 0x4] - adds r2, r0, 0 - ldrb r7, [r1, 0x5] - cmp r2, r7 - bcs _0809D1BC - adds r0, 0x1 - strb r0, [r1, 0x4] - lsls r0, r2, 4 - ldr r1, [r1] - 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, 0xA] - ldr r0, _0809D1B8 @ =sub_809D1C4 - str r0, [r1, 0xC] - movs r0, 0x1 - b _0809D1BE - .align 2, 0 -_0809D1B4: .4byte gUnknown_020384EC -_0809D1B8: .4byte sub_809D1C4 -_0809D1BC: - movs r0, 0 -_0809D1BE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809D16C - - thumb_func_start sub_809D1C4 -sub_809D1C4: @ 809D1C4 - 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, 0xA] - cmp r0, r1 - bcs _0809D252 - movs r7, 0x80 - lsls r7, 5 - mov r5, sp - ldr r2, _0809D210 @ =0x040000d4 - mov r8, r2 - movs r1, 0x81 - lsls r1, 24 - mov r10, r1 -_0809D1EA: - ldr r2, [r6, 0x4] - ldrh r3, [r6, 0x8] - mov r12, r2 - adds r0, 0x1 - mov r9, r0 - cmp r3, r7 - bhi _0809D214 - 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 _0809D23C - .align 2, 0 -_0809D210: .4byte 0x040000d4 -_0809D214: - movs r4, 0 - strh r4, [r5] - ldr r1, _0809D264 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0809D268 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r7 - subs r3, r7 - cmp r3, r7 - bhi _0809D214 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r10 - orrs r0, r2 -_0809D23C: - 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, 0xA] - cmp r0, r2 - bcc _0809D1EA -_0809D252: - 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 -_0809D264: .4byte 0x040000d4 -_0809D268: .4byte 0x81000800 - thumb_func_end sub_809D1C4 - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index f4ca63876..ad9cd02a3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -121,6 +121,8 @@ SECTIONS { src/trainer_card.o(.text); src/save_menu_util.o(.text); asm/rom_8094928.o(.text); + asm/battle_party_menu.o(.text); + asm/pokemon_storage_system.o(.text); asm/pokemon_icon.o(.text); asm/pokemon_summary_screen.o(.text); asm/script_movement.o(.text); @@ -170,6 +172,8 @@ SECTIONS { asm/region_map.o(.text); asm/cute_sketch.o(.text); asm/decoration.o(.text); + src/decoration.o(.text); + asm/decoration.o(.text_80FE868); asm/slot_machine.o(.text); asm/contest_painting.o(.text); src/battle_ai.o(.text); diff --git a/src/decoration.c b/src/decoration.c new file mode 100644 index 000000000..cf137799a --- /dev/null +++ b/src/decoration.c @@ -0,0 +1,26 @@ +#include "global.h" +#include "asm.h" +#include "menu.h" + +extern u8 gUnknown_020388F2; +extern u8 gUnknown_020388F3; +extern u8 gUnknown_020388F4; +extern u8 gUnknown_020388F6; +extern u8 gUnknown_020388D5; + +void sub_80FEC94(u8 arg0); +void sub_80FECB8(u8 arg0); +void sub_80FECE0(u8 arg0); + +void sub_80FE7EC(u8 arg0) { + sub_8072DEC(); + MenuZeroFillWindowRect(0, 0, 29, 19); + + sub_80FEC94(arg0); + sub_80FECB8(gUnknown_020388F6); + + MenuDrawTextWindow(15, 12, 29, 19); + + sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4); + InitMenu(0, 1, 2, gUnknown_020388F3 + 1, gUnknown_020388F2, 13); +} |