.include "constants/gba_constants.inc" .include "include/macros.inc" .syntax unified .text thumb_func_start sub_809AFB8 sub_809AFB8: @ 809AFB8 push {r4,r5,lr} ldr r5, _0809B000 @ =gUnknown_020384E4 ldr r0, _0809B004 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809B14C: .4byte 0x000012a4 thumb_func_end sub_809B130 thumb_func_start sub_809B150 sub_809B150: @ 809B150 push {r4,r5,lr} ldr r0, _0809B16C @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809B504: .4byte 0x000025b4 _0809B508: ldr r0, _0809B53C @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 GetIndexOfFirstEmptySpaceInBoxN 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr thumb_func_end sub_809B62C thumb_func_start sub_809B6BC sub_809B6BC: @ 809B6BC push {lr} ldr r0, _0809B6D8 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809BB8C: .4byte 0x0000267d thumb_func_end sub_809B960 // file boundary at or before here 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809BBF0: .4byte 0x000025b4 _0809BBF4: .4byte gUnknown_02038480 _0809BBF8: ldr r0, _0809BC0C @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809BCA4: .4byte 0x00002690 _0809BCA8: .4byte gPlayerParty _0809BCAC: .4byte gUnknown_020384E5 _0809BCB0: .4byte 0x0000268d _0809BCB4: .4byte 0x0000268c _0809BCB8: .4byte 0x0000268e _0809BCBC: ldr r0, _0809BCF8 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gSharedMem + 0x18000 ldrb r1, [r1, 0x9] strb r1, [r0] _0809BD30: pop {r0} bx r0 .align 2, 0 _0809BD34: .4byte gUnknown_020384E5 _0809BD38: .4byte gSharedMem + 0x18000 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 GetMonSpritePal 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 gPokemonStorageSystemPtr _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 GetMonSpritePalFromOtIdPersonality 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 @ =gPokemonStorageSystemPtr ldr r4, [r0] ldr r2, _0809C220 @ =0x000011f0 adds r0, r4, r2 ldrh r1, [r0] cmp r1, 0 bne _0809C23C _0809C1EC: ldr r0, _0809C224 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr 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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809CD60: .4byte 0x000011c4 _0809CD64: .4byte gSprites _0809CD68: .4byte gUnknown_020384E4 _0809CD6C: ldr r0, _0809CD80 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _0809CDC8: .4byte 0x000011e4 thumb_func_end sub_809CD88 // file boundary here thumb_func_start sub_809CDCC sub_809CDCC: @ 809CDCC ldr r0, _0809CDE0 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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 @ =gPokemonStorageSystemPtr 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 Menu_DrawStdWindowFrame 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 Menu_PrintItems 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 gPokemonStorageSystemPtr _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 Menu_MoveCursor 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 Menu_MoveCursor b _0809CF8E _0809CF86: bl Menu_GetCursorPos lsls r0, 24 lsrs r5, r0, 24 _0809CF8E: movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _0809CFB2 bl Menu_DestroyCursor ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr 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 Menu_EraseWindowRect _0809CFB2: cmp r5, 0 blt _0809CFC4 ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr 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 gPokemonStorageSystemPtr _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.