.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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 CountAlivePartyMonsExceptOne CountAlivePartyMonsExceptOne: @ 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 CountAlivePartyMonsExceptOne thumb_func_start sub_8095C10 sub_8095C10: @ 8095C10 push {lr} ldr r0, _08095C24 @ =gSpecialVar_0x8004 ldrb r0, [r0] bl CountAlivePartyMonsExceptOne 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 StorageSystemGetPartySize StorageSystemGetPartySize: @ 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 StorageSystemGetPartySize 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 StorageSystemGetNextMonIndex StorageSystemGetNextMonIndex: @ 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 StorageSystemGetNextMonIndex thumb_func_start StorageSystemClearMessageWindow StorageSystemClearMessageWindow: @ 8095EA0 push {lr} movs r0, 0x2 movs r1, 0xF movs r2, 0x1B movs r3, 0x12 bl MenuFillWindowRectWithBlankTile pop {r0} bx r0 thumb_func_end StorageSystemClearMessageWindow thumb_func_start Task_PokemonStorageSystem Task_PokemonStorageSystem: @ 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 StorageSystemCreatePrimaryMenu 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 StorageSystemClearMessageWindow 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 HandleDestroyMenuCursors 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 StorageSystemGetPartySize lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bne _08096008 bl StorageSystemClearMessageWindow 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 StorageSystemGetPartySize lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08096034 bl StorageSystemClearMessageWindow 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 StorageSystemClearMessageWindow 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 StorageSystemClearMessageWindow 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 Task_PokemonStorageSystem thumb_func_start ShowPokemonStorageSystem ShowPokemonStorageSystem: @ 8096100 push {lr} ldr r0, _08096128 @ =Task_PokemonStorageSystem 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 Task_PokemonStorageSystem _0809612C: .4byte gTasks thumb_func_end ShowPokemonStorageSystem thumb_func_start sub_8096130 sub_8096130: @ 8096130 push {lr} ldr r0, _0809615C @ =Task_PokemonStorageSystem 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 Task_PokemonStorageSystem _08096160: .4byte gTasks _08096164: .4byte gUnknown_02038474 thumb_func_end sub_8096130 thumb_func_start StorageSystemCreatePrimaryMenu StorageSystemCreatePrimaryMenu: @ 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 StorageSystemCreatePrimaryMenu 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 @ =gFieldCallback 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 gFieldCallback _080961D0: .4byte sub_8096130 _080961D4: .4byte c2_exit_to_overworld_2_switch thumb_func_end sub_80961A8 thumb_func_start ResetPokemonStorageSystem ResetPokemonStorageSystem: @ 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 @ =gPokemonStorage + 0x8344 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 gPokemonStorage + 0x8344 _08096260: .4byte gPCText_BOX thumb_func_end ResetPokemonStorageSystem 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 @ =gPokemonStorage + 0x8344 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 gPokemonStorage + 0x8344 _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 ShowPokemonSummaryScreen 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 ItemIsMail 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 ItemIsMail 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 ItemIsMail 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 ItemIsMail 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 .section .text_8098A38 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 HandleDestroyMenuCursors 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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 @ =gSpriteAffineAnimTable_83B6F5C 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 gSpriteAffineAnimTable_83B6F5C 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 @ =gPokemonStorage + 0x8344 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 gPokemonStorage + 0x8344 _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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 BoxMonRestorePP 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 @ =gPokemonStorage + 0x4 adds r1, r2 adds r0, r1 bl ZeroBoxMonData _0809B582: pop {r0} bx r0 .align 2, 0 _0809B588: .4byte gPokemonStorage + 0x4 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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 _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 StorageSystemGetPartySize 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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 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 CountAlivePartyMonsExceptOne 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 CountAlivePartyMonsExceptOne 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 @ =gPokemonStorage + 0x4 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 gPokemonStorage + 0x4 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 HandleDestroyMenuCursors 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.