.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text @ file boundary? thumb_func_start sub_8095050 sub_8095050: @ 8095050 push {r4,lr} ldr r4, _08095088 @ =gUnknown_2039828 ldr r0, _0809508C @ =0x00000974 bl Alloc str r0, [r4] cmp r0, 0 beq _0809509C ldr r0, _08095090 @ =gUnknown_83D35D4 bl AddWindow8Bit adds r1, r0, 0 ldr r0, _08095094 @ =sPSSData ldr r0, [r0] ldr r2, _08095098 @ =0x000021f0 adds r0, r2 strh r1, [r0] lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF beq _0809509C lsls r0, r1, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 b _0809509E .align 2, 0 _08095088: .4byte gUnknown_2039828 _0809508C: .4byte 0x00000974 _08095090: .4byte gUnknown_83D35D4 _08095094: .4byte sPSSData _08095098: .4byte 0x000021f0 _0809509C: movs r0, 0 _0809509E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095050 thumb_func_start sub_80950A4 sub_80950A4: @ 80950A4 push {lr} ldr r0, _080950B8 @ =gUnknown_2039828 ldr r0, [r0] cmp r0, 0 beq _080950B2 bl Free _080950B2: pop {r0} bx r0 .align 2, 0 _080950B8: .4byte gUnknown_2039828 thumb_func_end sub_80950A4 thumb_func_start sub_80950BC sub_80950BC: @ 80950BC ldr r2, _080950CC @ =gUnknown_2039828 ldr r1, [r2] movs r3, 0 strb r0, [r1] ldr r0, [r2] strb r3, [r0, 0x1] bx lr .align 2, 0 _080950CC: .4byte gUnknown_2039828 thumb_func_end sub_80950BC thumb_func_start sub_80950D0 sub_80950D0: @ 80950D0 push {lr} ldr r0, _080950E8 @ =gUnknown_2039828 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _08095130 lsls r0, 2 ldr r1, _080950EC @ =_080950F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080950E8: .4byte gUnknown_2039828 _080950EC: .4byte _080950F0 .align 2, 0 _080950F0: .4byte _08095108 .4byte _0809510E .4byte _08095114 .4byte _0809511A .4byte _08095120 .4byte _08095126 _08095108: bl sub_8095138 b _0809512A _0809510E: bl sub_8095234 b _0809512A _08095114: bl sub_80952A0 b _0809512A _0809511A: bl sub_8095314 b _0809512A _08095120: bl sub_8095394 b _0809512A _08095126: bl sub_80953BC _0809512A: lsls r0, 24 lsrs r0, 24 b _08095132 _08095130: movs r0, 0 _08095132: pop {r1} bx r1 thumb_func_end sub_80950D0 thumb_func_start sub_8095138 sub_8095138: @ 8095138 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08095150 @ =gUnknown_2039828 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0x1 beq _08095168 cmp r0, 0x1 bgt _08095154 cmp r0, 0 beq _0809515A b _08095228 .align 2, 0 _08095150: .4byte gUnknown_2039828 _08095154: cmp r0, 0x2 beq _08095214 b _08095228 _0809515A: movs r0, 0 bl HideBg movs r0, 0x80 bl LoadMonIconPalettesAt b _080951F8 _08095168: adds r0, r1, 0x2 adds r1, 0x3 bl sub_8094CD4 ldr r1, [r6] ldrb r0, [r1, 0x2] strb r0, [r1, 0x4] ldr r1, [r6] ldrb r0, [r1, 0x3] strb r0, [r1, 0x5] ldr r4, _08095204 @ =0xfffffc00 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgX movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgY movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r5, _08095208 @ =sPSSData ldr r0, [r5] ldr r4, _0809520C @ =0x000021f0 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer8Bit ldr r1, [r6] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] bl sub_80956A4 movs r0, 0 movs r1, 0x4 movs r2, 0x1 bl SetBgAttribute ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram8Bit movs r0, 0xFC lsls r0, 6 ldr r2, _08095210 @ =0x00007fff movs r1, 0x8 bl BlendPalettes movs r0, 0x2 bl sub_8094D14 movs r0, 0x8 movs r1, 0x80 bl SetGpuRegBits _080951F8: ldr r1, [r6] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _08095228 .align 2, 0 _08095204: .4byte 0xfffffc00 _08095208: .4byte sPSSData _0809520C: .4byte 0x000021f0 _08095210: .4byte 0x00007fff _08095214: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08095228 movs r0, 0 bl ShowBg movs r0, 0 b _0809522A _08095228: movs r0, 0x1 _0809522A: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8095138 thumb_func_start sub_8095234 sub_8095234: @ 8095234 push {r4,lr} ldr r4, _0809524C @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _0809525E cmp r0, 0x1 bgt _08095250 cmp r0, 0 beq _08095256 b _08095298 .align 2, 0 _0809524C: .4byte gUnknown_2039828 _08095250: cmp r0, 0x2 beq _08095272 b _08095298 _08095256: movs r0, 0 bl HideBg b _08095268 _0809525E: bl sub_8095A58 movs r0, 0 bl sub_8094D14 _08095268: ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _08095298 _08095272: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08095298 bl sub_8094D40 movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette movs r0, 0 bl ShowBg movs r0, 0 b _0809529A _08095298: movs r0, 0x1 _0809529A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095234 thumb_func_start sub_80952A0 sub_80952A0: @ 80952A0 push {r4,lr} ldr r4, _080952B4 @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0 beq _080952B8 cmp r0, 0x1 beq _08095300 b _0809530A .align 2, 0 _080952B4: .4byte gUnknown_2039828 _080952B8: bl sub_80924A8 lsls r0, 24 cmp r0, 0 bne _0809530A ldr r1, [r4] adds r0, r1, 0x6 adds r1, 0x7 bl sub_8094CD4 bl sub_8095520 ldr r1, [r4] ldrb r0, [r1, 0x6] strb r0, [r1, 0x4] ldr r1, [r4] ldrb r0, [r1, 0x7] strb r0, [r1, 0x5] ldr r0, _080952F8 @ =sPSSData ldr r0, [r0] ldr r1, _080952FC @ =0x000021f0 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram8Bit ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _0809530A .align 2, 0 _080952F8: .4byte sPSSData _080952FC: .4byte 0x000021f0 _08095300: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0809530C _0809530A: movs r0, 0x1 _0809530C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80952A0 thumb_func_start sub_8095314 sub_8095314: @ 8095314 push {r4,lr} ldr r4, _0809532C @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _08095342 cmp r0, 0x1 bgt _08095330 cmp r0, 0 beq _08095336 b _0809538C .align 2, 0 _0809532C: .4byte gUnknown_2039828 _08095330: cmp r0, 0x2 beq _0809536E b _0809538C _08095336: bl sub_80957C8 bl sub_80958A0 movs r0, 0 b _08095360 _08095342: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _0809538C movs r0, 0x3 bl sub_8094D14 movs r1, 0x80 lsls r1, 1 movs r0, 0 movs r2, 0x8 bl sub_8095780 movs r0, 0x1 _08095360: bl sub_8092BAC ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _0809538C _0809536E: bl sub_8095790 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl DoMonPlaceChange lsls r0, 24 lsrs r0, 24 cmp r4, 0 bne _0809538C cmp r0, 0 bne _0809538C movs r0, 0 b _0809538E _0809538C: movs r0, 0x1 _0809538E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095314 thumb_func_start sub_8095394 sub_8095394: @ 8095394 push {r4,lr} bl sub_80924A8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8095790 lsls r0, 24 lsrs r0, 24 cmp r4, 0 bne _080953B4 cmp r0, 0 bne _080953B4 movs r0, 0 b _080953B6 _080953B4: movs r0, 0x1 _080953B6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095394 thumb_func_start sub_80953BC sub_80953BC: @ 80953BC push {r4,lr} ldr r4, _080953D4 @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _080953FA cmp r0, 0x1 bgt _080953D8 cmp r0, 0 beq _080953E2 b _0809546A .align 2, 0 _080953D4: .4byte gUnknown_2039828 _080953D8: cmp r0, 0x2 beq _08095426 cmp r0, 0x3 beq _08095444 b _0809546A _080953E2: bl sub_80959A8 movs r1, 0xFF lsls r1, 8 movs r0, 0 movs r2, 0x8 bl sub_8095780 movs r0, 0 bl sub_8092BAC b _0809543A _080953FA: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _0809546A bl sub_8095790 lsls r0, 24 cmp r0, 0 bne _0809546A bl sub_8095918 movs r0, 0x2 bl sub_8094D14 movs r0, 0x1 bl sub_8092BAC movs r0, 0 bl HideBg b _0809543A _08095426: bl DoMonPlaceChange lsls r0, 24 cmp r0, 0 bne _0809546A movs r0, 0 bl sub_8094D14 bl sub_8095A58 _0809543A: ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _0809546A _08095444: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _0809546A movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette bl sub_8094D40 movs r0, 0 bl ShowBg movs r0, 0 b _0809546C _0809546A: movs r0, 0x1 _0809546C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80953BC thumb_func_start sub_8095474 sub_8095474: @ 8095474 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080954B0 cmp r0, 0x1 bgt _0809548A cmp r0, 0 beq _08095494 b _08095518 _0809548A: cmp r1, 0x2 beq _080954D0 cmp r1, 0x3 beq _080954F0 b _08095518 _08095494: ldr r0, _080954AC @ =gUnknown_2039828 ldr r1, [r0] ldrb r0, [r1, 0x9] cmp r0, 0 beq _080954FE subs r0, 0x1 strb r0, [r1, 0x9] movs r1, 0x80 lsls r1, 3 movs r0, 0 b _080954E4 .align 2, 0 _080954AC: .4byte gUnknown_2039828 _080954B0: ldr r0, _080954CC @ =gUnknown_2039828 ldr r1, [r0] ldrb r2, [r1, 0x9] ldrb r0, [r1, 0xB] adds r0, r2, r0 cmp r0, 0x4 bgt _080954FE adds r0, r2, 0x1 strb r0, [r1, 0x9] movs r1, 0xFC lsls r1, 8 movs r0, 0 b _080954E4 .align 2, 0 _080954CC: .4byte gUnknown_2039828 _080954D0: ldr r0, _080954EC @ =gUnknown_2039828 ldr r1, [r0] ldrb r0, [r1, 0x8] cmp r0, 0 beq _080954FE subs r0, 0x1 strb r0, [r1, 0x8] movs r0, 0x80 lsls r0, 3 movs r1, 0 _080954E4: movs r2, 0x6 bl sub_8095780 b _08095518 .align 2, 0 _080954EC: .4byte gUnknown_2039828 _080954F0: ldr r0, _08095504 @ =gUnknown_2039828 ldr r1, [r0] ldrb r2, [r1, 0x8] ldrb r0, [r1, 0xA] adds r0, r2, r0 cmp r0, 0x5 ble _08095508 _080954FE: movs r0, 0 b _0809551A .align 2, 0 _08095504: .4byte gUnknown_2039828 _08095508: adds r0, r2, 0x1 strb r0, [r1, 0x8] movs r0, 0xFC lsls r0, 8 movs r1, 0 movs r2, 0x6 bl sub_8095780 _08095518: movs r0, 0x1 _0809551A: pop {r1} bx r1 thumb_func_end sub_8095474 thumb_func_start sub_8095520 sub_8095520: @ 8095520 push {r4-r7,lr} ldr r6, _080955C0 @ =gUnknown_2039828 ldr r2, [r6] ldrb r3, [r2, 0x2] ldrb r5, [r2, 0x6] subs r1, r3, r5 cmp r1, 0 bge _08095532 negs r1, r1 _08095532: ldrb r0, [r2, 0x4] subs r0, r3, r0 cmp r0, 0 bge _0809553C negs r0, r0 _0809553C: subs r0, r1, r0 lsls r0, 16 lsrs r4, r0, 16 ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x7] subs r3, r1, r0 cmp r3, 0 bge _0809554E negs r3, r3 _0809554E: ldrb r2, [r2, 0x5] subs r0, r1, r2 cmp r0, 0 bge _08095558 negs r0, r0 _08095558: subs r0, r3, r0 lsls r0, 16 lsrs r7, r0, 16 lsls r0, r4, 16 asrs r4, r0, 16 cmp r4, 0 ble _0809556C adds r0, r5, 0 bl sub_80955C4 _0809556C: cmp r4, 0 bge _08095588 ldr r2, [r6] ldrb r0, [r2, 0x4] ldrb r1, [r2, 0x3] ldrb r2, [r2, 0x5] bl sub_8095634 ldr r2, [r6] ldrb r0, [r2, 0x6] ldrb r1, [r2, 0x3] ldrb r2, [r2, 0x5] bl sub_80955C4 _08095588: lsls r0, r7, 16 asrs r4, r0, 16 cmp r4, 0 ble _0809559C ldr r2, [r6] ldrb r0, [r2, 0x7] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_80955FC _0809559C: cmp r4, 0 bge _080955B8 ldr r2, [r6] ldrb r0, [r2, 0x5] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_809566C ldr r2, [r6] ldrb r0, [r2, 0x7] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x4] bl sub_80955FC _080955B8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080955C0: .4byte gUnknown_2039828 thumb_func_end sub_8095520 thumb_func_start sub_80955C4 sub_80955C4: @ 80955C4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _080955E2 adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _080955F4 _080955E2: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 bl sub_80956A4 cmp r4, r5 bls _080955E2 _080955F4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80955C4 thumb_func_start sub_80955FC sub_80955FC: @ 80955FC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _0809561A adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _0809562C _0809561A: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r4, r1, 24 adds r1, r6, 0 bl sub_80956A4 cmp r4, r5 bls _0809561A _0809562C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80955FC thumb_func_start sub_8095634 sub_8095634: @ 8095634 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _08095652 adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _08095664 _08095652: adds r1, r4, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r6, 0 bl sub_809572C cmp r4, r5 bls _08095652 _08095664: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8095634 thumb_func_start sub_809566C sub_809566C: @ 809566C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r4, r1, 24 adds r1, r4, 0 lsls r2, 24 lsrs r5, r2, 24 adds r0, r5, 0 cmp r4, r5 bls _0809568A adds r4, r5, 0 adds r5, r1, 0 cmp r0, r5 bhi _0809569C _0809568A: adds r0, r4, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r4, r1, 24 adds r1, r6, 0 bl sub_809572C cmp r4, r5 bls _0809568A _0809569C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_809566C thumb_func_start sub_80956A4 sub_80956A4: @ 80956A4 push {r4-r7,lr} sub sp, 0x1C lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r7, r0, r1 lsls r4, r7, 1 adds r4, r6, r4 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x41 bl GetCurrentBoxMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 movs r1, 0 bl GetCurrentBoxMonData adds r1, r0, 0 cmp r5, 0 beq _0809571A adds r0, r5, 0 movs r2, 0x1 bl GetMonIconPtr adds r4, r0, 0 adds r0, r5, 0 bl GetValidMonIconPalIndex adds r0, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, _08095724 @ =sPSSData ldr r1, [r1] ldr r2, _08095728 @ =0x000021f0 adds r1, r2 ldrb r3, [r1] movs r2, 0x20 str r2, [sp] str r2, [sp, 0x4] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 str r1, [sp, 0x8] lsls r1, r7, 3 str r1, [sp, 0xC] str r2, [sp, 0x10] str r2, [sp, 0x14] str r0, [sp, 0x18] adds r0, r3, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl BlitBitmapRectToWindow4BitTo8Bit _0809571A: add sp, 0x1C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095724: .4byte sPSSData _08095728: .4byte 0x000021f0 thumb_func_end sub_80956A4 thumb_func_start sub_809572C sub_809572C: @ 809572C push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r5, r0, r1 lsls r0, r5, 1 adds r0, r4, r0 lsls r0, 24 lsrs r0, 24 movs r1, 0x41 bl GetCurrentBoxMonData lsls r0, 16 cmp r0, 0 beq _0809576E ldr r0, _08095778 @ =sPSSData ldr r0, [r0] ldr r1, _0809577C @ =0x000021f0 adds r0, r1 ldrb r0, [r0] lsls r2, r4, 1 adds r2, r4 lsls r2, 3 lsls r3, r5, 3 movs r1, 0x20 str r1, [sp] str r1, [sp, 0x4] movs r1, 0 bl FillWindowPixelRect8Bit _0809576E: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08095778: .4byte sPSSData _0809577C: .4byte 0x000021f0 thumb_func_end sub_809572C thumb_func_start sub_8095780 sub_8095780: @ 8095780 ldr r3, _0809578C @ =gUnknown_2039828 ldr r3, [r3] strh r0, [r3, 0xC] strh r1, [r3, 0xE] strh r2, [r3, 0x10] bx lr .align 2, 0 _0809578C: .4byte gUnknown_2039828 thumb_func_end sub_8095780 thumb_func_start sub_8095790 sub_8095790: @ 8095790 push {r4,lr} ldr r4, _080957C4 @ =gUnknown_2039828 ldr r1, [r4] ldrh r0, [r1, 0x10] cmp r0, 0 beq _080957BA ldrh r1, [r1, 0xC] movs r0, 0 movs r2, 0x1 bl ChangeBgX ldr r0, [r4] ldrh r1, [r0, 0xE] movs r0, 0 movs r2, 0x1 bl ChangeBgY ldr r1, [r4] ldrh r0, [r1, 0x10] subs r0, 0x1 strh r0, [r1, 0x10] _080957BA: ldr r0, [r4] ldrb r0, [r0, 0x10] pop {r4} pop {r1} bx r1 .align 2, 0 _080957C4: .4byte gUnknown_2039828 thumb_func_end sub_8095790 thumb_func_start sub_80957C8 sub_80957C8: @ 80957C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, _0809589C @ =gUnknown_2039828 ldr r1, [r4] ldrb r0, [r1, 0x4] ldrb r2, [r1, 0x2] cmp r0, r2 bls _080957E0 adds r0, r2, 0 _080957E0: strb r0, [r1, 0x8] ldr r1, [r4] ldrb r0, [r1, 0x5] ldrb r2, [r1, 0x3] cmp r0, r2 bls _080957EE adds r0, r2, 0 _080957EE: strb r0, [r1, 0x9] ldr r2, [r4] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x4] subs r0, r1, r0 cmp r0, 0 bge _080957FE negs r0, r0 _080957FE: adds r0, 0x1 strb r0, [r2, 0xA] ldr r2, [r4] ldrb r1, [r2, 0x3] ldrb r0, [r2, 0x5] subs r0, r1, r0 cmp r0, 0 bge _08095810 negs r0, r0 _08095810: adds r0, 0x1 strb r0, [r2, 0xB] bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r6, 0 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r8, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1 mov r9, r0 adds r2, r1, 0 cmp r2, r9 bge _0809588C _08095838: lsls r0, r2, 1 adds r0, r2 ldr r3, _0809589C @ =gUnknown_2039828 ldr r1, [r3] lsls r0, 1 ldrb r3, [r1, 0x8] adds r0, r3 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r7, r2, 0x1 cmp r4, r8 bge _08095886 mov r0, r8 subs r4, r0, r4 _08095856: mov r0, r10 adds r1, r5, 0 bl GetBoxedMonPtr adds r1, r0, 0 ldr r2, _0809589C @ =gUnknown_2039828 ldr r0, [r2] lsls r2, r6, 2 adds r2, r6 lsls r2, 4 adds r0, r2 adds r0, 0x14 movs r2, 0x50 bl memcpy adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _08095856 _08095886: adds r2, r7, 0 cmp r2, r9 blt _08095838 _0809588C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809589C: .4byte gUnknown_2039828 thumb_func_end sub_80957C8 thumb_func_start sub_80958A0 sub_80958A0: @ 80958A0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r4, _08095914 @ =gUnknown_2039828 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r7, r2, r1 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r1, r0 mov r9, r1 bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r0, [r4] ldrb r2, [r0, 0x9] cmp r2, r9 bge _08095908 _080958CC: lsls r0, r2, 1 adds r0, r2 ldr r1, _08095914 @ =gUnknown_2039828 ldr r1, [r1] lsls r0, 1 ldrb r3, [r1, 0x8] adds r0, r3 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r6, r2, 0x1 cmp r4, r7 bge _08095902 subs r4, r7, r4 _080958E8: adds r0, r5, 0 bl DestroyBoxMonIconAtPosition mov r0, r8 adds r1, r5, 0 bl ZeroBoxMonAt adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _080958E8 _08095902: adds r2, r6, 0 cmp r2, r9 blt _080958CC _08095908: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095914: .4byte gUnknown_2039828 thumb_func_end sub_80958A0 thumb_func_start sub_8095918 sub_8095918: @ 8095918 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080959A4 @ =gUnknown_2039828 ldr r0, [r0] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r8, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1 mov r10, r0 movs r6, 0 adds r2, r1, 0 cmp r2, r10 bge _08095994 _0809593E: lsls r0, r2, 1 adds r0, r2 ldr r3, _080959A4 @ =gUnknown_2039828 ldr r1, [r3] lsls r0, 1 ldrb r4, [r1, 0x8] adds r0, r4 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] adds r7, r2, 0x1 cmp r4, r8 bge _0809598E mov r9, r3 mov r0, r8 subs r4, r0, r4 _0809595E: lsls r1, r6, 2 adds r1, r6 lsls r1, 4 adds r1, 0x14 mov r2, r9 ldr r0, [r2] adds r0, r1 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _0809597C adds r0, r5, 0 bl sub_80901EC _0809597C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 subs r4, 0x1 cmp r4, 0 bne _0809595E _0809598E: adds r2, r7, 0 cmp r2, r10 blt _0809593E _08095994: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080959A4: .4byte gUnknown_2039828 thumb_func_end sub_8095918 thumb_func_start sub_80959A8 sub_80959A8: @ 80959A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 ldr r4, _08095A54 @ =gUnknown_2039828 ldr r0, [r4] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r10, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r1, r0 str r1, [sp] bl StorageGetCurrentBox lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r7, 0 ldr r0, [r4] ldrb r3, [r0, 0x9] ldr r0, [sp] cmp r3, r0 bge _08095A42 _080959DE: lsls r0, r3, 1 adds r0, r3 ldr r2, _08095A54 @ =gUnknown_2039828 ldr r1, [r2] lsls r0, 1 ldrb r4, [r1, 0x8] adds r0, r4 lsls r0, 24 lsrs r6, r0, 24 ldrb r5, [r1, 0x8] adds r3, 0x1 mov r9, r3 cmp r5, r10 bge _08095A3A mov r8, r2 mov r0, r10 subs r5, r0, r5 _08095A00: lsls r0, r7, 2 adds r0, r7 lsls r0, 4 adds r4, r0, 0 adds r4, 0x14 mov r1, r8 ldr r0, [r1] adds r0, r4 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _08095A28 mov r0, r8 ldr r2, [r0] adds r2, r4 ldr r0, [sp, 0x4] adds r1, r6, 0 bl SetBoxMonAt _08095A28: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 subs r5, 0x1 cmp r5, 0 bne _08095A00 _08095A3A: mov r3, r9 ldr r1, [sp] cmp r3, r1 blt _080959DE _08095A42: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095A54: .4byte gUnknown_2039828 thumb_func_end sub_80959A8 thumb_func_start sub_8095A58 sub_8095A58: @ 8095A58 push {lr} sub sp, 0x8 movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0 movs r1, 0x4 movs r2, 0 bl SetBgAttribute movs r0, 0x8 movs r1, 0x80 bl ClearGpuRegBits movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_8095A58 thumb_func_start sub_8095AA0 sub_8095AA0: @ 8095AA0 ldr r0, _08095AB8 @ =gUnknown_2039828 ldr r2, [r0] ldrb r1, [r2, 0x3] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 ldrb r2, [r2, 0x2] adds r0, r2 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _08095AB8: .4byte gUnknown_2039828 thumb_func_end sub_8095AA0 thumb_func_start sub_8095ABC sub_8095ABC: @ 8095ABC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _08095B28 @ =gUnknown_2039828 ldr r0, [r0] ldrb r2, [r0, 0x8] ldrb r1, [r0, 0xA] adds r2, r1 mov r9, r2 ldrb r1, [r0, 0x9] ldrb r0, [r0, 0xB] adds r0, r1, r0 str r0, [sp] movs r7, 0 adds r6, r1, 0 cmp r6, r0 bge _08095B4A lsls r0, r6, 1 adds r0, r6 lsls r0, 1 mov r8, r0 _08095AEC: ldr r2, _08095B28 @ =gUnknown_2039828 ldr r1, [r2] ldrb r0, [r1, 0x8] add r0, r8 lsls r0, 24 lsrs r5, r0, 24 ldrb r4, [r1, 0x8] cmp r4, r9 bge _08095B3E mov r10, r2 _08095B00: lsls r1, r7, 2 adds r1, r7 lsls r1, 4 adds r1, 0x14 mov r2, r10 ldr r0, [r2] adds r0, r1 movs r1, 0x5 bl GetBoxMonData cmp r0, 0 beq _08095B2C adds r0, r5, 0 movs r1, 0x5 bl GetCurrentBoxMonData cmp r0, 0 beq _08095B2C movs r0, 0 b _08095B4C .align 2, 0 _08095B28: .4byte gUnknown_2039828 _08095B2C: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r4, 0x1 cmp r4, r9 blt _08095B00 _08095B3E: movs r0, 0x6 add r8, r0 adds r6, 0x1 ldr r2, [sp] cmp r6, r2 blt _08095AEC _08095B4A: movs r0, 0x1 _08095B4C: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8095ABC @ file boundary? thumb_func_start sub_8095B5C sub_8095B5C: @ 8095B5C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r3, _08095C58 @ =sPSSData ldr r0, [r3] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095C3C ldr r0, _08095C5C @ =gUnknown_3000FE8 str r0, [sp, 0x18] ldr r1, _08095C60 @ =0xffff0000 add r2, sp, 0x18 ldr r0, [r2, 0x4] ands r0, r1 movs r1, 0x80 lsls r1, 2 orrs r0, r1 str r0, [r2, 0x4] mov r1, sp ldr r0, _08095C64 @ =gUnknown_83D3728 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} movs r7, 0 mov r9, r2 mov r8, r3 movs r0, 0 mov r10, r0 _08095B9C: adds r6, r7, 0x7 lsls r1, r6, 16 mov r2, r9 ldrh r0, [r2, 0x4] orrs r0, r1 str r0, [r2, 0x4] mov r0, r9 bl LoadCompressedSpriteSheet mov r4, r9 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag mov r5, r8 ldr r1, [r5] lsls r5, r7, 4 ldr r2, _08095C68 @ =0x000021f8 adds r1, r2 adds r1, r5 lsls r0, 16 lsrs r0, 11 ldr r4, _08095C6C @ =0x06010000 adds r0, r4 str r0, [r1] ldr r0, _08095C70 @ =0xffffdacb adds r4, r7, r0 lsls r0, r4, 16 lsrs r0, 16 bl AllocSpritePalette mov r2, r8 ldr r1, [r2] adds r1, r5 lsls r0, 24 lsrs r0, 24 ldr r2, _08095C74 @ =0x000021fc adds r1, r2 strh r0, [r1] ldrh r0, [r1] lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r0, r2 strh r0, [r1] mov r0, sp strh r6, [r0] strh r4, [r0, 0x2] movs r1, 0 movs r2, 0 movs r3, 0xB bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r4, r8 ldr r2, [r4] ldr r6, _08095C78 @ =0x000021f4 adds r2, r6 adds r2, r5 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08095C7C @ =gSprites adds r1, r0 str r1, [r2] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r0, [r4] adds r0, r5 movs r1, 0x88 lsls r1, 6 adds r0, r1 mov r2, r10 strb r2, [r0] adds r7, 0x1 cmp r7, 0x2 ble _08095B9C _08095C3C: ldr r0, _08095C58 @ =sPSSData ldr r0, [r0] ldr r4, _08095C80 @ =0x00002224 adds r0, r4 movs r1, 0 strh r1, [r0] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095C58: .4byte sPSSData _08095C5C: .4byte gUnknown_3000FE8 _08095C60: .4byte 0xffff0000 _08095C64: .4byte gUnknown_83D3728 _08095C68: .4byte 0x000021f8 _08095C6C: .4byte 0x06010000 _08095C70: .4byte 0xffffdacb _08095C74: .4byte 0x000021fc _08095C78: .4byte 0x000021f4 _08095C7C: .4byte gSprites _08095C80: .4byte 0x00002224 thumb_func_end sub_8095B5C thumb_func_start sub_8095C84 sub_8095C84: @ 8095C84 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08095CB8 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095D36 mov r0, r8 adds r1, r7, 0 bl sub_8096210 cmp r0, 0 bne _08095D36 mov r0, r8 cmp r0, 0 beq _08095CBC cmp r0, 0x1 beq _08095CD2 b _08095D36 .align 2, 0 _08095CB8: .4byte sPSSData _08095CBC: adds r0, r7, 0 movs r1, 0x5 bl GetCurrentBoxMonData cmp r0, 0 beq _08095D36 adds r0, r7, 0 movs r1, 0xC bl GetCurrentBoxMonData b _08095CF0 _08095CD2: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, _08095D40 @ =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x5 bl GetMonData cmp r0, 0 beq _08095D36 adds r0, r4, 0 movs r1, 0xC bl GetMonData _08095CF0: lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08095D36 adds r0, r4, 0 bl GetItemIconPic adds r6, r0, 0 adds r0, r4, 0 bl GetItemIconPalette adds r5, r0, 0 bl sub_80961D8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 mov r1, r8 adds r2, r7, 0 bl sub_80962F0 adds r0, r4, 0 adds r1, r6, 0 adds r2, r5, 0 bl sub_8096408 adds r0, r4, 0 movs r1, 0x1 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x1 bl sub_8096624 _08095D36: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095D40: .4byte gPlayerParty thumb_func_end sub_8095C84 thumb_func_start sub_8095D44 sub_8095D44: @ 8095D44 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, _08095D80 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095D7A adds r0, r6, 0 adds r1, r5, 0 bl sub_8096258 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x2 bl sub_80964B8 adds r0, r4, 0 movs r1, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_80964E8 _08095D7A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08095D80: .4byte sPSSData thumb_func_end sub_8095D44 thumb_func_start Item_FromMonToMoving Item_FromMonToMoving: @ 8095D84 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 ldr r0, _08095DE8 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095E14 adds r0, r6, 0 adds r1, r5, 0 bl sub_8096258 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r4, 0 movs r1, 0x3 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x1 adds r2, r6, 0 adds r3, r5, 0 bl sub_80964E8 adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80962F0 cmp r6, 0 bne _08095DEC adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0x1 bl SetBoxMonIconObjMode b _08095E04 .align 2, 0 _08095DE8: .4byte sPSSData _08095DEC: movs r0, 0x64 muls r0, r7 ldr r1, _08095E1C @ =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl SetPartyMonIconObjMode _08095E04: ldr r0, _08095E20 @ =sPSSData ldr r0, [r0] ldr r2, _08095E24 @ =0x00000ce2 adds r1, r0, r2 ldrh r1, [r1] ldr r2, _08095E28 @ =0x00002224 adds r0, r2 strh r1, [r0] _08095E14: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095E1C: .4byte gPlayerParty _08095E20: .4byte sPSSData _08095E24: .4byte 0x00000ce2 _08095E28: .4byte 0x00002224 thumb_func_end Item_FromMonToMoving thumb_func_start sub_8095E2C sub_8095E2C: @ 8095E2C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r5, 0 bl GetItemIconPic mov r8, r0 adds r0, r5, 0 bl GetItemIconPalette adds r6, r0, 0 bl sub_80961D8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 mov r1, r8 adds r2, r6, 0 bl sub_8096408 adds r0, r4, 0 movs r1, 0x6 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 movs r3, 0 bl sub_80964E8 adds r0, r4, 0 movs r1, 0x2 movs r2, 0 bl sub_80962F0 adds r0, r4, 0 movs r1, 0x1 bl sub_8096624 ldr r0, _08095E98 @ =sPSSData ldr r0, [r0] ldr r1, _08095E9C @ =0x00002224 adds r0, r1 strh r5, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08095E98: .4byte sPSSData _08095E9C: .4byte 0x00002224 thumb_func_end sub_8095E2C thumb_func_start Item_SwitchMonsWithMoving Item_SwitchMonsWithMoving: @ 8095EA0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r7, r1, 24 ldr r0, _08095F08 @ =sPSSData mov r8, r0 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095F5E mov r0, r9 adds r1, r7, 0 bl sub_8096258 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x3 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x3 movs r2, 0x2 movs r3, 0 bl sub_80964E8 mov r1, r9 cmp r1, 0 bne _08095F10 adds r0, r7, 0 movs r1, 0xC bl GetCurrentBoxMonData lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 ldr r2, [r0] ldr r4, _08095F0C @ =0x00002224 adds r2, r4 adds r0, r7, 0 movs r1, 0xC bl SetCurrentBoxMonData mov r1, r8 ldr r0, [r1] adds r0, r4 b _08095F3C .align 2, 0 _08095F08: .4byte sPSSData _08095F0C: .4byte 0x00002224 _08095F10: movs r0, 0x64 adds r4, r7, 0 muls r4, r0 ldr r0, _08095F6C @ =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 mov r0, r8 ldr r2, [r0] ldr r5, _08095F70 @ =0x00002224 adds r2, r5 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r1, r8 ldr r0, [r1] adds r0, r5 _08095F3C: strh r6, [r0] movs r0, 0x2 movs r1, 0 bl sub_8096258 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 movs r1, 0x4 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x4 mov r2, r9 adds r3, r7, 0 bl sub_80964E8 _08095F5E: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08095F6C: .4byte gPlayerParty _08095F70: .4byte 0x00002224 thumb_func_end Item_SwitchMonsWithMoving thumb_func_start Item_GiveMovingToMon Item_GiveMovingToMon: @ 8095F74 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r5, r1, 24 mov r8, r5 ldr r6, _08095FCC @ =sPSSData ldr r0, [r6] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08095FF4 movs r0, 0x2 movs r1, 0 bl sub_8096258 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x4 bl sub_80964B8 adds r0, r4, 0 movs r1, 0x2 adds r2, r7, 0 adds r3, r5, 0 bl sub_80964E8 cmp r7, 0 bne _08095FD4 ldr r2, [r6] ldr r0, _08095FD0 @ =0x00002224 adds r2, r0 adds r0, r5, 0 movs r1, 0xC bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0 bl SetBoxMonIconObjMode b _08095FF4 .align 2, 0 _08095FCC: .4byte sPSSData _08095FD0: .4byte 0x00002224 _08095FD4: movs r0, 0x64 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r1, _08096000 @ =gPlayerParty adds r0, r1 ldr r2, [r6] ldr r1, _08096004 @ =0x00002224 adds r2, r1 movs r1, 0xC bl SetMonData mov r0, r8 movs r1, 0 bl SetPartyMonIconObjMode _08095FF4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096000: .4byte gPlayerParty _08096004: .4byte 0x00002224 thumb_func_end Item_GiveMovingToMon thumb_func_start Item_TakeMons Item_TakeMons: @ 8096008 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 ldr r0, _08096060 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _0809607C movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r6, 0 adds r1, r5, 0 bl sub_8096258 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x2 bl sub_80964B8 adds r0, r4, 0 movs r1, 0 adds r2, r6, 0 adds r3, r5, 0 bl sub_80964E8 cmp r6, 0 bne _08096064 adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetCurrentBoxMonData adds r0, r5, 0 movs r1, 0x1 bl SetBoxMonIconObjMode b _0809607C .align 2, 0 _08096060: .4byte sPSSData _08096064: movs r0, 0x64 muls r0, r7 ldr r1, _08096084 @ =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl SetMonData adds r0, r7, 0 movs r1, 0x1 bl SetPartyMonIconObjMode _0809607C: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096084: .4byte gPlayerParty thumb_func_end Item_TakeMons thumb_func_start sub_8096088 sub_8096088: @ 8096088 push {r4,lr} ldr r0, _080960BC @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _080960B6 movs r0, 0x2 movs r1, 0 bl sub_8096258 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x5 bl sub_80964B8 adds r0, r4, 0 movs r1, 0 movs r2, 0x2 movs r3, 0 bl sub_80964E8 _080960B6: pop {r4} pop {r0} bx r0 .align 2, 0 _080960BC: .4byte sPSSData thumb_func_end sub_8096088 thumb_func_start sub_80960C0 sub_80960C0: @ 80960C0 push {r4,lr} ldr r0, _08096108 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08096100 movs r4, 0 _080960CE: ldr r0, _08096108 @ =sPSSData ldr r1, [r0] lsls r0, r4, 4 adds r1, r0 movs r2, 0x88 lsls r2, 6 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080960FA subs r2, 0x2 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0x1 bne _080960FA lsls r0, r4, 24 lsrs r0, 24 movs r1, 0x7 movs r2, 0x2 movs r3, 0 bl sub_80964E8 _080960FA: adds r4, 0x1 cmp r4, 0x2 ble _080960CE _08096100: pop {r4} pop {r0} bx r0 .align 2, 0 _08096108: .4byte sPSSData thumb_func_end sub_80960C0 thumb_func_start sub_809610C sub_809610C: @ 809610C push {r4,r5,lr} movs r5, 0 ldr r0, _08096148 @ =sPSSData ldr r0, [r0] ldr r1, _0809614C @ =0x000021f4 adds r4, r0, r1 adds r3, r0, 0 _0809611A: movs r1, 0x88 lsls r1, 6 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _08096158 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x28 ands r0, r1 cmp r0, 0x8 beq _08096144 ldr r1, [r2, 0x1C] ldr r0, _08096150 @ =SpriteCallbackDummy cmp r1, r0 beq _08096158 ldr r0, _08096154 @ =sub_80969BC cmp r1, r0 beq _08096158 _08096144: movs r0, 0x1 b _08096164 .align 2, 0 _08096148: .4byte sPSSData _0809614C: .4byte 0x000021f4 _08096150: .4byte SpriteCallbackDummy _08096154: .4byte sub_80969BC _08096158: adds r4, 0x10 adds r3, 0x10 adds r5, 0x1 cmp r5, 0x2 ble _0809611A movs r0, 0 _08096164: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809610C thumb_func_start IsActiveItemMoving IsActiveItemMoving: @ 809616C push {lr} ldr r0, _08096190 @ =sPSSData ldr r1, [r0] ldrb r0, [r1, 0x1] cmp r0, 0x3 bne _080961A0 movs r2, 0 ldr r0, _08096194 @ =0x000021fe adds r1, r0 _0809617E: ldrb r0, [r1, 0x2] cmp r0, 0 beq _08096198 ldrb r0, [r1] cmp r0, 0x2 bne _08096198 movs r0, 0x1 b _080961A2 .align 2, 0 _08096190: .4byte sPSSData _08096194: .4byte 0x000021fe _08096198: adds r1, 0x10 adds r2, 0x1 cmp r2, 0x2 ble _0809617E _080961A0: movs r0, 0 _080961A2: pop {r1} bx r1 thumb_func_end IsActiveItemMoving thumb_func_start GetMovingItemName GetMovingItemName: @ 80961A8 push {lr} ldr r0, _080961BC @ =sPSSData ldr r0, [r0] ldr r1, _080961C0 @ =0x00002224 adds r0, r1 ldrh r0, [r0] bl ItemId_GetName pop {r1} bx r1 .align 2, 0 _080961BC: .4byte sPSSData _080961C0: .4byte 0x00002224 thumb_func_end GetMovingItemName thumb_func_start GetMovingItem GetMovingItem: @ 80961C4 ldr r0, _080961D0 @ =sPSSData ldr r0, [r0] ldr r1, _080961D4 @ =0x00002224 adds r0, r1 ldrh r0, [r0] bx lr .align 2, 0 _080961D0: .4byte sPSSData _080961D4: .4byte 0x00002224 thumb_func_end GetMovingItem thumb_func_start sub_80961D8 sub_80961D8: @ 80961D8 push {r4,r5,lr} movs r2, 0 ldr r5, _080961F8 @ =sPSSData movs r3, 0x88 lsls r3, 6 movs r4, 0x1 _080961E4: ldr r0, [r5] lsls r1, r2, 4 adds r0, r1 adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0 bne _080961FC strb r4, [r1] adds r0, r2, 0 b _08096208 .align 2, 0 _080961F8: .4byte sPSSData _080961FC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080961E4 movs r0, 0x3 _08096208: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80961D8 thumb_func_start sub_8096210 sub_8096210: @ 8096210 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 movs r3, 0 ldr r0, _08096244 @ =sPSSData ldr r2, [r0] _08096220: movs r5, 0x88 lsls r5, 6 adds r0, r2, r5 ldrb r0, [r0] cmp r0, 0 beq _08096248 subs r5, 0x2 adds r0, r2, r5 ldrb r0, [r0] cmp r0, r4 bne _08096248 adds r5, 0x1 adds r0, r2, r5 ldrb r0, [r0] cmp r0, r1 bne _08096248 movs r0, 0x1 b _08096252 .align 2, 0 _08096244: .4byte sPSSData _08096248: adds r2, 0x10 adds r3, 0x1 cmp r3, 0x2 ble _08096220 movs r0, 0 _08096252: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8096210 thumb_func_start sub_8096258 sub_8096258: @ 8096258 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r3, 0 ldr r0, _08096290 @ =sPSSData ldr r1, [r0] _08096268: lsls r0, r3, 4 adds r2, r1, r0 movs r6, 0x88 lsls r6, 6 adds r0, r2, r6 ldrb r0, [r0] cmp r0, 0 beq _08096294 subs r6, 0x2 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r5 bne _08096294 adds r6, 0x1 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r4 bne _08096294 adds r0, r3, 0 b _080962A0 .align 2, 0 _08096290: .4byte sPSSData _08096294: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _08096268 movs r0, 0x3 _080962A0: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8096258 thumb_func_start sub_80962A8 sub_80962A8: @ 80962A8 push {r4-r6,lr} adds r5, r0, 0 movs r2, 0 ldr r0, _080962D4 @ =sPSSData ldr r3, [r0] ldr r0, _080962D8 @ =0x000021f4 adds r4, r3, r0 movs r6, 0x88 lsls r6, 6 _080962BA: lsls r1, r2, 4 adds r0, r3, r1 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _080962DC adds r0, r4, r1 ldr r0, [r0] cmp r0, r5 bne _080962DC adds r0, r2, 0 b _080962E8 .align 2, 0 _080962D4: .4byte sPSSData _080962D8: .4byte 0x000021f4 _080962DC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _080962BA movs r0, 0x3 _080962E8: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80962A8 thumb_func_start sub_80962F0 sub_80962F0: @ 80962F0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 cmp r5, 0x2 bhi _080963EE cmp r1, 0 beq _0809631C cmp r1, 0x1 beq _08096378 ldr r4, _08096318 @ =sPSSData lsls r3, r5, 4 b _080963D8 .align 2, 0 _08096318: .4byte sPSSData _0809631C: adds r0, r7, 0 movs r1, 0x6 bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 movs r1, 0x6 bl __udivsi3 lsls r0, 24 lsrs r0, 24 ldr r6, _08096370 @ =sPSSData ldr r2, [r6] lsls r5, 4 ldr r1, _08096374 @ =0x000021f4 adds r2, r1 adds r2, r5 ldr r3, [r2] lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, 0x70 strh r1, [r3, 0x20] ldr r3, [r2] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, 0x38 strh r1, [r3, 0x22] ldr r2, [r2] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0x5] adds r4, r6, 0 adds r3, r5, 0 b _080963D8 .align 2, 0 _08096370: .4byte sPSSData _08096374: .4byte 0x000021f4 _08096378: cmp r7, 0 bne _080963A0 ldr r4, _08096398 @ =sPSSData ldr r0, [r4] lsls r3, r5, 4 ldr r1, _0809639C @ =0x000021f4 adds r0, r1 adds r0, r3 ldr r2, [r0] movs r1, 0x74 strh r1, [r2, 0x20] ldr r1, [r0] movs r0, 0x4C strh r0, [r1, 0x22] b _080963C0 .align 2, 0 _08096398: .4byte sPSSData _0809639C: .4byte 0x000021f4 _080963A0: ldr r4, _080963F8 @ =sPSSData ldr r0, [r4] lsls r3, r5, 4 ldr r1, _080963FC @ =0x000021f4 adds r0, r1 adds r0, r3 ldr r2, [r0] movs r1, 0xA4 strh r1, [r2, 0x20] ldr r2, [r0] subs r1, r7, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, 0x1C strh r0, [r2, 0x22] _080963C0: ldr r0, [r4] ldr r1, _080963FC @ =0x000021f4 adds r0, r1 adds r0, r3 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] _080963D8: ldr r0, [r4] adds r0, r3 ldr r1, _08096400 @ =0x000021fe adds r0, r1 mov r1, r8 strb r1, [r0] ldr r0, [r4] adds r0, r3 ldr r1, _08096404 @ =0x000021ff adds r0, r1 strb r7, [r0] _080963EE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080963F8: .4byte sPSSData _080963FC: .4byte 0x000021f4 _08096400: .4byte 0x000021fe _08096404: .4byte 0x000021ff thumb_func_end sub_80962F0 thumb_func_start sub_8096408 sub_8096408: @ 8096408 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 mov r8, r1 mov r9, r2 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bhi _08096490 movs r0, 0 str r0, [sp] ldr r4, _080964A0 @ =sPSSData ldr r1, [r4] ldr r6, _080964A4 @ =0x000042bc adds r1, r6 ldr r2, _080964A8 @ =0x01000080 mov r0, sp bl CpuFastSet ldr r1, [r4] ldr r5, _080964AC @ =0x000022bc adds r1, r5 mov r0, r8 bl LZ77UnCompWram lsls r7, 4 mov r8, r7 adds r7, r4, 0 movs r4, 0x2 _08096446: ldr r1, [r7] adds r0, r1, r5 adds r1, r6 movs r2, 0x18 bl CpuFastSet adds r6, 0x80 adds r5, 0x60 subs r4, 0x1 cmp r4, 0 bge _08096446 ldr r5, _080964A0 @ =sPSSData ldr r1, [r5] ldr r4, _080964A4 @ =0x000042bc adds r0, r1, r4 ldr r2, _080964B0 @ =0x000021f8 adds r1, r2 add r1, r8 ldr r1, [r1] movs r2, 0x80 bl CpuFastSet ldr r1, [r5] adds r1, r4 mov r0, r9 bl LZ77UnCompWram ldr r0, [r5] adds r4, r0, r4 add r0, r8 ldr r1, _080964B4 @ =0x000021fc adds r0, r1 ldrh r1, [r0] adds r0, r4, 0 movs r2, 0x20 bl LoadPalette _08096490: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080964A0: .4byte sPSSData _080964A4: .4byte 0x000042bc _080964A8: .4byte 0x01000080 _080964AC: .4byte 0x000022bc _080964B0: .4byte 0x000021f8 _080964B4: .4byte 0x000021fc thumb_func_end sub_8096408 thumb_func_start sub_80964B8 sub_80964B8: @ 80964B8 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r3, r1, 24 cmp r2, 0x2 bhi _080964DA ldr r0, _080964E0 @ =sPSSData ldr r0, [r0] lsls r1, r2, 4 ldr r2, _080964E4 @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r0, [r0] adds r1, r3, 0 bl StartSpriteAffineAnim _080964DA: pop {r0} bx r0 .align 2, 0 _080964E0: .4byte sPSSData _080964E4: .4byte 0x000021f4 thumb_func_end sub_80964B8 thumb_func_start sub_80964E8 sub_80964E8: @ 80964E8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r0, r1, 24 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r3, 24 cmp r4, 0x2 bls _08096500 b _08096612 _08096500: cmp r0, 0x7 bls _08096506 b _08096612 _08096506: lsls r0, 2 ldr r1, _08096510 @ =_08096514 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08096510: .4byte _08096514 .align 2, 0 _08096514: .4byte _08096534 .4byte _08096558 .4byte _0809657C .4byte _080965A8 .4byte _080965D4 .4byte _08096612 .4byte _08096612 .4byte _08096600 _08096534: ldr r0, _0809654C @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _08096550 @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r1, [r0] strh r4, [r1, 0x2E] ldr r1, [r0] ldr r0, _08096554 @ =sub_809692C b _08096610 .align 2, 0 _0809654C: .4byte sPSSData _08096550: .4byte 0x000021f4 _08096554: .4byte sub_809692C _08096558: ldr r0, _08096570 @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _08096574 @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] ldr r0, _08096578 @ =sub_8096958 b _08096610 .align 2, 0 _08096570: .4byte sPSSData _08096574: .4byte 0x000021f4 _08096578: .4byte sub_8096958 _0809657C: ldr r0, _0809659C @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _080965A0 @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] strh r5, [r1, 0x3A] ldr r1, [r0] strh r3, [r1, 0x3C] ldr r1, [r0] ldr r0, _080965A4 @ =sub_80969F4 b _08096610 .align 2, 0 _0809659C: .4byte sPSSData _080965A0: .4byte 0x000021f4 _080965A4: .4byte sub_80969F4 _080965A8: ldr r0, _080965C8 @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _080965CC @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r2, [r0] ldr r1, _080965D0 @ =sub_8096A74 str r1, [r2, 0x1C] strh r5, [r2, 0x3A] ldr r0, [r0] strh r3, [r0, 0x3C] b _08096612 .align 2, 0 _080965C8: .4byte sPSSData _080965CC: .4byte 0x000021f4 _080965D0: .4byte sub_8096A74 _080965D4: ldr r0, _080965F4 @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _080965F8 @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r2, [r0] movs r1, 0 strh r1, [r2, 0x2E] ldr r1, [r0] strh r5, [r1, 0x3A] ldr r1, [r0] strh r3, [r1, 0x3C] ldr r1, [r0] ldr r0, _080965FC @ =sub_8096B10 b _08096610 .align 2, 0 _080965F4: .4byte sPSSData _080965F8: .4byte 0x000021f4 _080965FC: .4byte sub_8096B10 _08096600: ldr r0, _08096618 @ =sPSSData ldr r0, [r0] lsls r1, r4, 4 ldr r2, _0809661C @ =0x000021f4 adds r0, r2 adds r0, r1 ldr r1, [r0] ldr r0, _08096620 @ =sub_8096BAC _08096610: str r0, [r1, 0x1C] _08096612: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08096618: .4byte sPSSData _0809661C: .4byte 0x000021f4 _08096620: .4byte sub_8096BAC thumb_func_end sub_80964E8 thumb_func_start sub_8096624 sub_8096624: @ 8096624 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r4, r1, 24 cmp r2, 0x2 bhi _08096666 ldr r1, _0809666C @ =sPSSData ldr r0, [r1] lsls r2, 4 adds r0, r2 movs r3, 0x88 lsls r3, 6 adds r0, r3 strb r4, [r0] ldr r0, [r1] ldr r1, _08096670 @ =0x000021f4 adds r0, r1 adds r0, r2 ldr r0, [r0] movs r3, 0 cmp r4, 0 bne _08096654 movs r3, 0x1 _08096654: adds r2, r0, 0 adds r2, 0x3E lsls r3, 2 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 orrs r0, r3 strb r0, [r2] _08096666: pop {r4} pop {r0} bx r0 .align 2, 0 _0809666C: .4byte sPSSData _08096670: .4byte 0x000021f4 thumb_func_end sub_8096624 thumb_func_start GetItemIconPic GetItemIconPic: @ 8096674 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0 bl GetItemIconGfxPtr pop {r1} bx r1 thumb_func_end GetItemIconPic thumb_func_start GetItemIconPalette GetItemIconPalette: @ 8096684 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl GetItemIconGfxPtr pop {r1} bx r1 thumb_func_end GetItemIconPalette thumb_func_start PrintItemDescription PrintItemDescription: @ 8096694 push {r4,lr} sub sp, 0x14 bl IsActiveItemMoving lsls r0, 24 cmp r0, 0 beq _080966B4 ldr r0, _080966AC @ =sPSSData ldr r0, [r0] ldr r1, _080966B0 @ =0x00002224 b _080966BA .align 2, 0 _080966AC: .4byte sPSSData _080966B0: .4byte 0x00002224 _080966B4: ldr r0, _080966EC @ =sPSSData ldr r0, [r0] ldr r1, _080966F0 @ =0x00000ce2 _080966BA: adds r0, r1 ldrh r0, [r0] bl ItemId_GetDescription adds r4, r0, 0 movs r0, 0x2 movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0 str r0, [sp] str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x2 movs r1, 0x2 adds r2, r4, 0 movs r3, 0x2 bl AddTextPrinterParameterized5 add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _080966EC: .4byte sPSSData _080966F0: .4byte 0x00000ce2 thumb_func_end PrintItemDescription thumb_func_start sub_80966F4 sub_80966F4: @ 80966F4 push {lr} ldr r0, _0809671C @ =sPSSData ldr r0, [r0] ldr r1, _08096720 @ =0x00002226 adds r0, r1 movs r1, 0x19 strh r1, [r0] ldr r1, _08096724 @ =gUnknown_83D35DC movs r3, 0xD2 lsls r3, 1 movs r0, 0 movs r2, 0x80 bl LoadBgTiles movs r0, 0 bl sub_8096898 pop {r0} bx r0 .align 2, 0 _0809671C: .4byte sPSSData _08096720: .4byte 0x00002226 _08096724: .4byte gUnknown_83D35DC thumb_func_end sub_80966F4 thumb_func_start sub_8096728 sub_8096728: @ 8096728 push {r4,r5,lr} sub sp, 0x10 ldr r0, _08096740 @ =sPSSData ldr r0, [r0] ldr r2, _08096744 @ =0x00002226 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 bne _08096748 movs r0, 0 b _080967AE .align 2, 0 _08096740: .4byte sPSSData _08096744: .4byte 0x00002226 _08096748: subs r0, 0x1 strh r0, [r1] ldrh r1, [r1] movs r0, 0x19 subs r5, r0, r1 movs r4, 0 cmp r4, r5 bge _08096798 _08096758: movs r0, 0 movs r1, 0xA bl GetBgAttribute adds r1, r0, 0 ldr r0, _080967B8 @ =sPSSData ldr r0, [r0] ldr r2, _080967BC @ =0x00002226 adds r0, r2 adds r1, 0x14 ldrh r0, [r0] adds r1, r0 adds r1, r4 lsls r1, 16 lsrs r1, 16 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x8 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x19 str r0, [sp, 0xC] movs r0, 0 movs r3, 0xC bl WriteSequenceToBgTilemapBuffer adds r4, 0x1 cmp r4, r5 blt _08096758 _08096798: adds r0, r5, 0 bl sub_8096898 ldr r0, _080967B8 @ =sPSSData ldr r0, [r0] ldr r1, _080967BC @ =0x00002226 adds r0, r1 ldrh r1, [r0] negs r0, r1 orrs r0, r1 lsrs r0, 31 _080967AE: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080967B8: .4byte sPSSData _080967BC: .4byte 0x00002226 thumb_func_end sub_8096728 thumb_func_start sub_80967C0 sub_80967C0: @ 80967C0 push {r4,r5,lr} sub sp, 0x10 ldr r5, _080967D8 @ =sPSSData ldr r0, [r5] ldr r4, _080967DC @ =0x00002226 adds r0, r4 ldrh r0, [r0] cmp r0, 0x19 bne _080967E0 movs r0, 0 b _08096886 .align 2, 0 _080967D8: .4byte sPSSData _080967DC: .4byte 0x00002226 _080967E0: cmp r0, 0 bne _080967FC movs r0, 0x1 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x19 movs r3, 0xB bl FillBgTilemapBufferRect _080967FC: ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] ldrh r1, [r1] movs r0, 0x19 subs r5, r0, r1 movs r4, 0 cmp r4, r5 bge _08096852 _08096812: movs r0, 0 movs r1, 0xA bl GetBgAttribute adds r1, r0, 0 ldr r0, _08096890 @ =sPSSData ldr r0, [r0] ldr r2, _08096894 @ =0x00002226 adds r0, r2 adds r1, 0x14 ldrh r0, [r0] adds r1, r0 adds r1, r4 lsls r1, 16 lsrs r1, 16 lsls r2, r4, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x8 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x19 str r0, [sp, 0xC] movs r0, 0 movs r3, 0xC bl WriteSequenceToBgTilemapBuffer adds r4, 0x1 cmp r4, r5 blt _08096812 _08096852: adds r0, r5, 0 bl sub_8096898 lsls r2, r5, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] movs r0, 0xA str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r3, 0xB bl FillBgTilemapBufferRect ldr r0, _08096890 @ =sPSSData ldr r0, [r0] ldr r1, _08096894 @ =0x00002226 adds r0, r1 ldrh r1, [r0] movs r0, 0x19 eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 _08096886: add sp, 0x10 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08096890: .4byte sPSSData _08096894: .4byte 0x00002226 thumb_func_end sub_80967C0 thumb_func_start sub_8096898 sub_8096898: @ 8096898 push {r4-r7,lr} sub sp, 0xC adds r7, r0, 0 cmp r7, 0 beq _080968D0 movs r1, 0xD2 lsls r1, 1 lsls r4, r7, 24 lsrs r4, 24 str r4, [sp] movs r6, 0x1 str r6, [sp, 0x4] movs r5, 0xF str r5, [sp, 0x8] movs r0, 0 movs r2, 0 movs r3, 0xB bl FillBgTilemapBufferRect ldr r1, _08096920 @ =0x000009a4 str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0 movs r3, 0x14 bl FillBgTilemapBufferRect _080968D0: ldr r1, _08096924 @ =0x000001a5 lsls r5, r7, 24 lsrs r5, 24 movs r4, 0x1 str r4, [sp] movs r0, 0x8 str r0, [sp, 0x4] movs r6, 0xF str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0xC bl FillBgTilemapBufferRect movs r1, 0xD3 lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0xB bl FillBgTilemapBufferRect ldr r1, _08096928 @ =0x000001a7 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0 adds r2, r5, 0 movs r3, 0x14 bl FillBgTilemapBufferRect movs r0, 0 bl ScheduleBgCopyTilemapToVram add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096920: .4byte 0x000009a4 _08096924: .4byte 0x000001a5 _08096928: .4byte 0x000001a7 thumb_func_end sub_8096898 thumb_func_start sub_809692C sub_809692C: @ 809692C push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0809694C ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8096624 ldr r0, _08096954 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _0809694C: pop {r4} pop {r0} bx r0 .align 2, 0 _08096954: .4byte SpriteCallbackDummy thumb_func_end sub_809692C thumb_func_start sub_8096958 sub_8096958: @ 8096958 push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] cmp r1, 0 beq _0809696A cmp r1, 0x1 beq _08096986 b _080969B4 _0809696A: ldrh r0, [r3, 0x20] lsls r0, 4 strh r0, [r3, 0x30] ldrh r0, [r3, 0x22] lsls r0, 4 strh r0, [r3, 0x32] movs r0, 0xA strh r0, [r3, 0x34] movs r0, 0x15 strh r0, [r3, 0x36] strh r1, [r3, 0x38] ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] _08096986: ldrh r1, [r3, 0x30] ldrh r0, [r3, 0x34] subs r1, r0 strh r1, [r3, 0x30] ldrh r0, [r3, 0x32] ldrh r2, [r3, 0x36] subs r0, r2 strh r0, [r3, 0x32] lsls r1, 16 asrs r1, 20 strh r1, [r3, 0x20] lsls r0, 16 asrs r0, 20 strh r0, [r3, 0x22] ldrh r0, [r3, 0x38] adds r0, 0x1 strh r0, [r3, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _080969B4 ldr r0, _080969B8 @ =sub_80969BC str r0, [r3, 0x1C] _080969B4: pop {r0} bx r0 .align 2, 0 _080969B8: .4byte sub_80969BC thumb_func_end sub_8096958 thumb_func_start sub_80969BC sub_80969BC: @ 80969BC ldr r1, _080969F0 @ =sPSSData ldr r3, [r1] movs r1, 0xCB lsls r1, 4 adds r3, r1 ldr r1, [r3] ldrh r1, [r1, 0x20] adds r1, 0x4 strh r1, [r0, 0x20] ldr r2, [r3] ldrh r1, [r2, 0x26] ldrh r2, [r2, 0x22] adds r1, r2 adds r1, 0x8 strh r1, [r0, 0x22] ldr r1, [r3] ldrb r1, [r1, 0x5] movs r2, 0xC ands r2, r1 ldrb r3, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0, 0x5] bx lr .align 2, 0 _080969F0: .4byte sPSSData thumb_func_end sub_80969BC thumb_func_start sub_80969F4 sub_80969F4: @ 80969F4 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _08096A06 cmp r1, 0x1 beq _08096A22 b _08096A6A _08096A06: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08096A22: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x36] ldrh r2, [r4, 0x32] adds r1, r2 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _08096A6A adds r0, r4, 0 bl sub_80962A8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80962F0 ldr r0, _08096A70 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _08096A6A: pop {r4} pop {r0} bx r0 .align 2, 0 _08096A70: .4byte SpriteCallbackDummy thumb_func_end sub_80969F4 thumb_func_start sub_8096A74 sub_8096A74: @ 8096A74 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _08096A86 cmp r1, 0x1 beq _08096AA2 b _08096B00 _08096A86: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08096AA2: ldrh r1, [r4, 0x30] ldrh r0, [r4, 0x34] subs r1, r0 strh r1, [r4, 0x30] ldrh r0, [r4, 0x32] ldrh r2, [r4, 0x36] subs r0, r2 strh r0, [r4, 0x32] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x20] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] ldr r1, _08096B08 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _08096B00 adds r0, r4, 0 bl sub_80962A8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80962F0 movs r0, 0 strh r0, [r4, 0x24] ldr r0, _08096B0C @ =sub_80969BC str r0, [r4, 0x1C] _08096B00: pop {r4} pop {r0} bx r0 .align 2, 0 _08096B08: .4byte gSineTable _08096B0C: .4byte sub_80969BC thumb_func_end sub_8096A74 thumb_func_start sub_8096B10 sub_8096B10: @ 8096B10 push {r4,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r1, [r4, r0] cmp r1, 0 beq _08096B22 cmp r1, 0x1 beq _08096B3E b _08096B9E _08096B22: ldrh r0, [r4, 0x20] lsls r0, 4 strh r0, [r4, 0x30] ldrh r0, [r4, 0x22] lsls r0, 4 strh r0, [r4, 0x32] movs r0, 0xA strh r0, [r4, 0x34] movs r0, 0x15 strh r0, [r4, 0x36] strh r1, [r4, 0x38] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] _08096B3E: ldrh r0, [r4, 0x34] ldrh r1, [r4, 0x30] adds r0, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x36] ldrh r2, [r4, 0x32] adds r1, r2 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x22] ldr r1, _08096BA4 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 20 negs r0, r0 strh r0, [r4, 0x24] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] lsls r0, 16 asrs r0, 16 cmp r0, 0xB ble _08096B9E adds r0, r4, 0 bl sub_80962A8 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x3A] lsls r1, 24 lsrs r1, 24 ldrh r2, [r4, 0x3C] lsls r2, 24 lsrs r2, 24 bl sub_80962F0 ldr r0, _08096BA8 @ =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x24] _08096B9E: pop {r4} pop {r0} bx r0 .align 2, 0 _08096BA4: .4byte gSineTable _08096BA8: .4byte SpriteCallbackDummy thumb_func_end sub_8096B10 thumb_func_start sub_8096BAC sub_8096BAC: @ 8096BAC push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x22] subs r0, 0x8 strh r0, [r2, 0x22] movs r1, 0x22 ldrsh r0, [r2, r1] movs r3, 0x26 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _08096BDC ldr r0, _08096BE0 @ =SpriteCallbackDummy str r0, [r2, 0x1C] adds r0, r2, 0 bl sub_80962A8 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8096624 _08096BDC: pop {r0} bx r0 .align 2, 0 _08096BE0: .4byte SpriteCallbackDummy thumb_func_end sub_8096BAC @ file boundary? thumb_func_start sub_8096BE4 sub_8096BE4: @ 8096BE4 ldr r3, _08096BF4 @ =gUnknown_203982C str r0, [r3] str r1, [r0] movs r1, 0 strb r2, [r0, 0x5] strb r1, [r0, 0x4] bx lr .align 2, 0 _08096BF4: .4byte gUnknown_203982C thumb_func_end sub_8096BE4 thumb_func_start sub_8096BF8 sub_8096BF8: @ 8096BF8 push {r4,r5,lr} ldr r2, _08096C3C @ =gUnknown_203982C ldr r1, [r2] ldrb r0, [r1, 0x4] cmp r0, 0 beq _08096C36 movs r4, 0 ldrb r1, [r1, 0x4] cmp r4, r1 bcs _08096C2E adds r5, r2, 0 _08096C0E: ldr r0, [r5] lsls r1, r4, 2 adds r1, r4 lsls r1, 2 ldr r0, [r0] adds r0, r1 ldr r1, [r0, 0x10] bl _call_via_r1 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r5] ldrb r0, [r0, 0x4] cmp r4, r0 bcc _08096C0E _08096C2E: ldr r0, _08096C3C @ =gUnknown_203982C ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x4] _08096C36: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08096C3C: .4byte gUnknown_203982C thumb_func_end sub_8096BF8 thumb_func_start sub_8096C40 sub_8096C40: @ 8096C40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 mov r10, r3 ldr r0, [sp, 0x24] ldr r3, [sp, 0x28] ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] lsls r1, 16 lsrs r1, 16 mov r12, r1 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, _08096CC0 @ =gUnknown_203982C ldr r2, [r0] ldrb r0, [r2, 0x4] adds r1, r0, 0 ldrb r7, [r2, 0x5] cmp r1, r7 bcs _08096CC8 adds r0, 0x1 strb r0, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 lsls r0, r4, 1 strh r0, [r1, 0x8] ldr r2, [sp] lsls r0, r2, 5 add r0, r12 lsls r0, 1 add r0, r9 str r0, [r1, 0x4] adds r0, r3, 0 muls r0, r6 add r0, r8 lsls r0, 1 add r0, r10 str r0, [r1] strh r5, [r1, 0xC] strh r6, [r1, 0xA] ldr r0, _08096CC4 @ =sub_8096CDC str r0, [r1, 0x10] movs r0, 0x1 b _08096CCA .align 2, 0 _08096CC0: .4byte gUnknown_203982C _08096CC4: .4byte sub_8096CDC _08096CC8: movs r0, 0 _08096CCA: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8096C40 thumb_func_start sub_8096CDC sub_8096CDC: @ 8096CDC push {r4,r5,lr} adds r4, r0, 0 movs r5, 0 b _08096D06 _08096CE4: ldr r0, [r4] ldr r1, [r4, 0x4] ldrh r2, [r4, 0x8] lsrs r2, 1 bl CpuSet ldr r0, [r4, 0x4] adds r0, 0x40 str r0, [r4, 0x4] ldrh r1, [r4, 0xA] lsls r1, 1 ldr r0, [r4] adds r0, r1 str r0, [r4] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _08096D06: ldrh r0, [r4, 0xC] cmp r5, r0 bcc _08096CE4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8096CDC thumb_func_start sub_8096D14 sub_8096D14: @ 8096D14 push {r4-r7,lr} mov r12, r0 ldr r0, [sp, 0x14] lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r5, r0, 16 ldr r0, _08096D60 @ =gUnknown_203982C ldr r2, [r0] ldrb r0, [r2, 0x4] adds r1, r0, 0 ldrb r7, [r2, 0x5] cmp r1, r7 bcs _08096D68 adds r0, 0x1 strb r0, [r2, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, [r2] adds r1, r0 lsls r0, r3, 1 strh r0, [r1, 0x8] lsls r0, r4, 5 adds r0, r6 lsls r0, 1 add r0, r12 str r0, [r1, 0x4] strh r5, [r1, 0xC] ldr r0, _08096D64 @ =sub_8096D70 str r0, [r1, 0x10] movs r0, 0x1 b _08096D6A .align 2, 0 _08096D60: .4byte gUnknown_203982C _08096D64: .4byte sub_8096D70 _08096D68: movs r0, 0 _08096D6A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8096D14 thumb_func_start sub_8096D70 sub_8096D70: @ 8096D70 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r6, r0, 0 movs r0, 0 ldrh r1, [r6, 0xC] cmp r0, r1 bcs _08096DFE movs r7, 0x80 lsls r7, 5 mov r5, sp ldr r2, _08096DBC @ =0x040000d4 mov r8, r2 movs r1, 0x81 lsls r1, 24 mov r10, r1 _08096D96: ldr r2, [r6, 0x4] ldrh r3, [r6, 0x8] mov r12, r2 adds r0, 0x1 mov r9, r0 cmp r3, r7 bhi _08096DC0 movs r0, 0 strh r0, [r5] mov r2, sp mov r0, r8 str r2, [r0] mov r1, r12 str r1, [r0, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 mov r1, r8 b _08096DE8 .align 2, 0 _08096DBC: .4byte 0x040000d4 _08096DC0: movs r4, 0 strh r4, [r5] ldr r1, _08096E10 @ =0x040000d4 mov r0, sp str r0, [r1] str r2, [r1, 0x4] ldr r0, _08096E14 @ =0x81000800 str r0, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r7 subs r3, r7 cmp r3, r7 bhi _08096DC0 strh r4, [r5] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r10 orrs r0, r2 _08096DE8: str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, r12 adds r0, 0x40 str r0, [r6, 0x4] mov r1, r9 lsls r0, r1, 16 lsrs r0, 16 ldrh r2, [r6, 0xC] cmp r0, r2 bcc _08096D96 _08096DFE: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08096E10: .4byte 0x040000d4 _08096E14: .4byte 0x81000800 thumb_func_end sub_8096D70 .align 2, 0 @ Don't pad with nop.