.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start InBoxInput_GrabbingMultiple InBoxInput_GrabbingMultiple: @ 8094240 push {r4,lr} ldr r1, _08094270 @ =gMain ldrh r0, [r1, 0x2C] movs r4, 0x1 ands r4, r0 cmp r4, 0 beq _080942F4 ldrh r1, [r1, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08094278 ldr r4, _08094274 @ =sBoxCursorPosition movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x6 bl __divsi3 lsls r0, 24 cmp r0, 0 beq _080942EC ldrb r1, [r4] subs r1, 0x6 b _080942DA .align 2, 0 _08094270: .4byte gMain _08094274: .4byte sBoxCursorPosition _08094278: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08094298 ldr r1, _08094294 @ =sBoxCursorPosition movs r0, 0 ldrsb r0, [r1, r0] adds r0, 0x6 cmp r0, 0x1D bgt _080942EC ldrb r1, [r1] adds r1, 0x6 b _080942DA .align 2, 0 _08094294: .4byte sBoxCursorPosition _08094298: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080942BC ldr r4, _080942B8 @ =sBoxCursorPosition movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x6 bl __modsi3 lsls r0, 24 cmp r0, 0 beq _080942EC ldrb r1, [r4] subs r1, 0x1 b _080942DA .align 2, 0 _080942B8: .4byte sBoxCursorPosition _080942BC: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080942F0 ldr r4, _080942E8 @ =sBoxCursorPosition movs r0, 0 ldrsb r0, [r4, r0] adds r0, 0x1 movs r1, 0x6 bl __modsi3 cmp r0, 0 beq _080942EC ldrb r1, [r4] adds r1, 0x1 _080942DA: lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_80927E8 movs r0, 0x15 b _08094364 .align 2, 0 _080942E8: .4byte sBoxCursorPosition _080942EC: movs r0, 0x18 b _08094364 _080942F0: movs r0, 0 b _08094364 _080942F4: bl sub_8095AA0 lsls r0, 24 lsrs r0, 24 ldr r1, _08094330 @ =sBoxCursorPosition ldrb r1, [r1] lsls r1, 24 asrs r1, 24 cmp r0, r1 beq _08094344 ldr r2, _08094334 @ =sIsMonBeingMoved ldr r0, _08094338 @ =sPSSData ldr r1, [r0] movs r3, 0xCE lsls r3, 4 adds r0, r1, r3 ldrh r0, [r0] negs r0, r0 lsrs r0, 31 strb r0, [r2] ldr r0, _0809433C @ =0x000021ef adds r1, r0 movs r0, 0x2 strb r0, [r1] bl StorageGetCurrentBox ldr r1, _08094340 @ =sMovingMonOrigBoxId strb r0, [r1] movs r0, 0x17 b _08094364 .align 2, 0 _08094330: .4byte sBoxCursorPosition _08094334: .4byte sIsMonBeingMoved _08094338: .4byte sPSSData _0809433C: .4byte 0x000021ef _08094340: .4byte sMovingMonOrigBoxId _08094344: ldr r1, _0809436C @ =sPSSData ldr r0, [r1] ldr r2, _08094370 @ =0x000021ef adds r0, r2 strb r4, [r0] ldr r0, [r1] ldr r3, _08094374 @ =0x00000cb4 adds r0, r3 ldr r1, [r0] adds r1, 0x3E ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] movs r0, 0x16 _08094364: pop {r4} pop {r1} bx r1 .align 2, 0 _0809436C: .4byte sPSSData _08094370: .4byte 0x000021ef _08094374: .4byte 0x00000cb4 thumb_func_end InBoxInput_GrabbingMultiple thumb_func_start InBoxInput_MovingMultiple InBoxInput_MovingMultiple: @ 8094378 push {r4,lr} ldr r2, _0809439C @ =gMain ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080943A4 movs r0, 0 bl sub_8095474 lsls r0, 24 cmp r0, 0 beq _08094450 ldr r0, _080943A0 @ =sBoxCursorPosition ldrb r1, [r0] subs r1, 0x6 b _08094402 .align 2, 0 _0809439C: .4byte gMain _080943A0: .4byte sBoxCursorPosition _080943A4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080943C4 movs r0, 0x1 bl sub_8095474 lsls r0, 24 cmp r0, 0 beq _08094450 ldr r0, _080943C0 @ =sBoxCursorPosition ldrb r1, [r0] adds r1, 0x6 b _08094402 .align 2, 0 _080943C0: .4byte sBoxCursorPosition _080943C4: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080943E4 movs r0, 0x2 bl sub_8095474 lsls r0, 24 cmp r0, 0 beq _0809446A ldr r0, _080943E0 @ =sBoxCursorPosition ldrb r1, [r0] subs r1, 0x1 b _08094402 .align 2, 0 _080943E0: .4byte sBoxCursorPosition _080943E4: movs r0, 0x10 ands r0, r1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _08094414 movs r0, 0x3 bl sub_8095474 lsls r0, 24 cmp r0, 0 beq _0809447E ldr r0, _08094410 @ =sBoxCursorPosition ldrb r1, [r0] adds r1, 0x1 _08094402: lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_80927E8 movs r0, 0x19 b _08094484 .align 2, 0 _08094410: .4byte sBoxCursorPosition _08094414: ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094448 bl sub_8095ABC lsls r0, 24 cmp r0, 0 beq _08094450 ldr r0, _0809443C @ =sIsMonBeingMoved strb r4, [r0] ldr r0, _08094440 @ =sPSSData ldr r0, [r0] ldr r1, _08094444 @ =0x000021ef adds r0, r1 strb r4, [r0] movs r0, 0x1A b _08094484 .align 2, 0 _0809443C: .4byte sIsMonBeingMoved _08094440: .4byte sPSSData _08094444: .4byte 0x000021ef _08094448: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08094454 _08094450: movs r0, 0x18 b _08094484 _08094454: ldr r0, _08094470 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _08094482 ldrh r1, [r2, 0x2C] movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _08094474 _0809446A: movs r0, 0xA b _08094484 .align 2, 0 _08094470: .4byte gSaveBlock2Ptr _08094474: movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _08094482 _0809447E: movs r0, 0x9 b _08094484 _08094482: movs r0, 0 _08094484: pop {r4} pop {r1} bx r1 thumb_func_end InBoxInput_MovingMultiple thumb_func_start sub_809448C sub_809448C: @ 809448C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r0, _080944FC @ =sBoxCursorArea ldrb r0, [r0] mov r9, r0 ldr r6, _08094500 @ =sBoxCursorPosition ldrb r4, [r6] ldr r2, _08094504 @ =sPSSData ldr r0, [r2] ldr r1, _08094508 @ =0x00000ccf adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _0809450C @ =0x00000cce adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r3, 0x5 adds r0, r3 strb r1, [r0] mov r8, r1 movs r7, 0 ldr r1, _08094510 @ =gMain ldrh r3, [r1, 0x30] movs r0, 0x40 ands r0, r3 adds r5, r6, 0 mov r12, r1 cmp r0, 0 beq _080944D0 b _08094670 _080944D0: movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _08094514 lsls r0, r4, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r4, r0, 24 asrs r0, 24 cmp r0, 0x6 ble _080944EA movs r4, 0 _080944EA: lsls r0, r4, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r5, r1] cmp r0, r1 bne _080944F8 b _0809468E _080944F8: movs r7, 0x1 b _08094692 .align 2, 0 _080944FC: .4byte sBoxCursorArea _08094500: .4byte sBoxCursorPosition _08094504: .4byte sPSSData _08094508: .4byte 0x00000ccf _0809450C: .4byte 0x00000cce _08094510: .4byte gMain _08094514: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _08094538 ldrb r1, [r5] movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 beq _08094538 movs r7, 0x1 ldr r0, [r2] ldr r2, _08094534 @ =0x00000cd2 adds r0, r2 strb r1, [r0] movs r4, 0 b _0809468E .align 2, 0 _08094534: .4byte 0x00000cd2 _08094538: mov r3, r12 ldrh r1, [r3, 0x30] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08094566 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 bne _0809455C movs r7, 0x1 ldr r0, [r2] ldr r1, _08094558 @ =0x00000cd2 adds r0, r1 ldrb r4, [r0] b _0809468E .align 2, 0 _08094558: .4byte 0x00000cd2 _0809455C: movs r7, 0x6 movs r2, 0 mov r9, r2 movs r4, 0 b _0809468E _08094566: mov r3, r12 ldrh r1, [r3, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094624 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0x6 bne _0809458C ldr r0, [r2] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08094586 movs r0, 0x4 b _080946A0 _08094586: movs r0, 0x1 mov r8, r0 b _08094624 _0809458C: bl sub_8094924 lsls r0, 24 cmp r0, 0 beq _08094624 ldr r0, _080945A4 @ =sCanOnlyMove ldrb r0, [r0] cmp r0, 0 bne _080945A8 movs r0, 0x8 b _080946A0 .align 2, 0 _080945A4: .4byte sCanOnlyMove _080945A8: movs r0, 0 bl sub_8094E50 subs r0, 0x1 lsls r0, 24 asrs r0, 24 cmp r0, 0xE bhi _08094624 lsls r0, 2 ldr r1, _080945C4 @ =_080945C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080945C4: .4byte _080945C8 .align 2, 0 _080945C8: .4byte _08094604 .4byte _08094608 .4byte _0809460C .4byte _08094610 .4byte _08094614 .4byte _08094624 .4byte _08094624 .4byte _08094624 .4byte _08094624 .4byte _08094624 .4byte _08094624 .4byte _08094618 .4byte _0809461C .4byte _08094624 .4byte _08094620 _08094604: movs r0, 0xB b _080946A0 _08094608: movs r0, 0xC b _080946A0 _0809460C: movs r0, 0xD b _080946A0 _08094610: movs r0, 0xE b _080946A0 _08094614: movs r0, 0xF b _080946A0 _08094618: movs r0, 0x10 b _080946A0 _0809461C: movs r0, 0x11 b _080946A0 _08094620: movs r0, 0x12 b _080946A0 _08094624: ldr r2, _08094640 @ =gMain ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 mov r12, r2 cmp r0, 0 beq _0809464C ldr r0, _08094644 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _08094648 movs r0, 0x13 b _080946A0 .align 2, 0 _08094640: .4byte gMain _08094644: .4byte sPSSData _08094648: movs r1, 0x1 mov r8, r1 _0809464C: mov r2, r8 cmp r2, 0 beq _0809465C movs r7, 0x6 movs r3, 0 mov r9, r3 movs r4, 0 b _0809468E _0809465C: mov r0, r12 ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809468E bl sub_8094C84 movs r0, 0 b _080946A0 _08094670: lsls r0, r4, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r4, r0, 24 cmp r0, 0 bge _08094680 movs r4, 0x6 _08094680: lsls r0, r4, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r6, r1] cmp r0, r1 beq _0809468E movs r7, 0x1 _0809468E: cmp r7, 0 beq _0809469E _08094692: cmp r7, 0x6 beq _0809469E mov r0, r9 adds r1, r4, 0 bl sub_80927E8 _0809469E: adds r0, r7, 0 _080946A0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_809448C thumb_func_start sub_80946AC sub_80946AC: @ 80946AC push {r4-r6,lr} ldr r3, _080946E8 @ =sPSSData ldr r0, [r3] ldr r1, _080946EC @ =0x00000ccf adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r3] ldr r2, _080946F0 @ =0x00000cce adds r0, r2 strb r1, [r0] ldr r0, [r3] ldr r5, _080946F4 @ =0x00000cd3 adds r0, r5 strb r1, [r0] ldr r1, _080946F8 @ =gMain ldrh r2, [r1, 0x30] movs r0, 0x40 ands r0, r2 cmp r0, 0 bne _08094772 movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _080946FC movs r4, 0x1 movs r1, 0 movs r6, 0x2 b _0809477E .align 2, 0 _080946E8: .4byte sPSSData _080946EC: .4byte 0x00000ccf _080946F0: .4byte 0x00000cce _080946F4: .4byte 0x00000cd3 _080946F8: .4byte gMain _080946FC: ldrh r2, [r1, 0x2C] movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _08094722 movs r0, 0x10 ands r0, r2 cmp r0, 0 bne _08094736 ldr r0, _08094728 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _0809473A movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0809472C _08094722: movs r0, 0xA b _0809479A .align 2, 0 _08094728: .4byte gSaveBlock2Ptr _0809472C: movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0809473A _08094736: movs r0, 0x9 b _0809479A _0809473A: ldrh r1, [r1, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08094752 movs r0, 0 bl sub_80920FC bl sub_8094900 movs r0, 0x7 b _0809479A _08094752: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0809475E movs r0, 0x13 b _0809479A _0809475E: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0809476E bl sub_8094C84 movs r0, 0 b _0809479A _0809476E: movs r4, 0 b _08094798 _08094772: movs r4, 0x1 movs r1, 0x3 movs r6, 0 ldr r0, [r3] adds r0, r5 strb r4, [r0] _0809477E: cmp r4, 0 beq _08094798 lsls r5, r1, 24 cmp r1, 0x2 beq _0809478E movs r0, 0 bl sub_80920FC _0809478E: lsrs r0, r5, 24 lsls r1, r6, 24 lsrs r1, 24 bl sub_80927E8 _08094798: adds r0, r4, 0 _0809479A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80946AC thumb_func_start sub_80947A0 sub_80947A0: @ 80947A0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080947F0 @ =sBoxCursorArea ldrb r0, [r0] mov r8, r0 ldr r0, _080947F4 @ =sBoxCursorPosition mov r12, r0 ldrb r2, [r0] ldr r3, _080947F8 @ =sPSSData ldr r0, [r3] ldr r1, _080947FC @ =0x00000ccf adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r3] ldr r6, _08094800 @ =0x00000cce adds r0, r6 strb r1, [r0] ldr r0, [r3] ldr r5, _08094804 @ =0x00000cd3 adds r0, r5 strb r1, [r0] ldr r7, _08094808 @ =gMain ldrh r1, [r7, 0x30] movs r0, 0x40 ands r0, r1 adds r4, r3, 0 cmp r0, 0 bne _0809487A movs r0, 0x88 ands r0, r1 cmp r0, 0 beq _0809480C movs r7, 0x1 movs r0, 0x2 mov r8, r0 movs r2, 0 ldr r0, [r4] b _08094898 .align 2, 0 _080947F0: .4byte sBoxCursorArea _080947F4: .4byte sBoxCursorPosition _080947F8: .4byte sPSSData _080947FC: .4byte 0x00000ccf _08094800: .4byte 0x00000cce _08094804: .4byte 0x00000cd3 _08094808: .4byte gMain _0809480C: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08094828 movs r7, 0x1 lsls r0, r2, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r2, r0, 24 cmp r0, 0 bge _0809489C movs r2, 0x1 b _0809489C _08094828: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08094846 movs r7, 0x1 lsls r0, r2, 24 movs r1, 0x80 lsls r1, 17 adds r0, r1 lsrs r2, r0, 24 asrs r0, 24 cmp r0, 0x1 ble _0809489C movs r2, 0 b _0809489C _08094846: ldrh r1, [r7, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0809485A movs r0, 0x4 cmp r2, 0 bne _080948AA movs r0, 0x5 b _080948AA _0809485A: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08094866 movs r0, 0x13 b _080948AA _08094866: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _08094876 bl sub_8094C84 movs r0, 0 b _080948AA _08094876: movs r7, 0 b _080948A8 _0809487A: movs r7, 0x1 movs r0, 0 mov r8, r0 ldr r0, [r3] adds r0, r6 movs r1, 0xFF strb r1, [r0] mov r1, r12 movs r0, 0 ldrsb r0, [r1, r0] movs r2, 0x1D cmp r0, 0 bne _08094896 movs r2, 0x18 _08094896: ldr r0, [r3] _08094898: adds r0, r5 strb r7, [r0] _0809489C: cmp r7, 0 beq _080948A8 mov r0, r8 adds r1, r2, 0 bl sub_80927E8 _080948A8: adds r0, r7, 0 _080948AA: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80947A0 thumb_func_start HandleInput HandleInput: @ 80948B4 push {r4,r5,lr} movs r3, 0 ldr r0, _080948E0 @ =gUnknown_83D3478 ldr r1, [r0] adds r4, r0, 0 cmp r1, 0 beq _080948F8 ldr r5, _080948E4 @ =sBoxCursorArea _080948C4: lsls r0, r3, 3 adds r2, r0, r4 movs r1, 0x4 ldrsb r1, [r2, r1] movs r0, 0 ldrsb r0, [r5, r0] cmp r1, r0 bne _080948E8 ldr r0, [r2] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 b _080948FA .align 2, 0 _080948E0: .4byte gUnknown_83D3478 _080948E4: .4byte sBoxCursorArea _080948E8: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 lsls r0, r3, 3 adds r0, r4 ldr r0, [r0] cmp r0, 0 bne _080948C4 _080948F8: movs r0, 0 _080948FA: pop {r4,r5} pop {r1} bx r1 thumb_func_end HandleInput thumb_func_start sub_8094900 sub_8094900: @ 8094900 push {lr} bl InitMenu movs r0, 0x9 bl SetMenuText movs r0, 0xA bl SetMenuText movs r0, 0xB bl SetMenuText movs r0, 0 bl SetMenuText pop {r0} bx r0 thumb_func_end sub_8094900 thumb_func_start sub_8094924 sub_8094924: @ 8094924 push {lr} bl InitMenu ldr r0, _0809493C @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x3 bne _08094940 bl sub_8094A0C b _08094944 .align 2, 0 _0809493C: .4byte sPSSData _08094940: bl sub_809494C _08094944: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_8094924 thumb_func_start sub_809494C sub_809494C: @ 809494C push {lr} bl sub_8092458 lsls r0, 16 lsrs r1, r0, 16 ldr r0, _0809496C @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _08094976 cmp r0, 0x1 bgt _08094970 cmp r0, 0 beq _08094982 b _080949BC .align 2, 0 _0809496C: .4byte sPSSData _08094970: cmp r0, 0x2 beq _0809498E b _080949BC _08094976: cmp r1, 0 beq _080949BC movs r0, 0x1 bl SetMenuText b _080949C0 _08094982: cmp r1, 0 beq _080949BC movs r0, 0x2 bl SetMenuText b _080949C0 _0809498E: ldr r0, _080949A4 @ =sIsMonBeingMoved ldrb r0, [r0] cmp r0, 0 beq _080949B0 cmp r1, 0 beq _080949A8 movs r0, 0x4 bl SetMenuText b _080949C0 .align 2, 0 _080949A4: .4byte sIsMonBeingMoved _080949A8: movs r0, 0x5 bl SetMenuText b _080949C0 _080949B0: cmp r1, 0 beq _080949BC movs r0, 0x3 bl SetMenuText b _080949C0 _080949BC: movs r0, 0 b _08094A06 _080949C0: movs r0, 0x6 bl SetMenuText ldr r0, _080949E4 @ =sPSSData ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _080949F2 ldr r0, _080949E8 @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _080949EC movs r0, 0x2 bl SetMenuText b _080949F2 .align 2, 0 _080949E4: .4byte sPSSData _080949E8: .4byte sBoxCursorArea _080949EC: movs r0, 0x1 bl SetMenuText _080949F2: movs r0, 0x8 bl SetMenuText movs r0, 0x7 bl SetMenuText movs r0, 0 bl SetMenuText movs r0, 0x1 _08094A06: pop {r1} bx r1 thumb_func_end sub_809494C thumb_func_start sub_8094A0C sub_8094A0C: @ 8094A0C push {r4,r5,lr} ldr r4, _08094A48 @ =sPSSData ldr r0, [r4] movs r5, 0xCE lsls r5, 4 adds r0, r5 ldrh r1, [r0] movs r0, 0xCE lsls r0, 1 cmp r1, r0 beq _08094A9E bl IsActiveItemMoving lsls r0, 24 cmp r0, 0 bne _08094A70 ldr r2, [r4] ldr r0, _08094A4C @ =0x00000ce2 adds r1, r2, r0 ldrh r0, [r1] cmp r0, 0 bne _08094A50 adds r0, r2, r5 ldrh r0, [r0] cmp r0, 0 beq _08094A9E movs r0, 0xE bl SetMenuText b _08094AA8 .align 2, 0 _08094A48: .4byte sPSSData _08094A4C: .4byte 0x00000ce2 _08094A50: ldrh r0, [r1] bl ItemIsMail lsls r0, 24 cmp r0, 0 bne _08094A68 movs r0, 0xC bl SetMenuText movs r0, 0x10 bl SetMenuText _08094A68: movs r0, 0x11 bl SetMenuText b _08094AA8 _08094A70: ldr r2, [r4] ldr r0, _08094A8C @ =0x00000ce2 adds r1, r2, r0 ldrh r0, [r1] cmp r0, 0 bne _08094A90 adds r0, r2, r5 ldrh r0, [r0] cmp r0, 0 beq _08094A9E movs r0, 0xD bl SetMenuText b _08094AA8 .align 2, 0 _08094A8C: .4byte 0x00000ce2 _08094A90: ldrh r0, [r1] bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08094AA2 _08094A9E: movs r0, 0 b _08094AB0 _08094AA2: movs r0, 0xF bl SetMenuText _08094AA8: movs r0, 0 bl SetMenuText movs r0, 0x1 _08094AB0: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8094A0C thumb_func_start sub_8094AB8 sub_8094AB8: @ 8094AB8 ldr r1, _08094AD4 @ =sPSSData ldr r1, [r1] movs r2, 0xCB lsls r2, 4 adds r1, r2 ldr r2, [r1] ldrh r2, [r2, 0x20] strh r2, [r0, 0x20] ldr r1, [r1] ldrh r1, [r1, 0x22] adds r1, 0x14 strh r1, [r0, 0x22] bx lr .align 2, 0 _08094AD4: .4byte sPSSData thumb_func_end sub_8094AB8 thumb_func_start sub_8094AD8 sub_8094AD8: @ 8094AD8 push {r4-r6,lr} sub sp, 0x2C mov r1, sp ldr r0, _08094BA4 @ =gUnknown_83D34A0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} add r4, sp, 0x18 adds r1, r4, 0 ldr r0, _08094BA8 @ =gUnknown_83D34B8 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldr r0, [r0] str r0, [r1] mov r0, sp bl LoadSpriteSheets adds r0, r4, 0 bl LoadSpritePalettes ldr r0, _08094BAC @ =0x0000daca bl IndexOfSpritePaletteTag ldr r6, _08094BB0 @ =sPSSData ldr r1, [r6] ldr r4, _08094BB4 @ =0x00000cd4 adds r1, r4 strb r0, [r1] ldr r0, _08094BB8 @ =0x0000dac7 bl IndexOfSpritePaletteTag ldr r1, [r6] ldr r5, _08094BBC @ =0x00000cd5 adds r1, r5 strb r0, [r1] ldr r0, _08094BC0 @ =sBoxCursorArea ldrb r0, [r0] ldr r1, _08094BC4 @ =sBoxCursorPosition ldrb r1, [r1] add r4, sp, 0x28 mov r5, sp adds r5, 0x2A adds r2, r4, 0 adds r3, r5, 0 bl sub_8092398 ldr r0, _08094BC8 @ =gUnknown_83D350C movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0 ldrsh r2, [r5, r3] movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08094BD8 ldr r2, [r6] movs r4, 0xCB lsls r4, 4 adds r3, r2, r4 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08094BCC @ =gSprites adds r1, r0 str r1, [r3] ldr r0, _08094BD0 @ =sCanOnlyMove ldr r5, _08094BB4 @ =0x00000cd4 adds r2, r5 ldrb r0, [r0] adds r2, r0 ldrb r2, [r2] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [r6] adds r0, r4 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] ldr r0, _08094BD4 @ =sIsMonBeingMoved ldrb r0, [r0] cmp r0, 0 beq _08094BE4 ldr r0, [r6] adds r0, r4 ldr r0, [r0] movs r1, 0x3 bl StartSpriteAnim b _08094BE4 .align 2, 0 _08094BA4: .4byte gUnknown_83D34A0 _08094BA8: .4byte gUnknown_83D34B8 _08094BAC: .4byte 0x0000daca _08094BB0: .4byte sPSSData _08094BB4: .4byte 0x00000cd4 _08094BB8: .4byte 0x0000dac7 _08094BBC: .4byte 0x00000cd5 _08094BC0: .4byte sBoxCursorArea _08094BC4: .4byte sBoxCursorPosition _08094BC8: .4byte gUnknown_83D350C _08094BCC: .4byte gSprites _08094BD0: .4byte sCanOnlyMove _08094BD4: .4byte sIsMonBeingMoved _08094BD8: ldr r0, [r6] movs r1, 0xCB lsls r1, 4 adds r0, r1 movs r1, 0 str r1, [r0] _08094BE4: ldr r0, _08094BF8 @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0x1 bne _08094BFC movs r3, 0xD movs r4, 0x1 b _08094C00 .align 2, 0 _08094BF8: .4byte sBoxCursorArea _08094BFC: movs r3, 0x15 movs r4, 0x2 _08094C00: ldr r0, _08094C54 @ =gUnknown_83D3524 movs r1, 0 movs r2, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 beq _08094C68 ldr r5, _08094C58 @ =sPSSData ldr r2, [r5] ldr r3, _08094C5C @ =0x00000cb4 adds r2, r3 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _08094C60 @ =gSprites adds r1, r0 str r1, [r2] lsls r3, r4, 2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] ldr r0, _08094C64 @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 beq _08094C74 ldr r0, [r5] ldr r4, _08094C5C @ =0x00000cb4 adds r0, r4 ldr r1, [r0] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] b _08094C74 .align 2, 0 _08094C54: .4byte gUnknown_83D3524 _08094C58: .4byte sPSSData _08094C5C: .4byte 0x00000cb4 _08094C60: .4byte gSprites _08094C64: .4byte sBoxCursorArea _08094C68: ldr r0, _08094C7C @ =sPSSData ldr r0, [r0] ldr r5, _08094C80 @ =0x00000cb4 adds r0, r5 movs r1, 0 str r1, [r0] _08094C74: add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08094C7C: .4byte sPSSData _08094C80: .4byte 0x00000cb4 thumb_func_end sub_8094AD8 thumb_func_start sub_8094C84 sub_8094C84: @ 8094C84 push {lr} ldr r2, _08094CBC @ =sCanOnlyMove movs r1, 0 ldrb r0, [r2] cmp r0, 0 bne _08094C92 movs r1, 0x1 _08094C92: strb r1, [r2] ldr r0, _08094CC0 @ =sPSSData ldr r0, [r0] movs r3, 0xCB lsls r3, 4 adds r1, r0, r3 ldr r3, [r1] ldr r1, _08094CC4 @ =0x00000cd4 adds r0, r1 ldrb r2, [r2] adds r0, r2 ldrb r1, [r0] lsls r1, 4 ldrb r2, [r3, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r1 strb r0, [r3, 0x5] pop {r0} bx r0 .align 2, 0 _08094CBC: .4byte sCanOnlyMove _08094CC0: .4byte sPSSData _08094CC4: .4byte 0x00000cd4 thumb_func_end sub_8094C84 thumb_func_start GetBoxCursorPosition GetBoxCursorPosition: @ 8094CC8 ldr r0, _08094CD0 @ =sBoxCursorPosition ldrb r0, [r0] bx lr .align 2, 0 _08094CD0: .4byte sBoxCursorPosition thumb_func_end GetBoxCursorPosition thumb_func_start sub_8094CD4 sub_8094CD4: @ 8094CD4 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 ldr r0, _08094D00 @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _08094D08 ldr r4, _08094D04 @ =sBoxCursorPosition movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x6 bl __modsi3 strb r0, [r5] movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x6 bl __divsi3 b _08094D0C .align 2, 0 _08094D00: .4byte sBoxCursorArea _08094D04: .4byte sBoxCursorPosition _08094D08: movs r0, 0 strb r0, [r5] _08094D0C: strb r0, [r6] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8094CD4 thumb_func_start sub_8094D14 sub_8094D14: @ 8094D14 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 ldr r0, _08094D30 @ =sPSSData ldr r0, [r0] movs r2, 0xCB lsls r2, 4 adds r0, r2 ldr r0, [r0] bl StartSpriteAnim pop {r0} bx r0 .align 2, 0 _08094D30: .4byte sPSSData thumb_func_end sub_8094D14 thumb_func_start sub_8094D34 sub_8094D34: @ 8094D34 ldr r0, _08094D3C @ =sMovingMonOrigBoxId ldrb r0, [r0] bx lr .align 2, 0 _08094D3C: .4byte sMovingMonOrigBoxId thumb_func_end sub_8094D34 thumb_func_start sub_8094D40 sub_8094D40: @ 8094D40 ldr r0, _08094D5C @ =sPSSData ldr r0, [r0] movs r1, 0xCB lsls r1, 4 adds r0, r1 ldr r2, [r0] ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x5] bx lr .align 2, 0 _08094D5C: .4byte sPSSData thumb_func_end sub_8094D40 thumb_func_start sub_8094D60 sub_8094D60: @ 8094D60 push {lr} ldr r0, _08094D7C @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _08094D78 ldr r0, _08094D80 @ =sBoxCursorPosition ldrb r1, [r0] movs r0, 0 bl sub_8095D44 _08094D78: pop {r0} bx r0 .align 2, 0 _08094D7C: .4byte sBoxCursorArea _08094D80: .4byte sBoxCursorPosition thumb_func_end sub_8094D60 thumb_func_start sub_8094D84 sub_8094D84: @ 8094D84 push {lr} ldr r0, _08094DA0 @ =sBoxCursorArea ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 bne _08094D9C ldr r0, _08094DA4 @ =sBoxCursorPosition ldrb r1, [r0] movs r0, 0 bl sub_8095C84 _08094D9C: pop {r0} bx r0 .align 2, 0 _08094DA0: .4byte sBoxCursorArea _08094DA4: .4byte sBoxCursorPosition thumb_func_end sub_8094D84 @ file boundary? thumb_func_start InitMenu InitMenu: @ 8094DA8 ldr r2, _08094DDC @ =sPSSData ldr r0, [r2] ldr r1, _08094DE0 @ =0x00000ca8 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _08094DE4 @ =0x00000ca9 adds r0, r3 strb r1, [r0] ldr r0, [r2] subs r3, 0x41 adds r0, r3 strb r1, [r0] ldr r0, [r2] ldr r1, _08094DE8 @ =0x00000c6d adds r0, r1 movs r1, 0xF strb r1, [r0] ldr r0, [r2] adds r3, 0x6 adds r0, r3 movs r1, 0x5C strh r1, [r0] bx lr .align 2, 0 _08094DDC: .4byte sPSSData _08094DE0: .4byte 0x00000ca8 _08094DE4: .4byte 0x00000ca9 _08094DE8: .4byte 0x00000c6d thumb_func_end InitMenu thumb_func_start SetMenuText SetMenuText: @ 8094DEC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r4, _08094E40 @ =sPSSData ldr r2, [r4] ldr r5, _08094E44 @ =0x00000ca8 adds r1, r2, r5 ldrb r0, [r1] cmp r0, 0x6 bhi _08094E38 adds r1, r0, 0 lsls r1, 3 movs r0, 0xC7 lsls r0, 4 adds r1, r0 adds r1, r2, r1 ldr r2, _08094E48 @ =gUnknown_83D353C lsls r0, r3, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] str r3, [r1, 0x4] bl StringLength lsls r0, 24 lsrs r1, r0, 24 ldr r0, [r4] ldr r2, _08094E4C @ =0x00000ca9 adds r0, r2 ldrb r2, [r0] cmp r1, r2 bls _08094E2E strb r1, [r0] _08094E2E: ldr r1, [r4] adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08094E38: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08094E40: .4byte sPSSData _08094E44: .4byte 0x00000ca8 _08094E48: .4byte gUnknown_83D353C _08094E4C: .4byte 0x00000ca9 thumb_func_end SetMenuText thumb_func_start sub_8094E50 sub_8094E50: @ 8094E50 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08094E74 @ =sPSSData ldr r1, [r0] ldr r3, _08094E78 @ =0x00000ca8 adds r0, r1, r3 ldrb r0, [r0] cmp r2, r0 bcs _08094E80 lsls r0, r2, 3 ldr r2, _08094E7C @ =0x00000c74 adds r1, r2 adds r1, r0 movs r0, 0 ldrsb r0, [r1, r0] b _08094E84 .align 2, 0 _08094E74: .4byte sPSSData _08094E78: .4byte 0x00000ca8 _08094E7C: .4byte 0x00000c74 _08094E80: movs r0, 0x1 negs r0, r0 _08094E84: pop {r1} bx r1 thumb_func_end sub_8094E50 thumb_func_start AddMenu AddMenu: @ 8094E88 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0xC ldr r5, _08094F6C @ =sPSSData ldr r1, [r5] ldr r2, _08094F70 @ =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] adds r0, 0x2 subs r2, 0x3E adds r1, r2 movs r3, 0 mov r10, r3 strb r0, [r1] ldr r1, [r5] ldr r0, _08094F74 @ =0x00000ca8 mov r8, r0 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 1 ldr r3, _08094F78 @ =0x00000c6c adds r1, r3 strb r0, [r1] ldr r1, [r5] adds r2, r1, r2 ldrb r2, [r2] movs r0, 0x1D subs r0, r2 ldr r2, _08094F7C @ =0x00000c69 adds r1, r2 strb r0, [r1] ldr r1, [r5] adds r3, r1, r3 ldrb r2, [r3] movs r0, 0xF subs r0, r2 ldr r3, _08094F80 @ =0x00000c6a adds r1, r3 strb r0, [r1] ldr r0, [r5] ldr r1, _08094F84 @ =0x00000c68 adds r0, r1 bl AddWindow ldr r1, [r5] ldr r4, _08094F88 @ =0x00000cac adds r1, r4 movs r2, 0 mov r9, r2 strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl ClearWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0 movs r2, 0xB movs r3, 0xE bl DrawStdFrameWithCustomTileAndPalette ldr r2, [r5] adds r0, r2, r4 ldrb r0, [r0] movs r6, 0x10 str r6, [sp] mov r3, r8 adds r1, r2, r3 ldrb r1, [r1] str r1, [sp, 0x4] movs r1, 0xC7 lsls r1, 4 adds r2, r1 str r2, [sp, 0x8] movs r1, 0x1 movs r2, 0x8 movs r3, 0x2 bl PrintTextArray ldr r1, [r5] adds r4, r1, r4 ldrb r0, [r4] str r6, [sp] add r1, r8 ldrb r1, [r1] str r1, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] movs r1, 0x1 movs r2, 0 movs r3, 0x2 bl Menu_InitCursor movs r0, 0 bl ScheduleBgCopyTilemapToVram ldr r0, [r5] ldr r3, _08094F8C @ =0x00000caa adds r0, r3 mov r1, r9 strb r1, [r0] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08094F6C: .4byte sPSSData _08094F70: .4byte 0x00000ca9 _08094F74: .4byte 0x00000ca8 _08094F78: .4byte 0x00000c6c _08094F7C: .4byte 0x00000c69 _08094F80: .4byte 0x00000c6a _08094F84: .4byte 0x00000c68 _08094F88: .4byte 0x00000cac _08094F8C: .4byte 0x00000caa thumb_func_end AddMenu thumb_func_start sub_8094F90 sub_8094F90: @ 8094F90 movs r0, 0 bx lr thumb_func_end sub_8094F90 thumb_func_start sub_8094F94 sub_8094F94: @ 8094F94 push {r4,r5,lr} movs r5, 0x2 negs r5, r5 ldr r4, _08094FD0 @ =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08094FEA movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08094FB6 movs r0, 0x5 bl PlaySE adds r5, 0x1 _08094FB6: ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08094FD4 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl Menu_MoveCursor b _08094FF2 .align 2, 0 _08094FD0: .4byte gMain _08094FD4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08094FF2 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl Menu_MoveCursor b _08094FF2 _08094FEA: bl Menu_GetCursorPos lsls r0, 24 lsrs r5, r0, 24 _08094FF2: movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _08094FFE bl sub_8095024 _08094FFE: cmp r5, 0 blt _08095010 ldr r0, _0809501C @ =sPSSData ldr r0, [r0] lsls r1, r5, 3 ldr r2, _08095020 @ =0x00000c74 adds r0, r2 adds r0, r1 ldr r5, [r0] _08095010: lsls r0, r5, 16 asrs r0, 16 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0809501C: .4byte sPSSData _08095020: .4byte 0x00000c74 thumb_func_end sub_8094F94 thumb_func_start sub_8095024 sub_8095024: @ 8095024 push {r4,r5,lr} ldr r5, _08095048 @ =sPSSData ldr r0, [r5] ldr r4, _0809504C @ =0x00000cac adds r0, r4 ldrb r0, [r0] movs r1, 0x1 bl ClearStdWindowAndFrameToTransparent ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl RemoveWindow pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08095048: .4byte sPSSData _0809504C: .4byte 0x00000cac thumb_func_end sub_8095024 thumb_func_start sub_8095050 sub_8095050: @ 8095050 push {r4,lr} ldr r4, _08095088 @ =gUnknown_2039828 ldr r0, _0809508C @ =0x00000974 bl Alloc str r0, [r4] cmp r0, 0 beq _0809509C ldr r0, _08095090 @ =gUnknown_83D35D4 bl AddWindow8Bit adds r1, r0, 0 ldr r0, _08095094 @ =sPSSData ldr r0, [r0] ldr r2, _08095098 @ =0x000021f0 adds r0, r2 strh r1, [r0] lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0xFF beq _0809509C lsls r0, r1, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 b _0809509E .align 2, 0 _08095088: .4byte gUnknown_2039828 _0809508C: .4byte 0x00000974 _08095090: .4byte gUnknown_83D35D4 _08095094: .4byte sPSSData _08095098: .4byte 0x000021f0 _0809509C: movs r0, 0 _0809509E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095050 thumb_func_start sub_80950A4 sub_80950A4: @ 80950A4 push {lr} ldr r0, _080950B8 @ =gUnknown_2039828 ldr r0, [r0] cmp r0, 0 beq _080950B2 bl Free _080950B2: pop {r0} bx r0 .align 2, 0 _080950B8: .4byte gUnknown_2039828 thumb_func_end sub_80950A4 thumb_func_start sub_80950BC sub_80950BC: @ 80950BC ldr r2, _080950CC @ =gUnknown_2039828 ldr r1, [r2] movs r3, 0 strb r0, [r1] ldr r0, [r2] strb r3, [r0, 0x1] bx lr .align 2, 0 _080950CC: .4byte gUnknown_2039828 thumb_func_end sub_80950BC thumb_func_start sub_80950D0 sub_80950D0: @ 80950D0 push {lr} ldr r0, _080950E8 @ =gUnknown_2039828 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x5 bhi _08095130 lsls r0, 2 ldr r1, _080950EC @ =_080950F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080950E8: .4byte gUnknown_2039828 _080950EC: .4byte _080950F0 .align 2, 0 _080950F0: .4byte _08095108 .4byte _0809510E .4byte _08095114 .4byte _0809511A .4byte _08095120 .4byte _08095126 _08095108: bl sub_8095138 b _0809512A _0809510E: bl sub_8095234 b _0809512A _08095114: bl sub_80952A0 b _0809512A _0809511A: bl sub_8095314 b _0809512A _08095120: bl sub_8095394 b _0809512A _08095126: bl sub_80953BC _0809512A: lsls r0, 24 lsrs r0, 24 b _08095132 _08095130: movs r0, 0 _08095132: pop {r1} bx r1 thumb_func_end sub_80950D0 thumb_func_start sub_8095138 sub_8095138: @ 8095138 push {r4-r6,lr} sub sp, 0x8 ldr r6, _08095150 @ =gUnknown_2039828 ldr r1, [r6] ldrb r0, [r1, 0x1] cmp r0, 0x1 beq _08095168 cmp r0, 0x1 bgt _08095154 cmp r0, 0 beq _0809515A b _08095228 .align 2, 0 _08095150: .4byte gUnknown_2039828 _08095154: cmp r0, 0x2 beq _08095214 b _08095228 _0809515A: movs r0, 0 bl HideBg movs r0, 0x80 bl LoadMonIconPalettesAt b _080951F8 _08095168: adds r0, r1, 0x2 adds r1, 0x3 bl sub_8094CD4 ldr r1, [r6] ldrb r0, [r1, 0x2] strb r0, [r1, 0x4] ldr r1, [r6] ldrb r0, [r1, 0x3] strb r0, [r1, 0x5] ldr r4, _08095204 @ =0xfffffc00 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgX movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgY movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r5, _08095208 @ =sPSSData ldr r0, [r5] ldr r4, _0809520C @ =0x000021f0 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer8Bit ldr r1, [r6] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] bl sub_80956A4 movs r0, 0 movs r1, 0x4 movs r2, 0x1 bl SetBgAttribute ldr r0, [r5] adds r0, r4 ldrb r0, [r0] bl PutWindowTilemap ldr r0, [r5] adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram8Bit movs r0, 0xFC lsls r0, 6 ldr r2, _08095210 @ =0x00007fff movs r1, 0x8 bl BlendPalettes movs r0, 0x2 bl sub_8094D14 movs r0, 0x8 movs r1, 0x80 bl SetGpuRegBits _080951F8: ldr r1, [r6] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _08095228 .align 2, 0 _08095204: .4byte 0xfffffc00 _08095208: .4byte sPSSData _0809520C: .4byte 0x000021f0 _08095210: .4byte 0x00007fff _08095214: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08095228 movs r0, 0 bl ShowBg movs r0, 0 b _0809522A _08095228: movs r0, 0x1 _0809522A: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8095138 thumb_func_start sub_8095234 sub_8095234: @ 8095234 push {r4,lr} ldr r4, _0809524C @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _0809525E cmp r0, 0x1 bgt _08095250 cmp r0, 0 beq _08095256 b _08095298 .align 2, 0 _0809524C: .4byte gUnknown_2039828 _08095250: cmp r0, 0x2 beq _08095272 b _08095298 _08095256: movs r0, 0 bl HideBg b _08095268 _0809525E: bl sub_8095A58 movs r0, 0 bl sub_8094D14 _08095268: ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _08095298 _08095272: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08095298 bl sub_8094D40 movs r0, 0x3 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette movs r0, 0 bl ShowBg movs r0, 0 b _0809529A _08095298: movs r0, 0x1 _0809529A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8095234 thumb_func_start sub_80952A0 sub_80952A0: @ 80952A0 push {r4,lr} ldr r4, _080952B4 @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0 beq _080952B8 cmp r0, 0x1 beq _08095300 b _0809530A .align 2, 0 _080952B4: .4byte gUnknown_2039828 _080952B8: bl sub_80924A8 lsls r0, 24 cmp r0, 0 bne _0809530A ldr r1, [r4] adds r0, r1, 0x6 adds r1, 0x7 bl sub_8094CD4 bl sub_8095520 ldr r1, [r4] ldrb r0, [r1, 0x6] strb r0, [r1, 0x4] ldr r1, [r4] ldrb r0, [r1, 0x7] strb r0, [r1, 0x5] ldr r0, _080952F8 @ =sPSSData ldr r0, [r0] ldr r1, _080952FC @ =0x000021f0 adds r0, r1 ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram8Bit ldr r1, [r4] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] b _0809530A .align 2, 0 _080952F8: .4byte sPSSData _080952FC: .4byte 0x000021f0 _08095300: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r0, 24 b _0809530C _0809530A: movs r0, 0x1 _0809530C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80952A0 thumb_func_start sub_8095314 sub_8095314: @ 8095314 push {r4,lr} ldr r4, _0809532C @ =gUnknown_2039828 ldr r0, [r4] ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _08095342 cmp r0, 0x1 bgt _08095330 cmp r0, 0 beq _08095336 b _0809538C .align 2, 0 _0809532C: .4byte gUnknown_2039828 _08095330: cmp r0, 0x2 beq _0809536E b _0809538C _08095336: bl sub_80957C8 bl sub_80958A0 movs r0, 0 b _08095360 _08095342: bl 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 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 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.